payload 2.20.0 → 2.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/elements/Autosave/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Autosave/index.js +96 -11
- package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentControls/index.js +8 -5
- package/dist/admin/components/elements/SaveDraft/index.d.ts.map +1 -1
- package/dist/admin/components/elements/SaveDraft/index.js +5 -3
- package/dist/admin/components/forms/Form/index.js +21 -21
- package/dist/admin/components/forms/Form/reduceFieldsToValuesWithValidation.d.ts +15 -0
- package/dist/admin/components/forms/Form/reduceFieldsToValuesWithValidation.d.ts.map +1 -0
- package/dist/admin/components/forms/Form/reduceFieldsToValuesWithValidation.js +38 -0
- package/dist/admin/components/utilities/LanguageWrap/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/LanguageWrap/index.js +7 -4
- package/dist/admin/components/utilities/LanguageWrap/index.scss +8 -0
- package/dist/admin/components/views/Version/Version.js +2 -2
- package/dist/admin/components/views/Versions/cells/AutosaveCell.d.ts.map +1 -1
- package/dist/admin/components/views/Versions/cells/AutosaveCell.js +1 -2
- package/dist/admin/components/views/Versions/index.js +2 -2
- package/dist/admin/scss/app.scss +0 -7
- package/dist/auth/isLocked.d.ts.map +1 -1
- package/dist/auth/isLocked.js +5 -2
- package/dist/auth/operations/login.js +2 -2
- package/dist/collections/config/sanitize.d.ts.map +1 -1
- package/dist/collections/config/sanitize.js +10 -6
- package/dist/collections/config/schema.d.ts.map +1 -1
- package/dist/collections/config/schema.js +3 -2
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +2 -2
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +2 -2
- package/dist/collections/operations/updateByID.d.ts.map +1 -1
- package/dist/collections/operations/updateByID.js +2 -2
- package/dist/globals/config/sanitize.d.ts.map +1 -1
- package/dist/globals/config/sanitize.js +10 -6
- package/dist/globals/config/schema.d.ts.map +1 -1
- package/dist/globals/config/schema.js +3 -2
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js +2 -2
- package/dist/uploads/cropImage.js +3 -3
- package/dist/uploads/generateFileData.js +5 -5
- package/dist/uploads/imageResizer.d.ts.map +1 -1
- package/dist/uploads/imageResizer.js +22 -12
- package/dist/versions/types.d.ts +2 -0
- package/dist/versions/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -148,9 +148,9 @@ const Form = (props)=>{
|
|
|
148
148
|
});
|
|
149
149
|
if (!stateMatches) {
|
|
150
150
|
dispatchFields({
|
|
151
|
+
type: 'UPDATE',
|
|
151
152
|
path,
|
|
152
|
-
rows: newRows
|
|
153
|
-
type: 'UPDATE'
|
|
153
|
+
rows: newRows
|
|
154
154
|
});
|
|
155
155
|
}
|
|
156
156
|
});
|
|
@@ -195,8 +195,8 @@ const Form = (props)=>{
|
|
|
195
195
|
await Promise.all(validationPromises);
|
|
196
196
|
if (!(0, _deepequal.default)(contextRef.current.fields, validatedFieldState)) {
|
|
197
197
|
dispatchFields({
|
|
198
|
-
|
|
199
|
-
|
|
198
|
+
type: 'REPLACE_STATE',
|
|
199
|
+
state: validatedFieldState
|
|
200
200
|
});
|
|
201
201
|
}
|
|
202
202
|
return isValid;
|
|
@@ -270,8 +270,8 @@ const Form = (props)=>{
|
|
|
270
270
|
destination.state = {
|
|
271
271
|
status: [
|
|
272
272
|
{
|
|
273
|
-
|
|
274
|
-
|
|
273
|
+
type: 'success',
|
|
274
|
+
message: json.message
|
|
275
275
|
}
|
|
276
276
|
]
|
|
277
277
|
};
|
|
@@ -426,11 +426,11 @@ const Form = (props)=>{
|
|
|
426
426
|
user
|
|
427
427
|
});
|
|
428
428
|
dispatchFields({
|
|
429
|
+
type: 'ADD_ROW',
|
|
429
430
|
blockType: data?.blockType,
|
|
430
431
|
path,
|
|
431
432
|
rowIndex,
|
|
432
|
-
subFieldState
|
|
433
|
-
type: 'ADD_ROW'
|
|
433
|
+
subFieldState
|
|
434
434
|
});
|
|
435
435
|
}
|
|
436
436
|
}, [
|
|
@@ -446,9 +446,9 @@ const Form = (props)=>{
|
|
|
446
446
|
]);
|
|
447
447
|
const removeFieldRow = (0, _react.useCallback)(({ path, rowIndex })=>{
|
|
448
448
|
dispatchFields({
|
|
449
|
+
type: 'REMOVE_ROW',
|
|
449
450
|
path,
|
|
450
|
-
rowIndex
|
|
451
|
-
type: 'REMOVE_ROW'
|
|
451
|
+
rowIndex
|
|
452
452
|
});
|
|
453
453
|
}, [
|
|
454
454
|
dispatchFields
|
|
@@ -472,11 +472,11 @@ const Form = (props)=>{
|
|
|
472
472
|
user
|
|
473
473
|
});
|
|
474
474
|
dispatchFields({
|
|
475
|
+
type: 'REPLACE_ROW',
|
|
475
476
|
blockType: data?.blockType,
|
|
476
477
|
path,
|
|
477
478
|
rowIndex,
|
|
478
|
-
subFieldState
|
|
479
|
-
type: 'REPLACE_ROW'
|
|
479
|
+
subFieldState
|
|
480
480
|
});
|
|
481
481
|
}
|
|
482
482
|
}, [
|
|
@@ -546,8 +546,8 @@ const Form = (props)=>{
|
|
|
546
546
|
};
|
|
547
547
|
setModified(false);
|
|
548
548
|
dispatchFields({
|
|
549
|
-
|
|
550
|
-
|
|
549
|
+
type: 'REPLACE_STATE',
|
|
550
|
+
state
|
|
551
551
|
});
|
|
552
552
|
}, [
|
|
553
553
|
id,
|
|
@@ -565,8 +565,8 @@ const Form = (props)=>{
|
|
|
565
565
|
};
|
|
566
566
|
setModified(false);
|
|
567
567
|
dispatchFields({
|
|
568
|
-
|
|
569
|
-
|
|
568
|
+
type: 'REPLACE_STATE',
|
|
569
|
+
state
|
|
570
570
|
});
|
|
571
571
|
}, [
|
|
572
572
|
dispatchFields
|
|
@@ -601,8 +601,8 @@ const Form = (props)=>{
|
|
|
601
601
|
..._initContextState.default
|
|
602
602
|
};
|
|
603
603
|
dispatchFields({
|
|
604
|
-
|
|
605
|
-
|
|
604
|
+
type: 'REPLACE_STATE',
|
|
605
|
+
state: initialState
|
|
606
606
|
});
|
|
607
607
|
}
|
|
608
608
|
}, [
|
|
@@ -617,8 +617,8 @@ const Form = (props)=>{
|
|
|
617
617
|
const builtState = (0, _buildInitialState.default)(initialData);
|
|
618
618
|
setFormattedInitialData(builtState);
|
|
619
619
|
dispatchFields({
|
|
620
|
-
|
|
621
|
-
|
|
620
|
+
type: 'REPLACE_STATE',
|
|
621
|
+
state: builtState
|
|
622
622
|
});
|
|
623
623
|
}
|
|
624
624
|
}, [
|
|
@@ -671,4 +671,4 @@ const Form = (props)=>{
|
|
|
671
671
|
};
|
|
672
672
|
const _default = Form;
|
|
673
673
|
|
|
674
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLW5vbmludGVyYWN0aXZlLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgaXNEZWVwRXF1YWwgZnJvbSAnZGVlcC1lcXVhbCdcbmltcG9ydCB7IHNlcmlhbGl6ZSB9IGZyb20gJ29iamVjdC10by1mb3JtZGF0YSdcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWR1Y2VyLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSdcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknXG5cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICcuLi8uLi8uLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBDb250ZXh0LFxuICBGaWVsZHMsXG4gIENvbnRleHQgYXMgRm9ybUNvbnRleHRUeXBlLFxuICBHZXREYXRhQnlQYXRoLFxuICBQcm9wcyxcbiAgUm93LFxuICBTdWJtaXRPcHRpb25zLFxufSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBpc051bWJlciB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9pc051bWJlcidcbmltcG9ydCB7IHNldHNBcmVFcXVhbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9zZXRzQXJlRXF1YWwnXG5pbXBvcnQgeyBzcGxpdFBhdGhCeUFycmF5RmllbGRzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL3NwbGl0UGF0aEJ5QXJyYXlGaWVsZHMnXG5pbXBvcnQgd2FpdCBmcm9tICcuLi8uLi8uLi8uLi91dGlsaXRpZXMvd2FpdCdcbmltcG9ydCB7IHJlcXVlc3RzIH0gZnJvbSAnLi4vLi4vLi4vYXBpJ1xuaW1wb3J0IHVzZVRocm90dGxlZEVmZmVjdCBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUaHJvdHRsZWRFZmZlY3QnXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0F1dGgnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvQ29uZmlnJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0RvY3VtZW50SW5mbydcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9Mb2NhbGUnXG5pbXBvcnQgeyB1c2VPcGVyYXRpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvT3BlcmF0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBXYXRjaEZvcm1FcnJvcnMgfSBmcm9tICcuL1dhdGNoRm9ybUVycm9ycydcbmltcG9ydCB7IGJ1aWxkRmllbGRTY2hlbWFNYXAgfSBmcm9tICcuL2J1aWxkRmllbGRTY2hlbWFNYXAnXG5pbXBvcnQgYnVpbGRJbml0aWFsU3RhdGUgZnJvbSAnLi9idWlsZEluaXRpYWxTdGF0ZSdcbmltcG9ydCBidWlsZFN0YXRlRnJvbVNjaGVtYSBmcm9tICcuL2J1aWxkU3RhdGVGcm9tU2NoZW1hJ1xuaW1wb3J0IHtcbiAgRm9ybUNvbnRleHQsXG4gIEZvcm1GaWVsZHNDb250ZXh0LFxuICBGb3JtV2F0Y2hDb250ZXh0LFxuICBNb2RpZmllZENvbnRleHQsXG4gIFByb2Nlc3NpbmdDb250ZXh0LFxuICBTdWJtaXR0ZWRDb250ZXh0LFxufSBmcm9tICcuL2NvbnRleHQnXG5pbXBvcnQgZXJyb3JNZXNzYWdlcyBmcm9tICcuL2Vycm9yTWVzc2FnZXMnXG5pbXBvcnQgeyBmaWVsZFJlZHVjZXIgfSBmcm9tICcuL2ZpZWxkUmVkdWNlcidcbmltcG9ydCBnZXREYXRhQnlQYXRoRnVuYyBmcm9tICcuL2dldERhdGFCeVBhdGgnXG5pbXBvcnQgZ2V0U2libGluZ0RhdGFGdW5jIGZyb20gJy4vZ2V0U2libGluZ0RhdGEnXG5pbXBvcnQgaW5pdENvbnRleHRTdGF0ZSBmcm9tICcuL2luaXRDb250ZXh0U3RhdGUnXG5pbXBvcnQgcmVkdWNlRmllbGRzVG9WYWx1ZXMgZnJvbSAnLi9yZWR1Y2VGaWVsZHNUb1ZhbHVlcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2Zvcm0nXG5cbmNvbnN0IEZvcm06IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGlkLCBjb2xsZWN0aW9uLCBnZXREb2NQcmVmZXJlbmNlcywgZ2xvYmFsIH0gPSB1c2VEb2N1bWVudEluZm8oKVxuXG4gIGNvbnN0IHtcbiAgICBhY3Rpb24sXG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIGRpc2FibGVTdWNjZXNzU3RhdHVzLFxuICAgIGRpc2FibGVkLFxuICAgIGZpZWxkczogZmllbGRzRnJvbVByb3BzID0gY29sbGVjdGlvbj8uZmllbGRzIHx8IGdsb2JhbD8uZmllbGRzLFxuICAgIGhhbmRsZVJlc3BvbnNlLFxuICAgIGluaXRpYWxEYXRhLCAvLyB2YWx1ZXMgb25seSwgcGF0aHMgYXJlIHJlcXVpcmVkIGFzIGtleSAtIGZvcm0gc2hvdWxkIGJ1aWxkIGluaXRpYWwgc3RhdGUgYXMgY29udmVuaWVuY2VcbiAgICBpbml0aWFsU3RhdGUsIC8vIGZ1bGx5IGZvcm1lZCBpbml0aWFsIGZpZWxkIHN0YXRlXG4gICAgbWV0aG9kLFxuICAgIG9uU3VibWl0LFxuICAgIG9uU3VjY2VzcyxcbiAgICByZWRpcmVjdCxcbiAgICBzdWJtaXR0ZWQ6IHN1Ym1pdHRlZEZyb21Qcm9wcyxcbiAgICB3YWl0Rm9yQXV0b2NvbXBsZXRlLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpXG4gIGNvbnN0IHsgY29kZTogbG9jYWxlIH0gPSB1c2VMb2NhbGUoKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdnZW5lcmFsJylcbiAgY29uc3QgeyByZWZyZXNoQ29va2llLCB1c2VyIH0gPSB1c2VBdXRoKClcbiAgY29uc3Qgb3BlcmF0aW9uID0gdXNlT3BlcmF0aW9uKClcblxuICBjb25zdCBjb25maWcgPSB1c2VDb25maWcoKVxuXG4gIGNvbnN0IFttb2RpZmllZCwgc2V0TW9kaWZpZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtwcm9jZXNzaW5nLCBzZXRQcm9jZXNzaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc3VibWl0dGVkLCBzZXRTdWJtaXR0ZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtmb3JtYXR0ZWRJbml0aWFsRGF0YSwgc2V0Rm9ybWF0dGVkSW5pdGlhbERhdGFdID0gdXNlU3RhdGUoYnVpbGRJbml0aWFsU3RhdGUoaW5pdGlhbERhdGEpKVxuXG4gIGNvbnN0IGZvcm1SZWYgPSB1c2VSZWY8SFRNTEZvcm1FbGVtZW50PihudWxsKVxuICBjb25zdCBjb250ZXh0UmVmID0gdXNlUmVmKHt9IGFzIEZvcm1Db250ZXh0VHlwZSlcblxuICBsZXQgaW5pdGlhbEZpZWxkU3RhdGUgPSB7fVxuXG4gIGlmIChmb3JtYXR0ZWRJbml0aWFsRGF0YSkgaW5pdGlhbEZpZWxkU3RhdGUgPSBmb3JtYXR0ZWRJbml0aWFsRGF0YVxuICBpZiAoaW5pdGlhbFN0YXRlKSBpbml0aWFsRmllbGRTdGF0ZSA9IGluaXRpYWxTdGF0ZVxuXG4gIGNvbnN0IGZpZWxkc1JlZHVjZXIgPSB1c2VSZWR1Y2VyKGZpZWxkUmVkdWNlciwge30sICgpID0+IGluaXRpYWxGaWVsZFN0YXRlKVxuICAvKipcbiAgICogYGZpZWxkc2AgaXMgdGhlIGN1cnJlbnQsIHVwLXRvLWRhdGUgc3RhdGUvZGF0YSBvZiBhbGwgZmllbGRzIGluIHRoZSBmb3JtLiBJdCBjYW4gYmUgbW9kaWZpZWQgYnkgdXNpbmcgZGlzcGF0Y2hGaWVsZHMsXG4gICAqIHdoaWNoIGNhbGxzIHRoZSBmaWVsZFJlZHVjZXIsIHdoaWNoIHRoZW4gdXBkYXRlcyB0aGUgc3RhdGUuXG4gICAqL1xuICBjb25zdCBbZmllbGRzLCBkaXNwYXRjaEZpZWxkc10gPSBmaWVsZHNSZWR1Y2VyXG5cbiAgY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcyA9IGZpZWxkc1xuICBjb250ZXh0UmVmLmN1cnJlbnQuZGlzcGF0Y2hGaWVsZHMgPSBkaXNwYXRjaEZpZWxkc1xuXG4gIC8vIEJ1aWxkIGEgY3VycmVudCBzZXQgb2YgY2hpbGQgZXJyb3JzIGZvciBhbGwgcm93cyBpbiBmb3JtIHN0YXRlXG4gIGNvbnN0IGJ1aWxkUm93RXJyb3JzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nRmllbGRSb3dzOiB7IFtwYXRoOiBzdHJpbmddOiBSb3dbXSB9ID0ge31cbiAgICBjb25zdCBuZXdGaWVsZFJvd3M6IHsgW3BhdGg6IHN0cmluZ106IFJvd1tdIH0gPSB7fVxuXG4gICAgT2JqZWN0LmVudHJpZXMoZmllbGRzKS5mb3JFYWNoKChbcGF0aCwgZmllbGRdKSA9PiB7XG4gICAgICBjb25zdCBwYXRoU2VnbWVudHMgPSBzcGxpdFBhdGhCeUFycmF5RmllbGRzKHBhdGgpXG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aFNlZ21lbnRzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkUGF0aCA9IHBhdGhTZWdtZW50cy5zbGljZSgwLCBpICsgMSkuam9pbignLicpXG4gICAgICAgIGNvbnN0IGZvcm1GaWVsZCA9IGZpZWxkcz8uW2ZpZWxkUGF0aF1cblxuICAgICAgICAvLyBJcyB0aGlzIGFuIGFycmF5IG9yIGJsb2NrcyBmaWVsZD9cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZm9ybUZpZWxkPy5yb3dzKSkge1xuICAgICAgICAgIC8vIEtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGV4aXN0aW5nIHJvdyBzdGF0ZVxuICAgICAgICAgIGV4aXN0aW5nRmllbGRSb3dzW2ZpZWxkUGF0aF0gPSBmb3JtRmllbGQucm93c1xuXG4gICAgICAgICAgLy8gQSBuZXcgcm93IHN0YXRlIHdpbGwgYmUgdXNlZCB0byBjb21wYXJlXG4gICAgICAgICAgLy8gYWdhaW5zdCB0aGUgb2xkIHN0YXRlIGxhdGVyLFxuICAgICAgICAgIC8vIHRvIHNlZSBpZiB3ZSBuZWVkIHRvIGRpc3BhdGNoIGFuIHVwZGF0ZVxuICAgICAgICAgIGlmICghbmV3RmllbGRSb3dzW2ZpZWxkUGF0aF0pIHtcbiAgICAgICAgICAgIG5ld0ZpZWxkUm93c1tmaWVsZFBhdGhdID0gZm9ybUZpZWxkLnJvd3MubWFwKChleGlzdGluZ1JvdykgPT4gKHtcbiAgICAgICAgICAgICAgLi4uZXhpc3RpbmdSb3csXG4gICAgICAgICAgICAgIGNoaWxkRXJyb3JQYXRoczogbmV3IFNldCgpLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgcm93SW5kZXggPSBwYXRoU2VnbWVudHNbaSArIDFdXG4gICAgICAgICAgY29uc3QgY2hpbGRGaWVsZFBhdGggPSBwYXRoU2VnbWVudHMuc2xpY2UoaSArIDEpLmpvaW4oJy4nKVxuXG4gICAgICAgICAgaWYgKGZpZWxkLnZhbGlkID09PSBmYWxzZSAmJiBjaGlsZEZpZWxkUGF0aCkge1xuICAgICAgICAgICAgbmV3RmllbGRSb3dzW2ZpZWxkUGF0aF1bcm93SW5kZXhdLmNoaWxkRXJyb3JQYXRocy5hZGQoYCR7ZmllbGRQYXRofS4ke2NoaWxkRmllbGRQYXRofWApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vIE5vdyBsb29wIG92ZXIgYWxsIGZpZWxkcyB3aXRoIHJvd3MgLVxuICAgIC8vIGlmIGFueXRoaW5nIGNoYW5nZWQsIGRpc3BhdGNoIGFuIHVwZGF0ZSBmb3IgdGhlIGZpZWxkXG4gICAgLy8gd2l0aCB0aGUgbmV3IHJvdyBzdGF0ZVxuICAgIE9iamVjdC5lbnRyaWVzKG5ld0ZpZWxkUm93cykuZm9yRWFjaCgoW3BhdGgsIG5ld1Jvd3NdKSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZU1hdGNoZXMgPSBuZXdSb3dzLmV2ZXJ5KChuZXdSb3csIGkpID0+IHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdSb3dFcnJvclBhdGhzID0gZXhpc3RpbmdGaWVsZFJvd3NbcGF0aF1baV0/LmNoaWxkRXJyb3JQYXRoc1xuICAgICAgICByZXR1cm4gc2V0c0FyZUVxdWFsKG5ld1Jvdy5jaGlsZEVycm9yUGF0aHMsIGV4aXN0aW5nUm93RXJyb3JQYXRocylcbiAgICAgIH0pXG5cbiAgICAgIGlmICghc3RhdGVNYXRjaGVzKSB7XG4gICAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJvd3M6IG5ld1Jvd3MsXG4gICAgICAgICAgdHlwZTogJ1VQREFURScsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW2ZpZWxkcywgZGlzcGF0Y2hGaWVsZHNdKVxuXG4gIGNvbnN0IHZhbGlkYXRlRm9ybSA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB2YWxpZGF0ZWRGaWVsZFN0YXRlID0ge31cbiAgICBsZXQgaXNWYWxpZCA9IHRydWVcbiAgICBjb25zdCBkYXRhID0gY29udGV4dFJlZi5jdXJyZW50LmdldERhdGEoKVxuXG4gICAgY29uc3QgdmFsaWRhdGlvblByb21pc2VzID0gT2JqZWN0LmVudHJpZXMoY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcykubWFwKFxuICAgICAgYXN5bmMgKFtwYXRoLCBmaWVsZF0pID0+IHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGVkRmllbGQgPSB7XG4gICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGQucGFzc2VzQ29uZGl0aW9uICE9PSBmYWxzZSkge1xuICAgICAgICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0OiBib29sZWFuIHwgc3RyaW5nID0gdHJ1ZVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiBmaWVsZC52YWxpZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IHZhbHVlVG9WYWxpZGF0ZSA9IGZpZWxkLnZhbHVlXG5cbiAgICAgICAgICAgIGlmIChmaWVsZD8ucm93cyAmJiBBcnJheS5pc0FycmF5KGZpZWxkLnJvd3MpKSB7XG4gICAgICAgICAgICAgIHZhbHVlVG9WYWxpZGF0ZSA9IGNvbnRleHRSZWYuY3VycmVudC5nZXREYXRhQnlQYXRoKHBhdGgpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCBmaWVsZC52YWxpZGF0ZSh2YWx1ZVRvVmFsaWRhdGUsIHtcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICBzaWJsaW5nRGF0YTogY29udGV4dFJlZi5jdXJyZW50LmdldFNpYmxpbmdEYXRhKHBhdGgpLFxuICAgICAgICAgICAgICB0LFxuICAgICAgICAgICAgICB1c2VyLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb25SZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWxpZGF0ZWRGaWVsZC5lcnJvck1lc3NhZ2UgPSB2YWxpZGF0aW9uUmVzdWx0XG4gICAgICAgICAgICB2YWxpZGF0ZWRGaWVsZC52YWxpZCA9IGZhbHNlXG4gICAgICAgICAgICBpc1ZhbGlkID0gZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YWxpZGF0ZWRGaWVsZFN0YXRlW3BhdGhdID0gdmFsaWRhdGVkRmllbGRcbiAgICAgIH0sXG4gICAgKVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodmFsaWRhdGlvblByb21pc2VzKVxuXG4gICAgaWYgKCFpc0RlZXBFcXVhbChjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCB2YWxpZGF0ZWRGaWVsZFN0YXRlKSkge1xuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBzdGF0ZTogdmFsaWRhdGVkRmllbGRTdGF0ZSwgdHlwZTogJ1JFUExBQ0VfU1RBVEUnIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVmFsaWRcbiAgfSwgW2NvbnRleHRSZWYsIGlkLCB1c2VyLCBvcGVyYXRpb24sIHQsIGRpc3BhdGNoRmllbGRzLCBjb25maWddKVxuXG4gIGNvbnN0IHN1Ym1pdCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChvcHRpb25zOiBTdWJtaXRPcHRpb25zID0ge30sIGUpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYWN0aW9uOiBhY3Rpb25Ub1VzZSA9IGFjdGlvbixcbiAgICAgICAgbWV0aG9kOiBtZXRob2RUb1VzZSA9IG1ldGhvZCxcbiAgICAgICAgb3ZlcnJpZGVzID0ge30sXG4gICAgICAgIHNraXBWYWxpZGF0aW9uLFxuICAgICAgfSA9IG9wdGlvbnNcblxuICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgIGlmIChlKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChlKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG5cbiAgICAgIHNldFByb2Nlc3NpbmcodHJ1ZSlcblxuICAgICAgaWYgKHdhaXRGb3JBdXRvY29tcGxldGUpIGF3YWl0IHdhaXQoMTAwKVxuXG4gICAgICBjb25zdCBpc1ZhbGlkID0gc2tpcFZhbGlkYXRpb24gPyB0cnVlIDogYXdhaXQgY29udGV4dFJlZi5jdXJyZW50LnZhbGlkYXRlRm9ybSgpXG4gICAgICBjb250ZXh0UmVmLmN1cnJlbnQuYnVpbGRSb3dFcnJvcnMoKVxuXG4gICAgICBpZiAoIXNraXBWYWxpZGF0aW9uKSBzZXRTdWJtaXR0ZWQodHJ1ZSlcblxuICAgICAgLy8gSWYgbm90IHZhbGlkLCBwcmV2ZW50IHN1Ym1pc3Npb25cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICB0b2FzdC5lcnJvcih0KCdlcnJvcjpjb3JyZWN0SW52YWxpZEZpZWxkcycpKVxuICAgICAgICBzZXRQcm9jZXNzaW5nKGZhbHNlKVxuXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBJZiBzdWJtaXQgaGFuZGxlciBjb21lcyB0aHJvdWdoIHZpYSBwcm9wcywgcnVuIHRoYXRcbiAgICAgIGlmIChvblN1Ym1pdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgIC4uLnJlZHVjZUZpZWxkc1RvVmFsdWVzKGZpZWxkcywgdHJ1ZSksXG4gICAgICAgICAgLi4ub3ZlcnJpZGVzLFxuICAgICAgICB9XG5cbiAgICAgICAgb25TdWJtaXQoZmllbGRzLCBkYXRhKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBmb3JtRGF0YSA9IGNvbnRleHRSZWYuY3VycmVudC5jcmVhdGVGb3JtRGF0YShvdmVycmlkZXMpXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHJlcXVlc3RzW21ldGhvZFRvVXNlLnRvTG93ZXJDYXNlKCldKGFjdGlvblRvVXNlLCB7XG4gICAgICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcblxuICAgICAgICBzZXRNb2RpZmllZChmYWxzZSlcblxuICAgICAgICBpZiAodHlwZW9mIGhhbmRsZVJlc3BvbnNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgaGFuZGxlUmVzcG9uc2UocmVzKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgc2V0UHJvY2Vzc2luZyhmYWxzZSlcblxuICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlcy5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJylcbiAgICAgICAgY29uc3QgaXNKU09OID0gY29udGVudFR5cGUgJiYgY29udGVudFR5cGUuaW5kZXhPZignYXBwbGljYXRpb24vanNvbicpICE9PSAtMVxuXG4gICAgICAgIGxldCBqc29uOiBhbnkgPSB7fVxuXG4gICAgICAgIGlmIChpc0pTT04pIGpzb24gPSBhd2FpdCByZXMuanNvbigpXG5cbiAgICAgICAgaWYgKHJlcy5zdGF0dXMgPCA0MDApIHtcbiAgICAgICAgICBzZXRTdWJtaXR0ZWQoZmFsc2UpXG5cbiAgICAgICAgICBpZiAodHlwZW9mIG9uU3VjY2VzcyA9PT0gJ2Z1bmN0aW9uJykgb25TdWNjZXNzKGpzb24pXG5cbiAgICAgICAgICBpZiAocmVkaXJlY3QpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uID0ge1xuICAgICAgICAgICAgICBwYXRobmFtZTogcmVkaXJlY3QsXG4gICAgICAgICAgICAgIHN0YXRlOiB7fSxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBqc29uID09PSAnb2JqZWN0JyAmJiBqc29uLm1lc3NhZ2UgJiYgIWRpc2FibGVTdWNjZXNzU3RhdHVzKSB7XG4gICAgICAgICAgICAgIGRlc3RpbmF0aW9uLnN0YXRlID0ge1xuICAgICAgICAgICAgICAgIHN0YXR1czogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBqc29uLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoaXN0b3J5LnB1c2goZGVzdGluYXRpb24pXG4gICAgICAgICAgfSBlbHNlIGlmICghZGlzYWJsZVN1Y2Nlc3NTdGF0dXMpIHtcbiAgICAgICAgICAgIHRvYXN0LnN1Y2Nlc3MoanNvbi5tZXNzYWdlIHx8IHQoJ3N1Ym1pc3Npb25TdWNjZXNzZnVsJyksIHsgYXV0b0Nsb3NlOiAzMDAwIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRleHRSZWYuY3VycmVudCA9IHsgLi4uY29udGV4dFJlZi5jdXJyZW50IH0gLy8gdHJpZ2dlcnMgcmVyZW5kZXIgb2YgYWxsIGNvbXBvbmVudHMgdGhhdCBzdWJzY3JpYmUgdG8gZm9ybVxuXG4gICAgICAgICAgaWYgKGpzb24ubWVzc2FnZSkge1xuICAgICAgICAgICAgdG9hc3QuZXJyb3IoanNvbi5tZXNzYWdlKVxuXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShqc29uLmVycm9ycykpIHtcbiAgICAgICAgICAgIGNvbnN0IFtmaWVsZEVycm9ycywgbm9uRmllbGRFcnJvcnNdID0ganNvbi5lcnJvcnMucmVkdWNlKFxuICAgICAgICAgICAgICAoW2ZpZWxkRXJycywgbm9uRmllbGRFcnJzXSwgZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3RmllbGRFcnJzID0gW11cbiAgICAgICAgICAgICAgICBjb25zdCBuZXdOb25GaWVsZEVycnMgPSBbXVxuXG4gICAgICAgICAgICAgICAgaWYgKGVycj8ubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgbmV3Tm9uRmllbGRFcnJzLnB1c2goZXJyKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVycj8uZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgIGVyci5kYXRhLmZvckVhY2goKGRhdGFFcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YUVycm9yPy5maWVsZCkge1xuICAgICAgICAgICAgICAgICAgICAgIG5ld0ZpZWxkRXJycy5wdXNoKGRhdGFFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBuZXdOb25GaWVsZEVycnMucHVzaChkYXRhRXJyb3IpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgIFsuLi5maWVsZEVycnMsIC4uLm5ld0ZpZWxkRXJyc10sXG4gICAgICAgICAgICAgICAgICBbLi4ubm9uRmllbGRFcnJzLCAuLi5uZXdOb25GaWVsZEVycnNdLFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgW1tdLCBbXV0sXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGZpZWxkRXJyb3JzLmZvckVhY2goKGVycikgPT4ge1xuICAgICAgICAgICAgICBkaXNwYXRjaEZpZWxkcyh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ1VQREFURScsXG4gICAgICAgICAgICAgICAgLi4uKGNvbnRleHRSZWYuY3VycmVudD8uZmllbGRzPy5bZXJyLmZpZWxkXSB8fCB7fSksXG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBlcnIubWVzc2FnZSxcbiAgICAgICAgICAgICAgICBwYXRoOiBlcnIuZmllbGQsXG4gICAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgbm9uRmllbGRFcnJvcnMuZm9yRWFjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIHRvYXN0LmVycm9yKGVyci5tZXNzYWdlIHx8IHQoJ2Vycm9yOnVua25vd24nKSlcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvck1lc3NhZ2VzW3Jlcy5zdGF0dXNdIHx8IHQoJ2Vycm9yOnVua25vd24nKVxuXG4gICAgICAgICAgdG9hc3QuZXJyb3IobWVzc2FnZSlcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHNldFByb2Nlc3NpbmcoZmFsc2UpXG5cbiAgICAgICAgdG9hc3QuZXJyb3IoZXJyKVxuICAgICAgfVxuICAgIH0sXG4gICAgW1xuICAgICAgYWN0aW9uLFxuICAgICAgZGlzYWJsZVN1Y2Nlc3NTdGF0dXMsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGRpc3BhdGNoRmllbGRzLFxuICAgICAgZmllbGRzLFxuICAgICAgaGFuZGxlUmVzcG9uc2UsXG4gICAgICBoaXN0b3J5LFxuICAgICAgbWV0aG9kLFxuICAgICAgb25TdWJtaXQsXG4gICAgICBvblN1Y2Nlc3MsXG4gICAgICByZWRpcmVjdCxcbiAgICAgIHQsXG4gICAgICBpMThuLFxuICAgICAgd2FpdEZvckF1dG9jb21wbGV0ZSxcbiAgICBdLFxuICApXG5cbiAgY29uc3QgdHJhdmVyc2VSb3dDb25maWdzID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKHtcbiAgICAgIGZpZWxkQ29uZmlnLFxuICAgICAgcGF0aCxcbiAgICAgIHBhdGhQcmVmaXgsXG4gICAgfToge1xuICAgICAgZmllbGRDb25maWc6IEZpZWxkW11cbiAgICAgIHBhdGg6IHN0cmluZ1xuICAgICAgcGF0aFByZWZpeD86IHN0cmluZ1xuICAgIH0pID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IGZpZWxkQ29uZmlnXG4gICAgICBjb25zdCBwYXRoU2VnbWVudHMgPSBzcGxpdFBhdGhCeUFycmF5RmllbGRzKHBhdGgpXG4gICAgICBjb25zdCBjb25maWdNYXAgPSBidWlsZEZpZWxkU2NoZW1hTWFwKGNvbmZpZylcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoU2VnbWVudHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgY29uc3QgcGF0aFNlZ21lbnQgPSBwYXRoU2VnbWVudHNbaV1cblxuICAgICAgICBpZiAoaXNOdW1iZXIocGF0aFNlZ21lbnQpKSB7XG4gICAgICAgICAgY29uc3Qgcm93SW5kZXggPSBwYXJzZUludChwYXRoU2VnbWVudCwgMTApXG4gICAgICAgICAgY29uc3QgcGFyZW50RmllbGRQYXRoID0gcGF0aFNlZ21lbnRzLnNsaWNlKDAsIGkpLmpvaW4oJy4nKVxuICAgICAgICAgIGNvbnN0IHJlbWFpbmluZ1BhdGggPSBwYXRoU2VnbWVudHMuc2xpY2UoaSArIDEpLmpvaW4oJy4nKVxuICAgICAgICAgIGNvbnN0IGFycmF5RmllbGRQYXRoID0gcGF0aFByZWZpeCA/IGAke3BhdGhQcmVmaXh9LiR7cGFyZW50RmllbGRQYXRofWAgOiBwYXJlbnRGaWVsZFBhdGhcbiAgICAgICAgICBjb25zdCBwYXJlbnRBcnJheUZpZWxkID0gY29udGV4dFJlZi5jdXJyZW50LmdldEZpZWxkKGFycmF5RmllbGRQYXRoKVxuICAgICAgICAgIGNvbnN0IHJvd0ZpZWxkID0gcGFyZW50QXJyYXlGaWVsZC5yb3dzW3Jvd0luZGV4XVxuXG4gICAgICAgICAgaWYgKHJvd0ZpZWxkLmJsb2NrVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgYmxvY2tDb25maWcgPSBjb25maWdNYXAuZ2V0KGAke3BhcmVudEZpZWxkUGF0aH0uJHtyb3dGaWVsZC5ibG9ja1R5cGV9YClcbiAgICAgICAgICAgIGlmIChibG9ja0NvbmZpZykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJhdmVyc2VSb3dDb25maWdzKHtcbiAgICAgICAgICAgICAgICBmaWVsZENvbmZpZzogYmxvY2tDb25maWcsXG4gICAgICAgICAgICAgICAgcGF0aDogcmVtYWluaW5nUGF0aCxcbiAgICAgICAgICAgICAgICBwYXRoUHJlZml4OiBgJHthcnJheUZpZWxkUGF0aH0uJHtyb3dJbmRleH1gLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEJsb2NrIGNvbmZpZyBub3QgZm91bmQgZm9yICR7cm93RmllbGQuYmxvY2tUeXBlfSBhdCBwYXRoICR7cGF0aH1gKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHJhdmVyc2VSb3dDb25maWdzKHtcbiAgICAgICAgICAgICAgZmllbGRDb25maWc6IGNvbmZpZ01hcC5nZXQocGFyZW50RmllbGRQYXRoKSxcbiAgICAgICAgICAgICAgcGF0aDogcmVtYWluaW5nUGF0aCxcbiAgICAgICAgICAgICAgcGF0aFByZWZpeDogYCR7YXJyYXlGaWVsZFBhdGh9LiR7cm93SW5kZXh9YCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb25maWdcbiAgICB9LFxuICAgIFtdLFxuICApXG5cbiAgY29uc3QgZ2V0Um93U2NoZW1hQnlQYXRoID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKHsgYmxvY2tUeXBlLCBwYXRoIH06IHsgYmxvY2tUeXBlPzogc3RyaW5nOyBwYXRoOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgY29uc3Qgcm93Q29uZmlnID0gdHJhdmVyc2VSb3dDb25maWdzKHtcbiAgICAgICAgZmllbGRDb25maWc6IGZpZWxkc0Zyb21Qcm9wcyxcbiAgICAgICAgcGF0aCxcbiAgICAgIH0pXG4gICAgICBjb25zdCByb3dGaWVsZENvbmZpZ3MgPSBidWlsZEZpZWxkU2NoZW1hTWFwKHJvd0NvbmZpZylcbiAgICAgIGNvbnN0IHBhdGhTZWdtZW50cyA9IHNwbGl0UGF0aEJ5QXJyYXlGaWVsZHMocGF0aClcbiAgICAgIGNvbnN0IGZpZWxkS2V5ID0gcGF0aFNlZ21lbnRzLmF0KC0xKVxuICAgICAgcmV0dXJuIHJvd0ZpZWxkQ29uZmlncy5nZXQoYmxvY2tUeXBlID8gYCR7ZmllbGRLZXl9LiR7YmxvY2tUeXBlfWAgOiBmaWVsZEtleSlcbiAgICB9LFxuICAgIFt0cmF2ZXJzZVJvd0NvbmZpZ3MsIGZpZWxkc0Zyb21Qcm9wc10sXG4gIClcblxuICAvLyBBcnJheS9CbG9jayByb3cgbWFuaXB1bGF0aW9uLiBUaGlzIGlzIGNhbGxlZCB3aGVuLCBmb3IgZXhhbXBsZSwgeW91IGFkZCBhIG5ldyBibG9jayB0byBhIGJsb2NrcyBmaWVsZC5cbiAgLy8gVGhlIGJsb2NrIGRhdGEgaXMgc2F2ZWQgaW4gdGhlIHJvd3MgcHJvcGVydHkgb2YgdGhlIHN0YXRlLCB3aGljaCBpcyBtb2RpZmllZCB1cGRhdGVkIGhlcmUuXG4gIGNvbnN0IGFkZEZpZWxkUm93OiBDb250ZXh0WydhZGRGaWVsZFJvdyddID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHsgZGF0YSwgcGF0aCwgcm93SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgcHJlZmVyZW5jZXMgPSBhd2FpdCBnZXREb2NQcmVmZXJlbmNlcygpXG4gICAgICBjb25zdCByb3dTY2hlbWEgPSBnZXRSb3dTY2hlbWFCeVBhdGgoe1xuICAgICAgICBibG9ja1R5cGU6IGRhdGE/LmJsb2NrVHlwZSxcbiAgICAgICAgcGF0aCxcbiAgICAgIH0pXG5cbiAgICAgIGlmIChyb3dTY2hlbWEpIHtcbiAgICAgICAgY29uc3Qgc3ViRmllbGRTdGF0ZSA9IGF3YWl0IGJ1aWxkU3RhdGVGcm9tU2NoZW1hKHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBmaWVsZFNjaGVtYTogcm93U2NoZW1hLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgICAgdCxcbiAgICAgICAgICB1c2VyLFxuICAgICAgICB9KVxuXG4gICAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgICBibG9ja1R5cGU6IGRhdGE/LmJsb2NrVHlwZSxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJvd0luZGV4LFxuICAgICAgICAgIHN1YkZpZWxkU3RhdGUsXG4gICAgICAgICAgdHlwZTogJ0FERF9ST1cnLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW2Rpc3BhdGNoRmllbGRzLCBnZXREb2NQcmVmZXJlbmNlcywgaWQsIHVzZXIsIG9wZXJhdGlvbiwgbG9jYWxlLCB0LCBnZXRSb3dTY2hlbWFCeVBhdGgsIGNvbmZpZ10sXG4gIClcblxuICBjb25zdCByZW1vdmVGaWVsZFJvdzogQ29udGV4dFsncmVtb3ZlRmllbGRSb3cnXSA9IHVzZUNhbGxiYWNrKFxuICAgICh7IHBhdGgsIHJvd0luZGV4IH0pID0+IHtcbiAgICAgIGRpc3BhdGNoRmllbGRzKHsgcGF0aCwgcm93SW5kZXgsIHR5cGU6ICdSRU1PVkVfUk9XJyB9KVxuICAgIH0sXG4gICAgW2Rpc3BhdGNoRmllbGRzXSxcbiAgKVxuXG4gIGNvbnN0IHJlcGxhY2VGaWVsZFJvdzogQ29udGV4dFsncmVwbGFjZUZpZWxkUm93J10gPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoeyBkYXRhLCBwYXRoLCByb3dJbmRleCB9KSA9PiB7XG4gICAgICBjb25zdCBwcmVmZXJlbmNlcyA9IGF3YWl0IGdldERvY1ByZWZlcmVuY2VzKClcbiAgICAgIGNvbnN0IHJvd1NjaGVtYSA9IGdldFJvd1NjaGVtYUJ5UGF0aCh7XG4gICAgICAgIGJsb2NrVHlwZTogZGF0YT8uYmxvY2tUeXBlLFxuICAgICAgICBwYXRoLFxuICAgICAgfSlcblxuICAgICAgaWYgKHJvd1NjaGVtYSkge1xuICAgICAgICBjb25zdCBzdWJGaWVsZFN0YXRlID0gYXdhaXQgYnVpbGRTdGF0ZUZyb21TY2hlbWEoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGZpZWxkU2NoZW1hOiByb3dTY2hlbWEsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICBwcmVmZXJlbmNlcyxcbiAgICAgICAgICB0LFxuICAgICAgICAgIHVzZXIsXG4gICAgICAgIH0pXG4gICAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgICBibG9ja1R5cGU6IGRhdGE/LmJsb2NrVHlwZSxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJvd0luZGV4LFxuICAgICAgICAgIHN1YkZpZWxkU3RhdGUsXG4gICAgICAgICAgdHlwZTogJ1JFUExBQ0VfUk9XJyxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtkaXNwYXRjaEZpZWxkcywgZ2V0RG9jUHJlZmVyZW5jZXMsIGlkLCB1c2VyLCBvcGVyYXRpb24sIGxvY2FsZSwgdCwgZ2V0Um93U2NoZW1hQnlQYXRoLCBjb25maWddLFxuICApXG5cbiAgY29uc3QgZ2V0RmllbGRzID0gdXNlQ2FsbGJhY2soKCkgPT4gY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcywgW2NvbnRleHRSZWZdKVxuICBjb25zdCBnZXRGaWVsZCA9IHVzZUNhbGxiYWNrKChwYXRoOiBzdHJpbmcpID0+IGNvbnRleHRSZWYuY3VycmVudC5maWVsZHNbcGF0aF0sIFtjb250ZXh0UmVmXSlcbiAgY29uc3QgZ2V0RGF0YSA9IHVzZUNhbGxiYWNrKFxuICAgICgpID0+IHJlZHVjZUZpZWxkc1RvVmFsdWVzKGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMsIHRydWUpLFxuICAgIFtjb250ZXh0UmVmXSxcbiAgKVxuICBjb25zdCBnZXRTaWJsaW5nRGF0YSA9IHVzZUNhbGxiYWNrKFxuICAgIChwYXRoOiBzdHJpbmcpID0+IGdldFNpYmxpbmdEYXRhRnVuYyhjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCBwYXRoKSxcbiAgICBbY29udGV4dFJlZl0sXG4gIClcbiAgY29uc3QgZ2V0RGF0YUJ5UGF0aCA9IHVzZUNhbGxiYWNrPEdldERhdGFCeVBhdGg+KFxuICAgIChwYXRoOiBzdHJpbmcpID0+IGdldERhdGFCeVBhdGhGdW5jKGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMsIHBhdGgpLFxuICAgIFtjb250ZXh0UmVmXSxcbiAgKVxuXG4gIGNvbnN0IGNyZWF0ZUZvcm1EYXRhID0gdXNlQ2FsbGJhY2soXG4gICAgKG92ZXJyaWRlczogYW55ID0ge30pID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSByZWR1Y2VGaWVsZHNUb1ZhbHVlcyhjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCB0cnVlKVxuXG4gICAgICBjb25zdCBmaWxlID0gZGF0YT8uZmlsZVxuXG4gICAgICBpZiAoZmlsZSkge1xuICAgICAgICBkZWxldGUgZGF0YS5maWxlXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFXaXRoT3ZlcnJpZGVzID0ge1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICAuLi5vdmVycmlkZXMsXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFUb1NlcmlhbGl6ZSA9IHtcbiAgICAgICAgX3BheWxvYWQ6IEpTT04uc3RyaW5naWZ5KGRhdGFXaXRoT3ZlcnJpZGVzKSxcbiAgICAgICAgZmlsZSxcbiAgICAgIH1cblxuICAgICAgLy8gbnVsbEFzVW5kZWZpbmVkcyBpcyBpbXBvcnRhbnQgdG8gYWxsb3cgdXBsb2FkcyBhbmQgcmVsYXRpb25zaGlwIGZpZWxkcyB0byBjbGVhciB0aGVtc2VsdmVzXG4gICAgICBjb25zdCBmb3JtRGF0YSA9IHNlcmlhbGl6ZShkYXRhVG9TZXJpYWxpemUsIHsgaW5kaWNlczogdHJ1ZSwgbnVsbHNBc1VuZGVmaW5lZHM6IGZhbHNlIH0pXG4gICAgICByZXR1cm4gZm9ybURhdGFcbiAgICB9LFxuICAgIFtjb250ZXh0UmVmXSxcbiAgKVxuXG4gIGNvbnN0IHJlc2V0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGZpZWxkU2NoZW1hOiBGaWVsZFtdLCBkYXRhOiB1bmtub3duKSA9PiB7XG4gICAgICBjb25zdCBwcmVmZXJlbmNlcyA9IGF3YWl0IGdldERvY1ByZWZlcmVuY2VzKClcbiAgICAgIGNvbnN0IHN0YXRlID0gYXdhaXQgYnVpbGRTdGF0ZUZyb21TY2hlbWEoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBkYXRhLFxuICAgICAgICBmaWVsZFNjaGVtYSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHByZWZlcmVuY2VzLFxuICAgICAgICB0LFxuICAgICAgICB1c2VyLFxuICAgICAgfSlcbiAgICAgIGNvbnRleHRSZWYuY3VycmVudCA9IHsgLi4uaW5pdENvbnRleHRTdGF0ZSB9IGFzIEZvcm1Db250ZXh0VHlwZVxuICAgICAgc2V0TW9kaWZpZWQoZmFsc2UpXG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IHN0YXRlLCB0eXBlOiAnUkVQTEFDRV9TVEFURScgfSlcbiAgICB9LFxuICAgIFtpZCwgdXNlciwgb3BlcmF0aW9uLCBsb2NhbGUsIHQsIGRpc3BhdGNoRmllbGRzLCBnZXREb2NQcmVmZXJlbmNlcywgY29uZmlnXSxcbiAgKVxuXG4gIGNvbnN0IHJlcGxhY2VTdGF0ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChzdGF0ZTogRmllbGRzKSA9PiB7XG4gICAgICBjb250ZXh0UmVmLmN1cnJlbnQgPSB7IC4uLmluaXRDb250ZXh0U3RhdGUgfSBhcyBGb3JtQ29udGV4dFR5cGVcbiAgICAgIHNldE1vZGlmaWVkKGZhbHNlKVxuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBzdGF0ZSwgdHlwZTogJ1JFUExBQ0VfU1RBVEUnIH0pXG4gICAgfSxcbiAgICBbZGlzcGF0Y2hGaWVsZHNdLFxuICApXG5cbiAgY29udGV4dFJlZi5jdXJyZW50LnN1Ym1pdCA9IHN1Ym1pdFxuICBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RmllbGRzID0gZ2V0RmllbGRzXG4gIGNvbnRleHRSZWYuY3VycmVudC5nZXRGaWVsZCA9IGdldEZpZWxkXG4gIGNvbnRleHRSZWYuY3VycmVudC5nZXREYXRhID0gZ2V0RGF0YVxuICBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0U2libGluZ0RhdGEgPSBnZXRTaWJsaW5nRGF0YVxuICBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RGF0YUJ5UGF0aCA9IGdldERhdGFCeVBhdGhcbiAgY29udGV4dFJlZi5jdXJyZW50LnZhbGlkYXRlRm9ybSA9IHZhbGlkYXRlRm9ybVxuICBjb250ZXh0UmVmLmN1cnJlbnQuY3JlYXRlRm9ybURhdGEgPSBjcmVhdGVGb3JtRGF0YVxuICBjb250ZXh0UmVmLmN1cnJlbnQuc2V0TW9kaWZpZWQgPSBzZXRNb2RpZmllZFxuICBjb250ZXh0UmVmLmN1cnJlbnQuc2V0UHJvY2Vzc2luZyA9IHNldFByb2Nlc3NpbmdcbiAgY29udGV4dFJlZi5jdXJyZW50LnNldFN1Ym1pdHRlZCA9IHNldFN1Ym1pdHRlZFxuICBjb250ZXh0UmVmLmN1cnJlbnQuZGlzYWJsZWQgPSBkaXNhYmxlZFxuICBjb250ZXh0UmVmLmN1cnJlbnQuZm9ybVJlZiA9IGZvcm1SZWZcbiAgY29udGV4dFJlZi5jdXJyZW50LnJlc2V0ID0gcmVzZXRcbiAgY29udGV4dFJlZi5jdXJyZW50LnJlcGxhY2VTdGF0ZSA9IHJlcGxhY2VTdGF0ZVxuICBjb250ZXh0UmVmLmN1cnJlbnQuYnVpbGRSb3dFcnJvcnMgPSBidWlsZFJvd0Vycm9yc1xuICBjb250ZXh0UmVmLmN1cnJlbnQuYWRkRmllbGRSb3cgPSBhZGRGaWVsZFJvd1xuICBjb250ZXh0UmVmLmN1cnJlbnQucmVtb3ZlRmllbGRSb3cgPSByZW1vdmVGaWVsZFJvd1xuICBjb250ZXh0UmVmLmN1cnJlbnQucmVwbGFjZUZpZWxkUm93ID0gcmVwbGFjZUZpZWxkUm93XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIHN1Ym1pdHRlZEZyb21Qcm9wcyA9PT0gJ2Jvb2xlYW4nKSBzZXRTdWJtaXR0ZWQoc3VibWl0dGVkRnJvbVByb3BzKVxuICB9LCBbc3VibWl0dGVkRnJvbVByb3BzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbml0aWFsU3RhdGUpIHtcbiAgICAgIGNvbnRleHRSZWYuY3VycmVudCA9IHsgLi4uaW5pdENvbnRleHRTdGF0ZSB9IGFzIEZvcm1Db250ZXh0VHlwZVxuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBzdGF0ZTogaW5pdGlhbFN0YXRlLCB0eXBlOiAnUkVQTEFDRV9TVEFURScgfSlcbiAgICB9XG4gIH0sIFtpbml0aWFsU3RhdGUsIGRpc3BhdGNoRmllbGRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbml0aWFsRGF0YSkge1xuICAgICAgY29udGV4dFJlZi5jdXJyZW50ID0geyAuLi5pbml0Q29udGV4dFN0YXRlIH0gYXMgRm9ybUNvbnRleHRUeXBlXG4gICAgICBjb25zdCBidWlsdFN0YXRlID0gYnVpbGRJbml0aWFsU3RhdGUoaW5pdGlhbERhdGEpXG4gICAgICBzZXRGb3JtYXR0ZWRJbml0aWFsRGF0YShidWlsdFN0YXRlKVxuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBzdGF0ZTogYnVpbHRTdGF0ZSwgdHlwZTogJ1JFUExBQ0VfU1RBVEUnIH0pXG4gICAgfVxuICB9LCBbaW5pdGlhbERhdGEsIGRpc3BhdGNoRmllbGRzXSlcblxuICB1c2VUaHJvdHRsZWRFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgcmVmcmVzaENvb2tpZSgpXG4gICAgfSxcbiAgICAxNTAwMCxcbiAgICBbZmllbGRzXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29udGV4dFJlZi5jdXJyZW50ID0geyAuLi5jb250ZXh0UmVmLmN1cnJlbnQgfSAvLyB0cmlnZ2VycyByZXJlbmRlciBvZiBhbGwgY29tcG9uZW50cyB0aGF0IHN1YnNjcmliZSB0byBmb3JtXG4gICAgc2V0TW9kaWZpZWQoZmFsc2UpXG4gIH0sIFtsb2NhbGVdKVxuXG4gIGNvbnN0IGNsYXNzZXMgPSBbY2xhc3NOYW1lLCBiYXNlQ2xhc3NdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJylcblxuICByZXR1cm4gKFxuICAgIDxmb3JtXG4gICAgICBhY3Rpb249e2FjdGlvbn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlc31cbiAgICAgIG1ldGhvZD17bWV0aG9kfVxuICAgICAgbm9WYWxpZGF0ZVxuICAgICAgb25TdWJtaXQ9eyhlKSA9PiBjb250ZXh0UmVmLmN1cnJlbnQuc3VibWl0KHt9LCBlKX1cbiAgICAgIHJlZj17Zm9ybVJlZn1cbiAgICA+XG4gICAgICA8Rm9ybUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRSZWYuY3VycmVudH0+XG4gICAgICAgIDxGb3JtV2F0Y2hDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgdmFsdWU9e3tcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIC4uLmNvbnRleHRSZWYuY3VycmVudCxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPFN1Ym1pdHRlZENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3N1Ym1pdHRlZH0+XG4gICAgICAgICAgICA8UHJvY2Vzc2luZ0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3Byb2Nlc3Npbmd9PlxuICAgICAgICAgICAgICA8TW9kaWZpZWRDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXttb2RpZmllZH0+XG4gICAgICAgICAgICAgICAgPEZvcm1GaWVsZHNDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtmaWVsZHNSZWR1Y2VyfT5cbiAgICAgICAgICAgICAgICAgIDxXYXRjaEZvcm1FcnJvcnMgYnVpbGRSb3dFcnJvcnM9e2J1aWxkUm93RXJyb3JzfSAvPlxuICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgIDwvRm9ybUZpZWxkc0NvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgICAgIDwvTW9kaWZpZWRDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgICAgPC9Qcm9jZXNzaW5nQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICA8L1N1Ym1pdHRlZENvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgIDwvRm9ybVdhdGNoQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgIDwvRm9ybUNvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9mb3JtPlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IEZvcm1cbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJGb3JtIiwicHJvcHMiLCJpZCIsImNvbGxlY3Rpb24iLCJnZXREb2NQcmVmZXJlbmNlcyIsImdsb2JhbCIsInVzZURvY3VtZW50SW5mbyIsImFjdGlvbiIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGlzYWJsZVN1Y2Nlc3NTdGF0dXMiLCJkaXNhYmxlZCIsImZpZWxkcyIsImZpZWxkc0Zyb21Qcm9wcyIsImhhbmRsZVJlc3BvbnNlIiwiaW5pdGlhbERhdGEiLCJpbml0aWFsU3RhdGUiLCJtZXRob2QiLCJvblN1Ym1pdCIsIm9uU3VjY2VzcyIsInJlZGlyZWN0Iiwic3VibWl0dGVkIiwic3VibWl0dGVkRnJvbVByb3BzIiwid2FpdEZvckF1dG9jb21wbGV0ZSIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwiY29kZSIsImxvY2FsZSIsInVzZUxvY2FsZSIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJyZWZyZXNoQ29va2llIiwidXNlciIsInVzZUF1dGgiLCJvcGVyYXRpb24iLCJ1c2VPcGVyYXRpb24iLCJjb25maWciLCJ1c2VDb25maWciLCJtb2RpZmllZCIsInNldE1vZGlmaWVkIiwidXNlU3RhdGUiLCJwcm9jZXNzaW5nIiwic2V0UHJvY2Vzc2luZyIsInNldFN1Ym1pdHRlZCIsImZvcm1hdHRlZEluaXRpYWxEYXRhIiwic2V0Rm9ybWF0dGVkSW5pdGlhbERhdGEiLCJidWlsZEluaXRpYWxTdGF0ZSIsImZvcm1SZWYiLCJ1c2VSZWYiLCJjb250ZXh0UmVmIiwiaW5pdGlhbEZpZWxkU3RhdGUiLCJmaWVsZHNSZWR1Y2VyIiwidXNlUmVkdWNlciIsImZpZWxkUmVkdWNlciIsImRpc3BhdGNoRmllbGRzIiwiY3VycmVudCIsImJ1aWxkUm93RXJyb3JzIiwidXNlQ2FsbGJhY2siLCJleGlzdGluZ0ZpZWxkUm93cyIsIm5ld0ZpZWxkUm93cyIsIk9iamVjdCIsImVudHJpZXMiLCJmb3JFYWNoIiwicGF0aCIsImZpZWxkIiwicGF0aFNlZ21lbnRzIiwic3BsaXRQYXRoQnlBcnJheUZpZWxkcyIsImkiLCJsZW5ndGgiLCJmaWVsZFBhdGgiLCJzbGljZSIsImpvaW4iLCJmb3JtRmllbGQiLCJBcnJheSIsImlzQXJyYXkiLCJyb3dzIiwibWFwIiwiZXhpc3RpbmdSb3ciLCJjaGlsZEVycm9yUGF0aHMiLCJTZXQiLCJyb3dJbmRleCIsImNoaWxkRmllbGRQYXRoIiwidmFsaWQiLCJhZGQiLCJuZXdSb3dzIiwic3RhdGVNYXRjaGVzIiwiZXZlcnkiLCJuZXdSb3ciLCJleGlzdGluZ1Jvd0Vycm9yUGF0aHMiLCJzZXRzQXJlRXF1YWwiLCJ0eXBlIiwidmFsaWRhdGVGb3JtIiwidmFsaWRhdGVkRmllbGRTdGF0ZSIsImlzVmFsaWQiLCJkYXRhIiwiZ2V0RGF0YSIsInZhbGlkYXRpb25Qcm9taXNlcyIsInZhbGlkYXRlZEZpZWxkIiwicGFzc2VzQ29uZGl0aW9uIiwidmFsaWRhdGlvblJlc3VsdCIsInZhbGlkYXRlIiwidmFsdWVUb1ZhbGlkYXRlIiwidmFsdWUiLCJnZXREYXRhQnlQYXRoIiwic2libGluZ0RhdGEiLCJnZXRTaWJsaW5nRGF0YSIsImVycm9yTWVzc2FnZSIsIlByb21pc2UiLCJhbGwiLCJpc0RlZXBFcXVhbCIsInN0YXRlIiwic3VibWl0Iiwib3B0aW9ucyIsImUiLCJhY3Rpb25Ub1VzZSIsIm1ldGhvZFRvVXNlIiwib3ZlcnJpZGVzIiwic2tpcFZhbGlkYXRpb24iLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsIndhaXQiLCJ0b2FzdCIsImVycm9yIiwicmVkdWNlRmllbGRzVG9WYWx1ZXMiLCJmb3JtRGF0YSIsImNyZWF0ZUZvcm1EYXRhIiwicmVzIiwicmVxdWVzdHMiLCJ0b0xvd2VyQ2FzZSIsImJvZHkiLCJoZWFkZXJzIiwibGFuZ3VhZ2UiLCJjb250ZW50VHlwZSIsImdldCIsImlzSlNPTiIsImluZGV4T2YiLCJqc29uIiwic3RhdHVzIiwiZGVzdGluYXRpb24iLCJwYXRobmFtZSIsIm1lc3NhZ2UiLCJwdXNoIiwic3VjY2VzcyIsImF1dG9DbG9zZSIsImVycm9ycyIsImZpZWxkRXJyb3JzIiwibm9uRmllbGRFcnJvcnMiLCJyZWR1Y2UiLCJmaWVsZEVycnMiLCJub25GaWVsZEVycnMiLCJlcnIiLCJuZXdGaWVsZEVycnMiLCJuZXdOb25GaWVsZEVycnMiLCJkYXRhRXJyb3IiLCJlcnJvck1lc3NhZ2VzIiwidHJhdmVyc2VSb3dDb25maWdzIiwiUmVhY3QiLCJmaWVsZENvbmZpZyIsInBhdGhQcmVmaXgiLCJjb25maWdNYXAiLCJidWlsZEZpZWxkU2NoZW1hTWFwIiwicGF0aFNlZ21lbnQiLCJpc051bWJlciIsInBhcnNlSW50IiwicGFyZW50RmllbGRQYXRoIiwicmVtYWluaW5nUGF0aCIsImFycmF5RmllbGRQYXRoIiwicGFyZW50QXJyYXlGaWVsZCIsImdldEZpZWxkIiwicm93RmllbGQiLCJibG9ja1R5cGUiLCJibG9ja0NvbmZpZyIsIkVycm9yIiwiZ2V0Um93U2NoZW1hQnlQYXRoIiwicm93Q29uZmlnIiwicm93RmllbGRDb25maWdzIiwiZmllbGRLZXkiLCJhdCIsImFkZEZpZWxkUm93IiwicHJlZmVyZW5jZXMiLCJyb3dTY2hlbWEiLCJzdWJGaWVsZFN0YXRlIiwiYnVpbGRTdGF0ZUZyb21TY2hlbWEiLCJmaWVsZFNjaGVtYSIsInJlbW92ZUZpZWxkUm93IiwicmVwbGFjZUZpZWxkUm93IiwiZ2V0RmllbGRzIiwiZ2V0U2libGluZ0RhdGFGdW5jIiwiZ2V0RGF0YUJ5UGF0aEZ1bmMiLCJmaWxlIiwiZGF0YVdpdGhPdmVycmlkZXMiLCJkYXRhVG9TZXJpYWxpemUiLCJfcGF5bG9hZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzZXJpYWxpemUiLCJpbmRpY2VzIiwibnVsbHNBc1VuZGVmaW5lZHMiLCJyZXNldCIsImluaXRDb250ZXh0U3RhdGUiLCJyZXBsYWNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJidWlsdFN0YXRlIiwidXNlVGhyb3R0bGVkRWZmZWN0IiwiY2xhc3NlcyIsImZpbHRlciIsIkJvb2xlYW4iLCJmb3JtIiwibm9WYWxpZGF0ZSIsInJlZiIsIkZvcm1Db250ZXh0IiwiUHJvdmlkZXIiLCJGb3JtV2F0Y2hDb250ZXh0IiwiU3VibWl0dGVkQ29udGV4dCIsIlByb2Nlc3NpbmdDb250ZXh0IiwiTW9kaWZpZWRDb250ZXh0IiwiRm9ybUZpZWxkc0NvbnRleHQiLCJXYXRjaEZvcm1FcnJvcnMiXSwibWFwcGluZ3MiOiJBQUFBLGtFQUFrRTs7OzsrQkFvckJsRTs7O2VBQUE7OztrRUFuckJ3QjtrQ0FDRTsrREFDa0Q7OEJBQzdDO2dDQUNKOytCQUNMOzBCQWFHOzhCQUNJO3dDQUNVOzZEQUN0QjtxQkFDUTsyRUFDTTtzQkFDUDt3QkFDRTs4QkFDTTt3QkFDTjttQ0FDRztpQ0FDRztxQ0FDSTswRUFDTjs2RUFDRzt5QkFRMUI7c0VBQ21COzhCQUNHO3NFQUNDO3VFQUNDO3lFQUNGOzZFQUNJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVqQyxNQUFNQSxZQUFZO0FBRWxCLE1BQU1DLE9BQXdCLENBQUNDO0lBQzdCLE1BQU0sRUFBRUMsRUFBRSxFQUFFQyxVQUFVLEVBQUVDLGlCQUFpQixFQUFFQyxNQUFNLEVBQUUsR0FBR0MsSUFBQUEsNkJBQWU7SUFFckUsTUFBTSxFQUNKQyxNQUFNLEVBQ05DLFFBQVEsRUFDUkMsU0FBUyxFQUNUQyxvQkFBb0IsRUFDcEJDLFFBQVEsRUFDUkMsUUFBUUMsa0JBQWtCVixZQUFZUyxVQUFVUCxRQUFRTyxNQUFNLEVBQzlERSxjQUFjLEVBQ2RDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxNQUFNLEVBQ05DLFFBQVEsRUFDUkMsU0FBUyxFQUNUQyxRQUFRLEVBQ1JDLFdBQVdDLGtCQUFrQixFQUM3QkMsbUJBQW1CLEVB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
|
|
674
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLW5vbmludGVyYWN0aXZlLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgaXNEZWVwRXF1YWwgZnJvbSAnZGVlcC1lcXVhbCdcbmltcG9ydCB7IHNlcmlhbGl6ZSB9IGZyb20gJ29iamVjdC10by1mb3JtZGF0YSdcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWR1Y2VyLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSdcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknXG5cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICcuLi8uLi8uLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBDb250ZXh0LFxuICBGaWVsZHMsXG4gIENvbnRleHQgYXMgRm9ybUNvbnRleHRUeXBlLFxuICBHZXREYXRhQnlQYXRoLFxuICBQcm9wcyxcbiAgUm93LFxuICBTdWJtaXRPcHRpb25zLFxufSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBpc051bWJlciB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9pc051bWJlcidcbmltcG9ydCB7IHNldHNBcmVFcXVhbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9zZXRzQXJlRXF1YWwnXG5pbXBvcnQgeyBzcGxpdFBhdGhCeUFycmF5RmllbGRzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL3NwbGl0UGF0aEJ5QXJyYXlGaWVsZHMnXG5pbXBvcnQgd2FpdCBmcm9tICcuLi8uLi8uLi8uLi91dGlsaXRpZXMvd2FpdCdcbmltcG9ydCB7IHJlcXVlc3RzIH0gZnJvbSAnLi4vLi4vLi4vYXBpJ1xuaW1wb3J0IHVzZVRocm90dGxlZEVmZmVjdCBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUaHJvdHRsZWRFZmZlY3QnXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0F1dGgnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvQ29uZmlnJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0RvY3VtZW50SW5mbydcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9Mb2NhbGUnXG5pbXBvcnQgeyB1c2VPcGVyYXRpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvT3BlcmF0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBXYXRjaEZvcm1FcnJvcnMgfSBmcm9tICcuL1dhdGNoRm9ybUVycm9ycydcbmltcG9ydCB7IGJ1aWxkRmllbGRTY2hlbWFNYXAgfSBmcm9tICcuL2J1aWxkRmllbGRTY2hlbWFNYXAnXG5pbXBvcnQgYnVpbGRJbml0aWFsU3RhdGUgZnJvbSAnLi9idWlsZEluaXRpYWxTdGF0ZSdcbmltcG9ydCBidWlsZFN0YXRlRnJvbVNjaGVtYSBmcm9tICcuL2J1aWxkU3RhdGVGcm9tU2NoZW1hJ1xuaW1wb3J0IHtcbiAgRm9ybUNvbnRleHQsXG4gIEZvcm1GaWVsZHNDb250ZXh0LFxuICBGb3JtV2F0Y2hDb250ZXh0LFxuICBNb2RpZmllZENvbnRleHQsXG4gIFByb2Nlc3NpbmdDb250ZXh0LFxuICBTdWJtaXR0ZWRDb250ZXh0LFxufSBmcm9tICcuL2NvbnRleHQnXG5pbXBvcnQgZXJyb3JNZXNzYWdlcyBmcm9tICcuL2Vycm9yTWVzc2FnZXMnXG5pbXBvcnQgeyBmaWVsZFJlZHVjZXIgfSBmcm9tICcuL2ZpZWxkUmVkdWNlcidcbmltcG9ydCBnZXREYXRhQnlQYXRoRnVuYyBmcm9tICcuL2dldERhdGFCeVBhdGgnXG5pbXBvcnQgZ2V0U2libGluZ0RhdGFGdW5jIGZyb20gJy4vZ2V0U2libGluZ0RhdGEnXG5pbXBvcnQgaW5pdENvbnRleHRTdGF0ZSBmcm9tICcuL2luaXRDb250ZXh0U3RhdGUnXG5pbXBvcnQgcmVkdWNlRmllbGRzVG9WYWx1ZXMgZnJvbSAnLi9yZWR1Y2VGaWVsZHNUb1ZhbHVlcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2Zvcm0nXG5cbmNvbnN0IEZvcm06IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGlkLCBjb2xsZWN0aW9uLCBnZXREb2NQcmVmZXJlbmNlcywgZ2xvYmFsIH0gPSB1c2VEb2N1bWVudEluZm8oKVxuXG4gIGNvbnN0IHtcbiAgICBhY3Rpb24sXG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIGRpc2FibGVTdWNjZXNzU3RhdHVzLFxuICAgIGRpc2FibGVkLFxuICAgIGZpZWxkczogZmllbGRzRnJvbVByb3BzID0gY29sbGVjdGlvbj8uZmllbGRzIHx8IGdsb2JhbD8uZmllbGRzLFxuICAgIGhhbmRsZVJlc3BvbnNlLFxuICAgIGluaXRpYWxEYXRhLCAvLyB2YWx1ZXMgb25seSwgcGF0aHMgYXJlIHJlcXVpcmVkIGFzIGtleSAtIGZvcm0gc2hvdWxkIGJ1aWxkIGluaXRpYWwgc3RhdGUgYXMgY29udmVuaWVuY2VcbiAgICBpbml0aWFsU3RhdGUsIC8vIGZ1bGx5IGZvcm1lZCBpbml0aWFsIGZpZWxkIHN0YXRlXG4gICAgbWV0aG9kLFxuICAgIG9uU3VibWl0LFxuICAgIG9uU3VjY2VzcyxcbiAgICByZWRpcmVjdCxcbiAgICBzdWJtaXR0ZWQ6IHN1Ym1pdHRlZEZyb21Qcm9wcyxcbiAgICB3YWl0Rm9yQXV0b2NvbXBsZXRlLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpXG4gIGNvbnN0IHsgY29kZTogbG9jYWxlIH0gPSB1c2VMb2NhbGUoKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdnZW5lcmFsJylcbiAgY29uc3QgeyByZWZyZXNoQ29va2llLCB1c2VyIH0gPSB1c2VBdXRoKClcbiAgY29uc3Qgb3BlcmF0aW9uID0gdXNlT3BlcmF0aW9uKClcblxuICBjb25zdCBjb25maWcgPSB1c2VDb25maWcoKVxuXG4gIGNvbnN0IFttb2RpZmllZCwgc2V0TW9kaWZpZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtwcm9jZXNzaW5nLCBzZXRQcm9jZXNzaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc3VibWl0dGVkLCBzZXRTdWJtaXR0ZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtmb3JtYXR0ZWRJbml0aWFsRGF0YSwgc2V0Rm9ybWF0dGVkSW5pdGlhbERhdGFdID0gdXNlU3RhdGUoYnVpbGRJbml0aWFsU3RhdGUoaW5pdGlhbERhdGEpKVxuXG4gIGNvbnN0IGZvcm1SZWYgPSB1c2VSZWY8SFRNTEZvcm1FbGVtZW50PihudWxsKVxuICBjb25zdCBjb250ZXh0UmVmID0gdXNlUmVmKHt9IGFzIEZvcm1Db250ZXh0VHlwZSlcblxuICBsZXQgaW5pdGlhbEZpZWxkU3RhdGUgPSB7fVxuXG4gIGlmIChmb3JtYXR0ZWRJbml0aWFsRGF0YSkgaW5pdGlhbEZpZWxkU3RhdGUgPSBmb3JtYXR0ZWRJbml0aWFsRGF0YVxuICBpZiAoaW5pdGlhbFN0YXRlKSBpbml0aWFsRmllbGRTdGF0ZSA9IGluaXRpYWxTdGF0ZVxuXG4gIGNvbnN0IGZpZWxkc1JlZHVjZXIgPSB1c2VSZWR1Y2VyKGZpZWxkUmVkdWNlciwge30sICgpID0+IGluaXRpYWxGaWVsZFN0YXRlKVxuICAvKipcbiAgICogYGZpZWxkc2AgaXMgdGhlIGN1cnJlbnQsIHVwLXRvLWRhdGUgc3RhdGUvZGF0YSBvZiBhbGwgZmllbGRzIGluIHRoZSBmb3JtLiBJdCBjYW4gYmUgbW9kaWZpZWQgYnkgdXNpbmcgZGlzcGF0Y2hGaWVsZHMsXG4gICAqIHdoaWNoIGNhbGxzIHRoZSBmaWVsZFJlZHVjZXIsIHdoaWNoIHRoZW4gdXBkYXRlcyB0aGUgc3RhdGUuXG4gICAqL1xuICBjb25zdCBbZmllbGRzLCBkaXNwYXRjaEZpZWxkc10gPSBmaWVsZHNSZWR1Y2VyXG5cbiAgY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcyA9IGZpZWxkc1xuICBjb250ZXh0UmVmLmN1cnJlbnQuZGlzcGF0Y2hGaWVsZHMgPSBkaXNwYXRjaEZpZWxkc1xuXG4gIC8vIEJ1aWxkIGEgY3VycmVudCBzZXQgb2YgY2hpbGQgZXJyb3JzIGZvciBhbGwgcm93cyBpbiBmb3JtIHN0YXRlXG4gIGNvbnN0IGJ1aWxkUm93RXJyb3JzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nRmllbGRSb3dzOiB7IFtwYXRoOiBzdHJpbmddOiBSb3dbXSB9ID0ge31cbiAgICBjb25zdCBuZXdGaWVsZFJvd3M6IHsgW3BhdGg6IHN0cmluZ106IFJvd1tdIH0gPSB7fVxuXG4gICAgT2JqZWN0LmVudHJpZXMoZmllbGRzKS5mb3JFYWNoKChbcGF0aCwgZmllbGRdKSA9PiB7XG4gICAgICBjb25zdCBwYXRoU2VnbWVudHMgPSBzcGxpdFBhdGhCeUFycmF5RmllbGRzKHBhdGgpXG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aFNlZ21lbnRzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkUGF0aCA9IHBhdGhTZWdtZW50cy5zbGljZSgwLCBpICsgMSkuam9pbignLicpXG4gICAgICAgIGNvbnN0IGZvcm1GaWVsZCA9IGZpZWxkcz8uW2ZpZWxkUGF0aF1cblxuICAgICAgICAvLyBJcyB0aGlzIGFuIGFycmF5IG9yIGJsb2NrcyBmaWVsZD9cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZm9ybUZpZWxkPy5yb3dzKSkge1xuICAgICAgICAgIC8vIEtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGV4aXN0aW5nIHJvdyBzdGF0ZVxuICAgICAgICAgIGV4aXN0aW5nRmllbGRSb3dzW2ZpZWxkUGF0aF0gPSBmb3JtRmllbGQucm93c1xuXG4gICAgICAgICAgLy8gQSBuZXcgcm93IHN0YXRlIHdpbGwgYmUgdXNlZCB0byBjb21wYXJlXG4gICAgICAgICAgLy8gYWdhaW5zdCB0aGUgb2xkIHN0YXRlIGxhdGVyLFxuICAgICAgICAgIC8vIHRvIHNlZSBpZiB3ZSBuZWVkIHRvIGRpc3BhdGNoIGFuIHVwZGF0ZVxuICAgICAgICAgIGlmICghbmV3RmllbGRSb3dzW2ZpZWxkUGF0aF0pIHtcbiAgICAgICAgICAgIG5ld0ZpZWxkUm93c1tmaWVsZFBhdGhdID0gZm9ybUZpZWxkLnJvd3MubWFwKChleGlzdGluZ1JvdykgPT4gKHtcbiAgICAgICAgICAgICAgLi4uZXhpc3RpbmdSb3csXG4gICAgICAgICAgICAgIGNoaWxkRXJyb3JQYXRoczogbmV3IFNldCgpLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgcm93SW5kZXggPSBwYXRoU2VnbWVudHNbaSArIDFdXG4gICAgICAgICAgY29uc3QgY2hpbGRGaWVsZFBhdGggPSBwYXRoU2VnbWVudHMuc2xpY2UoaSArIDEpLmpvaW4oJy4nKVxuXG4gICAgICAgICAgaWYgKGZpZWxkLnZhbGlkID09PSBmYWxzZSAmJiBjaGlsZEZpZWxkUGF0aCkge1xuICAgICAgICAgICAgbmV3RmllbGRSb3dzW2ZpZWxkUGF0aF1bcm93SW5kZXhdLmNoaWxkRXJyb3JQYXRocy5hZGQoYCR7ZmllbGRQYXRofS4ke2NoaWxkRmllbGRQYXRofWApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vIE5vdyBsb29wIG92ZXIgYWxsIGZpZWxkcyB3aXRoIHJvd3MgLVxuICAgIC8vIGlmIGFueXRoaW5nIGNoYW5nZWQsIGRpc3BhdGNoIGFuIHVwZGF0ZSBmb3IgdGhlIGZpZWxkXG4gICAgLy8gd2l0aCB0aGUgbmV3IHJvdyBzdGF0ZVxuICAgIE9iamVjdC5lbnRyaWVzKG5ld0ZpZWxkUm93cykuZm9yRWFjaCgoW3BhdGgsIG5ld1Jvd3NdKSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZU1hdGNoZXMgPSBuZXdSb3dzLmV2ZXJ5KChuZXdSb3csIGkpID0+IHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdSb3dFcnJvclBhdGhzID0gZXhpc3RpbmdGaWVsZFJvd3NbcGF0aF1baV0/LmNoaWxkRXJyb3JQYXRoc1xuICAgICAgICByZXR1cm4gc2V0c0FyZUVxdWFsKG5ld1Jvdy5jaGlsZEVycm9yUGF0aHMsIGV4aXN0aW5nUm93RXJyb3JQYXRocylcbiAgICAgIH0pXG5cbiAgICAgIGlmICghc3RhdGVNYXRjaGVzKSB7XG4gICAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgICB0eXBlOiAnVVBEQVRFJyxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJvd3M6IG5ld1Jvd3MsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW2ZpZWxkcywgZGlzcGF0Y2hGaWVsZHNdKVxuXG4gIGNvbnN0IHZhbGlkYXRlRm9ybSA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB2YWxpZGF0ZWRGaWVsZFN0YXRlID0ge31cbiAgICBsZXQgaXNWYWxpZCA9IHRydWVcbiAgICBjb25zdCBkYXRhID0gY29udGV4dFJlZi5jdXJyZW50LmdldERhdGEoKVxuXG4gICAgY29uc3QgdmFsaWRhdGlvblByb21pc2VzID0gT2JqZWN0LmVudHJpZXMoY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcykubWFwKFxuICAgICAgYXN5bmMgKFtwYXRoLCBmaWVsZF0pID0+IHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGVkRmllbGQgPSB7XG4gICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGQucGFzc2VzQ29uZGl0aW9uICE9PSBmYWxzZSkge1xuICAgICAgICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0OiBib29sZWFuIHwgc3RyaW5nID0gdHJ1ZVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiBmaWVsZC52YWxpZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IHZhbHVlVG9WYWxpZGF0ZSA9IGZpZWxkLnZhbHVlXG5cbiAgICAgICAgICAgIGlmIChmaWVsZD8ucm93cyAmJiBBcnJheS5pc0FycmF5KGZpZWxkLnJvd3MpKSB7XG4gICAgICAgICAgICAgIHZhbHVlVG9WYWxpZGF0ZSA9IGNvbnRleHRSZWYuY3VycmVudC5nZXREYXRhQnlQYXRoKHBhdGgpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCBmaWVsZC52YWxpZGF0ZSh2YWx1ZVRvVmFsaWRhdGUsIHtcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICBzaWJsaW5nRGF0YTogY29udGV4dFJlZi5jdXJyZW50LmdldFNpYmxpbmdEYXRhKHBhdGgpLFxuICAgICAgICAgICAgICB0LFxuICAgICAgICAgICAgICB1c2VyLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb25SZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWxpZGF0ZWRGaWVsZC5lcnJvck1lc3NhZ2UgPSB2YWxpZGF0aW9uUmVzdWx0XG4gICAgICAgICAgICB2YWxpZGF0ZWRGaWVsZC52YWxpZCA9IGZhbHNlXG4gICAgICAgICAgICBpc1ZhbGlkID0gZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YWxpZGF0ZWRGaWVsZFN0YXRlW3BhdGhdID0gdmFsaWRhdGVkRmllbGRcbiAgICAgIH0sXG4gICAgKVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodmFsaWRhdGlvblByb21pc2VzKVxuXG4gICAgaWYgKCFpc0RlZXBFcXVhbChjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCB2YWxpZGF0ZWRGaWVsZFN0YXRlKSkge1xuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyB0eXBlOiAnUkVQTEFDRV9TVEFURScsIHN0YXRlOiB2YWxpZGF0ZWRGaWVsZFN0YXRlIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVmFsaWRcbiAgfSwgW2NvbnRleHRSZWYsIGlkLCB1c2VyLCBvcGVyYXRpb24sIHQsIGRpc3BhdGNoRmllbGRzLCBjb25maWddKVxuXG4gIGNvbnN0IHN1Ym1pdCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChvcHRpb25zOiBTdWJtaXRPcHRpb25zID0ge30sIGUpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYWN0aW9uOiBhY3Rpb25Ub1VzZSA9IGFjdGlvbixcbiAgICAgICAgbWV0aG9kOiBtZXRob2RUb1VzZSA9IG1ldGhvZCxcbiAgICAgICAgb3ZlcnJpZGVzID0ge30sXG4gICAgICAgIHNraXBWYWxpZGF0aW9uLFxuICAgICAgfSA9IG9wdGlvbnNcblxuICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgIGlmIChlKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChlKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG5cbiAgICAgIHNldFByb2Nlc3NpbmcodHJ1ZSlcblxuICAgICAgaWYgKHdhaXRGb3JBdXRvY29tcGxldGUpIGF3YWl0IHdhaXQoMTAwKVxuXG4gICAgICBjb25zdCBpc1ZhbGlkID0gc2tpcFZhbGlkYXRpb24gPyB0cnVlIDogYXdhaXQgY29udGV4dFJlZi5jdXJyZW50LnZhbGlkYXRlRm9ybSgpXG4gICAgICBjb250ZXh0UmVmLmN1cnJlbnQuYnVpbGRSb3dFcnJvcnMoKVxuXG4gICAgICBpZiAoIXNraXBWYWxpZGF0aW9uKSBzZXRTdWJtaXR0ZWQodHJ1ZSlcblxuICAgICAgLy8gSWYgbm90IHZhbGlkLCBwcmV2ZW50IHN1Ym1pc3Npb25cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICB0b2FzdC5lcnJvcih0KCdlcnJvcjpjb3JyZWN0SW52YWxpZEZpZWxkcycpKVxuICAgICAgICBzZXRQcm9jZXNzaW5nKGZhbHNlKVxuXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBJZiBzdWJtaXQgaGFuZGxlciBjb21lcyB0aHJvdWdoIHZpYSBwcm9wcywgcnVuIHRoYXRcbiAgICAgIGlmIChvblN1Ym1pdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgIC4uLnJlZHVjZUZpZWxkc1RvVmFsdWVzKGZpZWxkcywgdHJ1ZSksXG4gICAgICAgICAgLi4ub3ZlcnJpZGVzLFxuICAgICAgICB9XG5cbiAgICAgICAgb25TdWJtaXQoZmllbGRzLCBkYXRhKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBmb3JtRGF0YSA9IGNvbnRleHRSZWYuY3VycmVudC5jcmVhdGVGb3JtRGF0YShvdmVycmlkZXMpXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHJlcXVlc3RzW21ldGhvZFRvVXNlLnRvTG93ZXJDYXNlKCldKGFjdGlvblRvVXNlLCB7XG4gICAgICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcblxuICAgICAgICBzZXRNb2RpZmllZChmYWxzZSlcblxuICAgICAgICBpZiAodHlwZW9mIGhhbmRsZVJlc3BvbnNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgaGFuZGxlUmVzcG9uc2UocmVzKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgc2V0UHJvY2Vzc2luZyhmYWxzZSlcblxuICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlcy5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJylcbiAgICAgICAgY29uc3QgaXNKU09OID0gY29udGVudFR5cGUgJiYgY29udGVudFR5cGUuaW5kZXhPZignYXBwbGljYXRpb24vanNvbicpICE9PSAtMVxuXG4gICAgICAgIGxldCBqc29uOiBhbnkgPSB7fVxuXG4gICAgICAgIGlmIChpc0pTT04pIGpzb24gPSBhd2FpdCByZXMuanNvbigpXG5cbiAgICAgICAgaWYgKHJlcy5zdGF0dXMgPCA0MDApIHtcbiAgICAgICAgICBzZXRTdWJtaXR0ZWQoZmFsc2UpXG5cbiAgICAgICAgICBpZiAodHlwZW9mIG9uU3VjY2VzcyA9PT0gJ2Z1bmN0aW9uJykgb25TdWNjZXNzKGpzb24pXG5cbiAgICAgICAgICBpZiAocmVkaXJlY3QpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uID0ge1xuICAgICAgICAgICAgICBwYXRobmFtZTogcmVkaXJlY3QsXG4gICAgICAgICAgICAgIHN0YXRlOiB7fSxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBqc29uID09PSAnb2JqZWN0JyAmJiBqc29uLm1lc3NhZ2UgJiYgIWRpc2FibGVTdWNjZXNzU3RhdHVzKSB7XG4gICAgICAgICAgICAgIGRlc3RpbmF0aW9uLnN0YXRlID0ge1xuICAgICAgICAgICAgICAgIHN0YXR1czogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGpzb24ubWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoaXN0b3J5LnB1c2goZGVzdGluYXRpb24pXG4gICAgICAgICAgfSBlbHNlIGlmICghZGlzYWJsZVN1Y2Nlc3NTdGF0dXMpIHtcbiAgICAgICAgICAgIHRvYXN0LnN1Y2Nlc3MoanNvbi5tZXNzYWdlIHx8IHQoJ3N1Ym1pc3Npb25TdWNjZXNzZnVsJyksIHsgYXV0b0Nsb3NlOiAzMDAwIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRleHRSZWYuY3VycmVudCA9IHsgLi4uY29udGV4dFJlZi5jdXJyZW50IH0gLy8gdHJpZ2dlcnMgcmVyZW5kZXIgb2YgYWxsIGNvbXBvbmVudHMgdGhhdCBzdWJzY3JpYmUgdG8gZm9ybVxuXG4gICAgICAgICAgaWYgKGpzb24ubWVzc2FnZSkge1xuICAgICAgICAgICAgdG9hc3QuZXJyb3IoanNvbi5tZXNzYWdlKVxuXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShqc29uLmVycm9ycykpIHtcbiAgICAgICAgICAgIGNvbnN0IFtmaWVsZEVycm9ycywgbm9uRmllbGRFcnJvcnNdID0ganNvbi5lcnJvcnMucmVkdWNlKFxuICAgICAgICAgICAgICAoW2ZpZWxkRXJycywgbm9uRmllbGRFcnJzXSwgZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3RmllbGRFcnJzID0gW11cbiAgICAgICAgICAgICAgICBjb25zdCBuZXdOb25GaWVsZEVycnMgPSBbXVxuXG4gICAgICAgICAgICAgICAgaWYgKGVycj8ubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgbmV3Tm9uRmllbGRFcnJzLnB1c2goZXJyKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVycj8uZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgIGVyci5kYXRhLmZvckVhY2goKGRhdGFFcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YUVycm9yPy5maWVsZCkge1xuICAgICAgICAgICAgICAgICAgICAgIG5ld0ZpZWxkRXJycy5wdXNoKGRhdGFFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBuZXdOb25GaWVsZEVycnMucHVzaChkYXRhRXJyb3IpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgIFsuLi5maWVsZEVycnMsIC4uLm5ld0ZpZWxkRXJyc10sXG4gICAgICAgICAgICAgICAgICBbLi4ubm9uRmllbGRFcnJzLCAuLi5uZXdOb25GaWVsZEVycnNdLFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgW1tdLCBbXV0sXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGZpZWxkRXJyb3JzLmZvckVhY2goKGVycikgPT4ge1xuICAgICAgICAgICAgICBkaXNwYXRjaEZpZWxkcyh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ1VQREFURScsXG4gICAgICAgICAgICAgICAgLi4uKGNvbnRleHRSZWYuY3VycmVudD8uZmllbGRzPy5bZXJyLmZpZWxkXSB8fCB7fSksXG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBlcnIubWVzc2FnZSxcbiAgICAgICAgICAgICAgICBwYXRoOiBlcnIuZmllbGQsXG4gICAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgbm9uRmllbGRFcnJvcnMuZm9yRWFjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIHRvYXN0LmVycm9yKGVyci5tZXNzYWdlIHx8IHQoJ2Vycm9yOnVua25vd24nKSlcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvck1lc3NhZ2VzW3Jlcy5zdGF0dXNdIHx8IHQoJ2Vycm9yOnVua25vd24nKVxuXG4gICAgICAgICAgdG9hc3QuZXJyb3IobWVzc2FnZSlcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHNldFByb2Nlc3NpbmcoZmFsc2UpXG5cbiAgICAgICAgdG9hc3QuZXJyb3IoZXJyKVxuICAgICAgfVxuICAgIH0sXG4gICAgW1xuICAgICAgYWN0aW9uLFxuICAgICAgZGlzYWJsZVN1Y2Nlc3NTdGF0dXMsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGRpc3BhdGNoRmllbGRzLFxuICAgICAgZmllbGRzLFxuICAgICAgaGFuZGxlUmVzcG9uc2UsXG4gICAgICBoaXN0b3J5LFxuICAgICAgbWV0aG9kLFxuICAgICAgb25TdWJtaXQsXG4gICAgICBvblN1Y2Nlc3MsXG4gICAgICByZWRpcmVjdCxcbiAgICAgIHQsXG4gICAgICBpMThuLFxuICAgICAgd2FpdEZvckF1dG9jb21wbGV0ZSxcbiAgICBdLFxuICApXG5cbiAgY29uc3QgdHJhdmVyc2VSb3dDb25maWdzID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKHtcbiAgICAgIGZpZWxkQ29uZmlnLFxuICAgICAgcGF0aCxcbiAgICAgIHBhdGhQcmVmaXgsXG4gICAgfToge1xuICAgICAgZmllbGRDb25maWc6IEZpZWxkW11cbiAgICAgIHBhdGg6IHN0cmluZ1xuICAgICAgcGF0aFByZWZpeD86IHN0cmluZ1xuICAgIH0pID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IGZpZWxkQ29uZmlnXG4gICAgICBjb25zdCBwYXRoU2VnbWVudHMgPSBzcGxpdFBhdGhCeUFycmF5RmllbGRzKHBhdGgpXG4gICAgICBjb25zdCBjb25maWdNYXAgPSBidWlsZEZpZWxkU2NoZW1hTWFwKGNvbmZpZylcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoU2VnbWVudHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgY29uc3QgcGF0aFNlZ21lbnQgPSBwYXRoU2VnbWVudHNbaV1cblxuICAgICAgICBpZiAoaXNOdW1iZXIocGF0aFNlZ21lbnQpKSB7XG4gICAgICAgICAgY29uc3Qgcm93SW5kZXggPSBwYXJzZUludChwYXRoU2VnbWVudCwgMTApXG4gICAgICAgICAgY29uc3QgcGFyZW50RmllbGRQYXRoID0gcGF0aFNlZ21lbnRzLnNsaWNlKDAsIGkpLmpvaW4oJy4nKVxuICAgICAgICAgIGNvbnN0IHJlbWFpbmluZ1BhdGggPSBwYXRoU2VnbWVudHMuc2xpY2UoaSArIDEpLmpvaW4oJy4nKVxuICAgICAgICAgIGNvbnN0IGFycmF5RmllbGRQYXRoID0gcGF0aFByZWZpeCA/IGAke3BhdGhQcmVmaXh9LiR7cGFyZW50RmllbGRQYXRofWAgOiBwYXJlbnRGaWVsZFBhdGhcbiAgICAgICAgICBjb25zdCBwYXJlbnRBcnJheUZpZWxkID0gY29udGV4dFJlZi5jdXJyZW50LmdldEZpZWxkKGFycmF5RmllbGRQYXRoKVxuICAgICAgICAgIGNvbnN0IHJvd0ZpZWxkID0gcGFyZW50QXJyYXlGaWVsZC5yb3dzW3Jvd0luZGV4XVxuXG4gICAgICAgICAgaWYgKHJvd0ZpZWxkLmJsb2NrVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgYmxvY2tDb25maWcgPSBjb25maWdNYXAuZ2V0KGAke3BhcmVudEZpZWxkUGF0aH0uJHtyb3dGaWVsZC5ibG9ja1R5cGV9YClcbiAgICAgICAgICAgIGlmIChibG9ja0NvbmZpZykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJhdmVyc2VSb3dDb25maWdzKHtcbiAgICAgICAgICAgICAgICBmaWVsZENvbmZpZzogYmxvY2tDb25maWcsXG4gICAgICAgICAgICAgICAgcGF0aDogcmVtYWluaW5nUGF0aCxcbiAgICAgICAgICAgICAgICBwYXRoUHJlZml4OiBgJHthcnJheUZpZWxkUGF0aH0uJHtyb3dJbmRleH1gLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEJsb2NrIGNvbmZpZyBub3QgZm91bmQgZm9yICR7cm93RmllbGQuYmxvY2tUeXBlfSBhdCBwYXRoICR7cGF0aH1gKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHJhdmVyc2VSb3dDb25maWdzKHtcbiAgICAgICAgICAgICAgZmllbGRDb25maWc6IGNvbmZpZ01hcC5nZXQocGFyZW50RmllbGRQYXRoKSxcbiAgICAgICAgICAgICAgcGF0aDogcmVtYWluaW5nUGF0aCxcbiAgICAgICAgICAgICAgcGF0aFByZWZpeDogYCR7YXJyYXlGaWVsZFBhdGh9LiR7cm93SW5kZXh9YCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb25maWdcbiAgICB9LFxuICAgIFtdLFxuICApXG5cbiAgY29uc3QgZ2V0Um93U2NoZW1hQnlQYXRoID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKHsgYmxvY2tUeXBlLCBwYXRoIH06IHsgYmxvY2tUeXBlPzogc3RyaW5nOyBwYXRoOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgY29uc3Qgcm93Q29uZmlnID0gdHJhdmVyc2VSb3dDb25maWdzKHtcbiAgICAgICAgZmllbGRDb25maWc6IGZpZWxkc0Zyb21Qcm9wcyxcbiAgICAgICAgcGF0aCxcbiAgICAgIH0pXG4gICAgICBjb25zdCByb3dGaWVsZENvbmZpZ3MgPSBidWlsZEZpZWxkU2NoZW1hTWFwKHJvd0NvbmZpZylcbiAgICAgIGNvbnN0IHBhdGhTZWdtZW50cyA9IHNwbGl0UGF0aEJ5QXJyYXlGaWVsZHMocGF0aClcbiAgICAgIGNvbnN0IGZpZWxkS2V5ID0gcGF0aFNlZ21lbnRzLmF0KC0xKVxuICAgICAgcmV0dXJuIHJvd0ZpZWxkQ29uZmlncy5nZXQoYmxvY2tUeXBlID8gYCR7ZmllbGRLZXl9LiR7YmxvY2tUeXBlfWAgOiBmaWVsZEtleSlcbiAgICB9LFxuICAgIFt0cmF2ZXJzZVJvd0NvbmZpZ3MsIGZpZWxkc0Zyb21Qcm9wc10sXG4gIClcblxuICAvLyBBcnJheS9CbG9jayByb3cgbWFuaXB1bGF0aW9uLiBUaGlzIGlzIGNhbGxlZCB3aGVuLCBmb3IgZXhhbXBsZSwgeW91IGFkZCBhIG5ldyBibG9jayB0byBhIGJsb2NrcyBmaWVsZC5cbiAgLy8gVGhlIGJsb2NrIGRhdGEgaXMgc2F2ZWQgaW4gdGhlIHJvd3MgcHJvcGVydHkgb2YgdGhlIHN0YXRlLCB3aGljaCBpcyBtb2RpZmllZCB1cGRhdGVkIGhlcmUuXG4gIGNvbnN0IGFkZEZpZWxkUm93OiBDb250ZXh0WydhZGRGaWVsZFJvdyddID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHsgZGF0YSwgcGF0aCwgcm93SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgcHJlZmVyZW5jZXMgPSBhd2FpdCBnZXREb2NQcmVmZXJlbmNlcygpXG4gICAgICBjb25zdCByb3dTY2hlbWEgPSBnZXRSb3dTY2hlbWFCeVBhdGgoe1xuICAgICAgICBibG9ja1R5cGU6IGRhdGE/LmJsb2NrVHlwZSxcbiAgICAgICAgcGF0aCxcbiAgICAgIH0pXG5cbiAgICAgIGlmIChyb3dTY2hlbWEpIHtcbiAgICAgICAgY29uc3Qgc3ViRmllbGRTdGF0ZSA9IGF3YWl0IGJ1aWxkU3RhdGVGcm9tU2NoZW1hKHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBmaWVsZFNjaGVtYTogcm93U2NoZW1hLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgICAgdCxcbiAgICAgICAgICB1c2VyLFxuICAgICAgICB9KVxuXG4gICAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgICB0eXBlOiAnQUREX1JPVycsXG4gICAgICAgICAgYmxvY2tUeXBlOiBkYXRhPy5ibG9ja1R5cGUsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICByb3dJbmRleCxcbiAgICAgICAgICBzdWJGaWVsZFN0YXRlLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW2Rpc3BhdGNoRmllbGRzLCBnZXREb2NQcmVmZXJlbmNlcywgaWQsIHVzZXIsIG9wZXJhdGlvbiwgbG9jYWxlLCB0LCBnZXRSb3dTY2hlbWFCeVBhdGgsIGNvbmZpZ10sXG4gIClcblxuICBjb25zdCByZW1vdmVGaWVsZFJvdzogQ29udGV4dFsncmVtb3ZlRmllbGRSb3cnXSA9IHVzZUNhbGxiYWNrKFxuICAgICh7IHBhdGgsIHJvd0luZGV4IH0pID0+IHtcbiAgICAgIGRpc3BhdGNoRmllbGRzKHsgdHlwZTogJ1JFTU9WRV9ST1cnLCBwYXRoLCByb3dJbmRleCB9KVxuICAgIH0sXG4gICAgW2Rpc3BhdGNoRmllbGRzXSxcbiAgKVxuXG4gIGNvbnN0IHJlcGxhY2VGaWVsZFJvdzogQ29udGV4dFsncmVwbGFjZUZpZWxkUm93J10gPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoeyBkYXRhLCBwYXRoLCByb3dJbmRleCB9KSA9PiB7XG4gICAgICBjb25zdCBwcmVmZXJlbmNlcyA9IGF3YWl0IGdldERvY1ByZWZlcmVuY2VzKClcbiAgICAgIGNvbnN0IHJvd1NjaGVtYSA9IGdldFJvd1NjaGVtYUJ5UGF0aCh7XG4gICAgICAgIGJsb2NrVHlwZTogZGF0YT8uYmxvY2tUeXBlLFxuICAgICAgICBwYXRoLFxuICAgICAgfSlcblxuICAgICAgaWYgKHJvd1NjaGVtYSkge1xuICAgICAgICBjb25zdCBzdWJGaWVsZFN0YXRlID0gYXdhaXQgYnVpbGRTdGF0ZUZyb21TY2hlbWEoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGZpZWxkU2NoZW1hOiByb3dTY2hlbWEsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICBwcmVmZXJlbmNlcyxcbiAgICAgICAgICB0LFxuICAgICAgICAgIHVzZXIsXG4gICAgICAgIH0pXG4gICAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgICB0eXBlOiAnUkVQTEFDRV9ST1cnLFxuICAgICAgICAgIGJsb2NrVHlwZTogZGF0YT8uYmxvY2tUeXBlLFxuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgcm93SW5kZXgsXG4gICAgICAgICAgc3ViRmllbGRTdGF0ZSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtkaXNwYXRjaEZpZWxkcywgZ2V0RG9jUHJlZmVyZW5jZXMsIGlkLCB1c2VyLCBvcGVyYXRpb24sIGxvY2FsZSwgdCwgZ2V0Um93U2NoZW1hQnlQYXRoLCBjb25maWddLFxuICApXG5cbiAgY29uc3QgZ2V0RmllbGRzID0gdXNlQ2FsbGJhY2soKCkgPT4gY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcywgW2NvbnRleHRSZWZdKVxuICBjb25zdCBnZXRGaWVsZCA9IHVzZUNhbGxiYWNrKChwYXRoOiBzdHJpbmcpID0+IGNvbnRleHRSZWYuY3VycmVudC5maWVsZHNbcGF0aF0sIFtjb250ZXh0UmVmXSlcbiAgY29uc3QgZ2V0RGF0YSA9IHVzZUNhbGxiYWNrKFxuICAgICgpID0+IHJlZHVjZUZpZWxkc1RvVmFsdWVzKGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMsIHRydWUpLFxuICAgIFtjb250ZXh0UmVmXSxcbiAgKVxuICBjb25zdCBnZXRTaWJsaW5nRGF0YSA9IHVzZUNhbGxiYWNrKFxuICAgIChwYXRoOiBzdHJpbmcpID0+IGdldFNpYmxpbmdEYXRhRnVuYyhjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCBwYXRoKSxcbiAgICBbY29udGV4dFJlZl0sXG4gIClcbiAgY29uc3QgZ2V0RGF0YUJ5UGF0aCA9IHVzZUNhbGxiYWNrPEdldERhdGFCeVBhdGg+KFxuICAgIChwYXRoOiBzdHJpbmcpID0+IGdldERhdGFCeVBhdGhGdW5jKGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMsIHBhdGgpLFxuICAgIFtjb250ZXh0UmVmXSxcbiAgKVxuXG4gIGNvbnN0IGNyZWF0ZUZvcm1EYXRhID0gdXNlQ2FsbGJhY2soXG4gICAgKG92ZXJyaWRlczogYW55ID0ge30pID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSByZWR1Y2VGaWVsZHNUb1ZhbHVlcyhjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCB0cnVlKVxuXG4gICAgICBjb25zdCBmaWxlID0gZGF0YT8uZmlsZVxuXG4gICAgICBpZiAoZmlsZSkge1xuICAgICAgICBkZWxldGUgZGF0YS5maWxlXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFXaXRoT3ZlcnJpZGVzID0ge1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICAuLi5vdmVycmlkZXMsXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFUb1NlcmlhbGl6ZSA9IHtcbiAgICAgICAgX3BheWxvYWQ6IEpTT04uc3RyaW5naWZ5KGRhdGFXaXRoT3ZlcnJpZGVzKSxcbiAgICAgICAgZmlsZSxcbiAgICAgIH1cblxuICAgICAgLy8gbnVsbEFzVW5kZWZpbmVkcyBpcyBpbXBvcnRhbnQgdG8gYWxsb3cgdXBsb2FkcyBhbmQgcmVsYXRpb25zaGlwIGZpZWxkcyB0byBjbGVhciB0aGVtc2VsdmVzXG4gICAgICBjb25zdCBmb3JtRGF0YSA9IHNlcmlhbGl6ZShkYXRhVG9TZXJpYWxpemUsIHsgaW5kaWNlczogdHJ1ZSwgbnVsbHNBc1VuZGVmaW5lZHM6IGZhbHNlIH0pXG4gICAgICByZXR1cm4gZm9ybURhdGFcbiAgICB9LFxuICAgIFtjb250ZXh0UmVmXSxcbiAgKVxuXG4gIGNvbnN0IHJlc2V0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGZpZWxkU2NoZW1hOiBGaWVsZFtdLCBkYXRhOiB1bmtub3duKSA9PiB7XG4gICAgICBjb25zdCBwcmVmZXJlbmNlcyA9IGF3YWl0IGdldERvY1ByZWZlcmVuY2VzKClcbiAgICAgIGNvbnN0IHN0YXRlID0gYXdhaXQgYnVpbGRTdGF0ZUZyb21TY2hlbWEoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBkYXRhLFxuICAgICAgICBmaWVsZFNjaGVtYSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHByZWZlcmVuY2VzLFxuICAgICAgICB0LFxuICAgICAgICB1c2VyLFxuICAgICAgfSlcbiAgICAgIGNvbnRleHRSZWYuY3VycmVudCA9IHsgLi4uaW5pdENvbnRleHRTdGF0ZSB9IGFzIEZvcm1Db250ZXh0VHlwZVxuICAgICAgc2V0TW9kaWZpZWQoZmFsc2UpXG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IHR5cGU6ICdSRVBMQUNFX1NUQVRFJywgc3RhdGUgfSlcbiAgICB9LFxuICAgIFtpZCwgdXNlciwgb3BlcmF0aW9uLCBsb2NhbGUsIHQsIGRpc3BhdGNoRmllbGRzLCBnZXREb2NQcmVmZXJlbmNlcywgY29uZmlnXSxcbiAgKVxuXG4gIGNvbnN0IHJlcGxhY2VTdGF0ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChzdGF0ZTogRmllbGRzKSA9PiB7XG4gICAgICBjb250ZXh0UmVmLmN1cnJlbnQgPSB7IC4uLmluaXRDb250ZXh0U3RhdGUgfSBhcyBGb3JtQ29udGV4dFR5cGVcbiAgICAgIHNldE1vZGlmaWVkKGZhbHNlKVxuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyB0eXBlOiAnUkVQTEFDRV9TVEFURScsIHN0YXRlIH0pXG4gICAgfSxcbiAgICBbZGlzcGF0Y2hGaWVsZHNdLFxuICApXG5cbiAgY29udGV4dFJlZi5jdXJyZW50LnN1Ym1pdCA9IHN1Ym1pdFxuICBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RmllbGRzID0gZ2V0RmllbGRzXG4gIGNvbnRleHRSZWYuY3VycmVudC5nZXRGaWVsZCA9IGdldEZpZWxkXG4gIGNvbnRleHRSZWYuY3VycmVudC5nZXREYXRhID0gZ2V0RGF0YVxuICBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0U2libGluZ0RhdGEgPSBnZXRTaWJsaW5nRGF0YVxuICBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RGF0YUJ5UGF0aCA9IGdldERhdGFCeVBhdGhcbiAgY29udGV4dFJlZi5jdXJyZW50LnZhbGlkYXRlRm9ybSA9IHZhbGlkYXRlRm9ybVxuICBjb250ZXh0UmVmLmN1cnJlbnQuY3JlYXRlRm9ybURhdGEgPSBjcmVhdGVGb3JtRGF0YVxuICBjb250ZXh0UmVmLmN1cnJlbnQuc2V0TW9kaWZpZWQgPSBzZXRNb2RpZmllZFxuICBjb250ZXh0UmVmLmN1cnJlbnQuc2V0UHJvY2Vzc2luZyA9IHNldFByb2Nlc3NpbmdcbiAgY29udGV4dFJlZi5jdXJyZW50LnNldFN1Ym1pdHRlZCA9IHNldFN1Ym1pdHRlZFxuICBjb250ZXh0UmVmLmN1cnJlbnQuZGlzYWJsZWQgPSBkaXNhYmxlZFxuICBjb250ZXh0UmVmLmN1cnJlbnQuZm9ybVJlZiA9IGZvcm1SZWZcbiAgY29udGV4dFJlZi5jdXJyZW50LnJlc2V0ID0gcmVzZXRcbiAgY29udGV4dFJlZi5jdXJyZW50LnJlcGxhY2VTdGF0ZSA9IHJlcGxhY2VTdGF0ZVxuICBjb250ZXh0UmVmLmN1cnJlbnQuYnVpbGRSb3dFcnJvcnMgPSBidWlsZFJvd0Vycm9yc1xuICBjb250ZXh0UmVmLmN1cnJlbnQuYWRkRmllbGRSb3cgPSBhZGRGaWVsZFJvd1xuICBjb250ZXh0UmVmLmN1cnJlbnQucmVtb3ZlRmllbGRSb3cgPSByZW1vdmVGaWVsZFJvd1xuICBjb250ZXh0UmVmLmN1cnJlbnQucmVwbGFjZUZpZWxkUm93ID0gcmVwbGFjZUZpZWxkUm93XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIHN1Ym1pdHRlZEZyb21Qcm9wcyA9PT0gJ2Jvb2xlYW4nKSBzZXRTdWJtaXR0ZWQoc3VibWl0dGVkRnJvbVByb3BzKVxuICB9LCBbc3VibWl0dGVkRnJvbVByb3BzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbml0aWFsU3RhdGUpIHtcbiAgICAgIGNvbnRleHRSZWYuY3VycmVudCA9IHsgLi4uaW5pdENvbnRleHRTdGF0ZSB9IGFzIEZvcm1Db250ZXh0VHlwZVxuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyB0eXBlOiAnUkVQTEFDRV9TVEFURScsIHN0YXRlOiBpbml0aWFsU3RhdGUgfSlcbiAgICB9XG4gIH0sIFtpbml0aWFsU3RhdGUsIGRpc3BhdGNoRmllbGRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbml0aWFsRGF0YSkge1xuICAgICAgY29udGV4dFJlZi5jdXJyZW50ID0geyAuLi5pbml0Q29udGV4dFN0YXRlIH0gYXMgRm9ybUNvbnRleHRUeXBlXG4gICAgICBjb25zdCBidWlsdFN0YXRlID0gYnVpbGRJbml0aWFsU3RhdGUoaW5pdGlhbERhdGEpXG4gICAgICBzZXRGb3JtYXR0ZWRJbml0aWFsRGF0YShidWlsdFN0YXRlKVxuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyB0eXBlOiAnUkVQTEFDRV9TVEFURScsIHN0YXRlOiBidWlsdFN0YXRlIH0pXG4gICAgfVxuICB9LCBbaW5pdGlhbERhdGEsIGRpc3BhdGNoRmllbGRzXSlcblxuICB1c2VUaHJvdHRsZWRFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgcmVmcmVzaENvb2tpZSgpXG4gICAgfSxcbiAgICAxNTAwMCxcbiAgICBbZmllbGRzXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29udGV4dFJlZi5jdXJyZW50ID0geyAuLi5jb250ZXh0UmVmLmN1cnJlbnQgfSAvLyB0cmlnZ2VycyByZXJlbmRlciBvZiBhbGwgY29tcG9uZW50cyB0aGF0IHN1YnNjcmliZSB0byBmb3JtXG4gICAgc2V0TW9kaWZpZWQoZmFsc2UpXG4gIH0sIFtsb2NhbGVdKVxuXG4gIGNvbnN0IGNsYXNzZXMgPSBbY2xhc3NOYW1lLCBiYXNlQ2xhc3NdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJylcblxuICByZXR1cm4gKFxuICAgIDxmb3JtXG4gICAgICBhY3Rpb249e2FjdGlvbn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlc31cbiAgICAgIG1ldGhvZD17bWV0aG9kfVxuICAgICAgbm9WYWxpZGF0ZVxuICAgICAgb25TdWJtaXQ9eyhlKSA9PiBjb250ZXh0UmVmLmN1cnJlbnQuc3VibWl0KHt9LCBlKX1cbiAgICAgIHJlZj17Zm9ybVJlZn1cbiAgICA+XG4gICAgICA8Rm9ybUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRSZWYuY3VycmVudH0+XG4gICAgICAgIDxGb3JtV2F0Y2hDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgdmFsdWU9e3tcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIC4uLmNvbnRleHRSZWYuY3VycmVudCxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPFN1Ym1pdHRlZENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3N1Ym1pdHRlZH0+XG4gICAgICAgICAgICA8UHJvY2Vzc2luZ0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3Byb2Nlc3Npbmd9PlxuICAgICAgICAgICAgICA8TW9kaWZpZWRDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXttb2RpZmllZH0+XG4gICAgICAgICAgICAgICAgPEZvcm1GaWVsZHNDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtmaWVsZHNSZWR1Y2VyfT5cbiAgICAgICAgICAgICAgICAgIDxXYXRjaEZvcm1FcnJvcnMgYnVpbGRSb3dFcnJvcnM9e2J1aWxkUm93RXJyb3JzfSAvPlxuICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgIDwvRm9ybUZpZWxkc0NvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgICAgIDwvTW9kaWZpZWRDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgICAgPC9Qcm9jZXNzaW5nQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICA8L1N1Ym1pdHRlZENvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgIDwvRm9ybVdhdGNoQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgIDwvRm9ybUNvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9mb3JtPlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IEZvcm1cbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJGb3JtIiwicHJvcHMiLCJpZCIsImNvbGxlY3Rpb24iLCJnZXREb2NQcmVmZXJlbmNlcyIsImdsb2JhbCIsInVzZURvY3VtZW50SW5mbyIsImFjdGlvbiIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGlzYWJsZVN1Y2Nlc3NTdGF0dXMiLCJkaXNhYmxlZCIsImZpZWxkcyIsImZpZWxkc0Zyb21Qcm9wcyIsImhhbmRsZVJlc3BvbnNlIiwiaW5pdGlhbERhdGEiLCJpbml0aWFsU3RhdGUiLCJtZXRob2QiLCJvblN1Ym1pdCIsIm9uU3VjY2VzcyIsInJlZGlyZWN0Iiwic3VibWl0dGVkIiwic3VibWl0dGVkRnJvbVByb3BzIiwid2FpdEZvckF1dG9jb21wbGV0ZSIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwiY29kZSIsImxvY2FsZSIsInVzZUxvY2FsZSIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJyZWZyZXNoQ29va2llIiwidXNlciIsInVzZUF1dGgiLCJvcGVyYXRpb24iLCJ1c2VPcGVyYXRpb24iLCJjb25maWciLCJ1c2VDb25maWciLCJtb2RpZmllZCIsInNldE1vZGlmaWVkIiwidXNlU3RhdGUiLCJwcm9jZXNzaW5nIiwic2V0UHJvY2Vzc2luZyIsInNldFN1Ym1pdHRlZCIsImZvcm1hdHRlZEluaXRpYWxEYXRhIiwic2V0Rm9ybWF0dGVkSW5pdGlhbERhdGEiLCJidWlsZEluaXRpYWxTdGF0ZSIsImZvcm1SZWYiLCJ1c2VSZWYiLCJjb250ZXh0UmVmIiwiaW5pdGlhbEZpZWxkU3RhdGUiLCJmaWVsZHNSZWR1Y2VyIiwidXNlUmVkdWNlciIsImZpZWxkUmVkdWNlciIsImRpc3BhdGNoRmllbGRzIiwiY3VycmVudCIsImJ1aWxkUm93RXJyb3JzIiwidXNlQ2FsbGJhY2siLCJleGlzdGluZ0ZpZWxkUm93cyIsIm5ld0ZpZWxkUm93cyIsIk9iamVjdCIsImVudHJpZXMiLCJmb3JFYWNoIiwicGF0aCIsImZpZWxkIiwicGF0aFNlZ21lbnRzIiwic3BsaXRQYXRoQnlBcnJheUZpZWxkcyIsImkiLCJsZW5ndGgiLCJmaWVsZFBhdGgiLCJzbGljZSIsImpvaW4iLCJmb3JtRmllbGQiLCJBcnJheSIsImlzQXJyYXkiLCJyb3dzIiwibWFwIiwiZXhpc3RpbmdSb3ciLCJjaGlsZEVycm9yUGF0aHMiLCJTZXQiLCJyb3dJbmRleCIsImNoaWxkRmllbGRQYXRoIiwidmFsaWQiLCJhZGQiLCJuZXdSb3dzIiwic3RhdGVNYXRjaGVzIiwiZXZlcnkiLCJuZXdSb3ciLCJleGlzdGluZ1Jvd0Vycm9yUGF0aHMiLCJzZXRzQXJlRXF1YWwiLCJ0eXBlIiwidmFsaWRhdGVGb3JtIiwidmFsaWRhdGVkRmllbGRTdGF0ZSIsImlzVmFsaWQiLCJkYXRhIiwiZ2V0RGF0YSIsInZhbGlkYXRpb25Qcm9taXNlcyIsInZhbGlkYXRlZEZpZWxkIiwicGFzc2VzQ29uZGl0aW9uIiwidmFsaWRhdGlvblJlc3VsdCIsInZhbGlkYXRlIiwidmFsdWVUb1ZhbGlkYXRlIiwidmFsdWUiLCJnZXREYXRhQnlQYXRoIiwic2libGluZ0RhdGEiLCJnZXRTaWJsaW5nRGF0YSIsImVycm9yTWVzc2FnZSIsIlByb21pc2UiLCJhbGwiLCJpc0RlZXBFcXVhbCIsInN0YXRlIiwic3VibWl0Iiwib3B0aW9ucyIsImUiLCJhY3Rpb25Ub1VzZSIsIm1ldGhvZFRvVXNlIiwib3ZlcnJpZGVzIiwic2tpcFZhbGlkYXRpb24iLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsIndhaXQiLCJ0b2FzdCIsImVycm9yIiwicmVkdWNlRmllbGRzVG9WYWx1ZXMiLCJmb3JtRGF0YSIsImNyZWF0ZUZvcm1EYXRhIiwicmVzIiwicmVxdWVzdHMiLCJ0b0xvd2VyQ2FzZSIsImJvZHkiLCJoZWFkZXJzIiwibGFuZ3VhZ2UiLCJjb250ZW50VHlwZSIsImdldCIsImlzSlNPTiIsImluZGV4T2YiLCJqc29uIiwic3RhdHVzIiwiZGVzdGluYXRpb24iLCJwYXRobmFtZSIsIm1lc3NhZ2UiLCJwdXNoIiwic3VjY2VzcyIsImF1dG9DbG9zZSIsImVycm9ycyIsImZpZWxkRXJyb3JzIiwibm9uRmllbGRFcnJvcnMiLCJyZWR1Y2UiLCJmaWVsZEVycnMiLCJub25GaWVsZEVycnMiLCJlcnIiLCJuZXdGaWVsZEVycnMiLCJuZXdOb25GaWVsZEVycnMiLCJkYXRhRXJyb3IiLCJlcnJvck1lc3NhZ2VzIiwidHJhdmVyc2VSb3dDb25maWdzIiwiUmVhY3QiLCJmaWVsZENvbmZpZyIsInBhdGhQcmVmaXgiLCJjb25maWdNYXAiLCJidWlsZEZpZWxkU2NoZW1hTWFwIiwicGF0aFNlZ21lbnQiLCJpc051bWJlciIsInBhcnNlSW50IiwicGFyZW50RmllbGRQYXRoIiwicmVtYWluaW5nUGF0aCIsImFycmF5RmllbGRQYXRoIiwicGFyZW50QXJyYXlGaWVsZCIsImdldEZpZWxkIiwicm93RmllbGQiLCJibG9ja1R5cGUiLCJibG9ja0NvbmZpZyIsIkVycm9yIiwiZ2V0Um93U2NoZW1hQnlQYXRoIiwicm93Q29uZmlnIiwicm93RmllbGRDb25maWdzIiwiZmllbGRLZXkiLCJhdCIsImFkZEZpZWxkUm93IiwicHJlZmVyZW5jZXMiLCJyb3dTY2hlbWEiLCJzdWJGaWVsZFN0YXRlIiwiYnVpbGRTdGF0ZUZyb21TY2hlbWEiLCJmaWVsZFNjaGVtYSIsInJlbW92ZUZpZWxkUm93IiwicmVwbGFjZUZpZWxkUm93IiwiZ2V0RmllbGRzIiwiZ2V0U2libGluZ0RhdGFGdW5jIiwiZ2V0RGF0YUJ5UGF0aEZ1bmMiLCJmaWxlIiwiZGF0YVdpdGhPdmVycmlkZXMiLCJkYXRhVG9TZXJpYWxpemUiLCJfcGF5bG9hZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzZXJpYWxpemUiLCJpbmRpY2VzIiwibnVsbHNBc1VuZGVmaW5lZHMiLCJyZXNldCIsImluaXRDb250ZXh0U3RhdGUiLCJyZXBsYWNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJidWlsdFN0YXRlIiwidXNlVGhyb3R0bGVkRWZmZWN0IiwiY2xhc3NlcyIsImZpbHRlciIsIkJvb2xlYW4iLCJmb3JtIiwibm9WYWxpZGF0ZSIsInJlZiIsIkZvcm1Db250ZXh0IiwiUHJvdmlkZXIiLCJGb3JtV2F0Y2hDb250ZXh0IiwiU3VibWl0dGVkQ29udGV4dCIsIlByb2Nlc3NpbmdDb250ZXh0IiwiTW9kaWZpZWRDb250ZXh0IiwiRm9ybUZpZWxkc0NvbnRleHQiLCJXYXRjaEZvcm1FcnJvcnMiXSwibWFwcGluZ3MiOiJBQUFBLGtFQUFrRTs7OzsrQkFvckJsRTs7O2VBQUE7OztrRUFuckJ3QjtrQ0FDRTsrREFDa0Q7OEJBQzdDO2dDQUNKOytCQUNMOzBCQWFHOzhCQUNJO3dDQUNVOzZEQUN0QjtxQkFDUTsyRUFDTTtzQkFDUDt3QkFDRTs4QkFDTTt3QkFDTjttQ0FDRztpQ0FDRztxQ0FDSTswRUFDTjs2RUFDRzt5QkFRMUI7c0VBQ21COzhCQUNHO3NFQUNDO3VFQUNDO3lFQUNGOzZFQUNJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVqQyxNQUFNQSxZQUFZO0FBRWxCLE1BQU1DLE9BQXdCLENBQUNDO0lBQzdCLE1BQU0sRUFBRUMsRUFBRSxFQUFFQyxVQUFVLEVBQUVDLGlCQUFpQixFQUFFQyxNQUFNLEVBQUUsR0FBR0MsSUFBQUEsNkJBQWU7SUFFckUsTUFBTSxFQUNKQyxNQUFNLEVBQ05DLFFBQVEsRUFDUkMsU0FBUyxFQUNUQyxvQkFBb0IsRUFDcEJDLFFBQVEsRUFDUkMsUUFBUUMsa0JBQWtCVixZQUFZUyxVQUFVUCxRQUFRTyxNQUFNLEVBQzlERSxjQUFjLEVBQ2RDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxNQUFNLEVBQ05DLFFBQVEsRUFDUkMsU0FBUyxFQUNUQyxRQUFRLEVBQ1JDLFdBQVdDLGtCQUFrQixFQUM3QkMsbUJBQW1CLEVB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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Data, Fields } from './types';
|
|
2
|
+
type ReturnType = {
|
|
3
|
+
data: Data;
|
|
4
|
+
valid: boolean;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Reduce flattened form fields (Fields) to just map to the respective values instead of the full FormField object
|
|
8
|
+
*
|
|
9
|
+
* @param unflatten This also unflattens the data if `unflatten` is true. The unflattened data should match the original data structure
|
|
10
|
+
* @param ignoreDisableFormData - if true, will include fields that have `disableFormData` set to true, for example, blocks or arrays fields.
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
export declare const reduceFieldsToValuesWithValidation: (fields: Fields, unflatten?: boolean, ignoreDisableFormData?: boolean) => ReturnType;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=reduceFieldsToValuesWithValidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reduceFieldsToValuesWithValidation.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/forms/Form/reduceFieldsToValuesWithValidation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAG3C,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC,WACrC,MAAM,cACF,OAAO,0BACK,OAAO,KAC9B,UAoBF,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "reduceFieldsToValuesWithValidation", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return reduceFieldsToValuesWithValidation;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _flatley = /*#__PURE__*/ _interop_require_default(require("flatley"));
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
|
+
return obj && obj.__esModule ? obj : {
|
|
14
|
+
default: obj
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const { unflatten: flatleyUnflatten } = _flatley.default;
|
|
18
|
+
const reduceFieldsToValuesWithValidation = (fields, unflatten, ignoreDisableFormData)=>{
|
|
19
|
+
const state = {
|
|
20
|
+
data: {},
|
|
21
|
+
valid: true
|
|
22
|
+
};
|
|
23
|
+
if (!fields) return state;
|
|
24
|
+
Object.keys(fields).forEach((key)=>{
|
|
25
|
+
if (ignoreDisableFormData === true || !fields[key]?.disableFormData) {
|
|
26
|
+
state.data[key] = fields[key]?.value;
|
|
27
|
+
if (!fields[key].valid) state.valid = false;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
if (unflatten) {
|
|
31
|
+
state.data = flatleyUnflatten(state.data, {
|
|
32
|
+
safe: true
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return state;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vcmVkdWNlRmllbGRzVG9WYWx1ZXNXaXRoVmFsaWRhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmxhdGxleUltcG9ydCBmcm9tICdmbGF0bGV5J1xuXG5pbXBvcnQgdHlwZSB7IERhdGEsIEZpZWxkcyB9IGZyb20gJy4vdHlwZXMnXG5jb25zdCB7IHVuZmxhdHRlbjogZmxhdGxleVVuZmxhdHRlbiB9ID0gZmxhdGxleUltcG9ydFxuXG50eXBlIFJldHVyblR5cGUgPSB7XG4gIGRhdGE6IERhdGFcbiAgdmFsaWQ6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBSZWR1Y2UgZmxhdHRlbmVkIGZvcm0gZmllbGRzIChGaWVsZHMpIHRvIGp1c3QgbWFwIHRvIHRoZSByZXNwZWN0aXZlIHZhbHVlcyBpbnN0ZWFkIG9mIHRoZSBmdWxsIEZvcm1GaWVsZCBvYmplY3RcbiAqXG4gKiBAcGFyYW0gdW5mbGF0dGVuIFRoaXMgYWxzbyB1bmZsYXR0ZW5zIHRoZSBkYXRhIGlmIGB1bmZsYXR0ZW5gIGlzIHRydWUuIFRoZSB1bmZsYXR0ZW5lZCBkYXRhIHNob3VsZCBtYXRjaCB0aGUgb3JpZ2luYWwgZGF0YSBzdHJ1Y3R1cmVcbiAqIEBwYXJhbSBpZ25vcmVEaXNhYmxlRm9ybURhdGEgLSBpZiB0cnVlLCB3aWxsIGluY2x1ZGUgZmllbGRzIHRoYXQgaGF2ZSBgZGlzYWJsZUZvcm1EYXRhYCBzZXQgdG8gdHJ1ZSwgZm9yIGV4YW1wbGUsIGJsb2NrcyBvciBhcnJheXMgZmllbGRzLlxuICpcbiAqL1xuZXhwb3J0IGNvbnN0IHJlZHVjZUZpZWxkc1RvVmFsdWVzV2l0aFZhbGlkYXRpb24gPSAoXG4gIGZpZWxkczogRmllbGRzLFxuICB1bmZsYXR0ZW4/OiBib29sZWFuLFxuICBpZ25vcmVEaXNhYmxlRm9ybURhdGE/OiBib29sZWFuLFxuKTogUmV0dXJuVHlwZSA9PiB7XG4gIGNvbnN0IHN0YXRlOiBSZXR1cm5UeXBlID0ge1xuICAgIGRhdGE6IHt9LFxuICAgIHZhbGlkOiB0cnVlLFxuICB9XG5cbiAgaWYgKCFmaWVsZHMpIHJldHVybiBzdGF0ZVxuXG4gIE9iamVjdC5rZXlzKGZpZWxkcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgaWYgKGlnbm9yZURpc2FibGVGb3JtRGF0YSA9PT0gdHJ1ZSB8fCAhZmllbGRzW2tleV0/LmRpc2FibGVGb3JtRGF0YSkge1xuICAgICAgc3RhdGUuZGF0YVtrZXldID0gZmllbGRzW2tleV0/LnZhbHVlXG4gICAgICBpZiAoIWZpZWxkc1trZXldLnZhbGlkKSBzdGF0ZS52YWxpZCA9IGZhbHNlXG4gICAgfVxuICB9KVxuXG4gIGlmICh1bmZsYXR0ZW4pIHtcbiAgICBzdGF0ZS5kYXRhID0gZmxhdGxleVVuZmxhdHRlbihzdGF0ZS5kYXRhLCB7IHNhZmU6IHRydWUgfSlcbiAgfVxuXG4gIHJldHVybiBzdGF0ZVxufVxuIl0sIm5hbWVzIjpbInJlZHVjZUZpZWxkc1RvVmFsdWVzV2l0aFZhbGlkYXRpb24iLCJ1bmZsYXR0ZW4iLCJmbGF0bGV5VW5mbGF0dGVuIiwiZmxhdGxleUltcG9ydCIsImZpZWxkcyIsImlnbm9yZURpc2FibGVGb3JtRGF0YSIsInN0YXRlIiwiZGF0YSIsInZhbGlkIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJkaXNhYmxlRm9ybURhdGEiLCJ2YWx1ZSIsInNhZmUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBaUJhQTs7O2VBQUFBOzs7Z0VBakJhOzs7Ozs7QUFHMUIsTUFBTSxFQUFFQyxXQUFXQyxnQkFBZ0IsRUFBRSxHQUFHQyxnQkFBYTtBQWM5QyxNQUFNSCxxQ0FBcUMsQ0FDaERJLFFBQ0FILFdBQ0FJO0lBRUEsTUFBTUMsUUFBb0I7UUFDeEJDLE1BQU0sQ0FBQztRQUNQQyxPQUFPO0lBQ1Q7SUFFQSxJQUFJLENBQUNKLFFBQVEsT0FBT0U7SUFFcEJHLE9BQU9DLElBQUksQ0FBQ04sUUFBUU8sT0FBTyxDQUFDLENBQUNDO1FBQzNCLElBQUlQLDBCQUEwQixRQUFRLENBQUNELE1BQU0sQ0FBQ1EsSUFBSSxFQUFFQyxpQkFBaUI7WUFDbkVQLE1BQU1DLElBQUksQ0FBQ0ssSUFBSSxHQUFHUixNQUFNLENBQUNRLElBQUksRUFBRUU7WUFDL0IsSUFBSSxDQUFDVixNQUFNLENBQUNRLElBQUksQ0FBQ0osS0FBSyxFQUFFRixNQUFNRSxLQUFLLEdBQUc7UUFDeEM7SUFDRjtJQUVBLElBQUlQLFdBQVc7UUFDYkssTUFBTUMsSUFBSSxHQUFHTCxpQkFBaUJJLE1BQU1DLElBQUksRUFBRTtZQUFFUSxNQUFNO1FBQUs7SUFDekQ7SUFFQSxPQUFPVDtBQUNUIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/utilities/LanguageWrap/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,wBAAwB,CAAA;AAI/B,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/utilities/LanguageWrap/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,wBAAwB,CAAA;AAI/B,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAUjE,CAAA"}
|
|
@@ -24,9 +24,12 @@ const LanguageWrap = ({ children })=>{
|
|
|
24
24
|
const { i18n } = (0, _reacti18next.useTranslation)();
|
|
25
25
|
const currentLanguage = i18n?.language;
|
|
26
26
|
const isScriptLanguage = currentLanguage && scriptLanguages.includes(currentLanguage);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
if (isScriptLanguage) {
|
|
28
|
+
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
29
|
+
className: "script-language"
|
|
30
|
+
}, children);
|
|
31
|
+
}
|
|
32
|
+
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, children);
|
|
30
33
|
};
|
|
31
34
|
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL3V0aWxpdGllcy9MYW5ndWFnZVdyYXAvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcblxuaW1wb3J0ICcuLi8uLi8uLi9zY3NzL2FwcC5zY3NzJ1xuXG5jb25zdCBzY3JpcHRMYW5ndWFnZXMgPSBbJ2FyJywgJ2ZhJ11cblxuZXhwb3J0IGNvbnN0IExhbmd1YWdlV3JhcDogUmVhY3QuRkM8eyBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZSB9PiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgeyBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbigpXG4gIGNvbnN0IGN1cnJlbnRMYW5ndWFnZSA9IGkxOG4/
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL3V0aWxpdGllcy9MYW5ndWFnZVdyYXAvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcblxuaW1wb3J0ICcuLi8uLi8uLi9zY3NzL2FwcC5zY3NzJ1xuXG5jb25zdCBzY3JpcHRMYW5ndWFnZXMgPSBbJ2FyJywgJ2ZhJ11cblxuZXhwb3J0IGNvbnN0IExhbmd1YWdlV3JhcDogUmVhY3QuRkM8eyBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZSB9PiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgeyBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbigpXG4gIGNvbnN0IGN1cnJlbnRMYW5ndWFnZSA9IGkxOG4/Lmxhbmd1YWdlXG4gIGNvbnN0IGlzU2NyaXB0TGFuZ3VhZ2UgPSBjdXJyZW50TGFuZ3VhZ2UgJiYgc2NyaXB0TGFuZ3VhZ2VzLmluY2x1ZGVzKGN1cnJlbnRMYW5ndWFnZSlcblxuICBpZiAoaXNTY3JpcHRMYW5ndWFnZSkge1xuICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cInNjcmlwdC1sYW5ndWFnZVwiPntjaGlsZHJlbn08L2Rpdj5cbiAgfVxuXG4gIHJldHVybiA8UmVhY3QuRnJhZ21lbnQ+e2NoaWxkcmVufTwvUmVhY3QuRnJhZ21lbnQ+XG59XG4iXSwibmFtZXMiOlsiTGFuZ3VhZ2VXcmFwIiwic2NyaXB0TGFuZ3VhZ2VzIiwiY2hpbGRyZW4iLCJpMThuIiwidXNlVHJhbnNsYXRpb24iLCJjdXJyZW50TGFuZ3VhZ2UiLCJsYW5ndWFnZSIsImlzU2NyaXB0TGFuZ3VhZ2UiLCJpbmNsdWRlcyIsImRpdiIsImNsYXNzTmFtZSIsIlJlYWN0IiwiRnJhZ21lbnQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBT2FBOzs7ZUFBQUE7Ozs4REFQSzs4QkFDYTtRQUV4Qjs7Ozs7O0FBRVAsTUFBTUMsa0JBQWtCO0lBQUM7SUFBTTtDQUFLO0FBRTdCLE1BQU1ELGVBQXlELENBQUMsRUFBRUUsUUFBUSxFQUFFO0lBQ2pGLE1BQU0sRUFBRUMsSUFBSSxFQUFFLEdBQUdDLElBQUFBLDRCQUFjO0lBQy9CLE1BQU1DLGtCQUFrQkYsTUFBTUc7SUFDOUIsTUFBTUMsbUJBQW1CRixtQkFBbUJKLGdCQUFnQk8sUUFBUSxDQUFDSDtJQUVyRSxJQUFJRSxrQkFBa0I7UUFDcEIscUJBQU8sNkJBQUNFO1lBQUlDLFdBQVU7V0FBbUJSO0lBQzNDO0lBRUEscUJBQU8sNkJBQUNTLGNBQUssQ0FBQ0MsUUFBUSxRQUFFVjtBQUMxQiJ9
|
|
@@ -181,7 +181,7 @@ const VersionView = ({ collection, global })=>{
|
|
|
181
181
|
if (!formattedPublished || !formattedDraft) return;
|
|
182
182
|
const publishedNewerThanDraft = formattedPublished?.updatedAt > formattedDraft?.updatedAt;
|
|
183
183
|
setLatestDraftVersion(publishedNewerThanDraft ? undefined : formattedDraft?.id);
|
|
184
|
-
setLatestPublishedVersion(formattedPublished?.id);
|
|
184
|
+
setLatestPublishedVersion(formattedPublished.latest ? formattedPublished?.id : undefined);
|
|
185
185
|
}, [
|
|
186
186
|
draft,
|
|
187
187
|
published
|
|
@@ -343,4 +343,4 @@ const VersionView = ({ collection, global })=>{
|
|
|
343
343
|
};
|
|
344
344
|
const _default = VersionView;
|
|
345
345
|
|
|
346
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL3ZpZXdzL1ZlcnNpb24vVmVyc2lvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IHVzZVJvdXRlTWF0Y2ggfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJ1xuXG5pbXBvcnQgdHlwZSB7IEZpZWxkUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9hdXRoJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgRmllbGRBZmZlY3RpbmdEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgT3B0aW9uIH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvUmVhY3RTZWxlY3QvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFN0ZXBOYXZJdGVtIH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvU3RlcE5hdi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ29tcGFyZU9wdGlvbiwgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2dldFRyYW5zbGF0aW9uJ1xuaW1wb3J0IHVzZVBheWxvYWRBUEkgZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUGF5bG9hZEFQSSdcbmltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvZm9ybWF0RGF0ZSdcbmltcG9ydCB7IEd1dHRlciB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL0d1dHRlcidcbmltcG9ydCB7IHVzZVN0ZXBOYXYgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9TdGVwTmF2J1xuaW1wb3J0IHsgdXNlQWN0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9BY3Rpb25zUHJvdmlkZXInXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0F1dGgnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvQ29uZmlnJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0RvY3VtZW50SW5mbydcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9Mb2NhbGUnXG5pbXBvcnQgTWV0YSBmcm9tICcuLi8uLi91dGlsaXRpZXMvTWV0YSdcbmltcG9ydCBOb3RGb3VuZCBmcm9tICcuLi9Ob3RGb3VuZCdcbmltcG9ydCBDb21wYXJlVmVyc2lvbiBmcm9tICcuL0NvbXBhcmUnXG5pbXBvcnQgUmVuZGVyRmllbGRzVG9EaWZmIGZyb20gJy4vUmVuZGVyRmllbGRzVG9EaWZmJ1xuaW1wb3J0IGZpZWxkQ29tcG9uZW50cyBmcm9tICcuL1JlbmRlckZpZWxkc1RvRGlmZi9maWVsZHMnXG5pbXBvcnQgUmVzdG9yZSBmcm9tICcuL1Jlc3RvcmUnXG5pbXBvcnQgU2VsZWN0TG9jYWxlcyBmcm9tICcuL1NlbGVjdExvY2FsZXMnXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ3ZpZXctdmVyc2lvbidcblxuY29uc3QgVmVyc2lvblZpZXc6IFJlYWN0LkZDPFByb3BzPiA9ICh7IGNvbGxlY3Rpb24sIGdsb2JhbCB9KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBhZG1pbjogeyBkYXRlRm9ybWF0IH0sXG4gICAgbG9jYWxpemF0aW9uLFxuICAgIHJvdXRlczogeyBhZG1pbiwgYXBpIH0sXG4gICAgc2VydmVyVVJMLFxuICB9ID0gdXNlQ29uZmlnKClcbiAgY29uc3QgeyBzZXRTdGVwTmF2IH0gPSB1c2VTdGVwTmF2KClcblxuICBjb25zdCB7IHNldFZpZXdBY3Rpb25zIH0gPSB1c2VBY3Rpb25zKClcblxuICBjb25zdCB7XG4gICAgcGFyYW1zOiB7IGlkLCB2ZXJzaW9uSUQgfSxcbiAgfSA9IHVzZVJvdXRlTWF0Y2g8eyBpZD86IHN0cmluZzsgdmVyc2lvbklEOiBzdHJpbmcgfT4oKVxuXG4gIGNvbnN0IFtjb21wYXJlVmFsdWUsIHNldENvbXBhcmVWYWx1ZV0gPSB1c2VTdGF0ZTxDb21wYXJlT3B0aW9uPigpXG4gIGNvbnN0IFtsb2NhbGVPcHRpb25zXSA9IHVzZVN0YXRlPE9wdGlvbltdPigoKSA9PiB7XG4gICAgaWYgKGxvY2FsaXphdGlvbiAmJiBsb2NhbGl6YXRpb24/LmxvY2FsZXMpIHtcbiAgICAgIHJldHVybiBsb2NhbGl6YXRpb24ubG9jYWxlcy5tYXAoKHsgY29kZSwgbGFiZWwgfSkgPT4gKHtcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIHZhbHVlOiBjb2RlLFxuICAgICAgfSkpXG4gICAgfVxuICAgIHJldHVybiBbXVxuICB9KVxuICBjb25zdCBbbG9jYWxlcywgc2V0TG9jYWxlc10gPSB1c2VTdGF0ZTxPcHRpb25bXT4obG9jYWxlT3B0aW9ucylcbiAgY29uc3QgeyBwZXJtaXNzaW9ucyB9ID0gdXNlQXV0aCgpXG4gIGNvbnN0IHsgY29kZTogbG9jYWxlIH0gPSB1c2VMb2NhbGUoKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKCd2ZXJzaW9uJylcbiAgY29uc3QgeyBkb2NQZXJtaXNzaW9ucyB9ID0gdXNlRG9jdW1lbnRJbmZvKClcblxuICBsZXQgb3JpZ2luYWxEb2NGZXRjaFVSTDogc3RyaW5nXG4gIGxldCB2ZXJzaW9uRmV0Y2hVUkw6IHN0cmluZ1xuICBsZXQgZW50aXR5TGFiZWw6IHN0cmluZ1xuICBsZXQgZmllbGRzOiBGaWVsZFtdXG4gIGxldCBmaWVsZFBlcm1pc3Npb25zOiBSZWNvcmQ8c3RyaW5nLCBGaWVsZFBlcm1pc3Npb25zPlxuICBsZXQgY29tcGFyZUJhc2VVUkw6IHN0cmluZ1xuICBsZXQgc2x1Zzogc3RyaW5nXG4gIGxldCBwYXJlbnRJRDogc3RyaW5nXG4gIGNvbnN0IFtsYXRlc3REcmFmdFZlcnNpb24sIHNldExhdGVzdERyYWZ0VmVyc2lvbl0gPSB1c2VTdGF0ZSh1bmRlZmluZWQpXG4gIGNvbnN0IFtsYXRlc3RQdWJsaXNoZWRWZXJzaW9uLCBzZXRMYXRlc3RQdWJsaXNoZWRWZXJzaW9uXSA9IHVzZVN0YXRlKHVuZGVmaW5lZClcblxuICBpZiAoY29sbGVjdGlvbikge1xuICAgIDsoeyBzbHVnIH0gPSBjb2xsZWN0aW9uKVxuICAgIG9yaWdpbmFsRG9jRmV0Y2hVUkwgPSBgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7c2x1Z30vJHtpZH1gXG4gICAgdmVyc2lvbkZldGNoVVJMID0gYCR7c2VydmVyVVJMfSR7YXBpfS8ke3NsdWd9L3ZlcnNpb25zLyR7dmVyc2lvbklEfWBcbiAgICBjb21wYXJlQmFzZVVSTCA9IGAke3NlcnZlclVSTH0ke2FwaX0vJHtzbHVnfS92ZXJzaW9uc2BcbiAgICBlbnRpdHlMYWJlbCA9IGdldFRyYW5zbGF0aW9uKGNvbGxlY3Rpb24ubGFiZWxzLnNpbmd1bGFyLCBpMThuKVxuICAgIHBhcmVudElEID0gaWRcbiAgICBmaWVsZHMgPSBjb2xsZWN0aW9uLmZpZWxkc1xuICAgIGZpZWxkUGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucy5jb2xsZWN0aW9uc1tjb2xsZWN0aW9uLnNsdWddLmZpZWxkc1xuICB9XG5cbiAgaWYgKGdsb2JhbCkge1xuICAgIDsoeyBzbHVnIH0gPSBnbG9iYWwpXG4gICAgb3JpZ2luYWxEb2NGZXRjaFVSTCA9IGAke3NlcnZlclVSTH0ke2FwaX0vZ2xvYmFscy8ke3NsdWd9YFxuICAgIHZlcnNpb25GZXRjaFVSTCA9IGAke3NlcnZlclVSTH0ke2FwaX0vZ2xvYmFscy8ke3NsdWd9L3ZlcnNpb25zLyR7dmVyc2lvbklEfWBcbiAgICBjb21wYXJlQmFzZVVSTCA9IGAke3NlcnZlclVSTH0ke2FwaX0vZ2xvYmFscy8ke3NsdWd9L3ZlcnNpb25zYFxuICAgIGVudGl0eUxhYmVsID0gZ2V0VHJhbnNsYXRpb24oZ2xvYmFsLmxhYmVsLCBpMThuKVxuICAgIGZpZWxkcyA9IGdsb2JhbC5maWVsZHNcbiAgICBmaWVsZFBlcm1pc3Npb25zID0gcGVybWlzc2lvbnMuZ2xvYmFsc1tnbG9iYWwuc2x1Z10uZmllbGRzXG4gIH1cblxuICBjb25zdCBjb21wYXJlRmV0Y2hVUkwgPSBjb21wYXJlVmFsdWU/LnZhbHVlICYmIGAke2NvbXBhcmVCYXNlVVJMfS8ke2NvbXBhcmVWYWx1ZS52YWx1ZX1gXG5cbiAgY29uc3QgW3sgZGF0YTogZG9jLCBpc0Vycm9yIH1dID0gdXNlUGF5bG9hZEFQSSh2ZXJzaW9uRmV0Y2hVUkwsIHtcbiAgICBpbml0aWFsUGFyYW1zOiB7IGRlcHRoOiAxLCBsb2NhbGU6ICcqJyB9LFxuICB9KVxuICBjb25zdCBbeyBkYXRhOiBwdWJsaXNoZWREb2MgfV0gPSB1c2VQYXlsb2FkQVBJKG9yaWdpbmFsRG9jRmV0Y2hVUkwsIHtcbiAgICBpbml0aWFsUGFyYW1zOiB7IGRlcHRoOiAxLCBsb2NhbGU6ICcqJyB9LFxuICB9KVxuICBjb25zdCBbeyBkYXRhOiBtb3N0UmVjZW50RG9jIH1dID0gdXNlUGF5bG9hZEFQSShvcmlnaW5hbERvY0ZldGNoVVJMLCB7XG4gICAgaW5pdGlhbFBhcmFtczogeyBkZXB0aDogMSwgZHJhZnQ6IHRydWUsIGxvY2FsZTogJyonIH0sXG4gIH0pXG4gIGNvbnN0IFt7IGRhdGE6IGNvbXBhcmVEb2MgfV0gPSB1c2VQYXlsb2FkQVBJKGNvbXBhcmVGZXRjaFVSTCwge1xuICAgIGluaXRpYWxQYXJhbXM6IHsgZGVwdGg6IDEsIGRyYWZ0OiAndHJ1ZScsIGxvY2FsZTogJyonIH0sXG4gIH0pXG5cbiAgY29uc3Qgc2hhcmVkUGFyYW1zID0gKHN0YXR1cykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBkZXB0aDogMCxcbiAgICAgIGxpbWl0OiAxLFxuICAgICAgc29ydDogJy11cGRhdGVkQXQnLFxuICAgICAgd2hlcmU6IHtcbiAgICAgICAgJ3ZlcnNpb24uX3N0YXR1cyc6IHtcbiAgICAgICAgICBlcXVhbHM6IHN0YXR1cyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG5cbiAgY29uc3QgW3sgZGF0YTogZHJhZnQgfV0gPSB1c2VQYXlsb2FkQVBJKGNvbXBhcmVCYXNlVVJMLCB7XG4gICAgaW5pdGlhbFBhcmFtczogeyAuLi5zaGFyZWRQYXJhbXMoJ2RyYWZ0JykgfSxcbiAgfSlcblxuICBjb25zdCBbeyBkYXRhOiBwdWJsaXNoZWQgfV0gPSB1c2VQYXlsb2FkQVBJKGNvbXBhcmVCYXNlVVJMLCB7XG4gICAgaW5pdGlhbFBhcmFtczogeyAuLi5zaGFyZWRQYXJhbXMoJ3B1Ymxpc2hlZCcpIH0sXG4gIH0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmb3JtYXR0ZWRQdWJsaXNoZWQgPSBwdWJsaXNoZWQ/LmRvY3M/Lmxlbmd0aCA+IDAgJiYgcHVibGlzaGVkPy5kb2NzWzBdXG4gICAgY29uc3QgZm9ybWF0dGVkRHJhZnQgPSBkcmFmdD8uZG9jcz8ubGVuZ3RoID4gMCAmJiBkcmFmdD8uZG9jc1swXVxuXG4gICAgaWYgKCFmb3JtYXR0ZWRQdWJsaXNoZWQgfHwgIWZvcm1hdHRlZERyYWZ0KSByZXR1cm5cblxuICAgIGNvbnN0IHB1Ymxpc2hlZE5ld2VyVGhhbkRyYWZ0ID0gZm9ybWF0dGVkUHVibGlzaGVkPy51cGRhdGVkQXQgPiBmb3JtYXR0ZWREcmFmdD8udXBkYXRlZEF0XG5cbiAgICBzZXRMYXRlc3REcmFmdFZlcnNpb24ocHVibGlzaGVkTmV3ZXJUaGFuRHJhZnQgPyB1bmRlZmluZWQgOiBmb3JtYXR0ZWREcmFmdD8uaWQpXG4gICAgc2V0TGF0ZXN0UHVibGlzaGVkVmVyc2lvbihmb3JtYXR0ZWRQdWJsaXNoZWQ/LmlkKVxuICB9LCBbZHJhZnQsIHB1Ymxpc2hlZF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgbmF2OiBTdGVwTmF2SXRlbVtdID0gW11cblxuICAgIGlmIChjb2xsZWN0aW9uKSB7XG4gICAgICBsZXQgZG9jTGFiZWwgPSAnJ1xuXG4gICAgICBpZiAobW9zdFJlY2VudERvYykge1xuICAgICAgICBjb25zdCB7IHVzZUFzVGl0bGUgfSA9IGNvbGxlY3Rpb24uYWRtaW5cblxuICAgICAgICBpZiAodXNlQXNUaXRsZSAhPT0gJ2lkJykge1xuICAgICAgICAgIGNvbnN0IHRpdGxlRmllbGQgPSBjb2xsZWN0aW9uLmZpZWxkcy5maW5kKFxuICAgICAgICAgICAgKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSB1c2VBc1RpdGxlLFxuICAgICAgICAgICkgYXMgRmllbGRBZmZlY3RpbmdEYXRhXG5cbiAgICAgICAgICBpZiAodGl0bGVGaWVsZCAmJiBtb3N0UmVjZW50RG9jW3VzZUFzVGl0bGVdKSB7XG4gICAgICAgICAgICBpZiAodGl0bGVGaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgZG9jTGFiZWwgPSBtb3N0UmVjZW50RG9jW3VzZUFzVGl0bGVdPy5bbG9jYWxlXVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZG9jTGFiZWwgPSBtb3N0UmVjZW50RG9jW3VzZUFzVGl0bGVdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvY0xhYmVsID0gYFske3QoJ2dlbmVyYWw6dW50aXRsZWQnKX1dYFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkb2NMYWJlbCA9IG1vc3RSZWNlbnREb2MuaWRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBuYXYgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogZ2V0VHJhbnNsYXRpb24oY29sbGVjdGlvbi5sYWJlbHMucGx1cmFsLCBpMThuKSxcbiAgICAgICAgICB1cmw6IGAke2FkbWlufS9jb2xsZWN0aW9ucy8ke2NvbGxlY3Rpb24uc2x1Z31gLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IGRvY0xhYmVsLFxuICAgICAgICAgIHVybDogYCR7YWRtaW59L2NvbGxlY3Rpb25zLyR7Y29sbGVjdGlvbi5zbHVnfS8ke2lkfWAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ1ZlcnNpb25zJyxcbiAgICAgICAgICB1cmw6IGAke2FkbWlufS9jb2xsZWN0aW9ucy8ke2NvbGxlY3Rpb24uc2x1Z30vJHtpZH0vdmVyc2lvbnNgLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IGRvYz8uY3JlYXRlZEF0ID8gZm9ybWF0RGF0ZShkb2MuY3JlYXRlZEF0LCBkYXRlRm9ybWF0LCBpMThuPy5sYW5ndWFnZSkgOiAnJyxcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICB9XG5cbiAgICBpZiAoZ2xvYmFsKSB7XG4gICAgICBuYXYgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogZ2xvYmFsLmxhYmVsLFxuICAgICAgICAgIHVybDogYCR7YWRtaW59L2dsb2JhbHMvJHtnbG9iYWwuc2x1Z31gLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdWZXJzaW9ucycsXG4gICAgICAgICAgdXJsOiBgJHthZG1pbn0vZ2xvYmFscy8ke2dsb2JhbC5zbHVnfS92ZXJzaW9uc2AsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogZG9jPy5jcmVhdGVkQXQgPyBmb3JtYXREYXRlKGRvYy5jcmVhdGVkQXQsIGRhdGVGb3JtYXQsIGkxOG4/Lmxhbmd1YWdlKSA6ICcnLFxuICAgICAgICB9LFxuICAgICAgXVxuICAgIH1cblxuICAgIHNldFN0ZXBOYXYobmF2KVxuICB9LCBbc2V0U3RlcE5hdiwgY29sbGVjdGlvbiwgZ2xvYmFsLCBkYXRlRm9ybWF0LCBkb2MsIG1vc3RSZWNlbnREb2MsIGFkbWluLCBpZCwgbG9jYWxlLCB0LCBpMThuXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVkaXRDb25maWcgPSAoY29sbGVjdGlvbiB8fCBnbG9iYWwpPy5hZG1pbj8uY29tcG9uZW50cz8udmlld3M/LkVkaXRcbiAgICBjb25zdCB2ZXJzaW9uQWN0aW9ucyA9XG4gICAgICBlZGl0Q29uZmlnICYmICdWZXJzaW9uJyBpbiBlZGl0Q29uZmlnICYmICdhY3Rpb25zJyBpbiBlZGl0Q29uZmlnLlZlcnNpb25cbiAgICAgICAgPyBlZGl0Q29uZmlnLlZlcnNpb24uYWN0aW9uc1xuICAgICAgICA6IFtdXG5cbiAgICBzZXRWaWV3QWN0aW9ucyh2ZXJzaW9uQWN0aW9ucylcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBzZXRWaWV3QWN0aW9ucyhbXSlcbiAgICB9XG4gIH0sIFtjb2xsZWN0aW9uLCBnbG9iYWwsIHNldFZpZXdBY3Rpb25zXSlcblxuICBsZXQgbWV0YVRpdGxlOiBzdHJpbmdcbiAgbGV0IG1ldGFEZXNjOiBzdHJpbmdcbiAgY29uc3QgdmVyc2lvbkNyZWF0ZWRBdCA9IGRvYz8udXBkYXRlZEF0XG4gICAgPyBmb3JtYXREYXRlKGRvYy51cGRhdGVkQXQsIGRhdGVGb3JtYXQsIGkxOG4/Lmxhbmd1YWdlKVxuICAgIDogJydcblxuICBpZiAoY29sbGVjdGlvbikge1xuICAgIGNvbnN0IHVzZUFzVGl0bGUgPSBjb2xsZWN0aW9uPy5hZG1pbj8udXNlQXNUaXRsZSB8fCAnaWQnXG4gICAgbWV0YVRpdGxlID0gYCR7dCgndmVyc2lvbicpfSAtICR7dmVyc2lvbkNyZWF0ZWRBdH0gLSAke2RvY1t1c2VBc1RpdGxlXX0gLSAke2VudGl0eUxhYmVsfWBcbiAgICBtZXRhRGVzYyA9IHQoJ3ZpZXdpbmdWZXJzaW9uJywgeyBkb2N1bWVudFRpdGxlOiBkb2NbdXNlQXNUaXRsZV0sIGVudGl0eUxhYmVsIH0pXG4gIH1cblxuICBpZiAoZ2xvYmFsKSB7XG4gICAgbWV0YVRpdGxlID0gYCR7dCgndmVyc2lvbicpfSAtICR7dmVyc2lvbkNyZWF0ZWRBdH0gLSAke2VudGl0eUxhYmVsfWBcbiAgICBtZXRhRGVzYyA9IHQoJ3ZpZXdpbmdWZXJzaW9uR2xvYmFsJywgeyBlbnRpdHlMYWJlbCB9KVxuICB9XG5cbiAgbGV0IGNvbXBhcmlzb24gPSBjb21wYXJlRG9jPy52ZXJzaW9uXG5cbiAgaWYgKGNvbXBhcmVWYWx1ZT8udmFsdWUgPT09ICdtb3N0UmVjZW50Jykge1xuICAgIGNvbXBhcmlzb24gPSBtb3N0UmVjZW50RG9jXG4gIH1cblxuICBpZiAoY29tcGFyZVZhbHVlPy52YWx1ZSA9PT0gJ3B1Ymxpc2hlZCcpIHtcbiAgICBjb21wYXJpc29uID0gcHVibGlzaGVkRG9jXG4gIH1cblxuICBjb25zdCBjYW5VcGRhdGUgPSBkb2NQZXJtaXNzaW9ucz8udXBkYXRlPy5wZXJtaXNzaW9uXG5cbiAgaWYgKGlzRXJyb3IpIHtcbiAgICByZXR1cm4gPE5vdEZvdW5kIG1hcmdpblRvcD1cImxhcmdlXCIgLz5cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPG1haW4gY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAgPE1ldGEgZGVzY3JpcHRpb249e21ldGFEZXNjfSB0aXRsZT17bWV0YVRpdGxlfSAvPlxuICAgICAgPEd1dHRlciBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3dyYXBgfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2hlYWRlci13cmFwYH0+XG4gICAgICAgICAgPHAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jcmVhdGVkLWF0YH0+XG4gICAgICAgICAgICB7dCgndmVyc2lvbkNyZWF0ZWRPbicsIHtcbiAgICAgICAgICAgICAgdmVyc2lvbjogdChkb2M/LmF1dG9zYXZlID8gJ2F1dG9zYXZlZFZlcnNpb24nIDogJ3ZlcnNpb24nKSxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8aGVhZGVyIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGVyYH0+XG4gICAgICAgICAgICA8aDI+e3ZlcnNpb25DcmVhdGVkQXR9PC9oMj5cbiAgICAgICAgICAgIHtjYW5VcGRhdGUgJiYgKFxuICAgICAgICAgICAgICA8UmVzdG9yZVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVzdG9yZWB9XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICAgICAgICBnbG9iYWw9e2dsb2JhbH1cbiAgICAgICAgICAgICAgICBvcmlnaW5hbERvY0lEPXtpZH1cbiAgICAgICAgICAgICAgICB2ZXJzaW9uRGF0ZT17dmVyc2lvbkNyZWF0ZWRBdH1cbiAgICAgICAgICAgICAgICB2ZXJzaW9uSUQ9e3ZlcnNpb25JRH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY29udHJvbHNgfT5cbiAgICAgICAgICA8Q29tcGFyZVZlcnNpb25cbiAgICAgICAgICAgIGJhc2VVUkw9e2NvbXBhcmVCYXNlVVJMfVxuICAgICAgICAgICAgbGF0ZXN0RHJhZnRWZXJzaW9uPXtsYXRlc3REcmFmdFZlcnNpb259XG4gICAgICAgICAgICBsYXRlc3RQdWJsaXNoZWRWZXJzaW9uPXtsYXRlc3RQdWJsaXNoZWRWZXJzaW9ufVxuICAgICAgICAgICAgb25DaGFuZ2U9e3NldENvbXBhcmVWYWx1ZX1cbiAgICAgICAgICAgIHBhcmVudElEPXtwYXJlbnRJRH1cbiAgICAgICAgICAgIHZhbHVlPXtjb21wYXJlVmFsdWV9XG4gICAgICAgICAgICB2ZXJzaW9uSUQ9e3ZlcnNpb25JRH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtsb2NhbGl6YXRpb24gJiYgKFxuICAgICAgICAgICAgPFNlbGVjdExvY2FsZXMgb25DaGFuZ2U9e3NldExvY2FsZXN9IG9wdGlvbnM9e2xvY2FsZU9wdGlvbnN9IHZhbHVlPXtsb2NhbGVzfSAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHtkb2M/LnZlcnNpb24gJiYgKFxuICAgICAgICAgIDxSZW5kZXJGaWVsZHNUb0RpZmZcbiAgICAgICAgICAgIGNvbXBhcmlzb249e2NvbXBhcmlzb259XG4gICAgICAgICAgICBmaWVsZENvbXBvbmVudHM9e2ZpZWxkQ29tcG9uZW50c31cbiAgICAgICAgICAgIGZpZWxkUGVybWlzc2lvbnM9e2ZpZWxkUGVybWlzc2lvbnN9XG4gICAgICAgICAgICBmaWVsZHM9e2ZpZWxkc31cbiAgICAgICAgICAgIGxvY2FsZXM9e1xuICAgICAgICAgICAgICBsb2NhbGVzXG4gICAgICAgICAgICAgICAgPyBsb2NhbGVzLm1hcCgoeyBsYWJlbCB9KSA9PiAodHlwZW9mIGxhYmVsID09PSAnc3RyaW5nJyA/IGxhYmVsIDogdW5kZWZpbmVkKSlcbiAgICAgICAgICAgICAgICA6IFtdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2ZXJzaW9uPXtkb2M/LnZlcnNpb259XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvR3V0dGVyPlxuICAgIDwvbWFpbj5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBWZXJzaW9uVmlld1xuIl0sIm5hbWVzIjpbImJhc2VDbGFzcyIsIlZlcnNpb25WaWV3IiwiY29sbGVjdGlvbiIsImdsb2JhbCIsImFkbWluIiwiZGF0ZUZvcm1hdCIsImxvY2FsaXphdGlvbiIsInJvdXRlcyIsImFwaSIsInNlcnZlclVSTCIsInVzZUNvbmZpZyIsInNldFN0ZXBOYXYiLCJ1c2VTdGVwTmF2Iiwic2V0Vmlld0FjdGlvbnMiLCJ1c2VBY3Rpb25zIiwicGFyYW1zIiwiaWQiLCJ2ZXJzaW9uSUQiLCJ1c2VSb3V0ZU1hdGNoIiwiY29tcGFyZVZhbHVlIiwic2V0Q29tcGFyZVZhbHVlIiwidXNlU3RhdGUiLCJsb2NhbGVPcHRpb25zIiwibG9jYWxlcyIsIm1hcCIsImNvZGUiLCJsYWJlbCIsInZhbHVlIiwic2V0TG9jYWxlcyIsInBlcm1pc3Npb25zIiwidXNlQXV0aCIsImxvY2FsZSIsInVzZUxvY2FsZSIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJkb2NQZXJtaXNzaW9ucyIsInVzZURvY3VtZW50SW5mbyIsIm9yaWdpbmFsRG9jRmV0Y2hVUkwiLCJ2ZXJzaW9uRmV0Y2hVUkwiLCJlbnRpdHlMYWJlbCIsImZpZWxkcyIsImZpZWxkUGVybWlzc2lvbnMiLCJjb21wYXJlQmFzZVVSTCIsInNsdWciLCJwYXJlbnRJRCIsImxhdGVzdERyYWZ0VmVyc2lvbiIsInNldExhdGVzdERyYWZ0VmVyc2lvbiIsInVuZGVmaW5lZCIsImxhdGVzdFB1Ymxpc2hlZFZlcnNpb24iLCJzZXRMYXRlc3RQdWJsaXNoZWRWZXJzaW9uIiwiZ2V0VHJhbnNsYXRpb24iLCJsYWJlbHMiLCJzaW5ndWxhciIsImNvbGxlY3Rpb25zIiwiZ2xvYmFscyIsImNvbXBhcmVGZXRjaFVSTCIsImRhdGEiLCJkb2MiLCJpc0Vycm9yIiwidXNlUGF5bG9hZEFQSSIsImluaXRpYWxQYXJhbXMiLCJkZXB0aCIsInB1Ymxpc2hlZERvYyIsIm1vc3RSZWNlbnREb2MiLCJkcmFmdCIsImNvbXBhcmVEb2MiLCJzaGFyZWRQYXJhbXMiLCJzdGF0dXMiLCJsaW1pdCIsInNvcnQiLCJ3aGVyZSIsImVxdWFscyIsInB1Ymxpc2hlZCIsInVzZUVmZmVjdCIsImZvcm1hdHRlZFB1Ymxpc2hlZCIsImRvY3MiLCJsZW5ndGgiLCJmb3JtYXR0ZWREcmFmdCIsInB1Ymxpc2hlZE5ld2VyVGhhbkRyYWZ0IiwidXBkYXRlZEF0IiwibmF2IiwiZG9jTGFiZWwiLCJ1c2VBc1RpdGxlIiwidGl0bGVGaWVsZCIsImZpbmQiLCJmaWVsZCIsImZpZWxkQWZmZWN0c0RhdGEiLCJuYW1lIiwibG9jYWxpemVkIiwicGx1cmFsIiwidXJsIiwiY3JlYXRlZEF0IiwiZm9ybWF0RGF0ZSIsImxhbmd1YWdlIiwiZWRpdENvbmZpZyIsImNvbXBvbmVudHMiLCJ2aWV3cyIsIkVkaXQiLCJ2ZXJzaW9uQWN0aW9ucyIsIlZlcnNpb24iLCJhY3Rpb25zIiwibWV0YVRpdGxlIiwibWV0YURlc2MiLCJ2ZXJzaW9uQ3JlYXRlZEF0IiwiZG9jdW1lbnRUaXRsZSIsImNvbXBhcmlzb24iLCJ2ZXJzaW9uIiwiY2FuVXBkYXRlIiwidXBkYXRlIiwicGVybWlzc2lvbiIsIk5vdEZvdW5kIiwibWFyZ2luVG9wIiwibWFpbiIsImNsYXNzTmFtZSIsIk1ldGEiLCJkZXNjcmlwdGlvbiIsInRpdGxlIiwiR3V0dGVyIiwiZGl2IiwicCIsImF1dG9zYXZlIiwiaGVhZGVyIiwiaDIiLCJSZXN0b3JlIiwib3JpZ2luYWxEb2NJRCIsInZlcnNpb25EYXRlIiwiQ29tcGFyZVZlcnNpb24iLCJiYXNlVVJMIiwib25DaGFuZ2UiLCJTZWxlY3RMb2NhbGVzIiwib3B0aW9ucyIsIlJlbmRlckZpZWxkc1RvRGlmZiIsImZpZWxkQ29tcG9uZW50cyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEwVEE7OztlQUFBOzs7K0RBMVQyQzs4QkFDWjtnQ0FDRDt1QkFRRztnQ0FDRjtzRUFDTDs0QkFDQzt3QkFDSjt5QkFDSTtpQ0FDQTtzQkFDSDt3QkFDRTs4QkFDTTt3QkFDTjs2REFDVDtpRUFDSTtnRUFDTTsyRUFDSTsrREFDSDtnRUFDUjtzRUFDTTtRQUNuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQSxZQUFZO0FBRWxCLE1BQU1DLGNBQStCLENBQUMsRUFBRUMsVUFBVSxFQUFFQyxNQUFNLEVBQUU7SUFDMUQsTUFBTSxFQUNKQyxPQUFPLEVBQUVDLFVBQVUsRUFBRSxFQUNyQkMsWUFBWSxFQUNaQyxRQUFRLEVBQUVILEtBQUssRUFBRUksR0FBRyxFQUFFLEVBQ3RCQyxTQUFTLEVBQ1YsR0FBR0MsSUFBQUEsaUJBQVM7SUFDYixNQUFNLEVBQUVDLFVBQVUsRUFBRSxHQUFHQyxJQUFBQSxtQkFB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
|
|
346
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL3ZpZXdzL1ZlcnNpb24vVmVyc2lvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IHVzZVJvdXRlTWF0Y2ggfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJ1xuXG5pbXBvcnQgdHlwZSB7IEZpZWxkUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9hdXRoJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgRmllbGRBZmZlY3RpbmdEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgT3B0aW9uIH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvUmVhY3RTZWxlY3QvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFN0ZXBOYXZJdGVtIH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvU3RlcE5hdi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ29tcGFyZU9wdGlvbiwgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2dldFRyYW5zbGF0aW9uJ1xuaW1wb3J0IHVzZVBheWxvYWRBUEkgZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUGF5bG9hZEFQSSdcbmltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvZm9ybWF0RGF0ZSdcbmltcG9ydCB7IEd1dHRlciB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL0d1dHRlcidcbmltcG9ydCB7IHVzZVN0ZXBOYXYgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9TdGVwTmF2J1xuaW1wb3J0IHsgdXNlQWN0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9BY3Rpb25zUHJvdmlkZXInXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0F1dGgnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvQ29uZmlnJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0RvY3VtZW50SW5mbydcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9Mb2NhbGUnXG5pbXBvcnQgTWV0YSBmcm9tICcuLi8uLi91dGlsaXRpZXMvTWV0YSdcbmltcG9ydCBOb3RGb3VuZCBmcm9tICcuLi9Ob3RGb3VuZCdcbmltcG9ydCBDb21wYXJlVmVyc2lvbiBmcm9tICcuL0NvbXBhcmUnXG5pbXBvcnQgUmVuZGVyRmllbGRzVG9EaWZmIGZyb20gJy4vUmVuZGVyRmllbGRzVG9EaWZmJ1xuaW1wb3J0IGZpZWxkQ29tcG9uZW50cyBmcm9tICcuL1JlbmRlckZpZWxkc1RvRGlmZi9maWVsZHMnXG5pbXBvcnQgUmVzdG9yZSBmcm9tICcuL1Jlc3RvcmUnXG5pbXBvcnQgU2VsZWN0TG9jYWxlcyBmcm9tICcuL1NlbGVjdExvY2FsZXMnXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ3ZpZXctdmVyc2lvbidcblxuY29uc3QgVmVyc2lvblZpZXc6IFJlYWN0LkZDPFByb3BzPiA9ICh7IGNvbGxlY3Rpb24sIGdsb2JhbCB9KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBhZG1pbjogeyBkYXRlRm9ybWF0IH0sXG4gICAgbG9jYWxpemF0aW9uLFxuICAgIHJvdXRlczogeyBhZG1pbiwgYXBpIH0sXG4gICAgc2VydmVyVVJMLFxuICB9ID0gdXNlQ29uZmlnKClcbiAgY29uc3QgeyBzZXRTdGVwTmF2IH0gPSB1c2VTdGVwTmF2KClcblxuICBjb25zdCB7IHNldFZpZXdBY3Rpb25zIH0gPSB1c2VBY3Rpb25zKClcblxuICBjb25zdCB7XG4gICAgcGFyYW1zOiB7IGlkLCB2ZXJzaW9uSUQgfSxcbiAgfSA9IHVzZVJvdXRlTWF0Y2g8eyBpZD86IHN0cmluZzsgdmVyc2lvbklEOiBzdHJpbmcgfT4oKVxuXG4gIGNvbnN0IFtjb21wYXJlVmFsdWUsIHNldENvbXBhcmVWYWx1ZV0gPSB1c2VTdGF0ZTxDb21wYXJlT3B0aW9uPigpXG4gIGNvbnN0IFtsb2NhbGVPcHRpb25zXSA9IHVzZVN0YXRlPE9wdGlvbltdPigoKSA9PiB7XG4gICAgaWYgKGxvY2FsaXphdGlvbiAmJiBsb2NhbGl6YXRpb24/LmxvY2FsZXMpIHtcbiAgICAgIHJldHVybiBsb2NhbGl6YXRpb24ubG9jYWxlcy5tYXAoKHsgY29kZSwgbGFiZWwgfSkgPT4gKHtcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIHZhbHVlOiBjb2RlLFxuICAgICAgfSkpXG4gICAgfVxuICAgIHJldHVybiBbXVxuICB9KVxuICBjb25zdCBbbG9jYWxlcywgc2V0TG9jYWxlc10gPSB1c2VTdGF0ZTxPcHRpb25bXT4obG9jYWxlT3B0aW9ucylcbiAgY29uc3QgeyBwZXJtaXNzaW9ucyB9ID0gdXNlQXV0aCgpXG4gIGNvbnN0IHsgY29kZTogbG9jYWxlIH0gPSB1c2VMb2NhbGUoKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKCd2ZXJzaW9uJylcbiAgY29uc3QgeyBkb2NQZXJtaXNzaW9ucyB9ID0gdXNlRG9jdW1lbnRJbmZvKClcblxuICBsZXQgb3JpZ2luYWxEb2NGZXRjaFVSTDogc3RyaW5nXG4gIGxldCB2ZXJzaW9uRmV0Y2hVUkw6IHN0cmluZ1xuICBsZXQgZW50aXR5TGFiZWw6IHN0cmluZ1xuICBsZXQgZmllbGRzOiBGaWVsZFtdXG4gIGxldCBmaWVsZFBlcm1pc3Npb25zOiBSZWNvcmQ8c3RyaW5nLCBGaWVsZFBlcm1pc3Npb25zPlxuICBsZXQgY29tcGFyZUJhc2VVUkw6IHN0cmluZ1xuICBsZXQgc2x1Zzogc3RyaW5nXG4gIGxldCBwYXJlbnRJRDogc3RyaW5nXG4gIGNvbnN0IFtsYXRlc3REcmFmdFZlcnNpb24sIHNldExhdGVzdERyYWZ0VmVyc2lvbl0gPSB1c2VTdGF0ZSh1bmRlZmluZWQpXG4gIGNvbnN0IFtsYXRlc3RQdWJsaXNoZWRWZXJzaW9uLCBzZXRMYXRlc3RQdWJsaXNoZWRWZXJzaW9uXSA9IHVzZVN0YXRlKHVuZGVmaW5lZClcblxuICBpZiAoY29sbGVjdGlvbikge1xuICAgIDsoeyBzbHVnIH0gPSBjb2xsZWN0aW9uKVxuICAgIG9yaWdpbmFsRG9jRmV0Y2hVUkwgPSBgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7c2x1Z30vJHtpZH1gXG4gICAgdmVyc2lvbkZldGNoVVJMID0gYCR7c2VydmVyVVJMfSR7YXBpfS8ke3NsdWd9L3ZlcnNpb25zLyR7dmVyc2lvbklEfWBcbiAgICBjb21wYXJlQmFzZVVSTCA9IGAke3NlcnZlclVSTH0ke2FwaX0vJHtzbHVnfS92ZXJzaW9uc2BcbiAgICBlbnRpdHlMYWJlbCA9IGdldFRyYW5zbGF0aW9uKGNvbGxlY3Rpb24ubGFiZWxzLnNpbmd1bGFyLCBpMThuKVxuICAgIHBhcmVudElEID0gaWRcbiAgICBmaWVsZHMgPSBjb2xsZWN0aW9uLmZpZWxkc1xuICAgIGZpZWxkUGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucy5jb2xsZWN0aW9uc1tjb2xsZWN0aW9uLnNsdWddLmZpZWxkc1xuICB9XG5cbiAgaWYgKGdsb2JhbCkge1xuICAgIDsoeyBzbHVnIH0gPSBnbG9iYWwpXG4gICAgb3JpZ2luYWxEb2NGZXRjaFVSTCA9IGAke3NlcnZlclVSTH0ke2FwaX0vZ2xvYmFscy8ke3NsdWd9YFxuICAgIHZlcnNpb25GZXRjaFVSTCA9IGAke3NlcnZlclVSTH0ke2FwaX0vZ2xvYmFscy8ke3NsdWd9L3ZlcnNpb25zLyR7dmVyc2lvbklEfWBcbiAgICBjb21wYXJlQmFzZVVSTCA9IGAke3NlcnZlclVSTH0ke2FwaX0vZ2xvYmFscy8ke3NsdWd9L3ZlcnNpb25zYFxuICAgIGVudGl0eUxhYmVsID0gZ2V0VHJhbnNsYXRpb24oZ2xvYmFsLmxhYmVsLCBpMThuKVxuICAgIGZpZWxkcyA9IGdsb2JhbC5maWVsZHNcbiAgICBmaWVsZFBlcm1pc3Npb25zID0gcGVybWlzc2lvbnMuZ2xvYmFsc1tnbG9iYWwuc2x1Z10uZmllbGRzXG4gIH1cblxuICBjb25zdCBjb21wYXJlRmV0Y2hVUkwgPSBjb21wYXJlVmFsdWU/LnZhbHVlICYmIGAke2NvbXBhcmVCYXNlVVJMfS8ke2NvbXBhcmVWYWx1ZS52YWx1ZX1gXG5cbiAgY29uc3QgW3sgZGF0YTogZG9jLCBpc0Vycm9yIH1dID0gdXNlUGF5bG9hZEFQSSh2ZXJzaW9uRmV0Y2hVUkwsIHtcbiAgICBpbml0aWFsUGFyYW1zOiB7IGRlcHRoOiAxLCBsb2NhbGU6ICcqJyB9LFxuICB9KVxuICBjb25zdCBbeyBkYXRhOiBwdWJsaXNoZWREb2MgfV0gPSB1c2VQYXlsb2FkQVBJKG9yaWdpbmFsRG9jRmV0Y2hVUkwsIHtcbiAgICBpbml0aWFsUGFyYW1zOiB7IGRlcHRoOiAxLCBsb2NhbGU6ICcqJyB9LFxuICB9KVxuICBjb25zdCBbeyBkYXRhOiBtb3N0UmVjZW50RG9jIH1dID0gdXNlUGF5bG9hZEFQSShvcmlnaW5hbERvY0ZldGNoVVJMLCB7XG4gICAgaW5pdGlhbFBhcmFtczogeyBkZXB0aDogMSwgZHJhZnQ6IHRydWUsIGxvY2FsZTogJyonIH0sXG4gIH0pXG4gIGNvbnN0IFt7IGRhdGE6IGNvbXBhcmVEb2MgfV0gPSB1c2VQYXlsb2FkQVBJKGNvbXBhcmVGZXRjaFVSTCwge1xuICAgIGluaXRpYWxQYXJhbXM6IHsgZGVwdGg6IDEsIGRyYWZ0OiAndHJ1ZScsIGxvY2FsZTogJyonIH0sXG4gIH0pXG5cbiAgY29uc3Qgc2hhcmVkUGFyYW1zID0gKHN0YXR1cykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBkZXB0aDogMCxcbiAgICAgIGxpbWl0OiAxLFxuICAgICAgc29ydDogJy11cGRhdGVkQXQnLFxuICAgICAgd2hlcmU6IHtcbiAgICAgICAgJ3ZlcnNpb24uX3N0YXR1cyc6IHtcbiAgICAgICAgICBlcXVhbHM6IHN0YXR1cyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG5cbiAgY29uc3QgW3sgZGF0YTogZHJhZnQgfV0gPSB1c2VQYXlsb2FkQVBJKGNvbXBhcmVCYXNlVVJMLCB7XG4gICAgaW5pdGlhbFBhcmFtczogeyAuLi5zaGFyZWRQYXJhbXMoJ2RyYWZ0JykgfSxcbiAgfSlcblxuICBjb25zdCBbeyBkYXRhOiBwdWJsaXNoZWQgfV0gPSB1c2VQYXlsb2FkQVBJKGNvbXBhcmVCYXNlVVJMLCB7XG4gICAgaW5pdGlhbFBhcmFtczogeyAuLi5zaGFyZWRQYXJhbXMoJ3B1Ymxpc2hlZCcpIH0sXG4gIH0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmb3JtYXR0ZWRQdWJsaXNoZWQgPSBwdWJsaXNoZWQ/LmRvY3M/Lmxlbmd0aCA+IDAgJiYgcHVibGlzaGVkPy5kb2NzWzBdXG4gICAgY29uc3QgZm9ybWF0dGVkRHJhZnQgPSBkcmFmdD8uZG9jcz8ubGVuZ3RoID4gMCAmJiBkcmFmdD8uZG9jc1swXVxuXG4gICAgaWYgKCFmb3JtYXR0ZWRQdWJsaXNoZWQgfHwgIWZvcm1hdHRlZERyYWZ0KSByZXR1cm5cblxuICAgIGNvbnN0IHB1Ymxpc2hlZE5ld2VyVGhhbkRyYWZ0ID0gZm9ybWF0dGVkUHVibGlzaGVkPy51cGRhdGVkQXQgPiBmb3JtYXR0ZWREcmFmdD8udXBkYXRlZEF0XG5cbiAgICBzZXRMYXRlc3REcmFmdFZlcnNpb24ocHVibGlzaGVkTmV3ZXJUaGFuRHJhZnQgPyB1bmRlZmluZWQgOiBmb3JtYXR0ZWREcmFmdD8uaWQpXG4gICAgc2V0TGF0ZXN0UHVibGlzaGVkVmVyc2lvbihmb3JtYXR0ZWRQdWJsaXNoZWQubGF0ZXN0ID8gZm9ybWF0dGVkUHVibGlzaGVkPy5pZCA6IHVuZGVmaW5lZClcbiAgfSwgW2RyYWZ0LCBwdWJsaXNoZWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IG5hdjogU3RlcE5hdkl0ZW1bXSA9IFtdXG5cbiAgICBpZiAoY29sbGVjdGlvbikge1xuICAgICAgbGV0IGRvY0xhYmVsID0gJydcblxuICAgICAgaWYgKG1vc3RSZWNlbnREb2MpIHtcbiAgICAgICAgY29uc3QgeyB1c2VBc1RpdGxlIH0gPSBjb2xsZWN0aW9uLmFkbWluXG5cbiAgICAgICAgaWYgKHVzZUFzVGl0bGUgIT09ICdpZCcpIHtcbiAgICAgICAgICBjb25zdCB0aXRsZUZpZWxkID0gY29sbGVjdGlvbi5maWVsZHMuZmluZChcbiAgICAgICAgICAgIChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gdXNlQXNUaXRsZSxcbiAgICAgICAgICApIGFzIEZpZWxkQWZmZWN0aW5nRGF0YVxuXG4gICAgICAgICAgaWYgKHRpdGxlRmllbGQgJiYgbW9zdFJlY2VudERvY1t1c2VBc1RpdGxlXSkge1xuICAgICAgICAgICAgaWYgKHRpdGxlRmllbGQubG9jYWxpemVkKSB7XG4gICAgICAgICAgICAgIGRvY0xhYmVsID0gbW9zdFJlY2VudERvY1t1c2VBc1RpdGxlXT8uW2xvY2FsZV1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGRvY0xhYmVsID0gbW9zdFJlY2VudERvY1t1c2VBc1RpdGxlXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkb2NMYWJlbCA9IGBbJHt0KCdnZW5lcmFsOnVudGl0bGVkJyl9XWBcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZG9jTGFiZWwgPSBtb3N0UmVjZW50RG9jLmlkXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbmF2ID0gW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IGdldFRyYW5zbGF0aW9uKGNvbGxlY3Rpb24ubGFiZWxzLnBsdXJhbCwgaTE4biksXG4gICAgICAgICAgdXJsOiBgJHthZG1pbn0vY29sbGVjdGlvbnMvJHtjb2xsZWN0aW9uLnNsdWd9YCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiBkb2NMYWJlbCxcbiAgICAgICAgICB1cmw6IGAke2FkbWlufS9jb2xsZWN0aW9ucy8ke2NvbGxlY3Rpb24uc2x1Z30vJHtpZH1gLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdWZXJzaW9ucycsXG4gICAgICAgICAgdXJsOiBgJHthZG1pbn0vY29sbGVjdGlvbnMvJHtjb2xsZWN0aW9uLnNsdWd9LyR7aWR9L3ZlcnNpb25zYCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiBkb2M/LmNyZWF0ZWRBdCA/IGZvcm1hdERhdGUoZG9jLmNyZWF0ZWRBdCwgZGF0ZUZvcm1hdCwgaTE4bj8ubGFuZ3VhZ2UpIDogJycsXG4gICAgICAgIH0sXG4gICAgICBdXG4gICAgfVxuXG4gICAgaWYgKGdsb2JhbCkge1xuICAgICAgbmF2ID0gW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IGdsb2JhbC5sYWJlbCxcbiAgICAgICAgICB1cmw6IGAke2FkbWlufS9nbG9iYWxzLyR7Z2xvYmFsLnNsdWd9YCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnVmVyc2lvbnMnLFxuICAgICAgICAgIHVybDogYCR7YWRtaW59L2dsb2JhbHMvJHtnbG9iYWwuc2x1Z30vdmVyc2lvbnNgLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IGRvYz8uY3JlYXRlZEF0ID8gZm9ybWF0RGF0ZShkb2MuY3JlYXRlZEF0LCBkYXRlRm9ybWF0LCBpMThuPy5sYW5ndWFnZSkgOiAnJyxcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICB9XG5cbiAgICBzZXRTdGVwTmF2KG5hdilcbiAgfSwgW3NldFN0ZXBOYXYsIGNvbGxlY3Rpb24sIGdsb2JhbCwgZGF0ZUZvcm1hdCwgZG9jLCBtb3N0UmVjZW50RG9jLCBhZG1pbiwgaWQsIGxvY2FsZSwgdCwgaTE4bl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlZGl0Q29uZmlnID0gKGNvbGxlY3Rpb24gfHwgZ2xvYmFsKT8uYWRtaW4/LmNvbXBvbmVudHM/LnZpZXdzPy5FZGl0XG4gICAgY29uc3QgdmVyc2lvbkFjdGlvbnMgPVxuICAgICAgZWRpdENvbmZpZyAmJiAnVmVyc2lvbicgaW4gZWRpdENvbmZpZyAmJiAnYWN0aW9ucycgaW4gZWRpdENvbmZpZy5WZXJzaW9uXG4gICAgICAgID8gZWRpdENvbmZpZy5WZXJzaW9uLmFjdGlvbnNcbiAgICAgICAgOiBbXVxuXG4gICAgc2V0Vmlld0FjdGlvbnModmVyc2lvbkFjdGlvbnMpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgc2V0Vmlld0FjdGlvbnMoW10pXG4gICAgfVxuICB9LCBbY29sbGVjdGlvbiwgZ2xvYmFsLCBzZXRWaWV3QWN0aW9uc10pXG5cbiAgbGV0IG1ldGFUaXRsZTogc3RyaW5nXG4gIGxldCBtZXRhRGVzYzogc3RyaW5nXG4gIGNvbnN0IHZlcnNpb25DcmVhdGVkQXQgPSBkb2M/LnVwZGF0ZWRBdFxuICAgID8gZm9ybWF0RGF0ZShkb2MudXBkYXRlZEF0LCBkYXRlRm9ybWF0LCBpMThuPy5sYW5ndWFnZSlcbiAgICA6ICcnXG5cbiAgaWYgKGNvbGxlY3Rpb24pIHtcbiAgICBjb25zdCB1c2VBc1RpdGxlID0gY29sbGVjdGlvbj8uYWRtaW4/LnVzZUFzVGl0bGUgfHwgJ2lkJ1xuICAgIG1ldGFUaXRsZSA9IGAke3QoJ3ZlcnNpb24nKX0gLSAke3ZlcnNpb25DcmVhdGVkQXR9IC0gJHtkb2NbdXNlQXNUaXRsZV19IC0gJHtlbnRpdHlMYWJlbH1gXG4gICAgbWV0YURlc2MgPSB0KCd2aWV3aW5nVmVyc2lvbicsIHsgZG9jdW1lbnRUaXRsZTogZG9jW3VzZUFzVGl0bGVdLCBlbnRpdHlMYWJlbCB9KVxuICB9XG5cbiAgaWYgKGdsb2JhbCkge1xuICAgIG1ldGFUaXRsZSA9IGAke3QoJ3ZlcnNpb24nKX0gLSAke3ZlcnNpb25DcmVhdGVkQXR9IC0gJHtlbnRpdHlMYWJlbH1gXG4gICAgbWV0YURlc2MgPSB0KCd2aWV3aW5nVmVyc2lvbkdsb2JhbCcsIHsgZW50aXR5TGFiZWwgfSlcbiAgfVxuXG4gIGxldCBjb21wYXJpc29uID0gY29tcGFyZURvYz8udmVyc2lvblxuXG4gIGlmIChjb21wYXJlVmFsdWU/LnZhbHVlID09PSAnbW9zdFJlY2VudCcpIHtcbiAgICBjb21wYXJpc29uID0gbW9zdFJlY2VudERvY1xuICB9XG5cbiAgaWYgKGNvbXBhcmVWYWx1ZT8udmFsdWUgPT09ICdwdWJsaXNoZWQnKSB7XG4gICAgY29tcGFyaXNvbiA9IHB1Ymxpc2hlZERvY1xuICB9XG5cbiAgY29uc3QgY2FuVXBkYXRlID0gZG9jUGVybWlzc2lvbnM/LnVwZGF0ZT8ucGVybWlzc2lvblxuXG4gIGlmIChpc0Vycm9yKSB7XG4gICAgcmV0dXJuIDxOb3RGb3VuZCBtYXJnaW5Ub3A9XCJsYXJnZVwiIC8+XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxtYWluIGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgIDxNZXRhIGRlc2NyaXB0aW9uPXttZXRhRGVzY30gdGl0bGU9e21ldGFUaXRsZX0gLz5cbiAgICAgIDxHdXR0ZXIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X193cmFwYH0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItd3JhcGB9PlxuICAgICAgICAgIDxwIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY3JlYXRlZC1hdGB9PlxuICAgICAgICAgICAge3QoJ3ZlcnNpb25DcmVhdGVkT24nLCB7XG4gICAgICAgICAgICAgIHZlcnNpb246IHQoZG9jPy5hdXRvc2F2ZSA/ICdhdXRvc2F2ZWRWZXJzaW9uJyA6ICd2ZXJzaW9uJyksXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2hlYWRlcmB9PlxuICAgICAgICAgICAgPGgyPnt2ZXJzaW9uQ3JlYXRlZEF0fTwvaDI+XG4gICAgICAgICAgICB7Y2FuVXBkYXRlICYmIChcbiAgICAgICAgICAgICAgPFJlc3RvcmVcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3Jlc3RvcmVgfVxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb249e2NvbGxlY3Rpb259XG4gICAgICAgICAgICAgICAgZ2xvYmFsPXtnbG9iYWx9XG4gICAgICAgICAgICAgICAgb3JpZ2luYWxEb2NJRD17aWR9XG4gICAgICAgICAgICAgICAgdmVyc2lvbkRhdGU9e3ZlcnNpb25DcmVhdGVkQXR9XG4gICAgICAgICAgICAgICAgdmVyc2lvbklEPXt2ZXJzaW9uSUR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NvbnRyb2xzYH0+XG4gICAgICAgICAgPENvbXBhcmVWZXJzaW9uXG4gICAgICAgICAgICBiYXNlVVJMPXtjb21wYXJlQmFzZVVSTH1cbiAgICAgICAgICAgIGxhdGVzdERyYWZ0VmVyc2lvbj17bGF0ZXN0RHJhZnRWZXJzaW9ufVxuICAgICAgICAgICAgbGF0ZXN0UHVibGlzaGVkVmVyc2lvbj17bGF0ZXN0UHVibGlzaGVkVmVyc2lvbn1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtzZXRDb21wYXJlVmFsdWV9XG4gICAgICAgICAgICBwYXJlbnRJRD17cGFyZW50SUR9XG4gICAgICAgICAgICB2YWx1ZT17Y29tcGFyZVZhbHVlfVxuICAgICAgICAgICAgdmVyc2lvbklEPXt2ZXJzaW9uSUR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7bG9jYWxpemF0aW9uICYmIChcbiAgICAgICAgICAgIDxTZWxlY3RMb2NhbGVzIG9uQ2hhbmdlPXtzZXRMb2NhbGVzfSBvcHRpb25zPXtsb2NhbGVPcHRpb25zfSB2YWx1ZT17bG9jYWxlc30gLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7ZG9jPy52ZXJzaW9uICYmIChcbiAgICAgICAgICA8UmVuZGVyRmllbGRzVG9EaWZmXG4gICAgICAgICAgICBjb21wYXJpc29uPXtjb21wYXJpc29ufVxuICAgICAgICAgICAgZmllbGRDb21wb25lbnRzPXtmaWVsZENvbXBvbmVudHN9XG4gICAgICAgICAgICBmaWVsZFBlcm1pc3Npb25zPXtmaWVsZFBlcm1pc3Npb25zfVxuICAgICAgICAgICAgZmllbGRzPXtmaWVsZHN9XG4gICAgICAgICAgICBsb2NhbGVzPXtcbiAgICAgICAgICAgICAgbG9jYWxlc1xuICAgICAgICAgICAgICAgID8gbG9jYWxlcy5tYXAoKHsgbGFiZWwgfSkgPT4gKHR5cGVvZiBsYWJlbCA9PT0gJ3N0cmluZycgPyBsYWJlbCA6IHVuZGVmaW5lZCkpXG4gICAgICAgICAgICAgICAgOiBbXVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmVyc2lvbj17ZG9jPy52ZXJzaW9ufVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L0d1dHRlcj5cbiAgICA8L21haW4+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgVmVyc2lvblZpZXdcbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJWZXJzaW9uVmlldyIsImNvbGxlY3Rpb24iLCJnbG9iYWwiLCJhZG1pbiIsImRhdGVGb3JtYXQiLCJsb2NhbGl6YXRpb24iLCJyb3V0ZXMiLCJhcGkiLCJzZXJ2ZXJVUkwiLCJ1c2VDb25maWciLCJzZXRTdGVwTmF2IiwidXNlU3RlcE5hdiIsInNldFZpZXdBY3Rpb25zIiwidXNlQWN0aW9ucyIsInBhcmFtcyIsImlkIiwidmVyc2lvbklEIiwidXNlUm91dGVNYXRjaCIsImNvbXBhcmVWYWx1ZSIsInNldENvbXBhcmVWYWx1ZSIsInVzZVN0YXRlIiwibG9jYWxlT3B0aW9ucyIsImxvY2FsZXMiLCJtYXAiLCJjb2RlIiwibGFiZWwiLCJ2YWx1ZSIsInNldExvY2FsZXMiLCJwZXJtaXNzaW9ucyIsInVzZUF1dGgiLCJsb2NhbGUiLCJ1c2VMb2NhbGUiLCJpMThuIiwidCIsInVzZVRyYW5zbGF0aW9uIiwiZG9jUGVybWlzc2lvbnMiLCJ1c2VEb2N1bWVudEluZm8iLCJvcmlnaW5hbERvY0ZldGNoVVJMIiwidmVyc2lvbkZldGNoVVJMIiwiZW50aXR5TGFiZWwiLCJmaWVsZHMiLCJmaWVsZFBlcm1pc3Npb25zIiwiY29tcGFyZUJhc2VVUkwiLCJzbHVnIiwicGFyZW50SUQiLCJsYXRlc3REcmFmdFZlcnNpb24iLCJzZXRMYXRlc3REcmFmdFZlcnNpb24iLCJ1bmRlZmluZWQiLCJsYXRlc3RQdWJsaXNoZWRWZXJzaW9uIiwic2V0TGF0ZXN0UHVibGlzaGVkVmVyc2lvbiIsImdldFRyYW5zbGF0aW9uIiwibGFiZWxzIiwic2luZ3VsYXIiLCJjb2xsZWN0aW9ucyIsImdsb2JhbHMiLCJjb21wYXJlRmV0Y2hVUkwiLCJkYXRhIiwiZG9jIiwiaXNFcnJvciIsInVzZVBheWxvYWRBUEkiLCJpbml0aWFsUGFyYW1zIiwiZGVwdGgiLCJwdWJsaXNoZWREb2MiLCJtb3N0UmVjZW50RG9jIiwiZHJhZnQiLCJjb21wYXJlRG9jIiwic2hhcmVkUGFyYW1zIiwic3RhdHVzIiwibGltaXQiLCJzb3J0Iiwid2hlcmUiLCJlcXVhbHMiLCJwdWJsaXNoZWQiLCJ1c2VFZmZlY3QiLCJmb3JtYXR0ZWRQdWJsaXNoZWQiLCJkb2NzIiwibGVuZ3RoIiwiZm9ybWF0dGVkRHJhZnQiLCJwdWJsaXNoZWROZXdlclRoYW5EcmFmdCIsInVwZGF0ZWRBdCIsImxhdGVzdCIsIm5hdiIsImRvY0xhYmVsIiwidXNlQXNUaXRsZSIsInRpdGxlRmllbGQiLCJmaW5kIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsImxvY2FsaXplZCIsInBsdXJhbCIsInVybCIsImNyZWF0ZWRBdCIsImZvcm1hdERhdGUiLCJsYW5ndWFnZSIsImVkaXRDb25maWciLCJjb21wb25lbnRzIiwidmlld3MiLCJFZGl0IiwidmVyc2lvbkFjdGlvbnMiLCJWZXJzaW9uIiwiYWN0aW9ucyIsIm1ldGFUaXRsZSIsIm1ldGFEZXNjIiwidmVyc2lvbkNyZWF0ZWRBdCIsImRvY3VtZW50VGl0bGUiLCJjb21wYXJpc29uIiwidmVyc2lvbiIsImNhblVwZGF0ZSIsInVwZGF0ZSIsInBlcm1pc3Npb24iLCJOb3RGb3VuZCIsIm1hcmdpblRvcCIsIm1haW4iLCJjbGFzc05hbWUiLCJNZXRhIiwiZGVzY3JpcHRpb24iLCJ0aXRsZSIsIkd1dHRlciIsImRpdiIsInAiLCJhdXRvc2F2ZSIsImhlYWRlciIsImgyIiwiUmVzdG9yZSIsIm9yaWdpbmFsRG9jSUQiLCJ2ZXJzaW9uRGF0ZSIsIkNvbXBhcmVWZXJzaW9uIiwiYmFzZVVSTCIsIm9uQ2hhbmdlIiwiU2VsZWN0TG9jYWxlcyIsIm9wdGlvbnMiLCJSZW5kZXJGaWVsZHNUb0RpZmYiLCJmaWVsZENvbXBvbmVudHMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBMFRBOzs7ZUFBQTs7OytEQTFUMkM7OEJBQ1o7Z0NBQ0Q7dUJBUUc7Z0NBQ0Y7c0VBQ0w7NEJBQ0M7d0JBQ0o7eUJBQ0k7aUNBQ0E7c0JBQ0g7d0JBQ0U7OEJBQ007d0JBQ047NkRBQ1Q7aUVBQ0k7Z0VBQ007MkVBQ0k7K0RBQ0g7Z0VBQ1I7c0VBQ007UUFDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRVAsTUFBTUEsWUFBWTtBQUVsQixNQUFNQyxjQUErQixDQUFDLEVBQUVDLFVBQVUsRUFBRUMsTUFBTSxFQUFFO0lBQzFELE1BQU0sRUFDSkMsT0FBTyxFQUFFQyxVQUFVLEVBQUUsRUFDckJDLFlBQVksRUFDWkMsUUFBUSxFQUFFSCxLQUFLLEVBQUVJLEdBQUcsRUFBRSxFQUN0QkMsU0FBUyxFQUNWLEdBQUdDLElBQUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutosaveCell.d.ts","sourceRoot":"","sources":["../../../../../../src/admin/components/views/Versions/cells/AutosaveCell.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAKvC,KAAK,iBAAiB,GAAG;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,OAAO,EAAE,GAAG,CAAA;CACb,CAAA;AAED,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"AutosaveCell.d.ts","sourceRoot":"","sources":["../../../../../../src/admin/components/views/Versions/cells/AutosaveCell.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAKvC,KAAK,iBAAiB,GAAG;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,OAAO,EAAE,GAAG,CAAA;CACb,CAAA;AAED,eAAO,MAAM,UAAU,6GAWtB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAoCpD,CAAA"}
|