@pie-lib/config-ui 12.0.0-beta.5 → 12.1.0-next.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/CHANGELOG.json +8 -1653
- package/CHANGELOG.md +345 -4
- package/LICENSE.md +5 -0
- package/NEXT.CHANGELOG.json +1 -0
- package/lib/__tests__/alert-dialog.test.js +262 -0
- package/lib/__tests__/checkbox.test.js +227 -0
- package/lib/__tests__/choice-utils.test.js +14 -0
- package/lib/__tests__/form-section.test.js +252 -0
- package/lib/__tests__/help.test.js +270 -0
- package/lib/__tests__/input.test.js +268 -0
- package/lib/__tests__/langs.test.js +541 -0
- package/lib/__tests__/number-text-field-custom.test.js +362 -0
- package/lib/__tests__/number-text-field.test.js +421 -0
- package/lib/__tests__/radio-with-label.test.js +233 -0
- package/lib/__tests__/settings-panel.test.js +184 -0
- package/lib/__tests__/settings.test.js +653 -0
- package/lib/__tests__/tabs.test.js +211 -0
- package/lib/__tests__/two-choice.test.js +124 -0
- package/lib/__tests__/with-stateful-model.test.js +221 -0
- package/lib/alert-dialog.js +41 -11
- package/lib/alert-dialog.js.map +1 -1
- package/lib/checkbox.js +59 -49
- package/lib/checkbox.js.map +1 -1
- package/lib/choice-configuration/__tests__/feedback-menu.test.js +287 -0
- package/lib/choice-configuration/__tests__/index.test.js +253 -0
- package/lib/choice-configuration/feedback-menu.js +25 -27
- package/lib/choice-configuration/feedback-menu.js.map +1 -1
- package/lib/choice-configuration/index.js +183 -186
- package/lib/choice-configuration/index.js.map +1 -1
- package/lib/choice-utils.js +6 -8
- package/lib/choice-utils.js.map +1 -1
- package/lib/feedback-config/__tests__/feedback-config.test.js +201 -0
- package/lib/feedback-config/__tests__/feedback-selector.test.js +177 -0
- package/lib/feedback-config/feedback-selector.js +70 -74
- package/lib/feedback-config/feedback-selector.js.map +1 -1
- package/lib/feedback-config/group.js +23 -26
- package/lib/feedback-config/group.js.map +1 -1
- package/lib/feedback-config/index.js +42 -45
- package/lib/feedback-config/index.js.map +1 -1
- package/lib/form-section.js +32 -26
- package/lib/form-section.js.map +1 -1
- package/lib/help.js +38 -48
- package/lib/help.js.map +1 -1
- package/lib/index.js +2 -3
- package/lib/index.js.map +1 -1
- package/lib/input.js +13 -18
- package/lib/input.js.map +1 -1
- package/lib/inputs.js +59 -68
- package/lib/inputs.js.map +1 -1
- package/lib/langs.js +57 -71
- package/lib/langs.js.map +1 -1
- package/lib/layout/__tests__/config.layout.test.js +70 -0
- package/lib/layout/__tests__/layout-content.test.js +6 -0
- package/lib/layout/config-layout.js +79 -48
- package/lib/layout/config-layout.js.map +1 -1
- package/lib/layout/index.js +1 -1
- package/lib/layout/index.js.map +1 -1
- package/lib/layout/layout-contents.js +59 -61
- package/lib/layout/layout-contents.js.map +1 -1
- package/lib/layout/settings-box.js +26 -34
- package/lib/layout/settings-box.js.map +1 -1
- package/lib/mui-box/index.js +42 -51
- package/lib/mui-box/index.js.map +1 -1
- package/lib/number-text-field-custom.js +152 -90
- package/lib/number-text-field-custom.js.map +1 -1
- package/lib/number-text-field.js +75 -64
- package/lib/number-text-field.js.map +1 -1
- package/lib/radio-with-label.js +31 -17
- package/lib/radio-with-label.js.map +1 -1
- package/lib/settings/display-size.js +17 -21
- package/lib/settings/display-size.js.map +1 -1
- package/lib/settings/index.js +14 -20
- package/lib/settings/index.js.map +1 -1
- package/lib/settings/panel.js +141 -142
- package/lib/settings/panel.js.map +1 -1
- package/lib/settings/settings-radio-label.js +30 -17
- package/lib/settings/settings-radio-label.js.map +1 -1
- package/lib/settings/toggle.js +40 -26
- package/lib/settings/toggle.js.map +1 -1
- package/lib/tabs/index.js +19 -31
- package/lib/tabs/index.js.map +1 -1
- package/lib/tags-input/__tests__/index.test.js +183 -0
- package/lib/tags-input/index.js +50 -62
- package/lib/tags-input/index.js.map +1 -1
- package/lib/two-choice.js +34 -44
- package/lib/two-choice.js.map +1 -1
- package/lib/with-stateful-model.js +9 -13
- package/lib/with-stateful-model.js.map +1 -1
- package/package.json +14 -11
- package/src/__tests__/alert-dialog.test.jsx +283 -0
- package/src/__tests__/checkbox.test.jsx +249 -0
- package/src/__tests__/choice-utils.test.js +12 -0
- package/src/__tests__/form-section.test.jsx +334 -0
- package/src/__tests__/help.test.jsx +184 -0
- package/src/__tests__/input.test.jsx +192 -0
- package/src/__tests__/langs.test.jsx +457 -0
- package/src/__tests__/number-text-field-custom.test.jsx +438 -0
- package/src/__tests__/number-text-field.test.jsx +341 -0
- package/src/__tests__/radio-with-label.test.jsx +259 -0
- package/src/__tests__/settings-panel.test.js +187 -0
- package/src/__tests__/settings.test.jsx +515 -0
- package/src/__tests__/tabs.test.jsx +193 -0
- package/src/__tests__/two-choice.test.js +110 -0
- package/src/__tests__/with-stateful-model.test.jsx +145 -0
- package/src/alert-dialog.jsx +30 -8
- package/src/checkbox.jsx +43 -37
- package/src/choice-configuration/__tests__/feedback-menu.test.jsx +163 -0
- package/src/choice-configuration/__tests__/index.test.jsx +234 -0
- package/src/choice-configuration/feedback-menu.jsx +6 -6
- package/src/choice-configuration/index.jsx +208 -199
- package/src/feedback-config/__tests__/feedback-config.test.jsx +141 -0
- package/src/feedback-config/__tests__/feedback-selector.test.jsx +97 -0
- package/src/feedback-config/feedback-selector.jsx +50 -55
- package/src/feedback-config/group.jsx +21 -22
- package/src/feedback-config/index.jsx +27 -29
- package/src/form-section.jsx +26 -18
- package/src/help.jsx +20 -28
- package/src/input.jsx +1 -1
- package/src/inputs.jsx +35 -44
- package/src/langs.jsx +41 -46
- package/src/layout/__tests__/config.layout.test.jsx +59 -0
- package/src/layout/__tests__/layout-content.test.jsx +3 -0
- package/src/layout/config-layout.jsx +53 -23
- package/src/layout/layout-contents.jsx +38 -40
- package/src/layout/settings-box.jsx +16 -19
- package/src/mui-box/index.jsx +35 -43
- package/src/number-text-field-custom.jsx +117 -65
- package/src/number-text-field.jsx +51 -34
- package/src/radio-with-label.jsx +26 -10
- package/src/settings/display-size.jsx +12 -11
- package/src/settings/index.js +2 -1
- package/src/settings/panel.jsx +101 -92
- package/src/settings/settings-radio-label.jsx +26 -10
- package/src/settings/toggle.jsx +37 -18
- package/src/tabs/index.jsx +8 -8
- package/src/tags-input/__tests__/index.test.jsx +113 -0
- package/src/tags-input/index.jsx +35 -38
- package/src/two-choice.jsx +15 -19
- package/README.md +0 -12
|
@@ -8,59 +8,57 @@ exports["default"] = exports.ChoiceConfiguration = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
12
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
11
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
14
12
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
13
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
15
|
var _react = _interopRequireDefault(require("react"));
|
|
17
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
18
|
-
var _styles = require("@material
|
|
19
|
-
var _TextField = _interopRequireDefault(require("@material
|
|
20
|
-
var
|
|
17
|
+
var _styles = require("@mui/material/styles");
|
|
18
|
+
var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
|
|
19
|
+
var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
|
|
20
|
+
var _SubdirectoryArrowRight = _interopRequireDefault(require("@mui/icons-material/SubdirectoryArrowRight"));
|
|
21
|
+
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
21
22
|
var _renderUi = require("@pie-lib/render-ui");
|
|
22
|
-
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
23
23
|
var _inputs = require("../inputs");
|
|
24
24
|
var _feedbackMenu = _interopRequireDefault(require("./feedback-menu"));
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
function
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
26
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
27
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
28
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } // import EditableHtml from '@pie-lib/editable-html-tip-tap';
|
|
29
|
+
// - mathquill error window not defined
|
|
30
|
+
var EditableHtml;
|
|
31
|
+
if (typeof window !== 'undefined') {
|
|
32
|
+
EditableHtml = require('@pie-lib/editable-html-tip-tap')['default'];
|
|
33
|
+
}
|
|
34
|
+
var StyledEditorHolder = (0, _styles.styled)('div')(function (_ref) {
|
|
35
|
+
var theme = _ref.theme;
|
|
33
36
|
return {
|
|
34
|
-
|
|
35
|
-
editorHolder: {
|
|
36
|
-
marginTop: theme.spacing.unit * 2
|
|
37
|
-
}
|
|
37
|
+
marginTop: theme.spacing(2)
|
|
38
38
|
};
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
onChange =
|
|
43
|
-
value =
|
|
44
|
-
className =
|
|
45
|
-
imageSupport =
|
|
46
|
-
disableImageAlignmentButtons =
|
|
47
|
-
disabled =
|
|
48
|
-
spellCheck =
|
|
49
|
-
nonEmpty =
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
mathMlOptions =
|
|
57
|
-
|
|
39
|
+
});
|
|
40
|
+
var EditableHtmlContainer = function EditableHtmlContainer(_ref2) {
|
|
41
|
+
var label = _ref2.label,
|
|
42
|
+
onChange = _ref2.onChange,
|
|
43
|
+
value = _ref2.value,
|
|
44
|
+
className = _ref2.className,
|
|
45
|
+
imageSupport = _ref2.imageSupport,
|
|
46
|
+
disableImageAlignmentButtons = _ref2.disableImageAlignmentButtons,
|
|
47
|
+
disabled = _ref2.disabled,
|
|
48
|
+
spellCheck = _ref2.spellCheck,
|
|
49
|
+
nonEmpty = _ref2.nonEmpty,
|
|
50
|
+
pluginOpts = _ref2.pluginOpts,
|
|
51
|
+
toolbarOpts = _ref2.toolbarOpts,
|
|
52
|
+
error = _ref2.error,
|
|
53
|
+
maxImageWidth = _ref2.maxImageWidth,
|
|
54
|
+
maxImageHeight = _ref2.maxImageHeight,
|
|
55
|
+
uploadSoundSupport = _ref2.uploadSoundSupport,
|
|
56
|
+
_ref2$mathMlOptions = _ref2.mathMlOptions,
|
|
57
|
+
mathMlOptions = _ref2$mathMlOptions === void 0 ? {} : _ref2$mathMlOptions;
|
|
58
58
|
return /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
|
|
59
59
|
label: label,
|
|
60
|
-
className:
|
|
61
|
-
}, /*#__PURE__*/_react["default"].createElement("
|
|
62
|
-
className: classes.editorHolder
|
|
63
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
60
|
+
className: className
|
|
61
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledEditorHolder, null, /*#__PURE__*/_react["default"].createElement(EditableHtml, {
|
|
64
62
|
markup: value || '',
|
|
65
63
|
disabled: disabled,
|
|
66
64
|
spellCheck: spellCheck,
|
|
@@ -68,7 +66,7 @@ var EditableHtmlContainer = (0, _styles.withStyles)(function (theme) {
|
|
|
68
66
|
onChange: onChange,
|
|
69
67
|
imageSupport: imageSupport,
|
|
70
68
|
disableImageAlignmentButtons: disableImageAlignmentButtons,
|
|
71
|
-
|
|
69
|
+
pluginProps: pluginOpts || {},
|
|
72
70
|
toolbarOpts: toolbarOpts,
|
|
73
71
|
error: error,
|
|
74
72
|
maxImageWidth: maxImageWidth,
|
|
@@ -81,51 +79,54 @@ var EditableHtmlContainer = (0, _styles.withStyles)(function (theme) {
|
|
|
81
79
|
}],
|
|
82
80
|
mathMlOptions: mathMlOptions
|
|
83
81
|
})));
|
|
82
|
+
};
|
|
83
|
+
var StyledFeedbackContainer = (0, _styles.styled)('div')(function () {
|
|
84
|
+
return {
|
|
85
|
+
position: 'relative'
|
|
86
|
+
};
|
|
84
87
|
});
|
|
85
|
-
var
|
|
88
|
+
var StyledArrowIcon = (0, _styles.styled)(_SubdirectoryArrowRight["default"])(function (_ref3) {
|
|
89
|
+
var theme = _ref3.theme;
|
|
86
90
|
return {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
position: 'relative'
|
|
92
|
-
},
|
|
93
|
-
arrowIcon: {
|
|
94
|
-
fill: theme.palette.grey[400],
|
|
95
|
-
left: -56,
|
|
96
|
-
position: 'absolute',
|
|
97
|
-
top: 20
|
|
98
|
-
}
|
|
91
|
+
fill: theme.palette.grey[400],
|
|
92
|
+
left: -56,
|
|
93
|
+
position: 'absolute',
|
|
94
|
+
top: 40
|
|
99
95
|
};
|
|
100
|
-
})
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
96
|
+
});
|
|
97
|
+
var StyledTextField = (0, _styles.styled)(_TextField["default"])(function (_ref4) {
|
|
98
|
+
var theme = _ref4.theme;
|
|
99
|
+
return {
|
|
100
|
+
width: '100%',
|
|
101
|
+
marginTop: theme.spacing(2)
|
|
102
|
+
};
|
|
103
|
+
});
|
|
104
|
+
var StyledEditableHtmlContainer = (0, _styles.styled)(EditableHtmlContainer)(function (_ref5) {
|
|
105
|
+
var theme = _ref5.theme;
|
|
106
|
+
return {
|
|
107
|
+
width: '100%',
|
|
108
|
+
marginTop: theme.spacing(2)
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
var Feedback = function Feedback(_ref6) {
|
|
112
|
+
var value = _ref6.value,
|
|
113
|
+
onChange = _ref6.onChange,
|
|
114
|
+
type = _ref6.type,
|
|
115
|
+
correct = _ref6.correct,
|
|
116
|
+
defaults = _ref6.defaults,
|
|
117
|
+
toolbarOpts = _ref6.toolbarOpts,
|
|
118
|
+
_ref6$mathMlOptions = _ref6.mathMlOptions,
|
|
119
|
+
mathMlOptions = _ref6$mathMlOptions === void 0 ? {} : _ref6$mathMlOptions;
|
|
110
120
|
if (!type || type === 'none') {
|
|
111
121
|
return null;
|
|
112
122
|
} else if (type === 'default') {
|
|
113
|
-
return /*#__PURE__*/_react["default"].createElement("
|
|
114
|
-
className: classes.feedbackContainer
|
|
115
|
-
}, /*#__PURE__*/_react["default"].createElement(_SubdirectoryArrowRight["default"], {
|
|
116
|
-
className: classes.arrowIcon
|
|
117
|
-
}), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
118
|
-
className: classes.text,
|
|
123
|
+
return /*#__PURE__*/_react["default"].createElement(StyledFeedbackContainer, null, /*#__PURE__*/_react["default"].createElement(StyledArrowIcon, null), /*#__PURE__*/_react["default"].createElement(StyledTextField, {
|
|
119
124
|
label: "Feedback Text",
|
|
120
|
-
value: correct ? defaults.correct : defaults.incorrect
|
|
125
|
+
value: correct ? defaults.correct : defaults.incorrect,
|
|
126
|
+
variant: "standard"
|
|
121
127
|
}));
|
|
122
128
|
} else {
|
|
123
|
-
return /*#__PURE__*/_react["default"].createElement("
|
|
124
|
-
className: classes.feedbackContainer
|
|
125
|
-
}, /*#__PURE__*/_react["default"].createElement(_SubdirectoryArrowRight["default"], {
|
|
126
|
-
className: classes.arrowIcon
|
|
127
|
-
}), /*#__PURE__*/_react["default"].createElement(EditableHtmlContainer, {
|
|
128
|
-
className: classes.text,
|
|
129
|
+
return /*#__PURE__*/_react["default"].createElement(StyledFeedbackContainer, null, /*#__PURE__*/_react["default"].createElement(StyledArrowIcon, null), /*#__PURE__*/_react["default"].createElement(StyledEditableHtmlContainer, {
|
|
129
130
|
label: "Feedback Text",
|
|
130
131
|
value: value,
|
|
131
132
|
onChange: onChange,
|
|
@@ -133,18 +134,86 @@ var Feedback = (0, _styles.withStyles)(function (theme) {
|
|
|
133
134
|
mathMlOptions: mathMlOptions
|
|
134
135
|
}));
|
|
135
136
|
}
|
|
137
|
+
};
|
|
138
|
+
var StyledIndex = (0, _styles.styled)('span')(function (_ref7) {
|
|
139
|
+
var theme = _ref7.theme;
|
|
140
|
+
return {
|
|
141
|
+
paddingRight: theme.spacing(1),
|
|
142
|
+
paddingTop: theme.spacing(3)
|
|
143
|
+
};
|
|
136
144
|
});
|
|
137
|
-
var
|
|
138
|
-
|
|
139
|
-
|
|
145
|
+
var StyledTopRow = (0, _styles.styled)('div')(function () {
|
|
146
|
+
return {
|
|
147
|
+
display: 'flex',
|
|
148
|
+
alignItems: 'center'
|
|
149
|
+
};
|
|
150
|
+
});
|
|
151
|
+
var StyledToggle = (0, _styles.styled)('div')(function (_ref8) {
|
|
152
|
+
var theme = _ref8.theme;
|
|
153
|
+
return {
|
|
154
|
+
flex: '0 1 auto',
|
|
155
|
+
paddingTop: theme.spacing(0.5),
|
|
156
|
+
paddingBottom: 0,
|
|
157
|
+
marginRight: 0,
|
|
158
|
+
marginLeft: theme.spacing(1)
|
|
159
|
+
};
|
|
160
|
+
});
|
|
161
|
+
var StyledFeedback = (0, _styles.styled)('div')(function (_ref9) {
|
|
162
|
+
var theme = _ref9.theme;
|
|
163
|
+
return {
|
|
164
|
+
flex: '0 1 auto',
|
|
165
|
+
paddingTop: theme.spacing(2),
|
|
166
|
+
paddingLeft: 0,
|
|
167
|
+
marginLeft: 0,
|
|
168
|
+
marginRight: theme.spacing(1)
|
|
169
|
+
};
|
|
170
|
+
});
|
|
171
|
+
var StyledFeedbackIcon = (0, _styles.styled)('div')(function () {
|
|
172
|
+
return {
|
|
173
|
+
margin: 0,
|
|
174
|
+
width: 'inherit'
|
|
175
|
+
};
|
|
176
|
+
});
|
|
177
|
+
var StyledDeleteIcon = (0, _styles.styled)('div')(function () {
|
|
178
|
+
return {
|
|
179
|
+
margin: 0,
|
|
180
|
+
width: 'inherit'
|
|
181
|
+
};
|
|
182
|
+
});
|
|
183
|
+
var StyledDelete = (0, _styles.styled)('div')(function (_ref0) {
|
|
184
|
+
var theme = _ref0.theme;
|
|
185
|
+
return {
|
|
186
|
+
flex: '0 1 auto',
|
|
187
|
+
paddingTop: theme.spacing(2),
|
|
188
|
+
paddingLeft: 0,
|
|
189
|
+
marginLeft: 0
|
|
190
|
+
};
|
|
191
|
+
});
|
|
192
|
+
var StyledMiddleColumn = (0, _styles.styled)('div')(function (_ref1) {
|
|
193
|
+
var theme = _ref1.theme;
|
|
194
|
+
return {
|
|
195
|
+
display: 'flex',
|
|
196
|
+
flex: 1,
|
|
197
|
+
flexDirection: 'column',
|
|
198
|
+
marginRight: theme.spacing(1)
|
|
199
|
+
};
|
|
200
|
+
});
|
|
201
|
+
var StyledErrorText = (0, _styles.styled)('div')(function (_ref10) {
|
|
202
|
+
var theme = _ref10.theme;
|
|
203
|
+
return {
|
|
204
|
+
fontSize: theme.typography.fontSize - 2,
|
|
205
|
+
color: theme.palette.error.main
|
|
206
|
+
};
|
|
207
|
+
});
|
|
208
|
+
var ChoiceConfiguration = exports.ChoiceConfiguration = /*#__PURE__*/function (_React$Component) {
|
|
140
209
|
function ChoiceConfiguration() {
|
|
141
210
|
var _this;
|
|
142
211
|
(0, _classCallCheck2["default"])(this, ChoiceConfiguration);
|
|
143
212
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
144
213
|
args[_key] = arguments[_key];
|
|
145
214
|
}
|
|
146
|
-
_this =
|
|
147
|
-
(0, _defineProperty2["default"])(
|
|
215
|
+
_this = _callSuper(this, ChoiceConfiguration, [].concat(args));
|
|
216
|
+
(0, _defineProperty2["default"])(_this, "_changeFn", function (key) {
|
|
148
217
|
return function (update) {
|
|
149
218
|
var _this$props = _this.props,
|
|
150
219
|
data = _this$props.data,
|
|
@@ -154,8 +223,8 @@ var ChoiceConfiguration = /*#__PURE__*/function (_React$Component) {
|
|
|
154
223
|
}
|
|
155
224
|
};
|
|
156
225
|
});
|
|
157
|
-
(0, _defineProperty2["default"])(
|
|
158
|
-
(0, _defineProperty2["default"])(
|
|
226
|
+
(0, _defineProperty2["default"])(_this, "onLabelChange", _this._changeFn('label'));
|
|
227
|
+
(0, _defineProperty2["default"])(_this, "onCheckedChange", function (event) {
|
|
159
228
|
var correct = event.target.checked;
|
|
160
229
|
var _this$props2 = _this.props,
|
|
161
230
|
data = _this$props2.data,
|
|
@@ -166,7 +235,7 @@ var ChoiceConfiguration = /*#__PURE__*/function (_React$Component) {
|
|
|
166
235
|
}));
|
|
167
236
|
}
|
|
168
237
|
});
|
|
169
|
-
(0, _defineProperty2["default"])(
|
|
238
|
+
(0, _defineProperty2["default"])(_this, "onFeedbackValueChange", function (v) {
|
|
170
239
|
var _this$props3 = _this.props,
|
|
171
240
|
data = _this$props3.data,
|
|
172
241
|
onChange = _this$props3.onChange;
|
|
@@ -180,7 +249,7 @@ var ChoiceConfiguration = /*#__PURE__*/function (_React$Component) {
|
|
|
180
249
|
feedback: fb
|
|
181
250
|
}));
|
|
182
251
|
});
|
|
183
|
-
(0, _defineProperty2["default"])(
|
|
252
|
+
(0, _defineProperty2["default"])(_this, "onFeedbackTypeChange", function (t) {
|
|
184
253
|
var _this$props4 = _this.props,
|
|
185
254
|
data = _this$props4.data,
|
|
186
255
|
onChange = _this$props4.onChange;
|
|
@@ -196,12 +265,12 @@ var ChoiceConfiguration = /*#__PURE__*/function (_React$Component) {
|
|
|
196
265
|
});
|
|
197
266
|
return _this;
|
|
198
267
|
}
|
|
199
|
-
(0,
|
|
268
|
+
(0, _inherits2["default"])(ChoiceConfiguration, _React$Component);
|
|
269
|
+
return (0, _createClass2["default"])(ChoiceConfiguration, [{
|
|
200
270
|
key: "render",
|
|
201
271
|
value: function render() {
|
|
202
272
|
var _this$props5 = this.props,
|
|
203
273
|
data = _this$props5.data,
|
|
204
|
-
classes = _this$props5.classes,
|
|
205
274
|
mode = _this$props5.mode,
|
|
206
275
|
onDelete = _this$props5.onDelete,
|
|
207
276
|
defaultFeedback = _this$props5.defaultFeedback,
|
|
@@ -216,31 +285,24 @@ var ChoiceConfiguration = /*#__PURE__*/function (_React$Component) {
|
|
|
216
285
|
nonEmpty = _this$props5.nonEmpty,
|
|
217
286
|
allowFeedBack = _this$props5.allowFeedBack,
|
|
218
287
|
allowDelete = _this$props5.allowDelete,
|
|
288
|
+
pluginOpts = _this$props5.pluginOpts,
|
|
219
289
|
toolbarOpts = _this$props5.toolbarOpts,
|
|
220
290
|
error = _this$props5.error,
|
|
221
291
|
noCorrectAnswerError = _this$props5.noCorrectAnswerError,
|
|
222
292
|
uploadSoundSupport = _this$props5.uploadSoundSupport,
|
|
293
|
+
maxImageWidth = _this$props5.maxImageWidth,
|
|
294
|
+
maxImageHeight = _this$props5.maxImageHeight,
|
|
223
295
|
_this$props5$mathMlOp = _this$props5.mathMlOptions,
|
|
224
296
|
mathMlOptions = _this$props5$mathMlOp === void 0 ? {} : _this$props5$mathMlOp;
|
|
225
297
|
var InputToggle = mode === 'checkbox' ? _inputs.InputCheckbox : _inputs.InputRadio;
|
|
226
|
-
|
|
227
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
228
|
-
className: names
|
|
229
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
230
|
-
className: classes.topRow
|
|
231
|
-
}, index > 0 && /*#__PURE__*/_react["default"].createElement("span", {
|
|
232
|
-
className: classes.index,
|
|
298
|
+
return /*#__PURE__*/_react["default"].createElement(StyledTopRow, null, index > 0 && /*#__PURE__*/_react["default"].createElement(StyledIndex, {
|
|
233
299
|
type: "title"
|
|
234
|
-
}, useLetterOrdering ? String.fromCharCode(96 + index).toUpperCase() : index), /*#__PURE__*/_react["default"].createElement(InputToggle, {
|
|
235
|
-
className: classes.toggle,
|
|
300
|
+
}, useLetterOrdering ? String.fromCharCode(96 + index).toUpperCase() : index), /*#__PURE__*/_react["default"].createElement(StyledToggle, null, /*#__PURE__*/_react["default"].createElement(InputToggle, {
|
|
236
301
|
onChange: this.onCheckedChange,
|
|
237
302
|
label: !noLabels ? 'Correct' : '',
|
|
238
303
|
checked: !!data.correct,
|
|
239
304
|
error: noCorrectAnswerError
|
|
240
|
-
}), /*#__PURE__*/_react["default"].createElement("
|
|
241
|
-
className: classes.middleColumn
|
|
242
|
-
}, /*#__PURE__*/_react["default"].createElement(EditableHtmlContainer, {
|
|
243
|
-
className: classes.input,
|
|
305
|
+
})), /*#__PURE__*/_react["default"].createElement(StyledMiddleColumn, null, /*#__PURE__*/_react["default"].createElement(EditableHtmlContainer, {
|
|
244
306
|
label: !noLabels ? 'Label' : '',
|
|
245
307
|
value: data.label,
|
|
246
308
|
onChange: this.onLabelChange,
|
|
@@ -249,41 +311,34 @@ var ChoiceConfiguration = /*#__PURE__*/function (_React$Component) {
|
|
|
249
311
|
disabled: disabled,
|
|
250
312
|
spellCheck: spellCheck,
|
|
251
313
|
nonEmpty: nonEmpty,
|
|
314
|
+
pluginOpts: pluginOpts,
|
|
252
315
|
toolbarOpts: toolbarOpts,
|
|
253
316
|
error: error,
|
|
254
317
|
uploadSoundSupport: uploadSoundSupport,
|
|
255
|
-
mathMlOptions: mathMlOptions
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
}, error), allowFeedBack && /*#__PURE__*/_react["default"].createElement(Feedback, (0, _extends2["default"])({}, data.feedback, {
|
|
318
|
+
mathMlOptions: mathMlOptions,
|
|
319
|
+
maxImageWidth: maxImageWidth,
|
|
320
|
+
maxImageHeight: maxImageHeight
|
|
321
|
+
}), error && /*#__PURE__*/_react["default"].createElement(StyledErrorText, null, error), allowFeedBack && /*#__PURE__*/_react["default"].createElement(Feedback, (0, _extends2["default"])({}, data.feedback, {
|
|
259
322
|
correct: data.correct,
|
|
260
323
|
defaults: defaultFeedback,
|
|
261
324
|
onChange: this.onFeedbackValueChange,
|
|
262
325
|
toolbarOpts: toolbarOpts
|
|
263
|
-
}))), allowFeedBack && /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
|
|
264
|
-
className: classes.feedback,
|
|
326
|
+
}))), allowFeedBack && /*#__PURE__*/_react["default"].createElement(StyledFeedback, null, /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
|
|
265
327
|
label: !noLabels ? 'Feedback' : ''
|
|
266
|
-
}, /*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
|
|
328
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledFeedbackIcon, null, /*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
|
|
267
329
|
onChange: this.onFeedbackTypeChange,
|
|
268
|
-
value: data.feedback
|
|
269
|
-
|
|
270
|
-
icon: classes.feedbackIcon
|
|
271
|
-
}
|
|
272
|
-
})), allowDelete && /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
|
|
273
|
-
className: classes["delete"],
|
|
330
|
+
value: data.feedback
|
|
331
|
+
})))), allowDelete && /*#__PURE__*/_react["default"].createElement(StyledDelete, null, /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
|
|
274
332
|
label: !noLabels ? 'Delete' : ''
|
|
275
|
-
}, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
333
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledDeleteIcon, null, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
276
334
|
"aria-label": "delete",
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
}, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)))));
|
|
335
|
+
onClick: onDelete,
|
|
336
|
+
size: "large"
|
|
337
|
+
}, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null))))));
|
|
280
338
|
}
|
|
281
339
|
}]);
|
|
282
|
-
return ChoiceConfiguration;
|
|
283
340
|
}(_react["default"].Component);
|
|
284
|
-
exports.ChoiceConfiguration = ChoiceConfiguration;
|
|
285
341
|
(0, _defineProperty2["default"])(ChoiceConfiguration, "propTypes", {
|
|
286
|
-
classes: _propTypes["default"].object.isRequired,
|
|
287
342
|
noLabels: _propTypes["default"].bool,
|
|
288
343
|
useLetterOrdering: _propTypes["default"].bool,
|
|
289
344
|
className: _propTypes["default"].string,
|
|
@@ -313,8 +368,11 @@ exports.ChoiceConfiguration = ChoiceConfiguration;
|
|
|
313
368
|
allowDelete: _propTypes["default"].bool,
|
|
314
369
|
noCorrectAnswerError: _propTypes["default"].string,
|
|
315
370
|
spellCheck: _propTypes["default"].bool,
|
|
371
|
+
pluginOpts: _propTypes["default"].object,
|
|
316
372
|
toolbarOpts: _propTypes["default"].object,
|
|
317
|
-
uploadSoundSupport: _propTypes["default"].object
|
|
373
|
+
uploadSoundSupport: _propTypes["default"].object,
|
|
374
|
+
maxImageWidth: _propTypes["default"].number,
|
|
375
|
+
maxImageHeight: _propTypes["default"].number
|
|
318
376
|
});
|
|
319
377
|
(0, _defineProperty2["default"])(ChoiceConfiguration, "defaultProps", {
|
|
320
378
|
index: -1,
|
|
@@ -323,66 +381,5 @@ exports.ChoiceConfiguration = ChoiceConfiguration;
|
|
|
323
381
|
allowFeedBack: true,
|
|
324
382
|
allowDelete: true
|
|
325
383
|
});
|
|
326
|
-
var
|
|
327
|
-
return {
|
|
328
|
-
index: {
|
|
329
|
-
paddingRight: theme.spacing.unit,
|
|
330
|
-
paddingTop: theme.spacing.unit * 3.5
|
|
331
|
-
},
|
|
332
|
-
choiceConfiguration: {},
|
|
333
|
-
topRow: {
|
|
334
|
-
display: 'flex'
|
|
335
|
-
},
|
|
336
|
-
value: {
|
|
337
|
-
flex: '0.5',
|
|
338
|
-
paddingRight: theme.spacing.unit
|
|
339
|
-
},
|
|
340
|
-
editorHolder: {
|
|
341
|
-
marginTop: theme.spacing.unit * 2
|
|
342
|
-
},
|
|
343
|
-
toggle: {
|
|
344
|
-
flex: '0 1 auto',
|
|
345
|
-
paddingTop: theme.spacing.unit / 2,
|
|
346
|
-
paddingBottom: 0,
|
|
347
|
-
marginRight: 0,
|
|
348
|
-
marginLeft: theme.spacing.unit
|
|
349
|
-
},
|
|
350
|
-
feedback: {
|
|
351
|
-
flex: '0 1 auto',
|
|
352
|
-
paddingTop: theme.spacing.unit * 2,
|
|
353
|
-
paddingLeft: 0,
|
|
354
|
-
marginLeft: 0,
|
|
355
|
-
marginRight: theme.spacing.unit
|
|
356
|
-
},
|
|
357
|
-
feedbackIcon: {
|
|
358
|
-
margin: 0,
|
|
359
|
-
width: 'inherit'
|
|
360
|
-
},
|
|
361
|
-
deleteIcon: {
|
|
362
|
-
margin: 0,
|
|
363
|
-
width: 'inherit'
|
|
364
|
-
},
|
|
365
|
-
"delete": {
|
|
366
|
-
flex: '0 1 auto',
|
|
367
|
-
paddingTop: theme.spacing.unit * 2,
|
|
368
|
-
paddingLeft: 0,
|
|
369
|
-
marginLeft: 0
|
|
370
|
-
},
|
|
371
|
-
middleColumn: {
|
|
372
|
-
display: 'flex',
|
|
373
|
-
flex: 1,
|
|
374
|
-
flexDirection: 'column',
|
|
375
|
-
marginRight: theme.spacing.unit
|
|
376
|
-
},
|
|
377
|
-
input: {
|
|
378
|
-
marginRight: 0
|
|
379
|
-
},
|
|
380
|
-
errorText: {
|
|
381
|
-
fontSize: theme.typography.fontSize - 2,
|
|
382
|
-
color: theme.palette.error.main
|
|
383
|
-
}
|
|
384
|
-
};
|
|
385
|
-
};
|
|
386
|
-
var _default = (0, _styles.withStyles)(styles)(ChoiceConfiguration);
|
|
387
|
-
exports["default"] = _default;
|
|
388
|
-
//# sourceMappingURL=index.js.map
|
|
384
|
+
var _default = exports["default"] = ChoiceConfiguration;
|
|
385
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfc3R5bGVzIiwiX1RleHRGaWVsZCIsIl9EZWxldGUiLCJfU3ViZGlyZWN0b3J5QXJyb3dSaWdodCIsIl9JY29uQnV0dG9uIiwiX3JlbmRlclVpIiwiX2lucHV0cyIsIl9mZWVkYmFja01lbnUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIkVkaXRhYmxlSHRtbCIsIndpbmRvdyIsIlN0eWxlZEVkaXRvckhvbGRlciIsInN0eWxlZCIsIl9yZWYiLCJ0aGVtZSIsIm1hcmdpblRvcCIsInNwYWNpbmciLCJFZGl0YWJsZUh0bWxDb250YWluZXIiLCJfcmVmMiIsImxhYmVsIiwib25DaGFuZ2UiLCJ2YWx1ZSIsImNsYXNzTmFtZSIsImltYWdlU3VwcG9ydCIsImRpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnMiLCJkaXNhYmxlZCIsInNwZWxsQ2hlY2siLCJub25FbXB0eSIsInBsdWdpbk9wdHMiLCJ0b29sYmFyT3B0cyIsImVycm9yIiwibWF4SW1hZ2VXaWR0aCIsIm1heEltYWdlSGVpZ2h0IiwidXBsb2FkU291bmRTdXBwb3J0IiwiX3JlZjIkbWF0aE1sT3B0aW9ucyIsIm1hdGhNbE9wdGlvbnMiLCJjcmVhdGVFbGVtZW50IiwiSW5wdXRDb250YWluZXIiLCJtYXJrdXAiLCJwbHVnaW5Qcm9wcyIsImxhbmd1YWdlQ2hhcmFjdGVyc1Byb3BzIiwibGFuZ3VhZ2UiLCJTdHlsZWRGZWVkYmFja0NvbnRhaW5lciIsInBvc2l0aW9uIiwiU3R5bGVkQXJyb3dJY29uIiwiQXJyb3dSaWdodCIsIl9yZWYzIiwiZmlsbCIsInBhbGV0dGUiLCJncmV5IiwibGVmdCIsInRvcCIsIlN0eWxlZFRleHRGaWVsZCIsIlRleHRGaWVsZCIsIl9yZWY0Iiwid2lkdGgiLCJTdHlsZWRFZGl0YWJsZUh0bWxDb250YWluZXIiLCJfcmVmNSIsIkZlZWRiYWNrIiwiX3JlZjYiLCJ0eXBlIiwiY29ycmVjdCIsImRlZmF1bHRzIiwiX3JlZjYkbWF0aE1sT3B0aW9ucyIsImluY29ycmVjdCIsInZhcmlhbnQiLCJTdHlsZWRJbmRleCIsIl9yZWY3IiwicGFkZGluZ1JpZ2h0IiwicGFkZGluZ1RvcCIsIlN0eWxlZFRvcFJvdyIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwiU3R5bGVkVG9nZ2xlIiwiX3JlZjgiLCJmbGV4IiwicGFkZGluZ0JvdHRvbSIsIm1hcmdpblJpZ2h0IiwibWFyZ2luTGVmdCIsIlN0eWxlZEZlZWRiYWNrIiwiX3JlZjkiLCJwYWRkaW5nTGVmdCIsIlN0eWxlZEZlZWRiYWNrSWNvbiIsIm1hcmdpbiIsIlN0eWxlZERlbGV0ZUljb24iLCJTdHlsZWREZWxldGUiLCJfcmVmMCIsIlN0eWxlZE1pZGRsZUNvbHVtbiIsIl9yZWYxIiwiZmxleERpcmVjdGlvbiIsIlN0eWxlZEVycm9yVGV4dCIsIl9yZWYxMCIsImZvbnRTaXplIiwidHlwb2dyYXBoeSIsImNvbG9yIiwibWFpbiIsIkNob2ljZUNvbmZpZ3VyYXRpb24iLCJleHBvcnRzIiwiX1JlYWN0JENvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0Iiwia2V5IiwidXBkYXRlIiwiX3RoaXMkcHJvcHMiLCJwcm9wcyIsImRhdGEiLCJfY2hhbmdlRm4iLCJldmVudCIsInRhcmdldCIsImNoZWNrZWQiLCJfdGhpcyRwcm9wczIiLCJ2IiwiX3RoaXMkcHJvcHMzIiwiZmVlZGJhY2siLCJmYiIsIl90aGlzJHByb3BzNCIsInVuZGVmaW5lZCIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwicmVuZGVyIiwiX3RoaXMkcHJvcHM1IiwibW9kZSIsIm9uRGVsZXRlIiwiZGVmYXVsdEZlZWRiYWNrIiwiaW5kZXgiLCJub0xhYmVscyIsInVzZUxldHRlck9yZGVyaW5nIiwiYWxsb3dGZWVkQmFjayIsImFsbG93RGVsZXRlIiwibm9Db3JyZWN0QW5zd2VyRXJyb3IiLCJfdGhpcyRwcm9wczUkbWF0aE1sT3AiLCJJbnB1dFRvZ2dsZSIsIklucHV0Q2hlY2tib3giLCJJbnB1dFJhZGlvIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwidG9VcHBlckNhc2UiLCJvbkNoZWNrZWRDaGFuZ2UiLCJvbkxhYmVsQ2hhbmdlIiwiX2V4dGVuZHMyIiwib25GZWVkYmFja1ZhbHVlQ2hhbmdlIiwib25GZWVkYmFja1R5cGVDaGFuZ2UiLCJvbkNsaWNrIiwic2l6ZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiYm9vbCIsInN0cmluZyIsIm9uZU9mIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsInNoYXBlIiwiZnVuYyIsIm51bWJlciIsImFkZCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nob2ljZS1jb25maWd1cmF0aW9uL2luZGV4LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCBUZXh0RmllbGQgZnJvbSAnQG11aS9tYXRlcmlhbC9UZXh0RmllbGQnO1xuaW1wb3J0IEFjdGlvbkRlbGV0ZSBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0RlbGV0ZSc7XG5pbXBvcnQgQXJyb3dSaWdodCBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL1N1YmRpcmVjdG9yeUFycm93UmlnaHQnO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9JY29uQnV0dG9uJztcbmltcG9ydCB7IElucHV0Q29udGFpbmVyIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbi8vIGltcG9ydCBFZGl0YWJsZUh0bWwgZnJvbSAnQHBpZS1saWIvZWRpdGFibGUtaHRtbC10aXAtdGFwJztcbmltcG9ydCB7IElucHV0Q2hlY2tib3gsIElucHV0UmFkaW8gfSBmcm9tICcuLi9pbnB1dHMnO1xuaW1wb3J0IEZlZWRiYWNrTWVudSBmcm9tICcuL2ZlZWRiYWNrLW1lbnUnO1xuXG4vLyAtIG1hdGhxdWlsbCBlcnJvciB3aW5kb3cgbm90IGRlZmluZWRcbmxldCBFZGl0YWJsZUh0bWw7XG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgRWRpdGFibGVIdG1sID0gcmVxdWlyZSgnQHBpZS1saWIvZWRpdGFibGUtaHRtbC10aXAtdGFwJylbJ2RlZmF1bHQnXTtcbn1cblxuY29uc3QgU3R5bGVkRWRpdG9ySG9sZGVyID0gc3R5bGVkKCdkaXYnKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcoMiksXG59KSk7XG5cbmNvbnN0IEVkaXRhYmxlSHRtbENvbnRhaW5lciA9ICh7XG4gIGxhYmVsLFxuICBvbkNoYW5nZSxcbiAgdmFsdWUsXG4gIGNsYXNzTmFtZSxcbiAgaW1hZ2VTdXBwb3J0LFxuICBkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zLFxuICBkaXNhYmxlZCxcbiAgc3BlbGxDaGVjayxcbiAgbm9uRW1wdHksXG4gIHBsdWdpbk9wdHMsXG4gIHRvb2xiYXJPcHRzLFxuICBlcnJvcixcbiAgbWF4SW1hZ2VXaWR0aCxcbiAgbWF4SW1hZ2VIZWlnaHQsXG4gIHVwbG9hZFNvdW5kU3VwcG9ydCxcbiAgbWF0aE1sT3B0aW9ucyA9IHt9LFxufSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxJbnB1dENvbnRhaW5lciBsYWJlbD17bGFiZWx9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgIDxTdHlsZWRFZGl0b3JIb2xkZXI+XG4gICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICBtYXJrdXA9e3ZhbHVlIHx8ICcnfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrfVxuICAgICAgICAgIG5vbkVtcHR5PXtub25FbXB0eX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucz17ZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9uc31cbiAgICAgICAgICBwbHVnaW5Qcm9wcz17cGx1Z2luT3B0cyB8fCB7fX1cbiAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgZXJyb3I9e2Vycm9yfVxuICAgICAgICAgIG1heEltYWdlV2lkdGg9e21heEltYWdlV2lkdGh9XG4gICAgICAgICAgbWF4SW1hZ2VIZWlnaHQ9e21heEltYWdlSGVpZ2h0fVxuICAgICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17dXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgICAgIGxhbmd1YWdlQ2hhcmFjdGVyc1Byb3BzPXtbeyBsYW5ndWFnZTogJ3NwYW5pc2gnIH0sIHsgbGFuZ3VhZ2U6ICdzcGVjaWFsJyB9XX1cbiAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAvPlxuICAgICAgPC9TdHlsZWRFZGl0b3JIb2xkZXI+XG4gICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmNvbnN0IFN0eWxlZEZlZWRiYWNrQ29udGFpbmVyID0gc3R5bGVkKCdkaXYnKSgoKSA9PiAoe1xuICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbn0pKTtcblxuY29uc3QgU3R5bGVkQXJyb3dJY29uID0gc3R5bGVkKEFycm93UmlnaHQpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGZpbGw6IHRoZW1lLnBhbGV0dGUuZ3JleVs0MDBdLFxuICBsZWZ0OiAtNTYsXG4gIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICB0b3A6IDQwLFxufSkpO1xuXG5jb25zdCBTdHlsZWRUZXh0RmllbGQgPSBzdHlsZWQoVGV4dEZpZWxkKSgoeyB0aGVtZSB9KSA9PiAoe1xuICB3aWR0aDogJzEwMCUnLFxuICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcoMiksXG59KSk7XG5cbmNvbnN0IFN0eWxlZEVkaXRhYmxlSHRtbENvbnRhaW5lciA9IHN0eWxlZChFZGl0YWJsZUh0bWxDb250YWluZXIpKCh7IHRoZW1lIH0pID0+ICh7XG4gIHdpZHRoOiAnMTAwJScsXG4gIG1hcmdpblRvcDogdGhlbWUuc3BhY2luZygyKSxcbn0pKTtcblxuY29uc3QgRmVlZGJhY2sgPSAoeyB2YWx1ZSwgb25DaGFuZ2UsIHR5cGUsIGNvcnJlY3QsIGRlZmF1bHRzLCB0b29sYmFyT3B0cywgbWF0aE1sT3B0aW9ucyA9IHt9IH0pID0+IHtcbiAgaWYgKCF0eXBlIHx8IHR5cGUgPT09ICdub25lJykge1xuICAgIHJldHVybiBudWxsO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdkZWZhdWx0Jykge1xuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkRmVlZGJhY2tDb250YWluZXI+XG4gICAgICAgIDxTdHlsZWRBcnJvd0ljb24gLz5cbiAgICAgICAgPFN0eWxlZFRleHRGaWVsZFxuICAgICAgICAgIGxhYmVsPVwiRmVlZGJhY2sgVGV4dFwiXG4gICAgICAgICAgdmFsdWU9e2NvcnJlY3QgPyBkZWZhdWx0cy5jb3JyZWN0IDogZGVmYXVsdHMuaW5jb3JyZWN0fVxuICAgICAgICAgIHZhcmlhbnQ9XCJzdGFuZGFyZFwiXG4gICAgICAgIC8+XG4gICAgICA8L1N0eWxlZEZlZWRiYWNrQ29udGFpbmVyPlxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRGZWVkYmFja0NvbnRhaW5lcj5cbiAgICAgICAgPFN0eWxlZEFycm93SWNvbiAvPlxuICAgICAgICA8U3R5bGVkRWRpdGFibGVIdG1sQ29udGFpbmVyXG4gICAgICAgICAgbGFiZWw9XCJGZWVkYmFjayBUZXh0XCJcbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgIHRvb2xiYXJPcHRzPXt0b29sYmFyT3B0c31cbiAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAvPlxuICAgICAgPC9TdHlsZWRGZWVkYmFja0NvbnRhaW5lcj5cbiAgICApO1xuICB9XG59O1xuXG5jb25zdCBTdHlsZWRJbmRleCA9IHN0eWxlZCgnc3BhbicpKCh7IHRoZW1lIH0pID0+ICh7XG4gIHBhZGRpbmdSaWdodDogdGhlbWUuc3BhY2luZygxKSxcbiAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZygzKSxcbn0pKTtcblxuY29uc3QgU3R5bGVkVG9wUm93ID0gc3R5bGVkKCdkaXYnKSgoKSA9PiAoe1xuICBkaXNwbGF5OiAnZmxleCcsXG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxufSkpO1xuXG5jb25zdCBTdHlsZWRUb2dnbGUgPSBzdHlsZWQoJ2RpdicpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGZsZXg6ICcwIDEgYXV0bycsXG4gIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcoMC41KSxcbiAgcGFkZGluZ0JvdHRvbTogMCxcbiAgbWFyZ2luUmlnaHQ6IDAsXG4gIG1hcmdpbkxlZnQ6IHRoZW1lLnNwYWNpbmcoMSksXG59KSk7XG5cbmNvbnN0IFN0eWxlZEZlZWRiYWNrID0gc3R5bGVkKCdkaXYnKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBmbGV4OiAnMCAxIGF1dG8nLFxuICBwYWRkaW5nVG9wOiB0aGVtZS5zcGFjaW5nKDIpLFxuICBwYWRkaW5nTGVmdDogMCxcbiAgbWFyZ2luTGVmdDogMCxcbiAgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNpbmcoMSksXG59KSk7XG5cbmNvbnN0IFN0eWxlZEZlZWRiYWNrSWNvbiA9IHN0eWxlZCgnZGl2JykoKCkgPT4gKHtcbiAgbWFyZ2luOiAwLFxuICB3aWR0aDogJ2luaGVyaXQnLFxufSkpO1xuXG5jb25zdCBTdHlsZWREZWxldGVJY29uID0gc3R5bGVkKCdkaXYnKSgoKSA9PiAoe1xuICBtYXJnaW46IDAsXG4gIHdpZHRoOiAnaW5oZXJpdCcsXG59KSk7XG5cbmNvbnN0IFN0eWxlZERlbGV0ZSA9IHN0eWxlZCgnZGl2JykoKHsgdGhlbWUgfSkgPT4gKHtcbiAgZmxleDogJzAgMSBhdXRvJyxcbiAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZygyKSxcbiAgcGFkZGluZ0xlZnQ6IDAsXG4gIG1hcmdpbkxlZnQ6IDAsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1pZGRsZUNvbHVtbiA9IHN0eWxlZCgnZGl2JykoKHsgdGhlbWUgfSkgPT4gKHtcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBmbGV4OiAxLFxuICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNpbmcoMSksXG59KSk7XG5cbmNvbnN0IFN0eWxlZEVycm9yVGV4dCA9IHN0eWxlZCgnZGl2JykoKHsgdGhlbWUgfSkgPT4gKHtcbiAgZm9udFNpemU6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFNpemUgLSAyLFxuICBjb2xvcjogdGhlbWUucGFsZXR0ZS5lcnJvci5tYWluLFxufSkpO1xuXG5leHBvcnQgY2xhc3MgQ2hvaWNlQ29uZmlndXJhdGlvbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbm9MYWJlbHM6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZUxldHRlck9yZGVyaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZXJyb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbW9kZTogUHJvcFR5cGVzLm9uZU9mKFsnY2hlY2tib3gnLCAncmFkaW8nXSksXG4gICAgZGVmYXVsdEZlZWRiYWNrOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIG5vbkVtcHR5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkYXRhOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICBjb3JyZWN0OiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgIGZlZWRiYWNrOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIH0pLFxuICAgIH0pLFxuICAgIG9uRGVsZXRlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgaW1hZ2VTdXBwb3J0OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgYWRkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgZGVsZXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIH0pLFxuICAgIGRpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnM6IFByb3BUeXBlcy5ib29sLFxuICAgIGFsbG93RmVlZEJhY2s6IFByb3BUeXBlcy5ib29sLFxuICAgIGFsbG93RGVsZXRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBub0NvcnJlY3RBbnN3ZXJFcnJvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzcGVsbENoZWNrOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBwbHVnaW5PcHRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHRvb2xiYXJPcHRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHVwbG9hZFNvdW5kU3VwcG9ydDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBtYXhJbWFnZVdpZHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIG1heEltYWdlSGVpZ2h0OiBQcm9wVHlwZXMubnVtYmVyLFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgaW5kZXg6IC0xLFxuICAgIG5vTGFiZWxzOiBmYWxzZSxcbiAgICB1c2VMZXR0ZXJPcmRlcmluZzogZmFsc2UsXG4gICAgYWxsb3dGZWVkQmFjazogdHJ1ZSxcbiAgICBhbGxvd0RlbGV0ZTogdHJ1ZSxcbiAgfTtcblxuICBfY2hhbmdlRm4gPSAoa2V5KSA9PiAodXBkYXRlKSA9PiB7XG4gICAgY29uc3QgeyBkYXRhLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChvbkNoYW5nZSkge1xuICAgICAgb25DaGFuZ2UoeyAuLi5kYXRhLCBba2V5XTogdXBkYXRlIH0pO1xuICAgIH1cbiAgfTtcblxuICBvbkxhYmVsQ2hhbmdlID0gdGhpcy5fY2hhbmdlRm4oJ2xhYmVsJyk7XG5cbiAgb25DaGVja2VkQ2hhbmdlID0gKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgY29ycmVjdCA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xuICAgIGNvbnN0IHsgZGF0YSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgIG9uQ2hhbmdlKHsgLi4uZGF0YSwgY29ycmVjdCB9KTtcbiAgICB9XG4gIH07XG5cbiAgb25GZWVkYmFja1ZhbHVlQ2hhbmdlID0gKHYpID0+IHtcbiAgICBjb25zdCB7IGRhdGEsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGRhdGEuZmVlZGJhY2sudHlwZSAhPT0gJ2N1c3RvbScpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmYiA9IHsgLi4uZGF0YS5mZWVkYmFjaywgdmFsdWU6IHYgfTtcblxuICAgIGlmIChvbkNoYW5nZSkgb25DaGFuZ2UoeyAuLi5kYXRhLCBmZWVkYmFjazogZmIgfSk7XG4gIH07XG5cbiAgb25GZWVkYmFja1R5cGVDaGFuZ2UgPSAodCkgPT4ge1xuICAgIGNvbnN0IHsgZGF0YSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgZmIgPSB7IC4uLmRhdGEuZmVlZGJhY2ssIHR5cGU6IHQgfTtcblxuICAgIGlmIChmYi50eXBlICE9PSAnY3VzdG9tJykge1xuICAgICAgZmIudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKG9uQ2hhbmdlKSBvbkNoYW5nZSh7IC4uLmRhdGEsIGZlZWRiYWNrOiBmYiB9KTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgZGF0YSxcbiAgICAgIG1vZGUsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIGRlZmF1bHRGZWVkYmFjayxcbiAgICAgIGluZGV4LFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgbm9MYWJlbHMsXG4gICAgICB1c2VMZXR0ZXJPcmRlcmluZyxcbiAgICAgIGltYWdlU3VwcG9ydCxcbiAgICAgIGRpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnMsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIHNwZWxsQ2hlY2ssXG4gICAgICBub25FbXB0eSxcbiAgICAgIGFsbG93RmVlZEJhY2ssXG4gICAgICBhbGxvd0RlbGV0ZSxcbiAgICAgIHBsdWdpbk9wdHMsXG4gICAgICB0b29sYmFyT3B0cyxcbiAgICAgIGVycm9yLFxuICAgICAgbm9Db3JyZWN0QW5zd2VyRXJyb3IsXG4gICAgICB1cGxvYWRTb3VuZFN1cHBvcnQsXG4gICAgICBtYXhJbWFnZVdpZHRoLFxuICAgICAgbWF4SW1hZ2VIZWlnaHQsXG4gICAgICBtYXRoTWxPcHRpb25zID0ge30sXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBJbnB1dFRvZ2dsZSA9IG1vZGUgPT09ICdjaGVja2JveCcgPyBJbnB1dENoZWNrYm94IDogSW5wdXRSYWRpbztcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkVG9wUm93PlxuICAgICAgICB7aW5kZXggPiAwICYmIChcbiAgICAgICAgICA8U3R5bGVkSW5kZXggdHlwZT1cInRpdGxlXCI+XG4gICAgICAgICAgICB7dXNlTGV0dGVyT3JkZXJpbmcgPyBTdHJpbmcuZnJvbUNoYXJDb2RlKDk2ICsgaW5kZXgpLnRvVXBwZXJDYXNlKCkgOiBpbmRleH1cbiAgICAgICAgICA8L1N0eWxlZEluZGV4PlxuICAgICAgICApfVxuXG4gICAgICAgIDxTdHlsZWRUb2dnbGU+XG4gICAgICAgICAgPElucHV0VG9nZ2xlXG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoZWNrZWRDaGFuZ2V9XG4gICAgICAgICAgICBsYWJlbD17IW5vTGFiZWxzID8gJ0NvcnJlY3QnIDogJyd9XG4gICAgICAgICAgICBjaGVja2VkPXshIWRhdGEuY29ycmVjdH1cbiAgICAgICAgICAgIGVycm9yPXtub0NvcnJlY3RBbnN3ZXJFcnJvcn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1N0eWxlZFRvZ2dsZT5cblxuICAgICAgICA8U3R5bGVkTWlkZGxlQ29sdW1uPlxuICAgICAgICAgIDxFZGl0YWJsZUh0bWxDb250YWluZXJcbiAgICAgICAgICAgIGxhYmVsPXshbm9MYWJlbHMgPyAnTGFiZWwnIDogJyd9XG4gICAgICAgICAgICB2YWx1ZT17ZGF0YS5sYWJlbH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uTGFiZWxDaGFuZ2V9XG4gICAgICAgICAgICBpbWFnZVN1cHBvcnQ9e2ltYWdlU3VwcG9ydH1cbiAgICAgICAgICAgIGRpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnM9e2Rpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnN9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrfVxuICAgICAgICAgICAgbm9uRW1wdHk9e25vbkVtcHR5fVxuICAgICAgICAgICAgcGx1Z2luT3B0cz17cGx1Z2luT3B0c31cbiAgICAgICAgICAgIHRvb2xiYXJPcHRzPXt0b29sYmFyT3B0c31cbiAgICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17dXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgIG1heEltYWdlV2lkdGg9e21heEltYWdlV2lkdGh9XG4gICAgICAgICAgICBtYXhJbWFnZUhlaWdodD17bWF4SW1hZ2VIZWlnaHR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7ZXJyb3IgJiYgPFN0eWxlZEVycm9yVGV4dD57ZXJyb3J9PC9TdHlsZWRFcnJvclRleHQ+fVxuXG4gICAgICAgICAge2FsbG93RmVlZEJhY2sgJiYgKFxuICAgICAgICAgICAgPEZlZWRiYWNrXG4gICAgICAgICAgICAgIHsuLi5kYXRhLmZlZWRiYWNrfVxuICAgICAgICAgICAgICBjb3JyZWN0PXtkYXRhLmNvcnJlY3R9XG4gICAgICAgICAgICAgIGRlZmF1bHRzPXtkZWZhdWx0RmVlZGJhY2t9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uRmVlZGJhY2tWYWx1ZUNoYW5nZX1cbiAgICAgICAgICAgICAgdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1N0eWxlZE1pZGRsZUNvbHVtbj5cblxuICAgICAgICB7YWxsb3dGZWVkQmFjayAmJiAoXG4gICAgICAgICAgPFN0eWxlZEZlZWRiYWNrPlxuICAgICAgICAgICAgPElucHV0Q29udGFpbmVyIGxhYmVsPXshbm9MYWJlbHMgPyAnRmVlZGJhY2snIDogJyd9PlxuICAgICAgICAgICAgICA8U3R5bGVkRmVlZGJhY2tJY29uPlxuICAgICAgICAgICAgICAgIDxGZWVkYmFja01lbnUgb25DaGFuZ2U9e3RoaXMub25GZWVkYmFja1R5cGVDaGFuZ2V9IHZhbHVlPXtkYXRhLmZlZWRiYWNrfSAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZEZlZWRiYWNrSWNvbj5cbiAgICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICAgPC9TdHlsZWRGZWVkYmFjaz5cbiAgICAgICAgKX1cblxuICAgICAgICB7YWxsb3dEZWxldGUgJiYgKFxuICAgICAgICAgIDxTdHlsZWREZWxldGU+XG4gICAgICAgICAgICA8SW5wdXRDb250YWluZXIgbGFiZWw9eyFub0xhYmVscyA/ICdEZWxldGUnIDogJyd9PlxuICAgICAgICAgICAgICA8U3R5bGVkRGVsZXRlSWNvbj5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvbiBhcmlhLWxhYmVsPVwiZGVsZXRlXCIgb25DbGljaz17b25EZWxldGV9IHNpemU9XCJsYXJnZVwiPlxuICAgICAgICAgICAgICAgICAgPEFjdGlvbkRlbGV0ZSAvPlxuICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9TdHlsZWREZWxldGVJY29uPlxuICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICA8L1N0eWxlZERlbGV0ZT5cbiAgICAgICAgKX1cbiAgICAgIDwvU3R5bGVkVG9wUm93PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ2hvaWNlQ29uZmlndXJhdGlvbjtcbiJdLCJtYXBw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
|