@pie-lib/editable-html 12.1.0-next.0 → 12.1.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/package.json +7 -7
- package/lib/__tests__/editor-utils.test.js +0 -164
- package/lib/__tests__/serialization.test.js +0 -242
- package/lib/__tests__/utils.js +0 -79
- package/lib/block-tags.js +0 -24
- package/lib/block-tags.js.map +0 -1
- package/lib/constants.js +0 -11
- package/lib/constants.js.map +0 -1
- package/lib/editor.js +0 -1224
- package/lib/editor.js.map +0 -1
- package/lib/index.js +0 -208
- package/lib/index.js.map +0 -1
- package/lib/parse-html.js +0 -16
- package/lib/parse-html.js.map +0 -1
- package/lib/plugins/characters/custom-popper.js +0 -57
- package/lib/plugins/characters/custom-popper.js.map +0 -1
- package/lib/plugins/characters/index.js +0 -265
- package/lib/plugins/characters/index.js.map +0 -1
- package/lib/plugins/characters/utils.js +0 -378
- package/lib/plugins/characters/utils.js.map +0 -1
- package/lib/plugins/css/icons/index.js +0 -25
- package/lib/plugins/css/icons/index.js.map +0 -1
- package/lib/plugins/css/index.js +0 -338
- package/lib/plugins/css/index.js.map +0 -1
- package/lib/plugins/customPlugin/index.js +0 -98
- package/lib/plugins/customPlugin/index.js.map +0 -1
- package/lib/plugins/html/icons/index.js +0 -30
- package/lib/plugins/html/icons/index.js.map +0 -1
- package/lib/plugins/html/index.js +0 -71
- package/lib/plugins/html/index.js.map +0 -1
- package/lib/plugins/image/__tests__/component.test.js +0 -96
- package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +0 -131
- package/lib/plugins/image/__tests__/image-toolbar.test.js +0 -22
- package/lib/plugins/image/__tests__/index.test.js +0 -90
- package/lib/plugins/image/__tests__/insert-image-handler.test.js +0 -112
- package/lib/plugins/image/__tests__/mock-change.js +0 -22
- package/lib/plugins/image/alt-dialog.js +0 -100
- package/lib/plugins/image/alt-dialog.js.map +0 -1
- package/lib/plugins/image/component.js +0 -343
- package/lib/plugins/image/component.js.map +0 -1
- package/lib/plugins/image/image-toolbar.js +0 -137
- package/lib/plugins/image/image-toolbar.js.map +0 -1
- package/lib/plugins/image/index.js +0 -223
- package/lib/plugins/image/index.js.map +0 -1
- package/lib/plugins/image/insert-image-handler.js +0 -140
- package/lib/plugins/image/insert-image-handler.js.map +0 -1
- package/lib/plugins/index.js +0 -342
- package/lib/plugins/index.js.map +0 -1
- package/lib/plugins/list/__tests__/index.test.js +0 -64
- package/lib/plugins/list/index.js +0 -288
- package/lib/plugins/list/index.js.map +0 -1
- package/lib/plugins/math/__tests__/index.test.js +0 -284
- package/lib/plugins/math/index.js +0 -402
- package/lib/plugins/math/index.js.map +0 -1
- package/lib/plugins/media/__tests__/index.test.js +0 -69
- package/lib/plugins/media/index.js +0 -330
- package/lib/plugins/media/index.js.map +0 -1
- package/lib/plugins/media/media-dialog.js +0 -594
- package/lib/plugins/media/media-dialog.js.map +0 -1
- package/lib/plugins/media/media-toolbar.js +0 -76
- package/lib/plugins/media/media-toolbar.js.map +0 -1
- package/lib/plugins/media/media-wrapper.js +0 -64
- package/lib/plugins/media/media-wrapper.js.map +0 -1
- package/lib/plugins/rendering/index.js +0 -36
- package/lib/plugins/rendering/index.js.map +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +0 -271
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js +0 -55
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/utils.js +0 -38
- package/lib/plugins/respArea/drag-in-the-blank/utils.js.map +0 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js +0 -50
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +0 -1
- package/lib/plugins/respArea/icons/index.js +0 -72
- package/lib/plugins/respArea/icons/index.js.map +0 -1
- package/lib/plugins/respArea/index.js +0 -287
- package/lib/plugins/respArea/index.js.map +0 -1
- package/lib/plugins/respArea/inline-dropdown/index.js +0 -67
- package/lib/plugins/respArea/inline-dropdown/index.js.map +0 -1
- package/lib/plugins/respArea/math-templated/index.js +0 -112
- package/lib/plugins/respArea/math-templated/index.js.map +0 -1
- package/lib/plugins/respArea/utils.js +0 -95
- package/lib/plugins/respArea/utils.js.map +0 -1
- package/lib/plugins/table/CustomTablePlugin.js +0 -116
- package/lib/plugins/table/CustomTablePlugin.js.map +0 -1
- package/lib/plugins/table/__tests__/index.test.js +0 -416
- package/lib/plugins/table/__tests__/table-toolbar.test.js +0 -81
- package/lib/plugins/table/icons/index.js +0 -55
- package/lib/plugins/table/icons/index.js.map +0 -1
- package/lib/plugins/table/index.js +0 -413
- package/lib/plugins/table/index.js.map +0 -1
- package/lib/plugins/table/table-toolbar.js +0 -138
- package/lib/plugins/table/table-toolbar.js.map +0 -1
- package/lib/plugins/textAlign/icons/index.js +0 -187
- package/lib/plugins/textAlign/icons/index.js.map +0 -1
- package/lib/plugins/textAlign/index.js +0 -26
- package/lib/plugins/textAlign/index.js.map +0 -1
- package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +0 -154
- package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +0 -47
- package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +0 -112
- package/lib/plugins/toolbar/__tests__/toolbar.test.js +0 -118
- package/lib/plugins/toolbar/default-toolbar.js +0 -180
- package/lib/plugins/toolbar/default-toolbar.js.map +0 -1
- package/lib/plugins/toolbar/done-button.js +0 -35
- package/lib/plugins/toolbar/done-button.js.map +0 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js +0 -258
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +0 -1
- package/lib/plugins/toolbar/index.js +0 -29
- package/lib/plugins/toolbar/index.js.map +0 -1
- package/lib/plugins/toolbar/toolbar-buttons.js +0 -145
- package/lib/plugins/toolbar/toolbar-buttons.js.map +0 -1
- package/lib/plugins/toolbar/toolbar.js +0 -307
- package/lib/plugins/toolbar/toolbar.js.map +0 -1
- package/lib/plugins/utils.js +0 -42
- package/lib/plugins/utils.js.map +0 -1
- package/lib/serialization.js +0 -571
- package/lib/serialization.js.map +0 -1
- package/lib/shared/alert-dialog.js +0 -68
- package/lib/theme.js +0 -8
- package/lib/theme.js.map +0 -1
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports["default"] = void 0;
|
|
8
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
-
var _slate = require("slate");
|
|
11
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
12
|
-
var log = (0, _debug["default"])('@pie-lib:editable-html:image:insert-image-handler');
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Handles user selection, insertion (or cancellation) of an image into the editor.
|
|
16
|
-
* @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image
|
|
17
|
-
* @param {Function} onFinish - a function to call if uploading fails or succeeds
|
|
18
|
-
* @param {Function} getValue - a function to return the value of the editor
|
|
19
|
-
* @param {Function} onChange - callback to notify changes applied by the handler
|
|
20
|
-
* @param {Boolean} isPasted - a boolean that keeps track if the file is pasted
|
|
21
|
-
*/
|
|
22
|
-
var InsertImageHandler = /*#__PURE__*/function () {
|
|
23
|
-
function InsertImageHandler(placeholderBlock, onFinish, getValue, onChange) {
|
|
24
|
-
var isPasted = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
25
|
-
(0, _classCallCheck2["default"])(this, InsertImageHandler);
|
|
26
|
-
this.placeholderBlock = placeholderBlock;
|
|
27
|
-
this.getValue = getValue;
|
|
28
|
-
this.onFinish = onFinish;
|
|
29
|
-
this.onChange = onChange;
|
|
30
|
-
this.isPasted = isPasted;
|
|
31
|
-
this.chosenFile = null;
|
|
32
|
-
}
|
|
33
|
-
return (0, _createClass2["default"])(InsertImageHandler, [{
|
|
34
|
-
key: "getPlaceholderInDocument",
|
|
35
|
-
value: function getPlaceholderInDocument(value) {
|
|
36
|
-
var document = value.document;
|
|
37
|
-
var directChild = document.getChild(this.placeholderBlock.key);
|
|
38
|
-
if (directChild) {
|
|
39
|
-
return directChild;
|
|
40
|
-
}
|
|
41
|
-
var child = document.getDescendant(this.placeholderBlock.key);
|
|
42
|
-
if (child) {
|
|
43
|
-
return child;
|
|
44
|
-
} else {
|
|
45
|
-
// eslint-disable-next-line
|
|
46
|
-
throw new Error("insert-image: Can't find placeholder!");
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}, {
|
|
50
|
-
key: "cancel",
|
|
51
|
-
value: function cancel() {
|
|
52
|
-
log('insert cancelled');
|
|
53
|
-
try {
|
|
54
|
-
var value = this.getValue();
|
|
55
|
-
var child = this.getPlaceholderInDocument(value);
|
|
56
|
-
if (child) {
|
|
57
|
-
var c = value.change().removeNodeByKey(child.key);
|
|
58
|
-
this.onChange(c);
|
|
59
|
-
this.onFinish(false);
|
|
60
|
-
}
|
|
61
|
-
} catch (err) {
|
|
62
|
-
//
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}, {
|
|
66
|
-
key: "done",
|
|
67
|
-
value: function done(err, src) {
|
|
68
|
-
log('done: err:', err);
|
|
69
|
-
if (err) {
|
|
70
|
-
//eslint-disable-next-line
|
|
71
|
-
console.log(err);
|
|
72
|
-
this.onFinish(false);
|
|
73
|
-
} else {
|
|
74
|
-
var value = this.getValue();
|
|
75
|
-
var child = this.getPlaceholderInDocument(value);
|
|
76
|
-
var data = child.data.merge(_slate.Data.create({
|
|
77
|
-
loaded: true,
|
|
78
|
-
src: src,
|
|
79
|
-
percent: 100
|
|
80
|
-
}));
|
|
81
|
-
var change = value.change().setNodeByKey(this.placeholderBlock.key, {
|
|
82
|
-
data: data
|
|
83
|
-
});
|
|
84
|
-
this.onChange(change);
|
|
85
|
-
this.onFinish(true);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Notify handler that the user chose a file - will create a change with a preview in the editor.
|
|
91
|
-
*
|
|
92
|
-
* @param {File} file - the file that the user chose using a file input.
|
|
93
|
-
*/
|
|
94
|
-
}, {
|
|
95
|
-
key: "fileChosen",
|
|
96
|
-
value: function fileChosen(file) {
|
|
97
|
-
var _this = this;
|
|
98
|
-
if (!file) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// Save the chosen file to this.chosenFile
|
|
103
|
-
this.chosenFile = file;
|
|
104
|
-
log('[fileChosen] file: ', file);
|
|
105
|
-
var reader = new FileReader();
|
|
106
|
-
reader.onload = function () {
|
|
107
|
-
var value = _this.getValue();
|
|
108
|
-
var dataURL = reader.result;
|
|
109
|
-
var child = _this.getPlaceholderInDocument(value);
|
|
110
|
-
var data = child.data.set('src', dataURL);
|
|
111
|
-
var change = value.change().setNodeByKey(_this.placeholderBlock.key, {
|
|
112
|
-
data: data
|
|
113
|
-
});
|
|
114
|
-
_this.onChange(change);
|
|
115
|
-
};
|
|
116
|
-
reader.readAsDataURL(file);
|
|
117
|
-
}
|
|
118
|
-
}, {
|
|
119
|
-
key: "progress",
|
|
120
|
-
value: function progress(percent, bytes, total) {
|
|
121
|
-
log('progress: ', percent, bytes, total);
|
|
122
|
-
var value = this.getValue();
|
|
123
|
-
var child = this.getPlaceholderInDocument(value);
|
|
124
|
-
var data = child.data.set('percent', percent);
|
|
125
|
-
var change = value.change().setNodeByKey(this.placeholderBlock.key, {
|
|
126
|
-
data: data
|
|
127
|
-
});
|
|
128
|
-
this.onChange(change);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// Add a getter method to retrieve the chosen file
|
|
132
|
-
}, {
|
|
133
|
-
key: "getChosenFile",
|
|
134
|
-
value: function getChosenFile() {
|
|
135
|
-
return this.chosenFile;
|
|
136
|
-
}
|
|
137
|
-
}]);
|
|
138
|
-
}();
|
|
139
|
-
var _default = exports["default"] = InsertImageHandler;
|
|
140
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2xhdGUiLCJyZXF1aXJlIiwiX2RlYnVnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsImxvZyIsImRlYnVnIiwiSW5zZXJ0SW1hZ2VIYW5kbGVyIiwicGxhY2Vob2xkZXJCbG9jayIsIm9uRmluaXNoIiwiZ2V0VmFsdWUiLCJvbkNoYW5nZSIsImlzUGFzdGVkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX2NsYXNzQ2FsbENoZWNrMiIsImNob3NlbkZpbGUiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJnZXRQbGFjZWhvbGRlckluRG9jdW1lbnQiLCJkb2N1bWVudCIsImRpcmVjdENoaWxkIiwiZ2V0Q2hpbGQiLCJjaGlsZCIsImdldERlc2NlbmRhbnQiLCJFcnJvciIsImNhbmNlbCIsImMiLCJjaGFuZ2UiLCJyZW1vdmVOb2RlQnlLZXkiLCJlcnIiLCJkb25lIiwic3JjIiwiY29uc29sZSIsImRhdGEiLCJtZXJnZSIsIkRhdGEiLCJjcmVhdGUiLCJsb2FkZWQiLCJwZXJjZW50Iiwic2V0Tm9kZUJ5S2V5IiwiZmlsZUNob3NlbiIsImZpbGUiLCJfdGhpcyIsInJlYWRlciIsIkZpbGVSZWFkZXIiLCJvbmxvYWQiLCJkYXRhVVJMIiwicmVzdWx0Iiwic2V0IiwicmVhZEFzRGF0YVVSTCIsInByb2dyZXNzIiwiYnl0ZXMiLCJ0b3RhbCIsImdldENob3NlbkZpbGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGx1Z2lucy9pbWFnZS9pbnNlcnQtaW1hZ2UtaGFuZGxlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6aW1hZ2U6aW5zZXJ0LWltYWdlLWhhbmRsZXInKTtcblxuLyoqXG4gKiBIYW5kbGVzIHVzZXIgc2VsZWN0aW9uLCBpbnNlcnRpb24gKG9yIGNhbmNlbGxhdGlvbikgb2YgYW4gaW1hZ2UgaW50byB0aGUgZWRpdG9yLlxuICogQHBhcmFtIHtCbG9ja30gcGxhY2Vob2xkZXJCbG9jayAtIGEgYmxvY2sgdGhhdCBoYXMgYmVlbiBhZGRlZCB0byB0aGUgZWRpdG9yIGFzIGEgcGxhY2UgaG9sZGVyIGZvciB0aGUgaW1hZ2VcbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9uRmluaXNoIC0gYSBmdW5jdGlvbiB0byBjYWxsIGlmIHVwbG9hZGluZyBmYWlscyBvciBzdWNjZWVkc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gZ2V0VmFsdWUgLSBhIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGVkaXRvclxuICogQHBhcmFtIHtGdW5jdGlvbn0gb25DaGFuZ2UgLSBjYWxsYmFjayB0byBub3RpZnkgY2hhbmdlcyBhcHBsaWVkIGJ5IHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGlzUGFzdGVkIC0gYSBib29sZWFuIHRoYXQga2VlcHMgdHJhY2sgaWYgdGhlIGZpbGUgaXMgcGFzdGVkXG4gKi9cbmNsYXNzIEluc2VydEltYWdlSGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKHBsYWNlaG9sZGVyQmxvY2ssIG9uRmluaXNoLCBnZXRWYWx1ZSwgb25DaGFuZ2UsIGlzUGFzdGVkID0gZmFsc2UpIHtcbiAgICB0aGlzLnBsYWNlaG9sZGVyQmxvY2sgPSBwbGFjZWhvbGRlckJsb2NrO1xuICAgIHRoaXMuZ2V0VmFsdWUgPSBnZXRWYWx1ZTtcbiAgICB0aGlzLm9uRmluaXNoID0gb25GaW5pc2g7XG4gICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xuICAgIHRoaXMuaXNQYXN0ZWQgPSBpc1Bhc3RlZDtcbiAgICB0aGlzLmNob3NlbkZpbGUgPSBudWxsO1xuICB9XG5cbiAgZ2V0UGxhY2Vob2xkZXJJbkRvY3VtZW50KHZhbHVlKSB7XG4gICAgY29uc3QgeyBkb2N1bWVudCB9ID0gdmFsdWU7XG4gICAgY29uc3QgZGlyZWN0Q2hpbGQgPSBkb2N1bWVudC5nZXRDaGlsZCh0aGlzLnBsYWNlaG9sZGVyQmxvY2sua2V5KTtcblxuICAgIGlmIChkaXJlY3RDaGlsZCkge1xuICAgICAgcmV0dXJuIGRpcmVjdENoaWxkO1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkID0gZG9jdW1lbnQuZ2V0RGVzY2VuZGFudCh0aGlzLnBsYWNlaG9sZGVyQmxvY2sua2V5KTtcblxuICAgIGlmIChjaGlsZCkge1xuICAgICAgcmV0dXJuIGNoaWxkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImluc2VydC1pbWFnZTogQ2FuJ3QgZmluZCBwbGFjZWhvbGRlciFcIik7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIGxvZygnaW5zZXJ0IGNhbmNlbGxlZCcpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgICAgY29uc3QgY2hpbGQgPSB0aGlzLmdldFBsYWNlaG9sZGVySW5Eb2N1bWVudCh2YWx1ZSk7XG5cbiAgICAgIGlmIChjaGlsZCkge1xuICAgICAgICBjb25zdCBjID0gdmFsdWUuY2hhbmdlKCkucmVtb3ZlTm9kZUJ5S2V5KGNoaWxkLmtleSk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoYyk7XG4gICAgICAgIHRoaXMub25GaW5pc2goZmFsc2UpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy9cbiAgICB9XG4gIH1cblxuICBkb25lKGVyciwgc3JjKSB7XG4gICAgbG9nKCdkb25lOiBlcnI6JywgZXJyKTtcbiAgICBpZiAoZXJyKSB7XG4gICAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgIHRoaXMub25GaW5pc2goZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICAgIGNvbnN0IGNoaWxkID0gdGhpcy5nZXRQbGFjZWhvbGRlckluRG9jdW1lbnQodmFsdWUpO1xuICAgICAgY29uc3QgZGF0YSA9IGNoaWxkLmRhdGEubWVyZ2UoRGF0YS5jcmVhdGUoeyBsb2FkZWQ6IHRydWUsIHNyYywgcGVyY2VudDogMTAwIH0pKTtcblxuICAgICAgY29uc3QgY2hhbmdlID0gdmFsdWUuY2hhbmdlKCkuc2V0Tm9kZUJ5S2V5KHRoaXMucGxhY2Vob2xkZXJCbG9jay5rZXksIHsgZGF0YSB9KTtcbiAgICAgIHRoaXMub25DaGFuZ2UoY2hhbmdlKTtcbiAgICAgIHRoaXMub25GaW5pc2godHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE5vdGlmeSBoYW5kbGVyIHRoYXQgdGhlIHVzZXIgY2hvc2UgYSBmaWxlIC0gd2lsbCBjcmVhdGUgYSBjaGFuZ2Ugd2l0aCBhIHByZXZpZXcgaW4gdGhlIGVkaXRvci5cbiAgICpcbiAgICogQHBhcmFtIHtGaWxlfSBmaWxlIC0gdGhlIGZpbGUgdGhhdCB0aGUgdXNlciBjaG9zZSB1c2luZyBhIGZpbGUgaW5wdXQuXG4gICAqL1xuICBmaWxlQ2hvc2VuKGZpbGUpIHtcbiAgICBpZiAoIWZpbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBTYXZlIHRoZSBjaG9zZW4gZmlsZSB0byB0aGlzLmNob3NlbkZpbGVcbiAgICB0aGlzLmNob3NlbkZpbGUgPSBmaWxlO1xuXG4gICAgbG9nKCdbZmlsZUNob3Nlbl0gZmlsZTogJywgZmlsZSk7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICBjb25zdCBkYXRhVVJMID0gcmVhZGVyLnJlc3VsdDtcbiAgICAgIGNvbnN0IGNoaWxkID0gdGhpcy5nZXRQbGFjZWhvbGRlckluRG9jdW1lbnQodmFsdWUpO1xuICAgICAgY29uc3QgZGF0YSA9IGNoaWxkLmRhdGEuc2V0KCdzcmMnLCBkYXRhVVJMKTtcbiAgICAgIGNvbnN0IGNoYW5nZSA9IHZhbHVlLmNoYW5nZSgpLnNldE5vZGVCeUtleSh0aGlzLnBsYWNlaG9sZGVyQmxvY2sua2V5LCB7IGRhdGEgfSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKGNoYW5nZSk7XG4gICAgfTtcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgfVxuXG4gIHByb2dyZXNzKHBlcmNlbnQsIGJ5dGVzLCB0b3RhbCkge1xuICAgIGxvZygncHJvZ3Jlc3M6ICcsIHBlcmNlbnQsIGJ5dGVzLCB0b3RhbCk7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgY29uc3QgY2hpbGQgPSB0aGlzLmdldFBsYWNlaG9sZGVySW5Eb2N1bWVudCh2YWx1ZSk7XG4gICAgY29uc3QgZGF0YSA9IGNoaWxkLmRhdGEuc2V0KCdwZXJjZW50JywgcGVyY2VudCk7XG4gICAgY29uc3QgY2hhbmdlID0gdmFsdWUuY2hhbmdlKCkuc2V0Tm9kZUJ5S2V5KHRoaXMucGxhY2Vob2xkZXJCbG9jay5rZXksIHsgZGF0YSB9KTtcbiAgICB0aGlzLm9uQ2hhbmdlKGNoYW5nZSk7XG4gIH1cblxuICAvLyBBZGQgYSBnZXR0ZXIgbWV0aG9kIHRvIHJldHJpZXZlIHRoZSBjaG9zZW4gZmlsZVxuICBnZXRDaG9zZW5GaWxlKCkge1xuICAgIHJldHVybiB0aGlzLmNob3NlbkZpbGU7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSW5zZXJ0SW1hZ2VIYW5kbGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFNRyxHQUFHLEdBQUcsSUFBQUMsaUJBQUssRUFBQyxtREFBbUQsQ0FBQzs7QUFFdEU7QUFDQTtBQUNBO0FB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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"insert-image-handler.js","names":["_slate","require","_debug","_interopRequireDefault","log","debug","InsertImageHandler","placeholderBlock","onFinish","getValue","onChange","isPasted","arguments","length","undefined","_classCallCheck2","chosenFile","_createClass2","key","value","getPlaceholderInDocument","document","directChild","getChild","child","getDescendant","Error","cancel","c","change","removeNodeByKey","err","done","src","console","data","merge","Data","create","loaded","percent","setNodeByKey","fileChosen","file","_this","reader","FileReader","onload","dataURL","result","set","readAsDataURL","progress","bytes","total","getChosenFile","_default","exports"],"sources":["../../../src/plugins/image/insert-image-handler.js"],"sourcesContent":["import { Data } from 'slate';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:image:insert-image-handler');\n\n/**\n * Handles user selection, insertion (or cancellation) of an image into the editor.\n * @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image\n * @param {Function} onFinish - a function to call if uploading fails or succeeds\n * @param {Function} getValue - a function to return the value of the editor\n * @param {Function} onChange - callback to notify changes applied by the handler\n * @param {Boolean} isPasted - a boolean that keeps track if the file is pasted\n */\nclass InsertImageHandler {\n constructor(placeholderBlock, onFinish, getValue, onChange, isPasted = false) {\n this.placeholderBlock = placeholderBlock;\n this.getValue = getValue;\n this.onFinish = onFinish;\n this.onChange = onChange;\n this.isPasted = isPasted;\n this.chosenFile = null;\n }\n\n getPlaceholderInDocument(value) {\n const { document } = value;\n const directChild = document.getChild(this.placeholderBlock.key);\n\n if (directChild) {\n return directChild;\n }\n\n const child = document.getDescendant(this.placeholderBlock.key);\n\n if (child) {\n return child;\n } else {\n // eslint-disable-next-line\n throw new Error(\"insert-image: Can't find placeholder!\");\n }\n }\n\n cancel() {\n log('insert cancelled');\n\n try {\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n\n if (child) {\n const c = value.change().removeNodeByKey(child.key);\n this.onChange(c);\n this.onFinish(false);\n }\n } catch (err) {\n //\n }\n }\n\n done(err, src) {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n this.onFinish(false);\n } else {\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.merge(Data.create({ loaded: true, src, percent: 100 }));\n\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n this.onFinish(true);\n }\n }\n\n /**\n * Notify handler that the user chose a file - will create a change with a preview in the editor.\n *\n * @param {File} file - the file that the user chose using a file input.\n */\n fileChosen(file) {\n if (!file) {\n return;\n }\n\n // Save the chosen file to this.chosenFile\n this.chosenFile = file;\n\n log('[fileChosen] file: ', file);\n const reader = new FileReader();\n reader.onload = () => {\n const value = this.getValue();\n const dataURL = reader.result;\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('src', dataURL);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n };\n reader.readAsDataURL(file);\n }\n\n progress(percent, bytes, total) {\n log('progress: ', percent, bytes, total);\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('percent', percent);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n }\n\n // Add a getter method to retrieve the chosen file\n getChosenFile() {\n return this.chosenFile;\n }\n}\n\nexport default InsertImageHandler;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/plugins/index.js
DELETED
|
@@ -1,342 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.buildPlugins = exports.DEFAULT_PLUGINS = exports.ALL_PLUGINS = void 0;
|
|
8
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
-
var _slateHotkeys = _interopRequireDefault(require("slate-hotkeys"));
|
|
11
|
-
var _slateDevEnvironment = require("slate-dev-environment");
|
|
12
|
-
var _slate = require("slate");
|
|
13
|
-
var _FormatBold = _interopRequireDefault(require("@mui/icons-material/FormatBold"));
|
|
14
|
-
var _FormatQuote = _interopRequireDefault(require("@mui/icons-material/FormatQuote"));
|
|
15
|
-
var _FormatListBulleted = _interopRequireDefault(require("@mui/icons-material/FormatListBulleted"));
|
|
16
|
-
var _FormatListNumbered = _interopRequireDefault(require("@mui/icons-material/FormatListNumbered"));
|
|
17
|
-
var _Redo = _interopRequireDefault(require("@mui/icons-material/Redo"));
|
|
18
|
-
var _Undo = _interopRequireDefault(require("@mui/icons-material/Undo"));
|
|
19
|
-
var _image = _interopRequireDefault(require("./image"));
|
|
20
|
-
var _media = _interopRequireDefault(require("./media"));
|
|
21
|
-
var _characters = _interopRequireDefault(require("./characters"));
|
|
22
|
-
var _FormatItalic = _interopRequireDefault(require("@mui/icons-material/FormatItalic"));
|
|
23
|
-
var _math = _interopRequireDefault(require("./math"));
|
|
24
|
-
var _react = _interopRequireDefault(require("react"));
|
|
25
|
-
var _FormatStrikethrough = _interopRequireDefault(require("@mui/icons-material/FormatStrikethrough"));
|
|
26
|
-
var _toolbar = _interopRequireDefault(require("./toolbar"));
|
|
27
|
-
var _FormatUnderlined = _interopRequireDefault(require("@mui/icons-material/FormatUnderlined"));
|
|
28
|
-
var _compact = _interopRequireDefault(require("lodash/compact"));
|
|
29
|
-
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
30
|
-
var _slateSoftBreak = _interopRequireDefault(require("slate-soft-break"));
|
|
31
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
32
|
-
var _list = _interopRequireDefault(require("./list"));
|
|
33
|
-
var _table = _interopRequireDefault(require("./table"));
|
|
34
|
-
var _respArea = _interopRequireDefault(require("./respArea"));
|
|
35
|
-
var _html = _interopRequireDefault(require("./html"));
|
|
36
|
-
var _css = _interopRequireDefault(require("./css"));
|
|
37
|
-
var _customPlugin = _interopRequireDefault(require("./customPlugin"));
|
|
38
|
-
var _rendering = _interopRequireDefault(require("./rendering"));
|
|
39
|
-
var _textAlign = _interopRequireDefault(require("./textAlign"));
|
|
40
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
41
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } //import Code from '@mui/icons-material/Code';
|
|
42
|
-
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins');
|
|
43
|
-
var SuperscriptIcon = function SuperscriptIcon() {
|
|
44
|
-
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
45
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
46
|
-
height: "24px",
|
|
47
|
-
viewBox: "0 0 24 24",
|
|
48
|
-
width: "24px",
|
|
49
|
-
fill: "none"
|
|
50
|
-
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
51
|
-
d: "M22,7h-2v1h3v1h-4V7c0-0.55,0.45-1,1-1h2V5h-3V4h3c0.55,0,1,0.45,1,1v1C23,6.55,22.55,7,22,7z M5.88,20h2.66l3.4-5.42h0.12 l3.4,5.42h2.66l-4.65-7.27L17.81,6h-2.68l-3.07,4.99h-0.12L8.85,6H6.19l4.32,6.73L5.88,20z",
|
|
52
|
-
fill: "currentColor"
|
|
53
|
-
}));
|
|
54
|
-
};
|
|
55
|
-
var SubscriptIcon = function SubscriptIcon() {
|
|
56
|
-
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
57
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
58
|
-
height: "24px",
|
|
59
|
-
viewBox: "0 0 24 24",
|
|
60
|
-
width: "24px",
|
|
61
|
-
fill: "none"
|
|
62
|
-
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
63
|
-
d: "M22,18h-2v1h3v1h-4v-2c0-0.55,0.45-1,1-1h2v-1h-3v-1h3c0.55,0,1,0.45,1,1v1C23,17.55,22.55,18,22,18z M5.88,18h2.66 l3.4-5.42h0.12l3.4,5.42h2.66l-4.65-7.27L17.81,4h-2.68l-3.07,4.99h-0.12L8.85,4H6.19l4.32,6.73L5.88,18z",
|
|
64
|
-
fill: "currentColor"
|
|
65
|
-
}));
|
|
66
|
-
};
|
|
67
|
-
var HeadingIcon = function HeadingIcon() {
|
|
68
|
-
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
69
|
-
width: "30",
|
|
70
|
-
height: "28",
|
|
71
|
-
viewBox: "0 0 30 28",
|
|
72
|
-
fill: "none",
|
|
73
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
74
|
-
style: {
|
|
75
|
-
width: '20px',
|
|
76
|
-
height: '18px'
|
|
77
|
-
}
|
|
78
|
-
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
79
|
-
d: "M27 4V24H29C29.5 24 30 24.5 30 25V27C30 27.5625 29.5 28 29 28H19C18.4375 28 18 27.5625 18 27V25C18 24.5 18.4375 24 19 24H21V16H9V24H11C11.5 24 12 24.5 12 25V27C12 27.5625 11.5 28 11 28H1C0.4375 28 0 27.5625 0 27V25C0 24.5 0.4375 24 1 24H3V4H1C0.4375 4 0 3.5625 0 3V1C0 0.5 0.4375 0 1 0H11C11.5 0 12 0.5 12 1V3C12 3.5625 11.5 4 11 4H9V12H21V4H19C18.4375 4 18 3.5625 18 3V1C18 0.5 18.4375 0 19 0H29C29.5 0 30 0.5 30 1V3C30 3.5625 29.5 4 29 4H27Z",
|
|
80
|
-
fill: "currentColor"
|
|
81
|
-
}));
|
|
82
|
-
};
|
|
83
|
-
var STYLES_MAP = {
|
|
84
|
-
h3: {
|
|
85
|
-
fontSize: 'inherit',
|
|
86
|
-
fontWeight: 'inherit'
|
|
87
|
-
},
|
|
88
|
-
blockquote: {
|
|
89
|
-
background: '#f9f9f9',
|
|
90
|
-
borderLeft: '5px solid #ccc',
|
|
91
|
-
margin: '1.5em 10px',
|
|
92
|
-
padding: '.5em 10px'
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
function MarkHotkey(options) {
|
|
96
|
-
var type = options.type,
|
|
97
|
-
key = options.key,
|
|
98
|
-
icon = options.icon,
|
|
99
|
-
tag = options.tag;
|
|
100
|
-
|
|
101
|
-
// Return our "plugin" object, containing the `onKeyDown` handler.
|
|
102
|
-
return {
|
|
103
|
-
name: type,
|
|
104
|
-
toolbar: {
|
|
105
|
-
isMark: true,
|
|
106
|
-
type: type,
|
|
107
|
-
icon: icon,
|
|
108
|
-
onToggle: function onToggle(change) {
|
|
109
|
-
log('[onToggleMark] type: ', type);
|
|
110
|
-
var selection = change.value.selection;
|
|
111
|
-
if (['blockquote', 'h3'].includes(type)) {
|
|
112
|
-
var texts = change.value.document.getTextsAtRangeAsArray(selection);
|
|
113
|
-
var onlyOneText = texts.length === 1;
|
|
114
|
-
var hasMark = false;
|
|
115
|
-
var sameMark = true;
|
|
116
|
-
texts.forEach(function (t) {
|
|
117
|
-
var marks = t.getMarksAsArray();
|
|
118
|
-
var markIsThere = marks.find(function (m) {
|
|
119
|
-
return m.type === type;
|
|
120
|
-
});
|
|
121
|
-
if (!markIsThere) {
|
|
122
|
-
// not all texts have this mark
|
|
123
|
-
sameMark = false;
|
|
124
|
-
} else {
|
|
125
|
-
// at least one mark
|
|
126
|
-
hasMark = true;
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
var shouldContinue = onlyOneText || sameMark || !hasMark;
|
|
130
|
-
if (!shouldContinue) {
|
|
131
|
-
return change;
|
|
132
|
-
}
|
|
133
|
-
if (selection.startKey === selection.endKey && selection.anchorOffset === selection.focusOffset) {
|
|
134
|
-
var textNode = change.value.document.getNode(selection.startKey);
|
|
135
|
-
|
|
136
|
-
// select the whole line if there is no selection
|
|
137
|
-
change.moveFocusTo(textNode.key, 0).moveAnchorTo(textNode.key, textNode.text.length);
|
|
138
|
-
|
|
139
|
-
// remove toggle
|
|
140
|
-
var _hasMark = change.value.activeMarks.find(function (entry) {
|
|
141
|
-
return entry.type === type;
|
|
142
|
-
});
|
|
143
|
-
if (_hasMark) {
|
|
144
|
-
change.removeMark(_hasMark);
|
|
145
|
-
} else {
|
|
146
|
-
var newMark = _slate.Mark.create(type);
|
|
147
|
-
change.addMark(newMark);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// move focus to end of text
|
|
151
|
-
return change.moveFocusTo(textNode.key, textNode.text.length).moveAnchorTo(textNode.key, textNode.text.length);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return change.toggleMark(type);
|
|
155
|
-
}
|
|
156
|
-
},
|
|
157
|
-
renderMark: function renderMark(props) {
|
|
158
|
-
if (props.mark.type === type) {
|
|
159
|
-
var _ref = props.node || {},
|
|
160
|
-
data = _ref.data;
|
|
161
|
-
var jsonData = (data === null || data === void 0 ? void 0 : data.toJSON()) || {};
|
|
162
|
-
var K = tag || type;
|
|
163
|
-
var additionalStyles = STYLES_MAP[K];
|
|
164
|
-
if (additionalStyles) {
|
|
165
|
-
if (!jsonData.attributes) {
|
|
166
|
-
jsonData.attributes = {};
|
|
167
|
-
}
|
|
168
|
-
jsonData.attributes.style = _objectSpread(_objectSpread({}, jsonData.attributes.style), additionalStyles);
|
|
169
|
-
}
|
|
170
|
-
return /*#__PURE__*/_react["default"].createElement(K, jsonData.attributes, props.children);
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
onKeyDown: function onKeyDown(event, change) {
|
|
174
|
-
// Check that the key pressed matches our `key` option.
|
|
175
|
-
if (!event.metaKey || event.key != key) return;
|
|
176
|
-
|
|
177
|
-
// Prevent the default characters from being inserted.
|
|
178
|
-
event.preventDefault();
|
|
179
|
-
|
|
180
|
-
// Toggle the mark `type`.
|
|
181
|
-
change.toggleMark(type);
|
|
182
|
-
return true;
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
var ALL_PLUGINS = exports.ALL_PLUGINS = ['bold',
|
|
187
|
-
// 'code',
|
|
188
|
-
'html', 'extraCSSRules', 'italic', 'underline', 'strikethrough', 'bulleted-list', 'numbered-list', 'image', 'math', 'languageCharacters', 'text-align', 'blockquote', 'h3', 'table', 'video', 'audio', 'responseArea', 'redo', 'undo', 'superscript', 'subscript'];
|
|
189
|
-
var DEFAULT_PLUGINS = exports.DEFAULT_PLUGINS = ALL_PLUGINS.filter(function (plug) {
|
|
190
|
-
return !['responseArea', 'h3', 'blockquote'].includes(plug);
|
|
191
|
-
});
|
|
192
|
-
var ICON_MAP = {
|
|
193
|
-
undo: _Undo["default"],
|
|
194
|
-
redo: _Redo["default"]
|
|
195
|
-
};
|
|
196
|
-
function UndoRedo(type) {
|
|
197
|
-
var IconToUse = ICON_MAP[type];
|
|
198
|
-
return {
|
|
199
|
-
name: type,
|
|
200
|
-
toolbar: {
|
|
201
|
-
type: type,
|
|
202
|
-
icon: /*#__PURE__*/_react["default"].createElement(IconToUse, null),
|
|
203
|
-
ariaLabel: type === 'undo' ? 'Undo (revert the last action)' : 'Redo (reapply the last undone action)',
|
|
204
|
-
onClick: function onClick(value, onChange) {
|
|
205
|
-
var change = value.change();
|
|
206
|
-
onChange(change[type]());
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
function EnterHandlingPlugin() {
|
|
212
|
-
return {
|
|
213
|
-
name: 'enterHandling',
|
|
214
|
-
onKeyDown: function onKeyDown(event, change) {
|
|
215
|
-
if (_slateHotkeys["default"].isSplitBlock(event) && !_slateDevEnvironment.IS_IOS) {
|
|
216
|
-
if (change.value.isInVoid) {
|
|
217
|
-
return change.collapseToStartOfNextText();
|
|
218
|
-
}
|
|
219
|
-
change.splitBlock();
|
|
220
|
-
var range = change.value.selection;
|
|
221
|
-
var newBlock = change.value.document.getClosestBlock(range.startKey);
|
|
222
|
-
if (newBlock.type !== 'paragraph') {
|
|
223
|
-
change.setNodeByKey(newBlock.key, {
|
|
224
|
-
type: 'paragraph'
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
return change;
|
|
228
|
-
}
|
|
229
|
-
return undefined;
|
|
230
|
-
}
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
var buildPlugins = exports.buildPlugins = function buildPlugins(activePlugins, customPlugins, opts) {
|
|
234
|
-
log('[buildPlugins] opts: ', opts);
|
|
235
|
-
activePlugins = activePlugins || DEFAULT_PLUGINS;
|
|
236
|
-
var addIf = function addIf(key, p) {
|
|
237
|
-
return activePlugins.includes(key) && p;
|
|
238
|
-
};
|
|
239
|
-
var imagePlugin = opts.image && opts.image.onDelete && (0, _image["default"])(opts.image);
|
|
240
|
-
var mathPlugin = (0, _math["default"])(opts.math);
|
|
241
|
-
var respAreaPlugin = opts.responseArea && opts.responseArea.type && (0, _respArea["default"])(opts.responseArea, (0, _compact["default"])([mathPlugin]));
|
|
242
|
-
var cssPlugin = !(0, _isEmpty["default"])(opts.extraCSSRules) && (0, _css["default"])(opts.extraCSSRules);
|
|
243
|
-
var languageCharactersPlugins = ((opts === null || opts === void 0 ? void 0 : opts.languageCharacters) || []).map(function (config) {
|
|
244
|
-
return (0, _characters["default"])(_objectSpread(_objectSpread({}, config), {}, {
|
|
245
|
-
keyPadCharacterRef: opts.keyPadCharacterRef,
|
|
246
|
-
setKeypadInteraction: opts.setKeypadInteraction
|
|
247
|
-
}));
|
|
248
|
-
});
|
|
249
|
-
var tablePlugins = [imagePlugin, mathPlugin, respAreaPlugin].concat((0, _toConsumableArray2["default"])(languageCharactersPlugins));
|
|
250
|
-
if (opts.responseArea && opts.responseArea.type === 'math-templated') {
|
|
251
|
-
tablePlugins.push(respAreaPlugin);
|
|
252
|
-
}
|
|
253
|
-
var builtCustomPlugins = [];
|
|
254
|
-
customPlugins.forEach(function (customPlugin) {
|
|
255
|
-
var _ref2 = customPlugin || {},
|
|
256
|
-
event = _ref2.event,
|
|
257
|
-
icon = _ref2.icon,
|
|
258
|
-
iconType = _ref2.iconType,
|
|
259
|
-
iconAlt = _ref2.iconAlt;
|
|
260
|
-
function isValidEventName(eventName) {
|
|
261
|
-
// Check if eventName is a non-empty string
|
|
262
|
-
if (typeof eventName !== 'string' || eventName.length === 0) {
|
|
263
|
-
return false;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
// Regular expression to match valid event names (only alphanumeric characters and underscore)
|
|
267
|
-
var regex = /^[a-zA-Z0-9_]+$/;
|
|
268
|
-
|
|
269
|
-
// Check if the eventName matches the regular expression
|
|
270
|
-
return regex.test(eventName);
|
|
271
|
-
}
|
|
272
|
-
if (!isValidEventName(event)) {
|
|
273
|
-
// eslint-disable-next-line no-console
|
|
274
|
-
console.error("The event name: ".concat(event, " is not a valid event name!"));
|
|
275
|
-
return;
|
|
276
|
-
}
|
|
277
|
-
if (!icon && !iconType && !iconAlt) {
|
|
278
|
-
// eslint-disable-next-line no-console
|
|
279
|
-
console.error('Your custom button requires icon, iconType and iconAlt');
|
|
280
|
-
return;
|
|
281
|
-
}
|
|
282
|
-
builtCustomPlugins.push((0, _customPlugin["default"])('custom-plugin', customPlugin));
|
|
283
|
-
});
|
|
284
|
-
return (0, _compact["default"])([addIf('table', (0, _table["default"])(opts.table, (0, _compact["default"])(tablePlugins))), addIf('bold', MarkHotkey({
|
|
285
|
-
key: 'b',
|
|
286
|
-
type: 'bold',
|
|
287
|
-
icon: /*#__PURE__*/_react["default"].createElement(_FormatBold["default"], null),
|
|
288
|
-
tag: 'strong'
|
|
289
|
-
})),
|
|
290
|
-
// addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),
|
|
291
|
-
addIf('italic', MarkHotkey({
|
|
292
|
-
key: 'i',
|
|
293
|
-
type: 'italic',
|
|
294
|
-
icon: /*#__PURE__*/_react["default"].createElement(_FormatItalic["default"], null),
|
|
295
|
-
tag: 'em'
|
|
296
|
-
})), addIf('strikethrough', MarkHotkey({
|
|
297
|
-
key: '~',
|
|
298
|
-
type: 'strikethrough',
|
|
299
|
-
icon: /*#__PURE__*/_react["default"].createElement(_FormatStrikethrough["default"], null),
|
|
300
|
-
tag: 'del'
|
|
301
|
-
})), addIf('underline', MarkHotkey({
|
|
302
|
-
key: 'u',
|
|
303
|
-
type: 'underline',
|
|
304
|
-
icon: /*#__PURE__*/_react["default"].createElement(_FormatUnderlined["default"], null),
|
|
305
|
-
tag: 'u'
|
|
306
|
-
})),
|
|
307
|
-
// icon should be modifies accordingly
|
|
308
|
-
addIf('superscript', MarkHotkey({
|
|
309
|
-
type: 'sup',
|
|
310
|
-
icon: /*#__PURE__*/_react["default"].createElement(SuperscriptIcon, null),
|
|
311
|
-
tag: 'sup'
|
|
312
|
-
})),
|
|
313
|
-
// icon should be modifies accordingly
|
|
314
|
-
addIf('subscript', MarkHotkey({
|
|
315
|
-
type: 'sub',
|
|
316
|
-
icon: /*#__PURE__*/_react["default"].createElement(SubscriptIcon, null),
|
|
317
|
-
tag: 'sub'
|
|
318
|
-
})), addIf('image', imagePlugin), addIf('video', (0, _media["default"])('video', opts.media)), addIf('audio', (0, _media["default"])('audio', opts.media)), addIf('math', mathPlugin)].concat((0, _toConsumableArray2["default"])(languageCharactersPlugins.map(function (plugin) {
|
|
319
|
-
return addIf('languageCharacters', plugin);
|
|
320
|
-
})), [addIf('text-align', (0, _textAlign["default"])(opts.textAlign)), addIf('blockquote', MarkHotkey({
|
|
321
|
-
key: 'q',
|
|
322
|
-
type: 'blockquote',
|
|
323
|
-
icon: /*#__PURE__*/_react["default"].createElement(_FormatQuote["default"], null),
|
|
324
|
-
tag: 'blockquote'
|
|
325
|
-
})), addIf('h3', MarkHotkey({
|
|
326
|
-
key: 'h3',
|
|
327
|
-
type: 'h3',
|
|
328
|
-
icon: /*#__PURE__*/_react["default"].createElement(HeadingIcon, null),
|
|
329
|
-
tag: 'h3'
|
|
330
|
-
})), addIf('bulleted-list', (0, _list["default"])({
|
|
331
|
-
key: 'l',
|
|
332
|
-
type: 'ul_list',
|
|
333
|
-
icon: /*#__PURE__*/_react["default"].createElement(_FormatListBulleted["default"], null)
|
|
334
|
-
})), addIf('numbered-list', (0, _list["default"])({
|
|
335
|
-
key: 'n',
|
|
336
|
-
type: 'ol_list',
|
|
337
|
-
icon: /*#__PURE__*/_react["default"].createElement(_FormatListNumbered["default"], null)
|
|
338
|
-
})), addIf('undo', UndoRedo('undo')), addIf('redo', UndoRedo('redo')), (0, _toolbar["default"])(opts.toolbar), (0, _slateSoftBreak["default"])({
|
|
339
|
-
shift: true
|
|
340
|
-
})], builtCustomPlugins, [addIf('responseArea', respAreaPlugin), cssPlugin, addIf('html', (0, _html["default"])(opts.html)), EnterHandlingPlugin(), (0, _rendering["default"])()]));
|
|
341
|
-
};
|
|
342
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2xhdGVIb3RrZXlzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfc2xhdGVEZXZFbnZpcm9ubWVudCIsIl9zbGF0ZSIsIl9Gb3JtYXRCb2xkIiwiX0Zvcm1hdFF1b3RlIiwiX0Zvcm1hdExpc3RCdWxsZXRlZCIsIl9Gb3JtYXRMaXN0TnVtYmVyZWQiLCJfUmVkbyIsIl9VbmRvIiwiX2ltYWdlIiwiX21lZGlhIiwiX2NoYXJhY3RlcnMiLCJfRm9ybWF0SXRhbGljIiwiX21hdGgiLCJfcmVhY3QiLCJfRm9ybWF0U3RyaWtldGhyb3VnaCIsIl90b29sYmFyIiwiX0Zvcm1hdFVuZGVybGluZWQiLCJfY29tcGFjdCIsIl9pc0VtcHR5IiwiX3NsYXRlU29mdEJyZWFrIiwiX2RlYnVnIiwiX2xpc3QiLCJfdGFibGUiLCJfcmVzcEFyZWEiLCJfaHRtbCIsIl9jc3MiLCJfY3VzdG9tUGx1Z2luIiwiX3JlbmRlcmluZyIsIl90ZXh0QWxpZ24iLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImxvZyIsImRlYnVnIiwiU3VwZXJzY3JpcHRJY29uIiwiY3JlYXRlRWxlbWVudCIsInhtbG5zIiwiaGVpZ2h0Iiwidmlld0JveCIsIndpZHRoIiwiZmlsbCIsImQiLCJTdWJzY3JpcHRJY29uIiwiSGVhZGluZ0ljb24iLCJzdHlsZSIsIlNUWUxFU19NQVAiLCJoMyIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsImJsb2NrcXVvdGUiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyTGVmdCIsIm1hcmdpbiIsInBhZGRpbmciLCJNYXJrSG90a2V5Iiwib3B0aW9ucyIsInR5cGUiLCJrZXkiLCJpY29uIiwidGFnIiwibmFtZSIsInRvb2xiYXIiLCJpc01hcmsiLCJvblRvZ2dsZSIsImNoYW5nZSIsInNlbGVjdGlvbiIsInZhbHVlIiwiaW5jbHVkZXMiLCJ0ZXh0cyIsImRvY3VtZW50IiwiZ2V0VGV4dHNBdFJhbmdlQXNBcnJheSIsIm9ubHlPbmVUZXh0IiwiaGFzTWFyayIsInNhbWVNYXJrIiwibWFya3MiLCJnZXRNYXJrc0FzQXJyYXkiLCJtYXJrSXNUaGVyZSIsImZpbmQiLCJtIiwic2hvdWxkQ29udGludWUiLCJzdGFydEtleSIsImVuZEtleSIsImFuY2hvck9mZnNldCIsImZvY3VzT2Zmc2V0IiwidGV4dE5vZGUiLCJnZXROb2RlIiwibW92ZUZvY3VzVG8iLCJtb3ZlQW5jaG9yVG8iLCJ0ZXh0IiwiYWN0aXZlTWFya3MiLCJlbnRyeSIsInJlbW92ZU1hcmsiLCJuZXdNYXJrIiwiTWFyayIsImNyZWF0ZSIsImFkZE1hcmsiLCJ0b2dnbGVNYXJrIiwicmVuZGVyTWFyayIsInByb3BzIiwibWFyayIsIl9yZWYiLCJub2RlIiwiZGF0YSIsImpzb25EYXRhIiwidG9KU09OIiwiSyIsImFkZGl0aW9uYWxTdHlsZXMiLCJhdHRyaWJ1dGVzIiwiY2hpbGRyZW4iLCJvbktleURvd24iLCJldmVudCIsIm1ldGFLZXkiLCJwcmV2ZW50RGVmYXVsdCIsIkFMTF9QTFVHSU5TIiwiZXhwb3J0cyIsIkRFRkFVTFRfUExVR0lOUyIsInBsdWciLCJJQ09OX01BUCIsInVuZG8iLCJVbmRvIiwicmVkbyIsIlJlZG8iLCJVbmRvUmVkbyIsIkljb25Ub1VzZSIsImFyaWFMYWJlbCIsIm9uQ2xpY2siLCJvbkNoYW5nZSIsIkVudGVySGFuZGxpbmdQbHVnaW4iLCJIb3RrZXlzIiwiaXNTcGxpdEJsb2NrIiwiSVNfSU9TIiwiaXNJblZvaWQiLCJjb2xsYXBzZVRvU3RhcnRPZk5leHRUZXh0Iiwic3BsaXRCbG9jayIsInJhbmdlIiwibmV3QmxvY2siLCJnZXRDbG9zZXN0QmxvY2siLCJzZXROb2RlQnlLZXkiLCJ1bmRlZmluZWQiLCJidWlsZFBsdWdpbnMiLCJhY3RpdmVQbHVnaW5zIiwiY3VzdG9tUGx1Z2lucyIsIm9wdHMiLCJhZGRJZiIsInAiLCJpbWFnZVBsdWdpbiIsImltYWdlIiwib25EZWxldGUiLCJJbWFnZVBsdWdpbiIsIm1hdGhQbHVnaW4iLCJNYXRoUGx1Z2luIiwibWF0aCIsInJlc3BBcmVhUGx1Z2luIiwicmVzcG9uc2VBcmVhIiwiUmVzcEFyZWFQbHVnaW4iLCJjb21wYWN0IiwiY3NzUGx1Z2luIiwiaXNFbXB0eSIsImV4dHJhQ1NTUnVsZXMiLCJDU1NQbHVnaW4iLCJsYW5ndWFnZUNoYXJhY3RlcnNQbHVnaW5zIiwibGFuZ3VhZ2VDaGFyYWN0ZXJzIiwibWFwIiwiY29uZmlnIiwiQ2hhcmFjdGVyc1BsdWdpbiIsImtleVBhZENoYXJhY3RlclJlZiIsInNldEtleXBhZEludGVyYWN0aW9uIiwidGFibGVQbHVnaW5zIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImJ1aWx0Q3VzdG9tUGx1Z2lucyIsImN1c3RvbVBsdWdpbiIsIl9yZWYyIiwiaWNvblR5cGUiLCJpY29uQWx0IiwiaXNWYWxpZEV2ZW50TmFtZSIsImV2ZW50TmFtZSIsInJlZ2V4IiwidGVzdCIsImNvbnNvbGUiLCJlcnJvciIsIkN1c3RvbVBsdWdpbiIsIlRhYmxlUGx1Z2luIiwidGFibGUiLCJNZWRpYVBsdWdpbiIsIm1lZGlhIiwicGx1Z2luIiwiVGV4dEFsaWduIiwidGV4dEFsaWduIiwiTGlzdCIsIlRvb2xiYXJQbHVnaW4iLCJTb2Z0QnJlYWtQbHVnaW4iLCJzaGlmdCIsIkh0bWxQbHVnaW4iLCJodG1sIiwiUmVuZGVyaW5nUGx1Z2luIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsdWdpbnMvaW5kZXguanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBIb3RrZXlzIGZyb20gJ3NsYXRlLWhvdGtleXMnO1xuaW1wb3J0IHsgSVNfSU9TIH0gZnJvbSAnc2xhdGUtZGV2LWVudmlyb25tZW50JztcbmltcG9ydCB7IE1hcmsgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgQm9sZCBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0Zvcm1hdEJvbGQnO1xuaW1wb3J0IEZvcm1hdFF1b3RlIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvRm9ybWF0UXVvdGUnO1xuLy9pbXBvcnQgQ29kZSBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0NvZGUnO1xuaW1wb3J0IEJ1bGxldGVkTGlzdEljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9Gb3JtYXRMaXN0QnVsbGV0ZWQnO1xuaW1wb3J0IE51bWJlcmVkTGlzdEljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9Gb3JtYXRMaXN0TnVtYmVyZWQnO1xuaW1wb3J0IFJlZG8gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9SZWRvJztcbmltcG9ydCBVbmRvIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvVW5kbyc7XG5pbXBvcnQgSW1hZ2VQbHVnaW4gZnJvbSAnLi9pbWFnZSc7XG5pbXBvcnQgTWVkaWFQbHVnaW4gZnJvbSAnLi9tZWRpYSc7XG5pbXBvcnQgQ2hhcmFjdGVyc1BsdWdpbiBmcm9tICcuL2NoYXJhY3RlcnMnO1xuaW1wb3J0IEl0YWxpYyBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0Zvcm1hdEl0YWxpYyc7XG5pbXBvcnQgTWF0aFBsdWdpbiBmcm9tICcuL21hdGgnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBTdHJpa2V0aHJvdWdoIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvRm9ybWF0U3RyaWtldGhyb3VnaCc7XG5pbXBvcnQgVG9vbGJhclBsdWdpbiBmcm9tICcuL3Rvb2xiYXInO1xuaW1wb3J0IFVuZGVybGluZSBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0Zvcm1hdFVuZGVybGluZWQnO1xuaW1wb3J0IGNvbXBhY3QgZnJvbSAnbG9kYXNoL2NvbXBhY3QnO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0IFNvZnRCcmVha1BsdWdpbiBmcm9tICdzbGF0ZS1zb2Z0LWJyZWFrJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgTGlzdCBmcm9tICcuL2xpc3QnO1xuaW1wb3J0IFRhYmxlUGx1Z2luIGZyb20gJy4vdGFibGUnO1xuaW1wb3J0IFJlc3BBcmVhUGx1Z2luIGZyb20gJy4vcmVzcEFyZWEnO1xuaW1wb3J0IEh0bWxQbHVnaW4gZnJvbSAnLi9odG1sJztcbmltcG9ydCBDU1NQbHVnaW4gZnJvbSAnLi9jc3MnO1xuaW1wb3J0IEN1c3RvbVBsdWdpbiBmcm9tICcuL2N1c3RvbVBsdWdpbic7XG5pbXBvcnQgUmVuZGVyaW5nUGx1Z2luIGZyb20gJy4vcmVuZGVyaW5nJztcbmltcG9ydCBUZXh0QWxpZ24gZnJvbSAnLi90ZXh0QWxpZ24nO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1saWI6ZWRpdGFibGUtaHRtbDpwbHVnaW5zJyk7XG5cbmNvbnN0IFN1cGVyc2NyaXB0SWNvbiA9ICgpID0+IChcbiAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0cHhcIiBmaWxsPVwibm9uZVwiPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTIyLDdoLTJ2MWgzdjFoLTRWN2MwLTAuNTUsMC40NS0xLDEtMWgyVjVoLTNWNGgzYzAuNTUsMCwxLDAuNDUsMSwxdjFDMjMsNi41NSwyMi41NSw3LDIyLDd6IE01Ljg4LDIwaDIuNjZsMy40LTUuNDJoMC4xMiBsMy40LDUuNDJoMi42NmwtNC42NS03LjI3TDE3LjgxLDZoLTIuNjhsLTMuMDcsNC45OWgtMC4xMkw4Ljg1LDZINi4xOWw0LjMyLDYuNzNMNS44OCwyMHpcIlxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBTdWJzY3JpcHRJY29uID0gKCkgPT4gKFxuICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNHB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRweFwiIGZpbGw9XCJub25lXCI+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNMjIsMThoLTJ2MWgzdjFoLTR2LTJjMC0wLjU1LDAuNDUtMSwxLTFoMnYtMWgtM3YtMWgzYzAuNTUsMCwxLDAuNDUsMSwxdjFDMjMsMTcuNTUsMjIuNTUsMTgsMjIsMTh6IE01Ljg4LDE4aDIuNjYgbDMuNC01LjQyaDAuMTJsMy40LDUuNDJoMi42NmwtNC42NS03LjI3TDE3LjgxLDRoLTIuNjhsLTMuMDcsNC45OWgtMC4xMkw4Ljg1LDRINi4xOWw0LjMyLDYuNzNMNS44OCwxOHpcIlxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBIZWFkaW5nSWNvbiA9ICgpID0+IChcbiAgPHN2Z1xuICAgIHdpZHRoPVwiMzBcIlxuICAgIGhlaWdodD1cIjI4XCJcbiAgICB2aWV3Qm94PVwiMCAwIDMwIDI4XCJcbiAgICBmaWxsPVwibm9uZVwiXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgc3R5bGU9e3sgd2lkdGg6ICcyMHB4JywgaGVpZ2h0OiAnMThweCcgfX1cbiAgPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTI3IDRWMjRIMjlDMjkuNSAyNCAzMCAyNC41IDMwIDI1VjI3QzMwIDI3LjU2MjUgMjkuNSAyOCAyOSAyOEgxOUMxOC40Mzc1IDI4IDE4IDI3LjU2MjUgMTggMjdWMjVDMTggMjQuNSAxOC40Mzc1IDI0IDE5IDI0SDIxVjE2SDlWMjRIMTFDMTEuNSAyNCAxMiAyNC41IDEyIDI1VjI3QzEyIDI3LjU2MjUgMTEuNSAyOCAxMSAyOEgxQzAuNDM3NSAyOCAwIDI3LjU2MjUgMCAyN1YyNUMwIDI0LjUgMC40Mzc1IDI0IDEgMjRIM1Y0SDFDMC40Mzc1IDQgMCAzLjU2MjUgMCAzVjFDMCAwLjUgMC40Mzc1IDAgMSAwSDExQzExLjUgMCAxMiAwLjUgMTIgMVYzQzEyIDMuNTYyNSAxMS41IDQgMTEgNEg5VjEySDIxVjRIMTlDMTguNDM3NSA0IDE4IDMuNTYyNSAxOCAzVjFDMTggMC41IDE4LjQzNzUgMCAxOSAwSDI5QzI5LjUgMCAzMCAwLjUgMzAgMVYzQzMwIDMuNTYyNSAyOS41IDQgMjkgNEgyN1pcIlxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgLz5cbiAgPC9zdmc+XG4pO1xuY29uc3QgU1RZTEVTX01BUCA9IHtcbiAgaDM6IHtcbiAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgIGZvbnRXZWlnaHQ6ICdpbmhlcml0JyxcbiAgfSxcbiAgYmxvY2txdW90ZToge1xuICAgIGJhY2tncm91bmQ6ICcjZjlmOWY5JyxcbiAgICBib3JkZXJMZWZ0OiAnNXB4IHNvbGlkICNjY2MnLFxuICAgIG1hcmdpbjogJzEuNWVtIDEwcHgnLFxuICAgIHBhZGRpbmc6ICcuNWVtIDEwcHgnLFxuICB9LFxufTtcblxuZnVuY3Rpb24gTWFya0hvdGtleShvcHRpb25zKSB7XG4gIGNvbnN0IHsgdHlwZSwga2V5LCBpY29uLCB0YWcgfSA9IG9wdGlvbnM7XG5cbiAgLy8gUmV0dXJuIG91ciBcInBsdWdpblwiIG9iamVjdCwgY29udGFpbmluZyB0aGUgYG9uS2V5RG93bmAgaGFuZGxlci5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiB0eXBlLFxuICAgIHRvb2xiYXI6IHtcbiAgICAgIGlzTWFyazogdHJ1ZSxcbiAgICAgIHR5cGUsXG4gICAgICBpY29uLFxuICAgICAgb25Ub2dnbGU6IChjaGFuZ2UpID0+IHtcbiAgICAgICAgbG9nKCdbb25Ub2dnbGVNYXJrXSB0eXBlOiAnLCB0eXBlKTtcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGNoYW5nZS52YWx1ZTtcblxuICAgICAgICBpZiAoWydibG9ja3F1b3RlJywgJ2gzJ10uaW5jbHVkZXModHlwZSkpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0cyA9IGNoYW5nZS52YWx1ZS5kb2N1bWVudC5nZXRUZXh0c0F0UmFuZ2VBc0FycmF5KHNlbGVjdGlvbik7XG4gICAgICAgICAgY29uc3Qgb25seU9uZVRleHQgPSB0ZXh0cy5sZW5ndGggPT09IDE7XG4gICAgICAgICAgbGV0IGhhc01hcmsgPSBmYWxzZTtcbiAgICAgICAgICBsZXQgc2FtZU1hcmsgPSB0cnVlO1xuXG4gICAgICAgICAgdGV4dHMuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWFya3MgPSB0LmdldE1hcmtzQXNBcnJheSgpO1xuICAgICAgICAgICAgY29uc3QgbWFya0lzVGhlcmUgPSBtYXJrcy5maW5kKChtKSA9PiBtLnR5cGUgPT09IHR5cGUpO1xuXG4gICAgICAgICAgICBpZiAoIW1hcmtJc1RoZXJlKSB7XG4gICAgICAgICAgICAgIC8vIG5vdCBhbGwgdGV4dHMgaGF2ZSB0aGlzIG1hcmtcbiAgICAgICAgICAgICAgc2FtZU1hcmsgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIGF0IGxlYXN0IG9uZSBtYXJrXG4gICAgICAgICAgICAgIGhhc01hcmsgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29uc3Qgc2hvdWxkQ29udGludWUgPSBvbmx5T25lVGV4dCB8fCBzYW1lTWFyayB8fCAhaGFzTWFyaztcblxuICAgICAgICAgIGlmICghc2hvdWxkQ29udGludWUpIHtcbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2U7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNlbGVjdGlvbi5zdGFydEtleSA9PT0gc2VsZWN0aW9uLmVuZEtleSAmJiBzZWxlY3Rpb24uYW5jaG9yT2Zmc2V0ID09PSBzZWxlY3Rpb24uZm9jdXNPZmZzZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHROb2RlID0gY2hhbmdlLnZhbHVlLmRvY3VtZW50LmdldE5vZGUoc2VsZWN0aW9uLnN0YXJ0S2V5KTtcblxuICAgICAgICAgICAgLy8gc2VsZWN0IHRoZSB3aG9sZSBsaW5lIGlmIHRoZXJlIGlzIG5vIHNlbGVjdGlvblxuICAgICAgICAgICAgY2hhbmdlLm1vdmVGb2N1c1RvKHRleHROb2RlLmtleSwgMCkubW92ZUFuY2hvclRvKHRleHROb2RlLmtleSwgdGV4dE5vZGUudGV4dC5sZW5ndGgpO1xuXG4gICAgICAgICAgICAvLyByZW1vdmUgdG9nZ2xlXG4gICAgICAgICAgICBjb25zdCBoYXNNYXJrID0gY2hhbmdlLnZhbHVlLmFjdGl2ZU1hcmtzLmZpbmQoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBlbnRyeS50eXBlID09PSB0eXBlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChoYXNNYXJrKSB7XG4gICAgICAgICAgICAgIGNoYW5nZS5yZW1vdmVNYXJrKGhhc01hcmspO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3TWFyayA9IE1hcmsuY3JlYXRlKHR5cGUpO1xuXG4gICAgICAgICAgICAgIGNoYW5nZS5hZGRNYXJrKG5ld01hcmspO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBtb3ZlIGZvY3VzIHRvIGVuZCBvZiB0ZXh0XG4gICAgICAgICAgICByZXR1cm4gY2hhbmdlXG4gICAgICAgICAgICAgIC5tb3ZlRm9jdXNUbyh0ZXh0Tm9kZS5rZXksIHRleHROb2RlLnRleHQubGVuZ3RoKVxuICAgICAgICAgICAgICAubW92ZUFuY2hvclRvKHRleHROb2RlLmtleSwgdGV4dE5vZGUudGV4dC5sZW5ndGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjaGFuZ2UudG9nZ2xlTWFyayh0eXBlKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZW5kZXJNYXJrKHByb3BzKSB7XG4gICAgICBpZiAocHJvcHMubWFyay50eXBlID09PSB0eXBlKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gcHJvcHMubm9kZSB8fCB7fTtcbiAgICAgICAgY29uc3QganNvbkRhdGEgPSBkYXRhPy50b0pTT04oKSB8fCB7fTtcbiAgICAgICAgY29uc3QgSyA9IHRhZyB8fCB0eXBlO1xuICAgICAgICBjb25zdCBhZGRpdGlvbmFsU3R5bGVzID0gU1RZTEVTX01BUFtLXTtcblxuICAgICAgICBpZiAoYWRkaXRpb25hbFN0eWxlcykge1xuICAgICAgICAgIGlmICghanNvbkRhdGEuYXR0cmlidXRlcykge1xuICAgICAgICAgICAganNvbkRhdGEuYXR0cmlidXRlcyA9IHt9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGpzb25EYXRhLmF0dHJpYnV0ZXMuc3R5bGUgPSB7XG4gICAgICAgICAgICAuLi5qc29uRGF0YS5hdHRyaWJ1dGVzLnN0eWxlLFxuICAgICAgICAgICAgLi4uYWRkaXRpb25hbFN0eWxlcyxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDxLIHsuLi5qc29uRGF0YS5hdHRyaWJ1dGVzfT57cHJvcHMuY2hpbGRyZW59PC9LPjtcbiAgICAgIH1cbiAgICB9LFxuICAgIG9uS2V5RG93bihldmVudCwgY2hhbmdlKSB7XG4gICAgICAvLyBDaGVjayB0aGF0IHRoZSBrZXkgcHJlc3NlZCBtYXRjaGVzIG91ciBga2V5YCBvcHRpb24uXG4gICAgICBpZiAoIWV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQua2V5ICE9IGtleSkgcmV0dXJuO1xuXG4gICAgICAvLyBQcmV2ZW50IHRoZSBkZWZhdWx0IGNoYXJhY3RlcnMgZnJvbSBiZWluZyBpbnNlcnRlZC5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIC8vIFRvZ2dsZSB0aGUgbWFyayBgdHlwZWAuXG4gICAgICBjaGFuZ2UudG9nZ2xlTWFyayh0eXBlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBBTExfUExVR0lOUyA9IFtcbiAgJ2JvbGQnLFxuICAvLyAnY29kZScsXG4gICdodG1sJyxcbiAgJ2V4dHJhQ1NTUnVsZXMnLFxuICAnaXRhbGljJyxcbiAgJ3VuZGVybGluZScsXG4gICdzdHJpa2V0aHJvdWdoJyxcbiAgJ2J1bGxldGVkLWxpc3QnLFxuICAnbnVtYmVyZWQtbGlzdCcsXG4gICdpbWFnZScsXG4gICdtYXRoJyxcbiAgJ2xhbmd1YWdlQ2hhcmFjdGVycycsXG4gICd0ZXh0LWFsaWduJyxcbiAgJ2Jsb2NrcXVvdGUnLFxuICAnaDMnLFxuICAndGFibGUnLFxuICAndmlkZW8nLFxuICAnYXVkaW8nLFxuICAncmVzcG9uc2VBcmVhJyxcbiAgJ3JlZG8nLFxuICAndW5kbycsXG4gICdzdXBlcnNjcmlwdCcsXG4gICdzdWJzY3JpcHQnLFxuXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUExVR0lOUyA9IEFMTF9QTFVHSU5TLmZpbHRlcigocGx1ZykgPT4gIVsncmVzcG9uc2VBcmVhJywgJ2gzJywgJ2Jsb2NrcXVvdGUnXS5pbmNsdWRlcyhwbHVnKSk7XG5cbmNvbnN0IElDT05fTUFQID0ge1xuICB1bmRvOiBVbmRvLFxuICByZWRvOiBSZWRvLFxufTtcbmZ1bmN0aW9uIFVuZG9SZWRvKHR5cGUpIHtcbiAgY29uc3QgSWNvblRvVXNlID0gSUNPTl9NQVBbdHlwZV07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiB0eXBlLFxuICAgIHRvb2xiYXI6IHtcbiAgICAgIHR5cGUsXG4gICAgICBpY29uOiA8SWNvblRvVXNlIC8+LFxuICAgICAgYXJpYUxhYmVsOiB0eXBlID09PSAndW5kbycgPyAnVW5kbyAocmV2ZXJ0IHRoZSBsYXN0IGFjdGlvbiknIDogJ1JlZG8gKHJlYXBwbHkgdGhlIGxhc3QgdW5kb25lIGFjdGlvbiknLFxuICAgICAgb25DbGljazogKHZhbHVlLCBvbkNoYW5nZSkgPT4ge1xuICAgICAgICBjb25zdCBjaGFuZ2UgPSB2YWx1ZS5jaGFuZ2UoKTtcblxuICAgICAgICBvbkNoYW5nZShjaGFuZ2VbdHlwZV0oKSk7XG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIEVudGVySGFuZGxpbmdQbHVnaW4oKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2VudGVySGFuZGxpbmcnLFxuICAgIG9uS2V5RG93bjogKGV2ZW50LCBjaGFuZ2UpID0+IHtcbiAgICAgIGlmIChIb3RrZXlzLmlzU3BsaXRCbG9jayhldmVudCkgJiYgIUlTX0lPUykge1xuICAgICAgICBpZiAoY2hhbmdlLnZhbHVlLmlzSW5Wb2lkKSB7XG4gICAgICAgICAgcmV0dXJuIGNoYW5nZS5jb2xsYXBzZVRvU3RhcnRPZk5leHRUZXh0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBjaGFuZ2Uuc3BsaXRCbG9jaygpO1xuXG4gICAgICAgIGNvbnN0IHJhbmdlID0gY2hhbmdlLnZhbHVlLnNlbGVjdGlvbjtcbiAgICAgICAgY29uc3QgbmV3QmxvY2sgPSBjaGFuZ2UudmFsdWUuZG9jdW1lbnQuZ2V0Q2xvc2VzdEJsb2NrKHJhbmdlLnN0YXJ0S2V5KTtcblxuICAgICAgICBpZiAobmV3QmxvY2sudHlwZSAhPT0gJ3BhcmFncmFwaCcpIHtcbiAgICAgICAgICBjaGFuZ2Uuc2V0Tm9kZUJ5S2V5KG5ld0Jsb2NrLmtleSwge1xuICAgICAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2hhbmdlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZFBsdWdpbnMgPSAoYWN0aXZlUGx1Z2lucywgY3VzdG9tUGx1Z2lucywgb3B0cykgPT4ge1xuICBsb2coJ1tidWlsZFBsdWdpbnNdIG9wdHM6ICcsIG9wdHMpO1xuXG4gIGFjdGl2ZVBsdWdpbnMgPSBhY3RpdmVQbHVnaW5zIHx8IERFRkFVTFRfUExVR0lOUztcblxuICBjb25zdCBhZGRJZiA9IChrZXksIHApID0+IGFjdGl2ZVBsdWdpbnMuaW5jbHVkZXMoa2V5KSAmJiBwO1xuXG4gIGNvbnN0IGltYWdlUGx1Z2luID0gb3B0cy5pbWFnZSAmJiBvcHRzLmltYWdlLm9uRGVsZXRlICYmIEltYWdlUGx1Z2luKG9wdHMuaW1hZ2UpO1xuICBjb25zdCBtYXRoUGx1Z2luID0gTWF0aFBsdWdpbihvcHRzLm1hdGgpO1xuICBjb25zdCByZXNwQXJlYVBsdWdpbiA9XG4gICAgb3B0cy5yZXNwb25zZUFyZWEgJiYgb3B0cy5yZXNwb25zZUFyZWEudHlwZSAmJiBSZXNwQXJlYVBsdWdpbihvcHRzLnJlc3BvbnNlQXJlYSwgY29tcGFjdChbbWF0aFBsdWdpbl0pKTtcbiAgY29uc3QgY3NzUGx1Z2luID0gIWlzRW1wdHkob3B0cy5leHRyYUNTU1J1bGVzKSAmJiBDU1NQbHVnaW4ob3B0cy5leHRyYUNTU1J1bGVzKTtcblxuICBjb25zdCBsYW5ndWFnZUNoYXJhY3RlcnNQbHVnaW5zID0gKG9wdHM/Lmxhbmd1YWdlQ2hhcmFjdGVycyB8fCBbXSkubWFwKChjb25maWcpID0+XG4gICAgQ2hhcmFjdGVyc1BsdWdpbih7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBrZXlQYWRDaGFyYWN0ZXJSZWY6IG9wdHMua2V5UGFkQ2hhcmFjdGVyUmVmLFxuICAgICAgc2V0S2V5cGFkSW50ZXJhY3Rpb246IG9wdHMuc2V0S2V5cGFkSW50ZXJhY3Rpb24sXG4gICAgfSksXG4gICk7XG5cbiAgY29uc3QgdGFibGVQbHVnaW5zID0gW2ltYWdlUGx1Z2luLCBtYXRoUGx1Z2luLCByZXNwQXJlYVBsdWdpbiwgLi4ubGFuZ3VhZ2VDaGFyYWN0ZXJzUGx1Z2luc107XG5cbiAgaWYgKG9wdHMucmVzcG9uc2VBcmVhICYmIG9wdHMucmVzcG9uc2VBcmVhLnR5cGUgPT09ICdtYXRoLXRlbXBsYXRlZCcpIHtcbiAgICB0YWJsZVBsdWdpbnMucHVzaChyZXNwQXJlYVBsdWdpbik7XG4gIH1cblxuICBsZXQgYnVpbHRDdXN0b21QbHVnaW5zID0gW107XG5cbiAgY3VzdG9tUGx1Z2lucy5mb3JFYWNoKChjdXN0b21QbHVnaW4pID0+IHtcbiAgICBjb25zdCB7IGV2ZW50LCBpY29uLCBpY29uVHlwZSwgaWNvbkFsdCB9ID0gY3VzdG9tUGx1Z2luIHx8IHt9O1xuXG4gICAgZnVuY3Rpb24gaXNWYWxpZEV2ZW50TmFtZShldmVudE5hbWUpIHtcbiAgICAgIC8vIENoZWNrIGlmIGV2ZW50TmFtZSBpcyBhIG5vbi1lbXB0eSBzdHJpbmdcbiAgICAgIGlmICh0eXBlb2YgZXZlbnROYW1lICE9PSAnc3RyaW5nJyB8fCBldmVudE5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVndWxhciBleHByZXNzaW9uIHRvIG1hdGNoIHZhbGlkIGV2ZW50IG5hbWVzIChvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCB1bmRlcnNjb3JlKVxuICAgICAgY29uc3QgcmVnZXggPSAvXlthLXpBLVowLTlfXSskLztcblxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGV2ZW50TmFtZSBtYXRjaGVzIHRoZSByZWd1bGFyIGV4cHJlc3Npb25cbiAgICAgIHJldHVybiByZWdleC50ZXN0KGV2ZW50TmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkRXZlbnROYW1lKGV2ZW50KSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFRoZSBldmVudCBuYW1lOiAke2V2ZW50fSBpcyBub3QgYSB2YWxpZCBldmVudCBuYW1lIWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghaWNvbiAmJiAhaWNvblR5cGUgJiYgIWljb25BbHQpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKCdZb3VyIGN1c3RvbSBidXR0b24gcmVxdWlyZXMgaWNvbiwgaWNvblR5cGUgYW5kIGljb25BbHQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBidWlsdEN1c3RvbVBsdWdpbnMucHVzaChDdXN0b21QbHVnaW4oJ2N1c3RvbS1wbHVnaW4nLCBjdXN0b21QbHVnaW4pKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbXBhY3QoW1xuICAgIGFkZElmKCd0YWJsZScsIFRhYmxlUGx1Z2luKG9wdHMudGFibGUsIGNvbXBhY3QodGFibGVQbHVnaW5zKSkpLFxuICAgIGFkZElmKCdib2xkJywgTWFya0hvdGtleSh7IGtleTogJ2InLCB0eXBlOiAnYm9sZCcsIGljb246IDxCb2xkIC8+LCB0YWc6ICdzdHJvbmcnIH0pKSxcbiAgICAvLyBhZGRJZignY29kZScsIE1hcmtIb3RrZXkoeyBrZXk6ICdgJywgdHlwZTogJ2NvZGUnLCBpY29uOiA8Q29kZSAvPiB9KSksXG4gICAgYWRkSWYoJ2l0YWxpYycsIE1hcmtIb3RrZXkoeyBrZXk6ICdpJywgdHlwZTogJ2l0YWxpYycsIGljb246IDxJdGFsaWMgLz4sIHRhZzogJ2VtJyB9KSksXG4gICAgYWRkSWYoXG4gICAgICAnc3RyaWtldGhyb3VnaCcsXG4gICAgICBNYXJrSG90a2V5KHtcbiAgICAgICAga2V5OiAnficsXG4gICAgICAgIHR5cGU6ICdzdHJpa2V0aHJvdWdoJyxcbiAgICAgICAgaWNvbjogPFN0cmlrZXRocm91Z2ggLz4sXG4gICAgICAgIHRhZzogJ2RlbCcsXG4gICAgICB9KSxcbiAgICApLFxuICAgIGFkZElmKCd1bmRlcmxpbmUnLCBNYXJrSG90a2V5KHsga2V5OiAndScsIHR5cGU6ICd1bmRlcmxpbmUnLCBpY29uOiA8VW5kZXJsaW5lIC8+LCB0YWc6ICd1JyB9KSksXG4gICAgLy8gaWNvbiBzaG91bGQgYmUgbW9kaWZpZXMgYWNjb3JkaW5nbHlcbiAgICBhZGRJZignc3VwZXJzY3JpcHQnLCBNYXJrSG90a2V5KHsgdHlwZTogJ3N1cCcsIGljb246IDxTdXBlcnNjcmlwdEljb24gLz4sIHRhZzogJ3N1cCcgfSkpLFxuICAgIC8vIGljb24gc2hvdWxkIGJlIG1vZGlmaWVzIGFjY29yZGluZ2x5XG4gICAgYWRkSWYoJ3N1YnNjcmlwdCcsIE1hcmtIb3RrZXkoeyB0eXBlOiAnc3ViJywgaWNvbjogPFN1YnNjcmlwdEljb24gLz4sIHRhZzogJ3N1YicgfSkpLFxuICAgIGFkZElmKCdpbWFnZScsIGltYWdlUGx1Z2luKSxcbiAgICBhZGRJZigndmlkZW8nLCBNZWRpYVBsdWdpbigndmlkZW8nLCBvcHRzLm1lZGlhKSksXG4gICAgYWRkSWYoJ2F1ZGlvJywgTWVkaWFQbHVnaW4oJ2F1ZGlvJywgb3B0cy5tZWRpYSkpLFxuICAgIGFkZElmKCdtYXRoJywgbWF0aFBsdWdpbiksXG4gICAgLi4ubGFuZ3VhZ2VDaGFyYWN0ZXJzUGx1Z2lucy5tYXAoKHBsdWdpbikgPT4gYWRkSWYoJ2xhbmd1YWdlQ2hhcmFjdGVycycsIHBsdWdpbikpLFxuICAgIGFkZElmKCd0ZXh0LWFsaWduJywgVGV4dEFsaWduKG9wdHMudGV4dEFsaWduKSksXG4gICAgYWRkSWYoJ2Jsb2NrcXVvdGUnLCBNYXJrSG90a2V5KHsga2V5OiAncScsIHR5cGU6ICdibG9ja3F1b3RlJywgaWNvbjogPEZvcm1hdFF1b3RlIC8+LCB0YWc6ICdibG9ja3F1b3RlJyB9KSksXG4gICAgYWRkSWYoJ2gzJywgTWFya0hvdGtleSh7IGtleTogJ2gzJywgdHlwZTogJ2gzJywgaWNvbjogPEhlYWRpbmdJY29uIC8+LCB0YWc6ICdoMycgfSkpLFxuICAgIGFkZElmKCdidWxsZXRlZC1saXN0JywgTGlzdCh7IGtleTogJ2wnLCB0eXBlOiAndWxfbGlzdCcsIGljb246IDxCdWxsZXRlZExpc3RJY29uIC8+IH0pKSxcbiAgICBhZGRJZignbnVtYmVyZWQtbGlzdCcsIExpc3QoeyBrZXk6ICduJywgdHlwZTogJ29sX2xpc3QnLCBpY29uOiA8TnVtYmVyZWRMaXN0SWNvbiAvPiB9KSksXG4gICAgYWRkSWYoJ3VuZG8nLCBVbmRvUmVkbygndW5kbycpKSxcbiAgICBhZGRJZigncmVkbycsIFVuZG9SZWRvKCdyZWRvJykpLFxuICAgIFRvb2xiYXJQbHVnaW4ob3B0cy50b29sYmFyKSxcbiAgICBTb2Z0QnJlYWtQbHVnaW4oeyBzaGlmdDogdHJ1ZSB9KSxcbiAgICAuLi5idWlsdEN1c3RvbVBsdWdpbnMsXG4gICAgYWRkSWYoJ3Jlc3BvbnNlQXJlYScsIHJlc3BBcmVhUGx1Z2luKSxcbiAgICBjc3NQbHVnaW4sXG4gICAgYWRkSWYoJ2h0bWwnLCBIdG1sUGx1Z2luKG9wdHMuaHRtbCkpLFxuICAgIEVudGVySGFuZGxpbmdQbHVnaW4oKSxcbiAgICBSZW5kZXJpbmdQbHVnaW4oKSxcbiAgXSk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxhQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxvQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksWUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUssbUJBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLG1CQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxLQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxLQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxNQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxNQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVyxXQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxhQUFBLEdBQUFiLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYSxLQUFBLEdBQUFkLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYyxNQUFBLEdBQUFmLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBZSxvQkFBQSxHQUFBaEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFnQixRQUFBLEdBQUFqQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWlCLGlCQUFBLEdBQUFsQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWtCLFFBQUEsR0FBQW5CLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBbUIsUUFBQSxHQUFBcEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFvQixlQUFBLEdBQUFyQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQXFCLE1BQUEsR0FBQXRCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBc0IsS0FBQSxHQUFBdkIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUF1QixNQUFBLEdBQUF4QixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQXdCLFNBQUEsR0FBQXpCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBeUIsS0FBQSxHQUFBMUIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUEwQixJQUFBLEdBQUEzQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQTJCLGFBQUEsR0FBQTVCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBNEIsVUFBQSxHQUFBN0Isc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUE2QixVQUFBLEdBQUE5QixzQkFBQSxDQUFBQyxPQUFBO0FBQW9DLFNBQUE4QixRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsT0FBQWEsT0FBQSxXQUFBZCxDQUFBLFFBQUFlLGdCQUFBLGFBQUFoQixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFFLE1BQUEsQ0FBQWMseUJBQUEsR0FBQWQsTUFBQSxDQUFBZSxnQkFBQSxDQUFBbEIsQ0FBQSxFQUFBRyxNQUFBLENBQUFjLHlCQUFBLENBQUFmLENBQUEsS0FBQUgsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsR0FBQWEsT0FBQSxXQUFBZCxDQUFBLElBQUFFLE1BQUEsQ0FBQWdCLGNBQUEsQ0FBQW5CLENBQUEsRUFBQUMsQ0FBQSxFQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFOLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUQsQ0FBQSxJQXpCcEM7QUEyQkEsSUFBTW9CLEdBQUcsR0FBRyxJQUFBQyxpQkFBSyxFQUFDLGdDQUFnQyxDQUFDO0FBRW5ELElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQTtFQUFBLG9CQUNuQnZDLE1BQUEsWUFBQXdDLGFBQUE7SUFBS0MsS0FBSyxFQUFDLDRCQUE0QjtJQUFDQyxNQUFNLEVBQUMsTUFBTTtJQUFDQyxPQUFPLEVBQUMsV0FBVztJQUFDQyxLQUFLLEVBQUMsTUFBTTtJQUFDQyxJQUFJLEVBQUM7RUFBTSxnQkFDaEc3QyxNQUFBLFlBQUF3QyxhQUFBO0lBQ0VNLENBQUMsRUFBQyxnTkFBZ047SUFDbE5ELElBQUksRUFBQztFQUFjLENBQ3BCLENBQ0UsQ0FBQztBQUFBLENBQ1A7QUFFRCxJQUFNRSxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUE7RUFBQSxvQkFDakIvQyxNQUFBLFlBQUF3QyxhQUFBO0lBQUtDLEtBQUssRUFBQyw0QkFBNEI7SUFBQ0MsTUFBTSxFQUFDLE1BQU07SUFBQ0MsT0FBTyxFQUFDLFdBQVc7SUFBQ0MsS0FBSyxFQUFDLE1BQU07SUFBQ0MsSUFBSSxFQUFDO0VBQU0sZ0JBQ2hHN0MsTUFBQSxZQUFBd0MsYUFBQTtJQUNFTSxDQUFDLEVBQUMsdU5BQXVOO0lBQ3pORCxJQUFJLEVBQUM7RUFBYyxDQUNwQixDQUNFLENBQUM7QUFBQSxDQUNQO0FBRUQsSUFBTUcsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUE7RUFBQSxvQkFDZmhELE1BQUEsWUFBQXdDLGFBQUE7SUFDRUksS0FBSyxFQUFDLElBQUk7SUFDVkYsTUFBTSxFQUFDLElBQUk7SUFDWEMsT0FBTyxFQUFDLFdBQVc7SUFDbkJFLElBQUksRUFBQyxNQUFNO0lBQ1hKLEtBQUssRUFBQyw0QkFBNEI7SUFDbENRLEtBQUssRUFBRTtNQUFFTCxLQUFLLEVBQUUsTUFBTTtNQUFFRixNQUFNLEVBQUU7SUFBTztFQUFFLGdCQUV6QzFDLE1BQUEsWUFBQXdDLGFBQUE7SUFDRU0sQ0FBQyxFQUFDLDZiQUE2YjtJQUMvYkQsSUFBSSxFQUFDO0VBQWMsQ0FDcEIsQ0FDRSxDQUFDO0FBQUEsQ0FDUDtBQUNELElBQU1LLFVBQVUsR0FBRztFQUNqQkMsRUFBRSxFQUFFO0lBQ0ZDLFFBQVEsRUFBRSxTQUFTO0lBQ25CQyxVQUFVLEVBQUU7RUFDZCxDQUFDO0VBQ0RDLFVBQVUsRUFBRTtJQUNWQyxVQUFVLEVBQUUsU0FBUztJQUNyQkMsVUFBVSxFQUFFLGdCQUFnQjtJQUM1QkMsTUFBTSxFQUFFLFlBQVk7SUFDcEJDLE9BQU8sRUFBRTtFQUNYO0FBQ0YsQ0FBQztBQUVELFNBQVNDLFVBQVVBLENBQUNDLE9BQU8sRUFBRTtFQUMzQixJQUFRQyxJQUFJLEdBQXFCRCxPQUFPLENBQWhDQyxJQUFJO0lBQUVDLEdBQUcsR0FBZ0JGLE9BQU8sQ0FBMUJFLEdBQUc7SUFBRUMsSUFBSSxHQUFVSCxPQUFPLENBQXJCRyxJQUFJO0lBQUVDLEdBQUcsR0FBS0osT0FBTyxDQUFmSSxHQUFHOztFQUU1QjtFQUNBLE9BQU87SUFDTEMsSUFBSSxFQUFFSixJQUFJO0lBQ1ZLLE9BQU8sRUFBRTtNQUNQQyxNQUFNLEVBQUUsSUFBSTtNQUNaTixJQUFJLEVBQUpBLElBQUk7TUFDSkUsSUFBSSxFQUFKQSxJQUFJO01BQ0pLLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHQyxNQUFNLEVBQUs7UUFDcEJoQyxHQUFHLENBQUMsdUJBQXVCLEVBQUV3QixJQUFJLENBQUM7UUFDbEMsSUFBUVMsU0FBUyxHQUFLRCxNQUFNLENBQUNFLEtBQUssQ0FBMUJELFNBQVM7UUFFakIsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQ0UsUUFBUSxDQUFDWCxJQUFJLENBQUMsRUFBRTtVQUN2QyxJQUFNWSxLQUFLLEdBQUdKLE1BQU0sQ0FBQ0UsS0FBSyxDQUFDRyxRQUFRLENBQUNDLHNCQUFzQixDQUFDTCxTQUFTLENBQUM7VUFDckUsSUFBTU0sV0FBVyxHQUFHSCxLQUFLLENBQUMxQyxNQUFNLEtBQUssQ0FBQztVQUN0QyxJQUFJOEMsT0FBTyxHQUFHLEtBQUs7VUFDbkIsSUFBSUMsUUFBUSxHQUFHLElBQUk7VUFFbkJMLEtBQUssQ0FBQ3pDLE9BQU8sQ0FBQyxVQUFDYixDQUFDLEVBQUs7WUFDbkIsSUFBTTRELEtBQUssR0FBRzVELENBQUMsQ0FBQzZELGVBQWUsQ0FBQyxDQUFDO1lBQ2pDLElBQU1DLFdBQVcsR0FBR0YsS0FBSyxDQUFDRyxJQUFJLENBQUMsVUFBQ0MsQ0FBQztjQUFBLE9BQUtBLENBQUMsQ0FBQ3RCLElBQUksS0FBS0EsSUFBSTtZQUFBLEVBQUM7WUFFdEQsSUFBSSxDQUFDb0IsV0FBVyxFQUFFO2NBQ2hCO2NBQ0FILFFBQVEsR0FBRyxLQUFLO1lBQ2xCLENBQUMsTUFBTTtjQUNMO2NBQ0FELE9BQU8sR0FBRyxJQUFJO1lBQ2hCO1VBQ0YsQ0FBQyxDQUFDO1VBRUYsSUFBTU8sY0FBYyxHQUFHUixXQUFXLElBQUlFLFFBQVEsSUFBSSxDQUFDRCxPQUFPO1VBRTFELElBQUksQ0FBQ08sY0FBYyxFQUFFO1lBQ25CLE9BQU9mLE1BQU07VUFDZjtVQUVBLElBQUlDLFNBQVMsQ0FBQ2UsUUFBUSxLQUFLZixTQUFTLENBQUNnQixNQUFNLElBQUloQixTQUFTLENBQUNpQixZQUFZLEtBQUtqQixTQUFTLENBQUNrQixXQUFXLEVBQUU7WUFDL0YsSUFBTUMsUUFBUSxHQUFHcEIsTUFBTSxDQUFDRSxLQUFLLENBQUNHLFFBQVEsQ0FBQ2dCLE9BQU8sQ0FBQ3BCLFNBQVMsQ0FBQ2UsUUFBUSxDQUFDOztZQUVsRTtZQUNBaEIsTUFBTSxDQUFDc0IsV0FBVyxDQUFDRixRQUFRLENBQUMzQixHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM4QixZQUFZLENBQUNILFFBQVEsQ0FBQzNCLEdBQUcsRUFBRTJCLFFBQVEsQ0FBQ0ksSUFBSSxDQUFDOUQsTUFBTSxDQUFDOztZQUVwRjtZQUNBLElBQU04QyxRQUFPLEdBQUdSLE1BQU0sQ0FBQ0UsS0FBSyxDQUFDdUIsV0FBVyxDQUFDWixJQUFJLENBQUMsVUFBQ2EsS0FBSyxFQUFLO2NBQ3ZELE9BQU9BLEtBQUssQ0FBQ2xDLElBQUksS0FBS0EsSUFBSTtZQUM1QixDQUFDLENBQUM7WUFFRixJQUFJZ0IsUUFBTyxFQUFFO2NBQ1hSLE1BQU0sQ0FBQzJCLFVBQVUsQ0FBQ25CLFFBQU8sQ0FBQztZQUM1QixDQUFDLE1BQU07Y0FDTCxJQUFNb0IsT0FBTyxHQUFHQyxXQUFJLENBQUNDLE1BQU0sQ0FBQ3RDLElBQUksQ0FBQztjQUVqQ1EsTUFBTSxDQUFDK0IsT0FBTyxDQUFDSCxPQUFPLENBQUM7WUFDekI7O1lBRUE7WUFDQSxPQUFPNUIsTUFBTSxDQUNWc0IsV0FBVyxDQUFDRixRQUFRLENBQUMzQixHQUFHLEVBQUUyQixRQUFRLENBQUNJLElBQUksQ0FBQzlELE1BQU0sQ0FBQyxDQUMvQzZELFlBQVksQ0FBQ0gsUUFBUSxDQUFDM0IsR0FBRyxFQUFFMkIsUUFBUSxDQUFDSSxJQUFJLENBQUM5RCxNQUFNLENBQUM7VUFDckQ7UUFDRjtRQUVBLE9BQU9zQyxNQUFNLENBQUNnQyxVQUFVLENBQUN4QyxJQUFJLENBQUM7TUFDaEM7SUFDRixDQUFDO0lBQ0R5QyxVQUFVLFdBQVZBLFVBQVVBLENBQUNDLEtBQUssRUFBRTtNQUNoQixJQUFJQSxLQUFLLENBQUNDLElBQUksQ0FBQzNDLElBQUksS0FBS0EsSUFBSSxFQUFFO1FBQzVCLElBQUE0QyxJQUFBLEdBQWlCRixLQUFLLENBQUNHLElBQUksSUFBSSxDQUFDLENBQUM7VUFBekJDLElBQUksR0FBQUYsSUFBQSxDQUFKRSxJQUFJO1FBQ1osSUFBTUMsUUFBUSxHQUFHLENBQUFELElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFRSxNQUFNLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFNQyxDQUFDLEdBQUc5QyxHQUFHLElBQUlILElBQUk7UUFDckIsSUFBTWtELGdCQUFnQixHQUFHN0QsVUFBVSxDQUFDNEQsQ0FBQyxDQUFDO1FBRXRDLElBQUlDLGdCQUFnQixFQUFFO1VBQ3BCLElBQUksQ0FBQ0gsUUFBUSxDQUFDSSxVQUFVLEVBQUU7WUFDeEJKLFFBQVEsQ0FBQ0ksVUFBVSxHQUFHLENBQUMsQ0FBQztVQUMxQjtVQUVBSixRQUFRLENBQUNJLFVBQVUsQ0FBQy9ELEtBQUssR0FBQXBCLGFBQUEsQ0FBQUEsYUFBQSxLQUNwQitFLFFBQVEsQ0FBQ0ksVUFBVSxDQUFDL0QsS0FBSyxHQUN6QjhELGdCQUFnQixDQUNwQjtRQUNIO1FBRUEsb0JBQU8vRyxNQUFBLFlBQUF3QyxhQUFBLENBQUNzRSxDQUFDLEVBQUtGLFFBQVEsQ0FBQ0ksVUFBVSxFQUFHVCxLQUFLLENBQUNVLFFBQVksQ0FBQztNQUN6RDtJQUNGLENBQUM7SUFDREMsU0FBUyxXQUFUQSxTQUFTQSxDQUFDQyxLQUFLLEVBQUU5QyxNQUFNLEVBQUU7TUFDdkI7TUFDQSxJQUFJLENBQUM4QyxLQUFLLENBQUNDLE9BQU8sSUFBSUQsS0FBSyxDQUFDckQsR0FBRyxJQUFJQSxHQUFHLEVBQUU7O01BRXhDO01BQ0FxRCxLQUFLLENBQUNFLGNBQWMsQ0FBQyxDQUFDOztNQUV0QjtNQUNBaEQsTUFBTSxDQUFDZ0MsVUFBVSxDQUFDeEMsSUFBSSxDQUFDO01BQ3ZCLE9BQU8sSUFBSTtJQUNiO0VBQ0YsQ0FBQztBQUNIO0FBRU8sSUFBTXlELFdBQVcsR0FBQUMsT0FBQSxDQUFBRCxXQUFBLEdBQUcsQ0FDekIsTUFBTTtBQUNOO0FBQ0EsTUFBTSxFQUNOLGVBQWUsRUFDZixRQUFRLEVBQ1IsV0FBVyxFQUNYLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLE9BQU8sRUFDUCxNQUFNLEVBQ04sb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixZQUFZLEVBQ1osSUFBSSxFQUNKLE9BQU8sRUFDUCxPQUFPLEVBQ1AsT0FBTyxFQUNQLGNBQWMsRUFDZCxNQUFNLEVBQ04sTUFBTSxFQUNOLGFBQWEsRUFDYixXQUFXLENBQ1o7QUFFTSxJQUFNRSxlQUFlLEdBQUFELE9BQUEsQ0FBQUMsZUFBQSxHQUFHRixXQUFXLENBQUM5RixNQUFNLENBQUMsVUFBQ2lHLElBQUk7RUFBQSxPQUFLLENBQUMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDakQsUUFBUSxDQUFDaUQsSUFBSSxDQUFDO0FBQUEsRUFBQztBQUVqSCxJQUFNQyxRQUFRLEdBQUc7RUFDZkMsSUFBSSxFQUFFQyxnQkFBSTtFQUNWQyxJQUFJLEVBQUVDO0FBQ1IsQ0FBQztBQUNELFNBQVNDLFFBQVFBLENBQUNsRSxJQUFJLEVBQUU7RUFDdEIsSUFBTW1FLFNBQVMsR0FBR04sUUFBUSxDQUFDN0QsSUFBSSxDQUFDO0VBRWhDLE9BQU87SUFDTEksSUFBSSxFQUFFSixJQUFJO0lBQ1ZLLE9BQU8sRUFBRTtNQUNQTCxJQUFJLEVBQUpBLElBQUk7TUFDSkUsSUFBSSxlQUFFL0QsTUFBQSxZQUFBd0MsYUFBQSxDQUFDd0YsU0FBUyxNQUFFLENBQUM7TUFDbkJDLFNBQVMsRUFBRXBFLElBQUksS0FBSyxNQUFNLEdBQUcsK0JBQStCLEdBQUcsdUNBQXVDO01BQ3RHcUUsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUczRCxLQUFLLEVBQUU0RCxRQUFRLEVBQUs7UUFDNUIsSUFBTTlELE1BQU0sR0FBR0UsS0FBSyxDQUFDRixNQUFNLENBQUMsQ0FBQztRQUU3QjhELFFBQVEsQ0FBQzlELE1BQU0sQ0FBQ1IsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO01BQzFCO0lBQ0Y7RUFDRixDQUFDO0FBQ0g7QUFFQSxTQUFTdUUsbUJBQW1CQSxDQUFBLEVBQUc7RUFDN0IsT0FBTztJQUNMbkUsSUFBSSxFQUFFLGVBQWU7SUFDckJpRCxTQUFTLEVBQUUsU0FBWEEsU0FBU0EsQ0FBR0MsS0FBSyxFQUFFOUMsTUFBTSxFQUFLO01BQzVCLElBQUlnRSx3QkFBTyxDQUFDQyxZQUFZLENBQUNuQixLQUFLLENBQUMsSUFBSSxDQUFDb0IsMkJBQU0sRUFBRTtRQUMxQyxJQUFJbEUsTUFBTSxDQUFDRSxLQUFLLENBQUNpRSxRQUFRLEVBQUU7VUFDekIsT0FBT25FLE1BQU0sQ0FBQ29FLHlCQUF5QixDQUFDLENBQUM7UUFDM0M7UUFFQXBFLE1BQU0sQ0FBQ3FFLFVBQVUsQ0FBQyxDQUFDO1FBRW5CLElBQU1DLEtBQUssR0FBR3RFLE1BQU0sQ0FBQ0UsS0FBSyxDQUFDRCxTQUFTO1FBQ3BDLElBQU1zRSxRQUFRLEdBQUd2RSxNQUFNLENBQUNFLEtBQUssQ0FBQ0csUUFBUSxDQUFDbUUsZUFBZSxDQUFDRixLQUFLLENBQUN0RCxRQUFRLENBQUM7UUFFdEUsSUFBSXVELFFBQVEsQ0FBQy9FLElBQUksS0FBSyxXQUFXLEVBQUU7VUFDakNRLE1BQU0sQ0FBQ3lFLFlBQVksQ0FBQ0YsUUFBUSxDQUFDOUUsR0FBRyxFQUFFO1lBQ2hDRCxJQUFJLEVBQUU7VUFDUixDQUFDLENBQUM7UUFDSjtRQUVBLE9BQU9RLE1BQU07TUFDZjtNQUVBLE9BQU8wRSxTQUFTO0lBQ2xCO0VBQ0YsQ0FBQztBQUNIO0FBRU8sSUFBTUMsWUFBWSxHQUFBekIsT0FBQSxDQUFBeUIsWUFBQSxHQUFHLFNBQWZBLFlBQVlBLENBQUlDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxJQUFJLEVBQUs7RUFDbEU5RyxHQUFHLENBQUMsdUJBQXVCLEVBQUU4RyxJQUFJLENBQUM7RUFFbENGLGFBQWEsR0FBR0EsYUFBYSxJQUFJekIsZUFBZTtFQUVoRCxJQUFNNEIsS0FBSyxHQUFHLFNBQVJBLEtBQUtBLENBQUl0RixHQUFHLEVBQUV1RixDQUFDO0lBQUEsT0FBS0osYUFBYSxDQUFDekUsUUFBUSxDQUFDVixHQUFHLENBQUMsSUFBSXVGLENBQUM7RUFBQTtFQUUxRCxJQUFNQyxXQUFXLEdBQUdILElBQUksQ0FBQ0ksS0FBSyxJQUFJSixJQUFJLENBQUNJLEtBQUssQ0FBQ0MsUUFBUSxJQUFJLElBQUFDLGlCQUFXLEVBQUNOLElBQUksQ0FBQ0ksS0FBSyxDQUFDO0VBQ2hGLElBQU1HLFVBQVUsR0FBRyxJQUFBQyxnQkFBVSxFQUFDUixJQUFJLENBQUNTLElBQUksQ0FBQztFQUN4QyxJQUFNQyxjQUFjLEdBQ2xCVixJQUFJLENBQUNXLFlBQVksSUFBSVgsSUFBSSxDQUFDVyxZQUFZLENBQUNqRyxJQUFJLElBQUksSUFBQWtHLG9CQUFjLEVBQUNaLElBQUksQ0FBQ1csWUFBWSxFQUFFLElBQUFFLG1CQUFPLEVBQUMsQ0FBQ04sVUFBVSxDQUFDLENBQUMsQ0FBQztFQUN6RyxJQUFNTyxTQUFTLEdBQUcsQ0FBQyxJQUFBQyxtQkFBTyxFQUFDZixJQUFJLENBQUNnQixhQUFhLENBQUMsSUFBSSxJQUFBQyxlQUFTLEVBQUNqQixJQUFJLENBQUNnQixhQUFhLENBQUM7RUFFL0UsSUFBTUUseUJBQXlCLEdBQUcsQ0FBQyxDQUFBbEIsSUFBSSxhQUFKQSxJQUFJLHVCQUFKQSxJQUFJLENBQUVtQixrQkFBa0IsS0FBSSxFQUFFLEVBQUVDLEdBQUcsQ0FBQyxVQUFDQyxNQUFNO0lBQUEsT0FDNUUsSUFBQUMsc0JBQWdCLEVBQUE1SSxhQUFBLENBQUFBLGFBQUEsS0FDWDJJLE1BQU07TUFDVEUsa0JBQWtCLEVBQUV2QixJQUFJLENBQUN1QixrQkFBa0I7TUFDM0NDLG9CQUFvQixFQUFFeEIsSUFBSSxDQUFDd0I7SUFBb0IsRUFDaEQsQ0FBQztFQUFBLENBQ0osQ0FBQztFQUVELElBQU1DLFlBQVksSUFBSXRCLFdBQVcsRUFBRUksVUFBVSxFQUFFRyxjQUFjLEVBQUFnQixNQUFBLEtBQUFDLG1CQUFBLGFBQUtULHlCQUF5QixFQUFDO0VBRTVGLElBQUlsQixJQUFJLENBQUNXLFlBQVksSUFBSVgsSUFBSSxDQUFDVyxZQUFZLENBQUNqRyxJQUFJLEtBQUssZ0JBQWdCLEVBQUU7SUFDcEUrRyxZQUFZLENBQUNqSixJQUFJLENBQUNrSSxjQUFjLENBQUM7RUFDbkM7RUFFQSxJQUFJa0Isa0JBQWtCLEdBQUcsRUFBRTtFQUUzQjdCLGFBQWEsQ0FBQ2xILE9BQU8sQ0FBQyxVQUFDZ0osWUFBWSxFQUFLO0lBQ3RDLElBQUFDLEtBQUEsR0FBMkNELFlBQVksSUFBSSxDQUFDLENBQUM7TUFBckQ3RCxLQUFLLEdBQUE4RCxLQUFBLENBQUw5RCxLQUFLO01BQUVwRCxJQUFJLEdBQUFrSCxLQUFBLENBQUpsSCxJQUFJO01BQUVtSCxRQUFRLEdBQUFELEtBQUEsQ0FBUkMsUUFBUTtNQUFFQyxPQUFPLEdBQUFGLEtBQUEsQ0FBUEUsT0FBTztJQUV0QyxTQUFTQyxnQkFBZ0JBLENBQUNDLFNBQVMsRUFBRTtNQUNuQztNQUNBLElBQUksT0FBT0EsU0FBUyxLQUFLLFFBQVEsSUFBSUEsU0FBUyxDQUFDdEosTUFBTSxLQUFLLENBQUMsRUFBRTtRQUMzRCxPQUFPLEtBQUs7TUFDZDs7TUFFQTtNQUNBLElBQU11SixLQUFLLEdBQUcsaUJBQWlCOztNQUUvQjtNQUNBLE9BQU9BLEtBQUssQ0FBQ0MsSUFBSSxDQUFDRixTQUFTLENBQUM7SUFDOUI7SUFFQSxJQUFJLENBQUNELGdCQUFnQixDQUFDakUsS0FBSyxDQUFDLEVBQUU7TUFDNUI7TUFDQXFFLE9BQU8sQ0FBQ0MsS0FBSyxvQkFBQVosTUFBQSxDQUFvQjFELEtBQUssZ0NBQTZCLENBQUM7TUFDcEU7SUFDRjtJQUVBLElBQUksQ0FBQ3BELElBQUksSUFBSSxDQUFDbUgsUUFBUSxJQUFJLENBQUNDLE9BQU8sRUFBRTtNQUNsQztNQUNBSyxPQUFPLENBQUNDLEtBQUssQ0FBQyx3REFBd0QsQ0FBQztNQUN2RTtJQUNGO0lBRUFWLGtCQUFrQixDQUFDcEosSUFBSSxDQUFDLElBQUErSix3QkFBWSxFQUFDLGVBQWUsRUFBRVYsWUFBWSxDQUFDLENBQUM7RUFDdEUsQ0FBQyxDQUFDO0VBRUYsT0FBTyxJQUFBaEIsbUJBQU8sR0FDWlosS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFBdUMsaUJBQVcsRUFBQ3hDLElBQUksQ0FBQ3lDLEtBQUssRUFBRSxJQUFBNUIsbUJBQU8sRUFBQ1ksWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUM5RHhCLEtBQUssQ0FBQyxNQUFNLEVBQUV6RixVQUFVLENBQUM7SUFBRUcsR0FBRyxFQUFFLEdBQUc7SUFBRUQsSUFBSSxFQUFFLE1BQU07SUFBRUUsSUFBSSxlQUFFL0QsTUFBQSxZQUFBd0MsYUFBQSxDQUFDbkQsV0FBQSxXQUFJLE1BQUUsQ0FBQztJQUFFMkUsR0FBRyxFQUFFO0VBQVMsQ0FBQyxDQUFDLENBQUM7RUFDcEY7RUFDQW9GLEtBQUssQ0FBQyxRQUFRLEVBQUV6RixVQUFVLENBQUM7SUFBRUcsR0FBRyxFQUFFLEdBQUc7SUFBRUQsSUFBSSxFQUFFLFFBQVE7SUFBRUUsSUFBSSxlQUFFL0QsTUFBQSxZQUFBd0MsYUFBQSxDQUFDMUMsYUFBQSxXQUFNLE1BQUUsQ0FBQztJQUFFa0UsR0FBRyxFQUFFO0VBQUssQ0FBQyxDQUFDLENBQUMsRUFDdEZvRixLQUFLLENBQ0gsZUFBZSxFQUNmekYsVUFBVSxDQUFDO0lBQ1RHLEdBQUcsRUFBRSxHQUFHO0lBQ1JELElBQUksRUFBRSxlQUFlO0lBQ3JCRSxJQUFJLGVBQUUvRCxNQUFBLFlBQUF3QyxhQUFBLENBQUN2QyxvQkFBQSxXQUFhLE1BQUUsQ0FBQztJQUN2QitELEdBQUcsRUFBRTtFQUNQLENBQUMsQ0FDSCxDQUFDLEVBQ0RvRixLQUFLLENBQUMsV0FBVyxFQUFFekYsVUFBVSxDQUFDO0lBQUVHLEdBQUcsRUFBRSxHQUFHO0lBQUVELElBQUksRUFBRSxXQUFXO0lBQUVFLElBQUksZUFBRS9ELE1BQUEsWUFBQXdDLGFBQUEsQ0FBQ3JDLGlCQUFBLFdBQVMsTUFBRSxDQUFDO0lBQUU2RCxHQUFHLEVBQUU7RUFBSSxDQUFDLENBQUMsQ0FBQztFQUM5RjtFQUNBb0YsS0FBSyxDQUFDLGFBQWEsRUFBRXpGLFVBQVUsQ0FBQztJQUFFRSxJQUFJLEVBQUUsS0FBSztJQUFFRSxJQUFJLGVBQUUvRCxNQUFBLFlBQUF3QyxhQUFBLENBQUNELGVBQWUsTUFBRSxDQUFDO0lBQUV5QixHQUFHLEVBQUU7RUFBTSxDQUFDLENBQUMsQ0FBQztFQUN4RjtFQUNBb0YsS0FBSyxDQUFDLFdBQVcsRUFBRXpGLFVBQVUsQ0FBQztJQUFFRSxJQUFJLEVBQUUsS0FBSztJQUFFRSxJQUFJLGVBQUUvRCxNQUFBLFlBQUF3QyxhQUFBLENBQUNPLGFBQWEsTUFBRSxDQUFDO0lBQUVpQixHQUFHLEVBQUU7RUFBTSxDQUFDLENBQUMsQ0FBQyxFQUNwRm9GLEtBQUssQ0FBQyxPQUFPLEVBQUVFLFdBQVcsQ0FBQyxFQUMzQkYsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFBeUMsaUJBQVcsRUFBQyxPQUFPLEVBQUUxQyxJQUFJLENBQUMyQyxLQUFLLENBQUMsQ0FBQyxFQUNoRDFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBQXlDLGlCQUFXLEVBQUMsT0FBTyxFQUFFMUMsSUFBSSxDQUFDMkMsS0FBSyxDQUFDLENBQUMsRUFDaEQxQyxLQUFLLENBQUMsTUFBTSxFQUFFTSxVQUFVLENBQUMsRUFBQW1CLE1BQUEsS0FBQUMsbUJBQUEsYUFDdEJULHlCQUF5QixDQUFDRSxHQUFHLENBQUMsVUFBQ3dCLE1BQU07SUFBQSxPQUFLM0MsS0FBSyxDQUFDLG9CQUFvQixFQUFFMkMsTUFBTSxDQUFDO0VBQUEsRUFBQyxJQUNqRjNDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBQTRDLHFCQUFTLEVBQUM3QyxJQUFJLENBQUM4QyxTQUFTLENBQUMsQ0FBQyxFQUM5QzdDLEtBQUssQ0FBQyxZQUFZLEVBQUV6RixVQUFVLENBQUM7SUFBRUcsR0FBRyxFQUFFLEdBQUc7SUFBRUQsSUFBSSxFQUFFLFlBQVk7SUFBRUUsSUFBSSxlQUFFL0QsTUFBQSxZQUFBd0MsYUFBQSxDQUFDbEQsWUFBQSxXQUFXLE1BQUUsQ0FBQztJQUFFMEUsR0FBRyxFQUFFO0VBQWEsQ0FBQyxDQUFDLENBQUMsRUFDM0dvRixLQUFLLENBQUMsSUFBSSxFQUFFekYsVUFBVSxDQUFDO0lBQUVHLEdBQUcsRUFBRSxJQUFJO0lBQUVELElBQUksRUFBRSxJQUFJO0lBQUVFLElBQUksZUFBRS9ELE1BQUEsWUFBQXdDLGFBQUEsQ0FBQ1EsV0FBVyxNQUFFLENBQUM7SUFBRWdCLEdBQUcsRUFBRTtFQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3BGb0YsS0FBSyxDQUFDLGVBQWUsRUFBRSxJQUFBOEMsZ0JBQUksRUFBQztJQUFFcEksR0FBRyxFQUFFLEdBQUc7SUFBRUQsSUFBSSxFQUFFLFNBQVM7SUFBRUUsSUFBSSxlQUFFL0QsTUFBQSxZQUFBd0MsYUFBQSxDQUFDakQsbUJBQUEsV0FBZ0IsTUFBRTtFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ3ZGNkosS0FBSyxDQUFDLGVBQWUsRUFBRSxJQUFBOEMsZ0JBQUksRUFBQztJQUFFcEksR0FBRyxFQUFFLEdBQUc7SUFBRUQsSUFBSSxFQUFFLFNBQVM7SUFBRUUsSUFBSSxlQUFFL0QsTUFBQSxZQUFBd0MsYUFBQSxDQUFDaEQsbUJBQUEsV0FBZ0IsTUFBRTtFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ3ZGNEosS0FBSyxDQUFDLE1BQU0sRUFBRXJCLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUMvQnFCLEtBQUssQ0FBQyxNQUFNLEVBQUVyQixRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDL0IsSUFBQW9FLG1CQUFhLEVBQUNoRCxJQUFJLENBQUNqRixPQUFPLENBQUMsRUFDM0IsSUFBQWtJLDBCQUFlLEVBQUM7SUFBRUMsS0FBSyxFQUFFO0VBQUssQ0FBQyxDQUFDLEdBQzdCdEIsa0JBQWtCLEdBQ3JCM0IsS0FBSyxDQUFDLGNBQWMsRUFBRVMsY0FBYyxDQUFDLEVBQ3JDSSxTQUFTLEVBQ1RiLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBQWtELGdCQUFVLEVBQUNuRCxJQUFJLENBQUNvRCxJQUFJLENBQUMsQ0FBQyxFQUNwQ25FLG1CQUFtQixDQUFDLENBQUMsRUFDckIsSUFBQW9FLHFCQUFlLEVBQUMsQ0FBQyxFQUNsQixDQUFDO0FBQ0osQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|