@pie-lib/math-input-mathlive 1.0.11 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/lib/__tests__/composites.test.js +1 -1
  2. package/lib/__tests__/drop-in-compat.test.js +1 -1
  3. package/lib/__tests__/index.test.js +1 -1
  4. package/lib/__tests__/input-imperative.test.js +1 -1
  5. package/lib/__tests__/keypad-label.test.js +99 -1
  6. package/lib/__tests__/keypad-render.test.js +1 -1
  7. package/lib/__tests__/latex-bridge.test.js +22 -1
  8. package/lib/__tests__/mathlive-instance.test.js +137 -1
  9. package/lib/__tests__/mount-race.test.js +4 -1
  10. package/lib/__tests__/static-prompts.test.js +124 -1
  11. package/lib/__tests__/tmp-markup.test.js +26 -0
  12. package/lib/keypad/index.js +4 -4
  13. package/lib/keypad/index.js.map +1 -1
  14. package/lib/keys/misc.js +9 -2
  15. package/lib/keys/misc.js.map +1 -1
  16. package/lib/latex-bridge.js +30 -0
  17. package/lib/latex-bridge.js.map +1 -1
  18. package/lib/mathlive-instance.js +72 -3
  19. package/lib/mathlive-instance.js.map +1 -1
  20. package/lib/mf/common-styles.js +41 -6
  21. package/lib/mf/common-styles.js.map +1 -1
  22. package/lib/mf/index.js +6 -0
  23. package/lib/mf/index.js.map +1 -1
  24. package/lib/mf/input.js +7 -0
  25. package/lib/mf/input.js.map +1 -1
  26. package/lib/mf/static.js +84 -3
  27. package/lib/mf/static.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/__tests__/keypad-label.test.jsx +131 -5
  30. package/src/__tests__/latex-bridge.test.js +22 -0
  31. package/src/__tests__/mathlive-instance.test.js +150 -0
  32. package/src/__tests__/mount-race.test.jsx +1 -0
  33. package/src/__tests__/static-prompts.test.jsx +113 -0
  34. package/src/keypad/index.jsx +4 -1
  35. package/src/keys/misc.js +8 -2
  36. package/src/latex-bridge.js +34 -0
  37. package/src/mathlive-instance.js +80 -1
  38. package/src/mf/common-styles.js +45 -4
  39. package/src/mf/index.js +2 -0
  40. package/src/mf/input.jsx +15 -1
  41. package/src/mf/static.jsx +98 -3
  42. package/lib/__tests__/composites.test.js.map +0 -1
  43. package/lib/__tests__/drop-in-compat.test.js.map +0 -1
  44. package/lib/__tests__/index.test.js.map +0 -1
  45. package/lib/__tests__/input-imperative.test.js.map +0 -1
  46. package/lib/__tests__/keypad-label.test.js.map +0 -1
  47. package/lib/__tests__/keypad-render.test.js.map +0 -1
  48. package/lib/__tests__/latex-bridge.test.js.map +0 -1
  49. package/lib/__tests__/mathlive-instance.test.js.map +0 -1
  50. package/lib/__tests__/mount-race.test.js.map +0 -1
  51. package/lib/__tests__/static-prompts.test.js.map +0 -1
@@ -252,4 +252,4 @@ describe('Input: controlled-value sync and events', function () {
252
252
  }).not.toThrow();
253
253
  });
254
254
  });
255
- //# sourceMappingURL=composites.test.js.map
255
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfbWF0aElucHV0IiwiX2hvcml6b250YWxLZXlwYWQiLCJfaW5wdXQiLCJkZXNjcmliZSIsIndpdGhJbnB1dCIsIm1pIiwiTWF0aElucHV0IiwiY2FsbHMiLCJ3cml0ZSIsImtleXN0cm9rZSIsImlucHV0IiwidiIsInB1c2giLCJpdCIsIl93aXRoSW5wdXQiLCJrZXlwYWRQcmVzcyIsImxhdGV4IiwiZXhwZWN0IiwidG9FcXVhbCIsIl93aXRoSW5wdXQyIiwiY29tbWFuZCIsIl93aXRoSW5wdXQzIiwiX3dpdGhJbnB1dDQiLCJub3QiLCJ0b1Rocm93Iiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJjaGFuZ2VMYXRleCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInNldFN0YXRlIiwicyIsIk9iamVjdCIsImFzc2lnbiIsInN0YXRlIiwiaW5wdXRGb2N1cyIsImZvY3VzZWQiLCJ0b0JlIiwiaW5wdXRCbHVyIiwicHJlc3NlZCIsImtleSIsIm9uQ2xpY2siLCJoayIsIkhvcml6b250YWxLZXlwYWQiLCJtb2NrIiwidmFsdWUiLCJ0eXBlIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIndpdGhGaWVsZCIsIklucHV0IiwibWF0aEZpZWxkIiwiZ2V0VmFsdWUiLCJpbnNlcnQiLCJleGVjdXRlQ29tbWFuZCIsImZvY3VzIiwiYmx1ciIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVtb3ZlIiwicHJvcHMiLCJvbklucHV0RWRpdCIsImxhc3RFbWl0dGVkIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicmVhZE9ubHkiLCJjbGVhciIsInByZXZlbnREZWZhdWx0Iiwib25LZXlEb3duIiwibW9ja0NsZWFyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9jb21wb3NpdGVzLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcblxuaW1wb3J0IE1hdGhJbnB1dCBmcm9tICcuLi9tYXRoLWlucHV0JztcbmltcG9ydCBIb3Jpem9udGFsS2V5cGFkIGZyb20gJy4uL2hvcml6b250YWwta2V5cGFkJztcbmltcG9ydCBJbnB1dCBmcm9tICcuLi9tZi9pbnB1dCc7XG5cbi8qKlxuICogVGhlIHBpZWNlcyB0aGF0IHNpdCBiZXR3ZWVuIHRoZSBrZXlwYWQgYW5kIHRoZSBmaWVsZDogaG93IGEgcHJlc3NlZCBrZXkgaXNcbiAqIHJvdXRlZCBpbnRvIHRoZSBmaWVsZCwgYW5kIHRoZSBsZWdhY3kgYHt2YWx1ZSx0eXBlfWAgc2hhcGUgbWF0aC10b29sYmFyXG4gKiBjb25zdW1lcy5cbiAqL1xuZGVzY3JpYmUoJ01hdGhJbnB1dC5rZXlwYWRQcmVzcyByb3V0aW5nJywgKCkgPT4ge1xuICBjb25zdCB3aXRoSW5wdXQgPSAoKSA9PiB7XG4gICAgY29uc3QgbWkgPSBuZXcgTWF0aElucHV0KHt9KTtcbiAgICBjb25zdCBjYWxscyA9IHsgd3JpdGU6IFtdLCBrZXlzdHJva2U6IFtdIH07XG5cbiAgICBtaS5pbnB1dCA9IHtcbiAgICAgIHdyaXRlOiAodikgPT4gY2FsbHMud3JpdGUucHVzaCh2KSxcbiAgICAgIGtleXN0cm9rZTogKHYpID0+IGNhbGxzLmtleXN0cm9rZS5wdXNoKHYpLFxuICAgIH07XG5cbiAgICByZXR1cm4geyBtaSwgY2FsbHMgfTtcbiAgfTtcblxuICBpdCgncm91dGVzIGFuIGluc2VydCBhY3Rpb24gdG8gd3JpdGUoKScsICgpID0+IHtcbiAgICBjb25zdCB7IG1pLCBjYWxscyB9ID0gd2l0aElucHV0KCk7XG5cbiAgICBtaS5rZXlwYWRQcmVzcyh7IGxhdGV4OiAnXFxcXHBpJyB9KTtcblxuICAgIGV4cGVjdChjYWxscy53cml0ZSkudG9FcXVhbChbJ1xcXFxwaSddKTtcbiAgICBleHBlY3QoY2FsbHMua2V5c3Ryb2tlKS50b0VxdWFsKFtdKTtcbiAgfSk7XG5cbiAgaXQoJ2V4cGFuZHMgYW4gYXJndW1lbnQtdGFraW5nIGNvbW1hbmQgYmVmb3JlIHdyaXRpbmcnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBtaSwgY2FsbHMgfSA9IHdpdGhJbnB1dCgpO1xuXG4gICAgbWkua2V5cGFkUHJlc3MoeyBjb21tYW5kOiAnXFxcXGZyYWMnIH0pO1xuXG4gICAgZXhwZWN0KGNhbGxzLndyaXRlKS50b0VxdWFsKFsnXFxcXGZyYWN7Iz99eyM/fSddKTtcbiAgfSk7XG5cbiAgaXQoJ3JvdXRlcyBhIGN1cnNvciBrZXlzdHJva2UgdG8ga2V5c3Ryb2tlKCknLCAoKSA9PiB7XG4gICAgY29uc3QgeyBtaSwgY2FsbHMgfSA9IHdpdGhJbnB1dCgpO1xuXG4gICAgbWkua2V5cGFkUHJlc3MoeyBrZXlzdHJva2U6ICdMZWZ0JyB9KTtcblxuICAgIGV4cGVjdChjYWxscy5rZXlzdHJva2UpLnRvRXF1YWwoWydtb3ZlVG9QcmV2aW91c0NoYXInXSk7XG4gICAgZXhwZWN0KGNhbGxzLndyaXRlKS50b0VxdWFsKFtdKTtcbiAgfSk7XG5cbiAgaXQoJ2lnbm9yZXMga2V5cyB3aXRoIG5vIGFjdGlvbicsICgpID0+IHtcbiAgICBjb25zdCB7IG1pLCBjYWxscyB9ID0gd2l0aElucHV0KCk7XG5cbiAgICBtaS5rZXlwYWRQcmVzcyh7fSk7XG4gICAgbWkua2V5cGFkUHJlc3MoeyBrZXlzdHJva2U6ICdOb25zZW5zZScgfSk7XG5cbiAgICBleHBlY3QoY2FsbHMud3JpdGUpLnRvRXF1YWwoW10pO1xuICAgIGV4cGVjdChjYWxscy5rZXlzdHJva2UpLnRvRXF1YWwoW10pO1xuICB9KTtcblxuICBpdCgnaXMgYSBuby1vcCBiZWZvcmUgdGhlIGZpZWxkIHJlZiBleGlzdHMnLCAoKSA9PiB7XG4gICAgY29uc3QgbWkgPSBuZXcgTWF0aElucHV0KHt9KTtcblxuICAgIGV4cGVjdCgoKSA9PiBtaS5rZXlwYWRQcmVzcyh7IGxhdGV4OiAnXFxcXHBpJyB9KSkubm90LnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgaXQoJ2NoYW5nZUxhdGV4IG9ubHkgZmlyZXMgb25DaGFuZ2Ugd2hlbiB0aGUgdmFsdWUgZGlmZmVycycsICgpID0+IHtcbiAgICBjb25zdCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgICBjb25zdCBtaSA9IG5ldyBNYXRoSW5wdXQoeyBsYXRleDogJ3gnLCBvbkNoYW5nZSB9KTtcblxuICAgIG1pLmNoYW5nZUxhdGV4KCd4Jyk7XG4gICAgZXhwZWN0KG9uQ2hhbmdlKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuXG4gICAgbWkuY2hhbmdlTGF0ZXgoJ3knKTtcbiAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCd5Jyk7XG4gIH0pO1xuXG4gIGl0KCd0cmFja3MgZm9jdXMgc3RhdGUnLCAoKSA9PiB7XG4gICAgY29uc3QgbWkgPSBuZXcgTWF0aElucHV0KHt9KTtcblxuICAgIG1pLnNldFN0YXRlID0gKHMpID0+IE9iamVjdC5hc3NpZ24obWkuc3RhdGUsIHMpO1xuICAgIG1pLmlucHV0Rm9jdXMoKTtcbiAgICBleHBlY3QobWkuc3RhdGUuZm9jdXNlZCkudG9CZSh0cnVlKTtcblxuICAgIG1pLmlucHV0Qmx1cigpO1xuICAgIGV4cGVjdChtaS5zdGF0ZS5mb2N1c2VkKS50b0JlKGZhbHNlKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0hvcml6b250YWxLZXlwYWQgbGVnYWN5IHt2YWx1ZSx0eXBlfSBtb2RlbCcsICgpID0+IHtcbiAgY29uc3QgcHJlc3NlZCA9IChrZXkpID0+IHtcbiAgICBjb25zdCBvbkNsaWNrID0gamVzdC5mbigpO1xuICAgIGNvbnN0IGhrID0gbmV3IEhvcml6b250YWxLZXlwYWQoeyBvbkNsaWNrIH0pO1xuXG4gICAgaGsua2V5cGFkUHJlc3Moa2V5KTtcblxuICAgIHJldHVybiBvbkNsaWNrLm1vY2suY2FsbHNbMF1bMF07XG4gIH07XG5cbiAgaXQoJ21hcHMgYSBjb21tYW5kIHRvIHt2YWx1ZSwgdHlwZTogY29tbWFuZH0nLCAoKSA9PiB7XG4gICAgZXhwZWN0KHByZXNzZWQoeyBjb21tYW5kOiAnXFxcXGZyYWMnIH0pKS50b0VxdWFsKHsgdmFsdWU6ICdcXFxcZnJhYycsIHR5cGU6ICdjb21tYW5kJyB9KTtcbiAgfSk7XG5cbiAgaXQoJ21hcHMgYSB3cml0ZSB0byB7dmFsdWV9JywgKCkgPT4ge1xuICAgIGV4cGVjdChwcmVzc2VkKHsgd3JpdGU6ICd4JyB9KSkudG9FcXVhbCh7IHZhbHVlOiAneCcgfSk7XG4gIH0pO1xuXG4gIGl0KCdtYXBzIGEga2V5c3Ryb2tlIHRvIHt0eXBlOiBjdXJzb3J9JywgKCkgPT4ge1xuICAgIGV4cGVjdChwcmVzc2VkKHsga2V5c3Ryb2tlOiAnTGVmdCcgfSkpLnRvRXF1YWwoeyB0eXBlOiAnY3Vyc29yJywgdmFsdWU6ICdMZWZ0JyB9KTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aG91dCB0aHJvd2luZycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4gcmVuZGVyKDxIb3Jpem9udGFsS2V5cGFkIG9uQ2xpY2s9eygpID0+IHt9fSAvPikpLm5vdC50b1Rocm93KCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdJbnB1dDogY29udHJvbGxlZC12YWx1ZSBzeW5jIGFuZCBldmVudHMnLCAoKSA9PiB7XG4gIGNvbnN0IHdpdGhGaWVsZCA9ICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IG5ldyBJbnB1dCh7fSk7XG5cbiAgICBpbnB1dC5tYXRoRmllbGQgPSB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgICBnZXRWYWx1ZTogKCkgPT4gaW5wdXQubWF0aEZpZWxkLnZhbHVlLFxuICAgICAgaW5zZXJ0KHYpIHtcbiAgICAgICAgaW5wdXQubWF0aEZpZWxkLnZhbHVlICs9IHY7XG4gICAgICB9LFxuICAgICAgZXhlY3V0ZUNvbW1hbmQoKSB7fSxcbiAgICAgIGZvY3VzKCkge30sXG4gICAgICBibHVyKCkge30sXG4gICAgICBhZGRFdmVudExpc3RlbmVyKCkge30sXG4gICAgICByZW1vdmVFdmVudExpc3RlbmVyKCkge30sXG4gICAgICByZW1vdmUoKSB7fSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGlucHV0O1xuICB9O1xuXG4gIGl0KCdlbWl0cyBzdG9yZWQtZm9ybSBsYXRleCBvbiBlZGl0JywgKCkgPT4ge1xuICAgIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICAgIGNvbnN0IGlucHV0ID0gd2l0aEZpZWxkKCk7XG5cbiAgICBpbnB1dC5wcm9wcyA9IHsgb25DaGFuZ2UgfTtcbiAgICBpbnB1dC5tYXRoRmllbGQudmFsdWUgPSAnXFxcXGxvbmdkaXZ7XFxcXHBsYWNlaG9sZGVye319JztcbiAgICBpbnB1dC5vbklucHV0RWRpdCgpO1xuXG4gICAgLy8gXFxwbGFjZWhvbGRlciBpcyBNYXRoTGl2ZS1pbnRlcm5hbCBhbmQgbXVzdCBub3QgcmVhY2ggdGhlIG1vZGVsXG4gICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnXFxcXGxvbmdkaXZ7fScpO1xuICAgIGV4cGVjdChpbnB1dC5sYXN0RW1pdHRlZCkudG9FcXVhbCgnXFxcXGxvbmdkaXZ7fScpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3QgcHVzaCBhIHByb3AgZWNobyBiYWNrIGludG8gdGhlIGZpZWxkJywgKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gd2l0aEZpZWxkKCk7XG5cbiAgICBpbnB1dC5tYXRoRmllbGQudmFsdWUgPSAneCc7XG4gICAgaW5wdXQubGFzdEVtaXR0ZWQgPSAneCc7XG4gICAgaW5wdXQucHJvcHMgPSB7IGxhdGV4OiAneCcgfTtcblxuICAgIGlucHV0LmNvbXBvbmVudERpZFVwZGF0ZSh7IGxhdGV4OiAnJyB9KTtcblxuICAgIGV4cGVjdChpbnB1dC5tYXRoRmllbGQudmFsdWUpLnRvRXF1YWwoJ3gnKTtcbiAgfSk7XG5cbiAgaXQoJ3B1c2hlcyBhIGdlbnVpbmVseSBuZXcgbGF0ZXggcHJvcCBpbnRvIHRoZSBmaWVsZCcsICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHdpdGhGaWVsZCgpO1xuXG4gICAgaW5wdXQubWF0aEZpZWxkLnZhbHVlID0gJ3gnO1xuICAgIGlucHV0Lmxhc3RFbWl0dGVkID0gJ3gnO1xuICAgIGlucHV0LnByb3BzID0geyBsYXRleDogJ3knIH07XG5cbiAgICBpbnB1dC5jb21wb25lbnREaWRVcGRhdGUoeyBsYXRleDogJ3gnIH0pO1xuXG4gICAgZXhwZWN0KGlucHV0Lm1hdGhGaWVsZC52YWx1ZSkudG9FcXVhbCgneScpO1xuICB9KTtcblxuICBpdCgnYnJpZGdlcyBzdG9yZWQgbGF0ZXggb24gdGhlIHdheSBpbicsICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHdpdGhGaWVsZCgpO1xuXG4gICAgaW5wdXQucHJvcHMgPSB7IGxhdGV4OiAnXFxcXGxvbmdkaXZ7NX0nIH07XG4gICAgaW5wdXQuY29tcG9uZW50RGlkVXBkYXRlKHsgbGF0ZXg6ICcnIH0pO1xuXG4gICAgLy8gbXVzdCBiZWNvbWUgbmF0aXZlIFxcZW5jbG9zZSBzbyB0aGUgY29udGVudCBzdGF5cyBlZGl0YWJsZVxuICAgIGV4cGVjdChpbnB1dC5tYXRoRmllbGQudmFsdWUpLnRvRXF1YWwoJ1xcXFxlbmNsb3Nle2xvbmdkaXZ9ezV9Jyk7XG4gIH0pO1xuXG4gIGl0KCd0b2dnbGVzIHJlYWRPbmx5JywgKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gd2l0aEZpZWxkKCk7XG5cbiAgICBpbnB1dC5wcm9wcyA9IHsgcmVhZE9ubHk6IHRydWUgfTtcbiAgICBpbnB1dC5jb21wb25lbnREaWRVcGRhdGUoeyByZWFkT25seTogZmFsc2UgfSk7XG5cbiAgICBleHBlY3QoaW5wdXQubWF0aEZpZWxkLnJlYWRPbmx5KS50b0JlKHRydWUpO1xuICB9KTtcblxuICBpdCgnY2xlYXIoKSBlbXB0aWVzIHRoZSBmaWVsZCcsICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHdpdGhGaWVsZCgpO1xuXG4gICAgaW5wdXQubWF0aEZpZWxkLnZhbHVlID0gJ2FiYyc7XG4gICAgZXhwZWN0KGlucHV0LmNsZWFyKCkpLnRvRXF1YWwoJycpO1xuICAgIGV4cGVjdChpbnB1dC5tYXRoRmllbGQudmFsdWUpLnRvRXF1YWwoJycpO1xuICB9KTtcblxuICBpdCgnc3VwcHJlc3NlcyBFbnRlciBzbyBpdCBjYW5ub3QgaW5zZXJ0IGEgbGluZSBicmVhaycsICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHdpdGhGaWVsZCgpO1xuICAgIGNvbnN0IHByZXZlbnREZWZhdWx0ID0gamVzdC5mbigpO1xuXG4gICAgaW5wdXQub25LZXlEb3duKHsga2V5OiAnRW50ZXInLCBwcmV2ZW50RGVmYXVsdCB9KTtcbiAgICBleHBlY3QocHJldmVudERlZmF1bHQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcblxuICAgIHByZXZlbnREZWZhdWx0Lm1vY2tDbGVhcigpO1xuICAgIGlucHV0Lm9uS2V5RG93bih7IGtleTogJ2EnLCBwcmV2ZW50RGVmYXVsdCB9KTtcbiAgICBleHBlY3QocHJldmVudERlZmF1bHQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIGl0KCdjb21wb25lbnREaWRVcGRhdGUgaXMgc2FmZSBiZWZvcmUgdGhlIGZpZWxkIGV4aXN0cycsICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IG5ldyBJbnB1dCh7IGxhdGV4OiAneCcgfSk7XG5cbiAgICBleHBlY3QoKCkgPT4gaW5wdXQuY29tcG9uZW50RGlkVXBkYXRlKHsgbGF0ZXg6ICcnIH0pKS5ub3QudG9UaHJvdygpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxVQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxpQkFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFB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
@@ -130,4 +130,4 @@ describe('drop-in compatibility with @pie-lib/math-input consumers', function ()
130
130
  });
131
131
  });
132
132
  });
133
- //# sourceMappingURL=drop-in-compat.test.js.map
133
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2luZGV4Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJkZXNjcmliZSIsIml0IiwiX21xJENvbW1vbk1xU3R5bGVzIiwibXEiLCJDb21tb25NcVN0eWxlcyIsImNvbW1vbk1xRm9udFN0eWxlcyIsImxvbmdkaXZTdHlsZXMiLCJzdXBzdWJTdHlsZXMiLCJleHBlY3QiLCJ0b0JlRGVmaW5lZCIsIl9tcSRDb21tb25NcVN0eWxlczIiLCJjb21tb25NcUtleWJvYXJkU3R5bGVzIiwibm90IiwidG9UaHJvdyIsIl9tcSRDb21tb25NcVN0eWxlczMiLCJTdHlsZWQiLCJzdHlsZWQiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiTWF0aEVkaXRvciIsIklucHV0Iiwid2lkdGgiLCJsYXRleCIsIm9uQ2hhbmdlIiwicGFkZGluZyIsIl9yZW5kZXIiLCJjb250YWluZXIiLCJmaXJzdENoaWxkIiwidG9CZVRydXRoeSIsImNsYXNzTmFtZSIsIlN0YXRpYyIsIm9uRm9jdXMiLCJvbkJsdXIiLCJvblN1YkZpZWxkQ2hhbmdlIiwicG9pbnRlckV2ZW50cyIsInBrZyIsIm5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2Ryb3AtaW4tY29tcGF0LnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcblxuaW1wb3J0IHsgbXEgfSBmcm9tICcuLi9pbmRleCc7XG5cbi8qKlxuICogRXhlcmNpc2VzIHRoZSBleGFjdCBjYWxsIHBhdHRlcm5zIHJlYWwgY29uc3VtZXJzIHVzZSBhZ2FpbnN0XG4gKiBAcGllLWxpYi9tYXRoLWlucHV0LCB0byBjYXRjaCBkcm9wLWluIGluY29tcGF0aWJpbGl0aWVzLlxuICpcbiAqIFNvdXJjZXM6XG4gKiAgLSBwYWNrYWdlcy9tYXRoLXRvb2xiYXIvc3JjL2VkaXRvci1hbmQtcGFkLmpzeDoxNiwxODVcbiAqICAtIHBhY2thZ2VzL21hdGgtdG9vbGJhci9zcmMvbWF0aC1wcmV2aWV3LmpzeDo4LDE1NlxuICogIC0gcGFja2FnZXMvZWRpdGFibGUtaHRtbC9zcmMvcGx1Z2lucy9yZXNwQXJlYS9tYXRoLXRlbXBsYXRlZC9pbmRleC5qc3g6OTJcbiAqICAtIHBhY2thZ2VzL2VkaXRhYmxlLWh0bWwtdGlwLXRhcC9zcmMvY29tcG9uZW50cy9yZXNwQXJlYS9NYXRoVGVtcGxhdGVkLmpzeDoxMTFcbiAqL1xuZGVzY3JpYmUoJ2Ryb3AtaW4gY29tcGF0aWJpbGl0eSB3aXRoIEBwaWUtbGliL21hdGgtaW5wdXQgY29uc3VtZXJzJywgKCkgPT4ge1xuICBkZXNjcmliZSgnbXEuQ29tbW9uTXFTdHlsZXMgZGVzdHJ1Y3R1cmluZycsICgpID0+IHtcbiAgICBpdCgnbWF0aC1wcmV2aWV3LmpzeDogeyBjb21tb25NcUZvbnRTdHlsZXMsIGxvbmdkaXZTdHlsZXMsIHN1cHN1YlN0eWxlcyB9JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb21tb25NcUZvbnRTdHlsZXMsIGxvbmdkaXZTdHlsZXMsIHN1cHN1YlN0eWxlcyB9ID0gbXEuQ29tbW9uTXFTdHlsZXM7XG5cbiAgICAgIGV4cGVjdChjb21tb25NcUZvbnRTdHlsZXMpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QobG9uZ2RpdlN0eWxlcykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChzdXBzdWJTdHlsZXMpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZWRpdG9yLWFuZC1wYWQuanN4OiBhbHNvIHsgY29tbW9uTXFLZXlib2FyZFN0eWxlcyB9JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb21tb25NcUZvbnRTdHlsZXMsIGNvbW1vbk1xS2V5Ym9hcmRTdHlsZXMsIGxvbmdkaXZTdHlsZXMsIHN1cHN1YlN0eWxlcyB9ID0gbXEuQ29tbW9uTXFTdHlsZXM7XG5cbiAgICAgIGV4cGVjdChjb21tb25NcUtleWJvYXJkU3R5bGVzKS50b0JlRGVmaW5lZCgpO1xuICAgICAgLy8gQWxsIGZvdXIgbXVzdCBiZSBzcHJlYWRhYmxlIGludG8gYW4gZW1vdGlvbiBzdHlsZSBvYmplY3QuXG4gICAgICBleHBlY3QoKCkgPT4gKHtcbiAgICAgICAgLi4uY29tbW9uTXFGb250U3R5bGVzLFxuICAgICAgICAuLi5jb21tb25NcUtleWJvYXJkU3R5bGVzLFxuICAgICAgICAuLi5sb25nZGl2U3R5bGVzLFxuICAgICAgICAuLi5zdXBzdWJTdHlsZXMsXG4gICAgICB9KSkubm90LnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIGl0KCd0aGUgZGVzdHJ1Y3R1cmVkIGdyb3VwcyBzdXJ2aXZlIGJlaW5nIHNwcmVhZCBpbnRvIGEgc3R5bGVkIGNvbXBvbmVudCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29tbW9uTXFGb250U3R5bGVzLCBsb25nZGl2U3R5bGVzLCBzdXBzdWJTdHlsZXMgfSA9IG1xLkNvbW1vbk1xU3R5bGVzO1xuICAgICAgY29uc3QgU3R5bGVkID0gc3R5bGVkKCdkaXYnKSh7IC4uLmNvbW1vbk1xRm9udFN0eWxlcywgLi4ubG9uZ2RpdlN0eWxlcywgLi4uc3Vwc3ViU3R5bGVzIH0pO1xuXG4gICAgICBleHBlY3QoKCkgPT4gcmVuZGVyKDxTdHlsZWQgLz4pKS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbXEuSW5wdXQnLCAoKSA9PiB7XG4gICAgaXQoJ2VkaXRvci1hbmQtcGFkLmpzeDogc3R5bGVkKG1xLklucHV0KSByZW5kZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3QgTWF0aEVkaXRvciA9IHN0eWxlZChtcS5JbnB1dCkoKCkgPT4gKHsgd2lkdGg6ICcxMDAlJyB9KSk7XG5cbiAgICAgIGV4cGVjdCgoKSA9PiByZW5kZXIoPE1hdGhFZGl0b3IgbGF0ZXg9XCJcXFxcZnJhY3sxfXsyfVwiIG9uQ2hhbmdlPXsoKSA9PiB7fX0gLz4pKS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FjY2VwdHMgdGhlIGNsYXNzTmFtZSB0aGF0IHN0eWxlZCgpIGluamVjdHMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBTdHlsZWQgPSBzdHlsZWQobXEuSW5wdXQpKHsgcGFkZGluZzogNCB9KTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZCBsYXRleD1cInhcIiBvbkNoYW5nZT17KCkgPT4ge319IC8+KTtcblxuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlVHJ1dGh5KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQuY2xhc3NOYW1lKS50b0JlVHJ1dGh5KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdtcS5TdGF0aWMnLCAoKSA9PiB7XG4gICAgaXQoJ21hdGgtcHJldmlldy5qc3g6IDxtcS5TdGF0aWMgbGF0ZXggb25Gb2N1cyBvbkJsdXIgLz4nLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4gcmVuZGVyKDxtcS5TdGF0aWMgbGF0ZXg9eydcXFxcZnJhY3sxfXsyfSd9IG9uRm9jdXM9eygpID0+IHt9fSBvbkJsdXI9eygpID0+IHt9fSAvPikpLm5vdC50b1Rocm93KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnbWF0aC10ZW1wbGF0ZWQgcmVzcEFyZWE6IDxtcS5TdGF0aWMgbGF0ZXg9e3ZhbHVlfSAvPicsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiByZW5kZXIoPG1xLlN0YXRpYyBsYXRleD17J3g9MSd9IC8+KSkubm90LnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGFuc3dlci1ibG9jayBsYXRleCAodGhlIHRlbXBsYXRlZC1tYXRoIGNhc2UpIHdpdGhvdXQgdGhyb3dpbmcnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT5cbiAgICAgICAgcmVuZGVyKDxtcS5TdGF0aWMgbGF0ZXg9eyd4PVxcXFxNYXRoUXVpbGxNYXRoRmllbGRbcjFde30nfSBvblN1YkZpZWxkQ2hhbmdlPXsoKSA9PiB7fX0gLz4pLFxuICAgICAgKS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2lzIHN0eWxlYWJsZSwgYXMga2V5cGFkIGxhYmVscyB3ZXJlIGluIG1hdGgtaW5wdXQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBTdHlsZWQgPSBzdHlsZWQobXEuU3RhdGljKSh7IHBvaW50ZXJFdmVudHM6ICdub25lJyB9KTtcblxuICAgICAgZXhwZWN0KCgpID0+IHJlbmRlcig8U3R5bGVkIGxhdGV4PXsnXFxcXHBpJ30gLz4pKS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc3VyZmFjZSBwYXJpdHknLCAoKSA9PiB7XG4gICAgaXQoJ2V4cG9zZXMgZXhhY3RseSB0aGUgbmFtZXMgbWF0aC1pbnB1dCBleHBvcnRlZCcsICgpID0+IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBnbG9iYWwtcmVxdWlyZVxuICAgICAgY29uc3QgcGtnID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxuICAgICAgW1xuICAgICAgICAna2V5c0ZvckdyYWRlJyxcbiAgICAgICAgJ2FkZEJyYWNrZXRzJyxcbiAgICAgICAgJ3JlbW92ZUJyYWNrZXRzJyxcbiAgICAgICAgJ2tleXMnLFxuICAgICAgICAnSG9yaXpvbnRhbEtleXBhZCcsXG4gICAgICAgICdtcScsXG4gICAgICAgICd1cGRhdGVTcGFucycsXG4gICAgICAgICdyZWdpc3RlckVtYmVkJyxcbiAgICAgICAgJ2FwcGx5U3RhdGljTWF0aCcsXG4gICAgICBdLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgZXhwZWN0KHBrZ1tuYW1lXSkudG9CZURlZmluZWQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ21xIGV4cG9zZXMgSW5wdXQsIFN0YXRpYyBhbmQgQ29tbW9uTXFTdHlsZXMnLCAoKSA9PiB7XG4gICAgICBbJ0lucHV0JywgJ1N0YXRpYycsICdDb21tb25NcVN0eWxlcyddLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgZXhwZWN0KG1xW25hbWVdKS50b0JlRGVmaW5lZCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFBOEIsU0FBQUksUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxD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
@@ -115,4 +115,4 @@ describe('rendering', function () {
115
115
  }).not.toThrow();
116
116
  });
117
117
  });
118
- //# sourceMappingURL=index.test.js.map
118
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfaW5kZXgiLCJkZXNjcmliZSIsIml0IiwiZXhwZWN0IiwiX3R5cGVvZjIiLCJrZXlzRm9yR3JhZGUiLCJ0b0JlIiwiYWRkQnJhY2tldHMiLCJyZW1vdmVCcmFja2V0cyIsInJlZ2lzdGVyRW1iZWQiLCJhcHBseVN0YXRpY01hdGgiLCJ1cGRhdGVTcGFucyIsImtleXMiLCJ0b0JlRGVmaW5lZCIsImJhc2VTZXQiLCJtZiIsIklucHV0IiwiU3RhdGljIiwibXEiLCJub3QiLCJ0b1Rocm93IiwiX21mJENvbW1vbk1xU3R5bGVzIiwiQ29tbW9uTXFTdHlsZXMiLCJjb21tb25NcUZvbnRTdHlsZXMiLCJjb21tb25NcUtleWJvYXJkU3R5bGVzIiwibG9uZ2RpdlN0eWxlcyIsInN1cHN1YlN0eWxlcyIsImZvckVhY2giLCJzIiwidG9FcXVhbCIsInNldCIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsIl9yZW5kZXIiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiS2V5UGFkIiwib25QcmVzcyIsImNvbnRhaW5lciIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJ0b0JlR3JlYXRlclRoYW4iLCJfcmVuZGVyMiIsIm5hbWUiLCJsYXRleCIsImNhdGVnb3J5IiwidGV4dENvbnRlbnQiLCJ0b0NvbnRhaW4iLCJqZXN0IiwiZm4iLCJrZXkiLCJsYWJlbCIsIndyaXRlIiwiX3JlbmRlcjMiLCJxdWVyeVNlbGVjdG9yIiwiY2xpY2siLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsIk1hdGhJbnB1dCIsIm9uQ2hhbmdlIiwib25DbGljayIsIkhvcml6b250YWxLZXlwYWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2luZGV4LnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcblxuaW1wb3J0IHtcbiAga2V5cyxcbiAga2V5c0ZvckdyYWRlLFxuICBhZGRCcmFja2V0cyxcbiAgcmVtb3ZlQnJhY2tldHMsXG4gIHJlZ2lzdGVyRW1iZWQsXG4gIGFwcGx5U3RhdGljTWF0aCxcbiAgdXBkYXRlU3BhbnMsXG4gIG1mLFxuICBtcSxcbiAgTWF0aElucHV0LFxuICBIb3Jpem9udGFsS2V5cGFkLFxuICBLZXlQYWQsXG59IGZyb20gJy4uL2luZGV4JztcblxuZGVzY3JpYmUoJ21hdGgtaW5wdXQtbWF0aGxpdmUgcHVibGljIEFQSScsICgpID0+IHtcbiAgaXQoJ21pcnJvcnMgdGhlIEBwaWUtbGliL21hdGgtaW5wdXQgZXhwb3J0IHN1cmZhY2UnLCAoKSA9PiB7XG4gICAgZXhwZWN0KHR5cGVvZiBrZXlzRm9yR3JhZGUpLnRvQmUoJ2Z1bmN0aW9uJyk7XG4gICAgZXhwZWN0KHR5cGVvZiBhZGRCcmFja2V0cykudG9CZSgnZnVuY3Rpb24nKTtcbiAgICBleHBlY3QodHlwZW9mIHJlbW92ZUJyYWNrZXRzKS50b0JlKCdmdW5jdGlvbicpO1xuICAgIGV4cGVjdCh0eXBlb2YgcmVnaXN0ZXJFbWJlZCkudG9CZSgnZnVuY3Rpb24nKTtcbiAgICBleHBlY3QodHlwZW9mIGFwcGx5U3RhdGljTWF0aCkudG9CZSgnZnVuY3Rpb24nKTtcbiAgICBleHBlY3QodHlwZW9mIHVwZGF0ZVNwYW5zKS50b0JlKCdmdW5jdGlvbicpO1xuICAgIGV4cGVjdChrZXlzKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChrZXlzLmJhc2VTZXQpLnRvQmVEZWZpbmVkKCk7XG4gIH0pO1xuXG4gIGl0KCdleHBvcnRzIHRoZSBmaWVsZCB3cmFwcGVycyB1bmRlciBib3RoIG1mIGFuZCBtcScsICgpID0+IHtcbiAgICBleHBlY3QobWYuSW5wdXQpLnRvQmVEZWZpbmVkKCk7XG4gICAgZXhwZWN0KG1mLlN0YXRpYykudG9CZURlZmluZWQoKTtcbiAgICAvLyBgbXFgIGFsaWFzIGxldHMgYSBjb25zdW1lciBzd2FwIHBhY2thZ2VzIGJ5IGNoYW5naW5nIG9ubHkgdGhlIGltcG9ydC5cbiAgICBleHBlY3QobXEpLnRvQmUobWYpO1xuICB9KTtcblxuICBpdCgndXBkYXRlU3BhbnMgaXMgYSBzYWZlIG5vLW9wJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB1cGRhdGVTcGFucygpKS5ub3QudG9UaHJvdygpO1xuICB9KTtcblxuICBpdCgnQ29tbW9uTXFTdHlsZXMga2VlcHMgdGhlIHNoYXBlIGNvbnN1bWVycyBkZXN0cnVjdHVyZScsICgpID0+IHtcbiAgICAvLyBtYXRoLXRvb2xiYXIgZG9lczpcbiAgICAvLyAgIGNvbnN0IHsgY29tbW9uTXFGb250U3R5bGVzLCBjb21tb25NcUtleWJvYXJkU3R5bGVzLCBsb25nZGl2U3R5bGVzLCBzdXBzdWJTdHlsZXMgfVxuICAgIC8vICAgICA9IG1xLkNvbW1vbk1xU3R5bGVzO1xuICAgIGNvbnN0IHsgY29tbW9uTXFGb250U3R5bGVzLCBjb21tb25NcUtleWJvYXJkU3R5bGVzLCBsb25nZGl2U3R5bGVzLCBzdXBzdWJTdHlsZXMgfSA9IG1mLkNvbW1vbk1xU3R5bGVzO1xuXG4gICAgW2NvbW1vbk1xRm9udFN0eWxlcywgY29tbW9uTXFLZXlib2FyZFN0eWxlcywgbG9uZ2RpdlN0eWxlcywgc3Vwc3ViU3R5bGVzXS5mb3JFYWNoKChzKSA9PiB7XG4gICAgICBleHBlY3QocykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgcykudG9CZSgnb2JqZWN0Jyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdicmFja2V0IGhlbHBlcnMgcm91bmQtdHJpcCcsICgpID0+IHtcbiAgICBleHBlY3QoYWRkQnJhY2tldHMoJ3gnKSkudG9FcXVhbCgnXFxcXCh4XFxcXCknKTtcbiAgICBleHBlY3QocmVtb3ZlQnJhY2tldHMoJ1xcXFwoeFxcXFwpJykpLnRvRXF1YWwoJ3gnKTtcbiAgICBleHBlY3QocmVtb3ZlQnJhY2tldHMoYWRkQnJhY2tldHMoJ1xcXFxmcmFjezF9ezJ9JykpKS50b0VxdWFsKCdcXFxcZnJhY3sxfXsyfScpO1xuICB9KTtcblxuICBpdCgna2V5c0ZvckdyYWRlIHJldHVybnMgYSA1LXJvdyBrZXlzZXQnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2V0ID0ga2V5c0ZvckdyYWRlKCdnZW9tZXRyeScpO1xuXG4gICAgZXhwZWN0KEFycmF5LmlzQXJyYXkoc2V0KSkudG9CZSh0cnVlKTtcbiAgICBleHBlY3Qoc2V0Lmxlbmd0aCkudG9CZSg1KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgLy8gTWF0aExpdmUgaXMgYSBicm93c2VyLW9ubHkgY3VzdG9tIGVsZW1lbnQ7IGxvYWRNYXRoTGl2ZSgpIHJlc29sdmVzIGFzeW5jIGFuZFxuICAvLyBpcyBhIG5vLW9wLWlzaCB1bmRlciBqc2RvbS4gVGhlc2UgYXNzZXJ0IHRoZSBjb21wb25lbnRzIG1vdW50IHdpdGhvdXRcbiAgLy8gdGhyb3dpbmcsIHdoaWNoIGlzIHdoYXQgcmVncmVzc2VkIG1vc3Qgb2Z0ZW4gaW4gdGhlIE1hdGhRdWlsbCB2ZXJzaW9uLlxuICBpdCgnS2V5UGFkIHJlbmRlcnMgd2l0aG91dCBhIGxpdmUgTWF0aExpdmUgaW5zdGFuY2UnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8S2V5UGFkIG9uUHJlc3M9eygpID0+IHt9fSAvPik7XG5cbiAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApO1xuICB9KTtcblxuICBpdCgnS2V5UGFkIGZhbGxzIGJhY2sgdG8gcmF3IGxhdGV4IGZvciBsYWJlbHMgYmVmb3JlIE1hdGhMaXZlIGxvYWRzJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoXG4gICAgICA8S2V5UGFkIG9uUHJlc3M9eygpID0+IHt9fSBiYXNlU2V0PXtbW3sgbmFtZTogJ3BpJywgbGF0ZXg6ICdcXFxccGknLCBjYXRlZ29yeTogJ2NvbnN0YW50cycgfV1dfSAvPixcbiAgICApO1xuXG4gICAgZXhwZWN0KGNvbnRhaW5lci50ZXh0Q29udGVudCkudG9Db250YWluKCdcXFxccGknKTtcbiAgfSk7XG5cbiAgaXQoJ0tleVBhZCBmaXJlcyBvblByZXNzIHdpdGggdGhlIGtleSBkZWZpbml0aW9uJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uUHJlc3MgPSBqZXN0LmZuKCk7XG4gICAgY29uc3Qga2V5ID0geyBuYW1lOiAneCcsIGxhYmVsOiAneCcsIHdyaXRlOiAneCcsIGNhdGVnb3J5OiAndmFycycgfTtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxLZXlQYWQgb25QcmVzcz17b25QcmVzc30gYmFzZVNldD17W1trZXldXX0gLz4pO1xuXG4gICAgY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLmNsaWNrKCk7XG5cbiAgICBleHBlY3Qob25QcmVzcykudG9IYXZlQmVlbkNhbGxlZFdpdGgoa2V5KTtcbiAgfSk7XG5cbiAgaXQoJ01hdGhJbnB1dCBtb3VudHMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHJlbmRlcig8TWF0aElucHV0IGxhdGV4PVwiXFxcXGZyYWN7MX17Mn1cIiBvbkNoYW5nZT17KCkgPT4ge319IC8+KSkubm90LnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgaXQoJ0hvcml6b250YWxLZXlwYWQgbW91bnRzIGFuZCByZXBvcnRzIHRoZSBsZWdhY3kge3ZhbHVlLHR5cGV9IG1vZGVsJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uQ2xpY2sgPSBqZXN0LmZuKCk7XG5cbiAgICBleHBlY3QoKCkgPT4gcmVuZGVyKDxIb3Jpem9udGFsS2V5cGFkIG9uQ2xpY2s9e29uQ2xpY2t9IC8+KSkubm90LnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgaXQoJ1N0YXRpYyByZW5kZXJzIGRpc3BsYXktbW9kZSBsYXRleCB3aXRob3V0IGEgbWF0aGZpZWxkJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiByZW5kZXIoPG1mLlN0YXRpYyBsYXRleD1cIlxcXFxmcmFjezF9ezJ9XCIgLz4pKS5ub3QudG9UaHJvdygpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBZUFHLFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRSxZQUFNO0VBQy9DQyxFQUFFLENBQUMsZ0RBQWdELEVBQUUsWUFBTTtJQUN6REMsTUFBTSxLQUFBQyxRQUFBLGFBQVFDLG1CQUFZLEVBQUMsQ0FBQ0MsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM1Q0gsTUFBTSxLQUFBQyxRQUFBLGFBQVFHLGtCQUFXLEVBQUMsQ0FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQ0gsTUFBTSxLQUFBQyxRQUFBLGFBQVFJLHFCQUFjLEVBQUMsQ0FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM5Q0gsTUFBTSxLQUFBQyxRQUFBLGFBQVFLLG9CQUFhLEVBQUMsQ0FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM3Q0gsTUFBTSxLQUFBQyxRQUFBLGFBQVFNLHNCQUFlLEVBQUMsQ0FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMvQ0gsTUFBTSxLQUFBQyxRQUFBLGFBQVFPLGtCQUFXLEVBQUMsQ0FBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQ0gsTUFBTSxDQUFDUyxXQUFJLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7SUFDMUJWLE1BQU0sQ0FBQ1MsV0FBSSxDQUFDRSxPQUFPLENBQUMsQ0FBQ0QsV0FBVyxDQUFDLENBQUM7RUFDcEMsQ0FBQyxDQUFDO0VBRUZYLEVBQUUsQ0FBQyxpREFBaUQsRUFBRSxZQUFNO0lBQzFEQyxNQUFNLENBQUNZLFNBQUUsQ0FBQ0MsS0FBSyxDQUFDLENBQUNILFdBQVcsQ0FBQyxDQUFDO0lBQzlCVixNQUFNLENBQUNZLFNBQUUsQ0FBQ0UsTUFBTSxDQUFDLENBQUNKLFdBQVcsQ0FBQyxDQUFDO0lBQy9CO0lBQ0FWLE1BQU0sQ0FBQ2UsU0FBRSxDQUFDLENBQUNaLElBQUksQ0FBQ1MsU0FBRSxDQUFDO0VBQ3JCLENBQUMsQ0FBQztFQUVGYixFQUFFLENBQUMsNkJBQTZCLEVBQUUsWUFBTTtJQUN0Q0MsTUFBTSxDQUFDO01BQUEsT0FBTSxJQUFBUSxrQkFBVyxFQUFDLENBQUM7SUFBQSxFQUFDLENBQUNRLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDM0MsQ0FBQyxDQUFDO0VBRUZsQixFQUFFLENBQUMsc0RBQXNELEVBQUUsWUFBTTtJQUMvRDtJQUNBO0lBQ0E7SUFDQSxJQUFBbUIsa0JBQUEsR0FBb0ZOLFNBQUUsQ0FBQ08sY0FBYztNQUE3RkMsa0JBQWtCLEdBQUFGLGtCQUFBLENBQWxCRSxrQkFBa0I7TUFBRUMsc0JBQXNCLEdBQUFILGtCQUFBLENBQXRCRyxzQkFBc0I7TUFBRUMsYUFBYSxHQUFBSixrQkFBQSxDQUFiSSxhQUFhO01BQUVDLFlBQVksR0FBQUwsa0JBQUEsQ0FBWkssWUFBWTtJQUUvRSxDQUFDSCxrQkFBa0IsRUFBRUMsc0JBQXNCLEVBQUVDLGFBQWEsRUFBRUMsWUFBWSxDQUFDLENBQUNDLE9BQU8sQ0FBQyxVQUFDQyxDQUFDLEVBQUs7TUFDdkZ6QixNQUFNLENBQUN5QixDQUFDLENBQUMsQ0FBQ2YsV0FBVyxDQUFDLENBQUM7TUFDdkJWLE1BQU0sS0FBQUMsUUFBQSxhQUFRd0IsQ0FBQyxFQUFDLENBQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGSixFQUFFLENBQUMsNEJBQTRCLEVBQUUsWUFBTTtJQUNyQ0MsTUFBTSxDQUFDLElBQUFJLGtCQUFXLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ3NCLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDM0MxQixNQUFNLENBQUMsSUFBQUsscUJBQWMsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDcUIsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUM5QzFCLE1BQU0sQ0FBQyxJQUFBSyxxQkFBYyxFQUFDLElBQUFELGtCQUFXLEVBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDc0IsT0FBTyxDQUFDLGNBQWMsQ0FBQztFQUM3RSxDQUFDLENBQUM7RUFFRjNCLEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRSxZQUFNO0lBQzlDLElBQU00QixHQUFHLEdBQUcsSUFBQXpCLG1CQUFZLEVBQUMsVUFBVSxDQUFDO0lBRXBDRixNQUFNLENBQUM0QixLQUFLLENBQUNDLE9BQU8sQ0FBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckNILE1BQU0sQ0FBQzJCLEdBQUcsQ0FBQ0csTUFBTSxDQUFDLENBQUMzQixJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQzVCLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGTCxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQU07RUFDMUI7RUFDQTtFQUNBO0VBQ0FDLEVBQUUsQ0FBQyxpREFBaUQsRUFBRSxZQUFNO0lBQzFELElBQUFnQyxPQUFBLEdBQXNCLElBQUFDLGNBQU0sZUFBQ3ZDLE1BQUEsWUFBQXdDLGFBQUEsQ0FBQ3BDLE1BQUEsQ0FBQXFDLE1BQU07UUFBQ0MsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBUSxDQUFDO01BQUUsQ0FBRSxDQUFDLENBQUM7TUFBbkRDLFNBQVMsR0FBQUwsT0FBQSxDQUFUSyxTQUFTO0lBRWpCcEMsTUFBTSxDQUFDb0MsU0FBUyxDQUFDQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQ1AsTUFBTSxDQUFDLENBQUNRLGVBQWUsQ0FBQyxDQUFDLENBQUM7RUFDeEUsQ0FBQyxDQUFDO0VBRUZ2QyxFQUFFLENBQUMsaUVBQWlFLEVBQUUsWUFBTTtJQUMxRSxJQUFBd0MsUUFBQSxHQUFzQixJQUFBUCxjQUFNLGVBQzFCdkMsTUFBQSxZQUFBd0MsYUFBQSxDQUFDcEMsTUFBQSxDQUFBcUMsTUFBTTtRQUFDQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRLENBQUMsQ0FBRTtRQUFDeEIsT0FBTyxFQUFFLENBQUMsQ0FBQztVQUFFNkIsSUFBSSxFQUFFLElBQUk7VUFBRUMsS0FBSyxFQUFFLE1BQU07VUFBRUMsUUFBUSxFQUFFO1FBQVksQ0FBQyxDQUFDO01BQUUsQ0FBRSxDQUNqRyxDQUFDO01BRk9OLFNBQVMsR0FBQUcsUUFBQSxDQUFUSCxTQUFTO0lBSWpCcEMsTUFBTSxDQUFDb0MsU0FBUyxDQUFDTyxXQUFXLENBQUMsQ0FBQ0MsU0FBUyxDQUFDLE1BQU0sQ0FBQztFQUNqRCxDQUFDLENBQUM7RUFFRjdDLEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxZQUFNO0lBQ3ZELElBQU1vQyxPQUFPLEdBQUdVLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDekIsSUFBTUMsR0FBRyxHQUFHO01BQUVQLElBQUksRUFBRSxHQUFHO01BQUVRLEtBQUssRUFBRSxHQUFHO01BQUVDLEtBQUssRUFBRSxHQUFHO01BQUVQLFFBQVEsRUFBRTtJQUFPLENBQUM7SUFDbkUsSUFBQVEsUUFBQSxHQUFzQixJQUFBbEIsY0FBTSxlQUFDdkMsTUFBQSxZQUFBd0MsYUFBQSxDQUFDcEMsTUFBQSxDQUFBcUMsTUFBTTtRQUFDQyxPQUFPLEVBQUVBLE9BQVE7UUFBQ3hCLE9BQU8sRUFBRSxDQUFDLENBQUNvQyxHQUFHLENBQUM7TUFBRSxDQUFFLENBQUMsQ0FBQztNQUFwRVgsU0FBUyxHQUFBYyxRQUFBLENBQVRkLFNBQVM7SUFFakJBLFNBQVMsQ0FBQ2UsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDQyxLQUFLLENBQUMsQ0FBQztJQUV6Q3BELE1BQU0sQ0FBQ21DLE9BQU8sQ0FBQyxDQUFDa0Isb0JBQW9CLENBQUNOLEdBQUcsQ0FBQztFQUMzQyxDQUFDLENBQUM7RUFFRmhELEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxZQUFNO0lBQzNCQyxNQUFNLENBQUM7TUFBQSxPQUFNLElBQUFnQyxjQUFNLGVBQUN2QyxNQUFBLFlBQUF3QyxhQUFBLENBQUNwQyxNQUFBLENBQUF5RCxTQUFTO1FBQUNiLEtBQUssRUFBQyxnQkFBYztRQUFDYyxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBQSxFQUFRLENBQUM7TUFBRSxDQUFFLENBQUMsQ0FBQztJQUFBLEVBQUMsQ0FBQ3ZDLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDNUYsQ0FBQyxDQUFDO0VBRUZsQixFQUFFLENBQUMsbUVBQW1FLEVBQUUsWUFBTTtJQUM1RSxJQUFNeUQsT0FBTyxHQUFHWCxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0lBRXpCOUMsTUFBTSxDQUFDO01BQUEsT0FBTSxJQUFBZ0MsY0FBTSxlQUFDdkMsTUFBQSxZQUFBd0MsYUFBQSxDQUFDcEMsTUFBQSxDQUFBNEQsZ0JBQWdCO1FBQUNELE9BQU8sRUFBRUE7TUFBUSxDQUFFLENBQUMsQ0FBQztJQUFBLEVBQUMsQ0FBQ3hDLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDNUUsQ0FBQyxDQUFDO0VBRUZsQixFQUFFLENBQUMsdURBQXVELEVBQUUsWUFBTTtJQUNoRUMsTUFBTSxDQUFDO01BQUEsT0FBTSxJQUFBZ0MsY0FBTSxlQUFDdkMsTUFBQSxZQUFBd0MsYUFBQSxDQUFDcEMsTUFBQSxDQUFBZSxFQUFFLENBQUNFLE1BQU07UUFBQzJCLEtBQUssRUFBQztNQUFjLENBQUUsQ0FBQyxDQUFDO0lBQUEsRUFBQyxDQUFDekIsR0FBRyxDQUFDQyxPQUFPLENBQUMsQ0FBQztFQUN4RSxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -152,4 +152,4 @@ describe('Input imperative API (drives math-toolbar)', function () {
152
152
  });
153
153
  });
154
154
  });
155
- //# sourceMappingURL=input-imperative.test.js.map
155
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGF0ZXhCcmlkZ2UiLCJyZXF1aXJlIiwiX2lucHV0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInN0dWJGaWVsZCIsImNhbGxzIiwiaW5zZXJ0IiwiZXhlY3V0ZUNvbW1hbmQiLCJmb2N1cyIsInZhbHVlIiwiZ2V0VmFsdWUiLCJ2IiwicHVzaCIsImJsdXIiLCJ3aXRoRmllbGQiLCJpbnB1dCIsIklucHV0IiwiZiIsIm1hdGhGaWVsZCIsImRlc2NyaWJlIiwiaXQiLCJfd2l0aEZpZWxkIiwia2V5c3Ryb2tlIiwiZXhwZWN0IiwidG9FcXVhbCIsIl93aXRoRmllbGQyIiwiX3dpdGhGaWVsZDMiLCJFcnJvciIsIm5vdCIsInRvVGhyb3ciLCJmb3JFYWNoIiwiayIsIktFWVNUUk9LRVMiLCJ0b0JlRGVmaW5lZCIsIl93aXRoRmllbGQ0IiwiY29tbWFuZCIsIl93aXRoRmllbGQ1IiwiX3dpdGhGaWVsZDYiLCJrZXlUb0FjdGlvbiIsImxhdGV4IiwiY2xlYXIiLCJ3cml0ZSIsInNldExhdGV4IiwiZWxlbWVudCIsInRvQmVVbmRlZmluZWQiLCJfd2l0aEZpZWxkNyIsIm1xQ29tcGF0IiwiX3dpdGhGaWVsZDgiLCJlbCIsInRvQmUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2lucHV0LWltcGVyYXRpdmUudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS0VZU1RST0tFUywga2V5VG9BY3Rpb24gfSBmcm9tICcuLi9sYXRleC1icmlkZ2UnO1xuaW1wb3J0IElucHV0IGZyb20gJy4uL21mL2lucHV0JztcblxuLyoqXG4gKiBUaGUgaW1wZXJhdGl2ZSBzdXJmYWNlIHRoYXQgQHBpZS1saWIvbWF0aC10b29sYmFyIGRyaXZlc1xuICogKGVkaXRvci1hbmQtcGFkLmpzeDogY2xlYXIvY29tbWFuZC9rZXlzdHJva2Uvd3JpdGUvbGF0ZXgpLlxuICpcbiAqIFRoZXNlIGNhbGwgdGhlIG1ldGhvZHMgYWdhaW5zdCBhIHN0dWIgbWF0aGZpZWxkLCBiZWNhdXNlIGEgcmVhbFxuICogPG1hdGgtZmllbGQ+IG5lZWRzIGEgYnJvd3Nlci4gV2hhdCBtYXR0ZXJzIGhlcmUgaXMgdGhlICp0cmFuc2xhdGlvbio6XG4gKiBNYXRoUXVpbGwtZXJhIGFyZ3VtZW50cyBtdXN0IGJlY29tZSB2YWxpZCBNYXRoTGl2ZSBvcGVyYXRpb25zLlxuICovXG5jb25zdCBzdHViRmllbGQgPSAoKSA9PiB7XG4gIGNvbnN0IGNhbGxzID0geyBpbnNlcnQ6IFtdLCBleGVjdXRlQ29tbWFuZDogW10sIGZvY3VzOiAwIH07XG5cbiAgcmV0dXJuIHtcbiAgICBjYWxscyxcbiAgICB2YWx1ZTogJycsXG4gICAgZ2V0VmFsdWU6ICgpID0+ICcnLFxuICAgIGluc2VydCh2KSB7XG4gICAgICBjYWxscy5pbnNlcnQucHVzaCh2KTtcbiAgICB9LFxuICAgIGV4ZWN1dGVDb21tYW5kKHYpIHtcbiAgICAgIGNhbGxzLmV4ZWN1dGVDb21tYW5kLnB1c2godik7XG4gICAgfSxcbiAgICBmb2N1cygpIHtcbiAgICAgIGNhbGxzLmZvY3VzKys7XG4gICAgfSxcbiAgICBibHVyKCkge30sXG4gIH07XG59O1xuXG5jb25zdCB3aXRoRmllbGQgPSAoKSA9PiB7XG4gIGNvbnN0IGlucHV0ID0gbmV3IElucHV0KHt9KTtcbiAgY29uc3QgZiA9IHN0dWJGaWVsZCgpO1xuXG4gIGlucHV0Lm1hdGhGaWVsZCA9IGY7XG5cbiAgcmV0dXJuIHsgaW5wdXQsIGYgfTtcbn07XG5cbmRlc2NyaWJlKCdJbnB1dCBpbXBlcmF0aXZlIEFQSSAoZHJpdmVzIG1hdGgtdG9vbGJhciknLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdrZXlzdHJva2UnLCAoKSA9PiB7XG4gICAgaXQoJ21hcHMgTWF0aFF1aWxsIGtleXN0cm9rZSBuYW1lcyB0byBNYXRoTGl2ZSBzZWxlY3RvcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGlucHV0LCBmIH0gPSB3aXRoRmllbGQoKTtcblxuICAgICAgaW5wdXQua2V5c3Ryb2tlKCdMZWZ0Jyk7XG4gICAgICBpbnB1dC5rZXlzdHJva2UoJ1JpZ2h0Jyk7XG4gICAgICBpbnB1dC5rZXlzdHJva2UoJ0JhY2tzcGFjZScpO1xuXG4gICAgICBleHBlY3QoZi5jYWxscy5leGVjdXRlQ29tbWFuZCkudG9FcXVhbChbJ21vdmVUb1ByZXZpb3VzQ2hhcicsICdtb3ZlVG9OZXh0Q2hhcicsICdkZWxldGVCYWNrd2FyZCddKTtcbiAgICB9KTtcblxuICAgIGl0KCdwYXNzZXMgYW4gdW5rbm93biB2YWx1ZSB0aHJvdWdoIGFzIGEgc2VsZWN0b3InLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGlucHV0LCBmIH0gPSB3aXRoRmllbGQoKTtcblxuICAgICAgaW5wdXQua2V5c3Ryb2tlKCdkZWxldGVGb3J3YXJkJyk7XG5cbiAgICAgIGV4cGVjdChmLmNhbGxzLmV4ZWN1dGVDb21tYW5kKS50b0VxdWFsKFsnZGVsZXRlRm9yd2FyZCddKTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdCB0aHJvdyB3aGVuIHRoZSBlbmdpbmUgcmVqZWN0cyB0aGUgc2VsZWN0b3InLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGlucHV0IH0gPSB3aXRoRmllbGQoKTtcblxuICAgICAgaW5wdXQubWF0aEZpZWxkLmV4ZWN1dGVDb21tYW5kID0gKCkgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gY29tbWFuZCcpO1xuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IGlucHV0LmtleXN0cm9rZSgnTm9uc2Vuc2UnKSkubm90LnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIGl0KCdjb3ZlcnMgZXZlcnkga2V5c3Ryb2tlIHRoZSBrZXlwYWQgZW1pdHMnLCAoKSA9PiB7XG4gICAgICAvLyBuYXZpZ2F0aW9uLmpzIC8gZWRpdC5qcyBvbmx5IHByb2R1Y2UgdGhlc2UgdGhyZWVcbiAgICAgIFsnTGVmdCcsICdSaWdodCcsICdCYWNrc3BhY2UnXS5mb3JFYWNoKChrKSA9PiBleHBlY3QoS0VZU1RST0tFU1trXSkudG9CZURlZmluZWQoKSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb21tYW5kJywgKCkgPT4ge1xuICAgIGl0KCdleHBhbmRzIGFyZ3VtZW50LXRha2luZyBjb21tYW5kcyBpbnRvIHBsYWNlaG9sZGVycycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgaW5wdXQsIGYgfSA9IHdpdGhGaWVsZCgpO1xuXG4gICAgICBpbnB1dC5jb21tYW5kKCdcXFxcZnJhYycpO1xuXG4gICAgICAvLyBhIGJhcmUgXFxmcmFjIHdvdWxkIGdpdmUgbm8gZWRpdGFibGUgc2xvdHNcbiAgICAgIGV4cGVjdChmLmNhbGxzLmluc2VydCkudG9FcXVhbChbJ1xcXFxmcmFjeyM/fXsjP30nXSk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBhcnJheSBjb21tYW5kcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgaW5wdXQsIGYgfSA9IHdpdGhGaWVsZCgpO1xuXG4gICAgICBpbnB1dC5jb21tYW5kKFsnXFxcXGxvZycsICdfJ10pO1xuXG4gICAgICBleHBlY3QoZi5jYWxscy5pbnNlcnQpLnRvRXF1YWwoWydcXFxcbG9nX3sjP30nXSk7XG4gICAgfSk7XG5cbiAgICBpdCgncGFzc2VzIGFyZ3VtZW50LWxlc3MgY29tbWFuZHMgdGhyb3VnaCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgaW5wdXQsIGYgfSA9IHdpdGhGaWVsZCgpO1xuXG4gICAgICBpbnB1dC5jb21tYW5kKCdcXFxccGknKTtcblxuICAgICAgZXhwZWN0KGYuY2FsbHMuaW5zZXJ0KS50b0VxdWFsKFsnXFxcXHBpJ10pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FncmVlcyB3aXRoIGtleVRvQWN0aW9uJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGtleVRvQWN0aW9uKHsgY29tbWFuZDogJ1xcXFxzcXJ0JyB9KS52YWx1ZSkudG9FcXVhbCgnXFxcXHNxcnR7Iz99Jyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzYWZldHkgYmVmb3JlIE1hdGhMaXZlIGxvYWRzJywgKCkgPT4ge1xuICAgIGl0KCdldmVyeSBtZXRob2QgaXMgYSBuby1vcCByYXRoZXIgdGhhbiBhIGNyYXNoJywgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSBuZXcgSW5wdXQoe30pO1xuXG4gICAgICAvLyBtYXRoRmllbGQgaXMgdW5kZWZpbmVkIHVudGlsIGxvYWRNYXRoTGl2ZSgpIHJlc29sdmVzXG4gICAgICBleHBlY3QoaW5wdXQubGF0ZXgoKSkudG9FcXVhbCgnJyk7XG4gICAgICBleHBlY3QoaW5wdXQuY2xlYXIoKSkudG9FcXVhbCgnJyk7XG4gICAgICBleHBlY3QoaW5wdXQuY29tbWFuZCgnXFxcXGZyYWMnKSkudG9FcXVhbCgnJyk7XG4gICAgICBleHBlY3QoaW5wdXQua2V5c3Ryb2tlKCdMZWZ0JykpLnRvRXF1YWwoJycpO1xuICAgICAgZXhwZWN0KGlucHV0LndyaXRlKCd4JykpLnRvRXF1YWwoJycpO1xuICAgICAgZXhwZWN0KCgpID0+IGlucHV0LmZvY3VzKCkpLm5vdC50b1Rocm93KCk7XG4gICAgICBleHBlY3QoKCkgPT4gaW5wdXQuYmx1cigpKS5ub3QudG9UaHJvdygpO1xuICAgICAgZXhwZWN0KCgpID0+IGlucHV0LnNldExhdGV4KCd4JykpLm5vdC50b1Rocm93KCk7XG4gICAgICBleHBlY3QoaW5wdXQuZWxlbWVudCkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbXFDb21wYXQgZmFjYWRlJywgKCkgPT4ge1xuICAgIC8vIG1hdGgtdG9vbGJhciB1c2VkIHRvIGNhbGwgdGhpcy5pbnB1dC5tYXRoRmllbGQubGF0ZXgoKTsgZXh0ZXJuYWxcbiAgICAvLyBjb25zdW1lcnMgbWF5IHN0aWxsIGRvIHRoZSBzYW1lLlxuICAgIGl0KCdleHBvc2VzIGxhdGV4KCkgYXMgYSBnZXR0ZXInLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGlucHV0IH0gPSB3aXRoRmllbGQoKTtcblxuICAgICAgaW5wdXQubWF0aEZpZWxkLmdldFZhbHVlID0gKCkgPT4gJ1xcXFxmcmFjezF9ezJ9JztcblxuICAgICAgZXhwZWN0KGlucHV0Lm1xQ29tcGF0LmxhdGV4KCkpLnRvRXF1YWwoJ1xcXFxmcmFjezF9ezJ9Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZXhwb3NlcyBsYXRleCh2KSBhcyBhIHNldHRlciBhbmQgZWwoKScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgaW5wdXQsIGYgfSA9IHdpdGhGaWVsZCgpO1xuXG4gICAgICBpbnB1dC5tcUNvbXBhdC5sYXRleCgneCsxJyk7XG4gICAgICBleHBlY3QoZi52YWx1ZSkudG9FcXVhbCgneCsxJyk7XG4gICAgICBleHBlY3QoaW5wdXQubXFDb21wYXQuZWwoKSkudG9CZShmKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBQUEsWUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1HLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFBLEVBQVM7RUFDdEIsSUFBTUMsS0FBSyxHQUFHO0lBQUVDLE1BQU0sRUFBRSxFQUFFO0lBQUVDLGNBQWMsRUFBRSxFQUFFO0lBQUVDLEtBQUssRUFBRTtFQUFFLENBQUM7RUFFMUQsT0FBTztJQUNMSCxLQUFLLEVBQUxBLEtBQUs7SUFDTEksS0FBSyxFQUFFLEVBQUU7SUFDVEMsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUE7TUFBQSxPQUFRLEVBQUU7SUFBQTtJQUNsQkosTUFBTSxXQUFOQSxNQUFNQSxDQUFDSyxDQUFDLEVBQUU7TUFDUk4sS0FBSyxDQUFDQyxNQUFNLENBQUNNLElBQUksQ0FBQ0QsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFDREosY0FBYyxXQUFkQSxjQUFjQSxDQUFDSSxDQUFDLEVBQUU7TUFDaEJOLEtBQUssQ0FBQ0UsY0FBYyxDQUFDSyxJQUFJLENBQUNELENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0RILEtBQUssV0FBTEEsS0FBS0EsQ0FBQSxFQUFHO01BQ05ILEtBQUssQ0FBQ0csS0FBSyxFQUFFO0lBQ2YsQ0FBQztJQUNESyxJQUFJLFdBQUpBLElBQUlBLENBQUEsRUFBRyxDQUFDO0VBQ1YsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFNQyxTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBQSxFQUFTO0VBQ3RCLElBQU1DLEtBQUssR0FBRyxJQUFJQyxpQkFBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQzNCLElBQU1DLENBQUMsR0FBR2IsU0FBUyxDQUFDLENBQUM7RUFFckJXLEtBQUssQ0FBQ0csU0FBUyxHQUFHRCxDQUFDO0VBRW5CLE9BQU87SUFBRUYsS0FBSyxFQUFMQSxLQUFLO0lBQUVFLENBQUMsRUFBREE7RUFBRSxDQUFDO0FBQ3JCLENBQUM7QUFFREUsUUFBUSxDQUFDLDRDQUE0QyxFQUFFLFlBQU07RUFDM0RBLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtJQUMxQkMsRUFBRSxDQUFDLHNEQUFzRCxFQUFFLFlBQU07TUFDL0QsSUFBQUMsVUFBQSxHQUFxQlAsU0FBUyxDQUFDLENBQUM7UUFBeEJDLEtBQUssR0FBQU0sVUFBQSxDQUFMTixLQUFLO1FBQUVFLENBQUMsR0FBQUksVUFBQSxDQUFESixDQUFDO01BRWhCRixLQUFLLENBQUNPLFNBQVMsQ0FBQyxNQUFNLENBQUM7TUFDdkJQLEtBQUssQ0FBQ08sU0FBUyxDQUFDLE9BQU8sQ0FBQztNQUN4QlAsS0FBSyxDQUFDTyxTQUFTLENBQUMsV0FBVyxDQUFDO01BRTVCQyxNQUFNLENBQUNOLENBQUMsQ0FBQ1osS0FBSyxDQUFDRSxjQUFjLENBQUMsQ0FBQ2lCLE9BQU8sQ0FBQyxDQUFDLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDcEcsQ0FBQyxDQUFDO0lBRUZKLEVBQUUsQ0FBQywrQ0FBK0MsRUFBRSxZQUFNO01BQ3hELElBQUFLLFdBQUEsR0FBcUJYLFNBQVMsQ0FBQyxDQUFDO1FBQXhCQyxLQUFLLEdBQUFVLFdBQUEsQ0FBTFYsS0FBSztRQUFFRSxDQUFDLEdBQUFRLFdBQUEsQ0FBRFIsQ0FBQztNQUVoQkYsS0FBSyxDQUFDTyxTQUFTLENBQUMsZUFBZSxDQUFDO01BRWhDQyxNQUFNLENBQUNOLENBQUMsQ0FBQ1osS0FBSyxDQUFDRSxjQUFjLENBQUMsQ0FBQ2lCLE9BQU8sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzNELENBQUMsQ0FBQztJQUVGSixFQUFFLENBQUMscURBQXFELEVBQUUsWUFBTTtNQUM5RCxJQUFBTSxXQUFBLEdBQWtCWixTQUFTLENBQUMsQ0FBQztRQUFyQkMsS0FBSyxHQUFBVyxXQUFBLENBQUxYLEtBQUs7TUFFYkEsS0FBSyxDQUFDRyxTQUFTLENBQUNYLGNBQWMsR0FBRyxZQUFNO1FBQ3JDLE1BQU0sSUFBSW9CLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztNQUNwQyxDQUFDO01BRURKLE1BQU0sQ0FBQztRQUFBLE9BQU1SLEtBQUssQ0FBQ08sU0FBUyxDQUFDLFVBQVUsQ0FBQztNQUFBLEVBQUMsQ0FBQ00sR0FBRyxDQUFDQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQUM7SUFFRlQsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLFlBQU07TUFDbEQ7TUFDQSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUNVLE9BQU8sQ0FBQyxVQUFDQyxDQUFDO1FBQUEsT0FBS1IsTUFBTSxDQUFDUyx1QkFBVSxDQUFDRCxDQUFDLENBQUMsQ0FBQyxDQUFDRSxXQUFXLENBQUMsQ0FBQztNQUFBLEVBQUM7SUFDcEYsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0VBRUZkLFFBQVEsQ0FBQyxTQUFTLEVBQUUsWUFBTTtJQUN4QkMsRUFBRSxDQUFDLG9EQUFvRCxFQUFFLFlBQU07TUFDN0QsSUFBQWMsV0FBQSxHQUFxQnBCLFNBQVMsQ0FBQyxDQUFDO1FBQXhCQyxLQUFLLEdBQUFtQixXQUFBLENBQUxuQixLQUFLO1FBQUVFLENBQUMsR0FBQWlCLFdBQUEsQ0FBRGpCLENBQUM7TUFFaEJGLEtBQUssQ0FBQ29CLE9BQU8sQ0FBQyxRQUFRLENBQUM7O01BRXZCO01BQ0FaLE1BQU0sQ0FBQ04sQ0FBQyxDQUFDWixLQUFLLENBQUNDLE1BQU0sQ0FBQyxDQUFDa0IsT0FBTyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRCxDQUFDLENBQUM7SUFFRkosRUFBRSxDQUFDLHdCQUF3QixFQUFFLFlBQU07TUFDakMsSUFBQWdCLFdBQUEsR0FBcUJ0QixTQUFTLENBQUMsQ0FBQztRQUF4QkMsS0FBSyxHQUFBcUIsV0FBQSxDQUFMckIsS0FBSztRQUFFRSxDQUFDLEdBQUFtQixXQUFBLENBQURuQixDQUFDO01BRWhCRixLQUFLLENBQUNvQixPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7TUFFN0JaLE1BQU0sQ0FBQ04sQ0FBQyxDQUFDWixLQUFLLENBQUNDLE1BQU0sQ0FBQyxDQUFDa0IsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDO0lBRUZKLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxZQUFNO01BQ2hELElBQUFpQixXQUFBLEdBQXFCdkIsU0FBUyxDQUFDLENBQUM7UUFBeEJDLEtBQUssR0FBQXNCLFdBQUEsQ0FBTHRCLEtBQUs7UUFBRUUsQ0FBQyxHQUFBb0IsV0FBQSxDQUFEcEIsQ0FBQztNQUVoQkYsS0FBSyxDQUFDb0IsT0FBTyxDQUFDLE1BQU0sQ0FBQztNQUVyQlosTUFBTSxDQUFDTixDQUFDLENBQUNaLEtBQUssQ0FBQ0MsTUFBTSxDQUFDLENBQUNrQixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDLENBQUM7SUFFRkosRUFBRSxDQUFDLHlCQUF5QixFQUFFLFlBQU07TUFDbENHLE1BQU0sQ0FBQyxJQUFBZSx3QkFBVyxFQUFDO1FBQUVILE9BQU8sRUFBRTtNQUFTLENBQUMsQ0FBQyxDQUFDMUIsS0FBSyxDQUFDLENBQUNlLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDeEUsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0VBRUZMLFFBQVEsQ0FBQyw4QkFBOEIsRUFBRSxZQUFNO0lBQzdDQyxFQUFFLENBQUMsNkNBQTZDLEVBQUUsWUFBTTtNQUN0RCxJQUFNTCxLQUFLLEdBQUcsSUFBSUMsaUJBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzs7TUFFM0I7TUFDQU8sTUFBTSxDQUFDUixLQUFLLENBQUN3QixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUNmLE9BQU8sQ0FBQyxFQUFFLENBQUM7TUFDakNELE1BQU0sQ0FBQ1IsS0FBSyxDQUFDeUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDaEIsT0FBTyxDQUFDLEVBQUUsQ0FBQztNQUNqQ0QsTUFBTSxDQUFDUixLQUFLLENBQUNvQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQ1gsT0FBTyxDQUFDLEVBQUUsQ0FBQztNQUMzQ0QsTUFBTSxDQUFDUixLQUFLLENBQUNPLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDRSxPQUFPLENBQUMsRUFBRSxDQUFDO01BQzNDRCxNQUFNLENBQUNSLEtBQUssQ0FBQzBCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDakIsT0FBTyxDQUFDLEVBQUUsQ0FBQztNQUNwQ0QsTUFBTSxDQUFDO1FBQUEsT0FBTVIsS0FBSyxDQUFDUCxLQUFLLENBQUMsQ0FBQztNQUFBLEVBQUMsQ0FBQ29CLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLENBQUM7TUFDekNOLE1BQU0sQ0FBQztRQUFBLE9BQU1SLEtBQUssQ0FBQ0YsSUFBSSxDQUFDLENBQUM7TUFBQSxFQUFDLENBQUNlLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLENBQUM7TUFDeENOLE1BQU0sQ0FBQztRQUFBLE9BQU1SLEtBQUssQ0FBQzJCLFFBQVEsQ0FBQyxHQUFHLENBQUM7TUFBQSxFQUFDLENBQUNkLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLENBQUM7TUFDL0NOLE1BQU0sQ0FBQ1IsS0FBSyxDQUFDNEIsT0FBTyxDQUFDLENBQUNDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGekIsUUFBUSxDQUFDLGlCQUFpQixFQUFFLFlBQU07SUFDaEM7SUFDQTtJQUNBQyxFQUFFLENBQUMsNkJBQTZCLEVBQUUsWUFBTTtNQUN0QyxJQUFBeUIsV0FBQSxHQUFrQi9CLFNBQVMsQ0FBQyxDQUFDO1FBQXJCQyxLQUFLLEdBQUE4QixXQUFBLENBQUw5QixLQUFLO01BRWJBLEtBQUssQ0FBQ0csU0FBUyxDQUFDUixRQUFRLEdBQUc7UUFBQSxPQUFNLGNBQWM7TUFBQTtNQUUvQ2EsTUFBTSxDQUFDUixLQUFLLENBQUMrQixRQUFRLENBQUNQLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQ2YsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUN4RCxDQUFDLENBQUM7SUFFRkosRUFBRSxDQUFDLHVDQUF1QyxFQUFFLFlBQU07TUFDaEQsSUFBQTJCLFdBQUEsR0FBcUJqQyxTQUFTLENBQUMsQ0FBQztRQUF4QkMsS0FBSyxHQUFBZ0MsV0FBQSxDQUFMaEMsS0FBSztRQUFFRSxDQUFDLEdBQUE4QixXQUFBLENBQUQ5QixDQUFDO01BRWhCRixLQUFLLENBQUMrQixRQUFRLENBQUNQLEtBQUssQ0FBQyxLQUFLLENBQUM7TUFDM0JoQixNQUFNLENBQUNOLENBQUMsQ0FBQ1IsS0FBSyxDQUFDLENBQUNlLE9BQU8sQ0FBQyxLQUFLLENBQUM7TUFDOUJELE1BQU0sQ0FBQ1IsS0FBSyxDQUFDK0IsUUFBUSxDQUFDRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQ2hDLENBQUMsQ0FBQztJQUNyQyxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
4
5
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
5
6
  var _latexBridge = require("../latex-bridge");
6
7
  /**
@@ -76,6 +77,60 @@ describe('keypad label display normalisation', function () {
76
77
  // width, because .ML__center is the stretchy's containing block.
77
78
  expect(placeholderStyles['& .ML__center:has(.ML__stretchy)'].marginLeft).toEqual('0 !important');
78
79
  });
80
+
81
+ // MathLive sets the index of \sqrt[n]{x} in scriptscriptstyle - an inline
82
+ // `font-size: 50%` - which is too small to read on the nth-root key and in
83
+ // authored radicals. It is scaled up by half, to 75%.
84
+ describe('radical index size', function () {
85
+ // Real MathLive 0.110 output for `\sqrt[1]{2}`, trimmed to the index. The
86
+ // selector walks this exact chain, so this fixture is what pins it down.
87
+ var INDEX_MARKUP = "\n <span class=\"ML__base\">\n <span class=\"ML__sqrt-index\">\n <span class=\"ML__vlist-t\"><span class=\"ML__vlist-r\"><span class=\"ML__vlist\" style=\"height:0.78em\">\n <span style=\"top:-3.45em\">\n <span class=\"ML__pstrut\" style=\"height:3em\"></span>\n <span id=\"index-size\" style=\"height:0.33em;display:inline-block;font-size: 50%\">\n <span class=\"ML__cmr\">1</span>\n <span id=\"nested-size\" style=\"font-size: 50%\">nested</span>\n </span>\n </span>\n </span></span></span>\n </span>\n <span class=\"ML__sqrt-sign\"><span class=\"ML__delim-size1\">&#8730;</span></span>\n </span>";
88
+ var rule = function rule() {
89
+ // eslint-disable-next-line global-require
90
+ var _require2 = require('../mf/common-styles'),
91
+ rootIndexStyles = _require2.rootIndexStyles;
92
+ var selectors = Object.keys(rootIndexStyles);
93
+ expect(selectors).toHaveLength(1);
94
+ return {
95
+ selector: selectors[0],
96
+ value: rootIndexStyles[selectors[0]].fontSize
97
+ };
98
+ };
99
+ it("scales the index glyph to 75% - half again MathLive's 50%", function () {
100
+ // !important: the 50% is an inline style, which a class cannot override.
101
+ expect(rule().value).toEqual('75% !important');
102
+ });
103
+ it('targets the span MathLive puts the inline font-size on', function () {
104
+ var holder = document.createElement('div');
105
+ holder.innerHTML = INDEX_MARKUP;
106
+ var matched = holder.querySelectorAll(rule().selector.replace(/^&\s*/, ''));
107
+ expect(Array.from(matched).map(function (el) {
108
+ return el.id;
109
+ })).toEqual(['index-size']);
110
+ });
111
+ it('leaves the radical index box itself unscaled', function () {
112
+ // Scaling `.ML__sqrt-index` would scale the em-based top/height offsets
113
+ // that tuck the index into the radical, lifting it clear of the crook.
114
+ var _rule = rule(),
115
+ selector = _rule.selector;
116
+ expect(selector).not.toMatch(/\.ML__sqrt-index\s*\{?$/);
117
+ expect(selector.startsWith('& .ML__sqrt-index >')).toBe(true);
118
+ });
119
+ it('applies wherever math renders - keypad labels, static math, mathfield', function () {
120
+ // eslint-disable-next-line global-require
121
+ var cs = require('../mf/common-styles');
122
+ var _rule2 = rule(),
123
+ selector = _rule2.selector;
124
+ ['commonKeyboardStyles', 'commonMathLiveStyles', 'supsubStyles'].forEach(function (name) {
125
+ expect(cs[name][selector]).toBeDefined();
126
+ });
127
+
128
+ // The live mathfield renders in a shadow root, which host styles cannot
129
+ // reach, so the same rule ships as plain CSS for `applyShadowStyles`.
130
+ expect(cs.ROOT_INDEX_CSS).toContain('.ML__sqrt-index >');
131
+ expect(cs.ROOT_INDEX_CSS).toContain('font-size:75% !important');
132
+ });
133
+ });
79
134
  it('applies those rules wherever static math renders', function () {
80
135
  // eslint-disable-next-line global-require
81
136
  var cs = require('../mf/common-styles');
@@ -96,6 +151,49 @@ describe('keypad label display normalisation', function () {
96
151
  }
97
152
  });
98
153
  });
154
+
155
+ // The Percent key showed as a blank button on the Advanced Algebra keypad
156
+ // (row 1, position 6). MathQuill defined `LatexCmds['%']` as a symbol that
157
+ // serialised to `\\%`, so its bare `%` label parsed fine; MathLive parses real
158
+ // LaTeX, where `%` opens a comment - the label rendered nothing, and pressing
159
+ // the key inserted a comment that swallowed the rest of the expression.
160
+ it('the percent key is escaped, not a latex comment', function () {
161
+ // eslint-disable-next-line global-require
162
+ var _require3 = require('../keys/misc'),
163
+ percentage = _require3.percentage;
164
+ expect(percentage.latex).toEqual('\\%');
165
+ expect((0, _latexBridge.keyToAction)(percentage).value).toEqual('\\%');
166
+ });
167
+
168
+ // Any bare `%` in a key would fail the same way, silently.
169
+ it('no keypad key carries an unescaped %', function () {
170
+ // eslint-disable-next-line global-require
171
+ var _require4 = require('../keys'),
172
+ baseSet = _require4.baseSet;
173
+ // eslint-disable-next-line global-require
174
+ var _require5 = require('../keys/grades'),
175
+ gradeSets = _require5.gradeSets;
176
+ var every = [].concat((0, _toConsumableArray2["default"])(baseSet), (0, _toConsumableArray2["default"])(gradeSets.map(function (g) {
177
+ return g.set;
178
+ })));
179
+ var _walk = function walk(node) {
180
+ if (Array.isArray(node)) {
181
+ node.forEach(_walk);
182
+ return;
183
+ }
184
+ if (!node) {
185
+ return;
186
+ }
187
+ ['latex', 'write', 'command'].forEach(function (field) {
188
+ var value = node[field];
189
+ if (typeof value === 'string') {
190
+ // a `%` is only safe when preceded by an odd run of backslashes
191
+ expect(value.replace(/\\./g, '')).not.toContain('%');
192
+ }
193
+ });
194
+ };
195
+ _walk(every);
196
+ });
99
197
  it('leaves latex without empty groups alone', function () {
100
198
  ['\\pi', '\\sin', 'x^2', '\\overline{AB}'].forEach(function (latex) {
101
199
  expect((0, _latexBridge.withVisibleEmptySlots)(latex)).toEqual(latex);
@@ -115,4 +213,4 @@ describe('keypad label display normalisation', function () {
115
213
  expect((0, _latexBridge.keyToAction)(key).value).not.toContain('pie-empty');
116
214
  });
117
215
  });
118
- //# sourceMappingURL=keypad-label.test.js.map
216
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGF0ZXhCcmlkZ2UiLCJyZXF1aXJlIiwiZGVzY3JpYmUiLCJpdCIsIm91dCIsImxhdGV4Rm9yRGlzcGxheSIsImV4cGVjdCIsIm5vdCIsInRvRXF1YWwiLCJ0b0NvbnRhaW4iLCJmb3JFYWNoIiwibGF0ZXgiLCJnZW9tZXRyeSIsIk9iamVjdCIsInZhbHVlcyIsImtleSIsInRvTWF0Y2giLCJfcmVxdWlyZSIsInBsYWNlaG9sZGVyU3R5bGVzIiwicG9zaXRpb24iLCJsZWZ0Iiwid2lkdGgiLCJtYXJnaW5MZWZ0IiwiSU5ERVhfTUFSS1VQIiwicnVsZSIsIl9yZXF1aXJlMiIsInJvb3RJbmRleFN0eWxlcyIsInNlbGVjdG9ycyIsImtleXMiLCJ0b0hhdmVMZW5ndGgiLCJzZWxlY3RvciIsInZhbHVlIiwiZm9udFNpemUiLCJob2xkZXIiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJpbm5lckhUTUwiLCJtYXRjaGVkIiwicXVlcnlTZWxlY3RvckFsbCIsInJlcGxhY2UiLCJBcnJheSIsImZyb20iLCJtYXAiLCJlbCIsImlkIiwiX3J1bGUiLCJzdGFydHNXaXRoIiwidG9CZSIsImNzIiwiX3J1bGUyIiwibmFtZSIsInRvQmVEZWZpbmVkIiwiUk9PVF9JTkRFWF9DU1MiLCJzdHlsZSIsIl90eXBlb2YyIiwiX3JlcXVpcmUzIiwicGVyY2VudGFnZSIsImtleVRvQWN0aW9uIiwiX3JlcXVpcmU0IiwiYmFzZVNldCIsIl9yZXF1aXJlNSIsImdyYWRlU2V0cyIsImV2ZXJ5IiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImciLCJzZXQiLCJ3YWxrIiwibm9kZSIsImlzQXJyYXkiLCJmaWVsZCIsInVuZGVmaW5lZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18va2V5cGFkLWxhYmVsLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdpdGhWaXNpYmxlRW1wdHlTbG90cyBhcyBsYXRleEZvckRpc3BsYXkgfSBmcm9tICcuLi9sYXRleC1icmlkZ2UnO1xuaW1wb3J0IHsga2V5VG9BY3Rpb24gfSBmcm9tICcuLi9sYXRleC1icmlkZ2UnO1xuXG4vKipcbiAqIEtleXMgdXNlIGVtcHR5IGdyb3VwcyB0byBzaG93IGEgY29tbWFuZCdzIHNoYXBlIChgXFxmcmFje317fWAsIGB4Xnt9YCkuXG4gKiBNYXRoTGl2ZSByZW5kZXJzIGB7fWAgYXMgbm90aGluZywgc28gbGFiZWxzIG5lZWQgYSB2aXNpYmxlIHN0YW5kLWluIC0gYnV0IHRoZVxuICogdmFsdWUgdGhhdCBnZXRzICppbnNlcnRlZCogbXVzdCBzdGF5IHVudG91Y2hlZC5cbiAqL1xuZGVzY3JpYmUoJ2tleXBhZCBsYWJlbCBkaXNwbGF5IG5vcm1hbGlzYXRpb24nLCAoKSA9PiB7XG4gIGl0KCdnaXZlcyBlbXB0eSBncm91cHMgYSB2aXNpYmxlIGdseXBoJywgKCkgPT4ge1xuICAgIGNvbnN0IG91dCA9IGxhdGV4Rm9yRGlzcGxheSgnXFxcXGZyYWN7fXt9Jyk7XG5cbiAgICBleHBlY3Qob3V0KS5ub3QudG9FcXVhbCgnXFxcXGZyYWN7fXt9Jyk7XG4gICAgLy8gYSBcXHJ1bGUsIG5vdCBhIGdseXBoOiBmb250IG1ldHJpY3MgZm9yIGEgc3Vic3RpdHV0ZWQgZ2x5cGggZG8gbm90IG1hdGNoXG4gICAgLy8gTWF0aExpdmUncywgd2hpY2ggbGVmdCBzdHJldGNoeSBhY2NlbnRzIG5hcnJvd2VyIHRoYW4gdGhlIGJveFxuICAgIGV4cGVjdChvdXQpLnRvQ29udGFpbignXFxcXHJ1bGUnKTtcbiAgICBleHBlY3Qob3V0KS50b0NvbnRhaW4oJ3BpZS1lbXB0eScpO1xuICB9KTtcblxuICBpdCgnaGFuZGxlcyBldmVyeSBlbXB0eS1ncm91cCBrZXkgc2hhcGUnLCAoKSA9PiB7XG4gICAgW1xuICAgICAgJ1xcXFxmcmFje317fScsXG4gICAgICAnXFxcXG92ZXJsaW5le30nLFxuICAgICAgJ3hee30nLFxuICAgICAgJ3hfe30nLFxuICAgICAgJ1xcXFxzcXJ0e30nLFxuICAgICAgJ1xcXFxzcXJ0W3t9XXt9JyxcbiAgICAgICdcXFxcYWJze30nLFxuICAgICAgJ1xcXFxsb2dfe30nLFxuICAgICAgJ1xcXFxsb25nZGl2e30nLFxuICAgIF0uZm9yRWFjaCgobGF0ZXgpID0+IHtcbiAgICAgIGV4cGVjdChsYXRleEZvckRpc3BsYXkobGF0ZXgpKS5ub3QudG9Db250YWluKCd7fScpO1xuICAgIH0pO1xuICB9KTtcblxuICBpdCgndHJlYXRzIGEgd2hpdGVzcGFjZS1vbmx5IGdyb3VwIGFzIGVtcHR5JywgKCkgPT4ge1xuICAgIC8vIGUuZy4gXFxmcmFje3h9eyB9XG4gICAgZXhwZWN0KGxhdGV4Rm9yRGlzcGxheSgnXFxcXGZyYWN7eH17IH0nKSkudG9Db250YWluKCdwaWUtZW1wdHknKTtcbiAgfSk7XG5cbiAgLy8gTWF0aFF1aWxsIG5lZWRlZCBhIG5lc3RlZCBcXG92ZXJsaW5le30gdG8gZHJhdyB0aGUgZW1wdHkgYm94LiBNYXRoTGl2ZVxuICAvLyByZW5kZXJzIHRoYXQgYXMgYSByZWFsIGxpbmUsIHNvIHRob3NlIGxhYmVscyBzaG93ZWQgYSBzcHVyaW91cyBiYXIgKGEgbGluZVxuICAvLyB1bmRlciB0aGUgYXJyb3dzLCBhbmQgYSBzdHJhaWdodCBsaW5lIGluc3RlYWQgb2YgdGhlIGFyYykuXG4gIGl0KCdhY2NlbnQga2V5cyBkbyBub3QgY2FycnkgdGhlIG5lc3RlZC1vdmVybGluZSBib3ggaGFjaycsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2xvYmFsLXJlcXVpcmVcbiAgICBjb25zdCBnZW9tZXRyeSA9IHJlcXVpcmUoJy4uL2tleXMvZ2VvbWV0cnknKTtcblxuICAgIE9iamVjdC52YWx1ZXMoZ2VvbWV0cnkpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKGtleSAmJiB0eXBlb2Yga2V5LmxhdGV4ID09PSAnc3RyaW5nJykge1xuICAgICAgICBleHBlY3Qoa2V5LmxhdGV4KS5ub3QudG9Db250YWluKCdcXFxcb3ZlcmxpbmV7fX0nKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ2FuIGFjY2VudCBvdmVyIGFuIGVtcHR5IHNsb3Qgc3RpbGwgZ2V0cyBhIHZpc2libGUgYm94JywgKCkgPT4ge1xuICAgIFsnXFxcXG92ZXJsZWZ0cmlnaHRhcnJvd3t9JywgJ1xcXFxvdmVyYXJje30nXS5mb3JFYWNoKChsYXRleCkgPT4ge1xuICAgICAgY29uc3Qgb3V0ID0gbGF0ZXhGb3JEaXNwbGF5KGxhdGV4KTtcblxuICAgICAgZXhwZWN0KG91dCkudG9Db250YWluKCdwaWUtZW1wdHknKTtcbiAgICAgIGV4cGVjdChvdXQpLm5vdC50b0NvbnRhaW4oJ1xcXFxvdmVybGluZScpO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyBBIGdseXBoJ3Mgd2lkdGggY29tZXMgZnJvbSBmb250IG1ldHJpY3M7IFUrMjVBQiBpcyBub3QgaW4gdGhlIEthVGVYIGZvbnRzLFxuICAvLyBzbyB0aGUgYnJvd3NlciBzdWJzdGl0dXRlZCBhIHdpZGVyIG9uZSBhbmQgc3RyZXRjaHkgYWNjZW50cyBjYW1lIG91dFxuICAvLyBuYXJyb3dlciB0aGFuIHRoZSBib3guIEEgcnVsZSBoYXMgYW4gZXhwbGljaXQgd2lkdGguXG4gIGl0KCd0aGUgZW1wdHkgc2xvdCBoYXMgYW4gZXhwbGljaXQgd2lkdGgsIG5vdCBmb250LWRlcGVuZGVudCBtZXRyaWNzJywgKCkgPT4ge1xuICAgIGNvbnN0IG91dCA9IGxhdGV4Rm9yRGlzcGxheSgnXFxcXG92ZXJhcmN7fScpO1xuXG4gICAgZXhwZWN0KG91dCkudG9Db250YWluKCdcXFxccnVsZScpO1xuICAgIGV4cGVjdChvdXQpLnRvTWF0Y2goL3J1bGVcXHtbXFxkLl0rZW1cXH1cXHtbXFxkLl0rZW1cXH0vKTtcbiAgICBleHBlY3Qob3V0KS5ub3QudG9Db250YWluKCd1bmljb2RlJyk7XG4gIH0pO1xuXG4gIC8vIE1lYXN1cmVkIGluIHRoZSBicm93c2VyOiB0aGUgYWNjZW50J3MgaW1tZWRpYXRlIHdyYXBwZXIgY29tcHV0ZXMgdG8gMHB4XG4gIC8vIChpdHMgLk1MX19zdHJldGNoeSBjaGlsZCBpcyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQpLCBzbyB0aGUgc3ZnIHdpZHRoIGhhcyB0b1xuICAvLyByZXNvbHZlIGFnYWluc3QgLk1MX19iYXNlIC0gd2hvc2Ugd2lkdGggZXF1YWxzIHRoZSBjb250ZW50LiBXaXRob3V0IHBpbm5pbmdcbiAgLy8gdGhhdCwgdGhlIGFyYyBjb2xsYXBzZWQgdG8gYSBzcGlrZSBhbmQgc2F0IHJpZ2h0IG9mIHRoZSBib3guXG4gIGl0KCdwaW5zIHRoZSBhY2NlbnQgY29udGFpbmluZyBibG9jayBhbmQgZHJvcHMgdGhlIGNlbnRlcmluZyBzaGlmdCcsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2xvYmFsLXJlcXVpcmVcbiAgICBjb25zdCB7IHBsYWNlaG9sZGVyU3R5bGVzIH0gPSByZXF1aXJlKCcuLi9tZi9jb21tb24tc3R5bGVzJyk7XG5cbiAgICBleHBlY3QocGxhY2Vob2xkZXJTdHlsZXNbJyYgLk1MX19iYXNlJ10ucG9zaXRpb24pLnRvRXF1YWwoJ3JlbGF0aXZlJyk7XG4gICAgZXhwZWN0KHBsYWNlaG9sZGVyU3R5bGVzWycmIC5NTF9fc3RyZXRjaHknXSkudG9FcXVhbCh7IHBvc2l0aW9uOiAnYWJzb2x1dGUnLCBsZWZ0OiAwLCB3aWR0aDogJzEwMCUnIH0pO1xuICAgIC8vIG11c3QgYmUgIWltcG9ydGFudDogTWF0aExpdmUgd3JpdGVzIG1hcmdpbi1sZWZ0IGFzIGFuIGlubGluZSBzdHlsZSwgYW5kIGFcbiAgICAvLyBjbGFzcyBjYW5ub3Qgb3ZlcnJpZGUgdGhhdC4gTGVhdmluZyBpdCB1bi1pbXBvcnRhbnQgYWxzbyBoYWx2ZWQgdGhlIGFyYydzXG4gICAgLy8gd2lkdGgsIGJlY2F1c2UgLk1MX19jZW50ZXIgaXMgdGhlIHN0cmV0Y2h5J3MgY29udGFpbmluZyBibG9jay5cbiAgICBleHBlY3QocGxhY2Vob2xkZXJTdHlsZXNbJyYgLk1MX19jZW50ZXI6aGFzKC5NTF9fc3RyZXRjaHkpJ10ubWFyZ2luTGVmdCkudG9FcXVhbCgnMCAhaW1wb3J0YW50Jyk7XG4gIH0pO1xuXG4gIC8vIE1hdGhMaXZlIHNldHMgdGhlIGluZGV4IG9mIFxcc3FydFtuXXt4fSBpbiBzY3JpcHRzY3JpcHRzdHlsZSAtIGFuIGlubGluZVxuICAvLyBgZm9udC1zaXplOiA1MCVgIC0gd2hpY2ggaXMgdG9vIHNtYWxsIHRvIHJlYWQgb24gdGhlIG50aC1yb290IGtleSBhbmQgaW5cbiAgLy8gYXV0aG9yZWQgcmFkaWNhbHMuIEl0IGlzIHNjYWxlZCB1cCBieSBoYWxmLCB0byA3NSUuXG4gIGRlc2NyaWJlKCdyYWRpY2FsIGluZGV4IHNpemUnLCAoKSA9PiB7XG4gICAgLy8gUmVhbCBNYXRoTGl2ZSAwLjExMCBvdXRwdXQgZm9yIGBcXHNxcnRbMV17Mn1gLCB0cmltbWVkIHRvIHRoZSBpbmRleC4gVGhlXG4gICAgLy8gc2VsZWN0b3Igd2Fsa3MgdGhpcyBleGFjdCBjaGFpbiwgc28gdGhpcyBmaXh0dXJlIGlzIHdoYXQgcGlucyBpdCBkb3duLlxuICAgIGNvbnN0IElOREVYX01BUktVUCA9IGBcbiAgICAgIDxzcGFuIGNsYXNzPVwiTUxfX2Jhc2VcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJNTF9fc3FydC1pbmRleFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiTUxfX3ZsaXN0LXRcIj48c3BhbiBjbGFzcz1cIk1MX192bGlzdC1yXCI+PHNwYW4gY2xhc3M9XCJNTF9fdmxpc3RcIiBzdHlsZT1cImhlaWdodDowLjc4ZW1cIj5cbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwidG9wOi0zLjQ1ZW1cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJNTF9fcHN0cnV0XCIgc3R5bGU9XCJoZWlnaHQ6M2VtXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBpZD1cImluZGV4LXNpemVcIiBzdHlsZT1cImhlaWdodDowLjMzZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOiA1MCVcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIk1MX19jbXJcIj4xPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGlkPVwibmVzdGVkLXNpemVcIiBzdHlsZT1cImZvbnQtc2l6ZTogNTAlXCI+bmVzdGVkPC9zcGFuPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPjwvc3Bhbj48L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJNTF9fc3FydC1zaWduXCI+PHNwYW4gY2xhc3M9XCJNTF9fZGVsaW0tc2l6ZTFcIj4mIzg3MzA7PC9zcGFuPjwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5gO1xuXG4gICAgY29uc3QgcnVsZSA9ICgpID0+IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBnbG9iYWwtcmVxdWlyZVxuICAgICAgY29uc3QgeyByb290SW5kZXhTdHlsZXMgfSA9IHJlcXVpcmUoJy4uL21mL2NvbW1vbi1zdHlsZXMnKTtcbiAgICAgIGNvbnN0IHNlbGVjdG9ycyA9IE9iamVjdC5rZXlzKHJvb3RJbmRleFN0eWxlcyk7XG5cbiAgICAgIGV4cGVjdChzZWxlY3RvcnMpLnRvSGF2ZUxlbmd0aCgxKTtcblxuICAgICAgcmV0dXJuIHsgc2VsZWN0b3I6IHNlbGVjdG9yc1swXSwgdmFsdWU6IHJvb3RJbmRleFN0eWxlc1tzZWxlY3RvcnNbMF1dLmZvbnRTaXplIH07XG4gICAgfTtcblxuICAgIGl0KFwic2NhbGVzIHRoZSBpbmRleCBnbHlwaCB0byA3NSUgLSBoYWxmIGFnYWluIE1hdGhMaXZlJ3MgNTAlXCIsICgpID0+IHtcbiAgICAgIC8vICFpbXBvcnRhbnQ6IHRoZSA1MCUgaXMgYW4gaW5saW5lIHN0eWxlLCB3aGljaCBhIGNsYXNzIGNhbm5vdCBvdmVycmlkZS5cbiAgICAgIGV4cGVjdChydWxlKCkudmFsdWUpLnRvRXF1YWwoJzc1JSAhaW1wb3J0YW50Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgndGFyZ2V0cyB0aGUgc3BhbiBNYXRoTGl2ZSBwdXRzIHRoZSBpbmxpbmUgZm9udC1zaXplIG9uJywgKCkgPT4ge1xuICAgICAgY29uc3QgaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICAgIGhvbGRlci5pbm5lckhUTUwgPSBJTkRFWF9NQVJLVVA7XG5cbiAgICAgIGNvbnN0IG1hdGNoZWQgPSBob2xkZXIucXVlcnlTZWxlY3RvckFsbChydWxlKCkuc2VsZWN0b3IucmVwbGFjZSgvXiZcXHMqLywgJycpKTtcblxuICAgICAgZXhwZWN0KEFycmF5LmZyb20obWF0Y2hlZCkubWFwKChlbCkgPT4gZWwuaWQpKS50b0VxdWFsKFsnaW5kZXgtc2l6ZSddKTtcbiAgICB9KTtcblxuICAgIGl0KCdsZWF2ZXMgdGhlIHJhZGljYWwgaW5kZXggYm94IGl0c2VsZiB1bnNjYWxlZCcsICgpID0+IHtcbiAgICAgIC8vIFNjYWxpbmcgYC5NTF9fc3FydC1pbmRleGAgd291bGQgc2NhbGUgdGhlIGVtLWJhc2VkIHRvcC9oZWlnaHQgb2Zmc2V0c1xuICAgICAgLy8gdGhhdCB0dWNrIHRoZSBpbmRleCBpbnRvIHRoZSByYWRpY2FsLCBsaWZ0aW5nIGl0IGNsZWFyIG9mIHRoZSBjcm9vay5cbiAgICAgIGNvbnN0IHsgc2VsZWN0b3IgfSA9IHJ1bGUoKTtcblxuICAgICAgZXhwZWN0KHNlbGVjdG9yKS5ub3QudG9NYXRjaCgvXFwuTUxfX3NxcnQtaW5kZXhcXHMqXFx7PyQvKTtcbiAgICAgIGV4cGVjdChzZWxlY3Rvci5zdGFydHNXaXRoKCcmIC5NTF9fc3FydC1pbmRleCA+JykpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYXBwbGllcyB3aGVyZXZlciBtYXRoIHJlbmRlcnMgLSBrZXlwYWQgbGFiZWxzLCBzdGF0aWMgbWF0aCwgbWF0aGZpZWxkJywgKCkgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGdsb2JhbC1yZXF1aXJlXG4gICAgICBjb25zdCBjcyA9IHJlcXVpcmUoJy4uL21mL2NvbW1vbi1zdHlsZXMnKTtcbiAgICAgIGNvbnN0IHsgc2VsZWN0b3IgfSA9IHJ1bGUoKTtcblxuICAgICAgWydjb21tb25LZXlib2FyZFN0eWxlcycsICdjb21tb25NYXRoTGl2ZVN0eWxlcycsICdzdXBzdWJTdHlsZXMnXS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgIGV4cGVjdChjc1tuYW1lXVtzZWxlY3Rvcl0pLnRvQmVEZWZpbmVkKCk7XG4gICAgICB9KTtcblxuICAgICAgLy8gVGhlIGxpdmUgbWF0aGZpZWxkIHJlbmRlcnMgaW4gYSBzaGFkb3cgcm9vdCwgd2hpY2ggaG9zdCBzdHlsZXMgY2Fubm90XG4gICAgICAvLyByZWFjaCwgc28gdGhlIHNhbWUgcnVsZSBzaGlwcyBhcyBwbGFpbiBDU1MgZm9yIGBhcHBseVNoYWRvd1N0eWxlc2AuXG4gICAgICBleHBlY3QoY3MuUk9PVF9JTkRFWF9DU1MpLnRvQ29udGFpbignLk1MX19zcXJ0LWluZGV4ID4nKTtcbiAgICAgIGV4cGVjdChjcy5ST09UX0lOREVYX0NTUykudG9Db250YWluKCdmb250LXNpemU6NzUlICFpbXBvcnRhbnQnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ2FwcGxpZXMgdGhvc2UgcnVsZXMgd2hlcmV2ZXIgc3RhdGljIG1hdGggcmVuZGVycycsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2xvYmFsLXJlcXVpcmVcbiAgICBjb25zdCBjcyA9IHJlcXVpcmUoJy4uL21mL2NvbW1vbi1zdHlsZXMnKTtcblxuICAgIFsnY29tbW9uS2V5Ym9hcmRTdHlsZXMnLCAnY29tbW9uTWF0aExpdmVTdHlsZXMnXS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICBleHBlY3QoY3NbbmFtZV1bJyYgLk1MX19zdHJldGNoeSddKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGNzW25hbWVdWycmIC5NTF9fYmFzZSddKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyBBIGJhcmUgYCYgc3ZnYCBydWxlIHJlLXBhcmVudHMgZXZlcnkgc3ZnIGluIHRoZSBzdWJ0cmVlOyBNYXRoTGl2ZSdzIG93biBydWxlXG4gIC8vIGlzIGRlc2NlbmRhbnQtc2NvcGVkIHRvIC5NTF9fbGF0ZXggLk1MX19zdHJldGNoeSBzdmcuXG4gIGl0KCdkb2VzIG5vdCB1c2UgYSBibGFua2V0IHN2ZyBydWxlJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBnbG9iYWwtcmVxdWlyZVxuICAgIGNvbnN0IGNzID0gcmVxdWlyZSgnLi4vbWYvY29tbW9uLXN0eWxlcycpO1xuXG4gICAgT2JqZWN0LnZhbHVlcyhjcykuZm9yRWFjaCgoc3R5bGUpID0+IHtcbiAgICAgIGlmIChzdHlsZSAmJiB0eXBlb2Ygc3R5bGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGV4cGVjdChPYmplY3Qua2V5cyhzdHlsZSkpLm5vdC50b0NvbnRhaW4oJyYgc3ZnJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vIFRoZSBQZXJjZW50IGtleSBzaG93ZWQgYXMgYSBibGFuayBidXR0b24gb24gdGhlIEFkdmFuY2VkIEFsZ2VicmEga2V5cGFkXG4gIC8vIChyb3cgMSwgcG9zaXRpb24gNikuIE1hdGhRdWlsbCBkZWZpbmVkIGBMYXRleENtZHNbJyUnXWAgYXMgYSBzeW1ib2wgdGhhdFxuICAvLyBzZXJpYWxpc2VkIHRvIGBcXFxcJWAsIHNvIGl0cyBiYXJlIGAlYCBsYWJlbCBwYXJzZWQgZmluZTsgTWF0aExpdmUgcGFyc2VzIHJlYWxcbiAgLy8gTGFUZVgsIHdoZXJlIGAlYCBvcGVucyBhIGNvbW1lbnQgLSB0aGUgbGFiZWwgcmVuZGVyZWQgbm90aGluZywgYW5kIHByZXNzaW5nXG4gIC8vIHRoZSBrZXkgaW5zZXJ0ZWQgYSBjb21tZW50IHRoYXQgc3dhbGxvd2VkIHRoZSByZXN0IG9mIHRoZSBleHByZXNzaW9uLlxuICBpdCgndGhlIHBlcmNlbnQga2V5IGlzIGVzY2FwZWQsIG5vdCBhIGxhdGV4IGNvbW1lbnQnLCAoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGdsb2JhbC1yZXF1aXJlXG4gICAgY29uc3QgeyBwZXJjZW50YWdlIH0gPSByZXF1aXJlKCcuLi9rZXlzL21pc2MnKTtcblxuICAgIGV4cGVjdChwZXJjZW50YWdlLmxhdGV4KS50b0VxdWFsKCdcXFxcJScpO1xuICAgIGV4cGVjdChrZXlUb0FjdGlvbihwZXJjZW50YWdlKS52YWx1ZSkudG9FcXVhbCgnXFxcXCUnKTtcbiAgfSk7XG5cbiAgLy8gQW55IGJhcmUgYCVgIGluIGEga2V5IHdvdWxkIGZhaWwgdGhlIHNhbWUgd2F5LCBzaWxlbnRseS5cbiAgaXQoJ25vIGtleXBhZCBrZXkgY2FycmllcyBhbiB1bmVzY2FwZWQgJScsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2xvYmFsLXJlcXVpcmVcbiAgICBjb25zdCB7IGJhc2VTZXQgfSA9IHJlcXVpcmUoJy4uL2tleXMnKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2xvYmFsLXJlcXVpcmVcbiAgICBjb25zdCB7IGdyYWRlU2V0cyB9ID0gcmVxdWlyZSgnLi4va2V5cy9ncmFkZXMnKTtcblxuICAgIGNvbnN0IGV2ZXJ5ID0gWy4uLmJhc2VTZXQsIC4uLmdyYWRlU2V0cy5tYXAoKGcpID0+IGcuc2V0KV07XG5cbiAgICBjb25zdCB3YWxrID0gKG5vZGUpID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG5vZGUpKSB7XG4gICAgICAgIG5vZGUuZm9yRWFjaCh3YWxrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBbJ2xhdGV4JywgJ3dyaXRlJywgJ2NvbW1hbmQnXS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG5vZGVbZmllbGRdO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgLy8gYSBgJWAgaXMgb25seSBzYWZlIHdoZW4gcHJlY2VkZWQgYnkgYW4gb2RkIHJ1biBvZiBiYWNrc2xhc2hlc1xuICAgICAgICAgIGV4cGVjdCh2YWx1ZS5yZXBsYWNlKC9cXFxcLi9nLCAnJykpLm5vdC50b0NvbnRhaW4oJyUnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHdhbGsoZXZlcnkpO1xuICB9KTtcblxuICBpdCgnbGVhdmVzIGxhdGV4IHdpdGhvdXQgZW1wdHkgZ3JvdXBzIGFsb25lJywgKCkgPT4ge1xuICAgIFsnXFxcXHBpJywgJ1xcXFxzaW4nLCAneF4yJywgJ1xcXFxvdmVybGluZXtBQn0nXS5mb3JFYWNoKChsYXRleCkgPT4ge1xuICAgICAgZXhwZWN0KGxhdGV4Rm9yRGlzcGxheShsYXRleCkpLnRvRXF1YWwobGF0ZXgpO1xuICAgIH0pO1xuICB9KTtcblxuICBpdCgnaGFuZGxlcyBudWxsaXNoIGlucHV0JywgKCkgPT4ge1xuICAgIGV4cGVjdChsYXRleEZvckRpc3BsYXkodW5kZWZpbmVkKSkudG9FcXVhbCgnJyk7XG4gICAgZXhwZWN0KGxhdGV4Rm9yRGlzcGxheSgnJykpLnRvRXF1YWwoJycpO1xuICB9KTtcblxuICBpdCgnZG9lcyBOT1QgYWZmZWN0IHdoYXQgZ2V0cyBpbnNlcnRlZCBpbnRvIHRoZSBmaWVsZCcsICgpID0+IHtcbiAgICAvLyB0aGUgYWN0aW9uIG11c3QgdXNlIHRoZSBrZXkncyBvd24gbGF0ZXgsIG5ldmVyIHRoZSBkaXNwbGF5IGZvcm1cbiAgICBjb25zdCBrZXkgPSB7IG5hbWU6ICdmcmFjJywgbGF0ZXg6ICdcXFxcZnJhY3t9e30nIH07XG5cbiAgICBleHBlY3Qoa2V5VG9BY3Rpb24oa2V5KS52YWx1ZSkudG9FcXVhbCgnXFxcXGZyYWN7fXt9Jyk7XG4gICAgZXhwZWN0KGtleVRvQWN0aW9uKGtleSkudmFsdWUpLm5vdC50b0NvbnRhaW4oJ3BpZS1lbXB0eScpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQUFBLFlBQUEsR0FBQUMsT0FBQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQUMsUUFBUSxDQUFDLG9DQUFvQyxFQUFFLFlBQU07RUFDbkRDLEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRSxZQUFNO0lBQzdDLElBQU1DLEdBQUcsR0FBRyxJQUFBQyxrQ0FBZSxFQUFDLFlBQVksQ0FBQztJQUV6Q0MsTUFBTSxDQUFDRixHQUFHLENBQUMsQ0FBQ0csR0FBRyxDQUFDQyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQ3JDO0lBQ0E7SUFDQUYsTUFBTSxDQUFDRixHQUFHLENBQUMsQ0FBQ0ssU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUMvQkgsTUFBTSxDQUFDRixHQUFHLENBQUMsQ0FBQ0ssU0FBUyxDQUFDLFdBQVcsQ0FBQztFQUNwQyxDQUFDLENBQUM7RUFFRk4sRUFBRSxDQUFDLHFDQUFxQyxFQUFFLFlBQU07SUFDOUMsQ0FDRSxZQUFZLEVBQ1osY0FBYyxFQUNkLE1BQU0sRUFDTixNQUFNLEVBQ04sVUFBVSxFQUNWLGNBQWMsRUFDZCxTQUFTLEVBQ1QsVUFBVSxFQUNWLGFBQWEsQ0FDZCxDQUFDTyxPQUFPLENBQUMsVUFBQ0MsS0FBSyxFQUFLO01BQ25CTCxNQUFNLENBQUMsSUFBQUQsa0NBQWUsRUFBQ00sS0FBSyxDQUFDLENBQUMsQ0FBQ0osR0FBRyxDQUFDRSxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQ3BELENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGTixFQUFFLENBQUMseUNBQXlDLEVBQUUsWUFBTTtJQUNsRDtJQUNBRyxNQUFNLENBQUMsSUFBQUQsa0NBQWUsRUFBQyxjQUFjLENBQUMsQ0FBQyxDQUFDSSxTQUFTLENBQUMsV0FBVyxDQUFDO0VBQ2hFLENBQUMsQ0FBQzs7RUFFRjtF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
@@ -203,4 +203,4 @@ describe('KeyPad', function () {
203
203
  }).not.toThrow();
204
204
  });
205
205
  });
206
- //# sourceMappingURL=keypad-render.test.js.map
206
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfa2V5cGFkIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVzY3JpYmUiLCJpdCIsIl9yZW5kZXIiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiTGF0ZXhMYWJlbCIsImxhdGV4IiwiY29udGFpbmVyIiwiZXhwZWN0IiwidGV4dENvbnRlbnQiLCJ0b0NvbnRhaW4iLCJfcmVuZGVyMiIsInJlcmVuZGVyIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJhIiwiYiIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwid2FybmVkIiwic3RhdGUiLCJtYXJrdXAiLCJzZXRTdGF0ZSIsImNvbXBvbmVudERpZE1vdW50IiwidG9CZSIsInN0b3AiLCJrZXkiLCJvdmVyIiwidW5kZWZpbmVkIiwibmFtZSIsImxhYmVsIiwid3JpdGUiLCJjYXRlZ29yeSIsIl9yZW5kZXIzIiwib25QcmVzcyIsImJhc2VTZXQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiamVzdCIsImZuIiwiayIsIl9yZW5kZXI0IiwicXVlcnlTZWxlY3RvciIsImNsaWNrIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJfcmVuZGVyNSIsImRvdCIsImNvbW1hIiwiX3JlbmRlcjYiLCJub0RlY2ltYWwiLCJkaXNhYmxlZCIsIkFycmF5IiwiZnJvbSIsIl9yZW5kZXI3Iiwibm90IiwidG9UaHJvdyIsInNldEtleXBhZEludGVyYWN0aW9uIiwiX3JlbmRlcjgiLCJmaXJzdENoaWxkIiwiZGlzcGF0Y2hFdmVudCIsIk1vdXNlRXZlbnQiLCJidWJibGVzIiwiX3JlbmRlcjkiLCJtb2RlIiwiY2xhc3NOYW1lIiwiX3JlbmRlcjAiLCJhZGRpdGlvbmFsS2V5cyIsIl9yZW5kZXIxIiwiY29udHJvbGxlZEtleXBhZE1vZGUiLCJ1bm1vdW50Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9rZXlwYWQtcmVuZGVyLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcblxuaW1wb3J0IEtleVBhZCwgeyBMYXRleExhYmVsIH0gZnJvbSAnLi4va2V5cGFkJztcblxuLyoqXG4gKiBLZXlwYWQgYmVoYXZpb3VyIHRoYXQgaXMgbmV3IGluIHRoaXMgcGFja2FnZTogbGFiZWxzIGFyZSBzdGF0aWMgbWFya3VwIGZyb21cbiAqIGNvbnZlcnRMYXRleFRvTWFya3VwICh0aGUgTWF0aFF1aWxsIHZlcnNpb24gY3JlYXRlZCBhIGxpdmUgU3RhdGljTWF0aCBwZXJcbiAqIGJ1dHRvbiksIHdpdGggYSByYXctbGF0ZXggZmFsbGJhY2sgd2hlbiB0aGUgZW5naW5lIGlzIHVuYXZhaWxhYmxlLlxuICovXG5kZXNjcmliZSgnTGF0ZXhMYWJlbCcsICgpID0+IHtcbiAgaXQoJ2ZhbGxzIGJhY2sgdG8gcmF3IGxhdGV4IHdoZW4gTWF0aExpdmUgaXMgdW5hdmFpbGFibGUnLCAoKSA9PiB7XG4gICAgLy8ganNkb20gY2Fubm90IGxvYWQgTWF0aExpdmUsIHNvIGxhdGV4VG9NYXJrdXAgcmV0dXJucyAnJyAtIHRoZSBidXR0b24gbXVzdFxuICAgIC8vIHN0aWxsIHNob3cgc29tZXRoaW5nIHJhdGhlciB0aGFuIHJlbmRlciBibGFuay5cbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxMYXRleExhYmVsIGxhdGV4PXsnXFxcXHBpJ30gLz4pO1xuXG4gICAgZXhwZWN0KGNvbnRhaW5lci50ZXh0Q29udGVudCkudG9Db250YWluKCdcXFxccGknKTtcbiAgfSk7XG5cbiAgaXQoJ3JlLXJlbmRlcnMgd2hlbiB0aGUgbGF0ZXggcHJvcCBjaGFuZ2VzJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyLCByZXJlbmRlciB9ID0gcmVuZGVyKDxMYXRleExhYmVsIGxhdGV4PXsnXFxcXHBpJ30gLz4pO1xuXG4gICAgcmVyZW5kZXIoPExhdGV4TGFiZWwgbGF0ZXg9eydcXFxcdGhldGEnfSAvPik7XG5cbiAgICBleHBlY3QoY29udGFpbmVyLnRleHRDb250ZW50KS50b0NvbnRhaW4oJ1xcXFx0aGV0YScpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3Qgd2FybiBtb3JlIHRoYW4gb25jZSBhYm91dCBhIG1pc3NpbmcgZW5naW5lJywgYXN5bmMgKCkgPT4ge1xuICAgIExhdGV4TGFiZWwud2FybmVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBhID0gbmV3IExhdGV4TGFiZWwoeyBsYXRleDogJ1xcXFxwaScgfSk7XG4gICAgY29uc3QgYiA9IG5ldyBMYXRleExhYmVsKHsgbGF0ZXg6ICdcXFxcdGhldGEnIH0pO1xuXG4gICAgYS5zdGF0ZSA9IHsgbWFya3VwOiAnJyB9O1xuICAgIGIuc3RhdGUgPSB7IG1hcmt1cDogJycgfTtcbiAgICBhLnNldFN0YXRlID0gKCkgPT4ge307XG4gICAgYi5zZXRTdGF0ZSA9ICgpID0+IHt9O1xuXG4gICAgYXdhaXQgYS5jb21wb25lbnREaWRNb3VudCgpO1xuICAgIGF3YWl0IGIuY29tcG9uZW50RGlkTW91bnQoKTtcblxuICAgIGV4cGVjdChMYXRleExhYmVsLndhcm5lZCkudG9CZSh0cnVlKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0tleVBhZCcsICgpID0+IHtcbiAgY29uc3Qga2V5ID0gKG92ZXIgPSB7fSkgPT4gKHsgbmFtZTogJ3gnLCBsYWJlbDogJ3gnLCB3cml0ZTogJ3gnLCBjYXRlZ29yeTogJ3ZhcnMnLCAuLi5vdmVyIH0pO1xuXG4gIGl0KCdyZW5kZXJzIGEgYnV0dG9uIHBlciBrZXknLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8S2V5UGFkIG9uUHJlc3M9eygpID0+IHt9fSBiYXNlU2V0PXtbW2tleSgpLCBrZXkoeyBuYW1lOiAneScsIGxhYmVsOiAneScgfSldXX0gLz4pO1xuXG4gICAgZXhwZWN0KGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b24nKS5sZW5ndGgpLnRvQmUoMik7XG4gIH0pO1xuXG4gIGl0KCdjYWxscyBvblByZXNzIHdpdGggdGhlIHdob2xlIGtleSBkZWZpbml0aW9uJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uUHJlc3MgPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgayA9IGtleSgpO1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEtleVBhZCBvblByZXNzPXtvblByZXNzfSBiYXNlU2V0PXtbW2tdXX0gLz4pO1xuXG4gICAgY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLmNsaWNrKCk7XG5cbiAgICBleHBlY3Qob25QcmVzcykudG9IYXZlQmVlbkNhbGxlZFdpdGgoayk7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIGEgbGF0ZXgga2V5IHRocm91Z2ggTGF0ZXhMYWJlbCcsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxLZXlQYWQgb25QcmVzcz17KCkgPT4ge319IGJhc2VTZXQ9e1tbeyBuYW1lOiAncGknLCBsYXRleDogJ1xcXFxwaScgfV1dfSAvPik7XG5cbiAgICBleHBlY3QoY29udGFpbmVyLnRleHRDb250ZW50KS50b0NvbnRhaW4oJ1xcXFxwaScpO1xuICB9KTtcblxuICBpdCgnZGlzYWJsZXMgdGhlIGRlY2ltYWwgc2VwYXJhdG9ycyB3aGVuIG5vRGVjaW1hbCBpcyBzZXQnLCAoKSA9PiB7XG4gICAgY29uc3QgZG90ID0ga2V5KHsgbmFtZTogJy4nLCBsYWJlbDogJy4nLCB3cml0ZTogJy4nIH0pO1xuICAgIGNvbnN0IGNvbW1hID0ga2V5KHsgbmFtZTogJywnLCBsYWJlbDogJywnLCB3cml0ZTogJywnIH0pO1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEtleVBhZCBvblByZXNzPXsoKSA9PiB7fX0gbm9EZWNpbWFsIGJhc2VTZXQ9e1tbZG90LCBjb21tYV1dfSAvPik7XG5cbiAgICBjb25zdCBkaXNhYmxlZCA9IEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpKS5maWx0ZXIoKGIpID0+IGIuZGlzYWJsZWQpO1xuXG4gICAgZXhwZWN0KGRpc2FibGVkLmxlbmd0aCkudG9CZSgyKTtcbiAgfSk7XG5cbiAgaXQoJ2xlYXZlcyB0aGUgc2VwYXJhdG9ycyBlbmFibGVkIG90aGVyd2lzZScsICgpID0+IHtcbiAgICBjb25zdCBkb3QgPSBrZXkoeyBuYW1lOiAnLicsIGxhYmVsOiAnLicsIHdyaXRlOiAnLicgfSk7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8S2V5UGFkIG9uUHJlc3M9eygpID0+IHt9fSBiYXNlU2V0PXtbW2RvdF1dfSAvPik7XG5cbiAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLmRpc2FibGVkKS50b0JlKGZhbHNlKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgYSBwbGFjZWhvbGRlciBmb3IgZW1wdHkgZ3JpZCBzbG90cycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4gcmVuZGVyKDxLZXlQYWQgb25QcmVzcz17KCkgPT4ge319IGJhc2VTZXQ9e1tbbnVsbF1dfSAvPikpLm5vdC50b1Rocm93KCk7XG4gIH0pO1xuXG4gIGl0KCdub3RpZmllcyBzZXRLZXlwYWRJbnRlcmFjdGlvbiBvbiBwb2ludGVyIGludGVyYWN0aW9uJywgKCkgPT4ge1xuICAgIGNvbnN0IHNldEtleXBhZEludGVyYWN0aW9uID0gamVzdC5mbigpO1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoXG4gICAgICA8S2V5UGFkIG9uUHJlc3M9eygpID0+IHt9fSBzZXRLZXlwYWRJbnRlcmFjdGlvbj17c2V0S2V5cGFkSW50ZXJhY3Rpb259IGJhc2VTZXQ9e1tba2V5KCldXX0gLz4sXG4gICAgKTtcblxuICAgIGNvbnRhaW5lci5maXJzdENoaWxkLmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoJ21vdXNlZG93bicsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG5cbiAgICBleHBlY3Qoc2V0S2V5cGFkSW50ZXJhY3Rpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRydWUpO1xuICB9KTtcblxuICBpdCgndXNlcyB0aGUgbW9kZSBhcyBhIGNsYXNzIHNvIG1vZGUtc3BlY2lmaWMgc3R5bGluZyBhcHBsaWVzJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEtleVBhZCBvblByZXNzPXsoKSA9PiB7fX0gbW9kZT1cImxhbmd1YWdlXCIgYmFzZVNldD17W1trZXkoKV1dfSAvPik7XG5cbiAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQuY2xhc3NOYW1lKS50b0NvbnRhaW4oJ2xhbmd1YWdlJyk7XG4gIH0pO1xuXG4gIGl0KCdkcm9wcyB0aGUgYmFzZSBzZXQgZm9yIHRoZSBtb2RlcyB0aGF0IHN1cHBseSB0aGVpciBvd24ga2V5cycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKFxuICAgICAgPEtleVBhZCBvblByZXNzPXsoKSA9PiB7fX0gbW9kZT1cImxhbmd1YWdlXCIgYmFzZVNldD17W1trZXkoKSwga2V5KCldXX0gYWRkaXRpb25hbEtleXM9e1tba2V5KCldXX0gLz4sXG4gICAgKTtcblxuICAgIC8vIGJhc2Ugc2V0IGlnbm9yZWQsIG9ubHkgdGhlIGFkZGl0aW9uYWwga2V5IHJlbmRlcnNcbiAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpLmxlbmd0aCkudG9CZSgxKTtcbiAgfSk7XG5cbiAgaXQoJ3VubW91bnRzIHdpdGhvdXQgdGhyb3dpbmcnLCAoKSA9PiB7XG4gICAgY29uc3QgeyB1bm1vdW50IH0gPSByZW5kZXIoPEtleVBhZCBvblByZXNzPXsoKSA9PiB7fX0gY29udHJvbGxlZEtleXBhZE1vZGUgYmFzZVNldD17W1trZXkoKV1dfSAvPik7XG5cbiAgICBleHBlY3QoKCkgPT4gdW5tb3VudCgpKS5ub3QudG9UaHJvdygpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsT0FBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQStDLFNBQUFHLHdCQUFBQyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSCx1QkFBQSxZQUFBQSx3QkFBQUMsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxPQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxH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
@@ -101,6 +101,27 @@ describe('latex-bridge', function () {
101
101
  expect((0, _latexBridge.toNativeCommands)('\\abs{a}+\\abs{b}')).toEqual('\\left|a\\right|+\\left|b\\right|');
102
102
  expect((0, _latexBridge.toNativeCommands)('\\longdiv{1}\\longdiv{2}')).toEqual('\\enclose{longdiv}{1}\\enclose{longdiv}{2}');
103
103
  });
104
+
105
+ // `%` starts a comment in real LaTeX, so MathLive drops it and everything
106
+ // after it. MathQuill had no comments, so latex authored under it - or by
107
+ // hand - can carry a bare `%` that would silently truncate the expression.
108
+ it('escapes a bare % so it cannot comment out the rest of the line', function () {
109
+ expect((0, _latexBridge.toNativeCommands)('%')).toEqual('\\%');
110
+ expect((0, _latexBridge.toNativeCommands)('50%')).toEqual('50\\%');
111
+ expect((0, _latexBridge.toNativeCommands)('x%y')).toEqual('x\\%y');
112
+ expect((0, _latexBridge.toNativeCommands)('a%b%c')).toEqual('a\\%b\\%c');
113
+ });
114
+ it('leaves an already-escaped % alone', function () {
115
+ expect((0, _latexBridge.toNativeCommands)('\\%')).toEqual('\\%');
116
+ expect((0, _latexBridge.toNativeCommands)('50\\%')).toEqual('50\\%');
117
+ // idempotent: toMathLive may run over latex that came back out of a field
118
+ expect((0, _latexBridge.toNativeCommands)((0, _latexBridge.toNativeCommands)('50%'))).toEqual('50\\%');
119
+ });
120
+
121
+ // `\\` is a line break, not an escape, so the `%` after it is still bare.
122
+ it('counts backslashes to decide whether a % is escaped', function () {
123
+ expect((0, _latexBridge.toNativeCommands)('a\\\\%b')).toEqual('a\\\\\\%b');
124
+ });
104
125
  it('leaves other latex untouched', function () {
105
126
  ['\\frac{1}{2}', '\\pi', '\\sqrt{x}', '\\overline{AB}'].forEach(function (l) {
106
127
  expect((0, _latexBridge.toNativeCommands)(l)).toEqual(l);
@@ -277,4 +298,4 @@ describe('latex-bridge', function () {
277
298
  });
278
299
  });
279
300
  });
280
- //# sourceMappingURL=latex-bridge.test.js.map
301
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGF0ZXhCcmlkZ2UiLCJyZXF1aXJlIiwiZGVzY3JpYmUiLCJpdCIsImV4cGVjdCIsInRvTWF0aExpdmUiLCJ0b0VxdWFsIiwidW5kZWZpbmVkIiwiY29uY2F0IiwiTkVXTElORV9FTUJFRCIsIkRFRkFVTFRfRklFTERfSUQiLCJmcm9tTWF0aExpdmUiLCJzdG9yZWQiLCJmb3JFYWNoIiwibCIsIm5vdCIsInRvQ29udGFpbiIsInRvTmF0aXZlQ29tbWFuZHMiLCJvdXQiLCJ0b01hdGNoIiwiZmllbGRJZHMiLCJsYXRleCIsImtleVRvQWN0aW9uIiwid3JpdGUiLCJ0eXBlIiwidmFsdWUiLCJjb21tYW5kIiwiX3JlcXVpcmUiLCJ4T3ZlckJsYW5rIiwiayIsIl90eXBlb2YyIiwidG9CZSIsImtleXN0cm9rZSIsInRvQmVVbmRlZmluZWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2xhdGV4LWJyaWRnZS50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHRvTWF0aExpdmUsXG4gIGZyb21NYXRoTGl2ZSxcbiAgZmllbGRJZHMsXG4gIGtleVRvQWN0aW9uLFxuICB0b05hdGl2ZUNvbW1hbmRzLFxuICBORVdMSU5FX0VNQkVELFxuICBERUZBVUxUX0ZJRUxEX0lELFxufSBmcm9tICcuLi9sYXRleC1icmlkZ2UnO1xuXG5kZXNjcmliZSgnbGF0ZXgtYnJpZGdlJywgKCkgPT4ge1xuICBkZXNjcmliZSgndG9NYXRoTGl2ZScsICgpID0+IHtcbiAgICBpdCgncGFzc2VzIHBsYWluIGxhdGV4IHRocm91Z2gnLCAoKSA9PiB7XG4gICAgICBleHBlY3QodG9NYXRoTGl2ZSgnXFxcXGZyYWN7MX17Mn0nKSkudG9FcXVhbCgnXFxcXGZyYWN7MX17Mn0nKTtcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIGVtcHR5L251bGxpc2gnLCAoKSA9PiB7XG4gICAgICBleHBlY3QodG9NYXRoTGl2ZSgnJykpLnRvRXF1YWwoJycpO1xuICAgICAgZXhwZWN0KHRvTWF0aExpdmUodW5kZWZpbmVkKSkudG9FcXVhbCgnJyk7XG4gICAgICBleHBlY3QodG9NYXRoTGl2ZShudWxsKSkudG9FcXVhbCgnJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnY29udmVydHMgYSBuZXdMaW5lIGVtYmVkIHRvIGEgbXVsdGlsaW5lIGVudmlyb25tZW50JywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHRvTWF0aExpdmUoYGEke05FV0xJTkVfRU1CRUR9YmApKS50b0VxdWFsKCdcXFxcZGlzcGxheWxpbmVze2EgXFxcXFxcXFwgYn0nKTtcbiAgICB9KTtcblxuICAgIGl0KCdjb252ZXJ0cyBtdWx0aXBsZSBuZXdMaW5lIGVtYmVkcycsICgpID0+IHtcbiAgICAgIGV4cGVjdCh0b01hdGhMaXZlKGBhJHtORVdMSU5FX0VNQkVEfWIke05FV0xJTkVfRU1CRUR9Y2ApKS50b0VxdWFsKCdcXFxcZGlzcGxheWxpbmVze2EgXFxcXFxcXFwgYiBcXFxcXFxcXCBjfScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NvbnZlcnRzIE1hdGhRdWlsbCBhbnN3ZXIgYmxvY2tzIHRvIHBsYWNlaG9sZGVycycsICgpID0+IHtcbiAgICAgIGV4cGVjdCh0b01hdGhMaXZlKCd4PVxcXFxNYXRoUXVpbGxNYXRoRmllbGRbcjFde30nKSkudG9FcXVhbCgneD1cXFxccGxhY2Vob2xkZXJbcjFde30nKTtcbiAgICB9KTtcblxuICAgIGl0KCdwcmVzZXJ2ZXMgYW5zd2VyIGJsb2NrIGNvbnRlbnQnLCAoKSA9PiB7XG4gICAgICBleHBlY3QodG9NYXRoTGl2ZSgnXFxcXE1hdGhRdWlsbE1hdGhGaWVsZFtyMl17N30nKSkudG9FcXVhbCgnXFxcXHBsYWNlaG9sZGVyW3IyXXs3fScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RlZmF1bHRzIGFuIHVubmFtZWQgYW5zd2VyIGJsb2NrIGlkJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHRvTWF0aExpdmUoJ1xcXFxNYXRoUXVpbGxNYXRoRmllbGRbXXt9JykpLnRvRXF1YWwoYFxcXFxwbGFjZWhvbGRlclske0RFRkFVTFRfRklFTERfSUR9XXt9YCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBhbnN3ZXIgYmxvY2tzIGFuZCBuZXdsaW5lcyB0b2dldGhlcicsICgpID0+IHtcbiAgICAgIGV4cGVjdCh0b01hdGhMaXZlKGBcXFxcTWF0aFF1aWxsTWF0aEZpZWxkW3IxXXt9JHtORVdMSU5FX0VNQkVEfXhgKSkudG9FcXVhbChcbiAgICAgICAgJ1xcXFxkaXNwbGF5bGluZXN7XFxcXHBsYWNlaG9sZGVyW3IxXXt9IFxcXFxcXFxcIHh9JyxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdmcm9tTWF0aExpdmUnLCAoKSA9PiB7XG4gICAgaXQoJ3Bhc3NlcyBwbGFpbiBsYXRleCB0aHJvdWdoJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGZyb21NYXRoTGl2ZSgnXFxcXGZyYWN7MX17Mn0nKSkudG9FcXVhbCgnXFxcXGZyYWN7MX17Mn0nKTtcbiAgICB9KTtcblxuICAgIGl0KCd1bndyYXBzIGRpc3BsYXlsaW5lcyBiYWNrIHRvIG5ld0xpbmUgZW1iZWRzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGZyb21NYXRoTGl2ZSgnXFxcXGRpc3BsYXlsaW5lc3thIFxcXFxcXFxcIGJ9JykpLnRvRXF1YWwoYGEke05FV0xJTkVfRU1CRUR9YmApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NvbnZlcnRzIHBsYWNlaG9sZGVycyBiYWNrIHRvIE1hdGhRdWlsbCBhbnN3ZXIgYmxvY2tzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGZyb21NYXRoTGl2ZSgneD1cXFxccGxhY2Vob2xkZXJbcjFde30nKSkudG9FcXVhbCgneD1cXFxcTWF0aFF1aWxsTWF0aEZpZWxkW3IxXXt9Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgncm91bmQtdHJpcHMgYSBuZXdsaW5lIGRvY3VtZW50JywgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmVkID0gYGEke05FV0xJTkVfRU1CRUR9YiR7TkVXTElORV9FTUJFRH1jYDtcblxuICAgICAgZXhwZWN0KGZyb21NYXRoTGl2ZSh0b01hdGhMaXZlKHN0b3JlZCkpKS50b0VxdWFsKHN0b3JlZCk7XG4gICAgfSk7XG5cbiAgICBpdCgncm91bmQtdHJpcHMgYW4gYW5zd2VyLWJsb2NrIGRvY3VtZW50JywgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmVkID0gJ3g9XFxcXE1hdGhRdWlsbE1hdGhGaWVsZFtyMV17fStcXFxcTWF0aFF1aWxsTWF0aEZpZWxkW3IyXXszfSc7XG5cbiAgICAgIGV4cGVjdChmcm9tTWF0aExpdmUodG9NYXRoTGl2ZShzdG9yZWQpKSkudG9FcXVhbChzdG9yZWQpO1xuICAgIH0pO1xuXG4gICAgLy8gTWF0aExpdmUgc2VyaWFsaXNlcyBlbXB0eSBzbG90cyBhcyBcXHBsYWNlaG9sZGVye30sIHdoaWNoIE1hdGhKYXggKHVzZWQgYnlcbiAgICAvLyBAcGllLWxpYi9tYXRoLXJlbmRlcmluZyBmb3IgcHJvbXB0cy9wcmV2aWV3cykgcmVuZGVycyBhcyByZWQgZXJyb3IgdGV4dC5cbiAgICBpdCgnc3RyaXBzIHVubmFtZWQgcGxhY2Vob2xkZXJzIHRoYXQgTWF0aExpdmUgYWRkcycsICgpID0+IHtcbiAgICAgIGV4cGVjdChmcm9tTWF0aExpdmUoJ1xcXFxsb25nZGl2e1xcXFxwbGFjZWhvbGRlcnt9fScpKS50b0VxdWFsKCdcXFxcbG9uZ2Rpdnt9Jyk7XG4gICAgICBleHBlY3QoZnJvbU1hdGhMaXZlKCdcXFxcZnJhY3tcXFxccGxhY2Vob2xkZXJ7fX17XFxcXHBsYWNlaG9sZGVye319JykpLnRvRXF1YWwoJ1xcXFxmcmFje317fScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2tlZXBzIGNvbnRlbnQgaW5zaWRlIGFuIHVubmFtZWQgcGxhY2Vob2xkZXInLCAoKSA9PiB7XG4gICAgICBleHBlY3QoZnJvbU1hdGhMaXZlKCdcXFxcc3FydHtcXFxccGxhY2Vob2xkZXJ7N319JykpLnRvRXF1YWwoJ1xcXFxzcXJ0ezd9Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBhIGJhcmUgXFxcXHBsYWNlaG9sZGVyIHdpdGggbm8gYXJndW1lbnQnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoZnJvbU1hdGhMaXZlKCdcXFxcbG9uZ2RpdntcXFxccGxhY2Vob2xkZXJ9JykpLnRvRXF1YWwoJ1xcXFxsb25nZGl2e30nKTtcbiAgICB9KTtcblxuICAgIGl0KCduZXZlciBsZWFrcyB0aGUgdG9rZW4gXFxcXHBsYWNlaG9sZGVyJywgKCkgPT4ge1xuICAgICAgWydcXFxcbG9uZ2RpdntcXFxccGxhY2Vob2xkZXJ7fX0nLCAnXFxcXGZyYWN7XFxcXHBsYWNlaG9sZGVye319e3h9JywgJ1xcXFxwbGFjZWhvbGRlcnt9J10uZm9yRWFjaCgobCkgPT4ge1xuICAgICAgICBleHBlY3QoZnJvbU1hdGhMaXZlKGwpKS5ub3QudG9Db250YWluKCdcXFxccGxhY2Vob2xkZXInKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3N0aWxsIG1hcHMgTkFNRUQgcGxhY2Vob2xkZXJzIHRvIGFuc3dlciBibG9ja3MnLCAoKSA9PiB7XG4gICAgICAvLyBuYW1lZCBvbmVzIGFyZSBhbnN3ZXIgYmxvY2tzIGFuZCBtdXN0IHN1cnZpdmVcbiAgICAgIGV4cGVjdChmcm9tTWF0aExpdmUoJ1xcXFxwbGFjZWhvbGRlcltyMV17fScpKS50b0VxdWFsKCdcXFxcTWF0aFF1aWxsTWF0aEZpZWxkW3IxXXt9Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgncm91bmQtdHJpcHMgYW5zd2VyIGJsb2NrcyBjb21iaW5lZCB3aXRoIG5ld2xpbmVzJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmVkID0gYFxcXFxNYXRoUXVpbGxNYXRoRmllbGRbcjFde30ke05FV0xJTkVfRU1CRUR9eWA7XG5cbiAgICAgIGV4cGVjdChmcm9tTWF0aExpdmUodG9NYXRoTGl2ZShzdG9yZWQpKSkudG9FcXVhbChzdG9yZWQpO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyBBIE1hdGhMaXZlIG1hY3JvIHNlcmlhbGlzZXMgZnJvbSB0aGUgYXJndW1lbnRzIGl0IHdhcyBjcmVhdGVkIHdpdGgsIHNvIHRleHRcbiAgLy8gdHlwZWQgaW5zaWRlIGl0cyBleHBhbnNpb24gbmV2ZXIgY29tZXMgYmFjayBvdXQgb2YgZ2V0VmFsdWUoJ2xhdGV4JykuXG4gIC8vIEFyZ3VtZW50LXRha2luZyBwaWUgY29tbWFuZHMgbXVzdCB0aGVyZWZvcmUgYmVjb21lIG5hdGl2ZSBjb25zdHJ1Y3RzIGJlZm9yZVxuICAvLyB0aGV5IHJlYWNoIGEgbWF0aGZpZWxkLlxuICBkZXNjcmliZSgndG9OYXRpdmVDb21tYW5kcycsICgpID0+IHtcbiAgICBpdCgnZXhwYW5kcyBcXFxcbG9uZ2RpdiB0byBuYXRpdmUgXFxcXGVuY2xvc2UnLCAoKSA9PiB7XG4gICAgICBleHBlY3QodG9OYXRpdmVDb21tYW5kcygnXFxcXGxvbmdkaXZ7MTIzNH0nKSkudG9FcXVhbCgnXFxcXGVuY2xvc2V7bG9uZ2Rpdn17MTIzNH0nKTtcbiAgICAgIGV4cGVjdCh0b05hdGl2ZUNvbW1hbmRzKCdcXFxcbG9uZ2Rpdnt9JykpLnRvRXF1YWwoJ1xcXFxlbmNsb3Nle2xvbmdkaXZ9e30nKTtcbiAgICB9KTtcblxuICAgIGl0KCdleHBhbmRzIFxcXFxvdmVyYXJjIHRvIG5hdGl2ZSBcXFxcb3ZlcnBhcmVuJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHRvTmF0aXZlQ29tbWFuZHMoJ1xcXFxvdmVyYXJje0FCfScpKS50b0VxdWFsKCdcXFxcb3ZlcnBhcmVue0FCfScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2V4cGFuZHMgXFxcXGFicyB0byBuYXRpdmUgXFxcXGxlZnR8Li5cXFxccmlnaHR8JywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHRvTmF0aXZlQ29tbWFuZHMoJ1xcXFxhYnN7eH0nKSkudG9FcXVhbCgnXFxcXGxlZnR8eFxcXFxyaWdodHwnKTtcbiAgICAgIGV4cGVjdCh0b05hdGl2ZUNvbW1hbmRzKCdcXFxcYWJze30nKSkudG9FcXVhbCgnXFxcXGxlZnR8XFxcXHJpZ2h0fCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgbmVzdGVkIGJyYWNlcyBpbnNpZGUgXFxcXGFicycsICgpID0+IHtcbiAgICAgIGV4cGVjdCh0b05hdGl2ZUNvbW1hbmRzKCdcXFxcYWJze1xcXFxmcmFjezF9ezJ9fScpKS50b0VxdWFsKCdcXFxcbGVmdHxcXFxcZnJhY3sxfXsyfVxcXFxyaWdodHwnKTtcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIHNldmVyYWwgb2NjdXJyZW5jZXMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QodG9OYXRpdmVDb21tYW5kcygnXFxcXGFic3thfStcXFxcYWJze2J9JykpLnRvRXF1YWwoJ1xcXFxsZWZ0fGFcXFxccmlnaHR8K1xcXFxsZWZ0fGJcXFxccmlnaHR8Jyk7XG4gICAgICBleHBlY3QodG9OYXRpdmVDb21tYW5kcygnXFxcXGxvbmdkaXZ7MX1cXFxcbG9uZ2RpdnsyfScpKS50b0VxdWFsKCdcXFxcZW5jbG9zZXtsb25nZGl2fXsxfVxcXFxlbmNsb3Nle2xvbmdkaXZ9ezJ9Jyk7XG4gICAgfSk7XG5cbiAgICAvLyBgJWAgc3RhcnRzIGEgY29tbWVudCBpbiByZWFsIExhVGVYLCBzbyBNYXRoTGl2ZSBkcm9wcyBpdCBhbmQgZXZlcnl0aGluZ1xuICAgIC8vIGFmdGVyIGl0LiBNYXRoUXVpbGwgaGFkIG5vIGNvbW1lbnRzLCBzbyBsYXRleCBhdXRob3JlZCB1bmRlciBpdCAtIG9yIGJ5XG4gICAgLy8gaGFuZCAtIGNhbiBjYXJyeSBhIGJhcmUgYCVgIHRoYXQgd291bGQgc2lsZW50bHkgdHJ1bmNhdGUgdGhlIGV4cHJlc3Npb24uXG4gICAgaXQoJ2VzY2FwZXMgYSBiYXJlICUgc28gaXQgY2Fubm90IGNvbW1lbnQgb3V0IHRoZSByZXN0IG9mIHRoZSBsaW5lJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHRvTmF0aXZlQ29tbWFuZHMoJyUnKSkudG9FcXVhbCgnXFxcXCUnKTtcbiAgICAgIGV4cGVjdCh0b05hdGl2ZUNvbW1hbmRzKCc1MCUnKSkudG9FcXVhbCgnNTBcXFxcJScpO1xuICAgICAgZXhwZWN0KHRvTmF0aXZlQ29tbWFuZHMoJ3gleScpKS50b0VxdWFsKCd4XFxcXCV5Jyk7XG4gICAgICBleHBlY3QodG9OYXRpdmVDb21tYW5kcygnYSViJWMnKSkudG9FcXVhbCgnYVxcXFwlYlxcXFwlYycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2xlYXZlcyBhbiBhbHJlYWR5LWVzY2FwZWQgJSBhbG9uZScsICgpID0+IHtcbiAgICAgIGV4cGVjdCh0b05hdGl2ZUNvbW1hbmRzKCdcXFxcJScpKS50b0VxdWFsKCdcXFxcJScpO1xuICAgICAgZXhwZWN0KHRvTmF0aXZlQ29tbWFuZHMoJzUwXFxcXCUnKSkudG9FcXVhbCgnNTBcXFxcJScpO1xuICAgICAgLy8gaWRlbXBvdGVudDogdG9NYXRoTGl2ZSBtYXkgcnVuIG92ZXIgbGF0ZXggdGhhdCBjYW1lIGJhY2sgb3V0IG9mIGEgZmllbGRcbiAgICAgIGV4cGVjdCh0b05hdGl2ZUNvbW1hbmRzKHRvTmF0aXZlQ29tbWFuZHMoJzUwJScpKSkudG9FcXVhbCgnNTBcXFxcJScpO1xuICAgIH0pO1xuXG4gICAgLy8gYFxcXFxgIGlzIGEgbGluZSBicmVhaywgbm90IGFuIGVzY2FwZSwgc28gdGhlIGAlYCBhZnRlciBpdCBpcyBzdGlsbCBiYXJlLlxuICAgIGl0KCdjb3VudHMgYmFja3NsYXNoZXMgdG8gZGVjaWRlIHdoZXRoZXIgYSAlIGlzIGVzY2FwZWQnLCAoKSA9PiB7XG4gICAgICBleHBlY3QodG9OYXRpdmVDb21tYW5kcygnYVxcXFxcXFxcJWInKSkudG9FcXVhbCgnYVxcXFxcXFxcXFxcXCViJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnbGVhdmVzIG90aGVyIGxhdGV4IHVudG91Y2hlZCcsICgpID0+IHtcbiAgICAgIFsnXFxcXGZyYWN7MX17Mn0nLCAnXFxcXHBpJywgJ1xcXFxzcXJ0e3h9JywgJ1xcXFxvdmVybGluZXtBQn0nXS5mb3JFYWNoKChsKSA9PiB7XG4gICAgICAgIGV4cGVjdCh0b05hdGl2ZUNvbW1hbmRzKGwpKS50b0VxdWFsKGwpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBudWxsaXNoIGlucHV0JywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHRvTmF0aXZlQ29tbWFuZHModW5kZWZpbmVkKSkudG9FcXVhbCgnJyk7XG4gICAgICBleHBlY3QodG9OYXRpdmVDb21tYW5kcygnJykpLnRvRXF1YWwoJycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2lzIGFwcGxpZWQgYnkgdG9NYXRoTGl2ZScsICgpID0+IHtcbiAgICAgIGV4cGVjdCh0b01hdGhMaXZlKCdcXFxcbG9uZ2Rpdns1fScpKS50b0VxdWFsKCdcXFxcZW5jbG9zZXtsb25nZGl2fXs1fScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RvZXMgbm90IGxlYXZlIGEgcGllIG1hY3JvIGluIHdoYXQgcmVhY2hlcyB0aGUgZmllbGQnLCAoKSA9PiB7XG4gICAgICBbJ1xcXFxsb25nZGl2ezd9JywgJ1xcXFxhYnN7N30nLCAnXFxcXG92ZXJhcmN7N30nXS5mb3JFYWNoKChsKSA9PiB7XG4gICAgICAgIGNvbnN0IG91dCA9IHRvTWF0aExpdmUobCk7XG5cbiAgICAgICAgZXhwZWN0KG91dCkubm90LnRvTWF0Y2goL1xcXFxsb25nZGl2fFxcXFxhYnN8XFxcXG92ZXJhcmMvKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZmllbGRJZHMnLCAoKSA9PiB7XG4gICAgaXQoJ3JldHVybnMgaWRzIGluIGRvY3VtZW50IG9yZGVyJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGZpZWxkSWRzKCdcXFxcTWF0aFF1aWxsTWF0aEZpZWxkW3IxXXt9K1xcXFxNYXRoUXVpbGxNYXRoRmllbGRbcjJde30nKSkudG9FcXVhbChbJ3IxJywgJ3IyJ10pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JldHVybnMgW10gd2hlbiB0aGVyZSBhcmUgbm9uZScsICgpID0+IHtcbiAgICAgIGV4cGVjdChmaWVsZElkcygneCt5JykpLnRvRXF1YWwoW10pO1xuICAgICAgZXhwZWN0KGZpZWxkSWRzKHVuZGVmaW5lZCkpLnRvRXF1YWwoW10pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2lzIHJlcGVhdGFibGUgKHJlZ2V4IGxhc3RJbmRleCBpcyByZXNldCknLCAoKSA9PiB7XG4gICAgICBjb25zdCBsYXRleCA9ICdcXFxcTWF0aFF1aWxsTWF0aEZpZWxkW3IxXXt9JztcblxuICAgICAgZXhwZWN0KGZpZWxkSWRzKGxhdGV4KSkudG9FcXVhbChbJ3IxJ10pO1xuICAgICAgZXhwZWN0KGZpZWxkSWRzKGxhdGV4KSkudG9FcXVhbChbJ3IxJ10pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgna2V5VG9BY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3ByZWZlcnMgbGF0ZXggd2hlbiB0aGVyZSBpcyBubyBjb21tYW5kJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGtleVRvQWN0aW9uKHsgbGF0ZXg6ICdcXFxccGknLCB3cml0ZTogJ3AnIH0pKS50b0VxdWFsKHsgdHlwZTogJ2luc2VydCcsIHZhbHVlOiAnXFxcXHBpJyB9KTtcbiAgICB9KTtcblxuICAgIGl0KCd1c2VzIHdyaXRlJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGtleVRvQWN0aW9uKHsgd3JpdGU6ICd4JyB9KSkudG9FcXVhbCh7IHR5cGU6ICdpbnNlcnQnLCB2YWx1ZTogJ3gnIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2V4cGFuZHMgY29tbWFuZHMgdGhhdCB0YWtlIGFyZ3VtZW50cyBpbnRvIHBsYWNlaG9sZGVycycsICgpID0+IHtcbiAgICAgIGV4cGVjdChrZXlUb0FjdGlvbih7IGNvbW1hbmQ6ICdcXFxcZnJhYycgfSkpLnRvRXF1YWwoeyB0eXBlOiAnaW5zZXJ0JywgdmFsdWU6ICdcXFxcZnJhY3sjP317Iz99JyB9KTtcbiAgICAgIGV4cGVjdChrZXlUb0FjdGlvbih7IGNvbW1hbmQ6ICdcXFxcc3FydCcgfSkpLnRvRXF1YWwoeyB0eXBlOiAnaW5zZXJ0JywgdmFsdWU6ICdcXFxcc3FydHsjP30nIH0pO1xuICAgICAgZXhwZWN0KGtleVRvQWN0aW9uKHsgY29tbWFuZDogJ14nIH0pKS50b0VxdWFsKHsgdHlwZTogJ2luc2VydCcsIHZhbHVlOiAnXnsjP30nIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gTWF0aFF1aWxsJ3MgYC9gIHR1cm5lZCB0aGUgcHJlY2VkaW5nIGV4cHJlc3Npb24gaW50byB0aGUgbnVtZXJhdG9yOiB0eXBlXG4gICAgLy8gNSwgcHJlc3MgdGhlIGtleSwgZ2V0IDUvXyB3aXRoIHRoZSBjYXJldCBpbiB0aGUgZGVub21pbmF0b3IuIGAjQGAgaXNcbiAgICAvLyBNYXRoTGl2ZSdzIFwic2VsZWN0aW9uLCBvciB0aGUgaXRlbSBiZWZvcmUgdGhlIGN1cnNvclwiIHRva2VuLCBhbmQgaXMgd2hhdFxuICAgIC8vIE1hdGhMaXZlIGJpbmRzIHRvIGAvYCBpdHNlbGYuXG4gICAgaXQoJ2RpdmlzaW9uIHRha2VzIHRoZSBwcmVjZWRpbmcgaXRlbSBhcyB0aGUgbnVtZXJhdG9yJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGtleVRvQWN0aW9uKHsgY29tbWFuZDogJy8nIH0pKS50b0VxdWFsKHsgdHlwZTogJ2luc2VydCcsIHZhbHVlOiAnXFxcXGZyYWN7I0B9eyM/fScgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYW4gZXhwbGljaXQgYmxhbmstb3Zlci1ibGFuayBmcmFjdGlvbiBzdGF5cyBlbXB0eScsICgpID0+IHtcbiAgICAgIC8vIGRpc3RpbmN0IGZyb20gYC9gOiB0aGlzIGtleSBpcyBtZWFudCB0byBpbnNlcnQgdHdvIGVtcHR5IHNsb3RzXG4gICAgICBleHBlY3Qoa2V5VG9BY3Rpb24oeyBjb21tYW5kOiAnXFxcXGZyYWMnIH0pKS50b0VxdWFsKHsgdHlwZTogJ2luc2VydCcsIHZhbHVlOiAnXFxcXGZyYWN7Iz99eyM/fScgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgndGhlIHgtb3Zlci1ibGFuayBrZXkgcm91dGVzIHRocm91Z2ggZGl2aXNpb24nLCAoKSA9PiB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2xvYmFsLXJlcXVpcmVcbiAgICAgIGNvbnN0IHsgeE92ZXJCbGFuayB9ID0gcmVxdWlyZSgnLi4va2V5cy9mcmFjdGlvbnMnKTtcblxuICAgICAgZXhwZWN0KHhPdmVyQmxhbmsuY29tbWFuZCkudG9FcXVhbCgnLycpO1xuICAgICAgZXhwZWN0KGtleVRvQWN0aW9uKHhPdmVyQmxhbmspLnZhbHVlKS50b0VxdWFsKCdcXFxcZnJhY3sjQH17Iz99Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgncGFzc2VzIGFyZ3VtZW50LWxlc3MgY29tbWFuZHMgdGhyb3VnaCcsICgpID0+IHtcbiAgICAgIGV4cGVjdChrZXlUb0FjdGlvbih7IGNvbW1hbmQ6ICdcXFxccGknIH0pKS50b0VxdWFsKHsgdHlwZTogJ2luc2VydCcsIHZhbHVlOiAnXFxcXHBpJyB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdjb25jYXRlbmF0ZXMgYXJyYXkgY29tbWFuZHMgKE1hdGhRdWlsbCBjbWQoKSBhcHBsaWVkIHRoZW0gaW4gc2VxdWVuY2UpJywgKCkgPT4ge1xuICAgICAgLy8gTWVhc3VyZWQgQW5nbGVcbiAgICAgIGV4cGVjdChrZXlUb0FjdGlvbih7IGNvbW1hbmQ6IFsnbScsICdcXFxcYW5nbGUnXSB9KSkudG9FcXVhbCh7IHR5cGU6ICdpbnNlcnQnLCB2YWx1ZTogJ21cXFxcYW5nbGUnIH0pO1xuICAgICAgLy8gbG9nIGJhc2UgbiAtIHRoZSBgX2AgcGFydCBtdXN0IHN0aWxsIGV4cGFuZCB0byBhIHBsYWNlaG9sZGVyXG4gICAgICBleHBlY3Qoa2V5VG9BY3Rpb24oeyBjb21tYW5kOiBbJ1xcXFxsb2cnLCAnXyddIH0pKS50b0VxdWFsKHsgdHlwZTogJ2luc2VydCcsIHZhbHVlOiAnXFxcXGxvZ197Iz99JyB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdhbHdheXMgcmV0dXJucyBhIHN0cmluZyB2YWx1ZSBmb3IgaW5zZXJ0IGFjdGlvbnMnLCAoKSA9PiB7XG4gICAgICBbeyBjb21tYW5kOiBbJ20nLCAnXFxcXGFuZ2xlJ10gfSwgeyBjb21tYW5kOiAnXFxcXGZyYWMnIH0sIHsgd3JpdGU6ICd4JyB9LCB7IGxhdGV4OiAnXFxcXHBpJyB9XS5mb3JFYWNoKChrKSA9PiB7XG4gICAgICAgIGV4cGVjdCh0eXBlb2Yga2V5VG9BY3Rpb24oaykudmFsdWUpLnRvQmUoJ3N0cmluZycpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnbWFwcyBrZXlzdHJva2VzIHRvIE1hdGhMaXZlIHNlbGVjdG9ycycsICgpID0+IHtcbiAgICAgIGV4cGVjdChrZXlUb0FjdGlvbih7IGtleXN0cm9rZTogJ0xlZnQnIH0pKS50b0VxdWFsKHsgdHlwZTogJ2NvbW1hbmQnLCB2YWx1ZTogJ21vdmVUb1ByZXZpb3VzQ2hhcicgfSk7XG4gICAgICBleHBlY3Qoa2V5VG9BY3Rpb24oeyBrZXlzdHJva2U6ICdSaWdodCcgfSkpLnRvRXF1YWwoeyB0eXBlOiAnY29tbWFuZCcsIHZhbHVlOiAnbW92ZVRvTmV4dENoYXInIH0pO1xuICAgICAgZXhwZWN0KGtleVRvQWN0aW9uKHsga2V5c3Ryb2tlOiAnQmFja3NwYWNlJyB9KSkudG9FcXVhbCh7IHR5cGU6ICdjb21tYW5kJywgdmFsdWU6ICdkZWxldGVCYWNrd2FyZCcgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyB1bmRlZmluZWQgZm9yIHVua25vd24vZW1wdHkgaW5wdXQnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qoa2V5VG9BY3Rpb24odW5kZWZpbmVkKSkudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGtleVRvQWN0aW9uKHt9KSkudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGtleVRvQWN0aW9uKHsga2V5c3Ryb2tlOiAnTm9wZScgfSkpLnRvQmVVbmRlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdsYXRleCB3aW5zIG92ZXIgY29tbWFuZCBvbmx5IHdoZW4gY29tbWFuZCBpcyBhYnNlbnQnLCAoKSA9PiB7XG4gICAgICAvLyBhIGtleSB3aXRoIGJvdGggc2hvdWxkIHVzZSB0aGUgY29tbWFuZCBwYXRoIChtYXRjaGVzIE1hdGhJbnB1dC5rZXlwYWRQcmVzcylcbiAgICAgIGV4cGVjdChrZXlUb0FjdGlvbih7IGxhdGV4OiAnXFxcXGZyYWN7fXt9JywgY29tbWFuZDogJ1xcXFxmcmFjJyB9KSkudG9FcXVhbCh7XG4gICAgICAgIHR5cGU6ICdpbnNlcnQnLFxuICAgICAgICB2YWx1ZTogJ1xcXFxmcmFjeyM/fXsjP30nLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxZQUFBLEdBQUFDLE9BQUE7QUFVQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxZQUFNO0VBQzdCQSxRQUFRLENBQUMsWUFBWSxFQUFFLFlBQU07SUFDM0JDLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxZQUFNO01BQ3JDQyxNQUFNLENBQUMsSUFBQUMsdUJBQVUsRUFBQyxjQUFjLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUMsY0FBYyxDQUFDO0lBQzVELENBQUMsQ0FBQztJQUVGSCxFQUFFLENBQUMsdUJBQXVCLEVBQUUsWUFBTTtNQUNoQ0MsTUFBTSxDQUFDLElBQUFDLHVCQUFVLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLEVBQUUsQ0FBQztNQUNsQ0YsTUFBTSxDQUFDLElBQUFDLHVCQUFVLEVBQUNFLFNBQVMsQ0FBQyxDQUFDLENBQUNELE9BQU8sQ0FBQyxFQUFFLENBQUM7TUFDekNGLE1BQU0sQ0FBQyxJQUFBQyx1QkFBVSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDdEMsQ0FBQyxDQUFDO0lBRUZILEVBQUUsQ0FBQyxxREFBcUQsRUFBRSxZQUFNO01BQzlEQyxNQUFNLENBQUMsSUFBQUMsdUJBQVUsTUFBQUcsTUFBQSxDQUFLQywwQkFBYSxNQUFHLENBQUMs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