@pie-lib/mask-markup 3.1.6-beta.14 → 3.1.6-beta.15
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.
|
@@ -10,9 +10,9 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
10
10
|
// Mock @dnd-kit hooks to avoid DndContext requirement
|
|
11
11
|
jest.mock('@dnd-kit/core', function () {
|
|
12
12
|
return {
|
|
13
|
-
useDraggable: jest.fn(function () {
|
|
13
|
+
useDraggable: jest.fn(function (options) {
|
|
14
14
|
return {
|
|
15
|
-
attributes: {},
|
|
15
|
+
attributes: (options === null || options === void 0 ? void 0 : options.attributes) || {},
|
|
16
16
|
listeners: {},
|
|
17
17
|
setNodeRef: jest.fn(),
|
|
18
18
|
transform: null,
|
|
@@ -204,8 +204,9 @@ describe('Blank', function () {
|
|
|
204
204
|
(0, _react2.act)(function () {
|
|
205
205
|
jest.runAllTimers();
|
|
206
206
|
});
|
|
207
|
-
var wrapper = container.firstChild; // StyledContent
|
|
208
|
-
var
|
|
207
|
+
var wrapper = container.firstChild; // StyledContent (outer droppable/click node)
|
|
208
|
+
var dragHandle = wrapper && wrapper.firstChild; // StyledDragHandle (inner draggable node)
|
|
209
|
+
var chip = dragHandle && dragHandle.firstChild; // StyledChip (rootRef)
|
|
209
210
|
|
|
210
211
|
// Width and height should include padding (24px) around measured content
|
|
211
212
|
expect(chip.style.width).toBe('129px');
|
|
@@ -289,5 +290,260 @@ describe('Blank', function () {
|
|
|
289
290
|
// Should show visual feedback for drag over
|
|
290
291
|
});
|
|
291
292
|
});
|
|
293
|
+
describe('click-to-select and click-to-place', function () {
|
|
294
|
+
var _require2 = require('@dnd-kit/core'),
|
|
295
|
+
useDroppable = _require2.useDroppable;
|
|
296
|
+
afterEach(function () {
|
|
297
|
+
useDroppable.mockReturnValue({
|
|
298
|
+
setNodeRef: jest.fn(),
|
|
299
|
+
isOver: false,
|
|
300
|
+
active: null
|
|
301
|
+
});
|
|
302
|
+
});
|
|
303
|
+
it('is a native tab stop (role=button, tabIndex=0) when empty and not disabled', function () {
|
|
304
|
+
var _render1 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
305
|
+
choice: undefined
|
|
306
|
+
}))),
|
|
307
|
+
container = _render1.container;
|
|
308
|
+
var outer = container.firstChild;
|
|
309
|
+
expect(outer.getAttribute('role')).toBe('button');
|
|
310
|
+
expect(outer.getAttribute('tabindex')).toBe('0');
|
|
311
|
+
});
|
|
312
|
+
it('is not a tab stop when it already holds a choice (relies on the inner draggable node)', function () {
|
|
313
|
+
var _render10 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], defaultProps)),
|
|
314
|
+
container = _render10.container;
|
|
315
|
+
var outer = container.firstChild;
|
|
316
|
+
expect(outer.getAttribute('role')).toBeNull();
|
|
317
|
+
expect(outer.getAttribute('tabindex')).toBe('-1');
|
|
318
|
+
});
|
|
319
|
+
it('is not a tab stop when disabled, even if empty', function () {
|
|
320
|
+
var _render11 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
321
|
+
choice: undefined,
|
|
322
|
+
disabled: true
|
|
323
|
+
}))),
|
|
324
|
+
container = _render11.container;
|
|
325
|
+
var outer = container.firstChild;
|
|
326
|
+
expect(outer.getAttribute('tabindex')).toBe('-1');
|
|
327
|
+
});
|
|
328
|
+
it('does not make the inner draggable node a second tab stop when the blank is empty', function () {
|
|
329
|
+
var _render12 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
330
|
+
choice: undefined,
|
|
331
|
+
selectedItem: null
|
|
332
|
+
}))),
|
|
333
|
+
container = _render12.container;
|
|
334
|
+
var outer = container.firstChild;
|
|
335
|
+
var inner = outer.firstElementChild;
|
|
336
|
+
expect(outer.getAttribute('tabindex')).toBe('0');
|
|
337
|
+
// dragAttributes (which carries tabIndex) is only spread onto the inner node when
|
|
338
|
+
// it's the live tab stop (filled and not disabled) — otherwise it's omitted
|
|
339
|
+
// entirely, so no tabindex attribute is present at all here.
|
|
340
|
+
expect(inner.getAttribute('tabindex')).toBeNull();
|
|
341
|
+
});
|
|
342
|
+
it('makes the inner draggable node the tab stop when the blank is filled and not disabled', function () {
|
|
343
|
+
var _render13 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
344
|
+
selectedItem: null
|
|
345
|
+
}))),
|
|
346
|
+
container = _render13.container;
|
|
347
|
+
var outer = container.firstChild;
|
|
348
|
+
var inner = outer.firstElementChild;
|
|
349
|
+
expect(inner.getAttribute('tabindex')).toBe('0');
|
|
350
|
+
});
|
|
351
|
+
it('selects this blank\'s content on click when nothing else is selected', function () {
|
|
352
|
+
var onSelectClick = jest.fn();
|
|
353
|
+
var _render14 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
354
|
+
id: "3",
|
|
355
|
+
selectedItem: null,
|
|
356
|
+
onSelectClick: onSelectClick
|
|
357
|
+
}))),
|
|
358
|
+
container = _render14.container;
|
|
359
|
+
_react2.fireEvent.click(container.firstChild);
|
|
360
|
+
expect(onSelectClick).toHaveBeenCalledWith({
|
|
361
|
+
id: '3',
|
|
362
|
+
choice: defaultProps.choice,
|
|
363
|
+
instanceId: undefined,
|
|
364
|
+
fromChoice: false,
|
|
365
|
+
type: 'MaskBlank'
|
|
366
|
+
});
|
|
367
|
+
});
|
|
368
|
+
it('toggles off when clicking its own already-selected content', function () {
|
|
369
|
+
var onSelectClick = jest.fn();
|
|
370
|
+
var selectedItem = {
|
|
371
|
+
id: '3',
|
|
372
|
+
choice: defaultProps.choice,
|
|
373
|
+
instanceId: undefined,
|
|
374
|
+
fromChoice: false,
|
|
375
|
+
type: 'MaskBlank'
|
|
376
|
+
};
|
|
377
|
+
var _render15 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
378
|
+
id: "3",
|
|
379
|
+
selectedItem: selectedItem,
|
|
380
|
+
onSelectClick: onSelectClick
|
|
381
|
+
}))),
|
|
382
|
+
container = _render15.container;
|
|
383
|
+
_react2.fireEvent.click(container.firstChild);
|
|
384
|
+
expect(onSelectClick).toHaveBeenCalledWith(selectedItem);
|
|
385
|
+
});
|
|
386
|
+
it('places the current selection here when clicking a different, already-filled blank', function () {
|
|
387
|
+
var onPlacementClick = jest.fn();
|
|
388
|
+
var selectedItem = {
|
|
389
|
+
choice: {
|
|
390
|
+
value: 'Other'
|
|
391
|
+
},
|
|
392
|
+
instanceId: undefined,
|
|
393
|
+
fromChoice: true,
|
|
394
|
+
type: 'MaskBlank'
|
|
395
|
+
};
|
|
396
|
+
var _render16 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
397
|
+
id: "3",
|
|
398
|
+
selectedItem: selectedItem,
|
|
399
|
+
onPlacementClick: onPlacementClick
|
|
400
|
+
}))),
|
|
401
|
+
container = _render16.container;
|
|
402
|
+
_react2.fireEvent.click(container.firstChild);
|
|
403
|
+
expect(onPlacementClick).toHaveBeenCalledWith('3');
|
|
404
|
+
});
|
|
405
|
+
it('places the current selection here on Space/Enter when empty', function () {
|
|
406
|
+
var onPlacementClick = jest.fn();
|
|
407
|
+
var selectedItem = {
|
|
408
|
+
choice: {
|
|
409
|
+
value: 'Other'
|
|
410
|
+
},
|
|
411
|
+
instanceId: undefined,
|
|
412
|
+
fromChoice: true,
|
|
413
|
+
type: 'MaskBlank'
|
|
414
|
+
};
|
|
415
|
+
var _render17 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
416
|
+
id: "3",
|
|
417
|
+
choice: undefined,
|
|
418
|
+
selectedItem: selectedItem,
|
|
419
|
+
onPlacementClick: onPlacementClick
|
|
420
|
+
}))),
|
|
421
|
+
container = _render17.container;
|
|
422
|
+
_react2.fireEvent.keyDown(container.firstChild, {
|
|
423
|
+
code: 'Space'
|
|
424
|
+
});
|
|
425
|
+
expect(onPlacementClick).toHaveBeenCalledWith('3');
|
|
426
|
+
});
|
|
427
|
+
it('does nothing on click when empty and nothing is selected', function () {
|
|
428
|
+
var onSelectClick = jest.fn();
|
|
429
|
+
var onPlacementClick = jest.fn();
|
|
430
|
+
var _render18 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
431
|
+
choice: undefined,
|
|
432
|
+
selectedItem: null,
|
|
433
|
+
onSelectClick: onSelectClick,
|
|
434
|
+
onPlacementClick: onPlacementClick
|
|
435
|
+
}))),
|
|
436
|
+
container = _render18.container;
|
|
437
|
+
_react2.fireEvent.click(container.firstChild);
|
|
438
|
+
expect(onSelectClick).not.toHaveBeenCalled();
|
|
439
|
+
expect(onPlacementClick).not.toHaveBeenCalled();
|
|
440
|
+
});
|
|
441
|
+
it('does nothing on click when disabled', function () {
|
|
442
|
+
var onSelectClick = jest.fn();
|
|
443
|
+
var selectedItem = {
|
|
444
|
+
choice: {
|
|
445
|
+
value: 'Other'
|
|
446
|
+
},
|
|
447
|
+
instanceId: undefined,
|
|
448
|
+
fromChoice: true,
|
|
449
|
+
type: 'MaskBlank'
|
|
450
|
+
};
|
|
451
|
+
var _render19 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
452
|
+
disabled: true,
|
|
453
|
+
selectedItem: selectedItem,
|
|
454
|
+
onSelectClick: onSelectClick
|
|
455
|
+
}))),
|
|
456
|
+
container = _render19.container;
|
|
457
|
+
_react2.fireEvent.click(container.firstChild);
|
|
458
|
+
expect(onSelectClick).not.toHaveBeenCalled();
|
|
459
|
+
});
|
|
460
|
+
it('folds click-selection hover into the same highlight a live drag-over shows', function () {
|
|
461
|
+
var selectedItem = {
|
|
462
|
+
choice: {
|
|
463
|
+
value: 'Other'
|
|
464
|
+
},
|
|
465
|
+
instanceId: undefined,
|
|
466
|
+
fromChoice: true,
|
|
467
|
+
type: 'MaskBlank'
|
|
468
|
+
};
|
|
469
|
+
var _render20 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
470
|
+
id: "3",
|
|
471
|
+
selectedItem: selectedItem
|
|
472
|
+
}))),
|
|
473
|
+
container = _render20.container;
|
|
474
|
+
var outer = container.firstChild;
|
|
475
|
+
_react2.fireEvent.mouseEnter(outer);
|
|
476
|
+
// The "over" prop drives the same CSS the real isOver-driven highlight uses —
|
|
477
|
+
// assert via the rendered chip's className, since StyledContent forwards `over`.
|
|
478
|
+
// Re-render check: BlankContent receives the folded isOver as true while hovered
|
|
479
|
+
// with a selection active — verified indirectly via the "over" chip class it sets.
|
|
480
|
+
expect(_react2.screen.getByText('Cow').closest('.over')).not.toBeNull();
|
|
481
|
+
_react2.fireEvent.mouseLeave(outer);
|
|
482
|
+
expect(_react2.screen.getByText('Cow').closest('.over')).toBeNull();
|
|
483
|
+
});
|
|
484
|
+
it('shows a pointer cursor on hover when something is selected', function () {
|
|
485
|
+
var selectedItem = {
|
|
486
|
+
choice: {
|
|
487
|
+
value: 'Other'
|
|
488
|
+
},
|
|
489
|
+
instanceId: undefined,
|
|
490
|
+
fromChoice: true,
|
|
491
|
+
type: 'MaskBlank'
|
|
492
|
+
};
|
|
493
|
+
var _render21 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
494
|
+
id: "3",
|
|
495
|
+
selectedItem: selectedItem
|
|
496
|
+
}))),
|
|
497
|
+
container = _render21.container;
|
|
498
|
+
var outer = container.firstChild;
|
|
499
|
+
var className = Array.from(outer.classList).find(function (c) {
|
|
500
|
+
return c.startsWith('css-');
|
|
501
|
+
});
|
|
502
|
+
var hoverRule = collectEmotionRules().find(function (r) {
|
|
503
|
+
return r.includes(".".concat(className, ":hover"));
|
|
504
|
+
});
|
|
505
|
+
expect(hoverRule).toBeDefined();
|
|
506
|
+
expect(hoverRule).toMatch(/cursor:\s*pointer/);
|
|
507
|
+
});
|
|
508
|
+
it('keeps the default cursor on hover when nothing is selected', function () {
|
|
509
|
+
var _render22 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
510
|
+
id: "3",
|
|
511
|
+
selectedItem: null
|
|
512
|
+
}))),
|
|
513
|
+
container = _render22.container;
|
|
514
|
+
var outer = container.firstChild;
|
|
515
|
+
var className = Array.from(outer.classList).find(function (c) {
|
|
516
|
+
return c.startsWith('css-');
|
|
517
|
+
});
|
|
518
|
+
var hoverRule = collectEmotionRules().find(function (r) {
|
|
519
|
+
return r.includes(".".concat(className, ":hover"));
|
|
520
|
+
});
|
|
521
|
+
expect(hoverRule).toBeUndefined();
|
|
522
|
+
});
|
|
523
|
+
it('keeps the default cursor on hover when disabled, even with something selected', function () {
|
|
524
|
+
var selectedItem = {
|
|
525
|
+
choice: {
|
|
526
|
+
value: 'Other'
|
|
527
|
+
},
|
|
528
|
+
instanceId: undefined,
|
|
529
|
+
fromChoice: true,
|
|
530
|
+
type: 'MaskBlank'
|
|
531
|
+
};
|
|
532
|
+
var _render23 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
533
|
+
id: "3",
|
|
534
|
+
disabled: true,
|
|
535
|
+
selectedItem: selectedItem
|
|
536
|
+
}))),
|
|
537
|
+
container = _render23.container;
|
|
538
|
+
var outer = container.firstChild;
|
|
539
|
+
var className = Array.from(outer.classList).find(function (c) {
|
|
540
|
+
return c.startsWith('css-');
|
|
541
|
+
});
|
|
542
|
+
var hoverRule = collectEmotionRules().find(function (r) {
|
|
543
|
+
return r.includes(".".concat(className, ":hover"));
|
|
544
|
+
});
|
|
545
|
+
expect(hoverRule).toBeUndefined();
|
|
546
|
+
});
|
|
547
|
+
});
|
|
292
548
|
});
|
|
293
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfYmxhbmsiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJqZXN0IiwibW9jayIsInVzZURyYWdnYWJsZSIsImZuIiwiYXR0cmlidXRlcyIsImxpc3RlbmVycyIsInNldE5vZGVSZWYiLCJ0cmFuc2Zvcm0iLCJpc0RyYWdnaW5nIiwidXNlRHJvcHBhYmxlIiwiaXNPdmVyIiwiYWN0aXZlIiwiQ1NTIiwiVHJhbnNsYXRlIiwidG9TdHJpbmciLCJyZW5kZXJNYXRoIiwiY29sbGVjdEVtb3Rpb25SdWxlcyIsInJ1bGVzIiwiX2kiLCJfQXJyYXkkZnJvbSIsIkFycmF5IiwiZnJvbSIsImRvY3VtZW50Iiwic3R5bGVTaGVldHMiLCJsZW5ndGgiLCJzaGVldCIsIl9pMiIsIl9BcnJheSRmcm9tMiIsImNzc1J1bGVzIiwicnVsZSIsInB1c2giLCJjc3NUZXh0IiwiZGVzY3JpYmUiLCJfcmVxdWlyZSIsIm9uQ2hhbmdlIiwiZGVmYXVsdFByb3BzIiwiZGlzYWJsZWQiLCJjaG9pY2UiLCJ2YWx1ZSIsImRyYWdJdGVtIiwiY29ycmVjdCIsImJlZm9yZUVhY2giLCJtb2NrQ2xlYXIiLCJpdCIsIl9yZW5kZXIiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50Iiwic2NyZWVuIiwiZ2V0QnlUZXh0IiwiX2V4dGVuZHMyIiwicXVlcnlCeVJvbGUiLCJuYW1lIiwibm90IiwiX3JlbmRlcjIiLCJfcmVuZGVyMyIsInVuZGVmaW5lZCIsImRlbGV0ZUJ1dHRvbiIsIl9yZW5kZXI0IiwiZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQiLCJlbXB0eVJlc3BvbnNlQXJlYVdpZHRoIiwiZWxlbWVudCIsIl9yZW5kZXI1IiwiX3JlbmRlcjYiLCJ1c2VGYWtlVGltZXJzIiwicmVjdFNweSIsInNweU9uIiwiSFRNTEVsZW1lbnQiLCJwcm90b3R5cGUiLCJtb2NrUmV0dXJuVmFsdWUiLCJ3aWR0aCIsImhlaWdodCIsInRvcCIsImxlZnQiLCJyaWdodCIsImJvdHRvbSIsIl9yZW5kZXI3IiwiYWN0IiwicnVuQWxsVGltZXJzIiwid3JhcHBlciIsImNoaXAiLCJzdHlsZSIsInRvQmUiLCJtb2NrUmVzdG9yZSIsInVzZVJlYWxUaW1lcnMiLCJ0b0hhdmVCZWVuQ2FsbGVkIiwiX3JlbmRlcjgiLCJyZXJlbmRlciIsImNhbGxzQWZ0ZXJNb3VudCIsImNhbGxzIiwidG9CZUdyZWF0ZXJUaGFuIiwiX3JlbmRlcjkiLCJmaW5kIiwiaW5jbHVkZXMiLCJ0b0JlRGVmaW5lZCIsInRvTWF0Y2giLCJ0ZXN0IiwiX3JlbmRlcjAiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9fX3Rlc3RzX18vYmxhbmsudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIsIHNjcmVlbiwgYWN0IH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgQmxhbmsgZnJvbSAnLi4vYmxhbmsnO1xuXG4vLyBNb2NrIEBkbmQta2l0IGhvb2tzIHRvIGF2b2lkIERuZENvbnRleHQgcmVxdWlyZW1lbnRcbmplc3QubW9jaygnQGRuZC1raXQvY29yZScsICgpID0+ICh7XG4gIHVzZURyYWdnYWJsZTogamVzdC5mbigoKSA9PiAoe1xuICAgIGF0dHJpYnV0ZXM6IHt9LFxuICAgIGxpc3RlbmVyczoge30sXG4gICAgc2V0Tm9kZVJlZjogamVzdC5mbigpLFxuICAgIHRyYW5zZm9ybTogbnVsbCxcbiAgICBpc0RyYWdnaW5nOiBmYWxzZSxcbiAgfSkpLFxuICB1c2VEcm9wcGFibGU6IGplc3QuZm4oKCkgPT4gKHtcbiAgICBzZXROb2RlUmVmOiBqZXN0LmZuKCksXG4gICAgaXNPdmVyOiBmYWxzZSxcbiAgICBhY3RpdmU6IG51bGwsXG4gIH0pKSxcbn0pKTtcblxuamVzdC5tb2NrKCdAZG5kLWtpdC91dGlsaXRpZXMnLCAoKSA9PiAoe1xuICBDU1M6IHtcbiAgICBUcmFuc2xhdGU6IHtcbiAgICAgIHRvU3RyaW5nOiBqZXN0LmZuKCgpID0+ICd0cmFuc2xhdGUzZCgwLCAwLCAwKScpLFxuICAgIH0sXG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvbWF0aC1yZW5kZXJpbmcnLCAoKSA9PiAoe1xuICByZW5kZXJNYXRoOiBqZXN0LmZuKCksXG59KSk7XG5cbi8vIENvbGxlY3QgdGhlIENTUyBydWxlcyBlbW90aW9uL01VSSBpbmplY3RlZCBpbnRvIHRoZSBkb2N1bWVudCAoanNkb20gdXNlcyBpbnNlcnRSdWxlKS5cbmNvbnN0IGNvbGxlY3RFbW90aW9uUnVsZXMgPSAoKSA9PiB7XG4gIGNvbnN0IHJ1bGVzID0gW107XG4gIGZvciAoY29uc3Qgc2hlZXQgb2YgQXJyYXkuZnJvbShkb2N1bWVudC5zdHlsZVNoZWV0cykpIHtcbiAgICB0cnkge1xuICAgICAgZm9yIChjb25zdCBydWxlIG9mIEFycmF5LmZyb20oc2hlZXQuY3NzUnVsZXMpKSB7XG4gICAgICAgIHJ1bGVzLnB1c2gocnVsZS5jc3NUZXh0KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvKiBpbmFjY2Vzc2libGUgc3R5bGVzaGVldCAqL1xuICAgIH1cbiAgfVxuICByZXR1cm4gcnVsZXM7XG59O1xuXG5kZXNjcmliZSgnQmxhbmsnLCAoKSA9PiB7XG4gIGNvbnN0IHsgcmVuZGVyTWF0aCB9ID0gcmVxdWlyZSgnQHBpZS1saWIvbWF0aC1yZW5kZXJpbmcnKTtcbiAgY29uc3Qgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgY2hvaWNlOiB7IHZhbHVlOiAnQ293JyB9LFxuICAgIGlzT3ZlcjogZmFsc2UsXG4gICAgZHJhZ0l0ZW06IHt9LFxuICAgIGNvcnJlY3Q6IGZhbHNlLFxuICAgIG9uQ2hhbmdlLFxuICB9O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQ2hhbmdlLm1vY2tDbGVhcigpO1xuICAgIHJlbmRlck1hdGgubW9ja0NsZWFyKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBkZWZhdWx0IHByb3BzJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Rpc3BsYXlzIHRoZSB2YWx1ZSB3aGVuIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnQ293JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBhcyBkaXNhYmxlZCB3aGVuIGRpc2FibGVkIHByb3AgaXMgdHJ1ZScsICgpID0+IHtcbiAgICAgIHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gZGlzYWJsZWQ9e3RydWV9IC8+KTtcbiAgICAgIC8vIENoZWNrIHRoYXQgZGVsZXRlIGJ1dHRvbiBpcyBub3QgcHJlc2VudCB3aGVuIGRpc2FibGVkXG4gICAgICBleHBlY3Qoc2NyZWVuLnF1ZXJ5QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6IC9kZWxldGUvaSB9KSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGRyYWdnZWQgaXRlbSBwcmV2aWV3JywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBkcmFnSXRlbT17eyBjaG9pY2U6IHsgdmFsdWU6ICdEb2cnIH0gfX0gLz4pO1xuICAgICAgLy8gQmxhbmsgY29tcG9uZW50IHNob3VsZCByZW5kZXJcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdDb3cnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG93cyBob3ZlciBzdGF0ZSB3aGVuIGlzT3ZlciBpcyB0cnVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gZHJhZ0l0ZW09e3sgY2hvaWNlOiB7IHZhbHVlOiAnRG9nJyB9IH19IGlzT3Zlcj17dHJ1ZX0gLz4pO1xuICAgICAgLy8gQ29tcG9uZW50IHNob3VsZCBoYXZlIGhvdmVyIHN0eWxpbmdcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG93cyBjb3JyZWN0IHN0YXRlIHdoZW4gY29ycmVjdCBpcyB0cnVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gY29ycmVjdD17dHJ1ZX0gLz4pO1xuICAgICAgLy8gQ29tcG9uZW50IHNob3VsZCBpbmRpY2F0ZSBjb3JyZWN0bmVzc1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZGVsZXRlIGZ1bmN0aW9uYWxpdHknLCAoKSA9PiB7XG4gICAgaXQoJ2RvZXMgbm90IHNob3cgZGVsZXRlIGJ1dHRvbiB3aGVuIGRpc2FibGVkJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBkaXNhYmxlZD17dHJ1ZX0gLz4pO1xuICAgICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAvZGVsZXRlL2kgfSkpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RvZXMgbm90IHNob3cgZGVsZXRlIGJ1dHRvbiB3aGVuIG5vIHZhbHVlIGlzIHNldCcsICgpID0+IHtcbiAgICAgIHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gY2hvaWNlPXt1bmRlZmluZWR9IC8+KTtcbiAgICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogL2RlbGV0ZS9pIH0pKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG93cyBkZWxldGUgYnV0dG9uIHdoZW4gdmFsdWUgaXMgcHJlc2VudCBhbmQgbm90IGRpc2FibGVkJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgICAvLyBJZiBkZWxldGUgYnV0dG9uIGlzIHByZXNlbnQsIGl0IHNob3VsZCBiZSBjbGlja2FibGVcbiAgICAgIGNvbnN0IGRlbGV0ZUJ1dHRvbiA9IHNjcmVlbi5xdWVyeUJ5Um9sZSgnYnV0dG9uJyk7XG4gICAgICBpZiAoZGVsZXRlQnV0dG9uKSB7XG4gICAgICAgIGV4cGVjdChkZWxldGVCdXR0b24pLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdkaW1lbnNpb25zJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGggY3VzdG9tIGRpbWVuc2lvbnMgd2hlbiBwcm92aWRlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoXG4gICAgICAgIDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBlbXB0eVJlc3BvbnNlQXJlYUhlaWdodD17MTAwfSBlbXB0eVJlc3BvbnNlQXJlYVdpZHRoPXsyMDB9IC8+LFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb250YWluZXIuZmlyc3RDaGlsZDtcbiAgICAgIGV4cGVjdChlbGVtZW50KS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBtaW4gZGltZW5zaW9ucyBieSBkZWZhdWx0JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgY29uc3QgZWxlbWVudCA9IGNvbnRhaW5lci5maXJzdENoaWxkO1xuICAgICAgZXhwZWN0KGVsZW1lbnQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICAvLyBDb21wb25lbnQgc2hvdWxkIGhhdmUgbWluaW11bSBkaW1lbnNpb25zIGFwcGxpZWRcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIG5vbi1udW1lcmljIGRpbWVuc2lvbiBwcm9wcyBncmFjZWZ1bGx5JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcihcbiAgICAgICAgPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGVtcHR5UmVzcG9uc2VBcmVhSGVpZ2h0PVwibm9uLW51bWVyaWNcIiBlbXB0eVJlc3BvbnNlQXJlYVdpZHRoPVwibm9uLW51bWVyaWNcIiAvPixcbiAgICAgICk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnY29tcHV0ZXMgY2hpcCBkaW1lbnNpb25zIGJhc2VkIG9uIGNvbnRlbnQgd2hlbiBubyBlbXB0eVJlc3BvbnNlQXJlYSBzaXplIGlzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgamVzdC51c2VGYWtlVGltZXJzKCk7XG4gICAgICAvLyBNb2NrIGdldEJvdW5kaW5nQ2xpZW50UmVjdCB0byBzaW11bGF0ZSBtZWFzdXJlZCBjb250ZW50IHNpemVcbiAgICAgIGNvbnN0IHJlY3RTcHkgPSBqZXN0XG4gICAgICAgIC5zcHlPbihIVE1MRWxlbWVudC5wcm90b3R5cGUsICdnZXRCb3VuZGluZ0NsaWVudFJlY3QnKVxuICAgICAgICAubW9ja1JldHVyblZhbHVlKHsgd2lkdGg6IDEwMCwgaGVpZ2h0OiAyMCwgdG9wOiAwLCBsZWZ0OiAwLCByaWdodDogMTAwLCBib3R0b206IDIwIH0pO1xuXG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKFxuICAgICAgICA8QmxhbmtcbiAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxuICAgICAgICAgIC8vIEZvcmNlIG1lYXN1cmVtZW50IHBhdGggdGhhdCB1c2VzIGdldE1lYXN1cmVOb2RlIC8gdXBkYXRlRGltZW5zaW9uc1xuICAgICAgICAgIGVtcHR5UmVzcG9uc2VBcmVhSGVpZ2h0PXswfVxuICAgICAgICAgIGVtcHR5UmVzcG9uc2VBcmVhV2lkdGg9ezB9XG4gICAgICAgIC8+LFxuICAgICAgKTtcblxuICAgICAgLy8gTGV0IHRoZSBpbnRlcm5hbCB0aW1lb3V0IGluIGhhbmRsZUVsZW1lbnRzIC8gdXBkYXRlRGltZW5zaW9ucyBydW5cbiAgICAgIGFjdCgoKSA9PiB7XG4gICAgICAgIGplc3QucnVuQWxsVGltZXJzKCk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgd3JhcHBlciA9IGNvbnRhaW5lci5maXJzdENoaWxkOyAvLyBTdHlsZWRDb250ZW50XG4gICAgICBjb25zdCBjaGlwID0gd3JhcHBlciAmJiB3cmFwcGVyLmZpcnN0Q2hpbGQ7IC8vIFN0eWxlZENoaXAgKHJvb3RSZWYpXG5cbiAgICAgIC8vIFdpZHRoIGFuZCBoZWlnaHQgc2hvdWxkIGluY2x1ZGUgcGFkZGluZyAoMjRweCkgYXJvdW5kIG1lYXN1cmVkIGNvbnRlbnRcbiAgICAgIGV4cGVjdChjaGlwLnN0eWxlLndpZHRoKS50b0JlKCcxMjlweCcpO1xuICAgICAgZXhwZWN0KGNoaXAuc3R5bGUuaGVpZ2h0KS50b0JlKCc0OXB4Jyk7XG5cbiAgICAgIHJlY3RTcHkubW9ja1Jlc3RvcmUoKTtcbiAgICAgIGplc3QudXNlUmVhbFRpbWVycygpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbWF0aCByZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIHJlbmRlck1hdGggb24gbW91bnQgd2hlbiBjaG9pY2UgaGFzIGNvbnRlbnQnLCAoKSA9PiB7XG4gICAgICByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICAgIGV4cGVjdChyZW5kZXJNYXRoKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2FsbHMgcmVuZGVyTWF0aCBhZ2FpbiB3aGVuIGNvcnJlY3QgY2hhbmdlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcmVyZW5kZXIgfSA9IHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gY29ycmVjdD17ZmFsc2V9IC8+KTtcbiAgICAgIGNvbnN0IGNhbGxzQWZ0ZXJNb3VudCA9IHJlbmRlck1hdGgubW9jay5jYWxscy5sZW5ndGg7XG4gICAgICBleHBlY3QoY2FsbHNBZnRlck1vdW50KS50b0JlR3JlYXRlclRoYW4oMCk7XG5cbiAgICAgIHJlcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBjb3JyZWN0PXt0cnVlfSAvPik7XG4gICAgICBleHBlY3QocmVuZGVyTWF0aC5tb2NrLmNhbGxzLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKGNhbGxzQWZ0ZXJNb3VudCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZG9lcyBub3QgY2FsbCByZW5kZXJNYXRoIGFnYWluIHdoZW4gY29ycmVjdCBpcyB1bmNoYW5nZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IHJlcmVuZGVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGNvcnJlY3Q9e3RydWV9IC8+KTtcbiAgICAgIGNvbnN0IGNhbGxzQWZ0ZXJNb3VudCA9IHJlbmRlck1hdGgubW9jay5jYWxscy5sZW5ndGg7XG5cbiAgICAgIHJlcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBjb3JyZWN0PXt0cnVlfSAvPik7XG4gICAgICBleHBlY3QocmVuZGVyTWF0aC5tb2NrLmNhbGxzLmxlbmd0aCkudG9CZShjYWxsc0FmdGVyTW91bnQpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZnJhY3Rpb24gbWF0aCBzdHlsaW5nJywgKCkgPT4ge1xuICAgIGl0KCdlbmxhcmdlcyBudW1lcmF0b3IvZGVub21pbmF0b3IgZGlnaXRzIGFkamFjZW50IHRvIGEgZnJhY3Rpb24gdG8gMTIwJScsICgpID0+IHtcbiAgICAgIHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgY29uc3QgcnVsZSA9IGNvbGxlY3RFbW90aW9uUnVsZXMoKS5maW5kKChyKSA9PiByLmluY2x1ZGVzKCdtangtbW4nKSAmJiByLmluY2x1ZGVzKCdtangtbWZyYWMnKSk7XG4gICAgICBleHBlY3QocnVsZSkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChydWxlKS50b01hdGNoKC9tangtbW46aGFzXFwoflxccyptangtbWZyYWNcXCkvKTtcbiAgICAgIGV4cGVjdChydWxlKS50b01hdGNoKC9tangtbWZyYWNcXHMqflxccyptangtbW4vKTtcbiAgICAgIGV4cGVjdChydWxlKS50b01hdGNoKC9mb250LXNpemU6XFxzKjEyMCVcXHMqIWltcG9ydGFudC9pKTtcbiAgICB9KTtcblxuICAgIGl0KCdrZWVwcyB0aGUgZXhpc3RpbmcgbWp4LWZyYWMgMTIwJSBydWxlJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgICBjb25zdCBydWxlID0gY29sbGVjdEVtb3Rpb25SdWxlcygpLmZpbmQoKHIpID0+IC8oXnxbXi1dKW1qeC1mcmFjLy50ZXN0KHIpICYmICFyLmluY2x1ZGVzKCdtangtbWZyYWMnKSk7XG4gICAgICBleHBlY3QocnVsZSkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChydWxlKS50b01hdGNoKC9mb250LXNpemU6XFxzKjEyMCVcXHMqIWltcG9ydGFudC9pKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2RyYWcgYW5kIGRyb3AnLCAoKSA9PiB7XG4gICAgaXQoJ2FjY2VwdHMgZHJhZyBpdGVtIHdoZW4gbm90IGRpc2FibGVkJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBpc092ZXI9e3RydWV9IGRyYWdJdGVtPXt7IGNob2ljZTogeyB2YWx1ZTogJ0RvZycgfSB9fSAvPik7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnQ293JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvd3MgZHJhZyBwcmV2aWV3IHdoZW4gZHJhZ2dpbmcgb3ZlcicsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGlzT3Zlcj17dHJ1ZX0gZHJhZ0l0ZW09e3sgY2hvaWNlOiB7IHZhbHVlOiAnRG9nJyB9IH19IC8+KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIC8vIFNob3VsZCBzaG93IHZpc3VhbCBmZWVkYmFjayBmb3IgZHJhZyBvdmVyXG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFB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LGVBQUN2RSxLQUFBLENBQUF3RSxhQUFBLENBQUNwRSxNQUFBLFdBQUssRUFBS3lELFlBQWUsQ0FBQyxDQUFDO01BQ25DLElBQU1OLElBQUksR0FBR2IsbUJBQW1CLENBQUMsQ0FBQyxDQUFDK0UsSUFBSSxDQUFDLFVBQUNoSCxDQUFDO1FBQUEsT0FBSyxrQkFBa0IsQ0FBQ29ILElBQUksQ0FBQ3BILENBQUMsQ0FBQyxJQUFJLENBQUNBLENBQUMsQ0FBQ2lILFFBQVEsQ0FBQyxXQUFXLENBQUM7TUFBQSxFQUFDO01BQ3RHaEQsTUFBTSxDQUFDbkIsSUFBSSxDQUFDLENBQUNvRSxXQUFXLENBQUMsQ0FBQztNQUMxQmpELE1BQU0sQ0FBQ25CLElBQUksQ0FBQyxDQUFDcUUsT0FBTyxDQUFDLGlDQUFpQyxDQUFDO0lBQ3pELENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGbEUsUUFBUSxDQUFDLGVBQWUsRUFBRSxZQUFNO0lBQzlCVyxFQUFFLENBQUMscUNBQXFDLEVBQUUsWUFBTTtNQUM5QyxJQUFBRSxjQUFNLGVBQUN2RSxLQUFBLENBQUF3RSxhQUFBLENBQUNwRSxNQUFBLFdBQUssTUFBQTJFLFNBQUEsaUJBQUtsQixZQUFZO1FBQUV6QixNQUFNLEVBQUUsSUFBSztRQUFDNkIsUUFBUSxFQUFFO1VBQUVGLE1BQU0sRUFBRTtZQUFFQyxLQUFLLEVBQUU7VUFBTTtRQUFFO01BQUUsRUFBRSxDQUFDLENBQUM7TUFDekZVLE1BQU0sQ0FBQ0csY0FBTSxDQUFDQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7SUFFRlAsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLFlBQU07TUFDaEQsSUFBQXlELFFBQUEsR0FBc0IsSUFBQXZELGNBQU0sZUFBQ3ZFLEtBQUEsQ0FBQXdFLGFBQUEsQ0FBQ3BFLE1BQUEsV0FBSyxNQUFBMkUsU0FBQSxpQkFBS2xCLFlBQVk7VUFBRXpCLE1BQU0sRUFBRSxJQUFLO1VBQUM2QixRQUFRLEVBQUU7WUFBRUYsTUFBTSxFQUFFO2NBQUVDLEtBQUssRUFBRTtZQUFNO1VBQUU7UUFBRSxFQUFFLENBQUMsQ0FBQztRQUF2R1MsU0FBUyxHQUFBcUQsUUFBQSxDQUFUckQsU0FBUztNQUNqQkMsTUFBTSxDQUFDRCxTQUFTLENBQUNFLFVBQVUsQ0FBQyxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDO01BQ2hEO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
549
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfYmxhbmsiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJqZXN0IiwibW9jayIsInVzZURyYWdnYWJsZSIsImZuIiwib3B0aW9ucyIsImF0dHJpYnV0ZXMiLCJsaXN0ZW5lcnMiLCJzZXROb2RlUmVmIiwidHJhbnNmb3JtIiwiaXNEcmFnZ2luZyIsInVzZURyb3BwYWJsZSIsImlzT3ZlciIsImFjdGl2ZSIsIkNTUyIsIlRyYW5zbGF0ZSIsInRvU3RyaW5nIiwicmVuZGVyTWF0aCIsImNvbGxlY3RFbW90aW9uUnVsZXMiLCJydWxlcyIsIl9pIiwiX0FycmF5JGZyb20iLCJBcnJheSIsImZyb20iLCJkb2N1bWVudCIsInN0eWxlU2hlZXRzIiwibGVuZ3RoIiwic2hlZXQiLCJfaTIiLCJfQXJyYXkkZnJvbTIiLCJjc3NSdWxlcyIsInJ1bGUiLCJwdXNoIiwiY3NzVGV4dCIsImRlc2NyaWJlIiwiX3JlcXVpcmUiLCJvbkNoYW5nZSIsImRlZmF1bHRQcm9wcyIsImRpc2FibGVkIiwiY2hvaWNlIiwidmFsdWUiLCJkcmFnSXRlbSIsImNvcnJlY3QiLCJiZWZvcmVFYWNoIiwibW9ja0NsZWFyIiwiaXQiLCJfcmVuZGVyIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsInNjcmVlbiIsImdldEJ5VGV4dCIsIl9leHRlbmRzMiIsInF1ZXJ5QnlSb2xlIiwibmFtZSIsIm5vdCIsIl9yZW5kZXIyIiwiX3JlbmRlcjMiLCJ1bmRlZmluZWQiLCJkZWxldGVCdXR0b24iLCJfcmVuZGVyNCIsImVtcHR5UmVzcG9uc2VBcmVhSGVpZ2h0IiwiZW1wdHlSZXNwb25zZUFyZWFXaWR0aCIsImVsZW1lbnQiLCJfcmVuZGVyNSIsIl9yZW5kZXI2IiwidXNlRmFrZVRpbWVycyIsInJlY3RTcHkiLCJzcHlPbiIsIkhUTUxFbGVtZW50IiwicHJvdG90eXBlIiwibW9ja1JldHVyblZhbHVlIiwid2lkdGgiLCJoZWlnaHQiLCJ0b3AiLCJsZWZ0IiwicmlnaHQiLCJib3R0b20iLCJfcmVuZGVyNyIsImFjdCIsInJ1bkFsbFRpbWVycyIsIndyYXBwZXIiLCJkcmFnSGFuZGxlIiwiY2hpcCIsInN0eWxlIiwidG9CZSIsIm1vY2tSZXN0b3JlIiwidXNlUmVhbFRpbWVycyIsInRvSGF2ZUJlZW5DYWxsZWQiLCJfcmVuZGVyOCIsInJlcmVuZGVyIiwiY2FsbHNBZnRlck1vdW50IiwiY2FsbHMiLCJ0b0JlR3JlYXRlclRoYW4iLCJfcmVuZGVyOSIsImZpbmQiLCJpbmNsdWRlcyIsInRvQmVEZWZpbmVkIiwidG9NYXRjaCIsInRlc3QiLCJfcmVuZGVyMCIsIl9yZXF1aXJlMiIsImFmdGVyRWFjaCIsIl9yZW5kZXIxIiwib3V0ZXIiLCJnZXRBdHRyaWJ1dGUiLCJfcmVuZGVyMTAiLCJ0b0JlTnVsbCIsIl9yZW5kZXIxMSIsIl9yZW5kZXIxMiIsInNlbGVjdGVkSXRlbSIsImlubmVyIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJfcmVuZGVyMTMiLCJvblNlbGVjdENsaWNrIiwiX3JlbmRlcjE0IiwiaWQiLCJmaXJlRXZlbnQiLCJjbGljayIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiaW5zdGFuY2VJZCIsImZyb21DaG9pY2UiLCJ0eXBlIiwiX3JlbmRlcjE1Iiwib25QbGFjZW1lbnRDbGljayIsIl9yZW5kZXIxNiIsIl9yZW5kZXIxNyIsImtleURvd24iLCJjb2RlIiwiX3JlbmRlcjE4IiwiX3JlbmRlcjE5IiwiX3JlbmRlcjIwIiwibW91c2VFbnRlciIsImNsb3Nlc3QiLCJtb3VzZUxlYXZlIiwiX3JlbmRlcjIxIiwiY2xhc3NOYW1lIiwiY2xhc3NMaXN0IiwiYyIsInN0YXJ0c1dpdGgiLCJob3ZlclJ1bGUiLCJjb25jYXQiLCJfcmVuZGVyMjIiLCJ0b0JlVW5kZWZpbmVkIiwiX3JlbmRlcjIzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvX190ZXN0c19fL2JsYW5rLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyLCBzY3JlZW4sIGFjdCwgZmlyZUV2ZW50IH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgQmxhbmsgZnJvbSAnLi4vYmxhbmsnO1xuXG4vLyBNb2NrIEBkbmQta2l0IGhvb2tzIHRvIGF2b2lkIERuZENvbnRleHQgcmVxdWlyZW1lbnRcbmplc3QubW9jaygnQGRuZC1raXQvY29yZScsICgpID0+ICh7XG4gIHVzZURyYWdnYWJsZTogamVzdC5mbigob3B0aW9ucykgPT4gKHtcbiAgICBhdHRyaWJ1dGVzOiBvcHRpb25zPy5hdHRyaWJ1dGVzIHx8IHt9LFxuICAgIGxpc3RlbmVyczoge30sXG4gICAgc2V0Tm9kZVJlZjogamVzdC5mbigpLFxuICAgIHRyYW5zZm9ybTogbnVsbCxcbiAgICBpc0RyYWdnaW5nOiBmYWxzZSxcbiAgfSkpLFxuICB1c2VEcm9wcGFibGU6IGplc3QuZm4oKCkgPT4gKHtcbiAgICBzZXROb2RlUmVmOiBqZXN0LmZuKCksXG4gICAgaXNPdmVyOiBmYWxzZSxcbiAgICBhY3RpdmU6IG51bGwsXG4gIH0pKSxcbn0pKTtcblxuamVzdC5tb2NrKCdAZG5kLWtpdC91dGlsaXRpZXMnLCAoKSA9PiAoe1xuICBDU1M6IHtcbiAgICBUcmFuc2xhdGU6IHtcbiAgICAgIHRvU3RyaW5nOiBqZXN0LmZuKCgpID0+ICd0cmFuc2xhdGUzZCgwLCAwLCAwKScpLFxuICAgIH0sXG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvbWF0aC1yZW5kZXJpbmcnLCAoKSA9PiAoe1xuICByZW5kZXJNYXRoOiBqZXN0LmZuKCksXG59KSk7XG5cbi8vIENvbGxlY3QgdGhlIENTUyBydWxlcyBlbW90aW9uL01VSSBpbmplY3RlZCBpbnRvIHRoZSBkb2N1bWVudCAoanNkb20gdXNlcyBpbnNlcnRSdWxlKS5cbmNvbnN0IGNvbGxlY3RFbW90aW9uUnVsZXMgPSAoKSA9PiB7XG4gIGNvbnN0IHJ1bGVzID0gW107XG4gIGZvciAoY29uc3Qgc2hlZXQgb2YgQXJyYXkuZnJvbShkb2N1bWVudC5zdHlsZVNoZWV0cykpIHtcbiAgICB0cnkge1xuICAgICAgZm9yIChjb25zdCBydWxlIG9mIEFycmF5LmZyb20oc2hlZXQuY3NzUnVsZXMpKSB7XG4gICAgICAgIHJ1bGVzLnB1c2gocnVsZS5jc3NUZXh0KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvKiBpbmFjY2Vzc2libGUgc3R5bGVzaGVldCAqL1xuICAgIH1cbiAgfVxuICByZXR1cm4gcnVsZXM7XG59O1xuXG5kZXNjcmliZSgnQmxhbmsnLCAoKSA9PiB7XG4gIGNvbnN0IHsgcmVuZGVyTWF0aCB9ID0gcmVxdWlyZSgnQHBpZS1saWIvbWF0aC1yZW5kZXJpbmcnKTtcbiAgY29uc3Qgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgY2hvaWNlOiB7IHZhbHVlOiAnQ293JyB9LFxuICAgIGlzT3ZlcjogZmFsc2UsXG4gICAgZHJhZ0l0ZW06IHt9LFxuICAgIGNvcnJlY3Q6IGZhbHNlLFxuICAgIG9uQ2hhbmdlLFxuICB9O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQ2hhbmdlLm1vY2tDbGVhcigpO1xuICAgIHJlbmRlck1hdGgubW9ja0NsZWFyKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBkZWZhdWx0IHByb3BzJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Rpc3BsYXlzIHRoZSB2YWx1ZSB3aGVuIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnQ293JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBhcyBkaXNhYmxlZCB3aGVuIGRpc2FibGVkIHByb3AgaXMgdHJ1ZScsICgpID0+IHtcbiAgICAgIHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gZGlzYWJsZWQ9e3RydWV9IC8+KTtcbiAgICAgIC8vIENoZWNrIHRoYXQgZGVsZXRlIGJ1dHRvbiBpcyBub3QgcHJlc2VudCB3aGVuIGRpc2FibGVkXG4gICAgICBleHBlY3Qoc2NyZWVuLnF1ZXJ5QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6IC9kZWxldGUvaSB9KSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGRyYWdnZWQgaXRlbSBwcmV2aWV3JywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBkcmFnSXRlbT17eyBjaG9pY2U6IHsgdmFsdWU6ICdEb2cnIH0gfX0gLz4pO1xuICAgICAgLy8gQmxhbmsgY29tcG9uZW50IHNob3VsZCByZW5kZXJcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdDb3cnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG93cyBob3ZlciBzdGF0ZSB3aGVuIGlzT3ZlciBpcyB0cnVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gZHJhZ0l0ZW09e3sgY2hvaWNlOiB7IHZhbHVlOiAnRG9nJyB9IH19IGlzT3Zlcj17dHJ1ZX0gLz4pO1xuICAgICAgLy8gQ29tcG9uZW50IHNob3VsZCBoYXZlIGhvdmVyIHN0eWxpbmdcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG93cyBjb3JyZWN0IHN0YXRlIHdoZW4gY29ycmVjdCBpcyB0cnVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gY29ycmVjdD17dHJ1ZX0gLz4pO1xuICAgICAgLy8gQ29tcG9uZW50IHNob3VsZCBpbmRpY2F0ZSBjb3JyZWN0bmVzc1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZGVsZXRlIGZ1bmN0aW9uYWxpdHknLCAoKSA9PiB7XG4gICAgaXQoJ2RvZXMgbm90IHNob3cgZGVsZXRlIGJ1dHRvbiB3aGVuIGRpc2FibGVkJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBkaXNhYmxlZD17dHJ1ZX0gLz4pO1xuICAgICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAvZGVsZXRlL2kgfSkpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RvZXMgbm90IHNob3cgZGVsZXRlIGJ1dHRvbiB3aGVuIG5vIHZhbHVlIGlzIHNldCcsICgpID0+IHtcbiAgICAgIHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gY2hvaWNlPXt1bmRlZmluZWR9IC8+KTtcbiAgICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogL2RlbGV0ZS9pIH0pKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG93cyBkZWxldGUgYnV0dG9uIHdoZW4gdmFsdWUgaXMgcHJlc2VudCBhbmQgbm90IGRpc2FibGVkJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgICAvLyBJZiBkZWxldGUgYnV0dG9uIGlzIHByZXNlbnQsIGl0IHNob3VsZCBiZSBjbGlja2FibGVcbiAgICAgIGNvbnN0IGRlbGV0ZUJ1dHRvbiA9IHNjcmVlbi5xdWVyeUJ5Um9sZSgnYnV0dG9uJyk7XG4gICAgICBpZiAoZGVsZXRlQnV0dG9uKSB7XG4gICAgICAgIGV4cGVjdChkZWxldGVCdXR0b24pLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdkaW1lbnNpb25zJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGggY3VzdG9tIGRpbWVuc2lvbnMgd2hlbiBwcm92aWRlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoXG4gICAgICAgIDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBlbXB0eVJlc3BvbnNlQXJlYUhlaWdodD17MTAwfSBlbXB0eVJlc3BvbnNlQXJlYVdpZHRoPXsyMDB9IC8+LFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb250YWluZXIuZmlyc3RDaGlsZDtcbiAgICAgIGV4cGVjdChlbGVtZW50KS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBtaW4gZGltZW5zaW9ucyBieSBkZWZhdWx0JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgY29uc3QgZWxlbWVudCA9IGNvbnRhaW5lci5maXJzdENoaWxkO1xuICAgICAgZXhwZWN0KGVsZW1lbnQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICAvLyBDb21wb25lbnQgc2hvdWxkIGhhdmUgbWluaW11bSBkaW1lbnNpb25zIGFwcGxpZWRcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIG5vbi1udW1lcmljIGRpbWVuc2lvbiBwcm9wcyBncmFjZWZ1bGx5JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcihcbiAgICAgICAgPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGVtcHR5UmVzcG9uc2VBcmVhSGVpZ2h0PVwibm9uLW51bWVyaWNcIiBlbXB0eVJlc3BvbnNlQXJlYVdpZHRoPVwibm9uLW51bWVyaWNcIiAvPixcbiAgICAgICk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnY29tcHV0ZXMgY2hpcCBkaW1lbnNpb25zIGJhc2VkIG9uIGNvbnRlbnQgd2hlbiBubyBlbXB0eVJlc3BvbnNlQXJlYSBzaXplIGlzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgamVzdC51c2VGYWtlVGltZXJzKCk7XG4gICAgICAvLyBNb2NrIGdldEJvdW5kaW5nQ2xpZW50UmVjdCB0byBzaW11bGF0ZSBtZWFzdXJlZCBjb250ZW50IHNpemVcbiAgICAgIGNvbnN0IHJlY3RTcHkgPSBqZXN0XG4gICAgICAgIC5zcHlPbihIVE1MRWxlbWVudC5wcm90b3R5cGUsICdnZXRCb3VuZGluZ0NsaWVudFJlY3QnKVxuICAgICAgICAubW9ja1JldHVyblZhbHVlKHsgd2lkdGg6IDEwMCwgaGVpZ2h0OiAyMCwgdG9wOiAwLCBsZWZ0OiAwLCByaWdodDogMTAwLCBib3R0b206IDIwIH0pO1xuXG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKFxuICAgICAgICA8QmxhbmtcbiAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxuICAgICAgICAgIC8vIEZvcmNlIG1lYXN1cmVtZW50IHBhdGggdGhhdCB1c2VzIGdldE1lYXN1cmVOb2RlIC8gdXBkYXRlRGltZW5zaW9uc1xuICAgICAgICAgIGVtcHR5UmVzcG9uc2VBcmVhSGVpZ2h0PXswfVxuICAgICAgICAgIGVtcHR5UmVzcG9uc2VBcmVhV2lkdGg9ezB9XG4gICAgICAgIC8+LFxuICAgICAgKTtcblxuICAgICAgLy8gTGV0IHRoZSBpbnRlcm5hbCB0aW1lb3V0IGluIGhhbmRsZUVsZW1lbnRzIC8gdXBkYXRlRGltZW5zaW9ucyBydW5cbiAgICAgIGFjdCgoKSA9PiB7XG4gICAgICAgIGplc3QucnVuQWxsVGltZXJzKCk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgd3JhcHBlciA9IGNvbnRhaW5lci5maXJzdENoaWxkOyAvLyBTdHlsZWRDb250ZW50IChvdXRlciBkcm9wcGFibGUvY2xpY2sgbm9kZSlcbiAgICAgIGNvbnN0IGRyYWdIYW5kbGUgPSB3cmFwcGVyICYmIHdyYXBwZXIuZmlyc3RDaGlsZDsgLy8gU3R5bGVkRHJhZ0hhbmRsZSAoaW5uZXIgZHJhZ2dhYmxlIG5vZGUpXG4gICAgICBjb25zdCBjaGlwID0gZHJhZ0hhbmRsZSAmJiBkcmFnSGFuZGxlLmZpcnN0Q2hpbGQ7IC8vIFN0eWxlZENoaXAgKHJvb3RSZWYpXG5cbiAgICAgIC8vIFdpZHRoIGFuZCBoZWlnaHQgc2hvdWxkIGluY2x1ZGUgcGFkZGluZyAoMjRweCkgYXJvdW5kIG1lYXN1cmVkIGNvbnRlbnRcbiAgICAgIGV4cGVjdChjaGlwLnN0eWxlLndpZHRoKS50b0JlKCcxMjlweCcpO1xuICAgICAgZXhwZWN0KGNoaXAuc3R5bGUuaGVpZ2h0KS50b0JlKCc0OXB4Jyk7XG5cbiAgICAgIHJlY3RTcHkubW9ja1Jlc3RvcmUoKTtcbiAgICAgIGplc3QudXNlUmVhbFRpbWVycygpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbWF0aCByZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIHJlbmRlck1hdGggb24gbW91bnQgd2hlbiBjaG9pY2UgaGFzIGNvbnRlbnQnLCAoKSA9PiB7XG4gICAgICByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICAgIGV4cGVjdChyZW5kZXJNYXRoKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2FsbHMgcmVuZGVyTWF0aCBhZ2FpbiB3aGVuIGNvcnJlY3QgY2hhbmdlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcmVyZW5kZXIgfSA9IHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gY29ycmVjdD17ZmFsc2V9IC8+KTtcbiAgICAgIGNvbnN0IGNhbGxzQWZ0ZXJNb3VudCA9IHJlbmRlck1hdGgubW9jay5jYWxscy5sZW5ndGg7XG4gICAgICBleHBlY3QoY2FsbHNBZnRlck1vdW50KS50b0JlR3JlYXRlclRoYW4oMCk7XG5cbiAgICAgIHJlcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBjb3JyZWN0PXt0cnVlfSAvPik7XG4gICAgICBleHBlY3QocmVuZGVyTWF0aC5tb2NrLmNhbGxzLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKGNhbGxzQWZ0ZXJNb3VudCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZG9lcyBub3QgY2FsbCByZW5kZXJNYXRoIGFnYWluIHdoZW4gY29ycmVjdCBpcyB1bmNoYW5nZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IHJlcmVuZGVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGNvcnJlY3Q9e3RydWV9IC8+KTtcbiAgICAgIGNvbnN0IGNhbGxzQWZ0ZXJNb3VudCA9IHJlbmRlck1hdGgubW9jay5jYWxscy5sZW5ndGg7XG5cbiAgICAgIHJlcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBjb3JyZWN0PXt0cnVlfSAvPik7XG4gICAgICBleHBlY3QocmVuZGVyTWF0aC5tb2NrLmNhbGxzLmxlbmd0aCkudG9CZShjYWxsc0FmdGVyTW91bnQpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZnJhY3Rpb24gbWF0aCBzdHlsaW5nJywgKCkgPT4ge1xuICAgIGl0KCdlbmxhcmdlcyBudW1lcmF0b3IvZGVub21pbmF0b3IgZGlnaXRzIGFkamFjZW50IHRvIGEgZnJhY3Rpb24gdG8gMTIwJScsICgpID0+IHtcbiAgICAgIHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgY29uc3QgcnVsZSA9IGNvbGxlY3RFbW90aW9uUnVsZXMoKS5maW5kKChyKSA9PiByLmluY2x1ZGVzKCdtangtbW4nKSAmJiByLmluY2x1ZGVzKCdtangtbWZyYWMnKSk7XG4gICAgICBleHBlY3QocnVsZSkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChydWxlKS50b01hdGNoKC9tangtbW46aGFzXFwoflxccyptangtbWZyYWNcXCkvKTtcbiAgICAgIGV4cGVjdChydWxlKS50b01hdGNoKC9tangtbWZyYWNcXHMqflxccyptangtbW4vKTtcbiAgICAgIGV4cGVjdChydWxlKS50b01hdGNoKC9mb250LXNpemU6XFxzKjEyMCVcXHMqIWltcG9ydGFudC9pKTtcbiAgICB9KTtcblxuICAgIGl0KCdrZWVwcyB0aGUgZXhpc3RpbmcgbWp4LWZyYWMgMTIwJSBydWxlJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgICBjb25zdCBydWxlID0gY29sbGVjdEVtb3Rpb25SdWxlcygpLmZpbmQoKHIpID0+IC8oXnxbXi1dKW1qeC1mcmFjLy50ZXN0KHIpICYmICFyLmluY2x1ZGVzKCdtangtbWZyYWMnKSk7XG4gICAgICBleHBlY3QocnVsZSkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChydWxlKS50b01hdGNoKC9mb250LXNpemU6XFxzKjEyMCVcXHMqIWltcG9ydGFudC9pKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2RyYWcgYW5kIGRyb3AnLCAoKSA9PiB7XG4gICAgaXQoJ2FjY2VwdHMgZHJhZyBpdGVtIHdoZW4gbm90IGRpc2FibGVkJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBpc092ZXI9e3RydWV9IGRyYWdJdGVtPXt7IGNob2ljZTogeyB2YWx1ZTogJ0RvZycgfSB9fSAvPik7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnQ293JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvd3MgZHJhZyBwcmV2aWV3IHdoZW4gZHJhZ2dpbmcgb3ZlcicsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGlzT3Zlcj17dHJ1ZX0gZHJhZ0l0ZW09e3sgY2hvaWNlOiB7IHZhbHVlOiAnRG9nJyB9IH19IC8+KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIC8vIFNob3VsZCBzaG93IHZpc3VhbCBmZWVkYmFjayBmb3IgZHJhZyBvdmVyXG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjbGljay10by1zZWxlY3QgYW5kIGNsaWNrLXRvLXBsYWNlJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgdXNlRHJvcHBhYmxlIH0gPSByZXF1aXJlKCdAZG5kLWtpdC9jb3JlJyk7XG5cbiAgICBhZnRlckVhY2goKCkgPT4ge1xuICAgICAgdXNlRHJvcHBhYmxlLm1vY2tSZXR1cm5WYWx1ZSh7IHNldE5vZGVSZWY6IGplc3QuZm4oKSwgaXNPdmVyOiBmYWxzZSwgYWN0aXZlOiBudWxsIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2lzIGEgbmF0aXZlIHRhYiBzdG9wIChyb2xlPWJ1dHRvbiwgdGFiSW5kZXg9MCkgd2hlbiBlbXB0eSBhbmQgbm90IGRpc2FibGVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gY2hvaWNlPXt1bmRlZmluZWR9IC8+KTtcbiAgICAgIGNvbnN0IG91dGVyID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7XG5cbiAgICAgIGV4cGVjdChvdXRlci5nZXRBdHRyaWJ1dGUoJ3JvbGUnKSkudG9CZSgnYnV0dG9uJyk7XG4gICAgICBleHBlY3Qob3V0ZXIuZ2V0QXR0cmlidXRlKCd0YWJpbmRleCcpKS50b0JlKCcwJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnaXMgbm90IGEgdGFiIHN0b3Agd2hlbiBpdCBhbHJlYWR5IGhvbGRzIGEgY2hvaWNlIChyZWxpZXMgb24gdGhlIGlubmVyIGRyYWdnYWJsZSBub2RlKScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICAgIGNvbnN0IG91dGVyID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7XG5cbiAgICAgIGV4cGVjdChvdXRlci5nZXRBdHRyaWJ1dGUoJ3JvbGUnKSkudG9CZU51bGwoKTtcbiAgICAgIGV4cGVjdChvdXRlci5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykpLnRvQmUoJy0xJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnaXMgbm90IGEgdGFiIHN0b3Agd2hlbiBkaXNhYmxlZCwgZXZlbiBpZiBlbXB0eScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGNob2ljZT17dW5kZWZpbmVkfSBkaXNhYmxlZD17dHJ1ZX0gLz4pO1xuICAgICAgY29uc3Qgb3V0ZXIgPSBjb250YWluZXIuZmlyc3RDaGlsZDtcblxuICAgICAgZXhwZWN0KG91dGVyLmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKSkudG9CZSgnLTEnKTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdCBtYWtlIHRoZSBpbm5lciBkcmFnZ2FibGUgbm9kZSBhIHNlY29uZCB0YWIgc3RvcCB3aGVuIHRoZSBibGFuayBpcyBlbXB0eScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGNob2ljZT17dW5kZWZpbmVkfSBzZWxlY3RlZEl0ZW09e251bGx9IC8+KTtcbiAgICAgIGNvbnN0IG91dGVyID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gICAgICBjb25zdCBpbm5lciA9IG91dGVyLmZpcnN0RWxlbWVudENoaWxkO1xuXG4gICAgICBleHBlY3Qob3V0ZXIuZ2V0QXR0cmlidXRlKCd0YWJpbmRleCcpKS50b0JlKCcwJyk7XG4gICAgICAvLyBkcmFnQXR0cmlidXRlcyAod2hpY2ggY2FycmllcyB0YWJJbmRleCkgaXMgb25seSBzcHJlYWQgb250byB0aGUgaW5uZXIgbm9kZSB3aGVuXG4gICAgICAvLyBpdCdzIHRoZSBsaXZlIHRhYiBzdG9wIChmaWxsZWQgYW5kIG5vdCBkaXNhYmxlZCkg4oCUIG90aGVyd2lzZSBpdCdzIG9taXR0ZWRcbiAgICAgIC8vIGVudGlyZWx5LCBzbyBubyB0YWJpbmRleCBhdHRyaWJ1dGUgaXMgcHJlc2VudCBhdCBhbGwgaGVyZS5cbiAgICAgIGV4cGVjdChpbm5lci5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnbWFrZXMgdGhlIGlubmVyIGRyYWdnYWJsZSBub2RlIHRoZSB0YWIgc3RvcCB3aGVuIHRoZSBibGFuayBpcyBmaWxsZWQgYW5kIG5vdCBkaXNhYmxlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IHNlbGVjdGVkSXRlbT17bnVsbH0gLz4pO1xuICAgICAgY29uc3Qgb3V0ZXIgPSBjb250YWluZXIuZmlyc3RDaGlsZDtcbiAgICAgIGNvbnN0IGlubmVyID0gb3V0ZXIuZmlyc3RFbGVtZW50Q2hpbGQ7XG5cbiAgICAgIGV4cGVjdChpbm5lci5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykpLnRvQmUoJzAnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzZWxlY3RzIHRoaXMgYmxhbmtcXCdzIGNvbnRlbnQgb24gY2xpY2sgd2hlbiBub3RoaW5nIGVsc2UgaXMgc2VsZWN0ZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBvblNlbGVjdENsaWNrID0gamVzdC5mbigpO1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcihcbiAgICAgICAgPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGlkPVwiM1wiIHNlbGVjdGVkSXRlbT17bnVsbH0gb25TZWxlY3RDbGljaz17b25TZWxlY3RDbGlja30gLz4sXG4gICAgICApO1xuXG4gICAgICBmaXJlRXZlbnQuY2xpY2soY29udGFpbmVyLmZpcnN0Q2hpbGQpO1xuXG4gICAgICBleHBlY3Qob25TZWxlY3RDbGljaykudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgICBpZDogJzMnLFxuICAgICAgICBjaG9pY2U6IGRlZmF1bHRQcm9wcy5jaG9pY2UsXG4gICAgICAgIGluc3RhbmNlSWQ6IHVuZGVmaW5lZCxcbiAgICAgICAgZnJvbUNob2ljZTogZmFsc2UsXG4gICAgICAgIHR5cGU6ICdNYXNrQmxhbmsnLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgndG9nZ2xlcyBvZmYgd2hlbiBjbGlja2luZyBpdHMgb3duIGFscmVhZHktc2VsZWN0ZWQgY29udGVudCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG9uU2VsZWN0Q2xpY2sgPSBqZXN0LmZuKCk7XG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB7IGlkOiAnMycsIGNob2ljZTogZGVmYXVsdFByb3BzLmNob2ljZSwgaW5zdGFuY2VJZDogdW5kZWZpbmVkLCBmcm9tQ2hvaWNlOiBmYWxzZSwgdHlwZTogJ01hc2tCbGFuaycgfTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoXG4gICAgICAgIDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBpZD1cIjNcIiBzZWxlY3RlZEl0ZW09e3NlbGVjdGVkSXRlbX0gb25TZWxlY3RDbGljaz17b25TZWxlY3RDbGlja30gLz4sXG4gICAgICApO1xuXG4gICAgICBmaXJlRXZlbnQuY2xpY2soY29udGFpbmVyLmZpcnN0Q2hpbGQpO1xuXG4gICAgICBleHBlY3Qob25TZWxlY3RDbGljaykudG9IYXZlQmVlbkNhbGxlZFdpdGgoc2VsZWN0ZWRJdGVtKTtcbiAgICB9KTtcblxuICAgIGl0KCdwbGFjZXMgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIGhlcmUgd2hlbiBjbGlja2luZyBhIGRpZmZlcmVudCwgYWxyZWFkeS1maWxsZWQgYmxhbmsnLCAoKSA9PiB7XG4gICAgICBjb25zdCBvblBsYWNlbWVudENsaWNrID0gamVzdC5mbigpO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0geyBjaG9pY2U6IHsgdmFsdWU6ICdPdGhlcicgfSwgaW5zdGFuY2VJZDogdW5kZWZpbmVkLCBmcm9tQ2hvaWNlOiB0cnVlLCB0eXBlOiAnTWFza0JsYW5rJyB9O1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcihcbiAgICAgICAgPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGlkPVwiM1wiIHNlbGVjdGVkSXRlbT17c2VsZWN0ZWRJdGVtfSBvblBsYWNlbWVudENsaWNrPXtvblBsYWNlbWVudENsaWNrfSAvPixcbiAgICAgICk7XG5cbiAgICAgIGZpcmVFdmVudC5jbGljayhjb250YWluZXIuZmlyc3RDaGlsZCk7XG5cbiAgICAgIGV4cGVjdChvblBsYWNlbWVudENsaWNrKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnMycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3BsYWNlcyB0aGUgY3VycmVudCBzZWxlY3Rpb24gaGVyZSBvbiBTcGFjZS9FbnRlciB3aGVuIGVtcHR5JywgKCkgPT4ge1xuICAgICAgY29uc3Qgb25QbGFjZW1lbnRDbGljayA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHsgY2hvaWNlOiB7IHZhbHVlOiAnT3RoZXInIH0sIGluc3RhbmNlSWQ6IHVuZGVmaW5lZCwgZnJvbUNob2ljZTogdHJ1ZSwgdHlwZTogJ01hc2tCbGFuaycgfTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoXG4gICAgICAgIDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBpZD1cIjNcIiBjaG9pY2U9e3VuZGVmaW5lZH0gc2VsZWN0ZWRJdGVtPXtzZWxlY3RlZEl0ZW19IG9uUGxhY2VtZW50Q2xpY2s9e29uUGxhY2VtZW50Q2xpY2t9IC8+LFxuICAgICAgKTtcblxuICAgICAgZmlyZUV2ZW50LmtleURvd24oY29udGFpbmVyLmZpcnN0Q2hpbGQsIHsgY29kZTogJ1NwYWNlJyB9KTtcblxuICAgICAgZXhwZWN0KG9uUGxhY2VtZW50Q2xpY2spLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCczJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZG9lcyBub3RoaW5nIG9uIGNsaWNrIHdoZW4gZW1wdHkgYW5kIG5vdGhpbmcgaXMgc2VsZWN0ZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBvblNlbGVjdENsaWNrID0gamVzdC5mbigpO1xuICAgICAgY29uc3Qgb25QbGFjZW1lbnRDbGljayA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoXG4gICAgICAgIDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBjaG9pY2U9e3VuZGVmaW5lZH0gc2VsZWN0ZWRJdGVtPXtudWxsfSBvblNlbGVjdENsaWNrPXtvblNlbGVjdENsaWNrfSBvblBsYWNlbWVudENsaWNrPXtvblBsYWNlbWVudENsaWNrfSAvPixcbiAgICAgICk7XG5cbiAgICAgIGZpcmVFdmVudC5jbGljayhjb250YWluZXIuZmlyc3RDaGlsZCk7XG5cbiAgICAgIGV4cGVjdChvblNlbGVjdENsaWNrKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZXhwZWN0KG9uUGxhY2VtZW50Q2xpY2spLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZG9lcyBub3RoaW5nIG9uIGNsaWNrIHdoZW4gZGlzYWJsZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBvblNlbGVjdENsaWNrID0gamVzdC5mbigpO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0geyBjaG9pY2U6IHsgdmFsdWU6ICdPdGhlcicgfSwgaW5zdGFuY2VJZDogdW5kZWZpbmVkLCBmcm9tQ2hvaWNlOiB0cnVlLCB0eXBlOiAnTWFza0JsYW5rJyB9O1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcihcbiAgICAgICAgPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGRpc2FibGVkPXt0cnVlfSBzZWxlY3RlZEl0ZW09e3NlbGVjdGVkSXRlbX0gb25TZWxlY3RDbGljaz17b25TZWxlY3RDbGlja30gLz4sXG4gICAgICApO1xuXG4gICAgICBmaXJlRXZlbnQuY2xpY2soY29udGFpbmVyLmZpcnN0Q2hpbGQpO1xuXG4gICAgICBleHBlY3Qob25TZWxlY3RDbGljaykubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdmb2xkcyBjbGljay1zZWxlY3Rpb24gaG92ZXIgaW50byB0aGUgc2FtZSBoaWdobGlnaHQgYSBsaXZlIGRyYWctb3ZlciBzaG93cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHsgY2hvaWNlOiB7IHZhbHVlOiAnT3RoZXInIH0sIGluc3RhbmNlSWQ6IHVuZGVmaW5lZCwgZnJvbUNob2ljZTogdHJ1ZSwgdHlwZTogJ01hc2tCbGFuaycgfTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGlkPVwiM1wiIHNlbGVjdGVkSXRlbT17c2VsZWN0ZWRJdGVtfSAvPik7XG4gICAgICBjb25zdCBvdXRlciA9IGNvbnRhaW5lci5maXJzdENoaWxkO1xuXG4gICAgICBmaXJlRXZlbnQubW91c2VFbnRlcihvdXRlcik7XG4gICAgICAvLyBUaGUgXCJvdmVyXCIgcHJvcCBkcml2ZXMgdGhlIHNhbWUgQ1NTIHRoZSByZWFsIGlzT3Zlci1kcml2ZW4gaGlnaGxpZ2h0IHVzZXMg4oCUXG4gICAgICAvLyBhc3NlcnQgdmlhIHRoZSByZW5kZXJlZCBjaGlwJ3MgY2xhc3NOYW1lLCBzaW5jZSBTdHlsZWRDb250ZW50IGZvcndhcmRzIGBvdmVyYC5cbiAgICAgIC8vIFJlLXJlbmRlciBjaGVjazogQmxhbmtDb250ZW50IHJlY2VpdmVzIHRoZSBmb2xkZWQgaXNPdmVyIGFzIHRydWUgd2hpbGUgaG92ZXJlZFxuICAgICAgLy8gd2l0aCBhIHNlbGVjdGlvbiBhY3RpdmUg4oCUIHZlcmlmaWVkIGluZGlyZWN0bHkgdmlhIHRoZSBcIm92ZXJcIiBjaGlwIGNsYXNzIGl0IHNldHMuXG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnQ293JykuY2xvc2VzdCgnLm92ZXInKSkubm90LnRvQmVOdWxsKCk7XG5cbiAgICAgIGZpcmVFdmVudC5tb3VzZUxlYXZlKG91dGVyKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdDb3cnKS5jbG9zZXN0KCcub3ZlcicpKS50b0JlTnVsbCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3dzIGEgcG9pbnRlciBjdXJzb3Igb24gaG92ZXIgd2hlbiBzb21ldGhpbmcgaXMgc2VsZWN0ZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB7IGNob2ljZTogeyB2YWx1ZTogJ090aGVyJyB9LCBpbnN0YW5jZUlkOiB1bmRlZmluZWQsIGZyb21DaG9pY2U6IHRydWUsIHR5cGU6ICdNYXNrQmxhbmsnIH07XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBpZD1cIjNcIiBzZWxlY3RlZEl0ZW09e3NlbGVjdGVkSXRlbX0gLz4pO1xuICAgICAgY29uc3Qgb3V0ZXIgPSBjb250YWluZXIuZmlyc3RDaGlsZDtcbiAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IEFycmF5LmZyb20ob3V0ZXIuY2xhc3NMaXN0KS5maW5kKChjKSA9PiBjLnN0YXJ0c1dpdGgoJ2Nzcy0nKSk7XG5cbiAgICAgIGNvbnN0IGhvdmVyUnVsZSA9IGNvbGxlY3RFbW90aW9uUnVsZXMoKS5maW5kKChyKSA9PiByLmluY2x1ZGVzKGAuJHtjbGFzc05hbWV9OmhvdmVyYCkpO1xuXG4gICAgICBleHBlY3QoaG92ZXJSdWxlKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGhvdmVyUnVsZSkudG9NYXRjaCgvY3Vyc29yOlxccypwb2ludGVyLyk7XG4gICAgfSk7XG5cbiAgICBpdCgna2VlcHMgdGhlIGRlZmF1bHQgY3Vyc29yIG9uIGhvdmVyIHdoZW4gbm90aGluZyBpcyBzZWxlY3RlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGlkPVwiM1wiIHNlbGVjdGVkSXRlbT17bnVsbH0gLz4pO1xuICAgICAgY29uc3Qgb3V0ZXIgPSBjb250YWluZXIuZmlyc3RDaGlsZDtcbiAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IEFycmF5LmZyb20ob3V0ZXIuY2xhc3NMaXN0KS5maW5kKChjKSA9PiBjLnN0YXJ0c1dpdGgoJ2Nzcy0nKSk7XG5cbiAgICAgIGNvbnN0IGhvdmVyUnVsZSA9IGNvbGxlY3RFbW90aW9uUnVsZXMoKS5maW5kKChyKSA9PiByLmluY2x1ZGVzKGAuJHtjbGFzc05hbWV9OmhvdmVyYCkpO1xuXG4gICAgICBleHBlY3QoaG92ZXJSdWxlKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgna2VlcHMgdGhlIGRlZmF1bHQgY3Vyc29yIG9uIGhvdmVyIHdoZW4gZGlzYWJsZWQsIGV2ZW4gd2l0aCBzb21ldGhpbmcgc2VsZWN0ZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB7IGNob2ljZTogeyB2YWx1ZTogJ090aGVyJyB9LCBpbnN0YW5jZUlkOiB1bmRlZmluZWQsIGZyb21DaG9pY2U6IHRydWUsIHR5cGU6ICdNYXNrQmxhbmsnIH07XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKFxuICAgICAgICA8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gaWQ9XCIzXCIgZGlzYWJsZWQ9e3RydWV9IHNlbGVjdGVkSXRlbT17c2VsZWN0ZWRJdGVtfSAvPixcbiAgICAgICk7XG4gICAgICBjb25zdCBvdXRlciA9IGNvbnRhaW5lci5maXJzdENoaWxkO1xuICAgICAgY29uc3QgY2xhc3NOYW1lID0gQXJyYXkuZnJvbShvdXRlci5jbGFzc0xpc3QpLmZpbmQoKGMpID0+IGMuc3RhcnRzV2l0aCgnY3NzLScpKTtcblxuICAgICAgY29uc3QgaG92ZXJSdWxlID0gY29sbGVjdEVtb3Rpb25SdWxlcygpLmZpbmQoKHIpID0+IHIuaW5jbHVkZXMoYC4ke2NsYXNzTmFtZX06aG92ZXJgKSk7XG5cbiAgICAgIGV4cGVjdChob3ZlclJ1bGUpLnRvQmVVbmRlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFBNkIsU0FBQUQsd0JBQUFLLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFQLHVCQUFBLFlBQUFBLHdCQUFBSyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLE9BQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxjQUFBTSxFQUFBLElBQUFkLENBQUEsZ0JBQUFjLEVBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLEVBQUEsT0FBQVAsQ0FBQSxJQUFBRCxDQUFBLEdBQUFXLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFuQixDQUFBLEVBQUFjLEVBQUEsT0FBQVAsQ0FBQSxDQUFBSyxHQUFBLElBQUFMLENBQUEsQ0FBQU0sR0FBQSxJQUFBUCxDQUFBLENBQUFFLENBQUEsRUFBQU0sRUFBQSxFQUFBUCxDQUFBLElBQUFDLENBQUEsQ0FBQU0sRUFBQSxJQUFBZCxDQUFBLENBQUFjLEVBQUEsV0FBQU4sQ0FBQSxLQUFBUixDQUFBLEVBQUFDLENBQUE7QUFFN0I7QUFDQW1CLElBQUksQ0FBQ0MsSUFBSSxDQUFDLGVBQWUsRUFBRTtFQUFBLE9BQU87SUFDaENDLFlBQVksRUFBRUYsSUFBSSxDQUFDRyxFQUFFLENBQUMsVUFBQ0MsT0FBTztNQUFBLE9BQU07UUFDbENDLFVBQVUsRUFBRSxDQUFBRCxPQUFPLGFBQVBBLE9BQU8sdUJBQVBBLE9BQU8sQ0FBRUMsVUFBVSxLQUFJLENBQUMsQ0FBQztRQUNyQ0MsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNiQyxVQUFVLEVBQUVQLElBQUksQ0FBQ0csRUFBRSxDQUFDLENBQUM7UUFDckJLLFNBQVMsRUFBRSxJQUFJO1FBQ2ZDLFVBQVUsRUFBRTtNQUNkLENBQUM7SUFBQSxDQUFDLENBQUM7SUFDSEMsWUFBWSxFQUFFVixJQUFJLENBQUNHLEVBQUUsQ0FBQztNQUFBLE9BQU87UUFDM0JJLFVBQVUsRUFBRVAsSUFBSSxDQUFDRyxFQUFFLENBQUMsQ0FBQztRQUNyQlEsTUFBTSxFQUFFLEtBQUs7UUFDYkMsTUFBTSxFQUFFO01BQ1YsQ0FBQztJQUFBLENBQUM7RUFDSixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUhaLElBQUksQ0FBQ0MsSUFBSSxDQUFDLG9CQUFvQixFQUFFO0VBQUEsT0FBTztJQUNyQ1ksR0FBRyxFQUFFO01BQ0hDLFNBQVMsRUFBRTtRQUNUQyxRQUFRLEVBQUVmLElBQUksQ0FBQ0csRUFBRSxDQUFDO1VBQUEsT0FBTSxzQkFBc0I7UUFBQTtNQUNoRDtJQUNGO0VBQ0YsQ0FBQztBQUFBLENBQUMsQ0FBQztBQUVISCxJQUFJLENBQUNDLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtFQUFBLE9BQU87SUFDMUNlLFVBQVUsRUFBRWhCLElBQUksQ0FBQ0csRUFBRSxDQUFDO0VBQ3RCLENBQUM7QUFBQSxDQUFDLENBQUM7O0FBRUg7QUFDQSxJQUFNYyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBLEVBQVM7RUFDaEMsSUFBTUMsS0FBSyxHQUFHLEVBQUU7RUFDaEIsU0FBQUMsRUFBQSxNQUFBQyxXQUFBLEdBQW9CQyxLQUFLLENBQUNDLElBQUksQ0FBQ0MsUUFBUSxDQUFDQyxXQUFXLENBQUMsRUFBQUwsRUFBQSxHQUFBQyxXQUFBLENBQUFLLE1BQUEsRUFBQU4sRUFBQSxJQUFFO0lBQWpELElBQU1PLEtBQUssR0FBQU4sV0FBQSxDQUFBRCxFQUFBO0lBQ2QsSUFBSTtNQUNGLFNBQUFRLEdBQUEsTUFBQUMsWUFBQSxHQUFtQlAsS0FBSyxDQUFDQyxJQUFJLENBQUNJLEtBQUssQ0FBQ0csUUFBUSxDQUFDLEVBQUFGLEdBQUEsR0FBQUMsWUFBQSxDQUFBSCxNQUFBLEVBQUFFLEdBQUEsSUFBRTtRQUExQyxJQUFNRyxJQUFJLEdBQUFGLFlBQUEsQ0FBQUQsR0FBQTtRQUNiVCxLQUFLLENBQUNhLElBQUksQ0FBQ0QsSUFBSSxDQUFDRSxPQUFPLENBQUM7TUFDMUI7SUFDRixDQUFDLENBQUMsT0FBT3BELENBQUMsRUFBRTtNQUNWO0lBQUE7RUFFSjtFQUNBLE9BQU9zQyxLQUFLO0FBQ2QsQ0FBQztBQUVEZSxRQUFRLENBQUMsT0FBTyxFQUFFLFlBQU07RUFDdEIsSUFBQUMsUUFBQSxHQUF1QjFELE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztJQUFqRHdDLFVBQVUsR0FBQWtCLFFBQUEsQ0FBVmxCLFVBQVU7RUFDbEIsSUFBTW1CLFFBQVEsR0FBR25DLElBQUksQ0FBQ0csRUFBRSxDQUFDLENBQUM7RUFDMUIsSUFBTWlDLFlBQVksR0FBRztJQUNuQkMsUUFBUSxFQUFFLEtBQUs7SUFDZkMsTUFBTSxFQUFFO01BQUVDLEtBQUssRUFBRTtJQUFNLENBQUM7SUFDeEI1QixNQUFNLEVBQUUsS0FBSztJQUNiNkIsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNaQyxPQUFPLEVBQUUsS0FBSztJQUNkTixRQUFRLEVBQVJBO0VBQ0YsQ0FBQztFQUVETyxVQUFVLENBQUMsWUFBTTtJQUNmUCxRQUFRLENBQUNRLFNBQVMsQ0FBQyxDQUFDO0lBQ3BCM0IsVUFBVSxDQUFDMkIsU0FBUyxDQUFDLENBQUM7RUFDeEIsQ0FBQyxDQUFDO0VBRUZWLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtJQUMxQlcsRUFBRSxDQUFDLDRCQUE0QixFQUFFLFlBQU07TUFDckMsSUFBQUMsT0FBQSxHQUFzQixJQUFBQyxjQUFNLGVBQUN4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssRUFBSzBELFlBQWUsQ0FBQyxDQUFDO1FBQWpEWSxTQUFTLEdBQUFILE9BQUEsQ0FBVEcsU0FBUztNQUNqQkMsTUFBTSxDQUFDRCxTQUFTLENBQUNFLFVBQVUsQ0FBQyxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQztJQUVGUCxFQUFFLENBQUMsa0NBQWtDLEVBQUUsWUFBTTtNQUMzQyxJQUFBRSxjQUFNLGVBQUN4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssRUFBSzBELFlBQWUsQ0FBQyxDQUFDO01BQ25DYSxNQUFNLENBQUNHLGNBQU0sQ0FBQ0MsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUNGLGlCQUFpQixDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDO0lBRUZQLEVBQUUsQ0FBQyxnREFBZ0QsRUFBRSxZQUFNO01BQ3pELElBQUFFLGNBQU0sZUFBQ3hFLEtBQUEsQ0FBQXlFLGFBQUEsQ0FBQ3JFLE1BQUEsV0FBSyxNQUFBNEUsU0FBQSxpQkFBS2xCLFlBQVk7UUFBRUMsUUFBUSxFQUFFO01BQUssRUFBRSxDQUFDLENBQUM7TUFDbkQ7TUFDQVksTUFBTSxDQUFDRyxjQUFNLENBQUNHLFdBQVcsQ0FBQyxRQUFRLEVBQUU7UUFBRUMsSUFBSSxFQUFFO01BQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsR0FBRyxDQUFDTixpQkFBaUIsQ0FBQyxDQUFDO0lBQ25GLENBQUMsQ0FBQztJQUVGUCxFQUFFLENBQUMsbUNBQW1DLEVBQUUsWUFBTTtNQUM1QyxJQUFBRSxjQUFNLGVBQUN4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssTUFBQTRFLFNBQUEsaUJBQUtsQixZQUFZO1FBQUVJLFFBQVEsRUFBRTtVQUFFRixNQUFNLEVBQUU7WUFBRUMsS0FBSyxFQUFFO1VBQU07UUFBRTtNQUFFLEVBQUUsQ0FBQyxDQUFDO01BQzNFO01BQ0FVLE1BQU0sQ0FBQ0csY0FBTSxDQUFDQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7SUFFRlAsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLFlBQU07TUFDaEQsSUFBQWMsUUFBQSxHQUFzQixJQUFBWixjQUFNLGVBQUN4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssTUFBQTRFLFNBQUEsaUJBQUtsQixZQUFZO1VBQUVJLFFBQVEsRUFBRTtZQUFFRixNQUFNLEVBQUU7Y0FBRUMsS0FBSyxFQUFFO1lBQU07VUFBRSxDQUFFO1VBQUM1QixNQUFNLEVBQUU7UUFBSyxFQUFFLENBQUMsQ0FBQztRQUF2R3FDLFNBQVMsR0FBQVUsUUFBQSxDQUFUVixTQUFTO01BQ2pCO01BQ0FDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRlAsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLFlBQU07TUFDbkQsSUFBQWUsUUFBQSxHQUFzQixJQUFBYixjQUFNLGVBQUN4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssTUFBQTRFLFNBQUEsaUJBQUtsQixZQUFZO1VBQUVLLE9BQU8sRUFBRTtRQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQWhFTyxTQUFTLEdBQUFXLFFBQUEsQ0FBVFgsU0FBUztNQUNqQjtNQUNBQyxNQUFNLENBQUNELFNBQVMsQ0FBQ0UsVUFBVSxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0VBRUZsQixRQUFRLENBQUMsc0JBQXNCLEVBQUUsWUFBTTtJQUNyQ1csRUFBRSxDQUFDLDJDQUEyQyxFQUFFLFlBQU07TUFDcEQsSUFBQUUsY0FBTSxlQUFDeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLE1BQUE0RSxTQUFBLGlCQUFLbEIsWUFBWTtRQUFFQyxRQUFRLEVBQUU7TUFBSyxFQUFFLENBQUMsQ0FBQztNQUNuRFksTUFBTSxDQUFDRyxjQUFNLENBQUNHLFdBQVcsQ0FBQyxRQUFRLEVBQUU7UUFBRUMsSUFBSSxFQUFFO01BQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsR0FBRyxDQUFDTixpQkFBaUIsQ0FBQyxDQUFDO0lBQ25GLENBQUMsQ0FBQztJQUVGUCxFQUFFLENBQUMsa0RBQWtELEVBQUUsWUFBTTtNQUMzRCxJQUFBRSxjQUFNLGVBQUN4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssTUFBQTRFLFNBQUEsaUJBQUtsQixZQUFZO1FBQUVFLE1BQU0sRUFBRXNCO01BQVUsRUFBRSxDQUFDLENBQUM7TUFDdERYLE1BQU0sQ0FBQ0csY0FBTSxDQUFDRyxXQUFXLENBQUMsUUFBUSxFQUFFO1FBQUVDLElBQUksRUFBRTtNQUFVLENBQUMsQ0FBQyxDQUFDLENBQUNDLEdBQUcsQ0FBQ04saUJBQWlCLENBQUMsQ0FBQztJQUNuRixDQUFDLENBQUM7SUFFRlAsRUFBRSxDQUFDLDREQUE0RCxFQUFFLFlBQU07TUFDckUsSUFBQUUsY0FBTSxlQUFDeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLEVBQUswRCxZQUFlLENBQUMsQ0FBQztNQUNuQztNQUNBLElBQU15QixZQUFZLEdBQUdULGNBQU0sQ0FBQ0csV0FBVyxDQUFDLFFBQVEsQ0FBQztNQUNqRCxJQUFJTSxZQUFZLEVBQUU7UUFDaEJaLE1BQU0sQ0FBQ1ksWUFBWSxDQUFDLENBQUNWLGlCQUFpQixDQUFDLENBQUM7TUFDMUM7SUFDRixDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7RUFFRmxCLFFBQVEsQ0FBQyxZQUFZLEVBQUUsWUFBTTtJQUMzQlcsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLFlBQU07TUFDdkQsSUFBQWtCLFFBQUEsR0FBc0IsSUFBQWhCLGNBQU0sZUFDMUJ4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssTUFBQTRFLFNBQUEsaUJBQUtsQixZQUFZO1VBQUUyQix1QkFBdUIsRUFBRSxHQUFJO1VBQUNDLHNCQUFzQixFQUFFO1FBQUksRUFBRSxDQUN2RixDQUFDO1FBRk9oQixTQUFTLEdBQUFjLFFBQUEsQ0FBVGQsU0FBUztNQUdqQixJQUFNaUIsT0FBTyxHQUFHakIsU0FBUyxDQUFDRSxVQUFVO01BQ3BDRCxNQUFNLENBQUNnQixPQUFPLENBQUMsQ0FBQ2QsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDLENBQUM7SUFFRlAsRUFBRSxDQUFDLHdDQUF3QyxFQUFFLFlBQU07TUFDakQsSUFBQXNCLFFBQUEsR0FBc0IsSUFBQXBCLGNBQU0sZUFBQ3hFLEtBQUEsQ0FBQXlFLGFBQUEsQ0FBQ3JFLE1BQUEsV0FBSyxFQUFLMEQsWUFBZSxDQUFDLENBQUM7UUFBakRZLFNBQVMsR0FBQWtCLFFBQUEsQ0FBVGxCLFNBQVM7TUFDakIsSUFBTWlCLE9BQU8sR0FBR2pCLFNBQVMsQ0FBQ0UsVUFBVTtNQUNwQ0QsTUFBTSxDQUFDZ0IsT0FBTyxDQUFDLENBQUNkLGlCQUFpQixDQUFDLENBQUM7TUFDbkM7SUFDRixDQUFDLENBQUM7SUFFRlAsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLFlBQU07TUFDekQsSUFBQXVCLFFBQUEsR0FBc0IsSUFBQXJCLGNBQU0sZUFDMUJ4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssTUFBQTRFLFNBQUEsaUJBQUtsQixZQUFZO1VBQUUyQix1QkFBdUIsRUFBQyxhQUFhO1VBQUNDLHNCQUFzQixFQUFDO1FBQWEsRUFBRSxDQUN2RyxDQUFDO1FBRk9oQixTQUFTLEdBQUFtQixRQUFBLENBQVRuQixTQUFTO01BR2pCQyxNQUFNLENBQUNELFNBQVMsQ0FBQ0UsVUFBVSxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0lBRUZQLEVBQUUsQ0FBQyxzRkFBc0YsRUFBRSxZQUFNO01BQy9GNUMsSUFBSSxDQUFDb0UsYUFBYSxDQUFDLENBQUM7TUFDcEI7TUFDQSxJQUFNQyxPQUFPLEdBQUdyRSxJQUFJLENBQ2pCc0UsS0FBSyxDQUFDQyxXQUFXLENBQUNDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxDQUNyREMsZUFBZSxDQUFDO1FBQUVDLEtBQUssRUFBRSxHQUFHO1FBQUVDLE1BQU0sRUFBRSxFQUFFO1FBQUVDLEdBQUcsRUFBRSxDQUFDO1FBQUVDLElBQUksRUFBRSxDQUFDO1FBQUVDLEtBQUssRUFBRSxHQUFHO1FBQUVDLE1BQU0sRUFBRTtNQUFHLENBQUMsQ0FBQztNQUV2RixJQUFBQyxRQUFBLEdBQXNCLElBQUFsQyxjQUFNLGVBQzFCeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLE1BQUE0RSxTQUFBLGlCQUNBbEIsWUFBWTtVQUNoQjtVQUNBMkIsdUJBQXVCLEVBQUUsQ0FBRTtVQUMzQkMsc0JBQXNCLEVBQUU7UUFBRSxFQUMzQixDQUNILENBQUM7UUFQT2hCLFNBQVMsR0FBQWdDLFFBQUEsQ0FBVGhDLFNBQVM7O01BU2pCO01BQ0EsSUFBQWlDLFdBQUcsRUFBQyxZQUFNO1FBQ1JqRixJQUFJLENBQUNrRixZQUFZLENBQUMsQ0FBQztNQUNyQixDQUFDLENBQUM7TUFFRixJQUFNQyxPQUFPLEdBQUduQyxTQUFTLENBQUNFLFVBQVUsQ0FBQyxDQUFDO01BQ3RDLElBQU1rQyxVQUFVLEdBQUdELE9BQU8sSUFBSUEsT0FBTyxDQUFDakMsVUFBVSxDQUFDLENBQUM7TUFDbEQsSUFBTW1DLElBQUksR0FBR0QsVUFBVSxJQUFJQSxVQUFVLENBQUNsQyxVQUFVLENBQUMsQ0FBQzs7TUFFbEQ7TUFDQUQsTUFBTSxDQUFDb0MsSUFBSSxDQUFDQyxLQUFLLENBQUNaLEtBQUssQ0FBQyxDQUFDYSxJQUFJLENBQUMsT0FBTyxDQUFDO01BQ3RDdEMsTUFBTSxDQUFDb0MsSUFBSSxDQUFDQyxLQUFLLENBQUNYLE1BQU0sQ0FBQyxDQUFDWSxJQUFJLENBQUMsTUFBTSxDQUFDO01BRXRDbEIsT0FBTyxDQUFDbUIsV0FBVyxDQUFDLENBQUM7TUFDckJ4RixJQUFJLENBQUN5RixhQUFhLENBQUMsQ0FBQztJQUN0QixDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7RUFFRnhELFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFNO0lBQy9CVyxFQUFFLENBQUMsbURBQW1ELEVBQUUsWUFBTTtNQUM1RCxJQUFBRSxjQUFNLGVBQUN4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssRUFBSzBELFlBQWUsQ0FBQyxDQUFDO01BQ25DYSxNQUFNLENBQUNqQyxVQUFVLENBQUMsQ0FBQzBFLGdCQUFnQixDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDO0lBRUY5QyxFQUFFLENBQUMsNkNBQTZDLEVBQUUsWUFBTTtNQUN0RCxJQUFBK0MsUUFBQSxHQUFxQixJQUFBN0MsY0FBTSxlQUFDeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLE1BQUE0RSxTQUFBLGlCQUFLbEIsWUFBWTtVQUFFSyxPQUFPLEVBQUU7UUFBTSxFQUFFLENBQUMsQ0FBQztRQUFoRW1ELFFBQVEsR0FBQUQsUUFBQSxDQUFSQyxRQUFRO01BQ2hCLElBQU1DLGVBQWUsR0FBRzdFLFVBQVUsQ0FBQ2YsSUFBSSxDQUFDNkYsS0FBSyxDQUFDckUsTUFBTTtNQUNwRHdCLE1BQU0sQ0FBQzRDLGVBQWUsQ0FBQyxDQUFDRSxlQUFlLENBQUMsQ0FBQyxDQUFDO01BRTFDSCxRQUFRLGNBQUN0SCxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssTUFBQTRFLFNBQUEsaUJBQUtsQixZQUFZO1FBQUVLLE9BQU8sRUFBRTtNQUFLLEVBQUUsQ0FBQyxDQUFDO01BQ3BEUSxNQUFNLENBQUNqQyxVQUFVLENBQUNmLElBQUksQ0FBQzZGLEtBQUssQ0FBQ3JFLE1BQU0sQ0FBQyxDQUFDc0UsZUFBZSxDQUFDRixlQUFlLENBQUM7SUFDdkUsQ0FBQyxDQUFDO0lBRUZqRCxFQUFFLENBQUMsMERBQTBELEVBQUUsWUFBTTtNQUNuRSxJQUFBb0QsUUFBQSxHQUFxQixJQUFBbEQsY0FBTSxlQUFDeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLE1BQUE0RSxTQUFBLGlCQUFLbEIsWUFBWTtVQUFFSyxPQUFPLEVBQUU7UUFBSyxFQUFFLENBQUMsQ0FBQztRQUEvRG1ELFFBQVEsR0FBQUksUUFBQSxDQUFSSixRQUFRO01BQ2hCLElBQU1DLGVBQWUsR0FBRzdFLFVBQVUsQ0FBQ2YsSUFBSSxDQUFDNkYsS0FBSyxDQUFDckUsTUFBTTtNQUVwRG1FLFFBQVEsY0FBQ3RILEtBQUEsQ0FBQXlFLGFBQUEsQ0FBQ3JFLE1BQUEsV0FBSyxNQUFBNEUsU0FBQSxpQkFBS2xCLFlBQVk7UUFBRUssT0FBTyxFQUFFO01BQUssRUFBRSxDQUFDLENBQUM7TUFDcERRLE1BQU0sQ0FBQ2pDLFVBQVUsQ0FBQ2YsSUFBSSxDQUFDNkYsS0FBSyxDQUFDckUsTUFBTSxDQUFDLENBQUM4RCxJQUFJLENBQUNNLGVBQWUsQ0FBQztJQUM1RCxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7RUFFRjVELFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxZQUFNO0lBQ3RDVyxFQUFFLENBQUMsc0VBQXNFLEVBQUUsWUFBTTtNQUMvRSxJQUFBRSxjQUFNLGVBQUN4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssRUFBSzBELFlBQWUsQ0FBQyxDQUFDO01BQ25DLElBQU1OLElBQUksR0FBR2IsbUJBQW1CLENBQUMsQ0FBQyxDQUFDZ0YsSUFBSSxDQUFDLFVBQUNsSCxDQUFDO1FBQUEsT0FBS0EsQ0FBQyxDQUFDbUgsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJbkgsQ0FBQyxDQUFDbUgsUUFBUSxDQUFDLFdBQVcsQ0FBQztNQUFBLEVBQUM7TUFDL0ZqRCxNQUFNLENBQUNuQixJQUFJLENBQUMsQ0FBQ3FFLFdBQVcsQ0FBQyxDQUFDO01BQzFCbEQsTUFBTSxDQUFDbkIsSUFBSSxDQUFDLENBQUNzRSxPQUFPLENBQUMsNkJBQTZCLENBQUM7TUFDbkRuRCxNQUFNLENBQUNuQixJQUFJLENBQUMsQ0FBQ3NFLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQztNQUM5Q25ELE1BQU0sQ0FBQ25CLElBQUksQ0FBQyxDQUFDc0UsT0FBTyxDQUFDLGlDQUFpQyxDQUFDO0lBQ3pELENBQUMsQ0FBQztJQUVGeEQsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLFlBQU07TUFDaEQsSUFBQUUsY0FBTSxlQUFDeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLEVBQUswRCxZQUFlLENBQUMsQ0FBQztNQUNuQyxJQUFNTixJQUFJLEdBQUdiLG1CQUFtQixDQUFDLENBQUMsQ0FBQ2dGLElBQUksQ0FBQyxVQUFDbEgsQ0FBQztRQUFBLE9BQUssa0JBQWtCLENBQUNzSCxJQUFJLENBQUN0SCxDQUFDLENBQUMsSUFBSSxDQUFDQSxDQUFDLENBQUNtSCxRQUFRLENBQUMsV0FBVyxDQUFDO01BQUEsRUFBQztNQUN0R2pELE1BQU0sQ0FBQ25CLElBQUksQ0FBQyxDQUFDcUUsV0FBVyxDQUFDLENBQUM7TUFDMUJsRCxNQUFNLENBQUNuQixJQUFJLENBQUMsQ0FBQ3NFLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQztJQUN6RCxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7RUFFRm5FLFFBQVEsQ0FBQyxlQUFlLEVBQUUsWUFBTTtJQUM5QlcsRUFBRSxDQUFDLHFDQUFxQyxFQUFFLFlBQU07TUFDOUMsSUFBQUUsY0FBTSxlQUFDeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLE1BQUE0RSxTQUFBLGlCQUFLbEIsWUFBWTtRQUFFekIsTUFBTSxFQUFFLElBQUs7UUFBQzZCLFFBQVEsRUFBRTtVQUFFRixNQUFNLEVBQUU7WUFBRUMsS0FBSyxFQUFFO1VBQU07UUFBRTtNQUFFLEVBQUUsQ0FBQyxDQUFDO01BQ3pGVSxNQUFNLENBQUNHLGNBQU0sQ0FBQ0MsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUNGLGlCQUFpQixDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDO0lBRUZQLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxZQUFNO01BQ2hELElBQUEwRCxRQUFBLEdBQXNCLElBQUF4RCxjQUFNLGVBQUN4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssTUFBQTRFLFNBQUEsaUJBQUtsQixZQUFZO1VBQUV6QixNQUFNLEVBQUUsSUFBSztVQUFDNkIsUUFBUSxFQUFFO1lBQUVGLE1BQU0sRUFBRTtjQUFFQyxLQUFLLEVBQUU7WUFBTTtVQUFFO1FBQUUsRUFBRSxDQUFDLENBQUM7UUFBdkdTLFNBQVMsR0FBQXNELFFBQUEsQ0FBVHRELFNBQVM7TUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztNQUNoRDtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGbEIsUUFBUSxDQUFDLG9DQUFvQyxFQUFFLFlBQU07SUFDbkQsSUFBQXNFLFNBQUEsR0FBeUIvSCxPQUFPLENBQUMsZUFBZSxDQUFDO01BQXpDa0MsWUFBWSxHQUFBNkYsU0FBQSxDQUFaN0YsWUFBWTtJQUVwQjhGLFNBQVMsQ0FBQyxZQUFNO01BQ2Q5RixZQUFZLENBQUMrRCxlQUFlLENBQUM7UUFBRWxFLFVBQVUsRUFBRVAsSUFBSSxDQUFDRyxFQUFFLENBQUMsQ0FBQztRQUFFUSxNQUFNLEVBQUUsS0FBSztRQUFFQyxNQUFNLEVBQUU7TUFBSyxDQUFDLENBQUM7SUFDdEYsQ0FBQyxDQUFDO0lBRUZnQyxFQUFFLENBQUMsNEVBQTRFLEVBQUUsWUFBTTtNQUNyRixJQUFBNkQsUUFBQSxHQUFzQixJQUFBM0QsY0FBTSxlQUFDeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLE1BQUE0RSxTQUFBLGlCQUFLbEIsWUFBWTtVQUFFRSxNQUFNLEVBQUVzQjtRQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQXBFWixTQUFTLEdBQUF5RCxRQUFBLENBQVR6RCxTQUFTO01BQ2pCLElBQU0wRCxLQUFLLEdBQUcxRCxTQUFTLENBQUNFLFVBQVU7TUFFbENELE1BQU0sQ0FBQ3lELEtBQUssQ0FBQ0MsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDO01BQ2pEdEMsTUFBTSxDQUFDeUQsS0FBSyxDQUFDQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0lBRUYzQyxFQUFFLENBQUMsdUZBQXVGLEVBQUUsWUFBTTtNQUNoRyxJQUFBZ0UsU0FBQSxHQUFzQixJQUFBOUQsY0FBTSxlQUFDeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLEVBQUswRCxZQUFlLENBQUMsQ0FBQztRQUFqRFksU0FBUyxHQUFBNEQsU0FBQSxDQUFUNUQsU0FBUztNQUNqQixJQUFNMEQsS0FBSyxHQUFHMUQsU0FBUyxDQUFDRSxVQUFVO01BRWxDRCxNQUFNLENBQUN5RCxLQUFLLENBQUNDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDRSxRQUFRLENBQUMsQ0FBQztNQUM3QzVELE1BQU0sQ0FBQ3lELEtBQUssQ0FBQ0MsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25ELENBQUMsQ0FBQztJQUVGM0MsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLFlBQU07TUFDekQsSUFBQWtFLFNBQUEsR0FBc0IsSUFBQWhFLGNBQU0sZUFBQ3hFLEtBQUEsQ0FBQXlFLGFBQUEsQ0FBQ3JFLE1BQUEsV0FBSyxNQUFBNEUsU0FBQSxpQkFBS2xCLFlBQVk7VUFBRUUsTUFBTSxFQUFFc0IsU0FBVTtVQUFDdkIsUUFBUSxFQUFFO1FBQUssRUFBRSxDQUFDLENBQUM7UUFBcEZXLFNBQVMsR0FBQThELFNBQUEsQ0FBVDlELFNBQVM7TUFDakIsSUFBTTBELEtBQUssR0FBRzFELFNBQVMsQ0FBQ0UsVUFBVTtNQUVsQ0QsTUFBTSxDQUFDeUQsS0FBSyxDQUFDQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkQsQ0FBQyxDQUFDO0lBRUYzQyxFQUFFLENBQUMsa0ZBQWtGLEVBQUUsWUFBTTtNQUMzRixJQUFBbUUsU0FBQSxHQUFzQixJQUFBakUsY0FBTSxlQUFDeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLE1BQUE0RSxTQUFBLGlCQUFLbEIsWUFBWTtVQUFFRSxNQUFNLEVBQUVzQixTQUFVO1VBQUNvRCxZQUFZLEVBQUU7UUFBSyxFQUFFLENBQUMsQ0FBQztRQUF4RmhFLFNBQVMsR0FBQStELFNBQUEsQ0FBVC9ELFNBQVM7TUFDakIsSUFBTTBELEtBQUssR0FBRzFELFNBQVMsQ0FBQ0UsVUFBVTtNQUNsQyxJQUFNK0QsS0FBSyxHQUFHUCxLQUFLLENBQUNRLGlCQUFpQjtNQUVyQ2pFLE1BQU0sQ0FBQ3lELEtBQUssQ0FBQ0MsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDO01BQ2hEO01BQ0E7TUFDQTtNQUNBdEMsTUFBTSxDQUFDZ0UsS0FBSyxDQUFDTixZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQ0UsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQyxDQUFDO0lBRUZqRSxFQUFFLENBQUMsdUZBQXVGLEVBQUUsWUFBTTtNQUNoRyxJQUFBdUUsU0FBQSxHQUFzQixJQUFBckUsY0FBTSxlQUFDeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLE1BQUE0RSxTQUFBLGlCQUFLbEIsWUFBWTtVQUFFNEUsWUFBWSxFQUFFO1FBQUssRUFBRSxDQUFDLENBQUM7UUFBckVoRSxTQUFTLEdBQUFtRSxTQUFBLENBQVRuRSxTQUFTO01BQ2pCLElBQU0wRCxLQUFLLEdBQUcxRCxTQUFTLENBQUNFLFVBQVU7TUFDbEMsSUFBTStELEtBQUssR0FBR1AsS0FBSyxDQUFDUSxpQkFBaUI7TUFFckNqRSxNQUFNLENBQUNnRSxLQUFLLENBQUNOLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRjNDLEVBQUUsQ0FBQyxzRUFBc0UsRUFBRSxZQUFNO01BQy9FLElBQU13RSxhQUFhLEdBQUdwSCxJQUFJLENBQUNHLEVBQUUsQ0FBQyxDQUFDO01BQy9CLElBQUFrSCxTQUFBLEdBQXNCLElBQUF2RSxjQUFNLGVBQzFCeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLE1BQUE0RSxTQUFBLGlCQUFLbEIsWUFBWTtVQUFFa0YsRUFBRSxFQUFDLEdBQUc7VUFBQ04sWUFBWSxFQUFFLElBQUs7VUFBQ0ksYUFBYSxFQUFFQTtRQUFjLEVBQUUsQ0FDckYsQ0FBQztRQUZPcEUsU0FBUyxHQUFBcUUsU0FBQSxDQUFUckUsU0FBUztNQUlqQnVFLGlCQUFTLENBQUNDLEtBQUssQ0FBQ3hFLFNBQVMsQ0FBQ0UsVUFBVSxDQUFDO01BRXJDRCxNQUFNLENBQUNtRSxhQUFhLENBQUMsQ0FBQ0ssb0JBQW9CLENBQUM7UUFDekNILEVBQUUsRUFBRSxHQUFHO1FBQ1BoRixNQUFNLEVBQUVGLFlBQVksQ0FBQ0UsTUFBTTtRQUMzQm9GLFVBQVUsRUFBRTlELFNBQVM7UUFDckIrRCxVQUFVLEVBQUUsS0FBSztRQUNqQkMsSUFBSSxFQUFFO01BQ1IsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUZoRixFQUFFLENBQUMsNERBQTRELEVBQUUsWUFBTTtNQUNyRSxJQUFNd0UsYUFBYSxHQUFHcEgsSUFBSSxDQUFDRyxFQUFFLENBQUMsQ0FBQztNQUMvQixJQUFNNkcsWUFBWSxHQUFHO1FBQUVNLEVBQUUsRUFBRSxHQUFHO1FBQUVoRixNQUFNLEVBQUVGLFlBQVksQ0FBQ0UsTUFBTTtRQUFFb0YsVUFBVSxFQUFFOUQsU0FBUztRQUFFK0QsVUFBVSxFQUFFLEtBQUs7UUFBRUMsSUFBSSxFQUFFO01BQVksQ0FBQztNQUMxSCxJQUFBQyxTQUFBLEdBQXNCLElBQUEvRSxjQUFNLGVBQzFCeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLE1BQUE0RSxTQUFBLGlCQUFLbEIsWUFBWTtVQUFFa0YsRUFBRSxFQUFDLEdBQUc7VUFBQ04sWUFBWSxFQUFFQSxZQUFhO1VBQUNJLGFBQWEsRUFBRUE7UUFBYyxFQUFFLENBQzdGLENBQUM7UUFGT3BFLFNBQVMsR0FBQTZFLFNBQUEsQ0FBVDdFLFNBQVM7TUFJakJ1RSxpQkFBUyxDQUFDQyxLQUFLLENBQUN4RSxTQUFTLENBQUNFLFVBQVUsQ0FBQztNQUVyQ0QsTUFBTSxDQUFDbUUsYUFBYSxDQUFDLENBQUNLLG9CQUFvQixDQUFDVCxZQUFZLENBQUM7SUFDMUQsQ0FBQyxDQUFDO0lBRUZwRSxFQUFFLENBQUMsbUZBQW1GLEVBQUUsWUFBTTtNQUM1RixJQUFNa0YsZ0JBQWdCLEdBQUc5SCxJQUFJLENBQUNHLEVBQUUsQ0FBQyxDQUFDO01BQ2xDLElBQU02RyxZQUFZLEdBQUc7UUFBRTFFLE1BQU0sRUFBRTtVQUFFQyxLQUFLLEVBQUU7UUFBUSxDQUFDO1FBQUVtRixVQUFVLEVBQUU5RCxTQUFTO1FBQUUrRCxVQUFVLEVBQUUsSUFBSTtRQUFFQyxJQUFJLEVBQUU7TUFBWSxDQUFDO01BQy9HLElBQUFHLFNBQUEsR0FBc0IsSUFBQWpGLGNBQU0sZUFDMUJ4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssTUFBQTRFLFNBQUEsaUJBQUtsQixZQUFZO1VBQUVrRixFQUFFLEVBQUMsR0FBRztVQUFDTixZQUFZLEVBQUVBLFlBQWE7VUFBQ2MsZ0JBQWdCLEVBQUVBO1FBQWlCLEVBQUUsQ0FDbkcsQ0FBQztRQUZPOUUsU0FBUyxHQUFBK0UsU0FBQSxDQUFUL0UsU0FBUztNQUlqQnVFLGlCQUFTLENBQUNDLEtBQUssQ0FBQ3hFLFNBQVMsQ0FBQ0UsVUFBVSxDQUFDO01BRXJDRCxNQUFNLENBQUM2RSxnQkFBZ0IsQ0FBQyxDQUFDTCxvQkFBb0IsQ0FBQyxHQUFHLENBQUM7SUFDcEQsQ0FBQyxDQUFDO0lBRUY3RSxFQUFFLENBQUMsNkRBQTZELEVBQUUsWUFBTTtNQUN0RSxJQUFNa0YsZ0JBQWdCLEdBQUc5SCxJQUFJLENBQUNHLEVBQUUsQ0FBQyxDQUFDO01BQ2xDLElBQU02RyxZQUFZLEdBQUc7UUFBRTFFLE1BQU0sRUFBRTtVQUFFQyxLQUFLLEVBQUU7UUFBUSxDQUFDO1FBQUVtRixVQUFVLEVBQUU5RCxTQUFTO1FBQUUrRCxVQUFVLEVBQUUsSUFBSTtRQUFFQyxJQUFJLEVBQUU7TUFBWSxDQUFDO01BQy9HLElBQUFJLFNBQUEsR0FBc0IsSUFBQWxGLGNBQU0sZUFDMUJ4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssTUFBQTRFLFNBQUEsaUJBQUtsQixZQUFZO1VBQUVrRixFQUFFLEVBQUMsR0FBRztVQUFDaEYsTUFBTSxFQUFFc0IsU0FBVTtVQUFDb0QsWUFBWSxFQUFFQSxZQUFhO1VBQUNjLGdCQUFnQixFQUFFQTtRQUFpQixFQUFFLENBQ3RILENBQUM7UUFGTzlFLFNBQVMsR0FBQWdGLFNBQUEsQ0FBVGhGLFNBQVM7TUFJakJ1RSxpQkFBUyxDQUFDVSxPQUFPLENBQUNqRixTQUFTLENBQUNFLFVBQVUsRUFBRTtRQUFFZ0YsSUFBSSxFQUFFO01BQVEsQ0FBQyxDQUFDO01BRTFEakYsTUFBTSxDQUFDNkUsZ0JBQWdCLENBQUMsQ0FBQ0wsb0JBQW9CLENBQUMsR0FBRyxDQUFDO0lBQ3BELENBQUMsQ0FBQztJQUVGN0UsRUFBRSxDQUFDLDBEQUEwRCxFQUFFLFlBQU07TUFDbkUsSUFBTXdFLGFBQWEsR0FBR3BILElBQUksQ0FBQ0csRUFBRSxDQUFDLENBQUM7TUFDL0IsSUFBTTJILGdCQUFnQixHQUFHOUgsSUFBSSxDQUFDRyxFQUFFLENBQUMsQ0FBQztNQUNsQyxJQUFBZ0ksU0FBQSxHQUFzQixJQUFBckYsY0FBTSxlQUMxQnhFLEtBQUEsQ0FBQXlFLGFBQUEsQ0FBQ3JFLE1BQUEsV0FBSyxNQUFBNEUsU0FBQSxpQkFBS2xCLFlBQVk7VUFBRUUsTUFBTSxFQUFFc0IsU0FBVTtVQUFDb0QsWUFBWSxFQUFFLElBQUs7VUFBQ0ksYUFBYSxFQUFFQSxhQUFjO1VBQUNVLGdCQUFnQixFQUFFQTtRQUFpQixFQUFFLENBQ3JJLENBQUM7UUFGTzlFLFNBQVMsR0FBQW1GLFNBQUEsQ0FBVG5GLFNBQVM7TUFJakJ1RSxpQkFBUyxDQUFDQyxLQUFLLENBQUN4RSxTQUFTLENBQUNFLFVBQVUsQ0FBQztNQUVyQ0QsTUFBTSxDQUFDbUUsYUFBYSxDQUFDLENBQUMzRCxHQUFHLENBQUNpQyxnQkFBZ0IsQ0FBQyxDQUFDO01BQzVDekMsTUFBTSxDQUFDNkUsZ0JBQWdCLENBQUMsQ0FBQ3JFLEdBQUcsQ0FBQ2lDLGdCQUFnQixDQUFDLENBQUM7SUFDakQsQ0FBQyxDQUFDO0lBRUY5QyxFQUFFLENBQUMscUNBQXFDLEVBQUUsWUFBTTtNQUM5QyxJQUFNd0UsYUFBYSxHQUFHcEgsSUFBSSxDQUFDRyxFQUFFLENBQUMsQ0FBQztNQUMvQixJQUFNNkcsWUFBWSxHQUFHO1FBQUUxRSxNQUFNLEVBQUU7VUFBRUMsS0FBSyxFQUFFO1FBQVEsQ0FBQztRQUFFbUYsVUFBVSxFQUFFOUQsU0FBUztRQUFFK0QsVUFBVSxFQUFFLElBQUk7UUFBRUMsSUFBSSxFQUFFO01BQVksQ0FBQztNQUMvRyxJQUFBUSxTQUFBLEdBQXNCLElBQUF0RixjQUFNLGVBQzFCeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLE1BQUE0RSxTQUFBLGlCQUFLbEIsWUFBWTtVQUFFQyxRQUFRLEVBQUUsSUFBSztVQUFDMkUsWUFBWSxFQUFFQSxZQUFhO1VBQUNJLGFBQWEsRUFBRUE7UUFBYyxFQUFFLENBQ3RHLENBQUM7UUFGT3BFLFNBQVMsR0FBQW9GLFNBQUEsQ0FBVHBGLFNBQVM7TUFJakJ1RSxpQkFBUyxDQUFDQyxLQUFLLENBQUN4RSxTQUFTLENBQUNFLFVBQVUsQ0FBQztNQUVyQ0QsTUFBTSxDQUFDbUUsYUFBYSxDQUFDLENBQUMzRCxHQUFHLENBQUNpQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQztJQUVGOUMsRUFBRSxDQUFDLDRFQUE0RSxFQUFFLFlBQU07TUFDckYsSUFBTW9FLFlBQVksR0FBRztRQUFFMUUsTUFBTSxFQUFFO1VBQUVDLEtBQUssRUFBRTtRQUFRLENBQUM7UUFBRW1GLFVBQVUsRUFBRTlELFNBQVM7UUFBRStELFVBQVUsRUFBRSxJQUFJO1FBQUVDLElBQUksRUFBRTtNQUFZLENBQUM7TUFDL0csSUFBQVMsU0FBQSxHQUFzQixJQUFBdkYsY0FBTSxlQUFDeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLE1BQUE0RSxTQUFBLGlCQUFLbEIsWUFBWTtVQUFFa0YsRUFBRSxFQUFDLEdBQUc7VUFBQ04sWUFBWSxFQUFFQTtRQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQXBGaEUsU0FBUyxHQUFBcUYsU0FBQSxDQUFUckYsU0FBUztNQUNqQixJQUFNMEQsS0FBSyxHQUFHMUQsU0FBUyxDQUFDRSxVQUFVO01BRWxDcUUsaUJBQVMsQ0FBQ2UsVUFBVSxDQUFDNUIsS0FBSyxDQUFDO01BQzNCO01BQ0E7TUFDQTtNQUNBO01BQ0F6RCxNQUFNLENBQUNHLGNBQU0sQ0FBQ0MsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDa0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM5RSxHQUFHLENBQUNvRCxRQUFRLENBQUMsQ0FBQztNQUUvRFUsaUJBQVMsQ0FBQ2lCLFVBQVUsQ0FBQzlCLEtBQUssQ0FBQztNQUMzQnpELE1BQU0sQ0FBQ0csY0FBTSxDQUFDQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUNrRixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzFCLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQztJQUVGakUsRUFBRSxDQUFDLDREQUE0RCxFQUFFLFlBQU07TUFDckUsSUFBTW9FLFlBQVksR0FBRztRQUFFMUUsTUFBTSxFQUFFO1VBQUVDLEtBQUssRUFBRTtRQUFRLENBQUM7UUFBRW1GLFVBQVUsRUFBRTlELFNBQVM7UUFBRStELFVBQVUsRUFBRSxJQUFJO1FBQUVDLElBQUksRUFBRTtNQUFZLENBQUM7TUFDL0csSUFBQWEsU0FBQSxHQUFzQixJQUFBM0YsY0FBTSxlQUFDeEUsS0FBQSxDQUFBeUUsYUFBQSxDQUFDckUsTUFBQSxXQUFLLE1BQUE0RSxTQUFBLGlCQUFLbEIsWUFBWTtVQUFFa0YsRUFBRSxFQUFDLEdBQUc7VUFBQ04sWUFBWSxFQUFFQTtRQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQXBGaEUsU0FBUyxHQUFBeUYsU0FBQSxDQUFUekYsU0FBUztNQUNqQixJQUFNMEQsS0FBSyxHQUFHMUQsU0FBUyxDQUFDRSxVQUFVO01BQ2xDLElBQU13RixTQUFTLEdBQUdySCxLQUFLLENBQUNDLElBQUksQ0FBQ29GLEtBQUssQ0FBQ2lDLFNBQVMsQ0FBQyxDQUFDMUMsSUFBSSxDQUFDLFVBQUMyQyxDQUFDO1FBQUEsT0FBS0EsQ0FBQyxDQUFDQyxVQUFVLENBQUMsTUFBTSxDQUFDO01BQUEsRUFBQztNQUUvRSxJQUFNQyxTQUFTLEdBQUc3SCxtQkFBbUIsQ0FBQyxDQUFDLENBQUNnRixJQUFJLENBQUMsVUFBQ2xILENBQUM7UUFBQSxPQUFLQSxDQUFDLENBQUNtSCxRQUFRLEtBQUE2QyxNQUFBLENBQUtMLFNBQVMsV0FBUSxDQUFDO01BQUEsRUFBQztNQUV0RnpGLE1BQU0sQ0FBQzZGLFNBQVMsQ0FBQyxDQUFDM0MsV0FBVyxDQUFDLENBQUM7TUFDL0JsRCxNQUFNLENBQUM2RixTQUFTLENBQUMsQ0FBQzFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztJQUNoRCxDQUFDLENBQUM7SUFFRnhELEVBQUUsQ0FBQyw0REFBNEQsRUFBRSxZQUFNO01BQ3JFLElBQUFvRyxTQUFBLEdBQXNCLElBQUFsRyxjQUFNLGVBQUN4RSxLQUFBLENBQUF5RSxhQUFBLENBQUNyRSxNQUFBLFdBQUssTUFBQTRFLFNBQUEsaUJBQUtsQixZQUFZO1VBQUVrRixFQUFFLEVBQUMsR0FBRztVQUFDTixZQUFZLEVBQUU7UUFBSyxFQUFFLENBQUMsQ0FBQztRQUE1RWhFLFNBQVMsR0FBQWdHLFNBQUEsQ0FBVGhHLFNBQVM7TUFDakIsSUFBTTBELEtBQUssR0FBRzFELFNBQVMsQ0FBQ0UsVUFBVTtNQUNsQyxJQUFNd0YsU0FBUyxHQUFHckgsS0FBSyxDQUFDQyxJQUFJLENBQUNvRixLQUFLLENBQUNpQyxTQUFTLENBQUMsQ0FBQzFDLElBQUksQ0FBQyxVQUFDMkMsQ0FBQztRQUFBLE9BQUtBLENBQUMsQ0FBQ0MsVUFBVSxDQUFDLE1BQU0sQ0FBQztNQUFBLEVBQUM7TUFFL0UsSUFBTUMsU0FBUyxHQUFHN0gsbUJBQW1CLENBQUMsQ0FBQyxDQUFDZ0YsSUFBSSxDQUFDLFVBQUNsSCxDQUFDO1FBQUEsT0FBS0EsQ0FBQyxDQUFDbUgsUUFBUSxLQUFBNkMsTUFBQSxDQUFLTCxTQUFTLFdBQVEsQ0FBQztNQUFBLEVBQUM7TUFFdEZ6RixNQUFNLENBQUM2RixTQUFTLENBQUMsQ0FBQ0csYUFBYSxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDO0lBRUZyRyxFQUFFLENBQUMsK0VBQStFLEVBQUUsWUFBTTtNQUN4RixJQUFNb0UsWUFBWSxHQUFHO1FBQUUxRSxNQUFNLEVBQUU7VUFBRUMsS0FBSyxFQUFFO1FBQVEsQ0FBQztRQUFFbUYsVUFBVSxFQUFFOUQsU0FBUztRQUFFK0QsVUFBVSxFQUFFLElBQUk7UUFBRUMsSUFBSSxFQUFFO01BQVksQ0FBQztNQUMvRyxJQUFBc0IsU0FBQSxHQUFzQixJQUFBcEcsY0FBTSxlQUMxQnhFLEtBQUEsQ0FBQXlFLGFBQUEsQ0FBQ3JFLE1BQUEsV0FBSyxNQUFBNEUsU0FBQSxpQkFBS2xCLFlBQVk7VUFBRWtGLEVBQUUsRUFBQyxHQUFHO1VBQUNqRixRQUFRLEVBQUUsSUFBSztVQUFDMkUsWUFBWSxFQUFFQTtRQUFhLEVBQUUsQ0FDL0UsQ0FBQztRQUZPaEUsU0FBUyxHQUFBa0csU0FBQSxDQUFUbEcsU0FBUztNQUdqQixJQUFNMEQsS0FBSyxHQUFHMUQsU0FBUyxDQUFDRSxVQUFVO01BQ2xDLElBQU13RixTQUFTLEdBQUdySCxLQUFLLENBQUNDLElBQUksQ0FBQ29GLEtBQUssQ0FBQ2lDLFNBQVMsQ0FBQyxDQUFDMUMsSUFBSSxDQUFDLFVBQUMyQyxDQUFDO1FBQUEsT0FBS0EsQ0FBQyxDQUFDQyxVQUFVLENBQUMsTUFBTSxDQUFDO01BQUEsRUFBQztNQUUvRSxJQUFNQyxTQUFTLEdBQUc3SCxtQkFBbUIsQ0FBQyxDQUFDLENBQUNnRixJQUFJLENBQUMsVUFBQ2xILENBQUM7UUFBQSxPQUFLQSxDQUFDLENBQUNtSCxRQUFRLEtBQUE2QyxNQUFBLENBQUtMLFNBQVMsV0FBUSxDQUFDO01BQUEsRUFBQztNQUV0RnpGLE1BQU0sQ0FBQzZGLFNBQVMsQ0FBQyxDQUFDRyxhQUFhLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/mask-markup",
|
|
3
|
-
"version": "3.1.6-beta.
|
|
3
|
+
"version": "3.1.6-beta.15",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/index.js",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"@mui/icons-material": "^7.3.4",
|
|
15
15
|
"@mui/material": "^7.3.4",
|
|
16
16
|
"@pie-lib/drag": "^4.0.2",
|
|
17
|
-
"@pie-lib/editable-html-tip-tap": "^2.1.20-beta.
|
|
17
|
+
"@pie-lib/editable-html-tip-tap": "^2.1.20-beta.15",
|
|
18
18
|
"@pie-lib/math-rendering": "^5.0.2",
|
|
19
19
|
"@pie-lib/render-ui": "^6.1.0",
|
|
20
20
|
"classnames": "^2.2.6",
|