@pie-element/drawing-response 3.9.14 → 3.9.15-touch
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/configure/CHANGELOG.md +8 -0
- package/configure/lib/__tests__/image-container.test.js +187 -0
- package/configure/lib/__tests__/index.test.js +62 -0
- package/configure/lib/__tests__/root.test.js +98 -0
- package/configure/lib/defaults.js +3 -2
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/image-container.js +17 -21
- package/configure/lib/image-container.js.map +1 -1
- package/configure/lib/index.js +2 -2
- package/configure/lib/root.js +2 -2
- package/configure/package.json +3 -3
- package/configure/src/__tests__/__snapshots__/image-container.test.jsx.snap +2 -2
- package/configure/src/__tests__/__snapshots__/root.test.jsx.snap +2 -2
- package/configure/src/defaults.js +3 -2
- package/configure/src/image-container.jsx +11 -14
- package/controller/lib/__tests__/index.test.js +338 -0
- package/controller/lib/index.js +7 -4
- package/controller/lib/index.js.map +1 -1
- package/docs/demo/pie.manifest.json +11 -0
- package/docs/pie-schema.json +1 -1
- package/docs/pie-schema.json.md +1 -1
- package/lib/__tests__/drawing-index-test.js +45 -0
- package/lib/drawing-response/__tests__/container.test.js +86 -0
- package/lib/drawing-response/__tests__/drawable-helper.test.js +50 -0
- package/lib/drawing-response/__tests__/drawing-main.test.js +704 -0
- package/lib/drawing-response/__tests__/factory.test.js +19 -0
- package/lib/drawing-response/container.js +1 -1
- package/lib/drawing-response/container.js.map +1 -1
- package/lib/drawing-response/drawable-image.js +1 -1
- package/lib/drawing-response/drawable-image.js.map +1 -1
- package/lib/drawing-response/drawable-main.js +12 -5
- package/lib/drawing-response/drawable-main.js.map +1 -1
- package/lib/drawing-response/drawable-text.js +14 -4
- package/lib/drawing-response/drawable-text.js.map +1 -1
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
- package/src/drawing-response/__tests__/__snapshots__/container.test.jsx.snap +4 -4
- package/src/drawing-response/__tests__/__snapshots__/drawing-main.test.jsx.snap +14 -0
- package/src/drawing-response/container.jsx +1 -1
- package/src/drawing-response/drawable-image.jsx +1 -1
- package/src/drawing-response/drawable-main.jsx +18 -8
- package/src/drawing-response/drawable-text.jsx +6 -0
- package/src/index.js +5 -0
- package/yarn-error.log +15267 -0
- package/LICENSE.md +0 -5
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
+
|
|
7
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
8
|
+
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
|
|
11
|
+
var _enzyme = require("enzyme");
|
|
12
|
+
|
|
13
|
+
var _react = _interopRequireDefault(require("react"));
|
|
14
|
+
|
|
15
|
+
var _container = require("../container");
|
|
16
|
+
|
|
17
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
|
|
19
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
20
|
+
|
|
21
|
+
global.MutationObserver = /*#__PURE__*/function () {
|
|
22
|
+
function _class(callback) {
|
|
23
|
+
(0, _classCallCheck2["default"])(this, _class);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
(0, _createClass2["default"])(_class, [{
|
|
27
|
+
key: "disconnect",
|
|
28
|
+
value: function disconnect() {}
|
|
29
|
+
}, {
|
|
30
|
+
key: "observe",
|
|
31
|
+
value: function observe(element, initObject) {}
|
|
32
|
+
}]);
|
|
33
|
+
return _class;
|
|
34
|
+
}();
|
|
35
|
+
|
|
36
|
+
beforeEach(function () {
|
|
37
|
+
jest.useFakeTimers();
|
|
38
|
+
});
|
|
39
|
+
describe('Container', function () {
|
|
40
|
+
var w;
|
|
41
|
+
var onSessionChange = jest.fn();
|
|
42
|
+
|
|
43
|
+
var wrapper = function wrapper(extras, renderOpts) {
|
|
44
|
+
var defaults = {
|
|
45
|
+
classes: {},
|
|
46
|
+
className: 'className',
|
|
47
|
+
onSessionChange: onSessionChange,
|
|
48
|
+
imageDimensions: {},
|
|
49
|
+
imageUrl: 'url',
|
|
50
|
+
session: {}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
54
|
+
|
|
55
|
+
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_container.Container, props), _objectSpread({
|
|
56
|
+
disableLifecycleMethods: false
|
|
57
|
+
}, renderOpts));
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
describe('snapshot', function () {
|
|
61
|
+
it('renders', function () {
|
|
62
|
+
w = wrapper();
|
|
63
|
+
expect(w).toMatchSnapshot();
|
|
64
|
+
});
|
|
65
|
+
it('renders disabled', function () {
|
|
66
|
+
w = wrapper({
|
|
67
|
+
disabled: true
|
|
68
|
+
});
|
|
69
|
+
expect(w).toMatchSnapshot();
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('logic', function () {
|
|
73
|
+
describe('setDimensions', function () {
|
|
74
|
+
it('handles errors and clears interval', function () {
|
|
75
|
+
var w = wrapper({}, {
|
|
76
|
+
disableLifecycleMethods: true
|
|
77
|
+
});
|
|
78
|
+
w.instance().drawable = undefined;
|
|
79
|
+
w.instance().setDimensions();
|
|
80
|
+
jest.runAllTimers();
|
|
81
|
+
expect(clearInterval).toHaveBeenCalled();
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kcmF3aW5nLXJlc3BvbnNlL19fdGVzdHNfXy9jb250YWluZXIudGVzdC5qc3giXSwibmFtZXMiOlsiZ2xvYmFsIiwiTXV0YXRpb25PYnNlcnZlciIsImNhbGxiYWNrIiwiZWxlbWVudCIsImluaXRPYmplY3QiLCJiZWZvcmVFYWNoIiwiamVzdCIsInVzZUZha2VUaW1lcnMiLCJkZXNjcmliZSIsInciLCJvblNlc3Npb25DaGFuZ2UiLCJmbiIsIndyYXBwZXIiLCJleHRyYXMiLCJyZW5kZXJPcHRzIiwiZGVmYXVsdHMiLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiaW1hZ2VEaW1lbnNpb25zIiwiaW1hZ2VVcmwiLCJzZXNzaW9uIiwicHJvcHMiLCJkaXNhYmxlTGlmZWN5Y2xlTWV0aG9kcyIsIml0IiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90IiwiZGlzYWJsZWQiLCJpbnN0YW5jZSIsImRyYXdhYmxlIiwidW5kZWZpbmVkIiwic2V0RGltZW5zaW9ucyIsInJ1bkFsbFRpbWVycyIsImNsZWFySW50ZXJ2YWwiLCJ0b0hhdmVCZWVuQ2FsbGVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBUUE7Ozs7OztBQU5BQSxNQUFNLENBQUNDLGdCQUFQO0FBQ0Usa0JBQVlDLFFBQVosRUFBc0I7QUFBQTtBQUFFOztBQUQxQjtBQUFBO0FBQUEsV0FFRSxzQkFBYSxDQUFFO0FBRmpCO0FBQUE7QUFBQSxXQUdFLGlCQUFRQyxPQUFSLEVBQWlCQyxVQUFqQixFQUE2QixDQUFFO0FBSGpDO0FBQUE7QUFBQTs7QUFRQUMsVUFBVSxDQUFDLFlBQU07QUFDZkMsRUFBQUEsSUFBSSxDQUFDQyxhQUFMO0FBQ0QsQ0FGUyxDQUFWO0FBR0FDLFFBQVEsQ0FBQyxXQUFELEVBQWMsWUFBTTtBQUMxQixNQUFJQyxDQUFKO0FBQ0EsTUFBSUMsZUFBZSxHQUFHSixJQUFJLENBQUNLLEVBQUwsRUFBdEI7O0FBQ0EsTUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ0MsTUFBRCxFQUFTQyxVQUFULEVBQXdCO0FBQ3RDLFFBQU1DLFFBQVEsR0FBRztBQUNmQyxNQUFBQSxPQUFPLEVBQUUsRUFETTtBQUVmQyxNQUFBQSxTQUFTLEVBQUUsV0FGSTtBQUdmUCxNQUFBQSxlQUFlLEVBQWZBLGVBSGU7QUFJZlEsTUFBQUEsZUFBZSxFQUFFLEVBSkY7QUFLZkMsTUFBQUEsUUFBUSxFQUFFLEtBTEs7QUFNZkMsTUFBQUEsT0FBTyxFQUFFO0FBTk0sS0FBakI7O0FBUUEsUUFBTUMsS0FBSyxtQ0FBUU4sUUFBUixHQUFxQkYsTUFBckIsQ0FBWDs7QUFDQSxXQUFPLG1DQUFRLGdDQUFDLG9CQUFELEVBQWVRLEtBQWYsQ0FBUjtBQUNMQyxNQUFBQSx1QkFBdUIsRUFBRTtBQURwQixPQUVGUixVQUZFLEVBQVA7QUFJRCxHQWREOztBQWdCQU4sRUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCZSxJQUFBQSxFQUFFLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDbEJkLE1BQUFBLENBQUMsR0FBR0csT0FBTyxFQUFYO0FBQ0FZLE1BQUFBLE1BQU0sQ0FBQ2YsQ0FBRCxDQUFOLENBQVVnQixlQUFWO0FBQ0QsS0FIQyxDQUFGO0FBS0FGLElBQUFBLEVBQUUsQ0FBQyxrQkFBRCxFQUFxQixZQUFNO0FBQzNCZCxNQUFBQSxDQUFDLEdBQUdHLE9BQU8sQ0FBQztBQUFFYyxRQUFBQSxRQUFRLEVBQUU7QUFBWixPQUFELENBQVg7QUFDQUYsTUFBQUEsTUFBTSxDQUFDZixDQUFELENBQU4sQ0FBVWdCLGVBQVY7QUFDRCxLQUhDLENBQUY7QUFJRCxHQVZPLENBQVI7QUFZQWpCLEVBQUFBLFFBQVEsQ0FBQyxPQUFELEVBQVUsWUFBTTtBQUN0QkEsSUFBQUEsUUFBUSxDQUFDLGVBQUQsRUFBa0IsWUFBTTtBQUM5QmUsTUFBQUEsRUFBRSxDQUFDLG9DQUFELEVBQXVDLFlBQU07QUFDN0MsWUFBTWQsQ0FBQyxHQUFHRyxPQUFPLENBQUMsRUFBRCxFQUFLO0FBQUVVLFVBQUFBLHVCQUF1QixFQUFFO0FBQTNCLFNBQUwsQ0FBakI7QUFDQWIsUUFBQUEsQ0FBQyxDQUFDa0IsUUFBRixHQUFhQyxRQUFiLEdBQXdCQyxTQUF4QjtBQUNBcEIsUUFBQUEsQ0FBQyxDQUFDa0IsUUFBRixHQUFhRyxhQUFiO0FBQ0F4QixRQUFBQSxJQUFJLENBQUN5QixZQUFMO0FBQ0FQLFFBQUFBLE1BQU0sQ0FBQ1EsYUFBRCxDQUFOLENBQXNCQyxnQkFBdEI7QUFDRCxPQU5DLENBQUY7QUFPRCxLQVJPLENBQVI7QUFTRCxHQVZPLENBQVI7QUFXRCxDQTFDTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5nbG9iYWwuTXV0YXRpb25PYnNlcnZlciA9IGNsYXNzIHtcbiAgY29uc3RydWN0b3IoY2FsbGJhY2spIHt9XG4gIGRpc2Nvbm5lY3QoKSB7fVxuICBvYnNlcnZlKGVsZW1lbnQsIGluaXRPYmplY3QpIHt9XG59O1xuXG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tICcuLi9jb250YWluZXInO1xuXG5iZWZvcmVFYWNoKCgpID0+IHtcbiAgamVzdC51c2VGYWtlVGltZXJzKCk7XG59KTtcbmRlc2NyaWJlKCdDb250YWluZXInLCAoKSA9PiB7XG4gIGxldCB3O1xuICBsZXQgb25TZXNzaW9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBjb25zdCB3cmFwcGVyID0gKGV4dHJhcywgcmVuZGVyT3B0cykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBjbGFzc05hbWU6ICdjbGFzc05hbWUnLFxuICAgICAgb25TZXNzaW9uQ2hhbmdlLFxuICAgICAgaW1hZ2VEaW1lbnNpb25zOiB7fSxcbiAgICAgIGltYWdlVXJsOiAndXJsJyxcbiAgICAgIHNlc3Npb246IHt9XG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiBzaGFsbG93KDxDb250YWluZXIgey4uLnByb3BzfSAvPiwge1xuICAgICAgZGlzYWJsZUxpZmVjeWNsZU1ldGhvZHM6IGZhbHNlLFxuICAgICAgLi4ucmVuZGVyT3B0c1xuICAgIH0pO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdzbmFwc2hvdCcsICgpID0+IHtcbiAgICBpdCgncmVuZGVycycsICgpID0+IHtcbiAgICAgIHcgPSB3cmFwcGVyKCk7XG4gICAgICBleHBlY3QodykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBkaXNhYmxlZCcsICgpID0+IHtcbiAgICAgIHcgPSB3cmFwcGVyKHsgZGlzYWJsZWQ6IHRydWUgfSk7XG4gICAgICBleHBlY3QodykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBkZXNjcmliZSgnc2V0RGltZW5zaW9ucycsICgpID0+IHtcbiAgICAgIGl0KCdoYW5kbGVzIGVycm9ycyBhbmQgY2xlYXJzIGludGVydmFsJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3ID0gd3JhcHBlcih7fSwgeyBkaXNhYmxlTGlmZWN5Y2xlTWV0aG9kczogdHJ1ZSB9KTtcbiAgICAgICAgdy5pbnN0YW5jZSgpLmRyYXdhYmxlID0gdW5kZWZpbmVkO1xuICAgICAgICB3Lmluc3RhbmNlKCkuc2V0RGltZW5zaW9ucygpO1xuICAgICAgICBqZXN0LnJ1bkFsbFRpbWVycygpO1xuICAgICAgICBleHBlY3QoY2xlYXJJbnRlcnZhbCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
6
|
+
|
|
7
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
8
|
+
|
|
9
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
10
|
+
|
|
11
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
12
|
+
|
|
13
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
+
|
|
15
|
+
var _drawableHelper = _interopRequireDefault(require("../drawable-helper"));
|
|
16
|
+
|
|
17
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
18
|
+
|
|
19
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
20
|
+
|
|
21
|
+
describe('DrawableHelper', function () {
|
|
22
|
+
describe('toJson', function () {
|
|
23
|
+
it('emits json', function () {
|
|
24
|
+
var Foo = /*#__PURE__*/function (_DrawableHelper) {
|
|
25
|
+
(0, _inherits2["default"])(Foo, _DrawableHelper);
|
|
26
|
+
|
|
27
|
+
var _super = _createSuper(Foo);
|
|
28
|
+
|
|
29
|
+
function Foo(props) {
|
|
30
|
+
var _this;
|
|
31
|
+
|
|
32
|
+
(0, _classCallCheck2["default"])(this, Foo);
|
|
33
|
+
_this = _super.call(this, props, 'FOO_TYPE');
|
|
34
|
+
_this.foo = 'bar';
|
|
35
|
+
return _this;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return (0, _createClass2["default"])(Foo);
|
|
39
|
+
}(_drawableHelper["default"]);
|
|
40
|
+
|
|
41
|
+
var foo = new Foo({});
|
|
42
|
+
var o = foo.toJson();
|
|
43
|
+
expect(o).toEqual({
|
|
44
|
+
type: 'FOO_TYPE',
|
|
45
|
+
foo: 'bar'
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kcmF3aW5nLXJlc3BvbnNlL19fdGVzdHNfXy9kcmF3YWJsZS1oZWxwZXIudGVzdC5qc3giXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsIkZvbyIsInByb3BzIiwiZm9vIiwiRHJhd2FibGVIZWxwZXIiLCJvIiwidG9Kc29uIiwiZXhwZWN0IiwidG9FcXVhbCIsInR5cGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7OztBQUVBQSxRQUFRLENBQUMsZ0JBQUQsRUFBbUIsWUFBTTtBQUMvQkEsRUFBQUEsUUFBUSxDQUFDLFFBQUQsRUFBVyxZQUFNO0FBQ3ZCQyxJQUFBQSxFQUFFLENBQUMsWUFBRCxFQUFlLFlBQU07QUFBQSxVQUNmQyxHQURlO0FBQUE7O0FBQUE7O0FBRW5CLHFCQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7QUFDakIsb0NBQU1BLEtBQU4sRUFBYSxVQUFiO0FBRUEsZ0JBQUtDLEdBQUwsR0FBVyxLQUFYO0FBSGlCO0FBSWxCOztBQU5rQjtBQUFBLFFBQ0hDLDBCQURHOztBQVNyQixVQUFNRCxHQUFHLEdBQUcsSUFBSUYsR0FBSixDQUFRLEVBQVIsQ0FBWjtBQUVBLFVBQU1JLENBQUMsR0FBR0YsR0FBRyxDQUFDRyxNQUFKLEVBQVY7QUFFQUMsTUFBQUEsTUFBTSxDQUFDRixDQUFELENBQU4sQ0FBVUcsT0FBVixDQUFrQjtBQUNoQkMsUUFBQUEsSUFBSSxFQUFFLFVBRFU7QUFFaEJOLFFBQUFBLEdBQUcsRUFBRTtBQUZXLE9BQWxCO0FBSUQsS0FqQkMsQ0FBRjtBQWtCRCxHQW5CTyxDQUFSO0FBb0JELENBckJPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRHJhd2FibGVIZWxwZXIgZnJvbSAnLi4vZHJhd2FibGUtaGVscGVyJztcblxuZGVzY3JpYmUoJ0RyYXdhYmxlSGVscGVyJywgKCkgPT4ge1xuICBkZXNjcmliZSgndG9Kc29uJywgKCkgPT4ge1xuICAgIGl0KCdlbWl0cyBqc29uJywgKCkgPT4ge1xuICAgICAgY2xhc3MgRm9vIGV4dGVuZHMgRHJhd2FibGVIZWxwZXIge1xuICAgICAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICAgIHN1cGVyKHByb3BzLCAnRk9PX1RZUEUnKTtcblxuICAgICAgICAgIHRoaXMuZm9vID0gJ2Jhcic7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgZm9vID0gbmV3IEZvbyh7fSk7XG5cbiAgICAgIGNvbnN0IG8gPSBmb28udG9Kc29uKCk7XG5cbiAgICAgIGV4cGVjdChvKS50b0VxdWFsKHtcbiAgICAgICAgdHlwZTogJ0ZPT19UWVBFJyxcbiAgICAgICAgZm9vOiAnYmFyJ1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|