@glodon-aiot/dataset-annotation 3.2.2-beta.3 → 3.2.2-beta.4
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/dist/es/Common/Page/index.mjs +29 -0
- package/dist/es/Common/Page/style.less.mjs +4 -0
- package/dist/es/Common/PageContent/index.mjs +18 -0
- package/dist/es/Common/PageHeader/index.mjs +39 -0
- package/dist/es/Common/PageHeader/style.less.mjs +4 -0
- package/dist/es/DatasetContext/index.mjs +11 -0
- package/dist/es/_virtual/_commonjsHelpers.mjs +4 -0
- package/dist/es/_virtual/minio.mjs +4 -0
- package/dist/es/access/images/data_empty.svg.mjs +4 -0
- package/dist/es/components/CompositionInput/index.mjs +53 -0
- package/dist/es/components/DataEmpty/index.mjs +51 -0
- package/dist/es/components/DataEmpty/style.less.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/PreSamplesPage/index.mjs +292 -0
- package/dist/es/components/DetectionAnnotation/PreSamplesPage/style.less.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/components/DisabledTooltip/index.mjs +23 -0
- package/dist/es/components/DetectionAnnotation/components/ImageDetail/index.mjs +166 -0
- package/dist/es/components/DetectionAnnotation/components/ImageDetail/style.less.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/Drawable.mjs +51 -0
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/FabricCustomize.mjs +42 -0
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/RectLabel.mjs +283 -0
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/icons/delete-icon.svg.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/index.mjs +315 -0
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/style.less.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/components/Labels/index.mjs +201 -0
- package/dist/es/components/DetectionAnnotation/components/Labels/style.less.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/components/TagItem/index.mjs +144 -0
- package/dist/es/components/DetectionAnnotation/components/TagItem/style.less.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/icon_item_empty.svg.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/index.mjs +713 -0
- package/dist/es/components/DetectionAnnotation/style.less.mjs +4 -0
- package/dist/es/components/DetectionImageAnnotation/index.mjs +62 -0
- package/dist/es/components/DetectionImageAnnotation/style.less.mjs +4 -0
- package/dist/es/components/Iconfont/index.mjs +16 -0
- package/dist/es/components/MarkDescriptions/index.mjs +66 -0
- package/dist/es/components/MarkDescriptions/style.less.mjs +4 -0
- package/dist/es/components/OCRImageViewer/index.mjs +213 -0
- package/dist/es/components/OCRImageViewer/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/CategoryDrawer.mjs +136 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorInput.mjs +57 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorItem.mjs +73 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LableEditor.mjs +55 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/index.mjs +366 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/index.mjs +255 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/ImageDetail/index.mjs +101 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/ImageDetail/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/images/delete.png.mjs +4 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/index.mjs +756 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/index.mjs +231 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/OcrModal/index.mjs +180 -0
- package/dist/es/components/OcrAnnotation/OcrModal/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/PreLabelOCR/PreLabelModal.mjs +281 -0
- package/dist/es/components/OcrAnnotation/PreLabelOCR/index.mjs +44 -0
- package/dist/es/components/OcrAnnotation/PreLabelOCR/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/constant.mjs +5 -0
- package/dist/es/components/OcrAnnotation/index.mjs +382 -0
- package/dist/es/components/OcrAnnotation/style.less.mjs +4 -0
- package/dist/es/components/OcrImageAnnotation/index.mjs +40 -0
- package/dist/es/components/OcrImageAnnotation/style.less.mjs +4 -0
- package/dist/es/components/PageNav/index.mjs +30 -0
- package/dist/es/components/PageNav/style.less.mjs +4 -0
- package/dist/es/components/PicZipImportModal/index.mjs +584 -0
- package/dist/es/components/PicZipImportModal/pic_zip.svg.mjs +4 -0
- package/dist/es/components/PicZipImportModal/pic_zip_json.svg.mjs +4 -0
- package/dist/es/components/PicZipImportModal/style.less.mjs +4 -0
- package/dist/es/components/PreLabelOCR/PreLabelModal.mjs +276 -0
- package/dist/es/components/PreLabelOCR/index.mjs +44 -0
- package/dist/es/components/PreLabelOCR/style.less.mjs +4 -0
- package/dist/es/components/ScanTable/index.mjs +97 -0
- package/dist/es/components/ScanTable/style.less.mjs +4 -0
- package/dist/es/components/Thumbnail/default.png.mjs +4 -0
- package/dist/es/components/Thumbnail/index.mjs +31 -0
- package/dist/es/components/Thumbnail/style.less.mjs +4 -0
- package/dist/es/components/hooks/Prompt.mjs +33 -0
- package/dist/es/constant.mjs +13 -0
- package/dist/es/createDatasetAnnotation/index.mjs +133 -0
- package/dist/es/createDetectionDatasetAnnotation/index.mjs +129 -0
- package/dist/es/createDetectionImageAnnotation/index.mjs +31 -0
- package/dist/es/createOcrDatasetAnnotation/index.mjs +129 -0
- package/dist/es/createOcrImageAnnotation/index.mjs +33 -0
- package/dist/es/featuresConfig.mjs +79 -0
- package/dist/es/index.mjs +13 -0
- package/dist/es/node_modules/@glodon-aiot/minio/dist/minio.mjs +28463 -0
- package/dist/es/utils/color.mjs +30 -0
- package/dist/es/utils/index.mjs +22 -0
- package/dist/es/utils/sign.mjs +33 -0
- package/dist/lib/index.js +130 -0
- package/dist/src/Common/Page/index.d.ts +1 -2
- package/dist/src/Common/PageHeader/index.d.ts +0 -1
- package/dist/src/DatasetContext/index.d.ts +3 -4
- package/dist/src/components/CompositionInput/index.d.ts +2 -2
- package/dist/src/components/DataEmpty/index.d.ts +1 -2
- package/dist/src/components/DetectionAnnotation/PreSamplesPage/index.d.ts +1 -2
- package/dist/src/components/DetectionAnnotation/components/DisabledTooltip/index.d.ts +2 -2
- package/dist/src/components/DetectionAnnotation/components/ImageDetail/index.d.ts +1 -2
- package/dist/src/components/DetectionAnnotation/components/LabelMaker/Drawable.d.ts +2 -2
- package/dist/src/components/DetectionAnnotation/components/LabelMaker/RectLabel.d.ts +6 -5
- package/dist/src/components/DetectionAnnotation/components/LabelMaker/index.d.ts +0 -1
- package/dist/src/components/DetectionAnnotation/components/Labels/index.d.ts +0 -1
- package/dist/src/components/DetectionAnnotation/components/TagItem/index.d.ts +1 -2
- package/dist/src/components/DetectionAnnotation/index.d.ts +1 -2
- package/dist/src/components/DetectionImageAnnotation/index.d.ts +0 -2
- package/dist/src/components/Iconfont/font_3140028_iptomfpgyu.d.ts +0 -0
- package/dist/src/components/Iconfont/font_3454453_gu5ijeufyng.d.ts +0 -0
- package/dist/src/components/Iconfont/font_4108228_3slzqhoow93.d.ts +0 -0
- package/dist/src/components/Iconfont/font_4439177_k3mjwv7kzfd.d.ts +0 -0
- package/dist/src/components/Iconfont/index.d.ts +1 -2
- package/dist/src/components/MarkDescriptions/index.d.ts +0 -1
- package/dist/src/components/OCRImageViewer/index.d.ts +1 -2
- package/dist/src/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorInput.d.ts +2 -2
- package/dist/src/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorItem.d.ts +1 -2
- package/dist/src/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LableEditor.d.ts +0 -1
- package/dist/src/components/OcrAnnotation/MarkKVOCRModal/index.d.ts +0 -1
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/ImageDetail/index.d.ts +1 -2
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/LabelEditorInput.d.ts +2 -2
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/LabelEditorItem.d.ts +0 -1
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/LableEditor.d.ts +0 -1
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/index.d.ts +0 -1
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/index.d.ts +0 -1
- package/dist/src/components/OcrAnnotation/OcrModal/index.d.ts +1 -2
- package/dist/src/components/OcrAnnotation/PreLabelOCR/PreLabelModal.d.ts +1 -2
- package/dist/src/components/OcrAnnotation/PreLabelOCR/index.d.ts +1 -2
- package/dist/src/components/OcrAnnotation/index.d.ts +1 -2
- package/dist/src/components/OcrImageAnnotation/index.d.ts +0 -2
- package/dist/src/components/PageNav/index.d.ts +1 -2
- package/dist/src/components/PicZipImportModal/index.d.ts +1 -2
- package/dist/src/components/PreLabelOCR/PreLabelModal.d.ts +1 -2
- package/dist/src/components/PreLabelOCR/index.d.ts +1 -2
- package/dist/src/components/ScanTable/index.d.ts +1 -2
- package/dist/src/components/Thumbnail/index.d.ts +1 -2
- package/dist/src/components/hooks/Prompt.d.ts +0 -1
- package/dist/src/components/hooks/useBlocker.d.ts +1 -1
- package/dist/src/featuresConfig.d.ts +1 -1
- package/dist/src/utils/sign.d.ts +1 -1
- package/package.json +15 -6
|
@@ -0,0 +1,584 @@
|
|
|
1
|
+
var al = Object.defineProperty;
|
|
2
|
+
var Le = Object.getOwnPropertySymbols;
|
|
3
|
+
var ol = Object.prototype.hasOwnProperty, rl = Object.prototype.propertyIsEnumerable;
|
|
4
|
+
var Ae = (y, l, i) => l in y ? al(y, l, { enumerable: !0, configurable: !0, writable: !0, value: i }) : y[l] = i, Ue = (y, l) => {
|
|
5
|
+
for (var i in l || (l = {}))
|
|
6
|
+
ol.call(l, i) && Ae(y, i, l[i]);
|
|
7
|
+
if (Le)
|
|
8
|
+
for (var i of Le(l))
|
|
9
|
+
rl.call(l, i) && Ae(y, i, l[i]);
|
|
10
|
+
return y;
|
|
11
|
+
};
|
|
12
|
+
var ce = (y, l, i) => new Promise((f, V) => {
|
|
13
|
+
var D = (w) => {
|
|
14
|
+
try {
|
|
15
|
+
F(i.next(w));
|
|
16
|
+
} catch (z) {
|
|
17
|
+
V(z);
|
|
18
|
+
}
|
|
19
|
+
}, Z = (w) => {
|
|
20
|
+
try {
|
|
21
|
+
F(i.throw(w));
|
|
22
|
+
} catch (z) {
|
|
23
|
+
V(z);
|
|
24
|
+
}
|
|
25
|
+
}, F = (w) => w.done ? f(w.value) : Promise.resolve(w.value).then(D, Z);
|
|
26
|
+
F((i = i.apply(y, l)).next());
|
|
27
|
+
});
|
|
28
|
+
import { jsxs as p, Fragment as de, jsx as e } from "react/jsx-runtime";
|
|
29
|
+
import { useContext as cl, useState as r, useRef as dl, useEffect as A } from "react";
|
|
30
|
+
import { Form as U, message as x, Modal as H, Button as O, Radio as R, Space as Oe, Upload as pl, Row as pe, Col as ul, Spin as ml, Result as Te } from "antd";
|
|
31
|
+
import "./style.less.mjs";
|
|
32
|
+
import { CloudUploadOutlined as fl, PaperClipOutlined as hl, DeleteOutlined as gl, PlusOutlined as Cl } from "@ant-design/icons";
|
|
33
|
+
import bl from "browser-md5-file";
|
|
34
|
+
import { m as I } from "../../node_modules/@glodon-aiot/minio/dist/minio.mjs";
|
|
35
|
+
import yl from "antd/lib/upload/Dragger";
|
|
36
|
+
import Nl from "./pic_zip.svg.mjs";
|
|
37
|
+
import Sl from "./pic_zip_json.svg.mjs";
|
|
38
|
+
import { GB as wl, MB as zl } from "../../constant.mjs";
|
|
39
|
+
import { fileSuffixToLowerCase as jl } from "../../utils/index.mjs";
|
|
40
|
+
import El from "../../DatasetContext/index.mjs";
|
|
41
|
+
import { EXAMPLE_SRC_ROOT as kl } from "../../featuresConfig.mjs";
|
|
42
|
+
let m = 0, G = 0, T = 0, _ = 0;
|
|
43
|
+
const Jl = (y) => {
|
|
44
|
+
const {
|
|
45
|
+
datasetIam: l,
|
|
46
|
+
datasetId: i,
|
|
47
|
+
currentVersion: f,
|
|
48
|
+
tenCode: V,
|
|
49
|
+
isVisible: D,
|
|
50
|
+
markType: Z,
|
|
51
|
+
setIsVisible: F,
|
|
52
|
+
getVersionListRequest: w,
|
|
53
|
+
onUploadStatusChange: z,
|
|
54
|
+
setIsConfirm: Q,
|
|
55
|
+
tableReload: ue,
|
|
56
|
+
loadVersionData: q,
|
|
57
|
+
actionAfterFinish: me
|
|
58
|
+
} = y, {
|
|
59
|
+
services: {
|
|
60
|
+
cvforceDatahub: u
|
|
61
|
+
},
|
|
62
|
+
featuresConfig: {
|
|
63
|
+
exampleSrcRoot: fe
|
|
64
|
+
} = {
|
|
65
|
+
exampleSrcRoot: kl
|
|
66
|
+
}
|
|
67
|
+
} = cl(El), [N, Me] = r(0), [S, Pe] = r(0), [Y, Ve] = r([]), [M, De] = r(), [he, vl] = r([]), [ee, J] = r(!1), [ge, le] = r(!1), [K, te] = r(!1), [se, Ke] = r(0), [Ce, Ge] = r(0), [W, be] = r(-1), [ie, xl] = r([]), [ye, Rl] = r([]), [Ne, ne] = r(!1), _e = new bl(), [X] = U.useForm(), n = U.useWatch("acceptType", X), k = U.useWatch("labelState", X), [h, Se] = r([]), [E, we] = r([]), [v, Ze] = r(), [ze, je] = r(0), [Ee, ke] = r(!1), [Fl, qe] = r(""), [Je, ve] = r(!1), [xe, We] = r(
|
|
68
|
+
"unlabeled"
|
|
69
|
+
/* Unlabeled */
|
|
70
|
+
), ae = dl(!0), oe = ["image/jpeg", "image/jpg", "image/png", "image/bmp"], re = 14 * zl;
|
|
71
|
+
A(() => {
|
|
72
|
+
m = 0, G = 0, T = 0, _ = 0, te(!1), D && (ae.current = !1, q && q());
|
|
73
|
+
}, [D]);
|
|
74
|
+
const Re = (t, s) => {
|
|
75
|
+
var a;
|
|
76
|
+
if (n === "image") {
|
|
77
|
+
ne(!0);
|
|
78
|
+
let o = 0;
|
|
79
|
+
if (m = m + 1, G = G + 1, s.length === 0)
|
|
80
|
+
return;
|
|
81
|
+
let d = 0;
|
|
82
|
+
const [...c] = s, C = window.URL || window.webkitURL, b = new Image();
|
|
83
|
+
b.src = C.createObjectURL(t), b.onload = () => {
|
|
84
|
+
Y.push({
|
|
85
|
+
name: t.name,
|
|
86
|
+
src: b.src,
|
|
87
|
+
width: b.width,
|
|
88
|
+
height: b.height
|
|
89
|
+
}), Ve(Y);
|
|
90
|
+
}, s.map((j) => {
|
|
91
|
+
const $ = oe.some((L) => L === j.type), B = j.size <= re;
|
|
92
|
+
$ ? B || (o = o + 1, c.splice(c.findIndex((L) => L.name === j.name), 1)) : (d = d + 1, c.splice(c.findIndex((L) => L.name === j.name), 1));
|
|
93
|
+
}), c.length > 100 && c.splice(100, c.length), Me(d), Pe(o), G === s.length && (ne(!0), G = 0);
|
|
94
|
+
const g = oe.some((j) => j === t.type), P = t.size <= re;
|
|
95
|
+
if (g) {
|
|
96
|
+
if (!P)
|
|
97
|
+
return !1;
|
|
98
|
+
} else
|
|
99
|
+
return !1;
|
|
100
|
+
} else {
|
|
101
|
+
if (t.size > 2 * wl)
|
|
102
|
+
return x.error(`${t.name}文件总大小不能超过2G`), !1;
|
|
103
|
+
const o = (a = t.name) == null ? void 0 : a.substring(t.name.lastIndexOf("."));
|
|
104
|
+
if (n === "zip" && o !== ".zip")
|
|
105
|
+
return x.error("存在格式不正确的文件,已自动去除"), !1;
|
|
106
|
+
we((d) => d.length >= 1 ? d : [...d, t]);
|
|
107
|
+
}
|
|
108
|
+
return !1;
|
|
109
|
+
};
|
|
110
|
+
A(() => {
|
|
111
|
+
Ne !== !1 && (!N && !S && !m || (m = m - _ - N - S, m < 101 ? N > 0 && S > 0 ? (x.error(`${N + S}个文件添加失败,格式、大小或数量不符合要求`), m = m - N - S) : N > 0 && S === 0 ? x.error(`${N}个文件添加失败,格式不符合要求`) : N === 0 && S > 0 ? x.error(`${S}个文件添加失败,单张图片超过14M`) : N === 0 && S === 0 && x.success("校验成功") : N + S === 0 ? (x.error(`${m - 100}个文件添加失败,超过数量限制`), m = 100) : (x.error(`${m - 100 + N + S}个文件添加失败,格式、大小或数量不符合要求`), m = m < 101 ? m : 100), ne(!1)));
|
|
112
|
+
}, [Ne]);
|
|
113
|
+
const Xe = (t) => {
|
|
114
|
+
const s = t.originFileObj;
|
|
115
|
+
return new Promise((a, o) => {
|
|
116
|
+
_e.md5(s, (d, c) => {
|
|
117
|
+
d && o(d), Ie(c, s), a(c);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
}, He = () => ce(void 0, null, function* () {
|
|
121
|
+
if (!h)
|
|
122
|
+
return;
|
|
123
|
+
const t = [];
|
|
124
|
+
for (let s = 0; s < h.length; s++) {
|
|
125
|
+
const a = h[s], o = yield Xe(a);
|
|
126
|
+
t.push(o);
|
|
127
|
+
}
|
|
128
|
+
!i || t.length === 0 || u == null || u.getDeduplication(t, i).then((s) => {
|
|
129
|
+
De(s), ve(!1);
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
A(() => {
|
|
133
|
+
He();
|
|
134
|
+
}, [h]);
|
|
135
|
+
const Ie = (t, s) => {
|
|
136
|
+
s.md5 = t, he.push(s);
|
|
137
|
+
}, Fe = ({
|
|
138
|
+
fileList: t
|
|
139
|
+
}) => {
|
|
140
|
+
if (n === "zip")
|
|
141
|
+
return;
|
|
142
|
+
ve(!0);
|
|
143
|
+
const s = t.filter((a) => a.size && a.size <= re ? oe.some((o) => a.type === o) : !1);
|
|
144
|
+
s.splice(100, s.length), s.length < h.length ? (Se(s), _++) : (T = T - _, _ = 0, T++, T == s.length && Se(s), T > s.length && (T = s.length));
|
|
145
|
+
}, $e = () => {
|
|
146
|
+
n === "zip" && (ae.current = !0), F(!1);
|
|
147
|
+
}, Qe = () => {
|
|
148
|
+
if (n === "image") {
|
|
149
|
+
if (!M)
|
|
150
|
+
return;
|
|
151
|
+
let t = 0, s = 0;
|
|
152
|
+
if (M.duplicated.length !== 0 && M.duplicated.map((a, o) => {
|
|
153
|
+
var C;
|
|
154
|
+
const d = M.duplicatedMd5[o], c = ((C = h.find((b) => {
|
|
155
|
+
var g;
|
|
156
|
+
return ((g = b.originFileObj) == null ? void 0 : g.md5) === d;
|
|
157
|
+
})) == null ? void 0 : C.name) || "";
|
|
158
|
+
ie.push({
|
|
159
|
+
labels: [],
|
|
160
|
+
fileKey: a,
|
|
161
|
+
sampleFileName: {
|
|
162
|
+
name: c
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}), M.unduplicated.length !== 0) {
|
|
166
|
+
const a = M.unduplicated.map((o) => new Promise((d) => {
|
|
167
|
+
const c = he.find((B) => B.md5 === o);
|
|
168
|
+
if (!c)
|
|
169
|
+
return d();
|
|
170
|
+
const C = c.name, b = C.substring(C.indexOf(".")), g = Y.find((B) => B.name === C), P = {
|
|
171
|
+
"Content-Type": "application/octet-stream",
|
|
172
|
+
"X-Amz-Meta-Width": g == null ? void 0 : g.width,
|
|
173
|
+
"X-Amz-Meta-Height": g == null ? void 0 : g.height
|
|
174
|
+
}, j = `dataset/${i}/sample/${o}${jl(b)}`;
|
|
175
|
+
delete c.md5;
|
|
176
|
+
const $ = new FileReader();
|
|
177
|
+
$.readAsArrayBuffer(c), $.onload = (B) => {
|
|
178
|
+
I.initMinio({
|
|
179
|
+
endPoint: l == null ? void 0 : l.endpoints[0],
|
|
180
|
+
useSSL: l == null ? void 0 : l.useSSL,
|
|
181
|
+
accessKey: l == null ? void 0 : l.accessKey,
|
|
182
|
+
secretKey: l == null ? void 0 : l.secretKey
|
|
183
|
+
}), I.putObjectBuffer(V, j, B.target.result, P, (L, $l) => {
|
|
184
|
+
J(!0), s += 1, L && (t += 1, Ge(t)), Ke(s), ye.push({
|
|
185
|
+
labels: [],
|
|
186
|
+
fileKey: `${V}/${j}`,
|
|
187
|
+
sampleFileName: {
|
|
188
|
+
name: C
|
|
189
|
+
}
|
|
190
|
+
}), d();
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
}));
|
|
194
|
+
Promise.all(a).then(() => {
|
|
195
|
+
!i || !f || setTimeout(() => {
|
|
196
|
+
u == null || u.postDatasetsIdVersionsVidSamples(i, f.id, {
|
|
197
|
+
samples: ye.concat(ie)
|
|
198
|
+
}).then(() => {
|
|
199
|
+
u.getDatasetsIdVersionsVid(i, f.id).then((o) => {
|
|
200
|
+
be(o.samplesCount - f.samplesCount);
|
|
201
|
+
}), Q(!0), z && z(!1);
|
|
202
|
+
});
|
|
203
|
+
}, 100);
|
|
204
|
+
});
|
|
205
|
+
} else {
|
|
206
|
+
if (!i || !f)
|
|
207
|
+
return;
|
|
208
|
+
u == null || u.postDatasetsIdVersionsVidSamples(i, f.id, {
|
|
209
|
+
samples: ie
|
|
210
|
+
}).then(() => {
|
|
211
|
+
u.getDatasetsIdVersionsVid(i, f.id).then((a) => {
|
|
212
|
+
be(a.samplesCount - f.samplesCount);
|
|
213
|
+
}), Q(!0), z && z(!1);
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
} else
|
|
217
|
+
Ye(E);
|
|
218
|
+
}, Ye = (t) => {
|
|
219
|
+
!i || !f || t.map((s, a) => {
|
|
220
|
+
var b;
|
|
221
|
+
const o = {
|
|
222
|
+
"Content-Type": "application/octet-stream"
|
|
223
|
+
}, d = {
|
|
224
|
+
endPoint: l == null ? void 0 : l.endpoints[0],
|
|
225
|
+
useSSL: l == null ? void 0 : l.useSSL,
|
|
226
|
+
accessKey: l == null ? void 0 : l.accessKey,
|
|
227
|
+
secretKey: l == null ? void 0 : l.secretKey
|
|
228
|
+
}, c = (l == null ? void 0 : l.prefix) + ((b = t[0]) == null ? void 0 : b.name), C = new FileReader();
|
|
229
|
+
C.readAsArrayBuffer(s), C.onload = (g) => {
|
|
230
|
+
I.initMinio(d), I.putObjectBuffer(l == null ? void 0 : l.bucket, c, g.target.result, o, (P, j) => {
|
|
231
|
+
if (P)
|
|
232
|
+
console.log(P);
|
|
233
|
+
else {
|
|
234
|
+
if (ae.current)
|
|
235
|
+
return;
|
|
236
|
+
J(!0), u == null || u.postUploadPicsZip(i, f.id, Ue({
|
|
237
|
+
zipUrls: [(l == null ? void 0 : l.bucket) + "/" + c]
|
|
238
|
+
}, Z === "ocr" && {
|
|
239
|
+
type: k === "labeled" ? 1 : 0
|
|
240
|
+
})).then(($) => {
|
|
241
|
+
el($), qe($);
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
};
|
|
246
|
+
});
|
|
247
|
+
}, el = (t) => ce(void 0, null, function* () {
|
|
248
|
+
var s;
|
|
249
|
+
if (!(!i || !f || !u))
|
|
250
|
+
try {
|
|
251
|
+
const a = yield u.checkFileResult(i, f.id, {
|
|
252
|
+
taskId: t
|
|
253
|
+
}, 5e3, (o) => {
|
|
254
|
+
je(o);
|
|
255
|
+
});
|
|
256
|
+
a && Ze(JSON.parse(a));
|
|
257
|
+
} catch (a) {
|
|
258
|
+
if (((s = a.cause) == null ? void 0 : s.code) === -101) {
|
|
259
|
+
ke(!0);
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
A(() => {
|
|
265
|
+
v && (je(100), le(!0));
|
|
266
|
+
}, [v]), A(() => {
|
|
267
|
+
se !== 0 && (Q(!1), z && z(!0));
|
|
268
|
+
}, [se]), A(() => {
|
|
269
|
+
W !== -1 && (le(!0), te(!1));
|
|
270
|
+
}, [W]);
|
|
271
|
+
const ll = () => {
|
|
272
|
+
Be(), le(!1), me && me();
|
|
273
|
+
}, Be = () => {
|
|
274
|
+
w(), J(!1), F(!1), ue && ue(), q && q();
|
|
275
|
+
}, tl = /* @__PURE__ */ p("div", {
|
|
276
|
+
children: [/* @__PURE__ */ e(Cl, {}), /* @__PURE__ */ e("div", {
|
|
277
|
+
style: {
|
|
278
|
+
marginTop: 8
|
|
279
|
+
},
|
|
280
|
+
children: "添加图片"
|
|
281
|
+
})]
|
|
282
|
+
}), sl = (t) => {
|
|
283
|
+
const s = E.filter((a) => a.uid !== t.uid);
|
|
284
|
+
we(s);
|
|
285
|
+
}, il = () => {
|
|
286
|
+
k === "labeled" ? window.location.href = `${fe}/%E6%A0%87%E6%B3%A8%E6%A0%BC%E5%BC%8F%E7%A4%BA%E4%BE%8B.zip` : window.location.href = `${fe}/%E7%A4%BA%E4%BE%8B%E5%8E%8B%E7%BC%A9%E5%8C%85.zip`;
|
|
287
|
+
}, nl = () => {
|
|
288
|
+
w(), ke(!1), J(!1), F(!1);
|
|
289
|
+
};
|
|
290
|
+
return A(() => {
|
|
291
|
+
xe === "labeled" && X.setFieldsValue({
|
|
292
|
+
labelFormat: "json",
|
|
293
|
+
acceptType: "zip"
|
|
294
|
+
/* Zip */
|
|
295
|
+
});
|
|
296
|
+
}, [xe]), /* @__PURE__ */ p(de, {
|
|
297
|
+
children: [/* @__PURE__ */ e(H, {
|
|
298
|
+
className: "upload-pics",
|
|
299
|
+
width: 600,
|
|
300
|
+
title: "导入数据",
|
|
301
|
+
open: D,
|
|
302
|
+
destroyOnClose: !0,
|
|
303
|
+
onCancel: () => $e(),
|
|
304
|
+
maskClosable: !1,
|
|
305
|
+
centered: !0,
|
|
306
|
+
footer: [/* @__PURE__ */ e(O, {
|
|
307
|
+
onClick: $e,
|
|
308
|
+
children: "取消"
|
|
309
|
+
}, "cancel"), /* @__PURE__ */ e(O, {
|
|
310
|
+
type: "primary",
|
|
311
|
+
htmlType: "submit",
|
|
312
|
+
form: "importModal",
|
|
313
|
+
disabled: n === "image" && !h.length || n === "zip" && !E.length || ee && ze == 0 || Je,
|
|
314
|
+
loading: K == !0,
|
|
315
|
+
onClick: () => {
|
|
316
|
+
Qe(), te(!0);
|
|
317
|
+
},
|
|
318
|
+
children: "导入"
|
|
319
|
+
}, "confirm")],
|
|
320
|
+
children: /* @__PURE__ */ p(U, {
|
|
321
|
+
className: "file-form",
|
|
322
|
+
preserve: !1,
|
|
323
|
+
form: X,
|
|
324
|
+
initialValues: {
|
|
325
|
+
acceptType: "image",
|
|
326
|
+
labelState: "unlabeled"
|
|
327
|
+
/* Unlabeled */
|
|
328
|
+
},
|
|
329
|
+
name: "modal",
|
|
330
|
+
labelAlign: "left",
|
|
331
|
+
labelCol: {
|
|
332
|
+
style: {
|
|
333
|
+
width: 110
|
|
334
|
+
}
|
|
335
|
+
},
|
|
336
|
+
children: [Z === "ocr" && /* @__PURE__ */ e(U.Item, {
|
|
337
|
+
label: "数据标注状态",
|
|
338
|
+
name: "labelState",
|
|
339
|
+
rules: [{
|
|
340
|
+
required: !0,
|
|
341
|
+
message: "请选择数据标注状态"
|
|
342
|
+
}],
|
|
343
|
+
children: /* @__PURE__ */ p(R.Group, {
|
|
344
|
+
disabled: K,
|
|
345
|
+
onChange: (t) => {
|
|
346
|
+
We(t.target.value);
|
|
347
|
+
},
|
|
348
|
+
children: [/* @__PURE__ */ e(R, {
|
|
349
|
+
value: "unlabeled",
|
|
350
|
+
children: "无标注信息"
|
|
351
|
+
}), /* @__PURE__ */ e(R, {
|
|
352
|
+
value: "labeled",
|
|
353
|
+
children: "有标注信息"
|
|
354
|
+
})]
|
|
355
|
+
})
|
|
356
|
+
}), k === "labeled" && /* @__PURE__ */ e(U.Item, {
|
|
357
|
+
label: "标注格式",
|
|
358
|
+
name: "labelFormat",
|
|
359
|
+
rules: [{
|
|
360
|
+
required: !0,
|
|
361
|
+
message: "请选择标注格式"
|
|
362
|
+
}],
|
|
363
|
+
children: /* @__PURE__ */ e(R.Group, {
|
|
364
|
+
disabled: K,
|
|
365
|
+
children: /* @__PURE__ */ e(R, {
|
|
366
|
+
value: "json",
|
|
367
|
+
children: "json"
|
|
368
|
+
})
|
|
369
|
+
})
|
|
370
|
+
}), /* @__PURE__ */ e(U.Item, {
|
|
371
|
+
label: "导入方式",
|
|
372
|
+
name: "acceptType",
|
|
373
|
+
rules: [{
|
|
374
|
+
required: !0,
|
|
375
|
+
message: "请选择导入方式"
|
|
376
|
+
}],
|
|
377
|
+
children: /* @__PURE__ */ p(R.Group, {
|
|
378
|
+
disabled: K,
|
|
379
|
+
children: [k !== "labeled" && /* @__PURE__ */ e(R.Button, {
|
|
380
|
+
value: "image",
|
|
381
|
+
children: "上传图片"
|
|
382
|
+
}), /* @__PURE__ */ e(R.Button, {
|
|
383
|
+
value: "zip",
|
|
384
|
+
children: "上传压缩包"
|
|
385
|
+
})]
|
|
386
|
+
})
|
|
387
|
+
}), /* @__PURE__ */ p("div", {
|
|
388
|
+
className: "file-upload",
|
|
389
|
+
children: [(n === "image" && !h.length || n === "zip") && /* @__PURE__ */ p(yl, {
|
|
390
|
+
name: "file",
|
|
391
|
+
showUploadList: !1,
|
|
392
|
+
multiple: !0,
|
|
393
|
+
beforeUpload: Re,
|
|
394
|
+
accept: n === "zip" ? ".zip" : "image/png, image/jpeg, image/jpg, image/bmp",
|
|
395
|
+
maxCount: n === "zip" ? 1 : void 0,
|
|
396
|
+
onChange: Fe,
|
|
397
|
+
disabled: n === "zip" ? E.length === 1 : !1,
|
|
398
|
+
children: [/* @__PURE__ */ e("span", {
|
|
399
|
+
className: "file-upload-icon",
|
|
400
|
+
children: /* @__PURE__ */ e(fl, {})
|
|
401
|
+
}), /* @__PURE__ */ p(Oe, {
|
|
402
|
+
className: "file-upload-action",
|
|
403
|
+
children: [n === "image" && "拖拽图片至此,或者", n === "zip" && "拖拽包含“图片”的压缩包至此,或者", /* @__PURE__ */ e(O, {
|
|
404
|
+
type: "link",
|
|
405
|
+
style: {
|
|
406
|
+
padding: 0
|
|
407
|
+
},
|
|
408
|
+
disabled: n === "zip" ? E.length === 1 : !1,
|
|
409
|
+
children: n === "image" ? "上传图片" : "上传压缩包"
|
|
410
|
+
})]
|
|
411
|
+
}), n === "image" && /* @__PURE__ */ p("div", {
|
|
412
|
+
className: "file-upload-desc",
|
|
413
|
+
style: {
|
|
414
|
+
width: 350
|
|
415
|
+
},
|
|
416
|
+
children: [/* @__PURE__ */ e("div", {
|
|
417
|
+
className: "item-upload-desc item-upload-desc__1",
|
|
418
|
+
children: "1. 支持jpg、png 、jpeg 、bmp格式,单张图片不超过14M;"
|
|
419
|
+
}), /* @__PURE__ */ e("div", {
|
|
420
|
+
className: "item-upload-desc",
|
|
421
|
+
children: "2. 单次上传最多可选择100个文件。"
|
|
422
|
+
})]
|
|
423
|
+
}), n === "zip" && /* @__PURE__ */ p("div", {
|
|
424
|
+
className: "file-upload-desc",
|
|
425
|
+
style: {
|
|
426
|
+
width: 350
|
|
427
|
+
},
|
|
428
|
+
children: [/* @__PURE__ */ e("div", {
|
|
429
|
+
className: "item-upload-desc item-upload-desc__1",
|
|
430
|
+
children: "1. 仅支持.zip格式,单个压缩包不超过2G;"
|
|
431
|
+
}), k === "labeled" ? /* @__PURE__ */ p(de, {
|
|
432
|
+
children: [/* @__PURE__ */ e("div", {
|
|
433
|
+
className: "item-upload-desc",
|
|
434
|
+
children: "2. 压缩包内每张图片(jpg、png 、jpeg 、bmp格式)需要对应一个json文件,名称需一致,位置处在一级目录下;"
|
|
435
|
+
}), /* @__PURE__ */ e("div", {
|
|
436
|
+
className: "item-upload-desc",
|
|
437
|
+
children: "3. json文件需包含标签、4点坐标,格式可参考样例。"
|
|
438
|
+
})]
|
|
439
|
+
}) : /* @__PURE__ */ e("div", {
|
|
440
|
+
className: "item-upload-desc",
|
|
441
|
+
children: "2. 压缩包内图片格式要求为:图片类型为jpg/png/bmp/jpeg,单张图片不超过14M;"
|
|
442
|
+
}), /* @__PURE__ */ p("div", {
|
|
443
|
+
className: "item-upload-desc",
|
|
444
|
+
children: [k === "labeled" ? 4 : 3, ". 单次仅可上传1个文件。"]
|
|
445
|
+
})]
|
|
446
|
+
})]
|
|
447
|
+
}), n === "image" && h.length ? /* @__PURE__ */ e("div", {
|
|
448
|
+
className: "picture-upload",
|
|
449
|
+
children: /* @__PURE__ */ e(pl, {
|
|
450
|
+
listType: "picture-card",
|
|
451
|
+
fileList: h,
|
|
452
|
+
multiple: !0,
|
|
453
|
+
showUploadList: {
|
|
454
|
+
showPreviewIcon: !1
|
|
455
|
+
},
|
|
456
|
+
beforeUpload: Re,
|
|
457
|
+
accept: "image/png, image/jpeg, image/jpg, image/bmp",
|
|
458
|
+
onChange: Fe,
|
|
459
|
+
children: h.length < 100 ? tl : null
|
|
460
|
+
})
|
|
461
|
+
}) : /* @__PURE__ */ e(de, {}), n === "zip" && /* @__PURE__ */ p("div", {
|
|
462
|
+
className: "upload-wrapper",
|
|
463
|
+
children: [E != null && E.length ? /* @__PURE__ */ e("div", {
|
|
464
|
+
className: "upload-main",
|
|
465
|
+
children: /* @__PURE__ */ e(pe, {
|
|
466
|
+
gutter: [24, 8],
|
|
467
|
+
className: "upload-pannel",
|
|
468
|
+
children: E.map((t) => /* @__PURE__ */ e(ul, {
|
|
469
|
+
span: 24,
|
|
470
|
+
className: "upload-item",
|
|
471
|
+
children: /* @__PURE__ */ p(pe, {
|
|
472
|
+
justify: "space-between",
|
|
473
|
+
align: "middle",
|
|
474
|
+
children: [/* @__PURE__ */ p(pe, {
|
|
475
|
+
align: "middle",
|
|
476
|
+
children: [/* @__PURE__ */ e("span", {
|
|
477
|
+
className: "upload-item-file-icon",
|
|
478
|
+
children: /* @__PURE__ */ e(hl, {})
|
|
479
|
+
}), /* @__PURE__ */ e("span", {
|
|
480
|
+
className: "upload-item-name",
|
|
481
|
+
children: t.name
|
|
482
|
+
})]
|
|
483
|
+
}), /* @__PURE__ */ e(O, {
|
|
484
|
+
className: "upload-item-upload-delete",
|
|
485
|
+
type: "link",
|
|
486
|
+
disabled: K,
|
|
487
|
+
onClick: () => sl(t),
|
|
488
|
+
children: /* @__PURE__ */ e(gl, {})
|
|
489
|
+
})]
|
|
490
|
+
})
|
|
491
|
+
}, t.uid))
|
|
492
|
+
})
|
|
493
|
+
}) : null, n === "zip" && /* @__PURE__ */ p("div", {
|
|
494
|
+
className: "upload-example",
|
|
495
|
+
children: [/* @__PURE__ */ e("div", {
|
|
496
|
+
className: "upload-example-header",
|
|
497
|
+
children: /* @__PURE__ */ p(Oe, {
|
|
498
|
+
children: [/* @__PURE__ */ e("span", {
|
|
499
|
+
children: "数据示例:"
|
|
500
|
+
}), /* @__PURE__ */ e(O, {
|
|
501
|
+
size: "small",
|
|
502
|
+
type: "link",
|
|
503
|
+
style: {
|
|
504
|
+
padding: 0
|
|
505
|
+
},
|
|
506
|
+
onClick: (t) => {
|
|
507
|
+
t.stopPropagation(), il();
|
|
508
|
+
},
|
|
509
|
+
children: "下载示例 >"
|
|
510
|
+
})]
|
|
511
|
+
})
|
|
512
|
+
}), /* @__PURE__ */ e("div", {
|
|
513
|
+
className: "upload-example-main",
|
|
514
|
+
children: /* @__PURE__ */ e("img", {
|
|
515
|
+
src: k === "labeled" ? Sl : Nl
|
|
516
|
+
})
|
|
517
|
+
})]
|
|
518
|
+
})]
|
|
519
|
+
})]
|
|
520
|
+
})]
|
|
521
|
+
})
|
|
522
|
+
}), ee && /* @__PURE__ */ e(H, {
|
|
523
|
+
className: "uploading-modal",
|
|
524
|
+
width: 404,
|
|
525
|
+
title: null,
|
|
526
|
+
open: ee,
|
|
527
|
+
maskClosable: !1,
|
|
528
|
+
closable: n !== "image",
|
|
529
|
+
onCancel: () => {
|
|
530
|
+
Be();
|
|
531
|
+
},
|
|
532
|
+
footer: null,
|
|
533
|
+
children: /* @__PURE__ */ e("div", {
|
|
534
|
+
className: "upload-spin",
|
|
535
|
+
children: /* @__PURE__ */ e(ml, {
|
|
536
|
+
tip: n === "image" ? `数据导入中(${se}/${h.length}),请耐心等待` : `处理中(${ze}/100%),请耐心等待`,
|
|
537
|
+
size: "large",
|
|
538
|
+
children: /* @__PURE__ */ e("div", {
|
|
539
|
+
className: "content"
|
|
540
|
+
})
|
|
541
|
+
})
|
|
542
|
+
})
|
|
543
|
+
}), ge && /* @__PURE__ */ e(H, {
|
|
544
|
+
className: "result",
|
|
545
|
+
width: 424,
|
|
546
|
+
title: null,
|
|
547
|
+
open: ge,
|
|
548
|
+
closable: !1,
|
|
549
|
+
footer: null,
|
|
550
|
+
children: /* @__PURE__ */ e("div", {
|
|
551
|
+
className: "upload-result",
|
|
552
|
+
children: /* @__PURE__ */ e(Te, {
|
|
553
|
+
status: "success",
|
|
554
|
+
title: n === "image" ? `数据导入完成,成功${W}个,失败${Ce}个,去重${h.length - W - Ce}个` : v && `数据导入完成,格式不符合的图片${v.formatErrorCount || 0}个,成功${v.successCount || 0}个,去重${v.repeatCount || 0}个,失败${v.failedCount || 0}个` + (k === "labeled" ? `(Json格式不符合${v.labelErrorCount}个)` : ""),
|
|
555
|
+
extra: [/* @__PURE__ */ e(O, {
|
|
556
|
+
onClick: ll,
|
|
557
|
+
children: "关闭"
|
|
558
|
+
}, "close")]
|
|
559
|
+
})
|
|
560
|
+
})
|
|
561
|
+
}), Ee && /* @__PURE__ */ e(H, {
|
|
562
|
+
className: "result",
|
|
563
|
+
width: 424,
|
|
564
|
+
title: null,
|
|
565
|
+
open: Ee,
|
|
566
|
+
closable: !1,
|
|
567
|
+
footer: null,
|
|
568
|
+
children: /* @__PURE__ */ e("div", {
|
|
569
|
+
className: "upload-result",
|
|
570
|
+
children: /* @__PURE__ */ e(Te, {
|
|
571
|
+
status: "error",
|
|
572
|
+
title: "文件处理失败",
|
|
573
|
+
extra: [/* @__PURE__ */ e(O, {
|
|
574
|
+
onClick: nl,
|
|
575
|
+
children: "关闭"
|
|
576
|
+
}, "close")]
|
|
577
|
+
})
|
|
578
|
+
})
|
|
579
|
+
})]
|
|
580
|
+
});
|
|
581
|
+
};
|
|
582
|
+
export {
|
|
583
|
+
Jl as default
|
|
584
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const M = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUxIiBoZWlnaHQ9IjEyMCIgdmlld0JveD0iMCAwIDI1MSAxMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTcuNjI4NiAzOS4yMzgyQzE3Ljg2NzEgMzkuMTQyOCAxOC4xMzMgMzkuMTQyOCAxOC4zNzE0IDM5LjIzODJMMzQuNTE0MiA0NS42OTUzQzM1LjIxMDIgNDUuOTczNyAzNS42NjY3IDQ2LjY0NzggMzUuNjY2NyA0Ny4zOTc1VjcxQzM1LjY2NjcgNzIuMDEyNSAzNC44NDU5IDcyLjgzMzMgMzMuODMzNCA3Mi44MzMzSDIuMTY2NzFDMS4xNTQyIDcyLjgzMzMgMC4zMzMzNzQgNzIuMDEyNiAwLjMzMzM3NCA3MVY0Ny4zOTc1QzAuMzMzMzc0IDQ2LjY0NzkgMC43ODk3MjQgNDUuOTczNyAxLjQ4NTgyIDQ1LjY5NTRMMTcuNjI4NiAzOS4yMzgyWk0xOCA0MS4yNDM3TDIuMzMzMzcgNDcuNTEwNFY3MC44MzMzSDMzLjY2NjdWNDcuNTEwNEwxOCA0MS4yNDM3WiIgZmlsbD0iIzMzMzMzMyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE4IDUzLjMzMzNDMTguNTUyMyA1My4zMzMzIDE5IDUzLjc4MTEgMTkgNTQuMzMzM1Y2Mi42NjY3QzE5IDYzLjIxOSAxOC41NTIzIDYzLjY2NjcgMTggNjMuNjY2N0MxNy40NDc4IDYzLjY2NjcgMTcgNjMuMjE5IDE3IDYyLjY2NjdWNTQuMzMzM0MxNyA1My43ODExIDE3LjQ0NzggNTMuMzMzMyAxOCA1My4zMzMzWiIgZmlsbD0iIzMzMzMzMyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIyIDU0LjU4MzNDMjIgNTMuODkzIDIyLjU1OTcgNTMuMzMzMyAyMy4yNSA1My4zMzMzSDI1LjVDMjcuMjU0NiA1My4zMzMzIDI5IDU0LjU1MDggMjkgNTYuNDE2N0MyOSA1OC4yODI1IDI3LjI1NDYgNTkuNSAyNS41IDU5LjVDMjMuNzQ1NSA1OS41IDIyIDU4LjI4MjUgMjIgNTYuNDE2N1Y1NC41ODMzWk0yNCA1NS4zMzMzVjU2LjQxNjdDMjQgNTYuODUyIDI0LjQ5MzEgNTcuNSAyNS41IDU3LjVDMjYuNTA3IDU3LjUgMjcgNTYuODUyIDI3IDU2LjQxNjdDMjcgNTUuOTgxMyAyNi41MDcgNTUuMzMzMyAyNS41IDU1LjMzMzNIMjRaIiBmaWxsPSIjMzMzMzMzIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjMgNTMuMzMzM0MyMy41NTIzIDUzLjMzMzMgMjQgNTMuNzgxMSAyNCA1NC4zMzMzVjYyLjY2NjdDMjQgNjMuMjE5IDIzLjU1MjMgNjMuNjY2NyAyMyA2My42NjY3QzIyLjQ0NzggNjMuNjY2NyAyMiA2My4yMTkgMjIgNjIuNjY2N1Y1NC4zMzMzQzIyIDUzLjc4MTEgMjIuNDQ3OCA1My4zMzMzIDIzIDUzLjMzMzNaIiBmaWxsPSIjMzMzMzMzIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNy4wMDAwNCA1NC4zMzMzQzcuMDAwMDQgNTMuNzgxMSA3LjQ0Nzc2IDUzLjMzMzMgOC4wMDAwNCA1My4zMzMzSDEzLjAwMzlDMTMuMzY0MiA1My4zMzMzIDEzLjY5NjcgNTMuNTI3MiAxMy44NzQyIDUzLjg0MDhDMTQuMDUxNiA1NC4xNTQ0IDE0LjA0NjcgNTQuNTM5MiAxMy44NjEyIDU0Ljg0ODFMOS43NjY5OSA2MS42NjYxSDEzLjAwMzlDMTMuNTU2MiA2MS42NjYxIDE0LjAwMzkgNjIuMTEzOCAxNC4wMDM5IDYyLjY2NjFDMTQuMDAzOSA2My4yMTg0IDEzLjU1NjIgNjMuNjY2MSAxMy4wMDM5IDYzLjY2NjFIOC4wMDAwNEM3LjYzOTcgNjMuNjY2MSA3LjMwNzIzIDYzLjQ3MjIgNy4xMjk3NSA2My4xNTg2QzYuOTUyMjcgNjIuODQ1IDYuOTU3MjMgNjIuNDYwMiA3LjE0Mjc0IDYyLjE1MTNMMTEuMjM2OSA1NS4zMzMzSDguMDAwMDRDNy40NDc3NiA1NS4zMzMzIDcuMDAwMDQgNTQuODg1NiA3LjAwMDA0IDU0LjMzMzNaIiBmaWxsPSIjMzMzMzMzIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjE5LjgzMyAyQzIxOS40NjUgMiAyMTkuMTY3IDIuMjk4NDggMjE5LjE2NyAyLjY2NjY3VjIwLjI1MjVMMjI1Ljc5MyAxMy42MjYyQzIyNi4xNTMgMTMuMjY1OSAyMjYuNzI3IDEzLjIzNDIgMjI3LjEyNSAxMy41NTI1TDIzMC41MzcgMTYuMjgxOUwyMzQuOTA3IDExLjE4MjVDMjM1LjI1MyAxMC43Nzk3IDIzNS44NTMgMTAuNzE2NiAyMzYuMjc0IDExLjAzOUwyNDguODMzIDIwLjY0MzFWMi42NjY2N0MyNDguODMzIDIuMjk4NDcgMjQ4LjUzNSAyIDI0OC4xNjcgMkgyMTkuODMzWk0yNTAuODMzIDIuNjY2NjdDMjUwLjgzMyAxLjE5MzkyIDI0OS42MzkgMCAyNDguMTY3IDBIMjE5LjgzM0MyMTguMzYxIDAgMjE3LjE2NyAxLjE5MzkxIDIxNy4xNjcgMi42NjY2N1YyNkMyMTcuMTY3IDI3LjQ3MjggMjE4LjM2MSAyOC42NjY3IDIxOS44MzMgMjguNjY2N0gyNDguMTY3QzI0OS42MzkgMjguNjY2NyAyNTAuODMzIDI3LjQ3MjggMjUwLjgzMyAyNlYyLjY2NjY3Wk0yNDguODMzIDIzLjE2MDhMMjM1LjgxMSAxMy4yMDIyTDIzMS40MjYgMTguMzE3NUMyMzEuMDc1IDE4LjcyNjggMjMwLjQ2MyAxOC43ODQzIDIzMC4wNDIgMTguNDQ3NUwyMjYuNTc0IDE1LjY3MzNMMjE5LjE2NyAyMy4wODA5VjI2QzIxOS4xNjcgMjYuMzY4MiAyMTkuNDY1IDI2LjY2NjcgMjE5LjgzMyAyNi42NjY3SDI0OC4xNjdDMjQ4LjUzNSAyNi42NjY3IDI0OC44MzMgMjYuMzY4MiAyNDguODMzIDI2VjIzLjE2MDhaTTIyMy44MzMgOC4wODMzM0MyMjMuODMzIDYuODQwNzIgMjI0Ljg0MSA1LjgzMzMzIDIyNi4wODMgNS44MzMzM0MyMjcuMzI2IDUuODMzMzMgMjI4LjMzMyA2Ljg0MDcyIDIyOC4zMzMgOC4wODMzM0MyMjguMzMzIDkuMzI1OTUgMjI3LjMyNiAxMC4zMzMzIDIyNi4wODMgMTAuMzMzM0MyMjQuODQxIDEwLjMzMzMgMjIzLjgzMyA5LjMyNTk1IDIyMy44MzMgOC4wODMzM1pNMjI2LjA4MyA3LjgzMzMzQzIyNS45NDUgNy44MzMzMyAyMjUuODMzIDcuOTQ1MjkgMjI1LjgzMyA4LjA4MzMzQzIyNS44MzMgOC4yMjEzOCAyMjUuOTQ1IDguMzMzMzMgMjI2LjA4MyA4LjMzMzMzQzIyNi4yMjEgOC4zMzMzMyAyMjYuMzMzIDguMjIxMzggMjI2LjMzMyA4LjA4MzMzQzIyNi4zMzMgNy45NDUyOCAyMjYuMjIxIDcuODMzMzMgMjI2LjA4MyA3LjgzMzMzWk0yMTkuODMzIDQ1QzIxOS40NjUgNDUgMjE5LjE2NyA0NS4yOTg1IDIxOS4xNjcgNDUuNjY2N1Y2My4yNTI0TDIyNS43OTMgNTYuNjI2MkMyMjYuMTUzIDU2LjI2NTkgMjI2LjcyNyA1Ni4yMzQxIDIyNy4xMjUgNTYuNTUyNUwyMzAuNTM3IDU5LjI4MTlMMjM0LjkwNyA1NC4xODI1QzIzNS4yNTMgNTMuNzc5NyAyMzUuODUzIDUzLjcxNjYgMjM2LjI3NCA1NC4wMzlMMjQ4LjgzMyA2My42NDMxVjQ1LjY2NjdDMjQ4LjgzMyA0NS4yOTg1IDI0OC41MzUgNDUgMjQ4LjE2NyA0NUgyMTkuODMzWk0yNTAuODMzIDQ1LjY2NjdDMjUwLjgzMyA0NC4xOTM5IDI0OS42MzkgNDMgMjQ4LjE2NyA0M0gyMTkuODMzQzIxOC4zNjEgNDMgMjE3LjE2NyA0NC4xOTM5IDIxNy4xNjcgNDUuNjY2N1Y2OUMyMTcuMTY3IDcwLjQ3MjggMjE4LjM2MSA3MS42NjY3IDIxOS44MzMgNzEuNjY2N0gyNDguMTY3QzI0OS42MzkgNzEuNjY2NyAyNTAuODMzIDcwLjQ3MjggMjUwLjgzMyA2OVY0NS42NjY3Wk0yNDguODMzIDY2LjE2MDhMMjM1LjgxMSA1Ni4yMDIyTDIzMS40MjYgNjEuMzE3NUMyMzEuMDc1IDYxLjcyNjggMjMwLjQ2MyA2MS43ODQzIDIzMC4wNDIgNjEuNDQ3NUwyMjYuNTc0IDU4LjY3MzNMMjE5LjE2NyA2Ni4wODA5VjY5QzIxOS4xNjcgNjkuMzY4MiAyMTkuNDY1IDY5LjY2NjcgMjE5LjgzMyA2OS42NjY3SDI0OC4xNjdDMjQ4LjUzNSA2OS42NjY3IDI0OC44MzMgNjkuMzY4MiAyNDguODMzIDY5VjY2LjE2MDhaTTIyMy44MzMgNTEuMDgzM0MyMjMuODMzIDQ5Ljg0MDcgMjI0Ljg0MSA0OC44MzMzIDIyNi4wODMgNDguODMzM0MyMjcuMzI2IDQ4LjgzMzMgMjI4LjMzMyA0OS44NDA3IDIyOC4zMzMgNTEuMDgzM0MyMjguMzMzIDUyLjMyNiAyMjcuMzI2IDUzLjMzMzMgMjI2LjA4MyA1My4zMzMzQzIyNC44NDEgNTMuMzMzMyAyMjMuODMzIDUyLjMyNiAyMjMuODMzIDUxLjA4MzNaTTIyNi4wODMgNTAuODMzM0MyMjUuOTQ1IDUwLjgzMzMgMjI1LjgzMyA1MC45NDUzIDIyNS44MzMgNTEuMDgzM0MyMjUuODMzIDUxLjIyMTQgMjI1Ljk0NSA1MS4zMzMzIDIyNi4wODMgNTEuMzMzM0MyMjYuMjIxIDUxLjMzMzMgMjI2LjMzMyA1MS4yMjE0IDIyNi4zMzMgNTEuMDgzM0MyMjYuMzMzIDUwLjk0NTMgMjI2LjIyMSA1MC44MzMzIDIyNi4wODMgNTAuODMzM1pNMjE5LjgzMyA5Mi4zMzMzQzIxOS40NjUgOTIuMzMzMyAyMTkuMTY3IDkyLjYzMTggMjE5LjE2NyA5M1YxMTAuNTg2TDIyNS43OTMgMTAzLjk2QzIyNi4xNTMgMTAzLjU5OSAyMjYuNzI3IDEwMy41NjcgMjI3LjEyNSAxMDMuODg2TDIzMC41MzcgMTA2LjYxNUwyMzQuOTA3IDEwMS41MTZDMjM1LjI1MyAxMDEuMTEzIDIzNS44NTMgMTAxLjA1IDIzNi4yNzQgMTAxLjM3MkwyNDguODMzIDExMC45NzZWOTNDMjQ4LjgzMyA5Mi42MzE4IDI0OC41MzUgOTIuMzMzMyAyNDguMTY3IDkyLjMzMzNIMjE5LjgzM1pNMjUwLjgzMyA5M0MyNTAuODMzIDkxLjUyNzMgMjQ5LjY0IDkwLjMzMzMgMjQ4LjE2NyA5MC4zMzMzSDIxOS44MzNDMjE4LjM2MSA5MC4zMzMzIDIxNy4xNjcgOTEuNTI3MiAyMTcuMTY3IDkzVjExMi45NDdDMjE3LjA1OSAxMTMuMTEgMjE3IDExMy4zMDIgMjE3IDExMy41VjExNi44MzNDMjE3IDExOC4zMDYgMjE4LjE5NCAxMTkuNSAyMTkuNjY3IDExOS41SDI0OEMyNDkuMjcgMTE5LjUgMjUwLjMzMyAxMTguNjEyIDI1MC42MDEgMTE3LjQyM0MyNTAuNzUgMTE3LjA5IDI1MC44MzMgMTE2LjcyMiAyNTAuODMzIDExNi4zMzNWOTNaTTIxOS4xNjcgMTEzLjc0OFYxMTYuMzMzQzIxOS4xNjcgMTE2LjcwMiAyMTkuNDY1IDExNyAyMTkuODMzIDExN0gyNDguMTY3QzI0OC4zNjYgMTE3IDI0OC41NDUgMTE2LjkxMyAyNDguNjY3IDExNi43NzRWMTEzLjk5NEwyMzUuNjQ0IDEwNC4wMzVMMjMxLjI1OSAxMDkuMTUxQzIzMC45MDggMTA5LjU2IDIzMC4yOTYgMTA5LjYxOCAyMjkuODc1IDEwOS4yODFMMjI2LjQwOCAxMDYuNTA3TDIxOS4xNjcgMTEzLjc0OFpNMjIzLjgzMyA5OC40MTY2QzIyMy44MzMgOTcuMTc0IDIyNC44NDEgOTYuMTY2NiAyMjYuMDgzIDk2LjE2NjZDMjI3LjMyNiA5Ni4xNjY2IDIyOC4zMzMgOTcuMTc0IDIyOC4zMzMgOTguNDE2NkMyMjguMzMzIDk5LjY1OTMgMjI3LjMyNiAxMDAuNjY3IDIyNi4wODMgMTAwLjY2N0MyMjQuODQxIDEwMC42NjcgMjIzLjgzMyA5OS42NTkzIDIyMy44MzMgOTguNDE2NlpNMjI2LjA4MyA5OC4xNjY2QzIyNS45NDUgOTguMTY2NiAyMjUuODMzIDk4LjI3ODYgMjI1LjgzMyA5OC40MTY2QzIyNS44MzMgOTguNTU0NyAyMjUuOTQ1IDk4LjY2NjYgMjI2LjA4MyA5OC42NjY2QzIyNi4yMjEgOTguNjY2NiAyMjYuMzMzIDk4LjU1NDcgMjI2LjMzMyA5OC40MTY2QzIyNi4zMzMgOTguMjc4NiAyMjYuMjIxIDk4LjE2NjYgMjI2LjA4MyA5OC4xNjY2WiIgZmlsbD0iIzMzMzMzMyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwNi4wMTEgMTA3LjAxMUwxMDYgMTA4TDEwNSAxMDcuOTg5TDEwNS4wMTEgMTA3TDEwNi4wMTEgMTA3LjAxMVpNMTA2LjA1NCAxMDMuMDU0TDEwNi4wMzMgMTA1LjAzM0wxMDUuMDMzIDEwNS4wMjJMMTA1LjA1NCAxMDMuMDQzTDEwNi4wNTQgMTAzLjA1NFpNMTA2LjA5OCA5OS4wOTc4TDEwNi4wNzYgMTAxLjA3NkwxMDUuMDc2IDEwMS4wNjVMMTA1LjA5OCA5OS4wODY4TDEwNi4wOTggOTkuMDk3OFpNMTA2LjE0MSA5NS4xNDEzTDEwNi4xMiA5Ny4xMTk2TDEwNS4xMiA5Ny4xMDg2TDEwNS4xNDEgOTUuMTMwM0wxMDYuMTQxIDk1LjE0MTNaTTEwNi4xODUgOTEuMTg0OEwxMDYuMTYzIDkzLjE2M0wxMDUuMTYzIDkzLjE1MjFMMTA1LjE4NSA5MS4xNzM4TDEwNi4xODUgOTEuMTg0OFpNMTA2LjIyOCA4Ny4yMjgzTDEwNi4yMDcgODkuMjA2NUwxMDUuMjA3IDg5LjE5NTVMMTA1LjIyOCA4Ny4yMTczTDEwNi4yMjggODcuMjI4M1pNMTA2LjI3MiA4My4yNzE3TDEwNi4yNSA4NS4yNUwxMDUuMjUgODUuMjM5TDEwNS4yNzIgODMuMjYwN0wxMDYuMjcyIDgzLjI3MTdaTTEwNi4zMTUgNzkuMzE1MkwxMDYuMjk0IDgxLjI5MzVMMTA1LjI5NCA4MS4yODI1TDEwNS4zMTUgNzkuMzA0MkwxMDYuMzE1IDc5LjMxNTJaTTEwNi4zNTkgNzUuMzU4N0wxMDYuMzM3IDc3LjMzN0wxMDUuMzM3IDc3LjMyNkwxMDUuMzU5IDc1LjM0NzdMMTA2LjM1OSA3NS4zNTg3Wk0xMDYuNDAyIDcxLjQwMjJMMTA2LjM4IDczLjM4MDRMMTA1LjM4MSA3My4zNjk0TDEwNS40MDIgNzEuMzkxMkwxMDYuNDAyIDcxLjQwMjJaTTEwNi40NDYgNjcuNDQ1NkwxMDYuNDI0IDY5LjQyMzlMMTA1LjQyNCA2OS40MTI5TDEwNS40NDYgNjcuNDM0N0wxMDYuNDQ2IDY3LjQ0NTZaTTEwNi40ODkgNjMuNDg5MUwxMDYuNDY3IDY1LjQ2NzRMMTA1LjQ2NyA2NS40NTY0TDEwNS40ODkgNjMuNDc4MUwxMDYuNDg5IDYzLjQ4OTFaTTEwNi41MzMgNTkuNTMyNkwxMDYuNTExIDYxLjUxMDlMMTA1LjUxMSA2MS40OTk5TDEwNS41MzMgNTkuNTIxNkwxMDYuNTMzIDU5LjUzMjZaTTEwNi41NzYgNTUuNTc2MUwxMDYuNTU0IDU3LjU1NDNMMTA1LjU1NCA1Ny41NDMzTDEwNS41NzYgNTUuNTY1MUwxMDYuNTc2IDU1LjU3NjFaTTEwNi42MiA1MS42MTk1TDEwNi41OTggNTMuNTk3OEwxMDUuNTk4IDUzLjU4NjhMMTA1LjYyIDUxLjYwODZMMTA2LjYyIDUxLjYxOTVaTTEwNi42NjMgNDcuNjYzTDEwNi42NDEgNDkuNjQxM0wxMDUuNjQxIDQ5LjYzMDNMMTA1LjY2MyA0Ny42NTJMMTA2LjY2MyA0Ny42NjNaTTEwNi43MDcgNDMuNzA2NUwxMDYuNjg1IDQ1LjY4NDhMMTA1LjY4NSA0NS42NzM4TDEwNS43MDcgNDMuNjk1NUwxMDYuNzA3IDQzLjcwNjVaTTEwNi43NSAzOS43NUwxMDYuNzI4IDQxLjcyODJMMTA1LjcyOCA0MS43MTczTDEwNS43NSAzOS43MzlMMTA2Ljc1IDM5Ljc1Wk0xMDYuNzk0IDM1Ljc5MzVMMTA2Ljc3MiAzNy43NzE3TDEwNS43NzIgMzcuNzYwN0wxMDUuNzk0IDM1Ljc4MjVMMTA2Ljc5NCAzNS43OTM1Wk0xMDYuODM3IDMxLjgzNjlMMTA2LjgxNSAzMy44MTUyTDEwNS44MTUgMzMuODA0MkwxMDUuODM3IDMxLjgyNkwxMDYuODM3IDMxLjgzNjlaTTEwNi44OCAyNy44ODA0TDEwNi44NTkgMjkuODU4N0wxMDUuODU5IDI5Ljg0NzdMMTA1Ljg4MSAyNy44Njk0TDEwNi44OCAyNy44ODA0Wk0xMDYuOTI0IDIzLjkyMzlMMTA2LjkwMiAyNS45MDIyTDEwNS45MDIgMjUuODkxMkwxMDUuOTI0IDIzLjkxMjlMMTA2LjkyNCAyMy45MjM5Wk0xMDYuOTY3IDE5Ljk2NzRMMTA2Ljk0NiAyMS45NDU3TDEwNS45NDYgMjEuOTM0N0wxMDUuOTY3IDE5Ljk1NjRMMTA2Ljk2NyAxOS45Njc0Wk0xMDcgMTdMMTA2Ljk4OSAxNy45ODkxTDEwNS45ODkgMTcuOTc4MUwxMDYgMTYuOTg5TDEwNyAxN1oiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTk1LjM0OSA2Mi42NDJDMTk1LjU0NyA2Mi44MzQ3IDE5NS41NTEgNjMuMTUxMyAxOTUuMzU4IDYzLjM0OUwxOTIuMjE3IDY2LjU3MTNDMTkyLjAyNCA2Ni43NjkgMTkxLjcwOCA2Ni43NzMgMTkxLjUxIDY2LjU4MDNDMTkxLjMxMiA2Ni4zODc1IDE5MS4zMDggNjYuMDcxIDE5MS41MDEgNjUuODczMkwxOTMuOTk3IDYzLjMxMjJMMTkzLjk5IDYyLjcxMzRMMTkxLjQyOSA2MC4yMTY4QzE5MS4yMzEgNjAuMDI0MSAxOTEuMjI3IDU5LjcwNzUgMTkxLjQyIDU5LjUwOThDMTkxLjYxMyA1OS4zMTIgMTkxLjkyOSA1OS4zMDggMTkyLjEyNyA1OS41MDA4TDE5NS4zNDkgNjIuNjQyWk0xODkuOTYyIDYyLjU2NDFMMTkxLjk3NCA2Mi41Mzg1TDE5MS45ODcgNjMuNTM4NEwxODkuOTc0IDYzLjU2NEwxODkuOTYyIDYyLjU2NDFaTTE4NS45MzYgNjIuNjE1NEwxODcuOTQ5IDYyLjU4OThMMTg3Ljk2MiA2My41ODk3TDE4NS45NDkgNjMuNjE1M0wxODUuOTM2IDYyLjYxNTRaTTE4MS45MSA2Mi42NjY3TDE4My45MjMgNjIuNjQxMUwxODMuOTM2IDYzLjY0MUwxODEuOTIzIDYzLjY2NjZMMTgxLjkxIDYyLjY2NjdaTTE3Ny44ODUgNjIuNzE4TDE3OS44OTggNjIuNjkyM0wxNzkuOTEgNjMuNjkyM0wxNzcuODk3IDYzLjcxNzlMMTc3Ljg4NSA2Mi43MThaTTE3My44NTkgNjIuNzY5M0wxNzUuODcyIDYyLjc0MzZMMTc1Ljg4NSA2My43NDM1TDE3My44NzIgNjMuNzY5MkwxNzMuODU5IDYyLjc2OTNaTTE2OS44MzMgNjIuODIwNUwxNzEuODQ2IDYyLjc5NDlMMTcxLjg1OSA2My43OTQ4TDE2OS44NDYgNjMuODIwNUwxNjkuODMzIDYyLjgyMDVaTTE2NS44MDggNjIuODcxOEwxNjcuODIxIDYyLjg0NjJMMTY3LjgzMyA2My44NDYxTDE2NS44MjEgNjMuODcxN0wxNjUuODA4IDYyLjg3MThaTTE2MS43ODIgNjIuOTIzMUwxNjMuNzk1IDYyLjg5NzVMMTYzLjgwOCA2My44OTc0TDE2MS43OTUgNjMuOTIzTDE2MS43ODIgNjIuOTIzMVpNMTU3Ljc1NyA2Mi45NzQ0TDE1OS43NjkgNjIuOTQ4N0wxNTkuNzgyIDYzLjk0ODdMMTU3Ljc2OSA2My45NzQzTDE1Ny43NTcgNjIuOTc0NFpNMTUzLjczMSA2My4wMjU3TDE1NS43NDQgNjNMMTU1Ljc1NiA2My45OTk5TDE1My43NDQgNjQuMDI1NkwxNTMuNzMxIDYzLjAyNTdaTTE0OS43MDUgNjMuMDc3TDE1MS43MTggNjMuMDUxM0wxNTEuNzMxIDY0LjA1MTJMMTQ5LjcxOCA2NC4wNzY5TDE0OS43MDUgNjMuMDc3Wk0xNDUuNjggNjMuMTI4MkwxNDcuNjkyIDYzLjEwMjZMMTQ3LjcwNSA2NC4xMDI1TDE0NS42OTIgNjQuMTI4MkwxNDUuNjggNjMuMTI4MlpNMTQxLjY1NCA2My4xNzk1TDE0My42NjcgNjMuMTUzOUwxNDMuNjggNjQuMTUzOEwxNDEuNjY3IDY0LjE3OTRMMTQxLjY1NCA2My4xNzk1Wk0xMzcuNjI4IDYzLjIzMDhMMTM5LjY0MSA2My4yMDUyTDEzOS42NTQgNjQuMjA1MUwxMzcuNjQxIDY0LjIzMDdMMTM3LjYyOCA2My4yMzA4Wk0xMzMuNjAzIDYzLjI4MjFMMTM1LjYxNSA2My4yNTY0TDEzNS42MjggNjQuMjU2NEwxMzMuNjE1IDY0LjI4MkwxMzMuNjAzIDYzLjI4MjFaTTEyOS41NzcgNjMuMzMzNEwxMzEuNTkgNjMuMzA3N0wxMzEuNjAzIDY0LjMwNzZMMTI5LjU5IDY0LjMzMzNMMTI5LjU3NyA2My4zMzM0Wk0xMjUuNTUxIDYzLjM4NDZMMTI3LjU2NCA2My4zNTlMMTI3LjU3NyA2NC4zNTg5TDEyNS41NjQgNjQuMzg0NkwxMjUuNTUxIDYzLjM4NDZaTTEyMS41MjYgNjMuNDM1OUwxMjMuNTM5IDYzLjQxMDNMMTIzLjU1MSA2NC40MTAyTDEyMS41MzggNjQuNDM1OEwxMjEuNTI2IDYzLjQzNTlaTTExNy41IDYzLjQ4NzJMMTE5LjUxMyA2My40NjE2TDExOS41MjYgNjQuNDYxNUwxMTcuNTEzIDY0LjQ4NzFMMTE3LjUgNjMuNDg3MlpNMTEzLjQ3NCA2My41Mzg1TDExNS40ODcgNjMuNTEyOUwxMTUuNSA2NC41MTI4TDExMy40ODcgNjQuNTM4NEwxMTMuNDc0IDYzLjUzODVaTTEwOS40NDkgNjMuNTg5OEwxMTEuNDYyIDYzLjU2NDFMMTExLjQ3NCA2NC41NjQxTDEwOS40NjIgNjQuNTg5N0wxMDkuNDQ5IDYzLjU4OThaTTEwNS40MjMgNjMuNjQxMUwxMDcuNDM2IDYzLjYxNTRMMTA3LjQ0OSA2NC42MTUzTDEwNS40MzYgNjQuNjQxTDEwNS40MjMgNjMuNjQxMVpNMTAxLjM5OCA2My42OTIzTDEwMy40MSA2My42NjY3TDEwMy40MjMgNjQuNjY2NkwxMDEuNDEgNjQuNjkyM0wxMDEuMzk4IDYzLjY5MjNaTTk3LjM3MTkgNjMuNzQzNkw5OS4zODQ3IDYzLjcxOEw5OS4zOTc0IDY0LjcxNzlMOTcuMzg0NiA2NC43NDM1TDk3LjM3MTkgNjMuNzQzNlpNOTMuMzQ2MiA2My43OTQ5TDk1LjM1OSA2My43NjkzTDk1LjM3MTggNjQuNzY5Mkw5My4zNTkgNjQuNzk0OEw5My4zNDYyIDYzLjc5NDlaTTg5LjMyMDYgNjMuODQ2Mkw5MS4zMzM0IDYzLjgyMDVMOTEuMzQ2MSA2NC44MjA1TDg5LjMzMzMgNjQuODQ2MUw4OS4zMjA2IDYzLjg0NjJaTTg1LjI5NDkgNjMuODk3NUw4Ny4zMDc4IDYzLjg3MThMODcuMzIwNSA2NC44NzE3TDg1LjMwNzcgNjQuODk3NEw4NS4yOTQ5IDYzLjg5NzVaTTgxLjI2OTMgNjMuOTQ4N0w4My4yODIxIDYzLjkyMzFMODMuMjk0OSA2NC45MjNMODEuMjgyIDY0Ljk0ODdMODEuMjY5MyA2My45NDg3Wk03Ny4yNDM3IDY0TDc5LjI1NjUgNjMuOTc0NEw3OS4yNjkyIDY0Ljk3NDNMNzcuMjU2NCA2NC45OTk5TDc3LjI0MzcgNjRaTTczLjIxOCA2NC4wNTEzTDc1LjIzMDggNjQuMDI1N0w3NS4yNDM2IDY1LjAyNTZMNzMuMjMwNyA2NS4wNTEyTDczLjIxOCA2NC4wNTEzWk02OS4xOTI0IDY0LjEwMjZMNzEuMjA1MiA2NC4wNzdMNzEuMjE3OSA2NS4wNzY5TDY5LjIwNTEgNjUuMTAyNUw2OS4xOTI0IDY0LjEwMjZaTTY1LjE2NjcgNjQuMTUzOUw2Ny4xNzk1IDY0LjEyODJMNjcuMTkyMyA2NS4xMjgyTDY1LjE3OTUgNjUuMTUzOEw2NS4xNjY3IDY0LjE1MzlaTTYxLjE0MTEgNjQuMjA1Mkw2My4xNTM5IDY0LjE3OTVMNjMuMTY2NiA2NS4xNzk0TDYxLjE1MzggNjUuMjA1MUw2MS4xNDExIDY0LjIwNTJaTTU3LjExNTQgNjQuMjU2NEw1OS4xMjgzIDY0LjIzMDhMNTkuMTQxIDY1LjIzMDdMNTcuMTI4MiA2NS4yNTY0TDU3LjExNTQgNjQuMjU2NFpNNTMuMDg5OCA2NC4zMDc3TDU1LjEwMjYgNjQuMjgyMUw1NS4xMTUzIDY1LjI4Mkw1My4xMDI1IDY1LjMwNzZMNTMuMDg5OCA2NC4zMDc3Wk00OS4wNjQxIDY0LjM1OUw1MS4wNzcgNjQuMzMzNEw1MS4wODk3IDY1LjMzMzNMNDkuMDc2OSA2NS4zNTg5TDQ5LjA2NDEgNjQuMzU5Wk00NS4wMzg1IDY0LjQxMDNMNDcuMDUxMyA2NC4zODQ2TDQ3LjA2NDEgNjUuMzg0Nkw0NS4wNTEyIDY1LjQxMDJMNDUuMDM4NSA2NC40MTAzWk00MS4wMTI5IDY0LjQ2MTZMNDMuMDI1NyA2NC40MzU5TDQzLjAzODQgNjUuNDM1OEw0MS4wMjU2IDY1LjQ2MTVMNDEuMDEyOSA2NC40NjE2Wk0zNy45OTM3IDY0LjVMMzkgNjQuNDg3MkwzOS4wMTI4IDY1LjQ4NzFMMzguMDA2NCA2NS40OTk5TDM3Ljk5MzcgNjQuNVoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTk1LjM1NCAxNy42NDY0QzE5NS41NDkgMTcuODQxNyAxOTUuNTQ5IDE4LjE1ODMgMTk1LjM1NCAxOC4zNTM1TDE5Mi4xNzIgMjEuNTM1NUMxOTEuOTc2IDIxLjczMDggMTkxLjY2IDIxLjczMDggMTkxLjQ2NSAyMS41MzU1QzE5MS4yNjkgMjEuMzQwMyAxOTEuMjY5IDIxLjAyMzcgMTkxLjQ2NSAyMC44Mjg0TDE5My45ODkgMTguMzA0MlYxNy42OTU3TDE5MS40NjUgMTUuMTcxNkMxOTEuMjY5IDE0Ljk3NjMgMTkxLjI2OSAxNC42NTk3IDE5MS40NjUgMTQuNDY0NUMxOTEuNjYgMTQuMjY5MiAxOTEuOTc2IDE0LjI2OTIgMTkyLjE3MiAxNC40NjQ1TDE5NS4zNTQgMTcuNjQ2NFpNMTg5Ljk0MyAxNy41SDE5MS45NjZWMTguNUgxODkuOTQzVjE3LjVaTTE4NS44OTggMTcuNUgxODcuOTIxVjE4LjVIMTg1Ljg5OFYxNy41Wk0xODEuODUyIDE3LjVIMTgzLjg3NVYxOC41SDE4MS44NTJWMTcuNVpNMTc3LjgwNyAxNy41SDE3OS44M1YxOC41SDE3Ny44MDdWMTcuNVpNMTczLjc2MSAxNy41SDE3NS43ODRWMTguNUgxNzMuNzYxVjE3LjVaTTE2OS43MTYgMTcuNUgxNzEuNzM5VjE4LjVIMTY5LjcxNlYxNy41Wk0xNjUuNjcxIDE3LjVIMTY3LjY5M1YxOC41SDE2NS42NzFWMTcuNVpNMTYxLjYyNSAxNy41SDE2My42NDhWMTguNUgxNjEuNjI1VjE3LjVaTTE1Ny41OCAxNy41SDE1OS42MDJWMTguNUgxNTcuNThWMTcuNVpNMTUzLjUzNCAxNy41SDE1NS41NTdWMTguNUgxNTMuNTM0VjE3LjVaTTE0OS40ODkgMTcuNUgxNTEuNTExVjE4LjVIMTQ5LjQ4OVYxNy41Wk0xNDUuNDQzIDE3LjVIMTQ3LjQ2NlYxOC41SDE0NS40NDNWMTcuNVpNMTQxLjM5OCAxNy41SDE0My40MjFWMTguNUgxNDEuMzk4VjE3LjVaTTEzNy4zNTIgMTcuNUgxMzkuMzc1VjE4LjVIMTM3LjM1MlYxNy41Wk0xMzMuMzA3IDE3LjVIMTM1LjMzVjE4LjVIMTMzLjMwN1YxNy41Wk0xMjkuMjYxIDE3LjVIMTMxLjI4NFYxOC41SDEyOS4yNjFWMTcuNVpNMTI1LjIxNiAxNy41SDEyNy4yMzlWMTguNUgxMjUuMjE2VjE3LjVaTTEyMS4xNyAxNy41SDEyMy4xOTNWMTguNUgxMjEuMTdWMTcuNVpNMTE3LjEyNSAxNy41SDExOS4xNDhWMTguNUgxMTcuMTI1VjE3LjVaTTExMy4wOCAxNy41SDExNS4xMDJWMTguNUgxMTMuMDhWMTcuNVpNMTA5LjAzNCAxNy41SDExMS4wNTdWMTguNUgxMDkuMDM0VjE3LjVaTTEwNiAxNy41SDEwNy4wMTFWMTguNUgxMDZWMTcuNVoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTk1LjM1NCAxMDguNjQ2QzE5NS41NDkgMTA4Ljg0MiAxOTUuNTQ5IDEwOS4xNTggMTk1LjM1NCAxMDkuMzU0TDE5Mi4xNzIgMTEyLjUzNkMxOTEuOTc2IDExMi43MzEgMTkxLjY2IDExMi43MzEgMTkxLjQ2NSAxMTIuNTM2QzE5MS4yNjkgMTEyLjM0IDE5MS4yNjkgMTEyLjAyNCAxOTEuNDY1IDExMS44MjhMMTkzLjk4OSAxMDkuMzA0VjEwOC42OTZMMTkxLjQ2NSAxMDYuMTcyQzE5MS4yNjkgMTA1Ljk3NiAxOTEuMjY5IDEwNS42NiAxOTEuNDY1IDEwNS40NjRDMTkxLjY2IDEwNS4yNjkgMTkxLjk3NiAxMDUuMjY5IDE5Mi4xNzIgMTA1LjQ2NEwxOTUuMzU0IDEwOC42NDZaTTE4OS45NDMgMTA4LjVIMTkxLjk2NlYxMDkuNUgxODkuOTQzVjEwOC41Wk0xODUuODk4IDEwOC41SDE4Ny45MjFWMTA5LjVIMTg1Ljg5OFYxMDguNVpNMTgxLjg1MiAxMDguNUgxODMuODc1VjEwOS41SDE4MS44NTJWMTA4LjVaTTE3Ny44MDcgMTA4LjVIMTc5LjgzVjEwOS41SDE3Ny44MDdWMTA4LjVaTTE3My43NjEgMTA4LjVIMTc1Ljc4NFYxMDkuNUgxNzMuNzYxVjEwOC41Wk0xNjkuNzE2IDEwOC41SDE3MS43MzlWMTA5LjVIMTY5LjcxNlYxMDguNVpNMTY1LjY3MSAxMDguNUgxNjcuNjkzVjEwOS41SDE2NS42NzFWMTA4LjVaTTE2MS42MjUgMTA4LjVIMTYzLjY0OFYxMDkuNUgxNjEuNjI1VjEwOC41Wk0xNTcuNTggMTA4LjVIMTU5LjYwMlYxMDkuNUgxNTcuNThWMTA4LjVaTTE1My41MzQgMTA4LjVIMTU1LjU1N1YxMDkuNUgxNTMuNTM0VjEwOC41Wk0xNDkuNDg5IDEwOC41SDE1MS41MTFWMTA5LjVIMTQ5LjQ4OVYxMDguNVpNMTQ1LjQ0MyAxMDguNUgxNDcuNDY2VjEwOS41SDE0NS40NDNWMTA4LjVaTTE0MS4zOTggMTA4LjVIMTQzLjQyMVYxMDkuNUgxNDEuMzk4VjEwOC41Wk0xMzcuMzUyIDEwOC41SDEzOS4zNzVWMTA5LjVIMTM3LjM1MlYxMDguNVpNMTMzLjMwNyAxMDguNUgxMzUuMzNWMTA5LjVIMTMzLjMwN1YxMDguNVpNMTI5LjI2MSAxMDguNUgxMzEuMjg0VjEwOS41SDEyOS4yNjFWMTA4LjVaTTEyNS4yMTYgMTA4LjVIMTI3LjIzOVYxMDkuNUgxMjUuMjE2VjEwOC41Wk0xMjEuMTcgMTA4LjVIMTIzLjE5M1YxMDkuNUgxMjEuMTdWMTA4LjVaTTExNy4xMjUgMTA4LjVIMTE5LjE0OFYxMDkuNUgxMTcuMTI1VjEwOC41Wk0xMTMuMDggMTA4LjVIMTE1LjEwMlYxMDkuNUgxMTMuMDhWMTA4LjVaTTEwOS4wMzQgMTA4LjVIMTExLjA1N1YxMDkuNUgxMDkuMDM0VjEwOC41Wk0xMDYgMTA4LjVIMTA3LjAxMVYxMDkuNUgxMDZWMTA4LjVaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMjAxLjcyOCAyNFYyMy4wNEgyMDMuNDQ0VjE2Ljk4TDIwMS44MzYgMTguMTkyTDIwMS4yNDggMTcuMzg4TDIwMy43MzIgMTUuNkgyMDQuNTI0VjIzLjA0SDIwNS45NTJWMjRIMjAxLjcyOFoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGQ9Ik0yMDEuMDU2IDY4QzIwMS4wMzIgNjcuODU2IDIwMS4wMiA2Ny43MDggMjAxLjAyIDY3LjU1NkMyMDEuMDIgNjcuMDM2IDIwMS4xMDggNjYuNTcyIDIwMS4yODQgNjYuMTY0QzIwMS40NjggNjUuNzQ4IDIwMS43MDQgNjUuMzcyIDIwMS45OTIgNjUuMDM2QzIwMi4yOCA2NC42OTIgMjAyLjU4NCA2NC4zNzYgMjAyLjkwNCA2NC4wODhDMjAzLjIzMiA2My43OTIgMjAzLjUzNiA2My41MTIgMjAzLjgxNiA2My4yNDhDMjA0LjEwNCA2Mi45NzYgMjA0LjM0IDYyLjcwNCAyMDQuNTI0IDYyLjQzMkMyMDQuNzA4IDYyLjE2IDIwNC44IDYxLjg3NiAyMDQuOCA2MS41OEMyMDQuOCA2MS4yNDQgMjA0LjY3NiA2MC45NjggMjA0LjQyOCA2MC43NTJDMjA0LjE4IDYwLjUyOCAyMDMuODYgNjAuNDE2IDIwMy40NjggNjAuNDE2QzIwMy4xMzIgNjAuNDE2IDIwMi44MjQgNjAuNDg0IDIwMi41NDQgNjAuNjJDMjAyLjI3MiA2MC43NDggMjAyLjAxNiA2MC45MjQgMjAxLjc3NiA2MS4xNDhMMjAxLjE3NiA2MC40MTZDMjAxLjQ5NiA2MC4xMjggMjAxLjg0OCA1OS44OTYgMjAyLjIzMiA1OS43MkMyMDIuNjI0IDU5LjU0NCAyMDMuMDc2IDU5LjQ1NiAyMDMuNTg4IDU5LjQ1NkMyMDQuMDYgNTkuNDU2IDIwNC40NzIgNTkuNTQ4IDIwNC44MjQgNTkuNzMyQzIwNS4xNzYgNTkuOTA4IDIwNS40NDggNjAuMTUyIDIwNS42NCA2MC40NjRDMjA1Ljg0IDYwLjc3NiAyMDUuOTQgNjEuMTI0IDIwNS45NCA2MS41MDhDMjA1Ljk0IDYxLjg5MiAyMDUuODU2IDYyLjI0OCAyMDUuNjg4IDYyLjU3NkMyMDUuNTIgNjIuOTA0IDIwNS4zMDQgNjMuMjEyIDIwNS4wNCA2My41QzIwNC43NzYgNjMuNzg4IDIwNC40OTIgNjQuMDY4IDIwNC4xODggNjQuMzRDMjAzLjg4NCA2NC42MDQgMjAzLjU5MiA2NC44NzYgMjAzLjMxMiA2NS4xNTZDMjAzLjAzMiA2NS40MzYgMjAyLjc5MiA2NS43MjggMjAyLjU5MiA2Ni4wMzJDMjAyLjQgNjYuMzM2IDIwMi4yOCA2Ni42NjQgMjAyLjIzMiA2Ny4wMTZIMjA1LjkyOFY2OEgyMDEuMDU2WiIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTIwMy4xMDggMTE1LjE0NEMyMDIuNTg4IDExNS4xNDQgMjAyLjEzNiAxMTUuMDc2IDIwMS43NTIgMTE0Ljk0QzIwMS4zNjggMTE0Ljc5NiAyMDEuMDQgMTE0LjYyNCAyMDAuNzY4IDExNC40MjRMMjAxLjI2IDExMy41MjRDMjAxLjQ4NCAxMTMuNjkyIDIwMS43NDQgMTEzLjg0IDIwMi4wNCAxMTMuOTY4QzIwMi4zMzYgMTE0LjA5NiAyMDIuNjk2IDExNC4xNiAyMDMuMTIgMTE0LjE2QzIwMy42NDggMTE0LjE2IDIwNC4wNjQgMTE0LjAyIDIwNC4zNjggMTEzLjc0QzIwNC42OCAxMTMuNDYgMjA0LjgzNiAxMTMuMTEyIDIwNC44MzYgMTEyLjY5NkMyMDQuODM2IDExMi40IDIwNC43NTYgMTEyLjEzMiAyMDQuNTk2IDExMS44OTJDMjA0LjQzNiAxMTEuNjQ0IDIwNC4xODggMTExLjQ0NCAyMDMuODUyIDExMS4yOTJDMjAzLjUyNCAxMTEuMTQgMjAzLjA5NiAxMTEuMDY0IDIwMi41NjggMTExLjA2NEgyMDEuODk2VjExMC4xODhIMjAyLjUyQzIwMi45OTIgMTEwLjE4OCAyMDMuMzggMTEwLjExNiAyMDMuNjg0IDEwOS45NzJDMjAzLjk5NiAxMDkuODI4IDIwNC4yMjggMTA5LjY0IDIwNC4zOCAxMDkuNDA4QzIwNC41MzIgMTA5LjE3NiAyMDQuNjA4IDEwOC45MzIgMjA0LjYwOCAxMDguNjc2QzIwNC42MDggMTA4LjMgMjA0LjQ2NCAxMDcuOTk2IDIwNC4xNzYgMTA3Ljc2NEMyMDMuODk2IDEwNy41MzIgMjAzLjU0OCAxMDcuNDE2IDIwMy4xMzIgMTA3LjQxNkMyMDIuNzU2IDEwNy40MTYgMjAyLjQyIDEwNy40OCAyMDIuMTI0IDEwNy42MDhDMjAxLjgzNiAxMDcuNzI4IDIwMS42IDEwNy44NjQgMjAxLjQxNiAxMDguMDE2TDIwMC45NzIgMTA3LjE2NEMyMDEuMjEyIDEwNy4wMDQgMjAxLjUyIDEwNi44NDggMjAxLjg5NiAxMDYuNjk2QzIwMi4yNzIgMTA2LjUzNiAyMDIuNzEyIDEwNi40NTYgMjAzLjIxNiAxMDYuNDU2QzIwMy43NDQgMTA2LjQ1NiAyMDQuMTkyIDEwNi41NTIgMjA0LjU2IDEwNi43NDRDMjA0LjkyOCAxMDYuOTM2IDIwNS4yMDggMTA3LjE5MiAyMDUuNCAxMDcuNTEyQzIwNS42IDEwNy44MjQgMjA1LjcgMTA4LjE2NCAyMDUuNyAxMDguNTMyQzIwNS43IDEwOS4wMDQgMjA1LjU4IDEwOS40IDIwNS4zNCAxMDkuNzJDMjA1LjEwOCAxMTAuMDQgMjA0Ljc3NiAxMTAuMzA0IDIwNC4zNDQgMTEwLjUxMkMyMDQuODQ4IDExMC43MDQgMjA1LjI0IDExMC45ODggMjA1LjUyIDExMS4zNjRDMjA1LjgwOCAxMTEuNzMyIDIwNS45NTIgMTEyLjE2NCAyMDUuOTUyIDExMi42NkMyMDUuOTUyIDExMy4wNzYgMjA1Ljg0OCAxMTMuNDc2IDIwNS42NCAxMTMuODZDMjA1LjQ0IDExNC4yMzYgMjA1LjEyOCAxMTQuNTQ0IDIwNC43MDQgMTE0Ljc4NEMyMDQuMjg4IDExNS4wMjQgMjAzLjc1NiAxMTUuMTQ0IDIwMy4xMDggMTE1LjE0NFoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo=";
|
|
2
|
+
export {
|
|
3
|
+
M as default
|
|
4
|
+
};
|