@pie-lib/rubric 1.0.0-next.0 → 1.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.
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
+ var _react = require("@testing-library/react");
6
+ var _react2 = _interopRequireDefault(require("react"));
7
+ var _authoring = require("../authoring");
8
+ var _lodash = _interopRequireDefault(require("lodash"));
9
+ var _styles = require("@mui/material/styles");
10
+ 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; }
11
+ 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; }
12
+ // Mock dependencies
13
+ jest.mock('@pie-lib/editable-html-tip-tap', function () {
14
+ return function EditableHtml(props) {
15
+ return /*#__PURE__*/_react2["default"].createElement("div", {
16
+ "data-testid": "editable-html",
17
+ "data-markup": props.markup
18
+ });
19
+ };
20
+ });
21
+ jest.mock('@pie-lib/config-ui', function () {
22
+ return {
23
+ FeedbackConfig: function FeedbackConfig(_ref) {
24
+ var feedback = _ref.feedback;
25
+ return /*#__PURE__*/_react2["default"].createElement("div", {
26
+ "data-testid": "feedback-config"
27
+ }, JSON.stringify(feedback));
28
+ }
29
+ };
30
+ });
31
+ jest.mock('@hello-pangea/dnd', function () {
32
+ return {
33
+ DragDropContext: function DragDropContext(_ref2) {
34
+ var children = _ref2.children;
35
+ return /*#__PURE__*/_react2["default"].createElement("div", {
36
+ "data-testid": "drag-drop-context"
37
+ }, children);
38
+ },
39
+ Droppable: function Droppable(_ref3) {
40
+ var children = _ref3.children;
41
+ return children({
42
+ droppableProps: {},
43
+ innerRef: function innerRef() {}
44
+ }, {});
45
+ },
46
+ Draggable: function Draggable(_ref4) {
47
+ var children = _ref4.children,
48
+ index = _ref4.index;
49
+ return children({
50
+ innerRef: function innerRef() {},
51
+ draggableProps: {
52
+ 'data-draggable-index': index
53
+ },
54
+ dragHandleProps: {}
55
+ }, {});
56
+ }
57
+ };
58
+ });
59
+ describe('Rubric', function () {
60
+ var points = ['nothing right', 'a teeny bit right', 'mostly right', 'bingo'];
61
+ var sampleAnswers = [null, 'just right', 'not left', null];
62
+ var theme = (0, _styles.createTheme)();
63
+ var renderComponent = function renderComponent() {
64
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
65
+ var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
66
+ var defaultProps = _objectSpread({
67
+ classes: {},
68
+ onChange: jest.fn(),
69
+ className: 'className',
70
+ value: _objectSpread({
71
+ excludeZero: false,
72
+ points: points,
73
+ sampleAnswers: sampleAnswers
74
+ }, value)
75
+ }, props);
76
+ return _objectSpread(_objectSpread({}, (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_styles.ThemeProvider, {
77
+ theme: theme
78
+ }, /*#__PURE__*/_react2["default"].createElement(_authoring.RawAuthoring, defaultProps)))), {}, {
79
+ onChange: defaultProps.onChange,
80
+ props: defaultProps
81
+ });
82
+ };
83
+ describe('render', function () {
84
+ it('renders rubric title and main structure', function () {
85
+ renderComponent();
86
+ expect(_react.screen.getByText('Rubric')).toBeInTheDocument();
87
+ expect(_react.screen.getByLabelText('Max Points')).toBeInTheDocument();
88
+ expect(_react.screen.getByLabelText('Exclude zeros')).toBeInTheDocument();
89
+ });
90
+ it('renders all point configurations', function () {
91
+ var _renderComponent = renderComponent(),
92
+ container = _renderComponent.container;
93
+ // Verify DragDropContext is rendered
94
+ expect(container.querySelector('[data-testid="drag-drop-context"]')).toBeInTheDocument();
95
+
96
+ // Check that point labels are rendered (4 points = "3 pts", "2 pts", "1 pt", "0 pt")
97
+ // Note: The PointConfig component uses singular "pt" for 0 and 1, plural "pts" for 2+
98
+ expect(_react.screen.getByText('3 pts')).toBeInTheDocument();
99
+ expect(_react.screen.getByText('2 pts')).toBeInTheDocument();
100
+ expect(_react.screen.getByText('1 pt')).toBeInTheDocument();
101
+ expect(_react.screen.getByText('0 pt')).toBeInTheDocument();
102
+ });
103
+ describe('draggable', function () {
104
+ it('renders 3 draggable items when excludeZero is true', function () {
105
+ var _renderComponent2 = renderComponent({
106
+ excludeZero: true
107
+ }),
108
+ container = _renderComponent2.container;
109
+
110
+ // When excludeZero is true, the last point (0 pts) should not be rendered
111
+ // So we should have 3 draggable items
112
+ var draggableItems = container.querySelectorAll('[data-draggable-index]');
113
+ expect(draggableItems.length).toEqual(3);
114
+
115
+ // Verify the 0 pt label is not rendered
116
+ expect(_react.screen.queryByText('0 pt')).not.toBeInTheDocument();
117
+ });
118
+ it('renders 4 draggable items when excludeZero is false', function () {
119
+ var _renderComponent3 = renderComponent({
120
+ excludeZero: false
121
+ }),
122
+ container = _renderComponent3.container;
123
+
124
+ // When excludeZero is false, all points including 0 should be rendered
125
+ var draggableItems = container.querySelectorAll('[data-draggable-index]');
126
+ expect(draggableItems.length).toEqual(4);
127
+
128
+ // Verify all point labels are rendered
129
+ expect(_react.screen.getByText('3 pts')).toBeInTheDocument();
130
+ expect(_react.screen.getByText('2 pts')).toBeInTheDocument();
131
+ expect(_react.screen.getByText('1 pt')).toBeInTheDocument();
132
+ expect(_react.screen.getByText('0 pt')).toBeInTheDocument();
133
+ });
134
+ });
135
+ });
136
+ describe('logic', function () {
137
+ describe('changeMaxPoints', function () {
138
+ var testChangeMaxPoints = function testChangeMaxPoints(maxPoints, excludeZero, expectedPoints, expectedSampleAnswers) {
139
+ it("maxPoints=".concat(maxPoints, ", excludeZero=").concat(excludeZero, " calls onChange correctly"), function () {
140
+ var _container$querySelec;
141
+ var _renderComponent4 = renderComponent({
142
+ excludeZero: excludeZero
143
+ }),
144
+ onChange = _renderComponent4.onChange,
145
+ container = _renderComponent4.container;
146
+
147
+ // Get the component instance through the container
148
+ // We need to call the method directly since we're testing internal behavior
149
+ var instance = (_container$querySelec = container.querySelector('[class*="MuiBox-root"]')) === null || _container$querySelec === void 0 ? void 0 : _container$querySelec._owner;
150
+
151
+ // Since we can't easily access instance methods in RTL, we'll test the behavior
152
+ // by verifying the onChange prop receives the correct values
153
+ // For now, we'll directly test the logic
154
+ var component = new _authoring.RawAuthoring({
155
+ value: {
156
+ excludeZero: excludeZero,
157
+ points: points,
158
+ sampleAnswers: sampleAnswers
159
+ },
160
+ onChange: onChange,
161
+ classes: {},
162
+ className: 'className'
163
+ });
164
+ component.changeMaxPoints(maxPoints);
165
+ expect(onChange).toHaveBeenCalledWith({
166
+ excludeZero: excludeZero,
167
+ points: expectedPoints,
168
+ sampleAnswers: expectedSampleAnswers,
169
+ maxPoints: expectedPoints.length - 1
170
+ });
171
+ });
172
+ };
173
+ testChangeMaxPoints(1, false, _lodash["default"].takeRight(points, 2), _lodash["default"].takeRight(sampleAnswers, 2));
174
+ testChangeMaxPoints(1, true, _lodash["default"].takeRight(points, 2), _lodash["default"].takeRight(sampleAnswers, 2));
175
+ testChangeMaxPoints(2, true, _lodash["default"].takeRight(points, 3), _lodash["default"].takeRight(sampleAnswers, 3));
176
+ testChangeMaxPoints(2, false, _lodash["default"].takeRight(points, 3), _lodash["default"].takeRight(sampleAnswers, 3));
177
+ testChangeMaxPoints(5, false, ['', ''].concat(points), [null, null].concat(sampleAnswers));
178
+ });
179
+ describe('changeSampleResponse', function () {
180
+ var testChangeSampleResponse = function testChangeSampleResponse(index, clickedItem, excludeZero, expectedPoints, expectedSampleAnswers) {
181
+ it("Point ".concat(index, " with clickedItem=\"").concat(clickedItem, "\" calls onChange correctly"), function () {
182
+ var _renderComponent5 = renderComponent({
183
+ excludeZero: excludeZero
184
+ }),
185
+ onChange = _renderComponent5.onChange;
186
+
187
+ // Test the logic by creating a component instance and calling the method
188
+ var component = new _authoring.RawAuthoring({
189
+ value: {
190
+ excludeZero: excludeZero,
191
+ points: points,
192
+ sampleAnswers: sampleAnswers
193
+ },
194
+ onChange: onChange,
195
+ classes: {},
196
+ className: 'className'
197
+ });
198
+ component.onPointMenuChange(index, clickedItem);
199
+ expect(onChange).toHaveBeenCalledWith({
200
+ excludeZero: excludeZero,
201
+ points: expectedPoints,
202
+ sampleAnswers: expectedSampleAnswers
203
+ });
204
+ });
205
+ };
206
+ testChangeSampleResponse(0, 'sample', false, points, ['', 'just right', 'not left', null]);
207
+ testChangeSampleResponse(3, 'sample', false, points, [null, 'just right', 'not left', '']);
208
+ testChangeSampleResponse(1, 'sample', true, points, [null, null, 'not left', null]);
209
+ testChangeSampleResponse(3, 'sample', true, points, [null, 'just right', 'not left', '']);
210
+ });
211
+ });
212
+ });
213
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0MiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfYXV0aG9yaW5nIiwiX2xvZGFzaCIsIl9zdHlsZXMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImplc3QiLCJtb2NrIiwiRWRpdGFibGVIdG1sIiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwibWFya3VwIiwiRmVlZGJhY2tDb25maWciLCJfcmVmIiwiZmVlZGJhY2siLCJKU09OIiwic3RyaW5naWZ5IiwiRHJhZ0Ryb3BDb250ZXh0IiwiX3JlZjIiLCJjaGlsZHJlbiIsIkRyb3BwYWJsZSIsIl9yZWYzIiwiZHJvcHBhYmxlUHJvcHMiLCJpbm5lclJlZiIsIkRyYWdnYWJsZSIsIl9yZWY0IiwiaW5kZXgiLCJkcmFnZ2FibGVQcm9wcyIsImRyYWdIYW5kbGVQcm9wcyIsImRlc2NyaWJlIiwicG9pbnRzIiwic2FtcGxlQW5zd2VycyIsInRoZW1lIiwiY3JlYXRlVGhlbWUiLCJyZW5kZXJDb21wb25lbnQiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImRlZmF1bHRQcm9wcyIsImNsYXNzZXMiLCJvbkNoYW5nZSIsImZuIiwiY2xhc3NOYW1lIiwiZXhjbHVkZVplcm8iLCJyZW5kZXIiLCJUaGVtZVByb3ZpZGVyIiwiUmF3QXV0aG9yaW5nIiwiaXQiLCJleHBlY3QiLCJzY3JlZW4iLCJnZXRCeVRleHQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsImdldEJ5TGFiZWxUZXh0IiwiX3JlbmRlckNvbXBvbmVudCIsImNvbnRhaW5lciIsInF1ZXJ5U2VsZWN0b3IiLCJfcmVuZGVyQ29tcG9uZW50MiIsImRyYWdnYWJsZUl0ZW1zIiwicXVlcnlTZWxlY3RvckFsbCIsInRvRXF1YWwiLCJxdWVyeUJ5VGV4dCIsIm5vdCIsIl9yZW5kZXJDb21wb25lbnQzIiwidGVzdENoYW5nZU1heFBvaW50cyIsIm1heFBvaW50cyIsImV4cGVjdGVkUG9pbnRzIiwiZXhwZWN0ZWRTYW1wbGVBbnN3ZXJzIiwiY29uY2F0IiwiX2NvbnRhaW5lciRxdWVyeVNlbGVjIiwiX3JlbmRlckNvbXBvbmVudDQiLCJpbnN0YW5jZSIsIl9vd25lciIsImNvbXBvbmVudCIsImNoYW5nZU1heFBvaW50cyIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiXyIsInRha2VSaWdodCIsInRlc3RDaGFuZ2VTYW1wbGVSZXNwb25zZSIsImNsaWNrZWRJdGVtIiwiX3JlbmRlckNvbXBvbmVudDUiLCJvblBvaW50TWVudUNoYW5nZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcnVicmljLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc2NyZWVuIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUmF3QXV0aG9yaW5nIH0gZnJvbSAnLi4vYXV0aG9yaW5nJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBUaGVtZVByb3ZpZGVyLCBjcmVhdGVUaGVtZSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcblxuLy8gTW9jayBkZXBlbmRlbmNpZXNcbmplc3QubW9jaygnQHBpZS1saWIvZWRpdGFibGUtaHRtbC10aXAtdGFwJywgKCkgPT4ge1xuICByZXR1cm4gZnVuY3Rpb24gRWRpdGFibGVIdG1sKHByb3BzKSB7XG4gICAgcmV0dXJuIDxkaXYgZGF0YS10ZXN0aWQ9XCJlZGl0YWJsZS1odG1sXCIgZGF0YS1tYXJrdXA9e3Byb3BzLm1hcmt1cH0gLz47XG4gIH07XG59KTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9jb25maWctdWknLCAoKSA9PiAoe1xuICBGZWVkYmFja0NvbmZpZzogKHsgZmVlZGJhY2sgfSkgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImZlZWRiYWNrLWNvbmZpZ1wiPntKU09OLnN0cmluZ2lmeShmZWVkYmFjayl9PC9kaXY+LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BoZWxsby1wYW5nZWEvZG5kJywgKCkgPT4gKHtcbiAgRHJhZ0Ryb3BDb250ZXh0OiAoeyBjaGlsZHJlbiB9KSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiZHJhZy1kcm9wLWNvbnRleHRcIj57Y2hpbGRyZW59PC9kaXY+LFxuICBEcm9wcGFibGU6ICh7IGNoaWxkcmVuIH0pID0+IGNoaWxkcmVuKHsgZHJvcHBhYmxlUHJvcHM6IHt9LCBpbm5lclJlZjogKCkgPT4ge30gfSwge30pLFxuICBEcmFnZ2FibGU6ICh7IGNoaWxkcmVuLCBpbmRleCB9KSA9PlxuICAgIGNoaWxkcmVuKFxuICAgICAge1xuICAgICAgICBpbm5lclJlZjogKCkgPT4ge30sXG4gICAgICAgIGRyYWdnYWJsZVByb3BzOiB7ICdkYXRhLWRyYWdnYWJsZS1pbmRleCc6IGluZGV4IH0sXG4gICAgICAgIGRyYWdIYW5kbGVQcm9wczoge30sXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKSxcbn0pKTtcblxuZGVzY3JpYmUoJ1J1YnJpYycsICgpID0+IHtcbiAgY29uc3QgcG9pbnRzID0gWydub3RoaW5nIHJpZ2h0JywgJ2EgdGVlbnkgYml0IHJpZ2h0JywgJ21vc3RseSByaWdodCcsICdiaW5nbyddO1xuICBjb25zdCBzYW1wbGVBbnN3ZXJzID0gW251bGwsICdqdXN0IHJpZ2h0JywgJ25vdCBsZWZ0JywgbnVsbF07XG4gIGNvbnN0IHRoZW1lID0gY3JlYXRlVGhlbWUoKTtcblxuICBjb25zdCByZW5kZXJDb21wb25lbnQgPSAodmFsdWUgPSB7fSwgcHJvcHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgb25DaGFuZ2U6IGplc3QuZm4oKSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICB2YWx1ZToge1xuICAgICAgICBleGNsdWRlWmVybzogZmFsc2UsXG4gICAgICAgIHBvaW50cyxcbiAgICAgICAgc2FtcGxlQW5zd2VycyxcbiAgICAgICAgLi4udmFsdWUsXG4gICAgICB9LFxuICAgICAgLi4ucHJvcHMsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZW5kZXIoXG4gICAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZX0+XG4gICAgICAgICAgPFJhd0F1dGhvcmluZyB7Li4uZGVmYXVsdFByb3BzfSAvPlxuICAgICAgICA8L1RoZW1lUHJvdmlkZXI+LFxuICAgICAgKSxcbiAgICAgIG9uQ2hhbmdlOiBkZWZhdWx0UHJvcHMub25DaGFuZ2UsXG4gICAgICBwcm9wczogZGVmYXVsdFByb3BzLFxuICAgIH07XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcicsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyBydWJyaWMgdGl0bGUgYW5kIG1haW4gc3RydWN0dXJlJywgKCkgPT4ge1xuICAgICAgcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnUnVicmljJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5TGFiZWxUZXh0KCdNYXggUG9pbnRzJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5TGFiZWxUZXh0KCdFeGNsdWRlIHplcm9zJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBhbGwgcG9pbnQgY29uZmlndXJhdGlvbnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICAvLyBWZXJpZnkgRHJhZ0Ryb3BDb250ZXh0IGlzIHJlbmRlcmVkXG4gICAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImRyYWctZHJvcC1jb250ZXh0XCJdJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG5cbiAgICAgIC8vIENoZWNrIHRoYXQgcG9pbnQgbGFiZWxzIGFyZSByZW5kZXJlZCAoNCBwb2ludHMgPSBcIjMgcHRzXCIsIFwiMiBwdHNcIiwgXCIxIHB0XCIsIFwiMCBwdFwiKVxuICAgICAgLy8gTm90ZTogVGhlIFBvaW50Q29uZmlnIGNvbXBvbmVudCB1c2VzIHNpbmd1bGFyIFwicHRcIiBmb3IgMCBhbmQgMSwgcGx1cmFsIFwicHRzXCIgZm9yIDIrXG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnMyBwdHMnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCcyIHB0cycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJzEgcHQnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCcwIHB0JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnZHJhZ2dhYmxlJywgKCkgPT4ge1xuICAgICAgaXQoJ3JlbmRlcnMgMyBkcmFnZ2FibGUgaXRlbXMgd2hlbiBleGNsdWRlWmVybyBpcyB0cnVlJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgZXhjbHVkZVplcm86IHRydWUgfSk7XG5cbiAgICAgICAgLy8gV2hlbiBleGNsdWRlWmVybyBpcyB0cnVlLCB0aGUgbGFzdCBwb2ludCAoMCBwdHMpIHNob3VsZCBub3QgYmUgcmVuZGVyZWRcbiAgICAgICAgLy8gU28gd2Ugc2hvdWxkIGhhdmUgMyBkcmFnZ2FibGUgaXRlbXNcbiAgICAgICAgY29uc3QgZHJhZ2dhYmxlSXRlbXMgPSBjb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtZHJhZ2dhYmxlLWluZGV4XScpO1xuICAgICAgICBleHBlY3QoZHJhZ2dhYmxlSXRlbXMubGVuZ3RoKS50b0VxdWFsKDMpO1xuXG4gICAgICAgIC8vIFZlcmlmeSB0aGUgMCBwdCBsYWJlbCBpcyBub3QgcmVuZGVyZWRcbiAgICAgICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5VGV4dCgnMCBwdCcpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgncmVuZGVycyA0IGRyYWdnYWJsZSBpdGVtcyB3aGVuIGV4Y2x1ZGVaZXJvIGlzIGZhbHNlJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgZXhjbHVkZVplcm86IGZhbHNlIH0pO1xuXG4gICAgICAgIC8vIFdoZW4gZXhjbHVkZVplcm8gaXMgZmFsc2UsIGFsbCBwb2ludHMgaW5jbHVkaW5nIDAgc2hvdWxkIGJlIHJlbmRlcmVkXG4gICAgICAgIGNvbnN0IGRyYWdnYWJsZUl0ZW1zID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWRyYWdnYWJsZS1pbmRleF0nKTtcbiAgICAgICAgZXhwZWN0KGRyYWdnYWJsZUl0ZW1zLmxlbmd0aCkudG9FcXVhbCg0KTtcblxuICAgICAgICAvLyBWZXJpZnkgYWxsIHBvaW50IGxhYmVscyBhcmUgcmVuZGVyZWRcbiAgICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJzMgcHRzJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCcyIHB0cycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnMSBwdCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnMCBwdCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBkZXNjcmliZSgnY2hhbmdlTWF4UG9pbnRzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdGVzdENoYW5nZU1heFBvaW50cyA9IChtYXhQb2ludHMsIGV4Y2x1ZGVaZXJvLCBleHBlY3RlZFBvaW50cywgZXhwZWN0ZWRTYW1wbGVBbnN3ZXJzKSA9PiB7XG4gICAgICAgIGl0KGBtYXhQb2ludHM9JHttYXhQb2ludHN9LCBleGNsdWRlWmVybz0ke2V4Y2x1ZGVaZXJvfSBjYWxscyBvbkNoYW5nZSBjb3JyZWN0bHlgLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBvbkNoYW5nZSwgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBleGNsdWRlWmVybyB9KTtcblxuICAgICAgICAgIC8vIEdldCB0aGUgY29tcG9uZW50IGluc3RhbmNlIHRocm91Z2ggdGhlIGNvbnRhaW5lclxuICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2FsbCB0aGUgbWV0aG9kIGRpcmVjdGx5IHNpbmNlIHdlJ3JlIHRlc3RpbmcgaW50ZXJuYWwgYmVoYXZpb3JcbiAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbY2xhc3MqPVwiTXVpQm94LXJvb3RcIl0nKT8uX293bmVyO1xuXG4gICAgICAgICAgLy8gU2luY2Ugd2UgY2FuJ3QgZWFzaWx5IGFjY2VzcyBpbnN0YW5jZSBtZXRob2RzIGluIFJUTCwgd2UnbGwgdGVzdCB0aGUgYmVoYXZpb3JcbiAgICAgICAgICAvLyBieSB2ZXJpZnlpbmcgdGhlIG9uQ2hhbmdlIHByb3AgcmVjZWl2ZXMgdGhlIGNvcnJlY3QgdmFsdWVzXG4gICAgICAgICAgLy8gRm9yIG5vdywgd2UnbGwgZGlyZWN0bHkgdGVzdCB0aGUgbG9naWNcbiAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBuZXcgUmF3QXV0aG9yaW5nKHtcbiAgICAgICAgICAgIHZhbHVlOiB7IGV4Y2x1ZGVaZXJvLCBwb2ludHMsIHNhbXBsZUFuc3dlcnMgfSxcbiAgICAgICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICAgICAgY2xhc3Nlczoge30sXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdjbGFzc05hbWUnLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29tcG9uZW50LmNoYW5nZU1heFBvaW50cyhtYXhQb2ludHMpO1xuXG4gICAgICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgICBleGNsdWRlWmVybyxcbiAgICAgICAgICAgIHBvaW50czogZXhwZWN0ZWRQb2ludHMsXG4gICAgICAgICAgICBzYW1wbGVBbnN3ZXJzOiBleHBlY3RlZFNhbXBsZUFuc3dlcnMsXG4gICAgICAgICAgICBtYXhQb2ludHM6IGV4cGVjdGVkUG9pbnRzLmxlbmd0aCAtIDEsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgdGVzdENoYW5nZU1heFBvaW50cygxLCBmYWxzZSwgXy50YWtlUmlnaHQocG9pbnRzLCAyKSwgXy50YWtlUmlnaHQoc2FtcGxlQW5zd2VycywgMikpO1xuICAgICAgdGVzdENoYW5nZU1heFBvaW50cygxLCB0cnVlLCBfLnRha2VSaWdodChwb2ludHMsIDIpLCBfLnRha2VSaWdodChzYW1wbGVBbnN3ZXJzLCAyKSk7XG4gICAgICB0ZXN0Q2hhbmdlTWF4UG9pbnRzKDIsIHRydWUsIF8udGFrZVJpZ2h0KHBvaW50cywgMyksIF8udGFrZVJpZ2h0KHNhbXBsZUFuc3dlcnMsIDMpKTtcbiAgICAgIHRlc3RDaGFuZ2VNYXhQb2ludHMoMiwgZmFsc2UsIF8udGFrZVJpZ2h0KHBvaW50cywgMyksIF8udGFrZVJpZ2h0KHNhbXBsZUFuc3dlcnMsIDMpKTtcbiAgICAgIHRlc3RDaGFuZ2VNYXhQb2ludHMoNSwgZmFsc2UsIFsnJywgJyddLmNvbmNhdChwb2ludHMpLCBbbnVsbCwgbnVsbF0uY29uY2F0KHNhbXBsZUFuc3dlcnMpKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdjaGFuZ2VTYW1wbGVSZXNwb25zZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RDaGFuZ2VTYW1wbGVSZXNwb25zZSA9IChpbmRleCwgY2xpY2tlZEl0ZW0sIGV4Y2x1ZGVaZXJvLCBleHBlY3RlZFBvaW50cywgZXhwZWN0ZWRTYW1wbGVBbnN3ZXJzKSA9PiB7XG4gICAgICAgIGl0KGBQb2ludCAke2luZGV4fSB3aXRoIGNsaWNrZWRJdGVtPVwiJHtjbGlja2VkSXRlbX1cIiBjYWxscyBvbkNoYW5nZSBjb3JyZWN0bHlgLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBvbkNoYW5nZSB9ID0gcmVuZGVyQ29tcG9uZW50KHsgZXhjbHVkZVplcm8gfSk7XG5cbiAgICAgICAgICAvLyBUZXN0IHRoZSBsb2dpYyBieSBjcmVhdGluZyBhIGNvbXBvbmVudCBpbnN0YW5jZSBhbmQgY2FsbGluZyB0aGUgbWV0aG9kXG4gICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gbmV3IFJhd0F1dGhvcmluZyh7XG4gICAgICAgICAgICB2YWx1ZTogeyBleGNsdWRlWmVybywgcG9pbnRzLCBzYW1wbGVBbnN3ZXJzIH0sXG4gICAgICAgICAgICBvbkNoYW5nZSxcbiAgICAgICAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbXBvbmVudC5vblBvaW50TWVudUNoYW5nZShpbmRleCwgY2xpY2tlZEl0ZW0pO1xuXG4gICAgICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgICBleGNsdWRlWmVybyxcbiAgICAgICAgICAgIHBvaW50czogZXhwZWN0ZWRQb2ludHMsXG4gICAgICAgICAgICBzYW1wbGVBbnN3ZXJzOiBleHBlY3RlZFNhbXBsZUFuc3dlcnMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgdGVzdENoYW5nZVNhbXBsZVJlc3BvbnNlKDAsICdzYW1wbGUnLCBmYWxzZSwgcG9pbnRzLCBbJycsICdqdXN0IHJpZ2h0JywgJ25vdCBsZWZ0JywgbnVsbF0pO1xuICAgICAgdGVzdENoYW5nZVNhbXBsZVJlc3BvbnNlKDMsICdzYW1wbGUnLCBmYWxzZSwgcG9pbnRzLCBbbnVsbCwgJ2p1c3QgcmlnaHQnLCAnbm90IGxlZnQnLCAnJ10pO1xuICAgICAgdGVzdENoYW5nZVNhbXBsZVJlc3BvbnNlKDEsICdzYW1wbGUnLCB0cnVlLCBwb2ludHMsIFtudWxsLCBudWxsLCAnbm90IGxlZnQnLCBudWxsXSk7XG4gICAgICB0ZXN0Q2hhbmdlU2FtcGxlUmVzcG9uc2UoMywgJ3NhbXBsZScsIHRydWUsIHBvaW50cywgW251bGwsICdqdXN0IHJpZ2h0JywgJ25vdCBsZWZ0JywgJyddKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUFrRSxTQUFBTSxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxH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
package/lib/authoring.js CHANGED
@@ -32,7 +32,7 @@ var _debug = _interopRequireDefault(require("debug"));
32
32
  var _takeRight = _interopRequireDefault(require("lodash/takeRight"));
33
33
  var _pointMenu = _interopRequireDefault(require("./point-menu"));
34
34
  var _range = _interopRequireDefault(require("lodash/range"));
35
- var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
35
+ var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
36
36
  var _configUi = require("@pie-lib/config-ui");
37
37
  var _colors = require("@mui/material/colors");
38
38
  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; }
@@ -160,7 +160,7 @@ var PointConfig = exports.PointConfig = function PointConfig(props) {
160
160
  var showSampleAnswer = checkSampleAnswer(sampleAnswer);
161
161
  return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(PointsLabel, {
162
162
  variant: "overline"
163
- }, pointsLabel), /*#__PURE__*/_react["default"].createElement(Row, null, /*#__PURE__*/_react["default"].createElement(DragIndicatorStyled, null), /*#__PURE__*/_react["default"].createElement(EditorDiv, null, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
163
+ }, pointsLabel), /*#__PURE__*/_react["default"].createElement(Row, null, /*#__PURE__*/_react["default"].createElement(DragIndicatorStyled, null), /*#__PURE__*/_react["default"].createElement(EditorDiv, null, /*#__PURE__*/_react["default"].createElement(_editableHtmlTipTap["default"], {
164
164
  error: error,
165
165
  pluginProps: pluginOpts,
166
166
  markup: content,
@@ -172,7 +172,7 @@ var PointConfig = exports.PointConfig = function PointConfig(props) {
172
172
  }))), error && /*#__PURE__*/_react["default"].createElement(ErrorText, null, error), !showSampleAnswer && /*#__PURE__*/_react["default"].createElement(SampleAnswersEditor, null, /*#__PURE__*/_react["default"].createElement(DragIndicatorStyled, {
173
173
  as: _Typography["default"],
174
174
  variant: "overline"
175
- }, "Sample Response"), /*#__PURE__*/_react["default"].createElement(EditorDiv, null, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
175
+ }, "Sample Response"), /*#__PURE__*/_react["default"].createElement(EditorDiv, null, /*#__PURE__*/_react["default"].createElement(_editableHtmlTipTap["default"], {
176
176
  markup: sampleAnswer,
177
177
  pluginProps: pluginOpts,
178
178
  onChange: props.onSampleChange,
@@ -390,7 +390,7 @@ var RawAuthoring = exports.RawAuthoring = /*#__PURE__*/function (_React$Componen
390
390
  })
391
391
  })), rubriclessInstructionEnabled && rubricless && /*#__PURE__*/_react["default"].createElement(InputContainerWrapper, null, /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
392
392
  label: rubriclessInstruction.label
393
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
393
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtmlTipTap["default"], {
394
394
  markup: value.rubriclessInstruction || '',
395
395
  onChange: this.changeRubriclessInstruction,
396
396
  pluginProps: pluginOpts,
@@ -490,4 +490,4 @@ Reverse.propTypes = {
490
490
  onChange: _propTypes["default"].func
491
491
  };
492
492
  var _default = exports["default"] = Reverse;
493
- //# sourceMappingURL=authoring.js.map
493
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfc3R5bGVzIiwiX0lucHV0TGFiZWwiLCJfT3V0bGluZWRJbnB1dCIsIl9TZWxlY3QiLCJfRm9ybUNvbnRyb2wiLCJfTWVudUl0ZW0iLCJfdGltZXMiLCJfQ2hlY2tib3giLCJfRm9ybUdyb3VwIiwiX0Zvcm1Db250cm9sTGFiZWwiLCJfVHlwb2dyYXBoeSIsIl9EcmFnSW5kaWNhdG9yIiwiX2RuZCIsIl9kZWJ1ZyIsIl90YWtlUmlnaHQiLCJfcG9pbnRNZW51IiwiX3JhbmdlIiwiX2VkaXRhYmxlSHRtbFRpcFRhcCIsIl9jb25maWdVaSIsIl9jb2xvcnMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsImxvZyIsImRlYnVnIiwicmVvcmRlciIsImxpc3QiLCJzdGFydEluZGV4IiwiZW5kSW5kZXgiLCJyZXN1bHQiLCJBcnJheSIsImZyb20iLCJfcmVzdWx0JHNwbGljZSIsInNwbGljZSIsIl9yZXN1bHQkc3BsaWNlMiIsIl9zbGljZWRUb0FycmF5MiIsInJlbW92ZWQiLCJSdWJyaWNUeXBlIiwiZXhwb3J0cyIsIlByb3BUeXBlcyIsInNoYXBlIiwiZXhjbHVkZVplcm8iLCJib29sIiwicG9pbnRzIiwiYXJyYXlPZiIsInN0cmluZyIsInNhbXBsZUFuc3dlcnMiLCJtYXhQb2ludHMiLCJudW1iZXIiLCJydWJyaWNsZXNzSW5zdHJ1Y3Rpb24iLCJNYXhQb2ludHMiLCJwcm9wcyIsInZhbHVlIiwib25DaGFuZ2UiLCJtYXgiLCJsYWJlbElkIiwiY3JlYXRlRWxlbWVudCIsInN4IiwibWluV2lkdGgiLCJtIiwidmFyaWFudCIsImlkIiwibGFiZWwiLCJ0YXJnZXQiLCJpbnB1dCIsIk1lbnVQcm9wcyIsInRyYW5zaXRpb25EdXJhdGlvbiIsImVudGVyIiwiZXhpdCIsInJhbmdlIiwibWFwIiwidiIsImtleSIsImNvbmNhdCIsImNoZWNrU2FtcGxlQW5zd2VyIiwic2FtcGxlQW5zd2VyIiwiUm93Iiwic3R5bGVkIiwiZGlzcGxheSIsIndpZHRoIiwicG9zaXRpb24iLCJFZGl0b3JEaXYiLCJfcmVmIiwidGhlbWUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJwYWxldHRlIiwiY29tbW9uIiwid2hpdGUiLCJEcmFnSW5kaWNhdG9yU3R5bGVkIiwiRHJhZ0luZGljYXRvciIsIl9yZWYyIiwicGFkZGluZ1RvcCIsInNwYWNpbmciLCJjb2xvciIsImdyZXkiLCJQb2ludHNMYWJlbCIsIlR5cG9ncmFwaHkiLCJfcmVmMyIsInBhZGRpbmdCb3R0b20iLCJ0ZXh0VHJhbnNmb3JtIiwiU2FtcGxlQW5zd2Vyc0VkaXRvciIsIl9yZWY0IiwicGFkZGluZ0xlZnQiLCJFcnJvclRleHQiLCJfcmVmNSIsImZvbnRTaXplIiwidHlwb2dyYXBoeSIsImVycm9yIiwibWFpbiIsIlBvaW50TWVudVdyYXBwZXIiLCJyaWdodCIsIlBvaW50Q29uZmlnIiwiY29udGVudCIsIl9wcm9wcyRtYXRoTWxPcHRpb25zIiwibWF0aE1sT3B0aW9ucyIsIl9wcm9wcyRwbHVnaW5PcHRzIiwicGx1Z2luT3B0cyIsInBvaW50c0xhYmVsIiwic2hvd1NhbXBsZUFuc3dlciIsInBsdWdpblByb3BzIiwibWFya3VwIiwib25NZW51Q2hhbmdlIiwiYXMiLCJvblNhbXBsZUNoYW5nZSIsIkNvbnRhaW5lciIsIl9yZWY2IiwiYm9yZGVyV2lkdGgiLCJib3JkZXJTdHlsZSIsImJvcmRlckNvbG9yIiwicGFkZGluZyIsIm1hcmdpbiIsIklucHV0Q29udGFpbmVyV3JhcHBlciIsIl9yZWY3IiwibWFyZ2luQm90dG9tIiwiUnVicmljbGVzcyIsIkNvbmZpZ0hvbGRlciIsIl9yZWY4IiwiUnVicmljVGl0bGUiLCJfcmVmOSIsIlJhd0F1dGhvcmluZyIsIl9SZWFjdCRDb21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIl9rZXkiLCJkZXN0aW5hdGlvbiIsIl90aGlzJHByb3BzIiwic291cmNlIiwiaW5kZXgiLCJfdGhpcyRwcm9wczIiLCJfdGhpcyRwcm9wczMiLCJydWJyaWNsZXNzIiwiY3VycmVudE1heCIsInRpbWVzIiwidGFrZVJpZ2h0IiwidHlwZSIsIl90aGlzJHByb3BzNCIsIml0ZW1zIiwiX3RoaXMkcHJvcHM1IiwiY2xpY2tlZEl0ZW0iLCJjaGFuZ2VDb250ZW50IiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJyZW5kZXIiLCJfdGhpczIiLCJfdGhpcyRwcm9wczYiLCJfdGhpcyRwcm9wczYkbWF0aE1sT3AiLCJfdGhpcyRwcm9wczYkY29uZmlnIiwiY29uZmlnIiwiX3RoaXMkcHJvcHM2JHJ1YnJpY2xlIiwiX3RoaXMkcHJvcHM2JHBsdWdpbk9wIiwiX3JlZjAiLCJfcmVmMCRleGNsdWRlWmVyb0VuYWIiLCJleGNsdWRlWmVyb0VuYWJsZWQiLCJfcmVmMCRtYXhQb2ludHNFbmFibGUiLCJtYXhQb2ludHNFbmFibGVkIiwiX3JlZjAkZXJyb3JzIiwiZXJyb3JzIiwiX3JlZjAkcnVicmljbGVzc0luc3RyIiwicnVicmljbGVzc0luc3RydWN0aW9uRW5hYmxlZCIsIl9yZWYwJG1heFBvaW50cyIsIl9yZWYxIiwiX3JlZjEkcnVicmljbGVzc0luc3RyIiwiX3JlZjEkbWF4TWF4UG9pbnRzIiwibWF4TWF4UG9pbnRzIiwiX3JlZjEwIiwicG9pbnRzRGVzY3JpcHRvcnNFcnJvcnMiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImNvbnNvbGUiLCJ3YXJuIiwibWF4UG9pbnRzVmFsdWUiLCJyb3ciLCJjaGFuZ2VNYXhQb2ludHMiLCJjb250cm9sIiwiY2hlY2tlZCIsImV4Y2x1ZGVaZXJvcyIsIklucHV0Q29udGFpbmVyIiwiY2hhbmdlUnVicmljbGVzc0luc3RydWN0aW9uIiwibm9uRW1wdHkiLCJkaXNhYmxlVW5kZXJsaW5lIiwibGFuZ3VhZ2VDaGFyYWN0ZXJzUHJvcHMiLCJsYW5ndWFnZSIsIkRyYWdEcm9wQ29udGV4dCIsIm9uRHJhZ0VuZCIsImRyYWdFbmQiLCJEcm9wcGFibGUiLCJkcm9wcGFibGVJZCIsInByb3ZpZGVkIiwiX2V4dGVuZHMyIiwiZHJvcHBhYmxlUHJvcHMiLCJyZWYiLCJpbm5lclJlZiIsInAiLCJzaG91bGRSZW5kZXJQb2ludCIsIkRyYWdnYWJsZSIsImRyYWdnYWJsZUlkIiwidG9TdHJpbmciLCJkcmFnZ2FibGVQcm9wcyIsImRyYWdIYW5kbGVQcm9wcyIsIm9uUG9pbnRNZW51Q2hhbmdlIiwicGxhY2Vob2xkZXIiLCJSZWFjdCIsIkNvbXBvbmVudCIsIm9iamVjdCIsImZ1bmMiLCJSZXZlcnNlIiwiX3JlZjExIiwiX3JlZjExJHJ1YnJpY2xlc3MiLCJfcmVmMTEkY29uZmlnIiwiX3JlZjExJHBsdWdpbk9wdHMiLCJyZXZlcnNlIiwicHJvcFR5cGVzIiwiZ2V0SW5kZXgiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9hdXRob3JpbmcuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuXG5pbXBvcnQgSW5wdXRMYWJlbCBmcm9tICdAbXVpL21hdGVyaWFsL0lucHV0TGFiZWwnO1xuaW1wb3J0IE91dGxpbmVkSW5wdXQgZnJvbSAnQG11aS9tYXRlcmlhbC9PdXRsaW5lZElucHV0JztcbmltcG9ydCBTZWxlY3QgZnJvbSAnQG11aS9tYXRlcmlhbC9TZWxlY3QnO1xuaW1wb3J0IEZvcm1Db250cm9sIGZyb20gJ0BtdWkvbWF0ZXJpYWwvRm9ybUNvbnRyb2wnO1xuaW1wb3J0IE1lbnVJdGVtIGZyb20gJ0BtdWkvbWF0ZXJpYWwvTWVudUl0ZW0nO1xuaW1wb3J0IHRpbWVzIGZyb20gJ2xvZGFzaC90aW1lcyc7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnQG11aS9tYXRlcmlhbC9DaGVja2JveCc7XG5pbXBvcnQgRm9ybUdyb3VwIGZyb20gJ0BtdWkvbWF0ZXJpYWwvRm9ybUdyb3VwJztcbmltcG9ydCBGb3JtQ29udHJvbExhYmVsIGZyb20gJ0BtdWkvbWF0ZXJpYWwvRm9ybUNvbnRyb2xMYWJlbCc7XG5pbXBvcnQgVHlwb2dyYXBoeSBmcm9tICdAbXVpL21hdGVyaWFsL1R5cG9ncmFwaHknO1xuaW1wb3J0IERyYWdJbmRpY2F0b3IgZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9EcmFnSW5kaWNhdG9yJztcbmltcG9ydCB7IERyYWdEcm9wQ29udGV4dCwgRHJvcHBhYmxlLCBEcmFnZ2FibGUgfSBmcm9tICdAaGVsbG8tcGFuZ2VhL2RuZCc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHRha2VSaWdodCBmcm9tICdsb2Rhc2gvdGFrZVJpZ2h0JztcbmltcG9ydCBQb2ludE1lbnUgZnJvbSAnLi9wb2ludC1tZW51JztcbmltcG9ydCByYW5nZSBmcm9tICdsb2Rhc2gvcmFuZ2UnO1xuaW1wb3J0IEVkaXRhYmxlSHRtbCBmcm9tICdAcGllLWxpYi9lZGl0YWJsZS1odG1sLXRpcC10YXAnO1xuaW1wb3J0IHsgSW5wdXRDb250YWluZXIgfSBmcm9tICdAcGllLWxpYi9jb25maWctdWknO1xuaW1wb3J0IHsgZ3JleSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvY29sb3JzJztcblxuY29uc3QgbG9nID0gZGVidWcoJ3BpZS1saWI6cnVicmljOmF1dGhvcmluZycpO1xuXG5jb25zdCByZW9yZGVyID0gKGxpc3QsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IEFycmF5LmZyb20obGlzdCk7XG4gIGNvbnN0IFtyZW1vdmVkXSA9IHJlc3VsdC5zcGxpY2Uoc3RhcnRJbmRleCwgMSk7XG5cbiAgcmVzdWx0LnNwbGljZShlbmRJbmRleCwgMCwgcmVtb3ZlZCk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCBSdWJyaWNUeXBlID0gUHJvcFR5cGVzLnNoYXBlKHtcbiAgZXhjbHVkZVplcm86IFByb3BUeXBlcy5ib29sLFxuICBwb2ludHM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICBzYW1wbGVBbnN3ZXJzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgbWF4UG9pbnRzOiBQcm9wVHlwZXMubnVtYmVyLFxuICBydWJyaWNsZXNzSW5zdHJ1Y3Rpb246IFByb3BUeXBlcy5zdHJpbmcsXG59KTtcblxuY29uc3QgTWF4UG9pbnRzID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdmFsdWUsIG9uQ2hhbmdlLCBtYXggfSA9IHByb3BzO1xuICBjb25zdCBsYWJlbElkID0gJ21heC1wb2ludHMtbGFiZWwnO1xuXG4gIHJldHVybiAoXG4gICAgPEZvcm1Db250cm9sIHN4PXt7IG1pbldpZHRoOiAxMjAsIG06IDEgfX0gdmFyaWFudD1cIm91dGxpbmVkXCI+XG4gICAgICA8SW5wdXRMYWJlbCBpZD17bGFiZWxJZH0+TWF4IFBvaW50czwvSW5wdXRMYWJlbD5cbiAgICAgIDxTZWxlY3RcbiAgICAgICAgbGFiZWxJZD17bGFiZWxJZH1cbiAgICAgICAgbGFiZWw9XCJNYXggUG9pbnRzXCJcbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICBvbkNoYW5nZT17KGUpID0+IG9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgaW5wdXQ9ezxPdXRsaW5lZElucHV0IGxhYmVsPVwiTWF4IFBvaW50c1wiIC8+fVxuICAgICAgICBNZW51UHJvcHM9e3sgdHJhbnNpdGlvbkR1cmF0aW9uOiB7IGVudGVyOiAyMjUsIGV4aXQ6IDE5NSB9IH19XG4gICAgICA+XG4gICAgICAgIHtyYW5nZSgxLCBtYXggKyAxKS5tYXAoKHYpID0+IChcbiAgICAgICAgICA8TWVudUl0ZW0ga2V5PXtgJHt2fWB9IHZhbHVlPXt2fT5cbiAgICAgICAgICAgIHt2fVxuICAgICAgICAgIDwvTWVudUl0ZW0+XG4gICAgICAgICkpfVxuICAgICAgPC9TZWxlY3Q+XG4gICAgPC9Gb3JtQ29udHJvbD5cbiAgKTtcbn07XG5cbi8vIGlmIHRoZSB2YWx1ZSBpcyBudWxsIG9yICdudWxsJywgdGhlIFNhbXBsZSBBbnN3ZXIgaW5wdXQgZmllbGQgZm9yIHRoYXQgcG9pbnQgd2lsbCBub3QgYmUgZGlzcGFseWVkXG4vLyBpZiB0aGUgdmFsdWUgaXMgJycsIHRoZSBTYW1wbGUgQW5zd2VyIGlucHV0IGZpZWxkIHdpbGwgYmUgZW1wdHlcbmNvbnN0IGNoZWNrU2FtcGxlQW5zd2VyID0gKHNhbXBsZUFuc3dlcikgPT4gc2FtcGxlQW5zd2VyID09PSBudWxsIHx8IHNhbXBsZUFuc3dlciA9PT0gJ251bGwnO1xuXG5jb25zdCBSb3cgPSBzdHlsZWQoJ2RpdicpKCgpID0+ICh7IGRpc3BsYXk6ICdmbGV4Jywgd2lkdGg6ICcxMDAlJywgcG9zaXRpb246ICdyZWxhdGl2ZScgfSkpO1xuXG5jb25zdCBFZGl0b3JEaXYgPSBzdHlsZWQoJ2RpdicpKCh7IHRoZW1lIH0pID0+ICh7IHdpZHRoOiAnMTAwJScsIGJhY2tncm91bmRDb2xvcjogYCR7dGhlbWUucGFsZXR0ZS5jb21tb24ud2hpdGV9YCB9KSk7XG5cbmNvbnN0IERyYWdJbmRpY2F0b3JTdHlsZWQgPSBzdHlsZWQoRHJhZ0luZGljYXRvcikoKHsgdGhlbWUgfSkgPT4gKHsgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZygxKSwgY29sb3I6IGdyZXlbNTAwXSB9KSk7XG5cbmNvbnN0IFBvaW50c0xhYmVsID0gc3R5bGVkKFR5cG9ncmFwaHkpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGNvbG9yOiBncmV5WzUwMF0sXG4gIHBhZGRpbmdCb3R0b206IHRoZW1lLnNwYWNpbmcoMSksXG4gIHRleHRUcmFuc2Zvcm06ICd1cHBlcmNhc2UnLFxufSkpO1xuXG5jb25zdCBTYW1wbGVBbnN3ZXJzRWRpdG9yID0gc3R5bGVkKCdkaXYnKSgoeyB0aGVtZSB9KSA9PiAoeyBwYWRkaW5nTGVmdDogdGhlbWUuc3BhY2luZygzKSB9KSk7XG5cbmNvbnN0IEVycm9yVGV4dCA9IHN0eWxlZCgnZGl2JykoKHsgdGhlbWUgfSkgPT4gKHtcbiAgZm9udFNpemU6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFNpemUgLSAyLFxuICBjb2xvcjogdGhlbWUucGFsZXR0ZS5lcnJvci5tYWluLFxuICBwYWRkaW5nTGVmdDogdGhlbWUuc3BhY2luZygzKSxcbiAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZygxKSxcbn0pKTtcblxuY29uc3QgUG9pbnRNZW51V3JhcHBlciA9IHN0eWxlZCgnZGl2JykoKCkgPT4gKHsgcG9zaXRpb246ICdhYnNvbHV0ZScsIHJpZ2h0OiAwIH0pKTtcblxuZXhwb3J0IGNvbnN0IFBvaW50Q29uZmlnID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgcG9pbnRzLCBjb250ZW50LCBzYW1wbGVBbnN3ZXIsIG1hdGhNbE9wdGlvbnMgPSB7fSwgZXJyb3IsIHBsdWdpbk9wdHMgPSB7fSB9ID0gcHJvcHM7XG4gIGNvbnN0IHBvaW50c0xhYmVsID0gYCR7cG9pbnRzfSAke3BvaW50cyA8PSAxID8gJ3B0JyA6ICdwdHMnfWA7XG4gIGNvbnN0IHNob3dTYW1wbGVBbnN3ZXIgPSBjaGVja1NhbXBsZUFuc3dlcihzYW1wbGVBbnN3ZXIpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxQb2ludHNMYWJlbCB2YXJpYW50PVwib3ZlcmxpbmVcIj57cG9pbnRzTGFiZWx9PC9Qb2ludHNMYWJlbD5cbiAgICAgIDxSb3c+XG4gICAgICAgIDxEcmFnSW5kaWNhdG9yU3R5bGVkIC8+XG4gICAgICAgIDxFZGl0b3JEaXY+XG4gICAgICAgICAgPEVkaXRhYmxlSHRtbFxuICAgICAgICAgICAgZXJyb3I9e2Vycm9yfVxuICAgICAgICAgICAgcGx1Z2luUHJvcHM9e3BsdWdpbk9wdHN9XG4gICAgICAgICAgICBtYXJrdXA9e2NvbnRlbnR9XG4gICAgICAgICAgICBvbkNoYW5nZT17cHJvcHMub25DaGFuZ2V9XG4gICAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvRWRpdG9yRGl2PlxuICAgICAgICA8UG9pbnRNZW51V3JhcHBlcj5cbiAgICAgICAgICA8UG9pbnRNZW51IHNob3dTYW1wbGVBbnN3ZXI9e3Nob3dTYW1wbGVBbnN3ZXJ9IG9uQ2hhbmdlPXtwcm9wcy5vbk1lbnVDaGFuZ2V9IC8+XG4gICAgICAgIDwvUG9pbnRNZW51V3JhcHBlcj5cbiAgICAgIDwvUm93PlxuICAgICAge2Vycm9yICYmIDxFcnJvclRleHQ+e2Vycm9yfTwvRXJyb3JUZXh0Pn1cbiAgICAgIHshc2hvd1NhbXBsZUFuc3dlciAmJiAoXG4gICAgICAgIDxTYW1wbGVBbnN3ZXJzRWRpdG9yPlxuICAgICAgICAgIDxEcmFnSW5kaWNhdG9yU3R5bGVkIGFzPXtUeXBvZ3JhcGh5fSB2YXJpYW50PVwib3ZlcmxpbmVcIj5cbiAgICAgICAgICAgIFNhbXBsZSBSZXNwb25zZVxuICAgICAgICAgIDwvRHJhZ0luZGljYXRvclN0eWxlZD5cbiAgICAgICAgICA8RWRpdG9yRGl2PlxuICAgICAgICAgICAgPEVkaXRhYmxlSHRtbFxuICAgICAgICAgICAgICBtYXJrdXA9e3NhbXBsZUFuc3dlcn1cbiAgICAgICAgICAgICAgcGx1Z2luUHJvcHM9e3BsdWdpbk9wdHN9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtwcm9wcy5vblNhbXBsZUNoYW5nZX1cbiAgICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9FZGl0b3JEaXY+XG4gICAgICAgIDwvU2FtcGxlQW5zd2Vyc0VkaXRvcj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBDb250YWluZXIgPSBzdHlsZWQoJ2RpdicpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJhY2tncm91bmRDb2xvcjogZ3JleVsyMDBdLFxuICBib3JkZXJXaWR0aDogMSxcbiAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gIGJvcmRlckNvbG9yOiBncmV5WzMwMF0sXG4gIHBhZGRpbmc6IHRoZW1lLnNwYWNpbmcoMiksXG4gIG1hcmdpbjogdGhlbWUuc3BhY2luZygxKSxcbn0pKTtcbmNvbnN0IElucHV0Q29udGFpbmVyV3JhcHBlciA9IHN0eWxlZCgnZGl2JykoKHsgdGhlbWUgfSkgPT4gKHtcbiAgd2lkdGg6ICcxMDAlJyxcbiAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZygyKSxcbiAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nKDIpLFxuICAnJiBNdWlGb3JtQ29udHJvbC1yb290JzogeyB3aWR0aDogJzEwMCUnIH0sXG59KSk7XG5jb25zdCBSdWJyaWNsZXNzID0gc3R5bGVkKCdkaXYnKSgoKSA9PiAoeyBkaXNwbGF5OiAnbm9uZScgfSkpO1xuY29uc3QgQ29uZmlnSG9sZGVyID0gc3R5bGVkKCdkaXYnKSgoeyB0aGVtZSB9KSA9PiAoeyBwYWRkaW5nVG9wOiB0aGVtZS5zcGFjaW5nKDEpLCBwYWRkaW5nQm90dG9tOiB0aGVtZS5zcGFjaW5nKDEpIH0pKTtcbmNvbnN0IFJ1YnJpY1RpdGxlID0gc3R5bGVkKFR5cG9ncmFwaHkpKCh7IHRoZW1lIH0pID0+ICh7IHBhZGRpbmdMZWZ0OiB0aGVtZS5zcGFjaW5nKDEpLCBtYXJnaW46IHRoZW1lLnNwYWNpbmcoMSkgfSkpO1xuXG5leHBvcnQgY2xhc3MgUmF3QXV0aG9yaW5nIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICB2YWx1ZTogUnVicmljVHlwZSxcbiAgICBjb25maWc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgcGx1Z2luT3B0czogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBydWJyaWNsZXNzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHt9O1xuXG4gIGRyYWdFbmQgPSAocmVzdWx0KSA9PiB7XG4gICAgaWYgKCFyZXN1bHQuZGVzdGluYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IHZhbHVlLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHBvaW50cyA9IHJlb3JkZXIodmFsdWUucG9pbnRzLCByZXN1bHQuc291cmNlLmluZGV4LCByZXN1bHQuZGVzdGluYXRpb24uaW5kZXgpO1xuICAgIGNvbnN0IHNhbXBsZUFuc3dlcnMgPSByZW9yZGVyKHZhbHVlLnNhbXBsZUFuc3dlcnMsIHJlc3VsdC5zb3VyY2UuaW5kZXgsIHJlc3VsdC5kZXN0aW5hdGlvbi5pbmRleCk7XG5cbiAgICBvbkNoYW5nZSh7IC4uLnZhbHVlLCBwb2ludHMsIHNhbXBsZUFuc3dlcnMgfSk7XG4gIH07XG5cbiAgY2hhbmdlUnVicmljbGVzc0luc3RydWN0aW9uID0gKGlucHV0KSA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgb25DaGFuZ2UoeyAuLi52YWx1ZSwgcnVicmljbGVzc0luc3RydWN0aW9uOiBpbnB1dCB9KTtcbiAgfTtcblxuICBjaGFuZ2VNYXhQb2ludHMgPSAobWF4UG9pbnRzKSA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZSwgb25DaGFuZ2UsIHJ1YnJpY2xlc3MgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgY3VycmVudE1heCA9IHZhbHVlLnBvaW50cy5sZW5ndGggLSAxO1xuXG4gICAgbG9nKCdjdXJyZW50JywgY3VycmVudE1heCwgJ25ldzogJywgbWF4UG9pbnRzKTtcblxuICAgIGxldCBwb2ludHMsIHNhbXBsZUFuc3dlcnM7XG4gICAgaWYgKG1heFBvaW50cyA+IGN1cnJlbnRNYXgpIHtcbiAgICAgIHBvaW50cyA9IHRpbWVzKG1heFBvaW50cyAtIGN1cnJlbnRNYXgpXG4gICAgICAgIC5tYXAoKCkgPT4gJycpXG4gICAgICAgIC5jb25jYXQodmFsdWUucG9pbnRzKTtcbiAgICAgIHNhbXBsZUFuc3dlcnMgPSB0aW1lcyhtYXhQb2ludHMgLSBjdXJyZW50TWF4KVxuICAgICAgICAubWFwKCgpID0+IG51bGwpXG4gICAgICAgIC5jb25jYXQodmFsdWUuc2FtcGxlQW5zd2Vycyk7XG4gICAgfVxuXG4gICAgaWYgKG1heFBvaW50cyA8IGN1cnJlbnRNYXgpIHtcbiAgICAgIGxvZygnbGVzcyB0aGFuJyk7XG4gICAgICBwb2ludHMgPSB0YWtlUmlnaHQodmFsdWUucG9pbnRzLCBtYXhQb2ludHMgKyAxKTtcbiAgICAgIHNhbXBsZUFuc3dlcnMgPSB0YWtlUmlnaHQodmFsdWUuc2FtcGxlQW5zd2VycywgbWF4UG9pbnRzICsgMSk7XG4gICAgfVxuXG4gICAgaWYgKHBvaW50cyAmJiAhcnVicmljbGVzcykge1xuICAgICAgb25DaGFuZ2UoeyAuLi52YWx1ZSwgcG9pbnRzLCBzYW1wbGVBbnN3ZXJzLCBtYXhQb2ludHMgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9uQ2hhbmdlKHsgLi4udmFsdWUsIG1heFBvaW50cyB9KTtcbiAgICB9XG4gIH07XG5cbiAgY2hhbmdlQ29udGVudCA9IChpbmRleCwgY29udGVudCwgdHlwZSkgPT4ge1xuICAgIC8vIHR5cGUgY291bGQgYmUgJ3BvaW50cycgb3IgJ3NhbXBsZUFuc3dlcnMnXG4gICAgbG9nKGBjaGFuZ2VNb2RlbFske3R5cGV9XTpgLCBpbmRleCwgY29udGVudCk7XG5cbiAgICBpZiAodHlwZSAhPT0gJ3BvaW50cycgJiYgdHlwZSAhPT0gJ3NhbXBsZUFuc3dlcnMnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyB2YWx1ZSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgaXRlbXMgPSB2YWx1ZVt0eXBlXSAmJiBBcnJheS5mcm9tKHZhbHVlW3R5cGVdKTtcblxuICAgIGl0ZW1zLnNwbGljZShpbmRleCwgMSwgY29udGVudCk7XG4gICAgbG9nKGBjaGFuZ2VNb2RlbFske3R5cGV9XTpgLCBpdGVtcyk7XG5cbiAgICBvbkNoYW5nZSh7IC4uLnZhbHVlLCBbdHlwZV06IGl0ZW1zIH0pO1xuICB9O1xuXG4gIGV4Y2x1ZGVaZXJvcyA9ICgpID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIG9uQ2hhbmdlKHsgLi4udmFsdWUsIGV4Y2x1ZGVaZXJvOiAhdmFsdWUuZXhjbHVkZVplcm8gfSk7XG4gIH07XG5cbiAgc2hvdWxkUmVuZGVyUG9pbnQgPSAoaW5kZXgsIHZhbHVlKSA9PiB7XG4gICAgaWYgKCF2YWx1ZS5leGNsdWRlWmVybykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChpbmRleCA8IHZhbHVlLnBvaW50cy5sZW5ndGggLSAxKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gdmFsdWUucG9pbnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH07XG5cbiAgb25Qb2ludE1lbnVDaGFuZ2UgPSAoaW5kZXgsIGNsaWNrZWRJdGVtKSA9PiB7XG4gICAgaWYgKGNsaWNrZWRJdGVtID09PSAnc2FtcGxlJykge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHNhbXBsZUFuc3dlcnMgPSBBcnJheS5mcm9tKHZhbHVlLnNhbXBsZUFuc3dlcnMgfHwgW10pO1xuXG4gICAgICBpZiAoY2hlY2tTYW1wbGVBbnN3ZXIoc2FtcGxlQW5zd2Vyc1tpbmRleF0pKSB7XG4gICAgICAgIC8vIGFuIGVtcHR5IHN0cmluZyB3aWxsIGRpc3BsYXkgYW4gZW1wdHkgU2FtcGxlIEFuc3dlciBpbnB1dCBmaWVsZFxuICAgICAgICB0aGlzLmNoYW5nZUNvbnRlbnQoaW5kZXgsICcnLCAnc2FtcGxlQW5zd2VycycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gd2hlbiB0aGUgY29udGVudCBpcyBudWxsIG9yICdudWxsJywgdGhlIFNhbXBsZSBBbnN3ZXIgaW5wdXQgZmllbGQgd2lsbCBub3QgYmUgZGlzcGxheWVkXG4gICAgICAgIHRoaXMuY2hhbmdlQ29udGVudChpbmRleCwgbnVsbCwgJ3NhbXBsZUFuc3dlcnMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgdmFsdWUsIG1hdGhNbE9wdGlvbnMgPSB7fSwgY29uZmlnID0ge30sIHJ1YnJpY2xlc3MgPSBmYWxzZSwgcGx1Z2luT3B0cyA9IHt9IH0gPSB0aGlzLnByb3BzO1xuICAgIGxldCB7XG4gICAgICBleGNsdWRlWmVyb0VuYWJsZWQgPSB0cnVlLFxuICAgICAgbWF4UG9pbnRzRW5hYmxlZCA9IHRydWUsXG4gICAgICBlcnJvcnMgPSB7fSxcbiAgICAgIHJ1YnJpY2xlc3NJbnN0cnVjdGlvbkVuYWJsZWQgPSBmYWxzZSxcbiAgICAgIG1heFBvaW50cyA9IDEwLFxuICAgIH0gPSB2YWx1ZSB8fCB7fTtcbiAgICAvLyBydWJyaWMgd2lsbCBjb250YWluIGEgbWF4IHZhbHVlIGZvciBtYXhQb2ludHNcbiAgICBjb25zdCB7IHJ1YnJpY2xlc3NJbnN0cnVjdGlvbiA9IHt9LCBtYXhNYXhQb2ludHMgPSAxMCB9ID0gY29uZmlnIHx8IHt9O1xuICAgIGNvbnN0IHsgcG9pbnRzRGVzY3JpcHRvcnNFcnJvcnMgfSA9IGVycm9ycyB8fCB7fTtcbiAgICBpZiAodmFsdWUgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlLm1heFBvaW50cykpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oJ21heFBvaW50cyBpcyBkZXByZWNhdGVkIC0gcmVtb3ZlIGZyb20gbW9kZWwnKTtcbiAgICB9XG5cbiAgICAvLyBmb3IgcnVicmljIHZhbHVlIGlzIGNvbXB1dGVkIGJhc2VkIG9uIHBvaW50c1xuICAgIGNvbnN0IG1heFBvaW50c1ZhbHVlID0gIXJ1YnJpY2xlc3MgPyB2YWx1ZS5wb2ludHMubGVuZ3RoIC0gMSA6IG1heFBvaW50cztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8UnVicmljVGl0bGUgdmFyaWFudD1cImg1XCI+UnVicmljPC9SdWJyaWNUaXRsZT5cbiAgICAgICAgPEZvcm1Hcm91cCByb3c+XG4gICAgICAgICAge21heFBvaW50c0VuYWJsZWQgJiYgKFxuICAgICAgICAgICAgPE1heFBvaW50c1xuICAgICAgICAgICAgICBtYXg9e21heE1heFBvaW50cyA8IDEwMCA/IG1heE1heFBvaW50cyA6IDEwMH1cbiAgICAgICAgICAgICAgdmFsdWU9e21heFBvaW50c1ZhbHVlfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5jaGFuZ2VNYXhQb2ludHN9XG4gICAgICAgICAgICAgIHBsdWdpbk9wdHM9e3BsdWdpbk9wdHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge2V4Y2x1ZGVaZXJvRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8Rm9ybUNvbnRyb2xMYWJlbFxuICAgICAgICAgICAgICBsYWJlbD1cIkV4Y2x1ZGUgemVyb3NcIlxuICAgICAgICAgICAgICBjb250cm9sPXs8Q2hlY2tib3ggY2hlY2tlZD17dmFsdWUuZXhjbHVkZVplcm99IG9uQ2hhbmdlPXt0aGlzLmV4Y2x1ZGVaZXJvc30gLz59XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRm9ybUdyb3VwPlxuXG4gICAgICAgIHtydWJyaWNsZXNzSW5zdHJ1Y3Rpb25FbmFibGVkICYmIHJ1YnJpY2xlc3MgJiYgKFxuICAgICAgICAgIDxJbnB1dENvbnRhaW5lcldyYXBwZXI+XG4gICAgICAgICAgICA8SW5wdXRDb250YWluZXIgbGFiZWw9e3J1YnJpY2xlc3NJbnN0cnVjdGlvbi5sYWJlbH0+XG4gICAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgICBtYXJrdXA9e3ZhbHVlLnJ1YnJpY2xlc3NJbnN0cnVjdGlvbiB8fCAnJ31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5jaGFuZ2VSdWJyaWNsZXNzSW5zdHJ1Y3Rpb259XG4gICAgICAgICAgICAgICAgcGx1Z2luUHJvcHM9e3BsdWdpbk9wdHN9XG4gICAgICAgICAgICAgICAgbm9uRW1wdHk9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIGRpc2FibGVVbmRlcmxpbmVcbiAgICAgICAgICAgICAgICBsYW5ndWFnZUNoYXJhY3RlcnNQcm9wcz17W3sgbGFuZ3VhZ2U6ICdzcGFuaXNoJyB9LCB7IGxhbmd1YWdlOiAnc3BlY2lhbCcgfV19XG4gICAgICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICAgPC9JbnB1dENvbnRhaW5lcldyYXBwZXI+XG4gICAgICAgICl9XG5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7cnVicmljbGVzcyA/IChcbiAgICAgICAgICAgIDxSdWJyaWNsZXNzIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxDb250YWluZXI+XG4gICAgICAgICAgICAgIDxEcmFnRHJvcENvbnRleHQgb25EcmFnRW5kPXt0aGlzLmRyYWdFbmR9PlxuICAgICAgICAgICAgICAgIDxEcm9wcGFibGUgZHJvcHBhYmxlSWQ9XCJkcm9wcGFibGVcIj5cbiAgICAgICAgICAgICAgICAgIHsocHJvdmlkZWQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiB7Li4ucHJvdmlkZWQuZHJvcHBhYmxlUHJvcHN9IHJlZj17cHJvdmlkZWQuaW5uZXJSZWZ9PlxuICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZS5wb2ludHMubWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgKHAsIGluZGV4KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3VsZFJlbmRlclBvaW50KGluZGV4LCB2YWx1ZSkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEcmFnZ2FibGUga2V5PXtgJHtwLnBvaW50c30tJHtpbmRleH1gfSBpbmRleD17aW5kZXh9IGRyYWdnYWJsZUlkPXtpbmRleC50b1N0cmluZygpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsocHJvdmlkZWQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbmZpZ0hvbGRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17cHJvdmlkZWQuaW5uZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLnByb3ZpZGVkLmRyYWdnYWJsZVByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5wcm92aWRlZC5kcmFnSGFuZGxlUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UG9pbnRDb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50cz17dmFsdWUucG9pbnRzLmxlbmd0aCAtIDEgLSBpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9e3B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50c0Rlc2NyaXB0b3JzRXJyb3JzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50c0Rlc2NyaXB0b3JzRXJyb3JzW3ZhbHVlLnBvaW50cy5sZW5ndGggLSAxIC0gaW5kZXhdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVBbnN3ZXI9e3ZhbHVlLnNhbXBsZUFuc3dlcnMgJiYgdmFsdWUuc2FtcGxlQW5zd2Vyc1tpbmRleF19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGNvbnRlbnQpID0+IHRoaXMuY2hhbmdlQ29udGVudChpbmRleCwgY29udGVudCwgJ3BvaW50cycpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TYW1wbGVDaGFuZ2U9eyhjb250ZW50KSA9PiB0aGlzLmNoYW5nZUNvbnRlbnQoaW5kZXgsIGNvbnRlbnQsICdzYW1wbGVBbnN3ZXJzJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1lbnVDaGFuZ2U9eyhjbGlja2VkSXRlbSkgPT4gdGhpcy5vblBvaW50TWVudUNoYW5nZShpbmRleCwgY2xpY2tlZEl0ZW0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbk9wdHM9e3BsdWdpbk9wdHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db25maWdIb2xkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJhZ2dhYmxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAge3Byb3ZpZGVkLnBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9Ecm9wcGFibGU+XG4gICAgICAgICAgICAgIDwvRHJhZ0Ryb3BDb250ZXh0PlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbi8vIHN0eWxlcyBtaWdyYXRlZCB0byBzdHlsZWQtY29tcG9uZW50cyBhYm92ZVxuXG5jb25zdCBSZXZlcnNlID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgcnVicmljbGVzcyA9IGZhbHNlLCBjb25maWcgPSB7fSwgcGx1Z2luT3B0cyA9IHt9IH0gPSBwcm9wcyB8fCB7fTtcbiAgY29uc3QgcG9pbnRzID0gQXJyYXkuZnJvbShwcm9wcy52YWx1ZS5wb2ludHMgfHwgW10pLnJldmVyc2UoKTtcbiAgbGV0IHNhbXBsZUFuc3dlcnMgPSBBcnJheS5mcm9tKHByb3BzLnZhbHVlLnNhbXBsZUFuc3dlcnMgfHwgW10pLnJldmVyc2UoKTtcblxuICBpZiAocG9pbnRzLmxlbmd0aCA+IHNhbXBsZUFuc3dlcnMubGVuZ3RoKSB7XG4gICAgc2FtcGxlQW5zd2VycyA9IHRpbWVzKHBvaW50cy5sZW5ndGggLSBzYW1wbGVBbnN3ZXJzLmxlbmd0aClcbiAgICAgIC5tYXAoKCkgPT4gbnVsbClcbiAgICAgIC5jb25jYXQoc2FtcGxlQW5zd2Vycyk7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IHsgLi4ucHJvcHMudmFsdWUsIHBvaW50cywgc2FtcGxlQW5zd2VycyB9O1xuXG4gIGNvbnN0IG9uQ2hhbmdlID0gKHZhbHVlKSA9PiB7XG4gICAgcHJvcHMub25DaGFuZ2Uoe1xuICAgICAgLi4udmFsdWUsXG4gICAgICBwb2ludHM6IEFycmF5LmZyb20odmFsdWUucG9pbnRzIHx8IFtdKS5yZXZlcnNlKCksXG4gICAgICBzYW1wbGVBbnN3ZXJzOiBBcnJheS5mcm9tKHZhbHVlLnNhbXBsZUFuc3dlcnMgfHwgW10pLnJldmVyc2UoKSxcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxSYXdBdXRob3JpbmcgdmFsdWU9e3ZhbHVlfSBjb25maWc9e2NvbmZpZ30gb25DaGFuZ2U9e29uQ2hhbmdlfSBydWJyaWNsZXNzPXtydWJyaWNsZXNzfSBwbHVnaW5PcHRzPXtwbHVnaW5PcHRzfSAvPlxuICApO1xufTtcblxuUmV2ZXJzZS5wcm9wVHlwZXMgPSB7XG4gIHZhbHVlOiBSdWJyaWNUeXBlLFxuICBjb25maWc6IFByb3BUeXBlcy5vYmplY3QsXG4gIHBsdWdpbk9wdHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIHJ1YnJpY2xlc3M6IFByb3BUeXBlcy5ib29sLFxuICBnZXRJbmRleDogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJldmVyc2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLFdBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLGNBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFlBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLE1BQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFNBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLFVBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFXLGlCQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxXQUFBLEdBQUFiLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYSxjQUFBLEdBQUFkLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYyxJQUFBLEdBQUFkLE9BQUE7QUFDQSxJQUFBZSxNQUFBLEdBQUFoQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWdCLFVBQUEsR0FBQWpCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBaUIsVUFBQSxHQUFBbEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFrQixNQUFBLEdBQUFuQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQW1CLG1CQUFBLEdBQUFwQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQW9CLFNBQUEsR0FBQXBCLE9BQUE7QUFDQSxJQUFBcUIsT0FBQSxHQUFBckIsT0FBQTtBQUE0QyxTQUFBc0IsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFBYyx5QkFBQSxDQUFBZixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFnQixjQUFBLENBQUFuQixDQUFBLEVBQUFDLENBQUEsRUFBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBTixDQUFBLEVBQUFELENBQUEsaUJBQUFELENBQUE7QUFBQSxTQUFBb0IsV0FBQWxCLENBQUEsRUFBQUksQ0FBQSxFQUFBTixDQUFBLFdBQUFNLENBQUEsT0FBQWUsZ0JBQUEsYUFBQWYsQ0FBQSxPQUFBZ0IsMkJBQUEsYUFBQXBCLENBQUEsRUFBQXFCLHlCQUFBLEtBQUFDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBbkIsQ0FBQSxFQUFBTixDQUFBLFlBQUFxQixnQkFBQSxhQUFBbkIsQ0FBQSxFQUFBd0IsV0FBQSxJQUFBcEIsQ0FBQSxDQUFBSyxLQUFBLENBQUFULENBQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUF1QiwwQkFBQSxjQUFBckIsQ0FBQSxJQUFBeUIsT0FBQSxDQUFBQyxTQUFBLENBQUFDLE9BQUEsQ0FBQUMsSUFBQSxDQUFBTixPQUFBLENBQUFDLFNBQUEsQ0FBQUUsT0FBQSxpQ0FBQXpCLENBQUEsYUFBQXFCLHlCQUFBLFlBQUFBLDBCQUFBLGFBQUFyQixDQUFBO0FBRTVDLElBQU02QixHQUFHLEdBQUcsSUFBQUMsaUJBQUssRUFBQywwQkFBMEIsQ0FBQztBQUU3QyxJQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBT0EsQ0FBSUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBSztFQUM5QyxJQUFNQyxNQUFNLEdBQUdDLEtBQUssQ0FBQ0MsSUFBSSxDQUFDTCxJQUFJLENBQUM7RUFDL0IsSUFBQU0sY0FBQSxHQUFrQkgsTUFBTSxDQUFDSSxNQUFNLENBQUNOLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFBQU8sZUFBQSxPQUFBQyxlQUFBLGFBQUFILGNBQUE7SUFBdkNJLE9BQU8sR0FBQUYsZUFBQTtFQUVkTCxNQUFNLENBQUNJLE1BQU0sQ0FBQ0wsUUFBUSxFQUFFLENBQUMsRUFBRVEsT0FBTyxDQUFDO0VBRW5DLE9BQU9QLE1BQU07QUFDZixDQUFDO0FBRU0sSUFBTVEsVUFBVSxHQUFBQyxPQUFBLENBQUFELFVBQUEsR0FBR0UscUJBQVMsQ0FBQ0MsS0FBSyxDQUFDO0VBQ3hDQyxXQUFXLEVBQUVGLHFCQUFTLENBQUNHLElBQUk7RUFDM0JDLE1BQU0sRUFBRUoscUJBQVMsQ0FBQ0ssT0FBTyxDQUFDTCxxQkFBUyxDQUFDTSxNQUFNLENBQUM7RUFDM0NDLGFBQWEsRUFBRVAscUJBQVMsQ0FBQ0ssT0FBTyxDQUFDTCxxQkFBUyxDQUFDTSxNQUFNLENBQUM7RUFDbERFLFNBQVMsRUFBRVIscUJBQVMsQ0FBQ1MsTUFBTTtFQUMzQkMscUJBQXFCLEVBQUVWLHFCQUFTLENBQUNNO0FBQ25DLENBQUMsQ0FBQztBQUVGLElBQU1LLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFJQyxLQUFLLEVBQUs7RUFDM0IsSUFBUUMsS0FBSyxHQUFvQkQsS0FBSyxDQUE5QkMsS0FBSztJQUFFQyxTQUFRLEdBQVVGLEtBQUssQ0FBdkJFLFFBQVE7SUFBRUMsR0FBRyxHQUFLSCxLQUFLLENBQWJHLEdBQUc7RUFDNUIsSUFBTUMsT0FBTyxHQUFHLGtCQUFrQjtFQUVsQyxvQkFDRXhGLE1BQUEsWUFBQXlGLGFBQUEsQ0FBQ2pGLFlBQUEsV0FBVztJQUFDa0YsRUFBRSxFQUFFO01BQUVDLFFBQVEsRUFBRSxHQUFHO01BQUVDLENBQUMsRUFBRTtJQUFFLENBQUU7SUFBQ0MsT0FBTyxFQUFDO0VBQVUsZ0JBQzFEN0YsTUFBQSxZQUFBeUYsYUFBQSxDQUFDcEYsV0FBQSxXQUFVO0lBQUN5RixFQUFFLEVBQUVOO0VBQVEsR0FBQyxZQUFzQixDQUFDLGVBQ2hEeEYsTUFBQSxZQUFBeUYsYUFBQSxDQUFDbEYsT0FBQSxXQUFNO0lBQ0xpRixPQUFPLEVBQUVBLE9BQVE7SUFDakJPLEtBQUssRUFBQyxZQUFZO0lBQ2xCVixLQUFLLEVBQUVBLEtBQU07SUFDYkMsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUc3RCxDQUFDO01BQUEsT0FBSzZELFNBQVEsQ0FBQzdELENBQUMsQ0FBQ3VFLE1BQU0sQ0FBQ1gsS0FBSyxDQUFDO0lBQUEsQ0FBQztJQUMxQ1ksS0FBSyxlQUFFakcsTUFBQSxZQUFBeUYsYUFBQSxDQUFDbkYsY0FBQSxXQUFhO01BQUN5RixLQUFLLEVBQUM7SUFBWSxDQUFFLENBQUU7SUFDNUNHLFNBQVMsRUFBRTtNQUFFQyxrQkFBa0IsRUFBRTtRQUFFQyxLQUFLLEVBQUUsR0FBRztRQUFFQyxJQUFJLEVBQUU7TUFBSTtJQUFFO0VBQUUsR0FFNUQsSUFBQUMsaUJBQUssRUFBQyxDQUFDLEVBQUVmLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQ2dCLEdBQUcsQ0FBQyxVQUFDQyxDQUFDO0lBQUEsb0JBQ3ZCeEcsTUFBQSxZQUFBeUYsYUFBQSxDQUFDaEYsU0FBQSxXQUFRO01BQUNnRyxHQUFHLEtBQUFDLE1BQUEsQ0FBS0YsQ0FBQyxDQUFHO01BQUNuQixLQUFLLEVBQUVtQjtJQUFFLEdBQzdCQSxDQUNPLENBQUM7RUFBQSxDQUNaLENBQ0ssQ0FDRyxDQUFDO0FBRWxCLENBQUM7O0FBRUQ7QUFDQTtBQUNBLElBQU1HLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUlDLFlBQVk7RUFBQSxPQUFLQSxZQUFZLEtBQUssSUFBSSxJQUFJQSxZQUFZLEtBQUssTUFBTTtBQUFBO0FBRTVGLElBQU1DLEdBQUcsR0FBRyxJQUFBQyxjQUFNLEVBQUMsS0FBSyxDQUFDLENBQUM7RUFBQSxPQUFPO0lBQUVDLE9BQU8sRUFBRSxNQUFNO0lBQUVDLEtBQUssRUFBRSxNQUFNO0lBQUVDLFFBQVEsRUFBRTtFQUFXLENBQUM7QUFBQSxDQUFDLENBQUM7QUFFM0YsSUFBTUMsU0FBUyxHQUFHLElBQUFKLGNBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxVQUFBSyxJQUFBO0VBQUEsSUFBR0MsS0FBSyxHQUFBRCxJQUFBLENBQUxDLEtBQUs7RUFBQSxPQUFRO0lBQUVKLEtBQUssRUFBRSxNQUFNO0lBQUVLLGVBQWUsS0FBQVgsTUFBQSxDQUFLVSxLQUFLLENBQUNFLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLO0VBQUcsQ0FBQztBQUFBLENBQUMsQ0FBQztBQUVySCxJQUFNQyxtQkFBbUIsR0FBRyxJQUFBWCxjQUFNLEVBQUNZLHlCQUFhLENBQUMsQ0FBQyxVQUFBQyxLQUFBO0VBQUEsSUFBR1AsS0FBSyxHQUFBTyxLQUFBLENBQUxQLEtBQUs7RUFBQSxPQUFRO0lBQUVRLFVBQVUsRUFBRVIsS0FBSyxDQUFDUyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQUVDLEtBQUssRUFBRUMsWUFBSSxDQUFDLEdBQUc7RUFBRSxDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRXRILElBQU1DLFdBQVcsR0FBRyxJQUFBbEIsY0FBTSxFQUFDbUIsc0JBQVUsQ0FBQyxDQUFDLFVBQUFDLEtBQUE7RUFBQSxJQUFHZCxLQUFLLEdBQUFjLEtBQUEsQ0FBTGQsS0FBSztFQUFBLE9BQVE7SUFDckRVLEtBQUssRUFBRUMsWUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNoQkksYUFBYSxFQUFFZixLQUFLLENBQUNTLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDL0JPLGFBQWEsRUFBRTtFQUNqQixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUgsSUFBTUMsbUJBQW1CLEdBQUcsSUFBQXZCLGNBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxVQUFBd0IsS0FBQTtFQUFBLElBQUdsQixLQUFLLEdBQUFrQixLQUFBLENBQUxsQixLQUFLO0VBQUEsT0FBUTtJQUFFbUIsV0FBVyxFQUFFbkIsS0FBSyxDQUFDUyxPQUFPLENBQUMsQ0FBQztFQUFFLENBQUM7QUFBQSxDQUFDLENBQUM7QUFFN0YsSUFBTVcsU0FBUyxHQUFHLElBQUExQixjQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsVUFBQTJCLEtBQUE7RUFBQSxJQUFHckIsS0FBSyxHQUFBcUIsS0FBQSxDQUFMckIsS0FBSztFQUFBLE9BQVE7SUFDOUNzQixRQUFRLEVBQUV0QixLQUFLLENBQUN1QixVQUFVLENBQUNELFFBQVEsR0FBRyxDQUFDO0lBQ3ZDWixLQUFLLEVBQUVWLEtBQUssQ0FBQ0UsT0FBTyxDQUFDc0IsS0FBSyxDQUFDQyxJQUFJO0lBQy9CTixXQUFXLEVBQUVuQixLQUFLLENBQUNTLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDN0JELFVBQVUsRUFBRVIsS0FBSyxDQUFDUyxPQUFPLENBQUMsQ0FBQztFQUM3QixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUgsSUFBTWlCLGdCQUFnQixHQUFHLElBQUFoQyxjQUFNLEVBQUMsS0FBSyxDQUFDLENBQUM7RUFBQSxPQUFPO0lBQUVHLFFBQVEsRUFBRSxVQUFVO0lBQUU4QixLQUFLLEVBQUU7RUFBRSxDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRTNFLElBQU1DLFdBQVcsR0FBQXpFLE9BQUEsQ0FBQXlFLFdBQUEsR0FBRyxTQUFkQSxXQUFXQSxDQUFJNUQsS0FBSyxFQUFLO0VBQ3BDLElBQVFSLE1BQU0sR0FBd0VRLEtBQUssQ0FBbkZSLE1BQU07SUFBRXFFLE9BQU8sR0FBK0Q3RCxLQUFLLENBQTNFNkQsT0FBTztJQUFFckMsWUFBWSxHQUFpRHhCLEtBQUssQ0FBbEV3QixZQUFZO0lBQUFzQyxvQkFBQSxHQUFpRDlELEtBQUssQ0FBcEQrRCxhQUFhO0lBQWJBLGFBQWEsR0FBQUQsb0JBQUEsY0FBRyxDQUFDLENBQUMsR0FBQUEsb0JBQUE7SUFBRU4sS0FBSyxHQUFzQnhELEtBQUssQ0FBaEN3RCxLQUFLO0lBQUFRLGlCQUFBLEdBQXNCaEUsS0FBSyxDQUF6QmlFLFVBQVU7SUFBVkEsVUFBVSxHQUFBRCxpQkFBQSxjQUFHLENBQUMsQ0FBQyxHQUFBQSxpQkFBQTtFQUNqRixJQUFNRSxXQUFXLE1BQUE1QyxNQUFBLENBQU05QixNQUFNLE9BQUE4QixNQUFBLENBQUk5QixNQUFNLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUU7RUFDN0QsSUFBTTJFLGdCQUFnQixHQUFHNUMsaUJBQWlCLENBQUNDLFlBQVksQ0FBQztFQUV4RCxvQkFDRTVHLE1BQUEsWUFBQXlGLGFBQUEsMkJBQ0V6RixNQUFBLFlBQUF5RixhQUFBLENBQUN1QyxXQUFXO0lBQUNuQyxPQUFPLEVBQUM7RUFBVSxHQUFFeUQsV0FBeUIsQ0FBQyxlQUMzRHRKLE1BQUEsWUFBQXlGLGFBQUEsQ0FBQ29CLEdBQUcscUJBQ0Y3RyxNQUFBLFlBQUF5RixhQUFBLENBQUNnQyxtQkFBbUIsTUFBRSxDQUFDLGVBQ3ZCekgsTUFBQSxZQUFBeUYsYUFBQSxDQUFDeUIsU0FBUyxxQkFDUmxILE1BQUEsWUFBQXlGLGFBQUEsQ0FBQ3BFLG1CQUFBLFdBQVk7SUFDWHVILEtBQUssRUFBRUEsS0FBTTtJQUNiWSxXQUFXLEVBQUVILFVBQVc7SUFDeEJJLE1BQU0sRUFBRVIsT0FBUTtJQUNoQjNELFFBQVEsRUFBRUYsS0FBSyxDQUFDRSxRQUFTO0lBQ3pCNkQsYUFBYSxFQUFFQTtFQUFjLENBQzlCLENBQ1EsQ0FBQyxlQUNabkosTUFBQSxZQUFBeUYsYUFBQSxDQUFDcUQsZ0JBQWdCLHFCQUNmOUksTUFBQSxZQUFBeUYsYUFBQSxDQUFDdEUsVUFBQSxXQUFTO0lBQUNvSSxnQkFBZ0IsRUFBRUEsZ0JBQWlCO0lBQUNqRSxRQUFRLEVBQUVGLEtBQUssQ0FBQ3NFO0VBQWEsQ0FBRSxDQUM5RCxDQUNmLENBQUMsRUFDTGQsS0FBSyxpQkFBSTVJLE1BQUEsWUFBQXlGLGFBQUEsQ0FBQytDLFNBQVMsUUFBRUksS0FBaUIsQ0FBQyxFQUN2QyxDQUFDVyxnQkFBZ0IsaUJBQ2hCdkosTUFBQSxZQUFBeUYsYUFBQSxDQUFDNEMsbUJBQW1CLHFCQUNsQnJJLE1BQUEsWUFBQXlGLGFBQUEsQ0FBQ2dDLG1CQUFtQjtJQUFDa0MsRUFBRSxFQUFFMUIsc0JBQVc7SUFBQ3BDLE9BQU8sRUFBQztFQUFVLEdBQUMsaUJBRW5DLENBQUMsZUFDdEI3RixNQUFBLFlBQUF5RixhQUFBLENBQUN5QixTQUFTLHFCQUNSbEgsTUFBQSxZQUFBeUYsYUFBQSxDQUFDcEUsbUJBQUEsV0FBWTtJQUNYb0ksTUFBTSxFQUFFN0MsWUFBYTtJQUNyQjRDLFdBQVcsRUFBRUgsVUFBVztJQUN4Qi9ELFFBQVEsRUFBRUYsS0FBSyxDQUFDd0UsY0FBZTtJQUMvQlQsYUFBYSxFQUFFQTtFQUFjLENBQzlCLENBQ1EsQ0FDUSxDQUVwQixDQUFDO0FBRVYsQ0FBQztBQUVELElBQU1VLFNBQVMsR0FBRyxJQUFBL0MsY0FBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLFVBQUFnRCxLQUFBO0VBQUEsSUFBRzFDLEtBQUssR0FBQTBDLEtBQUEsQ0FBTDFDLEtBQUs7RUFBQSxPQUFRO0lBQzlDQyxlQUFlLEVBQUVVLFlBQUksQ0FBQyxHQUFHLENBQUM7SUFDMUJnQyxXQUFXLEVBQUUsQ0FBQztJQUNkQyxXQUFXLEVBQUUsT0FBTztJQUNwQkMsV0FBVyxFQUFFbEMsWUFBSSxDQUFDLEdBQUcsQ0FBQztJQUN0Qm1DLE9BQU8sRUFBRTlDLEtBQUssQ0FBQ1MsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN6QnNDLE1BQU0sRUFBRS9DLEtBQUssQ0FBQ1MsT0FBTyxDQUFDLENBQUM7RUFDekIsQ0FBQztBQUFBLENBQUMsQ0FBQztBQUNILElBQU11QyxxQkFBcUIsR0FBRyxJQUFBdEQsY0FBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLFVBQUF1RCxLQUFBO0VBQUEsSUFBR2pELEtBQUssR0FBQWlELEtBQUEsQ0FBTGpELEtBQUs7RUFBQSxPQUFRO0lBQzFESixLQUFLLEVBQUUsTUFBTTtJQUNiWSxVQUFVLEVBQUVSLEtBQUssQ0FBQ1MsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM1QnlDLFlBQVksRUFBRWxELEtBQUssQ0FBQ1MsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM5Qix1QkFBdUIsRUFBRTtNQUFFYixLQUFLLEVBQUU7SUFBTztFQUMzQyxDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBQ0gsSUFBTXVELFVBQVUsR0FBRyxJQUFBekQsY0FBTSxFQUFDLEtBQUssQ0FBQyxDQUFDO0VBQUEsT0FBTztJQUFFQyxPQUFPLEVBQUU7RUFBTyxDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBQzdELElBQU15RCxZQUFZLEdBQUcsSUFBQTFELGNBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxVQUFBMkQsS0FBQTtFQUFBLElBQUdyRCxLQUFLLEdBQUFxRCxLQUFBLENBQUxyRCxLQUFLO0VBQUEsT0FBUTtJQUFFUSxVQUFVLEVBQUVSLEtBQUssQ0FBQ1MsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUFFTSxhQUFhLEVBQUVmLEtBQUssQ0FBQ1MsT0FBTyxDQUFDLENBQUM7RUFBRSxDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBQ3RILElBQU02QyxXQUFXLEdBQUcsSUFBQTVELGNBQU0sRUFBQ21CLHNCQUFVLENBQUMsQ0FBQyxVQUFBMEMsS0FBQTtFQUFBLElBQUd2RCxLQUFLLEdBQUF1RCxLQUFBLENBQUx2RCxLQUFLO0VBQUEsT0FBUTtJQUFFbUIsV0FBVyxFQUFFbkIsS0FBSyxDQUFDUyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQUVzQyxNQUFNLEVBQUUvQyxLQUFLLENBQUNTLE9BQU8sQ0FBQyxDQUFDO0VBQUUsQ0FBQztBQUFBLENBQUMsQ0FBQztBQUFDLElBRXhHK0MsWUFBWSxHQUFBckcsT0FBQSxDQUFBcUcsWUFBQSwwQkFBQUMsZ0JBQUE7RUFBQSxTQUFBRCxhQUFBO0lBQUEsSUFBQUUsS0FBQTtJQUFBLElBQUFDLGdCQUFBLG1CQUFBSCxZQUFBO0lBQUEsU0FBQUksSUFBQSxHQUFBMUksU0FBQSxDQUFBQyxNQUFBLEVBQUEwSSxJQUFBLE9BQUFsSCxLQUFBLENBQUFpSCxJQUFBLEdBQUFFLElBQUEsTUFBQUEsSUFBQSxHQUFBRixJQUFBLEVBQUFFLElBQUE7TUFBQUQsSUFBQSxDQUFBQyxJQUFBLElBQUE1SSxTQUFBLENBQUE0SSxJQUFBO0lBQUE7SUFBQUosS0FBQSxHQUFBakksVUFBQSxPQUFBK0gsWUFBQSxLQUFBbEUsTUFBQSxDQUFBdUUsSUFBQTtJQUFBLElBQUF4SSxnQkFBQSxhQUFBcUksS0FBQSxhQVdiLFVBQUNoSCxNQUFNLEVBQUs7TUFDcEIsSUFBSSxDQUFDQSxNQUFNLENBQUNxSCxXQUFXLEVBQUU7UUFDdkI7TUFDRjtNQUVBLElBQUFDLFdBQUEsR0FBNEJOLEtBQUEsQ0FBSzFGLEtBQUs7UUFBOUJDLEtBQUssR0FBQStGLFdBQUEsQ0FBTC9GLEtBQUs7UUFBRUMsUUFBUSxHQUFBOEYsV0FBQSxDQUFSOUYsUUFBUTtNQUV2QixJQUFNVixNQUFNLEdBQUdsQixPQUFPLENBQUMyQixLQUFLLENBQUNULE1BQU0sRUFBRWQsTUFBTSxDQUFDdUgsTUFBTSxDQUFDQyxLQUFLLEVBQUV4SCxNQUFNLENBQUNxSCxXQUFXLENBQUNHLEtBQUssQ0FBQztNQUNuRixJQUFNdkcsYUFBYSxHQUFHckIsT0FBTyxDQUFDMkIsS0FBSyxDQUFDTixhQUFhLEVBQUVqQixNQUFNLENBQUN1SCxNQUFNLENBQUNDLEtBQUssRUFBRXhILE1BQU0sQ0FBQ3FILFdBQVcsQ0FBQ0csS0FBSyxDQUFDO01BRWpHaEcsUUFBUSxDQUFBakQsYUFBQSxDQUFBQSxhQUFBLEtBQU1nRCxLQUFLO1FBQUVULE1BQU0sRUFBTkEsTUFBTTtRQUFFRyxhQUFhLEVBQWJBO01BQWEsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFBQSxJQUFBdEMsZ0JBQUEsYUFBQXFJLEtBQUEsaUNBRTZCLFVBQUM3RSxLQUFLLEVBQUs7TUFDdkMsSUFBQXNGLFlBQUEsR0FBNEJULEtBQUEsQ0FBSzFGLEtBQUs7UUFBOUJDLEtBQUssR0FBQWtHLFlBQUEsQ0FBTGxHLEtBQUs7UUFBRUMsUUFBUSxHQUFBaUcsWUFBQSxDQUFSakcsUUFBUTtNQUN2QkEsUUFBUSxDQUFBakQsYUFBQSxDQUFBQSxhQUFBLEtBQU1nRCxLQUFLO1FBQUVILHFCQUFxQixFQUFFZTtNQUFLLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBQUEsSUFBQXhELGdCQUFBLGFBQUFxSSxLQUFBLHFCQUVpQixVQUFDOUYsU0FBUyxFQUFLO01BQy9CLElBQUF3RyxZQUFBLEdBQXdDVixLQUFBLENBQUsxRixLQUFLO1FBQTFDQyxLQUFLLEdBQUFtRyxZQUFBLENBQUxuRyxLQUFLO1FBQUVDLFFBQVEsR0FBQWtHLFlBQUEsQ0FBUmxHLFFBQVE7UUFBRW1HLFVBQVUsR0FBQUQsWUFBQSxDQUFWQyxVQUFVO01BQ25DLElBQU1DLFVBQVUsR0FBR3JHLEtBQUssQ0FBQ1QsTUFBTSxDQUFDckMsTUFBTSxHQUFHLENBQUM7TUFFMUNpQixHQUFHLENBQUMsU0FBUyxFQUFFa0ksVUFBVSxFQUFFLE9BQU8sRUFBRTFHLFNBQVMsQ0FBQztNQUU5QyxJQUFJSixNQUFNLEVBQUVHLGFBQWE7TUFDekIsSUFBSUMsU0FBUyxHQUFHMEcsVUFBVSxFQUFFO1FBQzFCOUcsTUFBTSxHQUFHLElBQUErRyxpQkFBSyxFQUFDM0csU0FBUyxHQUFHMEcsVUFBVSxDQUFDLENBQ25DbkYsR0FBRyxDQUFDO1VBQUEsT0FBTSxFQUFFO1FBQUEsRUFBQyxDQUNiRyxNQUFNLENBQUNyQixLQUFLLENBQUNULE1BQU0sQ0FBQztRQUN2QkcsYUFBYSxHQUFHLElBQUE0RyxpQkFBSyxFQUFDM0csU0FBUyxHQUFHMEcsVUFBVSxDQUFDLENBQzFDbkYsR0FBRyxDQUFDO1VBQUEsT0FBTSxJQUFJO1FBQUEsRUFBQyxDQUNmRyxNQUFNLENBQUNyQixLQUFLLENBQUNOLGFBQWEsQ0FBQztNQUNoQztNQUVBLElBQUlDLFNBQVMsR0FBRzBHLFVBQVUsRUFBRTtRQUMxQmxJLEdBQUcsQ0FBQyxXQUFXLENBQUM7UUFDaEJvQixNQUFNLEdBQUcsSUFBQWdILHFCQUFTLEVBQUN2RyxLQUFLLENBQUNULE1BQU0sRUFBRUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUMvQ0QsYUFBYSxHQUFHLElBQUE2RyxxQkFBUyxFQUFDdkcsS0FBSyxDQUFDTixhQUFhLEVBQUVDLFNBQVMsR0FBRyxDQUFDLENBQUM7TUFDL0Q7TUFFQSxJQUFJSixNQUFNLElBQUksQ0FBQzZHLFVBQVUsRUFBRTtRQUN6Qm5HLFFBQVEsQ0FBQWpELGFBQUEsQ0FBQUEsYUFBQSxLQUFNZ0QsS0FBSztVQUFFVCxNQUFNLEVBQU5BLE1BQU07VUFBRUcsYUFBYSxFQUFiQSxhQUFhO1VBQUVDLFNBQVMsRUFBVEE7UUFBUyxFQUFFLENBQUM7TUFDMUQsQ0FBQyxNQUFNO1FBQ0xNLFFBQVEsQ0FBQWpELGFBQUEsQ0FBQUEsYUFBQSxLQUFNZ0QsS0FBSztVQUFFTCxTQUFTLEVBQVRBO1FBQVMsRUFBRSxDQUFDO01BQ25DO0lBQ0YsQ0FBQztJQUFBLElBQUF2QyxnQkFBQSxhQUFBcUksS0FBQSxtQkFFZSxVQUFDUSxLQUFLLEVBQUVyQyxPQUFPLEVBQUU0QyxJQUFJLEVBQUs7TUFDeEM7TUFDQXJJLEdBQUcsZ0JBQUFrRCxNQUFBLENBQWdCbUYsSUFBSSxTQUFNUCxLQUFLLEVBQUVyQyxPQUFPLENBQUM7TUFFNUMsSUFBSTRDLElBQUksS0FBSyxRQUFRLElBQUlBLElBQUksS0FBSyxlQUFlLEVBQUU7UUFDakQ7TUFDRjtNQUVBLElBQUFDLFlBQUEsR0FBNEJoQixLQUFBLENBQUsxRixLQUFLO1FBQTlCQyxLQUFLLEdBQUF5RyxZQUFBLENBQUx6RyxLQUFLO1FBQUVDLFFBQVEsR0FBQXdHLFlBQUEsQ0FBUnhHLFFBQVE7TUFDdkIsSUFBTXlHLEtBQUssR0FBRzFHLEtBQUssQ0FBQ3dHLElBQUksQ0FBQyxJQUFJOUgsS0FBSyxDQUFDQyxJQUFJLENBQUNxQixLQUFLLENBQUN3RyxJQUFJLENBQUMsQ0FBQztNQUVwREUsS0FBSyxDQUFDN0gsTUFBTSxDQUFDb0gsS0FBSyxFQUFFLENBQUMsRUFBRXJDLE9BQU8sQ0FBQztNQUMvQnpGLEdBQUcsZ0JBQUFrRCxNQUFBLENBQWdCbUYsSUFBSSxTQUFNRSxLQUFLLENBQUM7TUFFbkN6RyxRQUFRLENBQUFqRCxhQUFBLENBQUFBLGFBQUEsS0FBTWdELEtBQUssV0FBQTVDLGdCQUFBLGlCQUFHb0osSUFBSSxFQUFHRSxLQUFLLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBQUEsSUFBQXRKLGdCQUFBLGFBQUFxSSxLQUFBLGtCQUVjLFlBQU07TUFDbkIsSUFBQWtCLFlBQUEsR0FBNEJsQixLQUFBLENBQUsxRixLQUFLO1FBQTlCQyxLQUFLLEdBQUEyRyxZQUFBLENBQUwzRyxLQUFLO1FBQUVDLFFBQVEsR0FBQTBHLFlBQUEsQ0FBUjFHLFFBQVE7TUFFdkJBLFFBQVEsQ0FBQWpELGFBQUEsQ0FBQUEsYUFBQSxLQUFNZ0QsS0FBSztRQUFFWCxXQUFXLEVBQUUsQ0FBQ1csS0FBSyxDQUFDWDtNQUFXLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBQUEsSUFBQWpDLGdCQUFBLGFBQUFxSSxLQUFBLHVCQUVtQixVQUFDUSxLQUFLLEVBQUVqRyxLQUFLLEVBQUs7TUFDcEMsSUFBSSxDQUFDQSxLQUFLLENBQUNYLFdBQVcsRUFBRTtRQUN0QixPQUFPLElBQUk7TUFDYixDQUFDLE1BQU07UUFDTCxJQUFJNEcsS0FBSyxHQUFHakcsS0FBSyxDQUFDVCxNQUFNLENBQUNyQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1VBQ25DLE9BQU8sSUFBSTtRQUNiLENBQUMsTUFBTSxJQUFJK0ksS0FBSyxLQUFLakcsS0FBSyxDQUFDVCxNQUFNLENBQUNyQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1VBQzVDLE9BQU8sS0FBSztRQUNkO1FBRUEsT0FBTyxJQUFJO01BQ2I7SUFDRixDQUFDO0lBQUEsSUFBQUUsZ0JBQUEsYUFBQXFJLEtBQUEsdUJBRW1CLFVBQUNRLEtBQUssRUFBRVcsV0FBVyxFQUFLO01BQzFDLElBQUlBLFdBQVcsS0FBSyxRQUFRLEVBQUU7UUFDNUIsSUFBUTVHLEtBQUssR0FBS3lGLEtBQUEsQ0FBSzFGLEtBQUssQ0FBcEJDLEtBQUs7UUFDYixJQUFNTixhQUFhLEdBQUdoQixLQUFLLENBQUNDLElBQUksQ0FBQ3FCLEtBQUssQ0FBQ04sYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUUzRCxJQUFJNEIsaUJBQWlCLENBQUM1QixhQUFhLENBQUN1RyxLQUFLLENBQUMsQ0FBQyxFQUFFO1VBQzNDO1VBQ0FSLEtBQUEsQ0FBS29CLGFBQWEsQ0FBQ1osS0FBSyxFQUFFLEVBQUUsRUFBRSxlQUFlLENBQUM7UUFDaEQsQ0FBQyxNQUFNO1VBQ0w7VUFDQVIsS0FBQSxDQUFLb0IsYUFBYSxDQUFDWixLQUFLLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQztRQUNsRDtNQUNGO0lBQ0YsQ0FBQztJQUFBLE9BQUFSLEtBQUE7RUFBQTtFQUFBLElBQUFxQixVQUFBLGFBQUF2QixZQUFBLEVBQUFDLGdCQUFBO0VBQUEsV0FBQXVCLGFBQUEsYUFBQXhCLFlBQUE7SUFBQW5FLEdBQUE7SUFBQXBCLEtBQUEsRUFFRCxTQUFBZ0gsTUFBTUEsQ0FBQSxFQUFHO01BQUEsSUFBQUMsTUFBQTtNQUNQLElBQUFDLFlBQUEsR0FBd0YsSUFBSSxDQUFDbkgsS0FBSztRQUExRkMsS0FBSyxHQUFBa0gsWUFBQSxDQUFMbEgsS0FBSztRQUFBbUgscUJBQUEsR0FBQUQsWUFBQSxDQUFFcEQsYUFBYTtRQUFiQSxhQUFhLEdBQUFxRCxxQkFBQSxjQUFHLENBQUMsQ0FBQyxHQUFBQSxxQkFBQTtRQUFBQyxtQkFBQSxHQUFBRixZQUFBLENBQUVHLE1BQU07UUFBTkEsTUFBTSxHQUFBRCxtQkFBQSxjQUFHLENBQUMsQ0FBQyxHQUFBQSxtQkFBQTtRQUFBRSxxQkFBQSxHQUFBSixZQUFBLENBQUVkLFVBQVU7UUFBVkEsVUFBVSxHQUFBa0IscUJBQUEsY0FBRyxLQUFLLEdBQUFBLHFCQUFBO1FBQUFDLHFCQUFBLEdBQUFMLFlBQUEsQ0FBRWxELFVBQVU7UUFBVkEsVUFBVSxHQUFBdUQscUJBQUEsY0FBRyxDQUFDLENBQUMsR0FBQUEscUJBQUE7TUFDbkYsSUFBQUMsS0FBQSxHQU1JeEgsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUFBeUgscUJBQUEsR0FBQUQsS0FBQSxDQUxiRSxrQkFBa0I7UUFBbEJBLGtCQUFrQixHQUFBRCxxQkFBQSxjQUFHLElBQUksR0FBQUEscUJBQUE7UUFBQUUscUJBQUEsR0FBQUgsS0FBQSxDQUN6QkksZ0JBQWdCO1FBQWhCQSxnQkFBZ0IsR0FBQUQscUJBQUEsY0FBRyxJQUFJLEdBQUFBLHFCQUFBO1FBQUFFLFlBQUEsR0FBQUwsS0FBQSxDQUN2Qk0sTUFBTTtRQUFOQSxNQUFNLEdBQUFELFlBQUEsY0FBRyxDQUFDLENBQUMsR0FBQUEsWUFBQTtRQUFBRSxxQkFBQSxHQUFBUCxLQUFBLENBQ1hRLDRCQUE0QjtRQUE1QkEsNEJBQTRCLEdBQUFELHFCQUFBLGNBQUcsS0FBSyxHQUFBQSxxQkFBQTtRQUFBRSxlQUFBLEdBQUFULEtBQUEsQ0FDcEM3SCxTQUFTO1FBQVRBLFNBQVMsR0FBQXNJLGVBQUEsY0FBRyxFQUFFLEdBQUFBLGVBQUE7TUFFaEI7TUFDQSxJQUFBQyxLQUFBLEdBQTBEYixNQUFNLElBQUksQ0FBQyxDQUFDO1FBQUFjLHFCQUFBLEdBQUFELEtBQUEsQ0FBOURySSxxQkFBcUI7UUFBckJBLHFCQUFxQixHQUFBc0kscUJBQUEsY0FBRyxDQUFDLENBQUMsR0FBQUEscUJBQUE7UUFBQUMsa0JBQUEsR0FBQUYsS0FBQSxDQUFFRyxZQUFZO1FBQVpBLFlBQVksR0FBQUQsa0JBQUEsY0FBRyxFQUFFLEdBQUFBLGtCQUFBO01BQ3JELElBQUFFLE1BQUEsR0FBb0NSLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFBeENTLHVCQUF1QixHQUFBRCxNQUFBLENBQXZCQyx1QkFBdUI7TUFDL0IsSUFBSXZJLEtBQUssSUFBSXdJLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDekksS0FBSyxDQUFDTCxTQUFTLENBQUMsRUFBRTtRQUM3QztRQUNBK0ksT0FBTyxDQUFDQyxJQUFJLENBQUMsNkNBQTZDLENBQUM7TUFDN0Q7O01BRUE7TUFDQSxJQUFNQyxjQUFjLEdBQUcsQ0FBQ3hDLFVBQVUsR0FBR3BHLEtBQUssQ0FBQ1QsTUFBTSxDQUFDckMsTUFBTSxHQUFHLENBQUMsR0FBR3lDLFNBQVM7TUFFeEUsb0JBQ0VoRixNQUFBLFlBQUF5RixhQUFBLDJCQUNFekYsTUFBQSxZQUFBeUYsYUFBQSxDQUFDaUYsV0FBVztRQUFDN0UsT0FBTyxFQUFDO01BQUksR0FBQyxRQUFtQixDQUFDLGVBQzlDN0YsTUFBQSxZQUFBeUYsYUFBQSxDQUFDN0UsVUFBQSxXQUFTO1FBQUNzTixHQUFHO01BQUEsR0FDWGpCLGdCQUFnQixpQkFDZmpOLE1BQUEsWUFBQXlGLGFBQUEsQ0FBQ04sU0FBUztRQUNSSSxHQUFHLEVBQUVtSSxZQUFZLEdBQUcsR0FBRyxHQUFHQSxZQUFZLEdBQUcsR0FBSTtRQUM3Q3JJLEtBQUssRUFBRTRJLGNBQWU7UUFDdEIzSSxRQUFRLEVBQUUsSUFBSSxDQUFDNkksZUFBZ0I7UUFDL0I5RSxVQUFVLEVBQUVBO01BQVcsQ0FDeEIsQ0FDRixFQUNBMEQsa0JBQWtCLGlCQUNqQi9NLE1BQUEsWUFBQXlGLGFBQUEsQ0FBQzVFLGlCQUFBLFdBQWdCO1FBQ2ZrRixLQUFLLEVBQUMsZUFBZTtRQUNyQnFJLE9BQU8sZUFBRXBPLE1BQUEsWUFBQXlGLGFBQUEsQ0FBQzlFLFNBQUEsV0FBUTtVQUFDME4sT0FBTyxFQUFFaEosS0FBSyxDQUFDWCxXQUFZO1VBQUNZLFFBQVEsRUFBRSxJQUFJLENBQUNnSjtRQUFhLENBQUU7TUFBRSxDQUNoRixDQUVNLENBQUMsRUFFWGpCLDRCQUE0QixJQUFJNUIsVUFBVSxpQkFDekN6TCxNQUFBLFlBQUF5RixhQUFBLENBQUMyRSxxQkFBcUIscUJBQ3BCcEssTUFBQSxZQUFBeUYsYUFBQSxDQUFDbkUsU0FBQSxDQUFBaU4sY0FBYztRQUFDeEksS0FBSyxFQUFFYixxQkFBcUIsQ0FBQ2E7TUFBTSxnQkFDakQvRixNQUFBLFlBQUF5RixhQUFBLENBQUNwRSxtQkFBQSxXQUFZO1FBQ1hvSSxNQUFNLEVBQUVwRSxLQUFLLENBQUNILHFCQUFxQixJQUFJLEVBQUc7UUFDMUNJLFFBQVEsRUFBRSxJQUFJLENBQUNrSiwyQkFBNEI7UUFDM0NoRixXQUFXLEVBQUVILFVBQVc7UUFDeEJvRixRQUFRLEVBQUUsS0FBTTtRQUNoQkMsZ0JBQWdCO1FBQ2hCQyx1QkFBdUIsRUFBRSxDQUFDO1VBQUVDLFFBQVEsRUFBRTtRQUFVLENBQUMsRUFBRTtVQUFFQSxRQUFRLEVBQUU7UUFBVSxDQUFDLENBQUU7UUFDNUV6RixhQUFhLEVBQUVBO01BQWMsQ0FDOUIsQ0FDYSxDQUNLLENBQ3hCLGVBRURuSixNQUFBLFlBQUF5RixhQUFBLGNBQ0dnRyxVQUFVLGdCQUNUekwsTUFBQSxZQUFBeUYsYUFBQSxDQUFDOEUsVUFBVSxNQUFFLENBQUMsZ0JBRWR2SyxNQUFBLFlBQUF5RixhQUFBLENBQUNvRSxTQUFTLHFCQUNSN0osTUFBQSxZQUFBeUYsYUFBQSxDQUFDekUsSUFBQSxDQUFBNk4sZUFBZTtRQUFDQyxTQUFTLEVBQUUsSUFBSSxDQUFDQztNQUFRLGdCQUN2Qy9PLE1BQUEsWUFBQXlGLGFBQUEsQ0FBQ3pFLElBQUEsQ0FBQWdPLFNBQVM7UUFBQ0MsV0FBVyxFQUFDO01BQVcsR0FDL0IsVUFBQ0MsUUFBUTtRQUFBLG9CQUNSbFAsTUFBQSxZQUFBeUYsYUFBQSxZQUFBMEosU0FBQSxpQkFBU0QsUUFBUSxDQUFDRSxjQUFjO1VBQUVDLEdBQUcsRUFBRUgsUUFBUSxDQUFDSTtRQUFTLElBQ3REakssS0FBSyxDQUFDVCxNQUFNLENBQUMyQixHQUFHLENBQ2YsVUFBQ2dKLENBQUMsRUFBRWpFLEtBQUs7VUFBQSxPQUNQZ0IsTUFBSSxDQUFDa0QsaUJBQWlCLENBQUNsRSxLQUFLLEVBQUVqRyxLQUFLLENBQUMsaUJBQ2xDckYsTUFBQSxZQUFBeUYsYUFBQSxDQUFDekUsSUFBQSxDQUFBeU8sU0FBUztZQUFDaEosR0FBRyxLQUFBQyxNQUFBLENBQUs2SSxDQUFDLENBQUMzSyxNQUFNLE9BQUE4QixNQUFBLENBQUk0RSxLQUFLLENBQUc7WUFBQ0EsS0FBSyxFQUFFQSxLQUFNO1lBQUNvRSxXQUFXLEVBQUVwRSxLQUFLLENBQUNxRSxRQUFRLENBQUM7VUFBRSxHQUNqRixVQUFDVCxRQUFRO1lBQUEsb0JBQ1JsUCxNQUFBLFlBQUF5RixhQUFBLENBQUMrRSxZQUFZLE1BQUEyRSxTQUFBO2NBQ1hFLEdBQUcsRUFBRUgsUUFBUSxDQUFDSTtZQUFTLEdBQ25CSixRQUFRLENBQUNVLGNBQWMsRUFDdkJWLFFBQVEsQ0FBQ1csZUFBZSxnQkFFNUI3UCxNQUFBLFlBQUF5RixhQUFBLENBQUN1RCxXQUFXO2NBQ1ZwRSxNQUFNLEVBQUVTLEtBQUssQ0FBQ1QsTUFBTSxDQUFDckMsTUFBTSxHQUFHLENBQUMsR0FBRytJLEtBQU07Y0FDeENyQyxPQUFPLEVBQUVzRyxDQUFFO2NBQ1gzRyxLQUFLLEVBQ0hnRix1QkFBdUIsSUFDdkJBLHVCQUF1QixDQUFDdkksS0FBSyxDQUFDVCxNQUFNLENBQUNyQyxNQUFNLEdBQUcsQ0FBQyxHQUFHK0ksS0FBSyxDQUN4RDtjQUNEMUUsWUFBWSxFQUFFdkIsS0FBSyxDQUFDTixhQUFhLElBQUlNLEtBQUssQ0FBQ04sYUFBYSxDQUFDdUcsS0FBSyxDQUFFO2NBQ2hFaEcsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUcyRCxPQUFPO2dCQUFBLE9BQUtxRCxNQUFJLENBQUNKLGFBQWEsQ0FBQ1osS0FBSyxFQUFFckMsT0FBTyxFQUFFLFFBQVEsQ0FBQztjQUFBLENBQUM7Y0FDcEVXLGNBQWMsRUFBRSxTQUFoQkEsY0FBY0EsQ0FBR1gsT0FBTztnQkFBQSxPQUFLcUQsTUFBSSxDQUFDSixhQUFhLENBQUNaLEtBQUssRUFBRXJDLE9BQU8sRUFBRSxlQUFlLENBQUM7Y0FBQSxDQUFDO2NBQ2pGUyxZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBR3VDLFdBQVc7Z0JBQUEsT0FBS0ssTUFBSSxDQUFDd0QsaUJBQWlCLENBQUN4RSxLQUFLLEVBQUVXLFdBQVcsQ0FBQztjQUFBLENBQUM7Y0FDMUU5QyxhQUFhLEVBQUVBLGFBQWM7Y0FDN0JFLFVBQVUsRUFBRUE7WUFBVyxDQUN4QixDQUNXLENBQUM7VUFBQSxDQUVSLENBQ1o7UUFBQSxDQUNMLENBQUMsRUFDQTZGLFFBQVEsQ0FBQ2EsV0FDUCxDQUFDO01BQUEsQ0FFQyxDQUNJLENBQ1IsQ0FFVixDQUNGLENBQUM7SUFFVjtFQUFDO0FBQUEsRUF0TitCQyxpQkFBSyxDQUFDQyxTQUFTLEdBeU5qRDtBQUFBLElBQUF4TixnQkFBQSxhQXpOYW1JLFlBQVksZUFDSjtFQUNqQnZGLEtBQUssRUFBRWYsVUFBVTtFQUNqQm9JLE1BQU0sRUFBRWxJLHFCQUFTLENBQUMwTCxNQUFNO0VBQ3hCN0csVUFBVSxFQUFFN0UscUJBQVMsQ0FBQzBMLE1BQU07RUFDNUJ6RSxVQUFVLEVBQUVqSCxxQkFBUyxDQUFDRyxJQUFJO0VBQzFCVyxRQUFRLEVBQUVkLHFCQUFTLENBQUMyTDtBQUN0QixDQUFDO0FBQUEsSUFBQTFOLGdCQUFBLGFBUFVtSSxZQUFZLGtCQVNELENBQUMsQ0FBQztBQWtOMUIsSUFBTXdGLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFJaEwsS0FBSyxFQUFLO0VBQ3pCLElBQUFpTCxNQUFBLEdBQTZEakwsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUFBa0wsaUJBQUEsR0FBQUQsTUFBQSxDQUFoRTVFLFVBQVU7SUFBVkEsVUFBVSxHQUFBNkUsaUJBQUEsY0FBRyxLQUFLLEdBQUFBLGlCQUFBO0lBQUFDLGFBQUEsR0FBQUYsTUFBQSxDQUFFM0QsTUFBTTtJQUFOQSxNQUFNLEdBQUE2RCxhQUFBLGNBQUcsQ0FBQyxDQUFDLEdBQUFBLGFBQUE7SUFBQUMsaUJBQUEsR0FBQUgsTUFBQSxDQUFFaEgsVUFBVTtJQUFWQSxVQUFVLEdBQUFtSCxpQkFBQSxjQUFHLENBQUMsQ0FBQyxHQUFBQSxpQkFBQTtFQUN4RCxJQUFNNUwsTUFBTSxHQUFHYixLQUFLLENBQUNDLElBQUksQ0FBQ29CLEtBQUssQ0FBQ0MsS0FBSyxDQUFDVCxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM2TCxPQUFPLENBQUMsQ0FBQztFQUM3RCxJQUFJMUwsYUFBYSxHQUFHaEIsS0FBSyxDQUFDQyxJQUFJLENBQUNvQixLQUFLLENBQUNDLEtBQUssQ0FBQ04sYUFBYSxJQUFJLEVBQUUsQ0FBQyxDQUFDMEwsT0FBTyxDQUFDLENBQUM7RUFFekUsSUFBSTdMLE1BQU0sQ0FBQ3JDLE1BQU0sR0FBR3dDLGFBQWEsQ0FBQ3hDLE1BQU0sRUFBRTtJQUN4Q3dDLGFBQWEsR0FBRyxJQUFBNEcsaUJBQUssRUFBQy9HLE1BQU0sQ0FBQ3JDLE1BQU0sR0FBR3dDLGFBQWEsQ0FBQ3hDLE1BQU0sQ0FBQyxDQUN4RGdFLEdBQUcsQ0FBQztNQUFBLE9BQU0sSUFBSTtJQUFBLEVBQUMsQ0FDZkcsTUFBTSxDQUFDM0IsYUFBYSxDQUFDO0VBQzFCO0VBRUEsSUFBTU0sS0FBSyxHQUFBaEQsYUFBQSxDQUFBQSxhQUFBLEtBQVErQyxLQUFLLENBQUNDLEtBQUs7SUFBRVQsTUFBTSxFQUFOQSxNQUFNO0lBQUVHLGFBQWEsRUFBYkE7RUFBYSxFQUFFO0VBRXZELElBQU1PLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJRCxLQUFLLEVBQUs7SUFDMUJELEtBQUssQ0FBQ0UsUUFBUSxDQUFBakQsYUFBQSxDQUFBQSxhQUFBLEtBQ1RnRCxLQUFLO01BQ1JULE1BQU0sRUFBRWIsS0FBSyxDQUFDQyxJQUFJLENBQUNxQixLQUFLLENBQUNULE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQzZMLE9BQU8sQ0FBQyxDQUFDO01BQ2hEMUwsYUFBYSxFQUFFaEIsS0FBSyxDQUFDQyxJQUFJLENBQUNxQixLQUFLLENBQUNOLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQzBMLE9BQU8sQ0FBQztJQUFDLEVBQy9ELENBQUM7RUFDSixDQUFDO0VBRUQsb0JBQ0V6USxNQUFBLFlBQUF5RixhQUFBLENBQUNtRixZQUFZO0lBQUN2RixLQUFLLEVBQUVBLEtBQU07SUFBQ3FILE1BQU0sRUFBRUEsTUFBTztJQUFDcEgsUUFBUSxFQUFFQSxRQUFTO0lBQUNtRyxVQUFVLEVBQUVBLFVBQVc7SUFBQ3BDLFVBQVUsRUFBRUE7RUFBVyxDQUFFLENBQUM7QUFFdEgsQ0FBQztBQUVEK0csT0FBTyxDQUFDTSxTQUFTLEdBQUc7RUFDbEJyTCxLQUFLLEVBQUVmLFVBQVU7RUFDakJvSSxNQUFNLEVBQUVsSSxxQkFBUyxDQUFDMEwsTUFBTTtFQUN4QjdHLFVBQVUsRUFBRTdFLHFCQUFTLENBQUMwTCxNQUFNO0VBQzVCekUsVUFBVSxFQUFFakgscUJBQVMsQ0FBQ0csSUFBSTtFQUMxQmdNLFFBQVEsRUFBRW5NLHFCQUFTLENBQUMyTCxJQUFJO0VBQ3hCN0ssUUFBUSxFQUFFZCxxQkFBUyxDQUFDMkw7QUFDdEIsQ0FBQztBQUFDLElBQUFTLFFBQUEsR0FBQXJNLE9BQUEsY0FFYTZMLE9BQU8iLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"authoring.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_InputLabel","_OutlinedInput","_Select","_FormControl","_MenuItem","_times","_Checkbox","_FormGroup","_FormControlLabel","_Typography","_DragIndicator","_dnd","_debug","_takeRight","_pointMenu","_range","_editableHtml","_configUi","_colors","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","log","debug","reorder","list","startIndex","endIndex","result","Array","from","_result$splice","splice","_result$splice2","_slicedToArray2","removed","RubricType","exports","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","maxPoints","number","rubriclessInstruction","MaxPoints","props","value","onChange","max","labelId","createElement","sx","minWidth","m","variant","id","label","target","input","MenuProps","transitionDuration","enter","exit","range","map","v","key","concat","checkSampleAnswer","sampleAnswer","Row","styled","display","width","position","EditorDiv","_ref","theme","backgroundColor","palette","common","white","DragIndicatorStyled","DragIndicator","_ref2","paddingTop","spacing","color","grey","PointsLabel","Typography","_ref3","paddingBottom","textTransform","SampleAnswersEditor","_ref4","paddingLeft","ErrorText","_ref5","fontSize","typography","error","main","PointMenuWrapper","right","PointConfig","content","_props$mathMlOptions","mathMlOptions","_props$pluginOpts","pluginOpts","pointsLabel","showSampleAnswer","pluginProps","markup","onMenuChange","as","onSampleChange","Container","_ref6","borderWidth","borderStyle","borderColor","padding","margin","InputContainerWrapper","_ref7","marginBottom","Rubricless","ConfigHolder","_ref8","RubricTitle","_ref9","RawAuthoring","_React$Component","_this","_classCallCheck2","_len","args","_key","destination","_this$props","source","index","_this$props2","_this$props3","rubricless","currentMax","times","takeRight","type","_this$props4","items","_this$props5","clickedItem","changeContent","_inherits2","_createClass2","render","_this2","_this$props6","_this$props6$mathMlOp","_this$props6$config","config","_this$props6$rubricle","_this$props6$pluginOp","_ref0","_ref0$excludeZeroEnab","excludeZeroEnabled","_ref0$maxPointsEnable","maxPointsEnabled","_ref0$errors","errors","_ref0$rubriclessInstr","rubriclessInstructionEnabled","_ref0$maxPoints","_ref1","_ref1$rubriclessInstr","_ref1$maxMaxPoints","maxMaxPoints","_ref10","pointsDescriptorsErrors","Number","isFinite","console","warn","maxPointsValue","row","changeMaxPoints","control","checked","excludeZeros","InputContainer","changeRubriclessInstruction","nonEmpty","disableUnderline","languageCharactersProps","language","DragDropContext","onDragEnd","dragEnd","Droppable","droppableId","provided","_extends2","droppableProps","ref","innerRef","p","shouldRenderPoint","Draggable","draggableId","toString","draggableProps","dragHandleProps","onPointMenuChange","placeholder","React","Component","object","func","Reverse","_ref11","_ref11$rubricless","_ref11$config","_ref11$pluginOpts","reverse","propTypes","getIndex","_default"],"sources":["../src/authoring.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport OutlinedInput from '@mui/material/OutlinedInput';\nimport Select from '@mui/material/Select';\nimport FormControl from '@mui/material/FormControl';\nimport MenuItem from '@mui/material/MenuItem';\nimport times from 'lodash/times';\nimport Checkbox from '@mui/material/Checkbox';\nimport FormGroup from '@mui/material/FormGroup';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Typography from '@mui/material/Typography';\nimport DragIndicator from '@mui/icons-material/DragIndicator';\nimport { DragDropContext, Droppable, Draggable } from '@hello-pangea/dnd';\nimport debug from 'debug';\nimport takeRight from 'lodash/takeRight';\nimport PointMenu from './point-menu';\nimport range from 'lodash/range';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { grey } from '@mui/material/colors';\n\nconst log = debug('pie-lib:rubric:authoring');\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string),\n maxPoints: PropTypes.number,\n rubriclessInstruction: PropTypes.string,\n});\n\nconst MaxPoints = (props) => {\n const { value, onChange, max } = props;\n const labelId = 'max-points-label';\n\n return (\n <FormControl sx={{ minWidth: 120, m: 1 }} variant=\"outlined\">\n <InputLabel id={labelId}>Max Points</InputLabel>\n <Select\n labelId={labelId}\n label=\"Max Points\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n input={<OutlinedInput label=\"Max Points\" />}\n MenuProps={{ transitionDuration: { enter: 225, exit: 195 } }}\n >\n {range(1, max + 1).map((v) => (\n <MenuItem key={`${v}`} value={v}>\n {v}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n};\n\n// if the value is null or 'null', the Sample Answer input field for that point will not be dispalyed\n// if the value is '', the Sample Answer input field will be empty\nconst checkSampleAnswer = (sampleAnswer) => sampleAnswer === null || sampleAnswer === 'null';\n\nconst Row = styled('div')(() => ({ display: 'flex', width: '100%', position: 'relative' }));\n\nconst EditorDiv = styled('div')(({ theme }) => ({ width: '100%', backgroundColor: `${theme.palette.common.white}` }));\n\nconst DragIndicatorStyled = styled(DragIndicator)(({ theme }) => ({ paddingTop: theme.spacing(1), color: grey[500] }));\n\nconst PointsLabel = styled(Typography)(({ theme }) => ({\n color: grey[500],\n paddingBottom: theme.spacing(1),\n textTransform: 'uppercase',\n}));\n\nconst SampleAnswersEditor = styled('div')(({ theme }) => ({ paddingLeft: theme.spacing(3) }));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingLeft: theme.spacing(3),\n paddingTop: theme.spacing(1),\n}));\n\nconst PointMenuWrapper = styled('div')(() => ({ position: 'absolute', right: 0 }));\n\nexport const PointConfig = (props) => {\n const { points, content, sampleAnswer, mathMlOptions = {}, error, pluginOpts = {} } = props;\n const pointsLabel = `${points} ${points <= 1 ? 'pt' : 'pts'}`;\n const showSampleAnswer = checkSampleAnswer(sampleAnswer);\n\n return (\n <div>\n <PointsLabel variant=\"overline\">{pointsLabel}</PointsLabel>\n <Row>\n <DragIndicatorStyled />\n <EditorDiv>\n <EditableHtml\n error={error}\n pluginProps={pluginOpts}\n markup={content}\n onChange={props.onChange}\n mathMlOptions={mathMlOptions}\n />\n </EditorDiv>\n <PointMenuWrapper>\n <PointMenu showSampleAnswer={showSampleAnswer} onChange={props.onMenuChange} />\n </PointMenuWrapper>\n </Row>\n {error && <ErrorText>{error}</ErrorText>}\n {!showSampleAnswer && (\n <SampleAnswersEditor>\n <DragIndicatorStyled as={Typography} variant=\"overline\">\n Sample Response\n </DragIndicatorStyled>\n <EditorDiv>\n <EditableHtml\n markup={sampleAnswer}\n pluginProps={pluginOpts}\n onChange={props.onSampleChange}\n mathMlOptions={mathMlOptions}\n />\n </EditorDiv>\n </SampleAnswersEditor>\n )}\n </div>\n );\n};\n\nconst Container = styled('div')(({ theme }) => ({\n backgroundColor: grey[200],\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: grey[300],\n padding: theme.spacing(2),\n margin: theme.spacing(1),\n}));\nconst InputContainerWrapper = styled('div')(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n '& MuiFormControl-root': { width: '100%' },\n}));\nconst Rubricless = styled('div')(() => ({ display: 'none' }));\nconst ConfigHolder = styled('div')(({ theme }) => ({ paddingTop: theme.spacing(1), paddingBottom: theme.spacing(1) }));\nconst RubricTitle = styled(Typography)(({ theme }) => ({ paddingLeft: theme.spacing(1), margin: theme.spacing(1) }));\n\nexport class RawAuthoring extends React.Component {\n static propTypes = {\n value: RubricType,\n config: PropTypes.object,\n pluginOpts: PropTypes.object,\n rubricless: PropTypes.bool,\n onChange: PropTypes.func,\n };\n\n static defaultProps = {};\n\n dragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const { value, onChange } = this.props;\n\n const points = reorder(value.points, result.source.index, result.destination.index);\n const sampleAnswers = reorder(value.sampleAnswers, result.source.index, result.destination.index);\n\n onChange({ ...value, points, sampleAnswers });\n };\n\n changeRubriclessInstruction = (input) => {\n const { value, onChange } = this.props;\n onChange({ ...value, rubriclessInstruction: input });\n };\n\n changeMaxPoints = (maxPoints) => {\n const { value, onChange, rubricless } = this.props;\n const currentMax = value.points.length - 1;\n\n log('current', currentMax, 'new: ', maxPoints);\n\n let points, sampleAnswers;\n if (maxPoints > currentMax) {\n points = times(maxPoints - currentMax)\n .map(() => '')\n .concat(value.points);\n sampleAnswers = times(maxPoints - currentMax)\n .map(() => null)\n .concat(value.sampleAnswers);\n }\n\n if (maxPoints < currentMax) {\n log('less than');\n points = takeRight(value.points, maxPoints + 1);\n sampleAnswers = takeRight(value.sampleAnswers, maxPoints + 1);\n }\n\n if (points && !rubricless) {\n onChange({ ...value, points, sampleAnswers, maxPoints });\n } else {\n onChange({ ...value, maxPoints });\n }\n };\n\n changeContent = (index, content, type) => {\n // type could be 'points' or 'sampleAnswers'\n log(`changeModel[${type}]:`, index, content);\n\n if (type !== 'points' && type !== 'sampleAnswers') {\n return;\n }\n\n const { value, onChange } = this.props;\n const items = value[type] && Array.from(value[type]);\n\n items.splice(index, 1, content);\n log(`changeModel[${type}]:`, items);\n\n onChange({ ...value, [type]: items });\n };\n\n excludeZeros = () => {\n const { value, onChange } = this.props;\n\n onChange({ ...value, excludeZero: !value.excludeZero });\n };\n\n shouldRenderPoint = (index, value) => {\n if (!value.excludeZero) {\n return true;\n } else {\n if (index < value.points.length - 1) {\n return true;\n } else if (index === value.points.length - 1) {\n return false;\n }\n\n return true;\n }\n };\n\n onPointMenuChange = (index, clickedItem) => {\n if (clickedItem === 'sample') {\n const { value } = this.props;\n const sampleAnswers = Array.from(value.sampleAnswers || []);\n\n if (checkSampleAnswer(sampleAnswers[index])) {\n // an empty string will display an empty Sample Answer input field\n this.changeContent(index, '', 'sampleAnswers');\n } else {\n // when the content is null or 'null', the Sample Answer input field will not be displayed\n this.changeContent(index, null, 'sampleAnswers');\n }\n }\n };\n\n render() {\n const { value, mathMlOptions = {}, config = {}, rubricless = false, pluginOpts = {} } = this.props;\n let {\n excludeZeroEnabled = true,\n maxPointsEnabled = true,\n errors = {},\n rubriclessInstructionEnabled = false,\n maxPoints = 10,\n } = value || {};\n // rubric will contain a max value for maxPoints\n const { rubriclessInstruction = {}, maxMaxPoints = 10 } = config || {};\n const { pointsDescriptorsErrors } = errors || {};\n if (value && Number.isFinite(value.maxPoints)) {\n // eslint-disable-next-line no-console\n console.warn('maxPoints is deprecated - remove from model');\n }\n\n // for rubric value is computed based on points\n const maxPointsValue = !rubricless ? value.points.length - 1 : maxPoints;\n\n return (\n <div>\n <RubricTitle variant=\"h5\">Rubric</RubricTitle>\n <FormGroup row>\n {maxPointsEnabled && (\n <MaxPoints\n max={maxMaxPoints < 100 ? maxMaxPoints : 100}\n value={maxPointsValue}\n onChange={this.changeMaxPoints}\n pluginOpts={pluginOpts}\n />\n )}\n {excludeZeroEnabled && (\n <FormControlLabel\n label=\"Exclude zeros\"\n control={<Checkbox checked={value.excludeZero} onChange={this.excludeZeros} />}\n />\n )}\n </FormGroup>\n\n {rubriclessInstructionEnabled && rubricless && (\n <InputContainerWrapper>\n <InputContainer label={rubriclessInstruction.label}>\n <EditableHtml\n markup={value.rubriclessInstruction || ''}\n onChange={this.changeRubriclessInstruction}\n pluginProps={pluginOpts}\n nonEmpty={false}\n disableUnderline\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n </InputContainerWrapper>\n )}\n\n <div>\n {rubricless ? (\n <Rubricless />\n ) : (\n <Container>\n <DragDropContext onDragEnd={this.dragEnd}>\n <Droppable droppableId=\"droppable\">\n {(provided) => (\n <div {...provided.droppableProps} ref={provided.innerRef}>\n {value.points.map(\n (p, index) =>\n this.shouldRenderPoint(index, value) && (\n <Draggable key={`${p.points}-${index}`} index={index} draggableId={index.toString()}>\n {(provided) => (\n <ConfigHolder\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n >\n <PointConfig\n points={value.points.length - 1 - index}\n content={p}\n error={\n pointsDescriptorsErrors &&\n pointsDescriptorsErrors[value.points.length - 1 - index]\n }\n sampleAnswer={value.sampleAnswers && value.sampleAnswers[index]}\n onChange={(content) => this.changeContent(index, content, 'points')}\n onSampleChange={(content) => this.changeContent(index, content, 'sampleAnswers')}\n onMenuChange={(clickedItem) => this.onPointMenuChange(index, clickedItem)}\n mathMlOptions={mathMlOptions}\n pluginOpts={pluginOpts}\n />\n </ConfigHolder>\n )}\n </Draggable>\n ),\n )}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n </Container>\n )}\n </div>\n </div>\n );\n }\n}\n\n// styles migrated to styled-components above\n\nconst Reverse = (props) => {\n const { rubricless = false, config = {}, pluginOpts = {} } = props || {};\n const points = Array.from(props.value.points || []).reverse();\n let sampleAnswers = Array.from(props.value.sampleAnswers || []).reverse();\n\n if (points.length > sampleAnswers.length) {\n sampleAnswers = times(points.length - sampleAnswers.length)\n .map(() => null)\n .concat(sampleAnswers);\n }\n\n const value = { ...props.value, points, sampleAnswers };\n\n const onChange = (value) => {\n props.onChange({\n ...value,\n points: Array.from(value.points || []).reverse(),\n sampleAnswers: Array.from(value.sampleAnswers || []).reverse(),\n });\n };\n\n return (\n <RawAuthoring value={value} config={config} onChange={onChange} rubricless={rubricless} pluginOpts={pluginOpts} />\n );\n};\n\nReverse.propTypes = {\n value: RubricType,\n config: PropTypes.object,\n pluginOpts: PropTypes.object,\n rubricless: PropTypes.bool,\n getIndex: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default Reverse;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"authoring.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_InputLabel","_OutlinedInput","_Select","_FormControl","_MenuItem","_times","_Checkbox","_FormGroup","_FormControlLabel","_Typography","_DragIndicator","_dnd","_debug","_takeRight","_pointMenu","_range","_editableHtmlTipTap","_configUi","_colors","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","log","debug","reorder","list","startIndex","endIndex","result","Array","from","_result$splice","splice","_result$splice2","_slicedToArray2","removed","RubricType","exports","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","maxPoints","number","rubriclessInstruction","MaxPoints","props","value","onChange","max","labelId","createElement","sx","minWidth","m","variant","id","label","target","input","MenuProps","transitionDuration","enter","exit","range","map","v","key","concat","checkSampleAnswer","sampleAnswer","Row","styled","display","width","position","EditorDiv","_ref","theme","backgroundColor","palette","common","white","DragIndicatorStyled","DragIndicator","_ref2","paddingTop","spacing","color","grey","PointsLabel","Typography","_ref3","paddingBottom","textTransform","SampleAnswersEditor","_ref4","paddingLeft","ErrorText","_ref5","fontSize","typography","error","main","PointMenuWrapper","right","PointConfig","content","_props$mathMlOptions","mathMlOptions","_props$pluginOpts","pluginOpts","pointsLabel","showSampleAnswer","pluginProps","markup","onMenuChange","as","onSampleChange","Container","_ref6","borderWidth","borderStyle","borderColor","padding","margin","InputContainerWrapper","_ref7","marginBottom","Rubricless","ConfigHolder","_ref8","RubricTitle","_ref9","RawAuthoring","_React$Component","_this","_classCallCheck2","_len","args","_key","destination","_this$props","source","index","_this$props2","_this$props3","rubricless","currentMax","times","takeRight","type","_this$props4","items","_this$props5","clickedItem","changeContent","_inherits2","_createClass2","render","_this2","_this$props6","_this$props6$mathMlOp","_this$props6$config","config","_this$props6$rubricle","_this$props6$pluginOp","_ref0","_ref0$excludeZeroEnab","excludeZeroEnabled","_ref0$maxPointsEnable","maxPointsEnabled","_ref0$errors","errors","_ref0$rubriclessInstr","rubriclessInstructionEnabled","_ref0$maxPoints","_ref1","_ref1$rubriclessInstr","_ref1$maxMaxPoints","maxMaxPoints","_ref10","pointsDescriptorsErrors","Number","isFinite","console","warn","maxPointsValue","row","changeMaxPoints","control","checked","excludeZeros","InputContainer","changeRubriclessInstruction","nonEmpty","disableUnderline","languageCharactersProps","language","DragDropContext","onDragEnd","dragEnd","Droppable","droppableId","provided","_extends2","droppableProps","ref","innerRef","p","shouldRenderPoint","Draggable","draggableId","toString","draggableProps","dragHandleProps","onPointMenuChange","placeholder","React","Component","object","func","Reverse","_ref11","_ref11$rubricless","_ref11$config","_ref11$pluginOpts","reverse","propTypes","getIndex","_default"],"sources":["../src/authoring.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport OutlinedInput from '@mui/material/OutlinedInput';\nimport Select from '@mui/material/Select';\nimport FormControl from '@mui/material/FormControl';\nimport MenuItem from '@mui/material/MenuItem';\nimport times from 'lodash/times';\nimport Checkbox from '@mui/material/Checkbox';\nimport FormGroup from '@mui/material/FormGroup';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Typography from '@mui/material/Typography';\nimport DragIndicator from '@mui/icons-material/DragIndicator';\nimport { DragDropContext, Droppable, Draggable } from '@hello-pangea/dnd';\nimport debug from 'debug';\nimport takeRight from 'lodash/takeRight';\nimport PointMenu from './point-menu';\nimport range from 'lodash/range';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { grey } from '@mui/material/colors';\n\nconst log = debug('pie-lib:rubric:authoring');\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string),\n maxPoints: PropTypes.number,\n rubriclessInstruction: PropTypes.string,\n});\n\nconst MaxPoints = (props) => {\n const { value, onChange, max } = props;\n const labelId = 'max-points-label';\n\n return (\n <FormControl sx={{ minWidth: 120, m: 1 }} variant=\"outlined\">\n <InputLabel id={labelId}>Max Points</InputLabel>\n <Select\n labelId={labelId}\n label=\"Max Points\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n input={<OutlinedInput label=\"Max Points\" />}\n MenuProps={{ transitionDuration: { enter: 225, exit: 195 } }}\n >\n {range(1, max + 1).map((v) => (\n <MenuItem key={`${v}`} value={v}>\n {v}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n};\n\n// if the value is null or 'null', the Sample Answer input field for that point will not be dispalyed\n// if the value is '', the Sample Answer input field will be empty\nconst checkSampleAnswer = (sampleAnswer) => sampleAnswer === null || sampleAnswer === 'null';\n\nconst Row = styled('div')(() => ({ display: 'flex', width: '100%', position: 'relative' }));\n\nconst EditorDiv = styled('div')(({ theme }) => ({ width: '100%', backgroundColor: `${theme.palette.common.white}` }));\n\nconst DragIndicatorStyled = styled(DragIndicator)(({ theme }) => ({ paddingTop: theme.spacing(1), color: grey[500] }));\n\nconst PointsLabel = styled(Typography)(({ theme }) => ({\n color: grey[500],\n paddingBottom: theme.spacing(1),\n textTransform: 'uppercase',\n}));\n\nconst SampleAnswersEditor = styled('div')(({ theme }) => ({ paddingLeft: theme.spacing(3) }));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingLeft: theme.spacing(3),\n paddingTop: theme.spacing(1),\n}));\n\nconst PointMenuWrapper = styled('div')(() => ({ position: 'absolute', right: 0 }));\n\nexport const PointConfig = (props) => {\n const { points, content, sampleAnswer, mathMlOptions = {}, error, pluginOpts = {} } = props;\n const pointsLabel = `${points} ${points <= 1 ? 'pt' : 'pts'}`;\n const showSampleAnswer = checkSampleAnswer(sampleAnswer);\n\n return (\n <div>\n <PointsLabel variant=\"overline\">{pointsLabel}</PointsLabel>\n <Row>\n <DragIndicatorStyled />\n <EditorDiv>\n <EditableHtml\n error={error}\n pluginProps={pluginOpts}\n markup={content}\n onChange={props.onChange}\n mathMlOptions={mathMlOptions}\n />\n </EditorDiv>\n <PointMenuWrapper>\n <PointMenu showSampleAnswer={showSampleAnswer} onChange={props.onMenuChange} />\n </PointMenuWrapper>\n </Row>\n {error && <ErrorText>{error}</ErrorText>}\n {!showSampleAnswer && (\n <SampleAnswersEditor>\n <DragIndicatorStyled as={Typography} variant=\"overline\">\n Sample Response\n </DragIndicatorStyled>\n <EditorDiv>\n <EditableHtml\n markup={sampleAnswer}\n pluginProps={pluginOpts}\n onChange={props.onSampleChange}\n mathMlOptions={mathMlOptions}\n />\n </EditorDiv>\n </SampleAnswersEditor>\n )}\n </div>\n );\n};\n\nconst Container = styled('div')(({ theme }) => ({\n backgroundColor: grey[200],\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: grey[300],\n padding: theme.spacing(2),\n margin: theme.spacing(1),\n}));\nconst InputContainerWrapper = styled('div')(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n '& MuiFormControl-root': { width: '100%' },\n}));\nconst Rubricless = styled('div')(() => ({ display: 'none' }));\nconst ConfigHolder = styled('div')(({ theme }) => ({ paddingTop: theme.spacing(1), paddingBottom: theme.spacing(1) }));\nconst RubricTitle = styled(Typography)(({ theme }) => ({ paddingLeft: theme.spacing(1), margin: theme.spacing(1) }));\n\nexport class RawAuthoring extends React.Component {\n static propTypes = {\n value: RubricType,\n config: PropTypes.object,\n pluginOpts: PropTypes.object,\n rubricless: PropTypes.bool,\n onChange: PropTypes.func,\n };\n\n static defaultProps = {};\n\n dragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const { value, onChange } = this.props;\n\n const points = reorder(value.points, result.source.index, result.destination.index);\n const sampleAnswers = reorder(value.sampleAnswers, result.source.index, result.destination.index);\n\n onChange({ ...value, points, sampleAnswers });\n };\n\n changeRubriclessInstruction = (input) => {\n const { value, onChange } = this.props;\n onChange({ ...value, rubriclessInstruction: input });\n };\n\n changeMaxPoints = (maxPoints) => {\n const { value, onChange, rubricless } = this.props;\n const currentMax = value.points.length - 1;\n\n log('current', currentMax, 'new: ', maxPoints);\n\n let points, sampleAnswers;\n if (maxPoints > currentMax) {\n points = times(maxPoints - currentMax)\n .map(() => '')\n .concat(value.points);\n sampleAnswers = times(maxPoints - currentMax)\n .map(() => null)\n .concat(value.sampleAnswers);\n }\n\n if (maxPoints < currentMax) {\n log('less than');\n points = takeRight(value.points, maxPoints + 1);\n sampleAnswers = takeRight(value.sampleAnswers, maxPoints + 1);\n }\n\n if (points && !rubricless) {\n onChange({ ...value, points, sampleAnswers, maxPoints });\n } else {\n onChange({ ...value, maxPoints });\n }\n };\n\n changeContent = (index, content, type) => {\n // type could be 'points' or 'sampleAnswers'\n log(`changeModel[${type}]:`, index, content);\n\n if (type !== 'points' && type !== 'sampleAnswers') {\n return;\n }\n\n const { value, onChange } = this.props;\n const items = value[type] && Array.from(value[type]);\n\n items.splice(index, 1, content);\n log(`changeModel[${type}]:`, items);\n\n onChange({ ...value, [type]: items });\n };\n\n excludeZeros = () => {\n const { value, onChange } = this.props;\n\n onChange({ ...value, excludeZero: !value.excludeZero });\n };\n\n shouldRenderPoint = (index, value) => {\n if (!value.excludeZero) {\n return true;\n } else {\n if (index < value.points.length - 1) {\n return true;\n } else if (index === value.points.length - 1) {\n return false;\n }\n\n return true;\n }\n };\n\n onPointMenuChange = (index, clickedItem) => {\n if (clickedItem === 'sample') {\n const { value } = this.props;\n const sampleAnswers = Array.from(value.sampleAnswers || []);\n\n if (checkSampleAnswer(sampleAnswers[index])) {\n // an empty string will display an empty Sample Answer input field\n this.changeContent(index, '', 'sampleAnswers');\n } else {\n // when the content is null or 'null', the Sample Answer input field will not be displayed\n this.changeContent(index, null, 'sampleAnswers');\n }\n }\n };\n\n render() {\n const { value, mathMlOptions = {}, config = {}, rubricless = false, pluginOpts = {} } = this.props;\n let {\n excludeZeroEnabled = true,\n maxPointsEnabled = true,\n errors = {},\n rubriclessInstructionEnabled = false,\n maxPoints = 10,\n } = value || {};\n // rubric will contain a max value for maxPoints\n const { rubriclessInstruction = {}, maxMaxPoints = 10 } = config || {};\n const { pointsDescriptorsErrors } = errors || {};\n if (value && Number.isFinite(value.maxPoints)) {\n // eslint-disable-next-line no-console\n console.warn('maxPoints is deprecated - remove from model');\n }\n\n // for rubric value is computed based on points\n const maxPointsValue = !rubricless ? value.points.length - 1 : maxPoints;\n\n return (\n <div>\n <RubricTitle variant=\"h5\">Rubric</RubricTitle>\n <FormGroup row>\n {maxPointsEnabled && (\n <MaxPoints\n max={maxMaxPoints < 100 ? maxMaxPoints : 100}\n value={maxPointsValue}\n onChange={this.changeMaxPoints}\n pluginOpts={pluginOpts}\n />\n )}\n {excludeZeroEnabled && (\n <FormControlLabel\n label=\"Exclude zeros\"\n control={<Checkbox checked={value.excludeZero} onChange={this.excludeZeros} />}\n />\n )}\n </FormGroup>\n\n {rubriclessInstructionEnabled && rubricless && (\n <InputContainerWrapper>\n <InputContainer label={rubriclessInstruction.label}>\n <EditableHtml\n markup={value.rubriclessInstruction || ''}\n onChange={this.changeRubriclessInstruction}\n pluginProps={pluginOpts}\n nonEmpty={false}\n disableUnderline\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n </InputContainerWrapper>\n )}\n\n <div>\n {rubricless ? (\n <Rubricless />\n ) : (\n <Container>\n <DragDropContext onDragEnd={this.dragEnd}>\n <Droppable droppableId=\"droppable\">\n {(provided) => (\n <div {...provided.droppableProps} ref={provided.innerRef}>\n {value.points.map(\n (p, index) =>\n this.shouldRenderPoint(index, value) && (\n <Draggable key={`${p.points}-${index}`} index={index} draggableId={index.toString()}>\n {(provided) => (\n <ConfigHolder\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n >\n <PointConfig\n points={value.points.length - 1 - index}\n content={p}\n error={\n pointsDescriptorsErrors &&\n pointsDescriptorsErrors[value.points.length - 1 - index]\n }\n sampleAnswer={value.sampleAnswers && value.sampleAnswers[index]}\n onChange={(content) => this.changeContent(index, content, 'points')}\n onSampleChange={(content) => this.changeContent(index, content, 'sampleAnswers')}\n onMenuChange={(clickedItem) => this.onPointMenuChange(index, clickedItem)}\n mathMlOptions={mathMlOptions}\n pluginOpts={pluginOpts}\n />\n </ConfigHolder>\n )}\n </Draggable>\n ),\n )}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n </Container>\n )}\n </div>\n </div>\n );\n }\n}\n\n// styles migrated to styled-components above\n\nconst Reverse = (props) => {\n const { rubricless = false, config = {}, pluginOpts = {} } = props || {};\n const points = Array.from(props.value.points || []).reverse();\n let sampleAnswers = Array.from(props.value.sampleAnswers || []).reverse();\n\n if (points.length > sampleAnswers.length) {\n sampleAnswers = times(points.length - sampleAnswers.length)\n .map(() => null)\n .concat(sampleAnswers);\n }\n\n const value = { ...props.value, points, sampleAnswers };\n\n const onChange = (value) => {\n props.onChange({\n ...value,\n points: Array.from(value.points || []).reverse(),\n sampleAnswers: Array.from(value.sampleAnswers || []).reverse(),\n });\n };\n\n return (\n <RawAuthoring value={value} config={config} onChange={onChange} rubricless={rubricless} pluginOpts={pluginOpts} />\n );\n};\n\nReverse.propTypes = {\n value: RubricType,\n config: PropTypes.object,\n pluginOpts: PropTypes.object,\n rubricless: PropTypes.bool,\n getIndex: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default Reverse;\n"],"mappings":"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","ignoreList":[]}
package/lib/index.js CHANGED
@@ -17,4 +17,4 @@ var RUBRIC_TYPES = exports.RUBRIC_TYPES = {
17
17
  MULTI_TRAIT_RUBRIC: 'multiTraitRubric',
18
18
  RUBRICLESS: 'rubricless'
19
19
  };
20
- //# sourceMappingURL=index.js.map
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXV0aG9yaW5nIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJSVUJSSUNfVFlQRVMiLCJleHBvcnRzIiwiU0lNUExFX1JVQlJJQyIsIk1VTFRJX1RSQUlUX1JVQlJJQyIsIlJVQlJJQ0xFU1MiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEF1dGhvcmluZyBmcm9tICcuL2F1dGhvcmluZyc7XG5cbmNvbnN0IFJVQlJJQ19UWVBFUyA9IHtcbiAgU0lNUExFX1JVQlJJQzogJ3NpbXBsZVJ1YnJpYycsXG4gIE1VTFRJX1RSQUlUX1JVQlJJQzogJ211bHRpVHJhaXRSdWJyaWMnLFxuICBSVUJSSUNMRVNTOiAncnVicmljbGVzcycsXG59O1xuXG5leHBvcnQgeyBBdXRob3JpbmcsIFJVQlJJQ19UWVBFUyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBTUMsWUFBWSxHQUFBQyxPQUFBLENBQUFELFlBQUEsR0FBRztFQUNuQkUsYUFBYSxFQUFFLGNBQWM7RUFDN0JDLGtCQUFrQixFQUFFLGtCQUFrQjtFQUN0Q0MsVUFBVSxFQUFFO0FBQ2QsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
package/lib/point-menu.js CHANGED
@@ -122,4 +122,4 @@ var PointMenu = exports["default"] = /*#__PURE__*/function (_React$Component2) {
122
122
  onChange: _propTypes["default"].func.isRequired,
123
123
  showSampleAnswer: _propTypes["default"].bool.isRequired
124
124
  });
125
- //# sourceMappingURL=point-menu.js.map
125
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfTWVudSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX01lbnVJdGVtIiwiX01vcmVWZXJ0IiwiX01vcmVIb3JpeiIsIl9JY29uQnV0dG9uIiwiX3Byb3BUeXBlcyIsIl9yZWFjdCIsIl9jYWxsU3VwZXIiLCJ0IiwibyIsImUiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJjYWxsIiwiSWNvbk1lbnUiLCJleHBvcnRzIiwiX1JlYWN0JENvbXBvbmVudCIsInByb3BzIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2RlZmluZVByb3BlcnR5MiIsImV2ZW50Iiwic2V0U3RhdGUiLCJvcGVuIiwiYW5jaG9yRWwiLCJjdXJyZW50VGFyZ2V0Iiwic3RhdGUiLCJ1bmRlZmluZWQiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwicmVuZGVyIiwiX3RoaXMyIiwiX3RoaXMkcHJvcHMiLCJvcHRzIiwib25DbGljayIsIl90aGlzJHN0YXRlIiwia2V5cyIsIk9iamVjdCIsImhhbmRsZU1lbnVDbGljayIsImhhbmRsZVJlcXVlc3RDbG9zZSIsImljb25Db2xvciIsImNyZWF0ZUVsZW1lbnQiLCJoYW5kbGVDbGljayIsInNpemUiLCJjb2xvciIsImlkIiwib25DbG9zZSIsInN0eWxlIiwidHJhbnNmb3JtIiwidHJhbnNmb3JtT3JpZ2luIiwidmVydGljYWwiLCJob3Jpem9udGFsIiwibWFwIiwiayIsImluZGV4IiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJmdW5jIiwiaXNSZXF1aXJlZCIsIlBvaW50TWVudSIsIl9SZWFjdCRDb21wb25lbnQyIiwiYXJndW1lbnRzIiwiX3RoaXMkcHJvcHMyIiwib25DaGFuZ2UiLCJzaG93U2FtcGxlQW5zd2VyIiwic2FtcGxlVGV4dCIsInNhbXBsZSIsImJvb2wiXSwic291cmNlcyI6WyIuLi9zcmMvcG9pbnQtbWVudS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1lbnUgZnJvbSAnQG11aS9tYXRlcmlhbC9NZW51JztcbmltcG9ydCBNZW51SXRlbSBmcm9tICdAbXVpL21hdGVyaWFsL01lbnVJdGVtJztcbmltcG9ydCBNb3JlVmVydEljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9Nb3JlVmVydCc7XG5pbXBvcnQgTW9yZUhvcml6SWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL01vcmVIb3Jpeic7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0ljb25CdXR0b24nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBjbGFzcyBJY29uTWVudSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb3B0czogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBhbmNob3JFbDogdW5kZWZpbmVkLFxuICAgICAgb3BlbjogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZUNsaWNrID0gKGV2ZW50KSA9PiB0aGlzLnNldFN0YXRlKHsgb3BlbjogdHJ1ZSwgYW5jaG9yRWw6IGV2ZW50LmN1cnJlbnRUYXJnZXQgfSk7XG5cbiAgaGFuZGxlUmVxdWVzdENsb3NlID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7IG9wZW46IGZhbHNlIH0pO1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IG9wdHMsIG9uQ2xpY2sgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBvcGVuLCBhbmNob3JFbCB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob3B0cykgfHwgW107XG5cbiAgICBjb25zdCBoYW5kbGVNZW51Q2xpY2sgPSAoa2V5KSA9PiAoKSA9PiB7XG4gICAgICBvbkNsaWNrKGtleSk7XG4gICAgICB0aGlzLmhhbmRsZVJlcXVlc3RDbG9zZSgpO1xuICAgIH07XG5cbiAgICBjb25zdCBpY29uQ29sb3IgPSBvcGVuID8gJ2luaGVyaXQnIDogJ2Rpc2FibGVkJztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2xpY2t9PlxuICAgICAgICAgIDxJY29uQnV0dG9uIHNpemU9XCJsYXJnZVwiPlxuICAgICAgICAgICAge29wZW4gPyA8TW9yZVZlcnRJY29uIGNvbG9yPXtpY29uQ29sb3J9IC8+IDogPE1vcmVIb3Jpekljb24gY29sb3I9e2ljb25Db2xvcn0gLz59XG4gICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPE1lbnVcbiAgICAgICAgICBpZD1cInBvaW50LW1lbnVcIlxuICAgICAgICAgIGFuY2hvckVsPXthbmNob3JFbH1cbiAgICAgICAgICBvcGVuPXtvcGVufVxuICAgICAgICAgIG9uQ2xvc2U9e3RoaXMuaGFuZGxlUmVxdWVzdENsb3NlfVxuICAgICAgICAgIHN0eWxlPXt7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgtMTVweCwgLTE1cHgpJyB9fVxuICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbj17e1xuICAgICAgICAgICAgdmVydGljYWw6ICdjZW50ZXInLFxuICAgICAgICAgICAgaG9yaXpvbnRhbDogJ3JpZ2h0JyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2tleXMubWFwKChrLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPE1lbnVJdGVtIGtleT17aW5kZXh9IG9uQ2xpY2s9e2hhbmRsZU1lbnVDbGljayhrKX0+XG4gICAgICAgICAgICAgIHtvcHRzW2tdfVxuICAgICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9NZW51PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb2ludE1lbnUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dTYW1wbGVBbnN3ZXI6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgb25DaGFuZ2UsIHNob3dTYW1wbGVBbnN3ZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qgc2FtcGxlVGV4dCA9IHNob3dTYW1wbGVBbnN3ZXIgPyAnUHJvdmlkZSBTYW1wbGUgUmVzcG9uc2UnIDogJ1JlbW92ZSBTYW1wbGUgUmVzcG9uc2UnO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxJY29uTWVudVxuICAgICAgICBvbkNsaWNrPXsoa2V5KSA9PiBvbkNoYW5nZShrZXkpfVxuICAgICAgICBvcHRzPXt7XG4gICAgICAgICAgc2FtcGxlOiBzYW1wbGVUZXh0LFxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICApO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxX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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/rubric",
3
- "version": "1.0.0-next.0",
3
+ "version": "1.1.0-next.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -12,20 +12,12 @@
12
12
  "@hello-pangea/dnd": "^18.0.1",
13
13
  "@mui/icons-material": "^7.3.4",
14
14
  "@mui/material": "^7.3.4",
15
- "@pie-lib/editable-html": "11.21.3-next.15",
15
+ "@pie-lib/editable-html-tip-tap": "1.1.0-next.0",
16
16
  "debug": "^4.1.1",
17
17
  "lodash": "^4.17.11",
18
18
  "prop-types": "^15.7.2",
19
19
  "react": "^18.2.0",
20
20
  "react-dom": "^18.2.0"
21
21
  },
22
- "gitHead": "e0f8f2250addd014938f4a631ab86cafe16b2730",
23
- "exports": {
24
- ".": {
25
- "require": "./lib/index.js",
26
- "import": "./src/index.js",
27
- "default": "./lib/index.js"
28
- },
29
- "./esm": "./esm/index.js"
30
- }
22
+ "gitHead": "7920444a455f301d7bee978b72a3548e96f3e5dc"
31
23
  }
@@ -5,7 +5,7 @@ import _ from 'lodash';
5
5
  import { ThemeProvider, createTheme } from '@mui/material/styles';
6
6
 
7
7
  // Mock dependencies
8
- jest.mock('@pie-lib/editable-html', () => {
8
+ jest.mock('@pie-lib/editable-html-tip-tap', () => {
9
9
  return function EditableHtml(props) {
10
10
  return <div data-testid="editable-html" data-markup={props.markup} />;
11
11
  };
@@ -23,9 +23,9 @@ jest.mock('@hello-pangea/dnd', () => ({
23
23
  {
24
24
  innerRef: () => {},
25
25
  draggableProps: { 'data-draggable-index': index },
26
- dragHandleProps: {}
26
+ dragHandleProps: {},
27
27
  },
28
- {}
28
+ {},
29
29
  ),
30
30
  }));
31
31
 
@@ -52,7 +52,7 @@ describe('Rubric', () => {
52
52
  ...render(
53
53
  <ThemeProvider theme={theme}>
54
54
  <RawAuthoring {...defaultProps} />
55
- </ThemeProvider>
55
+ </ThemeProvider>,
56
56
  ),
57
57
  onChange: defaultProps.onChange,
58
58
  props: defaultProps,
@@ -126,7 +126,7 @@ describe('Rubric', () => {
126
126
  value: { excludeZero, points, sampleAnswers },
127
127
  onChange,
128
128
  classes: {},
129
- className: 'className'
129
+ className: 'className',
130
130
  });
131
131
 
132
132
  component.changeMaxPoints(maxPoints);
@@ -157,7 +157,7 @@ describe('Rubric', () => {
157
157
  value: { excludeZero, points, sampleAnswers },
158
158
  onChange,
159
159
  classes: {},
160
- className: 'className'
160
+ className: 'className',
161
161
  });
162
162
 
163
163
  component.onPointMenuChange(index, clickedItem);
package/src/authoring.jsx CHANGED
@@ -18,7 +18,7 @@ import debug from 'debug';
18
18
  import takeRight from 'lodash/takeRight';
19
19
  import PointMenu from './point-menu';
20
20
  import range from 'lodash/range';
21
- import EditableHtml from '@pie-lib/editable-html';
21
+ import EditableHtml from '@pie-lib/editable-html-tip-tap';
22
22
  import { InputContainer } from '@pie-lib/config-ui';
23
23
  import { grey } from '@mui/material/colors';
24
24