@acrolinx/sidebar-sdk 1.1.14 → 2.0.0
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/README.md +22 -23
- package/dist/index.d.ts +657 -23
- package/dist/index.js +3574 -64
- package/package.json +49 -91
- package/dist/acrolinx-plugin.d.ts +0 -58
- package/dist/acrolinx-plugin.js +0 -318
- package/dist/acrolinx-plugin.js.map +0 -1
- package/dist/acrolinx-sidebar-sdk.js +0 -2
- package/dist/acrolinx-sidebar-sdk.js.LICENSE.txt +0 -16
- package/dist/acrolinx-sidebar-sdk.min.js +0 -1
- package/dist/adapters/AbstractRichtextEditorAdapter.d.ts +0 -35
- package/dist/adapters/AbstractRichtextEditorAdapter.js +0 -267
- package/dist/adapters/AbstractRichtextEditorAdapter.js.map +0 -1
- package/dist/adapters/AdapterInterface.d.ts +0 -63
- package/dist/adapters/AdapterInterface.js +0 -51
- package/dist/adapters/AdapterInterface.js.map +0 -1
- package/dist/adapters/AsyncAutoBindAdapter.d.ts +0 -18
- package/dist/adapters/AsyncAutoBindAdapter.js +0 -77
- package/dist/adapters/AsyncAutoBindAdapter.js.map +0 -1
- package/dist/adapters/AsyncContentEditableAdapter.d.ts +0 -22
- package/dist/adapters/AsyncContentEditableAdapter.js +0 -135
- package/dist/adapters/AsyncContentEditableAdapter.js.map +0 -1
- package/dist/adapters/AsyncMultiEditorAdapter.d.ts +0 -11
- package/dist/adapters/AsyncMultiEditorAdapter.js +0 -97
- package/dist/adapters/AsyncMultiEditorAdapter.js.map +0 -1
- package/dist/adapters/AutoBindAdapter.d.ts +0 -16
- package/dist/adapters/AutoBindAdapter.js +0 -56
- package/dist/adapters/AutoBindAdapter.js.map +0 -1
- package/dist/adapters/CKEditor5Adapter.d.ts +0 -16
- package/dist/adapters/CKEditor5Adapter.js +0 -86
- package/dist/adapters/CKEditor5Adapter.js.map +0 -1
- package/dist/adapters/CKEditorAdapter.d.ts +0 -14
- package/dist/adapters/CKEditorAdapter.js +0 -72
- package/dist/adapters/CKEditorAdapter.js.map +0 -1
- package/dist/adapters/CodeMirror6Adapter.d.ts +0 -29
- package/dist/adapters/CodeMirror6Adapter.js +0 -123
- package/dist/adapters/CodeMirror6Adapter.js.map +0 -1
- package/dist/adapters/CodeMirrorAdapter.d.ts +0 -31
- package/dist/adapters/CodeMirrorAdapter.js +0 -143
- package/dist/adapters/CodeMirrorAdapter.js.map +0 -1
- package/dist/adapters/ContentEditableAdapter.d.ts +0 -11
- package/dist/adapters/ContentEditableAdapter.js +0 -45
- package/dist/adapters/ContentEditableAdapter.js.map +0 -1
- package/dist/adapters/InputAdapter.d.ts +0 -28
- package/dist/adapters/InputAdapter.js +0 -125
- package/dist/adapters/InputAdapter.js.map +0 -1
- package/dist/adapters/MultiEditorAdapter.d.ts +0 -56
- package/dist/adapters/MultiEditorAdapter.js +0 -184
- package/dist/adapters/MultiEditorAdapter.js.map +0 -1
- package/dist/adapters/QuipAdapter.d.ts +0 -16
- package/dist/adapters/QuipAdapter.js +0 -148
- package/dist/adapters/QuipAdapter.js.map +0 -1
- package/dist/adapters/SynchronizeAsyncAdapter.d.ts +0 -22
- package/dist/adapters/SynchronizeAsyncAdapter.js +0 -67
- package/dist/adapters/SynchronizeAsyncAdapter.js.map +0 -1
- package/dist/adapters/TinyMCEAdapter.d.ts +0 -13
- package/dist/adapters/TinyMCEAdapter.js +0 -51
- package/dist/adapters/TinyMCEAdapter.js.map +0 -1
- package/dist/adapters/TinyMCEWordpressAdapter.d.ts +0 -10
- package/dist/adapters/TinyMCEWordpressAdapter.js +0 -78
- package/dist/adapters/TinyMCEWordpressAdapter.js.map +0 -1
- package/dist/adapters/XeditorAdapter.d.ts +0 -130
- package/dist/adapters/XeditorAdapter.js +0 -232
- package/dist/adapters/XeditorAdapter.js.map +0 -1
- package/dist/autobind/autobind.d.ts +0 -8
- package/dist/autobind/autobind.js +0 -120
- package/dist/autobind/autobind.js.map +0 -1
- package/dist/export-for-browser.d.ts +0 -57
- package/dist/export-for-browser.js +0 -73
- package/dist/export-for-browser.js.map +0 -1
- package/dist/floating-sidebar/async-storage.d.ts +0 -11
- package/dist/floating-sidebar/async-storage.js +0 -49
- package/dist/floating-sidebar/async-storage.js.map +0 -1
- package/dist/floating-sidebar/floating-sidebar.d.ts +0 -41
- package/dist/floating-sidebar/floating-sidebar.js +0 -234
- package/dist/floating-sidebar/floating-sidebar.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lookup/diff-based.d.ts +0 -19
- package/dist/lookup/diff-based.js +0 -102
- package/dist/lookup/diff-based.js.map +0 -1
- package/dist/message-adapter/message-adapter.d.ts +0 -10
- package/dist/message-adapter/message-adapter.js +0 -109
- package/dist/message-adapter/message-adapter.js.map +0 -1
- package/dist/utils/adapter-utils.d.ts +0 -2
- package/dist/utils/adapter-utils.js +0 -36
- package/dist/utils/adapter-utils.js.map +0 -1
- package/dist/utils/alignment.d.ts +0 -11
- package/dist/utils/alignment.js +0 -32
- package/dist/utils/alignment.js.map +0 -1
- package/dist/utils/check-selection.d.ts +0 -3
- package/dist/utils/check-selection.js +0 -123
- package/dist/utils/check-selection.js.map +0 -1
- package/dist/utils/detect-browser.d.ts +0 -6
- package/dist/utils/detect-browser.js +0 -71
- package/dist/utils/detect-browser.js.map +0 -1
- package/dist/utils/escaping.d.ts +0 -6
- package/dist/utils/escaping.js +0 -46
- package/dist/utils/escaping.js.map +0 -1
- package/dist/utils/logging.d.ts +0 -2
- package/dist/utils/logging.js +0 -34
- package/dist/utils/logging.js.map +0 -1
- package/dist/utils/match.d.ts +0 -10
- package/dist/utils/match.js +0 -33
- package/dist/utils/match.js.map +0 -1
- package/dist/utils/scrolling.d.ts +0 -6
- package/dist/utils/scrolling.js +0 -92
- package/dist/utils/scrolling.js.map +0 -1
- package/dist/utils/sidebar-loader.d.ts +0 -19
- package/dist/utils/sidebar-loader.js +0 -157
- package/dist/utils/sidebar-loader.js.map +0 -1
- package/dist/utils/text-dom-mapping.d.ts +0 -13
- package/dist/utils/text-dom-mapping.js +0 -90
- package/dist/utils/text-dom-mapping.js.map +0 -1
- package/dist/utils/text-extraction.d.ts +0 -8
- package/dist/utils/text-extraction.js +0 -60
- package/dist/utils/text-extraction.js.map +0 -1
- package/dist/utils/utils.d.ts +0 -39
- package/dist/utils/utils.js +0 -155
- package/dist/utils/utils.js.map +0 -1
- package/dist/utils/work-queue.d.ts +0 -7
- package/dist/utils/work-queue.js +0 -66
- package/dist/utils/work-queue.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,64 +1,3574 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
1
|
+
function Ct(t) {
|
|
2
|
+
return t.isAsync;
|
|
3
|
+
}
|
|
4
|
+
function Ye(t) {
|
|
5
|
+
return !!t.error;
|
|
6
|
+
}
|
|
7
|
+
function wt(t) {
|
|
8
|
+
return !!t.editorId;
|
|
9
|
+
}
|
|
10
|
+
function yt(t) {
|
|
11
|
+
return !!t.element;
|
|
12
|
+
}
|
|
13
|
+
function ee(t) {
|
|
14
|
+
if (yt(t))
|
|
15
|
+
return t.element;
|
|
16
|
+
if (wt(t))
|
|
17
|
+
return document.getElementById(t.editorId);
|
|
18
|
+
throw console.error("Invalid AdapterConf. Missing editorId or element", t), new Error("Invalid AdapterConf. Missing editorId or element");
|
|
19
|
+
}
|
|
20
|
+
const Et = [
|
|
21
|
+
{
|
|
22
|
+
id: "com.acrolinx.sidebarexample",
|
|
23
|
+
name: "Acrolinx Sidebar Example Client",
|
|
24
|
+
version: "1.2.3.999",
|
|
25
|
+
category: "MAIN"
|
|
26
|
+
}
|
|
27
|
+
], kt = {
|
|
28
|
+
id: "com.acrolinx.sidebar-sdk-js",
|
|
29
|
+
name: "Sidebar SDK JS",
|
|
30
|
+
version: "2.0.0"
|
|
31
|
+
};
|
|
32
|
+
async function Le(t) {
|
|
33
|
+
const e = await fetch(t);
|
|
34
|
+
if (e.status >= 200 && e.status < 400)
|
|
35
|
+
return e.text();
|
|
36
|
+
throw new Error(`Error while loading ${t}.`);
|
|
37
|
+
}
|
|
38
|
+
function Bt(t) {
|
|
39
|
+
return t.nodeName === "IFRAME";
|
|
40
|
+
}
|
|
41
|
+
function X(t) {
|
|
42
|
+
const {
|
|
43
|
+
startNode: e,
|
|
44
|
+
endNode: n,
|
|
45
|
+
eventType: o,
|
|
46
|
+
startOffset: s,
|
|
47
|
+
endOffset: r,
|
|
48
|
+
replacement: i,
|
|
49
|
+
disableSimulation: A
|
|
50
|
+
} = t;
|
|
51
|
+
if (A)
|
|
52
|
+
return;
|
|
53
|
+
const c = new StaticRange({
|
|
54
|
+
startContainer: e,
|
|
55
|
+
startOffset: s,
|
|
56
|
+
endContainer: n,
|
|
57
|
+
endOffset: r
|
|
58
|
+
}), a = {
|
|
59
|
+
inputType: "insertText",
|
|
60
|
+
data: i,
|
|
61
|
+
bubbles: !0,
|
|
62
|
+
cancelable: !1,
|
|
63
|
+
targetRanges: [c]
|
|
64
|
+
};
|
|
65
|
+
e.dispatchEvent(new InputEvent(o, a));
|
|
66
|
+
}
|
|
67
|
+
function St(t) {
|
|
68
|
+
const e = document.createElement("a");
|
|
69
|
+
e.href = t, e.host === "" && (e.href = e.href);
|
|
70
|
+
const { protocol: n, host: o, hostname: s, port: r, pathname: i, hash: A } = e;
|
|
71
|
+
return { protocol: n, host: o, hostname: s, port: r, pathname: i, hash: A };
|
|
72
|
+
}
|
|
73
|
+
function xt(t) {
|
|
74
|
+
const { protocol: e, host: n } = St(t);
|
|
75
|
+
return location.protocol === e && location.host === n;
|
|
76
|
+
}
|
|
77
|
+
function fe(t) {
|
|
78
|
+
return Object.freeze(Object.fromEntries(t.map((e) => [e, !0])));
|
|
79
|
+
}
|
|
80
|
+
function te(t, e) {
|
|
81
|
+
return Object.assign({}, t, e);
|
|
82
|
+
}
|
|
83
|
+
function Je(t) {
|
|
84
|
+
Object.freeze(t);
|
|
85
|
+
const e = typeof t == "function", n = Object.prototype.hasOwnProperty;
|
|
86
|
+
Object.getOwnPropertyNames(t).forEach(function(o) {
|
|
87
|
+
n.call(t, o) && (!e || o !== "caller" && o !== "callee" && o !== "arguments") && t[o] !== null && (typeof t[o] == "object" || typeof t[o] == "function") && !Object.isFrozen(t[o]) && Je(t[o]);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function Dt(t) {
|
|
91
|
+
const e = structuredClone(t);
|
|
92
|
+
return Je(e), e;
|
|
93
|
+
}
|
|
94
|
+
function Oe(t) {
|
|
95
|
+
if (!t.parentNode)
|
|
96
|
+
return !1;
|
|
97
|
+
const e = t.getBoundingClientRect();
|
|
98
|
+
return !!e.width && !!e.height;
|
|
99
|
+
}
|
|
100
|
+
function V(t) {
|
|
101
|
+
if (!Oe(t))
|
|
102
|
+
throw Error("Adapter element is not displayed.");
|
|
103
|
+
}
|
|
104
|
+
function z(t) {
|
|
105
|
+
t.parentNode.removeChild(t);
|
|
106
|
+
}
|
|
107
|
+
function xe(t) {
|
|
108
|
+
return t && typeof t.then == "function";
|
|
109
|
+
}
|
|
110
|
+
class Rt {
|
|
111
|
+
resolve;
|
|
112
|
+
reject;
|
|
113
|
+
promise;
|
|
114
|
+
constructor() {
|
|
115
|
+
this.promise = new Promise((e, n) => {
|
|
116
|
+
this.resolve = e, this.reject = n;
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function Ft(t) {
|
|
121
|
+
return new Promise((e) => setTimeout(e, t));
|
|
122
|
+
}
|
|
123
|
+
function ce(t) {
|
|
124
|
+
if (typeof t != "object" || t === null)
|
|
125
|
+
return t;
|
|
126
|
+
if (t instanceof HTMLElement)
|
|
127
|
+
return t.cloneNode(!0);
|
|
128
|
+
if (Array.isArray(t))
|
|
129
|
+
return t.map(ce);
|
|
130
|
+
try {
|
|
131
|
+
return structuredClone(t);
|
|
132
|
+
} catch (e) {
|
|
133
|
+
console.log("Object cannot be structured clone.", e);
|
|
134
|
+
const n = {};
|
|
135
|
+
for (const o in t)
|
|
136
|
+
Object.prototype.hasOwnProperty.call(t, o) && (n[o] = ce(t[o]));
|
|
137
|
+
return n;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function Zt(t) {
|
|
141
|
+
return JSON.parse(JSON.stringify(t));
|
|
142
|
+
}
|
|
143
|
+
function Mt(t, e, ...n) {
|
|
144
|
+
const o = { command: e, args: Zt(n) };
|
|
145
|
+
t.postMessage(o, "*");
|
|
146
|
+
}
|
|
147
|
+
function je(t, e) {
|
|
148
|
+
for (const n in e) {
|
|
149
|
+
const o = e[n];
|
|
150
|
+
e[n] = (...s) => (Mt(t(), n, ...s), o.apply(e, s));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function Wt(t, e) {
|
|
154
|
+
const n = {
|
|
155
|
+
init: () => {
|
|
156
|
+
},
|
|
157
|
+
configure: () => {
|
|
158
|
+
},
|
|
159
|
+
checkGlobal: () => ({ checkId: "dummyCheckId" }),
|
|
160
|
+
onGlobalCheckRejected: () => {
|
|
161
|
+
},
|
|
162
|
+
invalidateRanges: () => {
|
|
163
|
+
},
|
|
164
|
+
onVisibleRangesChanged: () => {
|
|
165
|
+
},
|
|
166
|
+
showMessage: () => {
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
je(() => e.contentWindow, n);
|
|
170
|
+
function o(s) {
|
|
171
|
+
if (s.source !== e.contentWindow)
|
|
172
|
+
return;
|
|
173
|
+
const r = s.data, { command: i, args: A } = r;
|
|
174
|
+
t[i] && (i === "requestInit" ? t.requestInit(n) : t[i].apply(t, A));
|
|
175
|
+
}
|
|
176
|
+
addEventListener("message", o, !1);
|
|
177
|
+
}
|
|
178
|
+
function Ht(t = window) {
|
|
179
|
+
function e(o) {
|
|
180
|
+
const s = o.data, { command: r, args: i } = s, A = t.acrolinxSidebar;
|
|
181
|
+
A[r] && A[r].apply(A, i);
|
|
182
|
+
}
|
|
183
|
+
t.addEventListener("message", e, !1);
|
|
184
|
+
const n = {
|
|
185
|
+
requestInit: () => {
|
|
186
|
+
},
|
|
187
|
+
onInitFinished: () => {
|
|
188
|
+
},
|
|
189
|
+
requestGlobalCheck: () => {
|
|
190
|
+
},
|
|
191
|
+
onCheckResult: () => {
|
|
192
|
+
},
|
|
193
|
+
selectRanges: () => {
|
|
194
|
+
},
|
|
195
|
+
replaceRanges: () => {
|
|
196
|
+
},
|
|
197
|
+
openWindow: () => {
|
|
198
|
+
},
|
|
199
|
+
openLogFile: () => {
|
|
200
|
+
},
|
|
201
|
+
log: () => {
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
return je(() => t.parent, n), n;
|
|
205
|
+
}
|
|
206
|
+
var re = {}, De;
|
|
207
|
+
function Qt() {
|
|
208
|
+
return De || (De = 1, re.ACROLINX_STARTPAGE_INLINED_HTML = `<!doctype html>
|
|
209
|
+
<html lang="en">
|
|
210
|
+
<head>
|
|
211
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
212
|
+
<meta charset="UTF-8" />
|
|
213
|
+
<meta name="robots" content="noindex,nofollow,noarchive" />
|
|
214
|
+
|
|
215
|
+
<!-- Don't change the next 3 lines. They are used by some plugins to detect a "sidebar". -->
|
|
216
|
+
<meta name="api-version" content="v14" />
|
|
217
|
+
<meta name="sidebar-revision" content="14.2.2" />
|
|
218
|
+
<meta name="sidebar-version" content="14.2.2" />
|
|
219
|
+
|
|
220
|
+
<title>Acrolinx Sidebar Start Page</title>
|
|
221
|
+
|
|
222
|
+
<style>
|
|
223
|
+
.loader,
|
|
224
|
+
.loader:after {
|
|
225
|
+
border-radius: 50%;
|
|
226
|
+
width: 50px;
|
|
227
|
+
height: 50px;
|
|
228
|
+
}
|
|
229
|
+
.loader {
|
|
230
|
+
box-sizing: content-box;
|
|
231
|
+
position: absolute;
|
|
232
|
+
width: 50px;
|
|
233
|
+
height: 50px;
|
|
234
|
+
top: 50%;
|
|
235
|
+
left: 50%;
|
|
236
|
+
border: 10px solid rgba(144, 144, 144, 0.2);
|
|
237
|
+
border-left-color: #f44336;
|
|
238
|
+
transition: border-left-color 0.5s;
|
|
239
|
+
-webkit-transform: translateZ(0) translateX(-50%) translateY(-50%);
|
|
240
|
+
-ms-transform: translateZ(0) translateX(-50%) translateY(-50%);
|
|
241
|
+
transform: translateZ(0) translateX(-50%) translateY(-50%);
|
|
242
|
+
-webkit-animation: load8 1.1s infinite linear;
|
|
243
|
+
animation: load8 1.1s infinite linear;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.loaderJsLoaded {
|
|
247
|
+
border-left-color: #2196f3;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.loader .fallbackLoadingMessage {
|
|
251
|
+
display: none;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
@-webkit-keyframes load8 {
|
|
255
|
+
0% {
|
|
256
|
+
-webkit-transform: translateX(-50%) translateY(-50%) rotate(0deg);
|
|
257
|
+
transform: translateX(-50%) translateY(-50%) rotate(0deg);
|
|
258
|
+
}
|
|
259
|
+
100% {
|
|
260
|
+
-webkit-transform: translateX(-50%) translateY(-50%) rotate(360deg);
|
|
261
|
+
transform: translateX(-50%) translateY(-50%) rotate(360deg);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
@keyframes load8 {
|
|
265
|
+
0% {
|
|
266
|
+
-webkit-transform: translateX(-50%) translateY(-50%) rotate(0deg);
|
|
267
|
+
transform: translateX(-50%) translateY(-50%) rotate(0deg);
|
|
268
|
+
}
|
|
269
|
+
100% {
|
|
270
|
+
-webkit-transform: translateX(-50%) translateY(-50%) rotate(360deg);
|
|
271
|
+
transform: translateX(-50%) translateY(-50%) rotate(360deg);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
</style>
|
|
275
|
+
|
|
276
|
+
<!-- #cat styles/index.css -->
|
|
277
|
+
<!-- endcat -->
|
|
278
|
+
<script type="module" crossorigin>(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function r(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(o){if(o.ep)return;o.ep=!0;const i=r(o);fetch(o.href,i)}})();var M={},ye;function gt(){if(ye)return M;ye=1,Object.defineProperty(M,"__esModule",{value:!0}),M.LogEntryType=M.MessageType=M.SoftwareComponentCategory=void 0,M.SoftwareComponentCategory={MAIN:"MAIN",DEFAULT:"DEFAULT",DETAIL:"DETAIL"};var t;(function(r){r.success="success",r.info="info",r.warning="warning",r.error="error"})(t||(M.MessageType=t={}));var e;return(function(r){r.debug="debug",r.info="info",r.warning="warning",r.error="error"})(e||(M.LogEntryType=e={})),M}var U=gt();let B;function _e(t,e){const[r,...n]=e;return typeof r=="string"?{type:t,message:r,details:n}:{type:t,message:"Details",details:e}}function L(...t){try{console.log(...t),B&&B(_e(U.LogEntryType.info,t))}catch{}}function te(...t){try{console.warn(...t),B&&B(_e(U.LogEntryType.warning,t))}catch{}}function A(...t){try{console.error(...t),B&&B(_e(U.LogEntryType.error,t))}catch{}}function ae(t){B=t}function vt(t){return document.querySelector(t)}function J(t){return document.getElementById(t)}function St(t,e,r="block"){t.style&&(t.style.display=e?r:"none")}function G(t,e){return t.indexOf(e)===0}function bt(t,e){return e.some(r=>G(t,r))}const xt=new RegExp("^(?:(?:https?)://)(?:\\\\S+(?::\\\\S*)?@)?(?:(?!(?:10|127)(?:\\\\.\\\\d{1,3}){3})(?!(?:169\\\\.254|192\\\\.168)(?:\\\\.\\\\d{1,3}){2})(?!172\\\\.(?:1[6-9]|2\\\\d|3[0-1])(?:\\\\.\\\\d{1,3}){2})(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[1-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))?)(?::\\\\d{2,5})?(?:[/?#]\\\\S*)?$","i");function At(t,e){const r=t.trim();if(G(r,"/"))return He(e.windowLocation)+r;const n=8031,o=yt(r,":443")||ge(e)?"https":"http",i=r.replace(/\\/$/,""),a=G(i,"http")?i:o+"://"+i;return/\\/\\/.+((:\\d+.*)|(\\/.+))$/.test(a)?a:G(a,"http:")?a+":"+n:a}function ke(t,e){return t.replace(/\\/$/,"")+"/"+e.replace(/^\\//,"")}function ge(t){return t.enforceHTTPS||t.windowLocation.protocol==="https:"}function He(t){return wt(t.protocol)?t.protocol+"//"+t.hostname+(t.port?":"+t.port:""):""}function wt(t){return t==="http:"||t==="https:"}function We(t){return G(t,"http:")}function Lt(t){return xt.test(t)}function yt(t,e){return t.indexOf(e)>=0}function kt(){const t=window.location;return t.protocol+"//"+t.hostname+(t.port?":"+t.port:"")}function Ct(t,e){const r=t.slice();return r.sort((n,o)=>{const i=e(n),a=e(o);return i.localeCompare(a)}),r}function Ce(t,e){for(let r=0;r<t.length;r++){const n=t[r]||0,o=e[r]||0;if(n>o)return!0;if(n<o)return!1}return!0}function It(t){if(!t)return[];if(!/^(\\d+.?)+$/.test(t))return A("Invalid version number:",t),[];try{return t.split(".").map(e=>parseInt(e,10))}catch(e){return A("Invalid version number:",t,e),[]}}function Pt(t,e){const r=t.querySelector("iframe");if(r)try{r.src="about:blank",setTimeout(()=>{t.innerHTML="",e()},0)}catch(n){A(n),e()}else e()}function Rt(t){const e=document.createElement("script");return e.src=t,e.type="text/javascript",e.async=!1,e.defer=!1,e}function Et(t){const e=document.querySelector("head");e?e.appendChild(Rt(t)):A(\`Can not load script "\${t}" because of missing head element.\`)}class Ut{constructor(e,r){this.onTimeout=e,this.durationMs=r}timeoutId;start(){this.timeoutId!==void 0&&(this.stop(),te("TimeoutWatcher: start was called twice")),this.timeoutId=setTimeout(()=>{this.timeoutId=void 0,this.onTimeout()},this.durationMs)}stop(){this.timeoutId===void 0?te("TimeoutWatcher: stop was called before start"):(clearTimeout(this.timeoutId),this.timeoutId=void 0)}}const Ft=/^https:\\/\\/[a-z-_]+\\.(corp\\.google\\.com|gcpnode\\.com|corp\\.goog)(:[0-9]+)?/;function Oe(t){return Ft.test(t)}class X extends Error{constructor(e,r,n){super(r),this.acrolinxErrorCode=e,this.url=n}}function Tt(t,e,r){try{const n=new XMLHttpRequest;n.open("GET",t,!0),n.onload=()=>{n.status>=200&&n.status<400?r(n.responseText):r(new X("httpErrorStatus",\`Error while loading \${t}. Status = \${n.status}\`,t))},e.timeout&&(n.timeout=e.timeout),n.ontimeout=()=>{r(new X("timeout",\`Timeout while loading \${t}.\`,t))},n.onerror=()=>{r(new X("connectionError",\`Error while loading \${t}.\`,t))},n.withCredentials=Oe(t),n.send()}catch(n){r(new X("connectionError",n.message,t))}}const Dt="4.0.5",qe=Dt,Mt=["chrome-extension://","moz-extension://","resource://","ms-browser-extension://","safari-web-extension://"],Nt=60*1e3,Ht="",Ie=[14,3,1];function Wt(t){const e=t.match(/<meta name="sidebar-version" content="(\\d+)\\.(\\d+)\\.(\\d+)/);if(!e||e.length!==4)return null;const r=e.slice(1,4).map(n=>parseInt(n));return[r[0],r[1],r[2]]}class Pe extends Error{constructor(e,r,n){super(r),this.acrolinxErrorCode=e,this.url=n}}function Ot(t,e,r){L("loadSidebarIntoIFrame",t);const n=t.sidebarUrl,o=n+"index.html?t="+Date.now();Tt(o,{timeout:1e4},i=>{if(typeof i!="string"){const l=i;A("Error while fetching the sidebar: "+l.acrolinxErrorCode,l),r(l);return}const a=i;if(a.indexOf('<meta name="sidebar-version"')<0){r(new Pe("noSidebar","No valid sidebar html code:"+a,o));return}const u=Wt(a),h=!u||!Ce(u,Ie)||!Ce(u,t.minimumSidebarVersion);if(!Ht&&h){te(\`Found sidebar version \${le(u)} (default minimumSidebarVersion=\${le(Ie)}, configured minimumSidebarVersion=\${le(t.minimumSidebarVersion)})\`),r(new Pe("sidebarVersionIsBelowMinimum","Sidebar version is smaller than minimumSidebarVersion",o));return}if(L("Sidebar HTML is loaded successfully"),t.timeoutWatcher.start(),t.useMessageAdapter){const l=()=>{e.removeEventListener("load",l),r()};e.addEventListener("load",l),e.src=o+"&acrolinxUseMessageApi=true"}else qt(a,e,n),r()})}function le(t){return t?.join(".")}function qt(t,e,r){const n=e.contentWindow,o=t.replace(/src="/g,'src="'+r).replace(/href="/g,'href="'+r);n.document.open(),n.document.write(o),n.document.close()}const Vt=10;class Bt{constructor(e){this.props=e}requestInit(){this.props.requestInitListener()}onInitFinished(e){this.props.acrolinxPlugin.onInitFinished(e)}requestGlobalCheck(e){e?this.props.acrolinxPlugin.requestGlobalCheck(e):this.props.acrolinxPlugin.requestGlobalCheck()}onCheckResult(e){this.props.acrolinxPlugin.onCheckResult(e)}selectRanges(e,r){this.props.acrolinxPlugin.selectRanges(e,r)}replaceRanges(e,r){this.props.acrolinxPlugin.replaceRanges(e,r)}openWindow(e){this.props.openWindow(e)}showServerSelector(){this.props.showServerSelector()}openLogFile(){this.props.acrolinxPlugin.openLogFile?this.props.acrolinxPlugin.openLogFile():A("openLogFile is not supported")}requestCheckForDocumentInBatch(e){this.props.acrolinxPlugin.requestCheckForDocumentInBatch?this.props.acrolinxPlugin.requestCheckForDocumentInBatch(e):A("requestCheckForDocumentInBatch is not supported")}onLiveSearchResults(e){this.props.acrolinxPlugin.onLiveSearchResults?this.props.acrolinxPlugin.onLiveSearchResults(e):A("onLiveSearchResult is not supported")}onLiveSearchFailed(e){this.props.acrolinxPlugin.onLiveSearchFailed?this.props.acrolinxPlugin.onLiveSearchFailed(e):A("onLiveSearchFailed is not supported")}openLivePanel(){this.props.acrolinxPlugin.openLivePanel?this.props.acrolinxPlugin.openLivePanel():A("openLivePanel is not supported")}onUILanguageChanged(e){this.props.acrolinxPlugin.onUILanguageChanged?this.props.acrolinxPlugin.onUILanguageChanged(e):A("onUILanguageChanged is not supported")}onTargetChanged(e){this.props.acrolinxPlugin.onTargetChanged?this.props.acrolinxPlugin.onTargetChanged(e):A("onTargetChanged is not supported")}openDocumentInEditor(e){if(this.props.acrolinxPlugin.openDocumentInEditor)return this.props.acrolinxPlugin.openDocumentInEditor(e);A("openDocumentInEditor is not supported")}log(e){this.props.acrolinxPlugin.log?this.props.acrolinxPlugin.log(e):A("log is not supported",e)}}function Ve(t){const e=window;e.acrolinxPlugin?t(e.acrolinxPlugin):setTimeout(()=>{Ve(t)},Vt)}function $t(t){return JSON.parse(JSON.stringify(t))}function zt(t,e,...r){t.postMessage({command:e,args:$t(r)},"*")}function jt(t,e){for(const r in e){const n=e[r];e[r]=(...o)=>(zt(t(),r,...o),n.apply(e,o))}}function Gt(t){const e={init(r){},configure(r){},checkGlobal(r,n){return{checkId:"dummyCheckId"}},onGlobalCheckRejected(){},invalidateRanges(r){},onVisibleRangesChanged(r){},showMessage(r){},setStorage(r){}};return jt(()=>t,e),e}class Kt{constructor(e){this.initListener=e}_acrolinxSidebar;_serverAddress;configureQueue=[];get serverAddress(){return this._serverAddress}set serverAddress(e){this._serverAddress=e}get acrolinxSidebar(){return this._acrolinxSidebar}set acrolinxSidebar(e){for(this._acrolinxSidebar=e;this.configureQueue.length>0;)this._acrolinxSidebar.configure(this.configureQueue.splice(0,1)[0])}init(e){this.initListener(e)}configure(e){this.acrolinxSidebar?this.acrolinxSidebar.configure(e):this.configureQueue.push(e)}checkGlobal(e,r){return this.acrolinxSidebar.checkGlobal(e,r)}onGlobalCheckRejected(){this.acrolinxSidebar.onGlobalCheckRejected()}invalidateRanges(e){this.acrolinxSidebar.invalidateRanges(e)}onVisibleRangesChanged(e){return this.acrolinxSidebar.onVisibleRangesChanged(e)}showMessage(e){return this.acrolinxSidebar.showMessage(e)}initBatchCheck(e){if(this.acrolinxSidebar.initBatchCheck)return this.acrolinxSidebar.initBatchCheck(e);A("initBatchCheck is not supported")}checkDocumentInBatch(e,r,n){if(this.acrolinxSidebar.checkDocumentInBatch)return this.acrolinxSidebar.checkDocumentInBatch(e,r,n);A("checkDocumentInBatch is not supported")}liveSearch(e){this.acrolinxSidebar.liveSearch?this.acrolinxSidebar.liveSearch(e):A("liveSearch is not supported")}}const Be={serverSelector:{aboutItems:{browserInformation:"Browser Information",logFileLocation:"Log File Location",serverSelector:"Start Page",startPageCorsOrigin:"CORS Origin"},button:{connect:"Connect",details:"Details",openLogFile:"Open Log File"},links:{about:"About Acrolinx",cantConnect:"Can't connect to Acrolinx?",needHelp:"Help",submitRequest:"Contact Acrolinx Support"},message:{invalidServerAddress:"It looks like the Acrolinx URL is incorrect. Check the URL and try again.",loadSidebarTimeout:"It looks like the Sidebar took too long to load. Check your network connection or contact your Acrolinx administrator.",outdatedServer:"It looks like your Acrolinx integration needs a newer Acrolinx Platform version to load the Sidebar. Ask your Acrolinx administrator to update your platform.",serverConnectionProblemHttp:"We couldn't connect to Acrolinx. Check that the URL is correct. If you still can't connect, contact your Acrolinx administrator. It might be that your Acrolinx Platform doesn’t accept unsecure connections.",serverConnectionProblemHttps:"We couldn't connect to Acrolinx. Check that the URL is correct. If you still can't connect, contact your Acrolinx administrator.",serverIsNoAcrolinxServerOrHasNoSidebar:"It looks like this isn’t an Acrolinx URL or this Acrolinx Platform version doesn't support the Sidebar. If you're sure that the Acrolinx URL is correct, ask your Acrolinx administrator to check your platform version.",serverIsNotSecure:'You need to connect to Acrolinx using a secure Acrolinx URL. A secure Acrolinx URL starts with "https".'},placeHolder:{serverAddress:"Acrolinx URL"},title:{about:"About",logFile:"Log File",serverAddress:"Acrolinx URL"},tooltip:{httpsRequired:'You need to connect to Acrolinx using a secure Acrolinx URL. A secure Acrolinx URL starts with "https".',openHelp:"Open help information in a web browser window"}}},Qt={serverSelector:{aboutItems:{browserInformation:"Informationen zum Browser",logFileLocation:"Speicherort der Protokolldatei",serverSelector:"Startseite",startPageCorsOrigin:"CORS Origin"},button:{connect:"Verbinden",details:"Details",openLogFile:"Protokolldatei öffnen"},links:{about:"Über Acrolinx",cantConnect:"Sie können keine Verbindung zu Acrolinx herstellen?",needHelp:"Hilfe",submitRequest:"Acrolinx Support kontaktieren"},message:{invalidServerAddress:"Ist die Acrolinx-URL korrekt? Überprüfen Sie die eingegebene URL und versuchen Sie es erneut.",loadSidebarTimeout:"Die Sidebar braucht zu lange zum Laden. Überprüfen Sie Ihre Netzwerkverbindung oder wenden Sie sich an Ihre*n Acrolinx-Admin.",outdatedServer:"Ihre Acrolinx-Integration benötigt eine neuere Version der Acrolinx-Plattform. Sonst lädt die Sidebar nicht. Bitten Sie Ihre*n Admin, die Plattform zu aktualisieren.",serverConnectionProblemHttp:"Wir konnten keine Verbindung zu Acrolinx herstellen. Stimmt die Acrolinx-URL? Wenn ja, wenden Sie sich an Ihre*n Admin. Möglicherweise akzeptiert Ihre Acrolinx-Plattform keine gesicherten Verbindungen.",serverConnectionProblemHttps:"Wir konnten keine Verbindung zu Acrolinx herstellen. Überprüfen Sie, ob die URL korrekt ist. Wenn Sie weiterhin keine Verbindung herstellen können, wenden Sie sich an Ihre*n Acrolinx-Admin.",serverIsNoAcrolinxServerOrHasNoSidebar:"Stimmt die Acrolinx-URL? Wenn ja, wird die Sidebar von der Acrolinx-Plattform evtl. nicht unterstützt? Fragen Sie Ihre*n Admin.",serverIsNotSecure:"Verwenden Sie eine gesicherte Acrolinx-URL. Eine gesicherte Acrolinx-URL beginnt mit „https“."},placeHolder:{serverAddress:"Acrolinx-URL"},title:{about:"Über",logFile:"Protokolldatei",serverAddress:"Acrolinx-URL"},tooltip:{httpsRequired:"Verwenden Sie eine gesicherte Acrolinx-URL. Eine gesicherte Acrolinx-URL beginnt mit „https“.",openHelp:"Hilfeinformationen in einem Webbrowser-Fenster öffnen"}}},Jt={serverSelector:{aboutItems:{browserInformation:"Informations du navigateur",logFileLocation:"Emplacement des fichiers journaux",serverSelector:"Page de démarrage",startPageCorsOrigin:"CORS Origin"},button:{connect:"Se connecter",details:"Détails",openLogFile:"Ouvrir le fichier journal"},links:{about:"A propos d´Acrolinx",cantConnect:"Vous ne réussissez pas à vous connecter à Acrolinx ?",needHelp:"Aide",submitRequest:"Contacter le support Acrolinx"},message:{invalidServerAddress:"Il semblerait que l'URL d'Acrolinx soit incorrecte. Corriger l'adresse et essayer à nouveau.",loadSidebarTimeout:"La Sidebar Acrolinx est trop lent à démarrer. Vérifier la connexion réseau ou contacter l'administrateur de Acrolinx. ",outdatedServer:"Il semblerait que la version de la plateforme Acrolinx ne prenne pas en charge la Sidebar. Contactez l'administrateur Acrolinx pour une mise à jour de la plateforme.",serverConnectionProblemHttp:"La connexion à Acrolinx n'a pas abouti. Est-ce que l'URL d'Acrolinx est correcte ? Si oui, contactez l'administrateur Acrolinx. Il se pourrait que votre serveur n'accepte pas de connexions sécurisées.",serverConnectionProblemHttps:"Nous n'avons pas pu vous connecter à Acrolinx. Vérifiez que l'URL est correcte. Si vous ne pouvez toujours pas vous connecter, contactez votre administrateur Acrolinx.",serverIsNoAcrolinxServerOrHasNoSidebar:"Est-ce que l'URL d'Acrolinx est correcte ? Si oui, il se pourrait que la version de la plateforme Acrolinx ne prend pas en charge la Sidebar. Contactez l'administrateur Acrolinx pour vérifier.",serverIsNotSecure:"Utilisez une URL d'Acrolinx sécurisée. Une URL d'Acrolinx sécurisée commence par « https »."},placeHolder:{serverAddress:"URL d'Acrolinx"},title:{about:"A propos de",logFile:"Fichier journal",serverAddress:"URL d'Acrolinx"},tooltip:{httpsRequired:"Utilisez une URL d'Acrolinx sécurisée. Une URL d'Acrolinx sécurisée commence par « https ».",openHelp:"Ouvrir les informations d'aide dans la fenêtre d'un navigateur Web."}}},Xt={serverSelector:{aboutItems:{browserInformation:"Webbläsarinformation",logFileLocation:"Plats för loggfil",serverSelector:"Startsida",startPageCorsOrigin:"CORS Origin"},button:{connect:"Anslut",details:"Detaljer",openLogFile:"Öppna loggfil"},links:{about:"Om Acrolinx",cantConnect:"Kan du inte ansluta till Acrolinx?",needHelp:"Hjälp",submitRequest:"Kontakta Acrolinx Support"},message:{invalidServerAddress:"Det ser ut som om Acrolinx-URL:en är felaktig. Kontrollera adressen och försök igen.",loadSidebarTimeout:"Det verkar som om det tar för lång tid att ladda Sidebar. Kontrollera din nätverksanslutning eller kontakta din Acrolinx-administratör.",outdatedServer:"Det verkar som om din Acrolinx-integration behöver en nyare Acrolinx-plattformversion för att kunna ladda Sidebar. Kontakta din Acrolinx-administratör för att uppdatera Acrolinx-servern.",serverConnectionProblemHttp:"Det gick inte att ansluta till Acrolinx. Kontrollera att URL:en är korrekt. Om du fortfarande inte kan ansluta till servern kontaktar du din Acrolinx-administratör. Det kan vara så att din Acrolinx-plattform inte accepterar säkra anslutningar.",serverConnectionProblemHttps:"Det gick inte att ansluta till Acrolinx. Kontrollera att URL:en är korrekt. Om du fortfarande inte kan ansluta till servern kontaktar du din Acrolinx-administratör.",serverIsNoAcrolinxServerOrHasNoSidebar:"Det verkar som om detta inte är en Acrolinx-URL eller att den här versionen av Acrolinx-plattformen inte stöder Sidebar. Om du är säker på att Acrolinx-URL:n är korrekt, be din Acrolinx-administratör att kontrollera din plattformsversion.",serverIsNotSecure:'Du behöver ansluta till Acrolinx med en säker Acrolinx-URL. En säker Acrolinx-URL börjar med "https".'},placeHolder:{serverAddress:"Acrolinx-URL"},title:{about:"Om",logFile:"Loggfil",serverAddress:"Acrolinx-URL"},tooltip:{httpsRequired:'Du behöver ansluta till Acrolinx med en säker Acrolinx-URL. En säker Acrolinx-URL börjar med "https".',openHelp:"Öppna hjälpinformationen i ett webbläsarfönster"}}},Yt={serverSelector:{aboutItems:{browserInformation:"ブラウザー情報",logFileLocation:"ログファイルの保存先",serverSelector:"スタートページ",startPageCorsOrigin:"CORS オリジン"},button:{connect:"接続する",details:"詳細",openLogFile:"ログファイルを開く"},links:{about:"Acrolinxについて",cantConnect:"接続に問題がありますか?",needHelp:"ヘルプ",submitRequest:"Acrolinx サポートに連絡する"},message:{invalidServerAddress:"Acrolinx の URL に誤りがあります。URL を確認し、再試行してください。",loadSidebarTimeout:"サイドバーを起動するのに時間がかかっています。ネットワークの接続を確認し、Acrolinx の管理者に連絡してください。",outdatedServer:"この Acrolinx プラグインのサイドバーを起動するには、新しいコアプラットフォームバージョンが必要です。Acrolinx の管理者に、コアプラットフォームの更新を依頼してください。",serverConnectionProblemHttp:"Acrolinx に接続できませんでした。URL が正しいかを確認してください。URL が正しいにも関わらず接続できない場合は、Acrolinx 管理者に連絡してください。Acrolinx コアプラットフォームが、保護された接続を許可していない可能性があります。",serverConnectionProblemHttps:"Acrolinx に接続できませんでした。URL が正しいかを確認してください。URL が正しいにも関わらず接続できない場合は、Acrolinx 管理者に連絡してください。",serverIsNoAcrolinxServerOrHasNoSidebar:"この URL は、Acrolinx の URL ではないか、このサイドバーがサポートされていないバージョンの Acrolinx コアプラットフォームです。URL が正しい場合は、Acrolinx の管理者に Acrolinx コアプラットフォームのバージョンを確認してください。",serverIsNotSecure:"セキュリティーで保護されている Acrolinx URL を使用して、Acrolinx に接続してください。保護されている Acrolinx サーバーの URL は、https で始まります。"},placeHolder:{serverAddress:"Acrolinx URL"},title:{about:"バージョン",logFile:"ログファイル",serverAddress:"Acrolinx URL"},tooltip:{httpsRequired:"セキュリティーで保護されている Acrolinx URL を使用して、Acrolinx に接続してください。保護されている Acrolinx サーバーの URL は、https で始まります。",openHelp:"ウェブブラウザーでヘルプ情報を開く"}}},Zt={de:Qt,fr:Jt,sv:Xt,ja:Yt};let $e=Be,de="en";function er(t){de=tr(t),$e=Zt[de]||Be}function F(){return $e}function ze(){return de}function tr(t){return(t||"en").toLowerCase().slice(0,2).replace("jp","ja")}class rr{constructor(e){this.value=e}match(e){return e.ok(this.value)}}class Re{constructor(e){this.error=e}match(e){return e.err(this.error)}}function nr(t,e){const r=At(t.trim(),e);return We(r)&&ge(e)?new Re(F().serverSelector.message.serverIsNotSecure):Lt(r)?new rr(r):new Re(F().serverSelector.message.invalidServerAddress)}var ne,S,je,V,Ee,Ge,Ke,Qe,ve,pe,fe,K={},Je=[],or=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,oe=Array.isArray;function N(t,e){for(var r in e)t[r]=e[r];return t}function Se(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function Xe(t,e,r){var n,o,i,a={};for(i in e)i=="key"?n=e[i]:i=="ref"?o=e[i]:a[i]=e[i];if(arguments.length>2&&(a.children=arguments.length>3?ne.call(arguments,2):r),typeof t=="function"&&t.defaultProps!=null)for(i in t.defaultProps)a[i]===void 0&&(a[i]=t.defaultProps[i]);return Z(t,a,n,o,null)}function Z(t,e,r,n,o){var i={type:t,props:e,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++je,__i:-1,__u:0};return o==null&&S.vnode!=null&&S.vnode(i),i}function ie(t){return t.children}function H(t,e){this.props=t,this.context=e}function $(t,e){if(e==null)return t.__?$(t.__,t.__i+1):null;for(var r;e<t.__k.length;e++)if((r=t.__k[e])!=null&&r.__e!=null)return r.__e;return typeof t.type=="function"?$(t):null}function Ye(t){var e,r;if((t=t.__)!=null&&t.__c!=null){for(t.__e=t.__c.base=null,e=0;e<t.__k.length;e++)if((r=t.__k[e])!=null&&r.__e!=null){t.__e=t.__c.base=r.__e;break}return Ye(t)}}function Ue(t){(!t.__d&&(t.__d=!0)&&V.push(t)&&!re.__r++||Ee!=S.debounceRendering)&&((Ee=S.debounceRendering)||Ge)(re)}function re(){for(var t,e,r,n,o,i,a,u=1;V.length;)V.length>u&&V.sort(Ke),t=V.shift(),u=V.length,t.__d&&(r=void 0,n=void 0,o=(n=(e=t).__v).__e,i=[],a=[],e.__P&&((r=N({},n)).__v=n.__v+1,S.vnode&&S.vnode(r),be(e.__P,r,n,e.__n,e.__P.namespaceURI,32&n.__u?[o]:null,i,o??$(n),!!(32&n.__u),a),r.__v=n.__v,r.__.__k[r.__i]=r,tt(i,r,a),n.__e=n.__=null,r.__e!=o&&Ye(r)));re.__r=0}function Ze(t,e,r,n,o,i,a,u,h,l,p){var s,f,d,b,y,x,_,g=n&&n.__k||Je,C=e.length;for(h=ir(r,e,g,h,C),s=0;s<C;s++)(d=r.__k[s])!=null&&(f=d.__i==-1?K:g[d.__i]||K,d.__i=s,x=be(t,d,f,o,i,a,u,h,l,p),b=d.__e,d.ref&&f.ref!=d.ref&&(f.ref&&xe(f.ref,null,d),p.push(d.ref,d.__c||b,d)),y==null&&b!=null&&(y=b),(_=!!(4&d.__u))||f.__k===d.__k?h=et(d,h,t,_):typeof d.type=="function"&&x!==void 0?h=x:b&&(h=b.nextSibling),d.__u&=-7);return r.__e=y,h}function ir(t,e,r,n,o){var i,a,u,h,l,p=r.length,s=p,f=0;for(t.__k=new Array(o),i=0;i<o;i++)(a=e[i])!=null&&typeof a!="boolean"&&typeof a!="function"?(h=i+f,(a=t.__k[i]=typeof a=="string"||typeof a=="number"||typeof a=="bigint"||a.constructor==String?Z(null,a,null,null,null):oe(a)?Z(ie,{children:a},null,null,null):a.constructor==null&&a.__b>0?Z(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):a).__=t,a.__b=t.__b+1,u=null,(l=a.__i=sr(a,r,h,s))!=-1&&(s--,(u=r[l])&&(u.__u|=2)),u==null||u.__v==null?(l==-1&&(o>p?f--:o<p&&f++),typeof a.type!="function"&&(a.__u|=4)):l!=h&&(l==h-1?f--:l==h+1?f++:(l>h?f--:f++,a.__u|=4))):t.__k[i]=null;if(s)for(i=0;i<p;i++)(u=r[i])!=null&&(2&u.__u)==0&&(u.__e==n&&(n=$(u)),nt(u,u));return n}function et(t,e,r,n){var o,i;if(typeof t.type=="function"){for(o=t.__k,i=0;o&&i<o.length;i++)o[i]&&(o[i].__=t,e=et(o[i],e,r,n));return e}t.__e!=e&&(n&&(e&&t.type&&!e.parentNode&&(e=$(t)),r.insertBefore(t.__e,e||null)),e=t.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType==8);return e}function sr(t,e,r,n){var o,i,a,u=t.key,h=t.type,l=e[r],p=l!=null&&(2&l.__u)==0;if(l===null&&t.key==null||p&&u==l.key&&h==l.type)return r;if(n>(p?1:0)){for(o=r-1,i=r+1;o>=0||i<e.length;)if((l=e[a=o>=0?o--:i++])!=null&&(2&l.__u)==0&&u==l.key&&h==l.type)return a}return-1}function Fe(t,e,r){e[0]=="-"?t.setProperty(e,r??""):t[e]=r==null?"":typeof r!="number"||or.test(e)?r:r+"px"}function Y(t,e,r,n,o){var i,a;e:if(e=="style")if(typeof r=="string")t.style.cssText=r;else{if(typeof n=="string"&&(t.style.cssText=n=""),n)for(e in n)r&&e in r||Fe(t.style,e,"");if(r)for(e in r)n&&r[e]==n[e]||Fe(t.style,e,r[e])}else if(e[0]=="o"&&e[1]=="n")i=e!=(e=e.replace(Qe,"$1")),a=e.toLowerCase(),e=a in t||e=="onFocusOut"||e=="onFocusIn"?a.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+i]=r,r?n?r.u=n.u:(r.u=ve,t.addEventListener(e,i?fe:pe,i)):t.removeEventListener(e,i?fe:pe,i);else{if(o=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=r??"";break e}catch{}typeof r=="function"||(r==null||r===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&r==1?"":r))}}function Te(t){return function(e){if(this.l){var r=this.l[e.type+t];if(e.t==null)e.t=ve++;else if(e.t<r.u)return;return r(S.event?S.event(e):e)}}}function be(t,e,r,n,o,i,a,u,h,l){var p,s,f,d,b,y,x,_,g,C,R,T,O,Q,q,I,E,k=e.type;if(e.constructor!=null)return null;128&r.__u&&(h=!!(32&r.__u),i=[u=e.__e=r.__e]),(p=S.__b)&&p(e);e:if(typeof k=="function")try{if(_=e.props,g="prototype"in k&&k.prototype.render,C=(p=k.contextType)&&n[p.__c],R=p?C?C.props.value:p.__:n,r.__c?x=(s=e.__c=r.__c).__=s.__E:(g?e.__c=s=new k(_,R):(e.__c=s=new H(_,R),s.constructor=k,s.render=lr),C&&C.sub(s),s.props=_,s.state||(s.state={}),s.context=R,s.__n=n,f=s.__d=!0,s.__h=[],s._sb=[]),g&&s.__s==null&&(s.__s=s.state),g&&k.getDerivedStateFromProps!=null&&(s.__s==s.state&&(s.__s=N({},s.__s)),N(s.__s,k.getDerivedStateFromProps(_,s.__s))),d=s.props,b=s.state,s.__v=e,f)g&&k.getDerivedStateFromProps==null&&s.componentWillMount!=null&&s.componentWillMount(),g&&s.componentDidMount!=null&&s.__h.push(s.componentDidMount);else{if(g&&k.getDerivedStateFromProps==null&&_!==d&&s.componentWillReceiveProps!=null&&s.componentWillReceiveProps(_,R),!s.__e&&s.shouldComponentUpdate!=null&&s.shouldComponentUpdate(_,s.__s,R)===!1||e.__v==r.__v){for(e.__v!=r.__v&&(s.props=_,s.state=s.__s,s.__d=!1),e.__e=r.__e,e.__k=r.__k,e.__k.some(function(W){W&&(W.__=e)}),T=0;T<s._sb.length;T++)s.__h.push(s._sb[T]);s._sb=[],s.__h.length&&a.push(s);break e}s.componentWillUpdate!=null&&s.componentWillUpdate(_,s.__s,R),g&&s.componentDidUpdate!=null&&s.__h.push(function(){s.componentDidUpdate(d,b,y)})}if(s.context=R,s.props=_,s.__P=t,s.__e=!1,O=S.__r,Q=0,g){for(s.state=s.__s,s.__d=!1,O&&O(e),p=s.render(s.props,s.state,s.context),q=0;q<s._sb.length;q++)s.__h.push(s._sb[q]);s._sb=[]}else do s.__d=!1,O&&O(e),p=s.render(s.props,s.state,s.context),s.state=s.__s;while(s.__d&&++Q<25);s.state=s.__s,s.getChildContext!=null&&(n=N(N({},n),s.getChildContext())),g&&!f&&s.getSnapshotBeforeUpdate!=null&&(y=s.getSnapshotBeforeUpdate(d,b)),I=p,p!=null&&p.type===ie&&p.key==null&&(I=rt(p.props.children)),u=Ze(t,oe(I)?I:[I],e,r,n,o,i,a,u,h,l),s.base=e.__e,e.__u&=-161,s.__h.length&&a.push(s),x&&(s.__E=s.__=null)}catch(W){if(e.__v=null,h||i!=null)if(W.then){for(e.__u|=h?160:128;u&&u.nodeType==8&&u.nextSibling;)u=u.nextSibling;i[i.indexOf(u)]=null,e.__e=u}else{for(E=i.length;E--;)Se(i[E]);me(e)}else e.__e=r.__e,e.__k=r.__k,W.then||me(e);S.__e(W,e,r)}else i==null&&e.__v==r.__v?(e.__k=r.__k,e.__e=r.__e):u=e.__e=ar(r.__e,e,r,n,o,i,a,h,l);return(p=S.diffed)&&p(e),128&e.__u?void 0:u}function me(t){t&&t.__c&&(t.__c.__e=!0),t&&t.__k&&t.__k.forEach(me)}function tt(t,e,r){for(var n=0;n<r.length;n++)xe(r[n],r[++n],r[++n]);S.__c&&S.__c(e,t),t.some(function(o){try{t=o.__h,o.__h=[],t.some(function(i){i.call(o)})}catch(i){S.__e(i,o.__v)}})}function rt(t){return typeof t!="object"||t==null||t.__b&&t.__b>0?t:oe(t)?t.map(rt):N({},t)}function ar(t,e,r,n,o,i,a,u,h){var l,p,s,f,d,b,y,x=r.props,_=e.props,g=e.type;if(g=="svg"?o="http://www.w3.org/2000/svg":g=="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),i!=null){for(l=0;l<i.length;l++)if((d=i[l])&&"setAttribute"in d==!!g&&(g?d.localName==g:d.nodeType==3)){t=d,i[l]=null;break}}if(t==null){if(g==null)return document.createTextNode(_);t=document.createElementNS(o,g,_.is&&_),u&&(S.__m&&S.__m(e,i),u=!1),i=null}if(g==null)x===_||u&&t.data==_||(t.data=_);else{if(i=i&&ne.call(t.childNodes),x=r.props||K,!u&&i!=null)for(x={},l=0;l<t.attributes.length;l++)x[(d=t.attributes[l]).name]=d.value;for(l in x)if(d=x[l],l!="children"){if(l=="dangerouslySetInnerHTML")s=d;else if(!(l in _)){if(l=="value"&&"defaultValue"in _||l=="checked"&&"defaultChecked"in _)continue;Y(t,l,null,d,o)}}for(l in _)d=_[l],l=="children"?f=d:l=="dangerouslySetInnerHTML"?p=d:l=="value"?b=d:l=="checked"?y=d:u&&typeof d!="function"||x[l]===d||Y(t,l,d,x[l],o);if(p)u||s&&(p.__html==s.__html||p.__html==t.innerHTML)||(t.innerHTML=p.__html),e.__k=[];else if(s&&(t.innerHTML=""),Ze(e.type=="template"?t.content:t,oe(f)?f:[f],e,r,n,g=="foreignObject"?"http://www.w3.org/1999/xhtml":o,i,a,i?i[0]:r.__k&&$(r,0),u,h),i!=null)for(l=i.length;l--;)Se(i[l]);u||(l="value",g=="progress"&&b==null?t.removeAttribute("value"):b!=null&&(b!==t[l]||g=="progress"&&!b||g=="option"&&b!=x[l])&&Y(t,l,b,x[l],o),l="checked",y!=null&&y!=t[l]&&Y(t,l,y,x[l],o))}return t}function xe(t,e,r){try{if(typeof t=="function"){var n=typeof t.__u=="function";n&&t.__u(),n&&e==null||(t.__u=t(e))}else t.current=e}catch(o){S.__e(o,r)}}function nt(t,e,r){var n,o;if(S.unmount&&S.unmount(t),(n=t.ref)&&(n.current&&n.current!=t.__e||xe(n,null,e)),(n=t.__c)!=null){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(i){S.__e(i,e)}n.base=n.__P=null}if(n=t.__k)for(o=0;o<n.length;o++)n[o]&&nt(n[o],e,r||typeof t.type!="function");r||Se(t.__e),t.__c=t.__=t.__e=void 0}function lr(t,e,r){return this.constructor(t,r)}function ce(t,e,r){var n,o,i,a;e==document&&(e=document.documentElement),S.__&&S.__(t,e),o=(n=typeof r=="function")?null:r&&r.__k||e.__k,i=[],a=[],be(e,t=(!n&&r||e).__k=Xe(ie,null,[t]),o||K,K,e.namespaceURI,!n&&r?[r]:o?null:e.firstChild?ne.call(e.childNodes):null,i,!n&&r?r:o?o.__e:e.firstChild,n,a),tt(i,t,a)}ne=Je.slice,S={__e:function(t,e,r,n){for(var o,i,a;e=e.__;)if((o=e.__c)&&!o.__)try{if((i=o.constructor)&&i.getDerivedStateFromError!=null&&(o.setState(i.getDerivedStateFromError(t)),a=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(t,n||{}),a=o.__d),a)return o.__E=o}catch(u){t=u}throw t}},je=0,H.prototype.setState=function(t,e){var r;r=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=N({},this.state),typeof t=="function"&&(t=t(N({},r),this.props)),t&&N(r,t),t!=null&&this.__v&&(e&&this._sb.push(e),Ue(this))},H.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),Ue(this))},H.prototype.render=ie,V=[],Ge=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Ke=function(t,e){return t.__v.__b-e.__v.__b},re.__r=0,Qe=/(PointerCapture)$|Capture$/i,ve=0,pe=Te(!1),fe=Te(!0);function cr(t,e){const r=t.accessToken&&t.showServerSelector;return r&&te(\`Ignore accessToken because showServerSelector=\${t.showServerSelector}\`),{...t,serverAddress:e,accessToken:r?void 0:t.accessToken,showServerSelector:!1,corsWithCredentials:t.corsWithCredentials||Oe(e),supported:{...t.supported,showServerSelector:t.showServerSelector},clientComponents:ot(t.clientComponents)}}function ot(t){return(t||[]).concat({id:"com.acrolinx.serverselector",name:F().serverSelector.aboutItems.serverSelector,version:qe,category:U.SoftwareComponentCategory.DEFAULT})}function ur(t,e){const r=(t||"").replace(/[^a-zA-Z0-9]+/g,".");return r==="."||r===""?"unknown.client.component.id.with.index."+e:r}function dr(t,e){return{...t,id:t.id||ur(t.name,e),name:t.name||t.id||"unknown client component name",version:t.version||"0.0.0.0"}}function ue(t,e){return t.indexOf(e)>=0}function pr(){const t=navigator.userAgent;return ue(t,"AppleWebKit")&&!(ue(t,"Chrome")||ue(t,"Edge"))}function fr(){if(!pr())return;const t=document.querySelector("body");t&&(t.style.display="none",t.offsetHeight,t.style.display="block")}function P(t){return(e,...r)=>Xe(t,e,...r)}const w=P("div"),he=P("span"),Ae=P("button"),it=P("h1"),mr=P("form"),we=P("a"),hr=P("input");function st(...t){const e=[];for(let r=0;r<t.length;r++){const n=t[r];if(n){if(typeof n=="string")e.push(n);else if(typeof n=="object")for(const o in n)n.hasOwnProperty(o)&&n[o]&&e.push(o)}}return e.join(" ")}const _r={submitRequestUrl:"https://support.acrolinx.com/hc/en-us/requests/new",cantConnectHelpLink:"https://support.acrolinx.com/hc/en-us/articles/10220860699794-Why-can-t-I-connect-my-Sidebar-Edition-Integration-to-the-Acrolinx-Core-Platform-",helpLinkUrl:"https://support.acrolinx.com/hc/en-us"},gr={submitRequestUrl:"https://support.acrolinx.com/hc/de/requests/new",cantConnectHelpLink:"https://support.acrolinx.com/hc/de/articles/10220860699794-Why-can-t-I-connect-my-Sidebar-Edition-Integration-to-the-Acrolinx-Core-Platform-",helpLinkUrl:"https://support.acrolinx.com/hc/de"},De={en:_r,de:gr};function at(t){return t==="de"?De.de:De.en}function vr(){const t=ze();return at(t).helpLinkUrl}class Sr extends H{render(){const e=this.props;return we({className:"icon-help",title:F().serverSelector.tooltip.openHelp,onClick:r=>{r.preventDefault(),r.stopPropagation(),e.openWindow(e.initParameters.helpUrl||vr())},href:"#"})}}const lt=P(Sr);function br(t){return w({className:"about-item",key:t.id},w({className:"about-tab-label"},t.name),w({className:"about-tab-value",title:t.version},t.version))}const xr={[U.SoftwareComponentCategory.MAIN]:"1",[U.SoftwareComponentCategory.DEFAULT]:"2",[U.SoftwareComponentCategory.DETAIL]:"3"};function Ar(t){return xr[t.category||"DEFAULT"]+t.name.toLowerCase()}function wr(t){const e=F().serverSelector,r=[{id:"com.acrolinx.userAgent",name:e.aboutItems.browserInformation,version:navigator.userAgent,category:U.SoftwareComponentCategory.DEFAULT},{id:"com.acrolinx.startPageCorsOrigin",name:e.aboutItems.startPageCorsOrigin,version:kt(),category:U.SoftwareComponentCategory.DEFAULT}];return t&&r.push({id:"com.acrolinx.logFileLocation",name:e.aboutItems.logFileLocation,version:t,category:U.SoftwareComponentCategory.DEFAULT}),r}class Lr extends H{componentDidMount(){fr()}render(){const e=F().serverSelector,r=this.props,n=this.props.clientComponents.map(dr),o=Ct(n.concat(wr(r.logFileLocation)),Ar);return w({className:"aboutComponent"},w({className:st("aboutHeader"),onClick:r.onBack},he({className:"icon-arrow-back"}),lt(r)),w({className:"aboutBody"},w({className:"aboutMain"},it({},e.title.about),o.map(br))),w({className:"aboutFooter"},r.logFileLocation?w({className:"buttonGroup logFileSection"},he({className:"openLogFileTitle"},e.title.logFile),Ae({className:"submitButton",onClick:r.openLogFile},e.button.openLogFile)):[]))}}const yr=P(Lr);class kr extends H{render(){const e=this.props;return we({className:"externalTextLink",onClick:r=>{r.preventDefault(),e.openWindow(e.url)},href:"#"},this.props.text)}}const Me=P(kr);class Cr extends H{state={showDetails:!1};toggleErrorDetails=e=>{e.preventDefault(),this.setState({showDetails:!this.state.showDetails})};selectDetailMessage=e=>{e.preventDefault();const r=window.getSelection(),n=document.createRange();n.selectNodeContents(e.target),r?.removeAllRanges(),r?.addRange(n)};getErrorDetailsMessage(){return this.state.showDetails?w({className:"detailedErrorMessage",onClick:this.selectDetailMessage},this.props.detailedMessage):[]}render(){const e=this.props;return w({className:st("errorMessage",{hasDetailsSection:!!this.props.detailedMessage})},w({className:"errorMessageMain",dangerouslySetInnerHTML:{__html:e.messageHtml.html}}),this.props.detailedMessage?w({className:"detailedErrorSection"},Ae({className:"detailsButton",onClick:this.toggleErrorDetails},F().serverSelector.button.details),this.getErrorDetailsMessage()):[])}}const ct=P(Cr),ut="serverAddress";function Ir(){const t=ze();return at(t)}class Pr extends H{serverAddressField;onSubmit=e=>{e.preventDefault(),this.props.onSubmit(this.serverAddressField.value)};render(){const e=F().serverSelector,r=Ir(),n=this.props,o=ge({enforceHTTPS:n.enforceHTTPS,windowLocation:window.location});return mr({className:"serverSelectorFormComponent",onSubmit:this.onSubmit},w({className:"logoHeader"},lt(n)),w({className:"formContent"},w({className:"paddedFormContent"},it({className:"serverAddressTitle",title:o?e.tooltip.httpsRequired:""},e.title.serverAddress,o?he({className:"httpsRequiredIcon"}):[]),hr({className:ut,name:"acrolinxServerAddress",placeholder:e.placeHolder.serverAddress,autofocus:!0,ref:i=>{this.serverAddressField=i},defaultValue:n.serverAddress,spellCheck:"false"}),w({className:"buttonGroup"},Me({url:r.cantConnectHelpLink,openWindow:n.openWindow,text:e.links.cantConnect}),Ae({type:"submit",className:"submitButton",disabled:n.isConnectButtonDisabled},e.button.connect)),w({className:"submitRequest"},Me({url:r.submitRequestUrl,openWindow:n.openWindow,text:e.links.submitRequest})),we({onClick:i=>{i.preventDefault(),n.onAboutLink()},href:"#"},e.links.about)),n.errorMessage?ct(n.errorMessage):[]))}}const Rr=P(Pr);function Er(t){const e=t.getElementsByClassName(ut).item(0);e&&e.focus()}function Ur(t){try{if(!t)return!1;const e="__storage_test__";return t.setItem(e,e),t.getItem(e)!==e?!1:(t.removeItem(e),!0)}catch{return!1}}class Fr{dataMap={};clear(){this.dataMap={}}setItem(e,r){this.dataMap[e]=r}getItem(e){const r=this.dataMap[e];return r===void 0?null:r}removeItem(e){delete this.dataMap[e]}}function Tr(t,e){return t?(L("acrolinxStartpage: Using window.acrolinxStorage"),t):Ur(e)?(L("acrolinxStartpage: Using window.localStorage"),e):(L("acrolinxStartpage: Using AcrolinxSimpleStorageInMemory"),new Fr)}function Dr(){try{return window.localStorage}catch{return}}function dt(){return Tr(window.acrolinxStorage,Dr())}let ee;function j(){return ee||(ee=dt()),ee}function Mr(){ee=dt()}function Nr(t,e){t.acrolinxStorage&&(L("Inject window.acrolinxStorage into sidebar"),e.acrolinxStorage=t.acrolinxStorage)}function Hr(){const t=document.getElementById("FirebugUI");if(!t||!t.contentWindow)return!1;try{const e=t.contentWindow.document.getElementById("fbWindow_btDeactivate");e.style.display="none"}catch{return!1}return!0}function pt(){Hr()||setTimeout(pt,500)}function Wr(){L("Loading firebug lite into sidebar startpage ..."),Et("https://getfirebug.com/releases/lite/1.3/firebug-lite.js#startOpened=true"),pt()}function Or(){let t="",e=!1;document.addEventListener("keypress",r=>{if(e){const n=r.key||String.fromCharCode(r.charCode);t+=n}}),document.addEventListener("mousedown",()=>{e=!0,t=""}),document.addEventListener("mouseup",()=>{e=!1,t==="acrofire"?Wr():t.length>3&&L("Unknown command:",t),t=""})}function qr(){Or()}const Ne="acrolinx.serverSelector.serverAddress",Vr=\`
|
|
279
|
+
<div id="serverSelectorFormPage" style="display: none"></div>
|
|
280
|
+
<div id="aboutPage" style="display: none"></div>
|
|
281
|
+
<div id="errorMessagePage" style="display: none"></div>
|
|
282
|
+
<div id="loadingSidebarMessagePage">
|
|
283
|
+
<div class="loader loaderJsLoaded"><span class="fallbackLoadingMessage">Loading ...</span></div>
|
|
284
|
+
</div>
|
|
285
|
+
<div id="sidebarContainer" style="display: none"></div>
|
|
286
|
+
\`;function Br(){return bt(window.location.href,Mt)}function $r(t={}){ae(c=>{const m=window.acrolinxPlugin;m?.log&&m.log(c)}),L("Loading acrolinx sidebar startpage "+qe),qr();const e=window,r=new Kt(ft);let n,o;e.acrolinxSidebar=r;const i=Br(),a=vt("#app");a.innerHTML=Vr;const u=J("sidebarContainer"),h=J("errorMessagePage"),l=J("aboutPage"),p=J("serverSelectorFormPage");let s,f,d;const b=new Ut(ht,t.requestInitTimeOutMs||Nt);let y=0;I("loadingSidebarMessagePage"),Ve(c=>{Mr(),f=j().getItem(Ne),n=c,n.requestInit(),i&&(L("useMessageAdapter"),addEventListener("message",mt,!1))});function x(){L("clicked openLogFile"),n.openLogFile?n.openLogFile():A("acrolinxPlugin.openLogFile is not defined!")}function _(c){n?.openWindow&&!o?.openWindowDirectly?n.openWindow(c):window.open(c.url)}function g(c){L(\`User tries to connect with server "\${c}"\`),nr(c,{enforceHTTPS:o.enforceHTTPS,windowLocation:window.location}).match({ok:v=>{f=v,C(f)},err:v=>{E({errorMessage:T(v)})}})}function C(c){L(\`Try to load sidebar from "\${c}"\`),u.innerHTML="",s=document.createElement("iframe"),u.appendChild(s);const m=It(o.minimumSidebarVersion);let v=ke(c,"/sidebar/v15/");m.length!==0&&m[0]===14&&(v=ke(c,"/sidebar/v14/"));const D={sidebarUrl:v,useMessageAdapter:i,timeoutWatcher:b,minimumSidebarVersion:m};d==="serverSelectorFormPage"?k({isConnectButtonDisabled:!0}):(R(),I("loadingSidebarMessagePage")),Ot(D,s,z=>{if(z){k({isConnectButtonDisabled:!1}),Q(c,z);return}if(o.showServerSelector&&j().setItem(Ne,c),I("sidebarContainer"),i)return;const se=s.contentWindow;Nr(window,se),se.acrolinxPlugin=new Bt({requestInitListener:()=>{r.acrolinxSidebar=se.acrolinxSidebar,Le()},acrolinxPlugin:n,serverAddress:c,showServerSelector:E,openWindow:_})})}function R(){const c=a.querySelector(".loader");c&&c.classList.add("loadSidebarHtml")}function T(c,m){return{messageHtml:{html:c},detailedMessage:m&&JSON.stringify(m)}}function O(c,m){const v=F().serverSelector.message;switch(m.acrolinxErrorCode){case"httpErrorStatus":case"noSidebar":return T(v.serverIsNoAcrolinxServerOrHasNoSidebar,m);case"sidebarVersionIsBelowMinimum":return T(v.outdatedServer,m);default:const D=We(c)?v.serverConnectionProblemHttp:v.serverConnectionProblemHttps;return T(D,m)}}function Q(c,m){q(O(c,m))}function q(c){o.showServerSelector?E({errorMessage:c}):W(c)}function I(c){const m=a.childNodes;for(let v=0;v<m.length;++v){const D=m[v];St(D,c===D.id)}d=c}function E(c={}){y=0,Pt(u,()=>{I("serverSelectorFormPage"),Er(p),k(c)})}function k(c={}){ce(Rr({onSubmit:g,onAboutLink:_t,serverAddress:f,enforceHTTPS:o.enforceHTTPS,isConnectButtonDisabled:c.isConnectButtonDisabled,openWindow:m=>_({url:m}),errorMessage:c.errorMessage,initParameters:o}),p,p.firstChild)}function W(c){I("errorMessagePage"),ce(ct(c),h,h.firstChild)}function ft(c){o=c,er(c.clientLocale),c.supported?.log&&n.log?ae(m=>n.log(m)):ae(void 0),c.showServerSelector?f?C(f):(c.serverAddress&&(f=c.serverAddress),E()):(L("Load directly!"),f=c.serverAddress||He(window.location),C(f))}function mt(c){if(!s?.contentWindow||c.source!==s.contentWindow)return;const m=c.data.command,v=c.data.args;switch(m==="setStorageItem"?L("onMessageFromSidebar",m,v[0]):L("onMessageFromSidebar",c,m,v),m){case"requestInit":r.acrolinxSidebar=Gt(s.contentWindow),Le();break;case"showServerSelector":E();break;case"setStorageItem":j().setItem(v[0],v[1]);break;case"removeStorageItem":j().removeItem(v[0]);break;default:const D=e.acrolinxPlugin,z=D[m];z?z.apply(D,v):A(\`Plugin does not support command "\${m}"\`,v)}}function Le(){L(\`Sidebar is loaded completely and has requested init ("\${f}")\`),y=1,b.stop();function c(){r.acrolinxSidebar.init(cr(o,f))}const m=j();m.getItems?m.getItems(v=>{r.acrolinxSidebar.setStorage({data:v}),c()}):c()}function ht(){y===0&&(A(\`Sidebar took too long to load from "\${f}"\`),q({messageHtml:{html:F().serverSelector.message.loadSidebarTimeout}}))}function _t(){I("aboutPage"),ce(yr({onBack(){E()},logFileLocation:o.logFileLocation,openLogFile:x,clientComponents:ot(o.clientComponents),openWindow:c=>_({url:c}),initParameters:o}),l,l.firstChild)}}setTimeout($r,500);<\/script>
|
|
287
|
+
<style rel="stylesheet" crossorigin>@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url(data:font/woff;base64,d09GRgABAAAAAU90ABIAAAACnpwAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABlAAAAXMAAAJitEKwgkdQT1MAAAMIAAAsZAAAXcz/GhLXR1NVQgAAL2wAAAt8AAAVkOuC5FlPUy8yAAA66AAAAFIAAABgl4KxqGNtYXAAADs8AAAJTQAAEkYBd1geY3Z0IAAARIwAAABUAAAAVCuoB51mcGdtAABE4AAAATUAAAG8d/hgq2dhc3AAAEYYAAAADAAAAAwACAATZ2x5ZgAARiQAAO/NAAHpbCa6C/RoZG14AAE19AAAAZYAAAUYVXpgemhlYWQAATeMAAAANgAAADb8atJ6aGhlYQABN8QAAAAgAAAAJAq6Cq5obXR4AAE35AAACo8AABQ4rnKPl2xvY2EAAUJ0AAAJyQAACh6Ad/+7bWF4cAABTEAAAAAgAAAAIAc+AwluYW1lAAFMYAAAAgcAAAQm5qQViXBvc3QAAU5oAAAAEwAAACD/bQBkcHJlcAABTnwAAAD3AAABSaJm+sl42g3QAwxYSwAF0Xt337dZ27Zt27YZ1zbCGlFtBrXtNqpt25hMcmKNrKDfJUkKORXUStlUXlY1tcfBZI0mayxZE8iaTNZUzcI5WoiLyVquNYraQNZWbcNdZO0hax9Zh8g6RtYJncTTOoPnyLqgK3idrNtk3dV9fKiP+Jmsr7bs6Ig/+if836kxrdNiRmfGrM6m6NzOI7uIi2JxF8cyLouVXBVruCbWcT1s5EbY1C2xndtjZ3fGru6KPd0Te7sv9nd/HOiBuNVbFb3NexR81ndkP/ADfOmX+Nqv8ZO/yEHBGEPEH8IP+FP4Bf8Kf+H/ISWmDqkxZ8iJeUIezBfyYcFQBDuELjgk3MDbcaocp8fFuDRuxM1xB+6KF/BKvILX4l28Hx/ik/gCXyXD5GRkMhLHJGNxfDIBJyVTcWZyGs8mz/Fl8gE/JZ/l73747jeZgqRfJeWV9buW0wpaSatotVab587uHLK+02At1hqt8dZvwgNpwQB42hSHA25EARRFz/u1rUFY27YV1mFtu2EV1l5HjWXUNpdQz5/riwDWRFKMaXZucSmaupHedjRNvQ1taNpr+jvRYArw/48CCEpdd1839m0NvZ24AgLGVKlgrjgioNpStTVmeJOP8IWl+lxxwx0PPPFCgxYdenzwxQ9/AggkiGBCCCWMcCKIJIpoYogljngSSCSJZFJIpYEmxphgkmnmWGCJdTbYZIttdthlj30OOOSIY0445YxzLrjkimtuuOWOex545IlnXnjljXc+JEyiJEbiJEGSJEOyJEcKpEiKpVKqZE0MBMGDcQQAAACw+2xd27bdjlDbtm3beiUNgdZAh1hxEiRJliJVmnQZMmXJliNXnnwFChUpVqJUmXIVKlWpVqNLjz4DhowYM2HKjDkLlqxYs2HLjj0Hjpw4c+7StVv3Hj179e7Tjz9BUYbh6SAAKACg6KuTbdtcoNmybWOEbGOE3BDxP138CCJFiREnQZIUaTJkyZGnQJESZSpUqVarXqNm/QYMGjJsxKhxEyZNmTZj1px5CxYtWbZi1Zp1GzZt2bZj1559Bw4dOXbi1JlzFy5duXbjzoMnL958+IqKjUqOyoxqi+qO6o+OjY4PkSH8n9CSFyJ8hagQIv4oJQPINqIwjs+hPbRb14ZlC6ltXS2rob337n3vCSoqAACGqGIOw8RwJgqIiDgQEcVwACAoCGpm5sCZAYAzAAXBQM3Z98/bsxgb9fPd3b3v7vN9///3Y/2ryES2/tM/DUs1E7nOVc9/TVWqqjl5uOucTja8jW800q/0RBRhX19utlWHIplsJmTufiZDRg0povN7X3S8tS+bfD2mSOdbA5mFpc7D8r6/vbbj71xXEh1XxpUPZB4MHr5/9KbWrQ1qSW1cT+rjer7r7SYylenjj1R9cvb0VBTPPqEH2eIrsz+VKb+lz48ba42Lxs2L73J68FY2g/bBxct3FB3eOTTBXrBH0VH36IafGJ5ryJ3HQZs7zuRUFLKp5oCqeLYz2nORBV2RAeOLbXFmPHGlr/XCeHrB9yViphfQyUKjsFxFsH4W27Gt7gj7qrOKTCzQz6FjHXPPHRcit8AZmfwdXN9wAOeZBecuDP87dEHnS0ZAT9jNGI4C4zG+XqxiPId7ZwWuLL8zfljaaTEftkj19KXtxu0Pq9QXBVXDPhlMyHP2ZIYsfJAt/CUzV4VOBOsqCuiDvdKxbLJKU1ZmAtCzdQnTQSMoAY9FjpzzFRmXBTiFAqgpWzp2gW9uE6j3v7BT8Jz/CDVEly5ohK0kI1NWYM4KuZlYDeuXmrEG7D8y0OuPu0ttI7iJ6ZcxYSdzt7HGt9tr/F8c1QOwJUoQBNGsmc+1bdu2bdu2bdu2bdu2jbu27e23ncEOqw6OBfxlwT+WCE4IHOGtv0hIMv4O2nr7piYTIcliRSQbuYlEQQoRg6IUIxYlrDiUtuJSlgrEo5KViCpWYqpRkyTUtlIwzErJJCsVM63UrGUjadjMVjKy3crCTnaRlT3sJTv7OUhODnOKPJyzinCBWxQlwCsq8MZqwEc+05BvfKcJPwXN5PU3LRVMwWijkApJW0VRNNopnuLRUamUhk5BitBVmZWZHsqqrPQ0T7LTy0QpQG9VUAX6qpIq0c9kqUJ/1VAtBmiABjJYgzWUobqiK4zQNV1npG7qJqMV0B3G6JleME6/9IuJLpQLwySXxqVhqkvv0jPNFXQFme4KuyLMCHKKWSZVT+aYVhOYa/7MYbOb5xay2y1zq9nvNrgdHDWNdnHORNrDeVNpHxdMpgNcdIfcaf6IRMBMusE9d8vd4r4LuAAPzKe7PDSfHhFk1BMem1PPeGJWveCpefWKZ2bWD567X+4XX7y8+Ort+GZeheK7D+PD8MPcCsdP8yoOv8yshMLMSqy/zK2k+tun9ln0j8/vCyuML+lLK6Kv4Csoim/omyqqb+lbK5bv4rsorh/khyueH+VnKslvispBSQgAAKLt7BvlGjXqNzIGcZBtN8w2PyHbdmfbtm1jcL5b/MHCr/xK8/3O77TAH/xBC/3FX7Ro4te0eOLXtNR/HazlDnW4VjnScVrrBCdqvZOdpo3Oca62Ot/52u5CF2qHi12mna50nfa6wQ067Ba36oi73KVj7vGgjnvEozqNQGeZwlRdZCYzdZnZzNEV5rJSt1nNan1lLdv0jX3sUwgnOadQLnBB0VzhqmK4wQ3FcYvbiucud5XIfe4riYc8VTLPea4MXvJKmbzhjbL5wCfl8IUvyucbP1TAL36pmD/8UQn/CFEpYYSphkgiVUsMCaojiSQ1k0KqWsgkU23kkKN2iihSB+WUq5MmmtRFCy3qZpzqoZ9+9Y63dv5o0aSccReMFmnBGLP2HZ5VlegLeH9lKi0TIwQUZAI62AsogjIcxIwgoiBij2Kbhgz9WG6zUOU+04s0BxF5HrAh1iMnhjQhRAYIEIfQ2wZSgBT66LrvDQ938Lm9nz/e/NZau3x7r12+vdcXcsNfU63JIJPC8Nf0UxSYJ9t1neWKy3S9tU20j7KSM6O2jnhmKkd2ZQazmMt67Rv5gk3q1VFWqiFqmx7DOCYwhaIoK13CZ9abiM4JnaN9UUZoG2VyYbg7uuKr49H1Pjc3bItuCTXRAAYyiGEM5+4QR/eF6uj+sD/K4/faZjJb21LreJ9l6vmmrZRllJtWYb2VHAs1iRStwt2JbNkh7E90kjn0irISN8lcOUI+wkimhLaJl/glv6ImLE/UheXJ7vy7cHfyOZ7nBV5kEpOZFbYlZzOHubzCn5nHq6EmOZ/XWMDrvMGbvMXbvMOSUJ18l6W8x/thf/IDPrT+j6znY/lP8hO5TOZbpoBCiillBWWUs5o1rGM9G/mCvV8dT56Qp/gy1Ljes1IZZHJuqE61oz3n0ZEL6BL2p64Jy1Pd6cG1XEdPrmcwt3MHU8LdqV/yinXPt+wCudDyi5QXK78hl351PGW/UoU+szhsS5Vo/4yVlJm3XFbIKnaZb7d5Ym016rWynkbl46adMO2kPCVDqEknSNKS1mSQFfan25JNR/VO4e70BWFburP8vsyRXWRXeaG8SP5AdpMXy0vkpfIyebm8Ql4pr5JXy2tkd9lDXit7+oxe3EAf+tKP/uQyiMHcwVCGMZx7uI8HyONhHuGxUJ1+gp/wM0YyitGMtU/jmchTrrmZtmGWbZhjuXksMM8i+QYFphebr5TysDxdQXVYHnWPrg8bo95hT3RDqI36hK1RhXpl2JhoH/YkeslcaqLWibqodbI7M8PWVOuwMZVBJp1DbSpHW1euiVqnutODa7mOnlzPYG7nDmaYdxZzKbSO9daxkS/YpK067Ek1hK3pMYxjAk+FjekpskAWhT3pEj4LtenyqHW6guqoddTR3iyxN3X2ZK09WWJPltiTukQvmRuW2Pq1tn5JKoNMctS7MoNZzKVQ+yZZHepsxdr0GMYxgafCkvQUWSCLQp2tqIu+F10RDka9wsHkH/gjf+Jl9oaDqSzakk0HzqcTS8PB9KM8TqHlB0ffjDKiFrSKsqJ+Uab74/5oAAMZxHAe8aT2ezmTZaykjGPucSk6kcNNjOARRjIpykhMZirTmB5luD/tT87nNRbwOvkUUEgxpaygjHJWs4Z1rGcjX7geX6GElZSzOcpIbWE7sXot9QTnX4IkrelIT3pxA33oSz/6k8t9PEAejzCHRbxhv/8husV5O4CBDGI4v2cmy1hJGcdCbSJFJ3K4iRE8wshQm3yV+bzGAl4nnwIKKaaUFZRRzmrWsI71bOQ/nsOvUMJKyomppZ7gnE2QpDUd6UkvbqAPfelHf3K5jwfI4xHmsIg37Fd2NMweZPvkN3iTt3ibdzjBKb70yQtYzGeWbEkGgxjMHQxlGMO5h4eZ5xOcl2GSb/BJiSm8xC/5lTZnvum2PPkH/sifeJm9PieLtmTTgfPpxFLrfZTH0bPeJL4ZGqIW3B8aozzyORqO+OZuTEwKDYnJTGUa00ODb8hG35CNqS4spIwKqtgcGlJb2E6NemNoTGfRlmzGMp6JFFPqs/pGP/D3UrpzLS/yO17mPUpclettzbdpx3l05AK+Tz9+bqty+REDGMgUfs1v+C2/4/f8M5+ynCLWUsEGKjnOSf5mDy7nJf5EPsup47Ctb0Er2nArt3E7Q7iTu7ibe7mfB3mIEfyZj+3bP9j72N7H9j6297G9j+19bO9jex9HH4ciPZChB2I9EOuBWA/EeiDWA7EeiPVArAdiPRDrgVgPxHog1gOxHoj1QKwHYj0Q64FYD8R6INYDsR6I9UCsB2I9EOuBWA/EeiDWA7EeiPVArAdiPRDrgVgPxHog1gOxHoj1QKwHYj0Q64FYD8R6INYDsR6I9UCsB2I9EOuBWA/EeiDWA7En0gt9A94YKnxvrI+WKr9PSdgVVYWKRCvfhN1lf/JChefBPcnneJ4XeJFJTGZmWJ/8UH7MJ77FcsL6VFemKM+Qv5Sz5OxQkZorP1QvUt6kvEu5QR5RP6580jdcKlSkO8nO5NCVi+jGJVzGFVzFNfRgTFifHscEpjDTvnRzDXeKMrkwrI6W8j4rQoO9W+267pR4iV/yq9DJHq5OPsfzvMCLTGIyH/Ixn4TVqSn8kg/ZxXFOhtXpTnQmh65cRDcu4TKu4CquoQczbUsiKvENnoxW+UY96snkE3f2LdEABjKIoc7VOxkWKqO75HBt94Wt7ho7ozx+rz6T2dqWyXxtn/pmLXCEC81f5D2hOByISsPh6LOwL1ppnjJWhd1RuWU+D3+JVocN0V/C5qjW/Iepp5EmjnDM/MflSU7xles+IhW2JL4hs0Olu9bORCf1HC7Vdh038kNu0jZMDuceHmSEtkcYGbYkX2U+r7GA11kcGt3bK5Nv8hZv8w5LwtbkuyzlPd4PO5MfkG+ZAgopppQVlFHOatawjvVs5AsafE4TRznGCZ9xii9DpfeDral2tOc8OnIBXcJO33ZbUvPcj+arLzDvQm2LlBcrvyFLTC81/TP1FXKlepl5yuXn6uuoUK9ip3KsfZ+sUa9VrqdROYQt6QRJ3IfT36VlqEy3Vs+QWWFnui3ZnG9aR+096cUN9KEv/ehPLoMsN5g7GMowhnMP95n+AHk8rP6IfMwT6BP8hJ8xklGMZqzPHc9E/rXPf5k5lpln2QWmL1J+gw+0f0Sx+Uqdo//a919V1IJbnJkDGMgghnNfOOQM3xLl8Xv1mczWtkw60s7qWldOG2d0dbRSWxmrQokz+pAzep8z9nAiRQdnWCeZw02M4BFGMilUJSYzlWlMD1XOxMPJ+bzGAl5nSTiUfJelvMf7zpoPyDetgEKKKWUFZZSzmjWsYz0b+SIcdlYdSrWjPefRkQvo4oi/Yvp85YXKi+QblGhbSZm2clkhq9gcqlJb2E6svUZbraynUTmEw+kESVqT5Si0JZuO6j3pxQ30oS/96E8u9/EAeTzCY+FQ+gl+ws8YyShGM9Y6xzOROeZdoG2RfINibaWO2Y2O+LyoBbeGA45wvSNcGuUxWzlfFrlv+cZ1VGsdzc6OZr0jWOpIzUtMZirTmB7mOSr1yXdZynu8H0odlVK9W59qR3vOoyMX0MW0+XKhXCTfoEy5gio2h3mpLWynRr0xlKazaEs2j4X69BP8hJ8xklGMZqzp45nIAvViWWp/+jm390UDGMgghvN7ZrIM53C0UpZxLOxLpOhEDjcxgkcYGfYlX2U+r7GA18mngEKKKWUFZZSzmjWsYz0b+SLsS71CCSspJ6aWekLYl06QpDUd6UkvbqAPfelHf3K5jwfI4xHmsIg37Nc3HMvqqM6xPRreSPT23D7K8U2obfR3lbe/Tz1tt4xacPbb363qg+QwSw+X95sjj7PfBPMjS4e66DN55q1wleXOvBlmh2pj4i3+G2+ILROTmco0prM+apWo5K/e/zd5Ht9si7d6m94ra0JBola5TjaZfkT5eGT8m++FumRm1CqZpdxB+Wrvwt1DwX/xjdOoUPJN3uJt3uH9qEXyA/6X3kY5YR2n+DIYwYpaGMEqSHWnB9dyHT25nl7e8vtzM7n8iFu4LWqVGmz67dzBEG1DuZNh3M8DPEgeo/gFoxkfjqQmMJF/5GljHs9b3wt4U04tsF0LbddiWaL+mVwpy7SVywpZxeaoZWoL24m112g78ybdqHz223TLUN38Rp0hs6IW6bZk8z/yhj3IMoO5g6EMYzj3cPbb98Pqj8ix1jueicxRn6e9+Y2cYm2llIeC9BojJGujVukK5W1yJ9XK9dqbOGLc5oQ8GbVqvgqcZ5H+jB7iIEfD4kQP59XNaEtdRDcuYRVHLZumzLytLNlgyQZLNiR6cDPqqYvoxiWs4mhoSKcpM2+OO29T85J50ptRlC+twd226ey1uKs2uas2pbpwkaeTblzCQvUyrDlVIauooZEzn5QVmtJtyWYs45lIMaV4f43+ve8EdwCu9x7SO2zwPtLU/D4yNKyL7uQuvMHY2kNRnsynUFuF+SupMv82PbHTM0Vs+VrTDpr3sKynkSaOcDSURcflSU7xVViXiPgG3wl7jZlt0ANxonPYnbhUW/fm3jiUuE65V6hw7ypJ3Kj8Q/qbdrNpudpv8ew7kGHah3MPD5JnnofM86j1PuZO8rg7+ZPmHxXKfKetSkxmKtOYHlY1v0ctDuv0epz8gAblJo5yLKwzhleRyiAT71iOSpzqKmfQ/H6l9+fKeeZdaNoHzpZC8xZpL9W2gjLtqzxVfK68jgr1TZapkpvDqtQWtrPTtH1Uhw2ObNz8jtYojzQf4UPplCOYlt8O69Lf5RxnZJY3y3NlW9lOZsv2zc+l65rfz8aqj5Pj5QQ5UT7lXe8Z8/xr80zR9rL8gI8oMK0obEgXm69Eljr23ZwpnzojnA3kU6FeSezoHg3bHck6R/GQo1jjqH2a6K0tV94WDjQfhVFhhx4+pIcP6dFPUxlk0kV9IYXKZbKCKmpotKdZtCWbsYxnIk+FT9MFFCuX2p6+tjB2Lu9zLjdEfeSDoT6q0FZJlbZt4aDzdX8Uqx807WhY69zb53xzDYd6Wx3b6r84x1yJ6rnqvhkTA8nT9pC2R83/uD190rRRYa1zZ5+9iVMZZJKj3pUZzGK2K3Wu/MAobKHpReqrPANt0lZNA0e0HQ31jq0rWJ5jlPZc2tE+7HcM96XHMYGnHJNntE1RLlAukiX29eXowigj+oG9u5TuXMv1YUfUmz5he/Si+u94maXmfU++LytMX6+8QblSeVOUFW1Vbr6y1euMAjeonwg7Emmjud/WG61kO9le23myIxfwfXpp6ydzpSs0MUAOlLfKwXKIZYdyr/Pi0bBdb25L/Fj955Z5Uv0Xenq0+hijxr4vkj9iAAP5d9qe43le4EUmMZkppv+a3/BbfsfvmRm2Jz80/WM+4Z+1fcpyilhLBRuo5Dgn+VvY78juSGWQSU7YnurK5dqnGGl+Sc5Q/6Xyn5RnKc/lQ/V89eUUWm6Ttl3aqpXrtB2mQdtxbSejjHQLR7MVbXDVpjuEHelO2juTQ1cuohuXcBlXcBXX0INbLXsbtzOEO7mLu7mX+3mQhxjBmLA9PY4JPBV2NN8JnpVT1Gda35/N8zEF2ooocR5cG50XGpxR9c6opuhGvL1EFeobwpGoUlZp26q8LTQ6c+qdHU2J7vRS7i9z5RB3gjzlRx3lx/mx+pNydDjiSB3W4/WpDDLJUe/KDGbRfJ+V3mlThaYXqW9Sr5YN0j0yneIc77vn0o4x3oTGMYGnXFtTZIG0rL1qin7uumlz+s7BjZ4J+sil2t6nQnmDtkq5yXVQpbyVbVEL18feKNa+z1rqosyowfxHXYknnMfpqE2iFe1DnPAb1ek7iztHf+XTd5W9rgt3FnmrvC3sSQwxbahl8uSj5nmcHyufvtPsS4xWHhO1Sf47nuN5XuBFJjGZmb69PpQf80nU5ut3JroyRfsM+Us5S872vDhXegZ27rY5fZfStknuUq+WDXh+cs62cc62Sac8S53juetc2tE+7HXe7nfetkl3JoeuXEQ3LuEyruAqrqEHY9zBxjGB03e2vc5DdzflmVGb03c4SvTz1Y7SbufdXkdoT1ShvEG5Um4Kxk6Vt7ItHIgavH2k6R726vndif4yVw6RQ7XnyR/zpF4fLceEaj23R2/tTmWQSY56V2Ywi9lhr17a49w7oId2p4rUN6k3cMRWpzgnHEifSzvGhD3pcUzgqbDbHu2xN7ujrvZil72wB3KDrJSb3GurlLdiD6I62eB7NE33sMde7Er0l7lyiByqPU/+mNGMCTW2flcqg0xmn9lS5aLmLTS6y1lbaKv8N4jPzrZFNfq0MaqQldbcC78f65NGa61JZZBJjnpXZjCLuRRq3yQbgmuNcUzgKb8DT5EF1tnLU+Wh6E7u4kF3jUJZi7fT6KD6YeV6GmniCEdNOy5PcoqvPFtEfIPvhCbPGfWJS5V7GFO6TvbmRn7IzdqGyeHcw4M8pM24SXIxDTRxlGOeM+ZRygpWuZN8Ltexk30cdddI823PGt/lfP41L/MBH9m+Lmf9snQkyiOfo6HJ1vp1id6M4r/8K9MRT0ZHUl1YSBkVVPG1X5nUG8ORdBZtyWYs45lIMaU+97tRXZTl0+uiE/zNeeOX6sQAbmWUp8QOPGvaP/5nI4HN/xsjz4wALmMlZZwZ4ct2jpzPf22Ub7NpW9kbDiRq5RHn0/fowNX8F0b8/kv/r/K/Otr3tf896UV/biaXH3ELQxjKnQzjfh7gQfIYxS8YzSvOigVyMUYGT/8fiSwnppZ6zh79a/7fEOn6+R8Z+fvv/L/G30cFm/9fQ85hnvKZEb81yvU0Yf+j3cZ3WkUtsHZHeUk0gIHcqm2QNALtSC/5+xiP8kyW0TzGI1eENxz95VGZ8udho2t2sXvTO86EJYkU6fDO6V8ijPec7zzrpK2z8ZwceRNDTR8hH+Ex8zzBSOUx2icZ75nMVKYxnf/T40CznA2zmcNcXuHPzONV/6Uxn9dYwOv8l379ODNG9JFl/oll5Ju3gEKKKWUFZZSzmjWsYz0b+YKzf+n4lzdetKT5V5Xm8SLpinO2L2n+NWWlbB4zkv9pzMgyW9jO7uYrYcnpcSNZT6PyCe2nCP6LJUGS5l9SZIb82viRtgucyd+nCxfyAy7mUi7nSq6mO9fS0zK9uIE+9KUf/cnlv/mri+kPkEfzry7y7PGmWcFVpm2eaYvkG/yvjjm1br4je5OKjroa9UoiEbVsfqPqrTwAvyg3vxmNUvb2k+7g05817+DoFmOrAxjIIIbze2ayjJWUURf19gnZPmF3dEz9RDiWSDV/Snaik8yht2v0JjnAtFs9FQ01bYT6I4xkVNjt07OTr0Ytk/N5jQW8Tj4FFFJMKSsoo5zVrGEd69nIF8YTX6GElZQTU0s9IWqZTpCkNR3CsXRH2ZNe3EAf+tKP/uRyHw+QxyM8a7k5chFv2Pczo22HozyZT1041Py04VklkaZ51E1f38xQ9YekZ5ivjb79fcTt8H9hxM1TAf+dEbfou54MKqMW7pGTmMxUpjHddbWZLWw3z7cduU88L6zxdLPZkRriCM1NPGa7nggNjsxtzes6Yl2eIpjMVKYxPXhSYAvbzdPt9P/NM4Rh4bnonvDr6AF33+zwXKIw/Nqd7rnkm7zF27zDCU7xZXgu9Y3w69S3+A4taMUC7Yv5jNXh167k59IZDGIwdzCUYQznHh5mHm9FndPv8C6f2pZzEuvDwcRG2+7tMfFXe9jEcU9DGWS6f2d54rnNyMnT8jn79bzyC0ZF1rKNnRg9SZ8MB5vXttfa6q2txtoOWNsBaztgbQesba+1HbC2vdZ2wNrqrW2vte1Nr2UbO/kPVJoDcCVBEIZ7zrZt27Zt2yycbfuucLZtxrZPsc2XVMrZua/25RRnZ3q6f+xDz+TrVFZLlKLWushHXinCXx9VON5RAoNSTDgFIoPRdrHOpquRKTXlE11Qe2Y485+rVGb3JcbcE/VjNX/qC+U9YppOReEfqg/fY3QI7/u+E+1GLyRZLZHyapl5/303eyDhVJ/IvlFnYpSqpy3Eh+oXksTvdNbO1M8lG88U0DNRdDdL6hhm+asOOlJ14h7vxf+D+GbXjxxhaqG2U6uZu47ailAF7tGv+CtTexGXJaUlSbtwPcDsgY2monHMXkI/lbNTvFe6RWVB0pET0+tlrj4l6wscZJexW/YbtnJEt5XjeiwcLIaDs+KgK4qLkcKOYkPxMBLhYoT4GpniZxSIvxEKjingKA4fdmAZLZmGAZaqZF8FngqidVUwlQRTBe6GytTXjzviGdiqg60f2CpQ5RrwjQZfOSodqMYbFnh0VAuNbO6YztwxC8FbBrzFqbwTnH6TBlJGx5lnHivoAPPc4xidBqKfMovfnHeU9TC8S/vJfn0LVE6gcgRVoNgybj3f4S6OrOCMKi6w707nzEN/AWEqavugdhhqe6jTqBuufVDQBwX98EdT7UKWbLiLlius9AlffIZRq1c8hf4CCrjBgTfYbqLAZLDtBJs3+kWCLRc1NqOGN2pMBNMpXOlHhnwpSVQOTFlgKY9oCwzkwUAqs0KkKCizyJvG/Bx0tu4LfiImjZgcYizEpBd2aTOsvlCVpSx5cBuRTlTrRtw7FPtB3Gfi3qBKMLGexN6iUlysE1jDVy3ne732gfFsOEimwiQ4SJHirHSPGqZx1cJVC1fzpBTIq0umVAdxAuskgjgBpPEgjaOCBMGt6EpVzJ0lFdDmJlrki6uOgvtE3PQIPN44PP6/Xc9Xf3Y9YUAqEttF5sJ2Vymmf6L6e+rxkPXGJxRvxarjUfwMit8G7QsyeKH2HlReicpHybSctW+g8hpU3ojKC8h8X5JYmTPE+PgWeTfh433kfoOPd+Pjffh4Oz7eDWN7YewSjIXh4/34+BI+3k2Nb/ExDOpdIL+C1utgMgk0a2HzAmw+x8c78XFFsJwvfGz4DH+f4e8z2lvP8FYGUZzgYUZDGQ1lNJTRMYzDlrlX6wE37NNSpye1WMzYisSWIzad2AqmXr8fdUrATyJc4GoU4XU4I+mMZBK3HxfThxNeEYsrq4byP91i9IoRxdx0KYbSHvyVS1QuUblc/0VrPcDKcgVwGP9qt7tbhg1qBLUdNqhjNahtB7Vt27ZtPV/bZpz93sncyWTuuyeLh98k/7GPQjtPSLZi/S22ZEPY+u0dz2Y3diWvRMpue0hRZL5ifps99rKAw6TsdZmjJBwCB8nY6ZPgrEMs4Cw4EzJZ9l/HvckXIdiSwEnwdvArf/Y3ikAJfIPAP7yPwFYWcJKME6S82uHY9vr5OFU5OpeOk7AP2I4oJypcJfZ2EX5D3ZyNXdVuJ8k4RQ2cJsKpWs90Msu4bcj4iCuoyKFIOa2DfXY6aK+DBPbbQM38HnyJlN/ZbUPIRl/0M/9yxOcpUvItf7XLCbYi4SBFcBrcFxynBP5Nwuedpi4OOUbCERbwGXt8KOQLfuB9fuHnQIGC73m3P+fqy0dsA076l7t5o6MU/NqdwOvBgpO1/G1Hcl/ie6JsSGtAmmvGYfuSHGUrcCRrubaiTvbZDw47nJaCTirK2sytwcXgIiqwG+rnSJprzNHc9RqAEjEFMt5SsQaH9Epnyeqqv5KwE+wj4x/lr21kHg+pv9WqzO8IXMq24JTX+Wd51GJYS9kE5ffBSzzaw0l5Mjk+AP4CjvgTeLv/kuP7+TZp3fw7G4iwcy4ddZnt9kNa6v4iKv/v/Jkq7PUPqnBg1ZbfpYYlF9vjJyEbnSXhxxDnzqRsrlSfWWtsJcJrnCXKRiooz/rO/B7c7/1jfhn1dwL7630Pz6AqT/Ab9w95oke5D3gpsEmYcHdvdREpz2UjAh8sX+s2yTGUzwS3pC71t6OOV+wRPvYrolwGfuOgT/oN+IoPMKcUJlxMRKjfF5hezztyY9D1eXIlB/cAZdcWBVG0zr7Pr23bsW3btp1vDOvbtm2bsW3btlVdo4Ids1d7IsABUc4hgTMkcR5KqeL4aBs0RBhN0Zpf1wldkIluXI5shFypCHkYzBVhOFeMkRiNEjzFlctDqMCP+IU/079cLczlamMxV0c6Tl1s5upjG9cAO7ALDbEHh2junOBa4xTXBpe5trjBtcMt3EZ753N+dJSE0FkSQhdJCF1lIPSQgdBbBkI/GQj9ZSAMkIEw0HEY7DgMkYEwVAbCMBoIT2Gke849jwkyECZJP5gs/WCK9INp0g9mSj+YJf3gbukH90g/uFf6wX3SDx6QfvAQ9YNP8bDEg/cpHizAp5INfpNsMEeywXzJBgskGyyUbLCI9s5BLJZvsES+wVL5BsvkGyyXb7BCvsFK+Qbb5Btsl2+wQ77BTvkGu+Qb7KbNk4I99HnSsJdGTwb20enJwn5aPTk4QK8nDwdlIByigVCFw9XuAc5Uuwc0E+ge4LbcA5N74Mk9CMk9iMo9iJF7kCT3oEjuQbHcgxK5B6VyD8roHvzpKiQe1Jd40IjiwQrXQtZBe1kHHWUddJJ10FnWQXdZB31lHfSjdXDdDZByMEbKwTgpB5OkHEyRcjBVysFdUg7ekHLwppSDz33jfePdF76JvonuS4kHX0k8+EHiwY8SD36WePCLxIPfJB78LvHgD4kH/0o8+E/iwRyJB3MlHiyQeLBQ4sESiQdLJR4sk3iwVuLBOt9cigfrKR4sd1tlHeyUdbBL1sFuWQd7ZB3slXWwT9bBflkHB2DufgS4TES5TCRwhUjiClHKGcq4HJRzyajgHCo5P2pzEdThoqjLZaAB59CQS0NTLg7NuAiac7lowWWjJUcpgYtBay4RnbgAOnNBdOHS0Y0LoSfnQz/056cDOA8DuaBakKoWhDGSS8EoLozRXAKe4oLqgsOPXBF+4gw/cw6/cKZShDGX86kUQZWiQI1Iwi6uFAc4/o/lClSKLJWCJgIXVCnycYvLx20uqF7kqxf56oWxFxnwXKbLRK7LYjvCbEdtfs86rg6KXF12JIsdaYAk19A1RAptrkaIqilRNSXKmnTgt3ZkU1LUEceOjOSPGuVG8etHsykpclUy3WPuMRRKV8l0T7mneLMyKFRlilWZWFZmD0rcXrYmj605jnh3wp3g1/M1jrzZHeSpO3nqTqy6E6/uJKs7Tt1x6k4cu/MojDbYY0imD/YU/DTBXoGjB/YGItRY+Nobe4smS8A+tA+RLpklxE59BZ99zVp5rNWvCFMN+w1mv9vvCNAP+4P3n/Yn77/sL95/29+8/7F/+Kv8a//y56Hnwvt/+583VRfec20ub9ouvOfbfN4UXuDYwUXw22JbjBAlsiW8l9pS3stsGe/ltpz3ClvBe6Wt5L3KVvFebat5b7Wt8KmSEVUyqkpmqJIZqmRGdSX56Tmj/GUX7AI/vWSX+ekVuwJnV+0qPHpm13hft+u8b9gN3jdZVU9VTVVVU1XVVFU1TlWNU1XjVNWIqhpRVSOqakRVjaiqEVU1m1UtQoxX7BUjTBethHepV4pEr8wrQ0K1OMO7wqvgTXeGdxUrnMAK81/Zq+fVQ7FXn0WOV5Fjq4vMm0XmPcmbhDxvsjcNJXcYKAfkCIAoiP7dF6cU28lRY9s3iG07KcS2ba+6MJ7GoFEua0S5rPU55JiTXHLNnwIKzEEhheItoUTjpZRaImWUabaccjFWUWWh1FKrlXXUWTT11MtjAw3a1UijhdNMs9pKefNDKW+glJcjpbxBK61Ca6PN0umiS9676RFmL72WRR96RfTTL94BBrRmkEGtH2VUjOOMi3ECvRYmmRTvFFNinGbaAphhxoKYY85gHqUBCyxYDIssin2JJYtkGb0WVlixeNZY0/g665bAJpsqt9lWucuu9O+xp9l9DiyOY45VnnIqR2ecSeE552K84ELarrgS5h13lsQ999r1wosUvvIq9jfehPbOu8Y/+ZTaL76k5Icf4fzyK5w//tT+519tDx5hevFakJ/Dz6kSPyzcz8/HYF0rNQAFUBB9wAIDpGAgSIUHd+KuTdzzG9H/Z5s7p73dQohyhO1FhEjY4Zhj94STsM8ppyFGlGg44Iwzfc65vuBCX3Kpr7gK21xzHfa44UbfcqvvuNP33OsHHnSMmH7kUT/xpJ951i+86Fde9Rtv+p13/cGH/uRTf/Glv/nWP/zoX371H386TlwnSOgkybBLipQf06R1hozOktU5cjpPXhco6CJFXaKky5R1hYquUtU1arpOXTdo6CbNsEWLVtihTVt36OguXd2jp/v09YCBHjLUI0Z6zFhPmOgpUz1jpq0E10oIh1gJ7px5iLBgEQ5YstQrVnrNWm/Y6H8G6yGhAigAo/D/6mTb3mWuTWRMMkZ51LPW07xzbcw+DZFhttjKOttsZx4lETjgIKsccui4nsgAesJdxxwHTjhJB6fobs44819XXKXANdfpRGFkiltus8gdd+nhnntn1YblCy+BV14zgOaw1ByZ5Z33wCefgS++XPnNd6b54Sc9aJFMoUUyTJGivytRyhJlyv6iQsV2lartGrUs0KCRMZo0M0qLVgq0aWcE7ZIhtItt7ZJltEs20C62tYvj2sU12iUbKfjDv//a6gLHdSCIoujp7sQwcTIUHob9b/FD1CrJ8uCH+3SN5TLb1gAxxdGDI5+jQYYYvwDI1QsLZ+5sXRpcQ9AinUIiKIqZImGFuR4bvXP/ivzp+jSamvsOjawRIKEHFAHStL+F7IAF4BIcPINHUyjYoChulFNIiqc6TamSTjWQATSmZDN3ehlZivEYijGXNihgAUqVLJ3WL/DoyZiDG5QQoNSeSRK1RMfY2mc8eMDa2tG6joGjo//Pyufs3HrFlb17dNVgPG+psxRgr6tj4NZn3MZ2O7f2Ap3v0GHpc7Icw//Jg0AzSjYlR85qBu0oKQJQzCLzml6v0YZZGultp3Xv8uI9SlhkszDAhdXEBeGZ+ZtuMegNrp2HkAEsR+lM6SJXNTu1usa02sdEDe5r2ONKxKudHaABZEPMcy2QweASg4SCOWbowdzMfHpnPGuY9MoWLrVS/OV6G0mxAhS9LeGgt7YGaxSNFiQF3Oml6J8MelzaEM8fkJCkug4K8ZSk0xie9eGjJxQpen1V0ifGX+YDU1jn41k01aAPxT+GYsog8GCKuNokiOvDnNE1nRBXFhBv2Jk7/ckt9e1ZAjo7LD/4K7AzYlLfgc7erdrzJy9ACPh42pTQAUQDURgH8P9b17bW2r1722obMgRC1qoFYKqJtsZMGGjd2qTbNttCQAgDMJDAQGASMhAIJJAQCCQJDCQE6/MJg8ac+7173/3vu8+DAOASB7Y2tM1EMouQeVq3ECrVD48RsvLNCrahAcBgAAVAwIYJqjjhxgw80CFhQMELH/yYxRyW4IjntsJ438hkyUQmHkYulU6G0duN74XRyqRT9JzN7NBb7usd6uv4vzNnfUNZO2WnxkpPj5V2jUwPTz05YuqAGW2YaJtmuYaLgnVUQqdQqZZxVaznTXSpkEePvWMfrMpJGU9W1bTwwr6yb1Su47NKC/o1El+NslnDT6MRWRYgo8JOrgg3uSoUuSYCZEzMk+tioUlfiUWeGwBsdGm8c7EBcoJnDvJ+itT4jOnmPK8Q8LMOdpK1s0FWsV5WsNOsm51hPazOStZgfQghpkUcfWfH+ahX9HP9Wr/XP6SUSbkvm7IlL+Wt/DZ8RtHoKo+y1Jm6Uc9//3HilyB4sI4AgAIA1vxp+lht0k3qFWvrbNtGEpYHS7W48OHdm1cvnj159OA+zuI0TuI4DlVVlJUUFeTlZGWkpSQl/Pvz68e3L5/qGnEVN3Edt3EZd3GuqaWto6unb2BoZGxiamZuYWllbU8QHN1ABAUAADu9BwgIILCI/XfyQ7RP9PqJwou/IJZIZXKF0qVSa7Th1ukNRpPZYrXZnY6PIHhAbgAAAAB2t6zvmW3bNmvbbt/dJqZMmzFrzrwFi5YsW7FqzboNm7Zs27Frz74Dh44cO3HqzLkLl65cu3Hrzr0Hj548e/HqzbsPn758+/Hrb3LkX1BIWERUTFxCUkpaRlZOXkExMKGkrKqipq6hqaWto6unb2AYGBMEDwYMBAEAwIpc99+rtm3b+iQW4tIysnLyCopKyiqqauoamlraOrp6+gaGRsYmpmbm8b+FpZW1ja2dvYOjk7OLq1tIBiGElLunl09ESj01iHkGQBSed+bb2GYd26ptWzfVbWzbtm3bdta2bdverdv8h/MctrHyrBzWYxObujb1YJBdbLbSHVqjDdqiHdqjAzqiEzqjC7qiG7qjB3qiF3qjD/qiH/pjAAZiEAZjCIZiGJ7HC3gRv+A3zMAszMZiLMMKrMIJnMQpnMYZnMU5nMcFXIQzXOAKN7jDA57wgjd84As/+CMAgQhCMEIQijCEIwKRiDK9TD8zwAwyQ8ww84p5zbxh3jHvmffN1+Ybs85sMTvNHk7kJE7hNE7nDM7kLM7mHM7lPM7nAi7kIi7mEi7lMi7nCq7kKq7mGq7lOq7nBp7leV7kZV7ldd7kbd7lfT6kLe3pSGe60p2e9KYv/RnIYIYwjBGMYgzjmMAkpjCNmcxmLvMFUZZqqJbqqJ4aqJGaqJlaqJXaqJ2e0FN6Rs+pgzqpi7qph+ZqnuZrgRZqkRZrqZZpuVZopVZptdZordZpvTZoozZps7boiI7qmI7rhE7qlE7rjM7qnM7rgi7qki7riq7qmq7rhm7KRW7ykJfilahkq6ZV32pqTbFmWnNtatrUriLfFzEc8X+M82eOUu9i4+plQkqVF5dbLL20XhNreZSKt3xNokksLrhMfnZxr+XiTQFR0m2ylfbn8que4k8v0JKtOfZ/u5/5X+Q/tvs/qve0fEqUl+oufUB0ieakYsc0VnpV88Xiq7tmqwrZLarYjkEdvIE38Rbexjt4F+/hfXyAD/ERPsYn+BSf4XN8gS/xFb7GN/gW3+F7/IAfMQdzMQ8LsBCLsATLsRKrcQmXcQVXcQ3XcQM3cQu3cQd3cQ/38QAP8Qi2sIM9ohGDWMQhHglIRBKSkYJUpCEdGchEFrKRg1zkIR8FBsYYGhnL2JgapqbpbfqbgWawGWqeN6+a182b5l3zgfmWkzmVG7mJm7mFW7mN27mDO7mLu7mHe7mP+3mAB3mIh3mER3mMx3mCJ3mKp3mG53iBl3iF13iDt3iH9/iAj2hHBzrRhW70oBd96McABjGU4YxkNGMZz0QmM5XpzGIO81ggI8lGNVVbdVVfDdVYTdVcLdVabdVeT+ppPauO6qyu6q6e2qpt2q4d2qXd2qO92qf9OqCDOqTDuqXbuqO7uqf7eqCHeiRb2cleDnKUk5zlKnd5ylsJSlKKZaxaVgOrmVXYhjUASbYEwex6/Rbz92zbtu3l2bZt27Zt27ZtX+DbCnz2y5iY7bndGPVUZWflq87ZqdnxeoKeome4Ya6Pc0MIUqIgaqI1BmM2HP8MobAQihOJMrcYKz7Sisda8Y7xcflkxevHx537Vry4FX9oxdPHx3UDiLntxF5A5Vb54Mb/vTHYEOkkHaSzdJGObhJOQcaT8sl04KHZqf1IFVISZTEYW7EfJ42//lZJVXrjh65qvFqoTqs/BZJTKkuszDa+OC4f5Vcnt+l8eSfSfNqmOwud1c5Rw/lR+3RlXVf31JP1Un3dfNZ+dTO7Rd3ybk032m3uTnR3u0/df0PyGx1JOUllR14UlokQ7NJZIdgnE7yr0dkh2COTIditV0GwFwpab/cQ3krOejsghidC74ao03onc8G8M8lblrwzyFve49UVybuGvEKOZR5SnntMrLQ3Eba5ZKtPtjlkq0uVr8m2jmwOwrw9ej/5vqKyg+TyZ+QbZr5j5jAzVOB8JPtRRlxEICXSIytyyy/E/0b8cS+rV3i1ZYFXFaFIDuJQEMVRVp+Eg90Gv4hskdS6kFqjqXUJtW4IdPQU+6jhMzxpkVn+9d47YLUzrLbJvi5HM+9j/pylPikjFxj5XNMlv6bl1NSZmpZRU1dPk5OamrZYp3GVlS978UDlZ9x93cs4T+h4u0urmB3I7CtyD+ZJDyWHUGMeYm4mcrJrmMlGZau5Owe7tY7KVge6tSPgv3OW//bw2nclwruFvOXIu5m8FaiqEnnXBnjZGa72eViuGtiu0Qfogq9Z6ZCdkW+Z+Z6ZI9aJfGLtYwn89CvxvxN/gn1eST/tZqeC9e8lRxT176H+GPZlP/VvDOg//ZmL/qNLFGucZY3NQS5ymf+C+fOW5mSMXEykk4eopAuVHKSSbvROGirZannnGutdCfLOc+6+QXc8TeCdo8wOYvY1uYfwlIZZ3slLzC34T8cp5L3nqkhgVTiwKsqVXWMHu76d7PXYwzdUvp7KLaRuyUodeRWtiW9LNe2pxka2IrITkW2IbEdkhwTI7kT2J7Inkb2J7JsA2YPIAUT2IrIPkf2IVNB6m9/5KZAHBQAUQhG4KIbSCENZVEJS/jZJjTpoYLwQhRhkQhyaGvbmaIPcnHkKYpK5FcYUcyuC6eZWFLPMrRjmmVtxrMQalMBDcysT+DZTCIFAQcy8Hx78HWem7DA33PVxEjM4OS1n5K7cM1Nmy6D9yrupMdCBWHU/i3GbOg8HkYhRnmNjLExmC3OBmIbqHAQNyRdpIQuabIS56uxQ0OoMBJFcXYKgJVcXwRVZWmCZrU69J19UUGwAY2eCYn8wVtbqQWaIFJYiVsQHkaJSDAqCYoizMlkRIXWkntSV+tJAekhP6SW9pY/0lX5QiOCv0EIohTL+WTYKnFwthgg40l8GyABeRwNESW8rWxSppbW0l5bSTFpIc2kjraSdtJU4iZQoiZYYiUVGZJYm0g0CjdTIAkh36Q6fDJSB+ELP00sREcyol8pAE5+vF+iFepF014v1EsMVKzGGM84wZZQmhjMSYm5kNNXbwxfMYrS0s5S1MqpaI5P9a5y/xVNDITU1BhRLnKdXutsqPA1GabBOE43HGJ1L+L+q9KZCJnJmMRXS6KV0U0ZzAzKbmzKV4iCmRhOEUXm4qdYNqYLOfRIUlImF+GOOfxrsCxCXHgJHLVVLAXVN3YCSbJIH2lJYGT51Q11X10wmu+SQnJJLckseC5ERPqmK0RiCoVJNqksNqSm1pDYECuzr/zt29/Z42jWFtwFAUAAF7+cx/B10Kp2SXm8UtVZewSo2MIicXrhD6VJUGDCNCUEEr9VMIQHJnwV5ZPgc8ABJmibEcGyWHQrXSDxiBNCRmfBX1QmSDQ5nAAB42pzPA7TdQBCA4Zndea7NdG9q27Zt27Zt27Zt27ab5LG2+3LTOac25pwvxv4AID+Kw1v8uPcF8BwG5NkKAJ5DH/CEDnwkICz0gjmwAlbCbjgEpyEYHoEbw2NETIiJMQ2Wx9rYGHthbxyN43AursHH6IjYIrOoKnaIw+KouCmeSZRS+sjwMr4cJkfIcXKuXCO3yqPylDwnL1FCSk0FqTTVo9bUlQbRbFpKa2kbnaLLZNELD/SI4BFZQy23NlB7oj3T3sQrqXyUn4qooipN6SqxSqPSq2wqhyqgOqjeaoFaplaotWqb2unycEV2RXPprkSuVK5autA99fB6JD2WrunJ9SJ6Hb1hwmMPxcv978jtOLbjAHysVlw9l6tXwR44DGcgBB6DgxEwEibCJJgWK2AdbPKxeg6u5uq3IsbH6kNcfYWr4XP1AK4eJcfL+XKt3CaPybNcDZSI0lAhKkP1qQ11oyE0h5bROtpOp+kK+dNLD+ERUQMtl9ZHm6M91Z5zNShfFUFFVtGVUgm5Op3K+rl6vlqklnP1VrXjm+rqH6sjflXdgKuRq5GrQ7kaAZyXTiBecfbhCWcvAO5m29gmtoGtY8vYCiea4+V4uF+77+FD4HE3dBfA+PYV+7J91N5gL7EX2/PsmfYwAMft2MBj+/LxrVB36DuA0G1sHVvM5rKpbCzfT8IS8nEtgCD/oHlB5YN6BYYE9QjqabWz2lutAawWVnOrqVU3YKlVNWCuVcZyWdEBzKfsgRlsBpmzzLHmaHOAMcHsapY0lt1aYcwyZhqTjPHGYKO5UcEoe/1B5M2+rzy3i/14GBC+n0DGRRiDpftKB/h6+Bx7wS8GW3x8Ygxvl3y8tgdAeLM0rByrx0axaWwXO8X84Scjzv306r4P/mdEb/GeIHjKQgAAoCj4zt11tm3Xf9aOsm3O2HHgxIVbDkzEiJMgSYq0nHKRIUuOPAW55aFIiTIVqtTklY86DZq0aNORXwG69OgzYKggRoUUxqwII8ZMmDJjrigLlqxYs2HLjr1iinPgyIkzF67clFCSOw+evHjzUUrpP0FwrU4BAABQ+Hz3bDoeQ7whm9p0d076tub2xaDbgkG31f9bZLFlllthZaAuUB9oCIxaZbU11lpgoSWWMse8jSzYZLMtLLJkq222s2yHnQTtspuQPYTtJWKf/UQdIEbcQYccdsRRxxx3goRTTpN0khRpMmTJkWfXGfbY985ZDpzj0HkXXHSJI445Mei9IU4Nc2bEKOfGuOCSK+Muc+2Kq6657oabbnHDrdvu8MgTz7yY4JU33k3ywSdffJvix7QZfs3yZ84H8/8EwbVBAwAARNH83GET4D3uNgTuzghQ4Zbg0lOxEcSWiLvUeY+g/pD+FVFUMUwLrYorqQRttNPhkFJK00kX3fQoo6zyyjHAIEMM+5ERRhljnAmH/cQkU0wzo4KKzDLHPAt+9otKKvvCl6qo6le/+YFFlnzne9VUV4NlVlhljXU22GTLV75mmx12jQMOWrZb3Moe+77xrXvdxwGHHHHsd39w4n5/csoZIcL+9hc/Puc30Gy6HoD0aMIoCndPf7Ft27Zt20Yptm3b2Y1t27Zt28aeqjs/turJeXNrNlxGNLxE2GX08v3/70jw/ieSzyEp+iGAIPF60GCsQgusFq8nXYO9aI99OMzenx7xDcRRnGUfRs+J15uexxXu8fQqrmEQruM2+1R6B3cxBPfwmH0WfeIbhqd4yx5M3/mG4z2+sK+gX/ENI/Adv9nX0T++UfhrjI3CvplGFa8XjSZmNI2OVOxHaGoxY2ga8frQtMjKfYNmEzOWZkce9oc0r5hxNB+Ksj+nxVCcfTwtgXLs72l5VGCfSCuiGvs3Wh012CfTmmjC/oc2RTNjXETaHK24o9LWaMMzfWlb9GOPSfuLmUrHi5lGJ4mZToMQzD2DrsU67ln0nbg79Id4Q+lP8YLoL/zlmQz8PC7icYen8ZGAOzLNI2YOrSdmLt0l7i49gqPs8+hxMUH0Gm5zB9OPYpbyOgaWH5ZRJ2YFDSdmJY0iZhVNIWY1HYKh3GvosP8ZLmYdHYFR/jbGNwrjMAmjMRlTeH49nYrpmIAZYjbSmZiFyZgtZhOdg7mYinliNtP5vukIErOFBvtmYKGYrXQRFmMmlojZRpf6ZmMZlrNvpyuwDnOwHmxmJ93hW4idYg7RXdiNxdgj5jDd61uEfTjCDnfUtxTHcJz9ND2BM1iG87jAfpZeEcMWMOIeUStuNfXEXKBO3BoaEHORhkJY9rU0HCKwX6IRxW2ikcQ9ppHFbaZRxFylUcVtodHEXKPREYN9K40p5jqNJW47jY247DdoPHE7aHxxG2kCMbdpQiRn30lTICX7HZpK3AGaGlnY79Gs4g7SbMjJ/oLmEneI5kZe9jc0n7jDND8Ksb+nhcUdoUXEfKZFUYz9KC0u5gstIe44LSnmKy0l7gQtjSrs32hVcU9oNXEnaXWxHq0h7hStKdbRWqjLfprWQwP2AG0o7jxtJO4pbSzuAm2CZjwfhjb3DUQLtGcPTzugI88/o53QlT0O7Ybu7C9oD3GvaU9xr2gvDOP5BHQERnOnpWN8AzAWE9kz0kmYjEGYguns2egM8P7q3tBZmMuei87DfAxBEJaz56MrsJLn39FVWI3uWIO17B/oOqzHMGwAb3e2BN3p649d2M1eke7BXvTFPvC25j7RgzjBM5XpSZxCT5zGGfba9Cyu8vxXek1sXXrdZ3HDZ3ATd+HhHu7zfD36AJ8RBl/wFb3xDd+RAD/wm+cb0D/4q3/7UEZsE2olkIh6iMrelEaTwCgaHTHYeTtIbMDz7gEtjCLc9+gADOW+SIPwntdNTD/gI/t1+gnf9XaUpJLw72WSGvBxx3ai4RGBuy+Nimjc/WkMxOQeSGNJYAyNg8Tsg2lSJOceTVMhDfc4mlXsRJodOYxxN2k+5GefRAuKu01Lip1Cu4idSvuLnUYXSmA0XSR2Ol2CFdwz6EoJdKOrxM6l68XOo9uxg3s+3YXd+noiWSixC2kMsYtobLGLaXKxS2hqMTtoZrFLaQM01veGyT2xq2hoMRtoFLGraTRE515D44tdRxOLXU8ziN1Ay4rdSJuK3URbohX3ZmNSnRC7lQ+tFh73NmO+HBTLn/mnRYCbf4M/f8XyfvX3F35zHwwBFVFn+gAAAAAqAJ0AgACKAHgA1ABkAE4AWgCHAGAAVgA0AjwAvACyAI4AxAAAABT+YAAUApsAIAMhAAsEOgAUBI0AEAWwABQGGAAVAaYAEQbAAA4G2QAGAAAAAHjaXY4BRwRBGIZn2q3uqggQI2asq7sz4wAILHaPHGztYb5QpTu6QH8gFsUa9FveBfaA+zn3J1Jze6wK5p33+Xi8YHqCbmYrzj+p5t8feD+rusH9nQHXUqaLBPzBYEeDD5VBoOUYQW98YyOSTrqrmZNj+fw4Q9hr0h/mjkYSLLcL/06tQkyi/c6JLg3CjSZsNI684KURNNmg0ZfBrp5IBOeZvbYoEoE4IaGUTLHKLFaJUEQGe+1Gn2+L0+3afY29oUFna8gtYgFGzm1bpFA4J1xEbV/97TVn/0H8GyDopTUvsuZSREpsQKQi5RdSYtDVk9ymfqIigwONfmpwqDHwcaSrC15Kl9tlzEL2VHdYObVL1g/WryQQebks6xPWMvKKY424rCW7tdWAJWLJBsE6IfMDw/qJGQAAAAABAAIACAAC//8AD3jarHsHXFNX+//znDuSMDMIQUQhRImrRQkBR+tq7R7u+Vqtqy/uvfdE0boBF3Yr2NYkTrRVeOtexT1qXdXXUVq7HZDD/5wbMLnQ+l+/j+benJvk3u/znGd8n+ccQIJ+AEIdyQUCyKCDEAiHEZ4QvcFgbOIK0bugiB9l5ahTjqFF4II2XV0ksbqb1GzeTRkAG4CxeTePSID90iP5ThrfSauc3EEhf3hCfFdClZOL6N1hIX80bGS1GqyCAdGAghWdaBXqeJ8j+1Loz3QXhtwkAqVIvF7J9fgTSeOdQsaVGMh47zvknXTyDhD4oOxPnKRIEAIN/wZcMBsEM3BuWXIF1e9qvVD9j24elAlD0LAR2gSHkJySFBkhxydgjw2h/zmcOrhx48GpuEY0P/7imeef796sGQCBdNFIbDKAyLRUDVxCoocECYoQiS5NkUvQu7RF7HaCzeSQ+AHNNYfhQgzjR2k8XY0/p/MDEBgHIJ5meKtDLCz14Q1hEEMq8OrZQM8GfkmM5YNoNojmaq4RwtFPdtVIjHKD8EQql1jkqsGnix+Di5jkbm3Ap8F6V1gRPxqLXFq9K0L5WmSRC/SuKOVKTS6BlaG3Oa0mK3s5BP5ymG3Ky8ZGVuKlD9subnsfdW0oxRrtF7dHbfsl7Y/dbnO9pO2SHNS2oQ9xNR2Aq+djnwz8gPbmrwyaM58OIDbsA4AwtKyhaJDXQn1I88mvY4LpKkSOZ4N4LiWJ13EF6/SukCJ+1POj24R+iZgBVQsYxutdsUX8mMCP7rr+j5hcyQn2hARnckqq02GOjDTbkhNs8bI5IlJkgwhZY7Y52ceOiEhHUorQdcaqs9/s3bBy4+6dc0eOmzoHG21qd3THil2n85fNnZWJ4/411dHq5IefnIr47rKl+PiizyYNHTCh77icgbknTHv3Gm4fyMicCiBBWtmP0ixpP4RCNCRAMjSGyT55BSaiUCGvjQ1sTF5uQ0FFrqBEt0H0yyTo3VEBQ5veVaOIzTt7467nv85m0t3IP/Q4bYptOhM9qYKNv0tNbNjIlJziSIo0M2lt8QlOiyKq05mcwNSAySlxyidxgR9wBUl2tKRtmDXn0w0zZuYt6Pray106r+hMmm1AeeMGWsqvvNK5y6svd6OaNHIwTcyelbcp/eXZGzZkaN7q36fTq28NGNC+9OSs3I0ZL8/K3ZAhv92/b6fX3u7Xt+PvrcWRrUGA/mXF4u/SPqgJdnDAvL+xhxg2iKlwgSg2iOLGER/DjcNTTxfDT0J8PX7S14vnJ4Pvosn3lWq+U6ShGldEjN4di35FWWMNio0x9fmvKqpK5dbCFcatQ4MpzDY0FptdZsqrJSWlooYbjxBhSU1J8amq/5hP3229b2Pmvm7DBuGLL26YVHTl3dcOvneWUjy/fCJdZ92wKn7s2BeT+r3RvjfOS3ONGbvk5c++2jyn68r2b9MpM9eXbXw0qnWbG68Px9yoSTPHvi/c6r2kQ8MuzV/oNgwQ3hOt4FXij94XfaTy6MPA8njjNc/AldJSugSvAsIcWo+slAeBAXTgCkt0icr0G42pFpkIGr0p0qJJsJM5E36ZkbBstw4XdRqTMGdCMXn7Bn6AHV+aOJwm0x860an0Zl7vEa99iR251yawe6ZWuidGEKKxpxhNzmRC7KmRRiNJHfPrbPvq3aTruj722ffHkTZX6Xv0s1dHjMVfMTHuFKZhzbYjXqV5tB8gxJB3hU6SC8IgzjfzIptfUZn5omosrUS5dOysS4xij6qdKrFYXdsimTSCYMfX6Kln8VndqiCs+yw9fmDyrq1ThPPds4ZjV/rx0Owe9Nd3MI7e7sGRvwXLxGRxOwRDdWA3c4ESSGQM8DIl8pmtBpuBxT2Dg+RgJh24iw7EzF1C6GaajMc2Yy6/Vw16BZPhO9BCFL+XW/QnFX5f4Iq2K0EmQp6b9o64rS+98sqsjA1L+x8BhNokloSS7SCAEdjcuVEVotijSSiNwjskNos/awnLbGPhJNN3jE87GqYdDU9lRAr4XSrPX2aewJY0Gdms2cgm7zZs2bLhs82b83sYy2YJeiU7moChC0yP7KcWGzrc60nvnCnyMzzLjWLeGMS8MZRpqpnvmUHsy0Hsy/7AxX0xSO82oDpKqUTRE1s8EZx6oyPJaLIr/qExKIElVQy6Unz3mnjlpx+vCPmzF78/k8zPmD9HIEPobroPneh4gK2wMT1ND4T+eP7cFXqh+PqZm4CQB0AuSjtAhqY+ZBIDI1WlICBxxxAT3UKAnxNBUvK91WaQnLUd5OIumkGMNcST8zceBISeAKKDyW2Bt0GVhFX3dlsCc0+RR9Bb+KP0ercu4AM9z1ces0Xve6DViRURgiWdWkpAQbSKjtKX8OHwTgtGLViVj8LFo8WM7kwk380hDaet7zRy2bqFhx+edZ+n52k3QHinrFh4xPAlwCQfvlAGKbQCXzU2qMZlh1AlxkGi51vAnp71gCM8ifxdL8CRrlC1zYcqlA707oQAPZkSFGZWTe+KKWJHd6xqVh1MEr1PkIrIyLOnGFfLlzm5nHYbzs2YlVk2fnG+95sT9yYNHD+rDOgAWrYrc+rc99cuzxCSyNyRCPNHfHHr0n96eRokuKbt+++V7aMWLJw1LZ1wK3QCiG2ZzQZBGLymzgj+IMHlRZ3I0WKim/hxcv6DnP94tHKwwjaVb3H4Zpvi4OhAq0EjzD1yZJc3jSzc752B+yPxbhb9EtsPEX4tbUKO1OG+s5p5wzMMRw3o50OB7MHIUPingPsC6t1igAo1ochBaRLd0QFXJU00u8qVbijiMxERAFjDkzqLGyYWgQSmWKM5grAUbXdEcp0qtqPRnHiN3PNuaTAo/eC93y8V/mHYbFgydsby9bMntGlELpFzm+ioFvTRtevUe+7rKdNca5a5nUwGArOZDDGSGyLACu3Ab86VpeCGgCopoFwKs8pm3DEqizDbZFHzBDI4nXqoLTBfN1eYg/B2/IUyiBh1cM8Pf544SUuxC3Y41euD2I8mTFm8VHKvEx9en03/OHOd/oatvC/jMsyVvMNHdn5x6+WdKzPz+Sy8CSDWZrMgg0Pt9/4p4fglvcrhodzhEW08roq1vZ/+h3QrLRYuSK883ilFZYMAw5luwhSvt0L9ijk2sxua2d39Zsctza4zc3XYmWfZsadqZoVoO7eycLsywTqVz7jMene8SmE+l/FRsACSIXAapugMFVaalMJUVzyqz8g5ZUWnvDNGvju8uLDgp6w1j7OWz5q5gt4bMm/OlTkLxOQheQ0bfTXu62vXvxq7p1HDvME7L1wo/XDi6uyH7y8Wo+eNHjZ//pWFQKBfWZnwUJG0FvQAf1lUIaeJDUxcTsHEXYYTDBCUdya1qaoDvSu4coTg9EiRiduEwawHyeZkUaM2i/vOCsYtNG/6Ye+puwcMO5Z+4RF10S9q2W/9RX/uua5WzoSJKxaT6W06Tr6evuzeZPo1vZtCu9AJ0lrx9uORHV/bfnP3qpWFZWUwl2XGIeKLkADGvwA1LMs9EEaBPiA2RvP0xr5Zl+XrTuybdvadq8IolEEfAqAP4OHKNwHhFfhGmCi+BjJEBtgZ+5SFeoVnoWRGJ5pRS0aWnmBRbLZ3H05ahhP3cT/LxsXCJeFbEEDDnsX8hnEKdn83qPzcLVZO+JxvCJdK9wit+Ut49kNvwQfc6ufCPuGy+LqCxp+0ORqpyCVxNAoWp1DdO0joXJpHFqCwh85dRucUAIHXy/4UxrL5jgIrdPibjBbHBnE8o1WXAlymup4bsqiHf85q4MtqLKWlpj7Jaim+ZKBhlNhfS/cnSW/O6jg0bcDkfPLD9q9PfzTk1cLy0nr1uAUd5/UakjZucI+PDh51b84b3C6bfuOvtQfSZvI5KQuc0BoGgyvJx1q0DLNWqZOKPOFJWo4xPNEjacP5O63e3YQEuF2RK0nvru6/wsvbekWueoluW8DFcL27JVGZLwtidsWGU1OMXCqLIHPOYgRrvEg0slHkI4tSBBCT0cjSuWhEWeE1qSauDflIyIVtu50pGa+9v8wUPmFvWrvpbZNNy0cslE00n3oO00Nbg0OWoP1k923P1W5+PO0xzd4SEnIFJ99/hP2+LPktrF3X54bVwmcbtxyzCv/6jd7Z2KnDneOforCifgvvudvXtuIczD5I0/96SJcXNrCNsiddxw1YHU244/412p0ueT97QC8dPqjxM9dkDIBUQ3KBBoKgoycoOITrKkjPGgVqul211yCzgcwjglYkioJVpuwJUq762gXoQBs7C8e9OfMPkAYbyTP7vW/i/Yc4mc5mTZu2JJrkggC5AGK6wvUjIRa6qjOqmsNZQEmhlkR3eMAzteGcbvFEpQ8wTKwUghwGq5+ZyDZkQ0ZarLWtvkxqzcXLP90f3W/sfHqHHsTn566hN2gBxk/NWriY3pRc+woGrKtvzZ++7xrJ9f6RMRE1q6cOHj8EEMaxbHGB+VQMvKyOoGpmzPor4UU8MBrVYbOaasjoFTc30RYHBmcytyOw2BKYARFWhRsVmnyhOr3+M6X08FIM2nwHoyyF1TZk7jx5wPPBphg8cbsER2LKwqOY/Cn13vpyLf2lZNFP9M7SrUAUTR9gmg4GMzR7ip657kL8sLhmQyurUjRaWGoXNYKBBXTWFCD2XFyzB2utx/X04r7TR648uHtOcm2kRw73PEGPfEYkY0kGRpR1eogmAoAKlpcULO3Ab1hVmFywKPO5DVYHTFGvJnZ6t1YdPw1Wc/lLuOadT74v7Sss9z5DxpEPvaXrJFcObVCBIZFh0EHrp5i9R0dEJYNXwSBXeqit/JHHvOsKhLnepqQvmeWdwh8XBggTmZ1cZnYSC4P/T+zkKXWUp6YvB9dM3Lq35rc1Sc+t4TVj+alFzbfZyV0jEFdtWeRByc4YGJs1i41Y44lQbks8yYiXX6MPXB5anEXQgZE3MTK2IIVeKTyI1/YO/shJNxP93oFpGzD56DR8FQfePYdW+istG/cnvdqwCb681qdHSavM5XvquVQViioTU82yC3jJwRTsua/Dnlu/1V3VkRGexTpepeh4vaLDkYETrpRrXN0OdnRI2kJvfEEBuVLIZreX5PK+T0by2d3BDuOUCrfGU1rTyr0cOK6ggH0VEJysojrG3oZDopoV+1M/R8zgSsxJ1FWQwUffHL56VgguLDl58beC+TPHLUfJVfLoZPGVQ1MWZs4r15ikaGy0mrv6y/lKZqjuWXuAcBrb0vAadIeBMBEWwGrIg12g7elpwgs7WSL8c1OK/JLcWR4gj5XnypnyZ/J2WdeTQdUoykMHoo1U9zDlzbvj/YYM/C/5NJ9GMBU2JEXeKaWny30khiGVoO5TfMQNKpPjbuDAgcRTuqhwHfM3333k9kqU76bWq2pqVGahyu7+fjgXH0FUFhJ8pyDwFXI64mBymdCGJnbGD/EyXn5UYKTxy6nNxOa35F/iJyztpJJ+Jf3FbO9672EGKMB+dfCGB4O4a6knxQ9EbT2VXNdDJFBQKSduWMjVjD4TtRUWkqt7xT4lOQzIKvE9IDC2rFjSsYhggFhopq7f1YoI1auqLbFytRVByn082cc8zHalz6JR3NyYKumW0Ieuz+lfy8kyDP58MwYv2Vu0e/tJ4XT+rmMCyT1HCzfmYpMTaaew9aZcuvcsQQHN9Me/BpXQ6xjuhfLcUaDU3iZ42xMUYS5nDCFFqta1uvjyBAtYNXzzaGZU4TfYeEZhDQNbeTq2WzGtgFS7j+H0wQOai91Wf/LJYrqWNPWy/PXH4TO31i2dP3OtAASGlAVJMtOhGeIZLq2tlo/1uaqV4zIwKAbVHCrljFZp7xrU6ZeRxbhKetVImtryP+k2jqkW505AcRY9/krbJ/p1Mf0WHN+z7aRwEkdz/Z6m33Y+NuEP4xMd59HCs4iIFq7jx/RauY43AoiHFR+xQF+PFKU0bSS+FvMU11NV6x69j5Xp1awsWHEQbjeRVVMWV7ysQbMNK3RP9tK8QrzxF+qWz8LOJ7xD0b4498Nseom86d0iua6dSz+S5M0MIfdWTJ63BLkHtWW5baTSh+rnAXsd9jBVIlAvU7lk3oXhWTssAGNCtJLpE9R1ZbSydBNduVrmpSSbjSrrNdwNKgJwcgLp/OA6mi5n/jijcOOq99dn4aDjfWnx7UzKwtI3H2d/lEnmv/xt9ufXRx+bMDtryrBukwZM+mSY++yoQ9Nmr5p8bgwgNAIQsxSenKgWSD0Fsl5NDYp8ulXSaxZtsJc+Iw6QjI9/low5XFsLmbby2F2N8LxHMkUwsdUhUdXZUuUdd5jab2TQaOLBzmK5r69iEPOQll123Kc3yZ4vP/z4C8lVGn+CPtYTJDeEa6UJOZu/zBG+A+QVgOhVuieNPaDhVZOaEKoDoCrMAQpKfKutEHwHYat5p7w387y3TpaJ7sdtfTH1eQD5J0XGbuoAoQqmfhdVsYUKsw5ng3Al3gtBPLLKvlOocmLyW1LRwQ4mjsOu4WDwh5i6GPcRVqsTe6OQrt9Mz1gs9PBm+kEBHi34QnhYqnXtE24+bivWHjas5DslMzUBEE8ouXiQWgV+POqAHJilffoQea7VzYVM+Ay2g8jSb/ml+fIqOVfOl9klAWSOXSeDD7uSfJX/DjIbe96gyXj+Jl1Ns3/AC9RxXZhJnvU+640njb2HyBVyius0nCHdzZBqoZEaqR+PCqkfnO95PCk6SH+cfIkGFdCgy+Qs+a50mPc6iRWW8vt3BhAnKnnwJfhnIqKKLCLweMM7GFLAVZ2kYVd9RMDJuxlmbCK0Krks1Cy9LzxYt26JODNnEX/iMnqIBMvTQQO1gGF2aapwbEFl8CydcoZNgvfupfNwgnTn0fhszU5+pzpsPaNxxXoGSQz0J/ZDbiF1XKS3S3I94qxGRw/hLOW5duXbmOgiKhFcWInem3hHhtELHU6kcwsL5ekPX8mW0/mTW5KLQoTiSXa/J6kMvsiDGu4y/DESjw3ltXHens+x/jSst0ncTWuS8966gCCWpQnZACBATMBtqlAsibeHsksHCyuysrgNi5fwksx/ZQP2FE84Ys8nS2Wo93WqtoaTWEI4/eOPv7Se0qvsZwmgZNFi4Z74FtSEOjDZY6lbTymz9a648sxjYSAs0WrbqlSbE4vCxYL5iWd89nNVlW4MtpTnoFh1o9CmIvYJdpZulejueLI4ovSRLIYIi1npF9rieLOwjj5oxpYPjiPe3Tp6RN+5u0btH7v7jJhAg7ustS2ln4+Oaz93W0bu7k7vjur3crusrrs/oWEru+oXdX/lysEufQCIEoXjZIAwqAYDPMbo6hyeUc/aSMDik59vRqvjX6U2iKQVFAoaokxwSJXy3qImFLyPpOHcOyXOaLArHXwDj9xi3M2C48N1efnDccH1/GXzd7TttHXOCmJ4SE8vnSKD95sMeo56pa9P5NEGeScA4V9sxorZjNWA1z36mrHs4QHtvOhKfEflVFouIu/bRfCjGiDXryOMgeTdB5/abQnKLDCVk+Z9V2g3S2P3D/2eloy+uGL7r9rN2sVpi9asnjW+e8+N/dCOEJvzV/qlL9PmHS2w7T7CtdyL4fxFBgiHaKblqOoxXE1RPi3Liapuq4riq/maJIQoWlZOXMumpywympIZ67UwHdu4LRHfxoVUAxejV/HePcPy83TDDnz1U372XFe7Dp+nZ5OER5g4kyQ/htHpmPxQs7MoB39ddYqj78nQ/860bGZ6HuzRKnp2af2MTAEYXdkVorXAvxfNyvPob6NJz8rNFH3gwprvu9pK1EyKB+eTbrk1MtLXXsR4WWNl+1HIm5dp8aTvZ5y+57WJWxb0SXeMSKcXh2cbSU1tegRaf4v/0LuY3qPeNz/Y37Z115PCkY+Xhy1aA4DwHAA5IpuZRP094ZHcJQMkiQs09ejA9FxZRq50VFPnUFX0dJmKmIHxXhFr9CtrGRaNz5D4atvtTZt25bVsEZTo7N7n9m1h0+JhX+4xZOrS+oxcXNoJCPSmnYXfmN6rsbww1xNfO4HrKJ7TRlAB9PtidGCFHMEHFWHLZz8WZS3GovRN1M0Vj1n5kMerGmqriq9qVanlRb491bcZhhtYqt++et8rPDBMl/vo1JhrzXqP+3xe1rCCPT/uypy3uX2nvHnM0LxYf+H4kmunfuvXZdjy7AU9p2PS7ztOrsef15zivBBAuCoDGOA1T5DRpMyNPlHV5VexQWUQxgZh/pYAz2NBqpiT4ojj5bDixkrdj20m7ccuQj6mDeuenpCfL+zIolO8TnJszPDeb5V6ZeCWz9Pzv6V9yu65Fh45NIzdmxN3LAIVILVVkIqtSrKk7tYEbKbrlJ9/yNfwF5ti7DPNm3d/jhtl2V76OnZjTwyBSB7TLFG+1QaWxuAfgjGb5sDGH4sLvMFvTnTrJRVL1lvj7U4fPxa4JfpwvE5vPZ8cl9y8lSnVmcLgpIhNS16lh4wrtC90EHdjbIMWPmTIdSGGyMCQjQkoxJizqGPAU7o1WqUbY24Klfs1RyCIscXyj6s2aw7IQf52TaqPMu4anZ/fF9tdpz3w3EX8cwKdLUNpr3HYjz7nXQAIawGwkwyV+l5xf9/3YpPB5xshA0Aer+ST8R7Rn0/UnlY13KncrkLuCDaIqBhUZ4PqCofXKqvuknJyadXd+ihOiyw8SqSU22tyhb0m2+L5CZtK44780D7li7HYT84fOOW99OBdt7e/kC82Hb/wy7d603ne+uTI6FGT/u1NIvuL15TeE5tChU8xuQzQ0RNsNKnlUouiTu1VKhBO33lUCFZ5l6Wye2EzefIhv3sxfOlrA92LwSLQg3GPZIYqHKpDG09ITI3yfbWmwEq/ckp0m9TUuJo6PPFkASxP80UoqNitp2ixx5Sri79Hw4Tryy7T+7s2LFz0We7C+RuJfT1dQE/Q0JyShZhUqtt66fuDnu8vcWZEe4s1FXTRMNxj8uVsE+/1qD3RX6eqdBdRuWCUQlQc6enZ28eRuMFzc1CTpJo3CvePyM/VjTj8zQ/5a9M3duywac46YnhAT03xPpAujV9IL9HH4o4zK70lK04r7IP2Fu6XSzJEzT6enkd8ph6hmoHKPORpYvjThc1QhYTc218wTMuo3q59d/PXzfm0S9eP5uaQhDKsO2PI4wQijsdGpdpdZ5YR4+KzPgsmWUyGUHjZI4aFcwv2u5wKbuX8wBMdCSzLgsv3PnCNVmjYQrLqNdreKn+r0GNDSoywQrPGC2LTKUvDAFBhb7vZs3lfR+fr66gmXbUR0yPEVGzMDS1iR5WDC+oWZozeZS1iR3etSptxaz3ZXqnu7Pj2D/h2vghkBL396dvXN++8tWtGn/4jB6L58w538mceGpEvZYxMm4axr3d4ruPotnN27lnxxtCuL7/wYvPOE7os3fyvT3v3HNKJy6UrKyadpZZghnc9YZEWdfcjOnDzQ3TVXT2+/Xy8QhTUW2C0Knn5hh4jD2sGzniU6TcrtQ1nRAacd+RISqu4xq+2mTx1/36pJX282Ptuq1YhmRGZC8j6xSgDQjrT/mUWL/R8jdZgVHfVVMAqpx9/KeDb/kX+jhnU5miU3hGDxumyUGfwyS+2Yf6hMy/luwZNO7yfFHjb/JUjmEoOAIIVQNjF0Pxtx0hletFVOkaSqmOEv2LI13TyIjr+6xKhRckBX6SuDyCdZm9DoLdHCg1T319l56qk8/TyDIIFJen4TkHB5TiUjhGHYjI5xNeK8un+TPqoDDLpgZ1nS1eWCc1KDgjJpcfEpqXnhHqAUBdAOMKwBUMHNSh/jyj66T2iIKU6lpVTlV6QiSd2QeC9IHzwywWag0POPX58HofQnHNkM2Z473q/x5V0ELERCyBE0tcFF0MTzngi6A1VNOXnhappieA4wngIUO3gAO6uPhDEZrc7LXzPAgPyc+kB+mb/y7Y2Se+kxdelU49guFC/JJb+JoRmim/0Hyo+y2etK4CwhWFR94yi/0d6Rk3JhNJPSSfvViE5KytdqLZqltJvoctIjvw8REGSx1QtWpE+NJF5pH9vmidWgz3dshBQZsnK3ZXOsTPZ5kxyOlN4RWVg21PYBnejhYx3bzlzhmzeknBywwbhBF2WdOurg78v/a1ox3XHqBfof4/80K37rRP0p9aAsJn+hi/+495Z5LzqxZUr6W/yHo7XxPCOLMcr+fDy9khUoscQrHBcA8NrYHiNAXglo0HBa0lhW6hTGWY9qzgi2ZK7wxzPc7zGdFSzbdvJBLcHz5zZtrmkFQZdvt2x/d2jGP3CqKTr+afuL/39yFc3kgBhFi4T7wvxYIEXPQZlTQH81CZK6U+5wpVuQESiKqKFV4lowdxOeCh+lvDQrOGBmqFiFuMU7++e/8r03NfqvdXxw50Zbyx0tazxRi9Bl3PRuaLWoHfIBydafhhERvcCAhk0GweIbyqVhcNfWSg8nySqHFv9pzmEOw3v5ZlsJs7geUWRt/HJX+aQz0uKpTcq6gmEtLJg4ZGUAFYWPSHexuX2s9Poyu1mTZGqSRKkNEkieBDnxyh+dFev0iqRfX8gQphNGZU/IFH1S17rx/ol8oEl+VsOHXHnZxbIvnbJmlkTuk09HH33XjzGXLadwRrWG1ctZzIrmiYIPQBEXntZYZonpjLyyksCntgIpe6LTfT0isWRnsWxOMKzNxZ7quRR74Jk0rq0RT7Pd8XqXeH/JCRaIjRWDWt8Mmdx2lneElS52cSctFDbnHyPJQ/frJNEtJ9+oPvz0J4re6cNS5upwxZk6OXVPdat083qrf1+HYoHfz7jHjR59RRaug4Im59bUg/xV6gO9aCVh9Rv4MtRLnsRqHOZvohXwUTdOGSdK3vlZGbX2FMTmLvYUxVik2rR8N1nFg1GREYmKZutOWpZfHv9yW/Xz52Z8e/hy2cuz/lm3/qVs7OGDlg8u7T3qH039o0YsX/4iH2jhs+emT5v0dojJz7OSs8cPyF7/uqPj+5bvySdTJp0ZuKk05Mmnp4w/kxFV76W5IJIGOEBS1TVlRR1KRiMyhox8irIvx1QIqrtgDr/kE+RRpkiSbFGQWmtIC91fV19q1n5pyw3Kf/QQapj8lm6FP8Xd38d2NQV94/j55x7b1Jv0iZNjbrgBWoMa3GnuBd3a4s7DLfi0CLFXdOLprg7dExw2QZjG2yMDTakOf2dc+5tyUm7Pnue7+evH1tvctMkPf621/v1lvBxWA8fP4PPwlrkR4uX3BV8UIa10qStE/FJWGfi1kkol+rJy8iJ1pydaFrgTc80LtglS1AoRzYe0RGo1rgsJyeHSAFT3i/CZfQ3QKAz1ovjyHqNAfXADDm0fgPaNZKRFPvZk8qSmehXeTmwvCMvXXaCLQzfK0H1rLmRlcm7ZyqFMkxfJV12vM2rpeIrqX8lMpclPfE2hII/p/pNRGx8IQS9IiKrQ40dip8VTC8xAIUTx7Py3MRWijgup34jnPcs9UqD+TkH187ZtvCrw6eTD9dpCJ0f/wxFy475CzdWnQ0Dd6ZVs37fuWnLpnEzoX/5Fm3nw/0n2lWe02fHpapfpN1A0zJG9eg0sFallDUpOR3Jy9su/3Bj0poRveq3rN2yUc8vd3v7efat36BlndZ6Q9/6HYfSuegr/oF+ly4A4hgEAYCGRJBk4zBnq4FtCTIjBU6V8IInfVUo5T7lUepC0ZM1apRTj0UBdCG5Zz9J59mu+wKskiOrVWcAZnre0WucuvsqkgmrWLB648hNHNPw4yoqMOCD7kKggJJlp4pxDAgQdRA46ZzIC24s+zFbj3jT6POt7Meid+Y4Emy3SVSrSPazyE0h05V5W0BFj4cbPEhqgQcBnYWFUvglicwHkcC8ioIQu+9dl3Xi1JoNe5Z279JtyJBuXZOtcAP0hInQY8M6/NvGDfjV+hHHYFM4FTY5dhAfungBHzqM2q3a+PXhYeavt6zo3W7ehLSx89r2nbEHP9i2DYbv2QVDtm/FD3ddhZ0vXcLbrl7AO766BTuynYMOCO5sPMNBiuwWEUn75kaB+zxsXBYjjEr+CY0HIdHIgiXsgWoDRhIMtxH/emf2Cwr0ELhgSRA3RgXBkjgaLKEDFKkMFwmVKJESuqTRIBdNs6ljpm3fM2Ri/aSNe+bOXO2Lt5Tr6J/aphM6ExLRfmL/lLExs+OiXfpPWzQLn+/ZakJpv4UwIbobIDjpfiBD6CMcABFw6UcMtHAprJePAQRT4BjhpBAEJNJz2ilIzqQoHpjHdCGGYz6ZY50gJMAx0GEjACLoTNbgczJmbmR9x4CaYK8cVytBWRNkfdOrJ7uG2mNLuLRdTz4b0s8mzTGI6fkEzSyHKEi5ELI+Q3QhZH3GBoWoGZCnYgnWDMTqYomDPtBmfZYOjGUf1pmjcs1RUTRjtCbiLHtuucUbKPj382qUGKaCCh6qrpmMoRExkRGRkdFKsk9oZ/uFN4IszQ0boSErC79iSxOeToeGVTunjof6JW6CboR5baOOLfrMQ/fsVt8lujp3wpA9u2EwXZ3v8D6h1fRJE2pXWV2zfYQuzKLvIU5FdeIa16RSaqHkJVSUtgIB+MhQpBoDSzQDOjvcuVDR2gNtkLwWAQSmCafRRDJPzsALVOangqbeukRxcoqievhxYmuR7WNTgSvK4DVtxaABy5YNGLgyP65Jk7j4pk3F0wPWrhk4aOVKr4ZfVGuaNKQJQKAnAMI78S/yl91BI5pPx9vgjrpic/XMrjykRHKjGuNBZ8lPQsl8Ih/LqZsLh+Dl2/EU+OV2WDvvhFBXaJ+Be8F1GTDrk2smHbU6aA3aLR0j/W8vO9jIdmZccWAwL7IivRCfBubmpRwG2Q42v3BjKUgGL6r2siGHhXh5lmxrcEfBaLd1Jyw/NLFG04ZZ26HD6sFtzXARWjME+varX7lmsy+GL58ybMDgpCUAglpoMVpNWhgBFshBkaX5FnKJYF5U+/BxUxLBDqeAKWAREJLlBADTDruDQBAFBCUhjLZYi2ww3W4+Kr46wmaPGVhGmFxK+UYfcjRxiHlF4vI5YepiKMwJiwyFjm2bNEpo8EXTrM0T565tUGfFrjkztq1Lqtug8dqOYr+alSpUiy7Ta8K4AfFdfMosGjRp8uAKNWpEpyEAwQTxPvIviHgjEvFGMFlxzByknUHJVJUUSARcYEmi1N6v8RS/XaEB+D7L4cI9hN+J3eoBWsmuKgaHdwXztqzqTjHYuYO4DC9nrasyqXov5uxjEUjFmQnbwP4jL9XK2e6YvGtZK+IUts7evDZTCPp0ccTsxricxNpUFwAhkWHsysmIYfLBv0MPZQgcFJihnhxDVKUJ1qNZbX/C/0Cnn6ArcsDffZv/sSX93mVoMBwnNAaOwCQLDN/ILC0H2vK7fg+Vvaqmii5TUkXRPZorGpWQQD8/EjeHuwCNlNeRJXcdP1Yedq7fg56aUA05aKFGMcYL/ogZKn6GYGUZRCoaWTws5bJqwyJtUofEXkExfkt7pg2OiSpflmBpKGIarYGvGbKitgy1Djwuk999fIInsk/wZJJISxI84eusu7C3B9nWnb6YOgog8jdkIZJFnXxJ7wTFQyxQDYs/8GQnP0HRdLJ1Ah/hF+wPvWIz5rXjj69ec/wYvn5yc8+2bbr3bNOqBxJ7rzt3ZluT9WfPbtX0GT6ib4vew4f1VKRupjBWOAQi4DJXALRwGRwE6OvtAJCWSHtBJLyY/wBlksfl0Bs4QC0KQt8BAHT8ALFMJ7IEpCvsM8vBK+DAPvsdyoRaeEEIYJ/h8GbsMykASL9Jx9j3Z9DPoCChCgBQiwJBZbSm4DPB5DPB7DMAgXp4ijCW2PXeIAQQd46CxHSkGQ1qFFN9vy89h3TBzA/2P6YUmYOJZOeieW6CVquMa7RG0X5oxhFzCMTSVYyawTI9jjqjkUP7TLKg74+c/27D0DpqhhHaMWjK6DO9w4eOSOuy8fqVA3v3p7VYCmsS5bhCeaIdo/w/AdB2YOhvDzCBQ/yVAF+X9Rqg+HFKyEqQnYGaycCjAXiJ5aEBanawQBJoqMDyZD8wWNB2yEt3t16/8YOQKhyxNjegFtajXujMx/3wciDsiddL5kxcJsP6GxyLHgEIOoGbwiOxN3AGVRkvgCMLvlCMvZMj84WKgiN9gE6iuuKlXFkrOrE3KZ4eTwjjITRBqIWwE2yCj46BjWHjMfgobDIGH8KHyF1LmDQBZ7MLNk+ArfB+eiKPzt9MsoteARMIAmXAAFksW47tTKoV02tELp96xo+mr475SEPpAzPw/BhOpRSPCg2j35QdYQ+DZvCa+AiWO8PiL1ovT8lgohEPpJViIqHXZ0D07uk9Fy4+SRG73y3vn75+Lsor3wvF9NtGgNGCsar1QZdxhejo1mtenIYD2lDs7qSt+cfw/d5v04U5KQS+63p4et6iRArgRWAbAGIyWT2uwIvuAKYvKAQlPL6T9whA4Kxgw2Sd8kwXxW0HqLNHfQZXUaxbqs146lXULuwBTcsejsHvf8S/5+RA48ING0hWFX4w8Ozksy/wJfK0rvVxxtgJGZBGe0n8cZDGA5QFg+XgcuX5kzXILvmTFztOnhKdHjfJU4kKcjmvQcovQ9kvqdOptF3WRoEuYDQEIKOKpFCzmalxrugMeljPcivn4IWpTY+3v3a41aGIcpVnxw5Oa3Kiw/wBHe+LHXJfHlg/6Vr96O6L5zRbL5f3XxNUvlvrmB7L5rXqdKttt8H4ARBAi/xXmoliC9LDWFATXJURszCoUlAxl16/KA7ZVorclOJBDfbeNlSKqT0ukonFMgnEx+WWC9E2THawHhcGOPFV3l2NPZirkXdXu1WN2BvB/BEQDm3MD+W95XJpoDSKPxbjyK6UgiI1NlZfxGezz8TgQkYFLhRPnNufbUAvhhyibo3f8ac5tX9I3378x0dPhg0YuODon8dGmKsk7Bt4+2drae2+FcvHRSWuy3NstK7Ks1ELBgktR6zQI99ZhoPtu+3NyNrXbvCEYa08Fx1q0yapA87/ZYT5VLPAOeNWNon7DQ1r0zxZiNk9P3DGMmoXT6Y58pryoBQoR3RnbfkKisvfXDoXfFZJg+zDJO4+WjV/U8+eZYdwabL8coIEGmWwTSw2RVAPIF1RxPcnRCqOWEVWCDEfRt2dNfvhuNRbX24eVyn9fuPTM4588Xr/icYDUPD8rks2bZ86aZVkxO9x/+R11sVfPp217Jdpw8+lL+89vUvl9XHzv+yT91fVmo1PbV9w/oej9IxrCPaIFcQc8swVmEAbWevto/YQMA+NPteeyIOuOpdCbUhjqxfpCm+81GeqNQYL9TJ94TOxQp6v8JN1g6KoKVfU8SisxjS2WrXyMKP5SEhg3p7xBGdwlOHXIkBfWWQWglmkhyq9hvJ4Ax7zYIvMlINDRSaOmZtY5NzEso+fu0oOEZSrIBHUo1fPpoedyJ7KIayhZzCbkS4Tvl80rFvjif3OTXy6eED7JhP73LD0hB1qNZq3A/XrgPfE15m/nUAUrPPLLr+xGp9eh+eGrri2AsafTUGHg+4fOpxibenzwAIQWIF7iJHFIAxdiuI4/99jFPRFMAqRDKNgSTtbDERBu8F6dUYRjALZKXtI+00gBEwDZoONrVtybNPdAJPlKHrxFAzsMI7iM2BzZVHjynBvrhoVwuHF8i78+Lh1EO+yKcBNxjIIA/MqRxuj4WcAg7jnuAKhpGhK/B46WI7nDSlAU4pffYpiOEo3iqqEUkZmZt7OAkglIusQSDTb15P0d6hNIKpIio5BSeA2ELFoYM+oDmmPWDULjKBMYpELrc3rJgZE07EAhztlNvtM80F+aAA+Wq+6ASQ0axZNzyJX9OhMXi/0iIAqFy7MAzSdUAQLYQh+DEOsC88CCNZQbJVYzQ5b5fsv2KqcHCWyvRoAMYFFtgdy2+2/4sfMiJG3aaLk9RriszqluUUNrCjyXM4nF46fwwlqVHuHLc9oBTN2anBOTheY/gTXgD//Am/gaLEajoNXrX9ZKRo+BADRj+ktyTzvHL/eoAtbRZDNA+RTcAW2rkQ+XOiQy5hkmFPPic5AuFFiKbLaWGIcw4FQiz/QHEEy8kLTtpPaWm9loSVlJ5VFm4DSKuSkAcAZNLVhHAoqwvUiOpXYKnIa56oJpoyJL95IoS9KC4asW5ezeHGO0LfmhJpWL7Q5fkI8+oH+7U24qfiGrdIussZgLJqhU7z6arDDZJpFzrKRXd0Yk4KHmxr3Z1hSBiWNjVVzBcU3u9fWjHMLrznHGk3yMm+QhAXrjhyP1W65DcVBn1aS3MFMcQCAYAluKvxB9Btf0Ft29fP/D7g2NnwGe7406K2YtRxY3w6to0LzvEw27WX4PIZ3i3cdee3AUbR9DWl2aJ25KZP2tyLrfvW+3Gt5b7cc9chyPYv+mT91Zt43DPk2IP+l1pExjoSClTIMC2eTpzP75nJLz2YcS8y5NLvZ6V3ATT0JDbyK5fXvZCUunHFBjS+qU6BIfYwHFWSFqeSScvwxwiqtY55ZHr4JL4Dz8aaJu4QGNLucZpp/WpDWb+iQvWfROeNK6L4bxu6B+gwDSTjPsub5uYkL3Z/fwpe+fgkE0DP/lRaQGQwC5UEMWCVrYuPUSHhELr1W4mQzBzXh4M22uiudUa0TUz0rswdz5Shb68Fs4hIUZIPyXl/2wGwqLpJmrqDIczb57FqgXZqY6l4Uahiu6pk9xz1YOPdKzdrnU2/9aq2i3TLr+Ngmc9/NvpFQ69Ksh/i9ZcP8uRs2zpu9SazQe6UXcpuLIjfguaP69BuBX47cdWHI5BmpfXqnwUrY8cjdOzcP3/vuu83zfCetBBBsAABN0xgZdkBg2AEekssvFX7/UTR6XAES3ajfAM2bqrc1lY4+Iu7bedK40PnRpx4K5l/yYCs0EHSTQVAw0ydyS+D/kiXFjyFF2bsyAL/SJLvwukRZHoJjaUKplmiucdHknsYVIomNGkwRBBb8Iz4jvH37aOv8mlFe636GFWGftfjX7Tsfu+fd+toAO8H6o7QQQf9qvotcO+LZOLvtBXzq8DooPQi5/wwAmP8MN0XHyXgFgJGyITCINNMmLhVke5LxRhAPHGJEkoDviRPXTxq4dc+lcSxfXptQzwy2RFguQOEMaI3RqMe1HatrVnELqFu74e7daP/G6m29ImrsFq8Juz/h7Uc8lrkO6CqKi8ZuP25c5nRuPI2OktnJ0sQDEwgH7UhQLVLVZ0NyS0igJgqQyOwKBhB35WaBrpGQErKpaTg4WicRZkTbnGq9+J65EPDfKyD1IPyxpkfydvyhJzx56wRLrD51TfEc7IC1bvW5DWvvWaOdPgMfqLnnbxEi6FWQXO0LIVDxwDkixRCEkl55KqeiJz0V+TOAJ2XSiJ7qieGSy1virFfBRfHBSme0XvYwYWXzUpX81pyGiStvNSY6+WP8xrI9ff72nfPn7WCK+DyHPlPxo+h5O72IMg6jPxHE8AOL7tD9+2pOq6aUBgFf0Fx2sZFHHqSxHlwGsD3DmAxdfVUh4MAmh89RNtImG8ihq0FFcl1H9FyffRa+/bqxTb7rt85zl93+ysU6+RLO8xL5tFcFUym5i4uBD+gpa1nOF/gXsCennxXxAxgd2NgbaZBB1rAbFdPOk3pRZZqDWRproVjJfdkGs/gZbFmvXilx8cFlYt4xW9TldBTaaAjdwwdxU9iXSE9XUIYPUnCaB3/SQW7fwb67MqvH0G3WiGQ5DN0lKzuLWeq9CMr0FzEJGIA/8dU5lApgXaE7hf9jvHruyqIPDHjHS2AP4KB8AU8QZ29BqVD1SBrjD6aWOqELhVXi2LEH8x9Ct4l3x+f+gm5oN87JmdB4AXTrlWG0/jVXTMLffAhb8T4d4l9G7rg8ZNKsvNgtc6looDwO4jNBowHAAcQo2aRE9yPhIG2glqjLkkgdCj5miWZEkrgQJI+ijsXp2G8YaR0xVWMJs7Fm1coVq/5OFX932rXLBepYDoj4I/pHyiffHVQY7ybfDQMh+W4gQtbnXDI+VMWMNgqhQmw0PLNyA077lCW12+WEf4ceTvn5BXFYqAGpAAAnwEgKhbeMaexL8Rq6K90BLiBSdlRlm0BCWwLR8R1tot3MFiB7nq2woMJ4Grq7Fb/dltGscYMk6c64ZcvHNkhq0VBp++9wgHSWtN1HRo5UXbaHldhASdJV5EiHwswcME48iCI1LYEjMICysmBkYU1B4fwW1GGWE7Qwmb1I7lSDi/n36PdKrIHsjEGRE7t0nTDh6AR8qG7lSvXqVq5SR5raYdToPePHt4+qV6dX/Qa0xVVwElwKqgIdxUyqyGddFKfGZkuf4y6Jju66QF2ULkEnJtMIE/H6MB1FJdODk6ultagU49qgc6f+syZU6NK+ke+48gPad1pdFbBI4j2hlvQzMIFE1h02iwfdHQIdEOsQI8ym69mdj/sYbG6JYDHx2EjmkgtAzPdUa0LXMjV6lvMvU23iuOTQqj2iA8t9IT0cMstQyzWhsnbwAkM1j3oVAALdxFyhvJTPUFjVFTBk8QFNKm8Z3VuhZUgbqiW/1CrRTkZfHoqSb+G/dg69cH+llI+/glH4K+aZw4Pht/mHWFQ/hvY40RkIOiFIqCQkClKywsST6FjJMdGxpWMPR5Esb0eYTOW7oGMpfSabwD7BVhWofpP7NGnYq0fjZr06xDSoVCk0vMqfDXr2aNgguVv9UHIbViUGwLzt4n3ciEVtA+jKLzlFGTdaj/FTlqIMrSni/XxdwScRt/+KhnpxpYJQb35+3nzxXn4LMr9asDVPBwCA1m7iPbxcMxK4gYqA4obdAUxmq5h0m54WUdoErZhMBlaGClDbFagnRGQcXcXxKvmzdSRs2qBLU+2K1S2aQ/HeKimgReSg/u1qtnRuCFBepPgsXyv9zmYznu+tOnvK1B121wRqojRCsgIFpHMrkjeKrDOhylxitBPf/B7mr/z7pvgMOuG/oRPpR1W8CXvmjwYOKmuw1nZDSwUb2lpV2dHv1A0NwRFyHqzRJDAvhrrK1FGQBcbArw6lJ1lDv+0bmapJUOI6aeIfwnTNHIbcNYKqDMaMcgtnw3aBOutssbuM0UqFGNMZEkKlIsg1+P3xvrPxaTVQF688aubg9+E8hC0/vyCeDTVgLABAQ/vAzs9sAMRKjKuofEmEKaKqyvI0KGIla50zwhRG02Gm+yQQAGmEWgGh0r9xFtlDADRs/NgqJNRyEM3ahep+3AM1QjPcn3LeZYml6Uj2J/reR5ZdaQShYLzsoGh8DjS/kl6DSmSvQQp7DSKko4j6gOglClHPELqFUBrndP6fKG6oA8yePohXdeOF09ZPSILVFuH32TYkQg5LkMIi9NUxGidbljntW3x2VyHHzQ584ZazyiOkctywkx0ASWAx/colEAfxuhYQoDKoynZApIzATeSxB3neEud+GkOHFQCBrgUxWMWwOoPWPHTiX7MRzEjdjHKURHMGuLHi82Xi1XCsQH7GCjvzOnRAf1rd2gjL84ZkZQkJWYIbY3eRSQ8h44z54r9GkIkKXyy/WbAEz1irnBaTClYlBPUBEGnugQuoxfWQd4twS4B0j++KWcugwyzRAsaSB4j+xHUF9zwIv8eBwk1rGDyGbhJv3CLUBDVcvM76DR3f5qRfI8lfNgJ/EAqGyU7KmnWiXEv0GpTLo9R5olxPgyOzaRj80cHRoHBHmp1p27hwmI+9KcOCCtBLpGeuArcHVKhTLnVoID4pjUYi4U9i2At1NkK4eFH+lrOf8OVJI+cfOWu9elY+eFrYeUY+eEr8R5j3ce26j3PF/ftFGPXH8t8bkyRNa8jRy6LgKF49dOiqmPePeI2OcWfSU7qSvAGRfWrGBn+c8FtT9cQUiex6iSye68VOWC8+Q575Q4lpQ+0CDUscjWC2jRfpUbTgtXbfmSm/rT/zAr8WTsOtK84gZ9OdXcjV+sf6d8vc8Uo4yATL/oa8ra833/ERtgAI0gAQr5ETJYz4LHxYvrxNnC2A90vy9SV4FxrDmwPK8c3tBR3L1wshjQ6P86CUvUEUjUs4IElsQEl/oDoB44TUEooW9P281cJZvO901hJseDRobDreuMG6UBg76CH23+QH/X+d9eLvj8/T/sB3/Tdl9YPRm1JyCHXkWvzs4LQN+Ea/LMC4iV+KY8QWwIvlQQSyPAhzYGGOLG+xeZEbL9+SOOPMDjwRtJMntVNkI3swu/BLztOev1hf4PRSQyM6lt1pExMRfkctPN1NlZosixj81elnP5y/Nlhvvb509t7W7XbMWkESyX5cIM0N2boV+r11hw6w5sZ0a87+cznw5PEfaa0aPFVsLp2n+jUYIgMWkWc+J3eeyYbPRi0NGB1G6SgugKwJL80C9C7MJwWK+Dr5jtlyorKQFvETQDX32quQuj2WPEHJZ1726jhh+ocbh8bmjL8F+88ZPGQlLL+426zVC4aubDd2snT+wb4umRUrnJt243V3HCtlDzk+GE/oN3vh4LxzMQkbvhy9VcgcQ/dXRdxDeELsWQeaSejoxGdM2GHveBtXBlp7OiMn6H0Cz8zBM05AgxDxKR9HwqfCR8ohQWRspMYfBJAx7SkblDE1UE+RjeAJsk9ZF3jUjp+Bucf9orJLO9uMIos38fQQNhQXBiJCVQcLSwwikWjPwhyEEM2ja/vnz0IZE9v3hcduSaMfLHmMPxxfDHsPrrVx7pwNOyfN2SK+m7M+fkP1RrWGrMJ/nY9c9ddMGPmn61boECpFLrD2Nl+7enHOA58bdCx7Mx6Y5iAcDJeFiEjev2ef5cTlADlR04FeQ8jGJuIvhGgRp8iFC/u6h7LKKT5G+mA22hMPqkAsgwrEKpK7G01ibhoYsGx02hpL/sXr72907PXias4Hy6LBqbPfnn/6K6zUvNewVmss2cty6oSNb7x824GFDfp2abJhuYb2bSj+UjhHzuFA4lNyYH7YIhsiuxQf8DQGMcAFMgK1vVqbzvgDo2roQwaKMJnIuieHbyTFZoeRWaKTRTQi4RzeNK9f3db/tGqIhtTtFRWNr8f177J0CixlnS6Zx+J2G5/P7NzTp5F3xxb198S1jW1XoV4L7wqrvpwGE1fCupksOtOTRWc8QFvZxdNQQnSGW+4G+8xdqBNU1gGX4sIxNiwJsKrz2Msn90HLkKldp4XkUNaBC9c/bRFbzZnYoUXeaxqzZAy01LNN8UkBYIUsMH+wmlEkUExACaU9ZDclb8ON5Jm5Ua2TXA4uclvvhtIOnnK7RR7kKDeYJt+iv4yiv3ztlk9eNTvxsXQ3eiDxyP1/rxAiBReUG6J+oSDCfuzx6smD38VXTx6/FK3BKHz+nFkLULj1wVIopiM0FZ/Ce2EzGHMD1oQt8HF8o3z8j2/e/Hgr8vnHP34EEJzLf4uaskgs70njlZVs0c6TVnD46/VwYnxipUjYoPEHcqTfSUh0yfCEEUIQXa3h+a/F6sTe8wWtZV2BBzSKD+QWKg4sO59fnQXoLzYbwJ45ikw3JOex4tSIiBRgKKQAF+o1k3qNDYa7DRVCIzRhZZu3qFXqJ/zDTTivhym2QhQsK/3esvun3dGRQqZLePuWqFXeO1F6WbUiWugCIOiLxwg7yYqoAEhuT8Uo1maT0uZypJnl6A5DtlTbFcspihsX1gxQXg3gCb/CHRV8MlSOgmB6FCjp/CYmcyLjKehLLKh2QF3twvAZPdM3wOYzVx6+tBi6TwxKGtBo8BeVm/20c0ztLStHT4fo2ZJUySGsf7sHmWjt5tSs2uGGygMTt9dsm1ijVmTF6DoDV6UsuVaxbGaP9ZZIQPO289+KW8h8G4hW5Gz0svf2lkA5SFUAPiE0W7JPmqY+kYIk/1DbVaJgDILFtLVxtZXVglMsO8VGwkbr8MTabM2g2XndhY2rACJnRQ8xUOUCIe5ThQvEg+XDlhDE5WBTjsw/wVGPgSIOVw+TyYAKZbzwOWZnRC1vvXUmdM/nhuek3ZjRZvfslUtmjlostsA/4Tp/4J8nWt8Lz9a9mpp3edm5czee3t0J2MqZJ3xPWh0CmsqAYX0pdIVrMEf/org1yJWDafjZMYtDm1wvnVRwPMczwRmBGCMWqnnixf5ZKTPWwMRZvVqi3k16RVVu0P7V+zF3xBbfHhw2/cGBIJzXO6JUj5YJ22u1i6vRoFw5zxgIvy6b+WmuqhVMICtCD0qBFjaMXsbcEvjTzDpuMdg7twE9Oqkt7aUC0gBraXwwtImMihPws8vjHy24j/8efW8BSsxbv2He/PUb589dL2xcjl/rF7ycA6PyXTP/nAOtd47cuXdtz83rAIJWRL7fYxwQTTkOCLZO7Q8uszvXTpohIxazaJnLw1AYxWUpWvdw+sBylcs2GzRpFMRbhTnCFuvAmb7TYpYtRcto3HURacffLF+ipuxWJF+Ch7LwxoYdhaNeR4ckQoj20usA+/Ow8ZUvd0mjz6Xh/PtnLyOSGzEO3/p4+AUMfoN/wR/wmad3UAa1CDrgEKkZaYMPCCH72V1BmLsrUTLvKI4ag59LPlieS6PgvpBT53R2fhEpDFBlwKTRUhNTyXM3GgBJ7vKMI62n8WM0JB/gl19O6bvR6dC2eWnTvp+GH+NPFsuu89LWaXX0JhIh2wG1HWYueLf3uS+6PnBS+vsVf+E7RhyN+nk93rLzbmvGsIJLS3VZn4hyq8ajXPl9xHWMO754eiDIU2G5syxhRqykjysccYlZmnrV0hT8d5+Txp8dTcLMf1vy8acctG0TEWwtvJ/LP0O/V2T4rTjXiL+AV3xhHPSEP2G3s898hGyg8NlrfEjLQ0EX2S8snF8RfEv5elTKTQC5CSA3PAkECGA6Rq7s5+mjSA+kov1Ziz8vnYKCHEivi4fn52mHDxqSdgymDR40XDvv3Oxbx/9oV2bLmOO3ZovV8PPX137cuw1WwDe37Prh+mtigeFf8W/41u+jxsHKpFOBL2mMg5wL46SLIBCUBmmyQWHANFAsBm9H85CoUj4MElUqipOSzsqrGh5Tg5hgL0VBl2Yfe+g6cWwoqF59vBreVNwcLJszLp45OuiiE8fVaIOeX772T86CiSOn3cN/HV25Xk5oZF2+aZ60bDkaYXLc9vXv/9yBDRE2L1qzNHNbIPS9t+HYBRlvlDxh65knAuCAi+cBzL8PgDhMOg58KYeInz/v47B3a/DxWiBSUKEdtkKRgp6fg/vMPGNxPaarorDvyw3u0CgmzDWyQRi+cwrfjawb6RoW07Dj4LKCBn7q3dEvwyHJOsZ6EdVAs5McVvq3TaZ7vglZZX7s3IkgFo6Dgl9lNUkBx07IzQsv1vXcoSg76Ons0O2hyyXHPoVEOvF41kAnPYPDMLnuZWRrjS21mHgi1SFhyNYoizK+YFFq/OYkHt/9pk2bP3adSBwpfYWx2CTvWFOxR8eBaegYShvUvoewcc8F/BrfeP0aVoKGU/Iq69+7Ll3eee3H7ZsoDm7T9h8ABGXz30nZzPPUR9Yrnid+IrjT3sR3TDQ5qhnGjry7T+QdPEDHuq2IATI5ok5k6VgsCquyVi+3/p014y30wHm/oTWZaPOmlfPO4J7iIMkDf1HpDW7x48olyxeurGjtTCmtIZhQWNtiriwwS+1/WwpF9hJUZ9nBU163vBAxJLxo6QcvYlLk02dR9NLdizJckAsPAuXMUmrJBP5bFRUt5UpQC6k8LCiksgg6m2khldM+2zMsNxFlmeeqqcy/AmO3Y+vzPevwm1+zkFJOBSDKDu5Qnc1WMBgjOyoeKkfqD+XDBbwuwRt4wKEAvcjPmY5nkoW8G9+DCj1F6dAHe1HmfC0tPIKQhgSw42uheE9YkBdCYj0DH0MNxo+tX2Pg695pz+KE0sl9YpwDhDGw+4JNWfMks/Wa8Me1i3+Jkof1FBFiD+eiLKQd/Otf6Ky1gvX0uhlT1yLa32zS3+aM09sPzJShoqkyqk8e68ER4nBaNe+/AshdLUsouiBl6bKEKH7pevLuK4Nd6CbaZgAUCKXacTgc3TwNB/0AIc5/Yv3aWuXMGWEh7L5wQ+Y84QsC1lsn/HDi1C8iWmvtQ0YAWt8tHD9ygQBoTi0A0jfM092dYwdjTqIS59NssNuSBgelX5zvF7BSy57qBlQtedvdt836x4b9H/8UzsC5W3ZuO40HiAPIxmtZ+v4jXAHezJxV1lpL2XdmvErMZ9zljdUsaX7Vqcd5SccjD5ileD+GjFbiD+YzZAxx4hlchURZfpM8P7bEq2B/uhY2ASDSk4pGArspTLJMFxNy+Z3Pn1jO/PAgZ3ZiIX54HO0TnoJtpvjzug621oGDnkGA8RPrbWEKueu+aP2qdDJQzYRn5y/8KpJZ1VkfZU6dsJCt3ip4taRUVzCCZNlDabGHwikrRvGN5uOFLCqHeIc4U6SZEOGL9bAGs+iNEE085Z5kKFkZcw2SLp369PI0HNMtxS1I6H/y0zF0EXsaXQfjNbAvXo2EQbDvtyjl42/iKNz2E6az6weANpauQ67+MSePuWhEiQW7eDcnUjlE5CgdOVZvkYtdBQPZQc3NZOnqnkD3GVUeykjrYXQhvFzcsfb0VtznD/grrvEjnL719Do4/QdcA/76GmVaB9AfASCzdQ4ay35a5eUX1IwYRGRGaTBKFpi+xa0cG7++unIEjjechufDvZjMCCeB0HAqLMJhmi2hoKxXQlRe1D6jAZgAbpZs6cVZDQxRoYwpBNTowlmRQmH5zlVT956e8mzeWwJLSoEQP3y75LcZpw8vyDqGzx08sHSlWGbk3PQBI4/2f3Cu77ZK7fPP/9T/5PQRq5aOhUBaJ0wGamw6n3HrJ3PCoYSKP3wQVASIlRSYJ64Wd4k5IsFlOKovzXRc4bjV8ZAjBb9AyjgJKfRfTDh92hp95gyNj6plZ1h8MgoA8W/SEj1IkkUPT15v5wOx9tsX8JPgaE+Gqg/lhZD492nr37Yih7alqJBh1TxJtOcaa1VTrlWsITzivmj9Beb9cLZ1W2t1hWECN0RxcKYqCQhGoyyY9MRqjek8rkuSl6bLwGifCKy7g3oLzT/VHdkz2jFT7BvTSYwDAmiTf176UXrFZHtZcl64KPEDFxrnpFcaRaAk91GyUSGVNrLIpqOzSUmzpQeEkRfajhzbJa1r4kO/h86Zl8Inog0l4U0aitd5UP77aEHJX2M7TfEjCGMDt0JdRiZ+uyU0x387fp2RAfXb/XO+O/7g/infHP9Td+6ckwJgJn63dRv+MwOdP58JXWAL6JJ5E695cePmc6F/3qqXVy//ChiP3UYpg0mPGiVJj5IEhuazwIgWyOzvpwJjlcfeT3dUgfEGA9gdQLASAPEy0x0aFq15wv0J+yVIgSlKUmC2xn61aVRspUq4IF4+M3DPsA9McG4+eYEVGewSYLr7BH6Nq2TOikOHqcwEQHNHkZl8Ezg4Arctee8wH1tnQwDZCCg/MA2+OwX/PP3hnjIE7EetimLGG7WDWH55O7p8/tuf582von+eILZoshPi2sFmo7Atyzy2frDaNOcFdoLdSTsQ0AEgHVXleE8ZMqmoUDXwg8NH8xFQBTc9Epw5I7dEUU6raFQpIsp1qAvs/BqKGP9g/Q73I3fdF65ftYDI733PL154KUje1h0Fglyg+ApNJbUSlQmkyB5K5qUHlQj0aszlhKWNHOHG1V4kysBRq2ijXIe09qEXVRWhY1zQfsb4OLxQGfn6tKKJCB1Onxa6FdFFrIkKvmizqkEpFbVcDUa1DjTk2s81+f9bK3sXbWHR1jG+ECKZ3zJrbqnsEhTMe80DeNZf5k/z50PrDv6eSpTg4GuHfAdqyjlQA84BkkiRwy36wnoHatYpr1KzzoGadeTCqVieXKcoHN6dIUFYCj9Rk2MQjX2FxgFWlkvlY4qEbf13b9h7BVnPoZq3clZu9zljgt4/m6HzooXYuuN3/L0fvHlwCXT7Y91v0LB233MobMfXriy5gq9v/fSCzssR4nG4z/I/wsEWOVjJMAimKjs/Cv+ebsAdl7K7k6ua09zdncbNyOVgknt3dxI3W+S+njzIUe40bkZ/GUUv5Fkax7zp+R8TFtSUv7hii8Bp7tOEhW34wwqHr06fzhUWQ6fiK8FtgGUv0Tintc9NGF9sOTgEOgEg9lFPjd6yzsukqopOXASxxGJ5eieVNINLX5SgkwIq4ivE0dMiFIbpGcsNdYaRFwjmYjM2469vwNb4J6j/C97K+23rMuiLX6/diuKtV9CQFBiQ++JjS+HDjA0Q1VoOEM25Ektr9MAPlCYeFn+mdVIuagdbCzbIHm8HPBxUO9UEPFg+rYeSNsWM92x/PjIQahd2Kcy1IDHNeDWZQUvCGnEmldGObU/U//q70Y8Wk+iA9Z8FvTLTJs7butVn2f45GzbOnbdho5CHXz/Rr3ozE4a+6wzbwaXlfRolTFpQKjDSsnpX5pFNun3Xrp9fZQECyAJALCNWY9V0/cES2VvB83tTgC29euVyWAv7AruQTYqJOGFMt0ykouh6034TIlvVRNalu4ls4ChTAn09xTTFhIb/tzK8fv9jGd6Y0PDoIF1kaBbcdvdF5469xjy4jHNhlZEjfsffErnwNyHNz1jadFyQaVbyinXwAc5p32LTclhJUnJrhYakvzzm0/e/YT6Fhtg1B+0VNuZ1p5m6CFTEZ8VlbPQM1EZUkO4eSl1kl6h/ScezRxQqKacuLOVUq1NtRNHORiSkNZ7UOFQykj2ZjYimJw5x1yPLfIvV1QJhFHyDDzjrM5IWQBLKy0vG5RiL57foPcb4BIDACIBGFKuRxyU8LTufxMK7Sf+X9uEpHT2z6KXAUkz7/2ApCi+nWabhr36F0/Gmp9A0xTIZ+jzFG+H0X+F3uCz9QZWQE06Ep+mP9Z31K8Yxnf+bsEdsDiKod9GG44xLhmSAF9p0J14YhTsZFRvxYFR4QjgiINnwW/Rhffj+cHIEp4RPCUfDCWjKyY5uQtaFhCvQF6dioS8lk5tRXZ0aj+jJyL69ph99lX3ym46tTvx0+thfR9MHDpo2dITlygnBo1mnfvXTD27OaDw+LPH4in1H1ial9WrRJWmtBJQ6HiJkzNr1S6ImK8Fi1CLGMs4ebC1DoZHFgl0thIWM0Jwb816SiM+v6l9U89TH/j/IU5fz6eWWBqbR2zQubT1FA4f/h7T1R7NzcsbBIU9xW5j70iZt/b31Jm1veQBEgfKgU0tWpy82AsVbsqwPvCXLQ315S5YZsiSQ6ykKOXixl0fGliaxnVs4G9jAbcSD8S9/SJtFp+MY3gIA0rNXas3GrxN/yP5Htnpex+ap6x0KqOvVaWTp4ugTTH1hwZum4jWWP94J9UmrPPN+E8LyaNUAZT4BY62fzxcO4HbPf6nLnOJI0eWOtxzJBCY4wrSCGs3ujnD4wfWO++nzfPIe8gKdbvosin4kxXGKIyqhdrMILNg9Jwe+scCbuAqZ3XLwW9u1z2Ooff9PGGoRWrAbyfEvOOUhoBB8M/v2KnbfXnJVT7NkU9hTMOMVFryWRsrzugpbVgIB9ME9pIEaAHxBOKgEvpS1lauonDBBTBKUs6t5xs0EFzHlgWB8BJudcAF8qCDU5rZMrjmAsBxRw5yhVAtISgrAHwzAGv6ZsST8M4i1z+0j7RItDbodvf3VkZ71LXXaHf5KbLZgQkJUhboT5+YNnTa+WlTZmuNnIEfoDuNKwVu4XCi+ih++xj8F4XZwRyno+879+veGvDf60/Lh4x6CXn+fzSY+JU5j67AGo2QpPoXR93/jZ1ibA/+0fOmxLe82ObyShc1EOpaGtQEE/QEQTojVgY5WS1HwEtzpxYEneOXHxR0onE7Zot06KvQysAxO4UTO+KnXvkUW6dnU8TlwTlDuaVgXH/kzCPmqa1d6SnvL+Re4jc8f4v9b/0J7uMAC5+d8PK50nf4U1NBYgk9phrITsRlVWP7zny/Bv+BYnFuhqdKETI9tHx+qrSicBEWTCgBAPEWeluhX8P1/6VdQFEpbv0IA/Ah9jn73MAfH4VPkueeA4Sl9yCEzHx3fuOm8QNgb8MDByZ1HIEVvlqaQ9joBN+ZV0Hj7FOZW06tnbgkqFu9V4PneXQvsdXfeXuczhQtbHw25GFb7gg5YxDI5OZ/uKH1AF1gPqBgiaJm3Bb1AtBcCUZZVn4LWYFTPH1e+9f97nwLfRn0x7eNaZtsqCPoQ7NBTsQUIBDNVPgV+T/JHnQMfIyrloFMgFgejSiWUovpbqVv0YX2p/aWo/lZqSimivwkONBgpG3TUIrMnCSplT0pAFTeuXlZh0f5gmoyMHHovMY8+P+hrKI25M+/gH+aF/casdsGD4HK3lcLhye2Td/XFt/4OJICyp9v7zT+6MXNpNh174jeoRHppIP3cILuyflJ/jtE2L4Y78TjlvGh0VG9QZuXgKXAL0B6D/YDKWUDlLKC2GEggrx/uDiiZrzA8W8dHSr15n0EpfjKp2wSYTIptGqmETinEVkGrkYkVjdDx6jfQzRkSMoCv8N86bLVYYM526Lt1xwJCCZByF2rxD8+rUTIA/X1MjE7rnYP3H1/MfkxriEUBIFxiOetexENgULgQDfb7v8S0Lw8AmfkVxenzWqEgr8GzqMYWChkEPV4odBFcysG/5F+GugEpj3MeD+kEI/Df/cfTjQO34i7wTMT6QcsPQXwwqSeE/fsCmP8zbspqMIaA2bKrimsM5Cw/DsvEozJZ3Q05il7c6SXAJ5ABY6NI8gyn7iIfsRjWHZGHFcICWKGe1ZhT8/nJxitEfTM+DZpu0xv/wGo67sqsGeceOq3RwFRaem7LFgsMEC0Yk/qOeQ/VpH8haOxwVofOkrl/PwCQ5iIK/7DduZ7uzv9eSVYW2NaU/ZRN50fScf0C/dDwg6f8bvnR9eq33w8RVdHviR9dtn50VPzosvVLoL9O8ZtC3iyf8oPDyb71K2bf+nE2VwnVaSmqw8sLNSL1ac3S2PPDHmPrqLu0Pq3ZYdGAaaud4HI8xGkVqVLbbUdvWBqCgPX/zKJVarOzMjfspdIqEgDNLLJavcgoTJId2ShQJIepBA4EDtlQApLDnbP8zZDvo4M9TlcVZNpgzgAplAjCExhw+Ouvj+AyeL/JsHZr7bh2zV1N6Dj07DtqeG8i3PoIh5YvOy4Q86QzfvkMEfNk+9eIEMfiRQPbt+oBaW/Xkt5uZ5gqPzCZw3FwpGa854C39Piu653VrouMgsv13wEczsUDOApEt54XftQuCDn41b0TOI6aCWiX0ku0Ea7CvcXslRnHkJOVoFJtegfzrWoVVR8wQXZREZVe/A7mxB8PyDlViDVypxcfHXMB+UTxuAVRqyLgXOxhHTSmZ7DZtQzYwW/Wcfg6V4B10SILjBFP4g9cGVbxZMbu3Yr2vFaETJ9swGvPvE7HnZ4lqJSftblQRZn804L3WjBZD4oiidfCPor1SOTZKMkMgihTSnAIb11zGYU8XLBEZ7gWiPaVE/3paKlVdZkstqF4KXyiGfX9uaG7K8fIaSfuwDPDew2fdmniwEHjSUz78cWHHTp16vDgnBjx6dGEeXMniqGfHk2aM3eSGAIopwapNbGX9CeA9EITGMT3goPQco4kTk4XKUetMdJecNvat7AXkYXWAteHeL209+q+i52639x+Glpglza9UnL6du3UF5LlG2m+uHz5OTN6aA3tN2psf3TPGtl/7Kh+6BGti/sQACFP4wX0wJdyOCn8lobPSBs2BUV81no3dhzp7Rau8irTr2nMUM/UW8RjzRzsRStTrnX0SFKJEwu3KFqJT0HvY998cwSXPXUqB9Ymtx4D05iWbUZXMYksENctrI+PWb/E9cf06TkJAUgiLL9pNkgXQASYJwdEli6e1z2C3EQE8ORmfOKqrJNKfSaGlJivQuK3pI6evZwi6MXdmn3YGASzIHzcvwAFo1UgIXNNwbGXpGVQs+cn6ONN8YIHiVMrwPrDRXnzTv/TBYDCSwRqlngGRqzLBz8T0OCnHzJ8CWhwmazACQ3WDko0eBXhItpIJG8YuCQLNjm73DEVRm7ClBuVQN3Dvu6mu7/CbkU0Rfdb7kS0JrgnuVPJ6/6EPri7B7oj4qZx30/uWPxJdnenctg9gb45xX0K+TVLy3Zn3yPyppc779D3505w2eQvqs7fQHUQ7cVydIHUVgNUsM0pXf5XqnCekekED+GmRDgXyO6vsO40Oer7P4EOTESvy9iwVxHcmse4EuMQLA2A+IxF8N1Ah3/P8y8B9Ca7OiCFvsjeme3mgGz81wIjHIDBgjB31/F1mReQ624kXrCuh8suwcO4Cf1hIIPOqDFArBJYODupdVy7fP8X7UIOarsg3y734tsVqUW/jbJMHHMC5qyHJ05iHxg11dsblsF36A/Tc8/A6p06AQSuAKB5xzgtvcAkwGE0OfQmd+6VkE/NiU0jEgtBMGYjD5VzogY0xfR7IVEtesJYTdSeeCpSP1iA8+BsGEsHeCUb7HX4wJkzqD4Za9RJ6PCxZcGIw6O4kWTO28XG/DgA0jMy5p7AG0zl1BebXvn+H3sFdB6KCUaC8tThwFXhYukVBgohl00exXaMLXc2SXA0dIcCnaHxbLbGfUWcnleUuTqDxpFZUmcMlsZ3aXEQdc6WAaBJIHNWCgSDsXKAgjAOoIMJPh8BfEVA3p3Dx0Zk6OqvaGo81ph1xZddA1g0n+cIKUSoRoZSPSZS1WeIBh7Nehws1vZ7+0o4Ayeunmk84zpn3TTxtPDqr7J4rChb1+ugr/WYUPabu3gaHLt4Ggq1ZqDRXhPS8UQ4+e43aJZ1PPwZAEQRQhLNzfQDgWCU7K/o4P50iDknLZdWxketePvZ36Bh38C0Un9Kj8SdYya6KnlEIOUmjCc9ooU2Qykc/nN3jTDaM3ilePU2/l44hZ/evIBy0IgFsc4WTa0FoxDc5HAEzz9847YGPsHBzl/n7s1e+qUnToLHHCevyEZdYQOAwGEAHIaTuQwBEWCFHKFkMkTQES9yhPEgSH5iQ8hNCF9c3Z4X0FFyUEBoXPaXI808obA0kc2yN8OtRvBR9rh41TUPg4ufdTrb6AJMwr2IiOuEx4kH8NjCufc67TabzD0ysimHYw8MtA4hOIKJaIZ1fOH0h1tXoVEmOv1CWTLxiHIqa6uTeQ8G4SBTDoiIVNd4eC5XUNZmXEpg6Oc9KrypTsr/AqWEC5c1LrAkeFeWmuNVkBDvbFeZOjjWdmjsF4hGXSBoFmqAScwKfVVkmTSdmaIuk/17B+AaRD8KgY/t1gqaumw/WywAgZa4gbBLOwuUAVWIllQ2Ooa2vCyN4gPSIVKe73OnuQOcdlriI6ClJY9iaCJcwtkC9OAIIWT3ijCZ1OKj5QfKEXu+XGA5EvEpq+T3VslVwp7ER8bwsmqNxVCCUTSZtIrjJTpOhc0GCQUseOh+1mx8E5YjSQhfjpg2F//zNCZ9WmCT8elbN8XMWo9PrpoFE45lbMDDP2aJZYdNzbwr999SoczeaeefC0MH1nGfFLuj9/jpEC4fBx2kTGGrSqVHx6gZGaPRmkpsjNbLFdkY0cYH0nxAfow4a7bYMdIrYyRHlaahrtK3SlMPRun9pamPsfSU0mh4caOn5yMxJQ9cJB24wlix/bjRJFe7gds+JRVfgZFXf+/X5c5fl6uQUWtKYCGb4obXTcA/r5oDPe8pwyY41m2DVu2a33hMWJ39y/crwxa/oycZNlSpYqNNQqZQSh02G+4pPfAGgWCBLConrcisV5Flr5QAbXK1y9pxFZWsHcVmvqVaz2rOTncvinXy6k7TeWgmj1nkEbFe9kH1IkxUkGriEUigiC8vD/FjUQ4q6+HDuaJgEG8ePnzVIe+Vw9doZxEeKuSKf/vzPXT9lArB21f4PRAY42oMzbpmfEbzZFHByYjUC0KvXvbMq5xs8XVh3fYlGrfvLV+6Unz3+1Ll2pcq175UufZNoK/f8n1CXrf3zBp4B4mXPVGrjWc2Vgr2Il5ZVr8jIoIytDKXrMLPKvhb17tugWgjfjhpkzvq5rGZEbUWeGWjP9VbczQHjTu0LINlbHoBID6SzpE+N5QRi5fzBFU8Gz/XYahxUVMaHXgiinhImmvSkuZRci5UNzgUOkTP6l8RJiYG4om7sDYXjp72pZCQMRburtH20zjF8qkIgOgsNgd62hIV7V38XrXPJpah5KbWlnGya4mnmnuotgU+MPlkNd/TMNToWiqwhg7fScfTT8AaffqgwD+9lztUqpB3kFkT/fNHiB81McATRIK2slS6DPv6ovuAj9triCilGBnOmUdUKIETHIplqQMKbRVhtQCsSjQgFSNQJHlNgxiLEnktziNW/Ijxj5bn+A2Ebi8sP0Dh1Kp0y7LNW5ZaFmWgnfgRXhL65ZRAmAZDe8AwODpw9NhwvBjf0z6FjqE9+wTi358kP8avAvv1CYHOPyiswnPJGj9EehYOOqvsMGaBVeTiHEec0kvfoFFLJ9iHlg2sf6Xs3B6eau1rhsFU62FDVu6SdZFC2EkPu3xjseTce3TYcvAeatB79Mi+ll7D03pbUORtWDYkNSUI332ku4vvlho8JBBGPsTjAm/sXpIb1KtncO7WpddC+gEgEI/US02KthUoDxJBY7BLdmrSVGUgq8LkdmOegYxXhKnLBLBJ0+bKTq4GxYvCk9Ryx5EcZHBlyCFq0JjLsxLZVXPNVaNIXdDsCjYVHaN05phcc0xUdg2bF6vqzPVySYvMjaMUWgPew0VgQ0YSheL9XIpn39OocIgayeApJKKQcp2xBJUHx+7dO5Yqx8SYUy13xbsneqdRV9iZaSN6p6b0GVCu5bSjMd5pU6cMK93o1CCcWEfI6lJd2v/Hd9aL3/zRrmPHdj/fQE2+ebMua671/II1cyfCPbjt+PlrF6Bqc9bDs1NCWrqkuocNG6Jv7YcXt6wxsF+VUUFAAJOJB22X9AaUAwm0Fqfs2LiJ6h2vkUuvjTg+Lnt7ypONugsbdUeXgppRBv485JJvPV1ULnoDlab0C+JzzfFRhIveXCEqu7zNGFfQmaNzzdFR2dVtXozXmevmmutGkXaZG9mOffFDTxfufxr6OjtOn96R2z1qba/NZ8TTO1ondyUePAtM7dkqObnVrvJJk09X8h4+dUpKmSZHhuLatYV1XaqL9R6cxU/O3F/RtEnuMVjlzIPMORPx4wlzx/Z/+Xv/UXMmweCJc+ClKUGtnVPouHu09MezWiQMYOOOFP+rVgBBoDSYIWsVrKq2oD46f1DzrtcgchNkn7ZBnQhaJ3dlw9g5YM3urIx2ZBQpz0T1xBDN59+Wppo4gc/9BydteGywKZhu+eKdtXl1hPIQH9pRstP258GDJ00CACmeWyIuAkAEicVpIkur8fhQ23OZd9raUgvw0RrWfyLMZY2Dq0pPrecPble1n7T6QkRUdpDNEEQwyyk06n/08EJ1AP7F05u3TCgv4AM7S/L4QufBg6dOpTJyFJ4hHideUh/QVPYuYCq34UAu4u1yYiT8TnzPEKdxMf9RBIjlk6KZDIoWDKfu4vcLIdjwDwxCZ9ChjRtuXMiaiGfAIf6wff7bbBi0Hr9/um4Pzvvm7VX8SaSRfTyNRvb/tY2+/7WN3vZtVMhe+Nrfpmi0yZL9zZg78w/8sX9R3xlrV04biqfB1AAYcS901Yd53+/ou+D+ocAdDwRWtRQAcbFUC3iS/4j6wKmx5G9I2nDiogmPl9hPtEDuUUcYXA8/Orzje/ykHgy/gR83gKHHt76A4Y3wU3hyz4Rd+BRcuHvCbjh096TdsCkesHv8LgDz+ovb8iOlPKAFHrT72YKGI7CPjA+ONBmtrtsg8oNbpdBJ8Jch8C75XJpkyu+jMZL2VWItZMzT2YAvFqwwBbuRSDHiiXLYIUULR9AgYZVaCI9OmTJ1eNkKKXNH1xgy6ExDjXHIsDC3VI+oamiyXxs9gNZ+khduq+kAJODC+IjZV5PvIiecSWvtd6B6c+nhhAUjawPy3i3kvcsK3iuoHMGUATk+MtpofdO8OjwkedUeuWACcPjoh8/Dw9J+VkM1EsSCOiAJdAWDwBRgrh9lbhNl7hFFxCbnccx2tKHTq08VKXLNbubM+WfaUEcFuWZ3tnmdbNIeRDDQa3Z/m9erENGsy05w5jC6cZ/XD+SY6TwL74r8iv9U8V/BfQP9ldVhxMmRqdGVKkbDxyOTu49Ki61YPrrRqOTuI1Nju0bjayPZs4oVoq1JBW+0Nh+pPsOPC94YO4p+lr5P/KvtgAFtK8bHVsIv2w7o365yDHnm2K7/gLaVY+IrWj/Q39Jn+JnyvviKkq/yjH9fu/7KZwGZp/K4NxwsXQQicARuzGNaChDsB8VYBkcR9wHNSPOLIqcfn31WmD/lb7ubDXQXSSayh4RIsn1gvGQMJ3soVoLx4SYJaqXIcCFSIJFrk6dWwFHO43s0qOZCLqiUK2yOt30a5YoPwM7CWgQT6+EHeX8hfLo+jCinX177otBDv7zO+RpueC/sKW5yg63xBqx3mdirYXV6gft0q+pdzluoX1X/MnqGYIP6+Nu8HxE+1hCWo+zQ2XiNdEDrAyLAQwBI7zbCyrAO1AKdOCX/BPC0c7a5PqxUmX5qLV4jHpLOkU/9oXwKbMx/RT8lfGn3KV/1U59jc2ksNjeGi81x1Yy47NUSqaVk5MJH6Jz/l+E5spf/Q3iOZNTdVsJzknfmmTN5mwqCcwCBHQCId1ievB9oL4sKOkCkWIgSCJtlLwEqjgCuN46ggL/QYA/WYT4krUlLhClkjaWpgfGR8XDgGeTzCnr2nzx0/ugd0Cd86xK8AXbsVX/YMErMIZn/vJaTOq//qnjoV7vLtCxkvVBqXD/a7gW4hxhKZJEnCCFz4R8apvqPdRyzF4fcK5FUDWl1DD6v09IHN/Zgj1DR2jswlB6pxQFNfHFA2jtTnBgwKGXYsE4jSJHAnY5pVwqrBLau0W9Y5ypI/3vGpH4TqpJigdL9sQtsagVGjujfvxcAkDEvhGoBcARxhdW8HaJ4Q75EYDQMpXXwGfw6VLDWOY0uWyRvDSWYhi0phhQAoY40GmhBFIUr/6+TaghGtA52zIHvLQriGtZg+e/4iThRMjO2CCeVU8MxijPXOCemPZOGoPBHC0XIbYQiUEo9LaOkQwWcNqEF7O4y9Ic13j1DSxbD6zcPMa53HIVv4T/we/xi2blr176x9pTMDEX7XDhJ0UCUNVCt+u8UxemZfIFco11bjU5KW6mi48y3VW/XVopBNBRwkKqNFWph1yGvoXevXaMqTR0rZ6ayHCX8DOfd6XV5lnFp8KpxS3bgUmI1cm754VXaaaTVEeA+AECLWml6skrhRrxKU5P0IQL8rrwu+bPXZZwh1aPvR+WV18XQfMzOv1Xil+z9b5TXhR6AzttmlbfAAHqDf6EitldEebPDnVgXUYWJjckcuy5UajxKhTUaHVEoZDnwdPso/0HxNk6FJ97gTS2XDzhzZsDy5rAuCSq0sCK08O1b63DyfAoE+QB9qVZanML4HifyRgKHwOQayLt1FP3UjWSwFHCc0mcqw6nCayqnuMHhHP8ldHRTu+FWbDdY+UyxM94Hx7zEL6ss75uT03d5WSgQOwBbL8MbZ88qmS3ffguv0jGvB4BmPjuBh/IOuhKUf46hy0GDlARcll7L0m+5eDJfqlF2gQ5qbFlJbShI1lpsPoPD0dqVMO+19RvU/hVaSIbbO9M6GU2zJlj1KlPOJJYvN+3fM0xKaKkZqRkmLGeEpZDQZ2kFuSZR9IUURzLeoITmA8dim+83Jwf3Re3Gw8Hf4zbwK5ZARCg3CzKI6G7YiVdJO9nuKdgNcwBQd8MmthveqrvhS7YbdpCbGaxSZg8ugs7thhLi+0qhDDkKQlq0hAvPQXvXqlJ1UE2WgQPRY6GmdfppawgJvNVCwzM//kzrkyrnFQDSQIa1zbJpFQ9uKrFVGp3asBRIgx/wFqR5PpDm+cAnkOb5QJrnA/fT5/mQ+rghzfOhz6LoR1LgFIiG/y+71BS+QRXwApYBhPrCb1fldVeygBSmhCfaG6R3JjBY1nv7qDWLuFx+LvbLRXdk6KVVEYla2ga+mDofgPDgWliM6KA/Yv5oW+ExTqnKINS2lx6sTIMiQTQ0w8ibtN7Dx1eV0VzBcS4wz4k+GZoKoKQOPMce5PHCJntNkAoTrZ0woT/C3xvewxDB8NWqShMnHN+wRUmIQjOJQInY/L3f0qCVk5Zux6U+58Gm5T+TNhHfQ2kQBzbI3vFV1RziMsX5xAPJTaC91qEWlUFioKrOuhYh9jLyLoDytqgiRNlW5IjySMV6l7YlTtFlR3NcncwhE6ZWIVCyqj2ItlXoQ1Ac016sXAQZmQJK6U13DizcI+Nn60fdngFHL391qkHVcTMGnBh9+KeUfgPGWSeNHdVrwLjePcf7NyaqQ53ze7JhyOat+N62V/iOa09o3PXjams6vm59uQ7/3d0XxWT+1qTRi/QP2TdvywCBoYTPZq2YBMJAFNgui5UqMy1ajWrzu1KFcfAgFfvkJCT6qwPpUgRga+AHMtI2PmeIVEaQ40UKiVSVY2XQ+YGMUCo/GxWfCx1HvUJESW7ZIJqIT5SawFpxrbxg9KIF30+5sKZx8s65Fcuf2btogTw1qSd2X99PaDy2AXT5os4K6LG92g3otm7v0qpn/nDeBPXdTr/8cLPXj1lGuPO7kSNyRk1blz6enLlfkDP3PTuLa6hn7h12Fpchr2vYWdxVeR09Z2dxDN6oWcbwTMnArOdtVv445nQ1/kBQq7VLuRQGgKi3mVMuGVeuUgCbnlyFGVBwN54Lx5yBX+Ip6OaZTI89n76TvDMgzPg004bzJhCfkrxYNlZzYHblE/94WjyBPzgBVYiyNfbVlOk57aS2yBhq05rK+Hd0/gP8M2eqx9a828LmjIy8twXpWGQEVxIp15+N7PeqlGvARrY/GdnuYnXy+gd1xIk8t+HqMYGWsujtUzJXDx8n1ColKbQMdMNnOSmEd9RnSjMS41nqO6vnwjiAO8C5G1aMG3vmzPApK96/FiUzrrJ6BozDt12D0WFK4xPi+vvP9+7DOwCC6QAI90i7vUj7NCZvnjnM3iPMbyN3I1C5hLR8aqeqgAarbYpQ/LsmtanCvZwGbVaajyGLtH9l2/ok6c/TcfZM1+uHYF186Gtf6I1/ddIjXwDBXADEHMnMIptSUR4rvjl88psE1SqyfG4bHS6eJHDuacu1938KpwnJ0XEyT9YtsXef4IrwRuaseGszgEBC/q/SCeLLKAXCQX/ZxOJ+tCJ6mH3kgBuaQCX9MTAq25MfmkBWA48nFKfrM7RIKVuFOs1Ej2FyS7aMyomugQqPPxJ+wT/gA6u2ZbbssNC6khauzZv2+PqBbVGJt61P0ckDu9ed9YKtYJkunhc2dZ5kOAgDN+HN+OSQ5If/tFlUIVboHHzvObZSz8tjEr/vzTzPwWCUbAgJVT0vfnbRAb6PAa6sjwEkbh9wKwAlc25ogSXOOrKuGm2FEfsQFWC+/GkJlA6baiFq5xdWRmaxevIrdOIhfjV2zLK+hhmXU7/+1RoqHpi3LyVtDr6XmumBAhzmGGDwx1L7Zi2rNO3KMPwrtjbfcGFpx6+Eq5uXuaWvobYX/k68LtGqsN1lo7rO3Xg/6r8XmFIJ48wi9Ssz/3EJoIPggqR7L2AsVH8ig2GfM2dmIviD9T0BT3z4CS1ejC5dwq/IkluE0qxzvPDtj0T7eZZ55srV25BVusdY9GGW8wTZVW2xNoqP5nObk6fcJ+cvsQQ8qSVAL+QZsQQ8b3lSS4C+cIu8oJzYPD+OPWGkl5diUzO/UiGjAJpy7mafPamV3u/dKtNy+POeoj6BPxxMvjDRc+kXP81bigr4BejZGEW8iDvYmfkIAEC9hyPzT5DXyxM/4REmjf5UXhem559g/o2mImb+jZ2qf6NkcjHVA2iwF0+snp7cHdHe0ksgggSAhKYglKaWd1NqJA6XXyOqgtNLEr2wKnD7C0rByQkIDqfqoyuvG+iLJIJwdWKptgiHo+und6+tQYvQ125kjTlDpnsYWqqWoe/fFX1rnUI6qtagf8dme6PsxGa7hIRnvs+c6q70OaWwgh1tPbU90BNEbQ9EbQ+0HyG1k+5Kx9WeKoPD+urG99XjX/tqMhV0lhohlt2ZNWLc9TUMdRoRU0QhIVBq5GolOKArimQ2CbMW10jHVGtRWROz2ZqgvuODqrWorImp9HX6fs0H9v7KyuvSBfZ6Fnldy97/l/o9X5M1xFce76lUvGFc194l8QnzlXj1/5paxpe9piOiFhsPtStCDguKj08tqDbOFyGHwUr1cel8Yb1xuzrkHy8W1h+n9f7F8mQM/MAg2Zn5knnD2Z5AxB6PLyFntbS6s07lWvXk65D7cLdmP1VBouVSFD5PnpNFKGUdLQyGePC9X/BfT2c9GH167YS5m7etSyeMupNwgNuLi+d+Hnhy2vDVS8dmLcwAEAzEo8TSZLZ8QbLsrDClkwZzdvb/vtHeAtdoX77R9iSkgot1jtAX4uHf/IzfPp5xZ3zOuknpW/CVDcSdMRrrdd9fOPei36npaetXjIMhDhl0rVYj59FItvay6wEQgSJ2JwItagv+YJpfdbJzV7IV+CqJ/XbPQkh/S/VDByADDSRUokwnbyq52ejkbYXtqk7eVPS30cnbokOAVWgAQOyrctq1lkUl/1ykUCJeC+KpwAAUVJi9wPtLgX0KOsXfhoSxmr7kCUMWCZvPWp88w//kP4VD8cYFG9fPE0agmh9b/nntEikRVBZVXTl12nqocJZpqBZMd1dXWavsLi3dXXxIiJeiWgegKLT2CpBTrqxTdp7WLsTOWhgWT88bmrsZFxlt8iJWeWg4bTJpMWr4HP8D4Y9w0JmOKcMFMTHHK0oQn5/Dr/GGhesyZ769cvE3gXThJURLJ2zaXi9j2Lmfs1DVDLxeVOrivdAM01DsZjkwS/YtX4EhEXXmsrY4+aDiTl9vcuNdJHtIErwV655jUNWzV2Vf5ZcCRzln9ucMchuiEY1XNOtxvJeXlqT8aJRqeWoFIBYB6fPD+SODLKh7i7kZolj7gH8ZhMbdm/tniyEPTj9Dl1pvnL18yZztbSTkSIvkTUfNP9XuPhblnsi5C/td6rfzwwwx5zAp4AArz3ryeO+pZbUABHH5P0rfknmNBP1kHUPvcfyJfOKUDEs7Kr4VvlAKX4pJZRwN5vVA32DFz+gZG039K8Fkv9LdqvXypH37PNMoVBSo4oHXrF+Gr+ENcPDrvN8eSG1qj5xFupxjqiSIf1/CJ9xnj0Lj1qEJ0z+tg19d+blXfZzXMqkLumk5drfjsalWfMcBNk8cu5jpVZXzfxR/JvstEvSW3W36yFwvdhBJvmKT1i2QzqOpdKBC7MY5CwI5MJ8cbjApHEMatTdebN1qIiIJ0CA0kvaawr8j1W6b0AvUPXW0INY5WMEbii+Ozp6rvXsDnR4/bNIo/EkDvc8/PH5Y/LYjWjN31bZZU7+48YeQOr1h1krYoUm75JXC9sysJjEy7V1rfEd4J+0HwaCHHBQSaluFiptEX3LjyyYx5D9PIt0ZHvTFu34POxXMnc527hi8KzIuPjQiknZv/84ta/BV/AYG//z2+WNxZ8/mg1q5Da4hLB2DxmXASTOhlCHcvvJDnwb4/c7lPS8nNhoxLGb3osnpAIJx+BKr1RNE+xEcovaDjxzz/Qh24PtRILc1/2M/yGyQSaHdMCmTwfcj9Cx88Ms7/AuMfDSk/ckTcHWv5gPbuvYnYHx4NANtlFcK/dvM2Ng49mqz5T2v1mo0clLwzG4HWewh/6U2leymUNBXBjZVXdji4gBmHvZ51G688LZT0oM4GSj7uAUpTnuOMDpYQVKpJ4gGabWEmkOMxL5c3YLunZKmZYgoIYecHsIv5yoeOFKUU/rTnh4jbxw/fZseG6/wfQ+UcxBAkEAQpNVYrklfdaVx3ji+Mg3vMHfhe6fhC1kFcKqX7BXgovTONodf7Zx6TLghCiITKuNjNmn8+zsnDZlAz0WvSgIacnLsvgPQPpE/uMe4I7vlay2zJ67+adxRhuvemf9Cm8ayxMyyISCwiO3BFbDhHOU8r5Sej6s4Ab3qOPDPJeJCfu1P9O7u/tQyoZdAf2qZ+E/xp5aJ/y3yIK+n70iil3z6jv30EkUuB939A/2JyZLgTyI5RvvierzIiIgspAcTf0luMmu5KNY55lcOoQl35+0+5ECKdJ9BJwmEcE/fFHQj58gD2Otq/x2fpotHj8FI6xTFVgEQLCZSsjmZaX+wVfZj2P4SKO24NCE+WsXKwsspWmqbaG9pqW2ipbaJ9omW2iZaapto99Pn+eQ99AUyDPRZFP1IinaKFvHBKx/OJiPRATX2pnaa/PDChI6IUBdrLBb40dK1+ZCJZHnIVIb8dGz7AQeFFI9SJ1qD+4xCh3bv+apN9rhf8RvxyDEAwWiifdNM6xDQWDaGhvGysYg3ypE3oQDnJJD91DCbRBM09AxAaNKq8EEvmya7IWTZgt+vQMuh09aHs6vP2rTnTi9zWvpKQYjNifCEaMJj4xrovRfq9sOArI7z6mF8G0//dhRaNWv1rQNdusy5MpTWl8t/KVwSW4AA0ED2DAyyr9zH2w1c9F1yVlHGPKgwnDQwhog07ecCbWoHmJ8bterRGRlkfyie3/sQ/zH6u/mWHuV7z5u+Zts01LLT+OEr26/aCav8E5DxYUGdxdUeHgjc/QBAEJr/QmrIKsAkyRKL8/DWDR/kQUUJ5Si2nIsluyGqM6s+3mBlLXjYbA6Icbg4Fft3bTZruUOdHL9yAtWfdh1xIObLurxGPYajXDiMbQqqLB05Ts+HBvkvqM+CtdLLvpW+/6dWGpF9K3mFAe7Bq4X5eEW35mljiIYrl/WD4s+WXQccCFPeSuuh3iNR1tyMfZMW1Mh9LVos1OdM/Hn5ZKWWAcPlsLLlaBv5YB8338WUgnD2KlIKIsKWzTOi+FIQfB1b0vggoryHs4KUJFlLxfcxQ4PVr4Qdb5nXXD+TjrPwJ3weGsbOguFQs+zdgjNnlm4/u3fz+fPZh+DSsUszR04/2f/5hfz2lbb1Pf+gb86o/ovmjB41Ca1DkxXvUlNpz2fvEmor1geAeZeaiscU75Jqb7VldlWKmIquSN8BCbiCUGZ+snNJidrSEWDgZjJRPsTo9KaFuGgOGSTYdrLCY+GSkeefdMKPdwgtG8vicljHiM/B1l0mtKve/Rj9q+EoELmiw0AD9KC4+81ovpguhIAGcP890OxGIn1tCZovXVFemwH69UukrXTFg4WNALAK/A5AlpBQji0R9h8JLg4RltMfPDijfwZdlz3EynCsxpO8N5iUhHfi5VYQNU0cVY84ze/RaBkqH7oNShaO9tR4NpqybM7IfpcBBJVEL9hQAwq+hz/r6fcAR1ExMKnixBD9Gs2qgcnCEdhT9Go0bfHiaX0uAQjC8HNYHRwi3xNY8D0siVbiIjM232LQpA/sIlh64+eNpywd3acvQ28kkdb0Z61xoUFfNjW0A2wuiG4GNWLyoObdkQYsWzylUeLZnrPpeA4QK6NjZCwi4AwHALRwBqzLxr6G6IVmaQB5faYLfX0mTGArIgx/jfqAvwExT0Fl2cnDU82EkYgV6FFMmxWYhWKL27TfxHfkEbnm9MRfN5q7yrJlyNeJ7HHwV/QMAUAMY5wLzXhz+b/CPpxKZNOkok8Mw0NycCpcnAOXCxtZeVQ4Gs+jY9oB9xBjWKxvMg+s5P9goaLK/XVDSbShXJTNjVNZ6ZDpWIVXTWHBpmC1vWqbWVBQjMGDcvAImE5/cuBKPIj89IAbMgQn1oFVeX/TPsxDJhQiXAOuwCQ7uVHgE2AQMRulXg2zKkTC81K6dhk+rFtyiiB2SB2aHN5hWEpHuiKW578TosBXIAJ4iIBizqEFqK+LNwtfj2Svs98LHQGzshCC5dG3ZAZ9ZMHFVf372Y6SfRVzlcm4dVxcXNWq5IIGV6hZs0KFGjUA0DD7oAM5p40glGG964JW4LiMWrdh0Wl6utJrBLuWZtc4dm3M11HkEQ809CIUnGkeKgTL7MN4U4Oi5DAPH5YSFCVH+LBU5gj6ruxyIoesq2JzW05n/iLXXEVnTsylhkdDkdO/WogcSJzqAZ8HPpINPuSmAkZCk8BkRCF4gLuD3J0Qv316ZvOkjOk7tk9bldQsY9ouq+v26TO2b50xbRccOABdGnCgY5NG7Ts0btgJXuvYmD5r1OFTnY5NGnZo36RRR9h3+s5x43bMbzh959ix2+cLE6bv2jWn0Ze7ts/P868jDq+TF5/Ut3e7Jkl9erdtktS3X2vyrE8b9GuLvr3aNW7Rr28bOtdDwCoUJBwCGqAD5PiUkVZi80PPIRgKY2E0DIAoHd+DkekogqzbGZ5wJoCgE8hEburnKHxD0LIDWKBHHjSST8IXMBLfWwgRxsIhPMETT4AL4SIAQXUwTBgkhQABONJPsj8VT4ZtM+3vMNpuukbj0BpEPOiCFgUBgNYAT14dZWcTqy2K5qP3Ug5wB21lJ52+hGgKl+bnZXsceTG+iwL8sZNgu8zJfAfpyU5Wa659DGiyFIq7hPRh5XdJuyfMwxexM/zJMtR6UwgCEHQBQBxA/PJlwGo5mOkmJdUELaNU/yzDZ3LwmDUakmOBRrrUy1AfMb0aiZ4VddjdGGiMMgrJ2R7IdtWaSxFuMY6Zg6YlhrGSJxHsJDUZtMEk8EhVsdhIAgVnP1yWgomcV6ZgwYizhVroEfz0vnnpKkjYtU3clKV5d/nk41NTUgZO08CueKcI28Dv6q3ukpXlOL2HQ/1JcyYdufT7N9mDJ66edGTSHCCBQAA0ccyvHwhCQQQZmwNcqUobT4c9SICPeutcTAqJE80uNZDUeUOgASXTjoVFUZIKbzX3hAKCPfnySaEMtaFT7VPlsFA1IR0f73Qm40spW+QIEzXM5UhHX5UT3RhqJD/6UBisMrSRH0raQn8iQ6Xo2ODw6EgYGyp1eEL+ncVncK/T98i/07AVXHQqryes3vM+MlzH3+BmY8agpwOEPZnLM7E3/Jn+kKdItOYhMS93+fLlmYfzXqynsns7yewTJDOrNbtNDlUy+0J1RNJwOq/NEHKuCXsEKx9MC/if6pazsnVysIHpy8FRXG5BAFtmpaLMXhyMiKtvTovUUsYLhi4jsASV3V/JOAiV8NW42qExsHGDiZMXGV5cumKB467+ZliUc/VTr9Pz58+ecU3Ybe1Zu7bLSsPKeWj9kRPISsp+nT4MNfgjXpqekbkQkXNiR/4rBx3Tj+OYDOsgtmOPgQBI1+nIMelTDlQCsaAawPIX1WvQ3nxBE4boNYRdI9m1HLtWYNfoXM4+K4n7xwHRlVKgwLFFKPKYHJ40nuW1MT3BgdECaRibiEjjC1T++bLn/ux5AHtPEHtPCHsexp5HsOel2fOy9NtIq+VKyKUwyVmOVW5EKlXlL9gNXcQk/4YsYi35EZT/1N0vkN94krmJD5XoD3lNiA81mcLpBUZHRmqF7b92PNN39o4yX73pd7T9845H+7+6XmbztL6nu7xpfwA3Sg09itKGhB3AD/eFDPgOxUMT6gtjkR8+XQV6ewvfwIc4LPNsJg6AP9Af8pS+Ah/mXT1L/+G1TprbtzXaa+i8dm82y9EAQFrHkKp+oJ/NYueAGrx1b+fc5txskl61D3jOTVpzhwXg3Km8U5AzNMGEPLAIklK4lyxhlLN/h2jpm4JPWOBcC6yV1h9a0FZCF3jmFN4Mm00ZC/O6Uw4t9Mh6bNRktN/a4ux5xKp2E2vVn0iEUDBfNjIvKb9z+SMu1NGL7XAqEUoqzu6SS08Bd3qlx1sgkQWBgYFRgUQWBCGOrimQ0VR42Ud0g70K9igQ1LPMAxR4ORijXbDQCk8VD24d2c8wdux7/KNGJv+cYKm/Bs02DB22hazvKXgqnIpKnbsdsiEAhkOXiXMnQQ0MDNwUeu34pLlAZHvwONmDPiCA9L80OM6XbeQJfZ25SJEcVhqqmlxqGEw7DMJ0YUFhQjJXQocdQHJqKfr7UrpSQaVo9zlKBXMw+X0wTCNOdru6lUE6KhFKqWUoFNYncxhLpAqjI0tf8WBvYMKGDNnnU5+Ss1Aj30T3kSYYRpLRomNWBQaToAfcevoi+Yd8sl/GvTonoLPPB+MFsJ5oHYpWJFh3wU57rJ9Qk7br8A6apSRUyuiW8XZGakaV8hl/wyMx3TI6weftAa3wDIBAUY6+YCCvRPBHkQ8fbIREDqptph3kRSHtrKeqNHNeGldHNxUYTzqmJWd2KDSGwkiqIATHk8JW5CJcfZWov1Ix0+PvB/C3H62/ww+T1hqtJyoiz0p/4xdRQpbk0WrUOvmg9bwLGjgJDu667qQDqyIZlP+76MuysxcDrgIpz+HsqZeYMy6K5nOaomRggslcz3xyVV3IxM5LZ1rKzp4hwJhLt4Yr66UHlV60rxIHx5IDFAKfAGZpa5BIU7C0sfGx5IfGYY1aI/nRx3noY0VftBj/s7/lkLfk3+lP5N/JK4LQ5za+tM0DdU6RU1aRH9gJ54+QR6wiP9bHCOqgY0fa62QARFIuBZhAsgwYMpI7xEpgPuWFC3BiJwLg5ot2ktXmpggmoGdEGqxgAyPV8KDUISj/BZQsaN0yy6L1yCJA7ROLkBaM0/H9I5efQCnIGoOuBuN3dy9egKXg0JArACC2XwWGIgsEqbz1zIfhNYLC8RLFaQxQhZ2Snhx0dwp0QslcmxVJZ2TSykTmiaOTIh2xVasKSv8Zg6GaoBiM8nD2qVvkH/L5FXrgD3+SczcJZ8POazbtWIQ3QE/8G/RcNzcL3fv92rcv4FwYsXTBlCwIgAjGE36A6cQS9WN26BfgmOxfrbqa8wfYTi/NrlWLq0kWTm7C1YQfZnzKbk7UVDhc1q2aWxM3IZnlqPMGprdo4wwXqHvoYJxfA0JlLYf7wWRzuHpokyecaRrImaZyXDhLDouLkqs6MZdkVbpkFTszltPWldpg1BQNYpZoUESsiTdCiX2FdmROGL9x3YRxa+c1rlO7eVLtms2gbjvU7NiO83bNK7AzsWYgujRQDBi2eMfchtN2L0mp1rxf68Yt+jarZiVmJrM1t8/XFNqVfzF7DSCK3hEGaWidxWDQX/ZUUJaeVKexWUhB9pgJjQsoupCowAJ89qSGflGRJSORgdCQjPZ4Pcv/Z9h9OhRCAXRfi66fvd1rWFp3mDVzbMbN3YNTH3TqXymiv2D89aW/ORSFyRf3Lgs/gxcN7rU6HfVu925CZOtmXwGRZk5qL0qngQB0IIDp3oGK7h1I81/oVWTXAj08knQoklsxfGVOnpGPD40qVRdUaJsO0QQsgcNiGQQuVOr3+VYODg9i2Q9B4YVOdnURsGWiroJ4dRWotYCIZqPdYl2F+ltH5cCqxyxr1+Vs7t6+bTLs3q5td3z8unW/5RpqewSuXYhqrjl5bHNyVs6xjVKvwYN69O05eHDvT2vEYZ+WkrjaIjGNznx/IUOsyir8GcAwPguNM9m5kogyOXqVgLYMHCHtgwDZC7RKGFRi9gxMrCGDU+D3MkMmmV3puDMMNiQKLO2Rp2c0rSDGDpBg4fGCmAWdUxcvTu2MnZd1WQ6nScF4NJyLxyAfnAYXWV/Ay7gqvNwKIJBJtLNlYgvG7NVXRgqzF2KcXv/uoJR9nZDC6ZXt7sThCD0/38pG9iZ6OHg52QaXWN4Eyz+pQskBg1m6LyTOhWB9hOh15NiSt7MXv58x88cZghWMWX1+D16cMR75j+g2PAvCZYugsH7+X4tr4aPDxgtlx+OXMCCNekva5r+TDkhrQCS8mH8fzSKPy8FPAEAtChMMAAAdT5vMEFt98t9p2kgHQSQKBBFoOf0M3Kp+5iD9DB/OZ5/pTT7TWNpCPhMMHNAi9pnp6md20c/w4C32mU6kbVb2mVAQqH4mSP1Mt+LaBhAYRKKRVaRXwA+UBd1ko1JR2agwurhG8UylwNWo1lwUAHvmygfcgY5TGo08HJ1p/ZTJhwIaoxWgoxr2AzZlF2MjCUq7RvK2am4Dt/X4co2u8sgMqIWBYx+TOozvIXi2YP36eQvXi/4bBNy83oJ746pnGCvhFnhYleP4u60w9G+3h1CXeWyDbtetDw9quncexGLx5cTnZN9oQWlgFvm0bLWSvH0+tlSQZPbcYiV1Xmp8K/320VMzEwAI6uO/xN1sF8ZTZy3veBe476FROjuLVEs3EyTiNhZCGqeDwmDCxDrz02rU07pe9Mm7hBqg2tYmmYvQdXR7caa1Ds1wRPOFlwL14/nbmMreRTjkaUTnZd4JoS6az2I5CQCImaSlDqCmLDg62SK/SwT9aTmbWqnYTe3XYFQJ7j5h/SH9nQVWh/7icpIDMpIWewS9iAf6mtiCtK88qAHSZG3NWuyLmBWtpVxcoAQ1jGHMqdbpEyVrWRUO2auwGEcQDyovY3NbiTqSiVOZkRR+pkFSk87IalPKyUjK0RwfSxefxhiuVOrQGgMQXW/aa5OfzF3ye8tWrxbPfTx18pM5S35r1fL10pvQ60PLbXOGW2KcvYcvbTlrm/TPtpkjjsc6eo1a3HLOVuS+jMTbjmYfOLwIggzvZRAsPXIg24LP/OWa/fD45siyvU/3fGhx2PfkxI7Asj0v9Hh8FMB8M26KFmqMwAgSZORl4nE8HDqQhEe4qIebXVahVAgQJxxZBTFzI+y7Zd0X1TwqBq/J3lijrXd43OHBm3YYlrhmSz67ThoXOj8ACPSF3qKz8Ja0oRxYIvsrSEV/FqOiGpe7AJOpjHSNIrudzww3C6rKSZ5wDipX1UtKn7BJVJiZZBAKkzkqzoLgAXnCJQ+GKhSd1KFNZizOZKIHtZH2MDJCS6fq86umz6/2qzS9TusmmXVazOrXf2aLOhvrJdWZXglWmkZeXFGv5cx+kL6a2aQ1eVWYGV0NhbYInHpyaGCbQFSvxvPo6ii0efDUE0MDW4SSe7pbMsEa4b74LfCk3Cue9iTkVMPSsitLnueSqBxYqpIzc/iSw41sFFqzyJMarcRaFe5bf1vYfcg+6LwC94B4Vfcx5/CT5fAQXPS2umVD/kaoqX5tYz6VLbUAEr4Ua4J+tL5DIvhiNdTC/fkrrWNAKZ6KkQObK1wpMwEUHootyWdDwIjCzz6yjgal7IEF/GcBIisBCA/JOSEBR1BVdnByVjHu0B7jzpsmQCmCCJQiiCy/21GExxfA5Tg1HQ+B3+FfoD/0JvCfSGsZdAe5W99Y/0RutLWHwHa4RnxHI2IgHMhASx/FMIDAMDQOEfQMi1eX51vORzWRTvVBq1FLz1ClTten9HRYNT0djYNncAI8Q2e2a3532AG8Bg4gyCaGrPgQDyaKLUWUXBBELoy9XhjYCGUnbWw0dErXZl0OsKgvAOLfZPdGgCbM79kElQeqLSfcYLvaB8yUHXz91NEz2WKYud3NkWlyQOBiWZSZIatkJHKMAXwmiVIshtU5iWbWXYwNloa602k+0dXdu2+dSN0dOCltzMBHj1DjnBxh96Kuh67WXFtl8OBui/LakZGHtKfCLxoj5drgSjBzM8D70/iGevBSkMflqbomS+MkrWONUw1Sel5L+lCh0sRml1+8sOzeDU9n94XlLFJvw+3BpHWksaP3Hq35sTQddxr6rKIxMp/zehuTnyu7EWRrAvw7/3zBTVlyU7bgpgy5KWNf4OKzEUJvSBwzGHI8WDDXfl78ip2R4CLzQ2aIzdGL3btzdiUmOEXFdu4FFyvTNXzMwMePLThVXGqxkEFI2XdSv9JxYK/hytQNGtKNDQ6bPgALR6Y0GMItQRvYdUEfS5Ob0rQnwTyaPIL1JFjhHy7SJQfmF2IshCpNX6niO6nOKAvqfe4l30N1jpUpx6m23VMmm82+2kHaO2JJrGH7cDT43KEg26ok3J4qom6UYrG9cK76l31MBtIFyoPNqRQmvS0Sd6FelIjIyBCjPrRwAGiSqrjyc9TlwoWa/byPkAV9YEPyg85XuXDLIhjor4WPPvUgPU/de/KL8nie4s3WtNXoQTNwQ/Zq3qJQV2hIetEwqLiamU3JTdOCm0Ryk1jsJi1PbsrTm6bcaWLv+obMVG7IFxYplcjMg0ROK5OrlU+kr1bTcWzclZVXy+uyY+yDVtzYqRazIQB9xnWJLFlQybjxUtOEwsgNW1vKgxdZTpqkq2PIADevM3rG8eP9enXsGhgekPNlr77DB0HjnjY/W6ZdTrNI84cPnJKGX2xN+n5/j/blr66xXKHDP3k9Gf1tGWjaonbDR3VsUH1g6sRmzYZ1bFi3Xq324zos2d91a4/koe0aNm1To+3IljOPBgxrPXHrpXPNAfACXfBw7e/SPuAKfMkOiwc1QV3QGCSB9qAz6AZ6EQk8CAwja3M8mAymgVlgHlgIL8q6RYvVmiyAhUf92LUSu9Zg11rs2oBdm7BrS3btwK5d2LUnu/Zm1/7sOpRdU9l1DLtOYNcp7DqDXeew6wIij2oq2n8DsgYaUN/A5MZCOXn8BHKZNoZcplQjF6eaDRRGfsUJpwI/nFTFR27JYDLmllHZKVobG7xliqqvB2g5B1241jY/mUZ8y5CvpLVwCRd8dozNb2vqsms42d6aB+eSTpLe0qGpoTMPyTUPyDX3yTUn5JLFZq6da26gM/fINXfNNXfMNTfNzW5i8/HOueZuueZeZAkTul+duQVLt23FNSZ7tM3tGDZY43XmmbnmCWzIJuvMc3PNU+jAmafpzOnMzGBWhrrFPfUMl8Mo90Mh7x+M1hdUHme3+mhy+AVTJjg91AeT+HZ4LGWGg0aiwMdEelJDUP2BNs896W9JfhwscNaSn3Cb58IXX/bpNxVNHtB3Kqp7vNfwtlVicvGiJrUTmzSpk9hYyOk6sHXHockDysR9OJ92Xip9KeX9UBh7XnoF41Lyuk7u3+sa9LJ2gUZrV2hATp+fH08eXa1Gct6bNPZPG5LC/sFveo0b221U94lju+EDKLxx87ZBrg0qrIGN6rdoUT+VXmASocpNbtWmS1z5vCuw+tW0tKv4giYQlhq5c+dI/OPOvMM727QWhSYj2b8PVZXvF863LBOAv86b/DHP+GGy8gAk0NX6rfaOwwhm8waBMLLTWh/Q63ViuQOi3p9cnfQmsZxZZLFxf6VgR3AUhZr6BwjlzOEFymGwTnX3uQK1uJAcGICUnHrCCSVIMQQjq9bX1JIgjDKjGgLLCDWyAC79Eb2FU3m18+qJ7gFhTbpuX7F4A7qGqpX7ompyl6irV682FUUkiprWeZXzKgu33lSr5h05u8nUjPlTomMSY7rXqE0UyF3WZqLTOhFAQF24u4Ug4AXayw4mb94G9LZT/7KNyMbrlSsbjG7MgedmIA8MGcfzkjozNFwsVDtkDGUeSoM7Cka7rTth+aGJNZo2zNoOHVYPbmuGi4ZA3371K9ds9sXw5VOGDRictISifACArwUj0IA4G5vD255aUJSgksieLXBNZGnr2tjwaPg66y7s7YE6fTF1FKudkf8OZQlBFGkHGskCi9NQi1Jn6//zLkr9la1D3HliMyL2+zGSMq8aqXRBWZnp89fCNfPTM1HWvJni/BkirL9p354NCzfv25OlPX3wwNlDAIF2+R+F1WIW8ARBoK2NpuRvHxpCOpUA0r54GeKDYg72wV/avAJxpQMS2bNhQqGXmCLcn/Tdve/685yLTzGBq5QJhcvvJE0PmDFwwJSJ8NWwO+aDz/APCfgMPi1lauHYpMQ6M9YtGjJ0PhBAj/w/hL2k7UYQDMqDvjZAfH97qV82l+i18pOyND+EXGwTI2WhrA9jUvShPneqAwTy7pZwrjtqfRFNEKuPwQRykJfAOqMcfIXPydPFvdv1GvEznvFLWq92Pb6Dve6vnT5kMOFBHzo1YGRyt2EpJ1OFzu1nR0Qs65Vx6MCq3ksjI2a1X75/v7Vj+2FDOnbp0x/1bdGnZ6uWvXoru0Y4LaYDDagmQ60DX5vAn1ucReuIAEm1UGEoc5Gdtv58DpmsDYTJYtinh8LbVXR9DifjeUxcRsYzCPRVaisy/5WXrQ3szwEf6A2nQ8kObkDleJMc6E7lKtu52fNSUuy6Vjly1FCTDgQL5Bxi4xcTIYCAy0/dYla22Hflycmzv8JEWCO35fSgubcnTxCXrRWOZn+RcGef+fGnb5rCBNjEerd5Yul5W2benQUgmEp6c4GMVykwWPYNCOQZT/ztCd8gP15a6Kqk13LBXElL4VlqSMCVX/daxQDw9KRghs8diixU3mga+5b6aIf1bXjvEUfvPDm/+1dX2W1qr9RxC0YMrFMG1UVNNuEnlW4flG9nZ3RpPy1t0JSyfgCBSgAIz8R0VgG8pezmrlPOPbOjbe1sf7sYrwwdRTWFjy9XrwQ6SAherQym2iORkGLLtELs/v051qMCqnPOegbO9IVZGfgj1IwQDFYdzIsCELQgo7qe7LkIsEgOiizNn93+9pWNoJuPGnc5RenY9sNTkGRlPYGvIalBEgijICrkaHPjDWQ35miDvD5tCKcnLgc65FjGbM78aJuKNiGfM+2DQ2GP8aO/HJLaa4rlpwPH7/ft8u0vZ078apk+JHUKfpWG1vRu26ZHl+YLDu5fmzQ3PPGr1TkHVib17tXlHKB9B0C4SvruTeSWo48vX5HY315umSAntwQdUJRfLkyto+ga2QvQSVXlVtFOQAKHyFsPd/dPHtlt3Mycd+cOf9d7DT6KJk+HWd3m1249MHXw1ps5K1rt24h/Ubx4AGWJi4EG1P6Xk4LnY5EUMcZtACTQV5kok4goQ1k5+BB86Svs771+Kz0repN1sJuMhSvwprKMjkZRWeZfnCzjeUe9+MOVlWOkNF9VPEyRutAQPTtT9cLuu9eu3Ef3rl67I+S8/HX88F/gm/f4Hyi9PfwBShi/doeN8YHvt++AbQAEDQEQnpId4wga2JTq4lii+eSsQlIaLWcBy46SVkk8ZrEKpppGoey8/ijTmiaMzciYKIxdNY6OuCsAoj/5iw6gMn/I8H+e26EAqlsQRtNAKYxGBlg1F7e24I65qAmqa3XCA+Em9JJ+fwQAYmXy/c6gDf/93Fhz38/lwKp/TNYoDwLQ0AdHDShsAQxl/0ej0jDwIR4FVz3E3+K7D+FKPOIBug8PWE9aD8FjuD5qiuqwzG8ApDekRR6gh+zmSXUxGxZmtS28JsE8fVyTixZsFpxYK5UHV/aglNCJ9qQX0sJIpYbOfmf391vfurpcPIq/24fzIMRv9+I7R2BEy0RhTN6s6i2Fvp9GCCskKW8waSSAwACA2EaZIb6h/AxxICEoSAUNgNGsjJCvjy9MvIjj9+L4SzCsW1dh8KcRyvePzP9DdCJP9STOJHp48shwfjzsMz1c7RJP7cpYiE4fv7r9t3Bk0czpi8T0vLeHH3x9WDDkvR335ZQJggsAkNYdFaxiOmVGtomI2693s8Yu08UmzUWw4jQLHiF8K7zNc2HaAAR1yQ5/RHZ4OEjmBQ1P04D8HZnaxHwljvz+RnxdW38W+/C3D4kSv0akqiEWdX+EqUe3EDoO329/7q9T5z9Y0selzZoAq5rb/3XpFn6ds3rB5GmwbMuOTcr1OrBIvry21+BOLWt3bNl3TpdlO69t6je8Cz2v5rEaqOlq3X/GWsVivJJtVI4fMnsOOXcRqRxtgMtGLihOayzKOc0sKQpuK6B5QZ3xLxa469sXL2HQReuzv0fNnTX5D+qlF9Nzdj3rhAOcEDFX+wyjvCD5cWIHppkHgyTZQcG4OFAzj5c6XDCD1b4vygfuUCSxUKM1aSk6AOiVQCHQRyoGoGq9i+1S+92diD/ENXiGn0/5eeWv0Hhkz9rle8R9mWt3obBtfzXYkHLJFVaGDrV2QmEevoE/aC7evmVpd/bu15fU8fZjWosnab2TwrjiRKUdv/14k8pZYWt35oa4MNbG07Sz9RFeANiCdS3w6+t//vod/hn6TpwzZwz+ntZkFdMv7dh1MnNQnx5jIEDUYhA7M6nlR6WWwiEvUHWuZKnF87HZlwXRATaOOkBLl2g5J4jYGb/6+Tl+AU3Pf4Ge6MieNSv3mzPW7kRh+BP+ClaB2loQwRicmy9dvP3dhTrn7pDRg2z0OjIJVp8T3dwxwstxPjCFJECPUK0EVClegMUROx61brZYUPJRYUjecnKeLBOGAuUvSmPIX3Qj5zl01/HnF7cv/P9z0VoZApG1gj2oO4WyUFOKRU8YCj3JIxwPZ8OZb4564uFz8AjPo6RJacKiTyPgEmTM6yxssr7GKWK60kJhPnkmgTIlbFnbhaMIbtLtuqhRXr4lI6Pge8QO5JkLaMZ/Dze23JdysG8ZIAcmpZDSK6QmymtZony8Iku/W2axTIPpP+JgBL9H2oV4tphu/XYxXGP9YKXuBVCOnK7NSSvcQZws2WcS2UsivoJ4gbqr51RbtPTYN9lnH+SkDe86jIzhhawLR7Z06zeU8n1SIEQr8rcELg5qv4AUtj3YKieHvNVmDTqDtpxU4XSOEjIYZUdA5fdEIje85c2OxOhGdtR+hdQCYkeLdQtZlF0t8E/sRkbKigQAqY4pxopZpNW9ZCdmwZWwS+VSDChJMdqupegfLkbZNPE1130FDipFT8NItotpofDCTRxPs4TF2Dq/ZPyOnyLo/OflP/2ORrxbv82y4XArsrO/WtmmDSyb1xlqYOTxQ/duXmp78k6T3xerK3YN28V1S1ixKtF4oCOPGVezOniJoiR2Ck2tpIiB3roDOcC/sKuYvgpnKhLbU3gkjQDlwEBeYnNwQBmFKBKbHsb0qqNXDriNePayEIogpdcIes0uU6z0ZqX27AW4ylnKy/Br21ZsvvhZiJ/buSLnCSfEp+3R3XtgPDvnsyCftk33/feeZ5dTYQ6ZRfyarIsg0NumsJ6/vc7rrjWo8tpN5HDD2iI5bwaG+DRQ1xXnqg9UEti81AS2+HiWuxZho6qYSN5aKZwKpapoOcyb4ZTkCOGWDaLm2qEjVy0DeiQPEEW4HL4NuZaSmWl61CBk3IQrr64fSR2zaN4ExW4QlpIVYgJDVdw2r97zxylwgQxtANUMIDU4IRUiFh10hWm7LO/HgU2uxCKYAsPpQ+rNYXn4kAIzaOYFmSElFZ68BL+ynsfffIvfCNAD/27Bv9OHB/ibS6g5SrQuGKetN/bRo7FNx6GRQF3fM9mJHC1DjZbPb/f/b1U5hJnWkxb0ieqd5JtQoZ4uMMSWxJAKtAcot4SjS5YQoK4mLXfABMNoWuI8WGzz6Qy8sremrw9+j+qK6fhR127WSkAo1AYEoKfMhvaODL7oihs7y1CU98EeKBWhNOWBwGd595axpCosZJSlEpQFoR0OhN9DqXiVAX5YNawEpYGzcarKWjZyJYwZf1ZrkaIoRIdCxcp6cIkMGbxyEZ/29RHTiS01qGs3AARQi1yasvnRAmfQTxZZxraKIBSZV+rf5QPPAOakMtjJp7Tk6BP5QLQDN5XURCE/nvSxad5fgmtd6xg0ty59lgknZMLGqwokVj1mByXK0MGRryNbYv+LYB+DC7CP9XKsBG6Qo65PhicULjPtob6scaWLgnOa8zIpG/7vcJAoBR9Gm/PGwFZ4v9DBugg2QdVw91WL4RF4ePEq3J2uWQAkDbMzTSAAdCvJFHBXPPbuNEdQdmR2AYX8aNhxb+AOOm7Z+rHz0J+le7DECHqGM+pAckToJJKgJhGNm6DgBd1PUId/+9HyK/4L6ghwwQEmrN4qxG3LzNwmerl+vHYjz3XYMFfr1et5rqOth/BdPRruuDJz1QpH60KnlQBA2hvxMOmNkeateJmK9yIw9wC94Y56LpPNU3BU03kAy9Jx5o530pEwPc2sQ1RHi0DUuCb9iEY/Q6NF+PNezr0/pBxoyIHHouFgsq9O/IV/8MZPYKABlvoTNsXX8MIK6BtW+xAAcTI5MYJBN1lrw9PFQBZce4vg7t15I8ItlzbVm3d66ql1x4ROuJpUoBYYpHFTSndPDw0SRaGgOnRszpR9WWv3pE/BtfYfgH4vfob+8iFcMyvwyY2IA6fPHAm+/iQoKyMLVgv4HYbih+/88bW1GdSXRNhcy5Mx9wHDZC9fP/6U4L37PISkeAoe2QG5KeLInszZgVtWhaQ8Bb7x2AKvuD4UzsNrhbl4ecbab354/jR9yqSpWSstxA2xCt+pnHv+5MmMoWOnj6tivQkgO7MrkRkIAFNlITCI51gvohO6OwvMnrQrDs5enWj2IorpBloKvIdXqhdKlit5wTTleRqnKgp8JdgAwVnR+DWq/RwXp6iMBdmMXgxrK1Yy5H31FL+Z8CLz+j+eFo/0yas2aeApXFvcuGR2ugGOO3YTRkKh25YPc74+Nm3kuf2Z8tmU6QAgEAmA5hPTCoLAeFlkcRglY9cGisb31T411YOH8jhzDFqywYMNiyEq25vvpo+9k4Bqm25IGxpPIsSenqyiW7haxS1U8+mnc7gc7ubu3DxjQnWxYo9WTgbBDYadeWqtDo3DZ0wfAYdtvYSEt7jvb3+PgluheBI6In9ilJ+pgDuN6t09VfETaB2ZH9EPLJAhs8gZjI+X97wLke8r70JEzmxuIZ1bWgdGZC9QyDssUqDCkx8ig30NLNpdozIKivmsehuoQWmhHaUDYD1KBASExhEzJg1D85BA+7eF9Fs1ZWTcaUzPLmmC4qeTKtLTjvK8epn4ncdpe1z2fAk7T1UEs/XF7zMlw1jdY/NxFt1jyzZ881jMmTQla2WOusOukpQk2Gc222BUiuI1Yl1m97Us5GNBUf8XC5AnrSlkqVFtvrr4SwueYkENLXgN7EtMVmfhXYGnzoFJWCPoKQtsnMwCdS/yO50P8DrblTpzLizLxs+6UEyVwioFkwxVZ5JeWGHdB/U3f3p2AZcTnPE5Orf4ifAPfnp+65bLiDaWTSruRFtcEe8RXzBbnsoxT6XFnsy3SBrI+W+4lcvTUioJp7Sfqt6up6o77/mKVwkbo5UKOp7BdH+imWUaNtS6CdpFlrycHAgrojq4j4s+s3J76124Ks8ZG2BbvBe+FLriy3gVgCzz8iVbh0tl6GXi2fe4yCi/8TiNnqcX4ZerrHNEbBfq6C7U0RNWl6pDyfZ81J46oAwV7bpOhY8zICyLRUBG4aAUzbrQO6cPvvArnIXXPYXlO+V0guWf4rVwzq/wb+xEf1ArVAML0Ep/rDes22gciPhYviGyojSRFWEso47XTXnArhMfAdawVFg5kj0QtOvBwMioSCIkTkWS7jyJfE2ec7VrdGGR9P3+Xsxi8bLPNy0SmCyID3+G91FYU5zgMG/SsC9zfjv+9e/D+o9Ow9922VlznEWaPm7OUpyftfa10LJtcsekhYd2rGyfXiZsaZd1B8tX7JTVvkePjmekTKlAC+7JvA7NZODkXKxnqfiIGB/9UEJisiNQKfXomoPUYSPssFisaywWZhaMzFtAdsMCAMF8AMTybN8OlJ2YZvx/c69pkMjWjoauHQ1dO5pUDW9oyU5QU1harXCNwH2DLJY+cOYTHAtfvqZrQkxnq+GCdR+AVKqKcWyXJsliMR43Hj/BOzW5pcGr8QX+aAGpYjLeU4yzEKnousVcTyzTraWrYj+9xdPwLvxc2ipo1/2AutGZCiEoXmemy9eToYdnEXlQgm4PHeis2HkETWQYtCRVhGTFmIgCQu7eVYCGb3G38Ja7IloaNF0rNw7C/b5Dlcaib/PqN17iDB2WSZWrC+vZqb9HfMNO/Qay43849fmDHthRCFENNlr4fNbX20sKALUkZ31OJj2N1MMegpoACE/YCDTkomZFIUhFTH5XB6CA2bJFO8PNNn5Ga+Q8sSzeTGSeZTKReRZ4ttLVMzAVZxF5hyoXeL4vqvJOYj3nZ+E/Sj57lxKTd6z/yo908eN5C5yTA+dYlO6zIVBGXjOKrUsS/2DrsuSR570UJU8D4yfgJ0NpzKV9Hts+3lDaYzsnrFEIOAAgfqdGy3qqGD0qlYy5fECd10DtoudOWqEARMupn/SkNRSjaMYyUewFFe0yWC9+9+w8LovNFJc54+wA3IqqlPglHEYkMFFdcJOOm/FxqkYSKZyfz+axP2lzBCKtB1r4o+gFbPUJhfvfQYlEOVBhw4dWeMvBQRLY++y5//kK/YWNj6ZNL1QfRAeqOFioBoFbKroDazU5j5qcxzMLVAcImhJrxo9ZM5M4a4YDsfmRGz/m//OjO4STUo6efoU+9g2O9LB0THWkpgwtVsmep3HcQJ5cFEF2Zx8nnVBMFjIFihETyrIGTUREsc0ERUP67PRNWlwbnpQ2Z05O97B4/nP9GdRLY39YcQsTW2Z6yjFL5v5zI6cd+xo/eTtq84fZN4/Rsc//Q2NUY5jpshgSylsy/NYuzoSzrynioGj3rtQN55rqitLkDSRFT3mezPVUp7O34QKKBu0KivDEFeON0xiJH+4Rfuly12K56wYN94sL4Pn/iemsOr6BXrw7DoGWtAY320MGEnH2NHqpqo6W20MlVt7SKzR3+iiuBAJ01ipYFV43jIYRzA+vuFU9DSaynUJawpDxaQ8vw68spHkVf4J++PUfyDUia8BGGZEY2xMcLFQ6KMKJAAJnAIQXrL2tZajyQBYvspWZULHE9naJKyW5KSoi1fQmPQvIodk/WL7/Hn2ynvxBUdgyiHMTbwBUNyWnYQjzTuxR88i4lcI7gTjfC4fn40AmvF5jcvJma8hEt4yJLh5TqgmpD2kcVT/QMlVe4rNEtAxB527SqizkjBuAqUehxSivYm8YsWr7eHy+GAUWdcY1sBdsW5wOSzUqIpNbkLHQgWkyWQgqMya3VzgHGbd4+E67Opa4cRxsO+3gWrTTfA9Zx1BtmLJux0CcpmpdqDWup3ZGVbyAqhXSVWUA42Rntgd4n2wJmF2ucirQe7IOADprgLYcpAKkPqTRhQe4cJ/soNgWLnRylErH0RDalD+G9VourwFnPMUxRFnEabWXtyQByMXPnin6Ivz75k3aDcqlDYBkZJHxKTJQIuMlCOcSih8jDeuBA+2BA+2BQ6oDUh/S/g91kFHGwBy8Hzn3hjOVXtCRF95lFui8DO/wUuoirid9qAgyZUIspVajC+NsaVs5U3KYAIl+KgjcmRMk9s4UpONIro2eEdSUCEb0wexXXHlPWuyJVGsxfa7uKSgwQOru9CJ+Z1OcnrkLBanLvW1zN+Nf8cW3t+HkxbmX4qr8CG8dOnrjcLfR1qXfH+416KJkqF4D1odlfaEAS687dzn45+cOMqwf+RKKOP9NVXxf9oBWfH3clzCg6p7N+Fx+fiGCLwJ+zdgiIkA9/JjVHHKiNYeo35TsxjS2G4fIZDMVYRIoeTfygTzI2B6dlXie4AyYa56fdDfg/BmcF8v2Ho/Qq7xjx0h7jB5uAtkWVIF6SqulP5l22U125LVLdrD/LxRKnmXQKVepvminYjLfE1Mx6+2jOj9eI8zFK1ADRcmkHqe8LYreq+r+fDVPfk2q1nkR3V+njJiuSLVMHXUc2lfLJP5zsv/jFFOg98AVx68Ilv4DVvTvS4yBYOeL55yu5MChOGvCWOc/fnMOQZVVG7q8apeUjOYrQqElAgfF38jj+jyj7R1y8yyrVylmSeYaYhLgWoWOuGjrLYAAyv9DGixmAX8QRlacMZztHSPDf/Ezxg1NsAK/DyZRNUpC58HXkQxmqGqgswfllyq2gKQXqyBJC2YyjYgWzKTQfFozU1iSj29uO7qqez9p9i8L30Nd3r4zR5rNbvlFjaMrFx3SoFX7dDDkL+eLO7qNcVn26kv8ElunZZ8OLL20dJSoP7vFb+MugEA3ov0OJD30AgHUyggM4rLGudH+T3XleI3Pvi4mLFRoWV05NguRxKtNOsbKyjX8B5ZBM14te4//EFqfObJs8Re1T89dckBj7U9yTPDT13NWvZ0LjRBOg9lnGi0tE/Xpt4sb/TbsYX6m34ifKZ3MVKrsWyrAzoIsuZZcgZtFcqYPlBNZrzzj/dH2tHL+EgVc2xZn451JrKQcOmA9LlRFeGf2V3l3Ou2uMd4izR0xZ+m8WVPJPhyN1+guzN9+skLFzus69RkwqPugrcAmJk61Vj8w2gYj55ZLr8aSkHJckMHHSYmy+FB550PlnU+qD1If0riZc7KPFHFBckhnyMvLky69iAg7RB0Wl+1wtI522pu+ZLcDmue4qyiyDvsfP2g+LYw5t+fAcRv0SCSQ5VI2NatY1nQRzIWmlEo+J7trYBq9JMtJ5JlS4iDRkSYxJMAkKCbLAFKMk8jn/NvcuhThZXWnWBSVyN0zV6GCMkNqHsnBkI47RSmFcSNDmZKN5KIpgKTQXMiiqBQ4m0iFYQJchIc4hSnIlATD+q3CpnXIBpqCdoxL1o0b1DAz02P9OF3yuMQCbAqg+UbEe7qOxTo3qXVswWcqpCK7MtjooJ477sFkrnXBQcHU3yty21PgeUWd2YHkWpBj70GH0yPKI8EjyYMOpwcZTnebLzByW4DyS/sz0pEABtLxCFYzqiPV7NCCOipBgkIwGoUHBEHUa4Df6JSv3xnWZGSs8Xp3q8dsY6dx+SAIZuI+cC0Zszf+KwLuXx83dNz1h4Er/PEf44YCILIoFTkFChnadv8XhjZ/W4Y23vH6HxjaXKOUrM2DAOkQ+l/RtEWqNG2RSvJC8TRtsUVp2oZZv0YVrEuPw5gTJzNWndrcrUPbbj3btO6JDxVgRk8sRMKKnKNrWmYePrJW6jRoYNfWnQf075Z3yAZMimicS+wnpjNmx1kyYBUNeWq+IuaklwtibvMi5qQXMye92GJxJgvE3TnQOco5wVkkdY+cbznztgvdRM4q3yNv7odTmJO6MAoDPsbgcDWUGYy2YJxzmvyDty78+uNJ/AgijEkQc/qMVPzrwYMHMztlopbXd2y9JnZ6M7ZXn/EAglokm3O1EAQiwEg+fZVPgQI+bgWGy+GpYDHYAIRkluyEbDHkWrUafoTNq4YIKspZnpPNq6Ui6Oz+x3SnyFDo2LZJo4QGXzTN2jxx7toGdVbsmjNj27qkug0ar+0Ir9WsVKFadJleE8YNiO/iU2bRoEmTB5N6CtFpCCDKcI2OCUaWd9bEJkDkXUKqGSom1czBmdo9XMYZhZxFMhNZi1oOHpyF52rguI14xhM9LDdt585+SIO9YLA/oBz3ZJS3k1b4gT420DjvYtL3REcbbJErVNP3fJBt+p4Pl77niTij3q8gfU/Lpe8VZu+lVoGP8Wav2k2mLtowa9x2zRqnL2s3atGkcXU4HS6dsavU3HETl0zu27tpvVrNywEE2pOW7xYCgCcIBK1sFBpvXsQoCZSFLbFlqTQgTnj4IT5zUrRpZyz1/AiF8P2YCFRaj9+aGg0fPXv9jPnbH9+YHN1c3yahZouGQsB09KD5kjEjV2/LiM59JuFh5YNC2rZLmtgMQFANALSVZT5H85nPvF0rkdFGtsmlom1yKdqKN2+Dybg6GoyOWeujZdOAAJLIaKwnu8WTnZ+TbLh5ve0LFYRp9AoZ8+EnYa/D8gkP82H3sMCwKPJEzg8jfk16R6qXmWyagMJMdJG5mMLY2BGNFtnCarID+ZRprU0Gr5J5Ypu1yx7ZIM4fM38D/mNDk8QxGZMmZ8xtUSuhabPJzRbEJySkJiSiuqPjq08fNG7coDo9/eJH9x89GleLqVYtJrZaNfhHbKWKVat2jQcINM7/gFaQnnuQnifbuNS87aELyF3NsD5MK2lHIXJOuPO534hfsw462+XNpVqbjDpJSxA2kVU+J1rDv+v3HZ2++cu5awU8In7ljAndyibVqN6sCUysPW/yuA1bl9fEfQxwSq91DWu0adm2bu0WdP8tQvMFZ8a750ENx2LY9pytM9BExrYngHViIhqmGU6euQM/MJIvea/UUUl0TNAmabtrU7RisiLhDiegJNQdCSoBVaLeHQSCKJAAkkB3kAKmAAfyRkqH60MUTW+2cbWc8PPRcrh4bajWplxMvKFwB2tg9omHw6f1aVSvd88Gjfq0iw4LrVQpNLyKZvjROw16dmvcsGu3+qFVKodFVIlR0a37WFyoA+fw4U8/RS7JT5xpZjm58PKrCAeUgz32wKj+ELjfKzQ476EQYF2DDMgNz82guG6ZjmoAbiLqxRagDIgH9cBypTURpAERvrZmsoHcRKj0ItlAsHGFeUWoKdluDswL7RZ1cLHbBjciPONtbYp4xqwQ5BChRrAr8cZVdZvbCF12Hd6/66UaV5FkqZmIFaLcFWwx8qMw1wRDDV2LBWUZPlevIUtU1GdUgynnxiY1jhl/5PLN9LcZX+V3a1t1xL43x1o2hCnWGlVrLJ++9MaAIa9HLhjYf9682/OE7W0H+vTa1s1YNrElgisWtd3YY834NvPKRjWZ2HrQBeesq4ZP732T45t0Gt6sSW2EtraZML6jR4exYzuzesUvxY5kVHXAH/S2kW++tuczx8ZalC4bOTI/DkM72BMhONrZn+EomNQcpk6uIM/4aMEzFNK+e8ayiIswbQj+8/SzH85DxyEh5kFpZuuopbO/buS/dPCsFW/wR1Ja2J0WHsb5v1l/sD6Db/efg7PDTl77ESCQDYD4o7SfWdG9ZW9mRVNWdtE204onwLc/eUxK2pWJz2xzNAG1SE2pYrOvaJFaMutqfVqqStECtnD4GeT2x6ffHkuo9sXqwoIpeB38YlMWvoUtaKR1gbT/9vXnvevjj2vTa3rH7Zk/dlHWxBmslrAMgFSKcYoOtAEOcGXlA/4rcOBgb80IDbE1ozV1yYO8TAP/A34AhWafPr0SWl9bv0HtXqKF1uGS2ToZTbPWsnoACJYCIBo0gLSvLVfGjS/ZWUL7tErIRGufP6gt2hR4fWpOzmRY/QGeBfc9gO+wswbkLYR7sKf1gDpW4kel6hk3yRwLND/jXEREBmzGZUl5cARqoqttE4afPu2Cer+xDkYnfkOHrE3JYIxDs63VrUagjIbwRuNNs6j+b6MB2GjIGuXBSQOKGYWWIsUzzfsDl4P5z2iqi8Y7bxTci12tloLIbiCL7BpAIxkpETZE8xz4LAreoQ1LruXOzAN6mIFgQV9gJ82DAzd9WiDgK/jDui05F08cEdNn/r2+eR7+jgDDN+eeTjx9wwab6g9ayILiByohsOnM2KR4aCqPwaS3DIddPNLUaPg3nOl2uD6jGIjptRODTtwiEFOBybbXLKZBT43BJQyXbALq2SCfosGyQFMUDZY9Mb0mD7ZwX9nBnQXLAJ91Be0MsULry4tdVUhlaLhqrsyDK7963L1j75H3r+B/oGbE+Jf4/a9DJj7/TUzfvKbV5GDvFX3X7YPIA8/s1e58ers2OySAgCcAYirD/TuBhiWkoPBqpqOSzutotx1FVFAhmaVCkEehgfX9sBPwyTZ497j1IlxyCZrwLxTTA/cpMa714kK4UlNdqawIFFJNrjRkucHVBUtbTfU2vVPmTGu+l67dL8Un6KlmHnAFetADFFaZS3R11wZqo7SKjqRJZiXCbHwgBb4B1W+kj1IYyRLd3d0D3aPcE9yT3Lu7p7hrkymWXEc0Jh0ru8lZheHRplD0dMfsOTsykxo3TMLbVqf2lczdhw/vHl8zIfb+RYDytojH8XXNMmAA3mB1ISmunE8vqeSiNtb5c2Ol5EJuXKqSuQncmtbb3LrRDUqvrPJGok+CKcnU3ZRimmJaZFpv2m86ZbplosvLJZlR6tK/wiqPJRiTjFIyDbh6k355f+4XU29ZQTHWvUiiAOLrPRrEpoUYQqPa9mgQ9WX50Erpuw+PlSY1GVjHMTrC2HRw0+gI/D2dh2Hi92JHzQqgAU4gubCnNFlDUgt8HVbUUYF1EJE/jYhDUxQUI43cEnFDf8Oy+JRxOawMC/mEIx0SH7MTbSxdTZFasqjIwlqaCUMu7Nx1UQi5fCVd+hl/WL8eHsRWgPK7ibeEBppp9u0RybeI5A8B8giUP8gckKygDPmDmkBNlIbYR0jQMJnNEJUOtD0+Zi15v4M6N4dpqYwoJ4GEtNTWSITeS2hwYdeu8zAkEy9acPmSeGvdOqhpBxEdn4HiM+GV5hZpjxGMoO1hQ0O+RwqUoiTyF0VGklDQusKGyYgBaEgDJtIG2K9rhVGPvOoW6BblluCW5NbdTUNZl2UHLQ0/ywY3VSwqrSSctPSYiFfODq3QYNeFCzuh7vhJWLt6ujR1VpMaUHxGhIVm4nTRN7hu146Nq9fR1lDb30DzDWm/L5hN2287bomOysAlaETaEY1NR2SkYedeYY2RBKckJ6TwQtN2uwa6RrkmuCa5dncl7XZigF1dFPPMiZxj22Rza2DkmUqfwqPj2erlF6/asQrTz/WoHTesdKm45j0Sy06MCIwRn61b9/Z5rW4NK5byTOjVoIJ/Qf6ddB5oQbQsFJ/vVEKKE4xWUpzQdQtNwasjnceVaJLT/6PTiY7Hv59OOnp8+Zj1/Omkbl/b06nHqi39uMOJte4puqoVSOv8Qb//W+vY8lPPF/fP50t3Y4qRtM5A4B0GZgz5uallr/k28qsRXd04fcbGpU0a1292BTaps0G7eHmrelAydxs+Ijm2Vs04/UTRu1T11i3qVKmurUVizS1ROsqSjgpaeAkAlAk87QrB6MgaUapSZqJj0l61KmVmsVUp6fu6kO/bzt4XTN9XbF2E9uQ9u6XD5D0h6nfxtNYG9buqkb+5lX1XqM138bUcksh3raftR2HsPT52lZZMuVT6BKrf2BgtQSvYu8PVv8wr9D5qbc3JBKtQSroAAoj25MKsmBKKApld2Apz4WEHAp/AK6ixAQ0IpbXhY1lteKCoT4gwC3kw/Uny98YPfs/G32+CWdBP/g1G+ZzxPpV1+tdhlydtNPvCm09w3kHY8Fq9r2GTA/jjj5t34GsYxxO68sVZO9V2B5BdGAJSZZfQsJLbLesEFyV0XXLb5RAXdnyGkIMnJCmEaFzuIYHkgUeVh2tEm56Jas+0WrVnNBgvBdTFP5qP4e92CGug/6E3MDjkdEDO2kOvnODYr2cOP0Txle4new4nPbxd4QFscfj5/RUL8MM/G+zBfy+oVgk2WAMAYraZntkbRtDIJifDmMsttaKatguvabvaq4KiB9G0kailqjZVcEGoTMKrsGq2uBefvfbLk1+hJ/7nZ8m8B5+/XCsXn8lGksen+bAsFMLyYGmA2Oh3J6tGD0JIy0Q2/maRrj4b51OA/VnoykfARXu0vgFxA+tBoIGIntQarbJqPGKl7pvwD/t34++3oS0wePdeGLQZnhp2adLYi8Nh2pVxZ16jszex2WKBTS7H34BJxy344HVpEwSLFuG1sRswXgqr5wPWfpG13wgiKMtLZGk1Bh6ay28qe5YX5iLV8xExB3tmHQNiLC9cV4yRRbuyc/nH6fj6FzV246dbhE0wZM8+GLyJ9eZSWkFvvsF7Op8b95dLDmxwsdp12PLkMWy+CTdDuGhx/trowh5BsAEAdIXxFEb/r2nHPvONXbHgxcgpUNg2fwerXj4dADFI3MBzr3GZKSVwr5H1yoA2ei911Bz5pEuXAs7Q+PjCiIpKgwqDxaC82dA6yUmY1G/8CsvY25OPfX8Bz0Jjp8MrI9rGth2ycFTqqSFHM7MPYooFcMebhcek997U5+8cxeEAsiGf/lIY8zc780aTxCEZZG+TVBjsN7JgP6CVL2wC/c+sI4XheKr8A76ef/V2zNbsg3csp2uwKP8Q778PfMD3+8/veHXr7q396ZqrhQ+LG1RGwWZc6k8J9lI24DyZBRoyHTwS20FKqFFlE4xV2QQfXLiQYy2FvrtkrYGc/Fdm4COw8VAxOM8R5cUCCPriDaIkLgB+dKxceShVtgiLC+d4c2yMDJbuylnQXCBHIMS2HvxoUcN5Vj/BYJ0cl7Li8hv89M3T/dWmfb3q1NbZg0aFwJGC9248MhEh/O771/iH4fP73tqy6HA1yirXBB8W/mTrOgKYIZ/WxXNtChLHtfmndUMO6mD1E3aIoR+XSQmZdA6mi/fQbU0ucAXBYPL/3f5TqxMnOtPyxFGGBEOSQWK2HzOuGKOFyAVCAmxu/XSkaKW9buNZjFaKbm+cNXvjyiaNGjZJ79Gg2pjyIZXa9KhfidpV0r7uo0d3j0tMjINOTQY2LTCuAAT98SoYDFYpkQNRjWYr2jfz85AlkpODVyGg8DJphjKceCmwXjYGBKpYJyee45LHiXNrldv/9uhEUEDcHehODNgn5MJtN8BL4qJ+XBNPRiCp2BSp0HsvxesjFeSiZqi1N16o4FNgF7SfevOJZ3/Ipze/viLIcV0hMEVHnPuZeK6rVujvyEDjdBym4Z1igrgReINw0AKQieVD5gYeOiQZXFTMkCDRZ5wwcLGjx5SIQkBmFilOJOBJxS7bF562ZLzwSfZD45gjt/NH3Z7xEkpoKf5r//rREeOfDlwfsnHplMzNp97eGwgNP6x9NRk/xH9/fIhz9tVYWAXmdW29/MKFc7tXXAEw/zBuCvuDTOACSqv7WhW9JELBHb2u9PQg3SMnh1FTWM0nFvaHuzKqx7gF1J2b+W6H2SPL9ewvVJOsjjdTjj2oQc3KA6DjQVZMMx1BThRPcQF5Rws3vj5YwTtCydk3k31H8+cAeAI+idFF1VnHUF+vuIG8q+lb+j2cqGHfM5p8TwD7nqTyfFWxgnfEk/hCI3EjeUffU/Qv8ZhLd/UvTSY5YF5SNiT26UdQRCs3qu/qTtaFP/uuNo/ou/hlEaS+K5V8l5t0HmqAPwDAxwauQ7/LL5fuqBD1vaRbQil6mpHisOQ+/yCZs75iNaABa0Ex92ANAJCU1oAakA74sfdV+pv/EXeCncknItg7NGDLZafPnwPK5yDJCHklfGCoon48nIiLrLCbQHITaM8a4hNoZKAIko/pE+VDDHKHQsIbH2aqG+20zPDPYtKTwoeJfGKyvRA1FwnPte7Yc/ic2W1/a9H7a/EovHBl8Lm++Pedh+8cGjPgUPSE3r3azYWRtfA7qwa9u/1du174sPvmWXuus7pBY8kszyU71pmMd/USqECocuZeEvWpDgQBIZZePTkmvnhxLv4Zh+CfIPSBj8lPjpy1RkaH16zORqgG/hVfgDWgwQANsBY+j1+6Xv3h6YWYK88fMa2pOgDCbclsp4sFFCWLLlGA3baezEGJ1nAhQ2r08ajknUkrZpO1FqMBQEcrZssGBSVoULK0HaO4uG8JtKQaV5EF0NiDPaOyWJSPgE4XKfDOsLQe+kgFSUtHSYxJuTL1q1T3DZbUC1feWDYvONKy3cF5m5HH+rz5K77UAOu5+fhrnK89+N0uXH73XaUi0iviA28BSoGmMggI5DNNuCJRRZHQan1/A73y0iGczFi0G6I1/Xh3PRUOKLH3cgezNPb8sCf40+gHyw6/cTA7LBqwaE3W9LGdu+3oTWjEgrI+zLq/b+Dsm6eCj18BCHQh4ww0AOipr0NFl5p9leieNoqr3sMjYrhEIo3oysaZPdBxNvLjzAUqPVm7TTTJPJL5VyPjlVRK2o0uaTennkyxbHRLuTrx2iho2TFvf+s2e9K3o4j1eenTUMxHMHbBgk+Zmuy76+GbVd/RHuD2IiDj7AciwBQ5MLK0iptzto1P8qWtbAW9wY6ERJYE7+I4PZRXvTlLju6yML5rHqRn8ZQKhnSMiBsl+szkosmmk+8vXk9xz0Jvn7a/3Cg+YX3SinkpZ85+tGybv79Nm70Lt6KIv2GV5VPz3F5ja3yVeWWrmHeU/hJWfas139sIX2bdAQh0JvNWT40uVwXcPHHoH7biS54JQIF7NhOhqrGdp/64+BH0nfx86aIfv0SW/ekL92Wnz9+PItfmL8DXP7ll5S2Y82G1k/nx0/P7nz5mVe5xD7EKa5MfSJV9lD3ro+xZfsPyxUjVDWvgtvL/cffS8J6J7l6T1mb3Vhl2+csLaZb17iOvnvnd6ejORTvattm9YBfSr8ubP8n6j3R/0hL8y6+R5gcrrJ+WPwFsVfUQ8klf3IEvGCp7+/mrUW+h5FVVsKUN9jhfSXBhcUj2YO+Y8S52DYXqi6ybf66fT3EjZ1DOpY+WXQu2te+4aeEuFP4Oxswa/jECiWNh7N/afU+WIf2iJwCBZHIC/UX6YGD1YB3Y3lazbLkoKm84+zgAVQKe8rlFJKC9j0VXAgUP0VwjI+mionk1BVX5oYrpR2nP8SNnOPHR1G9/toY5nF21YewX0/HvIzL1KGiuAZp+bLHm3TyM/xiZdbnzlOHC1Q0rfaavZto7bi/8SfrhC8LJDid4ANq+0P/1DjeRG5MyFyZ1h+ttk4iUV03EhuFnJ7TY2VHge/HFb/AeP5+7mqrLevd96/2148cvWjE35fTJlzkr5uxv3W7X3JUo/COMWjYlT/o1v0KZeY23r6s2FVb56HDo6w3w9zW5VBvqAACaJR2hUZG9AAigP4n8LmFMlRGgClgtl4+OYYWfmKO5vJ03qtgUK19y40s7X9bVl+VKKQ/assH0wTOYoY0B13fZEMBOdS9XQB/8AbvzMfgzFE+AQd2UlfgFwBA58YWEywatFsYR209rIoc9QYtBLTUDBIPJFF8Amvp593ctBjRtmrx38azsNY2hS/0dUy7d7pbx1ZJB+EGfZoONCXF12jSqU7WRbuuX7Wc1jUsaMGTE8pWpi1Ni8I8js55uu90zbVVTGN24etvGyQKo1uCLSjWax9RvACAAKqOrK+gpAyXj9N85BmRX0akg4xRxdI52KCvIEMPaXNW6cMxVGMAkZqkpZffDUXP8N+WEnTfPAp3Qkna4SwZC5SeVR264fDuAgKPKbu4OPMAcWfJkYylRk7uEFtqxrzmJRdmi7doq65U36aP41Co+SdvDSVTdP8ynQQPT5NEzWAoWpDk41g1FWCOccb/NF9FKoYz1mQvMzasO63kiI566AlbAX4vpK/HBF6iKgpgQjqjcOmRHeZlUO9uRy7ixh2og4KwAE2V3+ox1ypE3mO1ynYzRinJNkL6eehXrNc9y4fzLX787aLEcnjpjDuEaviZe2Lbz5CuhLO48pBflZ6bZJ5dI9slh0roAEAkGyRqWn2HWUJ8OvYbl8qYYH9H31mvYDmAPZj3vUA9WfhmigEs19nkVXnqjDjDtMj6CGff0EIEGE4xQ6uVGQiU+990Mkn6yemTTFVMWEQt/44T6K/Iu1IRXkoav3I8WxODqTQat3SnkrcL5tWgaSsPUk6uhYwK191v0tw5bPxDtqv7dBSGjl7VrDOVsZNU9xANkRmgt+3SbmkAGHi5vYx6VjGrwVID0nmSuPHk0omxUfmXkGDPMgIWKPZnt5MnOK6ByhDJXnlrQj1XuMkZTc0A80IWy9XbuTPl6u+QtRl2tW4SkvGzKdyUkZWwn//CWCwqzRVOxI+tbFxkZjHxkhEuX5I5EQ5H0bbuqDC5OrF6Pk4uyLQrcBmoeAz36BVONGNfQxDmknTRtYRduSpwI51oJgwuyFD757jxAzvFwFIhc0WGkAXrGFaEFQHwmmYE7KAUG8hbTv3iv5VsiTJaj6GW9CPk0Xj0dS845KfEBKpHBe1jRSNtgCC3jWsWDOGVQJHl2iSQlrDkJw9bD9fje+TJ5Vx7/A3/57mkeWp2BpuzAV68k38RXtyG0GgvQ40Pye5oUFfj/V32B+T/QCgcaAHxoNU8TZ/bwjgP+DI4yka6404tRZ1LWPtcFmCsjncg6zx259Ej0VrYAqdJOWcoVxFXhZohG3T5NuAA7CBY4MKXznAjL5cuWT+Jt/DwDT7LGouujUnu0yLOKtzMyMpRaGWIGm4kWXKSX28dUYqDiJAbLcdLk8qSo1FVly6rAsm6jhV0vTn33Ha4g9sPlXwjxeVeE+AxYb906fJyM4dv8VyhVSiSrYbSNX4yrw6sE7dSycdC+GKbi8peBZFcTW8+PHVNgzRJjVBZZNWyootj0NPWD/CjMPMbP5S9pF+Dsq1d/+SWudlDVxvUnTr5//8IFKRF/XJSTgWW1TChskZGzCGqo/uVPsaLaOBQBwmm2NqgHK8E4YOBxo9ku/7/evgO+imL7/8ze3b03CSUkIaEmJkBCJxAhgP3R4UkCKFWKii1YYon92buCDQkWAgRjBUxiewa7oPKwg4pIFcUWhfcTG3B3/zNnT052M4t/ef29fJi53/3OmZmzU86cORvbi5a4pugy8YpCB9+JmuYHQVfA2hDulrYfncPoKlgjBmvcLUwf2t7P6BL4XXJnNOFuZe7FMwxg/rv5iWWiWBynPdHC3iub2//EfO8JiBp5YqrIUTZNZ6i50Vot8/NUPlwmPnJ/lfmPA5jDo3+R+d28toT94i+Q5rOMcuuEoMvEbSHoFjqa2nJ+CDrZ9qOjjC6B1RKd0QSd0tg67naJuxb5e3myu48yv/diqScskqYawBjnQ5dBf0azB22N7aHdbyV6uA9d4R4bwh2zPfTHEj0jGmV0iVtKsvvRiVJ28rRQtbViqDn9SHP2i8F6u5PmXOzWWwnRgRJdQBo/XgwkNB9y12THwtFlYkcIOkdHUy99H4a2/ejOjK6Cr8WRGrqTX247zugS0V5yZzRB58l2yad2UZbFJ/D9G0Q17cHvH4+cNWkou44uE3UemgOlKnRrHU01XR3CnWH70PZ+RpfAXnpb/ei2UvZOJHtLAHMV8h9F0tzC/OwkUZNE0pwj9//f2SDRw+jNk1qk0LwbbifR3RM0NHHPDkH3CEXbUHFuCFb4sFY9Y6tKTA3bM4Bdw1KUyDYEyGiCzhd7qwepNmFJpvETy+BnSNKe6ClbcUDgiZn4BI5gMvMHmX+SMzRSb46V+SNoBDsGRzC0o2BdR1E7ruGWYSNKTRa2jI4uEyeEoA/T0V47zgjBCh/WWsPMJTCP2saP7iLbpjeNX29K3BmWK5+Yi+xD57qBEUbhLZJkAYBR6MOWtXcDY5fC2h7WfV9iezJWjV25rs4cEx56lUQPtVYzusSdKNEZTdBJonHsukPF7kCNGe9pzMmmJktrapVp3kmBxE6g3pHSBeZThe6YEI4uEzNC0Jk62uudM0OwfjmsesZWzTY1bFYAu4alKIGF1JN+dCfZIj2pRW6Rfb8ZJZlCtXzLk5vNp+qJFJRbR5eJiYxmM2xNqo72ajlLY6bWJixKPoUkv4sk96PbSMmzSfJ0Z0ykGtmnkyztAQJjll9yRCO/QttQciKx005OYTMk+2H+1Yi9k9cvpfCWOBpSm9zwabbZ9+ZbK3gkKj07RlgeKaq7b/avc1ow81I5OhdqzM0DzBuJWaHvB6Fx91BoMKCDU4R3kdKhrdo78RW7zECgW/2GDe1t1Tl31OfyLshZo1aaIOmiVar/TDM9reG8TVnf+NPwhxeisUf+MfYYvXIHnz82//Dmw6dOOePxm+MVt75p9Fwmdv9mVe8r7jVt4sh2l/U8c+JdZ4sLnRus6gMlxuOqHuc4RZHvzLHQCwphfrCuuukqUyYyGxLdZKJbmkxk0n6g1jAz0NqfYXqf6FKW2JZ+M1USbrG6SctKJGDw6h2Msl0QOC7LzfOq2rmgoPE2uxcpJy2jdZP2yFOuCp0OUwbKzi2j1z695F0hvn3movNPvanuwjUXr9pg5mY3NtItkx7qdLez/KJo7rCbnr398VUnnnzh7BHjyievethpcd/k5MY22zN15Na3Jp2C5/7yvd8YnaTWyPQuvCkmQZrvGk+mGiVo/lYniPX45owgdAG/OXyMSDOJzl0BH4Rx2zo3vvNHhTALP3NbZq4UK3RmWpERs/U6MSt0uxCpO4twqRfDV2Kyxp19EKkXjxcac45oXO2/ievrrsRcIYZoa6X2xDxTriN72AbkwkiFFnWRDVaq/HftnixxQW1WlrJZyD/qX+c/837WtiwZ4W6b+mmm+lMkc2vfl78/U5Q1M0veCJylsNtlrvozvXH3Ye/m3Ucp3CNGBzxEeDzhuX4FrwtKT+KRio9tsgiLzNF2zLwUXhFDNOaWAeaNxKzQt4LQuLMD3CZzV4rzQ3ZYqaZ/hfI6cSv0Edj32goFI5497hSZw+Uo2B4u18ZActwIXCXVDgjbeVfy2vmvjWMcFyP49ZFE34CRLs8NtUvSTcfFhkvT2+O3GltGNb7zD8anR+6N9zIuMZbGDyziV/y2s6zqCqcnqDM350w8c+sCvZTfHR+9BM7PVUV4/6CqaGK8iJjvTnX3FPzibXd5Ctf9/e7yFC4zEJpGankjtouHbYdB8fze29GCJvXKbfAaSGnV8BkJ73QuNzfy1YgLRWNNT9nk/HzFlmvXfxfvZD592ym3FDivly5MMTJjt7x07gCu+NlTTZG9O3tp/E7pKBI/fsma4r8YS5fd22LugxCyO18Mj4shmu60ssNXwosvFE01h9/ty+WosRlHjR401r2tj0i8o8TzQ2Qe4411J4K2mswLMPdh5qXwk5gMqUHm6hx6O5AZ36UxhL6G3yXmrs5TaOZuy9yVoipE6jzTJzW+S2MI3Q90uXs2yB3/xdxsrfa4QY5fYpNTznW/t4HFOFz0gMmahLTmIZuB6rGe1K7/5Ledr/2SPYVW6dHjJPqvhO4ojoMEQLdRj9F9HsC4PNqb7RZV7pFiuGYTiXp1dhdJ9CzrO9opKHQOGFqdo8JDvyPRZ9u7mbvUPZpHVLaJVFskSa1Ej7eeJG6F7gx2AN3Oh66X6CHRdsy91J0jhmjcUUJ/JNHdrE+JW6HHAWjchIY2zmRxqVWN3OjJtitBcux3isSZ2IPHe7lrqUfEDVGT5aiEDiFWoiTSmeflLPa7HFE95ij0NnqBYpkrV9WjrdUguTF/rPgn5veXGnldtL9k7+31oLhS9Cd29hKsScP+Rp89YxBq+0O06ytwN2q7ihSS5XFnsmVhLfuQRs53fkdZhpnN8G0sovxWzi6Zv1RFyIz2lfn5ZD3LFX01S2eM1kb3AhiHRxdIdDGh24gFAU05jPerSpYEswPKkk9lnu08oc7ZnQRxog3IgvnufpmPrS7xNSSLwn9svg7JQcsMMsuWMFbguqGYkBOtVPnv2qyYWjLE1JXmWJ+YXC08FZMrhz6xY2LGBbXbYuKC52bGzotdHYtc8Mz7sW0KUBRTiwj1RFFsZkwtIhTFHgnl9YOvDlApXoyvIQmW2KAkoPyB8ef4XR7A9r8y8bMYEBhR/TZsfJexJcYTelrIaJPW2J5WDGXpR+35AbbbHU6CjLk5VrFQfoHM12VZLNJEoTYTtLR1WXAmuFxokqTTGPAiYk3Cqh6cZbWGZFAXyosyVBfIPz5L4VdsKSyFb8WxkBqwFNK6h3foK3g3X3o6r7/4YKgjYZE5mszMS0W6GKQx5wSYNxKzREtdFhp3VoC7kLkfEXNC7Ju5sb3seevxu8z/CHwTYlvISdhbnUlPPAZgrsXeGUB9f03IiUS7Rk0xPsLemeih4TmAwCym+JNJUx6Tb95a1JQBpBGnokZMcBKMctSUifTm/SrzdVkWS10p1GTpSJpyqpTlXZIFNeUToUmSIjxssWyXC9AKXUi1nCsGajrYLcb7gcgqZJ5E6HFUS47jotAJ4dwVUB7GbevcuB6ZFsIsiNk53rwAZ4VCskkuBs9je1hkFbbfJMqf7v6m8HGX8V57lzlLFD7+ix+Pb2Z5iOSLYbkYpEne4yCSLy4VTSVnq29fKUk59vxAKvF0lCQh7hoTrWNl/mQvH9Zgfl9ZU8JTje4CUHjneON+wmM+7MZ8PPVETRlIki8NGVOak+QJ8nSy3r4MJAuN0/dZt0EK1LZspwYJ9adI/vFZ8XPYLl8Fr4rBms0/3fRbxOrZelZ1kqnNiWnCb/Hfycyl8Dpbq5i5OlW9+8y8gplLZ8QIy5a26hSFZZlbMPNS2C0KtZu/6QHmjYqZ0LeD0LjTAtx3M/cyMUYcp51TpNtklWOL4jTmXwZfQ5JmJUwzaQziMvpzGY+IoXgWop2zyANfLsNsZrlcxiOwHcc5zcZZnUE3gO9wrjCfsKrhMDjR91nFTH1nRhHj1c6sTbKsVK2ZilGPgnu06tSm319tZdtNNlzRHMAQ0ejc08p8Qtx2/YMNW6yi9N3Ol8bLK5cuWyEtatnzvzjiglneturkCUIYX0S2H8iteGplReRzEHCLtLTtMgdDFpyn2dkotiwl+F5DcIvJfaWMh5avFlkNl5eSU9BhN6WJk3B2kyrl8fdvZKb6XNNHjbvGR8yzP1zxrHjh7Q3DX+BN4p0lp129do3xanzYLxWR1P1vuq46vbJ/wHf3CFp3rhEDtF0BnZOpHY21HkedaYTuzGMxh9GStkJEa2dkFXBP2BkZcfut0zgWd2Fmtjen+Znt/cxcAq+TjvpXVMkm66ialczLUZajaRa5mWXh/RSvwSYDRJ5GWWYQOluz8Us0zTnIbf/G3JXi3BDuVqaPG3eTMwgdC+FuhTXV5V4s38dCjbulrcuNs8KxQmOm3nH/DyA6CXeY13p1NNbq9iQ+Tx3r1ttX2kKibyL05YDcfqWvOTah4Sx4mbTYXyPR11P7fSuuCdgHFXdP4p7mXk5nO7cSulA7CeIZ3n3ZiwVl5Br5Xvx+t497KfSU6/w2clm/rc3uNvKTzVkyaowxXWVJk6DK393GVRkz24jpf8AyAJ7ZneFmSGBRhtwCZGXIx7epP+fJP14oJJUrf5rJIZKQT1k2I3HFJzaqljdyh22H5lAbSZTTWbX8g1roxS+yM2WpBXwOnBmoaQelV9ibGhrPgRnNF1Kb62g6B9aZW5p+bCJjq0pyNN4Whg9r7VRYPgfOhIwmzCkG+2oQ+2XqCT4H7qY9wZ4s/MSV+ASdA0Mi2kxGqzhbMr8vrUQucuMyHyM2Yl27Ujs+BpkB3eWW0dGoX4Sm94Lk0dDYjsfpzMmmD2vtZGzJ+dwyjE2VLdMB64laJ2YqbrET8UNvZG6+Om6RHPMAjD4+bFkqYWlcVljbw7rKwbQzY5U9IBN05pjpoZ+W6COV1IQucccCy83oJINPgTH+2mSlL2IrrcPugxy9vUljMLI8SrOFeudHloYdqmnnoKPLxN9C0JkHQVfAzSHow0w/OpHRVXI8ytHQWX65rZ2MLoHnqV386E5G41nwRfKJRJTmUz7xzgysw1EDUHYdLU+8Gc2OzjVpOppOvHXmdNOHRck/5VNslpzRbQ3em3pfQUH29Xyixfx8NT/JP7ZY63i8KD07V+b532c+2SXsLwrL569Z2kiEfmMqoptThBHd6PxVc03/189fIez8Ff6/568LxUbf+Wv1mV5EuEtlMDgVCI6XUvPPFokqNlw8W8SBdCcfR42+1J5ncXvyPXY+8/OjsW8v1LHZpg9rbWfmSlGsM0ut1JhpvXALZOncjWOdmYXofG+90DdL04F2/nHRWsdjXekxrAM0AvCZGWF/YezSs7O00aJlzM+7nbCqfjh2aaOoRKOneRHG6m0PV/pOqkK1hU+q0vBSQXsZFKC9CgrQvkns3jT/KRWirQ/+5bMqDvB7lP+s6h++YL++syov7m/InLN4otZefDpzquzh/gorvvJ05/zw8Y+x1i+EVe/iQ5Clo2N+9HZGV4qxoHN3MQgdP2D2NxcpNFkVipxFPFco+b6kEfoubbblGdS9D8DwZpaddM7QDnK0eS5qeOgnJHq0tY7RpW4HQC30z1x8cvAPic62fmH0UncUZGmzYpRqbztFQn7LANFo9d+Ae1sAcaq1nWfhyv36vJpk0O5Itl9zrPkXtDuKUs15VMO9Num9Y5mTsLwd1H5pziMy/zp1VwpZtnvzflRf88XsBo6oulelsMSR7Dzm9YHMn0ccKv+qyGJIDvYkv33EQDbr0+OFgV7cSuPZnZAZsFnTSpXkiKj7HwrNVv2HQ1gWw0oIGQn8czv27hayydzIvctSs63XQ//C6KVQq+s2eXAQ2u7I6EewbzK0VQbNkCR7F5R9E7VAHug90baxJ8wu2AKbqAWaO49pLPLNHq7PhR2IY4i7J7IFsZ9RiUeHrCa66mhvHBipY7ubhHWOj2wxFyksraMnAIRwLJ6epXNQeV0d0bjDIX2tbNj5IMdGj6NY7+HmzFHEHJ4cR4PBa51EXutUzc7R1kWtDf9aZx1jS09nHSGZ2W5H2F8Uli38eg1pj0tSXMboZbCb9y0+tNSRLN/6Lw216lO28Eut0lZ0tNMBARc5F6nIJk0sX4Fvsx3E8mWh5Ut9UCThDy1fKk5hcF7KyfVbvhIvPa/f2Q1T09R3fzefv/PG6++Ul6V+urwuv+u08d7kdObE9/4eyTiw97Jrr74i0oysvNY/sZ8/ptHtCNB3JBmkcb71JXk16aNHcz/W2snYknO4DRmbbLAtR3kcRbYj90fa2lUfmxBtbWe08oLS56NWpF0+bvJrytKwgRsh9jF0/8KGlaaadbopXwvM7YY6vtK5AFR+oUTHbHVG35PyrwFD5isL1iW2sqr3ovybQMj8XW69Ygd53pSG+W4f5JEJKwvzj5rt4adj/rey3G2YX0f4fpj/oLtXnoteJPnfwPo/5XZ366Gj32ZHfqItP1Cqlu3355SnALaqHZ163oLpXE4Px3Q3YAsbpo8G9mDAdE9MP6/qiele/LuF6T4NaXs8pvs2eb4f8PmbtVqmC7j8V/H3wxtPITA9ENhDH9NHYXqQTL+H6SMB/vQ9jiS+x/EvWB3xywOX2IPlE6vwiZWizN2v9Infb78H3qnoUzdIol8hdA93n0KzE5ZCdyX03c7JkT3I/RqhhzO37pv9htSCMXYX0gKpq913HdRue6eU4xfUmHWIfSqb9IVWMQrbUexVl786JlfnUV0fADCPMQfL9p0HfPppjpXpCYC/yzgOP+LvF2M6GyBSh+mpGC9oqvNX8yJzFLSHc/UoGlxwY8ulNRkzayNmqnJbTUk1Mdx8JEXFd0jwX4tNwUib0DTMQ7+M1NQCkZqeUVAYRZN6RMi9YG4n+dHA11dOvs9d5SzZdNTQdiP7tOky7dKjK52vV4vrHxs1Z6gYao561VlhmPE+TotrIlZFyxk3iQvir0SSxfXPW/NbKi37Srb7uVYNt3vJNfWQ0aTd02RbdqRWxLZH/DoPfwnjue3bSXwn/xkzasEE0oIhpAW6ZzyxoxasI3SOy3rA/K0bPbDstnaORL/noY0J7k4NnSsO5U5XqsnWMPyeRT5aoGtoHL9LPuGXnf1MQHjno+g5M7sWMLZMgDoYXKHaVkEp5N/Ahwpz2+F98dxg/JJ2KmqD/FuTE5hIc9FXuV86fWlPBUswZSJNxQtVMfTo60sTf90hUjcv+P7a1x67f97icjHn3VOd+q8XOAfmvvbGsoWVC4xbR7y/cPmOi9657Ibyv5035YrTr3j4vJqPL3z76hvuv/KTMn1c/BfGpf6yV99Bht6g0rUNI7fRs3GkjeYr/x9q5ytEvn5zkVZBx8sxax36W22lNdMm8rfyByltvfnPzBLUx5iu0WcN+t3F0jZ7pYm+VBqPqWRX+OM5oqc+R1BLCPz9OW3OYC9wxOfpc4g2Z9DdAhzThgF78GJ6FKYfkniBZ/57qO0q3R80j16sjT5CYtSeTEyfAA1xq+opblXyfyFuVauQuFVHy7hVT1kXrzl3i7P/os/my7hVT8XuPGvugw/IuFXTH5st8gRkVfxyiwpcte7VTqv+wfdKcCTHlYjq2cg/MH0SwCHflqK5JDICT/LrybPlXbdeG9ViCT5fCGy3SZ6PHQD679nKx+5fufXkvuKMEVOQYSz36zHW95Lhn/QGHeF+r8nTMnBzZiOfZC4t5hN9OsnkHYp2/jrU6Bly/poWCz9/HSpuD/H4aYFy6NxlxqoQb6LWOjeh24Wd7fq57f3MXYI+bRlN5G7HNyaJH7VgGj1xAmsBy+6fC7Xz46Hwe4jfXGJMOz8m9B2gnyC3IvnPMLMhLtE2JAHaecwUoxOmbUwvcX+O3Ib+mxauyi1DSkOel8f4PC8XuyPdz/T7XDQn5pvpYoRiFTcCj19Yo77UxvdTjfxjeyuq0e0SfSnWaByhV+iegHzrpIMzB0diug0Oj4qrvTHLmaPGLLpjKfPVfbVDvA1O4zSiN5PmncNo6gu+73po9zRp1MS3fQ+ht7r1GjqJ0FMBrGwck18g/6uu1hAcbd7FdLpk22J/Y+SKtsi23BwE+wI316iNG2JuuvvlE0nWa/KJdt4TkQ3u+sAu3u+/giO3MyZ2rByZcdUFUZhu3uXNP86YhHxcoxR4+dY1mF/sjDNLcAT6XOUb48RD7t/Veb0zPrLcPF7m76b8Ie4Lal6SeLrBT/lfIf4kZxzfi/Xyx8t8fa/TW661t2GbvBS692ovH+6Ps+4mmnV/E0M0P8m2NEa1BrBNlOZHQs/kWY10ntB6WX/29l6LQ7q915PQfy7KAscR+BduNZOfBNbnWoAGTwicbW6C/+adH0JbKfZnUjMnk7TrRVpgP9D0Tv0pkv9bs0hKtwg4bb0py1tEDDeDCDDQDrS6l2Jg3YiybpSIuPiL5ufaUZaZ+4FfP2pYP0rEbLde8//qKPgJXMuXRDvg+0AnrWJSYC5QZeSb3Asw2f0hshz7bbe3L5oBAeutKqG3LKHQt7dw7d08XpUKU4zW1pVJqp15BLqfRiAbSsv2aj54hKWRMMrMJWIAtQ8zU2SPdh/42WsUO9X2UbdeW/+0EvTEvxRL4dDvMZ8hn9in1jgiI7hfF22Af48aUvcySIY8cdSfkOEt+UQbkuEWMDQZ/Lp2r3xib7SjlPprKqO51PQMn32kaRlSsyLbsZ6upwdX6ivJPMF4bzeDerCVzhRWiNHaboZWY7RyW8Ert9JOMYVlM4PSg1aIJeZolJlLYBvrATFTzAg6UTjUG9VUwnFcwiOiD5Xg959Li5F1mUr40HKpBPkEVIFeRrqcyVLoiQUA5ttYix3UAwlcBr+JgXXcGQCRl1Cbf/dqMbs+YCNveuu8FsDOj0YhF3a1BMiDXuYLVNJ6Ksnvu5olS+pKTy4CsK62auSTDqgn55rd6Uk5imtvf5agJ2lHsAdXcyO9OcipDKyNVlgGrY0qA2ujFeZo35xVx/PKk+aPYri2cg5G97hBsRD6XkjW4mqQHzlxv9HAbRTCG6I3ZDTdjTfj3YjiN1+15xG/bRSe+bseVUNqQb9AXKBXuISB8Ba/uSQ9lZD6AZ2UYg1u5RIGnh0NLaFvoITvuIRB8LZor9WhWTPSZarDFPtZLmHQObu0ErrH+L2lEjZxCYNlHezQEloHYolUcQmDz/4wtIQCwiud4OhPkOdFfxKkG+FRoEhjONoK5KpoK4L0RuvxXoEef57rciR8J3rp/RFtskqxr1Ol0BN3ur/pPcLzo15G/4OW0UEvg544WBmD/WXEjuUyjoIfxVGhZeT5y4gmchlHwb0QDS1jWKCM1lxGsSxj2J+oxzYuo1iW0fKP6kE934J7Hlek3POhK1PqeVqZ0lP3g+C+P9gK9XFnOdq76DRIol9Fz8bpku0nHHlGUf4dvtXkmwpPY8kLYry2K2sW2GfdoFgIfT0kazunzICFtjdzV8FdYrh+9ytwg7yebwFXTTU15mwf867o+4qZxrR5YnDglgEy89uK7Ga1HNOI3SicTGOanz3GmuTuQdnXcQkD4R4xSrMuyxLYhlOHbXMrlzDwpGhICbQmpTpcHf2FSxgE94q80BJSfXUYZT/LJQyavksrIUuW0EXhuf13cQmDZR1SQktI5xJUHaq4hMEnfRhSB5r3SNt4Tw95XhQ2QVoXHo2NdJF362pMmwGCNDI8AhLt8n5DPe3laV5kthivWTJM0tMHJWYrjjVzCT0aWmhRikziXuY8Ka7iW7lSksgcSJD5NzrL+V6ul388vksXy/c5AfMLaHZvA94uvRJXtLRLlzVaBI03+V5EPEpjJYuRWlyz3jF/5KEbkAXR5lxI1mx/3Ul2xX1UdA1xqzfhK5GvrZo7yT7u5ls119nziF++Cafwm8Dsfi0agdK/xiUMhG/FMVoJ2c1YK9zVWINbuYSBp0e1EjrKEjorPLdPPZcwCL4THUNLyPPVYYL9LJcw6IxdoSV0CpSwmUsYLOsQCy2he+Ccq4pLGHz6h3oJ/DZ7OsGR7iDPi3QnSDfCI96RxnCUKfUmnAmC9OagZ2qnyboswtvSC8k2vEX01Uro6tOmOizhfkKfFsKdmxDOPVSMDeHO07k9NHwSwt0lwP0scz9pNRPHadyHB7hvYO4nzfkhb0G/QJt0ZO4q2Cn6a9zdTB+3VU/ccqaZY2rMeQ3Msl8X2YWKmd71BHrX7zfrzGrkwHzzQYwYd4fs0SdwLBlE+T8i/hY55m021bnpFMofB4233+oUnur5rRiuxQ1Mjfnjdd2gWAh9I7WKfpcHue2OODo/QH2/gW2o3sklWlYaua2W2CoPElr6B2i+Ax0SwrmHimHE7b+110HnJk3ZQNx+i037APebzP2kFRHjNbm7+bntUuZ+0rzHPaDJ3TXQJr2Zuwo2ieGa3JmmX+6NxC015aw9GnPHBmbnAbujbSAzaYr7m9fzVkvzLsVBPX+z5y8iNWUVaspRlL8KvD21hadbck9NPB3cU/l0ok7hqZ7Pi+GaRTwhcDpxg2Ih9GhI1k4nkgM353KYu0qtp7Sbc81MH7dVz3aFqmwzgPWfSMx03jWX2+BFV4I8I1csNUbIEobAYnc2xKC2Tybdve3r3O+/BWyMM44BQB+++6k9fvHyxZuYv0Di30b8DsI7nh1J4l8yj1D2AsL/jPk1Ep+P+Bovn24TPyDxI5C/nvI/xvxjnBOtlyy5bxZ/9fIjtvui67pbnSnmqWqWF8dTucJ91Re7wAaFN9wNAGaNVQ0p0B5mB04DgkHIa43ElhQEv0VLA13u+sjDwcCHCFrgNQMj+DW5xIBbgYrZLCP7mNJhIJrdEEw60irbC5FvFP8gSr4U4Djb4uvff//VH34QM+9cfP9cs/j/Il+uXvOdaRaXr10b/yy+ZeE1V8wzwuWnm3S6/MkkfysD/9UqGJUpCT/a2+J/K7+AiOcJAM2h2PeOaLGxm8cM7+MPtZc3DzrqY2wmDJAdk875AUkpeL3nf29c7fz02sqVkavjfxHNjeXxE4zl5cY5FY46cpMjESjtklKMaWJzD5fiXxLgUmdzXUWFscJpLjqLbU622FYuVt/vfCzL/xXA6itbIQ2u0VvB36EsTNAZtLZFjHSytk8LeZvhffnH37u1Ue/3aDD2fxSj/pv4Dc8U0YI+uN4Y5by1CqhfIEQno7DmVezPBSK+O77BOPF7Y178ArOw/Isvyp1fjeviR8dTVDu+AmB2tdXq4mJfPQ7z16PdH9cjmerRRPrkf0d6sf2auq+/rvv886vEEZ87N4mVn4ufnSTztfLHHiuPvyuWO6nxp5Uu0nkZtIBJtYktVZFaZ5D1U9NP22tfu4//SwXqM/KJ9IN6tVg8FEv+iTyy49XP5zvjNovLxZWbnHEPGAnxX42E8khyvIvx+YE9IBrO7KRMs3WZ2vllCjRsWsg3ZjguW43ta9vEJECd/gAFtJoIOHpX3eZXnKUviSzR5iVn2dtJzhxxX3lk5YFNkdwD40E0+MJAK5gNevugeVzTXDbWqZZrlWTQaAQ+qUwvN4qDUoL8wiymVQOKTqpHfSKuflis/NJ5wFm4Uzy15G5nzg4xU0z/wpmzwKiIn2IMjL9tVJQbV8Q/MnrHb1S9TH4oKLHWemTQ/2OJW4RK3KKJxCpNEkciJHFqqpL4yKfFcZ/s2/epOO6JCueTT37Ys9H55FGxw8kS98nm3VEuXnfKxO3O0dDg/SnPgm14BVQ6BcDsg/Njd5zXct3rnauV36dxu7U2kgPDxVM3wOmnH4t2AoktQH+VdHx2huT6HdMZmO4vfy/GM8w23hwrV7m9MN0W0wtlOt+qARvapan0DTKdY62W6Q6Ynu26kd8w3RHxN8vfMzGdJn/Xo8CViZfDosDFtChwhB4DIXHgEhCtRSwaKk4XAzRbRpIePclDwzsh3KkJfsvsYWznX26eI/pBhv51Af5S/yBlbURPoGH0RIob1+3MCY2+TDPR6tNT2WToiYHiaMjQ/SyqW9ET3ZTVB8sYRU8YqgzNe4L3026ixH2HZfTynjB2YhladHypr/iEs0fiPrC+VRYZemKtux8y9IjU9ATt2XFNWkBS3SkO1/fsPktFgdqzYz0m0BPNsB5aPGg+KzpRxRzC/hhAT/QO6Y+2MfYRcm8HMMqxjInkuzHbjWteRS1lGan++CZYxiAq40wuwzvBanqq1kPt8rCMKfSEqcrQIj6z3c75BMD8CH3xPyAf/SxosM/dgu90Lu0x6iAR9yr3m4eh1g6n/CfdXwn/JuK7Uv4LiJ8pd697ED+S8l8i/gTGe/e+TnOeUKt6aIioMzPu+p+UiLOcJV5JFEesJ+1yskiy5fQ+/ZVKWor5h+ZTKnXMbIYnmUWEHorxCSWSPCOUBPs5Sp1X0jcwRT3rfMNR6rz802A4tQ1HYfNZ1m9ylouTEV9MVsKxMh/x9njE96UafoT5t8v8S9FKOI7yP2nAc2Q1L78ztwhFVuP9YyK/H7vYpjXAShIToHsTn5pOm2uv7iTjR+xWf4rUnz7yD7otNPin4i7+cGqnK0O+W5FOrYr+otavEn0Coe91f9U89jpy/K/lHP/Lk/t5lPs6ZznH//LaazTmFzuVHL/Kw68lf6sHOH4V1R/31X0lnveLpNte1KhKjjLl5bf1WVq+pPdQtpf5pRgH6U0iMKVvViZAGqvNOFoKBtOe+JmQ04tE3BPT7QJ1pwimenvijvu1PXGioFlAtkwcJR9MEn6JLZDtLMcbCpKD8j1781FSY35A/BGkGbsxv4fUmPWIn0b5EzB/ouS/HPFHB976yZL/acTPoPxTVL7TT2pSkdRCqUnDZb44P/4GNN6s70BRMtQNn83OFjkGngog56QskLeHj8R8Z7mzXeZfI/HzrQ4gb+JS/lrE3wAg5lqZMn8n5b/rbFOe5+4eczbityR6/JmIby95JmP+esLPxvwf0de7vcz/ifCFzuYGOc25hq3kpDumuzHdj9MrMd0V+D6XSouPgKNNYPpLTJcDiHGY3sm/T8L0joa0dQmmtzV5fivwTVFzkUxv4d/b4++bATh2i0pvBI6NgOn1mM6V6b6Y3gBw6PEzDv2G26HFFSH8jXhr7TsaCQ4PiSsT898cxfb4TGvff61+PSTj8cjwRWMPoTw7SJ4u+t1ZPlPPkSNBEkYLEJ6/9BnaLW3ygP5zunUjSvKdrmsk2cmqLOGQ/91ayNJvJlJpB9esLw+qWUPx9926phE+X+GNvprmaZoGAkY4xZEN5iLoBotCPkfZVibapvi/mpwmE4nBT3zbiW3Vdai8tupTeldW5/VpU7snTxoOIE/OPUvkv56ZlVeaJyMe5csM79/n1+T6CJJz8+jrwekf1HaUNJioOSxg/6CA/vSlUTuajn/xc2r9C9K9Txl3kRujAZHYbX8799q6H15c/+O5Z1x8/rqn6pY994J1/WW33OO4ix7aHSk+YfrkonnPPrZg4txune+ZdsdTKc408Wjailsmzpo1+TVroYUxIO439+E3O2eCHM2DV395ptQ+mJgUScAmSJJNsCRJTA+YGBLwE6KRwH0h35cRpWVH/r/A3Fe3FL80eNILlc794gz1JUQZAyRuRA40AxBqZ6P6F7Jgqs9rTBOL3wLVXxFpUUKLYor8G/xetxSnQyCJF4+F7bWs0eS74/wZ+fy0dY/XPf/pFV8vfOfX1BdS5l51/6NicfnNc9PEZY+9lebMEpWZInPnyQ//fsv6VdddtO6lkpfeP+/6kHHPcMZZczD6UgZZVl90/87v0Dp+h0rhIb6nz+8Q+0t6b/c6frtLBzOWP+6ZSthZAJatJKCoyOXuHqu/7GkciSAqvhDfYH4C3kUGyXmhyocyo4Ler7e86EBGmcynWEJqxIu7/vvvok50c5YE7zQjfqiolHgtX/L3bcy3dnJ+iZiD+f7bzsgDD2M+fV2E/c4eFleS31mR3+9MolfT+n0Ke4t4+MHkLVLE3iJevo14ip5DKwKVn+mNO84kHPXk/EH8X0OMTtBn4YpjbuMJ+v8DrYrBBgAAAHjafcpBjtQADAXRjP2r7PSK+5+WThiiFgheeWFLPo7j6zj4cb5yHFXVMlZ3qKrwqAKyqqCFrBfQFSqVNJeGKmoBmiaTpKstkPK6mTTdTao6mZkswnKxoOTcskWLvFVXuo9bUaiIyrcm3HRgxtdrdBZ1xj1ndYUwAAO5Hx0YYBd2rmFn53USEe9LPG4jQuAckXE4PXeQVcRBRhl3BCLOvZ5zjqhjODm7iqqvr6PKSb11N3SsszsdZl4zDOjk1NkdBM7i0l3CrnOcZ3fzafjmhJQEEiBElV3BQUBmHbhHhQEBctK/pAOKXCpHQt76F3UmXFJD8agL8giZoFUK7bffvz74VG88EvlMefhUv00ooSiaFvH56yse9JU8sUMgV7vyIW/1Jn/JBcC6hLyp/G24iKW2guWqYAE0QNLAAFV4AdcLcksIVUV2rkg1VbuCoHK+QKB2SmQXhB3ws9yxg//oT/Um/+lB7oiQASUCBoZv3kGV2IIfUbui2EBrzA4ZsEAIFiOXIqEqAIkjNwRFB2YGAVI/AaXiGZgAAAABAAAAAiMSin9wSF8PPPUAGQgAAAAAAMTwES4AAAAA1QFS9Pob/dUJMAhzAAAACQACAAAAAAAAeNpjYGRgYM/5x8PAwOn5S/qfF6cBUAQFsPIBAG+WBHt42nSVU5hc2xaF/9p7rl2dE9t2OrZt20l3bFvNuI3YNo9t27Ztd9+64wsez8P/jeU115izdvmpTAcACP0rhFeUw14GW+17VlkcC917zLG/mRGawSzvPjZ5T1HHX0ol28bgUDaVvVbU9iqS6Q+khNYvE2fFJDFZtBJ7xUYxSCwW00M/sTl0hfpWnL42nd3WmM3+kwwIN2Gua6uz/+WMa8Uq14Uzlirmq7+Mte42zniNuNPm0sqZxgdzJsjT3G0igZWu0DVdoNhP24MMtSdo5pqS6spSKVyeTs5oZy9Q1J5htFeVbL8v9aQF/LF09fdj3hrNj9f+DaRaUyZaMjHWiUnek3TUWKzNJjX0M2mhryMPWhHpz+wP+6TYXK3PZMK1fanEeLdLq0kPUMDmsNX/iOqBT7T/J/X9pykjHas1XUO/ckla0i0hWe0Ui5XXJ5ngbpO2oGjoW3LsK8YrvhlBPyb4OeT4DzPTFhIf9Nf4WdK9fJKsN1O8H+kuOntJrLOt7PW/podXhhzldLnG1/rHxEPMVD5HBa0YGrRjkWLpGV4b+cV6Ms7JP7uHk/YIKcHDDLbLxFkWfXTWBNvPDnuSGLeXyqF/2GfLlNMh1PDqU8OlcFRrssJHmB3uyZRQHofdFnl2d+QzF8cMy9Z7MuXHr2z1/Mht1oap/mOc8dNI88+R7s8lMSRPvQus8RrQ3H+CdV4ek73xxEHeKchfJE2RTpbWlbb1CqsGCrLEK0uOYrnijlNVHs5ynWmumFe727kq7eXuZZDbxng3nCW2iel2P4fNo7HijbWhTLPayrVit3TWert4VL7W9r9TzI9R/9r4ILW11hoyzCaR4Y4xRh7EBLtYa0dYY90j7wR96e8iNHDTWReVRbOo41wJkuisHF52BTkaGM3DPahoqkeNXXFnaOLCDAoaMsK9zSW3lp3hLVwOP8TloATFgm+56hzHdF5OuC53unKMU/1PkY8H/Any/TUaB9UobcUYawfZb8PFYRq6HzlgB9TWmP8W9dzz6L3qj2NWsJr9wUG950+qBK21bqwYxPRgi3Q6TWx25Cv1ZwVPUzf4THu2RfJN54SjtC+aRBsdeS8crVj+Yo+9Qj3VW9FwQZ4OCnJf8DI57mN2FjDuCL+s2qjJUP9dBjrlw1KU+1soYz6Nr/VVS+GQzqxF3M2zXXNWWB/Fms9yyJsllkD+THEc/qkoGgYFuGLfKy7F4Spy2rapnqZx1M/Um97VnFP9HaViMIXSys9Vu4v9rgDHTN+eIJWeLln5iHDG3tabXuS08pAV1Ux+/0aW+0G18SoL5HM7a0D9cENauomqp/vYaTtVU4ukc0mWbgua0MXuj3xw7ezx7HX/k3c/yvurikH1ovydse90xxDOBJ054PQ7sNPMFnPsTtqr3ju4xrqnq+rrD8YEuYyT39OD0bR20TSzfgy3MGvCD9MzWEGX8L865wiZWrvSKjPDXaCmq0Zv1cbOwNPdv9DQr8YiKwVR9eGmeneLWyA0ESwevKZqHxUALwvAa0ltT7iuqtEuZPonKBzaQ6xoGtpFLekQ7zVme+/S0XuYWjaH3pbBGO8q2/3HyHXjyQ3FMTx8lp7eTOaLcf4xOng/0tqPZa3pOxaMomqQyamolfL8W7Wjlbc4Ytw7VLUaNLDlVHN9meSGyO8vWeu/wOyo9hx1Iflelt1BHUYGb8qfF5kWzGWc7p/r0uXxJXpZturgcbpo/VSvUOSyJTHj2n9JcTpbEzZZFNHeQG73Mljo+Uy0X+loC3VvCh2D14SwH6T7iAGIasGEqFZMvPEdXSuGWlFGiVjR3YqwVJogmorBN9gtpqnm+1g0hW0kdYLSyuMsStl6llsd6lk1elh/ttu9in8iUp33KdsDTz7epv5I6YtEh75il2nczjPNf1aqfdaCpv4RCvuX1NeZ1/ZK/W164wva9yNd3Cxi5VWsamGFW0od3Rsb7kZd1eB2t1z3P6+949SuReOgoN7fRbF+p7HBpNjD1LWq1HD11J9Lp2CY4jqvtZWJcj+jNWIdA4KV0i0MlbcFgz46Yw0proBoo3p8RHfH6O2n9fYpul/niO3uUTx7hsnX7lPc197yKd2jauisc9STv51FazFBjBbtxRDRz99Jhnc7B/0vtLY9VexRpruBXNEbrlpJsl0naVGyLUHzeq8NlW6iZCifQ/5xEiHvuLxZ6P8amay8zfF/E/LQP0Sif5BET7n9r7tdInHuosjhqvtI+ilx/uscVn0l21iK2ovyfp5qrTH9dVdyKItZwXHFcDdJobzIHRZPB7FM1BSrxErRRsSJGLFY/OYFkds8+38n5gArVxRF0Tv4DGvbUe02ThGnth2jimrbthvUtm03qG27p2fNn5O83OYVP8nOHr3Lg71HNmt/nhf5Jl9h9pHi3AC9+7oJLVFF43aa9t/xioWuTXyCfjbftUWToEdiA13L+FXXU+PIaT/PiH22+HKViCX0HPospb1LA/GRchdNFF0g79FZYUB7obsCUN0lt1V7rVd+orhimssHeisI9BaaKhToLPYTQOSrHFWdMVP5nGKX6SsfaKsg0FaAPTC2z+yL+cIYvZlSwHVkv6zjb4wm5R7CmDNCM+p5bdN9LFA+rbxR+bnyRT3P/JE38k15jWqKbbGbbgLaFp2EvkVjag4uUX00Da2r3BKOjtJeCJ9x85mD8/E53kd2cx+ck8/oYzRqkpsmuSsaBd36VyaG0LZBPuIyuG/u4V8ZTY4uJka4N9Pm6GOf0ano0sQe0KSDZS+gxpL7YaA+UEeCiDyWvVpvJyofU2wiV8gbH9TwIKjx/thBUI/8uQA1PQjm03lnKNYqTupaUhWj6QP0A83nofQGA78H/jrpKwb6RRCci8HW74NexZ4APcyQyJfxUiFls9TUWK2fMl0eplSR3Ck9NPdnyTzzaOQB92O+jJj1/Rixwb3ivagbvEaLo7/RTOhutDWegtjEu+CX8Eo61wO+43MY3c2caH5ikTkZk5yhNzA/2trWx+/4Pbo7uC78AWsj71kfa6M+kNPoXuYzD0hcsha+Q38T//gV6hI+EP3NbyyWfbbYxj8nfHVRt5j8RmexJvyj1Sdbq60D74LfyNLQ8i29tWub0dj1Y+/of6tbzIGv4TzwGvgDXvv1z3LI6hf6FD8G7Dkbm3WwBmOrHabrjfEpeAnOnX36jL/Bg+Br8B54am9dHstJe59d/nv9ltfx+rIz7HvODp+rvEzvekRIHYUbxifL4dDvzf/+jb26aH75b2yx9RsvyarR+EA7f3KB+DUPQ19KSZHLQL+LxdrK95Ra8ileTvZZPJEXxD65qh40Jz7B/29H1z9btf5w5W7Ko6z3WR9K3kltPVv+S6mg+ZoZ+frzdfKMqmrvaR7dIuOy9q75svLnVXKX/KMfEy/G1k+tNxone+NIyyeb22qQjmW9bqjfw+z/IWqOseWu9Z6Uoz+rJOp9SemaUkwGR0vL8PgRrTs9pVD8u7zkO7QbtZ76SZ1Gz1PL0flWt9H/1GPzCvQeXvMc+pS6zXN8br0AfW7j85vEHM+9cdULMDY9iPEZG93N93zGHOhxnmO8hGfY5mahGXmeeekFBn7v5xJrYG7NixG/ACsY958AeNo8wQNwGwAAAMDYturYtuvYzmzbtm3btm3btm0f9w8AAOr/PwmwHWgGrgE5QZdAL8FUsAPcATwNvBV8BvwOAofEIQMhF6Ee6BjoO1gY1gf2EZ6Ft4MPhi+Cn4K/RHgQb5E65GTkC5QS1QG1HE1D10f3Qq/FQDBCTBfMBiwCG8PuwNFxA3FrcO/wxfjO+BP4HwQNIUVoS5hM2EW4SvhKbE88R+KSBpJekR3kHRQAxUQZQrlN+UZtRF1L/UNrSDtMB9Pb0g8wkAwTYyjjDJPC9DPHMBczH7NkrPqsPWwVezL7K4fG2c15VTCpEFJIKJQXPisCFTmKBhZdKg4VtyveUfykBFbiLulUsrfkZMnjkr+lzNKepffKCstmlL3l1uMV88bxHvLj/M0CqWCkYIngi9Al7Cs8J5KK1ot94t7iRxKfZKuUIW0lPSL9LMvIhslWyXbInshhcoe8s3yH/LVCoqhRNFa0UcxXXFC8UaKUAWVG2V+5ViVVpVWzVafUSHUf9TWNS7NVK9fW117SuXVzdS/0LfXT9R8NDQ2bjQRjK+MhE8LkMW0yE83dzO8sFZadVrp1gg1l62O7aCfYm9sPOFSOZY7XTqOzn/ODS+hq7Vrp+uT2u9e7/5T3rsBXtKy4VRmr7Fl5oaqqan/Vj+pI9YzqBzWOmjY1M2r5tbna2bU3PcWebp6bXr53uq/Y18v32d/V/yaQDxwOAoONgodD8tCGcCA8I/w8EoscjJqiy2O62L54JP460S7xIqlIdk4+SHnS0PT+jCuzP0vO1s9OyW7IvsgBcrTci3w+3y0/Mf+7zj++4AG6kQQAAOjatm3btm1VcRmWQW3Httmp21FmMnta27ZtPfv+P3jsxLEfYRPCBGHnw26HPQ/7HN4m/HA4FNE7gh0hjCiMuBi5IlIX+StKT1pIWkvaSTKSHpLekn6St5HV5JuUHZQgdTBVRC2iymm9aAU0Kc1I89Ia6WPo2fTb9FeM1ozujMEMOuNE9N7o4zHzYpQx32OjYy/Ghcfdi18RXxn/MGFBgi+hKeF4wsf/+ZPZjtmDOYg5i7mPmcLUMOuZOPM0qwNrPcvBOsG6wnrC7sK+xf7GGcCZzFnOyeH24Hp5y3mbEycnliZ1TXIn90guTH6QsjO1dSojrUXasbRg2vW0j/we/El8NR/jfxcMEGwV3BaOEvqEr0XdRFNEZBFLpBbBon/T56TnZvTJyMz4mIllYtm87Ls5s3KO5dhz2+Xyc715ffOS85D8ZfkV+XhBr4LNBakFeOGQwi2FBYU1RUOKuEXni4cXs4vdxT9KRpaQSpQlNSUfS/eVlpS1KqOWEWWvy8eVl5QjFd0qVlSIKh5VLq80iFuIWeLHkmOSgOSNdJPUKOsnK5edkA+VU+Ru+SPFRAVdASi7KgcqqcpLqr0qj+q1mqe+rFmokWmnaJdq5doHutk6ru6hfpPebxhpqDEuNp41rTXVmD6b95p95uuWg5Z6yynrXGuKbawt3/bCvtSeaccd7RzbHCZnJ+cmJ8kJuCa4Elz17gHuHDfgaeWJ9PA8BR61x+8Jeq54Xng3ept8HXw03xnfd/8Ov9H/MLA0QApcCDyriq86W/UT6A6MAGYDa4C9AA1IBUoAM+AGqoFm4ARwGbhdvaFaVo3XjK1JqrlSu6dWW9emjlL3T/3q+s31DxtmN+gaXjXSGi82jf9zepOk6VvzoWYN2BocBM4EN4BhYBJYDmpAB4iAl8CXUHtoGDQX2gKRoTSoEnJCKHQZegN3gIfD8+DtMAXmw2LYCSPwFfgt/BPphIxEFiDbECrCRyoRJ4IhV5DXaHt0KDob3YJGoSloGepAEfQy+irYNjgkODsow6Zj67CjGAcrwAxYPXYKe4B9x6fia/BDOBPPw3V4bWhEyBoCQ+dCT4kWRH9iGrGWOELQCCEhJewETPwmCB6gxIYBAIDOtm3btm3btu2H2bZt2wvqJk3aYLbt7e5/du8dSACyg3KgJmgCeoPhYDJYBvaCk+AqoOAN+AHjwyywJewKB8IZcDXcDg/DWzCE71AClA2VRU1QXzQNrUQH0Bl0A3H0DifA2XE53AR3wH3wCDwFL8d78Ul8FSMc4LdGPCOrUdpoZPQwxhuLjN3GFSMw3pstzNMmNh+ZP61UVmGrltXRGmHNtzZZJyxg3be+2Sns0nZne5g9195gH7Pv2Nr+7sRzUjkFnRpOO2eYM8dZ5xx17jna+eomd/O5Vd127lB3jrvOPe7ec5X7xevsjfIWeJu9Ux707ntf/eT+JH+Jv8u/6Lu+8r+QZCQvqULqk65kDJlBVpFt5DS5Thh5TH7RNLQwrUM70/50Kl1B99FTFFJKX9PvQYogX1A1aBcMD2DwIPjGUrICrDpry3qwIWwCm8OWsA1sD7vBIHNZyB6yl+wj+8nj8CQ8Dc/C8/AivAxvyvvxqXwF38+v8pA/5C/5R/4z7B9OD1eHh8KbYRh+ipJEE6IZ0dpoa7Q3uhKRSEZPojfRF5FMpBPZRD5RTJQT1UQ90Uy0E93EWDFVzBWB0OKZ+C8zypyyoKwlG8mecrxcJHfKC9KRL1VclUWVVpVVbdVc9VPD1Fy1Qe1RJxRQ99U3nUJn0Dl0Rd1Kd9OD9Dg9Sy/S6/Q2vU8f03e10k/1n9iC4AHAkRgAAODbtm3btm3btm3btm3bNpdRr/Gmb9yMlcoqbNWxmlhtrMHWLGuztdu6Yr21uB3fzm6Xs5vYfe1p9nr7hH3BvmF/tLWT2MntVHJaOAOdmc4m57TzxAFuTDebm88t5VZz27pD3LnuVvec+8zF7n8vg1fCa+z19aZ5670T3kPP8377afyifgO/tz/cn+yv8g/6N/x3vgDxQQ5QAbQEA8EssAmcBc8BAn9hQpgW5oRFYR3YGY6BS+BeeBW+gxzFR9lRJdQGDUaz0EZ0At1HForgxDg9zo2L48q4FR6IZ+D1+Bi+i7/ggCQiOUgRUoHUIS1IfzKNrCWHyQ3yhHwggEjyJ5QglCaUI1QgtCBEogpHDY56Hi4WnhB+QHPSCXQGXULX0W10Hz1Gz9Fr9B59Rt9RxuKwzKwUa8z6sKlsHTvOHjCX/eKpeRFel3fjg/g4Posv45v4YX6e3+bPOeI/RByRQmQRBUQZUUM0ER3EJLFSHBBnxA3xRHwQQEiZQGaXZWVN2VR2lH3lSDlVLpRr5U55VF6Ud+VL+VVCyWRE/lVxVVKVVmVVeVVRVVZVVXVVU9VPTVPr1FF1Vl1V75SlIjqxTq0z69y6sK6lG+lWupPupQfpUXqSnhUkDToFF4ObwdMABL9MLJPMZDL5TClTzTQy7UwvM8xMMvPMKrPNHDLnogHJW6nfAAAAAAEAAAUOAI8AFgBUAAUAAQAAAAAADgAAAgACJAAGAAF42kzIAQYCQRiG4fef3WZtOztoAwmBRWhBhKQbBAlU6ARdIBCAgASgM3SQDhMIJPgwwOMBRrbCAIAOZMPTyY6CuZwlnyfu0bCUPZGNXDDhIJd4LnJFn6scaLjJNTOecmTKmwzLS+DIVzaC7WRHtJOcJZ8n7tHaWfaM7SEXrO0llwT7yBVD+8mB1g3kmr1byJGtu//bIIPV5mEgCH+Psg/QyHF6CLSnYEIJhB5c6F21VVvUkYykNPTtf1c2/WsocxDDzM6OtvLjV7Bdn2S3LUt58r4bjJxco+QwDFJ/S1FqE034NK2q/ZtPvjbdddDh1YRovZOdKu/3j98B+1nfLIaZiY2iJQXdmosOH+LflzVqfhbS+EvVBxuT1U6mSRNS9O5sG+OiaeXqWhMk9UYOo26mZ1Hu5H+NbZ/S+FAUt9tN6exSPnTFMDtjcT5Vx+eX42ZyUuEZ+SJg6ehJCDu2lBOEJ/yEjgGDcMLRoBAODBOE+mcqZmaIGAKfGFoUNZ43PAmf1Y4rA5rAa/ZFLB6XdypK7tnz+NNgv5rfrBNWmmBzA42QCGhaDJfs+0DwvLP+jVqxtdLguVDRE3JuwqJzy7wzN0/E3PyMpcHgiPnPwhWXt4fcpcfke41omoWtZ+6QP6+xpSdNGHmgmHDLUOhfWQpPoKNgWGVGCs6cqDjyzAtHNnPmP4FbvoAAeNpjYGYAg/9ZDCkMWAAAKh8B0QB42trAo72BQZthE6MAkzbjJkFGILld0MpAVVqAgUObYTujh7WeogiQuZ0pwsNCA8xiDnI2URUDsVjifG20JUEsVjMdJUl+EIutMNbNSBrEYp9YHmOlDGJx1KUHWEqBWJwhrmZqYFO4yhK8zWRBLO7mFD+IOp6bm7qSbUAsXhEBHk42EIvPxkhdRhDE4ncw0ZQF6xUIcIS4imGTEDc70AMKrrWZEi6AiuWYCkAYBoDoqwL2DikOKiESkBAJGYC5EiqF92IEKUgoueVPd6G1nGEwoNdyxQEOEx5Y0Gq5Q8FgwCa88EGT7AwmvLBAJWOHvmfnyQ9THFWSAA==) format("woff")}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:local("Roboto Bold"),local("Roboto-Bold"),url(data:font/woff;base64,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) format("woff")}.icon-vpn-lock-grey{background-image:url(data:image/svg+xml;charset=UTF-8,%3Csvg%20fill%3D%22%23909090%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M22%204v-.5C22%202.12%2020.88%201%2019.5%201S17%202.12%2017%203.5V4c-.55%200-1%20.45-1%201v4c0%20.55.45%201%201%201h5c.55%200%201-.45%201-1V5c0-.55-.45-1-1-1zm-.8%200h-3.4v-.5c0-.94.76-1.7%201.7-1.7s1.7.76%201.7%201.7V4zm-2.28%208c.04.33.08.66.08%201%200%202.08-.8%203.97-2.1%205.39-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H7v-2h2c.55%200%201-.45%201-1V8h2c1.1%200%202-.9%202-2V3.46c-.95-.3-1.95-.46-3-.46C5.48%203%201%207.48%201%2013s4.48%2010%2010%2010%2010-4.48%2010-10c0-.34-.02-.67-.05-1h-2.03zM10%2020.93c-3.95-.49-7-3.85-7-7.93%200-.62.08-1.21.21-1.79L8%2016v1c0%201.1.9%202%202%202v1.93z%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%0A%3C%2Fsvg%3E);background-repeat:no-repeat}.icon-arrow-back{background-image:url(data:image/svg+xml;charset=UTF-8,%3Csvg%20fill%3D%22%23373737%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M20%2011H7.83l5.59-5.59L12%204l-8%208%208%208%201.41-1.41L7.83%2013H20v-2z%22%2F%3E%0A%3C%2Fsvg%3E);background-repeat:no-repeat}.icon-help{background-image:url(data:image/svg+xml;charset=UTF-8,%3Csvg%20fill%3D%22%23373737%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M12%202C6.48%202%202%206.48%202%2012s4.48%2010%2010%2010%2010-4.48%2010-10S17.52%202%2012%202zm1%2017h-2v-2h2v2zm2.07-7.75l-.9.92C13.45%2012.9%2013%2013.5%2013%2015h-2v-.5c0-1.1.45-2.1%201.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41%200-1.1-.9-2-2-2s-2%20.9-2%202H8c0-2.21%201.79-4%204-4s4%201.79%204%204c0%20.88-.36%201.68-.93%202.25z%22%2F%3E%0A%3C%2Fsvg%3E);background-repeat:no-repeat}html,body,#app{margin:0;padding:0;height:100%;overflow:hidden;font-size:13px;box-sizing:border-box}#app,textarea,input,button{font-family:Roboto,Arial,sans-serif}*,:before,:after{box-sizing:inherit}html #app input,html #app textarea{font-size:13px}h1{color:#909090;font-size:18px;margin-top:25px;font-weight:400}a{color:#3e96db;text-decoration:none}a:hover{color:#373737;text-decoration:underline}.buttonGroup{text-align:right;line-height:27px}.submitButton{text-transform:uppercase;letter-spacing:.2px;cursor:pointer;font-size:12px;font-weight:700;border-radius:2px;padding:0 10px;line-height:27px;background-color:#3e96db;color:#fff;border:none;margin:0 0 0 auto}.submitButton:disabled{opacity:.5}.submitButton:disabled:hover{cursor:default}#sidebarContainer,#sidebarContainer iframe{width:300px;height:100%;border:none;overflow:hidden;margin:0;padding:0;box-sizing:border-box}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background-color:#fff;border-radius:8px}::-webkit-scrollbar-thumb{border-radius:8px;background-color:#dadada}#aboutPage{height:100%}.aboutComponent{display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:-ms-flex;display:flex;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;height:100%}.aboutHeader{position:relative;-webkit-flex-shrink:0;-moz-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;background:url("data:image/svg+xml,%3csvg%20id='Ebene_1'%20data-name='Ebene%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20198%2034.32'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:%232e2d2c;}.cls-2{fill:%233e96db;}%3c/style%3e%3c/defs%3e%3ctitle%3elogoAcrolinx%3c/title%3e%3cpath%20class='cls-1'%20d='M14.73,29.83A10.73,10.73,0,0,1,4,20.42,10.52,10.52,0,0,1,14.36,8.84a10.53,10.53,0,0,1,10.4,10.5v10.5h-10Zm-.24-25H13.22L13,4.91v0A14.61,14.61,0,0,0,.06,18.07H0v2.3l0,.23h0A14.61,14.61,0,0,0,14.26,33.82H28.74V19.34A14.55,14.55,0,0,0,14.49,4.85'/%3e%3cpath%20class='cls-1'%20d='M145.92,4.66a15,15,0,0,0-15,15v14.2h4V19.62a10.92,10.92,0,1,1,21.83,0v14.2h4V19.62a15,15,0,0,0-15-15'/%3e%3cpath%20class='cls-1'%20d='M55,26.76a10.5,10.5,0,1,1-.16-14.68l.9.9,2.82-2.82-.9-.9A14.5,14.5,0,0,0,38.1,8.41l-.05,0L36.54,9.91l-.12.17h0a14.57,14.57,0,0,0,.91,19.49,14.5,14.5,0,0,0,20.48,0l.9-.9-2.82-2.82Z'/%3e%3cpath%20class='cls-1'%20d='M89,29.83A10.54,10.54,0,1,1,99.49,19.29,10.55,10.55,0,0,1,89,29.83M89,4.77a14.53,14.53,0,1,0,14.52,14.53A14.54,14.54,0,0,0,89,4.77'/%3e%3crect%20class='cls-1'%20x='121.92'%20y='4.77'%20width='3.99'%20height='29.05'/%3e%3cpath%20class='cls-1'%20d='M66.73,8.08a9.75,9.75,0,0,0-3.94,7.81V33.82h4V15.89a5.74,5.74,0,0,1,2.32-4.6l3.66-2.71L70.39,5.37Z'/%3e%3cpath%20class='cls-1'%20d='M111.85,23.81V0h-4V23.81a9.75,9.75,0,0,0,3.94,7.81l3.66,2.71,2.37-3.21-3.66-2.71a5.75,5.75,0,0,1-2.32-4.6'/%3e%3cpath%20class='cls-2'%20d='M182.39,16.6,171.54,5.74a3.34,3.34,0,0,0-2.37-1h-4.63L178.74,19a.44.44,0,0,1,0,.62l-14.2,14.21h4.63a3.33,3.33,0,0,0,2.37-1L182.39,22a3.81,3.81,0,0,0,0-5.38'/%3e%3cpath%20class='cls-1'%20d='M186,16.65h0l12-12h-5.95l-8.55,8.55.8.8a7.37,7.37,0,0,1,1.7,2.64'/%3e%3cpath%20class='cls-1'%20d='M184.3,24.57l-.7.7L192,33.72h6L186,21.77a7.37,7.37,0,0,1-1.75,2.79'/%3e%3c/svg%3e") no-repeat;background-size:auto 19px;background-position-x:15px;background-position-y:center;height:56px;border-bottom:1px solid #dadada;background-position-x:47px;cursor:pointer}.aboutHeader .icon-help{position:absolute;top:0;right:15px;display:block;background-position-y:center;height:55px;width:24px;opacity:.555}.aboutHeader .icon-help:hover{opacity:1}.aboutHeader .icon-arrow-back{display:inline-block;margin-left:15px;background-position-y:center;height:55px;width:24px;opacity:.555}.aboutHeader .icon-arrow-back:hover{opacity:1}.aboutBody{-webkit-flex-grow:1;-moz-flex-grow:1;-ms-flex-grow:1;flex-grow:1;overflow-y:auto;padding-bottom:15px;border-bottom:1px solid #dadada}.aboutFooter .logFileSection{padding:15px}.aboutFooter .logFileSection .openLogFileTitle{float:left}.aboutMain{margin-left:15px;margin-right:15px}.logfileLocationValue{word-break:break-all;width:100%}.about-tab-label{color:#373737;padding-bottom:4px;overflow:hidden;text-overflow:ellipsis}.about-tab-value{color:#909090;word-wrap:break-word}div.about-item{margin-bottom:18px}.aboutComponent .externalTextLink{display:block;margin-left:15px;margin-right:15px}#serverSelectorFormPage{height:100%}.serverSelectorFormComponent{display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:-ms-flex;display:flex;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;height:100%}.logoHeader{position:relative;-webkit-flex-shrink:0;-moz-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;background:url("data:image/svg+xml,%3csvg%20id='Ebene_1'%20data-name='Ebene%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20198%2034.32'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:%232e2d2c;}.cls-2{fill:%233e96db;}%3c/style%3e%3c/defs%3e%3ctitle%3elogoAcrolinx%3c/title%3e%3cpath%20class='cls-1'%20d='M14.73,29.83A10.73,10.73,0,0,1,4,20.42,10.52,10.52,0,0,1,14.36,8.84a10.53,10.53,0,0,1,10.4,10.5v10.5h-10Zm-.24-25H13.22L13,4.91v0A14.61,14.61,0,0,0,.06,18.07H0v2.3l0,.23h0A14.61,14.61,0,0,0,14.26,33.82H28.74V19.34A14.55,14.55,0,0,0,14.49,4.85'/%3e%3cpath%20class='cls-1'%20d='M145.92,4.66a15,15,0,0,0-15,15v14.2h4V19.62a10.92,10.92,0,1,1,21.83,0v14.2h4V19.62a15,15,0,0,0-15-15'/%3e%3cpath%20class='cls-1'%20d='M55,26.76a10.5,10.5,0,1,1-.16-14.68l.9.9,2.82-2.82-.9-.9A14.5,14.5,0,0,0,38.1,8.41l-.05,0L36.54,9.91l-.12.17h0a14.57,14.57,0,0,0,.91,19.49,14.5,14.5,0,0,0,20.48,0l.9-.9-2.82-2.82Z'/%3e%3cpath%20class='cls-1'%20d='M89,29.83A10.54,10.54,0,1,1,99.49,19.29,10.55,10.55,0,0,1,89,29.83M89,4.77a14.53,14.53,0,1,0,14.52,14.53A14.54,14.54,0,0,0,89,4.77'/%3e%3crect%20class='cls-1'%20x='121.92'%20y='4.77'%20width='3.99'%20height='29.05'/%3e%3cpath%20class='cls-1'%20d='M66.73,8.08a9.75,9.75,0,0,0-3.94,7.81V33.82h4V15.89a5.74,5.74,0,0,1,2.32-4.6l3.66-2.71L70.39,5.37Z'/%3e%3cpath%20class='cls-1'%20d='M111.85,23.81V0h-4V23.81a9.75,9.75,0,0,0,3.94,7.81l3.66,2.71,2.37-3.21-3.66-2.71a5.75,5.75,0,0,1-2.32-4.6'/%3e%3cpath%20class='cls-2'%20d='M182.39,16.6,171.54,5.74a3.34,3.34,0,0,0-2.37-1h-4.63L178.74,19a.44.44,0,0,1,0,.62l-14.2,14.21h4.63a3.33,3.33,0,0,0,2.37-1L182.39,22a3.81,3.81,0,0,0,0-5.38'/%3e%3cpath%20class='cls-1'%20d='M186,16.65h0l12-12h-5.95l-8.55,8.55.8.8a7.37,7.37,0,0,1,1.7,2.64'/%3e%3cpath%20class='cls-1'%20d='M184.3,24.57l-.7.7L192,33.72h6L186,21.77a7.37,7.37,0,0,1-1.75,2.79'/%3e%3c/svg%3e") no-repeat;background-size:auto 19px;background-position-x:15px;background-position-y:center;height:56px;border-bottom:1px solid #dadada}.logoHeader .icon-help{position:absolute;top:0;right:15px;display:block;background-position-y:center;height:55px;width:24px;opacity:.555}.logoHeader .icon-help:hover{opacity:1}.serverAddressTitle{position:relative}.formContent{-webkit-flex-grow:1;-moz-flex-grow:1;-ms-flex-grow:1;flex-grow:1;overflow-y:auto}.formContent .paddedFormContent{padding-left:15px;padding-right:15px}.formContent .buttonGroup{margin-bottom:15px}.formContent .buttonGroup .externalTextLink{float:left}.formContent .submitRequest{margin-bottom:15px}.formContent .submitRequest span{padding-right:5px}.httpsRequiredIcon{top:2px;margin-left:5px;position:absolute;display:inline-block;width:17px;height:17px;background-size:cover;background-image:url(data:image/svg+xml;charset=UTF-8,%3Csvg%20fill%3D%22%23909090%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M22%204v-.5C22%202.12%2020.88%201%2019.5%201S17%202.12%2017%203.5V4c-.55%200-1%20.45-1%201v4c0%20.55.45%201%201%201h5c.55%200%201-.45%201-1V5c0-.55-.45-1-1-1zm-.8%200h-3.4v-.5c0-.94.76-1.7%201.7-1.7s1.7.76%201.7%201.7V4zm-2.28%208c.04.33.08.66.08%201%200%202.08-.8%203.97-2.1%205.39-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H7v-2h2c.55%200%201-.45%201-1V8h2c1.1%200%202-.9%202-2V3.46c-.95-.3-1.95-.46-3-.46C5.48%203%201%207.48%201%2013s4.48%2010%2010%2010%2010-4.48%2010-10c0-.34-.02-.67-.05-1h-2.03zM10%2020.93c-3.95-.49-7-3.85-7-7.93%200-.62.08-1.21.21-1.79L8%2016v1c0%201.1.9%202%202%202v1.93z%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%0A%3C%2Fsvg%3E);background-repeat:no-repeat}.serverAddress{display:block;margin-top:15px;width:100%;font-size:13px;color:#3e96db;appearance:none;-moz-appearance:none;box-shadow:none;border-bottom:solid 1px #3e96db;border-top:none;border-right:none;border-left:none;border-radius:0;box-sizing:border-box;margin-bottom:15px;font-weight:400;overflow:hidden;padding:4px;outline:0;background:#fff}.errorMessage{font-size:13px;margin-top:1em;font-weight:400;color:#fff;background-color:#f0556a;padding:15px 0}.errorMessage.hasDetailsSection{padding-bottom:0}.errorMessage .errorMessageMain{margin:0 15px}.errorMessage .detailedErrorSection{text-align:right}.errorMessage .detailedErrorSection .detailsButton{text-transform:uppercase;letter-spacing:.2px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#f0556a;border:none;margin:5px 0 10px;display:inline-block;color:#fff;text-align:right;padding:0 15px;line-height:30px}.errorMessage .detailedErrorSection .detailsButton:hover{background-color:#f26a7c}.errorMessage .detailedErrorSection .detailedErrorMessage{padding:15px;background:#fff;color:#373737;text-align:left;white-space:pre-line;word-wrap:break-word;border-bottom:1px solid #dadada}.loader,.loader:after{border-radius:50%;width:50px;height:50px}.loader{box-sizing:content-box;position:absolute;width:50px;height:50px;top:50%;left:50%;border:10px solid rgba(144,144,144,.2);border-left-color:#f44336;transition:border-left-color .5s;-webkit-transform:translateZ(0) translateX(-50%) translateY(-50%);-ms-transform:translateZ(0) translateX(-50%) translateY(-50%);transform:translateZ(0) translate(-50%) translateY(-50%);-webkit-animation:load8 1.1s infinite linear;animation:load8 1.1s infinite linear}.loaderJsLoaded{border-left-color:#2196f3}.loader .fallbackLoadingMessage{display:none}@-webkit-keyframes load8{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0deg);transform:translate(-50%) translateY(-50%) rotate(0)}to{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translate(-50%) translateY(-50%) rotate(360deg)}}@keyframes load8{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0deg);transform:translate(-50%) translateY(-50%) rotate(0)}to{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translate(-50%) translateY(-50%) rotate(360deg)}}.loader.loadSidebarHtml{-webkit-animation:loadRotateLeft 1.1s infinite linear;animation:loadRotateLeft 1.1s infinite linear}@-webkit-keyframes loadRotateLeft{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0deg);transform:translate(-50%) translateY(-50%) rotate(0)}to{-webkit-transform:translateX(-50%) translateY(-50%) rotate(-360deg);transform:translate(-50%) translateY(-50%) rotate(-360deg)}}@keyframes loadRotateLeft{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0deg);transform:translate(-50%) translateY(-50%) rotate(0)}to{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translate(-50%) translateY(-50%) rotate(-360deg)}}</style>
|
|
288
|
+
</head>
|
|
289
|
+
<body>
|
|
290
|
+
<div id="app">
|
|
291
|
+
<div class="loader">
|
|
292
|
+
<span class="fallbackLoadingMessage">Loading sidebar startpage ...</span>
|
|
293
|
+
</div>
|
|
294
|
+
</div>
|
|
295
|
+
|
|
296
|
+
<!-- #cat scripts/main.js -->
|
|
297
|
+
<!-- endcat -->
|
|
298
|
+
</body>
|
|
299
|
+
</html>
|
|
300
|
+
`), re;
|
|
301
|
+
}
|
|
302
|
+
var Kt = Qt();
|
|
303
|
+
class Ue extends Error {
|
|
304
|
+
constructor(e, n, o) {
|
|
305
|
+
super(e), this.message = e, this.configuredSidebarURL = n, this.htmlLoaded = o, this.configuredSidebarURL = n, this.htmlLoaded = o, this.details = e + `
|
|
306
|
+
Configured SidebarURL:` + n + `
|
|
307
|
+
` + o;
|
|
308
|
+
}
|
|
309
|
+
details;
|
|
310
|
+
}
|
|
311
|
+
function Nt(t) {
|
|
312
|
+
const e = document.createElement("link");
|
|
313
|
+
return e.rel = "stylesheet", e.href = t, e;
|
|
314
|
+
}
|
|
315
|
+
function Pt(t) {
|
|
316
|
+
const e = document.createElement("script");
|
|
317
|
+
return e.src = t, e.type = "text/javascript", e.async = !1, e.defer = !1, e;
|
|
318
|
+
}
|
|
319
|
+
function ze(t) {
|
|
320
|
+
const e = Date.now();
|
|
321
|
+
return t + "index.html?t=" + e;
|
|
322
|
+
}
|
|
323
|
+
async function Gt(t) {
|
|
324
|
+
const e = ze(t), n = await Le(e);
|
|
325
|
+
if (n.indexOf('<meta name="sidebar-version"') < 0)
|
|
326
|
+
try {
|
|
327
|
+
throw new Ue(
|
|
328
|
+
"It looks like the sidebar URL was configured wrongly.",
|
|
329
|
+
t,
|
|
330
|
+
n
|
|
331
|
+
);
|
|
332
|
+
} catch (c) {
|
|
333
|
+
console.log(c);
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
const o = n.replace(/<!--[\s\S]*?-->/g, ""), s = document.querySelector("head"), r = (c) => Tt(c, t);
|
|
337
|
+
Re(o, "href").map(r).forEach((c) => {
|
|
338
|
+
s.appendChild(Nt(c));
|
|
339
|
+
}), Re(o, "src").map(r).forEach((c) => {
|
|
340
|
+
s.appendChild(Pt(c));
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
function Re(t, e) {
|
|
344
|
+
const n = new RegExp(`${e}="(.*?)"`, "g");
|
|
345
|
+
let o;
|
|
346
|
+
const s = [];
|
|
347
|
+
for (; (o = n.exec(t)) !== null; )
|
|
348
|
+
s.push(o[1]);
|
|
349
|
+
return s;
|
|
350
|
+
}
|
|
351
|
+
function Tt(t, e) {
|
|
352
|
+
return t.match(/^https?:/) ? t : e + t;
|
|
353
|
+
}
|
|
354
|
+
async function Fe(t, e, n) {
|
|
355
|
+
if (t.sidebarHtml || !t.sidebarUrl) {
|
|
356
|
+
q(t.sidebarHtml || Kt.ACROLINX_STARTPAGE_INLINED_HTML, e), n();
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
const o = t.sidebarUrl, s = ze(o);
|
|
360
|
+
if (t.useMessageAdapter || t.useSidebarFromSameOriginDirectly && xt(o))
|
|
361
|
+
e.addEventListener("load", n), e.src = s;
|
|
362
|
+
else {
|
|
363
|
+
const r = await Le(s);
|
|
364
|
+
if (r.indexOf('<meta name="sidebar-version"') < 0)
|
|
365
|
+
try {
|
|
366
|
+
throw new Ue(
|
|
367
|
+
"It looks like the sidebar URL was configured wrongly. Check developer console for more information!",
|
|
368
|
+
s,
|
|
369
|
+
r
|
|
370
|
+
);
|
|
371
|
+
} catch (A) {
|
|
372
|
+
A instanceof Error ? q(A.message, e) : q("Unknown error loading sidebar", e), console.error(A);
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
const i = Yt(r, o);
|
|
376
|
+
q(i, e), n();
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
function Yt(t, e) {
|
|
380
|
+
return t.replace(/src="(?!https?:)/g, 'src="' + e).replace(/href="(?!https?:)/g, 'href="' + e);
|
|
381
|
+
}
|
|
382
|
+
function q(t, e) {
|
|
383
|
+
const n = e.contentWindow;
|
|
384
|
+
n.document.open(), n.document.write(t), n.document.close();
|
|
385
|
+
}
|
|
386
|
+
class Lt {
|
|
387
|
+
constructor(e, n, o, s) {
|
|
388
|
+
this.config = e, this.adapter = n, this.onGotSidebar = o, this.sidebarContentWindow = s;
|
|
389
|
+
}
|
|
390
|
+
acrolinxSidebar;
|
|
391
|
+
initSidebarOnPremise() {
|
|
392
|
+
this.acrolinxSidebar.init({
|
|
393
|
+
showServerSelector: !0,
|
|
394
|
+
supported: {
|
|
395
|
+
checkSelection: !!this.config.checkSelection,
|
|
396
|
+
log: !!this.config.log
|
|
397
|
+
},
|
|
398
|
+
...this.config,
|
|
399
|
+
clientComponents: (this.config.clientComponents || Et).concat(kt)
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
getDefaultDocumentReference() {
|
|
403
|
+
return this.config.getDocumentReference ? this.config.getDocumentReference() : window.location.href;
|
|
404
|
+
}
|
|
405
|
+
requestGlobalCheckSync(e, n = "HTML") {
|
|
406
|
+
if (Ye(e))
|
|
407
|
+
this.acrolinxSidebar.onGlobalCheckRejected(), window.alert(e.error);
|
|
408
|
+
else {
|
|
409
|
+
const o = this.acrolinxSidebar.checkGlobal(e.content, {
|
|
410
|
+
inputFormat: n || "HTML",
|
|
411
|
+
requestDescription: {
|
|
412
|
+
documentReference: e.documentReference || this.getDefaultDocumentReference()
|
|
413
|
+
},
|
|
414
|
+
selection: this.config.checkSelection ? e.selection : void 0,
|
|
415
|
+
externalContent: e.externalContent
|
|
416
|
+
});
|
|
417
|
+
this.adapter.registerCheckCall(o);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
configureSidebar(e) {
|
|
421
|
+
try {
|
|
422
|
+
this.acrolinxSidebar.configure(e);
|
|
423
|
+
} catch (n) {
|
|
424
|
+
console.error("Error while calling sidebar.configure: ", n);
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
requestInit(e) {
|
|
428
|
+
this.acrolinxSidebar = e || this.sidebarContentWindow.acrolinxSidebar, this.onGotSidebar(this), console.log("requestInit"), this.initSidebarOnPremise();
|
|
429
|
+
}
|
|
430
|
+
onInitFinished(e) {
|
|
431
|
+
console.log("onInitFinished: ", e), this.config.onInitFinished ? this.config.onInitFinished(e) : e.error && window.alert(e.error.message), this.adapter && this.adapter.onInitFinished && this.adapter.onInitFinished(e);
|
|
432
|
+
}
|
|
433
|
+
requestGlobalCheck(e = { selection: !1, batchCheck: !1 }) {
|
|
434
|
+
const n = this.adapter, o = n.extractContentForCheck({ checkSelection: e.selection }), s = n.getFormat ? n.getFormat() : void 0;
|
|
435
|
+
xe(o) ? o.then((r) => {
|
|
436
|
+
this.requestGlobalCheckSync(r, s);
|
|
437
|
+
}).catch((r) => {
|
|
438
|
+
this.acrolinxSidebar.onGlobalCheckRejected(), console.error("Error while adapter.extractContentForCheck:", r);
|
|
439
|
+
}) : this.requestGlobalCheckSync(o, s);
|
|
440
|
+
}
|
|
441
|
+
onCheckResult(e) {
|
|
442
|
+
this.config.onCheckResult && this.config.onCheckResult(e), e.embedCheckInformation && this.config.onEmbedCheckData && this.config.onEmbedCheckData(e.embedCheckInformation, e.inputFormat || ""), e.error || this.adapter.registerCheckResult(e);
|
|
443
|
+
}
|
|
444
|
+
selectRanges(e, n) {
|
|
445
|
+
console.log("selectRanges: ", e, n);
|
|
446
|
+
try {
|
|
447
|
+
const o = this.adapter.selectRanges(e, n);
|
|
448
|
+
this.handlePotentialPromiseError(o, e, n);
|
|
449
|
+
} catch (o) {
|
|
450
|
+
this.handleRangeOperationError(o, e, n);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
replaceRanges(e, n) {
|
|
454
|
+
console.log("replaceRanges: ", e, n);
|
|
455
|
+
try {
|
|
456
|
+
const o = this.adapter.replaceRanges(e, n);
|
|
457
|
+
this.handlePotentialPromiseError(o, e, n);
|
|
458
|
+
} catch (o) {
|
|
459
|
+
this.handleRangeOperationError(o, e, n);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
handlePotentialPromiseError(e, n, o) {
|
|
463
|
+
xe(e) && e.catch((s) => {
|
|
464
|
+
this.handleRangeOperationError(s, n, o);
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
handleRangeOperationError(e, n, o) {
|
|
468
|
+
console.log(e), this.acrolinxSidebar.invalidateRanges(
|
|
469
|
+
o.map((s) => ({
|
|
470
|
+
checkId: n,
|
|
471
|
+
range: s.range
|
|
472
|
+
}))
|
|
473
|
+
);
|
|
474
|
+
}
|
|
475
|
+
openWindow(e) {
|
|
476
|
+
this.config.openWindow ? this.config.openWindow(e.url) : window.open(e.url);
|
|
477
|
+
}
|
|
478
|
+
openLogFile() {
|
|
479
|
+
this.config.openLogFile && this.config.openLogFile();
|
|
480
|
+
}
|
|
481
|
+
log(e) {
|
|
482
|
+
this.config.log && this.config.log(e);
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
async function Jt(t, e, n) {
|
|
486
|
+
const o = document.getElementById(t.sidebarContainerId);
|
|
487
|
+
if (!o)
|
|
488
|
+
throw new Error(
|
|
489
|
+
`Acrolinx can't find an element with the configured sidebarContainerId "${t.sidebarContainerId}".`
|
|
490
|
+
);
|
|
491
|
+
const s = document.createElement("iframe");
|
|
492
|
+
o.appendChild(s);
|
|
493
|
+
const r = s.contentWindow, i = new Lt(
|
|
494
|
+
t,
|
|
495
|
+
e,
|
|
496
|
+
n,
|
|
497
|
+
r
|
|
498
|
+
);
|
|
499
|
+
function A() {
|
|
500
|
+
a(), console.log("Install acrolinxPlugin in sidebar."), t.acrolinxStorage && (r.acrolinxStorage = t.acrolinxStorage), r.acrolinxPlugin = i;
|
|
501
|
+
}
|
|
502
|
+
async function c() {
|
|
503
|
+
console.log("Connect acrolinxPlugin in sidebar."), Wt(i, s), await Fe(t, s, a);
|
|
504
|
+
}
|
|
505
|
+
function a() {
|
|
506
|
+
t.onSidebarWindowLoaded && t.onSidebarWindowLoaded(r);
|
|
507
|
+
}
|
|
508
|
+
return t.useMessageAdapter ? await c() : await Fe(t, s, A), i;
|
|
509
|
+
}
|
|
510
|
+
class Ot {
|
|
511
|
+
store = [];
|
|
512
|
+
push(e) {
|
|
513
|
+
this.store.push(e);
|
|
514
|
+
}
|
|
515
|
+
pop() {
|
|
516
|
+
return this.store.shift();
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
class jt {
|
|
520
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
521
|
+
workTodo = new Ot();
|
|
522
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
523
|
+
currentWork;
|
|
524
|
+
addWork(e) {
|
|
525
|
+
const n = {
|
|
526
|
+
work: e,
|
|
527
|
+
deferred: new Rt()
|
|
528
|
+
};
|
|
529
|
+
return this.workTodo.push(n), this.currentWork || this.doRemainingWork(), n.deferred.promise;
|
|
530
|
+
}
|
|
531
|
+
doRemainingWork() {
|
|
532
|
+
const e = this.workTodo.pop();
|
|
533
|
+
e && (this.currentWork = e.work(), this.currentWork.then(
|
|
534
|
+
(n) => {
|
|
535
|
+
e.deferred.resolve(n), this.currentWork = void 0, this.doRemainingWork();
|
|
536
|
+
},
|
|
537
|
+
(n) => {
|
|
538
|
+
e.deferred.reject(n), this.currentWork = void 0, this.doRemainingWork();
|
|
539
|
+
}
|
|
540
|
+
));
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
class Ut {
|
|
544
|
+
constructor(e) {
|
|
545
|
+
this.adapter = e, e.getAutobindWrapperAttributes && (this.getAutobindWrapperAttributes = e.getAutobindWrapperAttributes.bind(e)), e.getFormat && (this.getFormat = e.getFormat.bind(e));
|
|
546
|
+
}
|
|
547
|
+
isAsync = !0;
|
|
548
|
+
requiresSynchronization = !1;
|
|
549
|
+
getAutobindWrapperAttributes;
|
|
550
|
+
getFormat;
|
|
551
|
+
workQueue = new jt();
|
|
552
|
+
extractContentForCheck(e) {
|
|
553
|
+
return this.adapter.extractContentForCheck(e);
|
|
554
|
+
}
|
|
555
|
+
registerCheckCall(e) {
|
|
556
|
+
return this.adapter.registerCheckCall(e);
|
|
557
|
+
}
|
|
558
|
+
registerCheckResult(e) {
|
|
559
|
+
return this.adapter.registerCheckResult(e);
|
|
560
|
+
}
|
|
561
|
+
selectRanges(e, n) {
|
|
562
|
+
return this.workQueue.addWork(() => this.adapter.selectRanges(e, n));
|
|
563
|
+
}
|
|
564
|
+
replaceRanges(e, n) {
|
|
565
|
+
return this.workQueue.addWork(() => this.adapter.replaceRanges(e, n));
|
|
566
|
+
}
|
|
567
|
+
onInitFinished(e) {
|
|
568
|
+
this.adapter.onInitFinished && this.adapter.onInitFinished(e);
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
class pe {
|
|
572
|
+
initConfig;
|
|
573
|
+
adapter;
|
|
574
|
+
config;
|
|
575
|
+
internalPlugin;
|
|
576
|
+
constructor(e) {
|
|
577
|
+
this.initConfig = e, this.config = {};
|
|
578
|
+
}
|
|
579
|
+
registerAdapter(e) {
|
|
580
|
+
Ct(e) && e.requiresSynchronization ? this.adapter = new Ut(e) : this.adapter = e;
|
|
581
|
+
}
|
|
582
|
+
configure(e) {
|
|
583
|
+
this.config = { ...this.config, ...e }, this.internalPlugin && this.internalPlugin.acrolinxSidebar && this.internalPlugin.configureSidebar(this.config);
|
|
584
|
+
}
|
|
585
|
+
check() {
|
|
586
|
+
this.internalPlugin && this.internalPlugin.requestGlobalCheck();
|
|
587
|
+
}
|
|
588
|
+
/**
|
|
589
|
+
* Show a message in the Sidebar.
|
|
590
|
+
* Supported since Acrolinx Platform 2021.2 (Sidebar version 14.28).
|
|
591
|
+
* @param message The message to show.
|
|
592
|
+
*/
|
|
593
|
+
showMessage(e) {
|
|
594
|
+
try {
|
|
595
|
+
this.internalPlugin.acrolinxSidebar.showMessage(e), console.log("acrolinxSidebar.showMessage", e);
|
|
596
|
+
} catch (n) {
|
|
597
|
+
console.warn("Error while trying to call acrolinxSidebar.showMessage", n, e);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
async init() {
|
|
601
|
+
if (!this.adapter)
|
|
602
|
+
throw new Error("Missing registered adapter. Please use registerAdapter before init.");
|
|
603
|
+
this.internalPlugin = await Jt(this.initConfig, this.adapter, () => {
|
|
604
|
+
this.internalPlugin.configureSidebar(this.config);
|
|
605
|
+
});
|
|
606
|
+
}
|
|
607
|
+
dispose(e) {
|
|
608
|
+
const n = document.getElementById(this.initConfig.sidebarContainerId);
|
|
609
|
+
if (n) {
|
|
610
|
+
const o = n.querySelector("iframe");
|
|
611
|
+
if (o)
|
|
612
|
+
try {
|
|
613
|
+
o.src = "about:blank", setTimeout(() => {
|
|
614
|
+
n.innerHTML = "", e();
|
|
615
|
+
}, 0);
|
|
616
|
+
} catch (s) {
|
|
617
|
+
console.error(s), e();
|
|
618
|
+
}
|
|
619
|
+
else
|
|
620
|
+
e();
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
function zt(t) {
|
|
625
|
+
const e = t.getSelection();
|
|
626
|
+
if (!e)
|
|
627
|
+
return [];
|
|
628
|
+
const n = [];
|
|
629
|
+
for (let o = 0; o < e.rangeCount; o++)
|
|
630
|
+
n.push(e.getRangeAt(o));
|
|
631
|
+
return n;
|
|
632
|
+
}
|
|
633
|
+
function Vt(t) {
|
|
634
|
+
return t.ownerDocument ? zt(t.ownerDocument).filter(
|
|
635
|
+
(n) => Xt(t, n.commonAncestorContainer) && n.toString().trim() !== ""
|
|
636
|
+
) : [];
|
|
637
|
+
}
|
|
638
|
+
function Xt(t, e) {
|
|
639
|
+
return t === e || e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_CONTAINS;
|
|
640
|
+
}
|
|
641
|
+
function Ze(t, e) {
|
|
642
|
+
const n = [];
|
|
643
|
+
let o = e;
|
|
644
|
+
for (; o !== t; ) {
|
|
645
|
+
const s = o.parentNode;
|
|
646
|
+
if (!s)
|
|
647
|
+
break;
|
|
648
|
+
const r = Array.prototype.indexOf.call(s.childNodes, o);
|
|
649
|
+
if (r === -1)
|
|
650
|
+
break;
|
|
651
|
+
n.push(r), o = s;
|
|
652
|
+
}
|
|
653
|
+
return n.reverse(), n;
|
|
654
|
+
}
|
|
655
|
+
function Me(t, e) {
|
|
656
|
+
let n = t;
|
|
657
|
+
for (const o of e) {
|
|
658
|
+
const s = n.childNodes[o];
|
|
659
|
+
if (!s)
|
|
660
|
+
return;
|
|
661
|
+
n = s;
|
|
662
|
+
}
|
|
663
|
+
return n;
|
|
664
|
+
}
|
|
665
|
+
const oe = "ACROOO_SELECTION_START", We = "ACROOO_SELECTION_END";
|
|
666
|
+
function qt(t, e, n) {
|
|
667
|
+
const o = t.ownerDocument;
|
|
668
|
+
if (!o)
|
|
669
|
+
return;
|
|
670
|
+
const s = Ze(t, e.startContainer), r = Ze(t, e.endContainer), i = t.cloneNode(!0), A = Me(i, s), c = Me(i, r);
|
|
671
|
+
if (!A || !c)
|
|
672
|
+
return;
|
|
673
|
+
const a = o.createRange();
|
|
674
|
+
a.setStart(A, e.startOffset), a.setEnd(c, e.endOffset), a.insertNode(o.createTextNode(oe)), a.collapse(!1), a.insertNode(o.createTextNode(We));
|
|
675
|
+
const l = n(i), d = l.indexOf(oe), u = l.indexOf(We);
|
|
676
|
+
if (!(d === -1 || u === -1))
|
|
677
|
+
return [d, u - oe.length];
|
|
678
|
+
}
|
|
679
|
+
function _t(t) {
|
|
680
|
+
return t.innerHTML;
|
|
681
|
+
}
|
|
682
|
+
function ne(t, e = _t) {
|
|
683
|
+
return Vt(t).map((o) => qt(t, o, e)).filter((o) => !!o);
|
|
684
|
+
}
|
|
685
|
+
function $t(t, e) {
|
|
686
|
+
if (t.length === 0)
|
|
687
|
+
return 0;
|
|
688
|
+
const n = en(
|
|
689
|
+
t,
|
|
690
|
+
{ diffOffset: 0, oldPosition: e + 0.1 },
|
|
691
|
+
(o) => o.oldPosition
|
|
692
|
+
);
|
|
693
|
+
return n > 0 ? t[n - 1].diffOffset : 0;
|
|
694
|
+
}
|
|
695
|
+
function G(t, e) {
|
|
696
|
+
return e + $t(t, e);
|
|
697
|
+
}
|
|
698
|
+
function en(t, e, n) {
|
|
699
|
+
let o = 0, s = t.length;
|
|
700
|
+
for (; o < s; ) {
|
|
701
|
+
const r = Math.floor((o + s) / 2);
|
|
702
|
+
n(t[r]) < n(e) ? o = r + 1 : s = r;
|
|
703
|
+
}
|
|
704
|
+
return o;
|
|
705
|
+
}
|
|
706
|
+
var ie;
|
|
707
|
+
const tn = /* @__PURE__ */ new Map([
|
|
708
|
+
[0, 65533],
|
|
709
|
+
// C1 Unicode control character reference replacements
|
|
710
|
+
[128, 8364],
|
|
711
|
+
[130, 8218],
|
|
712
|
+
[131, 402],
|
|
713
|
+
[132, 8222],
|
|
714
|
+
[133, 8230],
|
|
715
|
+
[134, 8224],
|
|
716
|
+
[135, 8225],
|
|
717
|
+
[136, 710],
|
|
718
|
+
[137, 8240],
|
|
719
|
+
[138, 352],
|
|
720
|
+
[139, 8249],
|
|
721
|
+
[140, 338],
|
|
722
|
+
[142, 381],
|
|
723
|
+
[145, 8216],
|
|
724
|
+
[146, 8217],
|
|
725
|
+
[147, 8220],
|
|
726
|
+
[148, 8221],
|
|
727
|
+
[149, 8226],
|
|
728
|
+
[150, 8211],
|
|
729
|
+
[151, 8212],
|
|
730
|
+
[152, 732],
|
|
731
|
+
[153, 8482],
|
|
732
|
+
[154, 353],
|
|
733
|
+
[155, 8250],
|
|
734
|
+
[156, 339],
|
|
735
|
+
[158, 382],
|
|
736
|
+
[159, 376]
|
|
737
|
+
]), nn = (
|
|
738
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins
|
|
739
|
+
(ie = String.fromCodePoint) !== null && ie !== void 0 ? ie : (t) => {
|
|
740
|
+
let e = "";
|
|
741
|
+
return t > 65535 && (t -= 65536, e += String.fromCharCode(t >>> 10 & 1023 | 55296), t = 56320 | t & 1023), e += String.fromCharCode(t), e;
|
|
742
|
+
}
|
|
743
|
+
);
|
|
744
|
+
function rn(t) {
|
|
745
|
+
var e;
|
|
746
|
+
return t >= 55296 && t <= 57343 || t > 1114111 ? 65533 : (e = tn.get(t)) !== null && e !== void 0 ? e : t;
|
|
747
|
+
}
|
|
748
|
+
function on(t) {
|
|
749
|
+
const e = (
|
|
750
|
+
// eslint-disable-next-line n/no-unsupported-features/node-builtins
|
|
751
|
+
typeof atob == "function" ? (
|
|
752
|
+
// Browser (and Node >=16)
|
|
753
|
+
// eslint-disable-next-line n/no-unsupported-features/node-builtins
|
|
754
|
+
atob(t)
|
|
755
|
+
) : (
|
|
756
|
+
// Older Node versions (<16)
|
|
757
|
+
// eslint-disable-next-line n/no-unsupported-features/node-builtins
|
|
758
|
+
typeof Buffer.from == "function" ? (
|
|
759
|
+
// eslint-disable-next-line n/no-unsupported-features/node-builtins
|
|
760
|
+
Buffer.from(t, "base64").toString("binary")
|
|
761
|
+
) : (
|
|
762
|
+
// eslint-disable-next-line unicorn/no-new-buffer, n/no-deprecated-api
|
|
763
|
+
new Buffer(t, "base64").toString("binary")
|
|
764
|
+
)
|
|
765
|
+
)
|
|
766
|
+
), n = e.length & -2, o = new Uint16Array(n / 2);
|
|
767
|
+
for (let s = 0, r = 0; s < n; s += 2) {
|
|
768
|
+
const i = e.charCodeAt(s), A = e.charCodeAt(s + 1);
|
|
769
|
+
o[r++] = i | A << 8;
|
|
770
|
+
}
|
|
771
|
+
return o;
|
|
772
|
+
}
|
|
773
|
+
const An = /* @__PURE__ */ on("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
|
|
774
|
+
var F;
|
|
775
|
+
(function(t) {
|
|
776
|
+
t[t.VALUE_LENGTH = 49152] = "VALUE_LENGTH", t[t.FLAG13 = 8192] = "FLAG13", t[t.BRANCH_LENGTH = 8064] = "BRANCH_LENGTH", t[t.JUMP_TABLE = 127] = "JUMP_TABLE";
|
|
777
|
+
})(F || (F = {}));
|
|
778
|
+
var B;
|
|
779
|
+
(function(t) {
|
|
780
|
+
t[t.NUM = 35] = "NUM", t[t.SEMI = 59] = "SEMI", t[t.EQUALS = 61] = "EQUALS", t[t.ZERO = 48] = "ZERO", t[t.NINE = 57] = "NINE", t[t.LOWER_A = 97] = "LOWER_A", t[t.LOWER_F = 102] = "LOWER_F", t[t.LOWER_X = 120] = "LOWER_X", t[t.LOWER_Z = 122] = "LOWER_Z", t[t.UPPER_A = 65] = "UPPER_A", t[t.UPPER_F = 70] = "UPPER_F", t[t.UPPER_Z = 90] = "UPPER_Z";
|
|
781
|
+
})(B || (B = {}));
|
|
782
|
+
const He = 32;
|
|
783
|
+
function le(t) {
|
|
784
|
+
return t >= B.ZERO && t <= B.NINE;
|
|
785
|
+
}
|
|
786
|
+
function sn(t) {
|
|
787
|
+
return t >= B.UPPER_A && t <= B.UPPER_F || t >= B.LOWER_A && t <= B.LOWER_F;
|
|
788
|
+
}
|
|
789
|
+
function an(t) {
|
|
790
|
+
return t >= B.UPPER_A && t <= B.UPPER_Z || t >= B.LOWER_A && t <= B.LOWER_Z || le(t);
|
|
791
|
+
}
|
|
792
|
+
function cn(t) {
|
|
793
|
+
return t === B.EQUALS || an(t);
|
|
794
|
+
}
|
|
795
|
+
var D;
|
|
796
|
+
(function(t) {
|
|
797
|
+
t[t.EntityStart = 0] = "EntityStart", t[t.NumericStart = 1] = "NumericStart", t[t.NumericDecimal = 2] = "NumericDecimal", t[t.NumericHex = 3] = "NumericHex", t[t.NamedEntity = 4] = "NamedEntity";
|
|
798
|
+
})(D || (D = {}));
|
|
799
|
+
var K;
|
|
800
|
+
(function(t) {
|
|
801
|
+
t[t.Legacy = 0] = "Legacy", t[t.Strict = 1] = "Strict", t[t.Attribute = 2] = "Attribute";
|
|
802
|
+
})(K || (K = {}));
|
|
803
|
+
class ln {
|
|
804
|
+
constructor(e, n, o) {
|
|
805
|
+
this.decodeTree = e, this.emitCodePoint = n, this.errors = o, this.state = D.EntityStart, this.consumed = 1, this.result = 0, this.treeIndex = 0, this.excess = 1, this.decodeMode = K.Strict;
|
|
806
|
+
}
|
|
807
|
+
/** Resets the instance to make it reusable. */
|
|
808
|
+
startEntity(e) {
|
|
809
|
+
this.decodeMode = e, this.state = D.EntityStart, this.result = 0, this.treeIndex = 0, this.excess = 1, this.consumed = 1;
|
|
810
|
+
}
|
|
811
|
+
/**
|
|
812
|
+
* Write an entity to the decoder. This can be called multiple times with partial entities.
|
|
813
|
+
* If the entity is incomplete, the decoder will return -1.
|
|
814
|
+
*
|
|
815
|
+
* Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the
|
|
816
|
+
* entity is incomplete, and resume when the next string is written.
|
|
817
|
+
*
|
|
818
|
+
* @param input The string containing the entity (or a continuation of the entity).
|
|
819
|
+
* @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
|
|
820
|
+
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
821
|
+
*/
|
|
822
|
+
write(e, n) {
|
|
823
|
+
switch (this.state) {
|
|
824
|
+
case D.EntityStart:
|
|
825
|
+
return e.charCodeAt(n) === B.NUM ? (this.state = D.NumericStart, this.consumed += 1, this.stateNumericStart(e, n + 1)) : (this.state = D.NamedEntity, this.stateNamedEntity(e, n));
|
|
826
|
+
case D.NumericStart:
|
|
827
|
+
return this.stateNumericStart(e, n);
|
|
828
|
+
case D.NumericDecimal:
|
|
829
|
+
return this.stateNumericDecimal(e, n);
|
|
830
|
+
case D.NumericHex:
|
|
831
|
+
return this.stateNumericHex(e, n);
|
|
832
|
+
case D.NamedEntity:
|
|
833
|
+
return this.stateNamedEntity(e, n);
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
/**
|
|
837
|
+
* Switches between the numeric decimal and hexadecimal states.
|
|
838
|
+
*
|
|
839
|
+
* Equivalent to the `Numeric character reference state` in the HTML spec.
|
|
840
|
+
*
|
|
841
|
+
* @param input The string containing the entity (or a continuation of the entity).
|
|
842
|
+
* @param offset The current offset.
|
|
843
|
+
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
844
|
+
*/
|
|
845
|
+
stateNumericStart(e, n) {
|
|
846
|
+
return n >= e.length ? -1 : (e.charCodeAt(n) | He) === B.LOWER_X ? (this.state = D.NumericHex, this.consumed += 1, this.stateNumericHex(e, n + 1)) : (this.state = D.NumericDecimal, this.stateNumericDecimal(e, n));
|
|
847
|
+
}
|
|
848
|
+
/**
|
|
849
|
+
* Parses a hexadecimal numeric entity.
|
|
850
|
+
*
|
|
851
|
+
* Equivalent to the `Hexademical character reference state` in the HTML spec.
|
|
852
|
+
*
|
|
853
|
+
* @param input The string containing the entity (or a continuation of the entity).
|
|
854
|
+
* @param offset The current offset.
|
|
855
|
+
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
856
|
+
*/
|
|
857
|
+
stateNumericHex(e, n) {
|
|
858
|
+
for (; n < e.length; ) {
|
|
859
|
+
const o = e.charCodeAt(n);
|
|
860
|
+
if (le(o) || sn(o)) {
|
|
861
|
+
const s = o <= B.NINE ? o - B.ZERO : (o | He) - B.LOWER_A + 10;
|
|
862
|
+
this.result = this.result * 16 + s, this.consumed++, n++;
|
|
863
|
+
} else
|
|
864
|
+
return this.emitNumericEntity(o, 3);
|
|
865
|
+
}
|
|
866
|
+
return -1;
|
|
867
|
+
}
|
|
868
|
+
/**
|
|
869
|
+
* Parses a decimal numeric entity.
|
|
870
|
+
*
|
|
871
|
+
* Equivalent to the `Decimal character reference state` in the HTML spec.
|
|
872
|
+
*
|
|
873
|
+
* @param input The string containing the entity (or a continuation of the entity).
|
|
874
|
+
* @param offset The current offset.
|
|
875
|
+
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
876
|
+
*/
|
|
877
|
+
stateNumericDecimal(e, n) {
|
|
878
|
+
for (; n < e.length; ) {
|
|
879
|
+
const o = e.charCodeAt(n);
|
|
880
|
+
if (le(o))
|
|
881
|
+
this.result = this.result * 10 + (o - B.ZERO), this.consumed++, n++;
|
|
882
|
+
else
|
|
883
|
+
return this.emitNumericEntity(o, 2);
|
|
884
|
+
}
|
|
885
|
+
return -1;
|
|
886
|
+
}
|
|
887
|
+
/**
|
|
888
|
+
* Validate and emit a numeric entity.
|
|
889
|
+
*
|
|
890
|
+
* Implements the logic from the `Hexademical character reference start
|
|
891
|
+
* state` and `Numeric character reference end state` in the HTML spec.
|
|
892
|
+
*
|
|
893
|
+
* @param lastCp The last code point of the entity. Used to see if the
|
|
894
|
+
* entity was terminated with a semicolon.
|
|
895
|
+
* @param expectedLength The minimum number of characters that should be
|
|
896
|
+
* consumed. Used to validate that at least one digit
|
|
897
|
+
* was consumed.
|
|
898
|
+
* @returns The number of characters that were consumed.
|
|
899
|
+
*/
|
|
900
|
+
emitNumericEntity(e, n) {
|
|
901
|
+
var o;
|
|
902
|
+
if (this.consumed <= n)
|
|
903
|
+
return (o = this.errors) === null || o === void 0 || o.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
|
|
904
|
+
if (e === B.SEMI)
|
|
905
|
+
this.consumed += 1;
|
|
906
|
+
else if (this.decodeMode === K.Strict)
|
|
907
|
+
return 0;
|
|
908
|
+
return this.emitCodePoint(rn(this.result), this.consumed), this.errors && (e !== B.SEMI && this.errors.missingSemicolonAfterCharacterReference(), this.errors.validateNumericCharacterReference(this.result)), this.consumed;
|
|
909
|
+
}
|
|
910
|
+
/**
|
|
911
|
+
* Parses a named entity.
|
|
912
|
+
*
|
|
913
|
+
* Equivalent to the `Named character reference state` in the HTML spec.
|
|
914
|
+
*
|
|
915
|
+
* @param input The string containing the entity (or a continuation of the entity).
|
|
916
|
+
* @param offset The current offset.
|
|
917
|
+
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
918
|
+
*/
|
|
919
|
+
stateNamedEntity(e, n) {
|
|
920
|
+
const { decodeTree: o } = this;
|
|
921
|
+
let s = o[this.treeIndex], r = (s & F.VALUE_LENGTH) >> 14;
|
|
922
|
+
for (; n < e.length; ) {
|
|
923
|
+
if (r === 0 && (s & F.FLAG13) !== 0) {
|
|
924
|
+
const A = (s & F.BRANCH_LENGTH) >> 7, c = s & F.JUMP_TABLE;
|
|
925
|
+
if (n + A > e.length)
|
|
926
|
+
return -1;
|
|
927
|
+
if (e.charCodeAt(n) !== c)
|
|
928
|
+
return this.result === 0 ? 0 : this.emitNotTerminatedNamedEntity();
|
|
929
|
+
n++, this.excess++;
|
|
930
|
+
const a = A - 1;
|
|
931
|
+
for (let l = 1; l < A; l += 2) {
|
|
932
|
+
const d = o[this.treeIndex + 1 + (l - 1 >> 1)], u = d & 255;
|
|
933
|
+
if (e.charCodeAt(n) !== u)
|
|
934
|
+
return this.result === 0 ? 0 : this.emitNotTerminatedNamedEntity();
|
|
935
|
+
n++, this.excess++;
|
|
936
|
+
const g = d >> 8 & 255;
|
|
937
|
+
if (l + 1 < A) {
|
|
938
|
+
if (e.charCodeAt(n) !== g)
|
|
939
|
+
return this.result === 0 ? 0 : this.emitNotTerminatedNamedEntity();
|
|
940
|
+
n++, this.excess++;
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
this.treeIndex += 1 + (a + 1 >> 1), s = o[this.treeIndex], r = (s & F.VALUE_LENGTH) >> 14;
|
|
944
|
+
}
|
|
945
|
+
if (n >= e.length)
|
|
946
|
+
break;
|
|
947
|
+
const i = e.charCodeAt(n);
|
|
948
|
+
if (i === B.SEMI && r !== 0 && (s & F.FLAG13) !== 0)
|
|
949
|
+
return this.emitNamedEntityData(this.treeIndex, r, this.consumed + this.excess);
|
|
950
|
+
if (this.treeIndex = un(o, s, this.treeIndex + Math.max(1, r), i), this.treeIndex < 0)
|
|
951
|
+
return this.result === 0 || // If we are parsing an attribute
|
|
952
|
+
this.decodeMode === K.Attribute && // We shouldn't have consumed any characters after the entity,
|
|
953
|
+
(r === 0 || // And there should be no invalid characters.
|
|
954
|
+
cn(i)) ? 0 : this.emitNotTerminatedNamedEntity();
|
|
955
|
+
if (s = o[this.treeIndex], r = (s & F.VALUE_LENGTH) >> 14, r !== 0) {
|
|
956
|
+
if (i === B.SEMI)
|
|
957
|
+
return this.emitNamedEntityData(this.treeIndex, r, this.consumed + this.excess);
|
|
958
|
+
this.decodeMode !== K.Strict && (s & F.FLAG13) === 0 && (this.result = this.treeIndex, this.consumed += this.excess, this.excess = 0);
|
|
959
|
+
}
|
|
960
|
+
n++, this.excess++;
|
|
961
|
+
}
|
|
962
|
+
return -1;
|
|
963
|
+
}
|
|
964
|
+
/**
|
|
965
|
+
* Emit a named entity that was not terminated with a semicolon.
|
|
966
|
+
*
|
|
967
|
+
* @returns The number of characters consumed.
|
|
968
|
+
*/
|
|
969
|
+
emitNotTerminatedNamedEntity() {
|
|
970
|
+
var e;
|
|
971
|
+
const { result: n, decodeTree: o } = this, s = (o[n] & F.VALUE_LENGTH) >> 14;
|
|
972
|
+
return this.emitNamedEntityData(n, s, this.consumed), (e = this.errors) === null || e === void 0 || e.missingSemicolonAfterCharacterReference(), this.consumed;
|
|
973
|
+
}
|
|
974
|
+
/**
|
|
975
|
+
* Emit a named entity.
|
|
976
|
+
*
|
|
977
|
+
* @param result The index of the entity in the decode tree.
|
|
978
|
+
* @param valueLength The number of bytes in the entity.
|
|
979
|
+
* @param consumed The number of characters consumed.
|
|
980
|
+
*
|
|
981
|
+
* @returns The number of characters consumed.
|
|
982
|
+
*/
|
|
983
|
+
emitNamedEntityData(e, n, o) {
|
|
984
|
+
const { decodeTree: s } = this;
|
|
985
|
+
return this.emitCodePoint(n === 1 ? s[e] & ~(F.VALUE_LENGTH | F.FLAG13) : s[e + 1], o), n === 3 && this.emitCodePoint(s[e + 2], o), o;
|
|
986
|
+
}
|
|
987
|
+
/**
|
|
988
|
+
* Signal to the parser that the end of the input was reached.
|
|
989
|
+
*
|
|
990
|
+
* Remaining data will be emitted and relevant errors will be produced.
|
|
991
|
+
*
|
|
992
|
+
* @returns The number of characters consumed.
|
|
993
|
+
*/
|
|
994
|
+
end() {
|
|
995
|
+
var e;
|
|
996
|
+
switch (this.state) {
|
|
997
|
+
case D.NamedEntity:
|
|
998
|
+
return this.result !== 0 && (this.decodeMode !== K.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
|
|
999
|
+
// Otherwise, emit a numeric entity if we have one.
|
|
1000
|
+
case D.NumericDecimal:
|
|
1001
|
+
return this.emitNumericEntity(0, 2);
|
|
1002
|
+
case D.NumericHex:
|
|
1003
|
+
return this.emitNumericEntity(0, 3);
|
|
1004
|
+
case D.NumericStart:
|
|
1005
|
+
return (e = this.errors) === null || e === void 0 || e.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
|
|
1006
|
+
case D.EntityStart:
|
|
1007
|
+
return 0;
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
}
|
|
1011
|
+
function dn(t) {
|
|
1012
|
+
let e = "";
|
|
1013
|
+
const n = new ln(t, (o) => e += nn(o));
|
|
1014
|
+
return function(s, r) {
|
|
1015
|
+
let i = 0, A = 0;
|
|
1016
|
+
for (; (A = s.indexOf("&", A)) >= 0; ) {
|
|
1017
|
+
e += s.slice(i, A), n.startEntity(r);
|
|
1018
|
+
const a = n.write(
|
|
1019
|
+
s,
|
|
1020
|
+
// Skip the "&"
|
|
1021
|
+
A + 1
|
|
1022
|
+
);
|
|
1023
|
+
if (a < 0) {
|
|
1024
|
+
i = A + n.end();
|
|
1025
|
+
break;
|
|
1026
|
+
}
|
|
1027
|
+
i = A + a, A = a === 0 ? i + 1 : i;
|
|
1028
|
+
}
|
|
1029
|
+
const c = e + s.slice(i);
|
|
1030
|
+
return e = "", c;
|
|
1031
|
+
};
|
|
1032
|
+
}
|
|
1033
|
+
function un(t, e, n, o) {
|
|
1034
|
+
const s = (e & F.BRANCH_LENGTH) >> 7, r = e & F.JUMP_TABLE;
|
|
1035
|
+
if (s === 0)
|
|
1036
|
+
return r !== 0 && o === r ? n : -1;
|
|
1037
|
+
if (r) {
|
|
1038
|
+
const a = o - r;
|
|
1039
|
+
return a < 0 || a >= s ? -1 : t[n + a] - 1;
|
|
1040
|
+
}
|
|
1041
|
+
const i = s + 1 >> 1;
|
|
1042
|
+
let A = 0, c = s - 1;
|
|
1043
|
+
for (; A <= c; ) {
|
|
1044
|
+
const a = A + c >>> 1, l = a >> 1, u = t[n + l] >> (a & 1) * 8 & 255;
|
|
1045
|
+
if (u < o)
|
|
1046
|
+
A = a + 1;
|
|
1047
|
+
else if (u > o)
|
|
1048
|
+
c = a - 1;
|
|
1049
|
+
else
|
|
1050
|
+
return t[n + i + a];
|
|
1051
|
+
}
|
|
1052
|
+
return -1;
|
|
1053
|
+
}
|
|
1054
|
+
const gn = /* @__PURE__ */ dn(An);
|
|
1055
|
+
function hn(t) {
|
|
1056
|
+
return gn(t, K.Strict);
|
|
1057
|
+
}
|
|
1058
|
+
const Ve = /* @__PURE__ */ new Map([
|
|
1059
|
+
[34, """],
|
|
1060
|
+
[38, "&"],
|
|
1061
|
+
[39, "'"],
|
|
1062
|
+
[60, "<"],
|
|
1063
|
+
[62, ">"]
|
|
1064
|
+
]), Xe = (
|
|
1065
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
1066
|
+
String.prototype.codePointAt == null ? (t, e) => (t.charCodeAt(e) & 64512) === 55296 ? (t.charCodeAt(e) - 55296) * 1024 + t.charCodeAt(e + 1) - 56320 + 65536 : t.charCodeAt(e) : (
|
|
1067
|
+
// http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
|
|
1068
|
+
(t, e) => t.codePointAt(e)
|
|
1069
|
+
)
|
|
1070
|
+
), qe = 1342177476;
|
|
1071
|
+
function Qe(t) {
|
|
1072
|
+
let e, n = 0;
|
|
1073
|
+
const { length: o } = t;
|
|
1074
|
+
for (let s = 0; s < o; s++) {
|
|
1075
|
+
const r = t.charCodeAt(s);
|
|
1076
|
+
if (r < 128 && ((qe >>> r & 1) === 0 || r >= 64 || r < 32))
|
|
1077
|
+
continue;
|
|
1078
|
+
if (e === void 0 ? e = t.substring(0, s) : n !== s && (e += t.substring(n, s)), r < 64) {
|
|
1079
|
+
e += Ve.get(r), n = s + 1;
|
|
1080
|
+
continue;
|
|
1081
|
+
}
|
|
1082
|
+
const i = Xe(t, s);
|
|
1083
|
+
e += `&#x${i.toString(16)};`, i !== r && s++, n = s + 1;
|
|
1084
|
+
}
|
|
1085
|
+
return e === void 0 ? t : (n < o && (e += t.substr(n)), e);
|
|
1086
|
+
}
|
|
1087
|
+
function me(t, e) {
|
|
1088
|
+
return function(o) {
|
|
1089
|
+
let s, r = 0, i = "";
|
|
1090
|
+
for (; s = t.exec(o); )
|
|
1091
|
+
r !== s.index && (i += o.substring(r, s.index)), i += e.get(s[0].charCodeAt(0)), r = s.index + 1;
|
|
1092
|
+
return i + o.substring(r);
|
|
1093
|
+
};
|
|
1094
|
+
}
|
|
1095
|
+
const fn = /* @__PURE__ */ me(/["&'<>]/g, Ve), pn = /* @__PURE__ */ me(/["&\u00A0]/g, /* @__PURE__ */ new Map([
|
|
1096
|
+
[34, """],
|
|
1097
|
+
[38, "&"],
|
|
1098
|
+
[160, " "]
|
|
1099
|
+
])), mn = /* @__PURE__ */ me(/[&<>\u00A0]/g, /* @__PURE__ */ new Map([
|
|
1100
|
+
[38, "&"],
|
|
1101
|
+
[60, "<"],
|
|
1102
|
+
[62, ">"],
|
|
1103
|
+
[160, " "]
|
|
1104
|
+
]));
|
|
1105
|
+
function bn(t) {
|
|
1106
|
+
const e = /* @__PURE__ */ new Map(), n = t.length;
|
|
1107
|
+
let o = 0, s = -1;
|
|
1108
|
+
function r() {
|
|
1109
|
+
const A = o;
|
|
1110
|
+
for (; o < n; ) {
|
|
1111
|
+
const c = t.charAt(o);
|
|
1112
|
+
if ((c < "0" || c > "9") && (c < "a" || c > "z"))
|
|
1113
|
+
break;
|
|
1114
|
+
o++;
|
|
1115
|
+
}
|
|
1116
|
+
return o === A ? 0 : Number.parseInt(t.slice(A, o), 36);
|
|
1117
|
+
}
|
|
1118
|
+
function i() {
|
|
1119
|
+
if (t[o] !== "&")
|
|
1120
|
+
throw new Error(`Child entry missing value near index ${o}`);
|
|
1121
|
+
const A = o, c = t.indexOf(";", o + 1);
|
|
1122
|
+
if (c === -1)
|
|
1123
|
+
throw new Error(`Unterminated entity starting at index ${A}`);
|
|
1124
|
+
return o = c + 1, t.slice(A, o);
|
|
1125
|
+
}
|
|
1126
|
+
for (; o < n; ) {
|
|
1127
|
+
const A = r(), c = s === -1 ? A : s + A + 1;
|
|
1128
|
+
let a;
|
|
1129
|
+
if (t[o] === "&" && (a = i()), t[o] === "{") {
|
|
1130
|
+
o++;
|
|
1131
|
+
let l = r(), d = l;
|
|
1132
|
+
const u = i();
|
|
1133
|
+
if (t[o] === "{")
|
|
1134
|
+
throw new Error("Unexpected nested '{' beyond depth 2");
|
|
1135
|
+
if (t[o] === "}")
|
|
1136
|
+
e.set(c, { value: a, next: d, nextValue: u }), o++;
|
|
1137
|
+
else {
|
|
1138
|
+
const g = /* @__PURE__ */ new Map();
|
|
1139
|
+
g.set(d, u);
|
|
1140
|
+
let h = d;
|
|
1141
|
+
for (; o < n && t[o] !== "}"; ) {
|
|
1142
|
+
l = r(), d = h + l + 1;
|
|
1143
|
+
const f = i();
|
|
1144
|
+
if (t[o] === "{")
|
|
1145
|
+
throw new Error("Unexpected nested '{' beyond depth 2");
|
|
1146
|
+
g.set(d, f), h = d;
|
|
1147
|
+
}
|
|
1148
|
+
if (t[o] !== "}")
|
|
1149
|
+
throw new Error("Unterminated child block");
|
|
1150
|
+
o++, e.set(c, { value: a, next: g });
|
|
1151
|
+
}
|
|
1152
|
+
} else {
|
|
1153
|
+
if (a === void 0)
|
|
1154
|
+
throw new Error(`Malformed encode trie: missing value at index ${o}`);
|
|
1155
|
+
e.set(c, a);
|
|
1156
|
+
}
|
|
1157
|
+
s = c;
|
|
1158
|
+
}
|
|
1159
|
+
return e;
|
|
1160
|
+
}
|
|
1161
|
+
const vn = /* @__PURE__ */ bn("9	
m!"#$%&'()*+,1./a:;<{6he<⃒}={6hx=⃥}>{6he>⃒}?@q[\]^_`5{2yfj}k{|}y ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒē2ĖėĘęĚěĜĝĞğĠġĢ1ĤĥĦħĨĩĪī2ĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌō2ŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžjƒyƵ1rǵ1tȷ3yˆˇg˘˙˚˛˜˝1f̑3jΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ1ΣΤΥΦΧΨΩ7αβγδεζηθικλμνξοπρςστυφχψω7ϑϒ2ϕϖ5Ϝϝiϰϱ3ϵ϶aЁЂЃЄЅІЇЈЉЊЋЌ1ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя1ёђѓєѕіїјљњћќ1ўџ5gi    1    ​‌‍‎‏‐2–—―‖1‘’‚1“”„1†‡•2‥…9‰‱′″‴‵3‹›3‾2⁁1⁃⁄a⁏7⁗7 {6bu  }⁠⁡⁢⁣20€1a⃛⃜11ℂ2℅4ℊℋℌℍℎℏℐℑℒℓ1ℕ№℗℘ℙℚℛℜℝ℞3™1ℤ2℧ℨ℩2ℬℭ1ℯℰℱ1ℳℴℵℶℷℸcⅅⅆⅇⅈa⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞1d←↑→↓↔↕↖↗↘↙↚↛1↝{mw↝̸}↞↟↠↡↢↣↤↥↦↧1↩↪↫↬↭↮1↰↱↲↳1↵↶↷2↺↻↼↽↾↿⇀⇁⇂⇃⇄⇅⇆⇇⇈⇉⇊⇋⇌⇍⇎⇏⇐⇑⇒⇓⇔⇕⇖⇗⇘⇙⇚⇛1⇝6⇤⇥f⇵7⇽⇾⇿∀∁∂{mw∂̸}∃∄∅1∇∈∉1∋∌2∏∐∑−∓∔1∖∗∘1√2∝∞∟∠{6he∠⃒}∡∢∣∤∥∦∧∨∩{1e68∩︀}∪{1e68∪︀}∫∬∭∮∯∰∱∲∳∴∵∶∷∸1∺∻∼{6he∼⃒}∽{mp∽̱}∾{mr∾̳}∿≀≁≂{mw≂̸}≃≄≅≆≇≈≉≊≋{mw≋̸}≌≍{6he≍⃒}≎{mw≎̸}≏{mw≏̸}≐{mw≐̸}≑≒≓≔≕≖≗1≙≚1≜2≟≠≡{6hx≡⃥}≢1≤{6he≤⃒}≥{6he≥⃒}≦{mw≦̸}≧{mw≧̸}≨{1e68≨︀}≩{1e68≩︀}≪{mw≪̸5uh≪⃒}≫{mw≫̸5uh≫⃒}≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿{mw≿̸}⊀⊁⊂{6he⊂⃒}⊃{6he⊃⃒}⊄⊅⊆⊇⊈⊉⊊{1e68⊊︀}⊋{1e68⊋︀}1⊍⊎⊏{mw⊏̸}⊐{mw⊐̸}⊑⊒⊓{1e68⊓︀}⊔{1e68⊔︀}⊕⊖⊗⊘⊙⊚⊛1⊝⊞⊟⊠⊡⊢⊣⊤⊥1⊧⊨⊩⊪⊫⊬⊭⊮⊯⊰1⊲⊳⊴{6he⊴⃒}⊵{6he⊵⃒}⊶⊷⊸⊹⊺⊻1⊽⊾⊿⋀⋁⋂⋃⋄⋅⋆⋇⋈⋉⋊⋋⋌⋍⋎⋏⋐⋑⋒⋓⋔⋕⋖⋗⋘{mw⋘̸}⋙{mw⋙̸}⋚{1e68⋚︀}⋛{1e68⋛︀}2⋞⋟⋠⋡⋢⋣2⋦⋧⋨⋩⋪⋫⋬⋭⋮⋯⋰⋱⋲⋳⋴⋵{mw⋵̸}⋶⋷1⋹{mw⋹̸}⋺⋻⋼⋽⋾6⌅⌆1⌈⌉⌊⌋⌌⌍⌎⌏⌐1⌒⌓1⌕⌖5⌜⌝⌞⌟2⌢⌣9⌭⌮7⌶6⌽1⌿1o⍼1f⎰⎱2⎴⎵⎶11⏜⏝⏞⏟2⏢4⏧1n␣4kⓈ1j─1│9┌3┐3└3┘3├7┤7┬7┴7┼j═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬j▀3▄3█8░▒▓d□8▪▫1▭▮2▱1△▴▵2▸▹3▽▾▿2◂◃6◊○w◬2◯8◸◹◺◻◼8★☆7☎1d♀1♂t♠2♣1♥♦3♪2♭♮♯4j✓3✗8✠l✶x❘p❲❳2c⟈⟉s⟦⟧⟨⟩⟪⟫⟬⟭7⟵⟶⟷⟸⟹⟺1⟼2⟿76⤂⤃⤄⤅6⤌⤍⤎⤏⤐⤑⤒⤓2⤖2⤙⤚⤛⤜⤝⤞⤟⤠2⤣⤤⤥⤦⤧⤨⤩⤪8⤳{mw⤳̸}1⤵⤶⤷⤸⤹2⤼⤽7⥅2⥈⥉⥊⥋2⥎⥏⥐⥑⥒⥓⥔⥕⥖⥗⥘⥙⥚⥛⥜⥝⥞⥟⥠⥡⥢⥣⥤⥥⥦⥧⥨⥩⥪⥫⥬⥭⥮⥯⥰⥱⥲⥳⥴⥵⥶1⥸⥹1⥻⥼⥽⥾⥿5⦅⦆4⦋⦌⦍⦎⦏⦐⦑⦒⦓⦔⦕⦖3⦚1⦜⦝6⦤⦥⦦⦧⦨⦩⦪⦫⦬⦭⦮⦯⦰⦱⦲⦳⦴⦵⦶⦷1⦹1⦻⦼1⦾⦿⧀⧁⧂⧃⧄⧅3⧉3⧍⧎⧏{mw⧏̸}⧐{mw⧐̸}b⧜⧝⧞4⧣⧤⧥5⧫8⧴1⧶9⨀⨁⨂1⨄1⨆5⨌⨍2⨐⨑⨒⨓⨔⨕⨖⨗a⨢⨣⨤⨥⨦⨧1⨩⨪2⨭⨮⨯⨰⨱1⨳⨴⨵⨶⨷⨸⨹⨺⨻⨼2⨿⩀1⩂⩃⩄⩅⩆⩇⩈⩉⩊⩋⩌⩍2⩐2⩓⩔⩕⩖⩗⩘1⩚⩛⩜⩝1⩟6⩦3⩪2⩭{mw⩭̸}⩮⩯⩰{mw⩰̸}⩱⩲⩳⩴⩵1⩷⩸⩹⩺⩻⩼⩽{mw⩽̸}⩾{mw⩾̸}⩿⪀⪁⪂⪃⪄⪅⪆⪇⪈⪉⪊⪋⪌⪍⪎⪏⪐⪑⪒⪓⪔⪕⪖⪗⪘⪙⪚2⪝⪞⪟⪠⪡{mw⪡̸}⪢{mw⪢̸}1⪤⪥⪦⪧⪨⪩⪪⪫⪬{1e68⪬︀}⪭{1e68⪭︀}⪮⪯{mw⪯̸}⪰{mw⪰̸}2⪳⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿⫀⫁⫂⫃⫄⫅{mw⫅̸}⫆{mw⫆̸}⫇⫈2⫋{1e68⫋︀}⫌{1e68⫌︀}2⫏⫐⫑⫒⫓⫔⫕⫖⫗⫘⫙⫚⫛8⫤1⫦⫧⫨⫩1⫫⫬⫭⫮⫯⫰⫱⫲⫳9⫽{6hx⫽⃥}y7r{17ks𝒜1𝒞𝒟2𝒢2𝒥𝒦2𝒩𝒪𝒫𝒬1𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵𝒶𝒷𝒸𝒹1𝒻1𝒽𝒾𝒿𝓀𝓁𝓂𝓃1𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏1g𝔄𝔅1𝔇𝔈𝔉𝔊2𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔1𝔖𝔗𝔘𝔙𝔚𝔛𝔜1𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷𝔸𝔹1𝔻𝔼𝔽𝔾1𝕀𝕁𝕂𝕃𝕄1𝕆3𝕊𝕋𝕌𝕍𝕎𝕏𝕐1𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫}6vefffiflffiffl"), In = /* @__PURE__ */ new Uint32Array([
|
|
1162
|
+
5632,
|
|
1163
|
+
// Bits for 09,0A,0C
|
|
1164
|
+
4227923966,
|
|
1165
|
+
// 32..63 -> 21-2D (minus space), 2E,2F,3A-3F
|
|
1166
|
+
4160749569,
|
|
1167
|
+
// 64..95 -> 40, 5B-5F
|
|
1168
|
+
939524097
|
|
1169
|
+
// 96..127-> 60, 7B-7D
|
|
1170
|
+
]), Cn = /* @__PURE__ */ new Uint32Array([0, qe, 0, 0]);
|
|
1171
|
+
function wn(t) {
|
|
1172
|
+
return _e(In, t);
|
|
1173
|
+
}
|
|
1174
|
+
function yn(t) {
|
|
1175
|
+
return _e(Cn, t);
|
|
1176
|
+
}
|
|
1177
|
+
function _e(t, e) {
|
|
1178
|
+
let n, o = 0;
|
|
1179
|
+
const { length: s } = e;
|
|
1180
|
+
for (let r = 0; r < s; r++) {
|
|
1181
|
+
const i = e.charCodeAt(r);
|
|
1182
|
+
if (i < 128 && !(t[i >>> 5] >>> i & 1))
|
|
1183
|
+
continue;
|
|
1184
|
+
n === void 0 ? n = e.substring(0, r) : o !== r && (n += e.substring(o, r));
|
|
1185
|
+
let A = vn.get(i);
|
|
1186
|
+
if (typeof A == "object") {
|
|
1187
|
+
if (r + 1 < s) {
|
|
1188
|
+
const c = e.charCodeAt(r + 1), a = typeof A.next == "number" ? A.next === c ? A.nextValue : void 0 : A.next.get(c);
|
|
1189
|
+
if (a !== void 0) {
|
|
1190
|
+
n += a, r++, o = r + 1;
|
|
1191
|
+
continue;
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1194
|
+
A = A.value;
|
|
1195
|
+
}
|
|
1196
|
+
if (A === void 0) {
|
|
1197
|
+
const c = Xe(e, r);
|
|
1198
|
+
n += `&#x${c.toString(16)};`, c !== i && r++, o = r + 1;
|
|
1199
|
+
} else
|
|
1200
|
+
n += A, o = r + 1;
|
|
1201
|
+
}
|
|
1202
|
+
return n === void 0 ? e : (o < s && (n += e.substr(o)), n);
|
|
1203
|
+
}
|
|
1204
|
+
var T;
|
|
1205
|
+
(function(t) {
|
|
1206
|
+
t[t.XML = 0] = "XML", t[t.HTML = 1] = "HTML";
|
|
1207
|
+
})(T || (T = {}));
|
|
1208
|
+
var Q;
|
|
1209
|
+
(function(t) {
|
|
1210
|
+
t[t.UTF8 = 0] = "UTF8", t[t.ASCII = 1] = "ASCII", t[t.Extensive = 2] = "Extensive", t[t.Attribute = 3] = "Attribute", t[t.Text = 4] = "Text";
|
|
1211
|
+
})(Q || (Q = {}));
|
|
1212
|
+
function be(t, e = T.XML) {
|
|
1213
|
+
const { mode: n = Q.Extensive, level: o = T.XML } = typeof e == "number" ? { level: e } : e;
|
|
1214
|
+
switch (n) {
|
|
1215
|
+
case Q.UTF8:
|
|
1216
|
+
return fn(t);
|
|
1217
|
+
case Q.Attribute:
|
|
1218
|
+
return pn(t);
|
|
1219
|
+
case Q.Text:
|
|
1220
|
+
return mn(t);
|
|
1221
|
+
case Q.ASCII:
|
|
1222
|
+
return o === T.HTML ? yn(t) : Qe(t);
|
|
1223
|
+
// biome-ignore lint/complexity/noUselessSwitchCase: we get an error for the switch not being exhaustive
|
|
1224
|
+
case Q.Extensive:
|
|
1225
|
+
// eslint-disable-line unicorn/no-useless-switch-case
|
|
1226
|
+
default:
|
|
1227
|
+
return o === T.HTML ? wn(t) : Qe(t);
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
const En = "<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\/script>", kn = "<style\\b[^<]*(?:(?!<\\/style>)<[^<]*)*</style>", Bn = "<([^>]+)>", Sn = "&.*?;", xn = [En, kn, Bn, Sn], Dn = "(" + xn.join("|") + ")", $e = fe(["BR", "P", "DIV"]), Rn = fe(["BR"]);
|
|
1231
|
+
function Fn(t) {
|
|
1232
|
+
const [e = "", n = "", o = ""] = (/^<(\/?)(\w+)/i.exec(t.toUpperCase()) || []).slice(1);
|
|
1233
|
+
return n && (Rn[n] || $e[n] && (e || o)) ? `
|
|
1234
|
+
` : "";
|
|
1235
|
+
}
|
|
1236
|
+
function Zn(t) {
|
|
1237
|
+
const e = new RegExp(Dn, "ig"), n = [];
|
|
1238
|
+
let o = 0;
|
|
1239
|
+
return [t.replace(e, (r, i, A, c) => {
|
|
1240
|
+
const a = r.startsWith("&") ? hn(r) : Fn(r);
|
|
1241
|
+
return o -= r.length - a.length, n.push({
|
|
1242
|
+
oldPosition: c + r.length,
|
|
1243
|
+
diffOffset: o
|
|
1244
|
+
}), a;
|
|
1245
|
+
}), n];
|
|
1246
|
+
}
|
|
1247
|
+
function H(t, ...e) {
|
|
1248
|
+
}
|
|
1249
|
+
var Ae = { exports: {} }, Ke;
|
|
1250
|
+
function Mn() {
|
|
1251
|
+
return Ke || (Ke = 1, function(t) {
|
|
1252
|
+
var e = function() {
|
|
1253
|
+
this.Diff_Timeout = 1, this.Diff_EditCost = 4, this.Match_Threshold = 0.5, this.Match_Distance = 1e3, this.Patch_DeleteThreshold = 0.5, this.Patch_Margin = 4, this.Match_MaxBits = 32;
|
|
1254
|
+
}, n = -1, o = 1, s = 0;
|
|
1255
|
+
e.Diff = function(r, i) {
|
|
1256
|
+
return [r, i];
|
|
1257
|
+
}, e.prototype.diff_main = function(r, i, A, c) {
|
|
1258
|
+
typeof c > "u" && (this.Diff_Timeout <= 0 ? c = Number.MAX_VALUE : c = (/* @__PURE__ */ new Date()).getTime() + this.Diff_Timeout * 1e3);
|
|
1259
|
+
var a = c;
|
|
1260
|
+
if (r == null || i == null)
|
|
1261
|
+
throw new Error("Null input. (diff_main)");
|
|
1262
|
+
if (r == i)
|
|
1263
|
+
return r ? [new e.Diff(s, r)] : [];
|
|
1264
|
+
typeof A > "u" && (A = !0);
|
|
1265
|
+
var l = A, d = this.diff_commonPrefix(r, i), u = r.substring(0, d);
|
|
1266
|
+
r = r.substring(d), i = i.substring(d), d = this.diff_commonSuffix(r, i);
|
|
1267
|
+
var g = r.substring(r.length - d);
|
|
1268
|
+
r = r.substring(0, r.length - d), i = i.substring(0, i.length - d);
|
|
1269
|
+
var h = this.diff_compute_(r, i, l, a);
|
|
1270
|
+
return u && h.unshift(new e.Diff(s, u)), g && h.push(new e.Diff(s, g)), this.diff_cleanupMerge(h), h;
|
|
1271
|
+
}, e.prototype.diff_compute_ = function(r, i, A, c) {
|
|
1272
|
+
var a;
|
|
1273
|
+
if (!r)
|
|
1274
|
+
return [new e.Diff(o, i)];
|
|
1275
|
+
if (!i)
|
|
1276
|
+
return [new e.Diff(n, r)];
|
|
1277
|
+
var l = r.length > i.length ? r : i, d = r.length > i.length ? i : r, u = l.indexOf(d);
|
|
1278
|
+
if (u != -1)
|
|
1279
|
+
return a = [
|
|
1280
|
+
new e.Diff(o, l.substring(0, u)),
|
|
1281
|
+
new e.Diff(s, d),
|
|
1282
|
+
new e.Diff(
|
|
1283
|
+
o,
|
|
1284
|
+
l.substring(u + d.length)
|
|
1285
|
+
)
|
|
1286
|
+
], r.length > i.length && (a[0][0] = a[2][0] = n), a;
|
|
1287
|
+
if (d.length == 1)
|
|
1288
|
+
return [
|
|
1289
|
+
new e.Diff(n, r),
|
|
1290
|
+
new e.Diff(o, i)
|
|
1291
|
+
];
|
|
1292
|
+
var g = this.diff_halfMatch_(r, i);
|
|
1293
|
+
if (g) {
|
|
1294
|
+
var h = g[0], f = g[1], p = g[2], m = g[3], v = g[4], I = this.diff_main(h, p, A, c), C = this.diff_main(f, m, A, c);
|
|
1295
|
+
return I.concat(
|
|
1296
|
+
[new e.Diff(s, v)],
|
|
1297
|
+
C
|
|
1298
|
+
);
|
|
1299
|
+
}
|
|
1300
|
+
return A && r.length > 100 && i.length > 100 ? this.diff_lineMode_(r, i, c) : this.diff_bisect_(r, i, c);
|
|
1301
|
+
}, e.prototype.diff_lineMode_ = function(r, i, A) {
|
|
1302
|
+
var c = this.diff_linesToChars_(r, i);
|
|
1303
|
+
r = c.chars1, i = c.chars2;
|
|
1304
|
+
var a = c.lineArray, l = this.diff_main(r, i, !1, A);
|
|
1305
|
+
this.diff_charsToLines_(l, a), this.diff_cleanupSemantic(l), l.push(new e.Diff(s, ""));
|
|
1306
|
+
for (var d = 0, u = 0, g = 0, h = "", f = ""; d < l.length; ) {
|
|
1307
|
+
switch (l[d][0]) {
|
|
1308
|
+
case o:
|
|
1309
|
+
g++, f += l[d][1];
|
|
1310
|
+
break;
|
|
1311
|
+
case n:
|
|
1312
|
+
u++, h += l[d][1];
|
|
1313
|
+
break;
|
|
1314
|
+
case s:
|
|
1315
|
+
if (u >= 1 && g >= 1) {
|
|
1316
|
+
l.splice(
|
|
1317
|
+
d - u - g,
|
|
1318
|
+
u + g
|
|
1319
|
+
), d = d - u - g;
|
|
1320
|
+
for (var p = this.diff_main(h, f, !1, A), m = p.length - 1; m >= 0; m--)
|
|
1321
|
+
l.splice(d, 0, p[m]);
|
|
1322
|
+
d = d + p.length;
|
|
1323
|
+
}
|
|
1324
|
+
g = 0, u = 0, h = "", f = "";
|
|
1325
|
+
break;
|
|
1326
|
+
}
|
|
1327
|
+
d++;
|
|
1328
|
+
}
|
|
1329
|
+
return l.pop(), l;
|
|
1330
|
+
}, e.prototype.diff_bisect_ = function(r, i, A) {
|
|
1331
|
+
for (var c = r.length, a = i.length, l = Math.ceil((c + a) / 2), d = l, u = 2 * l, g = new Array(u), h = new Array(u), f = 0; f < u; f++)
|
|
1332
|
+
g[f] = -1, h[f] = -1;
|
|
1333
|
+
g[d + 1] = 0, h[d + 1] = 0;
|
|
1334
|
+
for (var p = c - a, m = p % 2 != 0, v = 0, I = 0, C = 0, E = 0, b = 0; b < l && !((/* @__PURE__ */ new Date()).getTime() > A); b++) {
|
|
1335
|
+
for (var w = -b + v; w <= b - I; w += 2) {
|
|
1336
|
+
var y = d + w, k;
|
|
1337
|
+
w == -b || w != b && g[y - 1] < g[y + 1] ? k = g[y + 1] : k = g[y - 1] + 1;
|
|
1338
|
+
for (var R = k - w; k < c && R < a && r.charAt(k) == i.charAt(R); )
|
|
1339
|
+
k++, R++;
|
|
1340
|
+
if (g[y] = k, k > c)
|
|
1341
|
+
I += 2;
|
|
1342
|
+
else if (R > a)
|
|
1343
|
+
v += 2;
|
|
1344
|
+
else if (m) {
|
|
1345
|
+
var x = d + p - w;
|
|
1346
|
+
if (x >= 0 && x < u && h[x] != -1) {
|
|
1347
|
+
var S = c - h[x];
|
|
1348
|
+
if (k >= S)
|
|
1349
|
+
return this.diff_bisectSplit_(r, i, k, R, A);
|
|
1350
|
+
}
|
|
1351
|
+
}
|
|
1352
|
+
}
|
|
1353
|
+
for (var Z = -b + C; Z <= b - E; Z += 2) {
|
|
1354
|
+
var x = d + Z, S;
|
|
1355
|
+
Z == -b || Z != b && h[x - 1] < h[x + 1] ? S = h[x + 1] : S = h[x - 1] + 1;
|
|
1356
|
+
for (var W = S - Z; S < c && W < a && r.charAt(c - S - 1) == i.charAt(a - W - 1); )
|
|
1357
|
+
S++, W++;
|
|
1358
|
+
if (h[x] = S, S > c)
|
|
1359
|
+
E += 2;
|
|
1360
|
+
else if (W > a)
|
|
1361
|
+
C += 2;
|
|
1362
|
+
else if (!m) {
|
|
1363
|
+
var y = d + p - Z;
|
|
1364
|
+
if (y >= 0 && y < u && g[y] != -1) {
|
|
1365
|
+
var k = g[y], R = d + k - y;
|
|
1366
|
+
if (S = c - S, k >= S)
|
|
1367
|
+
return this.diff_bisectSplit_(r, i, k, R, A);
|
|
1368
|
+
}
|
|
1369
|
+
}
|
|
1370
|
+
}
|
|
1371
|
+
}
|
|
1372
|
+
return [
|
|
1373
|
+
new e.Diff(n, r),
|
|
1374
|
+
new e.Diff(o, i)
|
|
1375
|
+
];
|
|
1376
|
+
}, e.prototype.diff_bisectSplit_ = function(r, i, A, c, a) {
|
|
1377
|
+
var l = r.substring(0, A), d = i.substring(0, c), u = r.substring(A), g = i.substring(c), h = this.diff_main(l, d, !1, a), f = this.diff_main(u, g, !1, a);
|
|
1378
|
+
return h.concat(f);
|
|
1379
|
+
}, e.prototype.diff_linesToChars_ = function(r, i) {
|
|
1380
|
+
var A = [], c = {};
|
|
1381
|
+
A[0] = "";
|
|
1382
|
+
function a(g) {
|
|
1383
|
+
for (var h = "", f = 0, p = -1, m = A.length; p < g.length - 1; ) {
|
|
1384
|
+
p = g.indexOf(`
|
|
1385
|
+
`, f), p == -1 && (p = g.length - 1);
|
|
1386
|
+
var v = g.substring(f, p + 1);
|
|
1387
|
+
(c.hasOwnProperty ? c.hasOwnProperty(v) : c[v] !== void 0) ? h += String.fromCharCode(c[v]) : (m == l && (v = g.substring(f), p = g.length), h += String.fromCharCode(m), c[v] = m, A[m++] = v), f = p + 1;
|
|
1388
|
+
}
|
|
1389
|
+
return h;
|
|
1390
|
+
}
|
|
1391
|
+
var l = 4e4, d = a(r);
|
|
1392
|
+
l = 65535;
|
|
1393
|
+
var u = a(i);
|
|
1394
|
+
return { chars1: d, chars2: u, lineArray: A };
|
|
1395
|
+
}, e.prototype.diff_charsToLines_ = function(r, i) {
|
|
1396
|
+
for (var A = 0; A < r.length; A++) {
|
|
1397
|
+
for (var c = r[A][1], a = [], l = 0; l < c.length; l++)
|
|
1398
|
+
a[l] = i[c.charCodeAt(l)];
|
|
1399
|
+
r[A][1] = a.join("");
|
|
1400
|
+
}
|
|
1401
|
+
}, e.prototype.diff_commonPrefix = function(r, i) {
|
|
1402
|
+
if (!r || !i || r.charAt(0) != i.charAt(0))
|
|
1403
|
+
return 0;
|
|
1404
|
+
for (var A = 0, c = Math.min(r.length, i.length), a = c, l = 0; A < a; )
|
|
1405
|
+
r.substring(l, a) == i.substring(l, a) ? (A = a, l = A) : c = a, a = Math.floor((c - A) / 2 + A);
|
|
1406
|
+
return a;
|
|
1407
|
+
}, e.prototype.diff_commonSuffix = function(r, i) {
|
|
1408
|
+
if (!r || !i || r.charAt(r.length - 1) != i.charAt(i.length - 1))
|
|
1409
|
+
return 0;
|
|
1410
|
+
for (var A = 0, c = Math.min(r.length, i.length), a = c, l = 0; A < a; )
|
|
1411
|
+
r.substring(r.length - a, r.length - l) == i.substring(i.length - a, i.length - l) ? (A = a, l = A) : c = a, a = Math.floor((c - A) / 2 + A);
|
|
1412
|
+
return a;
|
|
1413
|
+
}, e.prototype.diff_commonOverlap_ = function(r, i) {
|
|
1414
|
+
var A = r.length, c = i.length;
|
|
1415
|
+
if (A == 0 || c == 0)
|
|
1416
|
+
return 0;
|
|
1417
|
+
A > c ? r = r.substring(A - c) : A < c && (i = i.substring(0, A));
|
|
1418
|
+
var a = Math.min(A, c);
|
|
1419
|
+
if (r == i)
|
|
1420
|
+
return a;
|
|
1421
|
+
for (var l = 0, d = 1; ; ) {
|
|
1422
|
+
var u = r.substring(a - d), g = i.indexOf(u);
|
|
1423
|
+
if (g == -1)
|
|
1424
|
+
return l;
|
|
1425
|
+
d += g, (g == 0 || r.substring(a - d) == i.substring(0, d)) && (l = d, d++);
|
|
1426
|
+
}
|
|
1427
|
+
}, e.prototype.diff_halfMatch_ = function(r, i) {
|
|
1428
|
+
if (this.Diff_Timeout <= 0)
|
|
1429
|
+
return null;
|
|
1430
|
+
var A = r.length > i.length ? r : i, c = r.length > i.length ? i : r;
|
|
1431
|
+
if (A.length < 4 || c.length * 2 < A.length)
|
|
1432
|
+
return null;
|
|
1433
|
+
var a = this;
|
|
1434
|
+
function l(I, C, E) {
|
|
1435
|
+
for (var b = I.substring(E, E + Math.floor(I.length / 4)), w = -1, y = "", k, R, x, S; (w = C.indexOf(b, w + 1)) != -1; ) {
|
|
1436
|
+
var Z = a.diff_commonPrefix(
|
|
1437
|
+
I.substring(E),
|
|
1438
|
+
C.substring(w)
|
|
1439
|
+
), W = a.diff_commonSuffix(
|
|
1440
|
+
I.substring(0, E),
|
|
1441
|
+
C.substring(0, w)
|
|
1442
|
+
);
|
|
1443
|
+
y.length < W + Z && (y = C.substring(w - W, w) + C.substring(w, w + Z), k = I.substring(0, E - W), R = I.substring(E + Z), x = C.substring(0, w - W), S = C.substring(w + Z));
|
|
1444
|
+
}
|
|
1445
|
+
return y.length * 2 >= I.length ? [
|
|
1446
|
+
k,
|
|
1447
|
+
R,
|
|
1448
|
+
x,
|
|
1449
|
+
S,
|
|
1450
|
+
y
|
|
1451
|
+
] : null;
|
|
1452
|
+
}
|
|
1453
|
+
var d = l(
|
|
1454
|
+
A,
|
|
1455
|
+
c,
|
|
1456
|
+
Math.ceil(A.length / 4)
|
|
1457
|
+
), u = l(
|
|
1458
|
+
A,
|
|
1459
|
+
c,
|
|
1460
|
+
Math.ceil(A.length / 2)
|
|
1461
|
+
), g;
|
|
1462
|
+
if (!d && !u)
|
|
1463
|
+
return null;
|
|
1464
|
+
u ? d ? g = d[4].length > u[4].length ? d : u : g = u : g = d;
|
|
1465
|
+
var h, f, p, m;
|
|
1466
|
+
r.length > i.length ? (h = g[0], f = g[1], p = g[2], m = g[3]) : (p = g[0], m = g[1], h = g[2], f = g[3]);
|
|
1467
|
+
var v = g[4];
|
|
1468
|
+
return [h, f, p, m, v];
|
|
1469
|
+
}, e.prototype.diff_cleanupSemantic = function(r) {
|
|
1470
|
+
for (var i = !1, A = [], c = 0, a = null, l = 0, d = 0, u = 0, g = 0, h = 0; l < r.length; )
|
|
1471
|
+
r[l][0] == s ? (A[c++] = l, d = g, u = h, g = 0, h = 0, a = r[l][1]) : (r[l][0] == o ? g += r[l][1].length : h += r[l][1].length, a && a.length <= Math.max(d, u) && a.length <= Math.max(
|
|
1472
|
+
g,
|
|
1473
|
+
h
|
|
1474
|
+
) && (r.splice(
|
|
1475
|
+
A[c - 1],
|
|
1476
|
+
0,
|
|
1477
|
+
new e.Diff(n, a)
|
|
1478
|
+
), r[A[c - 1] + 1][0] = o, c--, c--, l = c > 0 ? A[c - 1] : -1, d = 0, u = 0, g = 0, h = 0, a = null, i = !0)), l++;
|
|
1479
|
+
for (i && this.diff_cleanupMerge(r), this.diff_cleanupSemanticLossless(r), l = 1; l < r.length; ) {
|
|
1480
|
+
if (r[l - 1][0] == n && r[l][0] == o) {
|
|
1481
|
+
var f = r[l - 1][1], p = r[l][1], m = this.diff_commonOverlap_(f, p), v = this.diff_commonOverlap_(p, f);
|
|
1482
|
+
m >= v ? (m >= f.length / 2 || m >= p.length / 2) && (r.splice(l, 0, new e.Diff(
|
|
1483
|
+
s,
|
|
1484
|
+
p.substring(0, m)
|
|
1485
|
+
)), r[l - 1][1] = f.substring(0, f.length - m), r[l + 1][1] = p.substring(m), l++) : (v >= f.length / 2 || v >= p.length / 2) && (r.splice(l, 0, new e.Diff(
|
|
1486
|
+
s,
|
|
1487
|
+
f.substring(0, v)
|
|
1488
|
+
)), r[l - 1][0] = o, r[l - 1][1] = p.substring(0, p.length - v), r[l + 1][0] = n, r[l + 1][1] = f.substring(v), l++), l++;
|
|
1489
|
+
}
|
|
1490
|
+
l++;
|
|
1491
|
+
}
|
|
1492
|
+
}, e.prototype.diff_cleanupSemanticLossless = function(r) {
|
|
1493
|
+
function i(v, I) {
|
|
1494
|
+
if (!v || !I)
|
|
1495
|
+
return 6;
|
|
1496
|
+
var C = v.charAt(v.length - 1), E = I.charAt(0), b = C.match(e.nonAlphaNumericRegex_), w = E.match(e.nonAlphaNumericRegex_), y = b && C.match(e.whitespaceRegex_), k = w && E.match(e.whitespaceRegex_), R = y && C.match(e.linebreakRegex_), x = k && E.match(e.linebreakRegex_), S = R && v.match(e.blanklineEndRegex_), Z = x && I.match(e.blanklineStartRegex_);
|
|
1497
|
+
return S || Z ? 5 : R || x ? 4 : b && !y && k ? 3 : y || k ? 2 : b || w ? 1 : 0;
|
|
1498
|
+
}
|
|
1499
|
+
for (var A = 1; A < r.length - 1; ) {
|
|
1500
|
+
if (r[A - 1][0] == s && r[A + 1][0] == s) {
|
|
1501
|
+
var c = r[A - 1][1], a = r[A][1], l = r[A + 1][1], d = this.diff_commonSuffix(c, a);
|
|
1502
|
+
if (d) {
|
|
1503
|
+
var u = a.substring(a.length - d);
|
|
1504
|
+
c = c.substring(0, c.length - d), a = u + a.substring(0, a.length - d), l = u + l;
|
|
1505
|
+
}
|
|
1506
|
+
for (var g = c, h = a, f = l, p = i(c, a) + i(a, l); a.charAt(0) === l.charAt(0); ) {
|
|
1507
|
+
c += a.charAt(0), a = a.substring(1) + l.charAt(0), l = l.substring(1);
|
|
1508
|
+
var m = i(c, a) + i(a, l);
|
|
1509
|
+
m >= p && (p = m, g = c, h = a, f = l);
|
|
1510
|
+
}
|
|
1511
|
+
r[A - 1][1] != g && (g ? r[A - 1][1] = g : (r.splice(A - 1, 1), A--), r[A][1] = h, f ? r[A + 1][1] = f : (r.splice(A + 1, 1), A--));
|
|
1512
|
+
}
|
|
1513
|
+
A++;
|
|
1514
|
+
}
|
|
1515
|
+
}, e.nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/, e.whitespaceRegex_ = /\s/, e.linebreakRegex_ = /[\r\n]/, e.blanklineEndRegex_ = /\n\r?\n$/, e.blanklineStartRegex_ = /^\r?\n\r?\n/, e.prototype.diff_cleanupEfficiency = function(r) {
|
|
1516
|
+
for (var i = !1, A = [], c = 0, a = null, l = 0, d = !1, u = !1, g = !1, h = !1; l < r.length; )
|
|
1517
|
+
r[l][0] == s ? (r[l][1].length < this.Diff_EditCost && (g || h) ? (A[c++] = l, d = g, u = h, a = r[l][1]) : (c = 0, a = null), g = h = !1) : (r[l][0] == n ? h = !0 : g = !0, a && (d && u && g && h || a.length < this.Diff_EditCost / 2 && d + u + g + h == 3) && (r.splice(
|
|
1518
|
+
A[c - 1],
|
|
1519
|
+
0,
|
|
1520
|
+
new e.Diff(n, a)
|
|
1521
|
+
), r[A[c - 1] + 1][0] = o, c--, a = null, d && u ? (g = h = !0, c = 0) : (c--, l = c > 0 ? A[c - 1] : -1, g = h = !1), i = !0)), l++;
|
|
1522
|
+
i && this.diff_cleanupMerge(r);
|
|
1523
|
+
}, e.prototype.diff_cleanupMerge = function(r) {
|
|
1524
|
+
r.push(new e.Diff(s, ""));
|
|
1525
|
+
for (var i = 0, A = 0, c = 0, a = "", l = "", d; i < r.length; )
|
|
1526
|
+
switch (r[i][0]) {
|
|
1527
|
+
case o:
|
|
1528
|
+
c++, l += r[i][1], i++;
|
|
1529
|
+
break;
|
|
1530
|
+
case n:
|
|
1531
|
+
A++, a += r[i][1], i++;
|
|
1532
|
+
break;
|
|
1533
|
+
case s:
|
|
1534
|
+
A + c > 1 ? (A !== 0 && c !== 0 && (d = this.diff_commonPrefix(l, a), d !== 0 && (i - A - c > 0 && r[i - A - c - 1][0] == s ? r[i - A - c - 1][1] += l.substring(0, d) : (r.splice(0, 0, new e.Diff(
|
|
1535
|
+
s,
|
|
1536
|
+
l.substring(0, d)
|
|
1537
|
+
)), i++), l = l.substring(d), a = a.substring(d)), d = this.diff_commonSuffix(l, a), d !== 0 && (r[i][1] = l.substring(l.length - d) + r[i][1], l = l.substring(0, l.length - d), a = a.substring(0, a.length - d))), i -= A + c, r.splice(i, A + c), a.length && (r.splice(
|
|
1538
|
+
i,
|
|
1539
|
+
0,
|
|
1540
|
+
new e.Diff(n, a)
|
|
1541
|
+
), i++), l.length && (r.splice(
|
|
1542
|
+
i,
|
|
1543
|
+
0,
|
|
1544
|
+
new e.Diff(o, l)
|
|
1545
|
+
), i++), i++) : i !== 0 && r[i - 1][0] == s ? (r[i - 1][1] += r[i][1], r.splice(i, 1)) : i++, c = 0, A = 0, a = "", l = "";
|
|
1546
|
+
break;
|
|
1547
|
+
}
|
|
1548
|
+
r[r.length - 1][1] === "" && r.pop();
|
|
1549
|
+
var u = !1;
|
|
1550
|
+
for (i = 1; i < r.length - 1; )
|
|
1551
|
+
r[i - 1][0] == s && r[i + 1][0] == s && (r[i][1].substring(r[i][1].length - r[i - 1][1].length) == r[i - 1][1] ? (r[i][1] = r[i - 1][1] + r[i][1].substring(0, r[i][1].length - r[i - 1][1].length), r[i + 1][1] = r[i - 1][1] + r[i + 1][1], r.splice(i - 1, 1), u = !0) : r[i][1].substring(0, r[i + 1][1].length) == r[i + 1][1] && (r[i - 1][1] += r[i + 1][1], r[i][1] = r[i][1].substring(r[i + 1][1].length) + r[i + 1][1], r.splice(i + 1, 1), u = !0)), i++;
|
|
1552
|
+
u && this.diff_cleanupMerge(r);
|
|
1553
|
+
}, e.prototype.diff_xIndex = function(r, i) {
|
|
1554
|
+
var A = 0, c = 0, a = 0, l = 0, d;
|
|
1555
|
+
for (d = 0; d < r.length && (r[d][0] !== o && (A += r[d][1].length), r[d][0] !== n && (c += r[d][1].length), !(A > i)); d++)
|
|
1556
|
+
a = A, l = c;
|
|
1557
|
+
return r.length != d && r[d][0] === n ? l : l + (i - a);
|
|
1558
|
+
}, e.prototype.diff_prettyHtml = function(r) {
|
|
1559
|
+
for (var i = [], A = /&/g, c = /</g, a = />/g, l = /\n/g, d = 0; d < r.length; d++) {
|
|
1560
|
+
var u = r[d][0], g = r[d][1], h = g.replace(A, "&").replace(c, "<").replace(a, ">").replace(l, "¶<br>");
|
|
1561
|
+
switch (u) {
|
|
1562
|
+
case o:
|
|
1563
|
+
i[d] = '<ins style="background:#e6ffe6;">' + h + "</ins>";
|
|
1564
|
+
break;
|
|
1565
|
+
case n:
|
|
1566
|
+
i[d] = '<del style="background:#ffe6e6;">' + h + "</del>";
|
|
1567
|
+
break;
|
|
1568
|
+
case s:
|
|
1569
|
+
i[d] = "<span>" + h + "</span>";
|
|
1570
|
+
break;
|
|
1571
|
+
}
|
|
1572
|
+
}
|
|
1573
|
+
return i.join("");
|
|
1574
|
+
}, e.prototype.diff_text1 = function(r) {
|
|
1575
|
+
for (var i = [], A = 0; A < r.length; A++)
|
|
1576
|
+
r[A][0] !== o && (i[A] = r[A][1]);
|
|
1577
|
+
return i.join("");
|
|
1578
|
+
}, e.prototype.diff_text2 = function(r) {
|
|
1579
|
+
for (var i = [], A = 0; A < r.length; A++)
|
|
1580
|
+
r[A][0] !== n && (i[A] = r[A][1]);
|
|
1581
|
+
return i.join("");
|
|
1582
|
+
}, e.prototype.diff_levenshtein = function(r) {
|
|
1583
|
+
for (var i = 0, A = 0, c = 0, a = 0; a < r.length; a++) {
|
|
1584
|
+
var l = r[a][0], d = r[a][1];
|
|
1585
|
+
switch (l) {
|
|
1586
|
+
case o:
|
|
1587
|
+
A += d.length;
|
|
1588
|
+
break;
|
|
1589
|
+
case n:
|
|
1590
|
+
c += d.length;
|
|
1591
|
+
break;
|
|
1592
|
+
case s:
|
|
1593
|
+
i += Math.max(A, c), A = 0, c = 0;
|
|
1594
|
+
break;
|
|
1595
|
+
}
|
|
1596
|
+
}
|
|
1597
|
+
return i += Math.max(A, c), i;
|
|
1598
|
+
}, e.prototype.diff_toDelta = function(r) {
|
|
1599
|
+
for (var i = [], A = 0; A < r.length; A++)
|
|
1600
|
+
switch (r[A][0]) {
|
|
1601
|
+
case o:
|
|
1602
|
+
i[A] = "+" + encodeURI(r[A][1]);
|
|
1603
|
+
break;
|
|
1604
|
+
case n:
|
|
1605
|
+
i[A] = "-" + r[A][1].length;
|
|
1606
|
+
break;
|
|
1607
|
+
case s:
|
|
1608
|
+
i[A] = "=" + r[A][1].length;
|
|
1609
|
+
break;
|
|
1610
|
+
}
|
|
1611
|
+
return i.join(" ").replace(/%20/g, " ");
|
|
1612
|
+
}, e.prototype.diff_fromDelta = function(r, i) {
|
|
1613
|
+
for (var A = [], c = 0, a = 0, l = i.split(/\t/g), d = 0; d < l.length; d++) {
|
|
1614
|
+
var u = l[d].substring(1);
|
|
1615
|
+
switch (l[d].charAt(0)) {
|
|
1616
|
+
case "+":
|
|
1617
|
+
try {
|
|
1618
|
+
A[c++] = new e.Diff(o, decodeURI(u));
|
|
1619
|
+
} catch {
|
|
1620
|
+
throw new Error("Illegal escape in diff_fromDelta: " + u);
|
|
1621
|
+
}
|
|
1622
|
+
break;
|
|
1623
|
+
case "-":
|
|
1624
|
+
// Fall through.
|
|
1625
|
+
case "=":
|
|
1626
|
+
var g = parseInt(u, 10);
|
|
1627
|
+
if (isNaN(g) || g < 0)
|
|
1628
|
+
throw new Error("Invalid number in diff_fromDelta: " + u);
|
|
1629
|
+
var h = r.substring(a, a += g);
|
|
1630
|
+
l[d].charAt(0) == "=" ? A[c++] = new e.Diff(s, h) : A[c++] = new e.Diff(n, h);
|
|
1631
|
+
break;
|
|
1632
|
+
default:
|
|
1633
|
+
if (l[d])
|
|
1634
|
+
throw new Error("Invalid diff operation in diff_fromDelta: " + l[d]);
|
|
1635
|
+
}
|
|
1636
|
+
}
|
|
1637
|
+
if (a != r.length)
|
|
1638
|
+
throw new Error("Delta length (" + a + ") does not equal source text length (" + r.length + ").");
|
|
1639
|
+
return A;
|
|
1640
|
+
}, e.prototype.match_main = function(r, i, A) {
|
|
1641
|
+
if (r == null || i == null || A == null)
|
|
1642
|
+
throw new Error("Null input. (match_main)");
|
|
1643
|
+
return A = Math.max(0, Math.min(A, r.length)), r == i ? 0 : r.length ? r.substring(A, A + i.length) == i ? A : this.match_bitap_(r, i, A) : -1;
|
|
1644
|
+
}, e.prototype.match_bitap_ = function(r, i, A) {
|
|
1645
|
+
if (i.length > this.Match_MaxBits)
|
|
1646
|
+
throw new Error("Pattern too long for this browser.");
|
|
1647
|
+
var c = this.match_alphabet_(i), a = this;
|
|
1648
|
+
function l(k, R) {
|
|
1649
|
+
var x = k / i.length, S = Math.abs(A - R);
|
|
1650
|
+
return a.Match_Distance ? x + S / a.Match_Distance : S ? 1 : x;
|
|
1651
|
+
}
|
|
1652
|
+
var d = this.Match_Threshold, u = r.indexOf(i, A);
|
|
1653
|
+
u != -1 && (d = Math.min(l(0, u), d), u = r.lastIndexOf(i, A + i.length), u != -1 && (d = Math.min(l(0, u), d)));
|
|
1654
|
+
var g = 1 << i.length - 1;
|
|
1655
|
+
u = -1;
|
|
1656
|
+
for (var h, f, p = i.length + r.length, m, v = 0; v < i.length; v++) {
|
|
1657
|
+
for (h = 0, f = p; h < f; )
|
|
1658
|
+
l(v, A + f) <= d ? h = f : p = f, f = Math.floor((p - h) / 2 + h);
|
|
1659
|
+
p = f;
|
|
1660
|
+
var I = Math.max(1, A - f + 1), C = Math.min(A + f, r.length) + i.length, E = Array(C + 2);
|
|
1661
|
+
E[C + 1] = (1 << v) - 1;
|
|
1662
|
+
for (var b = C; b >= I; b--) {
|
|
1663
|
+
var w = c[r.charAt(b - 1)];
|
|
1664
|
+
if (v === 0 ? E[b] = (E[b + 1] << 1 | 1) & w : E[b] = (E[b + 1] << 1 | 1) & w | ((m[b + 1] | m[b]) << 1 | 1) | m[b + 1], E[b] & g) {
|
|
1665
|
+
var y = l(v, b - 1);
|
|
1666
|
+
if (y <= d)
|
|
1667
|
+
if (d = y, u = b - 1, u > A)
|
|
1668
|
+
I = Math.max(1, 2 * A - u);
|
|
1669
|
+
else
|
|
1670
|
+
break;
|
|
1671
|
+
}
|
|
1672
|
+
}
|
|
1673
|
+
if (l(v + 1, A) > d)
|
|
1674
|
+
break;
|
|
1675
|
+
m = E;
|
|
1676
|
+
}
|
|
1677
|
+
return u;
|
|
1678
|
+
}, e.prototype.match_alphabet_ = function(r) {
|
|
1679
|
+
for (var i = {}, A = 0; A < r.length; A++)
|
|
1680
|
+
i[r.charAt(A)] = 0;
|
|
1681
|
+
for (var A = 0; A < r.length; A++)
|
|
1682
|
+
i[r.charAt(A)] |= 1 << r.length - A - 1;
|
|
1683
|
+
return i;
|
|
1684
|
+
}, e.prototype.patch_addContext_ = function(r, i) {
|
|
1685
|
+
if (i.length != 0) {
|
|
1686
|
+
if (r.start2 === null)
|
|
1687
|
+
throw Error("patch not initialized");
|
|
1688
|
+
for (var A = i.substring(r.start2, r.start2 + r.length1), c = 0; i.indexOf(A) != i.lastIndexOf(A) && A.length < this.Match_MaxBits - this.Patch_Margin - this.Patch_Margin; )
|
|
1689
|
+
c += this.Patch_Margin, A = i.substring(
|
|
1690
|
+
r.start2 - c,
|
|
1691
|
+
r.start2 + r.length1 + c
|
|
1692
|
+
);
|
|
1693
|
+
c += this.Patch_Margin;
|
|
1694
|
+
var a = i.substring(r.start2 - c, r.start2);
|
|
1695
|
+
a && r.diffs.unshift(new e.Diff(s, a));
|
|
1696
|
+
var l = i.substring(
|
|
1697
|
+
r.start2 + r.length1,
|
|
1698
|
+
r.start2 + r.length1 + c
|
|
1699
|
+
);
|
|
1700
|
+
l && r.diffs.push(new e.Diff(s, l)), r.start1 -= a.length, r.start2 -= a.length, r.length1 += a.length + l.length, r.length2 += a.length + l.length;
|
|
1701
|
+
}
|
|
1702
|
+
}, e.prototype.patch_make = function(r, i, A) {
|
|
1703
|
+
var c, a;
|
|
1704
|
+
if (typeof r == "string" && typeof i == "string" && typeof A > "u")
|
|
1705
|
+
c = /** @type {string} */
|
|
1706
|
+
r, a = this.diff_main(
|
|
1707
|
+
c,
|
|
1708
|
+
/** @type {string} */
|
|
1709
|
+
i,
|
|
1710
|
+
!0
|
|
1711
|
+
), a.length > 2 && (this.diff_cleanupSemantic(a), this.diff_cleanupEfficiency(a));
|
|
1712
|
+
else if (r && typeof r == "object" && typeof i > "u" && typeof A > "u")
|
|
1713
|
+
a = /** @type {!Array.<!diff_match_patch.Diff>} */
|
|
1714
|
+
r, c = this.diff_text1(a);
|
|
1715
|
+
else if (typeof r == "string" && i && typeof i == "object" && typeof A > "u")
|
|
1716
|
+
c = /** @type {string} */
|
|
1717
|
+
r, a = /** @type {!Array.<!diff_match_patch.Diff>} */
|
|
1718
|
+
i;
|
|
1719
|
+
else if (typeof r == "string" && typeof i == "string" && A && typeof A == "object")
|
|
1720
|
+
c = /** @type {string} */
|
|
1721
|
+
r, a = /** @type {!Array.<!diff_match_patch.Diff>} */
|
|
1722
|
+
A;
|
|
1723
|
+
else
|
|
1724
|
+
throw new Error("Unknown call format to patch_make.");
|
|
1725
|
+
if (a.length === 0)
|
|
1726
|
+
return [];
|
|
1727
|
+
for (var l = [], d = new e.patch_obj(), u = 0, g = 0, h = 0, f = c, p = c, m = 0; m < a.length; m++) {
|
|
1728
|
+
var v = a[m][0], I = a[m][1];
|
|
1729
|
+
switch (!u && v !== s && (d.start1 = g, d.start2 = h), v) {
|
|
1730
|
+
case o:
|
|
1731
|
+
d.diffs[u++] = a[m], d.length2 += I.length, p = p.substring(0, h) + I + p.substring(h);
|
|
1732
|
+
break;
|
|
1733
|
+
case n:
|
|
1734
|
+
d.length1 += I.length, d.diffs[u++] = a[m], p = p.substring(0, h) + p.substring(h + I.length);
|
|
1735
|
+
break;
|
|
1736
|
+
case s:
|
|
1737
|
+
I.length <= 2 * this.Patch_Margin && u && a.length != m + 1 ? (d.diffs[u++] = a[m], d.length1 += I.length, d.length2 += I.length) : I.length >= 2 * this.Patch_Margin && u && (this.patch_addContext_(d, f), l.push(d), d = new e.patch_obj(), u = 0, f = p, g = h);
|
|
1738
|
+
break;
|
|
1739
|
+
}
|
|
1740
|
+
v !== o && (g += I.length), v !== n && (h += I.length);
|
|
1741
|
+
}
|
|
1742
|
+
return u && (this.patch_addContext_(d, f), l.push(d)), l;
|
|
1743
|
+
}, e.prototype.patch_deepCopy = function(r) {
|
|
1744
|
+
for (var i = [], A = 0; A < r.length; A++) {
|
|
1745
|
+
var c = r[A], a = new e.patch_obj();
|
|
1746
|
+
a.diffs = [];
|
|
1747
|
+
for (var l = 0; l < c.diffs.length; l++)
|
|
1748
|
+
a.diffs[l] = new e.Diff(c.diffs[l][0], c.diffs[l][1]);
|
|
1749
|
+
a.start1 = c.start1, a.start2 = c.start2, a.length1 = c.length1, a.length2 = c.length2, i[A] = a;
|
|
1750
|
+
}
|
|
1751
|
+
return i;
|
|
1752
|
+
}, e.prototype.patch_apply = function(r, i) {
|
|
1753
|
+
if (r.length == 0)
|
|
1754
|
+
return [i, []];
|
|
1755
|
+
r = this.patch_deepCopy(r);
|
|
1756
|
+
var A = this.patch_addPadding(r);
|
|
1757
|
+
i = A + i + A, this.patch_splitMax(r);
|
|
1758
|
+
for (var c = 0, a = [], l = 0; l < r.length; l++) {
|
|
1759
|
+
var d = r[l].start2 + c, u = this.diff_text1(r[l].diffs), g, h = -1;
|
|
1760
|
+
if (u.length > this.Match_MaxBits ? (g = this.match_main(
|
|
1761
|
+
i,
|
|
1762
|
+
u.substring(0, this.Match_MaxBits),
|
|
1763
|
+
d
|
|
1764
|
+
), g != -1 && (h = this.match_main(
|
|
1765
|
+
i,
|
|
1766
|
+
u.substring(u.length - this.Match_MaxBits),
|
|
1767
|
+
d + u.length - this.Match_MaxBits
|
|
1768
|
+
), (h == -1 || g >= h) && (g = -1))) : g = this.match_main(i, u, d), g == -1)
|
|
1769
|
+
a[l] = !1, c -= r[l].length2 - r[l].length1;
|
|
1770
|
+
else {
|
|
1771
|
+
a[l] = !0, c = g - d;
|
|
1772
|
+
var f;
|
|
1773
|
+
if (h == -1 ? f = i.substring(g, g + u.length) : f = i.substring(g, h + this.Match_MaxBits), u == f)
|
|
1774
|
+
i = i.substring(0, g) + this.diff_text2(r[l].diffs) + i.substring(g + u.length);
|
|
1775
|
+
else {
|
|
1776
|
+
var p = this.diff_main(u, f, !1);
|
|
1777
|
+
if (u.length > this.Match_MaxBits && this.diff_levenshtein(p) / u.length > this.Patch_DeleteThreshold)
|
|
1778
|
+
a[l] = !1;
|
|
1779
|
+
else {
|
|
1780
|
+
this.diff_cleanupSemanticLossless(p);
|
|
1781
|
+
for (var m = 0, v, I = 0; I < r[l].diffs.length; I++) {
|
|
1782
|
+
var C = r[l].diffs[I];
|
|
1783
|
+
C[0] !== s && (v = this.diff_xIndex(p, m)), C[0] === o ? i = i.substring(0, g + v) + C[1] + i.substring(g + v) : C[0] === n && (i = i.substring(0, g + v) + i.substring(g + this.diff_xIndex(
|
|
1784
|
+
p,
|
|
1785
|
+
m + C[1].length
|
|
1786
|
+
))), C[0] !== n && (m += C[1].length);
|
|
1787
|
+
}
|
|
1788
|
+
}
|
|
1789
|
+
}
|
|
1790
|
+
}
|
|
1791
|
+
}
|
|
1792
|
+
return i = i.substring(A.length, i.length - A.length), [i, a];
|
|
1793
|
+
}, e.prototype.patch_addPadding = function(r) {
|
|
1794
|
+
for (var i = this.Patch_Margin, A = "", c = 1; c <= i; c++)
|
|
1795
|
+
A += String.fromCharCode(c);
|
|
1796
|
+
for (var c = 0; c < r.length; c++)
|
|
1797
|
+
r[c].start1 += i, r[c].start2 += i;
|
|
1798
|
+
var a = r[0], l = a.diffs;
|
|
1799
|
+
if (l.length == 0 || l[0][0] != s)
|
|
1800
|
+
l.unshift(new e.Diff(s, A)), a.start1 -= i, a.start2 -= i, a.length1 += i, a.length2 += i;
|
|
1801
|
+
else if (i > l[0][1].length) {
|
|
1802
|
+
var d = i - l[0][1].length;
|
|
1803
|
+
l[0][1] = A.substring(l[0][1].length) + l[0][1], a.start1 -= d, a.start2 -= d, a.length1 += d, a.length2 += d;
|
|
1804
|
+
}
|
|
1805
|
+
if (a = r[r.length - 1], l = a.diffs, l.length == 0 || l[l.length - 1][0] != s)
|
|
1806
|
+
l.push(new e.Diff(s, A)), a.length1 += i, a.length2 += i;
|
|
1807
|
+
else if (i > l[l.length - 1][1].length) {
|
|
1808
|
+
var d = i - l[l.length - 1][1].length;
|
|
1809
|
+
l[l.length - 1][1] += A.substring(0, d), a.length1 += d, a.length2 += d;
|
|
1810
|
+
}
|
|
1811
|
+
return A;
|
|
1812
|
+
}, e.prototype.patch_splitMax = function(r) {
|
|
1813
|
+
for (var i = this.Match_MaxBits, A = 0; A < r.length; A++)
|
|
1814
|
+
if (!(r[A].length1 <= i)) {
|
|
1815
|
+
var c = r[A];
|
|
1816
|
+
r.splice(A--, 1);
|
|
1817
|
+
for (var a = c.start1, l = c.start2, d = ""; c.diffs.length !== 0; ) {
|
|
1818
|
+
var u = new e.patch_obj(), g = !0;
|
|
1819
|
+
for (u.start1 = a - d.length, u.start2 = l - d.length, d !== "" && (u.length1 = u.length2 = d.length, u.diffs.push(new e.Diff(s, d))); c.diffs.length !== 0 && u.length1 < i - this.Patch_Margin; ) {
|
|
1820
|
+
var h = c.diffs[0][0], f = c.diffs[0][1];
|
|
1821
|
+
h === o ? (u.length2 += f.length, l += f.length, u.diffs.push(c.diffs.shift()), g = !1) : h === n && u.diffs.length == 1 && u.diffs[0][0] == s && f.length > 2 * i ? (u.length1 += f.length, a += f.length, g = !1, u.diffs.push(new e.Diff(h, f)), c.diffs.shift()) : (f = f.substring(
|
|
1822
|
+
0,
|
|
1823
|
+
i - u.length1 - this.Patch_Margin
|
|
1824
|
+
), u.length1 += f.length, a += f.length, h === s ? (u.length2 += f.length, l += f.length) : g = !1, u.diffs.push(new e.Diff(h, f)), f == c.diffs[0][1] ? c.diffs.shift() : c.diffs[0][1] = c.diffs[0][1].substring(f.length));
|
|
1825
|
+
}
|
|
1826
|
+
d = this.diff_text2(u.diffs), d = d.substring(d.length - this.Patch_Margin);
|
|
1827
|
+
var p = this.diff_text1(c.diffs).substring(0, this.Patch_Margin);
|
|
1828
|
+
p !== "" && (u.length1 += p.length, u.length2 += p.length, u.diffs.length !== 0 && u.diffs[u.diffs.length - 1][0] === s ? u.diffs[u.diffs.length - 1][1] += p : u.diffs.push(new e.Diff(s, p))), g || r.splice(++A, 0, u);
|
|
1829
|
+
}
|
|
1830
|
+
}
|
|
1831
|
+
}, e.prototype.patch_toText = function(r) {
|
|
1832
|
+
for (var i = [], A = 0; A < r.length; A++)
|
|
1833
|
+
i[A] = r[A];
|
|
1834
|
+
return i.join("");
|
|
1835
|
+
}, e.prototype.patch_fromText = function(r) {
|
|
1836
|
+
var i = [];
|
|
1837
|
+
if (!r)
|
|
1838
|
+
return i;
|
|
1839
|
+
for (var A = r.split(`
|
|
1840
|
+
`), c = 0, a = /^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/; c < A.length; ) {
|
|
1841
|
+
var l = A[c].match(a);
|
|
1842
|
+
if (!l)
|
|
1843
|
+
throw new Error("Invalid patch string: " + A[c]);
|
|
1844
|
+
var d = new e.patch_obj();
|
|
1845
|
+
for (i.push(d), d.start1 = parseInt(l[1], 10), l[2] === "" ? (d.start1--, d.length1 = 1) : l[2] == "0" ? d.length1 = 0 : (d.start1--, d.length1 = parseInt(l[2], 10)), d.start2 = parseInt(l[3], 10), l[4] === "" ? (d.start2--, d.length2 = 1) : l[4] == "0" ? d.length2 = 0 : (d.start2--, d.length2 = parseInt(l[4], 10)), c++; c < A.length; ) {
|
|
1846
|
+
var u = A[c].charAt(0);
|
|
1847
|
+
try {
|
|
1848
|
+
var g = decodeURI(A[c].substring(1));
|
|
1849
|
+
} catch {
|
|
1850
|
+
throw new Error("Illegal escape in patch_fromText: " + g);
|
|
1851
|
+
}
|
|
1852
|
+
if (u == "-")
|
|
1853
|
+
d.diffs.push(new e.Diff(n, g));
|
|
1854
|
+
else if (u == "+")
|
|
1855
|
+
d.diffs.push(new e.Diff(o, g));
|
|
1856
|
+
else if (u == " ")
|
|
1857
|
+
d.diffs.push(new e.Diff(s, g));
|
|
1858
|
+
else {
|
|
1859
|
+
if (u == "@")
|
|
1860
|
+
break;
|
|
1861
|
+
if (u !== "") throw new Error('Invalid patch mode "' + u + '" in: ' + g);
|
|
1862
|
+
}
|
|
1863
|
+
c++;
|
|
1864
|
+
}
|
|
1865
|
+
}
|
|
1866
|
+
return i;
|
|
1867
|
+
}, e.patch_obj = function() {
|
|
1868
|
+
this.diffs = [], this.start1 = null, this.start2 = null, this.length1 = 0, this.length2 = 0;
|
|
1869
|
+
}, e.patch_obj.prototype.toString = function() {
|
|
1870
|
+
var r, i;
|
|
1871
|
+
this.length1 === 0 ? r = this.start1 + ",0" : this.length1 == 1 ? r = this.start1 + 1 : r = this.start1 + 1 + "," + this.length1, this.length2 === 0 ? i = this.start2 + ",0" : this.length2 == 1 ? i = this.start2 + 1 : i = this.start2 + 1 + "," + this.length2;
|
|
1872
|
+
for (var A = ["@@ -" + r + " +" + i + ` @@
|
|
1873
|
+
`], c, a = 0; a < this.diffs.length; a++) {
|
|
1874
|
+
switch (this.diffs[a][0]) {
|
|
1875
|
+
case o:
|
|
1876
|
+
c = "+";
|
|
1877
|
+
break;
|
|
1878
|
+
case n:
|
|
1879
|
+
c = "-";
|
|
1880
|
+
break;
|
|
1881
|
+
case s:
|
|
1882
|
+
c = " ";
|
|
1883
|
+
break;
|
|
1884
|
+
}
|
|
1885
|
+
A[a + 1] = c + encodeURI(this.diffs[a][1]) + `
|
|
1886
|
+
`;
|
|
1887
|
+
}
|
|
1888
|
+
return A.join("").replace(/%20/g, " ");
|
|
1889
|
+
}, t.exports = e, t.exports.diff_match_patch = e, t.exports.DIFF_DELETE = n, t.exports.DIFF_INSERT = o, t.exports.DIFF_EQUAL = s;
|
|
1890
|
+
}(Ae)), Ae.exports;
|
|
1891
|
+
}
|
|
1892
|
+
var $ = Mn();
|
|
1893
|
+
function et(t) {
|
|
1894
|
+
return t[t.length - 1].range[1] - t[0].range[0];
|
|
1895
|
+
}
|
|
1896
|
+
function U(t, e) {
|
|
1897
|
+
return t.slice(e.range[0], e.range[1]);
|
|
1898
|
+
}
|
|
1899
|
+
function ve(t, e) {
|
|
1900
|
+
return /^ *$/.test(e.content) && e.content != U(t, e);
|
|
1901
|
+
}
|
|
1902
|
+
const tt = new $.diff_match_patch();
|
|
1903
|
+
tt.Diff_Timeout = 5;
|
|
1904
|
+
function Wn(t) {
|
|
1905
|
+
const e = [];
|
|
1906
|
+
let n = 0, o = 0;
|
|
1907
|
+
return t.forEach((s) => {
|
|
1908
|
+
const [r, i] = s;
|
|
1909
|
+
switch (r) {
|
|
1910
|
+
case $.DIFF_EQUAL:
|
|
1911
|
+
n += i.length;
|
|
1912
|
+
break;
|
|
1913
|
+
case $.DIFF_DELETE:
|
|
1914
|
+
n += i.length, o -= i.length;
|
|
1915
|
+
break;
|
|
1916
|
+
case $.DIFF_INSERT:
|
|
1917
|
+
o += i.length;
|
|
1918
|
+
break;
|
|
1919
|
+
default:
|
|
1920
|
+
throw new Error("Illegal Diff Action: " + r);
|
|
1921
|
+
}
|
|
1922
|
+
e.push({
|
|
1923
|
+
oldPosition: n,
|
|
1924
|
+
diffOffset: o
|
|
1925
|
+
});
|
|
1926
|
+
}), e;
|
|
1927
|
+
}
|
|
1928
|
+
function O(t, e, n, o = "HTML") {
|
|
1929
|
+
if (n.length === 0)
|
|
1930
|
+
return [];
|
|
1931
|
+
const s = o === "HTML" ? Zn(t) : [t, []], [r, i] = s, A = tt.diff_main(r, e), c = Wn(A), a = n.map((d) => {
|
|
1932
|
+
const u = G(i, d.range[0]), g = G(i, d.range[1]), h = G(c, u), f = g - 1, p = G(c, f) + 1;
|
|
1933
|
+
return {
|
|
1934
|
+
originalMatch: d,
|
|
1935
|
+
range: [h, p]
|
|
1936
|
+
};
|
|
1937
|
+
}), l = o === "HTML" ? a.some((d) => U(e, d) !== d.originalMatch.content) : a.some((d) => U(e, d) !== U(t, d.originalMatch));
|
|
1938
|
+
return H("cleanedCheckedDocument", r), H(
|
|
1939
|
+
"cleanedCheckedDocumentCodes",
|
|
1940
|
+
r.split("").map((d) => d.charCodeAt(0))
|
|
1941
|
+
), H("currentDocument", e), H(
|
|
1942
|
+
"currentDocumentCodes",
|
|
1943
|
+
e.split("").map((d) => d.charCodeAt(0))
|
|
1944
|
+
), H("matches", n), H("diffs", A), H("alignedMatches", a), H(
|
|
1945
|
+
"alignedMatchesContent",
|
|
1946
|
+
a.map((d) => U(e, d))
|
|
1947
|
+
), l ? [] : a;
|
|
1948
|
+
}
|
|
1949
|
+
function nt(t) {
|
|
1950
|
+
const e = {
|
|
1951
|
+
"original-id": t.id,
|
|
1952
|
+
"original-class": t.className,
|
|
1953
|
+
"original-name": t.name,
|
|
1954
|
+
"original-source": t.tagName.toLowerCase(),
|
|
1955
|
+
"original-display": Oe(t) ? "" : "hidden"
|
|
1956
|
+
};
|
|
1957
|
+
for (const n of t.getAttributeNames().filter((o) => o.startsWith("aria-")))
|
|
1958
|
+
e["original-" + n] = t.getAttribute(n);
|
|
1959
|
+
return Object.fromEntries(Object.entries(e).filter(([, n]) => n));
|
|
1960
|
+
}
|
|
1961
|
+
const Ne = { name: "unknown", version: "0" }, Hn = [
|
|
1962
|
+
["edge", /Edge\/([0-9\._]+)/],
|
|
1963
|
+
["yandexbrowser", /YaBrowser\/([0-9\._]+)/],
|
|
1964
|
+
["vivaldi", /Vivaldi\/([0-9\.]+)/],
|
|
1965
|
+
["kakaotalk", /KAKAOTALK\s([0-9\.]+)/],
|
|
1966
|
+
["chrome", /(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],
|
|
1967
|
+
["phantomjs", /PhantomJS\/([0-9\.]+)(:?\s|$)/],
|
|
1968
|
+
["crios", /CriOS\/([0-9\.]+)(:?\s|$)/],
|
|
1969
|
+
["firefox", /Firefox\/([0-9\.]+)(?:\s|$)/],
|
|
1970
|
+
["fxios", /FxiOS\/([0-9\.]+)/],
|
|
1971
|
+
["opera", /Opera\/([0-9\.]+)(?:\s|$)/],
|
|
1972
|
+
["opera", /OPR\/([0-9\.]+)(:?\s|$)$/],
|
|
1973
|
+
["ie", /Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],
|
|
1974
|
+
["ie", /MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],
|
|
1975
|
+
["ie", /MSIE\s(7\.0)/],
|
|
1976
|
+
["bb10", /BB10;\sTouch.*Version\/([0-9\.]+)/],
|
|
1977
|
+
["android", /Android\s([0-9\.]+)/],
|
|
1978
|
+
["ios", /Version\/([0-9\._]+).*Mobile.*Safari.*/],
|
|
1979
|
+
["safari", /Version\/([0-9\._]+).*Safari/]
|
|
1980
|
+
];
|
|
1981
|
+
function Qn() {
|
|
1982
|
+
try {
|
|
1983
|
+
return Kn(navigator.userAgent) || Ne;
|
|
1984
|
+
} catch (t) {
|
|
1985
|
+
return console.error("Error in detectBrowser:", t), Ne;
|
|
1986
|
+
}
|
|
1987
|
+
}
|
|
1988
|
+
function Kn(t) {
|
|
1989
|
+
if (t)
|
|
1990
|
+
return Hn.map(([e, n]) => {
|
|
1991
|
+
const o = n.exec(t);
|
|
1992
|
+
let s = o && o[1].split(/[._]/).slice(0, 3);
|
|
1993
|
+
return s && s.length < 3 && (s = s.concat(s.length == 1 ? [0, 0] : [0])), o && {
|
|
1994
|
+
name: e,
|
|
1995
|
+
version: s.join(".")
|
|
1996
|
+
};
|
|
1997
|
+
}).filter(Boolean)[0] || void 0;
|
|
1998
|
+
}
|
|
1999
|
+
const Nn = Qn();
|
|
2000
|
+
function Pn() {
|
|
2001
|
+
return Nn.name === "chrome";
|
|
2002
|
+
}
|
|
2003
|
+
function Gn(t) {
|
|
2004
|
+
return t.documentElement || t.body.parentNode || t.body;
|
|
2005
|
+
}
|
|
2006
|
+
function Tn(t = window) {
|
|
2007
|
+
return t.pageYOffset !== void 0 ? t.pageYOffset : Gn(t.document).scrollTop;
|
|
2008
|
+
}
|
|
2009
|
+
function Yn(t) {
|
|
2010
|
+
return t.clientHeight !== t.scrollHeight && t.tagName !== "BODY" && t.tagName !== "HTML";
|
|
2011
|
+
}
|
|
2012
|
+
function Ln(t) {
|
|
2013
|
+
const e = [];
|
|
2014
|
+
let n = t.parentElement;
|
|
2015
|
+
for (; n; )
|
|
2016
|
+
e.push(n), n = n.parentElement;
|
|
2017
|
+
return e;
|
|
2018
|
+
}
|
|
2019
|
+
function Jn(t) {
|
|
2020
|
+
return Ln(t).filter(Yn);
|
|
2021
|
+
}
|
|
2022
|
+
function rt(t, e = 0, n = 0) {
|
|
2023
|
+
if (ot(t) || (t.scrollIntoView(), !e))
|
|
2024
|
+
return;
|
|
2025
|
+
const s = t.getBoundingClientRect(), r = Jn(t);
|
|
2026
|
+
r.length <= 2 && r.forEach((A) => {
|
|
2027
|
+
const c = A.getBoundingClientRect();
|
|
2028
|
+
(s.top < c.top + n || s.bottom > c.bottom) && (A.scrollTop = s.top - c.top - n);
|
|
2029
|
+
});
|
|
2030
|
+
const i = Tn();
|
|
2031
|
+
(s.top < e || s.bottom > window.innerHeight) && window.scrollTo(0, i + s.top - e);
|
|
2032
|
+
}
|
|
2033
|
+
function ot(t) {
|
|
2034
|
+
try {
|
|
2035
|
+
return t.scrollIntoView({ block: "center" }), !0;
|
|
2036
|
+
} catch {
|
|
2037
|
+
return !1;
|
|
2038
|
+
}
|
|
2039
|
+
}
|
|
2040
|
+
function On(t) {
|
|
2041
|
+
ot(t) || t.scrollIntoView();
|
|
2042
|
+
}
|
|
2043
|
+
const se = Dt({
|
|
2044
|
+
text: "",
|
|
2045
|
+
domPositions: []
|
|
2046
|
+
});
|
|
2047
|
+
function jn(t, e) {
|
|
2048
|
+
return {
|
|
2049
|
+
text: t,
|
|
2050
|
+
domPositions: e
|
|
2051
|
+
};
|
|
2052
|
+
}
|
|
2053
|
+
function Un(t) {
|
|
2054
|
+
return {
|
|
2055
|
+
text: t.map((e) => e.text).join(""),
|
|
2056
|
+
domPositions: t.flatMap((e) => e.domPositions)
|
|
2057
|
+
};
|
|
2058
|
+
}
|
|
2059
|
+
function zn(t, e) {
|
|
2060
|
+
return {
|
|
2061
|
+
node: t,
|
|
2062
|
+
offset: e
|
|
2063
|
+
};
|
|
2064
|
+
}
|
|
2065
|
+
const Vn = fe(["SCRIPT", "STYLE"]);
|
|
2066
|
+
function Ie(t) {
|
|
2067
|
+
return Un(
|
|
2068
|
+
Array.from(t.childNodes).map((e) => {
|
|
2069
|
+
switch (e.nodeType) {
|
|
2070
|
+
case Node.ELEMENT_NODE: {
|
|
2071
|
+
const n = e.nodeName;
|
|
2072
|
+
if (Vn[n])
|
|
2073
|
+
return se;
|
|
2074
|
+
const o = Ie(e);
|
|
2075
|
+
if ($e[n]) {
|
|
2076
|
+
const s = o.domPositions[o.domPositions.length - 1];
|
|
2077
|
+
return {
|
|
2078
|
+
text: o.text + `
|
|
2079
|
+
`,
|
|
2080
|
+
domPositions: o.domPositions.concat({
|
|
2081
|
+
node: s && s.node || e,
|
|
2082
|
+
offset: s && s.offset || 0
|
|
2083
|
+
})
|
|
2084
|
+
};
|
|
2085
|
+
}
|
|
2086
|
+
return o;
|
|
2087
|
+
}
|
|
2088
|
+
case Node.TEXT_NODE: {
|
|
2089
|
+
const n = e.textContent;
|
|
2090
|
+
return n ? jn(
|
|
2091
|
+
n,
|
|
2092
|
+
Array.from({ length: n.length }, (o, s) => zn(e, s))
|
|
2093
|
+
) : se;
|
|
2094
|
+
}
|
|
2095
|
+
default:
|
|
2096
|
+
return se;
|
|
2097
|
+
}
|
|
2098
|
+
})
|
|
2099
|
+
);
|
|
2100
|
+
}
|
|
2101
|
+
function Xn(t, e) {
|
|
2102
|
+
const n = e[Math.max(Math.min(t, e.length) - 1, 0)];
|
|
2103
|
+
return {
|
|
2104
|
+
node: n.node,
|
|
2105
|
+
offset: n.offset + 1
|
|
2106
|
+
};
|
|
2107
|
+
}
|
|
2108
|
+
class N {
|
|
2109
|
+
config;
|
|
2110
|
+
currentContentChecking;
|
|
2111
|
+
lastContentChecked;
|
|
2112
|
+
constructor(e) {
|
|
2113
|
+
this.config = e;
|
|
2114
|
+
}
|
|
2115
|
+
getEditorElement() {
|
|
2116
|
+
return this.getEditorDocument().querySelector("body");
|
|
2117
|
+
}
|
|
2118
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2119
|
+
registerCheckCall(e) {
|
|
2120
|
+
}
|
|
2121
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2122
|
+
registerCheckResult(e) {
|
|
2123
|
+
this.lastContentChecked = this.currentContentChecking;
|
|
2124
|
+
}
|
|
2125
|
+
extractContentForCheck(e) {
|
|
2126
|
+
const n = this.getContent(e);
|
|
2127
|
+
return this.currentContentChecking = n, { content: n, selection: e.checkSelection ? this.getSelection() : void 0 };
|
|
2128
|
+
}
|
|
2129
|
+
getSelection() {
|
|
2130
|
+
return { ranges: [] };
|
|
2131
|
+
}
|
|
2132
|
+
scrollIntoView(e) {
|
|
2133
|
+
const n = e.getRangeAt(0), o = n.cloneRange();
|
|
2134
|
+
o.collapse(!0);
|
|
2135
|
+
const s = document.createElement("span");
|
|
2136
|
+
o.insertNode(s), e.removeAllRanges(), e.addRange(n), s.focus(), this.scrollElementIntoView(s), z(s), _(o);
|
|
2137
|
+
}
|
|
2138
|
+
scrollToCurrentSelection() {
|
|
2139
|
+
const e = this.getEditorDocument().getSelection();
|
|
2140
|
+
if (e)
|
|
2141
|
+
try {
|
|
2142
|
+
this.scrollIntoView(e);
|
|
2143
|
+
} catch (n) {
|
|
2144
|
+
console.log("Scrolling Error: ", n);
|
|
2145
|
+
}
|
|
2146
|
+
}
|
|
2147
|
+
scrollElementIntoView(e) {
|
|
2148
|
+
rt(e, this.config.scrollOffsetY);
|
|
2149
|
+
}
|
|
2150
|
+
selectRanges(e, n) {
|
|
2151
|
+
if (V(this.getEditorElement()), this.selectMatches(e, n), this.isQuillEditor() || this.isCkEditor5()) {
|
|
2152
|
+
const o = this.getEditorDocument().getSelection();
|
|
2153
|
+
o && o.anchorNode && o.anchorNode.parentElement && On(o.anchorNode.parentElement);
|
|
2154
|
+
} else
|
|
2155
|
+
this.scrollToCurrentSelection();
|
|
2156
|
+
}
|
|
2157
|
+
isCkEditor5() {
|
|
2158
|
+
return this.getEditorElement().classList.contains("ck-editor__editable");
|
|
2159
|
+
}
|
|
2160
|
+
isQuillEditor() {
|
|
2161
|
+
const e = this.getEditorElement().classList.contains("ql-editor"), n = !!this.getEditorElement().querySelector(".ql-editor");
|
|
2162
|
+
return e || n;
|
|
2163
|
+
}
|
|
2164
|
+
selectMatches(e, n) {
|
|
2165
|
+
const o = this.getTextDomMapping(), s = O(this.lastContentChecked, o.text, n);
|
|
2166
|
+
if (s.length === 0)
|
|
2167
|
+
throw new Error("Selected flagged content is modified.");
|
|
2168
|
+
return this.selectAlignedMatches(s, o), [s, o];
|
|
2169
|
+
}
|
|
2170
|
+
selectAlignedMatches(e, n) {
|
|
2171
|
+
const o = e[0].range[0], s = et(e);
|
|
2172
|
+
this.selectText(o, s, n);
|
|
2173
|
+
}
|
|
2174
|
+
selectText(e, n, o) {
|
|
2175
|
+
if (!o.text)
|
|
2176
|
+
return;
|
|
2177
|
+
const s = this.getEditorDocument().getSelection();
|
|
2178
|
+
if (!s) {
|
|
2179
|
+
console.warn("AbstractRichtextEditorAdapter.selectText: Missing selection");
|
|
2180
|
+
return;
|
|
2181
|
+
}
|
|
2182
|
+
s.removeAllRanges(), s.addRange(this.createRange(e, n, o));
|
|
2183
|
+
}
|
|
2184
|
+
createRange(e, n, o) {
|
|
2185
|
+
const r = this.getEditorDocument().createRange(), i = o.domPositions[e], A = Xn(e + n, o.domPositions);
|
|
2186
|
+
return i.offset <= i.node.textContent.length ? r.setStart(i.node, i.offset) : console.warn(
|
|
2187
|
+
`Offset of range begin (${i.offset}) > node text length (${i.node.textContent.length})`
|
|
2188
|
+
), A.offset <= A.node.textContent.length ? r.setEnd(A.node, A.offset) : console.warn(
|
|
2189
|
+
`Offset of range end (${A.offset}) > node text length (${A.node.textContent.length})`
|
|
2190
|
+
), r;
|
|
2191
|
+
}
|
|
2192
|
+
replaceAlignedMatches(e) {
|
|
2193
|
+
const n = this.getEditorDocument(), o = structuredClone(e).reverse();
|
|
2194
|
+
for (const s of o) {
|
|
2195
|
+
const r = this.getTextDomMapping(), i = s.range[1] - s.range[0];
|
|
2196
|
+
if (i > 1) {
|
|
2197
|
+
const A = this.createRange(s.range[0] + 1, i - 1, r), c = this.createRange(s.range[0], 1, r), a = this.createRange(s.range[0], i, r);
|
|
2198
|
+
X({
|
|
2199
|
+
startNode: a.startContainer,
|
|
2200
|
+
endNode: a.endContainer,
|
|
2201
|
+
eventType: "beforeinput",
|
|
2202
|
+
replacement: s.originalMatch.replacement,
|
|
2203
|
+
startOffset: a.startOffset,
|
|
2204
|
+
endOffset: a.endOffset,
|
|
2205
|
+
disableSimulation: this.config.disableInputEventSimulation
|
|
2206
|
+
}), A.deleteContents(), c.deleteContents(), s.originalMatch.replacement.length !== 0 && c.insertNode(n.createTextNode(s.originalMatch.replacement)), X({
|
|
2207
|
+
startNode: a.startContainer,
|
|
2208
|
+
endNode: a.endContainer,
|
|
2209
|
+
eventType: "input",
|
|
2210
|
+
replacement: s.originalMatch.replacement,
|
|
2211
|
+
startOffset: a.startOffset,
|
|
2212
|
+
endOffset: a.endOffset,
|
|
2213
|
+
disableSimulation: this.config.disableInputEventSimulation
|
|
2214
|
+
}), _(A), (A.startContainer !== c.startContainer || A.endContainer !== c.endContainer) && _(c);
|
|
2215
|
+
} else {
|
|
2216
|
+
const A = this.createRange(s.range[0], i, r);
|
|
2217
|
+
X({
|
|
2218
|
+
startNode: A.startContainer,
|
|
2219
|
+
endNode: A.endContainer,
|
|
2220
|
+
eventType: "beforeinput",
|
|
2221
|
+
replacement: s.originalMatch.replacement,
|
|
2222
|
+
startOffset: A.startOffset,
|
|
2223
|
+
endOffset: A.endOffset,
|
|
2224
|
+
disableSimulation: this.config.disableInputEventSimulation
|
|
2225
|
+
}), A.deleteContents(), s.originalMatch.replacement.length !== 0 && A.insertNode(n.createTextNode(s.originalMatch.replacement)), X({
|
|
2226
|
+
startNode: A.startContainer,
|
|
2227
|
+
endNode: A.endContainer,
|
|
2228
|
+
eventType: "input",
|
|
2229
|
+
replacement: s.originalMatch.replacement,
|
|
2230
|
+
startOffset: A.startOffset,
|
|
2231
|
+
endOffset: A.endOffset,
|
|
2232
|
+
disableSimulation: this.config.disableInputEventSimulation
|
|
2233
|
+
}), _(A);
|
|
2234
|
+
}
|
|
2235
|
+
}
|
|
2236
|
+
}
|
|
2237
|
+
replaceRanges(e, n) {
|
|
2238
|
+
V(this.getEditorElement());
|
|
2239
|
+
const [o] = this.selectMatches(e, n), s = o.map((r) => r.originalMatch.replacement).join("");
|
|
2240
|
+
this.replaceAlignedMatches(o), this.selectText(o[0].range[0], s.length, this.getTextDomMapping()), this.scrollToCurrentSelection();
|
|
2241
|
+
}
|
|
2242
|
+
getTextDomMapping() {
|
|
2243
|
+
return Ie(this.getEditorElement());
|
|
2244
|
+
}
|
|
2245
|
+
getAutobindWrapperAttributes() {
|
|
2246
|
+
return nt(this.getEditorElement());
|
|
2247
|
+
}
|
|
2248
|
+
}
|
|
2249
|
+
function _(t) {
|
|
2250
|
+
try {
|
|
2251
|
+
Pn() && qn(t);
|
|
2252
|
+
} catch (e) {
|
|
2253
|
+
console.error("Error in removeEmptyTextNodesIfNeeded:", e);
|
|
2254
|
+
}
|
|
2255
|
+
}
|
|
2256
|
+
function qn(t) {
|
|
2257
|
+
const e = document.createNodeIterator(t.commonAncestorContainer);
|
|
2258
|
+
let n, o = !1;
|
|
2259
|
+
for (; (n = e.nextNode()) && (n === t.startContainer && (o = !0), !(o && (_n(n), n === t.endContainer))); )
|
|
2260
|
+
;
|
|
2261
|
+
}
|
|
2262
|
+
function _n(t) {
|
|
2263
|
+
t.nodeType === Node.TEXT_NODE && t.textContent === "" && z(t);
|
|
2264
|
+
}
|
|
2265
|
+
class it extends N {
|
|
2266
|
+
element;
|
|
2267
|
+
constructor(e) {
|
|
2268
|
+
super(e), this.element = ee(e);
|
|
2269
|
+
}
|
|
2270
|
+
isAsync = !0;
|
|
2271
|
+
requiresSynchronization = !0;
|
|
2272
|
+
getEditorElement() {
|
|
2273
|
+
return this.element;
|
|
2274
|
+
}
|
|
2275
|
+
getContent() {
|
|
2276
|
+
return this.element.innerHTML;
|
|
2277
|
+
}
|
|
2278
|
+
getSelection() {
|
|
2279
|
+
return { ranges: ne(this.getEditorElement()) };
|
|
2280
|
+
}
|
|
2281
|
+
getEditorDocument() {
|
|
2282
|
+
return this.element.ownerDocument;
|
|
2283
|
+
}
|
|
2284
|
+
async selectRanges(e, n) {
|
|
2285
|
+
V(this.getEditorElement()), this.getEditorElement().click(), this.selectMatches(e, n), this.scrollToCurrentSelection();
|
|
2286
|
+
}
|
|
2287
|
+
async replaceRanges(e, n) {
|
|
2288
|
+
V(this.getEditorElement());
|
|
2289
|
+
const [o] = this.selectMatches(e, n), s = o.map((r) => r.originalMatch.replacement).join("");
|
|
2290
|
+
this.replaceAlignedMatches(o), await this.selectText(o[0].range[0], s.length, this.getTextDomMapping()), this.scrollToCurrentSelection();
|
|
2291
|
+
}
|
|
2292
|
+
async selectText(e, n, o) {
|
|
2293
|
+
if (!o.text)
|
|
2294
|
+
return;
|
|
2295
|
+
const s = this.createRange(e, n, o), r = this.getEditorDocument().getSelection();
|
|
2296
|
+
if (!r) {
|
|
2297
|
+
console.warn("AsyncContentEditableAdapter.selectText: Missing selection");
|
|
2298
|
+
return;
|
|
2299
|
+
}
|
|
2300
|
+
return r.removeAllRanges(), await this.addSelectionRange(r, s);
|
|
2301
|
+
}
|
|
2302
|
+
async addSelectionRange(e, n) {
|
|
2303
|
+
return new Promise((o) => o(e.addRange(n)));
|
|
2304
|
+
}
|
|
2305
|
+
async scrollIntoView(e) {
|
|
2306
|
+
const n = e.getRangeAt(0);
|
|
2307
|
+
n.cloneRange().collapse(!0);
|
|
2308
|
+
const s = n.startContainer.parentElement;
|
|
2309
|
+
s && (s.focus(), this.scrollElementIntoView(s));
|
|
2310
|
+
}
|
|
2311
|
+
}
|
|
2312
|
+
function $n(t) {
|
|
2313
|
+
return t.closest(".DraftEditor-editorContainer, .akEditor");
|
|
2314
|
+
}
|
|
2315
|
+
class At extends N {
|
|
2316
|
+
element;
|
|
2317
|
+
constructor(e) {
|
|
2318
|
+
super(e), this.element = ee(e);
|
|
2319
|
+
}
|
|
2320
|
+
getEditorElement() {
|
|
2321
|
+
return this.element;
|
|
2322
|
+
}
|
|
2323
|
+
getContent() {
|
|
2324
|
+
return this.element.innerHTML;
|
|
2325
|
+
}
|
|
2326
|
+
getSelection() {
|
|
2327
|
+
return { ranges: ne(this.getEditorElement()) };
|
|
2328
|
+
}
|
|
2329
|
+
getEditorDocument() {
|
|
2330
|
+
return this.element.ownerDocument;
|
|
2331
|
+
}
|
|
2332
|
+
}
|
|
2333
|
+
class st {
|
|
2334
|
+
element;
|
|
2335
|
+
config;
|
|
2336
|
+
currentContentChecking;
|
|
2337
|
+
lastContentChecked;
|
|
2338
|
+
constructor(e) {
|
|
2339
|
+
this.element = ee(e), this.config = ce(e);
|
|
2340
|
+
}
|
|
2341
|
+
getContent() {
|
|
2342
|
+
return this.element.value;
|
|
2343
|
+
}
|
|
2344
|
+
getCurrentText() {
|
|
2345
|
+
return this.getContent();
|
|
2346
|
+
}
|
|
2347
|
+
getFormat() {
|
|
2348
|
+
return this.config.format || "TEXT";
|
|
2349
|
+
}
|
|
2350
|
+
extractContentForCheck(e) {
|
|
2351
|
+
return this.currentContentChecking = this.getContent(), {
|
|
2352
|
+
content: this.currentContentChecking,
|
|
2353
|
+
selection: e.checkSelection ? this.getSelection() : void 0
|
|
2354
|
+
};
|
|
2355
|
+
}
|
|
2356
|
+
getSelection() {
|
|
2357
|
+
const e = this.element.selectionStart, n = this.element.selectionEnd;
|
|
2358
|
+
if (typeof e == "number" && typeof n == "number" && e < n && this.getContent().slice(e, n).trim() !== "")
|
|
2359
|
+
return {
|
|
2360
|
+
ranges: [[e, n]]
|
|
2361
|
+
};
|
|
2362
|
+
}
|
|
2363
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2364
|
+
registerCheckResult(e) {
|
|
2365
|
+
this.lastContentChecked = this.currentContentChecking;
|
|
2366
|
+
}
|
|
2367
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2368
|
+
registerCheckCall(e) {
|
|
2369
|
+
}
|
|
2370
|
+
scrollAndSelect(e) {
|
|
2371
|
+
const n = e[0].range[0], o = et(e), s = this.element;
|
|
2372
|
+
if (s.clientHeight < s.scrollHeight) {
|
|
2373
|
+
const r = this.element.value;
|
|
2374
|
+
s.value = r.slice(0, n), s.focus(), s.scrollTop = 1e9;
|
|
2375
|
+
const i = s.scrollTop;
|
|
2376
|
+
s.value = r, i > 0 && (s.scrollTop = i + s.clientHeight / 2);
|
|
2377
|
+
}
|
|
2378
|
+
s.setSelectionRange(n, n + o), s.focus(), rt(s, this.config.scrollOffsetY);
|
|
2379
|
+
}
|
|
2380
|
+
selectRanges(e, n) {
|
|
2381
|
+
this.selectMatches(e, n);
|
|
2382
|
+
}
|
|
2383
|
+
selectMatches(e, n) {
|
|
2384
|
+
V(this.element);
|
|
2385
|
+
const o = O(this.lastContentChecked, this.getCurrentText(), n, "TEXT");
|
|
2386
|
+
if (!o || o.length === 0)
|
|
2387
|
+
throw Error("Selected flagged content is modified.");
|
|
2388
|
+
return this.scrollAndSelect(o), o;
|
|
2389
|
+
}
|
|
2390
|
+
replaceAlignedMatches(e) {
|
|
2391
|
+
const n = structuredClone(e).reverse(), o = this.element;
|
|
2392
|
+
let s = o.value;
|
|
2393
|
+
for (const r of n)
|
|
2394
|
+
ve(this.lastContentChecked, r.originalMatch) || (s = s.slice(0, r.range[0]) + r.originalMatch.replacement + s.slice(r.range[1]));
|
|
2395
|
+
o.value = s;
|
|
2396
|
+
}
|
|
2397
|
+
replaceRanges(e, n) {
|
|
2398
|
+
const o = this.selectMatches(e, n);
|
|
2399
|
+
this.scrollAndSelect(o), this.replaceAlignedMatches(o);
|
|
2400
|
+
const s = o[0].range[0], r = o.map((i) => i.originalMatch.replacement).join("");
|
|
2401
|
+
this.element.setSelectionRange(s, s + r.length);
|
|
2402
|
+
}
|
|
2403
|
+
getAutobindWrapperAttributes() {
|
|
2404
|
+
return nt(this.element);
|
|
2405
|
+
}
|
|
2406
|
+
}
|
|
2407
|
+
class er extends N {
|
|
2408
|
+
element;
|
|
2409
|
+
constructor(e) {
|
|
2410
|
+
super(e), this.element = ee(e), console.warn("QuipAdapter", this.element);
|
|
2411
|
+
}
|
|
2412
|
+
getEditorElement() {
|
|
2413
|
+
return this.element;
|
|
2414
|
+
}
|
|
2415
|
+
getContent() {
|
|
2416
|
+
return this.element.innerHTML;
|
|
2417
|
+
}
|
|
2418
|
+
getSelection() {
|
|
2419
|
+
return { ranges: [] };
|
|
2420
|
+
}
|
|
2421
|
+
getEditorDocument() {
|
|
2422
|
+
return this.element.ownerDocument;
|
|
2423
|
+
}
|
|
2424
|
+
async replaceRanges(e, n) {
|
|
2425
|
+
super.replaceRanges(e, n);
|
|
2426
|
+
const o = this.getEditorDocument().getSelection(), s = o && o.focusNode;
|
|
2427
|
+
if (!s) {
|
|
2428
|
+
console.warn("No selection after replacement.");
|
|
2429
|
+
return;
|
|
2430
|
+
}
|
|
2431
|
+
const r = tr(s);
|
|
2432
|
+
switch (or(r)) {
|
|
2433
|
+
case "cell": {
|
|
2434
|
+
console.log("Found cell");
|
|
2435
|
+
const A = r.closest("." + de), c = A.innerText;
|
|
2436
|
+
nr(r), await Ft(100);
|
|
2437
|
+
const a = document.activeElement;
|
|
2438
|
+
if (!a || !a.classList.contains("spreadsheet-cell-editor")) {
|
|
2439
|
+
console.warn("Found no cell editor", r, a);
|
|
2440
|
+
return;
|
|
2441
|
+
}
|
|
2442
|
+
o.selectAllChildren(a), document.execCommand("InsertHTML", !1, c), A.innerText = c, rr(a, "keydown", "Enter", 13);
|
|
2443
|
+
break;
|
|
2444
|
+
}
|
|
2445
|
+
case "content":
|
|
2446
|
+
console.log("Found paragraph");
|
|
2447
|
+
break;
|
|
2448
|
+
case "none":
|
|
2449
|
+
console.log("Unknown quipSectionType");
|
|
2450
|
+
break;
|
|
2451
|
+
}
|
|
2452
|
+
}
|
|
2453
|
+
}
|
|
2454
|
+
function tr(t) {
|
|
2455
|
+
return t instanceof HTMLElement ? t : t.parentElement;
|
|
2456
|
+
}
|
|
2457
|
+
function nr(t) {
|
|
2458
|
+
t.dispatchEvent(
|
|
2459
|
+
new MouseEvent("dblclick", {
|
|
2460
|
+
view: window,
|
|
2461
|
+
bubbles: !0,
|
|
2462
|
+
cancelable: !0
|
|
2463
|
+
})
|
|
2464
|
+
);
|
|
2465
|
+
}
|
|
2466
|
+
function rr(t, e, n, o) {
|
|
2467
|
+
const s = {
|
|
2468
|
+
key: n,
|
|
2469
|
+
code: n,
|
|
2470
|
+
keyCode: o,
|
|
2471
|
+
which: o,
|
|
2472
|
+
view: window,
|
|
2473
|
+
bubbles: !0,
|
|
2474
|
+
cancelable: !0
|
|
2475
|
+
};
|
|
2476
|
+
t.dispatchEvent(new KeyboardEvent(e, s));
|
|
2477
|
+
}
|
|
2478
|
+
const de = "spreadsheet-cell";
|
|
2479
|
+
function or(t) {
|
|
2480
|
+
const e = t.closest(`.${de}, .content`);
|
|
2481
|
+
return e ? e.classList.contains(de) ? "cell" : "content" : "none";
|
|
2482
|
+
}
|
|
2483
|
+
function ir(t) {
|
|
2484
|
+
return document.location.host.endsWith(".quip.com") && t.classList.contains("document-content");
|
|
2485
|
+
}
|
|
2486
|
+
const Ar = [
|
|
2487
|
+
"input:not([type])",
|
|
2488
|
+
// type attribute not present in markup
|
|
2489
|
+
'input[type=""]',
|
|
2490
|
+
// type attribute present, but empty
|
|
2491
|
+
"input[type=text]",
|
|
2492
|
+
"input[type=hidden]",
|
|
2493
|
+
'[contenteditable="true"]',
|
|
2494
|
+
'[contenteditable="plaintext-only"]',
|
|
2495
|
+
'[contenteditable=""]',
|
|
2496
|
+
"textarea",
|
|
2497
|
+
"iframe"
|
|
2498
|
+
].join(", ");
|
|
2499
|
+
function sr(t) {
|
|
2500
|
+
return t.readOnly;
|
|
2501
|
+
}
|
|
2502
|
+
function at(t) {
|
|
2503
|
+
const e = t.getAttribute("autocomplete");
|
|
2504
|
+
return e === "off" || e === "false";
|
|
2505
|
+
}
|
|
2506
|
+
function ar(t) {
|
|
2507
|
+
return t.getAttribute("role") === "combobox" && at(t);
|
|
2508
|
+
}
|
|
2509
|
+
const cr = ["search_query", "q"];
|
|
2510
|
+
function lr(t) {
|
|
2511
|
+
if (t.nodeName !== "INPUT")
|
|
2512
|
+
return !1;
|
|
2513
|
+
if (t.getAttribute("role") === "search")
|
|
2514
|
+
return !0;
|
|
2515
|
+
const e = t.getAttribute("name");
|
|
2516
|
+
return e && cr.includes(e) && at(t);
|
|
2517
|
+
}
|
|
2518
|
+
const dr = ["username", "login", "user[login]", "authenticity_token"];
|
|
2519
|
+
function ur(t) {
|
|
2520
|
+
return dr.includes(t.getAttribute("name"));
|
|
2521
|
+
}
|
|
2522
|
+
function gr(t) {
|
|
2523
|
+
if (Bt(t))
|
|
2524
|
+
try {
|
|
2525
|
+
return t.contentDocument ? Ce(t.contentDocument) : [];
|
|
2526
|
+
} catch {
|
|
2527
|
+
return [];
|
|
2528
|
+
}
|
|
2529
|
+
else
|
|
2530
|
+
return [t];
|
|
2531
|
+
}
|
|
2532
|
+
function hr(t) {
|
|
2533
|
+
const e = [], n = (t.ownerDocument || t).createNodeIterator(t, NodeFilter.SHOW_ELEMENT);
|
|
2534
|
+
let o;
|
|
2535
|
+
for (; o = n.nextNode(); ) {
|
|
2536
|
+
const s = o.shadowRoot;
|
|
2537
|
+
s && e.push(...Ce(s));
|
|
2538
|
+
}
|
|
2539
|
+
return e;
|
|
2540
|
+
}
|
|
2541
|
+
function Ce(t = document) {
|
|
2542
|
+
const e = Array.from(t.querySelectorAll(Ar)), n = hr(t);
|
|
2543
|
+
return [...e, ...n].flatMap(gr).filter(
|
|
2544
|
+
(i) => !sr(i) && !ar(i) && !lr(i) && !ur(i)
|
|
2545
|
+
);
|
|
2546
|
+
}
|
|
2547
|
+
function ct(t = {}) {
|
|
2548
|
+
return Ce().map(function(e) {
|
|
2549
|
+
const n = te(t, { element: e });
|
|
2550
|
+
return t.enableQuipAdapter && ir(e) ? new er(n) : e.nodeName === "INPUT" || e.nodeName === "TEXTAREA" ? new st(n) : $n(e) ? new it(n) : new At(n);
|
|
2551
|
+
});
|
|
2552
|
+
}
|
|
2553
|
+
const fr = {
|
|
2554
|
+
"&": "&",
|
|
2555
|
+
"<": "<",
|
|
2556
|
+
">": ">",
|
|
2557
|
+
'"': """,
|
|
2558
|
+
"'": "'",
|
|
2559
|
+
"`": "`"
|
|
2560
|
+
};
|
|
2561
|
+
function pr(t) {
|
|
2562
|
+
let e = "";
|
|
2563
|
+
const n = [];
|
|
2564
|
+
let o = 0;
|
|
2565
|
+
for (let s = 0; s < t.length; s++) {
|
|
2566
|
+
const r = t[s], i = fr[r];
|
|
2567
|
+
if (i) {
|
|
2568
|
+
const A = i.length - 1;
|
|
2569
|
+
o = o - A, n.push({
|
|
2570
|
+
oldPosition: e.length + i.length,
|
|
2571
|
+
diffOffset: o
|
|
2572
|
+
});
|
|
2573
|
+
}
|
|
2574
|
+
e = e + (i || r);
|
|
2575
|
+
}
|
|
2576
|
+
return { escapedText: e, backwardAlignment: n };
|
|
2577
|
+
}
|
|
2578
|
+
function lt(t, e) {
|
|
2579
|
+
const n = structuredClone(t.attributes);
|
|
2580
|
+
e && Object.assign(n, { id: e });
|
|
2581
|
+
const o = Object.entries(n).map(([s, r]) => ` ${s}="${be(r)}"`).join("");
|
|
2582
|
+
return `<${t.tagName}${o}>`;
|
|
2583
|
+
}
|
|
2584
|
+
function dt(t) {
|
|
2585
|
+
return `</${t}>`;
|
|
2586
|
+
}
|
|
2587
|
+
function mr(t, e) {
|
|
2588
|
+
return [
|
|
2589
|
+
G(t.backwardAlignment, e[0]),
|
|
2590
|
+
G(t.backwardAlignment, e[1])
|
|
2591
|
+
];
|
|
2592
|
+
}
|
|
2593
|
+
function Pe(t, e = "div") {
|
|
2594
|
+
const n = t.tagName || e;
|
|
2595
|
+
return n.includes(" ") && console.info(`tagName "${n}" contains whitespaces which may lead to unexpected results.`), { tagName: n, attributes: t.attributes || {} };
|
|
2596
|
+
}
|
|
2597
|
+
function br(t, e) {
|
|
2598
|
+
const n = e.content, o = t.wrapper.tagName, s = lt(t.wrapper, t.id), r = t.adapter.getFormat ? t.adapter.getFormat() === "TEXT" : !1;
|
|
2599
|
+
let i;
|
|
2600
|
+
return r ? (t.escapeResult = pr(n), i = t.escapeResult.escapedText) : i = n, {
|
|
2601
|
+
completeHtml: s + i + dt(o),
|
|
2602
|
+
contentStart: s.length,
|
|
2603
|
+
contentEnd: s.length + i.length
|
|
2604
|
+
};
|
|
2605
|
+
}
|
|
2606
|
+
class we {
|
|
2607
|
+
config;
|
|
2608
|
+
rootElementWrapper;
|
|
2609
|
+
adapters;
|
|
2610
|
+
adaptersOfLastSuccessfulCheck;
|
|
2611
|
+
constructor(e = {}) {
|
|
2612
|
+
this.config = e, e.rootElement && (this.rootElementWrapper = Pe(e.rootElement, "html")), this.adapters = [];
|
|
2613
|
+
}
|
|
2614
|
+
getFormat() {
|
|
2615
|
+
return this.config.aggregateFormat || "HTML";
|
|
2616
|
+
}
|
|
2617
|
+
addSingleAdapterInternal(e, n = {}, o = "acrolinx_integration" + this.adapters.length) {
|
|
2618
|
+
this.adapters.push({ id: o, adapter: e, wrapper: Pe(n) });
|
|
2619
|
+
}
|
|
2620
|
+
addSingleAdapter(e, n = {}, o) {
|
|
2621
|
+
this.addSingleAdapterInternal(e, n, o);
|
|
2622
|
+
}
|
|
2623
|
+
removeAllAdapters() {
|
|
2624
|
+
this.adapters = [];
|
|
2625
|
+
}
|
|
2626
|
+
extractContentForCheck(e) {
|
|
2627
|
+
this.config.beforeCheck && this.config.beforeCheck(this);
|
|
2628
|
+
const n = this.adapters.map((o) => o.adapter.extractContentForCheck(e));
|
|
2629
|
+
return Promise.all(n).then((o) => {
|
|
2630
|
+
let s = this.config.documentHeader || "";
|
|
2631
|
+
const r = [];
|
|
2632
|
+
this.rootElementWrapper && (s += lt(this.rootElementWrapper));
|
|
2633
|
+
for (let i = 0; i < this.adapters.length; i++) {
|
|
2634
|
+
const A = o[i], c = this.adapters[i];
|
|
2635
|
+
if (Ye(A)) {
|
|
2636
|
+
c.checkedRange = void 0;
|
|
2637
|
+
continue;
|
|
2638
|
+
}
|
|
2639
|
+
const { completeHtml: a, contentStart: l, contentEnd: d } = br(c, A);
|
|
2640
|
+
if (c.checkedRange = [s.length + l, s.length + d], A.selection)
|
|
2641
|
+
for (const u of A.selection.ranges)
|
|
2642
|
+
r.push([
|
|
2643
|
+
u[0] + c.checkedRange[0],
|
|
2644
|
+
u[1] + c.checkedRange[0]
|
|
2645
|
+
]);
|
|
2646
|
+
s += a;
|
|
2647
|
+
}
|
|
2648
|
+
return this.rootElementWrapper && (s += dt(this.rootElementWrapper.tagName)), { content: s, selection: { ranges: r } };
|
|
2649
|
+
});
|
|
2650
|
+
}
|
|
2651
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2652
|
+
registerCheckCall(e) {
|
|
2653
|
+
}
|
|
2654
|
+
registerCheckResult(e) {
|
|
2655
|
+
this.adapters.forEach((n) => {
|
|
2656
|
+
n.adapter.registerCheckResult(e);
|
|
2657
|
+
}), this.adaptersOfLastSuccessfulCheck = this.adapters.map((n) => ({ ...n }));
|
|
2658
|
+
}
|
|
2659
|
+
selectRanges(e, n) {
|
|
2660
|
+
const o = this.remapMatches(n);
|
|
2661
|
+
for (const s in o)
|
|
2662
|
+
o[s].adapter.selectRanges(e, o[s].matches);
|
|
2663
|
+
}
|
|
2664
|
+
remapMatches(e) {
|
|
2665
|
+
const n = {};
|
|
2666
|
+
for (const o of e) {
|
|
2667
|
+
const s = this.getAdapterForMatch(o);
|
|
2668
|
+
n.hasOwnProperty(s.id) || (n[s.id] = { matches: [], adapter: s.adapter });
|
|
2669
|
+
const r = s.checkedRange[0], i = [
|
|
2670
|
+
o.range[0] - r,
|
|
2671
|
+
o.range[1] - r
|
|
2672
|
+
], A = structuredClone(o);
|
|
2673
|
+
A.range = s.escapeResult ? mr(s.escapeResult, i) : i, n[s.id].matches.push(A);
|
|
2674
|
+
}
|
|
2675
|
+
return n;
|
|
2676
|
+
}
|
|
2677
|
+
getAdapterForMatch(e) {
|
|
2678
|
+
if (!this.adaptersOfLastSuccessfulCheck)
|
|
2679
|
+
throw new Error("Expected previous successful check.");
|
|
2680
|
+
return this.adaptersOfLastSuccessfulCheck.find((n) => {
|
|
2681
|
+
const o = n.checkedRange;
|
|
2682
|
+
return !!o && e.range[0] >= o[0] && e.range[1] <= o[1];
|
|
2683
|
+
});
|
|
2684
|
+
}
|
|
2685
|
+
replaceRanges(e, n) {
|
|
2686
|
+
const o = this.remapMatches(n);
|
|
2687
|
+
for (const s in o)
|
|
2688
|
+
o[s].adapter.replaceRanges(e, o[s].matches);
|
|
2689
|
+
}
|
|
2690
|
+
}
|
|
2691
|
+
class ut extends we {
|
|
2692
|
+
isAsync = !0;
|
|
2693
|
+
requiresSynchronization = !0;
|
|
2694
|
+
addSingleAdapter(e, n = {}, o) {
|
|
2695
|
+
this.addSingleAdapterInternal(e, n, o);
|
|
2696
|
+
}
|
|
2697
|
+
async selectRanges(e, n) {
|
|
2698
|
+
const o = this.remapMatches(n);
|
|
2699
|
+
for (const s in o)
|
|
2700
|
+
await o[s].adapter.selectRanges(e, o[s].matches);
|
|
2701
|
+
}
|
|
2702
|
+
async replaceRanges(e, n) {
|
|
2703
|
+
const o = this.remapMatches(n);
|
|
2704
|
+
for (const s in o)
|
|
2705
|
+
await o[s].adapter.replaceRanges(e, o[s].matches);
|
|
2706
|
+
}
|
|
2707
|
+
}
|
|
2708
|
+
class gt {
|
|
2709
|
+
constructor(e) {
|
|
2710
|
+
this.conf = e, this.initMultiAdapter();
|
|
2711
|
+
}
|
|
2712
|
+
isAsync = !0;
|
|
2713
|
+
requiresSynchronization = !0;
|
|
2714
|
+
asyncMultiAdapter;
|
|
2715
|
+
initMultiAdapter() {
|
|
2716
|
+
this.asyncMultiAdapter = new ut(this.conf);
|
|
2717
|
+
}
|
|
2718
|
+
getFormat() {
|
|
2719
|
+
return this.asyncMultiAdapter.getFormat();
|
|
2720
|
+
}
|
|
2721
|
+
extractContentForCheck(e) {
|
|
2722
|
+
return this.initMultiAdapter(), ct(this.conf).forEach((n) => {
|
|
2723
|
+
const o = n.getAutobindWrapperAttributes ? n.getAutobindWrapperAttributes() : {};
|
|
2724
|
+
this.asyncMultiAdapter.addSingleAdapter(n, { attributes: o });
|
|
2725
|
+
}), this.asyncMultiAdapter.extractContentForCheck(e);
|
|
2726
|
+
}
|
|
2727
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2728
|
+
registerCheckCall(e) {
|
|
2729
|
+
}
|
|
2730
|
+
registerCheckResult(e) {
|
|
2731
|
+
this.asyncMultiAdapter.registerCheckResult(e);
|
|
2732
|
+
}
|
|
2733
|
+
async selectRanges(e, n) {
|
|
2734
|
+
await this.asyncMultiAdapter.selectRanges(e, n);
|
|
2735
|
+
}
|
|
2736
|
+
async replaceRanges(e, n) {
|
|
2737
|
+
await this.asyncMultiAdapter.replaceRanges(e, n);
|
|
2738
|
+
}
|
|
2739
|
+
}
|
|
2740
|
+
class ht {
|
|
2741
|
+
constructor(e) {
|
|
2742
|
+
this.conf = e, this.initMultiAdapter();
|
|
2743
|
+
}
|
|
2744
|
+
multiAdapter;
|
|
2745
|
+
initMultiAdapter() {
|
|
2746
|
+
this.multiAdapter = new we(this.conf);
|
|
2747
|
+
}
|
|
2748
|
+
getFormat() {
|
|
2749
|
+
return this.multiAdapter.getFormat();
|
|
2750
|
+
}
|
|
2751
|
+
extractContentForCheck(e) {
|
|
2752
|
+
return this.initMultiAdapter(), ct(this.conf).forEach((n) => {
|
|
2753
|
+
const o = n.getAutobindWrapperAttributes ? n.getAutobindWrapperAttributes() : {};
|
|
2754
|
+
this.multiAdapter.addSingleAdapter(n, { attributes: o });
|
|
2755
|
+
}), this.multiAdapter.extractContentForCheck(e);
|
|
2756
|
+
}
|
|
2757
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2758
|
+
registerCheckCall(e) {
|
|
2759
|
+
}
|
|
2760
|
+
registerCheckResult(e) {
|
|
2761
|
+
this.multiAdapter.registerCheckResult(e);
|
|
2762
|
+
}
|
|
2763
|
+
selectRanges(e, n) {
|
|
2764
|
+
this.multiAdapter.selectRanges(e, n);
|
|
2765
|
+
}
|
|
2766
|
+
replaceRanges(e, n) {
|
|
2767
|
+
this.multiAdapter.replaceRanges(e, n);
|
|
2768
|
+
}
|
|
2769
|
+
}
|
|
2770
|
+
class ye {
|
|
2771
|
+
get(e) {
|
|
2772
|
+
return new Promise((n) => {
|
|
2773
|
+
n(vr(e));
|
|
2774
|
+
});
|
|
2775
|
+
}
|
|
2776
|
+
set(e, n) {
|
|
2777
|
+
return new Promise((o) => {
|
|
2778
|
+
Ir(e, n), o(void 0);
|
|
2779
|
+
});
|
|
2780
|
+
}
|
|
2781
|
+
}
|
|
2782
|
+
function vr(t) {
|
|
2783
|
+
const e = localStorage.getItem(t);
|
|
2784
|
+
return e === null ? null : JSON.parse(e);
|
|
2785
|
+
}
|
|
2786
|
+
function Ir(t, e) {
|
|
2787
|
+
localStorage.setItem(t, JSON.stringify(e));
|
|
2788
|
+
}
|
|
2789
|
+
const M = "acrolinxFloatingSidebar", ft = "acrolinxFloatingSidebarTitleBar", Ee = "acrolinxFloatingSidebarCloseIcon";
|
|
2790
|
+
let J = "acrolinxSidebarContainer";
|
|
2791
|
+
const ke = "acrolinxDragOverlay", ue = "acrolinxFloatingSidebarGlassPane", pt = "acrolinxFloatingSidebarFooter", Be = "acrolinxFloatingSidebarResizeIcon", Y = "acrolinxFloatingSidebarIsResizing", ge = "acrolinxFloatingSidebarIsDragged", Ge = 34, Cr = "PHN2ZyBmaWxsPSIjZmZmZmZmIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4KICAgIDxwYXRoIGQ9Ik0xOSAxOUg1VjVoN1YzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3oiLz4KPC9zdmc+", wr = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJFYmVuZV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI0IDI0OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6IzkwOTA5MDt9Cgkuc3Qxe2ZpbGw6bm9uZTt9Cjwvc3R5bGU+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03LjMsMjFoOS41di0ySDcuM1YyMXogTTcuMywxN2g5LjV2LTJINy4zVjE3eiBNNy4zLDEzaDkuNXYtMkg3LjNWMTN6IE03LjMsOWg5LjVWN0g3LjNWOXogTTcuMywzdjJoOS41VjNINy4zCgl6Ii8+CjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0wLDBoMjR2MjRIMFYweiIvPgo8L3N2Zz4K", ae = 2e9, yr = 900, Er = 400, mt = 400, L = Object.freeze({
|
|
2792
|
+
top: 20,
|
|
2793
|
+
left: 20,
|
|
2794
|
+
height: Er
|
|
2795
|
+
}), bt = "acrolinx.plugins.floatingSidebar.position";
|
|
2796
|
+
function kr(t) {
|
|
2797
|
+
const e = {
|
|
2798
|
+
top: L.top,
|
|
2799
|
+
left: L.left,
|
|
2800
|
+
height: vt(window.innerHeight - L.top - 40)
|
|
2801
|
+
};
|
|
2802
|
+
return t.get(bt).then(
|
|
2803
|
+
(n) => ({ ...e, ...n }),
|
|
2804
|
+
(n) => (console.error("Can't load saved sidebar position.", n), e)
|
|
2805
|
+
);
|
|
2806
|
+
}
|
|
2807
|
+
function vt(t) {
|
|
2808
|
+
return Math.max(mt, Math.min(yr, t));
|
|
2809
|
+
}
|
|
2810
|
+
function Te({ left: t, top: e, height: n }, o = window.innerWidth, s = window.innerHeight) {
|
|
2811
|
+
return e <= 0 && (e = 20), t <= 0 && (t = 20), {
|
|
2812
|
+
left: t > o - 150 ? o - 150 : t,
|
|
2813
|
+
top: e > s - 30 ? s - 30 : e,
|
|
2814
|
+
height: n > s ? vt(s - 10) : n
|
|
2815
|
+
};
|
|
2816
|
+
}
|
|
2817
|
+
function Br() {
|
|
2818
|
+
const t = document.createElement("style"), e = document.querySelector("head");
|
|
2819
|
+
t.textContent = `
|
|
2820
|
+
#${M} {
|
|
2821
|
+
top: ${L.top}px;
|
|
2822
|
+
left: ${L.left}px;
|
|
2823
|
+
position: fixed;
|
|
2824
|
+
width: 300px;
|
|
2825
|
+
padding-top: 0px;
|
|
2826
|
+
cursor: move;
|
|
2827
|
+
background: #000000;
|
|
2828
|
+
box-shadow: 5px 5px 30px rgba(0, 0, 0, 0.3);
|
|
2829
|
+
border-radius: 3px;
|
|
2830
|
+
user-select: none;
|
|
2831
|
+
z-index: ${ae};
|
|
2832
|
+
-moz-user-select: none;
|
|
2833
|
+
-webkit-user-select: none;
|
|
2834
|
+
-ms-user-select: none;
|
|
2835
|
+
overflow: hidden;
|
|
2836
|
+
transition: top 1s, left 1s;
|
|
2837
|
+
transition-timing-function: ease-out;
|
|
2838
|
+
display: none;
|
|
2839
|
+
}
|
|
2840
|
+
|
|
2841
|
+
#${M}.${ge} {
|
|
2842
|
+
transition: none;
|
|
2843
|
+
}
|
|
2844
|
+
|
|
2845
|
+
#${M} .${ft} {
|
|
2846
|
+
position: relative;
|
|
2847
|
+
font-family: AcrolinxRoboto, Roboto, sans-serif;
|
|
2848
|
+
font-weight: 500;
|
|
2849
|
+
line-height: 13px;
|
|
2850
|
+
padding: 8px 10px;
|
|
2851
|
+
font-size: 13px;
|
|
2852
|
+
font-weight: normal;
|
|
2853
|
+
color: white;
|
|
2854
|
+
}
|
|
2855
|
+
|
|
2856
|
+
#${M} .${Ee} {
|
|
2857
|
+
position: absolute;
|
|
2858
|
+
cursor: pointer;
|
|
2859
|
+
margin-right: 4px;
|
|
2860
|
+
top: 6px;
|
|
2861
|
+
right: 3px;
|
|
2862
|
+
width: 18px;
|
|
2863
|
+
height: 18px;
|
|
2864
|
+
background-repeat: no-repeat;
|
|
2865
|
+
background-image: url("data:image/svg+xml;base64,${Cr}");
|
|
2866
|
+
-webkit-background-size: cover;
|
|
2867
|
+
-moz-background-size: cover;
|
|
2868
|
+
-o-background-size: cover;
|
|
2869
|
+
background-size: cover;
|
|
2870
|
+
}
|
|
2871
|
+
|
|
2872
|
+
#${M} #${J},
|
|
2873
|
+
#${M} #acrolinxDragOverlay {
|
|
2874
|
+
position: absolute;
|
|
2875
|
+
top: 30px;
|
|
2876
|
+
left: 0;
|
|
2877
|
+
bottom: ${Ge}px;
|
|
2878
|
+
background: white;
|
|
2879
|
+
}
|
|
2880
|
+
|
|
2881
|
+
#${M} #${J} iframe {
|
|
2882
|
+
position: relative;
|
|
2883
|
+
height: 100%;
|
|
2884
|
+
border: none;
|
|
2885
|
+
}
|
|
2886
|
+
|
|
2887
|
+
#${M} #${ke} {
|
|
2888
|
+
position: absolute;
|
|
2889
|
+
top: 20px;
|
|
2890
|
+
left: 0;
|
|
2891
|
+
height: 100%;
|
|
2892
|
+
width: 300px;
|
|
2893
|
+
background: transparent;
|
|
2894
|
+
z-index: ${ae + 100};
|
|
2895
|
+
}
|
|
2896
|
+
|
|
2897
|
+
#${ue} {
|
|
2898
|
+
position: fixed;
|
|
2899
|
+
width: 100%;
|
|
2900
|
+
height: 100%;
|
|
2901
|
+
margin: 0;
|
|
2902
|
+
padding: 0;
|
|
2903
|
+
top: 0;
|
|
2904
|
+
left: 0;
|
|
2905
|
+
background: white;
|
|
2906
|
+
opacity: 0.6;
|
|
2907
|
+
z-index: ${ae - 100};
|
|
2908
|
+
}
|
|
2909
|
+
|
|
2910
|
+
#${M} .${pt} {
|
|
2911
|
+
position: absolute;
|
|
2912
|
+
bottom: 0;
|
|
2913
|
+
background: white;
|
|
2914
|
+
width: 100%;
|
|
2915
|
+
height: ${Ge}px;
|
|
2916
|
+
border-top: 1px solid #dadada;
|
|
2917
|
+
}
|
|
2918
|
+
|
|
2919
|
+
#${M} .${Be} {
|
|
2920
|
+
position: absolute;
|
|
2921
|
+
right: 3px;
|
|
2922
|
+
bottom: 5px;
|
|
2923
|
+
font-size: 20px;
|
|
2924
|
+
font-weight: normal;
|
|
2925
|
+
color: #333;
|
|
2926
|
+
cursor: ns-resize;
|
|
2927
|
+
width: 24px;
|
|
2928
|
+
height: 24px;
|
|
2929
|
+
background-repeat: no-repeat;
|
|
2930
|
+
background-image: url("data:image/svg+xml;base64,${wr}");
|
|
2931
|
+
-webkit-background-size: cover;
|
|
2932
|
+
-moz-background-size: cover;
|
|
2933
|
+
-o-background-size: cover;
|
|
2934
|
+
background-size: cover;
|
|
2935
|
+
}
|
|
2936
|
+
|
|
2937
|
+
#${M}.${Y},
|
|
2938
|
+
#${ue}.${Y} {
|
|
2939
|
+
cursor: ns-resize !important;
|
|
2940
|
+
}
|
|
2941
|
+
`, e.appendChild(t);
|
|
2942
|
+
}
|
|
2943
|
+
function Sr() {
|
|
2944
|
+
return `
|
|
2945
|
+
<div id="${M}">
|
|
2946
|
+
<div class="${ft}">Acrolinx <span class="${Ee}" title="Hide"></span></div>
|
|
2947
|
+
<div id="${J}"></div>
|
|
2948
|
+
<div id="${ke}"></div>
|
|
2949
|
+
<div class="${pt}"><div class="${Be}" title="Drag to resize"></div></div>
|
|
2950
|
+
</div>
|
|
2951
|
+
`;
|
|
2952
|
+
}
|
|
2953
|
+
function It(t) {
|
|
2954
|
+
const e = document.createElement("div");
|
|
2955
|
+
return Object.assign(e, t), e;
|
|
2956
|
+
}
|
|
2957
|
+
function j(t) {
|
|
2958
|
+
t.style.display = "none";
|
|
2959
|
+
}
|
|
2960
|
+
function P(t) {
|
|
2961
|
+
t.style.display = "block";
|
|
2962
|
+
}
|
|
2963
|
+
function xr(t) {
|
|
2964
|
+
return It({ innerHTML: t.trim() }).firstChild;
|
|
2965
|
+
}
|
|
2966
|
+
function Se(t) {
|
|
2967
|
+
t.sidebarContainerId && (J = t.sidebarContainerId);
|
|
2968
|
+
let e = L;
|
|
2969
|
+
const n = Sr(), o = xr(n), s = o.querySelector("#" + ke), r = o.querySelector("." + Ee), i = o.querySelector("." + Be), A = It({ id: ue }), c = document.querySelector("body");
|
|
2970
|
+
let a = !1, l = !1, d = 0, u = 0, g = !0;
|
|
2971
|
+
function h(b) {
|
|
2972
|
+
e = te(e, b), o.style.left = e.left + "px", o.style.top = e.top + "px", o.style.height = e.height + "px";
|
|
2973
|
+
}
|
|
2974
|
+
function f() {
|
|
2975
|
+
j(s), j(A), a = !1, l = !1, o.classList.remove(Y), o.classList.remove(ge), A.classList.remove(Y), p();
|
|
2976
|
+
}
|
|
2977
|
+
function p() {
|
|
2978
|
+
t.asyncStorage.set(bt, e).catch((b) => {
|
|
2979
|
+
console.error("Error in FloatingSidebar.savePosition:", b);
|
|
2980
|
+
});
|
|
2981
|
+
}
|
|
2982
|
+
function m() {
|
|
2983
|
+
j(o), g = !1;
|
|
2984
|
+
}
|
|
2985
|
+
function v() {
|
|
2986
|
+
g ? m() : (P(o), g = !0, C());
|
|
2987
|
+
}
|
|
2988
|
+
document.addEventListener("mousemove", (b) => {
|
|
2989
|
+
if (a && h({
|
|
2990
|
+
left: Math.max(b.clientX - d, 0),
|
|
2991
|
+
top: Math.max(b.clientY - u, 0)
|
|
2992
|
+
}), l) {
|
|
2993
|
+
const w = o.getBoundingClientRect().top;
|
|
2994
|
+
h({
|
|
2995
|
+
height: Math.max(b.clientY - u + 30 - w, mt)
|
|
2996
|
+
});
|
|
2997
|
+
}
|
|
2998
|
+
}), o.addEventListener("mousedown", (b) => {
|
|
2999
|
+
const { top: w, left: y } = o.getBoundingClientRect();
|
|
3000
|
+
d = b.clientX - y, u = b.clientY - w, a = !0, P(s), P(A), o.classList.add(ge);
|
|
3001
|
+
}), i.addEventListener("mousedown", (b) => {
|
|
3002
|
+
u = b.clientY - i.getBoundingClientRect().top, l = !0, o.classList.add(Y), A.classList.add(Y), P(s), P(A), b.stopPropagation();
|
|
3003
|
+
});
|
|
3004
|
+
function I() {
|
|
3005
|
+
g && h(Te(e));
|
|
3006
|
+
}
|
|
3007
|
+
function C() {
|
|
3008
|
+
setTimeout(() => {
|
|
3009
|
+
h(Te(e));
|
|
3010
|
+
}, 1);
|
|
3011
|
+
}
|
|
3012
|
+
function E() {
|
|
3013
|
+
z(o), z(A), z(s), window.removeEventListener("resize", I), document.removeEventListener("mouseup", f);
|
|
3014
|
+
}
|
|
3015
|
+
return document.addEventListener("mouseup", f), window.addEventListener("resize", I), r.addEventListener("click", m), j(s), j(A), Br(), kr(t.asyncStorage).then((b) => {
|
|
3016
|
+
P(o), h(b), C();
|
|
3017
|
+
}).catch((b) => {
|
|
3018
|
+
console.error("Error while trying to set initial position of FloatingSidebar:", b);
|
|
3019
|
+
}), c.appendChild(o), c.appendChild(A), { toggleVisibility: v, remove: E };
|
|
3020
|
+
}
|
|
3021
|
+
async function Dr(t) {
|
|
3022
|
+
const e = te(t, {
|
|
3023
|
+
sidebarContainerId: J,
|
|
3024
|
+
asyncStorage: t.asyncStorage || new ye()
|
|
3025
|
+
}), n = Se(e), o = new pe(e);
|
|
3026
|
+
return o.registerAdapter(new ht(e)), await o.init(), n;
|
|
3027
|
+
}
|
|
3028
|
+
async function Rr(t) {
|
|
3029
|
+
const e = te(t, {
|
|
3030
|
+
sidebarContainerId: J,
|
|
3031
|
+
asyncStorage: t.asyncStorage || new ye()
|
|
3032
|
+
}), n = Se(e), o = new pe(e);
|
|
3033
|
+
return o.registerAdapter(new gt(e)), await o.init(), n;
|
|
3034
|
+
}
|
|
3035
|
+
class Fr extends N {
|
|
3036
|
+
editorId;
|
|
3037
|
+
constructor(e) {
|
|
3038
|
+
super(e), this.editorId = e.editorId;
|
|
3039
|
+
}
|
|
3040
|
+
getEditor() {
|
|
3041
|
+
let e = document.querySelector("#" + this.editorId);
|
|
3042
|
+
return e.classList.contains("ck-editor__editable") || (e = e.nextElementSibling.querySelector(".ck-editor__editable")), e.ckeditorInstance;
|
|
3043
|
+
}
|
|
3044
|
+
getEditorDocument() {
|
|
3045
|
+
return this.getEditorElement().ownerDocument;
|
|
3046
|
+
}
|
|
3047
|
+
getContent() {
|
|
3048
|
+
return this.getEditor().getData();
|
|
3049
|
+
}
|
|
3050
|
+
extractContentForCheck() {
|
|
3051
|
+
return this.isInSourceEditingMode() ? { error: "Action is not permitted in Source mode." } : (this.currentContentChecking = this.getContent(), { content: this.currentContentChecking });
|
|
3052
|
+
}
|
|
3053
|
+
selectRanges(e, n) {
|
|
3054
|
+
this.isInSourceEditingMode() ? window.alert("Action is not permitted in Source mode.") : super.selectRanges(e, n);
|
|
3055
|
+
}
|
|
3056
|
+
getEditorElement() {
|
|
3057
|
+
const e = this.getEditor().ui.getEditableElement();
|
|
3058
|
+
if (e)
|
|
3059
|
+
return e;
|
|
3060
|
+
throw new Error("Unable to fetch editable element");
|
|
3061
|
+
}
|
|
3062
|
+
replaceRanges(e, n) {
|
|
3063
|
+
this.isInSourceEditingMode() ? window.alert("Action is not permitted in Source mode.") : super.replaceRanges(e, n);
|
|
3064
|
+
}
|
|
3065
|
+
isInSourceEditingMode() {
|
|
3066
|
+
const e = "SourceEditing", n = this.getEditor();
|
|
3067
|
+
if (!n.plugins.has(e))
|
|
3068
|
+
return !1;
|
|
3069
|
+
const o = n.plugins.get(e);
|
|
3070
|
+
return o.isEnabled && o.isSourceEditingMode;
|
|
3071
|
+
}
|
|
3072
|
+
}
|
|
3073
|
+
class Zr extends N {
|
|
3074
|
+
editorId;
|
|
3075
|
+
constructor(e) {
|
|
3076
|
+
super(e), this.editorId = e.editorId;
|
|
3077
|
+
}
|
|
3078
|
+
getEditor() {
|
|
3079
|
+
const e = CKEDITOR.instances[this.editorId];
|
|
3080
|
+
if (!e)
|
|
3081
|
+
throw new Error(`Can't find ckeditor with id '${this.editorId}'`);
|
|
3082
|
+
return e;
|
|
3083
|
+
}
|
|
3084
|
+
getEditorDocument() {
|
|
3085
|
+
return this.getEditor().document.$;
|
|
3086
|
+
}
|
|
3087
|
+
getContent() {
|
|
3088
|
+
return this.getEditor().getData();
|
|
3089
|
+
}
|
|
3090
|
+
extractContentForCheck() {
|
|
3091
|
+
return this.isInWysiwygMode() ? (this.currentContentChecking = this.getContent(), { content: this.currentContentChecking }) : { error: "Action is not permitted in Source mode." };
|
|
3092
|
+
}
|
|
3093
|
+
selectRanges(e, n) {
|
|
3094
|
+
this.isInWysiwygMode() ? super.selectRanges(e, n) : window.alert("Action is not permitted in Source mode.");
|
|
3095
|
+
}
|
|
3096
|
+
replaceRanges(e, n) {
|
|
3097
|
+
this.isInWysiwygMode() ? super.replaceRanges(e, n) : window.alert("Action is not permitted in Source mode.");
|
|
3098
|
+
}
|
|
3099
|
+
isInWysiwygMode() {
|
|
3100
|
+
return this.getEditor().mode === "wysiwyg";
|
|
3101
|
+
}
|
|
3102
|
+
}
|
|
3103
|
+
class Mr extends N {
|
|
3104
|
+
editorId;
|
|
3105
|
+
constructor(e) {
|
|
3106
|
+
super(e), this.config.disableInputEventSimulation = !0, this.editorId = e.editorId;
|
|
3107
|
+
}
|
|
3108
|
+
getEditor() {
|
|
3109
|
+
return tinymce.get(this.editorId);
|
|
3110
|
+
}
|
|
3111
|
+
getContent(e) {
|
|
3112
|
+
return e.checkSelection ? this.getContentForCheckSelection(this.getEditorElement()) : this.getEditor().getContent({});
|
|
3113
|
+
}
|
|
3114
|
+
getContentForCheckSelection = (e) => this.getEditor().serializer.serialize(e, {});
|
|
3115
|
+
getSelection() {
|
|
3116
|
+
return { ranges: ne(this.getEditorElement(), this.getContentForCheckSelection) };
|
|
3117
|
+
}
|
|
3118
|
+
getEditorDocument() {
|
|
3119
|
+
return this.getEditor().getDoc();
|
|
3120
|
+
}
|
|
3121
|
+
}
|
|
3122
|
+
class Wr {
|
|
3123
|
+
config;
|
|
3124
|
+
currentContentChecking;
|
|
3125
|
+
lastContentChecked;
|
|
3126
|
+
formatDetectedByCheck;
|
|
3127
|
+
constructor(e) {
|
|
3128
|
+
this.configure(e);
|
|
3129
|
+
}
|
|
3130
|
+
configure(e) {
|
|
3131
|
+
const n = { ...this.config, ...e };
|
|
3132
|
+
this.validateConf(n), this.config = n;
|
|
3133
|
+
}
|
|
3134
|
+
validateConf(e) {
|
|
3135
|
+
if (!e)
|
|
3136
|
+
throw new Error("CodeMirrorAdapter config is missing");
|
|
3137
|
+
if (!e.editor)
|
|
3138
|
+
throw new Error('CodeMirrorAdapter config is missing "editor"');
|
|
3139
|
+
}
|
|
3140
|
+
getContent() {
|
|
3141
|
+
return this.config.editor.state.doc.toString();
|
|
3142
|
+
}
|
|
3143
|
+
getFormat() {
|
|
3144
|
+
return this.config.format || "AUTO";
|
|
3145
|
+
}
|
|
3146
|
+
extractContentForCheck(e) {
|
|
3147
|
+
return this.currentContentChecking = this.getContent(), {
|
|
3148
|
+
content: this.currentContentChecking,
|
|
3149
|
+
selection: e.checkSelection ? this.getSelection() : void 0
|
|
3150
|
+
};
|
|
3151
|
+
}
|
|
3152
|
+
getSelection() {
|
|
3153
|
+
return {
|
|
3154
|
+
ranges: this.config.editor.state.selection.ranges.map(this.cmSelectionToRange)
|
|
3155
|
+
};
|
|
3156
|
+
}
|
|
3157
|
+
registerCheckResult(e) {
|
|
3158
|
+
this.formatDetectedByCheck = e.inputFormat, this.lastContentChecked = this.currentContentChecking;
|
|
3159
|
+
}
|
|
3160
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3161
|
+
registerCheckCall(e) {
|
|
3162
|
+
}
|
|
3163
|
+
lookupMatchesOrThrow(e) {
|
|
3164
|
+
const n = O(this.lastContentChecked, this.getContent(), e, "TEXT");
|
|
3165
|
+
if (!n || n.length === 0)
|
|
3166
|
+
throw Error("Selected flagged content is modified.");
|
|
3167
|
+
return n;
|
|
3168
|
+
}
|
|
3169
|
+
selectRanges(e, n) {
|
|
3170
|
+
const o = this.lookupMatchesOrThrow(n);
|
|
3171
|
+
this.selectRangeAndScroll([o[0].range[0], o[o.length - 1].range[1]]);
|
|
3172
|
+
}
|
|
3173
|
+
replaceRanges(e, n) {
|
|
3174
|
+
const o = this.lookupMatchesOrThrow(n), s = this.getEscapeFunction();
|
|
3175
|
+
let r = 0;
|
|
3176
|
+
o.slice().reverse().forEach((i) => {
|
|
3177
|
+
if (!ve(this.lastContentChecked, i.originalMatch)) {
|
|
3178
|
+
const A = s(i.originalMatch.replacement);
|
|
3179
|
+
this.config.editor.dispatch({
|
|
3180
|
+
changes: {
|
|
3181
|
+
from: i.range[0],
|
|
3182
|
+
to: i.range[1],
|
|
3183
|
+
insert: A
|
|
3184
|
+
}
|
|
3185
|
+
}), r += A.length;
|
|
3186
|
+
}
|
|
3187
|
+
}), this.selectRangeAndScroll([o[0].range[0], o[0].range[0] + r]);
|
|
3188
|
+
}
|
|
3189
|
+
getEscapeFunction() {
|
|
3190
|
+
const e = this.getFormat();
|
|
3191
|
+
switch (e === "AUTO" && this.formatDetectedByCheck || e) {
|
|
3192
|
+
case "XML":
|
|
3193
|
+
case "HTML":
|
|
3194
|
+
return be;
|
|
3195
|
+
default:
|
|
3196
|
+
return (o) => o;
|
|
3197
|
+
}
|
|
3198
|
+
}
|
|
3199
|
+
selectRange(e) {
|
|
3200
|
+
return this.config.editor.dispatch({ selection: { anchor: e[0], head: e[1] }, scrollIntoView: !0 }), [e[0], e[1]];
|
|
3201
|
+
}
|
|
3202
|
+
selectRangeAndScroll(e) {
|
|
3203
|
+
this.selectRange(e), this.config.editor.focus();
|
|
3204
|
+
}
|
|
3205
|
+
cmSelectionToRange = (e) => {
|
|
3206
|
+
const n = [e.from, e.to];
|
|
3207
|
+
return n.sort((o, s) => o - s), n;
|
|
3208
|
+
};
|
|
3209
|
+
}
|
|
3210
|
+
const Hr = {
|
|
3211
|
+
"text/html": "HTML",
|
|
3212
|
+
"text/xml": "HTML",
|
|
3213
|
+
"application/xml": "XML",
|
|
3214
|
+
"text/x-markdown": "MARKDOWN",
|
|
3215
|
+
"text/plain": "TEXT"
|
|
3216
|
+
}, Qr = {
|
|
3217
|
+
htmlmixed: "HTML",
|
|
3218
|
+
xml: "XML",
|
|
3219
|
+
markdown: "MARKDOWN"
|
|
3220
|
+
};
|
|
3221
|
+
class Kr {
|
|
3222
|
+
config;
|
|
3223
|
+
currentContentChecking;
|
|
3224
|
+
lastContentChecked;
|
|
3225
|
+
formatDetectedByCheck;
|
|
3226
|
+
constructor(e) {
|
|
3227
|
+
this.configure(e);
|
|
3228
|
+
}
|
|
3229
|
+
configure(e) {
|
|
3230
|
+
const n = { ...this.config, ...e };
|
|
3231
|
+
this.validateConf(n), this.config = n;
|
|
3232
|
+
}
|
|
3233
|
+
validateConf(e) {
|
|
3234
|
+
if (!e)
|
|
3235
|
+
throw new Error("CodeMirrorAdapter config is missing");
|
|
3236
|
+
if (!e.editor)
|
|
3237
|
+
throw new Error('CodeMirrorAdapter config is missing "editor"');
|
|
3238
|
+
}
|
|
3239
|
+
getContent() {
|
|
3240
|
+
return this.config.editor.getValue();
|
|
3241
|
+
}
|
|
3242
|
+
getFormat() {
|
|
3243
|
+
return this.config.format || this.getFormatFromCodeMirror() || "AUTO";
|
|
3244
|
+
}
|
|
3245
|
+
getFormatFromCodeMirror() {
|
|
3246
|
+
return Qr[this.config.editor.getDoc().getMode().name || ""] || Hr[this.config.editor.getOption("mode")];
|
|
3247
|
+
}
|
|
3248
|
+
extractContentForCheck(e) {
|
|
3249
|
+
return this.currentContentChecking = this.getContent(), {
|
|
3250
|
+
content: this.currentContentChecking,
|
|
3251
|
+
selection: e.checkSelection ? this.getSelection() : void 0
|
|
3252
|
+
};
|
|
3253
|
+
}
|
|
3254
|
+
getSelection() {
|
|
3255
|
+
return {
|
|
3256
|
+
ranges: this.getDoc().listSelections().map(this.cmSelectionToRange)
|
|
3257
|
+
};
|
|
3258
|
+
}
|
|
3259
|
+
registerCheckResult(e) {
|
|
3260
|
+
this.formatDetectedByCheck = e.inputFormat, this.lastContentChecked = this.currentContentChecking;
|
|
3261
|
+
}
|
|
3262
|
+
registerCheckCall(e) {
|
|
3263
|
+
}
|
|
3264
|
+
lookupMatchesOrThrow(e) {
|
|
3265
|
+
const n = O(this.lastContentChecked, this.getContent(), e, "TEXT");
|
|
3266
|
+
if (n.length === 0)
|
|
3267
|
+
throw Error("Selected flagged content is modified.");
|
|
3268
|
+
return n;
|
|
3269
|
+
}
|
|
3270
|
+
selectRanges(e, n) {
|
|
3271
|
+
const o = this.lookupMatchesOrThrow(n);
|
|
3272
|
+
this.selectRangeAndScroll([o[0].range[0], o[o.length - 1].range[1]]);
|
|
3273
|
+
}
|
|
3274
|
+
replaceRanges(e, n) {
|
|
3275
|
+
const o = this.getDoc(), s = this.lookupMatchesOrThrow(n), r = this.getEscapeFunction();
|
|
3276
|
+
let i = 0;
|
|
3277
|
+
for (const A of [...s].reverse())
|
|
3278
|
+
if (!ve(this.lastContentChecked, A.originalMatch)) {
|
|
3279
|
+
const [c, a] = this.selectRange(A.range), l = r(A.originalMatch.replacement);
|
|
3280
|
+
o.replaceRange(l, c, a), i += l.length;
|
|
3281
|
+
}
|
|
3282
|
+
this.selectRangeAndScroll([s[0].range[0], s[0].range[0] + i]);
|
|
3283
|
+
}
|
|
3284
|
+
getEscapeFunction() {
|
|
3285
|
+
const e = this.getFormat();
|
|
3286
|
+
switch (e === "AUTO" && this.formatDetectedByCheck || e) {
|
|
3287
|
+
case "XML":
|
|
3288
|
+
case "HTML":
|
|
3289
|
+
return be;
|
|
3290
|
+
default:
|
|
3291
|
+
return (o) => o;
|
|
3292
|
+
}
|
|
3293
|
+
}
|
|
3294
|
+
getDoc() {
|
|
3295
|
+
return this.config.editor.getDoc();
|
|
3296
|
+
}
|
|
3297
|
+
selectRange(e) {
|
|
3298
|
+
const n = this.getDoc(), o = n.posFromIndex(e[0]), s = n.posFromIndex(e[1]);
|
|
3299
|
+
return n.setSelection(o, s), [o, s];
|
|
3300
|
+
}
|
|
3301
|
+
selectRangeAndScroll(e) {
|
|
3302
|
+
const n = this.selectRange(e), o = this.config.editor;
|
|
3303
|
+
o.scrollIntoView(n[0]), o.focus();
|
|
3304
|
+
}
|
|
3305
|
+
cmSelectionToRange = (e) => {
|
|
3306
|
+
const n = this.getDoc(), o = [n.indexFromPos(e.anchor), n.indexFromPos(e.head)];
|
|
3307
|
+
return o.sort((s, r) => s - r), o;
|
|
3308
|
+
};
|
|
3309
|
+
}
|
|
3310
|
+
class Nr {
|
|
3311
|
+
/**
|
|
3312
|
+
* Editor of this adapter
|
|
3313
|
+
*
|
|
3314
|
+
* @property {any} editor
|
|
3315
|
+
* Native Xeditor editor instance
|
|
3316
|
+
*/
|
|
3317
|
+
editor;
|
|
3318
|
+
/**
|
|
3319
|
+
* Document of this adapter
|
|
3320
|
+
*
|
|
3321
|
+
* @property {any} editor
|
|
3322
|
+
* Native Xeditor document instance
|
|
3323
|
+
*/
|
|
3324
|
+
document;
|
|
3325
|
+
/**
|
|
3326
|
+
* SelectionManager of this adapter
|
|
3327
|
+
*
|
|
3328
|
+
* @property {any} editor
|
|
3329
|
+
* Native Xeditor selection manager instance
|
|
3330
|
+
*/
|
|
3331
|
+
selectionManager;
|
|
3332
|
+
/**
|
|
3333
|
+
* Content that is currently checking
|
|
3334
|
+
*
|
|
3335
|
+
* @property {string} currentContentChecking
|
|
3336
|
+
* Content that is currently checking
|
|
3337
|
+
*/
|
|
3338
|
+
currentContentChecking;
|
|
3339
|
+
/**
|
|
3340
|
+
* Content that was last checked
|
|
3341
|
+
*
|
|
3342
|
+
* @property {string} lastContentChecked
|
|
3343
|
+
* Content that was last checked
|
|
3344
|
+
*/
|
|
3345
|
+
lastContentChecked;
|
|
3346
|
+
/**
|
|
3347
|
+
* Creates a new instance of this acrolinx adapter
|
|
3348
|
+
*/
|
|
3349
|
+
constructor(e) {
|
|
3350
|
+
this.editor = e, this.document = e.document, this.selectionManager = e.selectionManager, this.lastContentChecked = "", this.currentContentChecking = "";
|
|
3351
|
+
}
|
|
3352
|
+
/**
|
|
3353
|
+
* Implementation of getFormat of acrolinx.AdapterInterface
|
|
3354
|
+
*
|
|
3355
|
+
* @returns {string} Returns 'HTML'
|
|
3356
|
+
*/
|
|
3357
|
+
getFormat() {
|
|
3358
|
+
return "HTML";
|
|
3359
|
+
}
|
|
3360
|
+
/**
|
|
3361
|
+
* @inheritdoc
|
|
3362
|
+
*/
|
|
3363
|
+
extractContentForCheck(e) {
|
|
3364
|
+
const n = this.getContentForCheck().html;
|
|
3365
|
+
return this.currentContentChecking = n, {
|
|
3366
|
+
content: n
|
|
3367
|
+
};
|
|
3368
|
+
}
|
|
3369
|
+
/**
|
|
3370
|
+
* @inheritdoc
|
|
3371
|
+
*/
|
|
3372
|
+
registerCheckCall(e) {
|
|
3373
|
+
}
|
|
3374
|
+
/**
|
|
3375
|
+
* @inheritdoc
|
|
3376
|
+
*/
|
|
3377
|
+
registerCheckResult(e) {
|
|
3378
|
+
this.lastContentChecked = this.currentContentChecking;
|
|
3379
|
+
}
|
|
3380
|
+
/**
|
|
3381
|
+
* @inheritdoc
|
|
3382
|
+
*/
|
|
3383
|
+
replaceRanges(e, n) {
|
|
3384
|
+
const o = this.selectMatches(n), s = o.map((r) => r.originalMatch.replacement).join("");
|
|
3385
|
+
this.replaceAlignedMatches(o), this.selectText(o[0].range[0], s.length);
|
|
3386
|
+
}
|
|
3387
|
+
/**
|
|
3388
|
+
* @inheritdoc
|
|
3389
|
+
*/
|
|
3390
|
+
selectRanges(e, n) {
|
|
3391
|
+
this.selectMatches(n);
|
|
3392
|
+
}
|
|
3393
|
+
/**
|
|
3394
|
+
* Replaces the aligned matches.
|
|
3395
|
+
*
|
|
3396
|
+
* @param {AlignedMatch<MatchWithReplacement>[]} matches
|
|
3397
|
+
* Matches to replace
|
|
3398
|
+
* @protected
|
|
3399
|
+
*/
|
|
3400
|
+
replaceAlignedMatches(e) {
|
|
3401
|
+
e = e.sort((n, o) => o.range[0] - n.range[0]);
|
|
3402
|
+
for (const n of e)
|
|
3403
|
+
this.document.replaceTextByOffsetRanges(
|
|
3404
|
+
[
|
|
3405
|
+
{
|
|
3406
|
+
from: n.range[0],
|
|
3407
|
+
to: n.range[1]
|
|
3408
|
+
}
|
|
3409
|
+
],
|
|
3410
|
+
n.originalMatch.replacement
|
|
3411
|
+
);
|
|
3412
|
+
this.editor.updateState(!0);
|
|
3413
|
+
}
|
|
3414
|
+
/**
|
|
3415
|
+
* Selects the given `matches` by aligning them and calling `selectAlignedMatches`.
|
|
3416
|
+
*
|
|
3417
|
+
* @param {Match[]} matches
|
|
3418
|
+
* Matches to select
|
|
3419
|
+
* @returns {AlignedMatch<T>[]} Aligned matches
|
|
3420
|
+
* @protected
|
|
3421
|
+
*/
|
|
3422
|
+
selectMatches(e) {
|
|
3423
|
+
const n = O(
|
|
3424
|
+
this.lastContentChecked,
|
|
3425
|
+
this.getContentForCheck().text,
|
|
3426
|
+
e
|
|
3427
|
+
);
|
|
3428
|
+
return this.selectAlignedMatches(n), n;
|
|
3429
|
+
}
|
|
3430
|
+
/**
|
|
3431
|
+
* Selects the given `matches` using `selectText`.
|
|
3432
|
+
*
|
|
3433
|
+
* @param {AlignedMatch<Match>[]} matches
|
|
3434
|
+
* Aligned matches to select
|
|
3435
|
+
* @protected
|
|
3436
|
+
*/
|
|
3437
|
+
selectAlignedMatches(e) {
|
|
3438
|
+
const n = e[0].range[0], o = e[e.length - 1].range[1];
|
|
3439
|
+
this.selectText(n, o);
|
|
3440
|
+
}
|
|
3441
|
+
/**
|
|
3442
|
+
* Selects the range for the given offset.
|
|
3443
|
+
*
|
|
3444
|
+
* @param {number} begin
|
|
3445
|
+
* Begin of the range
|
|
3446
|
+
* @param {number} end
|
|
3447
|
+
* End of the range
|
|
3448
|
+
* @protected
|
|
3449
|
+
*/
|
|
3450
|
+
selectText(e, n) {
|
|
3451
|
+
const o = this.document.findTextNodeByOffset(e), s = this.document.findTextNodeByOffset(n), r = this.selectionManager.getActive();
|
|
3452
|
+
r.startNode = o.textNode, r.startOffset = Ext.ux.xeditor.Util.getNodeOffsetByNodeAndOffset(
|
|
3453
|
+
this.editor,
|
|
3454
|
+
o.textNode,
|
|
3455
|
+
o.offset
|
|
3456
|
+
), r.endNode = s.textNode, r.endOffset = Ext.ux.xeditor.Util.getNodeOffsetByNodeAndOffset(
|
|
3457
|
+
this.editor,
|
|
3458
|
+
s.textNode,
|
|
3459
|
+
s.offset
|
|
3460
|
+
), this.editor.updateState(), this.selectionManager.sync(), this.editor.contentFrame.scrollToSelection("middle", !0).selectionCorrected && (this.editor.updateState(), this.selectionManager.sync());
|
|
3461
|
+
}
|
|
3462
|
+
/**
|
|
3463
|
+
* Returns the prepared content for a check.
|
|
3464
|
+
*
|
|
3465
|
+
* @returns {CheckContentResult} Content to check
|
|
3466
|
+
* @protected
|
|
3467
|
+
*/
|
|
3468
|
+
getContentForCheck() {
|
|
3469
|
+
const e = {
|
|
3470
|
+
dom: document.createElement("div"),
|
|
3471
|
+
html: "",
|
|
3472
|
+
text: ""
|
|
3473
|
+
}, n = this.editor.getVersion().major >= 6, o = this;
|
|
3474
|
+
function s(r, i) {
|
|
3475
|
+
if (r.isRemoved(!0))
|
|
3476
|
+
return;
|
|
3477
|
+
const A = r.getType() === "text";
|
|
3478
|
+
let c = !1;
|
|
3479
|
+
r.eachChildNode(function(a, l, d) {
|
|
3480
|
+
const u = o.editor.document.getNodeType(a);
|
|
3481
|
+
if (A && u === "#text") {
|
|
3482
|
+
let g = o.editor.document.getTextNodeValue(a);
|
|
3483
|
+
g = Ext.ux.xeditor.Util.trimPlaceHolderChar(o.editor, g);
|
|
3484
|
+
const h = document.createTextNode(g);
|
|
3485
|
+
i.appendChild(h);
|
|
3486
|
+
} else if (o.editor.configObj.isElementType(u)) {
|
|
3487
|
+
const g = o.editor.document.getNode(a), h = o.editor.configObj.getRoleByType(u), f = o.getAcrolinxElement(g, h, i);
|
|
3488
|
+
if (c && !n) {
|
|
3489
|
+
const p = document.createTextNode(" ");
|
|
3490
|
+
f.appendChild(p);
|
|
3491
|
+
}
|
|
3492
|
+
s(g, f), c = h.insertSpaceAfter;
|
|
3493
|
+
}
|
|
3494
|
+
});
|
|
3495
|
+
}
|
|
3496
|
+
return s(this.document.root, e.dom), e.html = e.dom.outerHTML, e.text = e.dom.innerText, e;
|
|
3497
|
+
}
|
|
3498
|
+
/**
|
|
3499
|
+
* Returns the specific element that should be used for the acrolinx check.
|
|
3500
|
+
*
|
|
3501
|
+
* @param {any} _element
|
|
3502
|
+
* Element to get the acrolinx element from
|
|
3503
|
+
* @param {any} role
|
|
3504
|
+
* Role of the passed `_element`
|
|
3505
|
+
* @param currentElement
|
|
3506
|
+
* Element which is currently used
|
|
3507
|
+
* @returns {HTMLElement} Element that should be used for acrolinx check
|
|
3508
|
+
*/
|
|
3509
|
+
getAcrolinxElement(e, n, o) {
|
|
3510
|
+
if (n.isInline)
|
|
3511
|
+
return o;
|
|
3512
|
+
const s = document.createElement(n.tag);
|
|
3513
|
+
return o.appendChild(s), s;
|
|
3514
|
+
}
|
|
3515
|
+
}
|
|
3516
|
+
const he = window;
|
|
3517
|
+
he.acrolinx = he.acrolinx || {};
|
|
3518
|
+
const Pr = {
|
|
3519
|
+
AcrolinxPlugin: pe,
|
|
3520
|
+
autoBindFloatingSidebar: Dr,
|
|
3521
|
+
autoBindFloatingSidebarAsync: Rr,
|
|
3522
|
+
createPluginMessageAdapter: Ht,
|
|
3523
|
+
initFloatingSidebar: Se,
|
|
3524
|
+
AsyncLocalStorage: ye,
|
|
3525
|
+
loadSidebarCode: Gt,
|
|
3526
|
+
getSelectionHtmlRanges: ne,
|
|
3527
|
+
adapter: {
|
|
3528
|
+
AbstractRichtextEditorAdapter: N,
|
|
3529
|
+
AutoBindAdapter: ht,
|
|
3530
|
+
AsyncAutoBindAdapter: gt,
|
|
3531
|
+
CKEditor5Adapter: Fr,
|
|
3532
|
+
CKEditorAdapter: Zr,
|
|
3533
|
+
CodeMirror6Adapter: Wr,
|
|
3534
|
+
CodeMirrorAdapter: Kr,
|
|
3535
|
+
ContentEditableAdapter: At,
|
|
3536
|
+
AsyncContentEditableAdapter: it,
|
|
3537
|
+
InputAdapter: st,
|
|
3538
|
+
MultiEditorAdapter: we,
|
|
3539
|
+
AsyncMultiEditorAdapter: ut,
|
|
3540
|
+
TinyMCEAdapter: Mr,
|
|
3541
|
+
XeditorAdapter: Nr
|
|
3542
|
+
},
|
|
3543
|
+
lookup: {
|
|
3544
|
+
lookupMatches: O
|
|
3545
|
+
},
|
|
3546
|
+
extractTextDomMapping: Ie
|
|
3547
|
+
};
|
|
3548
|
+
he.acrolinx.plugins = Pr;
|
|
3549
|
+
export {
|
|
3550
|
+
N as AbstractRichtextEditorAdapter,
|
|
3551
|
+
pe as AcrolinxPlugin,
|
|
3552
|
+
gt as AsyncAutoBindAdapter,
|
|
3553
|
+
ye as AsyncLocalStorage,
|
|
3554
|
+
ut as AsyncMultiEditorAdapter,
|
|
3555
|
+
ht as AutoBindAdapter,
|
|
3556
|
+
Fr as CKEditor5Adapter,
|
|
3557
|
+
Zr as CKEditorAdapter,
|
|
3558
|
+
Wr as CodeMirror6Adapter,
|
|
3559
|
+
Kr as CodeMirrorAdapter,
|
|
3560
|
+
At as ContentEditableAdapter,
|
|
3561
|
+
st as InputAdapter,
|
|
3562
|
+
we as MultiEditorAdapter,
|
|
3563
|
+
it as StateBasedContentEditableAdapter,
|
|
3564
|
+
Mr as TinyMCEAdapter,
|
|
3565
|
+
Nr as XeditorAdapter,
|
|
3566
|
+
Dr as autoBindFloatingSidebar,
|
|
3567
|
+
Rr as autoBindFloatingSidebarAsync,
|
|
3568
|
+
Ht as createPluginMessageAdapter,
|
|
3569
|
+
Ie as extractTextDomMapping,
|
|
3570
|
+
ne as getSelectionHtmlRanges,
|
|
3571
|
+
Se as initFloatingSidebar,
|
|
3572
|
+
Gt as loadSidebarCode,
|
|
3573
|
+
O as lookupMatches
|
|
3574
|
+
};
|