@pie-lib/graphing 4.0.24-beta.1 → 4.0.24-beta.10

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.
Files changed (97) hide show
  1. package/lib/__tests__/bg.test.js +282 -0
  2. package/lib/__tests__/coordinates-label.test.js +276 -0
  3. package/lib/__tests__/graph-with-controls.test.js +275 -0
  4. package/lib/__tests__/graph.test.js +927 -0
  5. package/lib/__tests__/grid-setup.test.js +729 -0
  6. package/lib/__tests__/grid.test.js +29 -0
  7. package/lib/__tests__/key-legend.test.js +321 -0
  8. package/lib/__tests__/label-svg-icon.test.js +373 -0
  9. package/lib/__tests__/labels.test.js +61 -0
  10. package/lib/__tests__/mark-label.test.js +133 -0
  11. package/lib/__tests__/toggle-bar.test.js +197 -0
  12. package/lib/__tests__/tool-menu.test.js +151 -0
  13. package/lib/__tests__/undo-redo.test.js +31 -0
  14. package/lib/__tests__/use-debounce.test.js +24 -0
  15. package/lib/__tests__/utils.js +70 -0
  16. package/lib/__tests__/utils.test.js +123 -0
  17. package/lib/axis/__tests__/arrow.test.js +60 -0
  18. package/lib/axis/__tests__/axes.test.js +195 -0
  19. package/lib/container/__tests__/actions.test.js +108 -0
  20. package/lib/container/__tests__/index.test.js +503 -0
  21. package/lib/container/__tests__/marks.test.js +259 -0
  22. package/lib/container/__tests__/middleware.test.js +244 -0
  23. package/lib/container/__tests__/reducer.test.js +450 -0
  24. package/lib/tools/absolute/__tests__/component.test.js +65 -0
  25. package/lib/tools/circle/__tests__/bg-circle.test.js +33 -0
  26. package/lib/tools/circle/__tests__/component.test.js +615 -0
  27. package/lib/tools/circle/__tests__/index.test.js +576 -0
  28. package/lib/tools/exponential/__tests__/component.test.js +64 -0
  29. package/lib/tools/exponential/__tests__/index.test.js +828 -0
  30. package/lib/tools/line/__tests__/component.test.js +45 -0
  31. package/lib/tools/parabola/__tests__/component.test.js +64 -0
  32. package/lib/tools/parabola/__tests__/index.test.js +564 -0
  33. package/lib/tools/point/__tests__/component.test.js +434 -0
  34. package/lib/tools/point/__tests__/index.test.js +262 -0
  35. package/lib/tools/polygon/__tests__/component.test.js +485 -0
  36. package/lib/tools/polygon/__tests__/index.test.js +303 -0
  37. package/lib/tools/polygon/__tests__/line.test.js +50 -0
  38. package/lib/tools/polygon/__tests__/polygon.test.js +85 -0
  39. package/lib/tools/ray/__tests__/component.test.js +35 -0
  40. package/lib/tools/segment/__tests__/component.test.js +35 -0
  41. package/lib/tools/shared/__tests__/arrow-head.test.js +45 -0
  42. package/lib/tools/shared/line/__tests__/index.test.js +124 -0
  43. package/lib/tools/shared/line/__tests__/line-path.test.js +62 -0
  44. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +90 -0
  45. package/lib/tools/shared/point/__tests__/arrow-point.test.js +127 -0
  46. package/lib/tools/shared/point/__tests__/base-point.test.js +122 -0
  47. package/lib/tools/sine/__tests__/component.test.js +72 -0
  48. package/lib/tools/vector/__tests__/component.test.js +32 -0
  49. package/package.json +3 -3
  50. package/src/__tests__/bg.test.jsx +250 -0
  51. package/src/__tests__/coordinates-label.test.jsx +243 -0
  52. package/src/__tests__/graph-with-controls.test.jsx +198 -0
  53. package/src/__tests__/graph.test.jsx +721 -0
  54. package/src/__tests__/grid-setup.test.jsx +645 -0
  55. package/src/__tests__/grid.test.jsx +22 -0
  56. package/src/__tests__/key-legend.test.jsx +260 -0
  57. package/src/__tests__/label-svg-icon.test.jsx +278 -0
  58. package/src/__tests__/labels.test.jsx +55 -0
  59. package/src/__tests__/mark-label.test.jsx +63 -0
  60. package/src/__tests__/toggle-bar.test.jsx +146 -0
  61. package/src/__tests__/tool-menu.test.jsx +115 -0
  62. package/src/__tests__/undo-redo.test.jsx +24 -0
  63. package/src/__tests__/use-debounce.test.js +21 -0
  64. package/src/__tests__/utils.js +41 -0
  65. package/src/__tests__/utils.test.js +105 -0
  66. package/src/axis/__tests__/arrow.test.jsx +38 -0
  67. package/src/axis/__tests__/axes.test.jsx +216 -0
  68. package/src/container/__tests__/actions.test.js +105 -0
  69. package/src/container/__tests__/index.test.jsx +319 -0
  70. package/src/container/__tests__/marks.test.js +172 -0
  71. package/src/container/__tests__/middleware.test.js +235 -0
  72. package/src/container/__tests__/reducer.test.js +324 -0
  73. package/src/tools/absolute/__tests__/component.test.jsx +53 -0
  74. package/src/tools/circle/__tests__/bg-circle.test.jsx +26 -0
  75. package/src/tools/circle/__tests__/component.test.jsx +494 -0
  76. package/src/tools/circle/__tests__/index.test.js +480 -0
  77. package/src/tools/exponential/__tests__/component.test.jsx +53 -0
  78. package/src/tools/exponential/__tests__/index.test.js +729 -0
  79. package/src/tools/line/__tests__/component.test.jsx +37 -0
  80. package/src/tools/parabola/__tests__/component.test.jsx +48 -0
  81. package/src/tools/parabola/__tests__/index.test.js +470 -0
  82. package/src/tools/point/__tests__/component.test.jsx +349 -0
  83. package/src/tools/point/__tests__/index.test.js +241 -0
  84. package/src/tools/polygon/__tests__/component.test.jsx +471 -0
  85. package/src/tools/polygon/__tests__/index.test.js +294 -0
  86. package/src/tools/polygon/__tests__/line.test.jsx +35 -0
  87. package/src/tools/polygon/__tests__/polygon.test.jsx +61 -0
  88. package/src/tools/ray/__tests__/component.test.jsx +29 -0
  89. package/src/tools/segment/__tests__/component.test.jsx +28 -0
  90. package/src/tools/shared/__tests__/arrow-head.test.jsx +31 -0
  91. package/src/tools/shared/line/__tests__/index.test.jsx +109 -0
  92. package/src/tools/shared/line/__tests__/line-path.test.jsx +53 -0
  93. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +73 -0
  94. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +91 -0
  95. package/src/tools/shared/point/__tests__/base-point.test.jsx +87 -0
  96. package/src/tools/sine/__tests__/component.test.jsx +51 -0
  97. package/src/tools/vector/__tests__/component.test.jsx +25 -0
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
+ var _testUtils = require("@pie-lib/test-utils");
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _component = require("../component");
8
+ var _utils = require("../../../__tests__/utils");
9
+ 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; }
10
+ 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; }
11
+ jest.mock('@pie-lib/plot', function () {
12
+ var a = jest.requireActual('@pie-lib/plot');
13
+ return {
14
+ types: a.types,
15
+ gridDraggable: a.gridDraggable,
16
+ utils: a.utils,
17
+ trig: {
18
+ edges: jest.fn(function () {
19
+ return jest.fn().mockReturnValue([0, 0]);
20
+ })
21
+ }
22
+ };
23
+ });
24
+ describe('ArrowedLine', function () {
25
+ var onChange = jest.fn();
26
+ var renderComponent = function renderComponent(extras) {
27
+ var defaults = {
28
+ classes: {},
29
+ className: 'className',
30
+ onChange: onChange,
31
+ markerId: '1',
32
+ graphProps: (0, _utils.graphProps)()
33
+ };
34
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
35
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_component.ArrowedLine, props));
36
+ };
37
+ describe('rendering', function () {
38
+ it('renders without crashing', function () {
39
+ var _renderComponent = renderComponent(),
40
+ container = _renderComponent.container;
41
+ expect(container.firstChild).toBeInTheDocument();
42
+ });
43
+ });
44
+ });
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tcG9uZW50IiwiX3V0aWxzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJqZXN0IiwibW9jayIsImEiLCJyZXF1aXJlQWN0dWFsIiwidHlwZXMiLCJncmlkRHJhZ2dhYmxlIiwidXRpbHMiLCJ0cmlnIiwiZWRnZXMiLCJmbiIsIm1vY2tSZXR1cm5WYWx1ZSIsImRlc2NyaWJlIiwib25DaGFuZ2UiLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJtYXJrZXJJZCIsImdyYXBoUHJvcHMiLCJnZXRHcmFwaFByb3BzIiwicHJvcHMiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiQXJyb3dlZExpbmUiLCJpdCIsIl9yZW5kZXJDb21wb25lbnQiLCJjb250YWluZXIiLCJleHBlY3QiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbHMvbGluZS9fX3Rlc3RzX18vY29tcG9uZW50LnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEFycm93ZWRMaW5lIH0gZnJvbSAnLi4vY29tcG9uZW50JztcbmltcG9ydCB7IGdyYXBoUHJvcHMgYXMgZ2V0R3JhcGhQcm9wcyB9IGZyb20gJy4uLy4uLy4uL19fdGVzdHNfXy91dGlscyc7XG5cbmplc3QubW9jaygnQHBpZS1saWIvcGxvdCcsICgpID0+IHtcbiAgY29uc3QgYSA9IGplc3QucmVxdWlyZUFjdHVhbCgnQHBpZS1saWIvcGxvdCcpO1xuICByZXR1cm4ge1xuICAgIHR5cGVzOiBhLnR5cGVzLFxuICAgIGdyaWREcmFnZ2FibGU6IGEuZ3JpZERyYWdnYWJsZSxcbiAgICB1dGlsczogYS51dGlscyxcbiAgICB0cmlnOiB7XG4gICAgICBlZGdlczogamVzdC5mbigoKSA9PiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKFswLCAwXSkpLFxuICAgIH0sXG4gIH07XG59KTtcblxuZGVzY3JpYmUoJ0Fycm93ZWRMaW5lJywgKCkgPT4ge1xuICBsZXQgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgbWFya2VySWQ6ICcxJyxcbiAgICAgIGdyYXBoUHJvcHM6IGdldEdyYXBoUHJvcHMoKSxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHJlbmRlcig8QXJyb3dlZExpbmUgey4uLnByb3BzfSAvPik7XG4gIH07XG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUlu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
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _withRootEdge = require("../../shared/line/with-root-edge");
4
+ var _graphingUtils = require("@pie-lib/graphing-utils");
5
+ var _plot = require("@pie-lib/plot");
6
+ var _utils = require("../../../__tests__/utils");
7
+ var xy = _plot.utils.xy;
8
+ jest.mock('@pie-lib/graphing-utils', function () {
9
+ return {
10
+ buildDataPoints: jest.fn().mockReturnValue([]),
11
+ parabolaFromTwoPoints: jest.fn(function () {
12
+ return jest.fn();
13
+ }),
14
+ getAmplitudeAndFreq: jest.fn().mockReturnValue({
15
+ freq: 4,
16
+ amplitude: 1
17
+ })
18
+ };
19
+ });
20
+ jest.mock('../../shared/line/with-root-edge', function () {
21
+ return {
22
+ withRootEdge: jest.fn(),
23
+ rootEdgeComponent: jest.fn()
24
+ };
25
+ });
26
+ describe('Parabola', function () {
27
+ var fnBody;
28
+ var graphProps;
29
+ var root;
30
+ var edge;
31
+ var result;
32
+ beforeEach(function () {
33
+ require('../component');
34
+ fnBody = _withRootEdge.withRootEdge.mock.calls[0][0];
35
+ graphProps = (0, _utils.graphProps)();
36
+ root = xy(0, 0);
37
+ edge = xy(1, 1);
38
+ result = fnBody({
39
+ graphProps: graphProps,
40
+ root: root,
41
+ edge: edge
42
+ });
43
+ });
44
+ it('fnBody is not null', function () {
45
+ expect(fnBody).toBeDefined();
46
+ });
47
+ it('calls buildDataPoints', function () {
48
+ var _graphProps = graphProps,
49
+ domain = _graphProps.domain,
50
+ range = _graphProps.range;
51
+ expect(_graphingUtils.buildDataPoints).toHaveBeenCalledWith(domain, range, root, edge, expect.anything(), true);
52
+ });
53
+ it('calls parabolaFromTwoPoints', function () {
54
+ expect(_graphingUtils.parabolaFromTwoPoints).toHaveBeenCalledWith(root, edge);
55
+ });
56
+ it('returns dataPoints', function () {
57
+ expect(result).toEqual({
58
+ root: root,
59
+ edge: edge,
60
+ dataPoints: []
61
+ });
62
+ });
63
+ });
64
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2l0aFJvb3RFZGdlIiwicmVxdWlyZSIsIl9ncmFwaGluZ1V0aWxzIiwiX3Bsb3QiLCJfdXRpbHMiLCJ4eSIsInV0aWxzIiwiamVzdCIsIm1vY2siLCJidWlsZERhdGFQb2ludHMiLCJmbiIsIm1vY2tSZXR1cm5WYWx1ZSIsInBhcmFib2xhRnJvbVR3b1BvaW50cyIsImdldEFtcGxpdHVkZUFuZEZyZXEiLCJmcmVxIiwiYW1wbGl0dWRlIiwid2l0aFJvb3RFZGdlIiwicm9vdEVkZ2VDb21wb25lbnQiLCJkZXNjcmliZSIsImZuQm9keSIsImdyYXBoUHJvcHMiLCJyb290IiwiZWRnZSIsInJlc3VsdCIsImJlZm9yZUVhY2giLCJjYWxscyIsImdldEdyYXBoUHJvcHMiLCJpdCIsImV4cGVjdCIsInRvQmVEZWZpbmVkIiwiX2dyYXBoUHJvcHMiLCJkb21haW4iLCJyYW5nZSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiYW55dGhpbmciLCJ0b0VxdWFsIiwiZGF0YVBvaW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29scy9wYXJhYm9sYS9fX3Rlc3RzX18vY29tcG9uZW50LnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdpdGhSb290RWRnZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9saW5lL3dpdGgtcm9vdC1lZGdlJztcbmltcG9ydCB7IGJ1aWxkRGF0YVBvaW50cywgcGFyYWJvbGFGcm9tVHdvUG9pbnRzIH0gZnJvbSAnQHBpZS1saWIvZ3JhcGhpbmctdXRpbHMnO1xuaW1wb3J0IHsgdXRpbHMgfSBmcm9tICdAcGllLWxpYi9wbG90JztcblxuaW1wb3J0IHsgZ3JhcGhQcm9wcyBhcyBnZXRHcmFwaFByb3BzIH0gZnJvbSAnLi4vLi4vLi4vX190ZXN0c19fL3V0aWxzJztcblxuY29uc3QgeyB4eSB9ID0gdXRpbHM7XG5qZXN0Lm1vY2soJ0BwaWUtbGliL2dyYXBoaW5nLXV0aWxzJywgKCkgPT4gKHtcbiAgYnVpbGREYXRhUG9pbnRzOiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKFtdKSxcbiAgcGFyYWJvbGFGcm9tVHdvUG9pbnRzOiBqZXN0LmZuKCgpID0+IGplc3QuZm4oKSksXG4gIGdldEFtcGxpdHVkZUFuZEZyZXE6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoeyBmcmVxOiA0LCBhbXBsaXR1ZGU6IDEgfSksXG59KSk7XG5cbmplc3QubW9jaygnLi4vLi4vc2hhcmVkL2xpbmUvd2l0aC1yb290LWVkZ2UnLCAoKSA9PiAoe1xuICB3aXRoUm9vdEVkZ2U6IGplc3QuZm4oKSxcbiAgcm9vdEVkZ2VDb21wb25lbnQ6IGplc3QuZm4oKSxcbn0pKTtcbmRlc2NyaWJlKCdQYXJhYm9sYScsICgpID0+IHtcbiAgbGV0IGZuQm9keTtcbiAgbGV0IGdyYXBoUHJvcHM7XG4gIGxldCByb290O1xuICBsZXQgZWRnZTtcbiAgbGV0IHJlc3VsdDtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgcmVxdWlyZSgnLi4vY29tcG9uZW50Jyk7XG4gICAgZm5Cb2R5ID0gd2l0aFJvb3RFZGdlLm1vY2suY2FsbHNbMF1bMF07XG4gICAgZ3JhcGhQcm9wcyA9IGdldEdyYXBoUHJvcHMoKTtcbiAgICByb290ID0geHkoMCwgMCk7XG4gICAgZWRnZSA9IHh5KDEsIDEpO1xuXG4gICAgcmVzdWx0ID0gZm5Cb2R5KHsgZ3JhcGhQcm9wcywgcm9vdCwgZWRnZSB9KTtcbiAgfSk7XG4gIGl0KCdmbkJvZHkgaXMgbm90IG51bGwnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGZuQm9keSkudG9CZURlZmluZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2NhbGxzIGJ1aWxkRGF0YVBvaW50cycsICgpID0+IHtcbiAgICBjb25zdCB7IGRvbWFpbiwgcmFuZ2UgfSA9IGdyYXBoUHJvcHM7XG4gICAgZXhwZWN0KGJ1aWxkRGF0YVBvaW50cykudG9IYXZlQmVlbkNhbGxlZFdpdGgoZG9tYWluLCByYW5nZSwgcm9vdCwgZWRnZSwgZXhwZWN0LmFueXRoaW5nKCksIHRydWUpO1xuICB9KTtcbiAgaXQoJ2NhbGxzIHBhcmFib2xhRnJvbVR3b1BvaW50cycsICgpID0+IHtcbiAgICBleHBlY3QocGFyYWJvbGFGcm9tVHdvUG9pbnRzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChyb290LCBlZGdlKTtcbiAgfSk7XG5cbiAgaXQoJ3JldHVybnMgZGF0YVBvaW50cycsICgpID0+IHtcbiAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHsgcm9vdCwgZWRnZSwgZGF0YVBvaW50czogW10gfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBQUEsYUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsY0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBRUEsSUFBUUksRUFBRSxHQUFLQyxXQUFLLENBQVpELEVBQUU7QUFDVkUsSUFBSSxDQUFDQyxJQUFJLENBQUMseUJBQXlCLEVBQUU7RUFBQSxPQUFPO0lBQzFDQyxlQUFlLEVBQUVGLElBQUksQ0FBQ0csRUFBRSxDQUFDLENBQUMsQ0FBQ0MsZUFBZSxDQUFDLEVBQUUsQ0FBQztJQUM5Q0MscUJBQXFCLEVBQUVMLElBQUksQ0FBQ0csRUFBRSxDQUFDO01BQUEsT0FBTUgsSUFBSSxDQUFDRyxFQUFFLENBQUMsQ0FBQztJQUFBLEVBQUM7SUFDL0NHLG1CQUFtQixFQUFFTixJQUFJLENBQUNHLEVBQUUsQ0FBQyxDQUFDLENBQUNDLGVBQWUsQ0FBQztNQUFFRyxJQUFJLEVBQUUsQ0FBQztNQUFFQyxTQUFTLEVBQUU7SUFBRSxDQUFDO0VBQzFFLENBQUM7QUFBQSxDQUFDLENBQUM7QUFFSFIsSUFBSSxDQUFDQyxJQUFJLENBQUMsa0NBQWtDLEVBQUU7RUFBQSxPQUFPO0lBQ25EUSxZQUFZLEVBQUVULElBQUksQ0FBQ0csRUFBRSxDQUFDLENBQUM7SUFDdkJPLGlCQUFpQixFQUFFVixJQUFJLENBQUNHLEVBQUUsQ0FBQztFQUM3QixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBQ0hRLFFBQVEsQ0FBQyxVQUFVLEVBQUUsWUFBTTtFQUN6QixJQUFJQyxNQUFNO0VBQ1YsSUFBSUMsVUFBVTtFQUNkLElBQUlDLElBQUk7RUFDUixJQUFJQyxJQUFJO0VBQ1IsSUFBSUMsTUFBTTtFQUNWQyxVQUFVLENBQUMsWUFBTTtJQUNmdkIsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUN2QmtCLE1BQU0sR0FBR0gsMEJBQVksQ0FBQ1IsSUFBSSxDQUFDaUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0Q0wsVUFBVSxHQUFHLElBQUFNLGlCQUFhLEVBQUMsQ0FBQztJQUM1QkwsSUFBSSxHQUFHaEIsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDZmlCLElBQUksR0FBR2pCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWZrQixNQUFNLEdBQUdKLE1BQU0sQ0FBQztNQUFFQyxVQUFVLEVBQVZBLFVBQVU7TUFBRUMsSUFBSSxFQUFKQSxJQUFJO01BQUVDLElBQUksRUFBSkE7SUFBSyxDQUFDLENBQUM7RUFDN0MsQ0FBQyxDQUFDO0VBQ0ZLLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxZQUFNO0lBQzdCQyxNQUFNLENBQUNULE1BQU0sQ0FBQyxDQUFDVSxXQUFXLENBQUMsQ0FBQztFQUM5QixDQUFDLENBQUM7RUFFRkYsRUFBRSxDQUFDLHVCQUF1QixFQUFFLFlBQU07SUFDaEMsSUFBQUcsV0FBQSxHQUEwQlYsVUFBVTtNQUE1QlcsTUFBTSxHQUFBRCxXQUFBLENBQU5DLE1BQU07TUFBRUMsS0FBSyxHQUFBRixXQUFBLENBQUxFLEtBQUs7SUFDckJKLE1BQU0sQ0FBQ25CLDhCQUFlLENBQUMsQ0FBQ3dCLG9CQUFvQixDQUFDRixNQUFNLEVBQUVDLEtBQUssRUFBRVgsSUFBSSxFQUFFQyxJQUFJLEVBQUVNLE1BQU0sQ0FBQ00sUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUM7RUFDbEcsQ0FBQyxDQUFDO0VBQ0ZQLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxZQUFNO0lBQ3RDQyxNQUFNLENBQUNoQixvQ0FBcUIsQ0FBQyxDQUFDcUIsb0JBQW9CLENBQUNaLElBQUksRUFBRUMsSUFBSSxDQUFDO0VBQ2hFLENBQUMsQ0FBQztFQUVGSyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsWUFBTTtJQUM3QkMsTUFBTSxDQUFDTCxNQUFNLENBQUMsQ0FBQ1ksT0FBTyxDQUFDO01BQUVkLElBQUksRUFBSkEsSUFBSTtNQUFFQyxJQUFJLEVBQUpBLElBQUk7TUFBRWMsVUFBVSxFQUFFO0lBQUcsQ0FBQyxDQUFDO0VBQ3hELENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==