easy-richtextarea 3.0.103 → 3.0.106
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example.js +1 -71
- package/lib/browser.js +1 -1
- package/lib/example/preamble.js +1 -1
- package/lib/example/richTextarea.js +1 -1
- package/lib/example/view.js +1 -1
- package/lib/example.js +1 -1
- package/lib/main.js +1 -1
- package/lib/richTextarea.js +1 -2
- package/lib/selection.js +1 -1
- package/package.json +3 -3
- package/src/richTextarea.js +0 -2
- package/lib/keys.js +0 -67
- package/src/keys.js +0 -87
package/lib/browser.js
CHANGED
|
@@ -22,4 +22,4 @@ function _interopRequireDefault(obj) {
|
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
//# sourceMappingURL=data:application/json;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9icm93c2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlbGVjdGlvbiB9IGZyb20gXCIuL3NlbGVjdGlvblwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFJpY2hUZXh0YXJlYSB9IGZyb20gXCIuL3JpY2hUZXh0YXJlYVwiO1xuIl0sIm5hbWVzIjpbIlNlbGVjdGlvbiIsImRlZmF1bHQiLCJSaWNoVGV4dGFyZWEiXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7OzsrQkFFT0EsV0FBUzs7OzBCQUFwQkMsT0FBTzs7OytCQUVJQyxjQUFZOzs7NkJBQXZCRCxPQUFPOzs7Z0RBRnFCLGFBQWE7bURBRVYsZ0JBQWdCIn0=
|
package/lib/example/preamble.js
CHANGED
|
@@ -4,4 +4,4 @@ _easy.window.assign({
|
|
|
4
4
|
React: _easy.React
|
|
5
5
|
});
|
|
6
6
|
|
|
7
|
-
//# sourceMappingURL=data:application/json;
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ByZWFtYmxlLmpzIiwiLi4vc3JjL2Jyb3dzZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFJlYWN0LCB3aW5kb3cgfSBmcm9tIFwiZWFzeVwiO1xuXG53aW5kb3cuYXNzaWduKHtcbiAgUmVhY3Rcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VsZWN0aW9uIH0gZnJvbSBcIi4vc2VsZWN0aW9uXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmljaFRleHRhcmVhIH0gZnJvbSBcIi4vcmljaFRleHRhcmVhXCI7XG4iXSwibmFtZXMiOlsid2luZG93IiwiYXNzaWduIiwiUmVhY3QiXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQztBQUVpQixJQUFBLEtBQU0sV0FBTixNQUFNLENBQUE7QUFFcENBLEtBQU0sUUFBQ0MsTUFBTSxDQUFDO0lDSmQsQURLRUMsS0FBSyxFQUFMQSxLQUFLLE1BQUxBO0NBQ0QsQ0FBQyxDQUFDIn0=
|
|
@@ -32,4 +32,4 @@ function _templateObject() {
|
|
|
32
32
|
var _default = (0, _easyWithStyle).default(_browser.RichTextarea)(_templateObject());
|
|
33
33
|
exports.default = _default;
|
|
34
34
|
|
|
35
|
-
//# sourceMappingURL=data:application/json;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3JpY2hUZXh0YXJlYS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHdpdGhTdHlsZSBmcm9tIFwiZWFzeS13aXRoLXN0eWxlXCI7XG5cbmltcG9ydCB7IFJpY2hUZXh0YXJlYSB9IGZyb20gXCIuLi9icm93c2VyXCI7ICAvLy9cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKFJpY2hUZXh0YXJlYSlgXG5cbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIHdpZHRoOiAzMnJlbTtcbiAgaGVpZ2h0OiAzMnJlbTtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cbmA7XG4iXSwibmFtZXMiOlsid2l0aFN0eWxlIiwiUmljaFRleHRhcmVhIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7Ozs7O0FBRVMsSUFBQSxjQUFpQixrQ0FBakIsaUJBQWlCLEVBQUE7QUFFVixJQUFBLFFBQVksV0FBWixZQUFZLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFFMUJBLENBQUFBLEdBQUFBLGNBQVMsQUFBYyxDQUFBLFNBQWJDLFFBQVksY0FBQyJ9
|
package/lib/example/view.js
CHANGED
|
@@ -37,4 +37,4 @@ function blurHandler(event, element) {
|
|
|
37
37
|
console.log("blur");
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
//# sourceMappingURL=data:application/json;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBSaWNoVGV4dGFyZWEgZnJvbSBcIi4vcmljaFRleHRhcmVhXCI7XG5cbmNvbnN0IFZpZXcgPSAocHJvcGVydGllcykgPT5cblxuICA8ZGl2IGNsYXNzTmFtZT1cInZpZXdcIj5cbiAgICA8UmljaFRleHRhcmVhIG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgb25TY3JvbGw9e3Njcm9sbEhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICBvbkZvY3VzPXtmb2N1c0hhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICBvbkJsdXI9e2JsdXJIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgYWN0aXZlXG4gICAgLz5cbiAgPC9kaXY+XG5cbjtcblxuZXhwb3J0IGRlZmF1bHQgVmlldztcblxuZnVuY3Rpb24gY2hhbmdlSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCBjb250ZW50Q2hhbmdlZCA9IGVsZW1lbnQuaGFzQ29udGVudENoYW5nZWQoKSxcbiAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IGVsZW1lbnQuaGFzU2VsZWN0aW9uQ2hhbmdlZCgpO1xuXG4gIGNvbnNvbGUubG9nKGNvbnRlbnRDaGFuZ2VkLCBzZWxlY3Rpb25DaGFuZ2VkKVxufVxuXG5mdW5jdGlvbiBzY3JvbGxIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IHNjcm9sbFRvcCA9IGVsZW1lbnQuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgIHNjcm9sbExlZnQgPSBlbGVtZW50LmdldFNjcm9sbExlZnQoKTtcblxuICBjb25zb2xlLmxvZyhzY3JvbGxUb3AsIHNjcm9sbExlZnQpXG59XG5cbmZ1bmN0aW9uIGZvY3VzSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zb2xlLmxvZyhcImZvY3VzXCIpXG59XG5cbmZ1bmN0aW9uIGJsdXJIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnNvbGUubG9nKFwiYmx1clwiKVxufVxuIl0sIm5hbWVzIjpbIlZpZXciLCJwcm9wZXJ0aWVzIiwiZGl2IiwiY2xhc3NOYW1lIiwiUmljaFRleHRhcmVhIiwib25DaGFuZ2UiLCJjaGFuZ2VIYW5kbGVyIiwib25TY3JvbGwiLCJzY3JvbGxIYW5kbGVyIiwib25Gb2N1cyIsImZvY3VzSGFuZGxlciIsIm9uQmx1ciIsImJsdXJIYW5kbGVyIiwiYWN0aXZlIiwiZXZlbnQiLCJlbGVtZW50IiwiY29udGVudENoYW5nZWQiLCJoYXNDb250ZW50Q2hhbmdlZCIsInNlbGVjdGlvbkNoYW5nZWQiLCJoYXNTZWxlY3Rpb25DaGFuZ2VkIiwiY29uc29sZSIsImxvZyIsInNjcm9sbFRvcCIsImdldFNjcm9sbFRvcCIsInNjcm9sbExlZnQiLCJnZXRTY3JvbGxMZWZ0Il0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7Ozs7O0FBRVksSUFBQSxhQUFnQixrQ0FBaEIsZ0JBQWdCLEVBQUE7Ozs7OztBQUV6QyxJQUFNQSxJQUFJLEdBQUcsU0FBQ0MsVUFBVTt5QkFFdEIsb0JBQUNDLEtBQUc7UUFBQ0MsU0FBUyxFQUFDLE1BQU07cUJBQ25CLG9CQUFDQyxhQUFZO1FBQUNDLFFBQVEsRUFBRUMsYUFBYTtRQUN2QkMsUUFBUSxFQUFFQyxhQUFhO1FBQ3ZCQyxPQUFPLEVBQUVDLFlBQVk7UUFDckJDLE1BQU0sRUFBRUMsV0FBVztRQUNuQkMsTUFBTSxFQUFOQSxJQUFNO01BQ2xCLENBQ0U7Q0FBQSxBQUVQO2VBRWNiLElBQUk7O0FBRW5CLFNBQVNNLGFBQWEsQ0FBQ1EsS0FBSyxFQUFFQyxPQUFPLEVBQUU7SUFDckMsSUFBTUMsY0FBYyxHQUFHRCxPQUFPLENBQUNFLGlCQUFpQixFQUFFLEVBQzVDQyxnQkFBZ0IsR0FBR0gsT0FBTyxDQUFDSSxtQkFBbUIsRUFBRSxBQUFDO0lBRXZEQyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0wsY0FBYyxFQUFFRSxnQkFBZ0IsQ0FBQztDQUM5QztBQUVELFNBQVNWLGFBQWEsQ0FBQ00sS0FBSyxFQUFFQyxPQUFPLEVBQUU7SUFDckMsSUFBTU8sU0FBUyxHQUFHUCxPQUFPLENBQUNRLFlBQVksRUFBRSxFQUNsQ0MsVUFBVSxHQUFHVCxPQUFPLENBQUNVLGFBQWEsRUFBRSxBQUFDO0lBRTNDTCxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsU0FBUyxFQUFFRSxVQUFVLENBQUM7Q0FDbkM7QUFFRCxTQUFTZCxZQUFZLENBQUNJLEtBQUssRUFBRUMsT0FBTyxFQUFFO0lBQ3BDSyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxPQUFPLENBQUM7Q0FDckI7QUFFRCxTQUFTVCxXQUFXLENBQUNFLEtBQUssRUFBRUMsT0FBTyxFQUFFO0lBQ25DSyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxNQUFNLENBQUM7Q0FDcEIifQ==
|
package/lib/example.js
CHANGED
|
@@ -13,4 +13,4 @@ var body = new _easy.Body();
|
|
|
13
13
|
renderStyles();
|
|
14
14
|
body.mount(/*#__PURE__*/ React.createElement(_view.default, null));
|
|
15
15
|
|
|
16
|
-
//# sourceMappingURL=data:application/json;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9leGFtcGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgXCIuL2V4YW1wbGUvcHJlYW1ibGVcIjtcblxuaW1wb3J0IHdpdGhTdHlsZSBmcm9tIFwiZWFzeS13aXRoLXN0eWxlXCI7ICAvLy9cblxuaW1wb3J0IHsgQm9keSB9IGZyb20gXCJlYXN5XCI7XG5cbmltcG9ydCBWaWV3IGZyb20gXCIuL2V4YW1wbGUvdmlld1wiO1xuXG5jb25zdCB7IHJlbmRlclN0eWxlcyB9ID0gd2l0aFN0eWxlO1xuXG5jb25zdCBib2R5ID0gbmV3IEJvZHkoKTtcblxucmVuZGVyU3R5bGVzKCk7XG5cbmJvZHkubW91bnQoXG5cbiAgPFZpZXcgLz5cblxuKTtcbiJdLCJuYW1lcyI6WyJyZW5kZXJTdHlsZXMiLCJ3aXRoU3R5bGUiLCJib2R5IiwiQm9keSIsIm1vdW50IiwiVmlldyJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO1FBRU4sb0JBQW9CO0FBRUwsSUFBQSxjQUFpQixrQ0FBakIsaUJBQWlCLEVBQUE7QUFFbEIsSUFBQSxLQUFNLFdBQU4sTUFBTSxDQUFBO0FBRVYsSUFBQSxLQUFnQixrQ0FBaEIsZ0JBQWdCLEVBQUE7Ozs7OztBQUVqQyxJQUFNLEFBQUVBLFlBQVksR0FBS0MsY0FBUyxTQUExQkQsWUFBWSxBQUFjLEFBQUM7QUFFbkMsSUFBTUUsSUFBSSxHQUFHLElBQUlDLEtBQUksT0FBRSxBQUFDO0FBRXhCSCxZQUFZLEVBQUUsQ0FBQztBQUVmRSxJQUFJLENBQUNFLEtBQUssZUFFUixvQkFBQ0MsS0FBSSxlQUFHLENBRVQsQ0FBQyJ9
|
package/lib/main.js
CHANGED
|
@@ -15,4 +15,4 @@ function _interopRequireDefault(obj) {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
//# sourceMappingURL=data:application/json;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlbGVjdGlvbiB9IGZyb20gXCIuL3NlbGVjdGlvblwiO1xuIl0sIm5hbWVzIjpbIlNlbGVjdGlvbiIsImRlZmF1bHQiXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7OzsrQkFFT0EsV0FBUzs7OzBCQUFwQkMsT0FBTzs7O2dEQUFxQixhQUFhIn0=
|
package/lib/richTextarea.js
CHANGED
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
exports.default = void 0;
|
|
6
6
|
var _easy = require("easy");
|
|
7
|
-
require("./keys");
|
|
8
7
|
var _selection = _interopRequireDefault(require("./selection"));
|
|
9
8
|
function _arrayLikeToArray(arr, len) {
|
|
10
9
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -572,4 +571,4 @@ _defineProperty(RichTextarea, "defaultProperties", {
|
|
|
572
571
|
className: "rich"
|
|
573
572
|
});
|
|
574
573
|
|
|
575
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgeyB3aW5kb3csIEVsZW1lbnQsIGV2ZW50VHlwZXMgfSBmcm9tIFwiZWFzeVwiO1xyXG5cclxuaW1wb3J0IFwiLi9rZXlzXCI7XHJcblxyXG5pbXBvcnQgU2VsZWN0aW9uIGZyb20gXCIuL3NlbGVjdGlvblwiXHJcblxyXG5jb25zdCB7IEJMVVJfRVZFTlRfVFlQRSxcclxuICAgICAgICAgSU5QVVRfRVZFTlRfVFlQRSxcclxuICAgICAgICAgRk9DVVNfRVZFTlRfVFlQRSxcclxuICAgICAgICAgQ0hBTkdFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIFNDUk9MTF9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBLRVlET1dOX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIE1PVVNFVVBfRVZFTlRfVFlQRSxcclxuICAgICAgICAgTU9VU0VET1dOX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIE1PVVNFTU9WRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBDT05URVhUTUVOVV9FVkVOVF9UWVBFIH0gPSBldmVudFR5cGVzO1xyXG5cclxuY29uc3QgZGVmZXIgPSAoZnVuYykgPT4gc2V0VGltZW91dChmdW5jLCAwKTsgLy8vXHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSaWNoVGV4dGFyZWEgZXh0ZW5kcyBFbGVtZW50IHtcclxuICBpc0FjdGl2ZSgpIHtcclxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuaGFzQ2xhc3MoXCJhY3RpdmVcIik7XHJcblxyXG4gICAgcmV0dXJuIGFjdGl2ZTtcclxuICB9XHJcblxyXG4gIGlzUmVhZE9ubHkoKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICB7IHJlYWRPbmx5IH0gPSBkb21FbGVtZW50O1xyXG4gICAgXHJcbiAgICByZXR1cm4gcmVhZE9ubHk7IFxyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGVudCgpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKSxcclxuICAgICAgICAgIHsgdmFsdWUgfSA9IGRvbUVsZW1lbnQsXHJcbiAgICAgICAgICBjb250ZW50ID0gdmFsdWU7ICAvLy9cclxuXHJcbiAgICByZXR1cm4gY29udGVudDtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGlvbigpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbiA9IFNlbGVjdGlvbi5mcm9tRE9NRWxlbWVudChkb21FbGVtZW50KTtcclxuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0UmVhZE9ubHkocmVhZE9ubHkpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBPYmplY3QuYXNzaWduKGRvbUVsZW1lbnQsIHtcclxuICAgICAgcmVhZE9ubHlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29udGVudChjb250ZW50KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBPYmplY3QuYXNzaWduKGRvbUVsZW1lbnQsIHtcclxuICAgICAgdmFsdWVcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uKSB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb25TdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldFN0YXJ0UG9zaXRpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkVuZFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldEVuZFBvc2l0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIHNlbGVjdGlvbkVuZCA9IHNlbGVjdGlvbkVuZFBvc2l0aW9uLCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbiwgIC8vL1xyXG4gICAgICAgICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oZG9tRWxlbWVudCwge1xyXG4gICAgICBzZWxlY3Rpb25TdGFydCxcclxuICAgICAgc2VsZWN0aW9uRW5kXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIGlzTW91c2VEb3duKCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IG1vdXNlRG93biB9ID0gc3RhdGU7XHJcblxyXG4gICAgcmV0dXJuIG1vdXNlRG93bjtcclxuICB9XHJcblxyXG4gIGhhc0NoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBjb250ZW50Q2hhbmdlZCA9IHRoaXMuaGFzQ29udGVudENoYW5nZWQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSB0aGlzLmhhc1NlbGVjdGlvbkNoYW5nZWQoKSxcclxuICAgICAgICAgIGNoYW5nZWQgPSAoY29udGVudENoYW5nZWQgfHwgc2VsZWN0aW9uQ2hhbmdlZCk7XHJcblxyXG4gICAgcmV0dXJuIGNoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBoYXNDb250ZW50Q2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IHRoaXMuZ2V0UHJldmlvdXNDb250ZW50KCksXHJcbiAgICAgICAgICBjb250ZW50RGlmZmVyZW50VG9QcmV2aW91c0NvbnRlbnQgPSAoY29udGVudCAhPT0gcHJldmlvdXNDb250ZW50KSxcclxuICAgICAgICAgIGNvbnRlbnRDaGFuZ2VkID0gY29udGVudERpZmZlcmVudFRvUHJldmlvdXNDb250ZW50OyAvLy9cclxuXHJcbiAgICByZXR1cm4gY29udGVudENoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBoYXNTZWxlY3Rpb25DaGFuZ2VkKCkge1xyXG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gdGhpcy5nZXRQcmV2aW91c1NlbGVjdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uRGlmZmVyZW50VG9QcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbi5pc0RpZmZlcmVudFRvKHByZXZpb3VzU2VsZWN0aW9uKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSBzZWxlY3Rpb25EaWZmZXJlbnRUb1ByZXZpb3VzU2VsZWN0aW9uOyAvLy9cclxuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uQ2hhbmdlZDtcclxuICB9XHJcblxyXG4gIGFjdGl2YXRlKCkge1xyXG4gICAgY29uc3QgbW91c2VEb3duID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zZXRNb3VzZURvd24obW91c2VEb3duKTtcclxuXHJcbiAgICB3aW5kb3cub24oYCR7QkxVUl9FVkVOVF9UWVBFfSAke01PVVNFVVBfRVZFTlRfVFlQRX0gJHtDT05URVhUTUVOVV9FVkVOVF9UWVBFfWAsIHRoaXMubW91c2VVcEhhbmRsZXIsIHRoaXMpOyAvLy9cclxuXHJcbiAgICB0aGlzLm9uKE1PVVNFRE9XTl9FVkVOVF9UWVBFLCB0aGlzLm1vdXNlRG93bkhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oTU9VU0VNT1ZFX0VWRU5UX1RZUEUsIHRoaXMubW91c2VNb3ZlSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihLRVlET1dOX0VWRU5UX1RZUEUsIHRoaXMua2V5RG93bkhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oSU5QVVRfRVZFTlRfVFlQRSwgdGhpcy5pbnB1dEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oU0NST0xMX0VWRU5UX1RZUEUsIHRoaXMuc2Nyb2xsSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihGT0NVU19FVkVOVF9UWVBFLCB0aGlzLmZvY3VzSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihCTFVSX0VWRU5UX1RZUEUsIHRoaXMuYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMuYWRkQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgfVxyXG5cclxuICBkZWFjdGl2YXRlKCkge1xyXG4gICAgY29uc3QgbW91c2VEb3duID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zZXRNb3VzZURvd24obW91c2VEb3duKTtcclxuXHJcbiAgICB3aW5kb3cub2ZmKGAke0JMVVJfRVZFTlRfVFlQRX0gJHtNT1VTRVVQX0VWRU5UX1RZUEV9ICR7Q09OVEVYVE1FTlVfRVZFTlRfVFlQRX1gLCB0aGlzLm1vdXNlVXBIYW5kbGVyLCB0aGlzKTsgLy8vXHJcblxyXG4gICAgdGhpcy5vZmYoTU9VU0VET1dOX0VWRU5UX1RZUEUsIHRoaXMubW91c2VEb3duSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoTU9VU0VNT1ZFX0VWRU5UX1RZUEUsIHRoaXMubW91c2VNb3ZlSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoS0VZRE9XTl9FVkVOVF9UWVBFLCB0aGlzLmtleURvd25IYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihJTlBVVF9FVkVOVF9UWVBFLCB0aGlzLmlucHV0SGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoU0NST0xMX0VWRU5UX1RZUEUsIHRoaXMuc2Nyb2xsSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoRk9DVVNfRVZFTlRfVFlQRSwgdGhpcy5mb2N1c0hhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKTtcclxuICB9XHJcblxyXG4gIG9uQmx1cihibHVySGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGJsdXJIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvZmZCbHVyKGJsdXJIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoYmx1ckhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9mZkZvY3VzKGJsdXJIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBGT0NVU19FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGJsdXJIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvblNjcm9sbChzY3JvbGxIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBzY3JvbGxIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvZmZTY3JvbGwoc2Nyb2xsSGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gU0NST0xMX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gc2Nyb2xsSGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UoY2hhbmdlSGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gY2hhbmdlSGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb2ZmQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGNoYW5nZUhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG1vdXNlVXBIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG4gIH07XHJcblxyXG4gIG1vdXNlRG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgbW91c2VEb3duID0gdHJ1ZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuc2V0TW91c2VEb3duKG1vdXNlRG93bik7XHJcblxyXG4gICAgZGVmZXIoKCkgPT4gdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCBldmVudFR5cGUsIGZvcmNlZCkpO1xyXG4gIH1cclxuXHJcbiAgbW91c2VNb3ZlSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZm9yY2VkID0gZmFsc2UsXHJcbiAgICAgICAgICBtb3VzZURvd24gPSB0aGlzLmlzTW91c2VEb3duKCksXHJcbiAgICAgICAgICBldmVudFRZcGUgPSBDSEFOR0VfRVZFTlRfVFlQRTtcclxuXHJcbiAgICBpZiAobW91c2VEb3duKSB7XHJcbiAgICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUWXBlLCBmb3JjZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAga2V5RG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgZGVmZXIoKCkgPT4gdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCBldmVudFR5cGUsIGZvcmNlZCkpO1xyXG4gIH1cclxuXHJcbiAgaW5wdXRIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSBmYWxzZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gU0NST0xMX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgdGhpcy5jYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBmb2N1c0hhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IHRydWUsXHJcbiAgICAgICAgICBldmVudFR5cGUgPSBGT0NVU19FVkVOVF9UWVBFO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIGJsdXJIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSB0cnVlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpO1xyXG4gIH1cclxuXHJcbiAgaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpIHtcclxuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLmhhc0NoYW5nZWQoKTtcclxuXHJcbiAgICBpZiAoY2hhbmdlZCB8fCBmb3JjZWQpIHtcclxuICAgICAgdGhpcy5jYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uOyAgLy8vXHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XHJcbiAgICBjb25zdCBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XHJcblxyXG4gICAgZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgoZXZlbnRMaXN0ZW5lcikgPT4ge1xyXG4gICAgICBjb25zdCB7IGhhbmRsZXIsIGVsZW1lbnQ6IGhhbmRsZXJFbGVtZW50IH0gPSBldmVudExpc3RlbmVyLFxyXG4gICAgICAgICAgICBlbGVtZW50ID0gdGhpczsgLy8vXHJcblxyXG4gICAgICBpZiAoKGhhbmRsZXIgIT09IHRoaXMuYmx1ckhhbmRsZXIpICYmIChoYW5kbGVyICE9PSB0aGlzLmZvY3VzSGFuZGxlcikgJiYgKGhhbmRsZXIgIT09IHRoaXMuc2Nyb2xsSGFuZGxlcikpIHtcclxuICAgICAgICBoYW5kbGVyLmNhbGwoaGFuZGxlckVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNDb250ZW50KCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzQ29udGVudCB9ID0gc3RhdGU7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzQ29udGVudDtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzU2VsZWN0aW9uKCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzU2VsZWN0aW9uIH0gPSBzdGF0ZTtcclxuXHJcbiAgICByZXR1cm4gcHJldmlvdXNTZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXRNb3VzZURvd24obW91c2VEb3duKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgbW91c2VEb3duXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c0NvbnRlbnRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbml0aWFsU3RhdGUoKSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IG51bGwsXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIG1vdXNlRG93bixcclxuICAgICAgcHJldmlvdXNDb250ZW50LFxyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgYWN0aXZlLCBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gb25DaGFuZ2UsIC8vL1xyXG4gICAgICAgICAgICBzY3JvbGxIYW5kbGVyID0gb25TY3JvbGwsIC8vL1xyXG4gICAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgICAgYmx1ckhhbmRsZXIgPSBvbkJsdXI7IC8vL1xyXG5cclxuICAgIGNoYW5nZUhhbmRsZXIgJiYgdGhpcy5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICAgIHNjcm9sbEhhbmRsZXIgJiYgdGhpcy5vblNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9uRm9jdXMoZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuICAgIGJsdXJIYW5kbGVyICYmIHRoaXMub25CbHVyKGJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdpbGxVbm1vdW50KCkge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgY2hhbmdlSGFuZGxlciA9IG9uQ2hhbmdlLCAvLy9cclxuICAgICAgICAgIHNjcm9sbEhhbmRsZXIgPSBvblNjcm9sbCwgLy8vXHJcbiAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgIGJsdXJIYW5kbGVyID0gb25CbHVyOyAvLy9cclxuXHJcbiAgICBjaGFuZ2VIYW5kbGVyICYmIHRoaXMub2ZmQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIHRoaXMpO1xyXG4gICAgc2Nyb2xsSGFuZGxlciAmJiB0aGlzLm9mZlNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9mZkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcbiAgICBibHVySGFuZGxlciAmJiB0aGlzLm9mZkJsdXIoYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGlzZSgpIHtcclxuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgdGFnTmFtZSA9IFwidGV4dGFyZWFcIjtcclxuXHJcbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xyXG4gICAgXCJvbkNoYW5nZVwiLFxyXG4gICAgXCJvblNjcm9sbFwiLFxyXG4gICAgXCJvbkZvY3VzXCIsXHJcbiAgICBcIm9uQmx1clwiLFxyXG4gICAgXCJhY3RpdmVcIlxyXG4gIF07XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcclxuICAgIGNsYXNzTmFtZTogXCJyaWNoXCJcclxuICB9O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJCTFVSX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiSU5QVVRfRVZFTlRfVFlQRSIsIkZPQ1VTX0VWRU5UX1RZUEUiLCJDSEFOR0VfRVZFTlRfVFlQRSIsIlNDUk9MTF9FVkVOVF9UWVBFIiwiS0VZRE9XTl9FVkVOVF9UWVBFIiwiTU9VU0VVUF9FVkVOVF9UWVBFIiwiTU9VU0VET1dOX0VWRU5UX1RZUEUiLCJNT1VTRU1PVkVfRVZFTlRfVFlQRSIsIkNPTlRFWFRNRU5VX0VWRU5UX1RZUEUiLCJkZWZlciIsImZ1bmMiLCJzZXRUaW1lb3V0IiwiUmljaFRleHRhcmVhIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJoYXNDbGFzcyIsImlzUmVhZE9ubHkiLCJkb21FbGVtZW50IiwiZ2V0RE9NRWxlbWVudCIsInJlYWRPbmx5IiwiZ2V0Q29udGVudCIsInZhbHVlIiwiY29udGVudCIsImdldFNlbGVjdGlvbiIsInNlbGVjdGlvbiIsIlNlbGVjdGlvbiIsImZyb21ET01FbGVtZW50Iiwic2V0UmVhZE9ubHkiLCJPYmplY3QiLCJhc3NpZ24iLCJzZXRDb250ZW50IiwicHJldmlvdXNDb250ZW50Iiwic2V0UHJldmlvdXNDb250ZW50Iiwic2V0U2VsZWN0aW9uIiwic2VsZWN0aW9uU3RhcnRQb3NpdGlvbiIsImdldFN0YXJ0UG9zaXRpb24iLCJzZWxlY3Rpb25FbmRQb3NpdGlvbiIsImdldEVuZFBvc2l0aW9uIiwic2VsZWN0aW9uU3RhcnQiLCJzZWxlY3Rpb25FbmQiLCJwcmV2aW91c1NlbGVjdGlvbiIsInNldFByZXZpb3VzU2VsZWN0aW9uIiwiaXNNb3VzZURvd24iLCJzdGF0ZSIsImdldFN0YXRlIiwibW91c2VEb3duIiwiaGFzQ2hhbmdlZCIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJzZWxlY3Rpb25DaGFuZ2VkIiwiaGFzU2VsZWN0aW9uQ2hhbmdlZCIsImNoYW5nZWQiLCJnZXRQcmV2aW91c0NvbnRlbnQiLCJjb250ZW50RGlmZmVyZW50VG9QcmV2aW91c0NvbnRlbnQiLCJnZXRQcmV2aW91c1NlbGVjdGlvbiIsInNlbGVjdGlvbkRpZmZlcmVudFRvUHJldmlvdXNTZWxlY3Rpb24iLCJpc0RpZmZlcmVudFRvIiwiYWN0aXZhdGUiLCJzZXRNb3VzZURvd24iLCJ3aW5kb3ciLCJvbiIsIm1vdXNlVXBIYW5kbGVyIiwibW91c2VEb3duSGFuZGxlciIsIm1vdXNlTW92ZUhhbmRsZXIiLCJrZXlEb3duSGFuZGxlciIsImlucHV0SGFuZGxlciIsInNjcm9sbEhhbmRsZXIiLCJmb2N1c0hhbmRsZXIiLCJibHVySGFuZGxlciIsImFkZENsYXNzIiwiZGVhY3RpdmF0ZSIsIm9mZiIsInJlbW92ZUNsYXNzIiwib25CbHVyIiwiZWxlbWVudCIsImV2ZW50VHlwZSIsImhhbmRsZXIiLCJhZGRFdmVudExpc3RlbmVyIiwib2ZmQmx1ciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJvbkZvY3VzIiwib2ZmRm9jdXMiLCJvblNjcm9sbCIsIm9mZlNjcm9sbCIsIm9uQ2hhbmdlIiwiY2hhbmdlSGFuZGxlciIsIm9mZkNoYW5nZSIsImV2ZW50IiwiZm9yY2VkIiwiaW50ZXJtZWRpYXRlSGFuZGxlciIsImV2ZW50VFlwZSIsImNhbGxIYW5kbGVycyIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImV2ZW50TGlzdGVuZXJzIiwiZmluZEV2ZW50TGlzdGVuZXJzIiwiZm9yRWFjaCIsImV2ZW50TGlzdGVuZXIiLCJoYW5kbGVyRWxlbWVudCIsImNhbGwiLCJ1cGRhdGVTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsInNldFN0YXRlIiwiZGlkTW91bnQiLCJwcm9wZXJ0aWVzIiwid2lsbFVubW91bnQiLCJpbml0aWFsaXNlIiwiRWxlbWVudCIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7OztFQUFiO3dCQUFBO0FBRTRDLElBQUEsS0FBTSxXQUFOLE1BQU0sQ0FBQTtRQUUzQyxRQUFRLENBSmY7QUFNc0IsSUFBQSxVQUFhLGtDQUFiLGFBQWEsRUFBQTs7eURBTm5DO3VFQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dGQUFBOzs7Ozs7OztzQ0FBQTs7Ozs7O2lDQUFBOzs7aUVBQUE7O1NBQUE7Ozs7Ozs7OERBQUE7c0NBQUE7NkRBQUE7aUVBQUE7Ozs7d0VBQUE7Z0VBQUE7Ozs7Ozs7Ozs7VUFBQTs7d0JBQUE7Ozs7Ozs7S0FBQTs7Ozs7Ozs7Ozs7OztNQUFBO3lEQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dUJBQUE7O0tBQUE7Ozs7Ozs7MkJBQUE7Ozs7Ozs7K0RBQUE7Ozs7Ozs7Ozs7Ozs7c0NBQUE7Ozs7Ozs7Ozs7OztVQUFBOztLQUFBOzs7Ozs7OztxRkFBQTs7Ozs7Ozs7Ozs7O21FQUFBOztpREFBQTs7Ozs7QUFRQSxJQUFRQSxlQUFlLEdBU2FDLEtBQVUsWUFUdENELGVBQWUsRUFDZEUsZ0JBQWdCLEdBUVdELEtBQVUsWUFSckNDLGdCQUFnQixFQUNoQkMsZ0JBQWdCLEdBT1dGLEtBQVUsWUFQckNFLGdCQUFnQixFQUNoQkMsaUJBQWlCLEdBTVVILEtBQVUsWUFOckNHLGlCQUFpQixFQUNqQkMsaUJBQWlCLEdBS1VKLEtBQVUsWUFMckNJLGlCQUFpQixFQUNqQkMsa0JBQWtCLEdBSVNMLEtBQVUsWUFKckNLLGtCQUFrQixFQUNsQkMsa0JBQWtCLEdBR1NOLEtBQVUsWUFIckNNLGtCQUFrQixFQUNsQkMsb0JBQW9CLEdBRU9QLEtBQVUsWUFGckNPLG9CQUFvQixFQUNwQkMsb0JBQW9CLEdBQ09SLEtBQVUsWUFEckNRLG9CQUFvQixFQUNwQkMsc0JBQXNCLEdBQUtULEtBQVUsWUFBckNTLHNCQUFzQixBQUFnQjtBQUUvQyxJQUFNQyxLQUFLLEdBQUcsU0FBQ0MsSUFBSTtXQUFLQyxVQUFVLENBQUNELElBQUksRUFBRSxDQUFDLENBQUM7Q0FBQSxBQUFDLEVBQUMsR0FBRztBQUVqQyxJQUFBLEFBQU1FLFlBQVksaUJDckIvQixBRHFCYTtvQ0FyQmY7O2FBcUJxQkEsWUFBWTsyQ0FyQmpDOzs7OztZQXNCRUMsR0FBUSxFQUFSQSxVQUFRO1lFdEJWLE9Gc0JFQSxTQUFBQSxRQUFRLEdBQUc7Z0JBQ1QsSUFBTUMsTUFBTSxHQUFHLElBQUksQ0FBQ0MsUUFBUSxDQUFDLFFBQVEsQ0FBQyxBQUFDO2dCQUV2QyxPQUFPRCxNQUFNLENBQUM7YUFDZjs7O1lBRURFLEdBQVUsRUFBVkEsWUFBVTtZRTVCWixPRjRCRUEsU0FBQUEsVUFBVSxHQUFHO2dCQUNYLElBQU1DLFVBQVUsR0FBRyxJQUFJLENBQUNDLGFBQWEsRUFBRSxFQUNqQyxBQUFFQyxRQUFRLEdBQUtGLFVBQVUsQ0FBdkJFLFFBQVEsQUFBZSxBQUFDO2dCQUVoQyxPQUFPQSxRQUFRLENBQUM7YUFDakI7OztZQUVEQyxHQUFVLEVBQVZBLFlBQVU7WUVuQ1osT0ZtQ0VBLFNBQUFBLFVBQVUsR0FBRztnQkFDWCxJQUFNSCxVQUFVLEdBQUcsSUFBSSxDQUFDQyxhQUFhLEVBQUUsRUFDakMsQUFBRUcsS0FBSyxHQUFLSixVQUFVLENBQXBCSSxLQUFLLEFBQWUsRUFDdEJDLE9BQU8sR0FBR0QsS0FBSyxBQUFDLEVBQUUsR0FBRztnQkFFM0IsT0FBT0MsT0FBTyxDQUFDO2FBQ2hCOzs7WUFFREMsR0FBWSxFQUFaQSxjQUFZO1lFM0NkLE9GMkNFQSxTQUFBQSxZQUFZLEdBQUc7Z0JBQ2IsSUFBTU4sVUFBVSxHQUFHLElBQUksQ0FBQ0MsYUFBYSxFQUFFLEVBQ2pDTSxTQUFTLEdBQUdDLFVBQVMsU0FBQ0MsY0FBYyxDQUFDVCxVQUFVLENBQUMsQUFBQztnQkFFdkQsT0FBT08sU0FBUyxDQUFDO2FBQ2xCOzs7WUFFREcsR0FBVyxFQUFYQSxhQUFXO1lFbERiLE9Ga0RFQSxTQUFBQSxXQUFXLENBQUNSLFFBQVEsRUFBRTtnQkFDcEIsSUFBTUYsVUFBVSxHQUFHLElBQUksQ0FBQ0MsYUFBYSxFQUFFLEFBQUM7Z0JBRXhDVSxNQUFNLENBQUNDLE1BQU0sQ0FBQ1osVUFBVSxFQUFFO29CQUN4QkUsUUFBUSxFQUFSQSxRQUFRO2lCQUNULENBQUMsQ0FBQzthQUNKOzs7WUFFRFcsR0FBVSxFQUFWQSxZQUFVO1lFMURaLE9GMERFQSxTQUFBQSxVQUFVLENBQUNSLE9BQU8sRUFBRTtnQkFDbEIsSUFBTUQsS0FBSyxHQUFHQyxPQUFPLEVBQ2ZTLGVBQWUsR0FBR1QsT0FBTyxFQUN6QkwsVUFBVSxHQUFHLElBQUksQ0FBQ0MsYUFBYSxFQUFFLEFBQUM7Z0JBRXhDVSxNQUFNLENBQUNDLE1BQU0sQ0FBQ1osVUFBVSxFQUFFO29CQUN4QkksS0FBSyxFQUFMQSxLQUFLO2lCQUNOLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUNXLGtCQUFrQixDQUFDRCxlQUFlLENBQUMsQ0FBQzthQUMxQzs7O1lBRURFLEdBQVksRUFBWkEsY0FBWTtZRXRFZCxPRnNFRUEsU0FBQUEsWUFBWSxDQUFDVCxTQUFTLEVBQUU7Z0JBQ3RCLElBQU1VLHNCQUFzQixHQUFHVixTQUFTLENBQUNXLGdCQUFnQixFQUFFLEVBQ3JEQyxvQkFBb0IsR0FBR1osU0FBUyxDQUFDYSxjQUFjLEVBQUUsRUFDakRDLGNBQWMsR0FBR0osc0JBQXNCLEVBQ3ZDSyxZQUFZLEdBQUdILG9CQUFvQixFQUNuQ0ksaUJBQWlCLEdBQUdoQixTQUFTLEVBQzdCUCxVQUFVLEdBQUcsSUFBSSxDQUFDQyxhQUFhLEVBQUUsQUFBQztnQkFFeENVLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDWixVQUFVLEVBQUU7b0JBQ3hCcUIsY0FBYyxFQUFkQSxjQUFjO29CQUNkQyxZQUFZLEVBQVpBLFlBQVk7aUJBQ2IsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQ0Usb0JBQW9CLENBQUNELGlCQUFpQixDQUFDLENBQUM7YUFDOUM7OztZQUVERSxHQUFXLEVBQVhBLGFBQVc7WUV0RmIsT0ZzRkVBLFNBQUFBLFdBQVcsR0FBRztnQkFDWixJQUFNQyxLQUFLLEdBQUcsSUFBSSxDQUFDQyxRQUFRLEVBQUUsRUFDdkIsQUFBRUMsU0FBUyxHQUFLRixLQUFLLENBQW5CRSxTQUFTLEFBQVUsQUFBQztnQkFFNUIsT0FBT0EsU0FBUyxDQUFDO2FBQ2xCOzs7WUFFREMsR0FBVSxFQUFWQSxZQUFVO1lFN0ZaLE9GNkZFQSxTQUFBQSxVQUFVLEdBQUc7Z0JBQ1gsSUFBTUMsY0FBYyxHQUFHLElBQUksQ0FBQ0MsaUJBQWlCLEVBQUUsRUFDekNDLGdCQUFnQixHQUFHLElBQUksQ0FBQ0MsbUJBQW1CLEVBQUUsRUFDN0NDLE9BQU8sR0FBSUosY0FBYyxJQUFJRSxnQkFBZ0IsQUFBQyxBQUFDO2dCQUVyRCxPQUFPRSxPQUFPLENBQUM7YUFDaEI7OztZQUVESCxHQUFpQixFQUFqQkEsbUJBQWlCO1lFckduQixPRnFHRUEsU0FBQUEsaUJBQWlCLEdBQUc7Z0JBQ2xCLElBQU0xQixPQUFPLEdBQUcsSUFBSSxDQUFDRixVQUFVLEVBQUUsRUFDM0JXLGVBQWUsR0FBRyxJQUFJLENBQUNxQixrQkFBa0IsRUFBRSxFQUMzQ0MsaUNBQWlDLEdBQUkvQixPQUFPLEtBQUtTLGVBQWUsQUFBQyxFQUNqRWdCLGNBQWMsR0FBR00saUNBQWlDLEFBQUMsRUFBQyxHQUFHO2dCQUU3RCxPQUFPTixjQUFjLENBQUM7YUFDdkI7OztZQUVERyxHQUFtQixFQUFuQkEscUJBQW1CO1lFOUdyQixPRjhHRUEsU0FBQUEsbUJBQW1CLEdBQUc7Z0JBQ3BCLElBQU0xQixTQUFTLEdBQUcsSUFBSSxDQUFDRCxZQUFZLEVBQUUsRUFDL0JpQixpQkFBaUIsR0FBRyxJQUFJLENBQUNjLG9CQUFvQixFQUFFLEVBQy9DQyxxQ0FBcUMsR0FBRy9CLFNBQVMsQ0FBQ2dDLGFBQWEsQ0FBQ2hCLGlCQUFpQixDQUFDLEVBQ2xGUyxnQkFBZ0IsR0FBR00scUNBQXFDLEFBQUMsRUFBQyxHQUFHO2dCQUVuRSxPQUFPTixnQkFBZ0IsQ0FBQzthQUN6Qjs7O1lBRURRLEdBQVEsRUFBUkEsVUFBUTtZRXZIVixPRnVIRUEsU0FBQUEsUUFBUSxHQUFHO2dCQUNULElBQU1aLFNBQVMsR0FBRyxLQUFLLEFBQUM7Z0JBRXhCLElBQUksQ0FBQ2EsWUFBWSxDQUFDYixTQUFTLENBQUMsQ0FBQztnQkFFN0JjLEtBQU0sUUFBQ0MsRUFBRSxDQUFDLEFBQUMsRUFBQSxDQUFxQnZELE1BQWtCLENBQXJDUCxlQUFlLEVBQUMsR0FBQyxDQUFxQixDQUFHVSxNQUFzQixDQUE1Q0gsa0JBQWtCLEVBQUMsR0FBQyxDQUF5QixDQUFBLE1BQUEsQ0FBdkJHLHNCQUFzQixDQUFFLEVBQUUsSUFBSSxDQUFDcUQsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRztnQkFFL0csSUFBSSxDQUFDRCxFQUFFLENBQUN0RCxvQkFBb0IsRUFBRSxJQUFJLENBQUN3RCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFM0QsSUFBSSxDQUFDRixFQUFFLENBQUNyRCxvQkFBb0IsRUFBRSxJQUFJLENBQUN3RCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFM0QsSUFBSSxDQUFDSCxFQUFFLENBQUN4RCxrQkFBa0IsRUFBRSxJQUFJLENBQUM0RCxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBRXZELElBQUksQ0FBQ0osRUFBRSxDQUFDNUQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDaUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUVuRCxJQUFJLENBQUNMLEVBQUUsQ0FBQ3pELGlCQUFpQixFQUFFLElBQUksQ0FBQytELGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFckQsSUFBSSxDQUFDTixFQUFFLENBQUMzRCxnQkFBZ0IsRUFBRSxJQUFJLENBQUNrRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBRW5ELElBQUksQ0FBQ1AsRUFBRSxDQUFDOUQsZUFBZSxFQUFFLElBQUksQ0FBQ3NFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFakQsSUFBSSxDQUFDQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDekI7OztZQUVEQyxHQUFVLEVBQVZBLFlBQVU7WUUvSVosT0YrSUVBLFNBQUFBLFVBQVUsR0FBRztnQkFDWCxJQUFNekIsU0FBUyxHQUFHLEtBQUssQUFBQztnQkFFeEIsSUFBSSxDQUFDYSxZQUFZLENBQUNiLFNBQVMsQ0FBQyxDQUFDO2dCQUU3QmMsS0FBTSxRQUFDWSxHQUFHLENBQUMsQUFBQyxFQUFBLENBQXFCbEUsTUFBa0IsQ0FBckNQLGVBQWUsRUFBQyxHQUFDLENBQXFCLENBQUdVLE1BQXNCLENBQTVDSCxrQkFBa0IsRUFBQyxHQUFDLENBQXlCLENBQUEsTUFBQSxDQUF2Qkcsc0JBQXNCLENBQUUsRUFBRSxJQUFJLENBQUNxRCxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHO2dCQUVoSCxJQUFJLENBQUNVLEdBQUcsQ0FBQ2pFLG9CQUFvQixFQUFFLElBQUksQ0FBQ3dELGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUU1RCxJQUFJLENBQUNTLEdBQUcsQ0FBQ2hFLG9CQUFvQixFQUFFLElBQUksQ0FBQ3dELGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUU1RCxJQUFJLENBQUNRLEdBQUcsQ0FBQ25FLGtCQUFrQixFQUFFLElBQUksQ0FBQzRELGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFeEQsSUFBSSxDQUFDTyxHQUFHLENBQUN2RSxnQkFBZ0IsRUFBRSxJQUFJLENBQUNpRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBRXBELElBQUksQ0FBQ00sR0FBRyxDQUFDcEUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDK0QsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUV0RCxJQUFJLENBQUNLLEdBQUcsQ0FBQ3RFLGdCQUFnQixFQUFFLElBQUksQ0FBQ2tFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFcEQsSUFBSSxDQUFDSSxHQUFHLENBQUN6RSxlQUFlLEVBQUUsSUFBSSxDQUFDc0UsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUVsRCxJQUFJLENBQUNJLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM1Qjs7O1lBRURDLEdBQU0sRUFBTkEsUUFBTTtZRXZLUixPRnVLRUEsU0FBQUEsTUFBTSxDQUFDTCxXQUFXLEVBQUVNLE9BQU8sRUFBRTtnQkFDM0IsSUFBTUMsU0FBUyxHQUFHN0UsZUFBZSxFQUMzQjhFLE9BQU8sR0FBR1IsV0FBVyxBQUFDLEVBQUUsR0FBRztnQkFFakMsSUFBSSxDQUFDUyxnQkFBZ0IsQ0FBQ0YsU0FBUyxFQUFFQyxPQUFPLEVBQUVGLE9BQU8sQ0FBQyxDQUFDO2FBQ3BEOzs7WUFFREksR0FBTyxFQUFQQSxTQUFPO1lFOUtULE9GOEtFQSxTQUFBQSxPQUFPLENBQUNWLFdBQVcsRUFBRU0sT0FBTyxFQUFFO2dCQUM1QixJQUFNQyxTQUFTLEdBQUc3RSxlQUFlLEVBQzNCOEUsT0FBTyxHQUFHUixXQUFXLEFBQUMsRUFBRSxHQUFHO2dCQUVqQyxJQUFJLENBQUNXLG1CQUFtQixDQUFDSixTQUFTLEVBQUVDLE9BQU8sRUFBRUYsT0FBTyxDQUFDLENBQUM7YUFDdkQ7OztZQUVETSxHQUFPLEVBQVBBLFNBQU87WUVyTFQsT0ZxTEVBLFNBQUFBLE9BQU8sQ0FBQ1osV0FBVyxFQUFFTSxPQUFPLEVBQUU7Z0JBQzVCLElBQU1DLFNBQVMsR0FBRzFFLGdCQUFnQixFQUM1QjJFLE9BQU8sR0FBR1IsV0FBVyxBQUFDLEVBQUUsR0FBRztnQkFFakMsSUFBSSxDQUFDUyxnQkFBZ0IsQ0FBQ0YsU0FBUyxFQUFFQyxPQUFPLEVBQUVGLE9BQU8sQ0FBQyxDQUFDO2FBQ3BEOzs7WUFFRE8sR0FBUSxFQUFSQSxVQUFRO1lFNUxWLE9GNExFQSxTQUFBQSxRQUFRLENBQUNiLFdBQVcsRUFBRU0sT0FBTyxFQUFFO2dCQUM3QixJQUFNQyxTQUFTLEdBQUcxRSxnQkFBZ0IsRUFDNUIyRSxPQUFPLEdBQUdSLFdBQVcsQUFBQyxFQUFFLEdBQUc7Z0JBRWpDLElBQUksQ0FBQ1csbUJBQW1CLENBQUNKLFNBQVMsRUFBRUMsT0FBTyxFQUFFRixPQUFPLENBQUMsQ0FBQzthQUN2RDs7O1lBRURRLEdBQVEsRUFBUkEsVUFBUTtZRW5NVixPRm1NRUEsU0FBQUEsUUFBUSxDQUFDaEIsYUFBYSxFQUFFUSxPQUFPLEVBQUU7Z0JBQy9CLElBQU1DLFNBQVMsR0FBR3hFLGlCQUFpQixFQUM3QnlFLE9BQU8sR0FBR1YsYUFBYSxBQUFDLEVBQUUsR0FBRztnQkFFbkMsSUFBSSxDQUFDVyxnQkFBZ0IsQ0FBQ0YsU0FBUyxFQUFFQyxPQUFPLEVBQUVGLE9BQU8sQ0FBQyxDQUFDO2FBQ3BEOzs7WUFFRFMsR0FBUyxFQUFUQSxXQUFTO1lFMU1YLE9GME1FQSxTQUFBQSxTQUFTLENBQUNqQixhQUFhLEVBQUVRLE9BQU8sRUFBRTtnQkFDaEMsSUFBTUMsU0FBUyxHQUFHeEUsaUJBQWlCLEVBQzdCeUUsT0FBTyxHQUFHVixhQUFhLEFBQUMsRUFBRSxHQUFHO2dCQUVuQyxJQUFJLENBQUNhLG1CQUFtQixDQUFDSixTQUFTLEVBQUVDLE9BQU8sRUFBRUYsT0FBTyxDQUFDLENBQUM7YUFDdkQ7OztZQUVEVSxHQUFRLEVBQVJBLFVBQVE7WUVqTlYsT0ZpTkVBLFNBQUFBLFFBQVEsQ0FBQ0MsYUFBYSxFQUFFWCxPQUFPLEVBQUU7Z0JBQy9CLElBQU1DLFNBQVMsR0FBR3pFLGlCQUFpQixFQUM3QjBFLE9BQU8sR0FBR1MsYUFBYSxBQUFDLEVBQUUsR0FBRztnQkFFbkMsSUFBSSxDQUFDUixnQkFBZ0IsQ0FBQ0YsU0FBUyxFQUFFQyxPQUFPLEVBQUVGLE9BQU8sQ0FBQyxDQUFDO2FBQ3BEOzs7WUFFRFksR0FBUyxFQUFUQSxXQUFTO1lFeE5YLE9Gd05FQSxTQUFBQSxTQUFTLENBQUNELGFBQWEsRUFBRVgsT0FBTyxFQUFFO2dCQUNoQyxJQUFNQyxTQUFTLEdBQUd6RSxpQkFBaUIsRUFDN0IwRSxPQUFPLEdBQUdTLGFBQWEsQUFBQyxFQUFFLEdBQUc7Z0JBRW5DLElBQUksQ0FBQ04sbUJBQW1CLENBQUNKLFNBQVMsRUFBRUMsT0FBTyxFQUFFRixPQUFPLENBQUMsQ0FBQzthQUN2RDs7O1lBRURiLEdBQWMsRUFBZEEsZ0JBQWM7WUUvTmhCLE9GK05FQSxTQUFBQSxjQUFjLENBQUMwQixLQUFLLEVBQUViLE9BQU8sRUFBRTtnQkFDN0IsSUFBTTdCLFNBQVMsR0FBRyxLQUFLLEFBQUM7Z0JBRXhCLElBQUksQ0FBQ2EsWUFBWSxDQUFDYixTQUFTLENBQUMsQ0FBQzthQUM5Qjs7O1lBRURpQixHQUFnQixFQUFoQkEsa0JBQWdCO1lFck9sQixPRnFPRUEsU0FBQUEsZ0JBQWdCLENBQUN5QixLQUFLLEVBQUViLE9BQU8sRUFBRTs7Z0JBQy9CLElBQU1jLE1BQU0sR0FBRyxLQUFLLEVBQ2QzQyxTQUFTLEdBQUcsSUFBSSxFQUNoQjhCLFNBQVMsR0FBR3pFLGlCQUFpQixBQUFDO2dCQUVwQyxJQUFJLENBQUN3RCxZQUFZLENBQUNiLFNBQVMsQ0FBQyxDQUFDO2dCQUU3QnBDLEtBQUssQ0FBQzsyQkFBTSxNQUFLZ0YsbUJBQW1CLENBQUNGLEtBQUssRUFBRWIsT0FBTyxFQUFFQyxTQUFTLEVBQUVhLE1BQU0sQ0FBQztpQkFBQSxDQUFDLENBQUM7YUFDMUU7OztZQUVEekIsR0FBZ0IsRUFBaEJBLGtCQUFnQjtZRS9PbEIsT0YrT0VBLFNBQUFBLGdCQUFnQixDQUFDd0IsS0FBSyxFQUFFYixPQUFPLEVBQUU7Z0JBQy9CLElBQU1jLE1BQU0sR0FBRyxLQUFLLEVBQ2QzQyxTQUFTLEdBQUcsSUFBSSxDQUFDSCxXQUFXLEVBQUUsRUFDOUJnRCxTQUFTLEdBQUd4RixpQkFBaUIsQUFBQztnQkFFcEMsSUFBSTJDLFNBQVMsRUFBRTtvQkFDYixJQUFJLENBQUM0QyxtQkFBbUIsQ0FBQ0YsS0FBSyxFQUFFYixPQUFPLEVBQUVnQixTQUFTLEVBQUVGLE1BQU0sQ0FBQyxDQUFDO2lCQUM3RDthQUNGOzs7WUFFRHhCLEdBQWMsRUFBZEEsZ0JBQWM7WUV6UGhCLE9GeVBFQSxTQUFBQSxjQUFjLENBQUN1QixLQUFLLEVBQUViLE9BQU8sRUFBRTs7Z0JBQzdCLElBQU1jLE1BQU0sR0FBRyxLQUFLLEVBQ2RiLFNBQVMsR0FBR3pFLGlCQUFpQixBQUFDO2dCQUVwQ08sS0FBSyxDQUFDOzJCQUFNLE1BQUtnRixtQkFBbUIsQ0FBQ0YsS0FBSyxFQUFFYixPQUFPLEVBQUVDLFNBQVMsRUFBRWEsTUFBTSxDQUFDO2lCQUFBLENBQUMsQ0FBQzthQUMxRTs7O1lBRUR2QixHQUFZLEVBQVpBLGNBQVk7WUVoUWQsT0ZnUUVBLFNBQUFBLFlBQVksQ0FBQ3NCLEtBQUssRUFBRWIsT0FBTyxFQUFFO2dCQUMzQixJQUFNYyxNQUFNLEdBQUcsS0FBSyxFQUNkYixTQUFTLEdBQUd6RSxpQkFBaUIsQUFBQztnQkFFcEMsSUFBSSxDQUFDdUYsbUJBQW1CLENBQUNGLEtBQUssRUFBRWIsT0FBTyxFQUFFQyxTQUFTLEVBQUVhLE1BQU0sQ0FBQyxDQUFDO2FBQzdEOzs7WUFFRHRCLEdBQWEsRUFBYkEsZUFBYTtZRXZRZixPRnVRRUEsU0FBQUEsYUFBYSxDQUFDcUIsS0FBSyxFQUFFYixPQUFPLEVBQUU7Z0JBQzVCLElBQU1DLFNBQVMsR0FBR3hFLGlCQUFpQixBQUFDO2dCQUVwQyxJQUFJLENBQUN3RixZQUFZLENBQUNoQixTQUFTLEVBQUVZLEtBQUssRUFBRWIsT0FBTyxDQUFDLENBQUM7YUFDOUM7OztZQUVEUCxHQUFZLEVBQVpBLGNBQVk7WUU3UWQsT0Y2UUVBLFNBQUFBLFlBQVksQ0FBQ29CLEtBQUssRUFBRWIsT0FBTyxFQUFFOztnQkFDM0IsSUFBTWMsTUFBTSxHQUFHLElBQUksRUFDYmIsU0FBUyxHQUFHMUUsZ0JBQWdCLEFBQUM7Z0JBRW5DUSxLQUFLLENBQUM7MkJBQU0sTUFBS2dGLG1CQUFtQixDQUFDRixLQUFLLEVBQUViLE9BQU8sRUFBRUMsU0FBUyxFQUFFYSxNQUFNLENBQUM7aUJBQUEsQ0FBQyxDQUFDO2FBQzFFOzs7WUFFRHBCLEdBQVcsRUFBWEEsYUFBVztZRXBSYixPRm9SRUEsU0FBQUEsV0FBVyxDQUFDbUIsS0FBSyxFQUFFYixPQUFPLEVBQUU7Z0JBQzFCLElBQU1jLE1BQU0sR0FBRyxJQUFJLEVBQ2JiLFNBQVMsR0FBRzdFLGVBQWUsQUFBQztnQkFFbEMsSUFBSSxDQUFDMkYsbUJBQW1CLENBQUNGLEtBQUssRUFBRWIsT0FBTyxFQUFFQyxTQUFTLEVBQUVhLE1BQU0sQ0FBQyxDQUFDO2FBQzdEOzs7WUFFREMsR0FBbUIsRUFBbkJBLHFCQUFtQjtZRTNSckIsT0YyUkVBLFNBQUFBLG1CQUFtQixDQUFDRixLQUFLLEVBQUViLE9BQU8sRUFBRUMsU0FBUyxFQUFFYSxNQUFNLEVBQUU7Z0JBQ3JELElBQU1yQyxPQUFPLEdBQUcsSUFBSSxDQUFDTCxVQUFVLEVBQUUsQUFBQztnQkFFbEMsSUFBSUssT0FBTyxJQUFJcUMsTUFBTSxFQUFFO29CQUNyQixJQUFJLENBQUNHLFlBQVksQ0FBQ2hCLFNBQVMsRUFBRVksS0FBSyxFQUFFYixPQUFPLENBQUMsQ0FBQztpQkFDOUM7Z0JBRUQsSUFBTXBELE9BQU8sR0FBRyxJQUFJLENBQUNGLFVBQVUsRUFBRSxFQUMzQkksU0FBUyxHQUFHLElBQUksQ0FBQ0QsWUFBWSxFQUFFLEVBQy9CUSxlQUFlLEdBQUdULE9BQU8sRUFDekJrQixpQkFBaUIsR0FBR2hCLFNBQVMsQUFBQyxFQUFFLEdBQUc7Z0JBRXpDLElBQUksQ0FBQ1Esa0JBQWtCLENBQUNELGVBQWUsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLENBQUNVLG9CQUFvQixDQUFDRCxpQkFBaUIsQ0FBQyxDQUFDO2FBQzlDOzs7WUFFRG1ELEdBQVksRUFBWkEsY0FBWTtZRTNTZCxPRjJTRUEsU0FBQUEsWUFBWSxDQUFDaEIsU0FBUyxFQUF5QjtnQkFBdkIsSUFBQSxJQUFBLElBQXFCLEdBQXJCLFNBQXFCLENBQXJCLE1BQXFCLEVBQXJCLEFBQUdpQixrQkFBa0IsR0FBckIsVUFBQSxJQUFxQixHQUFyQixDQUFxQixHQUFyQixJQUFxQixHQUFyQixDQUFxQixJQUFBLENBQUEsRUFBckIsSUFBcUIsR0FBckIsQ0FBcUIsRUFBckIsSUFBcUIsR0FBckIsSUFBcUIsRUFBckIsSUFBcUIsRUFBQSxDQUFyQjtvQkFBQSxBQUFHQSxrQkFBa0IsQ0FBckIsSUFBcUIsR0FBckIsQ0FBcUIsSUFBckIsU0FBcUIsQUFBckIsQ0FBQSxJQUFxQixDQUFBLEFFM1MvQyxDRjJTK0M7aUJBQUE7O2dCQUMzQyxJQUFNQyxjQUFjLEdBQUcsSUFBSSxDQUFDQyxrQkFBa0IsQ0FBQ25CLFNBQVMsQ0FBQyxBQUFDO2dCQUUxRGtCLGNBQWMsQ0FBQ0UsT0FBTyxDQUFDLFNBQUNDLGFBQWEsRUFBSztvQkFDeEMsSUFBUXBCLE9BQU8sR0FBOEJvQixhQUFhLENBQWxEcEIsT0FBTyxFQUFFRixBQUFTdUIsY0FBYyxHQUFLRCxhQUFhLENBQXpDdEIsT0FBTyxBQUFnQixFQUNsQ0EsT0FBTyxRQUFPLEFBQUMsRUFBQyxHQUFHO29CQUV6QixJQUFJLEFBQUNFLE9BQU8sS0FBSyxNQUFLUixXQUFXLElBQU1RLE9BQU8sS0FBSyxNQUFLVCxZQUFZLElBQU1TLE9BQU8sS0FBSyxNQUFLVixhQUFhLEFBQUMsRUFBRTs0QkFDekdVLFFBQU87d0JBQVBBLENBQUFBLFFBQU8sR0FBUEEsT0FBTyxFQUFDc0IsSUFBSSxDQUFadEIsS0FBNEQsQ0FBNURBLFFBQU8sRUFBUEE7NEJBQWFxQixjQUFjO3lCQUFpQyxDQUE1RHJCLE1BQTRELENBQS9CLG1CQUFHZ0Isa0JBQWtCLENBQWxCQSxFQUFoQ2hCOzRCQUFvREYsT0FBTzt5QkFBQyxDQUFBLENBQUEsQ0FBQztxQkFDOUQ7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0o7OztZQUVEdEIsR0FBa0IsRUFBbEJBLG9CQUFrQjtZRXhUcEIsT0Z3VEVBLFNBQUFBLGtCQUFrQixHQUFHO2dCQUNuQixJQUFNVCxLQUFLLEdBQUcsSUFBSSxDQUFDQyxRQUFRLEVBQUUsRUFDdkIsQUFBRWIsZUFBZSxHQUFLWSxLQUFLLENBQXpCWixlQUFlLEFBQVUsQUFBQztnQkFFbEMsT0FBT0EsZUFBZSxDQUFDO2FBQ3hCOzs7WUFFRHVCLEdBQW9CLEVBQXBCQSxzQkFBb0I7WUUvVHRCLE9GK1RFQSxTQUFBQSxvQkFBb0IsR0FBRztnQkFDckIsSUFBTVgsS0FBSyxHQUFHLElBQUksQ0FBQ0MsUUFBUSxFQUFFLEVBQ3ZCLEFBQUVKLGlCQUFpQixHQUFLRyxLQUFLLENBQTNCSCxpQkFBaUIsQUFBVSxBQUFDO2dCQUVwQyxPQUFPQSxpQkFBaUIsQ0FBQzthQUMxQjs7O1lBRURrQixHQUFZLEVBQVpBLGNBQVk7WUV0VWQsT0ZzVUVBLFNBQUFBLFlBQVksQ0FBQ2IsU0FBUyxFQUFFO2dCQUN0QixJQUFJLENBQUNzRCxXQUFXLENBQUM7b0JBQ2Z0RCxTQUFTLEVBQVRBLFNBQVM7aUJBQ1YsQ0FBQyxDQUFDO2FBQ0o7OztZQUVEYixHQUFrQixFQUFsQkEsb0JBQWtCO1lFNVVwQixPRjRVRUEsU0FBQUEsa0JBQWtCLENBQUNELGVBQWUsRUFBRTtnQkFDbEMsSUFBSSxDQUFDb0UsV0FBVyxDQUFDO29CQUNmcEUsZUFBZSxFQUFmQSxlQUFlO2lCQUNoQixDQUFDLENBQUM7YUFDSjs7O1lBRURVLEdBQW9CLEVBQXBCQSxzQkFBb0I7WUVsVnRCLE9Ga1ZFQSxTQUFBQSxvQkFBb0IsQ0FBQ0QsaUJBQWlCLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQzJELFdBQVcsQ0FBQztvQkFDZjNELGlCQUFpQixFQUFqQkEsaUJBQWlCO2lCQUNsQixDQUFDLENBQUM7YUFDSjs7O1lBRUQ0RCxHQUFlLEVBQWZBLGlCQUFlO1lFeFZqQixPRndWRUEsU0FBQUEsZUFBZSxHQUFHO2dCQUNoQixJQUFNdkQsU0FBUyxHQUFHLEtBQUssRUFDakJkLGVBQWUsR0FBRyxJQUFJLEVBQ3RCUyxpQkFBaUIsR0FBRyxJQUFJLEFBQUM7Z0JBRS9CLElBQUksQ0FBQzZELFFBQVEsQ0FBQztvQkFDWnhELFNBQVMsRUFBVEEsU0FBUztvQkFDVGQsZUFBZSxFQUFmQSxlQUFlO29CQUNmUyxpQkFBaUIsRUFBakJBLGlCQUFpQjtpQkFDbEIsQ0FBQyxDQUFDO2FBQ0o7OztZQUVEOEQsR0FBUSxFQUFSQSxVQUFRO1lFcFdWLE9Gb1dFQSxTQUFBQSxRQUFRLEdBQUc7Z0JBQ1QsSUFBd0QsV0FBZSxHQUFmLElBQUksQ0FBQ0MsVUFBVSxFQUEvRHpGLE1BQU0sR0FBMEMsV0FBZSxDQUEvREEsTUFBTSxFQUFFc0UsUUFBUSxHQUFnQyxXQUFlLENBQXZEQSxRQUFRLEVBQUVGLFFBQVEsR0FBc0IsV0FBZSxDQUE3Q0EsUUFBUSxFQUFFRixPQUFPLEdBQWEsV0FBZSxDQUFuQ0EsT0FBTyxFQUFFUCxNQUFNLEdBQUssV0FBZSxDQUExQkEsTUFBTSxFQUMzQ1ksYUFBYSxHQUFHRCxRQUFRLEVBQ3hCbEIsYUFBYSxHQUFHZ0IsUUFBUSxFQUN4QmYsWUFBWSxHQUFHYSxPQUFPLEVBQ3RCWixXQUFXLEdBQUdLLE1BQU0sQUFBQyxFQUFDLEdBQUc7Z0JBRWpDWSxhQUFhLElBQUksSUFBSSxDQUFDRCxRQUFRLENBQUNDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDcERuQixhQUFhLElBQUksSUFBSSxDQUFDZ0IsUUFBUSxDQUFDaEIsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNwREMsWUFBWSxJQUFJLElBQUksQ0FBQ2EsT0FBTyxDQUFDYixZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2pEQyxXQUFXLElBQUksSUFBSSxDQUFDSyxNQUFNLENBQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFOUMsSUFBSXRELE1BQU0sRUFBRTtvQkFDVixJQUFJLENBQUMyQyxRQUFRLEVBQUUsQ0FBQztpQkFDakI7YUFDRjs7O1lBRUQrQyxHQUFXLEVBQVhBLGFBQVc7WUVyWGIsT0ZxWEVBLFNBQUFBLFdBQVcsR0FBRztnQkFDWixJQUFnRCxXQUFlLEdBQWYsSUFBSSxDQUFDRCxVQUFVLEVBQXZEbkIsUUFBUSxHQUFnQyxXQUFlLENBQXZEQSxRQUFRLEVBQUVGLFFBQVEsR0FBc0IsV0FBZSxDQUE3Q0EsUUFBUSxFQUFFRixPQUFPLEdBQWEsV0FBZSxDQUFuQ0EsT0FBTyxFQUFFUCxNQUFNLEdBQUssV0FBZSxDQUExQkEsTUFBTSxFQUNyQ1ksYUFBYSxHQUFHRCxRQUFRLEVBQ3hCbEIsYUFBYSxHQUFHZ0IsUUFBUSxFQUN4QmYsWUFBWSxHQUFHYSxPQUFPLEVBQ3RCWixXQUFXLEdBQUdLLE1BQU0sQUFBQyxFQUFDLEdBQUc7Z0JBRS9CWSxhQUFhLElBQUksSUFBSSxDQUFDQyxTQUFTLENBQUNELGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDckRuQixhQUFhLElBQUksSUFBSSxDQUFDaUIsU0FBUyxDQUFDakIsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNyREMsWUFBWSxJQUFJLElBQUksQ0FBQ2MsUUFBUSxDQUFDZCxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2xEQyxXQUFXLElBQUksSUFBSSxDQUFDVSxPQUFPLENBQUNWLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNoRDs7O1lBRURxQyxHQUFVLEVBQVZBLFlBQVU7WUVsWVosT0ZrWUVBLFNBQUFBLFVBQVUsR0FBRztnQkFDWCxJQUFJLENBQUNMLGVBQWUsRUFBRSxDQUFDO2FBQ3hCOztNQXBZSDs7Q0FtWkMsa0JBOVh5Q00sS0FBTyxVQThYaEQ7a0JBOVhvQjlGLFlBQVksQUFyQmpDO0FBc1lFLGdCQWpYbUJBLFlBQVksRUFpWHhCK0YsU0FBTyxFQUFHLFVBQVUsQ0FBQyxBQXRZOUI7QUF3WUUsZ0JBblhtQi9GLFlBQVksRUFtWHhCZ0csbUJBQWlCLEVBQUc7SUFDekIsVUFBVTtJQUNWLFVBQVU7SUFDVixTQUFTO0lBQ1QsUUFBUTtJQUNSLFFBQVE7Q0FDVCxDQUFDLEFBOVlKO0FBZ1pFLGdCQTNYbUJoRyxZQUFZLEVBMlh4QmlHLG1CQUFpQixFQUFHO0lBQ3pCQyxTQUFTLEVBQUUsTUFBTTtDQUNsQixDQUFDLEFBbFpKIn0=
|
|
574
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iLCIuLi9zcmMvYnJvd3Nlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7IHdpbmRvdywgRWxlbWVudCwgZXZlbnRUeXBlcyB9IGZyb20gXCJlYXN5XCI7XHJcblxyXG5pbXBvcnQgU2VsZWN0aW9uIGZyb20gXCIuL3NlbGVjdGlvblwiXHJcblxyXG5jb25zdCB7IEJMVVJfRVZFTlRfVFlQRSxcclxuICAgICAgICAgSU5QVVRfRVZFTlRfVFlQRSxcclxuICAgICAgICAgRk9DVVNfRVZFTlRfVFlQRSxcclxuICAgICAgICAgQ0hBTkdFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIFNDUk9MTF9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBLRVlET1dOX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIE1PVVNFVVBfRVZFTlRfVFlQRSxcclxuICAgICAgICAgTU9VU0VET1dOX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIE1PVVNFTU9WRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBDT05URVhUTUVOVV9FVkVOVF9UWVBFIH0gPSBldmVudFR5cGVzO1xyXG5cclxuY29uc3QgZGVmZXIgPSAoZnVuYykgPT4gc2V0VGltZW91dChmdW5jLCAwKTsgLy8vXHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSaWNoVGV4dGFyZWEgZXh0ZW5kcyBFbGVtZW50IHtcclxuICBpc0FjdGl2ZSgpIHtcclxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuaGFzQ2xhc3MoXCJhY3RpdmVcIik7XHJcblxyXG4gICAgcmV0dXJuIGFjdGl2ZTtcclxuICB9XHJcblxyXG4gIGlzUmVhZE9ubHkoKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICB7IHJlYWRPbmx5IH0gPSBkb21FbGVtZW50O1xyXG4gICAgXHJcbiAgICByZXR1cm4gcmVhZE9ubHk7IFxyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGVudCgpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKSxcclxuICAgICAgICAgIHsgdmFsdWUgfSA9IGRvbUVsZW1lbnQsXHJcbiAgICAgICAgICBjb250ZW50ID0gdmFsdWU7ICAvLy9cclxuXHJcbiAgICByZXR1cm4gY29udGVudDtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGlvbigpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbiA9IFNlbGVjdGlvbi5mcm9tRE9NRWxlbWVudChkb21FbGVtZW50KTtcclxuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0UmVhZE9ubHkocmVhZE9ubHkpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBPYmplY3QuYXNzaWduKGRvbUVsZW1lbnQsIHtcclxuICAgICAgcmVhZE9ubHlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29udGVudChjb250ZW50KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBPYmplY3QuYXNzaWduKGRvbUVsZW1lbnQsIHtcclxuICAgICAgdmFsdWVcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uKSB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb25TdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldFN0YXJ0UG9zaXRpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkVuZFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldEVuZFBvc2l0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIHNlbGVjdGlvbkVuZCA9IHNlbGVjdGlvbkVuZFBvc2l0aW9uLCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbiwgIC8vL1xyXG4gICAgICAgICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oZG9tRWxlbWVudCwge1xyXG4gICAgICBzZWxlY3Rpb25TdGFydCxcclxuICAgICAgc2VsZWN0aW9uRW5kXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIGlzTW91c2VEb3duKCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IG1vdXNlRG93biB9ID0gc3RhdGU7XHJcblxyXG4gICAgcmV0dXJuIG1vdXNlRG93bjtcclxuICB9XHJcblxyXG4gIGhhc0NoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBjb250ZW50Q2hhbmdlZCA9IHRoaXMuaGFzQ29udGVudENoYW5nZWQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSB0aGlzLmhhc1NlbGVjdGlvbkNoYW5nZWQoKSxcclxuICAgICAgICAgIGNoYW5nZWQgPSAoY29udGVudENoYW5nZWQgfHwgc2VsZWN0aW9uQ2hhbmdlZCk7XHJcblxyXG4gICAgcmV0dXJuIGNoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBoYXNDb250ZW50Q2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IHRoaXMuZ2V0UHJldmlvdXNDb250ZW50KCksXHJcbiAgICAgICAgICBjb250ZW50RGlmZmVyZW50VG9QcmV2aW91c0NvbnRlbnQgPSAoY29udGVudCAhPT0gcHJldmlvdXNDb250ZW50KSxcclxuICAgICAgICAgIGNvbnRlbnRDaGFuZ2VkID0gY29udGVudERpZmZlcmVudFRvUHJldmlvdXNDb250ZW50OyAvLy9cclxuXHJcbiAgICByZXR1cm4gY29udGVudENoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBoYXNTZWxlY3Rpb25DaGFuZ2VkKCkge1xyXG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gdGhpcy5nZXRQcmV2aW91c1NlbGVjdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uRGlmZmVyZW50VG9QcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbi5pc0RpZmZlcmVudFRvKHByZXZpb3VzU2VsZWN0aW9uKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSBzZWxlY3Rpb25EaWZmZXJlbnRUb1ByZXZpb3VzU2VsZWN0aW9uOyAvLy9cclxuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uQ2hhbmdlZDtcclxuICB9XHJcblxyXG4gIGFjdGl2YXRlKCkge1xyXG4gICAgY29uc3QgbW91c2VEb3duID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zZXRNb3VzZURvd24obW91c2VEb3duKTtcclxuXHJcbiAgICB3aW5kb3cub24oYCR7QkxVUl9FVkVOVF9UWVBFfSAke01PVVNFVVBfRVZFTlRfVFlQRX0gJHtDT05URVhUTUVOVV9FVkVOVF9UWVBFfWAsIHRoaXMubW91c2VVcEhhbmRsZXIsIHRoaXMpOyAvLy9cclxuXHJcbiAgICB0aGlzLm9uKE1PVVNFRE9XTl9FVkVOVF9UWVBFLCB0aGlzLm1vdXNlRG93bkhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oTU9VU0VNT1ZFX0VWRU5UX1RZUEUsIHRoaXMubW91c2VNb3ZlSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihLRVlET1dOX0VWRU5UX1RZUEUsIHRoaXMua2V5RG93bkhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oSU5QVVRfRVZFTlRfVFlQRSwgdGhpcy5pbnB1dEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oU0NST0xMX0VWRU5UX1RZUEUsIHRoaXMuc2Nyb2xsSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihGT0NVU19FVkVOVF9UWVBFLCB0aGlzLmZvY3VzSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihCTFVSX0VWRU5UX1RZUEUsIHRoaXMuYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMuYWRkQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgfVxyXG5cclxuICBkZWFjdGl2YXRlKCkge1xyXG4gICAgY29uc3QgbW91c2VEb3duID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zZXRNb3VzZURvd24obW91c2VEb3duKTtcclxuXHJcbiAgICB3aW5kb3cub2ZmKGAke0JMVVJfRVZFTlRfVFlQRX0gJHtNT1VTRVVQX0VWRU5UX1RZUEV9ICR7Q09OVEVYVE1FTlVfRVZFTlRfVFlQRX1gLCB0aGlzLm1vdXNlVXBIYW5kbGVyLCB0aGlzKTsgLy8vXHJcblxyXG4gICAgdGhpcy5vZmYoTU9VU0VET1dOX0VWRU5UX1RZUEUsIHRoaXMubW91c2VEb3duSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoTU9VU0VNT1ZFX0VWRU5UX1RZUEUsIHRoaXMubW91c2VNb3ZlSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoS0VZRE9XTl9FVkVOVF9UWVBFLCB0aGlzLmtleURvd25IYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihJTlBVVF9FVkVOVF9UWVBFLCB0aGlzLmlucHV0SGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoU0NST0xMX0VWRU5UX1RZUEUsIHRoaXMuc2Nyb2xsSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoRk9DVVNfRVZFTlRfVFlQRSwgdGhpcy5mb2N1c0hhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKTtcclxuICB9XHJcblxyXG4gIG9uQmx1cihibHVySGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGJsdXJIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvZmZCbHVyKGJsdXJIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoYmx1ckhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9mZkZvY3VzKGJsdXJIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBGT0NVU19FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGJsdXJIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvblNjcm9sbChzY3JvbGxIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBzY3JvbGxIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvZmZTY3JvbGwoc2Nyb2xsSGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gU0NST0xMX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gc2Nyb2xsSGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UoY2hhbmdlSGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gY2hhbmdlSGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb2ZmQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGNoYW5nZUhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG1vdXNlVXBIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG4gIH07XHJcblxyXG4gIG1vdXNlRG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgbW91c2VEb3duID0gdHJ1ZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuc2V0TW91c2VEb3duKG1vdXNlRG93bik7XHJcblxyXG4gICAgZGVmZXIoKCkgPT4gdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCBldmVudFR5cGUsIGZvcmNlZCkpO1xyXG4gIH1cclxuXHJcbiAgbW91c2VNb3ZlSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZm9yY2VkID0gZmFsc2UsXHJcbiAgICAgICAgICBtb3VzZURvd24gPSB0aGlzLmlzTW91c2VEb3duKCksXHJcbiAgICAgICAgICBldmVudFRZcGUgPSBDSEFOR0VfRVZFTlRfVFlQRTtcclxuXHJcbiAgICBpZiAobW91c2VEb3duKSB7XHJcbiAgICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUWXBlLCBmb3JjZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAga2V5RG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgZGVmZXIoKCkgPT4gdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCBldmVudFR5cGUsIGZvcmNlZCkpO1xyXG4gIH1cclxuXHJcbiAgaW5wdXRIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSBmYWxzZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gU0NST0xMX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgdGhpcy5jYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBmb2N1c0hhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IHRydWUsXHJcbiAgICAgICAgICBldmVudFR5cGUgPSBGT0NVU19FVkVOVF9UWVBFO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIGJsdXJIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSB0cnVlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpO1xyXG4gIH1cclxuXHJcbiAgaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpIHtcclxuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLmhhc0NoYW5nZWQoKTtcclxuXHJcbiAgICBpZiAoY2hhbmdlZCB8fCBmb3JjZWQpIHtcclxuICAgICAgdGhpcy5jYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uOyAgLy8vXHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XHJcbiAgICBjb25zdCBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XHJcblxyXG4gICAgZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgoZXZlbnRMaXN0ZW5lcikgPT4ge1xyXG4gICAgICBjb25zdCB7IGhhbmRsZXIsIGVsZW1lbnQ6IGhhbmRsZXJFbGVtZW50IH0gPSBldmVudExpc3RlbmVyLFxyXG4gICAgICAgICAgICBlbGVtZW50ID0gdGhpczsgLy8vXHJcblxyXG4gICAgICBpZiAoKGhhbmRsZXIgIT09IHRoaXMuYmx1ckhhbmRsZXIpICYmIChoYW5kbGVyICE9PSB0aGlzLmZvY3VzSGFuZGxlcikgJiYgKGhhbmRsZXIgIT09IHRoaXMuc2Nyb2xsSGFuZGxlcikpIHtcclxuICAgICAgICBoYW5kbGVyLmNhbGwoaGFuZGxlckVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNDb250ZW50KCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzQ29udGVudCB9ID0gc3RhdGU7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzQ29udGVudDtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzU2VsZWN0aW9uKCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzU2VsZWN0aW9uIH0gPSBzdGF0ZTtcclxuXHJcbiAgICByZXR1cm4gcHJldmlvdXNTZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXRNb3VzZURvd24obW91c2VEb3duKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgbW91c2VEb3duXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c0NvbnRlbnRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbml0aWFsU3RhdGUoKSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IG51bGwsXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIG1vdXNlRG93bixcclxuICAgICAgcHJldmlvdXNDb250ZW50LFxyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgYWN0aXZlLCBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gb25DaGFuZ2UsIC8vL1xyXG4gICAgICAgICAgICBzY3JvbGxIYW5kbGVyID0gb25TY3JvbGwsIC8vL1xyXG4gICAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgICAgYmx1ckhhbmRsZXIgPSBvbkJsdXI7IC8vL1xyXG5cclxuICAgIGNoYW5nZUhhbmRsZXIgJiYgdGhpcy5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICAgIHNjcm9sbEhhbmRsZXIgJiYgdGhpcy5vblNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9uRm9jdXMoZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuICAgIGJsdXJIYW5kbGVyICYmIHRoaXMub25CbHVyKGJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdpbGxVbm1vdW50KCkge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgY2hhbmdlSGFuZGxlciA9IG9uQ2hhbmdlLCAvLy9cclxuICAgICAgICAgIHNjcm9sbEhhbmRsZXIgPSBvblNjcm9sbCwgLy8vXHJcbiAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgIGJsdXJIYW5kbGVyID0gb25CbHVyOyAvLy9cclxuXHJcbiAgICBjaGFuZ2VIYW5kbGVyICYmIHRoaXMub2ZmQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIHRoaXMpO1xyXG4gICAgc2Nyb2xsSGFuZGxlciAmJiB0aGlzLm9mZlNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9mZkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcbiAgICBibHVySGFuZGxlciAmJiB0aGlzLm9mZkJsdXIoYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGlzZSgpIHtcclxuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgdGFnTmFtZSA9IFwidGV4dGFyZWFcIjtcclxuXHJcbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xyXG4gICAgXCJvbkNoYW5nZVwiLFxyXG4gICAgXCJvblNjcm9sbFwiLFxyXG4gICAgXCJvbkZvY3VzXCIsXHJcbiAgICBcIm9uQmx1clwiLFxyXG4gICAgXCJhY3RpdmVcIlxyXG4gIF07XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcclxuICAgIGNsYXNzTmFtZTogXCJyaWNoXCJcclxuICB9O1xyXG59XHJcbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZWxlY3Rpb24gfSBmcm9tIFwiLi9zZWxlY3Rpb25cIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSaWNoVGV4dGFyZWEgfSBmcm9tIFwiLi9yaWNoVGV4dGFyZWFcIjtcbiJdLCJuYW1lcyI6WyJCTFVSX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiSU5QVVRfRVZFTlRfVFlQRSIsIkZPQ1VTX0VWRU5UX1RZUEUiLCJDSEFOR0VfRVZFTlRfVFlQRSIsIlNDUk9MTF9FVkVOVF9UWVBFIiwiS0VZRE9XTl9FVkVOVF9UWVBFIiwiTU9VU0VVUF9FVkVOVF9UWVBFIiwiTU9VU0VET1dOX0VWRU5UX1RZUEUiLCJNT1VTRU1PVkVfRVZFTlRfVFlQRSIsIkNPTlRFWFRNRU5VX0VWRU5UX1RZUEUiLCJkZWZlciIsImZ1bmMiLCJzZXRUaW1lb3V0IiwiUmljaFRleHRhcmVhIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJoYXNDbGFzcyIsImlzUmVhZE9ubHkiLCJkb21FbGVtZW50IiwiZ2V0RE9NRWxlbWVudCIsInJlYWRPbmx5IiwiZ2V0Q29udGVudCIsInZhbHVlIiwiY29udGVudCIsImdldFNlbGVjdGlvbiIsInNlbGVjdGlvbiIsIlNlbGVjdGlvbiIsImZyb21ET01FbGVtZW50Iiwic2V0UmVhZE9ubHkiLCJPYmplY3QiLCJhc3NpZ24iLCJzZXRDb250ZW50IiwicHJldmlvdXNDb250ZW50Iiwic2V0UHJldmlvdXNDb250ZW50Iiwic2V0U2VsZWN0aW9uIiwic2VsZWN0aW9uU3RhcnRQb3NpdGlvbiIsImdldFN0YXJ0UG9zaXRpb24iLCJzZWxlY3Rpb25FbmRQb3NpdGlvbiIsImdldEVuZFBvc2l0aW9uIiwic2VsZWN0aW9uU3RhcnQiLCJzZWxlY3Rpb25FbmQiLCJwcmV2aW91c1NlbGVjdGlvbiIsInNldFByZXZpb3VzU2VsZWN0aW9uIiwiaXNNb3VzZURvd24iLCJzdGF0ZSIsImdldFN0YXRlIiwibW91c2VEb3duIiwiaGFzQ2hhbmdlZCIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJzZWxlY3Rpb25DaGFuZ2VkIiwiaGFzU2VsZWN0aW9uQ2hhbmdlZCIsImNoYW5nZWQiLCJnZXRQcmV2aW91c0NvbnRlbnQiLCJjb250ZW50RGlmZmVyZW50VG9QcmV2aW91c0NvbnRlbnQiLCJnZXRQcmV2aW91c1NlbGVjdGlvbiIsInNlbGVjdGlvbkRpZmZlcmVudFRvUHJldmlvdXNTZWxlY3Rpb24iLCJpc0RpZmZlcmVudFRvIiwiYWN0aXZhdGUiLCJzZXRNb3VzZURvd24iLCJ3aW5kb3ciLCJvbiIsIm1vdXNlVXBIYW5kbGVyIiwibW91c2VEb3duSGFuZGxlciIsIm1vdXNlTW92ZUhhbmRsZXIiLCJrZXlEb3duSGFuZGxlciIsImlucHV0SGFuZGxlciIsInNjcm9sbEhhbmRsZXIiLCJmb2N1c0hhbmRsZXIiLCJibHVySGFuZGxlciIsImFkZENsYXNzIiwiZGVhY3RpdmF0ZSIsIm9mZiIsInJlbW92ZUNsYXNzIiwib25CbHVyIiwiZWxlbWVudCIsImV2ZW50VHlwZSIsImhhbmRsZXIiLCJhZGRFdmVudExpc3RlbmVyIiwib2ZmQmx1ciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJvbkZvY3VzIiwib2ZmRm9jdXMiLCJvblNjcm9sbCIsIm9mZlNjcm9sbCIsIm9uQ2hhbmdlIiwiY2hhbmdlSGFuZGxlciIsIm9mZkNoYW5nZSIsImV2ZW50IiwiZm9yY2VkIiwiaW50ZXJtZWRpYXRlSGFuZGxlciIsImV2ZW50VFlwZSIsImNhbGxIYW5kbGVycyIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImV2ZW50TGlzdGVuZXJzIiwiZmluZEV2ZW50TGlzdGVuZXJzIiwiZm9yRWFjaCIsImV2ZW50TGlzdGVuZXIiLCJoYW5kbGVyRWxlbWVudCIsImNhbGwiLCJ1cGRhdGVTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsInNldFN0YXRlIiwiZGlkTW91bnQiLCJwcm9wZXJ0aWVzIiwid2lsbFVubW91bnQiLCJpbml0aWFsaXNlIiwiRWxlbWVudCIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7Ozs7O0FBRStCLElBQUEsS0FBTSxXQUFOLE1BQU0sQ0FBQTtBQUU1QixJQUFBLFVBQWEsa0NBQWIsYUFBYSxFQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsSUFB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
|
package/lib/selection.js
CHANGED
|
@@ -98,4 +98,4 @@ var Selection = /*#__PURE__*/ function() {
|
|
|
98
98
|
}();
|
|
99
99
|
exports.default = Selection;
|
|
100
100
|
|
|
101
|
-
//# sourceMappingURL=data:application/json;
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zZWxlY3Rpb24uanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iLCIuLi9zcmMvYnJvd3Nlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VsZWN0aW9uIHtcbiAgY29uc3RydWN0b3Ioc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pIHtcbiAgICB0aGlzLnN0YXJ0UG9zaXRpb24gPSBzdGFydFBvc2l0aW9uO1xuICAgIHRoaXMuZW5kUG9zaXRpb24gPSBlbmRQb3NpdGlvbjtcbiAgfVxuXG4gIGdldFN0YXJ0UG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnRQb3NpdGlvbjtcbiAgfVxuXG4gIGdldEVuZFBvc2l0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmVuZFBvc2l0aW9uO1xuICB9XG5cbiAgc2V0U3RhcnRQb3NpdGlvbihzdGFydFBvc2l0aW9uKSB7XG4gICAgdGhpcy5zdGFydFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbjtcbiAgfVxuXG4gIHNldEVuZFBvc2l0aW9uKGVuZFBvc2l0aW9uKSB7XG4gICAgdGhpcy5lbmRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uO1xuICB9XG5cbiAgaXNFcXVhbFRvKHNlbGVjdGlvbikge1xuICAgIGxldCBlcXVhbFRvID0gZmFsc2U7XG5cbiAgICBpZiAoc2VsZWN0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzZWxlY3Rpb25TdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldFN0YXJ0UG9zaXRpb24oKSxcbiAgICAgICAgICAgIHNlbGVjdGlvbkVuZFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldEVuZFBvc2l0aW9uKCksXG4gICAgICAgICAgICBzdGFydFBvc2l0aW9uc0VxdWFsID0gKHRoaXMuc3RhcnRQb3NpdGlvbiA9PT0gc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiksXG4gICAgICAgICAgICBlbmRQb3NpdGlvbnNFcXVhbCA9ICh0aGlzLmVuZFBvc2l0aW9uID09PSBzZWxlY3Rpb25FbmRQb3NpdGlvbik7XG5cbiAgICAgIGVxdWFsVG8gPSAoc3RhcnRQb3NpdGlvbnNFcXVhbCAmJiBlbmRQb3NpdGlvbnNFcXVhbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBpc0RpZmZlcmVudFRvKHNlbGVjdGlvbikge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyhzZWxlY3Rpb24pLFxuICAgICAgICAgIGRpZmZlcmVudFRvID0gIWVxdWFsVG87XG5cbiAgICByZXR1cm4gZGlmZmVyZW50VG87XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IDAsXG4gICAgICAgICAgZW5kUG9zaXRpb24gPSAwLFxuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRE9NRWxlbWVudChkb21FbGVtZW50KSB7XG4gICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kIH0gPSBkb21FbGVtZW50LFxuICAgICAgICAgIHN0YXJ0UG9zaXRpb24gPSBzZWxlY3Rpb25TdGFydCwgLy8vXG4gICAgICAgICAgZW5kUG9zaXRpb24gPSBzZWxlY3Rpb25FbmQsIC8vL1xuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcblxuICB9XG5cbiAgc3RhdGljIGZyb21TdGFydFBvc2l0aW9uQW5kRW5kUG9zaXRpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pIHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZWxlY3Rpb24gfSBmcm9tIFwiLi9zZWxlY3Rpb25cIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSaWNoVGV4dGFyZWEgfSBmcm9tIFwiLi9yaWNoVGV4dGFyZWFcIjtcbiJdLCJuYW1lcyI6WyJTZWxlY3Rpb24iLCJzdGFydFBvc2l0aW9uIiwiZW5kUG9zaXRpb24iLCJnZXRTdGFydFBvc2l0aW9uIiwiZ2V0RW5kUG9zaXRpb24iLCJzZXRTdGFydFBvc2l0aW9uIiwic2V0RW5kUG9zaXRpb24iLCJpc0VxdWFsVG8iLCJzZWxlY3Rpb24iLCJlcXVhbFRvIiwic2VsZWN0aW9uU3RhcnRQb3NpdGlvbiIsInNlbGVjdGlvbkVuZFBvc2l0aW9uIiwic3RhcnRQb3NpdGlvbnNFcXVhbCIsImVuZFBvc2l0aW9uc0VxdWFsIiwiaXNEaWZmZXJlbnRUbyIsImRpZmZlcmVudFRvIiwiZnJvbU5vdGhpbmciLCJmcm9tRE9NRWxlbWVudCIsImRvbUVsZW1lbnQiLCJzZWxlY3Rpb25TdGFydCIsInNlbGVjdGlvbkVuZCIsImZyb21TdGFydFBvc2l0aW9uQW5kRW5kUG9zaXRpb24iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUUsSUFBQSxBQUFNQSxTQUFTLGlCQ0YzQixBREVZO2FBQU1BLFNBQVMsQ0FDaEJDLGFBQWEsRUFBRUMsV0FBVzs7UUFDcEMsSUFBSSxDQUFDRCxhQUFhLEdBQUdBLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUNDLFdBQVcsR0FBR0EsV0FBVyxDQUFDOzs7O1lBR2pDQyxHQUFnQixFQUFoQkEsa0JBQWdCO1lFUmxCLE9GUUVBLFNBQUFBLGdCQUFnQixHQUFHO2dCQUNqQixPQUFPLElBQUksQ0FBQ0YsYUFBYSxDQUFDO2FBQzNCOzs7WUFFREcs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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "easy-richtextarea",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "3.0.
|
|
4
|
+
"version": "3.0.106",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/easy-richtextarea",
|
|
7
7
|
"description": "A textarea element that handles and hands off events well.",
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
"easy": "^13.0.33"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
-
"@swc/core": "^1.2.
|
|
16
|
+
"@swc/core": "^1.2.160",
|
|
17
17
|
"easy-with-style": "^3.0.122",
|
|
18
18
|
"esbuild": "^0.9.2",
|
|
19
19
|
"express": "^4.17.1",
|
|
20
20
|
"lively-cli": "^2.0.34",
|
|
21
|
-
"watchful-cli": "^1.7.
|
|
21
|
+
"watchful-cli": "^1.7.22"
|
|
22
22
|
},
|
|
23
23
|
"scripts": {
|
|
24
24
|
"start": "node ./bin/main.js",
|
package/src/richTextarea.js
CHANGED
package/lib/keys.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var _easy = require("easy");
|
|
3
|
-
var SHIFT_KEY = "Shift";
|
|
4
|
-
var CONTROL_KEY = "Control";
|
|
5
|
-
var shiftKeyDown = false, controlKeyDown = false;
|
|
6
|
-
_easy.document.onKeyUp(keyUpHandler);
|
|
7
|
-
_easy.document.onKeyDown(keyDownHandler);
|
|
8
|
-
var callback = function(event, element) {
|
|
9
|
-
event.preventDefault();
|
|
10
|
-
}, capturedKeys = [
|
|
11
|
-
SHIFT_KEY,
|
|
12
|
-
CONTROL_KEY,
|
|
13
|
-
"s"
|
|
14
|
-
];
|
|
15
|
-
function keyUpHandler(event, element) {
|
|
16
|
-
var key = event.key;
|
|
17
|
-
switch(key){
|
|
18
|
-
case SHIFT_KEY:
|
|
19
|
-
shiftKeyDown = false;
|
|
20
|
-
break;
|
|
21
|
-
case CONTROL_KEY:
|
|
22
|
-
controlKeyDown = false;
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function keyDownHandler(event, element) {
|
|
27
|
-
var key = event.key;
|
|
28
|
-
switch(key){
|
|
29
|
-
case SHIFT_KEY:
|
|
30
|
-
shiftKeyDown = true;
|
|
31
|
-
break;
|
|
32
|
-
case CONTROL_KEY:
|
|
33
|
-
controlKeyDown = true;
|
|
34
|
-
break;
|
|
35
|
-
default:
|
|
36
|
-
{
|
|
37
|
-
var lowerCaseKey = key.toLowerCase(), captured1 = capturedKeys.every(function(capturedKey) {
|
|
38
|
-
var captured = false;
|
|
39
|
-
switch(capturedKey){
|
|
40
|
-
case SHIFT_KEY:
|
|
41
|
-
if (shiftKeyDown) {
|
|
42
|
-
captured = true;
|
|
43
|
-
}
|
|
44
|
-
break;
|
|
45
|
-
case CONTROL_KEY:
|
|
46
|
-
if (controlKeyDown) {
|
|
47
|
-
captured = true;
|
|
48
|
-
}
|
|
49
|
-
break;
|
|
50
|
-
default:
|
|
51
|
-
{
|
|
52
|
-
var lowerCaseCapturedKey = capturedKey.toLowerCase();
|
|
53
|
-
if (lowerCaseCapturedKey === lowerCaseKey) {
|
|
54
|
-
captured = true;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return captured;
|
|
59
|
-
});
|
|
60
|
-
if (captured1) {
|
|
61
|
-
callback(event, element);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9rZXlzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBkb2N1bWVudCB9IGZyb20gXCJlYXN5XCI7XG5cbmNvbnN0IFNISUZUX0tFWSA9IFwiU2hpZnRcIjtcbmNvbnN0IENPTlRST0xfS0VZID0gXCJDb250cm9sXCI7XG5cbmxldCBzaGlmdEtleURvd24gPSBmYWxzZSxcbiAgICBjb250cm9sS2V5RG93biA9IGZhbHNlO1xuXG5kb2N1bWVudC5vbktleVVwKGtleVVwSGFuZGxlcik7XG5cbmRvY3VtZW50Lm9uS2V5RG93bihrZXlEb3duSGFuZGxlcik7XG5cbmNvbnN0IGNhbGxiYWNrID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9LFxuICAgICAgY2FwdHVyZWRLZXlzID0gWyBTSElGVF9LRVksIENPTlRST0xfS0VZLCBcInNcIiBdO1xuXG5mdW5jdGlvbiBrZXlVcEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuXG4gIHN3aXRjaCAoa2V5KSB7XG4gICAgY2FzZSBTSElGVF9LRVk6XG4gICAgICBzaGlmdEtleURvd24gPSBmYWxzZTtcblxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIENPTlRST0xfS0VZOlxuICAgICAgY29udHJvbEtleURvd24gPSBmYWxzZTtcblxuICAgICAgYnJlYWs7XG4gIH1cbn1cblxuZnVuY3Rpb24ga2V5RG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuXG4gIHN3aXRjaCAoa2V5KSB7XG4gICAgY2FzZSBTSElGVF9LRVk6XG4gICAgICBzaGlmdEtleURvd24gPSB0cnVlO1xuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgQ09OVFJPTF9LRVk6XG4gICAgICBjb250cm9sS2V5RG93biA9IHRydWU7XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDoge1xuICAgICAgY29uc3QgbG93ZXJDYXNlS2V5ID0ga2V5LnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICBjYXB0dXJlZCA9IGNhcHR1cmVkS2V5cy5ldmVyeSgoY2FwdHVyZWRLZXkpID0+IHtcbiAgICAgICAgICAgICAgbGV0IGNhcHR1cmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgc3dpdGNoIChjYXB0dXJlZEtleSkge1xuICAgICAgICAgICAgICAgIGNhc2UgU0hJRlRfS0VZOlxuICAgICAgICAgICAgICAgICAgaWYgKHNoaWZ0S2V5RG93bikge1xuICAgICAgICAgICAgICAgICAgICBjYXB0dXJlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBDT05UUk9MX0tFWTpcbiAgICAgICAgICAgICAgICAgIGlmIChjb250cm9sS2V5RG93bikge1xuICAgICAgICAgICAgICAgICAgICBjYXB0dXJlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbG93ZXJDYXNlQ2FwdHVyZWRLZXkgPSBjYXB0dXJlZEtleS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgICAgICAgICAgICBpZiAobG93ZXJDYXNlQ2FwdHVyZWRLZXkgPT09IGxvd2VyQ2FzZUtleSkge1xuICAgICAgICAgICAgICAgICAgICBjYXB0dXJlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGNhcHR1cmVkO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmIChjYXB0dXJlZCkge1xuICAgICAgICBjYWxsYmFjayhldmVudCwgZWxlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiU0hJRlRfS0VZIiwiQ09OVFJPTF9LRVkiLCJzaGlmdEtleURvd24iLCJjb250cm9sS2V5RG93biIsImRvY3VtZW50Iiwib25LZXlVcCIsImtleVVwSGFuZGxlciIsIm9uS2V5RG93biIsImtleURvd25IYW5kbGVyIiwiY2FsbGJhY2siLCJldmVudCIsImVsZW1lbnQiLCJwcmV2ZW50RGVmYXVsdCIsImNhcHR1cmVkS2V5cyIsImtleSIsImxvd2VyQ2FzZUtleSIsInRvTG93ZXJDYXNlIiwiY2FwdHVyZWQiLCJldmVyeSIsImNhcHR1cmVkS2V5IiwibG93ZXJDYXNlQ2FwdHVyZWRLZXkiXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQztBQUVZLElBQUEsS0FBTSxXQUFOLE1BQU0sQ0FBQTtBQUUvQixJQUFNQSxTQUFTLEdBQUcsT0FBTyxBQUFDO0FBQzFCLElBQU1DLFdBQVcsR0FBRyxTQUFTLEFBQUM7QUFFOUIsSUFBSUMsWUFBWSxHQUFHLEtBQUssRUFDcEJDLGNBQWMsR0FBRyxLQUFLLEFBQUM7QUFFM0JDLEtBQVEsVUFBQ0MsT0FBTyxDQUFDQyxZQUFZLENBQUMsQ0FBQztBQUUvQkYsS0FBUSxVQUFDRyxTQUFTLENBQUNDLGNBQWMsQ0FBQyxDQUFDO0FBRW5DLElBQU1DLFFBQVEsR0FBRyxTQUFDQyxLQUFLLEVBQUVDLE9BQU8sRUFBSztJQUM3QkQsS0FBSyxDQUFDRSxjQUFjLEVBQUUsQ0FBQztDQUN4QixFQUNEQyxZQUFZLEdBQUc7SUFBRWIsU0FBUztJQUFFQyxXQUFXO0lBQUUsR0FBRztDQUFFLEFBQUM7QUFFckQsU0FBU0ssWUFBWSxDQUFDSSxLQUFLLEVBQUVDLE9BQU8sRUFBRTtJQUNwQyxJQUFNLEFBQUVHLEdBQUcsR0FBS0osS0FBSyxDQUFiSSxHQUFHLEFBQVUsQUFBQztJQUV0QixPQUFRQSxHQUFHO1FBQ1QsS0FBS2QsU0FBUztZQUNaRSxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBRXJCLE1BQU07UUFFUixLQUFLRCxXQUFXO1lBQ2RFLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFFdkIsTUFBTTtLQUNUO0NBQ0Y7QUFFRCxTQUFTSyxjQUFjLENBQUNFLEtBQUssRUFBRUMsT0FBTyxFQUFFO0lBQ3RDLElBQU0sQUFBRUcsR0FBRyxHQUFLSixLQUFLLENBQWJJLEdBQUcsQUFBVSxBQUFDO0lBRXRCLE9BQVFBLEdBQUc7UUFDVCxLQUFLZCxTQUFTO1lBQ1pFLFlBQVksR0FBRyxJQUFJLENBQUM7WUFFcEIsTUFBTTtRQUVSLEtBQUtELFdBQVc7WUFDZEUsY0FBYyxHQUFHLElBQUksQ0FBQztZQUV0QixNQUFNO1FBRVI7WUFBUztnQkFDUCxJQUFNWSxZQUFZLEdBQUdELEdBQUcsQ0FBQ0UsV0FBVyxFQUFFLEVBQ2hDQyxTQUFRLEdBQUdKLFlBQVksQ0FBQ0ssS0FBSyxDQUFDLFNBQUNDLFdBQVcsRUFBSztvQkFDN0MsSUFBSUYsUUFBUSxHQUFHLEtBQUssQUFBQztvQkFFckIsT0FBUUUsV0FBVzt3QkFDakIsS0FBS25CLFNBQVM7NEJBQ1osSUFBSUUsWUFBWSxFQUFFO2dDQUNoQmUsUUFBUSxHQUFHLElBQUksQ0FBQzs2QkFDakI7NEJBRUQsTUFBTTt3QkFFUixLQUFLaEIsV0FBVzs0QkFDZCxJQUFJRSxjQUFjLEVBQUU7Z0NBQ2xCYyxRQUFRLEdBQUcsSUFBSSxDQUFDOzZCQUNqQjs0QkFFRCxNQUFNO3dCQUVSOzRCQUFTO2dDQUNQLElBQU1HLG9CQUFvQixHQUFHRCxXQUFXLENBQUNILFdBQVcsRUFBRSxBQUFDO2dDQUV2RCxJQUFJSSxvQkFBb0IsS0FBS0wsWUFBWSxFQUFFO29DQUN6Q0UsUUFBUSxHQUFHLElBQUksQ0FBQztpQ0FDakI7NkJBQ0Y7cUJBQ0Y7b0JBRUQsT0FBT0EsUUFBUSxDQUFDO2lCQUNqQixDQUFDLEFBQUM7Z0JBRVQsSUFBSUEsU0FBUSxFQUFFO29CQUNaUixRQUFRLENBQUNDLEtBQUssRUFBRUMsT0FBTyxDQUFDLENBQUM7aUJBQzFCO2FBQ0Y7S0FDRjtDQUNGIn0=
|
package/src/keys.js
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { document } from "easy";
|
|
4
|
-
|
|
5
|
-
const SHIFT_KEY = "Shift";
|
|
6
|
-
const CONTROL_KEY = "Control";
|
|
7
|
-
|
|
8
|
-
let shiftKeyDown = false,
|
|
9
|
-
controlKeyDown = false;
|
|
10
|
-
|
|
11
|
-
document.onKeyUp(keyUpHandler);
|
|
12
|
-
|
|
13
|
-
document.onKeyDown(keyDownHandler);
|
|
14
|
-
|
|
15
|
-
const callback = (event, element) => {
|
|
16
|
-
event.preventDefault();
|
|
17
|
-
},
|
|
18
|
-
capturedKeys = [ SHIFT_KEY, CONTROL_KEY, "s" ];
|
|
19
|
-
|
|
20
|
-
function keyUpHandler(event, element) {
|
|
21
|
-
const { key } = event;
|
|
22
|
-
|
|
23
|
-
switch (key) {
|
|
24
|
-
case SHIFT_KEY:
|
|
25
|
-
shiftKeyDown = false;
|
|
26
|
-
|
|
27
|
-
break;
|
|
28
|
-
|
|
29
|
-
case CONTROL_KEY:
|
|
30
|
-
controlKeyDown = false;
|
|
31
|
-
|
|
32
|
-
break;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function keyDownHandler(event, element) {
|
|
37
|
-
const { key } = event;
|
|
38
|
-
|
|
39
|
-
switch (key) {
|
|
40
|
-
case SHIFT_KEY:
|
|
41
|
-
shiftKeyDown = true;
|
|
42
|
-
|
|
43
|
-
break;
|
|
44
|
-
|
|
45
|
-
case CONTROL_KEY:
|
|
46
|
-
controlKeyDown = true;
|
|
47
|
-
|
|
48
|
-
break;
|
|
49
|
-
|
|
50
|
-
default: {
|
|
51
|
-
const lowerCaseKey = key.toLowerCase(),
|
|
52
|
-
captured = capturedKeys.every((capturedKey) => {
|
|
53
|
-
let captured = false;
|
|
54
|
-
|
|
55
|
-
switch (capturedKey) {
|
|
56
|
-
case SHIFT_KEY:
|
|
57
|
-
if (shiftKeyDown) {
|
|
58
|
-
captured = true;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
break;
|
|
62
|
-
|
|
63
|
-
case CONTROL_KEY:
|
|
64
|
-
if (controlKeyDown) {
|
|
65
|
-
captured = true;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
break;
|
|
69
|
-
|
|
70
|
-
default: {
|
|
71
|
-
const lowerCaseCapturedKey = capturedKey.toLowerCase();
|
|
72
|
-
|
|
73
|
-
if (lowerCaseCapturedKey === lowerCaseKey) {
|
|
74
|
-
captured = true;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return captured;
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
if (captured) {
|
|
83
|
-
callback(event, element);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|