payload 2.24.0 → 2.24.2
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/dist/admin/components/elements/Autosave/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Autosave/index.js +16 -8
- package/dist/admin/components/elements/Autosave/types.d.ts +2 -0
- package/dist/admin/components/elements/Autosave/types.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentControls/index.d.ts +2 -0
- package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentControls/index.js +3 -2
- package/dist/admin/components/elements/EditUpload/index.d.ts +12 -4
- package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -1
- package/dist/admin/components/elements/EditUpload/index.js +41 -40
- package/dist/admin/components/utilities/Auth/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/Auth/index.js +20 -17
- package/dist/admin/components/utilities/Auth/types.d.ts +2 -2
- package/dist/admin/components/utilities/Auth/types.d.ts.map +1 -1
- package/dist/admin/components/views/Logout/index.js +2 -2
- package/dist/admin/components/views/collections/Edit/Default/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Default/index.js +3 -2
- package/dist/admin/components/views/collections/Edit/Upload/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Upload/index.js +18 -4
- package/dist/admin/components/views/collections/Edit/types.d.ts +0 -12
- package/dist/admin/components/views/collections/Edit/types.d.ts.map +1 -1
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js +1 -1
- package/dist/exports/types.d.ts +1 -1
- package/dist/exports/types.d.ts.map +1 -1
- package/dist/exports/types.js +1 -1
- package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js +4 -1
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +4 -1
- package/dist/translations/ar.json +1 -1
- package/dist/translations/az.json +1 -1
- package/dist/translations/bg.json +1 -1
- package/dist/translations/cs.json +1 -1
- package/dist/translations/de.json +1 -1
- package/dist/translations/en.json +1 -1
- package/dist/translations/es.json +1 -1
- package/dist/translations/fa.json +1 -1
- package/dist/translations/fr.json +1 -1
- package/dist/translations/hr.json +1 -1
- package/dist/translations/hu.json +1 -1
- package/dist/translations/index.d.ts +30 -30
- package/dist/translations/it.json +1 -1
- package/dist/translations/ja.json +1 -1
- package/dist/translations/ko.json +1 -1
- package/dist/translations/my.json +1 -1
- package/dist/translations/nb.json +1 -1
- package/dist/translations/nl.json +1 -1
- package/dist/translations/pl.json +1 -1
- package/dist/translations/pt.json +1 -1
- package/dist/translations/ro.json +1 -1
- package/dist/translations/rs-latin.json +1 -1
- package/dist/translations/rs.json +1 -1
- package/dist/translations/ru.json +1 -1
- package/dist/translations/sv.json +1 -1
- package/dist/translations/th.json +1 -1
- package/dist/translations/tr.json +1 -1
- package/dist/translations/translation-schema.json +1 -1
- package/dist/translations/ua.json +1 -1
- package/dist/translations/vi.json +1 -1
- package/dist/translations/zh-tw.json +1 -1
- package/dist/translations/zh.json +1 -1
- package/dist/uploads/cropImage.d.ts +15 -6
- package/dist/uploads/cropImage.d.ts.map +1 -1
- package/dist/uploads/cropImage.js +6 -6
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +6 -4
- package/dist/uploads/imageResizer.d.ts.map +1 -1
- package/dist/uploads/imageResizer.js +117 -84
- package/dist/uploads/types.d.ts +16 -10
- package/dist/uploads/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/types.d.ts +1 -1
- package/types.js +1 -1
|
@@ -14,7 +14,6 @@ const _reacti18next = require("react-i18next");
|
|
|
14
14
|
const _reactimagecrop = /*#__PURE__*/ _interop_require_default(require("react-image-crop"));
|
|
15
15
|
require("react-image-crop/dist/ReactCrop.css");
|
|
16
16
|
const _Plus = /*#__PURE__*/ _interop_require_default(require("../../icons/Plus"));
|
|
17
|
-
const _UploadEdits = require("../../utilities/UploadEdits");
|
|
18
17
|
const _Upload = require("../../views/collections/Edit/Upload");
|
|
19
18
|
const _Button = /*#__PURE__*/ _interop_require_default(require("../Button"));
|
|
20
19
|
require("./index.scss");
|
|
@@ -77,45 +76,51 @@ const Input = /*#__PURE__*/ (0, _react.forwardRef)((props, ref)=>{
|
|
|
77
76
|
value: value
|
|
78
77
|
}));
|
|
79
78
|
});
|
|
80
|
-
const
|
|
79
|
+
const defaultCrop = {
|
|
80
|
+
height: 100,
|
|
81
|
+
unit: '%',
|
|
82
|
+
width: 100,
|
|
83
|
+
x: 0,
|
|
84
|
+
y: 0
|
|
85
|
+
};
|
|
86
|
+
const EditUpload = ({ fileName, fileSrc, imageCacheTag, initialCrop, initialFocalPoint, onSave, showCrop, showFocalPoint })=>{
|
|
81
87
|
const { closeModal } = (0, _modal.useModal)();
|
|
82
88
|
const { t } = (0, _reacti18next.useTranslation)([
|
|
83
89
|
'general',
|
|
84
90
|
'upload'
|
|
85
91
|
]);
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
92
|
+
const [crop, setCrop] = (0, _react.useState)(()=>({
|
|
93
|
+
...defaultCrop,
|
|
94
|
+
...initialCrop || {}
|
|
95
|
+
}));
|
|
96
|
+
const defaultFocalPosition = {
|
|
97
|
+
x: 50,
|
|
98
|
+
y: 50
|
|
99
|
+
};
|
|
100
|
+
const [focalPosition, setFocalPosition] = (0, _react.useState)(()=>({
|
|
101
|
+
...defaultFocalPosition,
|
|
102
|
+
...initialFocalPoint
|
|
103
|
+
}));
|
|
91
104
|
const [checkBounds, setCheckBounds] = (0, _react.useState)(false);
|
|
92
|
-
const [
|
|
93
|
-
const [
|
|
105
|
+
const [uncroppedPixelHeight, setUncroppedPixelHeight] = (0, _react.useState)(0);
|
|
106
|
+
const [uncroppedPixelWidth, setUncroppedPixelWidth] = (0, _react.useState)(0);
|
|
94
107
|
const focalWrapRef = (0, _react.useRef)();
|
|
95
108
|
const imageRef = (0, _react.useRef)();
|
|
96
109
|
const cropRef = (0, _react.useRef)();
|
|
97
|
-
const
|
|
98
|
-
const
|
|
99
|
-
const [crop, setCrop] = (0, _react.useState)({
|
|
100
|
-
height: 100,
|
|
101
|
-
heightPixels: 0,
|
|
102
|
-
unit: '%',
|
|
103
|
-
width: 100,
|
|
104
|
-
widthPixels: 0,
|
|
105
|
-
x: 0,
|
|
106
|
-
y: 0
|
|
107
|
-
});
|
|
110
|
+
const heightInputRef = (0, _react.useRef)(null);
|
|
111
|
+
const widthInputRef = (0, _react.useRef)(null);
|
|
108
112
|
const [imageLoaded, setImageLoaded] = (0, _react.useState)(false);
|
|
109
113
|
const onImageLoad = (e)=>{
|
|
110
|
-
|
|
111
|
-
|
|
114
|
+
// set the default image height/width on load
|
|
115
|
+
setUncroppedPixelHeight(e.currentTarget.naturalHeight);
|
|
116
|
+
setUncroppedPixelWidth(e.currentTarget.naturalWidth);
|
|
112
117
|
setImageLoaded(true);
|
|
113
118
|
};
|
|
114
119
|
const fineTuneCrop = ({ dimension, value })=>{
|
|
115
120
|
const intValue = parseInt(value);
|
|
116
|
-
if (dimension === 'width' && intValue >=
|
|
117
|
-
if (dimension === 'height' && intValue >=
|
|
118
|
-
const percentage = 100 * (intValue / (dimension === 'width' ?
|
|
121
|
+
if (dimension === 'width' && intValue >= uncroppedPixelWidth) return null;
|
|
122
|
+
if (dimension === 'height' && intValue >= uncroppedPixelHeight) return null;
|
|
123
|
+
const percentage = 100 * (intValue / (dimension === 'width' ? uncroppedPixelWidth : uncroppedPixelHeight));
|
|
119
124
|
if (percentage === 100 || percentage === 0) return null;
|
|
120
125
|
setCrop({
|
|
121
126
|
...crop,
|
|
@@ -132,13 +137,11 @@ const EditUpload = ({ doc, fileName, fileSrc, imageCacheTag, showCrop, showFocal
|
|
|
132
137
|
}
|
|
133
138
|
};
|
|
134
139
|
const saveEdits = ()=>{
|
|
135
|
-
|
|
136
|
-
crop: crop ?
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
} : undefined,
|
|
141
|
-
focalPoint: focalPosition ? focalPosition : undefined
|
|
140
|
+
if (typeof onSave === 'function') onSave({
|
|
141
|
+
crop: crop ? crop : undefined,
|
|
142
|
+
focalPoint: focalPosition,
|
|
143
|
+
heightInPixels: Number(heightInputRef?.current?.value ?? uncroppedPixelHeight),
|
|
144
|
+
widthInPixels: Number(widthInputRef?.current?.value ?? uncroppedPixelWidth)
|
|
142
145
|
});
|
|
143
146
|
closeModal(_Upload.editDrawerSlug);
|
|
144
147
|
};
|
|
@@ -187,7 +190,7 @@ const EditUpload = ({ doc, fileName, fileSrc, imageCacheTag, showCrop, showFocal
|
|
|
187
190
|
className: `${baseClass}__focal-wrapper`,
|
|
188
191
|
ref: focalWrapRef,
|
|
189
192
|
style: {
|
|
190
|
-
aspectRatio: `${
|
|
193
|
+
aspectRatio: `${uncroppedPixelWidth / uncroppedPixelHeight}`
|
|
191
194
|
}
|
|
192
195
|
}, showCrop ? /*#__PURE__*/ _react.default.createElement(_reactimagecrop.default, {
|
|
193
196
|
className: `${baseClass}__reactCrop`,
|
|
@@ -229,10 +232,8 @@ const EditUpload = ({ doc, fileName, fileSrc, imageCacheTag, showCrop, showFocal
|
|
|
229
232
|
className: `${baseClass}__reset`,
|
|
230
233
|
onClick: ()=>setCrop({
|
|
231
234
|
height: 100,
|
|
232
|
-
heightPixels: originalHeight,
|
|
233
235
|
unit: '%',
|
|
234
236
|
width: 100,
|
|
235
|
-
widthPixels: originalWidth,
|
|
236
237
|
x: 0,
|
|
237
238
|
y: 0
|
|
238
239
|
})
|
|
@@ -246,16 +247,16 @@ const EditUpload = ({ doc, fileName, fileSrc, imageCacheTag, showCrop, showFocal
|
|
|
246
247
|
dimension: 'width',
|
|
247
248
|
value
|
|
248
249
|
}),
|
|
249
|
-
ref:
|
|
250
|
-
value: (crop.width / 100 *
|
|
250
|
+
ref: widthInputRef,
|
|
251
|
+
value: (crop.width / 100 * uncroppedPixelWidth).toFixed(0)
|
|
251
252
|
}), /*#__PURE__*/ _react.default.createElement(Input, {
|
|
252
253
|
name: `${t('upload:height')} (px)`,
|
|
253
254
|
onChange: (value)=>fineTuneCrop({
|
|
254
255
|
dimension: 'height',
|
|
255
256
|
value
|
|
256
257
|
}),
|
|
257
|
-
ref:
|
|
258
|
-
value: (crop.height / 100 *
|
|
258
|
+
ref: heightInputRef,
|
|
259
|
+
value: (crop.height / 100 * uncroppedPixelHeight).toFixed(0)
|
|
259
260
|
}))), showFocalPoint && /*#__PURE__*/ _react.default.createElement("div", {
|
|
260
261
|
className: `${baseClass}__groupWrap`
|
|
261
262
|
}, /*#__PURE__*/ _react.default.createElement("div", null, /*#__PURE__*/ _react.default.createElement("div", {
|
|
@@ -402,4 +403,4 @@ const DraggableElement = ({ boundsRef, checkBounds, children, className, contain
|
|
|
402
403
|
}, children), /*#__PURE__*/ _react.default.createElement("div", null));
|
|
403
404
|
};
|
|
404
405
|
|
|
405
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0VkaXRVcGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1vZGFsIH0gZnJvbSAnQGZhY2VsZXNzLXVpL21vZGFsJ1xuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCBSZWFjdENyb3AsIHsgdHlwZSBDcm9wIGFzIENyb3BUeXBlIH0gZnJvbSAncmVhY3QtaW1hZ2UtY3JvcCdcbmltcG9ydCAncmVhY3QtaW1hZ2UtY3JvcC9kaXN0L1JlYWN0Q3JvcC5jc3MnXG5cbmltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJy4uLy4uL2Zvcm1zL0Zvcm0vdHlwZXMnXG5cbmltcG9ydCBQbHVzIGZyb20gJy4uLy4uL2ljb25zL1BsdXMnXG5pbXBvcnQgeyB1c2VVcGxvYWRFZGl0cyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9VcGxvYWRFZGl0cydcbmltcG9ydCB7IGVkaXREcmF3ZXJTbHVnIH0gZnJvbSAnLi4vLi4vdmlld3MvY29sbGVjdGlvbnMvRWRpdC9VcGxvYWQnXG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uL0J1dHRvbidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnZWRpdC11cGxvYWQnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIG5hbWU6IHN0cmluZ1xuICBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWRcbiAgdmFsdWU6IHN0cmluZ1xufVxuXG5jb25zdCBJbnB1dCA9IGZvcndhcmRSZWY8SFRNTElucHV0RWxlbWVudCwgUHJvcHM+KChwcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHsgbmFtZSwgb25DaGFuZ2UsIHZhbHVlIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2lucHV0YH0+XG4gICAgICB7bmFtZX1cbiAgICAgIDxpbnB1dFxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICBvbkNoYW5nZT17KGUpID0+IG9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApXG59KVxuXG50eXBlIEZvY2FsUG9zaXRpb24gPSB7XG4gIHg6IG51bWJlclxuICB5OiBudW1iZXJcbn1cblxuZXhwb3J0IGNvbnN0IEVkaXRVcGxvYWQ6IFJlYWN0LkZDPHtcbiAgZG9jPzogRGF0YVxuICBmaWxlTmFtZTogc3RyaW5nXG4gIGZpbGVTcmM6IHN0cmluZ1xuICBpbWFnZUNhY2hlVGFnPzogc3RyaW5nXG4gIHNob3dDcm9wPzogYm9vbGVhblxuICBzaG93Rm9jYWxQb2ludD86IGJvb2xlYW5cbn0+ID0gKHsgZG9jLCBmaWxlTmFtZSwgZmlsZVNyYywgaW1hZ2VDYWNoZVRhZywgc2hvd0Nyb3AsIHNob3dGb2NhbFBvaW50IH0pID0+IHtcbiAgY29uc3QgeyBjbG9zZU1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oWydnZW5lcmFsJywgJ3VwbG9hZCddKVxuICBjb25zdCB7IHVwZGF0ZVVwbG9hZEVkaXRzLCB1cGxvYWRFZGl0cyB9ID0gdXNlVXBsb2FkRWRpdHMoKVxuXG4gIGNvbnN0IFtmb2NhbFBvc2l0aW9uLCBzZXRGb2NhbFBvc2l0aW9uXSA9IHVzZVN0YXRlPEZvY2FsUG9zaXRpb24+KHtcbiAgICB4OiB1cGxvYWRFZGl0cz8uZm9jYWxQb2ludD8ueCB8fCBkb2MuZm9jYWxYIHx8IDUwLFxuICAgIHk6IHVwbG9hZEVkaXRzPy5mb2NhbFBvaW50Py55IHx8IGRvYy5mb2NhbFkgfHwgNTAsXG4gIH0pXG5cbiAgY29uc3QgW2NoZWNrQm91bmRzLCBzZXRDaGVja0JvdW5kc10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcbiAgY29uc3QgW29yaWdpbmFsSGVpZ2h0LCBzZXRPcmlnaW5hbEhlaWdodF0gPSB1c2VTdGF0ZTxudW1iZXI+KDApXG4gIGNvbnN0IFtvcmlnaW5hbFdpZHRoLCBzZXRPcmlnaW5hbFdpZHRoXSA9IHVzZVN0YXRlPG51bWJlcj4oMClcblxuICBjb25zdCBmb2NhbFdyYXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcbiAgY29uc3QgaW1hZ2VSZWYgPSB1c2VSZWY8SFRNTEltYWdlRWxlbWVudCB8IHVuZGVmaW5lZD4oKVxuICBjb25zdCBjcm9wUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkPigpXG5cbiAgY29uc3QgaGVpZ2h0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCB3aWR0aFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50IHwgbnVsbD4obnVsbClcblxuICBjb25zdCBbY3JvcCwgc2V0Q3JvcF0gPSB1c2VTdGF0ZTxDcm9wVHlwZT4oe1xuICAgIGhlaWdodDogMTAwLFxuICAgIGhlaWdodFBpeGVsczogMCxcbiAgICB1bml0OiAnJScsXG4gICAgd2lkdGg6IDEwMCxcbiAgICB3aWR0aFBpeGVsczogMCxcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gIH0pXG5cbiAgY29uc3QgW2ltYWdlTG9hZGVkLCBzZXRJbWFnZUxvYWRlZF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcblxuICBjb25zdCBvbkltYWdlTG9hZCA9IChlKSA9PiB7XG4gICAgc2V0T3JpZ2luYWxIZWlnaHQoZS5jdXJyZW50VGFyZ2V0Lm5hdHVyYWxIZWlnaHQpXG4gICAgc2V0T3JpZ2luYWxXaWR0aChlLmN1cnJlbnRUYXJnZXQubmF0dXJhbFdpZHRoKVxuICAgIHNldEltYWdlTG9hZGVkKHRydWUpXG4gIH1cblxuICBjb25zdCBmaW5lVHVuZUNyb3AgPSAoeyBkaW1lbnNpb24sIHZhbHVlIH06IHsgZGltZW5zaW9uOiAnaGVpZ2h0JyB8ICd3aWR0aCc7IHZhbHVlOiBzdHJpbmcgfSkgPT4ge1xuICAgIGNvbnN0IGludFZhbHVlID0gcGFyc2VJbnQodmFsdWUpXG4gICAgaWYgKGRpbWVuc2lvbiA9PT0gJ3dpZHRoJyAmJiBpbnRWYWx1ZSA+PSBvcmlnaW5hbFdpZHRoKSByZXR1cm4gbnVsbFxuICAgIGlmIChkaW1lbnNpb24gPT09ICdoZWlnaHQnICYmIGludFZhbHVlID49IG9yaWdpbmFsSGVpZ2h0KSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgcGVyY2VudGFnZSA9IDEwMCAqIChpbnRWYWx1ZSAvIChkaW1lbnNpb24gPT09ICd3aWR0aCcgPyBvcmlnaW5hbFdpZHRoIDogb3JpZ2luYWxIZWlnaHQpKVxuXG4gICAgaWYgKHBlcmNlbnRhZ2UgPT09IDEwMCB8fCBwZXJjZW50YWdlID09PSAwKSByZXR1cm4gbnVsbFxuXG4gICAgc2V0Q3JvcCh7XG4gICAgICAuLi5jcm9wLFxuICAgICAgW2RpbWVuc2lvbl06IHBlcmNlbnRhZ2UsXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGZpbmVUdW5lRm9jYWxQb3NpdGlvbiA9ICh7XG4gICAgY29vcmRpbmF0ZSxcbiAgICB2YWx1ZSxcbiAgfToge1xuICAgIGNvb3JkaW5hdGU6ICd4JyB8ICd5J1xuICAgIHZhbHVlOiBzdHJpbmdcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGludFZhbHVlID0gcGFyc2VJbnQodmFsdWUpXG4gICAgaWYgKGludFZhbHVlID49IDAgJiYgaW50VmFsdWUgPD0gMTAwKSB7XG4gICAgICBzZXRGb2NhbFBvc2l0aW9uKChwcmV2UG9zaXRpb24pID0+ICh7IC4uLnByZXZQb3NpdGlvbiwgW2Nvb3JkaW5hdGVdOiBpbnRWYWx1ZSB9KSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBzYXZlRWRpdHMgPSAoKSA9PiB7XG4gICAgdXBkYXRlVXBsb2FkRWRpdHMoe1xuICAgICAgY3JvcDogY3JvcFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIC4uLmNyb3AsXG4gICAgICAgICAgICBoZWlnaHRQaXhlbHM6IE51bWJlcihoZWlnaHRSZWYuY3VycmVudD8udmFsdWUgPz8gY3JvcC5oZWlnaHRQaXhlbHMpLFxuICAgICAgICAgICAgd2lkdGhQaXhlbHM6IE51bWJlcih3aWR0aFJlZi5jdXJyZW50Py52YWx1ZSA/PyBjcm9wLndpZHRoUGl4ZWxzKSxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZm9jYWxQb2ludDogZm9jYWxQb3NpdGlvbiA/IGZvY2FsUG9zaXRpb24gOiB1bmRlZmluZWQsXG4gICAgfSlcbiAgICBjbG9zZU1vZGFsKGVkaXREcmF3ZXJTbHVnKVxuICB9XG5cbiAgY29uc3Qgb25EcmFnRW5kID0gUmVhY3QudXNlQ2FsbGJhY2soKHsgeCwgeSB9KSA9PiB7XG4gICAgc2V0Rm9jYWxQb3NpdGlvbih7IHgsIHkgfSlcbiAgICBzZXRDaGVja0JvdW5kcyhmYWxzZSlcbiAgfSwgW10pXG5cbiAgY29uc3QgY2VudGVyRm9jYWxQb2ludCA9ICgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWN0ID0gZm9jYWxXcmFwUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICBjb25zdCBib3VuZHNSZWN0ID0gc2hvd0Nyb3BcbiAgICAgID8gY3JvcFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICA6IGltYWdlUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICBjb25zdCB4Q2VudGVyID1cbiAgICAgICgoYm91bmRzUmVjdC5sZWZ0IC0gY29udGFpbmVyUmVjdC5sZWZ0ICsgYm91bmRzUmVjdC53aWR0aCAvIDIpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICBjb25zdCB5Q2VudGVyID1cbiAgICAgICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCArIGJvdW5kc1JlY3QuaGVpZ2h0IC8gMikgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICBzZXRGb2NhbFBvc2l0aW9uKHsgeDogeENlbnRlciwgeTogeUNlbnRlciB9KVxuICB9XG5cbiAgY29uc3QgZmlsZVNyY1RvVXNlID0gaW1hZ2VDYWNoZVRhZyA/IGAke2ZpbGVTcmN9PyR7aW1hZ2VDYWNoZVRhZ31gIDogZmlsZVNyY1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2Jhc2VDbGFzc30+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGVyYH0+XG4gICAgICAgIDxoMiB0aXRsZT17YCR7dCgnZ2VuZXJhbDplZGl0aW5nJyl9ICR7ZmlsZU5hbWV9YH0+XG4gICAgICAgICAge3QoJ2dlbmVyYWw6ZWRpdGluZycpfSB7ZmlsZU5hbWV9XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19hY3Rpb25zYH0+XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2FuY2VsJyl9XG4gICAgICAgICAgICBidXR0b25TdHlsZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NhbmNlbGB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjbG9zZU1vZGFsKGVkaXREcmF3ZXJTbHVnKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbDpjYW5jZWwnKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdnZW5lcmFsOmFwcGx5Q2hhbmdlcycpfVxuICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2F2ZWB9XG4gICAgICAgICAgICBkaXNhYmxlZD17IWltYWdlTG9hZGVkfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2F2ZUVkaXRzKCl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3QoJ2dlbmVyYWw6YXBwbHlDaGFuZ2VzJyl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdG9vbFdyYXBgfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Nyb3BgfT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2ZvY2FsLXdyYXBwZXJgfVxuICAgICAgICAgICAgcmVmPXtmb2NhbFdyYXBSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBhc3BlY3RSYXRpbzogYCR7b3JpZ2luYWxXaWR0aCAvIG9yaWdpbmFsSGVpZ2h0fWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtzaG93Q3JvcCA/IChcbiAgICAgICAgICAgICAgPFJlYWN0Q3JvcFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVhY3RDcm9wYH1cbiAgICAgICAgICAgICAgICBjcm9wPXtjcm9wfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoXywgYykgPT4gc2V0Q3JvcChjKX1cbiAgICAgICAgICAgICAgICBvbkNvbXBsZXRlPXsoKSA9PiBzZXRDaGVja0JvdW5kcyh0cnVlKX1cbiAgICAgICAgICAgICAgICByZW5kZXJTZWxlY3Rpb25BZGRvbj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jcm9wLXdpbmRvd2B9IHJlZj17Y3JvcFJlZn0gLz5cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgYWx0PXt0KCd1cGxvYWQ6c2V0Q3JvcEFyZWEnKX1cbiAgICAgICAgICAgICAgICAgIG9uTG9hZD17b25JbWFnZUxvYWR9XG4gICAgICAgICAgICAgICAgICByZWY9e2ltYWdlUmVmfVxuICAgICAgICAgICAgICAgICAgc3JjPXtmaWxlU3JjVG9Vc2V9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9SZWFjdENyb3A+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgYWx0PXt0KCd1cGxvYWQ6c2V0Rm9jYWxQb2ludCcpfVxuICAgICAgICAgICAgICAgIG9uTG9hZD17b25JbWFnZUxvYWR9XG4gICAgICAgICAgICAgICAgcmVmPXtpbWFnZVJlZn1cbiAgICAgICAgICAgICAgICBzcmM9e2ZpbGVTcmNUb1VzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7c2hvd0ZvY2FsUG9pbnQgJiYgKFxuICAgICAgICAgICAgICA8RHJhZ2dhYmxlRWxlbWVudFxuICAgICAgICAgICAgICAgIGJvdW5kc1JlZj17c2hvd0Nyb3AgPyBjcm9wUmVmIDogaW1hZ2VSZWZ9XG4gICAgICAgICAgICAgICAgY2hlY2tCb3VuZHM9e3Nob3dDcm9wID8gY2hlY2tCb3VuZHMgOiBmYWxzZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2ZvY2FsUG9pbnRgfVxuICAgICAgICAgICAgICAgIGNvbnRhaW5lclJlZj17Zm9jYWxXcmFwUmVmfVxuICAgICAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbj17Zm9jYWxQb3NpdGlvbn1cbiAgICAgICAgICAgICAgICBvbkRyYWdFbmQ9e29uRHJhZ0VuZH1cbiAgICAgICAgICAgICAgICBzZXRDaGVja0JvdW5kcz17c2hvd0Nyb3AgPyBzZXRDaGVja0JvdW5kcyA6IGZhbHNlfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBsdXMgLz5cbiAgICAgICAgICAgICAgPC9EcmFnZ2FibGVFbGVtZW50PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHsoc2hvd0Nyb3AgfHwgc2hvd0ZvY2FsUG9pbnQpICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2lkZWJhcmB9PlxuICAgICAgICAgICAge3Nob3dDcm9wICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwV3JhcGB9PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdGl0bGVXcmFwYH0+XG4gICAgICAgICAgICAgICAgICAgIDxoMz57dCgndXBsb2FkOmNyb3AnKX08L2gzPlxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3Jlc2V0YH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q3JvcCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRQaXhlbHM6IG9yaWdpbmFsSGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0OiAnJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoUGl4ZWxzOiBvcmlnaW5hbFdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnZ2VuZXJhbDpyZXNldCcpfVxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZGVzY3JpcHRpb25gfT5cbiAgICAgICAgICAgICAgICAgIHt0KCd1cGxvYWQ6Y3JvcFRvb2xEZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faW5wdXRzV3JhcGB9PlxuICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2Ake3QoJ3VwbG9hZDp3aWR0aCcpfSAocHgpYH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVDcm9wKHsgZGltZW5zaW9uOiAnd2lkdGgnLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt3aWR0aFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9eygoY3JvcC53aWR0aCAvIDEwMCkgKiBvcmlnaW5hbFdpZHRoKS50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtgJHt0KCd1cGxvYWQ6aGVpZ2h0Jyl9IChweClgfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiBmaW5lVHVuZUNyb3AoeyBkaW1lbnNpb246ICdoZWlnaHQnLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtoZWlnaHRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXsoKGNyb3AuaGVpZ2h0IC8gMTAwKSAqIG9yaWdpbmFsSGVpZ2h0KS50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7c2hvd0ZvY2FsUG9pbnQgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXBXcmFwYH0+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190aXRsZVdyYXBgfT5cbiAgICAgICAgICAgICAgICAgICAgPGgzPnt0KCd1cGxvYWQ6Zm9jYWxQb2ludCcpfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBidXR0b25TdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVzZXRgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NlbnRlckZvY2FsUG9pbnR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnZ2VuZXJhbDpyZXNldCcpfVxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZGVzY3JpcHRpb25gfT5cbiAgICAgICAgICAgICAgICAgIHt0KCd1cGxvYWQ6Zm9jYWxQb2ludERlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dHNXcmFwYH0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlggJVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lRm9jYWxQb3NpdGlvbih7IGNvb3JkaW5hdGU6ICd4JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb2NhbFBvc2l0aW9uLngudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlkgJVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lRm9jYWxQb3NpdGlvbih7IGNvb3JkaW5hdGU6ICd5JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb2NhbFBvc2l0aW9uLnkudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyYWdnYWJsZUVsZW1lbnQgPSAoe1xuICBib3VuZHNSZWYsXG4gIGNoZWNrQm91bmRzLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBjb250YWluZXJSZWYsXG4gIGluaXRpYWxQb3NpdGlvbiA9IHsgeDogNTAsIHk6IDUwIH0sXG4gIG9uRHJhZ0VuZCxcbiAgc2V0Q2hlY2tCb3VuZHMsXG59KSA9PiB7XG4gIGNvbnN0IFtwb3NpdGlvbiwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGUoeyB4OiBpbml0aWFsUG9zaXRpb24ueCwgeTogaW5pdGlhbFBvc2l0aW9uLnkgfSlcbiAgY29uc3QgW2lzRHJhZ2dpbmcsIHNldElzRHJhZ2dpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGRyYWdSZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcblxuICBjb25zdCBnZXRDb29yZGluYXRlcyA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChtb3VzZVhBcmc/OiBudW1iZXIsIG1vdXNlWUFyZz86IG51bWJlciwgcmVjZW50ZXI/OiBib29sZWFuKSA9PiB7XG4gICAgICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IGJvdW5kc1JlY3QgPSBib3VuZHNSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgbW91c2VYID0gbW91c2VYQXJnID8/IGJvdW5kc1JlY3QubGVmdFxuICAgICAgY29uc3QgbW91c2VZID0gbW91c2VZQXJnID8/IGJvdW5kc1JlY3QudG9wXG5cbiAgICAgIGNvbnN0IHhPdXRPZkJvdW5kcyA9IG1vdXNlWCA8IGJvdW5kc1JlY3QubGVmdCB8fCBtb3VzZVggPiBib3VuZHNSZWN0LnJpZ2h0XG4gICAgICBjb25zdCB5T3V0T2ZCb3VuZHMgPSBtb3VzZVkgPCBib3VuZHNSZWN0LnRvcCB8fCBtb3VzZVkgPiBib3VuZHNSZWN0LmJvdHRvbVxuXG4gICAgICBsZXQgeCA9ICgobW91c2VYIC0gY29udGFpbmVyUmVjdC5sZWZ0KSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgICBsZXQgeSA9ICgobW91c2VZIC0gY29udGFpbmVyUmVjdC50b3ApIC8gY29udGFpbmVyUmVjdC5oZWlnaHQpICogMTAwXG4gICAgICBjb25zdCB4Q2VudGVyID1cbiAgICAgICAgKChib3VuZHNSZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LmxlZnQgKyBib3VuZHNSZWN0LndpZHRoIC8gMikgLyBjb250YWluZXJSZWN0LndpZHRoKSAqIDEwMFxuICAgICAgY29uc3QgeUNlbnRlciA9XG4gICAgICAgICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCArIGJvdW5kc1JlY3QuaGVpZ2h0IC8gMikgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICAgIGlmICh4T3V0T2ZCb3VuZHMgfHwgeU91dE9mQm91bmRzKSB7XG4gICAgICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG4gICAgICAgIGlmIChtb3VzZVggPCBib3VuZHNSZWN0LmxlZnQpIHtcbiAgICAgICAgICB4ID0gKChib3VuZHNSZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LmxlZnQpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICAgICAgfSBlbHNlIGlmIChtb3VzZVggPiBib3VuZHNSZWN0LnJpZ2h0KSB7XG4gICAgICAgICAgeCA9XG4gICAgICAgICAgICAoKGNvbnRhaW5lclJlY3Qud2lkdGggLSAoY29udGFpbmVyUmVjdC5yaWdodCAtIGJvdW5kc1JlY3QucmlnaHQpKSAvXG4gICAgICAgICAgICAgIGNvbnRhaW5lclJlY3Qud2lkdGgpICpcbiAgICAgICAgICAgIDEwMFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vdXNlWSA8IGJvdW5kc1JlY3QudG9wKSB7XG4gICAgICAgICAgeSA9ICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCkgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICAgICAgfSBlbHNlIGlmIChtb3VzZVkgPiBib3VuZHNSZWN0LmJvdHRvbSkge1xuICAgICAgICAgIHkgPVxuICAgICAgICAgICAgKChjb250YWluZXJSZWN0LmhlaWdodCAtIChjb250YWluZXJSZWN0LmJvdHRvbSAtIGJvdW5kc1JlY3QuYm90dG9tKSkgL1xuICAgICAgICAgICAgICBjb250YWluZXJSZWN0LmhlaWdodCkgKlxuICAgICAgICAgICAgMTAwXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVjZW50ZXIpIHtcbiAgICAgICAgICB4ID0geE91dE9mQm91bmRzID8geENlbnRlciA6IHhcbiAgICAgICAgICB5ID0geU91dE9mQm91bmRzID8geUNlbnRlciA6IHlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4geyB4LCB5IH1cbiAgICB9LFxuICAgIFtib3VuZHNSZWYsIGNvbnRhaW5lclJlZl0sXG4gIClcblxuICBjb25zdCBoYW5kbGVNb3VzZURvd24gPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgc2V0SXNEcmFnZ2luZyh0cnVlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlTW91c2VNb3ZlID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKCFpc0RyYWdnaW5nKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSlcblxuICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICB9XG5cbiAgY29uc3Qgb25Ecm9wID0gKCkgPT4ge1xuICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG4gICAgb25EcmFnRW5kKHBvc2l0aW9uKVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNEcmFnZ2luZyB8fCAhZHJhZ1JlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoY2hlY2tCb3VuZHMpIHtcbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCBsZWZ0LCB0b3AsIHdpZHRoIH0gPSBkcmFnUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMobGVmdCArIHdpZHRoIC8gMiwgdG9wICsgaGVpZ2h0IC8gMiwgdHJ1ZSlcbiAgICAgIG9uRHJhZ0VuZCh7IHgsIHkgfSlcbiAgICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICAgICAgc2V0Q2hlY2tCb3VuZHMoZmFsc2UpXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH0sIFtnZXRDb29yZGluYXRlcywgaXNEcmFnZ2luZywgY2hlY2tCb3VuZHMsIHNldENoZWNrQm91bmRzLCBwb3NpdGlvbi54LCBwb3NpdGlvbi55LCBvbkRyYWdFbmRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0UG9zaXRpb24oeyB4OiBpbml0aWFsUG9zaXRpb24ueCwgeTogaW5pdGlhbFBvc2l0aW9uLnkgfSlcbiAgfSwgW2luaXRpYWxQb3NpdGlvbi54LCBpbml0aWFsUG9zaXRpb24ueV0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e1tcbiAgICAgICAgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lcmAsXG4gICAgICAgIGlzRHJhZ2dpbmcgJiYgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lci0tZHJhZ2dpbmdgLFxuICAgICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyl9XG4gICAgICBvbk1vdXNlTW92ZT17aGFuZGxlTW91c2VNb3ZlfVxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3NOYW1lPXtbYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlYCwgY2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgICBvbk1vdXNlRG93bj17aGFuZGxlTW91c2VEb3dufVxuICAgICAgICBvbk1vdXNlVXA9e29uRHJvcH1cbiAgICAgICAgcmVmPXtkcmFnUmVmfVxuICAgICAgICBzdHlsZT17eyBsZWZ0OiBgJHtwb3NpdGlvbi54fSVgLCB0b3A6IGAke3Bvc2l0aW9uLnl9JWAgfX1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiAvPlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiRWRpdFVwbG9hZCIsImJhc2VDbGFzcyIsIklucHV0IiwiZm9yd2FyZFJlZiIsInByb3BzIiwicmVmIiwibmFtZSIsIm9uQ2hhbmdlIiwidmFsdWUiLCJkaXYiLCJjbGFzc05hbWUiLCJpbnB1dCIsImUiLCJ0YXJnZXQiLCJ0eXBlIiwiZG9jIiwiZmlsZU5hbWUiLCJmaWxlU3JjIiwiaW1hZ2VDYWNoZVRhZyIsInNob3dDcm9wIiwic2hvd0ZvY2FsUG9pbnQiLCJjbG9zZU1vZGFsIiwidXNlTW9kYWwiLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJ1cGRhdGVVcGxvYWRFZGl0cyIsInVwbG9hZEVkaXRzIiwidXNlVXBsb2FkRWRpdHMiLCJmb2NhbFBvc2l0aW9uIiwic2V0Rm9jYWxQb3NpdGlvbiIsInVzZVN0YXRlIiwieCIsImZvY2FsUG9pbnQiLCJmb2NhbFgiLCJ5IiwiZm9jYWxZIiwiY2hlY2tCb3VuZHMiLCJzZXRDaGVja0JvdW5kcyIsIm9yaWdpbmFsSGVpZ2h0Iiwic2V0T3JpZ2luYWxIZWlnaHQiLCJvcmlnaW5hbFdpZHRoIiwic2V0T3JpZ2luYWxXaWR0aCIsImZvY2FsV3JhcFJlZiIsInVzZVJlZiIsImltYWdlUmVmIiwiY3JvcFJlZiIsImhlaWdodFJlZiIsIndpZHRoUmVmIiwiY3JvcCIsInNldENyb3AiLCJoZWlnaHQiLCJoZWlnaHRQaXhlbHMiLCJ1bml0Iiwid2lkdGgiLCJ3aWR0aFBpeGVscyIsImltYWdlTG9hZGVkIiwic2V0SW1hZ2VMb2FkZWQiLCJvbkltYWdlTG9hZCIsImN1cnJlbnRUYXJnZXQiLCJuYXR1cmFsSGVpZ2h0IiwibmF0dXJhbFdpZHRoIiwiZmluZVR1bmVDcm9wIiwiZGltZW5zaW9uIiwiaW50VmFsdWUiLCJwYXJzZUludCIsInBlcmNlbnRhZ2UiLCJmaW5lVHVuZUZvY2FsUG9zaXRpb24iLCJjb29yZGluYXRlIiwicHJldlBvc2l0aW9uIiwic2F2ZUVkaXRzIiwiTnVtYmVyIiwiY3VycmVudCIsInVuZGVmaW5lZCIsImVkaXREcmF3ZXJTbHVnIiwib25EcmFnRW5kIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsImNlbnRlckZvY2FsUG9pbnQiLCJjb250YWluZXJSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiYm91bmRzUmVjdCIsInhDZW50ZXIiLCJsZWZ0IiwieUNlbnRlciIsInRvcCIsImZpbGVTcmNUb1VzZSIsImgyIiwidGl0bGUiLCJCdXR0b24iLCJhcmlhLWxhYmVsIiwiYnV0dG9uU3R5bGUiLCJvbkNsaWNrIiwiZGlzYWJsZWQiLCJzdHlsZSIsImFzcGVjdFJhdGlvIiwiUmVhY3RDcm9wIiwiXyIsImMiLCJvbkNvbXBsZXRlIiwicmVuZGVyU2VsZWN0aW9uQWRkb24iLCJpbWciLCJhbHQiLCJvbkxvYWQiLCJzcmMiLCJEcmFnZ2FibGVFbGVtZW50IiwiYm91bmRzUmVmIiwiY29udGFpbmVyUmVmIiwiaW5pdGlhbFBvc2l0aW9uIiwiUGx1cyIsImgzIiwic3BhbiIsInRvRml4ZWQiLCJjaGlsZHJlbiIsInBvc2l0aW9uIiwic2V0UG9zaXRpb24iLCJpc0RyYWdnaW5nIiwic2V0SXNEcmFnZ2luZyIsImRyYWdSZWYiLCJnZXRDb29yZGluYXRlcyIsIm1vdXNlWEFyZyIsIm1vdXNlWUFyZyIsInJlY2VudGVyIiwibW91c2VYIiwibW91c2VZIiwieE91dE9mQm91bmRzIiwicmlnaHQiLCJ5T3V0T2ZCb3VuZHMiLCJib3R0b20iLCJoYW5kbGVNb3VzZURvd24iLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlTW91c2VNb3ZlIiwiY2xpZW50WCIsImNsaWVudFkiLCJvbkRyb3AiLCJ1c2VFZmZlY3QiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsIm9uTW91c2VNb3ZlIiwiYnV0dG9uIiwib25Nb3VzZURvd24iLCJvbk1vdXNlVXAiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7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
|
|
406
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0VkaXRVcGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1vZGFsIH0gZnJvbSAnQGZhY2VsZXNzLXVpL21vZGFsJ1xuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCBSZWFjdENyb3AgZnJvbSAncmVhY3QtaW1hZ2UtY3JvcCdcbmltcG9ydCAncmVhY3QtaW1hZ2UtY3JvcC9kaXN0L1JlYWN0Q3JvcC5jc3MnXG5cbmltcG9ydCB0eXBlIHsgVXBsb2FkRWRpdHMgfSBmcm9tICcuLi8uLi8uLi8uLi91cGxvYWRzL3R5cGVzJ1xuXG5pbXBvcnQgUGx1cyBmcm9tICcuLi8uLi9pY29ucy9QbHVzJ1xuaW1wb3J0IHsgZWRpdERyYXdlclNsdWcgfSBmcm9tICcuLi8uLi92aWV3cy9jb2xsZWN0aW9ucy9FZGl0L1VwbG9hZCdcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vQnV0dG9uJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdlZGl0LXVwbG9hZCdcblxudHlwZSBQcm9wcyA9IHtcbiAgbmFtZTogc3RyaW5nXG4gIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZFxuICB2YWx1ZTogc3RyaW5nXG59XG5cbmNvbnN0IElucHV0ID0gZm9yd2FyZFJlZjxIVE1MSW5wdXRFbGVtZW50LCBQcm9wcz4oKHByb3BzLCByZWYpID0+IHtcbiAgY29uc3QgeyBuYW1lLCBvbkNoYW5nZSwgdmFsdWUgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faW5wdXRgfT5cbiAgICAgIHtuYW1lfVxuICAgICAgPGlucHV0XG4gICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gb25DaGFuZ2UoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIClcbn0pXG5cbnR5cGUgRm9jYWxQb3NpdGlvbiA9IHtcbiAgeDogbnVtYmVyXG4gIHk6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBFZGl0VXBsb2FkUHJvcHMgPSB7XG4gIGZpbGVOYW1lOiBzdHJpbmdcbiAgZmlsZVNyYzogc3RyaW5nXG4gIGltYWdlQ2FjaGVUYWc/OiBzdHJpbmdcbiAgaW5pdGlhbENyb3A/OiBVcGxvYWRFZGl0c1snY3JvcCddXG4gIGluaXRpYWxGb2NhbFBvaW50PzogRm9jYWxQb3NpdGlvblxuICBvblNhdmU/OiAodXBsb2FkRWRpdHM6IFVwbG9hZEVkaXRzKSA9PiB2b2lkXG4gIHNob3dDcm9wPzogYm9vbGVhblxuICBzaG93Rm9jYWxQb2ludD86IGJvb2xlYW5cbn1cblxuY29uc3QgZGVmYXVsdENyb3A6IFVwbG9hZEVkaXRzWydjcm9wJ10gPSB7XG4gIGhlaWdodDogMTAwLFxuICB1bml0OiAnJScsXG4gIHdpZHRoOiAxMDAsXG4gIHg6IDAsXG4gIHk6IDAsXG59XG5cbmV4cG9ydCBjb25zdCBFZGl0VXBsb2FkOiBSZWFjdC5GQzxFZGl0VXBsb2FkUHJvcHM+ID0gKHtcbiAgZmlsZU5hbWUsXG4gIGZpbGVTcmMsXG4gIGltYWdlQ2FjaGVUYWcsXG4gIGluaXRpYWxDcm9wLFxuICBpbml0aWFsRm9jYWxQb2ludCxcbiAgb25TYXZlLFxuICBzaG93Q3JvcCxcbiAgc2hvd0ZvY2FsUG9pbnQsXG59KSA9PiB7XG4gIGNvbnN0IHsgY2xvc2VNb2RhbCB9ID0gdXNlTW9kYWwoKVxuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsnZ2VuZXJhbCcsICd1cGxvYWQnXSlcblxuICBjb25zdCBbY3JvcCwgc2V0Q3JvcF0gPSB1c2VTdGF0ZTxVcGxvYWRFZGl0c1snY3JvcCddPigoKSA9PiAoe1xuICAgIC4uLmRlZmF1bHRDcm9wLFxuICAgIC4uLihpbml0aWFsQ3JvcCB8fCB7fSksXG4gIH0pKVxuXG4gIGNvbnN0IGRlZmF1bHRGb2NhbFBvc2l0aW9uOiBGb2NhbFBvc2l0aW9uID0ge1xuICAgIHg6IDUwLFxuICAgIHk6IDUwLFxuICB9XG5cbiAgY29uc3QgW2ZvY2FsUG9zaXRpb24sIHNldEZvY2FsUG9zaXRpb25dID0gdXNlU3RhdGU8Rm9jYWxQb3NpdGlvbj4oKCkgPT4gKHtcbiAgICAuLi5kZWZhdWx0Rm9jYWxQb3NpdGlvbixcbiAgICAuLi5pbml0aWFsRm9jYWxQb2ludCxcbiAgfSkpXG5cbiAgY29uc3QgW2NoZWNrQm91bmRzLCBzZXRDaGVja0JvdW5kc10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcbiAgY29uc3QgW3VuY3JvcHBlZFBpeGVsSGVpZ2h0LCBzZXRVbmNyb3BwZWRQaXhlbEhlaWdodF0gPSB1c2VTdGF0ZTxudW1iZXI+KDApXG4gIGNvbnN0IFt1bmNyb3BwZWRQaXhlbFdpZHRoLCBzZXRVbmNyb3BwZWRQaXhlbFdpZHRoXSA9IHVzZVN0YXRlPG51bWJlcj4oMClcblxuICBjb25zdCBmb2NhbFdyYXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcbiAgY29uc3QgaW1hZ2VSZWYgPSB1c2VSZWY8SFRNTEltYWdlRWxlbWVudCB8IHVuZGVmaW5lZD4oKVxuICBjb25zdCBjcm9wUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkPigpXG5cbiAgY29uc3QgaGVpZ2h0SW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHdpZHRoSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudCB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgW2ltYWdlTG9hZGVkLCBzZXRJbWFnZUxvYWRlZF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcblxuICBjb25zdCBvbkltYWdlTG9hZCA9IChlKSA9PiB7XG4gICAgLy8gc2V0IHRoZSBkZWZhdWx0IGltYWdlIGhlaWdodC93aWR0aCBvbiBsb2FkXG4gICAgc2V0VW5jcm9wcGVkUGl4ZWxIZWlnaHQoZS5jdXJyZW50VGFyZ2V0Lm5hdHVyYWxIZWlnaHQpXG4gICAgc2V0VW5jcm9wcGVkUGl4ZWxXaWR0aChlLmN1cnJlbnRUYXJnZXQubmF0dXJhbFdpZHRoKVxuICAgIHNldEltYWdlTG9hZGVkKHRydWUpXG4gIH1cblxuICBjb25zdCBmaW5lVHVuZUNyb3AgPSAoeyBkaW1lbnNpb24sIHZhbHVlIH06IHsgZGltZW5zaW9uOiAnaGVpZ2h0JyB8ICd3aWR0aCc7IHZhbHVlOiBzdHJpbmcgfSkgPT4ge1xuICAgIGNvbnN0IGludFZhbHVlID0gcGFyc2VJbnQodmFsdWUpXG4gICAgaWYgKGRpbWVuc2lvbiA9PT0gJ3dpZHRoJyAmJiBpbnRWYWx1ZSA+PSB1bmNyb3BwZWRQaXhlbFdpZHRoKSByZXR1cm4gbnVsbFxuICAgIGlmIChkaW1lbnNpb24gPT09ICdoZWlnaHQnICYmIGludFZhbHVlID49IHVuY3JvcHBlZFBpeGVsSGVpZ2h0KSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgcGVyY2VudGFnZSA9XG4gICAgICAxMDAgKiAoaW50VmFsdWUgLyAoZGltZW5zaW9uID09PSAnd2lkdGgnID8gdW5jcm9wcGVkUGl4ZWxXaWR0aCA6IHVuY3JvcHBlZFBpeGVsSGVpZ2h0KSlcblxuICAgIGlmIChwZXJjZW50YWdlID09PSAxMDAgfHwgcGVyY2VudGFnZSA9PT0gMCkgcmV0dXJuIG51bGxcblxuICAgIHNldENyb3Aoe1xuICAgICAgLi4uY3JvcCxcbiAgICAgIFtkaW1lbnNpb25dOiBwZXJjZW50YWdlLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBmaW5lVHVuZUZvY2FsUG9zaXRpb24gPSAoe1xuICAgIGNvb3JkaW5hdGUsXG4gICAgdmFsdWUsXG4gIH06IHtcbiAgICBjb29yZGluYXRlOiAneCcgfCAneSdcbiAgICB2YWx1ZTogc3RyaW5nXG4gIH0pID0+IHtcbiAgICBjb25zdCBpbnRWYWx1ZSA9IHBhcnNlSW50KHZhbHVlKVxuICAgIGlmIChpbnRWYWx1ZSA+PSAwICYmIGludFZhbHVlIDw9IDEwMCkge1xuICAgICAgc2V0Rm9jYWxQb3NpdGlvbigocHJldlBvc2l0aW9uKSA9PiAoeyAuLi5wcmV2UG9zaXRpb24sIFtjb29yZGluYXRlXTogaW50VmFsdWUgfSkpXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2F2ZUVkaXRzID0gKCkgPT4ge1xuICAgIGlmICh0eXBlb2Ygb25TYXZlID09PSAnZnVuY3Rpb24nKVxuICAgICAgb25TYXZlKHtcbiAgICAgICAgY3JvcDogY3JvcCA/IGNyb3AgOiB1bmRlZmluZWQsXG4gICAgICAgIGZvY2FsUG9pbnQ6IGZvY2FsUG9zaXRpb24sXG4gICAgICAgIGhlaWdodEluUGl4ZWxzOiBOdW1iZXIoaGVpZ2h0SW5wdXRSZWY/LmN1cnJlbnQ/LnZhbHVlID8/IHVuY3JvcHBlZFBpeGVsSGVpZ2h0KSxcbiAgICAgICAgd2lkdGhJblBpeGVsczogTnVtYmVyKHdpZHRoSW5wdXRSZWY/LmN1cnJlbnQ/LnZhbHVlID8/IHVuY3JvcHBlZFBpeGVsV2lkdGgpLFxuICAgICAgfSlcbiAgICBjbG9zZU1vZGFsKGVkaXREcmF3ZXJTbHVnKVxuICB9XG5cbiAgY29uc3Qgb25EcmFnRW5kID0gUmVhY3QudXNlQ2FsbGJhY2soKHsgeCwgeSB9KSA9PiB7XG4gICAgc2V0Rm9jYWxQb3NpdGlvbih7IHgsIHkgfSlcbiAgICBzZXRDaGVja0JvdW5kcyhmYWxzZSlcbiAgfSwgW10pXG5cbiAgY29uc3QgY2VudGVyRm9jYWxQb2ludCA9ICgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWN0ID0gZm9jYWxXcmFwUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICBjb25zdCBib3VuZHNSZWN0ID0gc2hvd0Nyb3BcbiAgICAgID8gY3JvcFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICA6IGltYWdlUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICBjb25zdCB4Q2VudGVyID1cbiAgICAgICgoYm91bmRzUmVjdC5sZWZ0IC0gY29udGFpbmVyUmVjdC5sZWZ0ICsgYm91bmRzUmVjdC53aWR0aCAvIDIpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICBjb25zdCB5Q2VudGVyID1cbiAgICAgICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCArIGJvdW5kc1JlY3QuaGVpZ2h0IC8gMikgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICBzZXRGb2NhbFBvc2l0aW9uKHsgeDogeENlbnRlciwgeTogeUNlbnRlciB9KVxuICB9XG5cbiAgY29uc3QgZmlsZVNyY1RvVXNlID0gaW1hZ2VDYWNoZVRhZyA/IGAke2ZpbGVTcmN9PyR7aW1hZ2VDYWNoZVRhZ31gIDogZmlsZVNyY1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2Jhc2VDbGFzc30+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGVyYH0+XG4gICAgICAgIDxoMiB0aXRsZT17YCR7dCgnZ2VuZXJhbDplZGl0aW5nJyl9ICR7ZmlsZU5hbWV9YH0+XG4gICAgICAgICAge3QoJ2dlbmVyYWw6ZWRpdGluZycpfSB7ZmlsZU5hbWV9XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19hY3Rpb25zYH0+XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2FuY2VsJyl9XG4gICAgICAgICAgICBidXR0b25TdHlsZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NhbmNlbGB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjbG9zZU1vZGFsKGVkaXREcmF3ZXJTbHVnKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbDpjYW5jZWwnKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdnZW5lcmFsOmFwcGx5Q2hhbmdlcycpfVxuICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2F2ZWB9XG4gICAgICAgICAgICBkaXNhYmxlZD17IWltYWdlTG9hZGVkfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2F2ZUVkaXRzKCl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3QoJ2dlbmVyYWw6YXBwbHlDaGFuZ2VzJyl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdG9vbFdyYXBgfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Nyb3BgfT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2ZvY2FsLXdyYXBwZXJgfVxuICAgICAgICAgICAgcmVmPXtmb2NhbFdyYXBSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBhc3BlY3RSYXRpbzogYCR7dW5jcm9wcGVkUGl4ZWxXaWR0aCAvIHVuY3JvcHBlZFBpeGVsSGVpZ2h0fWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtzaG93Q3JvcCA/IChcbiAgICAgICAgICAgICAgPFJlYWN0Q3JvcFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVhY3RDcm9wYH1cbiAgICAgICAgICAgICAgICBjcm9wPXtjcm9wfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoXywgYykgPT4gc2V0Q3JvcChjKX1cbiAgICAgICAgICAgICAgICBvbkNvbXBsZXRlPXsoKSA9PiBzZXRDaGVja0JvdW5kcyh0cnVlKX1cbiAgICAgICAgICAgICAgICByZW5kZXJTZWxlY3Rpb25BZGRvbj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jcm9wLXdpbmRvd2B9IHJlZj17Y3JvcFJlZn0gLz5cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgYWx0PXt0KCd1cGxvYWQ6c2V0Q3JvcEFyZWEnKX1cbiAgICAgICAgICAgICAgICAgIG9uTG9hZD17b25JbWFnZUxvYWR9XG4gICAgICAgICAgICAgICAgICByZWY9e2ltYWdlUmVmfVxuICAgICAgICAgICAgICAgICAgc3JjPXtmaWxlU3JjVG9Vc2V9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9SZWFjdENyb3A+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgYWx0PXt0KCd1cGxvYWQ6c2V0Rm9jYWxQb2ludCcpfVxuICAgICAgICAgICAgICAgIG9uTG9hZD17b25JbWFnZUxvYWR9XG4gICAgICAgICAgICAgICAgcmVmPXtpbWFnZVJlZn1cbiAgICAgICAgICAgICAgICBzcmM9e2ZpbGVTcmNUb1VzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7c2hvd0ZvY2FsUG9pbnQgJiYgKFxuICAgICAgICAgICAgICA8RHJhZ2dhYmxlRWxlbWVudFxuICAgICAgICAgICAgICAgIGJvdW5kc1JlZj17c2hvd0Nyb3AgPyBjcm9wUmVmIDogaW1hZ2VSZWZ9XG4gICAgICAgICAgICAgICAgY2hlY2tCb3VuZHM9e3Nob3dDcm9wID8gY2hlY2tCb3VuZHMgOiBmYWxzZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2ZvY2FsUG9pbnRgfVxuICAgICAgICAgICAgICAgIGNvbnRhaW5lclJlZj17Zm9jYWxXcmFwUmVmfVxuICAgICAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbj17Zm9jYWxQb3NpdGlvbn1cbiAgICAgICAgICAgICAgICBvbkRyYWdFbmQ9e29uRHJhZ0VuZH1cbiAgICAgICAgICAgICAgICBzZXRDaGVja0JvdW5kcz17c2hvd0Nyb3AgPyBzZXRDaGVja0JvdW5kcyA6IGZhbHNlfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBsdXMgLz5cbiAgICAgICAgICAgICAgPC9EcmFnZ2FibGVFbGVtZW50PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHsoc2hvd0Nyb3AgfHwgc2hvd0ZvY2FsUG9pbnQpICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2lkZWJhcmB9PlxuICAgICAgICAgICAge3Nob3dDcm9wICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwV3JhcGB9PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdGl0bGVXcmFwYH0+XG4gICAgICAgICAgICAgICAgICAgIDxoMz57dCgndXBsb2FkOmNyb3AnKX08L2gzPlxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3Jlc2V0YH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q3JvcCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0OiAnJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdnZW5lcmFsOnJlc2V0Jyl9XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19kZXNjcmlwdGlvbmB9PlxuICAgICAgICAgICAgICAgICAge3QoJ3VwbG9hZDpjcm9wVG9vbERlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dHNXcmFwYH0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT17YCR7dCgndXBsb2FkOndpZHRoJyl9IChweClgfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiBmaW5lVHVuZUNyb3AoeyBkaW1lbnNpb246ICd3aWR0aCcsIHZhbHVlIH0pfVxuICAgICAgICAgICAgICAgICAgICByZWY9e3dpZHRoSW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXsoKGNyb3Aud2lkdGggLyAxMDApICogdW5jcm9wcGVkUGl4ZWxXaWR0aCkudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT17YCR7dCgndXBsb2FkOmhlaWdodCcpfSAocHgpYH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVDcm9wKHsgZGltZW5zaW9uOiAnaGVpZ2h0JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aGVpZ2h0SW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXsoKGNyb3AuaGVpZ2h0IC8gMTAwKSAqIHVuY3JvcHBlZFBpeGVsSGVpZ2h0KS50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7c2hvd0ZvY2FsUG9pbnQgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXBXcmFwYH0+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190aXRsZVdyYXBgfT5cbiAgICAgICAgICAgICAgICAgICAgPGgzPnt0KCd1cGxvYWQ6Zm9jYWxQb2ludCcpfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBidXR0b25TdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVzZXRgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NlbnRlckZvY2FsUG9pbnR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnZ2VuZXJhbDpyZXNldCcpfVxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZGVzY3JpcHRpb25gfT5cbiAgICAgICAgICAgICAgICAgIHt0KCd1cGxvYWQ6Zm9jYWxQb2ludERlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dHNXcmFwYH0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlggJVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lRm9jYWxQb3NpdGlvbih7IGNvb3JkaW5hdGU6ICd4JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb2NhbFBvc2l0aW9uLngudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlkgJVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lRm9jYWxQb3NpdGlvbih7IGNvb3JkaW5hdGU6ICd5JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb2NhbFBvc2l0aW9uLnkudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyYWdnYWJsZUVsZW1lbnQgPSAoe1xuICBib3VuZHNSZWYsXG4gIGNoZWNrQm91bmRzLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBjb250YWluZXJSZWYsXG4gIGluaXRpYWxQb3NpdGlvbiA9IHsgeDogNTAsIHk6IDUwIH0sXG4gIG9uRHJhZ0VuZCxcbiAgc2V0Q2hlY2tCb3VuZHMsXG59KSA9PiB7XG4gIGNvbnN0IFtwb3NpdGlvbiwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGUoeyB4OiBpbml0aWFsUG9zaXRpb24ueCwgeTogaW5pdGlhbFBvc2l0aW9uLnkgfSlcbiAgY29uc3QgW2lzRHJhZ2dpbmcsIHNldElzRHJhZ2dpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGRyYWdSZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcblxuICBjb25zdCBnZXRDb29yZGluYXRlcyA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChtb3VzZVhBcmc/OiBudW1iZXIsIG1vdXNlWUFyZz86IG51bWJlciwgcmVjZW50ZXI/OiBib29sZWFuKSA9PiB7XG4gICAgICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IGJvdW5kc1JlY3QgPSBib3VuZHNSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgbW91c2VYID0gbW91c2VYQXJnID8/IGJvdW5kc1JlY3QubGVmdFxuICAgICAgY29uc3QgbW91c2VZID0gbW91c2VZQXJnID8/IGJvdW5kc1JlY3QudG9wXG5cbiAgICAgIGNvbnN0IHhPdXRPZkJvdW5kcyA9IG1vdXNlWCA8IGJvdW5kc1JlY3QubGVmdCB8fCBtb3VzZVggPiBib3VuZHNSZWN0LnJpZ2h0XG4gICAgICBjb25zdCB5T3V0T2ZCb3VuZHMgPSBtb3VzZVkgPCBib3VuZHNSZWN0LnRvcCB8fCBtb3VzZVkgPiBib3VuZHNSZWN0LmJvdHRvbVxuXG4gICAgICBsZXQgeCA9ICgobW91c2VYIC0gY29udGFpbmVyUmVjdC5sZWZ0KSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgICBsZXQgeSA9ICgobW91c2VZIC0gY29udGFpbmVyUmVjdC50b3ApIC8gY29udGFpbmVyUmVjdC5oZWlnaHQpICogMTAwXG4gICAgICBjb25zdCB4Q2VudGVyID1cbiAgICAgICAgKChib3VuZHNSZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LmxlZnQgKyBib3VuZHNSZWN0LndpZHRoIC8gMikgLyBjb250YWluZXJSZWN0LndpZHRoKSAqIDEwMFxuICAgICAgY29uc3QgeUNlbnRlciA9XG4gICAgICAgICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCArIGJvdW5kc1JlY3QuaGVpZ2h0IC8gMikgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICAgIGlmICh4T3V0T2ZCb3VuZHMgfHwgeU91dE9mQm91bmRzKSB7XG4gICAgICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG4gICAgICAgIGlmIChtb3VzZVggPCBib3VuZHNSZWN0LmxlZnQpIHtcbiAgICAgICAgICB4ID0gKChib3VuZHNSZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LmxlZnQpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICAgICAgfSBlbHNlIGlmIChtb3VzZVggPiBib3VuZHNSZWN0LnJpZ2h0KSB7XG4gICAgICAgICAgeCA9XG4gICAgICAgICAgICAoKGNvbnRhaW5lclJlY3Qud2lkdGggLSAoY29udGFpbmVyUmVjdC5yaWdodCAtIGJvdW5kc1JlY3QucmlnaHQpKSAvXG4gICAgICAgICAgICAgIGNvbnRhaW5lclJlY3Qud2lkdGgpICpcbiAgICAgICAgICAgIDEwMFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vdXNlWSA8IGJvdW5kc1JlY3QudG9wKSB7XG4gICAgICAgICAgeSA9ICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCkgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICAgICAgfSBlbHNlIGlmIChtb3VzZVkgPiBib3VuZHNSZWN0LmJvdHRvbSkge1xuICAgICAgICAgIHkgPVxuICAgICAgICAgICAgKChjb250YWluZXJSZWN0LmhlaWdodCAtIChjb250YWluZXJSZWN0LmJvdHRvbSAtIGJvdW5kc1JlY3QuYm90dG9tKSkgL1xuICAgICAgICAgICAgICBjb250YWluZXJSZWN0LmhlaWdodCkgKlxuICAgICAgICAgICAgMTAwXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVjZW50ZXIpIHtcbiAgICAgICAgICB4ID0geE91dE9mQm91bmRzID8geENlbnRlciA6IHhcbiAgICAgICAgICB5ID0geU91dE9mQm91bmRzID8geUNlbnRlciA6IHlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4geyB4LCB5IH1cbiAgICB9LFxuICAgIFtib3VuZHNSZWYsIGNvbnRhaW5lclJlZl0sXG4gIClcblxuICBjb25zdCBoYW5kbGVNb3VzZURvd24gPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgc2V0SXNEcmFnZ2luZyh0cnVlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlTW91c2VNb3ZlID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKCFpc0RyYWdnaW5nKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSlcblxuICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICB9XG5cbiAgY29uc3Qgb25Ecm9wID0gKCkgPT4ge1xuICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG4gICAgb25EcmFnRW5kKHBvc2l0aW9uKVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNEcmFnZ2luZyB8fCAhZHJhZ1JlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoY2hlY2tCb3VuZHMpIHtcbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCBsZWZ0LCB0b3AsIHdpZHRoIH0gPSBkcmFnUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMobGVmdCArIHdpZHRoIC8gMiwgdG9wICsgaGVpZ2h0IC8gMiwgdHJ1ZSlcbiAgICAgIG9uRHJhZ0VuZCh7IHgsIHkgfSlcbiAgICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICAgICAgc2V0Q2hlY2tCb3VuZHMoZmFsc2UpXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH0sIFtnZXRDb29yZGluYXRlcywgaXNEcmFnZ2luZywgY2hlY2tCb3VuZHMsIHNldENoZWNrQm91bmRzLCBwb3NpdGlvbi54LCBwb3NpdGlvbi55LCBvbkRyYWdFbmRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0UG9zaXRpb24oeyB4OiBpbml0aWFsUG9zaXRpb24ueCwgeTogaW5pdGlhbFBvc2l0aW9uLnkgfSlcbiAgfSwgW2luaXRpYWxQb3NpdGlvbi54LCBpbml0aWFsUG9zaXRpb24ueV0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e1tcbiAgICAgICAgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lcmAsXG4gICAgICAgIGlzRHJhZ2dpbmcgJiYgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lci0tZHJhZ2dpbmdgLFxuICAgICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyl9XG4gICAgICBvbk1vdXNlTW92ZT17aGFuZGxlTW91c2VNb3ZlfVxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3NOYW1lPXtbYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlYCwgY2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgICBvbk1vdXNlRG93bj17aGFuZGxlTW91c2VEb3dufVxuICAgICAgICBvbk1vdXNlVXA9e29uRHJvcH1cbiAgICAgICAgcmVmPXtkcmFnUmVmfVxuICAgICAgICBzdHlsZT17eyBsZWZ0OiBgJHtwb3NpdGlvbi54fSVgLCB0b3A6IGAke3Bvc2l0aW9uLnl9JWAgfX1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiAvPlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiRWRpdFVwbG9hZCIsImJhc2VDbGFzcyIsIklucHV0IiwiZm9yd2FyZFJlZiIsInByb3BzIiwicmVmIiwibmFtZSIsIm9uQ2hhbmdlIiwidmFsdWUiLCJkaXYiLCJjbGFzc05hbWUiLCJpbnB1dCIsImUiLCJ0YXJnZXQiLCJ0eXBlIiwiZGVmYXVsdENyb3AiLCJoZWlnaHQiLCJ1bml0Iiwid2lkdGgiLCJ4IiwieSIsImZpbGVOYW1lIiwiZmlsZVNyYyIsImltYWdlQ2FjaGVUYWciLCJpbml0aWFsQ3JvcCIsImluaXRpYWxGb2NhbFBvaW50Iiwib25TYXZlIiwic2hvd0Nyb3AiLCJzaG93Rm9jYWxQb2ludCIsImNsb3NlTW9kYWwiLCJ1c2VNb2RhbCIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsImNyb3AiLCJzZXRDcm9wIiwidXNlU3RhdGUiLCJkZWZhdWx0Rm9jYWxQb3NpdGlvbiIsImZvY2FsUG9zaXRpb24iLCJzZXRGb2NhbFBvc2l0aW9uIiwiY2hlY2tCb3VuZHMiLCJzZXRDaGVja0JvdW5kcyIsInVuY3JvcHBlZFBpeGVsSGVpZ2h0Iiwic2V0VW5jcm9wcGVkUGl4ZWxIZWlnaHQiLCJ1bmNyb3BwZWRQaXhlbFdpZHRoIiwic2V0VW5jcm9wcGVkUGl4ZWxXaWR0aCIsImZvY2FsV3JhcFJlZiIsInVzZVJlZiIsImltYWdlUmVmIiwiY3JvcFJlZiIsImhlaWdodElucHV0UmVmIiwid2lkdGhJbnB1dFJlZiIsImltYWdlTG9hZGVkIiwic2V0SW1hZ2VMb2FkZWQiLCJvbkltYWdlTG9hZCIsImN1cnJlbnRUYXJnZXQiLCJuYXR1cmFsSGVpZ2h0IiwibmF0dXJhbFdpZHRoIiwiZmluZVR1bmVDcm9wIiwiZGltZW5zaW9uIiwiaW50VmFsdWUiLCJwYXJzZUludCIsInBlcmNlbnRhZ2UiLCJmaW5lVHVuZUZvY2FsUG9zaXRpb24iLCJjb29yZGluYXRlIiwicHJldlBvc2l0aW9uIiwic2F2ZUVkaXRzIiwidW5kZWZpbmVkIiwiZm9jYWxQb2ludCIsImhlaWdodEluUGl4ZWxzIiwiTnVtYmVyIiwiY3VycmVudCIsIndpZHRoSW5QaXhlbHMiLCJlZGl0RHJhd2VyU2x1ZyIsIm9uRHJhZ0VuZCIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJjZW50ZXJGb2NhbFBvaW50IiwiY29udGFpbmVyUmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImJvdW5kc1JlY3QiLCJ4Q2VudGVyIiwibGVmdCIsInlDZW50ZXIiLCJ0b3AiLCJmaWxlU3JjVG9Vc2UiLCJoMiIsInRpdGxlIiwiQnV0dG9uIiwiYXJpYS1sYWJlbCIsImJ1dHRvblN0eWxlIiwib25DbGljayIsImRpc2FibGVkIiwic3R5bGUiLCJhc3BlY3RSYXRpbyIsIlJlYWN0Q3JvcCIsIl8iLCJjIiwib25Db21wbGV0ZSIsInJlbmRlclNlbGVjdGlvbkFkZG9uIiwiaW1nIiwiYWx0Iiwib25Mb2FkIiwic3JjIiwiRHJhZ2dhYmxlRWxlbWVudCIsImJvdW5kc1JlZiIsImNvbnRhaW5lclJlZiIsImluaXRpYWxQb3NpdGlvbiIsIlBsdXMiLCJoMyIsInNwYW4iLCJ0b0ZpeGVkIiwiY2hpbGRyZW4iLCJwb3NpdGlvbiIsInNldFBvc2l0aW9uIiwiaXNEcmFnZ2luZyIsInNldElzRHJhZ2dpbmciLCJkcmFnUmVmIiwiZ2V0Q29vcmRpbmF0ZXMiLCJtb3VzZVhBcmciLCJtb3VzZVlBcmciLCJyZWNlbnRlciIsIm1vdXNlWCIsIm1vdXNlWSIsInhPdXRPZkJvdW5kcyIsInJpZ2h0IiwieU91dE9mQm91bmRzIiwiYm90dG9tIiwiaGFuZGxlTW91c2VEb3duIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsImhhbmRsZU1vdXNlTW92ZSIsImNsaWVudFgiLCJjbGllbnRZIiwib25Ecm9wIiwidXNlRWZmZWN0IiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJvbk1vdXNlTW92ZSIsImJ1dHRvbiIsIm9uTW91c2VEb3duIiwib25Nb3VzZVVwIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7K0JBOERhQTs7O2VBQUFBOzs7dUJBOURZOytEQUMyQjs4QkFDckI7dUVBQ1Q7UUFDZjs2REFJVTt3QkFDYzsrREFDWjtRQUNaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVQLE1BQU1DLFlBQVk7QUFRbEIsTUFBTUMsc0JBQVFDLElBQUFBLGlCQUFVLEVBQTBCLENBQUNDLE9BQU9DO0lBQ3hELE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUVDLEtBQUssRUFBRSxHQUFHSjtJQUVsQyxx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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/utilities/Auth/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsE,MAAM,OAAO,CAAA;AAK1F,OAAO,KAAK,EAAe,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAU1C,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/utilities/Auth/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsE,MAAM,OAAO,CAAA;AAK1F,OAAO,KAAK,EAAe,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAU1C,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAqUhE,CAAA;AAED,eAAO,MAAM,OAAO,gCAAyE,CAAA"}
|
|
@@ -115,10 +115,13 @@ const AuthProvider = ({ children })=>{
|
|
|
115
115
|
api,
|
|
116
116
|
i18n
|
|
117
117
|
]);
|
|
118
|
-
const setActiveUser = _react.default.useCallback((
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
118
|
+
const setActiveUser = _react.default.useCallback(async (userToSet)=>{
|
|
119
|
+
if (userIDRef.current && !userToSet?.id || userToSet?.id) {
|
|
120
|
+
// refresh on logout and login
|
|
121
|
+
await refreshPermissions();
|
|
122
|
+
}
|
|
123
|
+
userIDRef.current = userToSet?.id || null;
|
|
124
|
+
setUser(userToSet);
|
|
122
125
|
}, [
|
|
123
126
|
refreshPermissions
|
|
124
127
|
]);
|
|
@@ -168,10 +171,10 @@ const AuthProvider = ({ children })=>{
|
|
|
168
171
|
});
|
|
169
172
|
if (request.status === 200) {
|
|
170
173
|
const json = await request.json();
|
|
171
|
-
setActiveUser(json.user);
|
|
174
|
+
await setActiveUser(json.user);
|
|
172
175
|
setTokenAndExpiration(json);
|
|
173
176
|
} else {
|
|
174
|
-
setActiveUser(null);
|
|
177
|
+
await setActiveUser(null);
|
|
175
178
|
redirectToInactivityRoute();
|
|
176
179
|
}
|
|
177
180
|
} catch (e) {
|
|
@@ -199,12 +202,12 @@ const AuthProvider = ({ children })=>{
|
|
|
199
202
|
if (request.status === 200) {
|
|
200
203
|
const json = await request.json();
|
|
201
204
|
if (!skipSetUser) {
|
|
202
|
-
setActiveUser(json.user);
|
|
205
|
+
await setActiveUser(json.user);
|
|
203
206
|
setTokenAndExpiration(json);
|
|
204
207
|
}
|
|
205
208
|
return json.user;
|
|
206
209
|
}
|
|
207
|
-
setActiveUser(null);
|
|
210
|
+
await setActiveUser(null);
|
|
208
211
|
redirectToInactivityRoute();
|
|
209
212
|
return null;
|
|
210
213
|
} catch (e) {
|
|
@@ -220,8 +223,8 @@ const AuthProvider = ({ children })=>{
|
|
|
220
223
|
setTokenAndExpiration,
|
|
221
224
|
setActiveUser
|
|
222
225
|
]);
|
|
223
|
-
const logOut = (0, _react.useCallback)(()=>{
|
|
224
|
-
setActiveUser(null);
|
|
226
|
+
const logOut = (0, _react.useCallback)(async ()=>{
|
|
227
|
+
await setActiveUser(null);
|
|
225
228
|
revokeTokenAndExpire();
|
|
226
229
|
void _api.requests.post(`${serverURL}${api}/${userSlug}/logout`);
|
|
227
230
|
}, [
|
|
@@ -241,7 +244,7 @@ const AuthProvider = ({ children })=>{
|
|
|
241
244
|
if (request.status === 200) {
|
|
242
245
|
const json = await request.json();
|
|
243
246
|
if (json?.user) {
|
|
244
|
-
setActiveUser(json.user);
|
|
247
|
+
await setActiveUser(json.user);
|
|
245
248
|
if (json?.token) {
|
|
246
249
|
setTokenAndExpiration(json);
|
|
247
250
|
}
|
|
@@ -260,16 +263,16 @@ const AuthProvider = ({ children })=>{
|
|
|
260
263
|
});
|
|
261
264
|
if (autoLoginResult.status === 200) {
|
|
262
265
|
const autoLoginJson = await autoLoginResult.json();
|
|
263
|
-
setActiveUser(autoLoginJson.user);
|
|
266
|
+
await setActiveUser(autoLoginJson.user);
|
|
264
267
|
if (autoLoginJson?.token) {
|
|
265
268
|
setTokenAndExpiration(autoLoginJson);
|
|
266
269
|
}
|
|
267
270
|
} else {
|
|
268
|
-
setActiveUser(null);
|
|
271
|
+
await setActiveUser(null);
|
|
269
272
|
revokeTokenAndExpire();
|
|
270
273
|
}
|
|
271
274
|
} else {
|
|
272
|
-
setActiveUser(null);
|
|
275
|
+
await setActiveUser(null);
|
|
273
276
|
revokeTokenAndExpire();
|
|
274
277
|
}
|
|
275
278
|
}
|
|
@@ -331,8 +334,8 @@ const AuthProvider = ({ children })=>{
|
|
|
331
334
|
const now = Math.round(new Date().getTime() / 1000);
|
|
332
335
|
const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0;
|
|
333
336
|
if (remainingTime > 0) {
|
|
334
|
-
forceLogOut = setTimeout(()=>{
|
|
335
|
-
setActiveUser(null);
|
|
337
|
+
forceLogOut = setTimeout(async ()=>{
|
|
338
|
+
await setActiveUser(null);
|
|
336
339
|
revokeTokenAndExpire();
|
|
337
340
|
redirectToInactivityRoute();
|
|
338
341
|
}, Math.max(Math.min(remainingTime * 1000, maxTimeoutTime), 0));
|
|
@@ -366,4 +369,4 @@ const AuthProvider = ({ children })=>{
|
|
|
366
369
|
};
|
|
367
370
|
const useAuth = ()=>(0, _react.useContext)(Context);
|
|
368
371
|
|
|
369
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL3V0aWxpdGllcy9BdXRoL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCBxcyBmcm9tICdxcydcbmltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlSGlzdG9yeSwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJ1xuaW1wb3J0IHsgdG9hc3QgfSBmcm9tICdyZWFjdC10b2FzdGlmeSdcblxuaW1wb3J0IHR5cGUgeyBQZXJtaXNzaW9ucywgVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uL2F1dGgvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEF1dGhDb250ZXh0IH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgcmVxdWVzdHMgfSBmcm9tICcuLi8uLi8uLi9hcGknXG5pbXBvcnQgdXNlRGVib3VuY2UgZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRGVib3VuY2UnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi9Db25maWcnXG5cbmNvbnN0IENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHt9IGFzIEF1dGhDb250ZXh0KVxuXG5jb25zdCBtYXhUaW1lb3V0VGltZSA9IDIxNDc0ODM2NDdcblxuZXhwb3J0IGNvbnN0IEF1dGhQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0+ID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuICBjb25zdCBbdXNlciwgc2V0VXNlcl0gPSB1c2VTdGF0ZTxVc2VyIHwgbnVsbD4oKVxuICBjb25zdCBbdG9rZW5Jbk1lbW9yeSwgc2V0VG9rZW5Jbk1lbW9yeV0gPSB1c2VTdGF0ZTxzdHJpbmc+KClcbiAgY29uc3QgW3Rva2VuRXhwaXJhdGlvbiwgc2V0VG9rZW5FeHBpcmF0aW9uXSA9IHVzZVN0YXRlPG51bWJlcj4oKVxuICBjb25zdCBbc3RyYXRlZ3ksIHNldFN0cmF0ZWd5XSA9IHVzZVN0YXRlPHN0cmluZz4oKVxuICBjb25zdCB7IHBhdGhuYW1lIH0gPSB1c2VMb2NhdGlvbigpXG4gIGNvbnN0IHsgcHVzaCB9ID0gdXNlSGlzdG9yeSgpXG5cbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcblxuICBjb25zdCB7XG4gICAgYWRtaW46IHsgYXV0b0xvZ2luLCBpbmFjdGl2aXR5Um91dGU6IGxvZ291dEluYWN0aXZpdHlSb3V0ZSwgdXNlcjogdXNlclNsdWcgfSxcbiAgICByb3V0ZXM6IHsgYWRtaW4sIGFwaSB9LFxuICAgIHNlcnZlclVSTCxcbiAgfSA9IGNvbmZpZ1xuXG4gIGNvbnN0IFtwZXJtaXNzaW9ucywgc2V0UGVybWlzc2lvbnNdID0gdXNlU3RhdGU8UGVybWlzc2lvbnM+KClcblxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgeyBjbG9zZUFsbE1vZGFscywgb3Blbk1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IFtsYXN0TG9jYXRpb25DaGFuZ2UsIHNldExhc3RMb2NhdGlvbkNoYW5nZV0gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBkZWJvdW5jZWRMb2NhdGlvbkNoYW5nZSA9IHVzZURlYm91bmNlKGxhc3RMb2NhdGlvbkNoYW5nZSwgMTAwMDApXG4gIGNvbnN0IHVzZXJJRFJlZiA9IFJlYWN0LnVzZVJlZjxudWxsIHwgbnVtYmVyIHwgc3RyaW5nPigpXG5cbiAgY29uc3QgaWQgPSB1c2VyPy5pZFxuXG4gIGNvbnN0IHJlZnJlc2hQZXJtaXNzaW9ucyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jICh7IGxvY2FsZSB9OiB7IGxvY2FsZT86IHN0cmluZyB9ID0ge30pID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgbG9jYWxlLFxuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHJlcXVlc3RzLmdldChcbiAgICAgICAgICBgJHtzZXJ2ZXJVUkx9JHthcGl9L2FjY2VzcyR7cXMuc3RyaW5naWZ5KHBhcmFtcywgeyBhZGRRdWVyeVByZWZpeDogdHJ1ZSB9KX1gLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIClcblxuICAgICAgICBpZiAocmVxdWVzdC5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICAgIGNvbnN0IGpzb246IFBlcm1pc3Npb25zID0gYXdhaXQgcmVxdWVzdC5qc29uKClcbiAgICAgICAgICBzZXRQZXJtaXNzaW9ucyhqc29uKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmV0Y2hpbmcgcGVybWlzc2lvbnMgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJHtyZXF1ZXN0LnN0YXR1c31gKVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRvYXN0LmVycm9yKGBSZWZyZXNoaW5nIHBlcm1pc3Npb25zIGZhaWxlZDogJHtlLm1lc3NhZ2V9YClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZXJ2ZXJVUkwsIGFwaSwgaTE4bl0sXG4gIClcblxuICBjb25zdCBzZXRBY3RpdmVVc2VyID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKHVzZXI6IFVzZXIgfCBudWxsKSA9PiB7XG4gICAgICBzZXRVc2VyKHVzZXIpXG4gICAgICB1c2VySURSZWYuY3VycmVudCA9IHVzZXI/LmlkIHx8IG51bGxcbiAgICAgIHZvaWQgcmVmcmVzaFBlcm1pc3Npb25zKClcbiAgICB9LFxuICAgIFtyZWZyZXNoUGVybWlzc2lvbnNdLFxuICApXG5cbiAgY29uc3QgcmVkaXJlY3RUb0luYWN0aXZpdHlSb3V0ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnN0YXJ0c1dpdGgoYWRtaW4pKSB7XG4gICAgICBjb25zdCByZWRpcmVjdFBhcmFtID0gYD9yZWRpcmVjdD0ke2VuY29kZVVSSUNvbXBvbmVudChcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoYWRtaW4sICcnKSxcbiAgICAgICl9YFxuICAgICAgcHVzaChgJHthZG1pbn0ke2xvZ291dEluYWN0aXZpdHlSb3V0ZX0ke3JlZGlyZWN0UGFyYW19YClcbiAgICB9IGVsc2Uge1xuICAgICAgcHVzaChgJHthZG1pbn0ke2xvZ291dEluYWN0aXZpdHlSb3V0ZX1gKVxuICAgIH1cbiAgICBjbG9zZUFsbE1vZGFscygpXG4gIH0sIFtwdXNoLCBhZG1pbiwgbG9nb3V0SW5hY3Rpdml0eVJvdXRlLCBjbG9zZUFsbE1vZGFsc10pXG5cbiAgY29uc3QgcmV2b2tlVG9rZW5BbmRFeHBpcmUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VG9rZW5Jbk1lbW9yeSh1bmRlZmluZWQpXG4gICAgc2V0VG9rZW5FeHBpcmF0aW9uKHVuZGVmaW5lZClcbiAgICBzZXRTdHJhdGVneSh1bmRlZmluZWQpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNldFRva2VuQW5kRXhwaXJhdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChqc29uKSA9PiB7XG4gICAgICBjb25zdCB0b2tlbiA9IGpzb24/LnRva2VuIHx8IGpzb24/LnJlZnJlc2hlZFRva2VuXG4gICAgICBpZiAodG9rZW4gJiYganNvbj8uZXhwKSB7XG4gICAgICAgIHNldFRva2VuSW5NZW1vcnkodG9rZW4pXG4gICAgICAgIHNldFRva2VuRXhwaXJhdGlvbihqc29uLmV4cClcbiAgICAgICAgaWYgKGpzb24uc3RyYXRlZ3kpIHtcbiAgICAgICAgICBzZXRTdHJhdGVneShqc29uLnN0cmF0ZWd5KVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXZva2VUb2tlbkFuZEV4cGlyZSgpXG4gICAgICB9XG4gICAgfSxcbiAgICBbcmV2b2tlVG9rZW5BbmRFeHBpcmVdLFxuICApXG5cbiAgY29uc3QgcmVmcmVzaENvb2tpZSA9IHVzZUNhbGxiYWNrKFxuICAgIChmb3JjZVJlZnJlc2g/OiBib29sZWFuKSA9PiB7XG4gICAgICBjb25zdCBub3cgPSBNYXRoLnJvdW5kKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMClcbiAgICAgIGNvbnN0IHJlbWFpbmluZ1RpbWUgPSAodHlwZW9mIHRva2VuRXhwaXJhdGlvbiA9PT0gJ251bWJlcicgPyB0b2tlbkV4cGlyYXRpb24gOiAwKSAtIG5vd1xuXG4gICAgICBpZiAoZm9yY2VSZWZyZXNoIHx8ICh0b2tlbkV4cGlyYXRpb24gJiYgcmVtYWluaW5nVGltZSA8IDEyMCkpIHtcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCByZXF1ZXN0cy5wb3N0KGAke3NlcnZlclVSTH0ke2FwaX0vJHt1c2VyU2x1Z30vcmVmcmVzaC10b2tlbmAsIHtcbiAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgaWYgKHJlcXVlc3Quc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlcXVlc3QuanNvbigpXG4gICAgICAgICAgICAgIHNldEFjdGl2ZVVzZXIoanNvbi51c2VyKVxuICAgICAgICAgICAgICBzZXRUb2tlbkFuZEV4cGlyYXRpb24oanNvbilcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldEFjdGl2ZVVzZXIobnVsbClcbiAgICAgICAgICAgICAgcmVkaXJlY3RUb0luYWN0aXZpdHlSb3V0ZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdG9hc3QuZXJyb3IoZS5tZXNzYWdlKVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIHRva2VuRXhwaXJhdGlvbixcbiAgICAgIHNlcnZlclVSTCxcbiAgICAgIGFwaSxcbiAgICAgIHVzZXJTbHVnLFxuICAgICAgaTE4bi5sYW5ndWFnZSxcbiAgICAgIHNldEFjdGl2ZVVzZXIsXG4gICAgICBzZXRUb2tlbkFuZEV4cGlyYXRpb24sXG4gICAgICByZWRpcmVjdFRvSW5hY3Rpdml0eVJvdXRlLFxuICAgIF0sXG4gIClcblxuICBjb25zdCByZWZyZXNoQ29va2llQXN5bmMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoc2tpcFNldFVzZXI/OiBib29sZWFuKTogUHJvbWlzZTxVc2VyPiA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgcmVxdWVzdHMucG9zdChgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7dXNlclNsdWd9L3JlZnJlc2gtdG9rZW5gLCB7XG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAocmVxdWVzdC5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICAgIGNvbnN0IGpzb24gPSBhd2FpdCByZXF1ZXN0Lmpzb24oKVxuICAgICAgICAgIGlmICghc2tpcFNldFVzZXIpIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZVVzZXIoanNvbi51c2VyKVxuICAgICAgICAgICAgc2V0VG9rZW5BbmRFeHBpcmF0aW9uKGpzb24pXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBqc29uLnVzZXJcbiAgICAgICAgfVxuXG4gICAgICAgIHNldEFjdGl2ZVVzZXIobnVsbClcbiAgICAgICAgcmVkaXJlY3RUb0luYWN0aXZpdHlSb3V0ZSgpXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRvYXN0LmVycm9yKGBSZWZyZXNoaW5nIHRva2VuIGZhaWxlZDogJHtlLm1lc3NhZ2V9YClcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIHNlcnZlclVSTCxcbiAgICAgIGFwaSxcbiAgICAgIHVzZXJTbHVnLFxuICAgICAgaTE4bixcbiAgICAgIHJlZGlyZWN0VG9JbmFjdGl2aXR5Um91dGUsXG4gICAgICBzZXRUb2tlbkFuZEV4cGlyYXRpb24sXG4gICAgICBzZXRBY3RpdmVVc2VyLFxuICAgIF0sXG4gIClcblxuICBjb25zdCBsb2dPdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0QWN0aXZlVXNlcihudWxsKVxuICAgIHJldm9rZVRva2VuQW5kRXhwaXJlKClcbiAgICB2b2lkIHJlcXVlc3RzLnBvc3QoYCR7c2VydmVyVVJMfSR7YXBpfS8ke3VzZXJTbHVnfS9sb2dvdXRgKVxuICB9LCBbc2VydmVyVVJMLCBhcGksIHVzZXJTbHVnLCByZXZva2VUb2tlbkFuZEV4cGlyZSwgc2V0QWN0aXZlVXNlcl0pXG5cbiAgY29uc3QgZmV0Y2hGdWxsVXNlciA9IFJlYWN0LnVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHJlcXVlc3RzLmdldChgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7dXNlclNsdWd9L21lYCwge1xuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgIH0sXG4gICAgICB9KVxuXG4gICAgICBpZiAocmVxdWVzdC5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICBjb25zdCBqc29uID0gYXdhaXQgcmVxdWVzdC5qc29uKClcblxuICAgICAgICBpZiAoanNvbj8udXNlcikge1xuICAgICAgICAgIHNldEFjdGl2ZVVzZXIoanNvbi51c2VyKVxuICAgICAgICAgIGlmIChqc29uPy50b2tlbikge1xuICAgICAgICAgICAgc2V0VG9rZW5BbmRFeHBpcmF0aW9uKGpzb24pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGF1dG9Mb2dpbiAmJiBhdXRvTG9naW4ucHJlZmlsbE9ubHkgIT09IHRydWUpIHtcbiAgICAgICAgICAvLyBhdXRvIGxvZy1pbiB3aXRoIHRoZSBwcm92aWRlZCBhdXRvTG9naW4gY3JlZGVudGlhbHMuIFRoaXMgaXMgdXNlZCBpbiBkZXYgbW9kZVxuICAgICAgICAgIC8vIHNvIHlvdSBkb24ndCBoYXZlIHRvIGxvZyBpbiBvdmVyIGFuZCBvdmVyIGFnYWluXG4gICAgICAgICAgY29uc3QgYXV0b0xvZ2luUmVzdWx0ID0gYXdhaXQgcmVxdWVzdHMucG9zdChgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7dXNlclNsdWd9L2xvZ2luYCwge1xuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICBlbWFpbDogYXV0b0xvZ2luLmVtYWlsLFxuICAgICAgICAgICAgICBwYXNzd29yZDogYXV0b0xvZ2luLnBhc3N3b3JkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGlmIChhdXRvTG9naW5SZXN1bHQuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnN0IGF1dG9Mb2dpbkpzb24gPSBhd2FpdCBhdXRvTG9naW5SZXN1bHQuanNvbigpXG4gICAgICAgICAgICBzZXRBY3RpdmVVc2VyKGF1dG9Mb2dpbkpzb24udXNlcilcbiAgICAgICAgICAgIGlmIChhdXRvTG9naW5Kc29uPy50b2tlbikge1xuICAgICAgICAgICAgICBzZXRUb2tlbkFuZEV4cGlyYXRpb24oYXV0b0xvZ2luSnNvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0QWN0aXZlVXNlcihudWxsKVxuICAgICAgICAgICAgcmV2b2tlVG9rZW5BbmRFeHBpcmUoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRBY3RpdmVVc2VyKG51bGwpXG4gICAgICAgICAgcmV2b2tlVG9rZW5BbmRFeHBpcmUoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdG9hc3QuZXJyb3IoYEZldGNoaW5nIHVzZXIgZmFpbGVkOiAke2UubWVzc2FnZX1gKVxuICAgIH1cbiAgfSwgW1xuICAgIHNlcnZlclVSTCxcbiAgICBhcGksXG4gICAgdXNlclNsdWcsXG4gICAgaTE4bixcbiAgICBhdXRvTG9naW4sXG4gICAgc2V0VG9rZW5BbmRFeHBpcmF0aW9uLFxuICAgIHJldm9rZVRva2VuQW5kRXhwaXJlLFxuICAgIHNldEFjdGl2ZVVzZXIsXG4gIF0pXG5cbiAgLy8gT24gbW91bnQsIGdldCB1c2VyIGFuZCBzZXRcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgPT09IHVuZGVmaW5lZCB8fCBpZCAhPT0gdXNlcklEUmVmLmN1cnJlbnQpIHtcbiAgICAgIHZvaWQgZmV0Y2hGdWxsVXNlcigpXG4gICAgfVxuICB9LCBbZmV0Y2hGdWxsVXNlciwgaWRdKVxuXG4gIC8vIFdoZW4gbG9jYXRpb24gY2hhbmdlcywgcmVmcmVzaCBjb29raWVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIHJlZnJlc2hDb29raWUoKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlZExvY2F0aW9uQ2hhbmdlLCByZWZyZXNoQ29va2llLCBpZF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRMYXN0TG9jYXRpb25DaGFuZ2UoRGF0ZS5ub3coKSlcbiAgfSwgW3BhdGhuYW1lXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCByZW1pbmRlcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD5cbiAgICBjb25zdCBub3cgPSBNYXRoLnJvdW5kKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMClcbiAgICBjb25zdCByZW1haW5pbmdUaW1lID0gdHlwZW9mIHRva2VuRXhwaXJhdGlvbiA9PT0gJ251bWJlcicgPyB0b2tlbkV4cGlyYXRpb24gLSBub3cgOiAwXG5cbiAgICBpZiAocmVtYWluaW5nVGltZSA+IDApIHtcbiAgICAgIHJlbWluZGVyID0gc2V0VGltZW91dChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIG9wZW5Nb2RhbCgnc3RheS1sb2dnZWQtaW4nKVxuICAgICAgICB9LFxuICAgICAgICBNYXRoLm1heChNYXRoLm1pbigocmVtYWluaW5nVGltZSAtIDYwKSAqIDEwMDAsIG1heFRpbWVvdXRUaW1lKSksXG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZW1pbmRlcikgY2xlYXJUaW1lb3V0KHJlbWluZGVyKVxuICAgIH1cbiAgfSwgW3Rva2VuRXhwaXJhdGlvbiwgb3Blbk1vZGFsXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBmb3JjZUxvZ091dDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD5cbiAgICBjb25zdCBub3cgPSBNYXRoLnJvdW5kKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMClcbiAgICBjb25zdCByZW1haW5pbmdUaW1lID0gdHlwZW9mIHRva2VuRXhwaXJhdGlvbiA9PT0gJ251bWJlcicgPyB0b2tlbkV4cGlyYXRpb24gLSBub3cgOiAwXG5cbiAgICBpZiAocmVtYWluaW5nVGltZSA+IDApIHtcbiAgICAgIGZvcmNlTG9nT3V0ID0gc2V0VGltZW91dChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHNldEFjdGl2ZVVzZXIobnVsbClcbiAgICAgICAgICByZXZva2VUb2tlbkFuZEV4cGlyZSgpXG4gICAgICAgICAgcmVkaXJlY3RUb0luYWN0aXZpdHlSb3V0ZSgpXG4gICAgICAgIH0sXG4gICAgICAgIE1hdGgubWF4KE1hdGgubWluKHJlbWFpbmluZ1RpbWUgKiAxMDAwLCBtYXhUaW1lb3V0VGltZSksIDApLFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoZm9yY2VMb2dPdXQpIGNsZWFyVGltZW91dChmb3JjZUxvZ091dClcbiAgICB9XG4gIH0sIFtcbiAgICB0b2tlbkV4cGlyYXRpb24sXG4gICAgY2xvc2VBbGxNb2RhbHMsXG4gICAgaTE4bixcbiAgICByZWRpcmVjdFRvSW5hY3Rpdml0eVJvdXRlLFxuICAgIHJldm9rZVRva2VuQW5kRXhwaXJlLFxuICAgIHNldEFjdGl2ZVVzZXIsXG4gIF0pXG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGV4dC5Qcm92aWRlclxuICAgICAgdmFsdWU9e3tcbiAgICAgICAgZmV0Y2hGdWxsVXNlcixcbiAgICAgICAgbG9nT3V0LFxuICAgICAgICBwZXJtaXNzaW9ucyxcbiAgICAgICAgcmVmcmVzaENvb2tpZSxcbiAgICAgICAgcmVmcmVzaENvb2tpZUFzeW5jLFxuICAgICAgICByZWZyZXNoUGVybWlzc2lvbnMsXG4gICAgICAgIHNldFVzZXI6IHNldEFjdGl2ZVVzZXIsXG4gICAgICAgIHN0cmF0ZWd5LFxuICAgICAgICB0b2tlbjogdG9rZW5Jbk1lbW9yeSxcbiAgICAgICAgdG9rZW5FeHBpcmF0aW9uLFxuICAgICAgICB1c2VyLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Db250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbmV4cG9ydCBjb25zdCB1c2VBdXRoID0gPFQgPSBVc2VyLD4oKTogQXV0aENvbnRleHQ8VD4gPT4gdXNlQ29udGV4dChDb250ZXh0KSBhcyBBdXRoQ29udGV4dDxUPlxuIl0sIm5hbWVzIjpbIkF1dGhQcm92aWRlciIsInVzZUF1dGgiLCJDb250ZXh0IiwiY3JlYXRlQ29udGV4dCIsIm1heFRpbWVvdXRUaW1lIiwiY2hpbGRyZW4iLCJ1c2VyIiwic2V0VXNlciIsInVzZVN0YXRlIiwidG9rZW5Jbk1lbW9yeSIsInNldFRva2VuSW5NZW1vcnkiLCJ0b2tlbkV4cGlyYXRpb24iLCJzZXRUb2tlbkV4cGlyYXRpb24iLCJzdHJhdGVneSIsInNldFN0cmF0ZWd5IiwicGF0aG5hbWUiLCJ1c2VMb2NhdGlvbiIsInB1c2giLCJ1c2VIaXN0b3J5IiwiY29uZmlnIiwidXNlQ29uZmlnIiwiYWRtaW4iLCJhdXRvTG9naW4iLCJpbmFjdGl2aXR5Um91dGUiLCJsb2dvdXRJbmFjdGl2aXR5Um91dGUiLCJ1c2VyU2x1ZyIsInJvdXRlcyIsImFwaSIsInNlcnZlclVSTCIsInBlcm1pc3Npb25zIiwic2V0UGVybWlzc2lvbnMiLCJpMThuIiwidXNlVHJhbnNsYXRpb24iLCJjbG9zZUFsbE1vZGFscyIsIm9wZW5Nb2RhbCIsInVzZU1vZGFsIiwibGFzdExvY2F0aW9uQ2hhbmdlIiwic2V0TGFzdExvY2F0aW9uQ2hhbmdlIiwiZGVib3VuY2VkTG9jYXRpb25DaGFuZ2UiLCJ1c2VEZWJvdW5jZSIsInVzZXJJRFJlZiIsIlJlYWN0IiwidXNlUmVmIiwiaWQiLCJyZWZyZXNoUGVybWlzc2lvbnMiLCJ1c2VDYWxsYmFjayIsImxvY2FsZSIsInBhcmFtcyIsInJlcXVlc3QiLCJyZXF1ZXN0cyIsImdldCIsInFzIiwic3RyaW5naWZ5IiwiYWRkUXVlcnlQcmVmaXgiLCJoZWFkZXJzIiwibGFuZ3VhZ2UiLCJzdGF0dXMiLCJqc29uIiwiRXJyb3IiLCJlIiwidG9hc3QiLCJlcnJvciIsIm1lc3NhZ2UiLCJzZXRBY3RpdmVVc2VyIiwiY3VycmVudCIsInJlZGlyZWN0VG9JbmFjdGl2aXR5Um91dGUiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInN0YXJ0c1dpdGgiLCJyZWRpcmVjdFBhcmFtIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVwbGFjZSIsInJldm9rZVRva2VuQW5kRXhwaXJlIiwidW5kZWZpbmVkIiwic2V0VG9rZW5BbmRFeHBpcmF0aW9uIiwidG9rZW4iLCJyZWZyZXNoZWRUb2tlbiIsImV4cCIsInJlZnJlc2hDb29raWUiLCJmb3JjZVJlZnJlc2giLCJub3ciLCJNYXRoIiwicm91bmQiLCJEYXRlIiwiZ2V0VGltZSIsInJlbWFpbmluZ1RpbWUiLCJzZXRUaW1lb3V0IiwicG9zdCIsInJlZnJlc2hDb29raWVBc3luYyIsInNraXBTZXRVc2VyIiwibG9nT3V0IiwiZmV0Y2hGdWxsVXNlciIsInByZWZpbGxPbmx5IiwiYXV0b0xvZ2luUmVzdWx0IiwiYm9keSIsIkpTT04iLCJlbWFpbCIsInBhc3N3b3JkIiwiYXV0b0xvZ2luSnNvbiIsInVzZUVmZmVjdCIsInJlbWluZGVyIiwibWF4IiwibWluIiwiY2xlYXJUaW1lb3V0IiwiZm9yY2VMb2dPdXQiLCJQcm92aWRlciIsInZhbHVlIiwidXNlQ29udGV4dCJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
372
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL3V0aWxpdGllcy9BdXRoL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCBxcyBmcm9tICdxcydcbmltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlSGlzdG9yeSwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJ1xuaW1wb3J0IHsgdG9hc3QgfSBmcm9tICdyZWFjdC10b2FzdGlmeSdcblxuaW1wb3J0IHR5cGUgeyBQZXJtaXNzaW9ucywgVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uL2F1dGgvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEF1dGhDb250ZXh0IH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgcmVxdWVzdHMgfSBmcm9tICcuLi8uLi8uLi9hcGknXG5pbXBvcnQgdXNlRGVib3VuY2UgZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRGVib3VuY2UnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi9Db25maWcnXG5cbmNvbnN0IENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHt9IGFzIEF1dGhDb250ZXh0KVxuXG5jb25zdCBtYXhUaW1lb3V0VGltZSA9IDIxNDc0ODM2NDdcblxuZXhwb3J0IGNvbnN0IEF1dGhQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0+ID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuICBjb25zdCBbdXNlciwgc2V0VXNlcl0gPSB1c2VTdGF0ZTxVc2VyIHwgbnVsbD4oKVxuICBjb25zdCBbdG9rZW5Jbk1lbW9yeSwgc2V0VG9rZW5Jbk1lbW9yeV0gPSB1c2VTdGF0ZTxzdHJpbmc+KClcbiAgY29uc3QgW3Rva2VuRXhwaXJhdGlvbiwgc2V0VG9rZW5FeHBpcmF0aW9uXSA9IHVzZVN0YXRlPG51bWJlcj4oKVxuICBjb25zdCBbc3RyYXRlZ3ksIHNldFN0cmF0ZWd5XSA9IHVzZVN0YXRlPHN0cmluZz4oKVxuICBjb25zdCB7IHBhdGhuYW1lIH0gPSB1c2VMb2NhdGlvbigpXG4gIGNvbnN0IHsgcHVzaCB9ID0gdXNlSGlzdG9yeSgpXG5cbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcblxuICBjb25zdCB7XG4gICAgYWRtaW46IHsgYXV0b0xvZ2luLCBpbmFjdGl2aXR5Um91dGU6IGxvZ291dEluYWN0aXZpdHlSb3V0ZSwgdXNlcjogdXNlclNsdWcgfSxcbiAgICByb3V0ZXM6IHsgYWRtaW4sIGFwaSB9LFxuICAgIHNlcnZlclVSTCxcbiAgfSA9IGNvbmZpZ1xuXG4gIGNvbnN0IFtwZXJtaXNzaW9ucywgc2V0UGVybWlzc2lvbnNdID0gdXNlU3RhdGU8UGVybWlzc2lvbnM+KClcblxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgeyBjbG9zZUFsbE1vZGFscywgb3Blbk1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IFtsYXN0TG9jYXRpb25DaGFuZ2UsIHNldExhc3RMb2NhdGlvbkNoYW5nZV0gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBkZWJvdW5jZWRMb2NhdGlvbkNoYW5nZSA9IHVzZURlYm91bmNlKGxhc3RMb2NhdGlvbkNoYW5nZSwgMTAwMDApXG4gIGNvbnN0IHVzZXJJRFJlZiA9IFJlYWN0LnVzZVJlZjxudWxsIHwgbnVtYmVyIHwgc3RyaW5nPigpXG5cbiAgY29uc3QgaWQgPSB1c2VyPy5pZFxuXG4gIGNvbnN0IHJlZnJlc2hQZXJtaXNzaW9ucyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jICh7IGxvY2FsZSB9OiB7IGxvY2FsZT86IHN0cmluZyB9ID0ge30pID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgbG9jYWxlLFxuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHJlcXVlc3RzLmdldChcbiAgICAgICAgICBgJHtzZXJ2ZXJVUkx9JHthcGl9L2FjY2VzcyR7cXMuc3RyaW5naWZ5KHBhcmFtcywgeyBhZGRRdWVyeVByZWZpeDogdHJ1ZSB9KX1gLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIClcblxuICAgICAgICBpZiAocmVxdWVzdC5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICAgIGNvbnN0IGpzb246IFBlcm1pc3Npb25zID0gYXdhaXQgcmVxdWVzdC5qc29uKClcbiAgICAgICAgICBzZXRQZXJtaXNzaW9ucyhqc29uKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmV0Y2hpbmcgcGVybWlzc2lvbnMgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJHtyZXF1ZXN0LnN0YXR1c31gKVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRvYXN0LmVycm9yKGBSZWZyZXNoaW5nIHBlcm1pc3Npb25zIGZhaWxlZDogJHtlLm1lc3NhZ2V9YClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZXJ2ZXJVUkwsIGFwaSwgaTE4bl0sXG4gIClcblxuICBjb25zdCBzZXRBY3RpdmVVc2VyID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHVzZXJUb1NldDogVXNlciB8IG51bGwpID0+IHtcbiAgICAgIGlmICgodXNlcklEUmVmLmN1cnJlbnQgJiYgIXVzZXJUb1NldD8uaWQpIHx8IHVzZXJUb1NldD8uaWQpIHtcbiAgICAgICAgLy8gcmVmcmVzaCBvbiBsb2dvdXQgYW5kIGxvZ2luXG4gICAgICAgIGF3YWl0IHJlZnJlc2hQZXJtaXNzaW9ucygpXG4gICAgICB9XG4gICAgICB1c2VySURSZWYuY3VycmVudCA9IHVzZXJUb1NldD8uaWQgfHwgbnVsbFxuICAgICAgc2V0VXNlcih1c2VyVG9TZXQpXG4gICAgfSxcbiAgICBbcmVmcmVzaFBlcm1pc3Npb25zXSxcbiAgKVxuXG4gIGNvbnN0IHJlZGlyZWN0VG9JbmFjdGl2aXR5Um91dGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zdGFydHNXaXRoKGFkbWluKSkge1xuICAgICAgY29uc3QgcmVkaXJlY3RQYXJhbSA9IGA/cmVkaXJlY3Q9JHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKGFkbWluLCAnJyksXG4gICAgICApfWBcbiAgICAgIHB1c2goYCR7YWRtaW59JHtsb2dvdXRJbmFjdGl2aXR5Um91dGV9JHtyZWRpcmVjdFBhcmFtfWApXG4gICAgfSBlbHNlIHtcbiAgICAgIHB1c2goYCR7YWRtaW59JHtsb2dvdXRJbmFjdGl2aXR5Um91dGV9YClcbiAgICB9XG4gICAgY2xvc2VBbGxNb2RhbHMoKVxuICB9LCBbcHVzaCwgYWRtaW4sIGxvZ291dEluYWN0aXZpdHlSb3V0ZSwgY2xvc2VBbGxNb2RhbHNdKVxuXG4gIGNvbnN0IHJldm9rZVRva2VuQW5kRXhwaXJlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRva2VuSW5NZW1vcnkodW5kZWZpbmVkKVxuICAgIHNldFRva2VuRXhwaXJhdGlvbih1bmRlZmluZWQpXG4gICAgc2V0U3RyYXRlZ3kodW5kZWZpbmVkKVxuICB9LCBbXSlcblxuICBjb25zdCBzZXRUb2tlbkFuZEV4cGlyYXRpb24gPSB1c2VDYWxsYmFjayhcbiAgICAoanNvbikgPT4ge1xuICAgICAgY29uc3QgdG9rZW4gPSBqc29uPy50b2tlbiB8fCBqc29uPy5yZWZyZXNoZWRUb2tlblxuICAgICAgaWYgKHRva2VuICYmIGpzb24/LmV4cCkge1xuICAgICAgICBzZXRUb2tlbkluTWVtb3J5KHRva2VuKVxuICAgICAgICBzZXRUb2tlbkV4cGlyYXRpb24oanNvbi5leHApXG4gICAgICAgIGlmIChqc29uLnN0cmF0ZWd5KSB7XG4gICAgICAgICAgc2V0U3RyYXRlZ3koanNvbi5zdHJhdGVneSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV2b2tlVG9rZW5BbmRFeHBpcmUoKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3Jldm9rZVRva2VuQW5kRXhwaXJlXSxcbiAgKVxuXG4gIGNvbnN0IHJlZnJlc2hDb29raWUgPSB1c2VDYWxsYmFjayhcbiAgICAoZm9yY2VSZWZyZXNoPzogYm9vbGVhbikgPT4ge1xuICAgICAgY29uc3Qgbm93ID0gTWF0aC5yb3VuZChuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDApXG4gICAgICBjb25zdCByZW1haW5pbmdUaW1lID0gKHR5cGVvZiB0b2tlbkV4cGlyYXRpb24gPT09ICdudW1iZXInID8gdG9rZW5FeHBpcmF0aW9uIDogMCkgLSBub3dcblxuICAgICAgaWYgKGZvcmNlUmVmcmVzaCB8fCAodG9rZW5FeHBpcmF0aW9uICYmIHJlbWFpbmluZ1RpbWUgPCAxMjApKSB7XG4gICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgcmVxdWVzdHMucG9zdChgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7dXNlclNsdWd9L3JlZnJlc2gtdG9rZW5gLCB7XG4gICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGlmIChyZXF1ZXN0LnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGpzb24gPSBhd2FpdCByZXF1ZXN0Lmpzb24oKVxuICAgICAgICAgICAgICBhd2FpdCBzZXRBY3RpdmVVc2VyKGpzb24udXNlcilcbiAgICAgICAgICAgICAgc2V0VG9rZW5BbmRFeHBpcmF0aW9uKGpzb24pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBhd2FpdCBzZXRBY3RpdmVVc2VyKG51bGwpXG4gICAgICAgICAgICAgIHJlZGlyZWN0VG9JbmFjdGl2aXR5Um91dGUoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRvYXN0LmVycm9yKGUubWVzc2FnZSlcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMDApXG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICB0b2tlbkV4cGlyYXRpb24sXG4gICAgICBzZXJ2ZXJVUkwsXG4gICAgICBhcGksXG4gICAgICB1c2VyU2x1ZyxcbiAgICAgIGkxOG4ubGFuZ3VhZ2UsXG4gICAgICBzZXRBY3RpdmVVc2VyLFxuICAgICAgc2V0VG9rZW5BbmRFeHBpcmF0aW9uLFxuICAgICAgcmVkaXJlY3RUb0luYWN0aXZpdHlSb3V0ZSxcbiAgICBdLFxuICApXG5cbiAgY29uc3QgcmVmcmVzaENvb2tpZUFzeW5jID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHNraXBTZXRVc2VyPzogYm9vbGVhbik6IFByb21pc2U8VXNlcj4gPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHJlcXVlc3RzLnBvc3QoYCR7c2VydmVyVVJMfSR7YXBpfS8ke3VzZXJTbHVnfS9yZWZyZXNoLXRva2VuYCwge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHJlcXVlc3Quc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICBjb25zdCBqc29uID0gYXdhaXQgcmVxdWVzdC5qc29uKClcbiAgICAgICAgICBpZiAoIXNraXBTZXRVc2VyKSB7XG4gICAgICAgICAgICBhd2FpdCBzZXRBY3RpdmVVc2VyKGpzb24udXNlcilcbiAgICAgICAgICAgIHNldFRva2VuQW5kRXhwaXJhdGlvbihqc29uKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4ganNvbi51c2VyXG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBzZXRBY3RpdmVVc2VyKG51bGwpXG4gICAgICAgIHJlZGlyZWN0VG9JbmFjdGl2aXR5Um91dGUoKVxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0b2FzdC5lcnJvcihgUmVmcmVzaGluZyB0b2tlbiBmYWlsZWQ6ICR7ZS5tZXNzYWdlfWApXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBzZXJ2ZXJVUkwsXG4gICAgICBhcGksXG4gICAgICB1c2VyU2x1ZyxcbiAgICAgIGkxOG4sXG4gICAgICByZWRpcmVjdFRvSW5hY3Rpdml0eVJvdXRlLFxuICAgICAgc2V0VG9rZW5BbmRFeHBpcmF0aW9uLFxuICAgICAgc2V0QWN0aXZlVXNlcixcbiAgICBdLFxuICApXG5cbiAgY29uc3QgbG9nT3V0ID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHNldEFjdGl2ZVVzZXIobnVsbClcbiAgICByZXZva2VUb2tlbkFuZEV4cGlyZSgpXG4gICAgdm9pZCByZXF1ZXN0cy5wb3N0KGAke3NlcnZlclVSTH0ke2FwaX0vJHt1c2VyU2x1Z30vbG9nb3V0YClcbiAgfSwgW3NlcnZlclVSTCwgYXBpLCB1c2VyU2x1ZywgcmV2b2tlVG9rZW5BbmRFeHBpcmUsIHNldEFjdGl2ZVVzZXJdKVxuXG4gIGNvbnN0IGZldGNoRnVsbFVzZXIgPSBSZWFjdC51c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCByZXF1ZXN0cy5nZXQoYCR7c2VydmVyVVJMfSR7YXBpfS8ke3VzZXJTbHVnfS9tZWAsIHtcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICB9LFxuICAgICAgfSlcblxuICAgICAgaWYgKHJlcXVlc3Quc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlcXVlc3QuanNvbigpXG5cbiAgICAgICAgaWYgKGpzb24/LnVzZXIpIHtcbiAgICAgICAgICBhd2FpdCBzZXRBY3RpdmVVc2VyKGpzb24udXNlcilcbiAgICAgICAgICBpZiAoanNvbj8udG9rZW4pIHtcbiAgICAgICAgICAgIHNldFRva2VuQW5kRXhwaXJhdGlvbihqc29uKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChhdXRvTG9naW4gJiYgYXV0b0xvZ2luLnByZWZpbGxPbmx5ICE9PSB0cnVlKSB7XG4gICAgICAgICAgLy8gYXV0byBsb2ctaW4gd2l0aCB0aGUgcHJvdmlkZWQgYXV0b0xvZ2luIGNyZWRlbnRpYWxzLiBUaGlzIGlzIHVzZWQgaW4gZGV2IG1vZGVcbiAgICAgICAgICAvLyBzbyB5b3UgZG9uJ3QgaGF2ZSB0byBsb2cgaW4gb3ZlciBhbmQgb3ZlciBhZ2FpblxuICAgICAgICAgIGNvbnN0IGF1dG9Mb2dpblJlc3VsdCA9IGF3YWl0IHJlcXVlc3RzLnBvc3QoYCR7c2VydmVyVVJMfSR7YXBpfS8ke3VzZXJTbHVnfS9sb2dpbmAsIHtcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgZW1haWw6IGF1dG9Mb2dpbi5lbWFpbCxcbiAgICAgICAgICAgICAgcGFzc3dvcmQ6IGF1dG9Mb2dpbi5wYXNzd29yZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBpZiAoYXV0b0xvZ2luUmVzdWx0LnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zdCBhdXRvTG9naW5Kc29uID0gYXdhaXQgYXV0b0xvZ2luUmVzdWx0Lmpzb24oKVxuICAgICAgICAgICAgYXdhaXQgc2V0QWN0aXZlVXNlcihhdXRvTG9naW5Kc29uLnVzZXIpXG4gICAgICAgICAgICBpZiAoYXV0b0xvZ2luSnNvbj8udG9rZW4pIHtcbiAgICAgICAgICAgICAgc2V0VG9rZW5BbmRFeHBpcmF0aW9uKGF1dG9Mb2dpbkpzb24pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IHNldEFjdGl2ZVVzZXIobnVsbClcbiAgICAgICAgICAgIHJldm9rZVRva2VuQW5kRXhwaXJlKClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXdhaXQgc2V0QWN0aXZlVXNlcihudWxsKVxuICAgICAgICAgIHJldm9rZVRva2VuQW5kRXhwaXJlKClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRvYXN0LmVycm9yKGBGZXRjaGluZyB1c2VyIGZhaWxlZDogJHtlLm1lc3NhZ2V9YClcbiAgICB9XG4gIH0sIFtcbiAgICBzZXJ2ZXJVUkwsXG4gICAgYXBpLFxuICAgIHVzZXJTbHVnLFxuICAgIGkxOG4sXG4gICAgYXV0b0xvZ2luLFxuICAgIHNldFRva2VuQW5kRXhwaXJhdGlvbixcbiAgICByZXZva2VUb2tlbkFuZEV4cGlyZSxcbiAgICBzZXRBY3RpdmVVc2VyLFxuICBdKVxuXG4gIC8vIE9uIG1vdW50LCBnZXQgdXNlciBhbmQgc2V0XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkID09PSB1bmRlZmluZWQgfHwgaWQgIT09IHVzZXJJRFJlZi5jdXJyZW50KSB7XG4gICAgICB2b2lkIGZldGNoRnVsbFVzZXIoKVxuICAgIH1cbiAgfSwgW2ZldGNoRnVsbFVzZXIsIGlkXSlcblxuICAvLyBXaGVuIGxvY2F0aW9uIGNoYW5nZXMsIHJlZnJlc2ggY29va2llXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICByZWZyZXNoQ29va2llKClcbiAgICB9XG4gIH0sIFtkZWJvdW5jZWRMb2NhdGlvbkNoYW5nZSwgcmVmcmVzaENvb2tpZSwgaWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0TGFzdExvY2F0aW9uQ2hhbmdlKERhdGUubm93KCkpXG4gIH0sIFtwYXRobmFtZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVtaW5kZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+XG4gICAgY29uc3Qgbm93ID0gTWF0aC5yb3VuZChuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDApXG4gICAgY29uc3QgcmVtYWluaW5nVGltZSA9IHR5cGVvZiB0b2tlbkV4cGlyYXRpb24gPT09ICdudW1iZXInID8gdG9rZW5FeHBpcmF0aW9uIC0gbm93IDogMFxuXG4gICAgaWYgKHJlbWFpbmluZ1RpbWUgPiAwKSB7XG4gICAgICByZW1pbmRlciA9IHNldFRpbWVvdXQoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBvcGVuTW9kYWwoJ3N0YXktbG9nZ2VkLWluJylcbiAgICAgICAgfSxcbiAgICAgICAgTWF0aC5tYXgoTWF0aC5taW4oKHJlbWFpbmluZ1RpbWUgLSA2MCkgKiAxMDAwLCBtYXhUaW1lb3V0VGltZSkpLFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAocmVtaW5kZXIpIGNsZWFyVGltZW91dChyZW1pbmRlcilcbiAgICB9XG4gIH0sIFt0b2tlbkV4cGlyYXRpb24sIG9wZW5Nb2RhbF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgZm9yY2VMb2dPdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+XG4gICAgY29uc3Qgbm93ID0gTWF0aC5yb3VuZChuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDApXG4gICAgY29uc3QgcmVtYWluaW5nVGltZSA9IHR5cGVvZiB0b2tlbkV4cGlyYXRpb24gPT09ICdudW1iZXInID8gdG9rZW5FeHBpcmF0aW9uIC0gbm93IDogMFxuXG4gICAgaWYgKHJlbWFpbmluZ1RpbWUgPiAwKSB7XG4gICAgICBmb3JjZUxvZ091dCA9IHNldFRpbWVvdXQoXG4gICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBhd2FpdCBzZXRBY3RpdmVVc2VyKG51bGwpXG4gICAgICAgICAgcmV2b2tlVG9rZW5BbmRFeHBpcmUoKVxuICAgICAgICAgIHJlZGlyZWN0VG9JbmFjdGl2aXR5Um91dGUoKVxuICAgICAgICB9LFxuICAgICAgICBNYXRoLm1heChNYXRoLm1pbihyZW1haW5pbmdUaW1lICogMTAwMCwgbWF4VGltZW91dFRpbWUpLCAwKSxcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGZvcmNlTG9nT3V0KSBjbGVhclRpbWVvdXQoZm9yY2VMb2dPdXQpXG4gICAgfVxuICB9LCBbXG4gICAgdG9rZW5FeHBpcmF0aW9uLFxuICAgIGNsb3NlQWxsTW9kYWxzLFxuICAgIGkxOG4sXG4gICAgcmVkaXJlY3RUb0luYWN0aXZpdHlSb3V0ZSxcbiAgICByZXZva2VUb2tlbkFuZEV4cGlyZSxcbiAgICBzZXRBY3RpdmVVc2VyLFxuICBdKVxuXG4gIHJldHVybiAoXG4gICAgPENvbnRleHQuUHJvdmlkZXJcbiAgICAgIHZhbHVlPXt7XG4gICAgICAgIGZldGNoRnVsbFVzZXIsXG4gICAgICAgIGxvZ091dCxcbiAgICAgICAgcGVybWlzc2lvbnMsXG4gICAgICAgIHJlZnJlc2hDb29raWUsXG4gICAgICAgIHJlZnJlc2hDb29raWVBc3luYyxcbiAgICAgICAgcmVmcmVzaFBlcm1pc3Npb25zLFxuICAgICAgICBzZXRVc2VyOiBzZXRBY3RpdmVVc2VyLFxuICAgICAgICBzdHJhdGVneSxcbiAgICAgICAgdG9rZW46IHRva2VuSW5NZW1vcnksXG4gICAgICAgIHRva2VuRXhwaXJhdGlvbixcbiAgICAgICAgdXNlcixcbiAgICAgIH19XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgdXNlQXV0aCA9IDxUID0gVXNlciw+KCk6IEF1dGhDb250ZXh0PFQ+ID0+IHVzZUNvbnRleHQoQ29udGV4dCkgYXMgQXV0aENvbnRleHQ8VD5cbiJdLCJuYW1lcyI6WyJBdXRoUHJvdmlkZXIiLCJ1c2VBdXRoIiwiQ29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJtYXhUaW1lb3V0VGltZSIsImNoaWxkcmVuIiwidXNlciIsInNldFVzZXIiLCJ1c2VTdGF0ZSIsInRva2VuSW5NZW1vcnkiLCJzZXRUb2tlbkluTWVtb3J5IiwidG9rZW5FeHBpcmF0aW9uIiwic2V0VG9rZW5FeHBpcmF0aW9uIiwic3RyYXRlZ3kiLCJzZXRTdHJhdGVneSIsInBhdGhuYW1lIiwidXNlTG9jYXRpb24iLCJwdXNoIiwidXNlSGlzdG9yeSIsImNvbmZpZyIsInVzZUNvbmZpZyIsImFkbWluIiwiYXV0b0xvZ2luIiwiaW5hY3Rpdml0eVJvdXRlIiwibG9nb3V0SW5hY3Rpdml0eVJvdXRlIiwidXNlclNsdWciLCJyb3V0ZXMiLCJhcGkiLCJzZXJ2ZXJVUkwiLCJwZXJtaXNzaW9ucyIsInNldFBlcm1pc3Npb25zIiwiaTE4biIsInVzZVRyYW5zbGF0aW9uIiwiY2xvc2VBbGxNb2RhbHMiLCJvcGVuTW9kYWwiLCJ1c2VNb2RhbCIsImxhc3RMb2NhdGlvbkNoYW5nZSIsInNldExhc3RMb2NhdGlvbkNoYW5nZSIsImRlYm91bmNlZExvY2F0aW9uQ2hhbmdlIiwidXNlRGVib3VuY2UiLCJ1c2VySURSZWYiLCJSZWFjdCIsInVzZVJlZiIsImlkIiwicmVmcmVzaFBlcm1pc3Npb25zIiwidXNlQ2FsbGJhY2siLCJsb2NhbGUiLCJwYXJhbXMiLCJyZXF1ZXN0IiwicmVxdWVzdHMiLCJnZXQiLCJxcyIsInN0cmluZ2lmeSIsImFkZFF1ZXJ5UHJlZml4IiwiaGVhZGVycyIsImxhbmd1YWdlIiwic3RhdHVzIiwianNvbiIsIkVycm9yIiwiZSIsInRvYXN0IiwiZXJyb3IiLCJtZXNzYWdlIiwic2V0QWN0aXZlVXNlciIsInVzZXJUb1NldCIsImN1cnJlbnQiLCJyZWRpcmVjdFRvSW5hY3Rpdml0eVJvdXRlIiwid2luZG93IiwibG9jYXRpb24iLCJzdGFydHNXaXRoIiwicmVkaXJlY3RQYXJhbSIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlcGxhY2UiLCJyZXZva2VUb2tlbkFuZEV4cGlyZSIsInVuZGVmaW5lZCIsInNldFRva2VuQW5kRXhwaXJhdGlvbiIsInRva2VuIiwicmVmcmVzaGVkVG9rZW4iLCJleHAiLCJyZWZyZXNoQ29va2llIiwiZm9yY2VSZWZyZXNoIiwibm93IiwiTWF0aCIsInJvdW5kIiwiRGF0ZSIsImdldFRpbWUiLCJyZW1haW5pbmdUaW1lIiwic2V0VGltZW91dCIsInBvc3QiLCJyZWZyZXNoQ29va2llQXN5bmMiLCJza2lwU2V0VXNlciIsImxvZ091dCIsImZldGNoRnVsbFVzZXIiLCJwcmVmaWxsT25seSIsImF1dG9Mb2dpblJlc3VsdCIsImJvZHkiLCJKU09OIiwiZW1haWwiLCJwYXNzd29yZCIsImF1dG9Mb2dpbkpzb24iLCJ1c2VFZmZlY3QiLCJyZW1pbmRlciIsIm1heCIsIm1pbiIsImNsZWFyVGltZW91dCIsImZvcmNlTG9nT3V0IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsInVzZUNvbnRleHQiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { Permissions, User } from '../../../../auth/types';
|
|
2
2
|
export type AuthContext<T = User> = {
|
|
3
3
|
fetchFullUser: () => Promise<void>;
|
|
4
|
-
logOut: () => void
|
|
4
|
+
logOut: () => Promise<void>;
|
|
5
5
|
permissions?: Permissions;
|
|
6
6
|
refreshCookie: (forceRefresh?: boolean) => void;
|
|
7
7
|
refreshCookieAsync: () => Promise<User>;
|
|
8
8
|
refreshPermissions: ({ locale }?: {
|
|
9
9
|
locale?: string;
|
|
10
10
|
}) => Promise<void>;
|
|
11
|
-
setUser: (user: T) => void
|
|
11
|
+
setUser: (user: T) => Promise<void>;
|
|
12
12
|
strategy?: string;
|
|
13
13
|
token?: string;
|
|
14
14
|
tokenExpiration?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/utilities/Auth/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAE/D,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,IAAI,IAAI;IAClC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/utilities/Auth/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAE/D,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,IAAI,IAAI;IAClC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,kBAAkB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;CAChB,CAAA"}
|
|
@@ -73,7 +73,7 @@ const Logout = (props)=>{
|
|
|
73
73
|
const query = new URLSearchParams((0, _reactrouterdom.useLocation)().search);
|
|
74
74
|
const redirect = query.get('redirect');
|
|
75
75
|
(0, _react.useEffect)(()=>{
|
|
76
|
-
logOut();
|
|
76
|
+
void logOut();
|
|
77
77
|
}, [
|
|
78
78
|
logOut
|
|
79
79
|
]);
|
|
@@ -93,4 +93,4 @@ const Logout = (props)=>{
|
|
|
93
93
|
};
|
|
94
94
|
const _default = Logout;
|
|
95
95
|
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL3ZpZXdzL0xvZ291dC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJ1xuXG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uLy4uL2VsZW1lbnRzL0J1dHRvbidcbmltcG9ydCBNaW5pbWFsIGZyb20gJy4uLy4uL3RlbXBsYXRlcy9NaW5pbWFsJ1xuaW1wb3J0IHsgdXNlQXV0aCB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9BdXRoJ1xuaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0NvbmZpZydcbmltcG9ydCBNZXRhIGZyb20gJy4uLy4uL3V0aWxpdGllcy9NZXRhJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdsb2dvdXQnXG5cbmNvbnN0IExvZ291dDogUmVhY3QuRkM8eyBpbmFjdGl2aXR5PzogYm9vbGVhbiB9PiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGluYWN0aXZpdHkgfSA9IHByb3BzXG5cbiAgY29uc3QgeyBsb2dPdXQgfSA9IHVzZUF1dGgoKVxuICBjb25zdCB7XG4gICAgcm91dGVzOiB7IGFkbWluIH0sXG4gIH0gPSB1c2VDb25maWcoKVxuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdhdXRoZW50aWNhdGlvbicpXG5cbiAgLy8gRmV0Y2ggJ3JlZGlyZWN0JyBmcm9tIHRoZSBxdWVyeSBzdHJpbmcgd2hpY2ggZGVub3RlcyB0aGUgVVJMIHRoZSB1c2VyIG9yaWdpbmFsbHkgdHJpZWQgdG8gdmlzaXQuIFRoaXMgaXMgc2V0IGluIHRoZSBSb3V0ZXMudHN4IGZpbGUgd2hlbiBhIHVzZXIgdHJpZXMgdG8gYWNjZXNzIGEgcHJvdGVjdGVkIHJvdXRlIGFuZCBpcyByZWRpcmVjdGVkIHRvIHRoZSBsb2dpbiBzY3JlZW4uXG4gIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1c2VMb2NhdGlvbigpLnNlYXJjaClcbiAgY29uc3QgcmVkaXJlY3QgPSBxdWVyeS5nZXQoJ3JlZGlyZWN0JylcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgbG9nT3V0KClcbiAgfSwgW2xvZ091dF0pXG5cbiAgcmV0dXJuIChcbiAgICA8TWluaW1hbCBjbGFzc05hbWU9e2Jhc2VDbGFzc30+XG4gICAgICA8TWV0YSBkZXNjcmlwdGlvbj17dCgnbG9nb3V0VXNlcicpfSBrZXl3b3Jkcz17dCgnbG9nb3V0Jyl9IHRpdGxlPXt0KCdsb2dvdXQnKX0gLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X193cmFwYH0+XG4gICAgICAgIHtpbmFjdGl2aXR5ICYmIDxoMj57dCgnbG9nZ2VkT3V0SW5hY3Rpdml0eScpfTwvaDI+fVxuICAgICAgICB7IWluYWN0aXZpdHkgJiYgPGgyPnt0KCdsb2dnZWRPdXRTdWNjZXNzZnVsbHknKX08L2gyPn1cbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGJ1dHRvblN0eWxlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICBlbD1cImFuY2hvclwiXG4gICAgICAgICAgdXJsPXtgJHthZG1pbn0vbG9naW4ke1xuICAgICAgICAgICAgcmVkaXJlY3QgJiYgcmVkaXJlY3QubGVuZ3RoID4gMCA/IGA/cmVkaXJlY3Q9JHtlbmNvZGVVUklDb21wb25lbnQocmVkaXJlY3QpfWAgOiAnJ1xuICAgICAgICAgIH1gfVxuICAgICAgICA+XG4gICAgICAgICAge3QoJ2xvZ0JhY2tJbicpfVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvTWluaW1hbD5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBMb2dvdXRcbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJMb2dvdXQiLCJwcm9wcyIsImluYWN0aXZpdHkiLCJsb2dPdXQiLCJ1c2VBdXRoIiwicm91dGVzIiwiYWRtaW4iLCJ1c2VDb25maWciLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJxdWVyeSIsIlVSTFNlYXJjaFBhcmFtcyIsInVzZUxvY2F0aW9uIiwic2VhcmNoIiwicmVkaXJlY3QiLCJnZXQiLCJ1c2VFZmZlY3QiLCJNaW5pbWFsIiwiY2xhc3NOYW1lIiwiTWV0YSIsImRlc2NyaXB0aW9uIiwia2V5d29yZHMiLCJ0aXRsZSIsImRpdiIsImgyIiwiQnV0dG9uIiwiYnV0dG9uU3R5bGUiLCJlbCIsInVybCIsImxlbmd0aCIsImVuY29kZVVSSUNvbXBvbmVudCJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7K0JBa0RBOzs7ZUFBQTs7OytEQWxEaUM7OEJBQ0Y7Z0NBQ0g7K0RBRVQ7Z0VBQ0M7c0JBQ0k7d0JBQ0U7NkRBQ1Q7UUFDVjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQSxZQUFZO0FBRWxCLE1BQU1DLFNBQTZDLENBQUNDO0lBQ2xELE1BQU0sRUFBRUMsVUFBVSxFQUFFLEdBQUdEO0lBRXZCLE1BQU0sRUFBRUUsTUFBTSxFQUFFLEdBQUdDLElBQUFBLGFBQU87SUFDMUIsTUFBTSxFQUNKQyxRQUFRLEVBQUVDLEtBQUssRUFBRSxFQUNsQixHQUFHQyxJQUFBQSxpQkFBUztJQUNiLE1BQU0sRUFBRUMsQ0FBQyxFQUFFLEdBQUdDLElBQUFBLDRCQUFjLEVBQUM7SUFFN0IsMk5BQTJOO0lBQzNOLE1BQU1DLFFBQVEsSUFBSUMsZ0JBQWdCQyxJQUFBQSwyQkFBVyxJQUFHQyxNQUFNO0lBQ3RELE1BQU1DLFdBQVdKLE1BQU1LLEdBQUcsQ0FBQztJQUUzQkMsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLEtBQUtiO0lBQ1AsR0FBRztRQUFDQTtLQUFPO0lBRVgscUJBQ0UsNkJBQUNjLGdCQUFPO1FBQUNDLFdBQVduQjtxQkFDbEIsNkJBQUNvQixhQUFJO1FBQUNDLGFBQWFaLEVBQUU7UUFBZWEsVUFBVWIsRUFBRTtRQUFXYyxPQUFPZCxFQUFFO3NCQUNwRSw2QkFBQ2U7UUFBSUwsV0FBVyxDQUFDLEVBQUVuQixVQUFVLE1BQU0sQ0FBQztPQUNqQ0csNEJBQWMsNkJBQUNzQixZQUFJaEIsRUFBRSx5QkFDckIsQ0FBQ04sNEJBQWMsNkJBQUNzQixZQUFJaEIsRUFBRSx5Q0FDdkIsNkJBQUNpQixlQUFNO1FBQ0xDLGFBQVk7UUFDWkMsSUFBRztRQUNIQyxLQUFLLENBQUMsRUFBRXRCLE1BQU0sTUFBTSxFQUNsQlEsWUFBWUEsU0FBU2UsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUVDLG1CQUFtQmhCLFVBQVUsQ0FBQyxHQUFHLEdBQ2pGLENBQUM7T0FFRE4sRUFBRTtBQUtiO01BRUEsV0FBZVIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/admin/components/views/collections/Edit/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAGjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAW7D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAC1C,uBAAuB,GAAG;IACxB,UAAU,EAAE,UAAU,CAAA;CACvB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/admin/components/views/collections/Edit/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAGjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAW7D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAC1C,uBAAuB,GAAG;IACxB,UAAU,EAAE,UAAU,CAAA;CACvB,CA6EF,CAAA"}
|