@1money/component-ui 0.0.78 → 0.0.80
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/es/business/Filter/Account/Account.js +71 -209
- package/es/business/Filter/Account/style/Account.css +2 -42
- package/es/business/Filter/Account/style/css.js +3 -1
- package/es/business/Filter/Account/style/index.d.ts +2 -0
- package/es/business/Filter/Account/style/index.js +3 -1
- package/es/business/Filter/Asset/Asset.js +66 -209
- package/es/business/Filter/Asset/style/Asset.css +3 -44
- package/es/business/Filter/Asset/style/css.js +2 -1
- package/es/business/Filter/Asset/style/index.d.ts +1 -0
- package/es/business/Filter/Asset/style/index.js +2 -1
- package/es/business/Filter/DateRange/DateRange.js +13 -8
- package/es/business/Filter/DateRange/interface.d.ts +0 -5
- package/es/business/Filter/DateRange/style/DateRange.css +15 -5
- package/es/business/Filter/Option/Option.js +50 -193
- package/es/business/Filter/Option/style/Option.css +1 -63
- package/es/business/Filter/Option/style/css.js +2 -1
- package/es/business/Filter/Option/style/index.d.ts +1 -0
- package/es/business/Filter/Option/style/index.js +2 -1
- package/es/components/Button/Button.js +17 -15
- package/es/components/Button/constants.d.ts +0 -1
- package/es/components/Button/constants.js +1 -2
- package/es/components/Button/interface.d.ts +7 -0
- package/es/components/Dialog/Dialog.js +54 -208
- package/es/components/Dialog/DialogContent.d.ts +16 -0
- package/es/components/Dialog/DialogContent.js +72 -0
- package/es/components/Dialog/DialogControls.d.ts +27 -0
- package/es/components/Dialog/DialogControls.js +65 -0
- package/es/components/Dialog/className.d.ts +12 -0
- package/es/components/Dialog/className.js +16 -0
- package/es/components/Dialog/hooks.d.ts +5 -0
- package/es/components/Dialog/hooks.js +69 -0
- package/es/components/Dialog/style/Dialog.css +2 -11
- package/es/components/Dialog/types.d.ts +1 -0
- package/es/components/Dialog/types.js +2 -0
- package/es/components/Filter/Filter.d.ts +2 -0
- package/es/components/Filter/Filter.js +266 -0
- package/es/components/Filter/index.d.ts +4 -0
- package/es/components/Filter/index.js +5 -0
- package/es/components/Filter/interface.d.ts +67 -0
- package/es/components/Filter/interface.js +2 -0
- package/es/components/Filter/style/Filter.css +100 -0
- package/es/components/Filter/style/css.js +8 -0
- package/es/components/Filter/style/index.d.ts +7 -0
- package/es/components/Filter/style/index.js +8 -0
- package/es/components/Pagination/constants.js +3 -2
- package/es/components/Pagination/style/Pagination.css +10 -8
- package/es/components/Select/style/Select.css +2 -1
- package/es/index.css +1 -1
- package/es/index.d.ts +2 -0
- package/es/index.js +2 -1
- package/lib/business/Filter/Account/Account.js +69 -208
- package/lib/business/Filter/Account/style/Account.css +2 -42
- package/lib/business/Filter/Account/style/css.js +3 -1
- package/lib/business/Filter/Account/style/index.d.ts +2 -0
- package/lib/business/Filter/Account/style/index.js +3 -1
- package/lib/business/Filter/Asset/Asset.js +64 -208
- package/lib/business/Filter/Asset/style/Asset.css +3 -44
- package/lib/business/Filter/Asset/style/css.js +2 -1
- package/lib/business/Filter/Asset/style/index.d.ts +1 -0
- package/lib/business/Filter/Asset/style/index.js +2 -1
- package/lib/business/Filter/DateRange/DateRange.js +13 -8
- package/lib/business/Filter/DateRange/interface.d.ts +0 -5
- package/lib/business/Filter/DateRange/style/DateRange.css +15 -5
- package/lib/business/Filter/Option/Option.js +48 -192
- package/lib/business/Filter/Option/style/Option.css +1 -63
- package/lib/business/Filter/Option/style/css.js +2 -1
- package/lib/business/Filter/Option/style/index.d.ts +1 -0
- package/lib/business/Filter/Option/style/index.js +2 -1
- package/lib/components/Button/Button.js +17 -15
- package/lib/components/Button/constants.d.ts +0 -1
- package/lib/components/Button/constants.js +2 -3
- package/lib/components/Button/interface.d.ts +7 -0
- package/lib/components/Dialog/Dialog.js +56 -210
- package/lib/components/Dialog/DialogContent.d.ts +16 -0
- package/lib/components/Dialog/DialogContent.js +78 -0
- package/lib/components/Dialog/DialogControls.d.ts +27 -0
- package/lib/components/Dialog/DialogControls.js +72 -0
- package/lib/components/Dialog/className.d.ts +12 -0
- package/lib/components/Dialog/className.js +23 -0
- package/lib/components/Dialog/hooks.d.ts +5 -0
- package/lib/components/Dialog/hooks.js +75 -0
- package/lib/components/Dialog/style/Dialog.css +2 -11
- package/lib/components/Dialog/types.d.ts +1 -0
- package/lib/components/Dialog/types.js +6 -0
- package/lib/components/Filter/Filter.d.ts +2 -0
- package/lib/components/Filter/Filter.js +273 -0
- package/lib/components/Filter/index.d.ts +4 -0
- package/lib/components/Filter/index.js +30 -0
- package/lib/components/Filter/interface.d.ts +67 -0
- package/lib/components/Filter/interface.js +6 -0
- package/lib/components/Filter/style/Filter.css +100 -0
- package/lib/components/Filter/style/css.js +10 -0
- package/lib/components/Filter/style/index.d.ts +7 -0
- package/lib/components/Filter/style/index.js +10 -0
- package/lib/components/Pagination/constants.js +3 -2
- package/lib/components/Pagination/style/Pagination.css +10 -8
- package/lib/components/Select/style/Select.css +2 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +8 -1
- package/package.json +6 -1
- package/scripts/mcp-server/examples.generated.json +18 -0
- package/scripts/mcp-server/index.generated.json +68 -0
|
@@ -130,8 +130,6 @@ var getDateFromOption = function getDateFromOption(option, range) {
|
|
|
130
130
|
var DateRangeFilterBase = function DateRangeFilterBase(_a) {
|
|
131
131
|
var ref = _a.ref,
|
|
132
132
|
className = _a.className,
|
|
133
|
-
_a$size = _a.size,
|
|
134
|
-
size = _a$size === void 0 ? 'small' : _a$size,
|
|
135
133
|
label = _a.label,
|
|
136
134
|
_a$placeholder = _a.placeholder,
|
|
137
135
|
placeholder = _a$placeholder === void 0 ? 'Date' : _a$placeholder,
|
|
@@ -141,7 +139,7 @@ var DateRangeFilterBase = function DateRangeFilterBase(_a) {
|
|
|
141
139
|
defaultSelectAll = _a$defaultSelectAll === void 0 ? false : _a$defaultSelectAll,
|
|
142
140
|
onApply = _a.onApply,
|
|
143
141
|
onReset = _a.onReset,
|
|
144
|
-
rest = __rest(_a, ["ref", "className", "
|
|
142
|
+
rest = __rest(_a, ["ref", "className", "label", "placeholder", "allTransactionsLabel", "defaultSelectAll", "onApply", "onReset"]);
|
|
145
143
|
var initialOption = defaultSelectAll ? OPTION_ALL : null;
|
|
146
144
|
var initialText = defaultSelectAll ? allTransactionsLabel : '';
|
|
147
145
|
var _useState = (0, _react.useState)(false),
|
|
@@ -287,12 +285,13 @@ var DateRangeFilterBase = function DateRangeFilterBase(_a) {
|
|
|
287
285
|
className: "".concat(WRAP_CLS, "__list"),
|
|
288
286
|
children: _interface.DATE_RANGE_OPTIONS.map(function (option) {
|
|
289
287
|
return (0, _jsxRuntime.jsxs)("li", {
|
|
290
|
-
className: (0, _classnames.joinCls)("".concat(WRAP_CLS, "__item"), option === OPTION_CUSTOM && "".concat(WRAP_CLS, "__item--custom")),
|
|
288
|
+
className: (0, _classnames.joinCls)("".concat(WRAP_CLS, "__item"), option === OPTION_CUSTOM && "".concat(WRAP_CLS, "__item--custom"), selectedOption === option && "".concat(WRAP_CLS, "__item--selected")),
|
|
291
289
|
onClick: function onClick() {
|
|
292
290
|
return handleItemClick(option);
|
|
293
291
|
},
|
|
294
292
|
children: [(0, _jsxRuntime.jsx)(_Typography.TypographyBody, {
|
|
295
|
-
size: '
|
|
293
|
+
size: 'sm',
|
|
294
|
+
strong: true,
|
|
296
295
|
children: getDisplayLabel(option)
|
|
297
296
|
}), option === OPTION_CUSTOM ? (0, _jsxRuntime.jsx)(_Icons.Icons, {
|
|
298
297
|
name: 'chevronRight',
|
|
@@ -377,7 +376,10 @@ var DateRangeFilterBase = function DateRangeFilterBase(_a) {
|
|
|
377
376
|
});
|
|
378
377
|
};
|
|
379
378
|
return (0, _jsxRuntime.jsx)(_Select.Select.Custom, Object.assign({}, rest, {
|
|
380
|
-
|
|
379
|
+
// Fixed 32px "Extra Small" trigger: the scoped `trigger-xs` override only
|
|
380
|
+
// targets the `small` trigger, so the size is locked here rather than
|
|
381
|
+
// exposed as a prop.
|
|
382
|
+
size: 'small',
|
|
381
383
|
animation: false,
|
|
382
384
|
label: label,
|
|
383
385
|
placeholder: placeholder,
|
|
@@ -389,7 +391,10 @@ var DateRangeFilterBase = function DateRangeFilterBase(_a) {
|
|
|
389
391
|
selectedTemplate: selectedText ? (0, _jsxRuntime.jsx)(_Typography.TypographyBody, {
|
|
390
392
|
size: 'md',
|
|
391
393
|
className: "".concat(WRAP_CLS, "__value"),
|
|
392
|
-
children:
|
|
394
|
+
children: (0, _jsxRuntime.jsx)("span", {
|
|
395
|
+
className: "".concat(WRAP_CLS, "__value-label"),
|
|
396
|
+
children: selectedText
|
|
397
|
+
})
|
|
393
398
|
}) : null,
|
|
394
399
|
children: function children() {
|
|
395
400
|
return showCustomRange ? renderCustomRange() : renderPresetList();
|
|
@@ -397,4 +402,4 @@ var DateRangeFilterBase = function DateRangeFilterBase(_a) {
|
|
|
397
402
|
}));
|
|
398
403
|
};
|
|
399
404
|
var DateRangeFilter = exports.DateRangeFilter = /*#__PURE__*/(0, _react.memo)(DateRangeFilterBase);
|
|
400
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbHRlci9EYXRlUmFuZ2UvRGF0ZVJhbmdlLmpzIiwiYnVzaW5lc3MvRmlsdGVyL3NyYy9idXNpbmVzcy9GaWx0ZXIvRGF0ZVJhbmdlL0RhdGVSYW5nZS50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX0J1dHRvbiIsIl9DYWxlbmRhciIsIl9GbGV4IiwiX0ljb25zIiwiX1JhZGlvIiwiX1NlbGVjdCIsIl9UeXBvZ3JhcGh5IiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJmYWNlIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJXUkFQX0NMUyIsIkNBTEVOREFSX1BBTkVMX0NMUyIsIlNFTEVDVF9QQU5FTF9DTFMiLCJQQU5FTF9XSURUSF9QUkVTRVQiLCJQQU5FTF9XSURUSF9DVVNUT00iLCJDQUxFTkRBUl9NT05USFMiLCJDSEVWUk9OX1NJWkUiLCJCQUNLX0lDT05fU0laRSIsIlJFU0VUX0xBQkVMIiwiQVBQTFlfTEFCRUwiLCJDVVNUT01fUkFOR0VfVElUTEUiLCJSQU5HRV9TRVBBUkFUT1IiLCJGVUxMX1dJRFRIX1NUWUxFIiwiZmxleCIsIl9EQVRFX1JBTkdFX09QVElPTlMiLCJfc2xpY2VkVG9BcnJheTIiLCJEQVRFX1JBTkdFX09QVElPTlMiLCJPUFRJT05fQUxMIiwiT1BUSU9OX0xBU1RfMzBfREFZUyIsIk9QVElPTl9ZRUFSX1RPX0RBVEUiLCJPUFRJT05fTEFTVF8xMl9NT05USFMiLCJPUFRJT05fQ1VTVE9NIiwiTEFTVF8zMF9EQVlTX0NPVU5UIiwiTEFTVF8xMl9NT05USFNfQ09VTlQiLCJZRUFSX1NUQVJUX01PTlRIIiwiRklSU1RfREFZX09GX01PTlRIIiwiREFZX1NUQVJUX1RJTUUiLCJEQVlfRU5EX1RJTUUiLCJEQVRFX0ZPUk1BVF9MT0NBTEUiLCJEQVRFX0ZPUk1BVF9PUFRJT05TIiwibW9udGgiLCJkYXkiLCJ5ZWFyIiwiZGF0ZUZvcm1hdHRlciIsIkludGwiLCJEYXRlVGltZUZvcm1hdCIsIkVNUFRZX1JBTkdFIiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsInN0YXJ0T2ZEYXkiLCJkYXRlIiwicmVzdWx0IiwiRGF0ZSIsInNldEhvdXJzIiwiYXBwbHkiLCJlbmRPZkRheSIsImZvcm1hdERhdGUiLCJmb3JtYXQiLCJmb3JtYXRSYW5nZSIsInN0YXJ0IiwiZW5kIiwiY29uY2F0IiwiZ2V0RGF0ZUZyb21PcHRpb24iLCJvcHRpb24iLCJyYW5nZSIsInRvZGF5Iiwic2V0RGF0ZSIsImdldERhdGUiLCJnZXRGdWxsWWVhciIsInNldE1vbnRoIiwiZ2V0TW9udGgiLCJBTExfVFJBTlNBQ1RJT05TX1ZBTFVFIiwiRGF0ZVJhbmdlRmlsdGVyQmFzZSIsIl9hIiwicmVmIiwiY2xhc3NOYW1lIiwiX2Ekc2l6ZSIsInNpemUiLCJsYWJlbCIsIl9hJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfYSRhbGxUcmFuc2FjdGlvbnNMYWIiLCJhbGxUcmFuc2FjdGlvbnNMYWJlbCIsIl9hJGRlZmF1bHRTZWxlY3RBbGwiLCJkZWZhdWx0U2VsZWN0QWxsIiwib25BcHBseSIsIm9uUmVzZXQiLCJyZXN0IiwiaW5pdGlhbE9wdGlvbiIsImluaXRpYWxUZXh0IiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwib3BlbiIsInNldE9wZW4iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNlbGVjdGVkT3B0aW9uIiwic2V0U2VsZWN0ZWRPcHRpb24iLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImxhc3RTZWxlY3RlZE9wdGlvbiIsInNldExhc3RTZWxlY3RlZE9wdGlvbiIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwic2VsZWN0ZWRSYW5nZSIsInNldFNlbGVjdGVkUmFuZ2UiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJhcHBsaWVkUmFuZ2UiLCJzZXRBcHBsaWVkUmFuZ2UiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwic2VsZWN0ZWRUZXh0Iiwic2V0U2VsZWN0ZWRUZXh0IiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsInNob3dDdXN0b21SYW5nZSIsInNldFNob3dDdXN0b21SYW5nZSIsIl91c2VTdGF0ZTE1IiwidW5kZWZpbmVkIiwiX3VzZVN0YXRlMTYiLCJtb250aFZpZXciLCJzZXRNb250aFZpZXciLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwiY2xlYXIiLCJyZXNldCIsImdldERpc3BsYXlMYWJlbCIsInVzZUNhbGxiYWNrIiwiaGFuZGxlSXRlbUNsaWNrIiwiaGFuZGxlRGF0ZVNlbGVjdCIsImV2ZW50IiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJfdmFsdWUiLCJhcHBseVByZXNldCIsImFwcGx5Q3VzdG9tIiwicmVzZXRTZWxlY3Rpb24iLCJoYW5kbGVPcGVuQ2hhbmdlIiwibmV4dE9wZW4iLCJjYWxlbmRhclZhbHVlIiwicmVuZGVyUHJlc2V0TGlzdCIsIl9qc3hzIiwiX0ZyYWdtZW50IiwiY2hpbGRyZW4iLCJfanN4IiwibWFwIiwiam9pbkNscyIsIm9uQ2xpY2siLCJUeXBvZ3JhcGh5Qm9keSIsIkljb25zIiwibmFtZSIsIlJhZGlvIiwiY2hlY2tlZCIsIkZsZXgiLCJnYXAiLCJCdXR0b24iLCJjb2xvciIsInN0eWxlIiwiZGlzYWJsZWQiLCJyZW5kZXJDdXN0b21SYW5nZSIsImFsaWduIiwid3JhcHBlckNscyIsIlR5cG9ncmFwaHlMYWJlbCIsIkNhbGVuZGFyIiwicGFuZWxDbGFzc05hbWUiLCJzZWxlY3Rpb25Nb2RlIiwicmVhZE9ubHlJbnB1dCIsImhpZGVPblJhbmdlU2VsZWN0aW9uIiwibnVtYmVyT2ZNb250aHMiLCJ2aWV3RGF0ZSIsIm9uVmlld0RhdGVDaGFuZ2UiLCJvbkNoYW5nZSIsIlNlbGVjdCIsIkN1c3RvbSIsImFzc2lnbiIsImFuaW1hdGlvbiIsInBhbmVsV2lkdGgiLCJvbk9wZW5DaGFuZ2UiLCJzZWxlY3RlZFRlbXBsYXRlIiwiRGF0ZVJhbmdlRmlsdGVyIiwiZXhwb3J0cyIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsV0FBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsVUFBQSxHQUFBVixPQUFBO0FEVEEsSUFBSVcsTUFBTSxHQUFJLFVBQVEsU0FBS0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENB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SUFBQXlFLG1CQUFPLEVBQUMxSSxRQUFRLEVBQUVpRSxTQUFTLENBQUM7SUFDdkMyRixjQUFjLEVBQUUxSixnQkFBZ0I7SUFDaENzSyxVQUFVLEVBQUU3RCxlQUFlLEdBQUd2RyxrQkFBa0IsR0FBR0Qsa0JBQWtCO0lBQ3JFZ0YsSUFBSSxFQUFFQSxJQUFJO0lBQ1ZzRixZQUFZLEVBQUV4QyxnQkFBZ0I7SUFDOUJ5QyxnQkFBZ0IsRUFDZG5FLFlBQVksR0FDVixJQUFBaUMsZUFBQSxFQUFDSSwwQkFBYyxFQUFBO01BQUN6RSxJQUFJLEVBQUMsSUFBSTtNQUFDRixTQUFTLEtBQUFkLE1BQUEsQ0FBS25ELFFBQVEsWUFBUztNQUFBdUksUUFBQSxFQUN0RGhDO0lBQVksQ0FBQSxDQUNFLEdBQ2YsSUFBSTtJQUFBZ0MsUUFBQSxFQUdULFNBSFNBLFFBQUFBLENBQUE7TUFBQSxPQUdGNUIsZUFBZSxHQUFHNEMsaUJBQWlCLENBQUEsQ0FBRSxHQUFHbkIsZ0JBQWdCLENBQUEsQ0FBRTtJQUFBO0VBQUMsQ0FBQSxDQUFBLENBQ3JEO0FBRXBCLENBQUM7QUFFTSxJQUFNdUMsZUFBZSxHQUFBQyxPQUFBLENBQUFELGVBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDL0csbUJBQW1CLENBQUMiLCJmaWxlIjoiYnVzaW5lc3MvRmlsdGVyL0RhdGVSYW5nZS9EYXRlUmFuZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cywgRnJhZ21lbnQgYXMgX0ZyYWdtZW50IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VDYWxsYmFjaywgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0J1dHRvbic7XG5pbXBvcnQgeyBDYWxlbmRhciB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvQ2FsZW5kYXInO1xuaW1wb3J0IHsgRmxleCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRmxleCc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvSWNvbnMnO1xuaW1wb3J0IHsgUmFkaW8gfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1JhZGlvJztcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvU2VsZWN0JztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQUxMX1RSQU5TQUNUSU9OU19WQUxVRSwgREFURV9SQU5HRV9PUFRJT05TLCB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmNvbnN0IFdSQVBfQ0xTID0gJ29tLWRhdGUtcmFuZ2UtZmlsdGVyJztcbi8vIFRoZSBjYWxlbmRhciBvdmVybGF5IGlzIHBvcnRhbGVkIHRvIDxib2R5Piwgb3V0c2lkZSBXUkFQX0NMUyDigJQgdGhpcyBpcyBhXG4vLyBzdGFuZGFsb25lIHRvcC1sZXZlbCBob29rIHNvIGl0cyBTQ1NTIGNhbiBsaWZ0IGl0IGFib3ZlIHRoZSBob3N0XG4vLyBTZWxlY3QuQ3VzdG9tIHBhbmVsICh6LWluZGV4IDE1MDApLlxuY29uc3QgQ0FMRU5EQVJfUEFORUxfQ0xTID0gJ29tLWRhdGUtcmFuZ2UtZmlsdGVyLWNhbGVuZGFyLXBhbmVsJztcbi8vIFRoZSBTZWxlY3QuQ3VzdG9tIHBhbmVsIGlzIHBvcnRhbGVkIHRvIDxib2R5PiB0b28g4oCUIHRvcC1sZXZlbCBob29rIGZvclxuLy8gc2NvcGluZyBwYW5lbC1ib2R5IG92ZXJyaWRlcyB3aXRob3V0IGxlYWtpbmcgaW50byBvdGhlciBTZWxlY3QgcGFuZWxzLlxuY29uc3QgU0VMRUNUX1BBTkVMX0NMUyA9ICdvbS1kYXRlLXJhbmdlLWZpbHRlci1wYW5lbCc7XG5jb25zdCBQQU5FTF9XSURUSF9QUkVTRVQgPSAyNDA7XG5jb25zdCBQQU5FTF9XSURUSF9DVVNUT00gPSAzMjA7XG5jb25zdCBDQUxFTkRBUl9NT05USFMgPSAyO1xuY29uc3QgQ0hFVlJPTl9TSVpFID0gMTY7XG5jb25zdCBCQUNLX0lDT05fU0laRSA9IDI0O1xuY29uc3QgUkVTRVRfTEFCRUwgPSAnUmVzZXQnO1xuY29uc3QgQVBQTFlfTEFCRUwgPSAnQXBwbHknO1xuY29uc3QgQ1VTVE9NX1JBTkdFX1RJVExFID0gJ0N1c3RvbSBkYXRlIHJhbmdlJztcbmNvbnN0IFJBTkdFX1NFUEFSQVRPUiA9ICcgLSAnO1xuY29uc3QgRlVMTF9XSURUSF9TVFlMRSA9IHsgZmxleDogMSB9O1xuY29uc3QgW09QVElPTl9BTEwsIE9QVElPTl9MQVNUXzMwX0RBWVMsIE9QVElPTl9ZRUFSX1RPX0RBVEUsIE9QVElPTl9MQVNUXzEyX01PTlRIUywgT1BUSU9OX0NVU1RPTSxdID0gREFURV9SQU5HRV9PUFRJT05TO1xuY29uc3QgTEFTVF8zMF9EQVlTX0NPVU5UID0gMzA7XG5jb25zdCBMQVNUXzEyX01PTlRIU19DT1VOVCA9IDEyO1xuY29uc3QgWUVBUl9TVEFSVF9NT05USCA9IDA7IC8vIEphbnVhcnkgKHplcm8tYmFzZWQgbW9udGggaW5kZXgpXG5jb25zdCBGSVJTVF9EQVlfT0ZfTU9OVEggPSAxO1xuLy8gRGF5LWJvdW5kYXJ5IHRpbWVzIHNvIGFuIGFwcGxpZWQgcmFuZ2UgY292ZXJzIHdob2xlIGRheXMgaW5jbHVzaXZlbHk6XG4vLyB0aGUgc3RhcnQgZGF5IGZyb20gMDA6MDA6MDAuMDAwIGFuZCB0aGUgZW5kIGRheSB0aHJvdWdoIDIzOjU5OjU5Ljk5OS5cbmNvbnN0IERBWV9TVEFSVF9USU1FID0gWzAsIDAsIDAsIDBdOyAvLyBbaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1zXVxuY29uc3QgREFZX0VORF9USU1FID0gWzIzLCA1OSwgNTksIDk5OV07IC8vIFtob3VycywgbWludXRlcywgc2Vjb25kcywgbXNdXG5jb25zdCBEQVRFX0ZPUk1BVF9MT0NBTEUgPSAnZW4tVVMnO1xuY29uc3QgREFURV9GT1JNQVRfT1BUSU9OUyA9IHtcbiAgICBtb250aDogJzItZGlnaXQnLFxuICAgIGRheTogJzItZGlnaXQnLFxuICAgIHllYXI6ICdudW1lcmljJyxcbn07XG5jb25zdCBkYXRlRm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoREFURV9GT1JNQVRfTE9DQUxFLCBEQVRFX0ZPUk1BVF9PUFRJT05TKTtcbmNvbnN0IEVNUFRZX1JBTkdFID0geyBzdGFydERhdGU6IG51bGwsIGVuZERhdGU6IG51bGwgfTtcbmNvbnN0IHN0YXJ0T2ZEYXkgPSAoZGF0ZSkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIHJlc3VsdC5zZXRIb3VycyguLi5EQVlfU1RBUlRfVElNRSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5jb25zdCBlbmRPZkRheSA9IChkYXRlKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgcmVzdWx0LnNldEhvdXJzKC4uLkRBWV9FTkRfVElNRSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5jb25zdCBmb3JtYXREYXRlID0gKGRhdGUpID0+IGRhdGVGb3JtYXR0ZXIuZm9ybWF0KGRhdGUpO1xuY29uc3QgZm9ybWF0UmFuZ2UgPSAoc3RhcnQsIGVuZCkgPT4gYCR7Zm9ybWF0RGF0ZShzdGFydCl9JHtSQU5HRV9TRVBBUkFUT1J9JHtmb3JtYXREYXRlKGVuZCl9YDtcbmNvbnN0IGdldERhdGVGcm9tT3B0aW9uID0gKG9wdGlvbiwgcmFuZ2UpID0+IHtcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgc3dpdGNoIChvcHRpb24pIHtcbiAgICAgICAgY2FzZSBPUFRJT05fTEFTVF8zMF9EQVlTOiB7XG4gICAgICAgICAgICBjb25zdCBzdGFydERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgc3RhcnREYXRlLnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpIC0gTEFTVF8zMF9EQVlTX0NPVU5UKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN0YXJ0RGF0ZTogc3RhcnRPZkRheShzdGFydERhdGUpLCBlbmREYXRlOiBlbmRPZkRheSh0b2RheSkgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIE9QVElPTl9ZRUFSX1RPX0RBVEU6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIFlFQVJfU1RBUlRfTU9OVEgsIEZJUlNUX0RBWV9PRl9NT05USCk7XG4gICAgICAgICAgICByZXR1cm4geyBzdGFydERhdGU6IHN0YXJ0T2ZEYXkoc3RhcnREYXRlKSwgZW5kRGF0ZTogZW5kT2ZEYXkodG9kYXkpIH07XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBPUFRJT05fTEFTVF8xMl9NT05USFM6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBzdGFydERhdGUuc2V0TW9udGgodG9kYXkuZ2V0TW9udGgoKSAtIExBU1RfMTJfTU9OVEhTX0NPVU5UKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN0YXJ0RGF0ZTogc3RhcnRPZkRheShzdGFydERhdGUpLCBlbmREYXRlOiBlbmRPZkRheSh0b2RheSkgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIE9QVElPTl9DVVNUT006XG4gICAgICAgICAgICBpZiAocmFuZ2Uuc3RhcnREYXRlICYmIHJhbmdlLmVuZERhdGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGFydERhdGU6IHN0YXJ0T2ZEYXkocmFuZ2Uuc3RhcnREYXRlKSwgZW5kRGF0ZTogZW5kT2ZEYXkocmFuZ2UuZW5kRGF0ZSkgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBBTExfVFJBTlNBQ1RJT05TX1ZBTFVFO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIEFMTF9UUkFOU0FDVElPTlNfVkFMVUU7XG4gICAgfVxufTtcbmNvbnN0IERhdGVSYW5nZUZpbHRlckJhc2UgPSAoX2EpID0+IHtcbiAgICB2YXIgeyByZWYsIGNsYXNzTmFtZSwgc2l6ZSA9ICdzbWFsbCcsIGxhYmVsLCBwbGFjZWhvbGRlciA9ICdEYXRlJywgYWxsVHJhbnNhY3Rpb25zTGFiZWwgPSAnQWxsIHRyYW5zYWN0aW9ucycsIGRlZmF1bHRTZWxlY3RBbGwgPSBmYWxzZSwgb25BcHBseSwgb25SZXNldCB9ID0gX2EsIHJlc3QgPSBfX3Jlc3QoX2EsIFtcInJlZlwiLCBcImNsYXNzTmFtZVwiLCBcInNpemVcIiwgXCJsYWJlbFwiLCBcInBsYWNlaG9sZGVyXCIsIFwiYWxsVHJhbnNhY3Rpb25zTGFiZWxcIiwgXCJkZWZhdWx0U2VsZWN0QWxsXCIsIFwib25BcHBseVwiLCBcIm9uUmVzZXRcIl0pO1xuICAgIGNvbnN0IGluaXRpYWxPcHRpb24gPSBkZWZhdWx0U2VsZWN0QWxsID8gT1BUSU9OX0FMTCA6IG51bGw7XG4gICAgY29uc3QgaW5pdGlhbFRleHQgPSBkZWZhdWx0U2VsZWN0QWxsID8gYWxsVHJhbnNhY3Rpb25zTGFiZWwgOiAnJztcbiAgICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3NlbGVjdGVkT3B0aW9uLCBzZXRTZWxlY3RlZE9wdGlvbl0gPSB1c2VTdGF0ZShpbml0aWFsT3B0aW9uKTtcbiAgICBjb25zdCBbbGFzdFNlbGVjdGVkT3B0aW9uLCBzZXRMYXN0U2VsZWN0ZWRPcHRpb25dID0gdXNlU3RhdGUoaW5pdGlhbE9wdGlvbik7XG4gICAgY29uc3QgW3NlbGVjdGVkUmFuZ2UsIHNldFNlbGVjdGVkUmFuZ2VdID0gdXNlU3RhdGUoRU1QVFlfUkFOR0UpO1xuICAgIGNvbnN0IFthcHBsaWVkUmFuZ2UsIHNldEFwcGxpZWRSYW5nZV0gPSB1c2VTdGF0ZShFTVBUWV9SQU5HRSk7XG4gICAgY29uc3QgW3NlbGVjdGVkVGV4dCwgc2V0U2VsZWN0ZWRUZXh0XSA9IHVzZVN0YXRlKGluaXRpYWxUZXh0KTtcbiAgICBjb25zdCBbc2hvd0N1c3RvbVJhbmdlLCBzZXRTaG93Q3VzdG9tUmFuZ2VdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFttb250aFZpZXcsIHNldE1vbnRoVmlld10gPSB1c2VTdGF0ZSh1bmRlZmluZWQpO1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICBjbGVhcjogKCkgPT4ge1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb24obnVsbCk7XG4gICAgICAgICAgICBzZXRMYXN0U2VsZWN0ZWRPcHRpb24obnVsbCk7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFJhbmdlKEVNUFRZX1JBTkdFKTtcbiAgICAgICAgICAgIHNldEFwcGxpZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFRleHQoJycpO1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIHNldE1vbnRoVmlldyh1bmRlZmluZWQpO1xuICAgICAgICB9LFxuICAgICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb24oaW5pdGlhbE9wdGlvbik7XG4gICAgICAgICAgICBzZXRMYXN0U2VsZWN0ZWRPcHRpb24oaW5pdGlhbE9wdGlvbik7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFJhbmdlKEVNUFRZX1JBTkdFKTtcbiAgICAgICAgICAgIHNldEFwcGxpZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFRleHQoaW5pdGlhbFRleHQpO1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIHNldE1vbnRoVmlldyh1bmRlZmluZWQpO1xuICAgICAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgICAgIH0sXG4gICAgfSksIFtpbml0aWFsT3B0aW9uLCBpbml0aWFsVGV4dCwgb25SZXNldF0pO1xuICAgIGNvbnN0IGdldERpc3BsYXlMYWJlbCA9IHVzZUNhbGxiYWNrKChvcHRpb24pID0+IChvcHRpb24gPT09IE9QVElPTl9BTEwgPyBhbGxUcmFuc2FjdGlvbnNMYWJlbCA6IG9wdGlvbiksIFthbGxUcmFuc2FjdGlvbnNMYWJlbF0pO1xuICAgIGNvbnN0IGhhbmRsZUl0ZW1DbGljayA9IHVzZUNhbGxiYWNrKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbiA9PT0gT1BUSU9OX0NVU1RPTSkge1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkT3B0aW9uKG9wdGlvbik7XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlRGF0ZVNlbGVjdCA9IHVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnZhbHVlO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB2YWx1ZTtcbiAgICAgICAgaWYgKHN0YXJ0ICYmIGVuZCkge1xuICAgICAgICAgICAgc2V0TW9udGhWaWV3KHN0YXJ0KTtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkUmFuZ2UoeyBzdGFydERhdGU6IHN0YXJ0LCBlbmREYXRlOiBlbmQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoc3RhcnQpIHtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkUmFuZ2UoeyBzdGFydERhdGU6IHN0YXJ0LCBlbmREYXRlOiBudWxsIH0pO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGFwcGx5UHJlc2V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBpZiAoIXNlbGVjdGVkT3B0aW9uKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBvbkFwcGx5KGdldERhdGVGcm9tT3B0aW9uKHNlbGVjdGVkT3B0aW9uLCBzZWxlY3RlZFJhbmdlKSk7XG4gICAgICAgIHNldFNlbGVjdGVkVGV4dChnZXREaXNwbGF5TGFiZWwoc2VsZWN0ZWRPcHRpb24pKTtcbiAgICAgICAgc2V0TGFzdFNlbGVjdGVkT3B0aW9uKHNlbGVjdGVkT3B0aW9uKTtcbiAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKGZhbHNlKTtcbiAgICAgICAgc2V0U2VsZWN0ZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgIHNldEFwcGxpZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgIHNldE1vbnRoVmlldyh1bmRlZmluZWQpO1xuICAgICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICB9LCBbc2VsZWN0ZWRPcHRpb24sIHNlbGVjdGVkUmFuZ2UsIG9uQXBwbHksIGdldERpc3BsYXlMYWJlbF0pO1xuICAgIGNvbnN0IGFwcGx5Q3VzdG9tID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0YXJ0RGF0ZSwgZW5kRGF0ZSB9ID0gc2VsZWN0ZWRSYW5nZTtcbiAgICAgICAgaWYgKCFzdGFydERhdGUgfHwgIWVuZERhdGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIG9uQXBwbHkoeyBzdGFydERhdGU6IHN0YXJ0T2ZEYXkoc3RhcnREYXRlKSwgZW5kRGF0ZTogZW5kT2ZEYXkoZW5kRGF0ZSkgfSk7XG4gICAgICAgIHNldFNlbGVjdGVkVGV4dChmb3JtYXRSYW5nZShzdGFydERhdGUsIGVuZERhdGUpKTtcbiAgICAgICAgc2V0TGFzdFNlbGVjdGVkT3B0aW9uKE9QVElPTl9DVVNUT00pO1xuICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbihudWxsKTtcbiAgICAgICAgc2V0QXBwbGllZFJhbmdlKHsgc3RhcnREYXRlLCBlbmREYXRlIH0pO1xuICAgICAgICBzZXRTaG93Q3VzdG9tUmFuZ2UodHJ1ZSk7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIH0sIFtzZWxlY3RlZFJhbmdlLCBvbkFwcGx5XSk7XG4gICAgY29uc3QgcmVzZXRTZWxlY3Rpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHNldFNlbGVjdGVkT3B0aW9uKGluaXRpYWxPcHRpb24pO1xuICAgICAgICBzZXRMYXN0U2VsZWN0ZWRPcHRpb24oaW5pdGlhbE9wdGlvbik7XG4gICAgICAgIHNldFNlbGVjdGVkVGV4dChpbml0aWFsVGV4dCk7XG4gICAgICAgIHNldFNlbGVjdGVkUmFuZ2UoRU1QVFlfUkFOR0UpO1xuICAgICAgICBzZXRBcHBsaWVkUmFuZ2UoRU1QVFlfUkFOR0UpO1xuICAgICAgICBzZXRNb250aFZpZXcodW5kZWZpbmVkKTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSwgW2luaXRpYWxPcHRpb24sIGluaXRpYWxUZXh0LCBvblJlc2V0XSk7XG4gICAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUNhbGxiYWNrKChuZXh0T3BlbikgPT4ge1xuICAgICAgICBzZXRPcGVuKG5leHRPcGVuKTtcbiAgICAgICAgaWYgKG5leHRPcGVuKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvLyBPbiBjbG9zZSB3aXRob3V0IEFwcGx5LCBzbmFwIHRoZSBwYW5lbCBiYWNrIHRvIHRoZSBsYXN0IGNvbW1pdHRlZCBzdGF0ZVxuICAgICAgICAvLyBzbyBhbiBhYmFuZG9uZWQgZWRpdCBkb2Vzbid0IGxpbmdlci5cbiAgICAgICAgaWYgKGxhc3RTZWxlY3RlZE9wdGlvbiA9PT0gT1BUSU9OX0NVU1RPTSkge1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKHRydWUpO1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRSYW5nZShhcHBsaWVkUmFuZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkT3B0aW9uKGxhc3RTZWxlY3RlZE9wdGlvbik7XG4gICAgICAgIH1cbiAgICB9LCBbbGFzdFNlbGVjdGVkT3B0aW9uLCBhcHBsaWVkUmFuZ2VdKTtcbiAgICBjb25zdCBjYWxlbmRhclZhbHVlID0gc2VsZWN0ZWRSYW5nZS5zdGFydERhdGVcbiAgICAgICAgPyBzZWxlY3RlZFJhbmdlLmVuZERhdGVcbiAgICAgICAgICAgID8gW3NlbGVjdGVkUmFuZ2Uuc3RhcnREYXRlLCBzZWxlY3RlZFJhbmdlLmVuZERhdGVdXG4gICAgICAgICAgICA6IFtzZWxlY3RlZFJhbmdlLnN0YXJ0RGF0ZV1cbiAgICAgICAgOiBudWxsO1xuICAgIGNvbnN0IHJlbmRlclByZXNldExpc3QgPSAoKSA9PiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbX2pzeChcInVsXCIsIHsgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX2xpc3RgLCBjaGlsZHJlbjogREFURV9SQU5HRV9PUFRJT05TLm1hcCgob3B0aW9uKSA9PiAoX2pzeHMoXCJsaVwiLCB7IGNsYXNzTmFtZTogam9pbkNscyhgJHtXUkFQX0NMU31fX2l0ZW1gLCBvcHRpb24gPT09IE9QVElPTl9DVVNUT00gJiYgYCR7V1JBUF9DTFN9X19pdGVtLS1jdXN0b21gKSwgb25DbGljazogKCkgPT4gaGFuZGxlSXRlbUNsaWNrKG9wdGlvbiksIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnbWQnLCBjaGlsZHJlbjogZ2V0RGlzcGxheUxhYmVsKG9wdGlvbikgfSksIG9wdGlvbiA9PT0gT1BUSU9OX0NVU1RPTSA/IChfanN4KEljb25zLCB7IG5hbWU6ICdjaGV2cm9uUmlnaHQnLCBzaXplOiBDSEVWUk9OX1NJWkUgfSkpIDogKF9qc3goUmFkaW8sIHsgc2l6ZTogJ3NtYWxsJywgY2hlY2tlZDogc2VsZWN0ZWRPcHRpb24gPT09IG9wdGlvbiB9KSldIH0sIG9wdGlvbikpKSB9KSwgX2pzeHMoRmxleCwgeyBnYXA6IDgsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19mb290ZXJgLCBjaGlsZHJlbjogW19qc3goQnV0dG9uLCB7IGNvbG9yOiAnZ3JleScsIHNpemU6ICdzbWFsbCcsIHN0eWxlOiBGVUxMX1dJRFRIX1NUWUxFLCBvbkNsaWNrOiByZXNldFNlbGVjdGlvbiwgY2hpbGRyZW46IFJFU0VUX0xBQkVMIH0pLCBfanN4KEJ1dHRvbiwgeyBjb2xvcjogJ3ByaW1hcnknLCBzaXplOiAnc21hbGwnLCBzdHlsZTogRlVMTF9XSURUSF9TVFlMRSwgZGlzYWJsZWQ6ICFzZWxlY3RlZE9wdGlvbiwgb25DbGljazogYXBwbHlQcmVzZXQsIGNoaWxkcmVuOiBBUFBMWV9MQUJFTCB9KV0gfSldIH0pKTtcbiAgICBjb25zdCByZW5kZXJDdXN0b21SYW5nZSA9ICgpID0+IChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19jdXN0b21gLCBjaGlsZHJlbjogW19qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBnYXA6IDgsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19jdXN0b20taGVhZGVyYCwgY2hpbGRyZW46IFtfanN4KEljb25zLCB7IG5hbWU6ICdhcnJvd0xlZnQnLCBzaXplOiBCQUNLX0lDT05fU0laRSwgd3JhcHBlckNsczogYCR7V1JBUF9DTFN9X19iYWNrLWljb25gLCBvbkNsaWNrOiAoKSA9PiBzZXRTaG93Q3VzdG9tUmFuZ2UoZmFsc2UpIH0pLCBfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBzaXplOiAnbGcnLCBjaGlsZHJlbjogQ1VTVE9NX1JBTkdFX1RJVExFIH0pXSB9KSwgX2pzeChDYWxlbmRhciwgeyB3cmFwcGVyQ2xzOiBgJHtXUkFQX0NMU31fX2NhbGVuZGFyYCwgcGFuZWxDbGFzc05hbWU6IENBTEVOREFSX1BBTkVMX0NMUywgc2l6ZTogJ3NtYWxsJywgc2VsZWN0aW9uTW9kZTogJ3JhbmdlJywgcGxhY2Vob2xkZXI6ICdNTS9ERC9ZWVlZIC0gTU0vREQvWVlZWScsIHJlYWRPbmx5SW5wdXQ6IHRydWUsIGhpZGVPblJhbmdlU2VsZWN0aW9uOiB0cnVlLCBudW1iZXJPZk1vbnRoczogQ0FMRU5EQVJfTU9OVEhTLCB2YWx1ZTogY2FsZW5kYXJWYWx1ZSwgdmlld0RhdGU6IG1vbnRoVmlldywgb25WaWV3RGF0ZUNoYW5nZTogKGV2ZW50KSA9PiBzZXRNb250aFZpZXcoZXZlbnQudmFsdWUpLCBvbkNoYW5nZTogaGFuZGxlRGF0ZVNlbGVjdCB9KSwgX2pzeHMoRmxleCwgeyBnYXA6IDgsIGNsYXNzTmFtZTogam9pbkNscyhgJHtXUkFQX0NMU31fX2Zvb3RlcmAsIGAke1dSQVBfQ0xTfV9fZm9vdGVyLS1ib3JkZXJlZGApLCBjaGlsZHJlbjogW19qc3goQnV0dG9uLCB7IGNvbG9yOiAnZ3JleScsIHNpemU6ICdzbWFsbCcsIHN0eWxlOiBGVUxMX1dJRFRIX1NUWUxFLCBvbkNsaWNrOiByZXNldFNlbGVjdGlvbiwgY2hpbGRyZW46IFJFU0VUX0xBQkVMIH0pLCBfanN4KEJ1dHRvbiwgeyBjb2xvcjogJ3ByaW1hcnknLCBzaXplOiAnc21hbGwnLCBzdHlsZTogRlVMTF9XSURUSF9TVFlMRSwgZGlzYWJsZWQ6ICFzZWxlY3RlZFJhbmdlLnN0YXJ0RGF0ZSB8fCAhc2VsZWN0ZWRSYW5nZS5lbmREYXRlLCBvbkNsaWNrOiBhcHBseUN1c3RvbSwgY2hpbGRyZW46IEFQUExZX0xBQkVMIH0pXSB9KV0gfSkpO1xuICAgIHJldHVybiAoX2pzeChTZWxlY3QuQ3VzdG9tLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHNpemU6IHNpemUsIGFuaW1hdGlvbjogZmFsc2UsIGxhYmVsOiBsYWJlbCwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBjbGFzc05hbWU6IGpvaW5DbHMoV1JBUF9DTFMsIGNsYXNzTmFtZSksIHBhbmVsQ2xhc3NOYW1lOiBTRUxFQ1RfUEFORUxfQ0xTLCBwYW5lbFdpZHRoOiBzaG93Q3VzdG9tUmFuZ2UgPyBQQU5FTF9XSURUSF9DVVNUT00gOiBQQU5FTF9XSURUSF9QUkVTRVQsIG9wZW46IG9wZW4sIG9uT3BlbkNoYW5nZTogaGFuZGxlT3BlbkNoYW5nZSwgc2VsZWN0ZWRUZW1wbGF0ZTogc2VsZWN0ZWRUZXh0ID8gKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogJ21kJywgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX3ZhbHVlYCwgY2hpbGRyZW46IHNlbGVjdGVkVGV4dCB9KSkgOiBudWxsLCBjaGlsZHJlbjogKCkgPT4gKHNob3dDdXN0b21SYW5nZSA/IHJlbmRlckN1c3RvbVJhbmdlKCkgOiByZW5kZXJQcmVzZXRMaXN0KCkpIH0pKSk7XG59O1xuZXhwb3J0IGNvbnN0IERhdGVSYW5nZUZpbHRlciA9IG1lbW8oRGF0ZVJhbmdlRmlsdGVyQmFzZSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
405
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbHRlci9EYXRlUmFuZ2UvRGF0ZVJhbmdlLmpzIiwiYnVzaW5lc3MvRmlsdGVyL3NyYy9idXNpbmVzcy9GaWx0ZXIvRGF0ZVJhbmdlL0RhdGVSYW5nZS50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX0J1dHRvbiIsIl9DYWxlbmRhciIsIl9GbGV4IiwiX0ljb25zIiwiX1JhZGlvIiwiX1NlbGVjdCIsIl9UeXBvZ3JhcGh5IiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJmYWNlIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJXUkFQX0NMUyIsIkNBTEVOREFSX1BBTkVMX0NMUyIsIlNFTEVDVF9QQU5FTF9DTFMiLCJQQU5FTF9XSURUSF9QUkVTRVQiLCJQQU5FTF9XSURUSF9DVVNUT00iLCJDQUxFTkRBUl9NT05USFMiLCJDSEVWUk9OX1NJWkUiLCJCQUNLX0lDT05fU0laRSIsIlJFU0VUX0xBQkVMIiwiQVBQTFlfTEFCRUwiLCJDVVNUT01fUkFOR0VfVElUTEUiLCJSQU5HRV9TRVBBUkFUT1IiLCJGVUxMX1dJRFRIX1NUWUxFIiwiZmxleCIsIl9EQVRFX1JBTkdFX09QVElPTlMiLCJfc2xpY2VkVG9BcnJheTIiLCJEQVRFX1JBTkdFX09QVElPTlMiLCJPUFRJT05fQUxMIiwiT1BUSU9OX0xBU1RfMzBfREFZUyIsIk9QVElPTl9ZRUFSX1RPX0RBVEUiLCJPUFRJT05fTEFTVF8xMl9NT05USFMiLCJPUFRJT05fQ1VTVE9NIiwiTEFTVF8zMF9EQVlTX0NPVU5UIiwiTEFTVF8xMl9NT05USFNfQ09VTlQiLCJZRUFSX1NUQVJUX01PTlRIIiwiRklSU1RfREFZX09GX01PTlRIIiwiREFZX1NUQVJUX1RJTUUiLCJEQVlfRU5EX1RJTUUiLCJEQVRFX0ZPUk1BVF9MT0NBTEUiLCJEQVRFX0ZPUk1BVF9PUFRJT05TIiwibW9udGgiLCJkYXkiLCJ5ZWFyIiwiZGF0ZUZvcm1hdHRlciIsIkludGwiLCJEYXRlVGltZUZvcm1hdCIsIkVNUFRZX1JBTkdFIiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsInN0YXJ0T2ZEYXkiLCJkYXRlIiwicmVzdWx0IiwiRGF0ZSIsInNldEhvdXJzIiwiYXBwbHkiLCJlbmRPZkRheSIsImZvcm1hdERhdGUiLCJmb3JtYXQiLCJmb3JtYXRSYW5nZSIsInN0YXJ0IiwiZW5kIiwiY29uY2F0IiwiZ2V0RGF0ZUZyb21PcHRpb24iLCJvcHRpb24iLCJyYW5nZSIsInRvZGF5Iiwic2V0RGF0ZSIsImdldERhdGUiLCJnZXRGdWxsWWVhciIsInNldE1vbnRoIiwiZ2V0TW9udGgiLCJBTExfVFJBTlNBQ1RJT05TX1ZBTFVFIiwiRGF0ZVJhbmdlRmlsdGVyQmFzZSIsIl9hIiwicmVmIiwiY2xhc3NOYW1lIiwibGFiZWwiLCJfYSRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX2EkYWxsVHJhbnNhY3Rpb25zTGFiIiwiYWxsVHJhbnNhY3Rpb25zTGFiZWwiLCJfYSRkZWZhdWx0U2VsZWN0QWxsIiwiZGVmYXVsdFNlbGVjdEFsbCIsIm9uQXBwbHkiLCJvblJlc2V0IiwicmVzdCIsImluaXRpYWxPcHRpb24iLCJpbml0aWFsVGV4dCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm9wZW4iLCJzZXRPcGVuIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZWxlY3RlZE9wdGlvbiIsInNldFNlbGVjdGVkT3B0aW9uIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsYXN0U2VsZWN0ZWRPcHRpb24iLCJzZXRMYXN0U2VsZWN0ZWRPcHRpb24iLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlbGVjdGVkUmFuZ2UiLCJzZXRTZWxlY3RlZFJhbmdlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwiYXBwbGllZFJhbmdlIiwic2V0QXBwbGllZFJhbmdlIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsInNlbGVjdGVkVGV4dCIsInNldFNlbGVjdGVkVGV4dCIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJzaG93Q3VzdG9tUmFuZ2UiLCJzZXRTaG93Q3VzdG9tUmFuZ2UiLCJfdXNlU3RhdGUxNSIsInVuZGVmaW5lZCIsIl91c2VTdGF0ZTE2IiwibW9udGhWaWV3Iiwic2V0TW9udGhWaWV3IiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsImNsZWFyIiwicmVzZXQiLCJnZXREaXNwbGF5TGFiZWwiLCJ1c2VDYWxsYmFjayIsImhhbmRsZUl0ZW1DbGljayIsImhhbmRsZURhdGVTZWxlY3QiLCJldmVudCIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwiX3ZhbHVlIiwiYXBwbHlQcmVzZXQiLCJhcHBseUN1c3RvbSIsInJlc2V0U2VsZWN0aW9uIiwiaGFuZGxlT3BlbkNoYW5nZSIsIm5leHRPcGVuIiwiY2FsZW5kYXJWYWx1ZSIsInJlbmRlclByZXNldExpc3QiLCJfanN4cyIsIl9GcmFnbWVudCIsImNoaWxkcmVuIiwiX2pzeCIsIm1hcCIsImpvaW5DbHMiLCJvbkNsaWNrIiwiVHlwb2dyYXBoeUJvZHkiLCJzaXplIiwic3Ryb25nIiwiSWNvbnMiLCJuYW1lIiwiUmFkaW8iLCJjaGVja2VkIiwiRmxleCIsImdhcCIsIkJ1dHRvbiIsImNvbG9yIiwic3R5bGUiLCJkaXNhYmxlZCIsInJlbmRlckN1c3RvbVJhbmdlIiwiYWxpZ24iLCJ3cmFwcGVyQ2xzIiwiVHlwb2dyYXBoeUxhYmVsIiwiQ2FsZW5kYXIiLCJwYW5lbENsYXNzTmFtZSIsInNlbGVjdGlvbk1vZGUiLCJyZWFkT25seUlucHV0IiwiaGlkZU9uUmFuZ2VTZWxlY3Rpb24iLCJudW1iZXJPZk1vbnRocyIsInZpZXdEYXRlIiwib25WaWV3RGF0ZUNoYW5nZSIsIm9uQ2hhbmdlIiwiU2VsZWN0IiwiQ3VzdG9tIiwiYXNzaWduIiwiYW5pbWF0aW9uIiwicGFuZWxXaWR0aCIsIm9uT3BlbkNoYW5nZSIsInNlbGVjdGVkVGVtcGxhdGUiLCJEYXRlUmFuZ2VGaWx0ZXIiLCJleHBvcnRzIiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxXQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxVQUFBLEdBQUFWLE9BQUE7QURUQSxJQUFJVyxNQUFNLEdBQUksVUFBUSxTQUFLQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FB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LEVBQUN4SSxRQUFRLEVBQUVpRSxTQUFTLENBQUM7SUFDdkMyRixjQUFjLEVBQUUxSixnQkFBZ0I7SUFDaENzSyxVQUFVLEVBQUUvRCxlQUFlLEdBQUdyRyxrQkFBa0IsR0FBR0Qsa0JBQWtCO0lBQ3JFOEUsSUFBSSxFQUFFQSxJQUFJO0lBQ1Z3RixZQUFZLEVBQUUxQyxnQkFBZ0I7SUFDOUIyQyxnQkFBZ0IsRUFDZHJFLFlBQVksR0FDVixJQUFBaUMsZUFBQSxFQUFDSSwwQkFBYyxFQUFBO01BQUNDLElBQUksRUFBQyxJQUFJO01BQUMxRSxTQUFTLEtBQUFkLE1BQUEsQ0FBS25ELFFBQVEsWUFBUztNQUFBcUksUUFBQSxFQUN2RCxJQUFBQyxlQUFBLEVBQUEsTUFBQSxFQUFBO1FBQU1yRSxTQUFTLEtBQUFkLE1BQUEsQ0FBS25ELFFBQVEsa0JBQWU7UUFBQXFJLFFBQUEsRUFBR2hDO01BQVksQ0FBQTtJQUFRLENBQUEsQ0FDbkQsR0FDZixJQUFJO0lBQUFnQyxRQUFBLEVBR1QsU0FIU0EsUUFBQUEsQ0FBQTtNQUFBLE9BR0Y1QixlQUFlLEdBQUc4QyxpQkFBaUIsQ0FBQSxDQUFFLEdBQUdyQixnQkFBZ0IsQ0FBQSxDQUFFO0lBQUE7RUFBQyxDQUFBLENBQUEsQ0FDckQ7QUFFcEIsQ0FBQztBQUVNLElBQU15QyxlQUFlLEdBQUFDLE9BQUEsQ0FBQUQsZUFBQSxnQkFBRyxJQUFBRSxXQUFJLEVBQUMvRyxtQkFBbUIsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9GaWx0ZXIvRGF0ZVJhbmdlL0RhdGVSYW5nZS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzLCBGcmFnbWVudCBhcyBfRnJhZ21lbnQgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUNhbGxiYWNrLCB1c2VJbXBlcmF0aXZlSGFuZGxlLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvQnV0dG9uJztcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9DYWxlbmRhcic7XG5pbXBvcnQgeyBGbGV4IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9GbGV4JztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9JY29ucyc7XG5pbXBvcnQgeyBSYWRpbyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvUmFkaW8nO1xuaW1wb3J0IHsgU2VsZWN0IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9TZWxlY3QnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBBTExfVFJBTlNBQ1RJT05TX1ZBTFVFLCBEQVRFX1JBTkdFX09QVElPTlMsIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuY29uc3QgV1JBUF9DTFMgPSAnb20tZGF0ZS1yYW5nZS1maWx0ZXInO1xuLy8gVGhlIGNhbGVuZGFyIG92ZXJsYXkgaXMgcG9ydGFsZWQgdG8gPGJvZHk+LCBvdXRzaWRlIFdSQVBfQ0xTIOKAlCB0aGlzIGlzIGFcbi8vIHN0YW5kYWxvbmUgdG9wLWxldmVsIGhvb2sgc28gaXRzIFNDU1MgY2FuIGxpZnQgaXQgYWJvdmUgdGhlIGhvc3Rcbi8vIFNlbGVjdC5DdXN0b20gcGFuZWwgKHotaW5kZXggMTUwMCkuXG5jb25zdCBDQUxFTkRBUl9QQU5FTF9DTFMgPSAnb20tZGF0ZS1yYW5nZS1maWx0ZXItY2FsZW5kYXItcGFuZWwnO1xuLy8gVGhlIFNlbGVjdC5DdXN0b20gcGFuZWwgaXMgcG9ydGFsZWQgdG8gPGJvZHk+IHRvbyDigJQgdG9wLWxldmVsIGhvb2sgZm9yXG4vLyBzY29waW5nIHBhbmVsLWJvZHkgb3ZlcnJpZGVzIHdpdGhvdXQgbGVha2luZyBpbnRvIG90aGVyIFNlbGVjdCBwYW5lbHMuXG5jb25zdCBTRUxFQ1RfUEFORUxfQ0xTID0gJ29tLWRhdGUtcmFuZ2UtZmlsdGVyLXBhbmVsJztcbmNvbnN0IFBBTkVMX1dJRFRIX1BSRVNFVCA9IDI0MDtcbmNvbnN0IFBBTkVMX1dJRFRIX0NVU1RPTSA9IDMyMDtcbmNvbnN0IENBTEVOREFSX01PTlRIUyA9IDI7XG5jb25zdCBDSEVWUk9OX1NJWkUgPSAxNjtcbmNvbnN0IEJBQ0tfSUNPTl9TSVpFID0gMjQ7XG5jb25zdCBSRVNFVF9MQUJFTCA9ICdSZXNldCc7XG5jb25zdCBBUFBMWV9MQUJFTCA9ICdBcHBseSc7XG5jb25zdCBDVVNUT01fUkFOR0VfVElUTEUgPSAnQ3VzdG9tIGRhdGUgcmFuZ2UnO1xuY29uc3QgUkFOR0VfU0VQQVJBVE9SID0gJyAtICc7XG5jb25zdCBGVUxMX1dJRFRIX1NUWUxFID0geyBmbGV4OiAxIH07XG5jb25zdCBbT1BUSU9OX0FMTCwgT1BUSU9OX0xBU1RfMzBfREFZUywgT1BUSU9OX1lFQVJfVE9fREFURSwgT1BUSU9OX0xBU1RfMTJfTU9OVEhTLCBPUFRJT05fQ1VTVE9NLF0gPSBEQVRFX1JBTkdFX09QVElPTlM7XG5jb25zdCBMQVNUXzMwX0RBWVNfQ09VTlQgPSAzMDtcbmNvbnN0IExBU1RfMTJfTU9OVEhTX0NPVU5UID0gMTI7XG5jb25zdCBZRUFSX1NUQVJUX01PTlRIID0gMDsgLy8gSmFudWFyeSAoemVyby1iYXNlZCBtb250aCBpbmRleClcbmNvbnN0IEZJUlNUX0RBWV9PRl9NT05USCA9IDE7XG4vLyBEYXktYm91bmRhcnkgdGltZXMgc28gYW4gYXBwbGllZCByYW5nZSBjb3ZlcnMgd2hvbGUgZGF5cyBpbmNsdXNpdmVseTpcbi8vIHRoZSBzdGFydCBkYXkgZnJvbSAwMDowMDowMC4wMDAgYW5kIHRoZSBlbmQgZGF5IHRocm91Z2ggMjM6NTk6NTkuOTk5LlxuY29uc3QgREFZX1NUQVJUX1RJTUUgPSBbMCwgMCwgMCwgMF07IC8vIFtob3VycywgbWludXRlcywgc2Vjb25kcywgbXNdXG5jb25zdCBEQVlfRU5EX1RJTUUgPSBbMjMsIDU5LCA1OSwgOTk5XTsgLy8gW2hvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCBtc11cbmNvbnN0IERBVEVfRk9STUFUX0xPQ0FMRSA9ICdlbi1VUyc7XG5jb25zdCBEQVRFX0ZPUk1BVF9PUFRJT05TID0ge1xuICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgeWVhcjogJ251bWVyaWMnLFxufTtcbmNvbnN0IGRhdGVGb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChEQVRFX0ZPUk1BVF9MT0NBTEUsIERBVEVfRk9STUFUX09QVElPTlMpO1xuY29uc3QgRU1QVFlfUkFOR0UgPSB7IHN0YXJ0RGF0ZTogbnVsbCwgZW5kRGF0ZTogbnVsbCB9O1xuY29uc3Qgc3RhcnRPZkRheSA9IChkYXRlKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgcmVzdWx0LnNldEhvdXJzKC4uLkRBWV9TVEFSVF9USU1FKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmNvbnN0IGVuZE9mRGF5ID0gKGRhdGUpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICByZXN1bHQuc2V0SG91cnMoLi4uREFZX0VORF9USU1FKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmNvbnN0IGZvcm1hdERhdGUgPSAoZGF0ZSkgPT4gZGF0ZUZvcm1hdHRlci5mb3JtYXQoZGF0ZSk7XG5jb25zdCBmb3JtYXRSYW5nZSA9IChzdGFydCwgZW5kKSA9PiBgJHtmb3JtYXREYXRlKHN0YXJ0KX0ke1JBTkdFX1NFUEFSQVRPUn0ke2Zvcm1hdERhdGUoZW5kKX1gO1xuY29uc3QgZ2V0RGF0ZUZyb21PcHRpb24gPSAob3B0aW9uLCByYW5nZSkgPT4ge1xuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICBzd2l0Y2ggKG9wdGlvbikge1xuICAgICAgICBjYXNlIE9QVElPTl9MQVNUXzMwX0RBWVM6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBzdGFydERhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgLSBMQVNUXzMwX0RBWVNfQ09VTlQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhcnREYXRlOiBzdGFydE9mRGF5KHN0YXJ0RGF0ZSksIGVuZERhdGU6IGVuZE9mRGF5KHRvZGF5KSB9O1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgT1BUSU9OX1lFQVJfVE9fREFURToge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgWUVBUl9TVEFSVF9NT05USCwgRklSU1RfREFZX09GX01PTlRIKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN0YXJ0RGF0ZTogc3RhcnRPZkRheShzdGFydERhdGUpLCBlbmREYXRlOiBlbmRPZkRheSh0b2RheSkgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIE9QVElPTl9MQVNUXzEyX01PTlRIUzoge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIHN0YXJ0RGF0ZS5zZXRNb250aCh0b2RheS5nZXRNb250aCgpIC0gTEFTVF8xMl9NT05USFNfQ09VTlQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhcnREYXRlOiBzdGFydE9mRGF5KHN0YXJ0RGF0ZSksIGVuZERhdGU6IGVuZE9mRGF5KHRvZGF5KSB9O1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgT1BUSU9OX0NVU1RPTTpcbiAgICAgICAgICAgIGlmIChyYW5nZS5zdGFydERhdGUgJiYgcmFuZ2UuZW5kRGF0ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXJ0RGF0ZTogc3RhcnRPZkRheShyYW5nZS5zdGFydERhdGUpLCBlbmREYXRlOiBlbmRPZkRheShyYW5nZS5lbmREYXRlKSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIEFMTF9UUkFOU0FDVElPTlNfVkFMVUU7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gQUxMX1RSQU5TQUNUSU9OU19WQUxVRTtcbiAgICB9XG59O1xuY29uc3QgRGF0ZVJhbmdlRmlsdGVyQmFzZSA9IChfYSkgPT4ge1xuICAgIHZhciB7IHJlZiwgY2xhc3NOYW1lLCBsYWJlbCwgcGxhY2Vob2xkZXIgPSAnRGF0ZScsIGFsbFRyYW5zYWN0aW9uc0xhYmVsID0gJ0FsbCB0cmFuc2FjdGlvbnMnLCBkZWZhdWx0U2VsZWN0QWxsID0gZmFsc2UsIG9uQXBwbHksIG9uUmVzZXQgfSA9IF9hLCByZXN0ID0gX19yZXN0KF9hLCBbXCJyZWZcIiwgXCJjbGFzc05hbWVcIiwgXCJsYWJlbFwiLCBcInBsYWNlaG9sZGVyXCIsIFwiYWxsVHJhbnNhY3Rpb25zTGFiZWxcIiwgXCJkZWZhdWx0U2VsZWN0QWxsXCIsIFwib25BcHBseVwiLCBcIm9uUmVzZXRcIl0pO1xuICAgIGNvbnN0IGluaXRpYWxPcHRpb24gPSBkZWZhdWx0U2VsZWN0QWxsID8gT1BUSU9OX0FMTCA6IG51bGw7XG4gICAgY29uc3QgaW5pdGlhbFRleHQgPSBkZWZhdWx0U2VsZWN0QWxsID8gYWxsVHJhbnNhY3Rpb25zTGFiZWwgOiAnJztcbiAgICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3NlbGVjdGVkT3B0aW9uLCBzZXRTZWxlY3RlZE9wdGlvbl0gPSB1c2VTdGF0ZShpbml0aWFsT3B0aW9uKTtcbiAgICBjb25zdCBbbGFzdFNlbGVjdGVkT3B0aW9uLCBzZXRMYXN0U2VsZWN0ZWRPcHRpb25dID0gdXNlU3RhdGUoaW5pdGlhbE9wdGlvbik7XG4gICAgY29uc3QgW3NlbGVjdGVkUmFuZ2UsIHNldFNlbGVjdGVkUmFuZ2VdID0gdXNlU3RhdGUoRU1QVFlfUkFOR0UpO1xuICAgIGNvbnN0IFthcHBsaWVkUmFuZ2UsIHNldEFwcGxpZWRSYW5nZV0gPSB1c2VTdGF0ZShFTVBUWV9SQU5HRSk7XG4gICAgY29uc3QgW3NlbGVjdGVkVGV4dCwgc2V0U2VsZWN0ZWRUZXh0XSA9IHVzZVN0YXRlKGluaXRpYWxUZXh0KTtcbiAgICBjb25zdCBbc2hvd0N1c3RvbVJhbmdlLCBzZXRTaG93Q3VzdG9tUmFuZ2VdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFttb250aFZpZXcsIHNldE1vbnRoVmlld10gPSB1c2VTdGF0ZSh1bmRlZmluZWQpO1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICBjbGVhcjogKCkgPT4ge1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb24obnVsbCk7XG4gICAgICAgICAgICBzZXRMYXN0U2VsZWN0ZWRPcHRpb24obnVsbCk7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFJhbmdlKEVNUFRZX1JBTkdFKTtcbiAgICAgICAgICAgIHNldEFwcGxpZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFRleHQoJycpO1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIHNldE1vbnRoVmlldyh1bmRlZmluZWQpO1xuICAgICAgICB9LFxuICAgICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb24oaW5pdGlhbE9wdGlvbik7XG4gICAgICAgICAgICBzZXRMYXN0U2VsZWN0ZWRPcHRpb24oaW5pdGlhbE9wdGlvbik7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFJhbmdlKEVNUFRZX1JBTkdFKTtcbiAgICAgICAgICAgIHNldEFwcGxpZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFRleHQoaW5pdGlhbFRleHQpO1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIHNldE1vbnRoVmlldyh1bmRlZmluZWQpO1xuICAgICAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgICAgIH0sXG4gICAgfSksIFtpbml0aWFsT3B0aW9uLCBpbml0aWFsVGV4dCwgb25SZXNldF0pO1xuICAgIGNvbnN0IGdldERpc3BsYXlMYWJlbCA9IHVzZUNhbGxiYWNrKChvcHRpb24pID0+IChvcHRpb24gPT09IE9QVElPTl9BTEwgPyBhbGxUcmFuc2FjdGlvbnNMYWJlbCA6IG9wdGlvbiksIFthbGxUcmFuc2FjdGlvbnNMYWJlbF0pO1xuICAgIGNvbnN0IGhhbmRsZUl0ZW1DbGljayA9IHVzZUNhbGxiYWNrKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbiA9PT0gT1BUSU9OX0NVU1RPTSkge1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkT3B0aW9uKG9wdGlvbik7XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlRGF0ZVNlbGVjdCA9IHVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnZhbHVlO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB2YWx1ZTtcbiAgICAgICAgaWYgKHN0YXJ0ICYmIGVuZCkge1xuICAgICAgICAgICAgc2V0TW9udGhWaWV3KHN0YXJ0KTtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkUmFuZ2UoeyBzdGFydERhdGU6IHN0YXJ0LCBlbmREYXRlOiBlbmQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoc3RhcnQpIHtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkUmFuZ2UoeyBzdGFydERhdGU6IHN0YXJ0LCBlbmREYXRlOiBudWxsIH0pO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGFwcGx5UHJlc2V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBpZiAoIXNlbGVjdGVkT3B0aW9uKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBvbkFwcGx5KGdldERhdGVGcm9tT3B0aW9uKHNlbGVjdGVkT3B0aW9uLCBzZWxlY3RlZFJhbmdlKSk7XG4gICAgICAgIHNldFNlbGVjdGVkVGV4dChnZXREaXNwbGF5TGFiZWwoc2VsZWN0ZWRPcHRpb24pKTtcbiAgICAgICAgc2V0TGFzdFNlbGVjdGVkT3B0aW9uKHNlbGVjdGVkT3B0aW9uKTtcbiAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKGZhbHNlKTtcbiAgICAgICAgc2V0U2VsZWN0ZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgIHNldEFwcGxpZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgIHNldE1vbnRoVmlldyh1bmRlZmluZWQpO1xuICAgICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICB9LCBbc2VsZWN0ZWRPcHRpb24sIHNlbGVjdGVkUmFuZ2UsIG9uQXBwbHksIGdldERpc3BsYXlMYWJlbF0pO1xuICAgIGNvbnN0IGFwcGx5Q3VzdG9tID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0YXJ0RGF0ZSwgZW5kRGF0ZSB9ID0gc2VsZWN0ZWRSYW5nZTtcbiAgICAgICAgaWYgKCFzdGFydERhdGUgfHwgIWVuZERhdGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIG9uQXBwbHkoeyBzdGFydERhdGU6IHN0YXJ0T2ZEYXkoc3RhcnREYXRlKSwgZW5kRGF0ZTogZW5kT2ZEYXkoZW5kRGF0ZSkgfSk7XG4gICAgICAgIHNldFNlbGVjdGVkVGV4dChmb3JtYXRSYW5nZShzdGFydERhdGUsIGVuZERhdGUpKTtcbiAgICAgICAgc2V0TGFzdFNlbGVjdGVkT3B0aW9uKE9QVElPTl9DVVNUT00pO1xuICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbihudWxsKTtcbiAgICAgICAgc2V0QXBwbGllZFJhbmdlKHsgc3RhcnREYXRlLCBlbmREYXRlIH0pO1xuICAgICAgICBzZXRTaG93Q3VzdG9tUmFuZ2UodHJ1ZSk7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIH0sIFtzZWxlY3RlZFJhbmdlLCBvbkFwcGx5XSk7XG4gICAgY29uc3QgcmVzZXRTZWxlY3Rpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHNldFNlbGVjdGVkT3B0aW9uKGluaXRpYWxPcHRpb24pO1xuICAgICAgICBzZXRMYXN0U2VsZWN0ZWRPcHRpb24oaW5pdGlhbE9wdGlvbik7XG4gICAgICAgIHNldFNlbGVjdGVkVGV4dChpbml0aWFsVGV4dCk7XG4gICAgICAgIHNldFNlbGVjdGVkUmFuZ2UoRU1QVFlfUkFOR0UpO1xuICAgICAgICBzZXRBcHBsaWVkUmFuZ2UoRU1QVFlfUkFOR0UpO1xuICAgICAgICBzZXRNb250aFZpZXcodW5kZWZpbmVkKTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSwgW2luaXRpYWxPcHRpb24sIGluaXRpYWxUZXh0LCBvblJlc2V0XSk7XG4gICAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUNhbGxiYWNrKChuZXh0T3BlbikgPT4ge1xuICAgICAgICBzZXRPcGVuKG5leHRPcGVuKTtcbiAgICAgICAgaWYgKG5leHRPcGVuKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvLyBPbiBjbG9zZSB3aXRob3V0IEFwcGx5LCBzbmFwIHRoZSBwYW5lbCBiYWNrIHRvIHRoZSBsYXN0IGNvbW1pdHRlZCBzdGF0ZVxuICAgICAgICAvLyBzbyBhbiBhYmFuZG9uZWQgZWRpdCBkb2Vzbid0IGxpbmdlci5cbiAgICAgICAgaWYgKGxhc3RTZWxlY3RlZE9wdGlvbiA9PT0gT1BUSU9OX0NVU1RPTSkge1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKHRydWUpO1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRSYW5nZShhcHBsaWVkUmFuZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkT3B0aW9uKGxhc3RTZWxlY3RlZE9wdGlvbik7XG4gICAgICAgIH1cbiAgICB9LCBbbGFzdFNlbGVjdGVkT3B0aW9uLCBhcHBsaWVkUmFuZ2VdKTtcbiAgICBjb25zdCBjYWxlbmRhclZhbHVlID0gc2VsZWN0ZWRSYW5nZS5zdGFydERhdGVcbiAgICAgICAgPyBzZWxlY3RlZFJhbmdlLmVuZERhdGVcbiAgICAgICAgICAgID8gW3NlbGVjdGVkUmFuZ2Uuc3RhcnREYXRlLCBzZWxlY3RlZFJhbmdlLmVuZERhdGVdXG4gICAgICAgICAgICA6IFtzZWxlY3RlZFJhbmdlLnN0YXJ0RGF0ZV1cbiAgICAgICAgOiBudWxsO1xuICAgIGNvbnN0IHJlbmRlclByZXNldExpc3QgPSAoKSA9PiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbX2pzeChcInVsXCIsIHsgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX2xpc3RgLCBjaGlsZHJlbjogREFURV9SQU5HRV9PUFRJT05TLm1hcCgob3B0aW9uKSA9PiAoX2pzeHMoXCJsaVwiLCB7IGNsYXNzTmFtZTogam9pbkNscyhgJHtXUkFQX0NMU31fX2l0ZW1gLCBvcHRpb24gPT09IE9QVElPTl9DVVNUT00gJiYgYCR7V1JBUF9DTFN9X19pdGVtLS1jdXN0b21gLCBzZWxlY3RlZE9wdGlvbiA9PT0gb3B0aW9uICYmIGAke1dSQVBfQ0xTfV9faXRlbS0tc2VsZWN0ZWRgKSwgb25DbGljazogKCkgPT4gaGFuZGxlSXRlbUNsaWNrKG9wdGlvbiksIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnc20nLCBzdHJvbmc6IHRydWUsIGNoaWxkcmVuOiBnZXREaXNwbGF5TGFiZWwob3B0aW9uKSB9KSwgb3B0aW9uID09PSBPUFRJT05fQ1VTVE9NID8gKF9qc3goSWNvbnMsIHsgbmFtZTogJ2NoZXZyb25SaWdodCcsIHNpemU6IENIRVZST05fU0laRSB9KSkgOiAoX2pzeChSYWRpbywgeyBzaXplOiAnc21hbGwnLCBjaGVja2VkOiBzZWxlY3RlZE9wdGlvbiA9PT0gb3B0aW9uIH0pKV0gfSwgb3B0aW9uKSkpIH0pLCBfanN4cyhGbGV4LCB7IGdhcDogOCwgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX2Zvb3RlcmAsIGNoaWxkcmVuOiBbX2pzeChCdXR0b24sIHsgY29sb3I6ICdncmV5Jywgc2l6ZTogJ3NtYWxsJywgc3R5bGU6IEZVTExfV0lEVEhfU1RZTEUsIG9uQ2xpY2s6IHJlc2V0U2VsZWN0aW9uLCBjaGlsZHJlbjogUkVTRVRfTEFCRUwgfSksIF9qc3goQnV0dG9uLCB7IGNvbG9yOiAncHJpbWFyeScsIHNpemU6ICdzbWFsbCcsIHN0eWxlOiBGVUxMX1dJRFRIX1NUWUxFLCBkaXNhYmxlZDogIXNlbGVjdGVkT3B0aW9uLCBvbkNsaWNrOiBhcHBseVByZXNldCwgY2hpbGRyZW46IEFQUExZX0xBQkVMIH0pXSB9KV0gfSkpO1xuICAgIGNvbnN0IHJlbmRlckN1c3RvbVJhbmdlID0gKCkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX2N1c3RvbWAsIGNoaWxkcmVuOiBbX2pzeHMoRmxleCwgeyBhbGlnbjogJ2NlbnRlcicsIGdhcDogOCwgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX2N1c3RvbS1oZWFkZXJgLCBjaGlsZHJlbjogW19qc3goSWNvbnMsIHsgbmFtZTogJ2Fycm93TGVmdCcsIHNpemU6IEJBQ0tfSUNPTl9TSVpFLCB3cmFwcGVyQ2xzOiBgJHtXUkFQX0NMU31fX2JhY2staWNvbmAsIG9uQ2xpY2s6ICgpID0+IHNldFNob3dDdXN0b21SYW5nZShmYWxzZSkgfSksIF9qc3goVHlwb2dyYXBoeUxhYmVsLCB7IHNpemU6ICdsZycsIGNoaWxkcmVuOiBDVVNUT01fUkFOR0VfVElUTEUgfSldIH0pLCBfanN4KENhbGVuZGFyLCB7IHdyYXBwZXJDbHM6IGAke1dSQVBfQ0xTfV9fY2FsZW5kYXJgLCBwYW5lbENsYXNzTmFtZTogQ0FMRU5EQVJfUEFORUxfQ0xTLCBzaXplOiAnc21hbGwnLCBzZWxlY3Rpb25Nb2RlOiAncmFuZ2UnLCBwbGFjZWhvbGRlcjogJ01NL0REL1lZWVkgLSBNTS9ERC9ZWVlZJywgcmVhZE9ubHlJbnB1dDogdHJ1ZSwgaGlkZU9uUmFuZ2VTZWxlY3Rpb246IHRydWUsIG51bWJlck9mTW9udGhzOiBDQUxFTkRBUl9NT05USFMsIHZhbHVlOiBjYWxlbmRhclZhbHVlLCB2aWV3RGF0ZTogbW9udGhWaWV3LCBvblZpZXdEYXRlQ2hhbmdlOiAoZXZlbnQpID0+IHNldE1vbnRoVmlldyhldmVudC52YWx1ZSksIG9uQ2hhbmdlOiBoYW5kbGVEYXRlU2VsZWN0IH0pLCBfanN4cyhGbGV4LCB7IGdhcDogOCwgY2xhc3NOYW1lOiBqb2luQ2xzKGAke1dSQVBfQ0xTfV9fZm9vdGVyYCwgYCR7V1JBUF9DTFN9X19mb290ZXItLWJvcmRlcmVkYCksIGNoaWxkcmVuOiBbX2pzeChCdXR0b24sIHsgY29sb3I6ICdncmV5Jywgc2l6ZTogJ3NtYWxsJywgc3R5bGU6IEZVTExfV0lEVEhfU1RZTEUsIG9uQ2xpY2s6IHJlc2V0U2VsZWN0aW9uLCBjaGlsZHJlbjogUkVTRVRfTEFCRUwgfSksIF9qc3goQnV0dG9uLCB7IGNvbG9yOiAncHJpbWFyeScsIHNpemU6ICdzbWFsbCcsIHN0eWxlOiBGVUxMX1dJRFRIX1NUWUxFLCBkaXNhYmxlZDogIXNlbGVjdGVkUmFuZ2Uuc3RhcnREYXRlIHx8ICFzZWxlY3RlZFJhbmdlLmVuZERhdGUsIG9uQ2xpY2s6IGFwcGx5Q3VzdG9tLCBjaGlsZHJlbjogQVBQTFlfTEFCRUwgfSldIH0pXSB9KSk7XG4gICAgcmV0dXJuIChfanN4KFNlbGVjdC5DdXN0b20sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXG4gICAgICAgIC8vIEZpeGVkIDMycHggXCJFeHRyYSBTbWFsbFwiIHRyaWdnZXI6IHRoZSBzY29wZWQgYHRyaWdnZXIteHNgIG92ZXJyaWRlIG9ubHlcbiAgICAgICAgLy8gdGFyZ2V0cyB0aGUgYHNtYWxsYCB0cmlnZ2VyLCBzbyB0aGUgc2l6ZSBpcyBsb2NrZWQgaGVyZSByYXRoZXIgdGhhblxuICAgICAgICAvLyBleHBvc2VkIGFzIGEgcHJvcC5cbiAgICAgICAgc2l6ZTogJ3NtYWxsJywgYW5pbWF0aW9uOiBmYWxzZSwgbGFiZWw6IGxhYmVsLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIGNsYXNzTmFtZTogam9pbkNscyhXUkFQX0NMUywgY2xhc3NOYW1lKSwgcGFuZWxDbGFzc05hbWU6IFNFTEVDVF9QQU5FTF9DTFMsIHBhbmVsV2lkdGg6IHNob3dDdXN0b21SYW5nZSA/IFBBTkVMX1dJRFRIX0NVU1RPTSA6IFBBTkVMX1dJRFRIX1BSRVNFVCwgb3Blbjogb3Blbiwgb25PcGVuQ2hhbmdlOiBoYW5kbGVPcGVuQ2hhbmdlLCBzZWxlY3RlZFRlbXBsYXRlOiBzZWxlY3RlZFRleHQgPyAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnbWQnLCBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fdmFsdWVgLCBjaGlsZHJlbjogX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fdmFsdWUtbGFiZWxgLCBjaGlsZHJlbjogc2VsZWN0ZWRUZXh0IH0pIH0pKSA6IG51bGwsIGNoaWxkcmVuOiAoKSA9PiAoc2hvd0N1c3RvbVJhbmdlID8gcmVuZGVyQ3VzdG9tUmFuZ2UoKSA6IHJlbmRlclByZXNldExpc3QoKSkgfSkpKTtcbn07XG5leHBvcnQgY29uc3QgRGF0ZVJhbmdlRmlsdGVyID0gbWVtbyhEYXRlUmFuZ2VGaWx0ZXJCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -27,11 +27,6 @@ export interface DateRangeFilterHandler {
|
|
|
27
27
|
}
|
|
28
28
|
export interface DateRangeFilterProps extends Omit<SelectCustomProps, 'ref' | 'size' | 'placeholder' | 'children' | 'selectedTemplate' | 'open' | 'defaultOpen' | 'onOpenChange' | 'panelWidth' | 'role' | 'arrow'> {
|
|
29
29
|
ref?: RefObject<DateRangeFilterHandler | null>;
|
|
30
|
-
/**
|
|
31
|
-
* Trigger size. Mirrors the host filter row sizing.
|
|
32
|
-
* @default 'small'
|
|
33
|
-
*/
|
|
34
|
-
size?: 'small' | 'large';
|
|
35
30
|
/** Optional field label rendered above the trigger. */
|
|
36
31
|
label?: ReactNode;
|
|
37
32
|
/**
|
|
@@ -20,18 +20,28 @@
|
|
|
20
20
|
* gap: om-spacing-value(2); // Returns 8px if $om-sys-spacing-unit is 4px
|
|
21
21
|
* }
|
|
22
22
|
*/
|
|
23
|
+
.om-date-range-filter .om-component-ui-select-trigger-small {
|
|
24
|
+
min-height: var(--om-component-height-sm, 32px);
|
|
25
|
+
height: var(--om-component-height-sm, 32px);
|
|
26
|
+
padding: var(--om-spacing-200, 8px) var(--om-spacing-300, 12px);
|
|
27
|
+
}
|
|
23
28
|
.om-date-range-filter__value {
|
|
24
29
|
display: inline-flex;
|
|
25
30
|
align-items: center;
|
|
26
31
|
width: 100%;
|
|
27
32
|
overflow: hidden;
|
|
28
33
|
line-height: 18px;
|
|
34
|
+
}
|
|
35
|
+
.om-date-range-filter__value-label {
|
|
36
|
+
min-width: 0;
|
|
37
|
+
overflow: hidden;
|
|
29
38
|
white-space: nowrap;
|
|
30
39
|
text-overflow: ellipsis;
|
|
31
40
|
}
|
|
32
41
|
.om-date-range-filter__list {
|
|
33
42
|
display: flex;
|
|
34
43
|
flex-direction: column;
|
|
44
|
+
gap: var(--om-spacing-100, 4px);
|
|
35
45
|
margin: 0;
|
|
36
46
|
padding: 0;
|
|
37
47
|
list-style: none;
|
|
@@ -41,13 +51,13 @@
|
|
|
41
51
|
align-items: center;
|
|
42
52
|
justify-content: space-between;
|
|
43
53
|
width: 100%;
|
|
44
|
-
height:
|
|
45
|
-
padding: var(--om-spacing-
|
|
54
|
+
height: 34px;
|
|
55
|
+
padding: 6px var(--om-spacing-300, 12px);
|
|
46
56
|
cursor: pointer;
|
|
47
57
|
}
|
|
48
|
-
.om-date-range-filter__item:hover {
|
|
58
|
+
.om-date-range-filter__item:hover, .om-date-range-filter__item--selected {
|
|
49
59
|
background: var(--om-bg-default-secondary, #f8f8f8);
|
|
50
|
-
border-radius: var(--om-radius-
|
|
60
|
+
border-radius: var(--om-radius-200, 8px);
|
|
51
61
|
}
|
|
52
62
|
.om-date-range-filter__item--custom {
|
|
53
63
|
border-top: 1px solid var(--om-border-neutral, #e3e4e4);
|
|
@@ -70,7 +80,7 @@
|
|
|
70
80
|
width: 100%;
|
|
71
81
|
}
|
|
72
82
|
.om-date-range-filter__footer {
|
|
73
|
-
padding: var(--om-spacing-
|
|
83
|
+
padding: var(--om-spacing-200, 8px) 0;
|
|
74
84
|
}
|
|
75
85
|
.om-date-range-filter__footer--bordered {
|
|
76
86
|
border-top: 1px solid var(--om-border-neutral, #e3e4e4);
|