@gspwidget/wisedoc-mobile-selector 0.0.0-stage → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -3
- package/dist-lib/index.cjs +1 -0
- package/dist-lib/index.js +709 -0
- package/dist-lib/package.json +1 -0
- package/dist-lib/style.css +1 -0
- package/dist-lib/types/App.vue.d.ts +48 -0
- package/dist-lib/types/demo-source.d.ts +3 -0
- package/dist-lib/types/index.d.ts +8 -0
- package/dist-lib/types/public-types.d.ts +15 -0
- package/dist-lib/types/shared/data-source.d.ts +27 -0
- package/dist-lib/types/shared/http.d.ts +34 -0
- package/dist-lib/types/shared/selection.d.ts +14 -0
- package/dist-lib/types/shared/types.d.ts +34 -0
- package/npm/346/216/245/345/205/245/344/270/216/345/217/221/345/270/203/350/257/264/346/230/216.md +167 -0
- package/package.json +53 -6
- package/uni-app/346/216/245/345/205/245/350/257/264/346/230/216.md +69 -0
|
@@ -0,0 +1,709 @@
|
|
|
1
|
+
import './style.css';
|
|
2
|
+
import { defineComponent as bI, ref as Y, computed as Q, onMounted as rI, onBeforeUnmount as LI, openBlock as e, createElementBlock as t, createElementVNode as l, unref as p, createCommentVNode as Z, toDisplayString as m, Fragment as x, renderList as h, normalizeClass as q, createTextVNode as W, nextTick as ZI } from "vue";
|
|
3
|
+
function AI(I) {
|
|
4
|
+
return I && typeof I == "object" ? I.response : void 0;
|
|
5
|
+
}
|
|
6
|
+
function II(I, g, C) {
|
|
7
|
+
return Object.assign(new Error(I), { response: g, code: C });
|
|
8
|
+
}
|
|
9
|
+
function sI(I, g) {
|
|
10
|
+
var M;
|
|
11
|
+
if (/^https?:\/\//i.test(I) || !g)
|
|
12
|
+
return I;
|
|
13
|
+
const C = (M = g.match(/^https?:\/\/[^/]+/i)) == null ? void 0 : M[0];
|
|
14
|
+
return I.startsWith("/") && C ? C + I : g.replace(/\/$/, "") + "/" + I.replace(/^\//, "");
|
|
15
|
+
}
|
|
16
|
+
function mI(I) {
|
|
17
|
+
return !I.request && I.http ? I.http : { async get(g, C = {}) {
|
|
18
|
+
var G, b, T;
|
|
19
|
+
let M = sI(g, C.baseURL ?? I.baseURL ?? "");
|
|
20
|
+
const a = Object.entries(C.params || {}).filter(([, i]) => i != null).map(([i, s]) => `${encodeURIComponent(i)}=${encodeURIComponent(String(s))}`).join("&");
|
|
21
|
+
a && (M += (M.includes("?") ? "&" : "?") + a);
|
|
22
|
+
const u = {
|
|
23
|
+
url: M,
|
|
24
|
+
method: "GET",
|
|
25
|
+
headers: C.headers,
|
|
26
|
+
signal: C.signal,
|
|
27
|
+
timeout: C.timeout ?? 3e4,
|
|
28
|
+
withCredentials: C.withCredentials ?? I.withCredentials ?? !1
|
|
29
|
+
};
|
|
30
|
+
if (I.request) {
|
|
31
|
+
const i = await I.request(u);
|
|
32
|
+
if (!i || !Object.prototype.hasOwnProperty.call(i, "data"))
|
|
33
|
+
throw new Error("request 必须返回 { data, status? }");
|
|
34
|
+
if (i.status !== void 0 && (i.status < 200 || i.status >= 300))
|
|
35
|
+
throw II(`HTTP ${i.status}`, i);
|
|
36
|
+
return i;
|
|
37
|
+
}
|
|
38
|
+
if (typeof fetch != "function")
|
|
39
|
+
throw new Error("当前环境无 fetch,请通过 apiOptions.request 注入宿主网络函数");
|
|
40
|
+
const n = typeof AbortController == "function" ? new AbortController() : void 0, L = () => n == null ? void 0 : n.abort();
|
|
41
|
+
(G = u.signal) != null && G.aborted && L(), (b = u.signal) == null || b.addEventListener("abort", L, { once: !0 });
|
|
42
|
+
const S = n && u.timeout ? setTimeout(L, u.timeout) : void 0;
|
|
43
|
+
try {
|
|
44
|
+
const i = await fetch(M, {
|
|
45
|
+
method: "GET",
|
|
46
|
+
headers: u.headers,
|
|
47
|
+
signal: (n == null ? void 0 : n.signal) ?? u.signal,
|
|
48
|
+
credentials: u.withCredentials ? "include" : "same-origin"
|
|
49
|
+
}), s = await i.text();
|
|
50
|
+
let z = s;
|
|
51
|
+
try {
|
|
52
|
+
z = JSON.parse(s);
|
|
53
|
+
} catch {
|
|
54
|
+
}
|
|
55
|
+
const j = { data: z, status: i.status };
|
|
56
|
+
if (!i.ok)
|
|
57
|
+
throw II(`HTTP ${i.status}`, j);
|
|
58
|
+
return j;
|
|
59
|
+
} catch (i) {
|
|
60
|
+
throw i instanceof TypeError ? II(i.message, void 0, "ERR_NETWORK") : i;
|
|
61
|
+
} finally {
|
|
62
|
+
S !== void 0 && clearTimeout(S), (T = u.signal) == null || T.removeEventListener("abort", L);
|
|
63
|
+
}
|
|
64
|
+
} };
|
|
65
|
+
}
|
|
66
|
+
function J(I) {
|
|
67
|
+
if (!Array.isArray(I) || !I.every((g) => g && typeof g == "object" && typeof g.id == "string"))
|
|
68
|
+
throw new Error("接口未返回有效数据,请检查登录状态和后端代理配置");
|
|
69
|
+
return I;
|
|
70
|
+
}
|
|
71
|
+
function tI(I, g, C) {
|
|
72
|
+
const M = String((C === "directory" ? I.name : I.title) || "未命名");
|
|
73
|
+
return {
|
|
74
|
+
id: String(I.id),
|
|
75
|
+
name: M,
|
|
76
|
+
type: C,
|
|
77
|
+
libraryId: g.libraryId,
|
|
78
|
+
parentId: g.id,
|
|
79
|
+
ancestorIds: [...g.ancestorIds, g.id],
|
|
80
|
+
pathNames: [...g.pathNames, g.name],
|
|
81
|
+
includeDescendants: C === "directory",
|
|
82
|
+
...C === "document" ? { attachments: typeof I.attachments == "string" ? I.attachments : "" } : {}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
const xI = "/subapp/wisedoc/knowledge-selector.config.json";
|
|
86
|
+
function V(I) {
|
|
87
|
+
var M;
|
|
88
|
+
if (!I || typeof I != "object" || Array.isArray(I))
|
|
89
|
+
throw new Error("知识库选择配置文件格式无效");
|
|
90
|
+
const g = I;
|
|
91
|
+
if (g.useWisedocApi !== void 0 && typeof g.useWisedocApi != "boolean")
|
|
92
|
+
throw new Error("知识库选择配置项 useWisedocApi 必须为布尔值");
|
|
93
|
+
if (g.apiBaseUrl !== void 0 && typeof g.apiBaseUrl != "string")
|
|
94
|
+
throw new Error("知识库选择配置项 apiBaseUrl 必须为字符串");
|
|
95
|
+
const C = ((M = g.apiBaseUrl) == null ? void 0 : M.trim()) || "";
|
|
96
|
+
if (C && !/^https?:\/\/[^\s/?#]+(?:\/[^?#]*)?$/i.test(C) && !/^\/(?!\/)[^?#]*$/.test(C))
|
|
97
|
+
throw new Error("知识库选择配置项 apiBaseUrl 必须为 http(s) 地址或以 / 开头的代理路径");
|
|
98
|
+
return { useWisedocApi: g.useWisedocApi, apiBaseUrl: C };
|
|
99
|
+
}
|
|
100
|
+
function U(I) {
|
|
101
|
+
if (typeof I == "string") {
|
|
102
|
+
const M = I.trim();
|
|
103
|
+
if (/^(?:<!doctype|<html)/i.test(M))
|
|
104
|
+
return /登录|login|sign-in/i.test(M);
|
|
105
|
+
try {
|
|
106
|
+
return U(JSON.parse(M));
|
|
107
|
+
} catch {
|
|
108
|
+
return /^(?:未登录|请先登录|登录已失效)$/i.test(M);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (!I || typeof I != "object" || Array.isArray(I))
|
|
112
|
+
return !1;
|
|
113
|
+
const g = I;
|
|
114
|
+
if (g.code === 401 || g.code === "401" || g.status === 401 || g.status === "401")
|
|
115
|
+
return !0;
|
|
116
|
+
const C = [g.message, g.msg, g.error].filter((M) => typeof M == "string").join(" ");
|
|
117
|
+
return /未登录|请先登录|登录已失效|登录已过期|未认证|unauthorized|not logged in|session expired/i.test(C);
|
|
118
|
+
}
|
|
119
|
+
function gI(I) {
|
|
120
|
+
const g = AI(I);
|
|
121
|
+
return (g == null ? void 0 : g.status) === 401 || U(g == null ? void 0 : g.data);
|
|
122
|
+
}
|
|
123
|
+
function SI(I) {
|
|
124
|
+
return !!I && typeof I == "object" && "code" in I && I.code === "ERR_NETWORK" && !AI(I);
|
|
125
|
+
}
|
|
126
|
+
const EI = [0, 200, 400, 800, 1200, 1800];
|
|
127
|
+
function zI(I = {}) {
|
|
128
|
+
const g = (i) => sI(i, I.serviceOrigin || ""), C = mI(I);
|
|
129
|
+
let M, a, u = 0, n;
|
|
130
|
+
function L() {
|
|
131
|
+
if (!M) {
|
|
132
|
+
const i = I.configUrl ?? xI;
|
|
133
|
+
M = I.config !== void 0 || I.request ? Promise.resolve().then(() => V(I.config ?? {})) : i ? C.get(g(i), {
|
|
134
|
+
baseURL: "",
|
|
135
|
+
...I.serviceOrigin ? { params: { _t: Date.now() } } : { headers: { "Cache-Control": "no-cache" } }
|
|
136
|
+
}).then((s) => V(s.data)).catch((s) => {
|
|
137
|
+
var z;
|
|
138
|
+
if (((z = AI(s)) == null ? void 0 : z.status) === 404)
|
|
139
|
+
return V({});
|
|
140
|
+
throw M = void 0, s;
|
|
141
|
+
}) : Promise.resolve(V({}));
|
|
142
|
+
}
|
|
143
|
+
return M;
|
|
144
|
+
}
|
|
145
|
+
function S(i, s) {
|
|
146
|
+
var j;
|
|
147
|
+
const z = i.useWisedocApi === !1 ? "/api/cms/cs/v1.0" : "/api/wisedoc/rest";
|
|
148
|
+
return g(`${((j = i.apiBaseUrl) == null ? void 0 : j.replace(/\/$/, "")) || ""}${z}/${s}`);
|
|
149
|
+
}
|
|
150
|
+
async function G(i) {
|
|
151
|
+
const s = S(i, "columns/findAllMyKB");
|
|
152
|
+
for (const z of EI) {
|
|
153
|
+
z && await new Promise((j) => setTimeout(j, z));
|
|
154
|
+
try {
|
|
155
|
+
const j = await C.get(s, { baseURL: "", withCredentials: !0, timeout: 5e3 });
|
|
156
|
+
if (U(j.data))
|
|
157
|
+
continue;
|
|
158
|
+
J(j.data);
|
|
159
|
+
return;
|
|
160
|
+
} catch (j) {
|
|
161
|
+
if (!gI(j))
|
|
162
|
+
throw j;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
throw new Error("CMS 认证后会话仍未建立,请检查 5200 的认证跳转和会话配置");
|
|
166
|
+
}
|
|
167
|
+
async function b(i) {
|
|
168
|
+
var z;
|
|
169
|
+
if (!a) {
|
|
170
|
+
u++, n = void 0;
|
|
171
|
+
const j = ((z = i.apiBaseUrl) == null ? void 0 : z.replace(/\/$/, "")) || "", E = g(`${j}/mano/api/runtime/sys/v1.0/routerRedirect?auth-flow=JWT&issuer=mano-issuer`);
|
|
172
|
+
a = (async () => {
|
|
173
|
+
let w = !1;
|
|
174
|
+
try {
|
|
175
|
+
const c = await C.get(E, {
|
|
176
|
+
baseURL: "",
|
|
177
|
+
withCredentials: !0,
|
|
178
|
+
headers: { Accept: "text/html" }
|
|
179
|
+
});
|
|
180
|
+
if (U(c.data))
|
|
181
|
+
throw new Error("CMS 认证接口仍返回未登录");
|
|
182
|
+
} catch (c) {
|
|
183
|
+
if (!SI(c))
|
|
184
|
+
throw c;
|
|
185
|
+
w = !0;
|
|
186
|
+
}
|
|
187
|
+
try {
|
|
188
|
+
await G(i);
|
|
189
|
+
} catch (c) {
|
|
190
|
+
throw w ? new Error("认证跳转遇到跨域或网络错误,且 CMS 会话未建立,请检查 5200 的跳转与代理配置") : c;
|
|
191
|
+
}
|
|
192
|
+
})().catch((w) => {
|
|
193
|
+
throw n = w, w;
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
const s = a;
|
|
197
|
+
try {
|
|
198
|
+
await s;
|
|
199
|
+
} finally {
|
|
200
|
+
a === s && (a = void 0);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
async function T(i, s, z) {
|
|
204
|
+
const j = S(i, s);
|
|
205
|
+
if (I.request || i.useWisedocApi !== !1)
|
|
206
|
+
return C.get(j, z);
|
|
207
|
+
const E = { ...z, withCredentials: !0 }, w = u;
|
|
208
|
+
a && await a;
|
|
209
|
+
try {
|
|
210
|
+
const c = await C.get(j, E);
|
|
211
|
+
if (!U(c.data))
|
|
212
|
+
return c;
|
|
213
|
+
} catch (c) {
|
|
214
|
+
if (!gI(c))
|
|
215
|
+
throw c;
|
|
216
|
+
}
|
|
217
|
+
if (u === w)
|
|
218
|
+
await b(i);
|
|
219
|
+
else if (a)
|
|
220
|
+
await a;
|
|
221
|
+
else if (n)
|
|
222
|
+
throw n;
|
|
223
|
+
try {
|
|
224
|
+
const c = await C.get(j, E);
|
|
225
|
+
if (U(c.data))
|
|
226
|
+
throw new Error("CMS 认证后仍未登录,请检查 5200 的认证与会话配置");
|
|
227
|
+
return c;
|
|
228
|
+
} catch (c) {
|
|
229
|
+
throw gI(c) ? new Error("CMS 认证后仍未登录,请检查 5200 的认证与会话配置") : c;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return {
|
|
233
|
+
async getLibraries(i) {
|
|
234
|
+
const s = await L(), { data: z } = await T(s, "columns/findAllMyKB", { signal: i });
|
|
235
|
+
return J(z).map((j) => ({
|
|
236
|
+
id: String(j.id),
|
|
237
|
+
name: String(j.name || "未命名知识库"),
|
|
238
|
+
type: "library",
|
|
239
|
+
libraryId: String(j.id),
|
|
240
|
+
parentId: null,
|
|
241
|
+
ancestorIds: [],
|
|
242
|
+
pathNames: [],
|
|
243
|
+
includeDescendants: !0
|
|
244
|
+
}));
|
|
245
|
+
},
|
|
246
|
+
async getChildren(i, s, z, j) {
|
|
247
|
+
const E = await L(), [w, c] = await Promise.all([
|
|
248
|
+
s === 1 ? T(E, "columns/findMyDirectory", {
|
|
249
|
+
params: { parentId: i.id },
|
|
250
|
+
signal: j
|
|
251
|
+
}).then((k) => J(k.data)) : Promise.resolve([]),
|
|
252
|
+
T(E, "columncontent/findContentList/paged", {
|
|
253
|
+
params: { channelId: i.id, page: s, size: z, offset: 0, orderBy: "id", order: "asc" },
|
|
254
|
+
signal: j
|
|
255
|
+
}).then((k) => k.data)
|
|
256
|
+
]);
|
|
257
|
+
if (!c || typeof c.total != "number" || !Number.isFinite(c.total) || c.total < 0)
|
|
258
|
+
throw new Error("文档分页接口返回格式异常,请检查登录状态和后端接口");
|
|
259
|
+
return {
|
|
260
|
+
directories: w.map((k) => tI(k, i, "directory")),
|
|
261
|
+
documents: J(c.data).map((k) => tI(k, i, "document")),
|
|
262
|
+
total: c.total
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
zI();
|
|
268
|
+
const d = (I) => JSON.stringify([I.libraryId, I.type, I.id]);
|
|
269
|
+
function X(I, g) {
|
|
270
|
+
return I.libraryId === g.libraryId && I.type !== "document" && d(I) !== d(g) && g.ancestorIds.includes(I.id);
|
|
271
|
+
}
|
|
272
|
+
function CI(I) {
|
|
273
|
+
return {
|
|
274
|
+
id: I.id,
|
|
275
|
+
type: I.type,
|
|
276
|
+
name: I.name,
|
|
277
|
+
libraryId: I.libraryId,
|
|
278
|
+
parentId: I.parentId,
|
|
279
|
+
ancestorIds: [...I.ancestorIds],
|
|
280
|
+
includeDescendants: I.type !== "document",
|
|
281
|
+
...I.type === "document" ? { attachments: I.attachments ?? "" } : {}
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
function MI(I) {
|
|
285
|
+
if (!Array.isArray(I))
|
|
286
|
+
throw new Error("选择结果必须是数组");
|
|
287
|
+
const g = I.map((C) => {
|
|
288
|
+
if (!C || typeof C != "object")
|
|
289
|
+
throw new Error("无效的选择项");
|
|
290
|
+
const M = C;
|
|
291
|
+
if (typeof M.id != "string" || !M.id || typeof M.libraryId != "string" || !M.libraryId || typeof M.name != "string" || !["library", "directory", "document"].includes(M.type) || !Array.isArray(M.ancestorIds) || !M.ancestorIds.every((a) => typeof a == "string" && a.length > 0) || !(M.parentId === null || typeof M.parentId == "string") || M.type === "document" && typeof M.attachments != "string")
|
|
292
|
+
throw new Error("选择项字段不完整");
|
|
293
|
+
if (M.type === "library" ? M.id !== M.libraryId || M.ancestorIds.length !== 0 || M.parentId !== null : M.ancestorIds[0] !== M.libraryId || M.ancestorIds[M.ancestorIds.length - 1] !== M.parentId || M.ancestorIds.includes(M.id) || new Set(M.ancestorIds).size !== M.ancestorIds.length)
|
|
294
|
+
throw new Error("选择项的祖先路径不完整");
|
|
295
|
+
return CI(M);
|
|
296
|
+
});
|
|
297
|
+
return [...new Map(g.map((C) => [d(C), C])).values()].filter((C) => !g.some((M) => X(M, C)));
|
|
298
|
+
}
|
|
299
|
+
function wI(I, g) {
|
|
300
|
+
const C = g.find((a) => X(a, I)), M = g.some((a) => d(a) === d(I));
|
|
301
|
+
return {
|
|
302
|
+
checked: M || !!C,
|
|
303
|
+
disabled: !!C,
|
|
304
|
+
indeterminate: !M && !C && g.some((a) => X(I, a)),
|
|
305
|
+
inheritedFrom: C == null ? void 0 : C.name
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
function GI(I, g) {
|
|
309
|
+
const C = wI(I, g);
|
|
310
|
+
return C.disabled ? g : C.checked ? g.filter((M) => d(M) !== d(I)) : [...g.filter((M) => !X(I, M)), CI(I)];
|
|
311
|
+
}
|
|
312
|
+
function kI(I) {
|
|
313
|
+
return {
|
|
314
|
+
KBIds: I.filter((g) => g.type === "library").map((g) => g.id),
|
|
315
|
+
DirIds: I.filter((g) => g.type === "directory").map((g) => g.id),
|
|
316
|
+
DocIds: I.filter((g) => g.type === "document").map((g) => g.attachments ?? "")
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
const PI = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMzJweCIgaGVpZ2h0PSIzMnB4IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+aWNvbl/nn6Xor4blupNf5YiX6KGo6aG1PC90aXRsZT4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMC40NDUyNTc4NjclIiB5MT0iMC40NDUyNTc4NjclIiB4Mj0iMTAwJSIgeTI9IjEwMCUiIGlkPSJsaW5lYXJHcmFkaWVudC0xIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzJBODdGRiIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMzM2OUZGIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxyZWN0IGlkPSJwYXRoLTIiIHg9IjAiIHk9IjAiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgcng9IjYiPjwvcmVjdD4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9Ii03LjMwMTI4NDM3JSIgeTE9IjAuNzM5NzY4NjglIiB4Mj0iMTA4LjEwNzM4MSUiIHkyPSI5OS40MTM5NzQ3JSIgaWQ9ImxpbmVhckdyYWRpZW50LTQiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRkZGRkZGIiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGRkZGRkYiIHN0b3Atb3BhY2l0eT0iMC45NTkwNjUyNSIgb2Zmc2V0PSIzMy41MDM2NDE3JSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRkZGRkZGIiBzdG9wLW9wYWNpdHk9IjAuNyIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8cGF0aCBkPSJNMTUuMzExMTY3NywwLjE0NTk4NTQwMSBDMTYuNTQ3NDE2MiwtMC4wMDYyNzI4MTAyMiAxNy43ODM2NjQ3LC0wLjAzOTQzMDYwNDQgMTkuMDE5OTEzMiwwLjA0NjUxMjAxOSBDMTkuNjExNDI5MSwwLjA4NzUxNjY5MTkgMjAuMDgxNTkyOSwwLjU1OTM5MTEyMiAyMC4xMjAzMTgyLDEuMTUxMDYwNjggTDIxLjEzNTM4MjgsMTYuMTgwMTQzNyBDMjEuMTM5ODk1MiwxNi4yNDY3OTU2IDIxLjEzODY5NjYsMTYuMzEzNzA4NSAyMS4xMzE4NjY2LDE2LjM4MDE2MjkgQzIxLjA2NDk1MTUsMTcuMDMxMjM0OCAyMC40ODI5MDgsMTcuNTA0Nzg3NCAxOS44MzE4NDc2LDE3LjQzNzc2IEMxOC41MjE4MzUzLDE3LjMwMTkwMzkgMTcuMjExODIzLDE3LjM3NzM5NTEgMTUuOTAxODEwNywxNy42NjQyMzM2IEMxNC41MTAxOTM5LDE3Ljk2ODk0MDEgMTMuMTE4NTc3MSwxOC41MTIxNDQ5IDExLjcyNzQ1ODUsMTkuMjk0NzM2NCBDMTEuMDA3MzEzNywxOS42OTg1NjkyIDEwLjEyODkxMjksMTkuNjk4NTQzOCA5LjQwODc5MTQ4LDE5LjI5NDY2OTIgQzguMDE3ODgyNywxOC41MTIxNDQ5IDYuNjI2NTEzMzcsMTcuOTY4OTQwMSA1LjIzNTE0NDA0LDE3LjY2NDIzMzYgQzMuOTI1MzY0NjgsMTcuMzc3Mzk1MSAyLjYxNTU4NTMyLDE3LjMwMTkwMzkgMS4zMDU4MDU5NiwxNy40Mzc3NiBDMS4yMzk0OTY5MSwxNy40NDQ3MDkzIDEuMTcyNzE2OTEsMTcuNDQ1ODk0MSAxLjEwNjE5MjcsMTcuNDQxNDU3MiBDMC40NTMxNDIxMTksMTcuMzk3OTAwOCAtMC4wNDA5NTA1MzYxLDE2LjgzMzE4OTMgMC4wMDI2ODEwOTYwOSwxNi4xODAxNDM3IEwxLjAxOTM3MzA5LDEuMTUxMDYwNjggQzEuMDU4MDkyOTYsMC41NTkzNDYzMzIgMS41MjgzMjIxMSwwLjA4NzQ1MzE3MzcgMi4xMTk4ODY4OSwwLjA0NjUxMjAxOSBDMy4zNTYxMzUzOSwtMC4wMzk0MzA2MDQ0IDQuNTkyMzgzODksLTAuMDA2MjcyODEwMjIgNS44Mjg2MzIzOSwwLjE0NTk4NTQwMSBDNy4xNjQxOTYwNSwwLjMxMDQ3NTQxNyA4LjQ5OTc1OTcxLDAuNjEzOTcwNTkgOS44MzUzMjMzNywxLjA1NjQ3MDkyIEw5LjgzNTYxODI2LDE0LjgzMjExNjggQzkuODM1NjE4MjYsMTUuMjM3MTI1NiAxMC4xNjM5NDI4LDE1LjU2NTQ1MDEgMTAuNTY4OTUxNiwxNS41NjU0NTAxIEMxMC45NzM5NjA0LDE1LjU2NTQ1MDEgMTEuMzAyMjg0OSwxNS4yMzcxMjU2IDExLjMwMjI4NDksMTQuODMyMTE2OCBMMTEuMzAyNDc3OSwxLjA1NzEzMzI5IEMxMi42Mzg3MDc4LDAuNjE0MjczNDM5IDEzLjk3NDkzNzgsMC4zMTA1NTc0NzcgMTUuMzExMTY3NywwLjE0NTk4NTQwMSBaIiBpZD0icGF0aC01Ij48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItMjguNCUiIHk9Ii0yNS41JSIgd2lkdGg9IjE2Ni4yJSIgaGVpZ2h0PSIxNzEuNCUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci02Ij4KICAgICAgICAgICAgPGZlT2Zmc2V0IGR4PSIxIiBkeT0iMiIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMiIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgMCAwIDAgMC4xIDAiIHR5cGU9Im1hdHJpeCIgaW49InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVDb2xvck1hdHJpeD4KICAgICAgICA8L2ZpbHRlcj4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSLnn6Xor4blupMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSIxLjMt55+l6K+G5bqTLeacgOi/keS9v+eUqCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU2LjAwMDAwMCwgLTIzNi4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9IuW8ueeqlyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDQ0LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPGcgaWQ9Imxpc3Q2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgMTgwLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJpY29uX+efpeivhuW6k1/liJfooajpobUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2LjAwMDAwMCwgMTIuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPSJtYXNrLTMiIGZpbGw9IndoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMiI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBpZD0i55+p5b2iIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTEpIiB4bGluazpocmVmPSIjcGF0aC0yIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9Iue8lue7hC03IiBtYXNrPSJ1cmwoI21hc2stMykiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNS40MzEwNDgsIDYuNjY2NjY3KSIgaWQ9IuW9oueKtue7k+WQiCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTYpIiB4bGluazpocmVmPSIjcGF0aC01Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtNCkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgeGxpbms6aHJlZj0iI3BhdGgtNSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==", OI = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMzJweCIgaGVpZ2h0PSIzMnB4IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+aWNvbl/mlofku7blpLlAMXg8L3RpdGxlPgogICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSI1MCUiIHkxPSIxMi40NTIzNjM2JSIgeDI9IjUwJSIgeTI9IjMxLjIwMTE4NjUlIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM0MDdGRkYiIG9mZnNldD0iMCUiPjwvc3RvcD4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzAwNDBGRiIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjUwJSIgeTE9Ijc4Ljg2NzA2NTklIiB4Mj0iNTAlIiB5Mj0iMTAwJSIgaWQ9ImxpbmVhckdyYWRpZW50LTIiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjNjY5RUZGIiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM0OTgzRjUiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i55+l6K+G5bqTIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iMS4zLeefpeivhuW6ky3mnIDov5Hkvb/nlKgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01Ni4wMDAwMDAsIC0zNjUuMDAwMDAwKSI+CiAgICAgICAgICAgIDxnIGlkPSLlvLnnqpciIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLCA0NC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJsaXN0NCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDMwOS4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iaWNvbl/mlofku7blpLkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2LjAwMDAwMCwgMTIuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIHg9IjAiIHk9IjAiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD0i57yW57uELTE0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgMi42NjY2NjcpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLjc0ODE0ODE1LDAgTDEwLjA4Mzk1MDYsMCBDMTAuNDYyMTk3OCwtMS45OTg0MDE0NGUtMTUgMTAuODMwMjQxOCwwLjEyMjY4MTMxNyAxMS4xMzI4Mzk1LDAuMzQ5NjI5NjMgTDE0LjIyMjIyMjIsMi42NjY2NjY2NyBMMTQuMjIyMjIyMiwyLjY2NjY2NjY3IEwzMC4yNTE4NTE5LDIuNjY2NjY2NjcgQzMxLjIxNzMyNzQsMi42NjY2NjY2NyAzMiwzLjQ0OTMzOTI1IDMyLDQuNDE0ODE0ODEgTDMyLDI0LjkxODUxODUgQzMyLDI1Ljg4Mzk5NDEgMzEuMjE3MzI3NCwyNi42NjY2NjY3IDMwLjI1MTg1MTksMjYuNjY2NjY2NyBMMS43NDgxNDgxNSwyNi42NjY2NjY3IEMwLjc4MjY3MjU4NiwyNi42NjY2NjY3IDYuNjYxMzM4MTVlLTE2LDI1Ljg4Mzk5NDEgMCwyNC45MTg1MTg1IEwwLDEuNzQ4MTQ4MTUgQy0yLjIyMDQ0NjA1ZS0xNiwwLjc4MjY3MjU4NiAwLjc4MjY3MjU4Niw4Ljg4MTc4NDJlLTE2IDEuNzQ4MTQ4MTUsMCBaIiBpZD0i55+p5b2iIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTEpIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMS43NDgxNDgxNSw1LjMzMzMzMzMzIEwzMC4yNTE4NTE5LDUuMzMzMzMzMzMgQzMxLjIxNzMyNzQsNS4zMzMzMzMzMyAzMiw2LjExNjAwNTkyIDMyLDcuMDgxNDgxNDggTDMyLDI0LjkxODUxODUgQzMyLDI1Ljg4Mzk5NDEgMzEuMjE3MzI3NCwyNi42NjY2NjY3IDMwLjI1MTg1MTksMjYuNjY2NjY2NyBMMS43NDgxNDgxNSwyNi42NjY2NjY3IEMwLjc4MjY3MjU4NiwyNi42NjY2NjY3IDYuNjYxMzM4MTVlLTE2LDI1Ljg4Mzk5NDEgMCwyNC45MTg1MTg1IEwwLDcuMDgxNDgxNDggQy0yLjIyMDQ0NjA1ZS0xNiw2LjExNjAwNTkyIDAuNzgyNjcyNTg2LDUuMzMzMzMzMzMgMS43NDgxNDgxNSw1LjMzMzMzMzMzIFoiIGlkPSLnn6nlvaIiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMikiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+", YI = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMzNweCIgaGVpZ2h0PSIzM3B4IiB2aWV3Qm94PSIwIDAgMzMgMzMiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+V29yZCBpY29uPC90aXRsZT4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMjcuNDMyMjAwNCUiIHkxPSIxMy40NTAyNTUyJSIgeDI9IjEwNS4yMTAwMDglIiB5Mj0iMTAwJSIgaWQ9ImxpbmVhckdyYWRpZW50LTEiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjU5QUY4IiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMzMTdFRjgiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPHBhdGggZD0iTTMsMCBMMzAsMCBDMzEuNjU2ODU0MiwtMy4wNDM1OTE4OGUtMTYgMzMsMS4zNDMxNDU3NSAzMywzIEwzMywzMCBDMzMsMzEuNjU2ODU0MiAzMS42NTY4NTQyLDMzIDMwLDMzIEwzLDMzIEMxLjM0MzE0NTc1LDMzIDEuOTc5MjYyOTZlLTE1LDMxLjY1Njg1NDIgMCwzMCBMMCwzIEMtMi4wMjkwNjEyNWUtMTYsMS4zNDMxNDU3NSAxLjM0MzE0NTc1LDIuMDgwNzE2MDNlLTE1IDMsMCBaIiBpZD0icGF0aC0yIj48L3BhdGg+CiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtNCIgcG9pbnRzPSIyMi44NTUwMTA3IDI0IDE5LjQ4NzIwNjggMjQgMTYuODc1IDEzLjc4OTkxNiAxNi44MzE4MjMgMTMuNzg5OTE2IDE0LjI2Mjc5MzIgMjQgMTAuODMwMjIzOSAyNCA2Ljc1IDkgMTAuMTM5MzkyMyA5IDEyLjU3ODg5MTMgMTkuMjEwMDg0IDEyLjYyMjA2ODIgMTkuMjEwMDg0IDE1LjI5OTA0MDUgOSAxOC40NzI1NDggOSAyMS4xMDYzNDMzIDE5LjMzNjEzNDUgMjEuMTQ5NTIwMyAxOS4zMzYxMzQ1IDIzLjY3NTM3MzEgOSAyNyA5Ij48L3BvbHlnb24+CiAgICAgICAgPGZpbHRlciB4PSItMjcuMiUiIHk9Ii0yMy4zJSIgd2lkdGg9IjE1NC4zJSIgaGVpZ2h0PSIxNzMuMyUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci01Ij4KICAgICAgICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMiIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMS41IiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwLjEyNzM2Mzg2NyAgIDAgMCAwIDAgMC40Mjk0ODkzNTcgIDAgMCAwIDAuMTU5NDE4NzA2IDAiIHR5cGU9Im1hdHJpeCIgaW49InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVDb2xvck1hdHJpeD4KICAgICAgICA8L2ZpbHRlcj4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSLmlrnmoYjkuowiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSIxLjbliLbluqbkuK3lv4Por6bmg4XpobUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNDIuMDAwMDAwLCAtMTE0Mi4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9Iue8lue7hC0yNuWkh+S7vSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTMwLjAwMDAwMCwgMTA5MC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSLnvJbnu4QtMTUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLjAwMDAwMCwgNTEuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9IldvcmQtaWNvbiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDEuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPSJtYXNrLTMiIGZpbGw9IndoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMiI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBpZD0i6JKZ54mIIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTEpIiB4bGluazpocmVmPSIjcGF0aC0yIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlciIGZpbGw9IiNGRkZGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgb3BhY2l0eT0iMC4xMDAxODE4MTUiIG1hc2s9InVybCgjbWFzay0zKSIgcG9pbnRzPSItOSAwIC0xLjEzNDE0NjM0IDAgMS43MDEyMTk1MSAxNS4wODM5MDE4IDUuODM1MzY1ODUgMCAxMy42ODI5MjY4IDAgMTcuODM1MzY1OSAxNS4wODM5MDE4IDIwLjY3MDczMTcgMCAyOC41IDAgMjIuNTkxNDYzNCAyNyAxNC40Njk1MTIyIDI3IDkuNzY4MjkyNjggMTAuMDAwNjgyMSA1LjA4NTM2NTg1IDI3IC0zLjAzNjU4NTM3IDI3Ij48L3BvbHlnb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPSJXIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG1hc2s9InVybCgjbWFzay0zKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiIGZpbHRlcj0idXJsKCNmaWx0ZXItNSkiIHhsaW5rOmhyZWY9IiNwYXRoLTQiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSIjRkZGRkZGIiB4bGluazpocmVmPSIjcGF0aC00Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+", pI = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMzNweCIgaGVpZ2h0PSIzM3B4IiB2aWV3Qm94PSIwIDAgMzMgMzMiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+cHB0PC90aXRsZT4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMjcuNDMyMjAwNCUiIHkxPSIxMy40NTAyNTUyJSIgeDI9IjEwNS4yMTAwMDglIiB5Mj0iMTAwJSIgaWQ9ImxpbmVhckdyYWRpZW50LTEiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRkY1RjREIiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNFOTQxMkQiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPHBhdGggZD0iTTMsMCBMMzAsMCBDMzEuNjU2ODU0MiwtMy4wNDM1OTE4OGUtMTYgMzMsMS4zNDMxNDU3NSAzMywzIEwzMywzMCBDMzMsMzEuNjU2ODU0MiAzMS42NTY4NTQyLDMzIDMwLDMzIEwzLDMzIEMxLjM0MzE0NTc1LDMzIDEuOTc5MjYyOTZlLTE1LDMxLjY1Njg1NDIgMCwzMCBMMCwzIEMtMi4wMjkwNjEyNWUtMTYsMS4zNDMxNDU3NSAxLjM0MzE0NTc1LDIuMDgwNzE2MDNlLTE1IDMsMCBaIiBpZD0icGF0aC0yIj48L3BhdGg+CiAgICAgICAgPHBhdGggZD0iTTkuNzUsOC4yNSBMMTkuNTcxNDI4Niw4LjI1IEMyMy41LDguMjUgMjQuNzUsMTAuODM5Njk0NyAyNC43NSwxMy42MDQ5NjE4IEMyNC43NSwxNi4yMzg1NDk2IDIzLjE4NzUsMTguOTE2MDMwNSAxOS42MTYwNzE0LDE4LjkxNjAzMDUgTDEzLjA5ODIxNDMsMTguOTE2MDMwNSBMMTMuMDk4MjE0MywyNS41IEw5Ljc1LDI1LjUgTDkuNzUsOC4yNSBaIE0xMy41LDE2LjUgTDE4LjgzODIzNTMsMTYuNSBDMjAuNzM1Mjk0MSwxNi41IDIxLjc1LDE1LjkyNjQ3MDYgMjEuNzUsMTMuODk3MDU4OCBDMjEuNzUsMTEuNzc5NDExOCAyMC4zODIzNTI5LDExLjI1IDE5LjEwMjk0MTIsMTEuMjUgTDEzLjUsMTEuMjUgTDEzLjUsMTYuNSBaIiBpZD0icGF0aC00Ij48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItMzYuNyUiIHk9Ii0yMC4zJSIgd2lkdGg9IjE3My4zJSIgaGVpZ2h0PSIxNjMuOCUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci01Ij4KICAgICAgICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMiIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMS41IiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwLjUxMTEyNDMyMSAgIDAgMCAwIDAgMC4xMDU3MjA5NzIgICAwIDAgMCAwIDAgIDAgMCAwIDAuMTYzMTYxMDU4IDAiIHR5cGU9Im1hdHJpeCIgaW49InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVDb2xvck1hdHJpeD4KICAgICAgICA8L2ZpbHRlcj4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSLmlrnmoYjkuowiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSIxLjbliLbluqbkuK3lv4Por6bmg4XpobUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNDIuMDAwMDAwLCAtMTIwNC4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9Iue8lue7hC0yNuWkh+S7vSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTMwLjAwMDAwMCwgMTA5MC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSLnvJbnu4QtMTUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLjAwMDAwMCwgNTEuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9InBwdCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDYzLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgICAgICA8bWFzayBpZD0ibWFzay0zIiBmaWxsPSJ3aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTIiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaWQ9IuiSmeeJiCIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0xKSIgeGxpbms6aHJlZj0iI3BhdGgtMiI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0tMi4yNSwtMyBMMTYuMzYzMTQzMSwtMyBDMjAuNDE3MDIxOSwtMyAyMy40NTMyNjU2LC0yLjAyMjM0OTQ4IDI1LjQ3MTk2NTQsLTAuMDY3MDE5MDk5NiBDMjcuNDkwNjY1MiwxLjg4ODMxMTI4IDI4LjUsNC42NzA4NTUwOCAyOC41LDguMjgwNjk1NzcgQzI4LjUsMTEuOTkwODA5OCAyNy40MDAwMzExLDE0Ljg5MDMzNzQgMjUuMjAwMDYwMywxNi45NzkzNjU2IEMyMy4wMDAwODk1LDE5LjA2ODM5MzggMTkuNjQyNTA2NSwyMC4xMTI4OTIyIDE1LjEyNzIxMDYsMjAuMTEyODkyMiBMOC45OTY5ODU1MywyMC4xMTI4OTIyIEw4Ljk5Njk4NTUzLDMzLjc1IEwtMi4yNSwzMy43NSBMLTIuMjUsLTMgWiBNOSwxMiBMMTEuODcwNjg5NywxMiBDMTQuMTI5MzIxNiwxMiAxNS43MTU1MTI3LDExLjYxNzM1ODYgMTYuNjI5MzEwMywxMC44NTIwNjQyIEMxNy41NDMxMDgsMTAuMDg2NzY5OSAxOCw5LjEwNzAzOTYxIDE4LDcuOTEyODQ0MDQgQzE4LDYuNzUyMjg3NzggMTcuNjAzNDUyMiw1Ljc2ODM1MjY2IDE2LjgxMDM0NDgsNC45NjEwMDkxNyBDMTYuMDE3MjM3NCw0LjE1MzY2NTY5IDE0LjUyNTg3MywzLjc1IDEyLjMzNjIwNjksMy43NSBMOSwzLjc1IEw5LDEyIFoiIGlkPSJQIiBmaWxsPSIjRkZGRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG9wYWNpdHk9IjAuMjc2Nzg1NzE0IiBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6IG92ZXJsYXk7IiBtYXNrPSJ1cmwoI21hc2stMykiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9IlNoYXBl5aSH5Lu9IiBmaWxsLXJ1bGU9Im5vbnplcm8iIG1hc2s9InVybCgjbWFzay0zKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiIGZpbHRlcj0idXJsKCNmaWx0ZXItNSkiIHhsaW5rOmhyZWY9IiNwYXRoLTQiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSIjRkZGRkZGIiB4bGluazpocmVmPSIjcGF0aC00Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+", WI = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+UERGIGljb248L3RpdGxlPgogICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSIyNy40MzIyMDA0JSIgeTE9IjEzLjQ1MDI1NTIlIiB4Mj0iMTAwJSIgeTI9IjEwMCUiIGlkPSJsaW5lYXJHcmFkaWVudC0xIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iI0ZGNUE1NSIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRDkzNzM4IiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxwYXRoIGQ9Ik02LDAgTDM0LDAgQzM3LjMxMzcwODUsLTYuMDg3MTgzNzZlLTE2IDQwLDIuNjg2MjkxNSA0MCw2IEw0MCwzNCBDNDAsMzcuMzEzNzA4NSAzNy4zMTM3MDg1LDQwIDM0LDQwIEw2LDQwIEMyLjY4NjI5MTUsNDAgNC4wNTgxMjI1MWUtMTYsMzcuMzEzNzA4NSAwLDM0IEwwLDYgQy00LjA1ODEyMjUxZS0xNiwyLjY4NjI5MTUgMi42ODYyOTE1LDYuMDg3MTgzNzZlLTE2IDYsMCBaIiBpZD0icGF0aC0yIj48L3BhdGg+CiAgICAgICAgPHBhdGggZD0iTTE4Ljc4OTQ5NzEsMTYuMjg4NTQ4MSBDMTcuMTM3MTA0LDE2LjE4MDYxMjMgMTUuNTYzNDA0NCwxNS41NDEzMDAyIDE0LjMwNDQzMDIsMTQuNDY2MDkyOSBDMTEuODE5NjI4NiwxNS4wMTQwNzQ2IDkuNDU0OTE3NzIsMTUuODAyODM3IDcuMDk0MzU2MjIsMTYuNzc0MjU5MSBDNS4yMTQxODg4OCwyMC4xMTYxMjU1IDMuNDU0MTIxOSwyMS44MTgxODE4IDEuOTM4MzkyOTQsMjEuODE4MTgxOCBDMS42MzYwNzQ2LDIxLjgxODE4MTggMS4yNzE2Mzg2NSwyMS43NTU5MTEyIDEuMDI3Mjk4MjEsMjEuNTczMjUxNCBDMC4zOTM2NzM4MTEsMjEuMjc4NTA0NSAtMC4wMDgwMzY1ODcxNSwyMC42MzUwMzk1IDAuMDAwMTIxOTc0OTQyLDE5LjkzMzQ1ODQgQzAuMDAwMTIxOTc0OTQyLDE5LjM4NTQ3NjcgMC4xMjAzNDYzNjUsMTcuODcwMjI1IDUuODc2ODAzNDQsMTUuMzc5NDA2MyBDNy4xODEzMjQyNywxMi45NzU3NTkyIDguMjU4MDcwODEsMTAuNDUxNzMwMyA5LjA4NjM0NjkxLDcuODQ0NjU3NTggQzguMzYxNjEyMyw2LjM4NzUyNDM1IDYuNzgzNzYzMywyLjgwMDczNDg4IDcuODcyOTM2MjgsMC45NzgyNzI0MDUgQzguMjM3Mzc0NjUsMC4zMDk5MDE1NjcgOC45NjYyNDg5NywtMC4wNTU0MjAzOTI5IDkuNzUzMTAzNjEsMC4wMDY4NTAyNTc1NyBDMTAuMzcwMTYxOSwwLjAxNTE1MzAwMjkgMTAuOTU0MDkwMiwwLjMwNTc0OTM4IDExLjMyNjgxMDUsMC43OTU2MTI2NDEgQzEyLjExMzY2NTEsMS44OTE1NzYwOSAxMi4wNTE1NDUxLDQuMTk5NzQ5NjQgMTEuMDI0NDkyMSw3LjU5OTcyNzE2IEMxMS45OTM1NjQ4LDkuNDIyMTgyMzQgMTMuMjY0OTU1NywxMS4wNjYxMzQ4IDE0Ljc4MDY5MiwxMi40NjA5OTc0IEMxNi4wNTIwODI5LDEyLjIyMDIxNzUgMTcuMzI3NjEzNiwxMi4wMzc1NTcgMTguNTk5MDExOCwxMi4wMzc1NTcgQzIxLjQ0ODI1OSwxMi4wOTk4Mjc2IDIxLjg3NDgwMDUsMTMuNDM2NTcxNyAyMS44MTI2ODA0LDE0LjIyNTMzMTcgQzIxLjgyMDk2MzEsMTYuMjg4NTY1MSAxOS44MTY1NTczLDE2LjI4ODU2NTEgMTguNzg5NDk3MSwxNi4yODg1NjUxIEwxOC43ODk0OTcxLDE2LjI4ODU0ODEgWiBNMS44MTgzMDIyOCwyMC4wNTM4NTQ4IEwyLjAwMDUyMDk4LDE5Ljk5MTU4NDIgQzIuODQ5NDk1NjcsMTkuNjg4NTMyOSAzLjUxNjI0OTk1LDE5LjA4MjQzMjcgNC4wMDA3ODYyNiwxOC4yODk1MjA1IEMzLjA4OTY5MTUzLDE4LjY1ODk5MjMgMi4zNjA4MTcyMSwxOS4yNjUwOTQ5IDEuODE4MzAyMjgsMjAuMDUzODU0OCBMMS44MTgzMDIyOCwyMC4wNTM4NTQ4IFogTTkuODc3MzMzOTksMS44MjkzMDMwMSBMOS42OTUxMTUyOSwxLjgyOTMwMzAxIEM5LjYzMjk5NTI1LDEuODI5MzAzMDEgOS41MTI4OTY1OCwxLjgyOTMwMzAxIDkuNDUwNzc3MjcsMS44OTE1NzM2NiBDOS4yMTA1Nzk3MSwyLjkyNTI2NjQ2IDkuMzg4NjU3MjMsNC4wMTcwNzc3MiA5LjgxNTIxNTY1LDQuOTkyNjUyMDUgQzEwLjE3MTM2OTcsMy45NjcyNjEyIDEwLjE5MjA3OCwyLjg2Mjk5NTgxIDkuODc3MzM1NjksMS44MjkzMDMwMSBMOS44NzczMzM5OSwxLjgyOTMwMzAxIFogTTEwLjMwMzg5MjQsMTAuNjM4NTMyNSBMMTAuMjQxNzcyNCwxMC43NjMwNzM4IEwxMC4xNzk2NTIzLDEwLjcwMDgwMzEgQzkuNjMyOTk1OTcsMTIuMDk5ODE3OSA5LjAyODM2MTczLDEzLjQ5NDY4NzggOC4zNjE2MDUwMiwxNC44MzE0MTQ4IEw4LjQ4MTcwMzY4LDE0Ljc2OTE0NDIgTDguNDgxNzAzNjgsMTQuODg5NTM0IEM5LjgzMTc3ODQsMTQuNDAzODIzIDExLjIwNjcxMDgsMTMuOTk2OTg4OCAxMi42MDIzMjQ5LDEzLjY3MzE4MTUgTDEyLjU0NDM0NjMsMTMuNjEwOTEwOCBMMTIuNzI2NTY1LDEzLjYxMDkxMDggQzExLjgxOTYxMjQsMTIuNzEwMDYxMyAxMS4wMDM3NywxMS43MTM3MzA4IDEwLjMwMzg4MzQsMTAuNjM4NTMyNSBMMTAuMzAzODkyNCwxMC42Mzg1MzI1IFogTTE4LjU0NTE1OTEsMTMuODU5OTkyNyBDMTcuOTk4NTAyNywxMy44NTk5OTI3IDE3LjUxMzk2NjQsMTMuODU5OTkyNyAxNi45NzE0NTIyLDEzLjk4MDM4MjUgQzE3LjU3NjA4NjQsMTQuMjgzNDMzOCAxOC4xODQ4NjI4LDE0LjQwMzgyMyAxOC43ODk0OTk1LDE0LjQ2NjA5MzYgQzE5LjIxMTkxNTgsMTQuNTI4MzY0MyAxOS42Mzg0NzQyLDE0LjQ2NjA5MzYgMjAuMDAyOTEwMSwxNC4zNDU3MDM4IEMxOS45OTg3Njg4LDE0LjE2MzA0MzMgMTkuNzU4NTcyMSwxMy44NTk5OTI3IDE4LjU0NTE1OTEsMTMuODU5OTkyNyBaIiBpZD0icGF0aC00Ij48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItMzIuMSUiIHk9Ii0yMi45JSIgd2lkdGg9IjE2NC4yJSIgaGVpZ2h0PSIxNjQuMiUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci01Ij4KICAgICAgICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMiIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMiIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMC40NTk0MzcyNzQgICAwIDAgMCAwIDAgICAwIDAgMCAwIDAgIDAgMCAwIDAuMTYgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPGcgaWQ9IuaWueahiOS6jCIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IjEuMi3nn6Xor4bkuK3lv4MiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zODAuMDAwMDAwLCAtODYwLjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0i57yW57uELTEwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNjYuMDAwMDAwLCAyNzYuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0i6KGo5qC8IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNC4wMDAwMDAsIDY4LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJsaXN0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNC4wMDAwMDAsIDUxNi4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9IlBERi1pY29uIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2Ni4wMDAwMDAsIDAuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWFzayBpZD0ibWFzay0zIiBmaWxsPSJ3aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0yIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaWQ9IuiSmeeJiCIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0xKSIgeGxpbms6aHJlZj0iI3BhdGgtMiI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzIuNjgwNjc4NSwzMC4yNzMwODIgQzI4LjY4NzM5NTMsMzAuMDEyMjM3NCAyNC44ODQyODgsMjguNDY3MjMzMiAyMS44NDE3NjcsMjUuODY4ODE1MyBDMTUuODM2ODI5OCwyNy4xOTMxMDQ1IDEwLjEyMjExMTgsMjkuMDk5MjgwMyA0LjQxNzQyMTQ2LDMxLjQ0Njg4MzggQy0wLjEyNjMxNjI3MiwzOS41MjMwNjA4IC00LjM3OTgxMTQ3LDQzLjYzNjM2MzYgLTguMDQyODIzMTMsNDMuNjM2MzYzNiBDLTguNzczNDI1NzcsNDMuNjM2MzYzNiAtOS42NTQxNDU5OCw0My40ODU4NzYyIC0xMC4yNDQ2MzU0LDQzLjA0NDQ0ODUgQy0xMS43NzU4OTQ0LDQyLjMzMjE0MzQgLTEyLjc0NjY5NDUsNDAuNzc3MTAyOSAtMTIuNzI2OTc4LDM5LjA4MTYxNTQgQy0xMi43MjY5NzgsMzcuNzU3MzI2MyAtMTIuNDM2NDM1NywzNC4wOTU0NjggMS40NzUwMDIyNiwyOC4wNzU5ODk0IEM0LjYyNzU5NDI2LDIyLjI2NzE3NTYgNy4yMjk3MzE3NCwxNi4xNjc0MzkgOS4yMzEzOTg5Niw5Ljg2NzAxMzM4IEM3LjQ3OTk1Nyw2LjM0NTYwODEgMy42NjY4MjE5MSwtMi4zMjI0NjY0NSA2LjI5ODk4OTk0LC02LjcyNjc1MDc4IEM3LjE3OTcxNjAxLC04LjM0MTk4MDMgOC45NDExNjIyOSwtOS4yMjQ4NDE3MSAxMC44NDI3Mjc3LC05LjA3NDM1NDMgQzEyLjMzMzk1MTgsLTkuMDU0Mjg5MzMgMTMuNzQ1MTEyLC04LjM1MjAxNDc2IDE0LjY0NTg1MjYsLTcuMTY4MTc4NTQgQzE2LjU0NzQxOCwtNC41MTk2MDAyMSAxNi4zOTcyOTQ1LDEuMDU4NDg1ODggMTMuOTE1MjQ5OSw5LjI3NTA5ODIxIEMxNi4yNTcxNzU0LDEzLjY3OTM2NDkgMTkuMzI5NzAzNiwxNy42NTIyNSAyMi45OTI3MzI4LDIxLjAyMzE2NzkgQzI2LjA2NTI2MSwyMC40NDEyODMxIDI5LjE0Nzc5MzQsMTkuOTk5ODUzNiAzMi4yMjAzMzkxLDE5Ljk5OTg1MzYgQzM5LjEwNjAxOTksMjAuMTUwMzQxIDQwLjEzNjgyODQsMjMuMzgwODA1OSAzOS45ODY3MDUsMjUuMjg2OTc1OCBDNDAuMDA2NzIxNCwzMC4yNzMxMjMyIDM1LjE2Mjc0MDcsMzAuMjczMTIzMiAzMi42ODA2Nzg1LDMwLjI3MzEyMzIgTDMyLjY4MDY3ODUsMzAuMjczMDgyIFogTS03Ljk4NzQ3NDMyLDM4Ljk0OTQ5NDkgTC03LjU5MTc2NjQsMzguODA0NzUzNCBDLTUuNzQ4MTI0NjQsMzguMTAwMzQyMyAtNC4zMDAxOTQ0OSwzNi42OTE1MjYgLTMuMjQ3OTcwNjgsMzQuODQ4NDg0OCBDLTUuMjI2NTEyOTMsMzUuNzA3MjgzMSAtNi44MDkzNDM1NywzNy4xMTYxMDUxIC03Ljk4NzQ3NDMyLDM4Ljk0OTQ5NDkgTC03Ljk4NzQ3NDMyLDM4Ljk0OTQ5NDkgWiBNMTAuODY4NjI4MiwtNC40MDQwNDA0IEwxMC4yOTczODEsLTQuNDA0MDQwNCBDMTAuMTAyNjM3NSwtNC40MDQwNDA0IDkuNzI2MTMzOCwtNC40MDQwNDA0IDkuNTMxMzkyNjMsLTQuMjU0MTE1OTYgQzguNzc4Mzg0MzcsLTEuNzY1MzcwMjQgOS4zMzY2NDkxOCwwLjg2MzMwMzAxNCAxMC42NzM4OTAxLDMuMjEyMTIxMjEgQzExLjc5MDQxNjYsMC43NDMzNjM0NjEgMTEuODU1MzM2MiwtMS45MTUyOTQ2OCAxMC44Njg2MzM1LC00LjQwNDA0MDQgTDEwLjg2ODYyODIsLTQuNDA0MDQwNCBaIE0xMi43NTM0ODU4LDE2LjEwMTAxMDEgTDEyLjYwMTcyMjUsMTYuNDI3MTIzNCBMMTIuNDQ5OTU5MSwxNi4yNjQwNjY4IEMxMS4xMTQ0NDE5LDE5LjkyNzQwODUgOS42MzcyODA3OSwyMy41Nzk4OTY3IDguMDA4MzUwNDUsMjcuMDgwMTM3MiBMOC4zMDE3NTkzNiwyNi45MTcwODA2IEw4LjMwMTc1OTM2LDI3LjIzMjMyMzIgQzExLjYwMDA4MDQsMjUuOTYwNDgxMyAxNC45NTkxMzA0LDI0Ljg5NTE3OTkgMTguMzY4NzA3LDI0LjA0NzI4NTMgTDE4LjIyNzA2MTQsMjMuODg0MjI4NiBMMTguNjcyMjMzNiwyMy44ODQyMjg2IEMxNi40NTY0ODkxLDIxLjUyNTM0MDIgMTQuNDYzMzMyNywxOC45MTY0MzM2IDEyLjc1MzQ2MzksMTYuMTAxMDEwMSBMMTIuNzUzNDg1OCwxNi4xMDEwMTAxIFogTTMxLjg0MTgzNjEsMjMuNzE3MTcxNyBDMzAuNTU5ODM5MiwyMy43MTcxNzE3IDI5LjQyMzUyMzgsMjMuNzE3MTcxNyAyOC4xNTEyNDA5LDI0LjA1MjcxMDUgQzI5LjU2OTIwNTMsMjQuODk3MzQ1NCAzMC45OTY4ODM2LDI1LjIzMjg4MjIgMzIuNDE0ODUzNywyNS40MDY0MzY4IEMzMy40MDU0ODc2LDI1LjU3OTk5MTUgMzQuNDA1ODM1NiwyNS40MDY0MzY4IDM1LjI2MDQ5NjQsMjUuMDcwODk4IEMzNS4yNTA3ODQyLDI0LjU2MTgwNDYgMzQuNjg3NDg0NSwyMy43MTcxNzE3IDMxLjg0MTgzNjEsMjMuNzE3MTcxNyBaIiBpZD0i5b2i54q2IiBmaWxsPSIjRkZGRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG9wYWNpdHk9IjAuMTI1MTg2MDEyIiBtYXNrPSJ1cmwoI21hc2stMykiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPSJQREZfIiBtYXNrPSJ1cmwoI21hc2stMykiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS4wOTA5MDksIDkuMDkwOTA5KSIgaWQ9IuW9oueKtiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMSIgZmlsdGVyPSJ1cmwoI2ZpbHRlci01KSIgeGxpbms6aHJlZj0iI3BhdGgtNCI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgZmlsbD0iI0ZGRkZGRiIgeGxpbms6aHJlZj0iI3BhdGgtNCI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=", UI = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+RXhjZWwgaWNvbjwvdGl0bGU+CiAgICA8ZGVmcz4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjI3Ljg1NTQ4NyUiIHkxPSIxMy45NTUwOTgyJSIgeDI9IjEwMCUiIHkyPSIxMDAlIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM2NUMzNjAiIG9mZnNldD0iMCUiPjwvc3RvcD4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzM3ODIwMyIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8cGF0aCBkPSJNNiwwIEwzNCwwIEMzNy4zMTM3MDg1LC02LjA4NzE4Mzc2ZS0xNiA0MCwyLjY4NjI5MTUgNDAsNiBMNDAsMzQgQzQwLDM3LjMxMzcwODUgMzcuMzEzNzA4NSw0MCAzNCw0MCBMNiw0MCBDMi42ODYyOTE1LDQwIDQuMDU4MTIyNTFlLTE2LDM3LjMxMzcwODUgMCwzNCBMMCw2IEMtNC4wNTgxMjI1MWUtMTYsMi42ODYyOTE1IDIuNjg2MjkxNSw2LjA4NzE4Mzc2ZS0xNiA2LDAgWiIgaWQ9InBhdGgtMiI+PC9wYXRoPgogICAgICAgIDxwb2x5Z29uIGlkPSJwYXRoLTQiIHBvaW50cz0iMTYuNjEyNDkzNyAyMC40MzQzMjM5IDEwLjU2ODgxNjcgMTEuODE4MTgxOCAxNi4zMjgwODUzIDExLjgxODE4MTggMTkuNTYzMjMwMSAxNi41NjU4NTE5IDIyLjc2MjgyMzggMTEuODE4MTgxOCAyOC4zNDQzMzcyIDExLjgxODE4MTggMjIuMzAwNjYwMiAyMC4zMjg4MjAxIDI5LjA5MDkwOTEgMzAgMjMuMzMxNjQwNCAzMCAxOS40OTIxMjggMjQuMjY3NjI3OSAxNS42NTI2MTU1IDMwIDEwIDMwIj48L3BvbHlnb24+CiAgICAgICAgPGZpbHRlciB4PSItMzYuNyUiIHk9Ii0yNy41JSIgd2lkdGg9IjE3My4zJSIgaGVpZ2h0PSIxNzcuMCUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci01Ij4KICAgICAgICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMiIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMiIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAgIDAgMCAwIDAgMC4zNzQ4ODY3NzUgICAwIDAgMCAwIDAuMDIzMDYxNzYzICAwIDAgMCAwLjE1OTQxODcwNiAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i5pa55qGI5LqMIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iMS4yLeefpeivhuS4reW/gyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTM4MC4wMDAwMDAsIC05OTAuMDAwMDAwKSI+CiAgICAgICAgICAgIDxnIGlkPSLnvJbnu4QtMTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI2Ni4wMDAwMDAsIDI3Ni4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSLooajmoLwiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0LjAwMDAwMCwgNjguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9Imxpc3QiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0LjAwMDAwMCwgNjQ2LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iRXhjZWwtaWNvbiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjYuMDAwMDAwLCAwLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hc2sgaWQ9Im1hc2stMyIgZmlsbD0id2hpdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMiI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGlkPSLokpnniYgiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiIHhsaW5rOmhyZWY9IiNwYXRoLTIiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IngiIGZpbGw9IiNGRkZGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgb3BhY2l0eT0iMC4wODU0OTU3MjE3IiBtYXNrPSJ1cmwoI21hc2stMykiIHBvaW50cz0iNC4zNDczODQ0NiAxNC45ODY4MTIgLTEyLjkyMDI2NDEgLTEwIDMuNTM0Nzg5MjMgLTEwIDEyLjc3ODA1OTkgMy43NjgyNDMzNiAyMS45MTk3NTYyIC0xMCAzNy44NjY5Mzc1IC0xMCAyMC41OTkyODkgMTQuNjgwODUxMSA0MCA0Mi43MjcyNzI3IDIzLjU0NDk0NjcgNDIuNzI3MjcyNyAxMi41NzQ5MTExIDI2LjEwMzM5MzcgMS42MDQ4NzU1NyA0Mi43MjcyNzI3IC0xNC41NDU0NTQ1IDQyLjcyNzI3MjciPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPSJ4IiBmaWxsLXJ1bGU9Im5vbnplcm8iIG1hc2s9InVybCgjbWFzay0zKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTUpIiB4bGluazpocmVmPSIjcGF0aC00Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9IiNGRkZGRkYiIHhsaW5rOmhyZWY9IiNwYXRoLTQiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=", vI = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMzRweCIgaGVpZ2h0PSIzNHB4IiB2aWV3Qm94PSIwIDAgMzQgMzQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+6YCa55So5Zu+5qCHPC90aXRsZT4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0wLjkwNjUyOTMxNCwwIEwxOS45NDM2NDQ5LDAgQzIwLjQ0NDMwNzIsLTIuMDI5OTI0NzhlLTE2IDIwLjg1MDE3NDIsMC40MDU4NjY5OTggMjAuODUwMTc0MiwwLjkwNjUyOTMxNCBMMjAuODUwMTc0Miw1Ljg5MjQ0MDU0IEwyMC44NTAxNzQyLDUuODkyNDQwNTQgTDAsNS44OTI0NDA1NCBMMCwwLjkwNjUyOTMxNCBDNC45NzA4ODUyM2UtMTcsMC40MDU4NjY5OTggMC40MDU4NjY5OTgsLTIuNDEwOTY3MzJlLTE2IDAuOTA2NTI5MzE0LDAgWiIgaWQ9InBhdGgtMSI+PC9wYXRoPgogICAgICAgIDxmaWx0ZXIgeD0iLTEyLjAlIiB5PSItNDIuNCUiIHdpZHRoPSIxMjQuMCUiIGhlaWdodD0iMTg0LjklIiBmaWx0ZXJVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJmaWx0ZXItMiI+CiAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEuNSIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd0JsdXJJbm5lcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjIiIGluPSJzaGFkb3dCbHVySW5uZXIxIiByZXN1bHQ9InNoYWRvd09mZnNldElubmVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlQ29tcG9zaXRlIGluPSJzaGFkb3dPZmZzZXRJbm5lcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJhcml0aG1ldGljIiBrMj0iLTEiIGszPSIxIiByZXN1bHQ9InNoYWRvd0lubmVySW5uZXIxIj48L2ZlQ29tcG9zaXRlPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMSAgIDAgMCAwIDAgMSAgIDAgMCAwIDAgMSAgMCAwIDAgMC44MjcwMzIzNDMgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93SW5uZXJJbm5lcjEiPjwvZmVDb2xvck1hdHJpeD4KICAgICAgICA8L2ZpbHRlcj4KICAgICAgICA8cmVjdCBpZD0icGF0aC0zIiB4PSIwIiB5PSI1Ljg5MjQ0MDU0IiB3aWR0aD0iMjAuODUwMTc0MiIgaGVpZ2h0PSI1Ljg5MjQ0MDU0Ij48L3JlY3Q+CiAgICAgICAgPGZpbHRlciB4PSItNy4yJSIgeT0iLTI1LjUlIiB3aWR0aD0iMTE0LjQlIiBoZWlnaHQ9IjE1MC45JSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iZmlsdGVyLTQiPgogICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIiBpbj0iU291cmNlQWxwaGEiIHJlc3VsdD0ic2hhZG93Qmx1cklubmVyMSI+PC9mZUdhdXNzaWFuQmx1cj4KICAgICAgICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMSIgaW49InNoYWRvd0JsdXJJbm5lcjEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0SW5uZXIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW49InNoYWRvd09mZnNldElubmVyMSIgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9ImFyaXRobWV0aWMiIGsyPSItMSIgazM9IjEiIHJlc3VsdD0ic2hhZG93SW5uZXJJbm5lcjEiPjwvZmVDb21wb3NpdGU+CiAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwLjkzOTg4NjEyMSAgIDAgMCAwIDAgMC41MzM4OTE2MTUgICAwIDAgMCAwIDAgIDAgMCAwIDEgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93SW5uZXJJbm5lcjEiPjwvZmVDb2xvck1hdHJpeD4KICAgICAgICA8L2ZpbHRlcj4KICAgICAgICA8cmVjdCBpZD0icGF0aC01IiB4PSIwIiB5PSIxMS43ODQ4ODExIiB3aWR0aD0iMjAuODUwMTc0MiIgaGVpZ2h0PSI2LjM0NTcwNTIiPjwvcmVjdD4KICAgICAgICA8ZmlsdGVyIHg9Ii03LjIlIiB5PSItMjMuNiUiIHdpZHRoPSIxMTQuNCUiIGhlaWdodD0iMTQ3LjMlIiBmaWx0ZXJVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJmaWx0ZXItNiI+CiAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dCbHVySW5uZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIxIiBpbj0ic2hhZG93Qmx1cklubmVyMSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRJbm5lcjEiPjwvZmVPZmZzZXQ+CiAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbj0ic2hhZG93T2Zmc2V0SW5uZXIxIiBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIgcmVzdWx0PSJzaGFkb3dJbm5lcklubmVyMSI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAuODg5ODg1NTAyICAgMCAwIDAgMCAwLjMwMDc5MDMxOCAgIDAgMCAwIDAgMCAgMCAwIDAgMC41IDAiIHR5cGU9Im1hdHJpeCIgaW49InNoYWRvd0lubmVySW5uZXIxIj48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgPC9maWx0ZXI+CiAgICAgICAgPHBhdGggZD0iTTAsMTguMTMwNTg2MyBMMjAuODUwMTc0MiwxOC4xMzA1ODYzIEwyMC44NTAxNzQyLDIzLjU2OTc2MjIgQzIwLjg1MDE3NDIsMjQuMDcwNDI0NSAyMC40NDQzMDcyLDI0LjQ3NjI5MTUgMTkuOTQzNjQ0OSwyNC40NzYyOTE1IEwwLjkwNjUyOTMxNCwyNC40NzYyOTE1IEMwLjQwNTg2Njk5OCwyNC40NzYyOTE1IDkuNTAwODAxMjRlLTE2LDI0LjA3MDQyNDUgMCwyMy41Njk3NjIyIEwwLDE4LjEzMDU4NjMgTDAsMTguMTMwNTg2MyBaIiBpZD0icGF0aC03Ij48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItOS42JSIgeT0iLTMxLjUlIiB3aWR0aD0iMTE5LjIlIiBoZWlnaHQ9IjE2My4wJSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iZmlsdGVyLTgiPgogICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxLjUiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dCbHVySW5uZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSItMSIgaW49InNoYWRvd0JsdXJJbm5lcjEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0SW5uZXIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW49InNoYWRvd09mZnNldElubmVyMSIgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9ImFyaXRobWV0aWMiIGsyPSItMSIgazM9IjEiIHJlc3VsdD0ic2hhZG93SW5uZXJJbm5lcjEiPjwvZmVDb21wb3NpdGU+CiAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAxICAgMCAwIDAgMCAxICAgMCAwIDAgMCAxICAwIDAgMCAwLjU2MTY4MDUwNyAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dJbm5lcklubmVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMTAwJSIgeTE9IjQyLjc5ODU3ODUlIiB4Mj0iMy4yNjEyODAxM2UtMTQlIiB5Mj0iMzguMzkwOTAwNyUiIGlkPSJsaW5lYXJHcmFkaWVudC05Ij4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iI0Y1REVDMyIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRjdERkNFIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iOTIuMzM5MTE2MyUiIHkxPSI0Mi43OTg1Nzg1JSIgeDI9IjMuMjYxMjgwMTNlLTE0JSIgeTI9IjQyLjc5ODU3ODUlIiBpZD0ibGluZWFyR3JhZGllbnQtMTAiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRkY4MDAwIiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGRkIyMzAiIHN0b3Atb3BhY2l0eT0iMC43NTUwNTM1NCIgb2Zmc2V0PSIzMi4wMDA0MTIlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGRkY2RDYiIHN0b3Atb3BhY2l0eT0iMC4wMzYzODU0ODk1IiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iLTExLjc1NDE0NjclIiB5MT0iNTAlIiB4Mj0iMTA4LjYyNjU2JSIgeTI9IjU3LjEzNTQ2MzQlIiBpZD0ibGluZWFyR3JhZGllbnQtMTEiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRkZGRkZGIiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGRkI0MDAiIHN0b3Atb3BhY2l0eT0iMC41MzY1NDkzODgiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtMTIiIHBvaW50cz0iNi4xNzM0NDQyN2UtMTUgNi45MDMyNjQxMyAxLjM2MDM3NzggNi40NDAyMDQyNiAxLjM2MDM3NzggMi4zNTk2MjYxOSA0LjM3ODYzODk1IDEuNTg2NTQ2NTYgNC4zNzg2Mzg5NSA3LjUwMjMxODkxIDIuOTU0MTU4NjZlLTE1IDYuOTAzMjY0MTMgNC4zNzg2Mzg5NSA4Ljg2OTU2NTIyIDYuNjUyMTczOTEgOC4wMTMxNjI2NiA2LjY1MjE3MzkxIDAuNzcyMjM2NTQ3IDQuMzc4NjM4OTUgMS4yMDU3NzkwNGUtMTYgNC45NDM4NzYzMWUtMTUgMS42OTU5NTgyNSI+PC9wb2x5Z29uPgogICAgICAgIDxmaWx0ZXIgeD0iLTMwLjElIiB5PSItMTEuMyUiIHdpZHRoPSIxNjAuMSUiIGhlaWdodD0iMTQ1LjElIiBmaWx0ZXJVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJmaWx0ZXItMTMiPgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIxIiBpbj0iU291cmNlQWxwaGEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIwLjUiIGluPSJzaGFkb3dPZmZzZXRPdXRlcjEiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUdhdXNzaWFuQmx1cj4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAuOTMxNjY1MzkzICAgMCAwIDAgMCAwLjQ2MDU0NTU2NSAgIDAgMCAwIDAgMC4xMDEyMDE4ODcgIDAgMCAwIDAuNjg3MjU0MTUyIDAiIHR5cGU9Im1hdHJpeCIgaW49InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVDb2xvck1hdHJpeD4KICAgICAgICA8L2ZpbHRlcj4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSLmlrnmoYjkuIAiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSIxLjEt55+l6K+G6Zeo5oi36aaW6aG1IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTkwLjAwMDAwMCwgLTY0Ny4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9IumAmuefpeWFrOWRiiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTcyLjAwMDAwMCwgNDU3LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPGcgaWQ9InciIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4LjAwMDAwMCwgMTkwLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxnIGlkPSLnvJbnu4QtODEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkuOTIyODkwLCA0LjQzNDc4MykiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD0i55+p5b2iIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgZmlsbD0iI0ZGQ0I0RSIgZmlsbC1ydWxlPSJldmVub2RkIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMSIgZmlsdGVyPSJ1cmwoI2ZpbHRlci0yKSIgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9IuefqeW9ouWkh+S7vS0zNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9IiNGRjlEMDQiIGZpbGwtcnVsZT0iZXZlbm9kZCIgeGxpbms6aHJlZj0iI3BhdGgtMyI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiIGZpbHRlcj0idXJsKCNmaWx0ZXItNCkiIHhsaW5rOmhyZWY9IiNwYXRoLTMiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPSLnn6nlvaLlpIfku70tNDUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSIjRkY3RjAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHhsaW5rOmhyZWY9IiNwYXRoLTUiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTYpIiB4bGluazpocmVmPSIjcGF0aC01Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD0i55+p5b2i5aSH5Lu9LTQ2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgZmlsbD0iI0Y5NTYwMCIgZmlsbC1ydWxlPSJldmVub2RkIiB4bGluazpocmVmPSIjcGF0aC03Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMSIgZmlsdGVyPSJ1cmwoI2ZpbHRlci04KSIgeGxpbms6aHJlZj0iI3BhdGgtNyI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjAuMjI2NjMyMzI4IiB5MT0iMTEuNzg0ODgxMSIgeDI9IjIwLjg1MDE3NDIiIHkyPSIxMS43ODQ4ODExIiBpZD0i6Lev5b6ELTEzMiIgc3Ryb2tlPSIjRkY5RjFDIiBzdHJva2Utd2lkdGg9IjAuNSI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMC4yMjY2MzIzMjgiIHkxPSI1Ljg5MjQ0MDU0IiB4Mj0iMjAuODUwMTc0MiIgeTI9IjUuODkyNDQwNTQiIGlkPSLot6/lvoQtMTMy5aSH5Lu9LTIiIHN0cm9rZT0iI0ZGQzM1OSIgc3Ryb2tlLXdpZHRoPSIwLjUiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjAuMjI2NjMyMzI4IiB5MT0iMTguMTMwNTg2MyIgeDI9IjIwLjg1MDE3NDIiIHkyPSIxOC4xMzA1ODYzIiBpZD0i6Lev5b6ELTEzMuWkh+S7vSIgc3Ryb2tlPSIjRkY4OTNCIiBzdHJva2Utd2lkdGg9IjAuNSI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgICAgICA8cmVjdCBpZD0i55+p5b2iIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTkpIiB4PSIyLjIxNzM5MTMiIHk9IjguMDYwODk5ODYiIHdpZHRoPSIxNS44NjQyNjMiIGhlaWdodD0iMTUuODY0MjYzIj48L3JlY3Q+CiAgICAgICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0xMCkiIHg9IjIuMjE3MzkxMyIgeT0iOC4wNjA4OTk4NiIgd2lkdGg9IjE1Ljg2NDI2MyIgaGVpZ2h0PSIxNS44NjQyNjMiPjwvcmVjdD4KICAgICAgICAgICAgICAgICAgICA8cmVjdCBpZD0i55+p5b2iIiBzdHJva2U9InVybCgjbGluZWFyR3JhZGllbnQtMTEpIiBzdHJva2Utd2lkdGg9IjAuNSIgeD0iMi40NjczOTEzIiB5PSI4LjMxMDg5OTg2IiB3aWR0aD0iMTUuMzY0MjYzIiBoZWlnaHQ9IjE1LjM2NDI2MyI+PC9yZWN0PgogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJXIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2LjYyNzk2NSwgMTEuNDQxNjM2KSIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9Iui3r+W+hC0xNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiIGZpbHRlcj0idXJsKCNmaWx0ZXItMTMpIiB4bGluazpocmVmPSIjcGF0aC0xMiI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9IiNGRkZGRkYiIHhsaW5rOmhyZWY9IiNwYXRoLTEyIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+", BI = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJub25lIj48cGF0aCBkPSJtMTAgMy01IDUgNSA1IiBzdHJva2U9IiMxYTFhMWEiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=", QI = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJub25lIj48cGF0aCBkPSJtMyAzIDEwIDEwTTEzIDMgMyAxMyIgc3Ryb2tlPSIjMWExYTFhIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+", hI = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJub25lIj48cGF0aCBkPSJNMyAzTDEzIDEzTTEzIDNMMyAxMyIgc3Ryb2tlPSIjOTk5OTk5IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+Cg==", RI = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDEyIDEyIiBmaWxsPSJub25lIj48cGF0aCBkPSJtNC41IDIuNSAzLjUgMy41LTMuNSAzLjUiIHN0cm9rZT0iIzk5OSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==", lI = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTAwIiB2aWV3Qm94PSIwIDAgMTIwIDEwMCIgZmlsbD0ibm9uZSI+CiAgPGVsbGlwc2UgY3g9IjYwIiBjeT0iOTAiIHJ4PSI0MyIgcnk9IjUiIGZpbGw9IiNGMkY0RjgiLz4KICA8cGF0aCBkPSJNMjQgMzBhNiA2IDAgMCAxIDYtNmgyM2w5IDloMjhhNiA2IDAgMCAxIDYgNnY0MGE2IDYgMCAwIDEtNiA2SDMwYTYgNiAwIDAgMS02LTZWMzBaIiBmaWxsPSIjRTlFRkZCIi8+CiAgPHJlY3QgeD0iMzkiIHk9IjE0IiB3aWR0aD0iNDMiIGhlaWdodD0iNTYiIHJ4PSI0IiBmaWxsPSIjZmZmIiBzdHJva2U9IiNEOUUyRjMiLz4KICA8cGF0aCBkPSJNNDggMjloMjVNNDggMzhoMjVNNDggNDdoMTYiIHN0cm9rZT0iI0RCRTRGNCIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICA8cGF0aCBkPSJNMjAgNDlhNSA1IDAgMCAxIDUtNGg3MGE1IDUgMCAwIDEgNSA2bC02IDI5YTYgNiAwIDAgMS02IDVIMzJhNiA2IDAgMCAxLTYtNWwtNi0yOXYtMloiIGZpbGw9IiNGMEY0RkMiIHN0cm9rZT0iI0Q5RTJGMyIvPgogIDxwYXRoIGQ9Ik01MSA2NWgxOCIgc3Ryb2tlPSIjQzVENEYwIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K", HI = { class: "mobile-frame" }, JI = {
|
|
320
|
+
class: "selector-sheet",
|
|
321
|
+
"aria-label": "知识库选择"
|
|
322
|
+
}, VI = { class: "sheet-header" }, XI = ["src"], fI = ["src"], FI = ["title", "onClick"], KI = {
|
|
323
|
+
key: 0,
|
|
324
|
+
class: "status"
|
|
325
|
+
}, _I = {
|
|
326
|
+
key: 1,
|
|
327
|
+
class: "status error",
|
|
328
|
+
role: "alert"
|
|
329
|
+
}, $I = ["aria-checked", "aria-label", "disabled", "onClick"], qI = {
|
|
330
|
+
key: 0,
|
|
331
|
+
class: "check-mark",
|
|
332
|
+
"aria-hidden": "true"
|
|
333
|
+
}, Ig = {
|
|
334
|
+
key: 1,
|
|
335
|
+
class: "half-mark",
|
|
336
|
+
"aria-hidden": "true"
|
|
337
|
+
}, gg = ["src"], Mg = ["title", "onClick"], Ag = ["aria-label", "onClick"], Cg = {
|
|
338
|
+
key: 0,
|
|
339
|
+
class: "status empty-state"
|
|
340
|
+
}, ig = ["src"], Ng = ["disabled"], Dg = {
|
|
341
|
+
key: 2,
|
|
342
|
+
class: "inline-error",
|
|
343
|
+
role: "alert"
|
|
344
|
+
}, cg = {
|
|
345
|
+
key: 1,
|
|
346
|
+
class: "content-list selected-list",
|
|
347
|
+
"aria-label": "已选知识库文件"
|
|
348
|
+
}, jg = ["src"], eg = ["title"], tg = ["aria-label", "onClick"], lg = ["src"], ag = {
|
|
349
|
+
key: 0,
|
|
350
|
+
class: "status empty-state"
|
|
351
|
+
}, sg = ["src"], zg = { class: "footer-bar" }, wg = ["disabled"], yg = {
|
|
352
|
+
key: 0,
|
|
353
|
+
class: "summary-label"
|
|
354
|
+
}, Tg = {
|
|
355
|
+
key: 1,
|
|
356
|
+
class: "summary-label"
|
|
357
|
+
}, ug = ["src"], ng = {
|
|
358
|
+
key: 1,
|
|
359
|
+
class: "selection-summary selected-summary"
|
|
360
|
+
}, og = { class: "summary-label" }, dg = ["disabled"], bg = {
|
|
361
|
+
key: 0,
|
|
362
|
+
class: "notice",
|
|
363
|
+
role: "status"
|
|
364
|
+
}, aI = 50, rg = /* @__PURE__ */ bI({
|
|
365
|
+
__name: "App",
|
|
366
|
+
props: {
|
|
367
|
+
dataSource: {},
|
|
368
|
+
apiOptions: {},
|
|
369
|
+
initialSelection: {},
|
|
370
|
+
iframeMessaging: { type: Boolean, default: !1 }
|
|
371
|
+
},
|
|
372
|
+
emits: ["confirm", "error", "close"],
|
|
373
|
+
setup(I, { expose: g, emit: C }) {
|
|
374
|
+
const M = I, a = C, u = M.dataSource || zI(M.apiOptions), n = Y([]), L = Y(""), S = Y(!1), G = Y({}), b = Y([]), T = Y(MI(M.initialSelection || [])), i = Y(!1), s = Y(""), z = Y(), j = typeof AbortController == "function" ? new AbortController() : void 0;
|
|
375
|
+
let E = !1;
|
|
376
|
+
const w = Q(() => b.value[b.value.length - 1]), c = Q(() => w.value && G.value[d(w.value)]), k = Q(() => {
|
|
377
|
+
var A;
|
|
378
|
+
return w.value ? (A = c.value) != null && A.error && !c.value.loaded ? c.value.error : "" : L.value;
|
|
379
|
+
}), iI = Q(() => {
|
|
380
|
+
var A;
|
|
381
|
+
return w.value ? ((A = c.value) == null ? void 0 : A.children) || [] : n.value;
|
|
382
|
+
}), R = Q(() => [["library", "知识库"], ["directory", "文件夹"], ["document", "文档"]].map(([A, N]) => ({ type: A, label: N, count: T.value.filter((o) => o.type === A).length })).filter((A) => A.count > 0));
|
|
383
|
+
function P(A) {
|
|
384
|
+
return wI(A, T.value);
|
|
385
|
+
}
|
|
386
|
+
function f(A) {
|
|
387
|
+
T.value = GI(A, T.value);
|
|
388
|
+
}
|
|
389
|
+
function NI(A) {
|
|
390
|
+
return A.type !== "document" ? A.name : A.name.replace(/\.(pptx?|docx?|pdf|xlsx?|csv|wps|rtf|odt|ods|dps|odp|et|txt|md|png|jpe?g|gif|webp|svg|bmp|zip|rar|7z)$/i, "");
|
|
391
|
+
}
|
|
392
|
+
function DI(A) {
|
|
393
|
+
var o;
|
|
394
|
+
if (A.type === "library")
|
|
395
|
+
return PI;
|
|
396
|
+
if (A.type === "directory")
|
|
397
|
+
return OI;
|
|
398
|
+
const N = (((o = A.name.match(/\.([a-z0-9]+)$/i)) == null ? void 0 : o[1]) ?? "").toLowerCase();
|
|
399
|
+
return ["doc", "docx", "wps", "rtf", "odt"].includes(N) ? YI : ["ppt", "pptx", "dps", "odp"].includes(N) ? pI : N === "pdf" ? WI : ["xls", "xlsx", "csv", "et", "ods"].includes(N) ? UI : vI;
|
|
400
|
+
}
|
|
401
|
+
function yI(A) {
|
|
402
|
+
const N = G.value[d(A)];
|
|
403
|
+
return !!(N != null && N.loaded) && N.page * aI < N.total;
|
|
404
|
+
}
|
|
405
|
+
function F(A) {
|
|
406
|
+
return A instanceof Error ? A.message : "加载失败,请重试";
|
|
407
|
+
}
|
|
408
|
+
async function cI() {
|
|
409
|
+
if (!S.value) {
|
|
410
|
+
S.value = !0, L.value = "";
|
|
411
|
+
try {
|
|
412
|
+
n.value = await u.getLibraries(j == null ? void 0 : j.signal);
|
|
413
|
+
} catch (A) {
|
|
414
|
+
L.value = F(A), E || a("error", A);
|
|
415
|
+
} finally {
|
|
416
|
+
S.value = !1;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
async function H(A, N = !1) {
|
|
421
|
+
const o = d(A);
|
|
422
|
+
let y = G.value[o];
|
|
423
|
+
if (y != null && y.loading || !N && (y != null && y.loaded))
|
|
424
|
+
return;
|
|
425
|
+
y || (G.value[o] = { children: [], page: 0, total: 0, loaded: !1, loading: !1, error: "" }, y = G.value[o]), y.loading = !0, y.error = "";
|
|
426
|
+
const B = N ? y.page + 1 : 1;
|
|
427
|
+
try {
|
|
428
|
+
const O = await u.getChildren(A, B, aI, j == null ? void 0 : j.signal), D = [...N ? y.children : [], ...O.directories, ...O.documents];
|
|
429
|
+
y.children = [...new Map(D.map((r) => [d(r), r])).values()], y.page = B, y.total = O.total, y.loaded = !0;
|
|
430
|
+
} catch (O) {
|
|
431
|
+
y.error = F(O), E || a("error", O);
|
|
432
|
+
} finally {
|
|
433
|
+
y.loading = !1;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
async function jI(A) {
|
|
437
|
+
var N, o;
|
|
438
|
+
A.type !== "document" && (b.value.push(A), await ZI(), (o = (N = z.value) == null ? void 0 : N.scrollTo) == null || o.call(N, { left: z.value.scrollWidth, behavior: "smooth" }), await H(A));
|
|
439
|
+
}
|
|
440
|
+
function K(A) {
|
|
441
|
+
b.value = b.value.slice(0, A + 1);
|
|
442
|
+
}
|
|
443
|
+
function TI() {
|
|
444
|
+
i.value ? i.value = !1 : K(b.value.length - 2);
|
|
445
|
+
}
|
|
446
|
+
function uI() {
|
|
447
|
+
a("close"), v && $("wisedoc:knowledge-selector:close");
|
|
448
|
+
}
|
|
449
|
+
function nI() {
|
|
450
|
+
w.value ? H(w.value) : cI();
|
|
451
|
+
}
|
|
452
|
+
const _ = typeof location < "u" ? location.origin : "", v = M.iframeMessaging && typeof window < "u" && !!_;
|
|
453
|
+
function $(A, N = {}) {
|
|
454
|
+
v && window.parent !== window && window.parent.postMessage({ type: A, ...N }, _);
|
|
455
|
+
}
|
|
456
|
+
function eI(A) {
|
|
457
|
+
if (!(A.source !== window.parent || A.origin !== _ || !A.data || typeof A.data != "object") && A.data.type === "wisedoc:knowledge-selector:init")
|
|
458
|
+
try {
|
|
459
|
+
T.value = MI(A.data.selection || []);
|
|
460
|
+
} catch (N) {
|
|
461
|
+
s.value = F(N);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
function oI() {
|
|
465
|
+
const A = kI(T.value), N = T.value.map(CI);
|
|
466
|
+
a("confirm", A, N), v && ($("wisedoc:knowledge-selector:confirm", { payload: A, selections: N }), window.dispatchEvent(new CustomEvent("knowledge-selector:confirm", { detail: A })));
|
|
467
|
+
}
|
|
468
|
+
function dI(A) {
|
|
469
|
+
T.value = MI(A);
|
|
470
|
+
}
|
|
471
|
+
return g({ setSelection: dI }), rI(() => {
|
|
472
|
+
v && (window.addEventListener("message", eI), $("wisedoc:knowledge-selector:ready")), cI();
|
|
473
|
+
}), LI(() => {
|
|
474
|
+
E = !0, j == null || j.abort(), v && window.removeEventListener("message", eI);
|
|
475
|
+
}), (A, N) => {
|
|
476
|
+
var o, y, B, O;
|
|
477
|
+
return e(), t("div", HI, [
|
|
478
|
+
l("main", JI, [
|
|
479
|
+
l("header", VI, [
|
|
480
|
+
i.value || w.value ? (e(), t("button", {
|
|
481
|
+
key: 0,
|
|
482
|
+
class: "header-back",
|
|
483
|
+
type: "button",
|
|
484
|
+
"aria-label": "返回上一级",
|
|
485
|
+
onClick: TI
|
|
486
|
+
}, [
|
|
487
|
+
l("img", {
|
|
488
|
+
class: "header-icon",
|
|
489
|
+
src: p(BI),
|
|
490
|
+
alt: ""
|
|
491
|
+
}, null, 8, XI)
|
|
492
|
+
])) : Z("", !0),
|
|
493
|
+
l("h1", null, m(i.value ? "已选知识库文件" : "选择知识库文件"), 1),
|
|
494
|
+
l("button", {
|
|
495
|
+
class: "header-close",
|
|
496
|
+
type: "button",
|
|
497
|
+
"aria-label": "关闭选择器",
|
|
498
|
+
onClick: uI
|
|
499
|
+
}, [
|
|
500
|
+
l("img", {
|
|
501
|
+
class: "header-icon",
|
|
502
|
+
src: p(QI),
|
|
503
|
+
alt: ""
|
|
504
|
+
}, null, 8, fI)
|
|
505
|
+
])
|
|
506
|
+
]),
|
|
507
|
+
i.value ? (e(), t("section", cg, [
|
|
508
|
+
(e(!0), t(x, null, h(T.value, (D) => (e(), t("div", {
|
|
509
|
+
key: p(d)(D),
|
|
510
|
+
class: "entry-row"
|
|
511
|
+
}, [
|
|
512
|
+
l("img", {
|
|
513
|
+
class: "entry-icon",
|
|
514
|
+
src: DI(D),
|
|
515
|
+
alt: ""
|
|
516
|
+
}, null, 8, jg),
|
|
517
|
+
l("span", {
|
|
518
|
+
class: "entry-name selected-name",
|
|
519
|
+
title: D.name
|
|
520
|
+
}, m(NI(D)), 9, eg),
|
|
521
|
+
l("button", {
|
|
522
|
+
class: "remove-button",
|
|
523
|
+
type: "button",
|
|
524
|
+
"aria-label": `移除${D.name}`,
|
|
525
|
+
onClick: (r) => f(D)
|
|
526
|
+
}, [
|
|
527
|
+
l("img", {
|
|
528
|
+
class: "remove-icon",
|
|
529
|
+
src: p(hI),
|
|
530
|
+
alt: ""
|
|
531
|
+
}, null, 8, lg)
|
|
532
|
+
], 8, tg)
|
|
533
|
+
]))), 128)),
|
|
534
|
+
T.value.length ? Z("", !0) : (e(), t("div", ag, [
|
|
535
|
+
l("img", {
|
|
536
|
+
src: p(lI),
|
|
537
|
+
alt: ""
|
|
538
|
+
}, null, 8, sg),
|
|
539
|
+
N[8] || (N[8] = l("span", null, "暂未选择知识库文件", -1))
|
|
540
|
+
]))
|
|
541
|
+
])) : (e(), t(x, { key: 0 }, [
|
|
542
|
+
N[7] || (N[7] = l("div", {
|
|
543
|
+
class: "tabs",
|
|
544
|
+
"aria-label": "知识库分类"
|
|
545
|
+
}, [
|
|
546
|
+
l("span", { class: "tab-active" }, "知识库")
|
|
547
|
+
], -1)),
|
|
548
|
+
w.value ? (e(), t("nav", {
|
|
549
|
+
key: 0,
|
|
550
|
+
ref_key: "crumbsElement",
|
|
551
|
+
ref: z,
|
|
552
|
+
class: "breadcrumbs",
|
|
553
|
+
"aria-label": "当前位置"
|
|
554
|
+
}, [
|
|
555
|
+
l("button", {
|
|
556
|
+
type: "button",
|
|
557
|
+
onClick: N[0] || (N[0] = (D) => K(-1))
|
|
558
|
+
}, "知识库"),
|
|
559
|
+
(e(!0), t(x, null, h(b.value, (D, r) => (e(), t(x, {
|
|
560
|
+
key: p(d)(D)
|
|
561
|
+
}, [
|
|
562
|
+
N[4] || (N[4] = l("span", {
|
|
563
|
+
class: "crumb-divider",
|
|
564
|
+
"aria-hidden": "true"
|
|
565
|
+
}, "/", -1)),
|
|
566
|
+
l("button", {
|
|
567
|
+
type: "button",
|
|
568
|
+
class: q({ "crumb-current": r === b.value.length - 1 }),
|
|
569
|
+
title: D.name,
|
|
570
|
+
onClick: (mg) => K(r)
|
|
571
|
+
}, m(D.name), 11, FI)
|
|
572
|
+
], 64))), 128))
|
|
573
|
+
], 512)) : Z("", !0),
|
|
574
|
+
l("section", {
|
|
575
|
+
class: q(["content-list", { "root-list": !w.value }]),
|
|
576
|
+
"aria-label": "知识库目录和文档"
|
|
577
|
+
}, [
|
|
578
|
+
S.value || (o = c.value) != null && o.loading && !c.value.loaded ? (e(), t("div", KI, "正在加载…")) : k.value ? (e(), t("div", _I, [
|
|
579
|
+
l("span", null, m(k.value), 1),
|
|
580
|
+
l("button", {
|
|
581
|
+
type: "button",
|
|
582
|
+
onClick: nI
|
|
583
|
+
}, "重新加载")
|
|
584
|
+
])) : (e(), t(x, { key: 2 }, [
|
|
585
|
+
(e(!0), t(x, null, h(iI.value, (D) => (e(), t("div", {
|
|
586
|
+
key: p(d)(D),
|
|
587
|
+
class: "entry-row"
|
|
588
|
+
}, [
|
|
589
|
+
l("button", {
|
|
590
|
+
class: q(["check-button", { checked: P(D).checked, indeterminate: P(D).indeterminate, locked: P(D).disabled }]),
|
|
591
|
+
type: "button",
|
|
592
|
+
role: "checkbox",
|
|
593
|
+
"aria-checked": P(D).indeterminate ? "mixed" : P(D).checked,
|
|
594
|
+
"aria-label": P(D).disabled ? `已随上级选择${D.name}` : `${P(D).checked ? "取消选择" : "选择"}${D.name}`,
|
|
595
|
+
disabled: P(D).disabled,
|
|
596
|
+
onClick: (r) => f(D)
|
|
597
|
+
}, [
|
|
598
|
+
P(D).checked ? (e(), t("span", qI)) : P(D).indeterminate ? (e(), t("span", Ig)) : Z("", !0)
|
|
599
|
+
], 10, $I),
|
|
600
|
+
l("img", {
|
|
601
|
+
class: "entry-icon",
|
|
602
|
+
src: DI(D),
|
|
603
|
+
alt: ""
|
|
604
|
+
}, null, 8, gg),
|
|
605
|
+
l("button", {
|
|
606
|
+
class: "entry-name",
|
|
607
|
+
type: "button",
|
|
608
|
+
title: D.name,
|
|
609
|
+
onClick: (r) => D.type === "document" ? f(D) : jI(D)
|
|
610
|
+
}, m(NI(D)), 9, Mg),
|
|
611
|
+
D.type !== "document" ? (e(), t("button", {
|
|
612
|
+
key: 0,
|
|
613
|
+
class: "row-next",
|
|
614
|
+
type: "button",
|
|
615
|
+
"aria-label": `进入${D.name}`,
|
|
616
|
+
onClick: (r) => jI(D)
|
|
617
|
+
}, [...N[5] || (N[5] = [
|
|
618
|
+
l("span", { class: "right-chevron" }, null, -1)
|
|
619
|
+
])], 8, Ag)) : Z("", !0)
|
|
620
|
+
]))), 128)),
|
|
621
|
+
iI.value.length ? Z("", !0) : (e(), t("div", Cg, [
|
|
622
|
+
l("img", {
|
|
623
|
+
src: p(lI),
|
|
624
|
+
alt: ""
|
|
625
|
+
}, null, 8, ig),
|
|
626
|
+
N[6] || (N[6] = l("span", null, "暂无可选择的内容", -1))
|
|
627
|
+
])),
|
|
628
|
+
w.value && yI(w.value) ? (e(), t("button", {
|
|
629
|
+
key: 1,
|
|
630
|
+
class: "more-button",
|
|
631
|
+
type: "button",
|
|
632
|
+
disabled: (y = c.value) == null ? void 0 : y.loading,
|
|
633
|
+
onClick: N[1] || (N[1] = (D) => H(w.value, !0))
|
|
634
|
+
}, m((B = c.value) != null && B.loading ? "正在加载…" : "加载更多文档"), 9, Ng)) : Z("", !0),
|
|
635
|
+
(O = c.value) != null && O.error && c.value.loaded ? (e(), t("div", Dg, [
|
|
636
|
+
W(m(c.value.error) + " ", 1),
|
|
637
|
+
l("button", {
|
|
638
|
+
type: "button",
|
|
639
|
+
onClick: N[2] || (N[2] = (D) => H(w.value, !0))
|
|
640
|
+
}, "重试")
|
|
641
|
+
])) : Z("", !0)
|
|
642
|
+
], 64))
|
|
643
|
+
], 2)
|
|
644
|
+
], 64)),
|
|
645
|
+
l("footer", zg, [
|
|
646
|
+
i.value ? (e(), t("div", ng, [
|
|
647
|
+
l("span", og, [
|
|
648
|
+
N[10] || (N[10] = W("已选 ", -1)),
|
|
649
|
+
(e(!0), t(x, null, h(R.value, (D, r) => (e(), t(x, {
|
|
650
|
+
key: D.type
|
|
651
|
+
}, [
|
|
652
|
+
l("strong", null, m(D.count), 1),
|
|
653
|
+
W(" 个" + m(D.label), 1),
|
|
654
|
+
r < R.value.length - 1 ? (e(), t(x, { key: 0 }, [
|
|
655
|
+
W("、")
|
|
656
|
+
], 64)) : Z("", !0)
|
|
657
|
+
], 64))), 128))
|
|
658
|
+
])
|
|
659
|
+
])) : (e(), t("button", {
|
|
660
|
+
key: 0,
|
|
661
|
+
class: "selection-summary",
|
|
662
|
+
type: "button",
|
|
663
|
+
disabled: !T.value.length,
|
|
664
|
+
onClick: N[3] || (N[3] = (D) => i.value = !0)
|
|
665
|
+
}, [
|
|
666
|
+
T.value.length ? (e(), t("span", yg, [
|
|
667
|
+
N[9] || (N[9] = W("已选 ", -1)),
|
|
668
|
+
(e(!0), t(x, null, h(R.value, (D, r) => (e(), t(x, {
|
|
669
|
+
key: D.type
|
|
670
|
+
}, [
|
|
671
|
+
l("strong", null, m(D.count), 1),
|
|
672
|
+
W(" 个" + m(D.label), 1),
|
|
673
|
+
r < R.value.length - 1 ? (e(), t(x, { key: 0 }, [
|
|
674
|
+
W("、")
|
|
675
|
+
], 64)) : Z("", !0)
|
|
676
|
+
], 64))), 128))
|
|
677
|
+
])) : (e(), t("span", Tg, "尚未选择")),
|
|
678
|
+
T.value.length ? (e(), t("img", {
|
|
679
|
+
key: 2,
|
|
680
|
+
class: "summary-arrow",
|
|
681
|
+
src: p(RI),
|
|
682
|
+
alt: ""
|
|
683
|
+
}, null, 8, ug)) : Z("", !0)
|
|
684
|
+
], 8, wg)),
|
|
685
|
+
l("button", {
|
|
686
|
+
class: "confirm-button",
|
|
687
|
+
type: "button",
|
|
688
|
+
disabled: S.value || !!L.value,
|
|
689
|
+
onClick: oI
|
|
690
|
+
}, "确定", 8, dg)
|
|
691
|
+
])
|
|
692
|
+
]),
|
|
693
|
+
s.value ? (e(), t("div", bg, m(s.value), 1)) : Z("", !0)
|
|
694
|
+
]);
|
|
695
|
+
};
|
|
696
|
+
}
|
|
697
|
+
});
|
|
698
|
+
const Lg = (I, g) => {
|
|
699
|
+
const C = I.__vccOpts || I;
|
|
700
|
+
for (const [M, a] of g)
|
|
701
|
+
C[M] = a;
|
|
702
|
+
return C;
|
|
703
|
+
}, Zg = /* @__PURE__ */ Lg(rg, [["__scopeId", "data-v-ff77d347"]]), Sg = Zg;
|
|
704
|
+
export {
|
|
705
|
+
xI as DEFAULT_KNOWLEDGE_SELECTOR_CONFIG_URL,
|
|
706
|
+
Sg as MobileKnowledgeSelector,
|
|
707
|
+
zI as createKnowledgeDataSource,
|
|
708
|
+
Sg as default
|
|
709
|
+
};
|