UNPKG

big-file-up

Version:

big-file-up是一款大文件上传的插件

1,405 lines 64.4 kB
var Mt = Object.defineProperty; var Zt = (t, e, s) => e in t ? Mt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s; var T = (t, e, s) => (Zt(t, typeof e != "symbol" ? e + "" : e, s), s), xt = (t, e, s) => { if (!e.has(t)) throw TypeError("Cannot " + s); }; var x = (t, e, s) => { if (e.has(t)) throw TypeError("Cannot add the same private member more than once"); e instanceof WeakSet ? e.add(t) : e.set(t, s); }; var p = (t, e, s) => (xt(t, e, "access private method"), s); function Ue(t, e) { return function() { return t.apply(e, arguments); }; } const { toString: Pt } = Object.prototype, { getPrototypeOf: De } = Object, ce = ((t) => (e) => { const s = Pt.call(e); return t[s] || (t[s] = s.slice(8, -1).toLowerCase()); })(/* @__PURE__ */ Object.create(null)), j = (t) => (t = t.toLowerCase(), (e) => ce(e) === t), le = (t) => (e) => typeof e === t, { isArray: k } = Array, I = le("undefined"); function Tt(t) { return t !== null && !I(t) && t.constructor !== null && !I(t.constructor) && N(t.constructor.isBuffer) && t.constructor.isBuffer(t); } const Be = j("ArrayBuffer"); function Kt(t) { let e; return typeof ArrayBuffer < "u" && ArrayBuffer.isView ? e = ArrayBuffer.isView(t) : e = t && t.buffer && Be(t.buffer), e; } const Nt = le("string"), N = le("function"), Je = le("number"), ue = (t) => t !== null && typeof t == "object", Dt = (t) => t === !0 || t === !1, _ = (t) => { if (ce(t) !== "object") return !1; const e = De(t); return (e === null || e === Object.prototype || Object.getPrototypeOf(e) === null) && !(Symbol.toStringTag in t) && !(Symbol.iterator in t); }, jt = j("Date"), Ct = j("File"), Lt = j("Blob"), Et = j("FileList"), zt = (t) => ue(t) && N(t.pipe), Ot = (t) => { let e; return t && (typeof FormData == "function" && t instanceof FormData || N(t.append) && ((e = ce(t)) === "formdata" || e === "object" && N(t.toString) && t.toString() === "[object FormData]")); }, Xt = j("URLSearchParams"), Rt = (t) => t.trim ? t.trim() : t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""); function J(t, e, { allOwnKeys: s = !1 } = {}) { if (t === null || typeof t > "u") return; let n, r; if (typeof t != "object" && (t = [t]), k(t)) for (n = 0, r = t.length; n < r; n++) e.call(null, t[n], n, t); else { const o = s ? Object.getOwnPropertyNames(t) : Object.keys(t), i = o.length; let c; for (n = 0; n < i; n++) c = o[n], e.call(null, t[c], c, t); } } function Ye(t, e) { e = e.toLowerCase(); const s = Object.keys(t); let n = s.length, r; for (; n-- > 0; ) if (r = s[n], e === r.toLowerCase()) return r; return null; } const Qe = (() => typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : global)(), _e = (t) => !I(t) && t !== Qe; function ye() { const { caseless: t } = _e(this) && this || {}, e = {}, s = (n, r) => { const o = t && Ye(e, r) || r; _(e[o]) && _(n) ? e[o] = ye(e[o], n) : _(n) ? e[o] = ye({}, n) : k(n) ? e[o] = n.slice() : e[o] = n; }; for (let n = 0, r = arguments.length; n < r; n++) arguments[n] && J(arguments[n], s); return e; } const Gt = (t, e, s, { allOwnKeys: n } = {}) => (J(e, (r, o) => { s && N(r) ? t[o] = Ue(r, s) : t[o] = r; }, { allOwnKeys: n }), t), gt = (t) => (t.charCodeAt(0) === 65279 && (t = t.slice(1)), t), kt = (t, e, s, n) => { t.prototype = Object.create(e.prototype, n), t.prototype.constructor = t, Object.defineProperty(t, "super", { value: e.prototype }), s && Object.assign(t.prototype, s); }, Ht = (t, e, s, n) => { let r, o, i; const c = {}; if (e = e || {}, t == null) return e; do { for (r = Object.getOwnPropertyNames(t), o = r.length; o-- > 0; ) i = r[o], (!n || n(i, t, e)) && !c[i] && (e[i] = t[i], c[i] = !0); t = s !== !1 && De(t); } while (t && (!s || s(t, e)) && t !== Object.prototype); return e; }, At = (t, e, s) => { t = String(t), (s === void 0 || s > t.length) && (s = t.length), s -= e.length; const n = t.indexOf(e, s); return n !== -1 && n === s; }, It = (t) => { if (!t) return null; if (k(t)) return t; let e = t.length; if (!Je(e)) return null; const s = new Array(e); for (; e-- > 0; ) s[e] = t[e]; return s; }, Wt = ((t) => (e) => t && e instanceof t)(typeof Uint8Array < "u" && De(Uint8Array)), Ft = (t, e) => { const n = (t && t[Symbol.iterator]).call(t); let r; for (; (r = n.next()) && !r.done; ) { const o = r.value; e.call(t, o[0], o[1]); } }, Vt = (t, e) => { let s; const n = []; for (; (s = t.exec(e)) !== null; ) n.push(s); return n; }, Ut = j("HTMLFormElement"), Bt = (t) => t.toLowerCase().replace( /[-_\s]([a-z\d])(\w*)/g, function(s, n, r) { return n.toUpperCase() + r; } ), Oe = (({ hasOwnProperty: t }) => (e, s) => t.call(e, s))(Object.prototype), Jt = j("RegExp"), qe = (t, e) => { const s = Object.getOwnPropertyDescriptors(t), n = {}; J(s, (r, o) => { let i; (i = e(r, o, t)) !== !1 && (n[o] = i || r); }), Object.defineProperties(t, n); }, Yt = (t) => { qe(t, (e, s) => { if (N(t) && ["arguments", "caller", "callee"].indexOf(s) !== -1) return !1; const n = t[s]; if (!!N(n)) { if (e.enumerable = !1, "writable" in e) { e.writable = !1; return; } e.set || (e.set = () => { throw Error("Can not rewrite read-only method '" + s + "'"); }); } }); }, Qt = (t, e) => { const s = {}, n = (r) => { r.forEach((o) => { s[o] = !0; }); }; return k(t) ? n(t) : n(String(t).split(e)), s; }, _t = () => { }, qt = (t, e) => (t = +t, Number.isFinite(t) ? t : e), he = "abcdefghijklmnopqrstuvwxyz", Xe = "0123456789", ve = { DIGIT: Xe, ALPHA: he, ALPHA_DIGIT: he + he.toUpperCase() + Xe }, vt = (t = 16, e = ve.ALPHA_DIGIT) => { let s = ""; const { length: n } = e; for (; t--; ) s += e[Math.random() * n | 0]; return s; }; function $t(t) { return !!(t && N(t.append) && t[Symbol.toStringTag] === "FormData" && t[Symbol.iterator]); } const es = (t) => { const e = new Array(10), s = (n, r) => { if (ue(n)) { if (e.indexOf(n) >= 0) return; if (!("toJSON" in n)) { e[r] = n; const o = k(n) ? [] : {}; return J(n, (i, c) => { const f = s(i, r + 1); !I(f) && (o[c] = f); }), e[r] = void 0, o; } } return n; }; return s(t, 0); }, ts = j("AsyncFunction"), ss = (t) => t && (ue(t) || N(t)) && N(t.then) && N(t.catch), a = { isArray: k, isArrayBuffer: Be, isBuffer: Tt, isFormData: Ot, isArrayBufferView: Kt, isString: Nt, isNumber: Je, isBoolean: Dt, isObject: ue, isPlainObject: _, isUndefined: I, isDate: jt, isFile: Ct, isBlob: Lt, isRegExp: Jt, isFunction: N, isStream: zt, isURLSearchParams: Xt, isTypedArray: Wt, isFileList: Et, forEach: J, merge: ye, extend: Gt, trim: Rt, stripBOM: gt, inherits: kt, toFlatObject: Ht, kindOf: ce, kindOfTest: j, endsWith: At, toArray: It, forEachEntry: Ft, matchAll: Vt, isHTMLForm: Ut, hasOwnProperty: Oe, hasOwnProp: Oe, reduceDescriptors: qe, freezeMethods: Yt, toObjectSet: Qt, toCamelCase: Bt, noop: _t, toFiniteNumber: qt, findKey: Ye, global: Qe, isContextDefined: _e, ALPHABET: ve, generateString: vt, isSpecCompliantForm: $t, toJSONObject: es, isAsyncFn: ts, isThenable: ss }; function b(t, e, s, n, r) { Error.call(this), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack, this.message = t, this.name = "AxiosError", e && (this.code = e), s && (this.config = s), n && (this.request = n), r && (this.response = r); } a.inherits(b, Error, { toJSON: function() { return { message: this.message, name: this.name, description: this.description, number: this.number, fileName: this.fileName, lineNumber: this.lineNumber, columnNumber: this.columnNumber, stack: this.stack, config: a.toJSONObject(this.config), code: this.code, status: this.response && this.response.status ? this.response.status : null }; } }); const $e = b.prototype, et = {}; [ "ERR_BAD_OPTION_VALUE", "ERR_BAD_OPTION", "ECONNABORTED", "ETIMEDOUT", "ERR_NETWORK", "ERR_FR_TOO_MANY_REDIRECTS", "ERR_DEPRECATED", "ERR_BAD_RESPONSE", "ERR_BAD_REQUEST", "ERR_CANCELED", "ERR_NOT_SUPPORT", "ERR_INVALID_URL" ].forEach((t) => { et[t] = { value: t }; }); Object.defineProperties(b, et); Object.defineProperty($e, "isAxiosError", { value: !0 }); b.from = (t, e, s, n, r, o) => { const i = Object.create($e); return a.toFlatObject(t, i, function(f) { return f !== Error.prototype; }, (c) => c !== "isAxiosError"), b.call(i, t.message, e, s, n, r), i.cause = t, i.name = t.name, o && Object.assign(i, o), i; }; const ns = null; function be(t) { return a.isPlainObject(t) || a.isArray(t); } function tt(t) { return a.endsWith(t, "[]") ? t.slice(0, -2) : t; } function Re(t, e, s) { return t ? t.concat(e).map(function(r, o) { return r = tt(r), !s && o ? "[" + r + "]" : r; }).join(s ? "." : "") : e; } function rs(t) { return a.isArray(t) && !t.some(be); } const os = a.toFlatObject(a, {}, null, function(e) { return /^is[A-Z]/.test(e); }); function de(t, e, s) { if (!a.isObject(t)) throw new TypeError("target must be an object"); e = e || new FormData(), s = a.toFlatObject(s, { metaTokens: !0, dots: !1, indexes: !1 }, !1, function(m, S) { return !a.isUndefined(S[m]); }); const n = s.metaTokens, r = s.visitor || u, o = s.dots, i = s.indexes, f = (s.Blob || typeof Blob < "u" && Blob) && a.isSpecCompliantForm(e); if (!a.isFunction(r)) throw new TypeError("visitor must be a function"); function d(h) { if (h === null) return ""; if (a.isDate(h)) return h.toISOString(); if (!f && a.isBlob(h)) throw new b("Blob is not supported. Use a Buffer instead."); return a.isArrayBuffer(h) || a.isTypedArray(h) ? f && typeof Blob == "function" ? new Blob([h]) : Buffer.from(h) : h; } function u(h, m, S) { let Z = h; if (h && !S && typeof h == "object") { if (a.endsWith(m, "{}")) m = n ? m : m.slice(0, -2), h = JSON.stringify(h); else if (a.isArray(h) && rs(h) || (a.isFileList(h) || a.endsWith(m, "[]")) && (Z = a.toArray(h))) return m = tt(m), Z.forEach(function(E, St) { !(a.isUndefined(E) || E === null) && e.append( i === !0 ? Re([m], St, o) : i === null ? m : m + "[]", d(E) ); }), !1; } return be(h) ? !0 : (e.append(Re(S, m, o), d(h)), !1); } const l = [], w = Object.assign(os, { defaultVisitor: u, convertValue: d, isVisitable: be }); function y(h, m) { if (!a.isUndefined(h)) { if (l.indexOf(h) !== -1) throw Error("Circular reference detected in " + m.join(".")); l.push(h), a.forEach(h, function(Z, L) { (!(a.isUndefined(Z) || Z === null) && r.call( e, Z, a.isString(L) ? L.trim() : L, m, w )) === !0 && y(Z, m ? m.concat(L) : [L]); }), l.pop(); } } if (!a.isObject(t)) throw new TypeError("data must be an object"); return y(t), e; } function Ge(t) { const e = { "!": "%21", "'": "%27", "(": "%28", ")": "%29", "~": "%7E", "%20": "+", "%00": "\0" }; return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g, function(n) { return e[n]; }); } function je(t, e) { this._pairs = [], t && de(t, this, e); } const st = je.prototype; st.append = function(e, s) { this._pairs.push([e, s]); }; st.toString = function(e) { const s = e ? function(n) { return e.call(this, n, Ge); } : Ge; return this._pairs.map(function(r) { return s(r[0]) + "=" + s(r[1]); }, "").join("&"); }; function is(t) { return encodeURIComponent(t).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]"); } function nt(t, e, s) { if (!e) return t; const n = s && s.encode || is, r = s && s.serialize; let o; if (r ? o = r(e, s) : o = a.isURLSearchParams(e) ? e.toString() : new je(e, s).toString(n), o) { const i = t.indexOf("#"); i !== -1 && (t = t.slice(0, i)), t += (t.indexOf("?") === -1 ? "?" : "&") + o; } return t; } class as { constructor() { this.handlers = []; } use(e, s, n) { return this.handlers.push({ fulfilled: e, rejected: s, synchronous: n ? n.synchronous : !1, runWhen: n ? n.runWhen : null }), this.handlers.length - 1; } eject(e) { this.handlers[e] && (this.handlers[e] = null); } clear() { this.handlers && (this.handlers = []); } forEach(e) { a.forEach(this.handlers, function(n) { n !== null && e(n); }); } } const ge = as, rt = { silentJSONParsing: !0, forcedJSONParsing: !0, clarifyTimeoutError: !1 }, cs = typeof URLSearchParams < "u" ? URLSearchParams : je, ls = typeof FormData < "u" ? FormData : null, us = typeof Blob < "u" ? Blob : null, ds = { isBrowser: !0, classes: { URLSearchParams: cs, FormData: ls, Blob: us }, protocols: ["http", "https", "file", "blob", "url", "data"] }, ot = typeof window < "u" && typeof document < "u", fs = ((t) => ot && ["ReactNative", "NativeScript", "NS"].indexOf(t) < 0)(typeof navigator < "u" && navigator.product), hs = (() => typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope && typeof self.importScripts == "function")(), ms = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, hasBrowserEnv: ot, hasStandardBrowserWebWorkerEnv: hs, hasStandardBrowserEnv: fs }, Symbol.toStringTag, { value: "Module" })), D = { ...ms, ...ds }; function ps(t, e) { return de(t, new D.classes.URLSearchParams(), Object.assign({ visitor: function(s, n, r, o) { return D.isNode && a.isBuffer(s) ? (this.append(n, s.toString("base64")), !1) : o.defaultVisitor.apply(this, arguments); } }, e)); } function ws(t) { return a.matchAll(/\w+|\[(\w*)]/g, t).map((e) => e[0] === "[]" ? "" : e[1] || e[0]); } function ys(t) { const e = {}, s = Object.keys(t); let n; const r = s.length; let o; for (n = 0; n < r; n++) o = s[n], e[o] = t[o]; return e; } function it(t) { function e(s, n, r, o) { let i = s[o++]; if (i === "__proto__") return !0; const c = Number.isFinite(+i), f = o >= s.length; return i = !i && a.isArray(r) ? r.length : i, f ? (a.hasOwnProp(r, i) ? r[i] = [r[i], n] : r[i] = n, !c) : ((!r[i] || !a.isObject(r[i])) && (r[i] = []), e(s, n, r[i], o) && a.isArray(r[i]) && (r[i] = ys(r[i])), !c); } if (a.isFormData(t) && a.isFunction(t.entries)) { const s = {}; return a.forEachEntry(t, (n, r) => { e(ws(n), r, s, 0); }), s; } return null; } function bs(t, e, s) { if (a.isString(t)) try { return (e || JSON.parse)(t), a.trim(t); } catch (n) { if (n.name !== "SyntaxError") throw n; } return (s || JSON.stringify)(t); } const Ce = { transitional: rt, adapter: ["xhr", "http"], transformRequest: [function(e, s) { const n = s.getContentType() || "", r = n.indexOf("application/json") > -1, o = a.isObject(e); if (o && a.isHTMLForm(e) && (e = new FormData(e)), a.isFormData(e)) return r ? JSON.stringify(it(e)) : e; if (a.isArrayBuffer(e) || a.isBuffer(e) || a.isStream(e) || a.isFile(e) || a.isBlob(e)) return e; if (a.isArrayBufferView(e)) return e.buffer; if (a.isURLSearchParams(e)) return s.setContentType("application/x-www-form-urlencoded;charset=utf-8", !1), e.toString(); let c; if (o) { if (n.indexOf("application/x-www-form-urlencoded") > -1) return ps(e, this.formSerializer).toString(); if ((c = a.isFileList(e)) || n.indexOf("multipart/form-data") > -1) { const f = this.env && this.env.FormData; return de( c ? { "files[]": e } : e, f && new f(), this.formSerializer ); } } return o || r ? (s.setContentType("application/json", !1), bs(e)) : e; }], transformResponse: [function(e) { const s = this.transitional || Ce.transitional, n = s && s.forcedJSONParsing, r = this.responseType === "json"; if (e && a.isString(e) && (n && !this.responseType || r)) { const i = !(s && s.silentJSONParsing) && r; try { return JSON.parse(e); } catch (c) { if (i) throw c.name === "SyntaxError" ? b.from(c, b.ERR_BAD_RESPONSE, this, null, this.response) : c; } } return e; }], timeout: 0, xsrfCookieName: "XSRF-TOKEN", xsrfHeaderName: "X-XSRF-TOKEN", maxContentLength: -1, maxBodyLength: -1, env: { FormData: D.classes.FormData, Blob: D.classes.Blob }, validateStatus: function(e) { return e >= 200 && e < 300; }, headers: { common: { Accept: "application/json, text/plain, */*", "Content-Type": void 0 } } }; a.forEach(["delete", "get", "head", "post", "put", "patch"], (t) => { Ce.headers[t] = {}; }); const Le = Ce, Ss = a.toObjectSet([ "age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent" ]), Ms = (t) => { const e = {}; let s, n, r; return t && t.split(` `).forEach(function(i) { r = i.indexOf(":"), s = i.substring(0, r).trim().toLowerCase(), n = i.substring(r + 1).trim(), !(!s || e[s] && Ss[s]) && (s === "set-cookie" ? e[s] ? e[s].push(n) : e[s] = [n] : e[s] = e[s] ? e[s] + ", " + n : n); }), e; }, ke = Symbol("internals"); function H(t) { return t && String(t).trim().toLowerCase(); } function q(t) { return t === !1 || t == null ? t : a.isArray(t) ? t.map(q) : String(t); } function Zs(t) { const e = /* @__PURE__ */ Object.create(null), s = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; let n; for (; n = s.exec(t); ) e[n[1]] = n[2]; return e; } const xs = (t) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()); function me(t, e, s, n, r) { if (a.isFunction(n)) return n.call(this, e, s); if (r && (e = s), !!a.isString(e)) { if (a.isString(n)) return e.indexOf(n) !== -1; if (a.isRegExp(n)) return n.test(e); } } function Ps(t) { return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (e, s, n) => s.toUpperCase() + n); } function Ts(t, e) { const s = a.toCamelCase(" " + e); ["get", "set", "has"].forEach((n) => { Object.defineProperty(t, n + s, { value: function(r, o, i) { return this[n].call(this, e, r, o, i); }, configurable: !0 }); }); } class fe { constructor(e) { e && this.set(e); } set(e, s, n) { const r = this; function o(c, f, d) { const u = H(f); if (!u) throw new Error("header name must be a non-empty string"); const l = a.findKey(r, u); (!l || r[l] === void 0 || d === !0 || d === void 0 && r[l] !== !1) && (r[l || f] = q(c)); } const i = (c, f) => a.forEach(c, (d, u) => o(d, u, f)); return a.isPlainObject(e) || e instanceof this.constructor ? i(e, s) : a.isString(e) && (e = e.trim()) && !xs(e) ? i(Ms(e), s) : e != null && o(s, e, n), this; } get(e, s) { if (e = H(e), e) { const n = a.findKey(this, e); if (n) { const r = this[n]; if (!s) return r; if (s === !0) return Zs(r); if (a.isFunction(s)) return s.call(this, r, n); if (a.isRegExp(s)) return s.exec(r); throw new TypeError("parser must be boolean|regexp|function"); } } } has(e, s) { if (e = H(e), e) { const n = a.findKey(this, e); return !!(n && this[n] !== void 0 && (!s || me(this, this[n], n, s))); } return !1; } delete(e, s) { const n = this; let r = !1; function o(i) { if (i = H(i), i) { const c = a.findKey(n, i); c && (!s || me(n, n[c], c, s)) && (delete n[c], r = !0); } } return a.isArray(e) ? e.forEach(o) : o(e), r; } clear(e) { const s = Object.keys(this); let n = s.length, r = !1; for (; n--; ) { const o = s[n]; (!e || me(this, this[o], o, e, !0)) && (delete this[o], r = !0); } return r; } normalize(e) { const s = this, n = {}; return a.forEach(this, (r, o) => { const i = a.findKey(n, o); if (i) { s[i] = q(r), delete s[o]; return; } const c = e ? Ps(o) : String(o).trim(); c !== o && delete s[o], s[c] = q(r), n[c] = !0; }), this; } concat(...e) { return this.constructor.concat(this, ...e); } toJSON(e) { const s = /* @__PURE__ */ Object.create(null); return a.forEach(this, (n, r) => { n != null && n !== !1 && (s[r] = e && a.isArray(n) ? n.join(", ") : n); }), s; } [Symbol.iterator]() { return Object.entries(this.toJSON())[Symbol.iterator](); } toString() { return Object.entries(this.toJSON()).map(([e, s]) => e + ": " + s).join(` `); } get [Symbol.toStringTag]() { return "AxiosHeaders"; } static from(e) { return e instanceof this ? e : new this(e); } static concat(e, ...s) { const n = new this(e); return s.forEach((r) => n.set(r)), n; } static accessor(e) { const n = (this[ke] = this[ke] = { accessors: {} }).accessors, r = this.prototype; function o(i) { const c = H(i); n[c] || (Ts(r, i), n[c] = !0); } return a.isArray(e) ? e.forEach(o) : o(e), this; } } fe.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent", "Authorization"]); a.reduceDescriptors(fe.prototype, ({ value: t }, e) => { let s = e[0].toUpperCase() + e.slice(1); return { get: () => t, set(n) { this[s] = n; } }; }); a.freezeMethods(fe); const C = fe; function pe(t, e) { const s = this || Le, n = e || s, r = C.from(n.headers); let o = n.data; return a.forEach(t, function(c) { o = c.call(s, o, r.normalize(), e ? e.status : void 0); }), r.normalize(), o; } function at(t) { return !!(t && t.__CANCEL__); } function Y(t, e, s) { b.call(this, t == null ? "canceled" : t, b.ERR_CANCELED, e, s), this.name = "CanceledError"; } a.inherits(Y, b, { __CANCEL__: !0 }); function Ks(t, e, s) { const n = s.config.validateStatus; !s.status || !n || n(s.status) ? t(s) : e(new b( "Request failed with status code " + s.status, [b.ERR_BAD_REQUEST, b.ERR_BAD_RESPONSE][Math.floor(s.status / 100) - 4], s.config, s.request, s )); } const Ns = D.hasStandardBrowserEnv ? { write(t, e, s, n, r, o) { const i = [t + "=" + encodeURIComponent(e)]; a.isNumber(s) && i.push("expires=" + new Date(s).toGMTString()), a.isString(n) && i.push("path=" + n), a.isString(r) && i.push("domain=" + r), o === !0 && i.push("secure"), document.cookie = i.join("; "); }, read(t) { const e = document.cookie.match(new RegExp("(^|;\\s*)(" + t + ")=([^;]*)")); return e ? decodeURIComponent(e[3]) : null; }, remove(t) { this.write(t, "", Date.now() - 864e5); } } : { write() { }, read() { return null; }, remove() { } }; function Ds(t) { return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(t); } function js(t, e) { return e ? t.replace(/\/?\/$/, "") + "/" + e.replace(/^\/+/, "") : t; } function ct(t, e) { return t && !Ds(e) ? js(t, e) : e; } const Cs = D.hasStandardBrowserEnv ? function() { const e = /(msie|trident)/i.test(navigator.userAgent), s = document.createElement("a"); let n; function r(o) { let i = o; return e && (s.setAttribute("href", i), i = s.href), s.setAttribute("href", i), { href: s.href, protocol: s.protocol ? s.protocol.replace(/:$/, "") : "", host: s.host, search: s.search ? s.search.replace(/^\?/, "") : "", hash: s.hash ? s.hash.replace(/^#/, "") : "", hostname: s.hostname, port: s.port, pathname: s.pathname.charAt(0) === "/" ? s.pathname : "/" + s.pathname }; } return n = r(window.location.href), function(i) { const c = a.isString(i) ? r(i) : i; return c.protocol === n.protocol && c.host === n.host; }; }() : function() { return function() { return !0; }; }(); function Ls(t) { const e = /^([-+\w]{1,25})(:?\/\/|:)/.exec(t); return e && e[1] || ""; } function Es(t, e) { t = t || 10; const s = new Array(t), n = new Array(t); let r = 0, o = 0, i; return e = e !== void 0 ? e : 1e3, function(f) { const d = Date.now(), u = n[o]; i || (i = d), s[r] = f, n[r] = d; let l = o, w = 0; for (; l !== r; ) w += s[l++], l = l % t; if (r = (r + 1) % t, r === o && (o = (o + 1) % t), d - i < e) return; const y = u && d - u; return y ? Math.round(w * 1e3 / y) : void 0; }; } function He(t, e) { let s = 0; const n = Es(50, 250); return (r) => { const o = r.loaded, i = r.lengthComputable ? r.total : void 0, c = o - s, f = n(c), d = o <= i; s = o; const u = { loaded: o, total: i, progress: i ? o / i : void 0, bytes: c, rate: f || void 0, estimated: f && i && d ? (i - o) / f : void 0, event: r }; u[e ? "download" : "upload"] = !0, t(u); }; } const zs = typeof XMLHttpRequest < "u", Os = zs && function(t) { return new Promise(function(s, n) { let r = t.data; const o = C.from(t.headers).normalize(); let { responseType: i, withXSRFToken: c } = t, f; function d() { t.cancelToken && t.cancelToken.unsubscribe(f), t.signal && t.signal.removeEventListener("abort", f); } let u; if (a.isFormData(r)) { if (D.hasStandardBrowserEnv || D.hasStandardBrowserWebWorkerEnv) o.setContentType(!1); else if ((u = o.getContentType()) !== !1) { const [m, ...S] = u ? u.split(";").map((Z) => Z.trim()).filter(Boolean) : []; o.setContentType([m || "multipart/form-data", ...S].join("; ")); } } let l = new XMLHttpRequest(); if (t.auth) { const m = t.auth.username || "", S = t.auth.password ? unescape(encodeURIComponent(t.auth.password)) : ""; o.set("Authorization", "Basic " + btoa(m + ":" + S)); } const w = ct(t.baseURL, t.url); l.open(t.method.toUpperCase(), nt(w, t.params, t.paramsSerializer), !0), l.timeout = t.timeout; function y() { if (!l) return; const m = C.from( "getAllResponseHeaders" in l && l.getAllResponseHeaders() ), Z = { data: !i || i === "text" || i === "json" ? l.responseText : l.response, status: l.status, statusText: l.statusText, headers: m, config: t, request: l }; Ks(function(E) { s(E), d(); }, function(E) { n(E), d(); }, Z), l = null; } if ("onloadend" in l ? l.onloadend = y : l.onreadystatechange = function() { !l || l.readyState !== 4 || l.status === 0 && !(l.responseURL && l.responseURL.indexOf("file:") === 0) || setTimeout(y); }, l.onabort = function() { !l || (n(new b("Request aborted", b.ECONNABORTED, t, l)), l = null); }, l.onerror = function() { n(new b("Network Error", b.ERR_NETWORK, t, l)), l = null; }, l.ontimeout = function() { let S = t.timeout ? "timeout of " + t.timeout + "ms exceeded" : "timeout exceeded"; const Z = t.transitional || rt; t.timeoutErrorMessage && (S = t.timeoutErrorMessage), n(new b( S, Z.clarifyTimeoutError ? b.ETIMEDOUT : b.ECONNABORTED, t, l )), l = null; }, D.hasStandardBrowserEnv && (c && a.isFunction(c) && (c = c(t)), c || c !== !1 && Cs(w))) { const m = t.xsrfHeaderName && t.xsrfCookieName && Ns.read(t.xsrfCookieName); m && o.set(t.xsrfHeaderName, m); } r === void 0 && o.setContentType(null), "setRequestHeader" in l && a.forEach(o.toJSON(), function(S, Z) { l.setRequestHeader(Z, S); }), a.isUndefined(t.withCredentials) || (l.withCredentials = !!t.withCredentials), i && i !== "json" && (l.responseType = t.responseType), typeof t.onDownloadProgress == "function" && l.addEventListener("progress", He(t.onDownloadProgress, !0)), typeof t.onUploadProgress == "function" && l.upload && l.upload.addEventListener("progress", He(t.onUploadProgress)), (t.cancelToken || t.signal) && (f = (m) => { !l || (n(!m || m.type ? new Y(null, t, l) : m), l.abort(), l = null); }, t.cancelToken && t.cancelToken.subscribe(f), t.signal && (t.signal.aborted ? f() : t.signal.addEventListener("abort", f))); const h = Ls(w); if (h && D.protocols.indexOf(h) === -1) { n(new b("Unsupported protocol " + h + ":", b.ERR_BAD_REQUEST, t)); return; } l.send(r || null); }); }, Se = { http: ns, xhr: Os }; a.forEach(Se, (t, e) => { if (t) { try { Object.defineProperty(t, "name", { value: e }); } catch { } Object.defineProperty(t, "adapterName", { value: e }); } }); const Ae = (t) => `- ${t}`, Xs = (t) => a.isFunction(t) || t === null || t === !1, lt = { getAdapter: (t) => { t = a.isArray(t) ? t : [t]; const { length: e } = t; let s, n; const r = {}; for (let o = 0; o < e; o++) { s = t[o]; let i; if (n = s, !Xs(s) && (n = Se[(i = String(s)).toLowerCase()], n === void 0)) throw new b(`Unknown adapter '${i}'`); if (n) break; r[i || "#" + o] = n; } if (!n) { const o = Object.entries(r).map( ([c, f]) => `adapter ${c} ` + (f === !1 ? "is not supported by the environment" : "is not available in the build") ); let i = e ? o.length > 1 ? `since : ` + o.map(Ae).join(` `) : " " + Ae(o[0]) : "as no adapter specified"; throw new b( "There is no suitable adapter to dispatch the request " + i, "ERR_NOT_SUPPORT" ); } return n; }, adapters: Se }; function we(t) { if (t.cancelToken && t.cancelToken.throwIfRequested(), t.signal && t.signal.aborted) throw new Y(null, t); } function Ie(t) { return we(t), t.headers = C.from(t.headers), t.data = pe.call( t, t.transformRequest ), ["post", "put", "patch"].indexOf(t.method) !== -1 && t.headers.setContentType("application/x-www-form-urlencoded", !1), lt.getAdapter(t.adapter || Le.adapter)(t).then(function(n) { return we(t), n.data = pe.call( t, t.transformResponse, n ), n.headers = C.from(n.headers), n; }, function(n) { return at(n) || (we(t), n && n.response && (n.response.data = pe.call( t, t.transformResponse, n.response ), n.response.headers = C.from(n.response.headers))), Promise.reject(n); }); } const We = (t) => t instanceof C ? t.toJSON() : t; function g(t, e) { e = e || {}; const s = {}; function n(d, u, l) { return a.isPlainObject(d) && a.isPlainObject(u) ? a.merge.call({ caseless: l }, d, u) : a.isPlainObject(u) ? a.merge({}, u) : a.isArray(u) ? u.slice() : u; } function r(d, u, l) { if (a.isUndefined(u)) { if (!a.isUndefined(d)) return n(void 0, d, l); } else return n(d, u, l); } function o(d, u) { if (!a.isUndefined(u)) return n(void 0, u); } function i(d, u) { if (a.isUndefined(u)) { if (!a.isUndefined(d)) return n(void 0, d); } else return n(void 0, u); } function c(d, u, l) { if (l in e) return n(d, u); if (l in t) return n(void 0, d); } const f = { url: o, method: o, data: o, baseURL: i, transformRequest: i, transformResponse: i, paramsSerializer: i, timeout: i, timeoutMessage: i, withCredentials: i, withXSRFToken: i, adapter: i, responseType: i, xsrfCookieName: i, xsrfHeaderName: i, onUploadProgress: i, onDownloadProgress: i, decompress: i, maxContentLength: i, maxBodyLength: i, beforeRedirect: i, transport: i, httpAgent: i, httpsAgent: i, cancelToken: i, socketPath: i, responseEncoding: i, validateStatus: c, headers: (d, u) => r(We(d), We(u), !0) }; return a.forEach(Object.keys(Object.assign({}, t, e)), function(u) { const l = f[u] || r, w = l(t[u], e[u], u); a.isUndefined(w) && l !== c || (s[u] = w); }), s; } const ut = "1.6.7", Ee = {}; ["object", "boolean", "number", "function", "string", "symbol"].forEach((t, e) => { Ee[t] = function(n) { return typeof n === t || "a" + (e < 1 ? "n " : " ") + t; }; }); const Fe = {}; Ee.transitional = function(e, s, n) { function r(o, i) { return "[Axios v" + ut + "] Transitional option '" + o + "'" + i + (n ? ". " + n : ""); } return (o, i, c) => { if (e === !1) throw new b( r(i, " has been removed" + (s ? " in " + s : "")), b.ERR_DEPRECATED ); return s && !Fe[i] && (Fe[i] = !0, console.warn( r( i, " has been deprecated since v" + s + " and will be removed in the near future" ) )), e ? e(o, i, c) : !0; }; }; function Rs(t, e, s) { if (typeof t != "object") throw new b("options must be an object", b.ERR_BAD_OPTION_VALUE); const n = Object.keys(t); let r = n.length; for (; r-- > 0; ) { const o = n[r], i = e[o]; if (i) { const c = t[o], f = c === void 0 || i(c, o, t); if (f !== !0) throw new b("option " + o + " must be " + f, b.ERR_BAD_OPTION_VALUE); continue; } if (s !== !0) throw new b("Unknown option " + o, b.ERR_BAD_OPTION); } } const Me = { assertOptions: Rs, validators: Ee }, z = Me.validators; class te { constructor(e) { this.defaults = e, this.interceptors = { request: new ge(), response: new ge() }; } async request(e, s) { try { return await this._request(e, s); } catch (n) { if (n instanceof Error) { let r; Error.captureStackTrace ? Error.captureStackTrace(r = {}) : r = new Error(); const o = r.stack ? r.stack.replace(/^.+\n/, "") : ""; n.stack ? o && !String(n.stack).endsWith(o.replace(/^.+\n.+\n/, "")) && (n.stack += ` ` + o) : n.stack = o; } throw n; } } _request(e, s) { typeof e == "string" ? (s = s || {}, s.url = e) : s = e || {}, s = g(this.defaults, s); const { transitional: n, paramsSerializer: r, headers: o } = s; n !== void 0 && Me.assertOptions(n, { silentJSONParsing: z.transitional(z.boolean), forcedJSONParsing: z.transitional(z.boolean), clarifyTimeoutError: z.transitional(z.boolean) }, !1), r != null && (a.isFunction(r) ? s.paramsSerializer = { serialize: r } : Me.assertOptions(r, { encode: z.function, serialize: z.function }, !0)), s.method = (s.method || this.defaults.method || "get").toLowerCase(); let i = o && a.merge( o.common, o[s.method] ); o && a.forEach( ["delete", "get", "head", "post", "put", "patch", "common"], (h) => { delete o[h]; } ), s.headers = C.concat(i, o); const c = []; let f = !0; this.interceptors.request.forEach(function(m) { typeof m.runWhen == "function" && m.runWhen(s) === !1 || (f = f && m.synchronous, c.unshift(m.fulfilled, m.rejected)); }); const d = []; this.interceptors.response.forEach(function(m) { d.push(m.fulfilled, m.rejected); }); let u, l = 0, w; if (!f) { const h = [Ie.bind(this), void 0]; for (h.unshift.apply(h, c), h.push.apply(h, d), w = h.length, u = Promise.resolve(s); l < w; ) u = u.then(h[l++], h[l++]); return u; } w = c.length; let y = s; for (l = 0; l < w; ) { const h = c[l++], m = c[l++]; try { y = h(y); } catch (S) { m.call(this, S); break; } } try { u = Ie.call(this, y); } catch (h) { return Promise.reject(h); } for (l = 0, w = d.length; l < w; ) u = u.then(d[l++], d[l++]); return u; } getUri(e) { e = g(this.defaults, e); const s = ct(e.baseURL, e.url); return nt(s, e.params, e.paramsSerializer); } } a.forEach(["delete", "get", "head", "options"], function(e) { te.prototype[e] = function(s, n) { return this.request(g(n || {}, { method: e, url: s, data: (n || {}).data })); }; }); a.forEach(["post", "put", "patch"], function(e) { function s(n) { return function(o, i, c) { return this.request(g(c || {}, { method: e, headers: n ? { "Content-Type": "multipart/form-data" } : {}, url: o, data: i })); }; } te.prototype[e] = s(), te.prototype[e + "Form"] = s(!0); }); const v = te; class ze { constructor(e) { if (typeof e != "function") throw new TypeError("executor must be a function."); let s; this.promise = new Promise(function(o) { s = o; }); const n = this; this.promise.then((r) => { if (!n._listeners) return; let o = n._listeners.length; for (; o-- > 0; ) n._listeners[o](r); n._listeners = null; }), this.promise.then = (r) => { let o; const i = new Promise((c) => { n.subscribe(c), o = c; }).then(r); return i.cancel = function() { n.unsubscribe(o); }, i; }, e(function(o, i, c) { n.reason || (n.reason = new Y(o, i, c), s(n.reason)); }); } throwIfRequested() { if (this.reason) throw this.reason; } subscribe(e) { if (this.reason) { e(this.reason); return; } this._listeners ? this._listeners.push(e) : this._listeners = [e]; } unsubscribe(e) { if (!this._listeners) return; const s = this._listeners.indexOf(e); s !== -1 && this._listeners.splice(s, 1); } static source() { let e; return { token: new ze(function(r) { e = r; }), cancel: e }; } } const Gs = ze; function gs(t) { return function(s) { return t.apply(null, s); }; } function ks(t) { return a.isObject(t) && t.isAxiosError === !0; } const Ze = { Continue: 100, SwitchingProtocols: 101, Processing: 102, EarlyHints: 103, Ok: 200, Created: 201, Accepted: 202, NonAuthoritativeInformation: 203, NoContent: 204, ResetContent: 205, PartialContent: 206, MultiStatus: 207, AlreadyReported: 208, ImUsed: 226, MultipleChoices: 300, MovedPermanently: 301, Found: 302, SeeOther: 303, NotModified: 304, UseProxy: 305, Unused: 306, TemporaryRedirect: 307, PermanentRedirect: 308, BadRequest: 400, Unauthorized: 401, PaymentRequired: 402, Forbidden: 403, NotFound: 404, MethodNotAllowed: 405, NotAcceptable: 406, ProxyAuthenticationRequired: 407, RequestTimeout: 408, Conflict: 409, Gone: 410, LengthRequired: 411, PreconditionFailed: 412, PayloadTooLarge: 413, UriTooLong: 414, UnsupportedMediaType: 415, RangeNotSatisfiable: 416, ExpectationFailed: 417, ImATeapot: 418, MisdirectedRequest: 421, UnprocessableEntity: 422, Locked: 423, FailedDependency: 424, TooEarly: 425, UpgradeRequired: 426, PreconditionRequired: 428, TooManyRequests: 429, RequestHeaderFieldsTooLarge: 431, UnavailableForLegalReasons: 451, InternalServerError: 500, NotImplemented: 501, BadGateway: 502, ServiceUnavailable: 503, GatewayTimeout: 504, HttpVersionNotSupported: 505, VariantAlsoNegotiates: 506, InsufficientStorage: 507, LoopDetected: 508, NotExtended: 510, NetworkAuthenticationRequired: 511 }; Object.entries(Ze).forEach(([t, e]) => { Ze[e] = t; }); const Hs = Ze; function dt(t) { const e = new v(t), s = Ue(v.prototype.request, e); return a.extend(s, v.prototype, e, { allOwnKeys: !0 }), a.extend(s, e, null, { allOwnKeys: !0 }), s.create = function(r) { return dt(g(t, r)); }, s; } const M = dt(Le); M.Axios = v; M.CanceledError = Y; M.CancelToken = Gs; M.isCancel = at; M.VERSION = ut; M.toFormData = de; M.AxiosError = b; M.Cancel = M.CanceledError; M.all = function(e) { return Promise.all(e); }; M.spread = gs; M.isAxiosError = ks; M.mergeConfig = g; M.AxiosHeaders = C; M.formToJSON = (t) => it(a.isHTMLForm(t) ? new FormData(t) : t); M.getAdapter = lt.getAdapter; M.HttpStatusCode = Hs; M.default = M; const O = M, Q = { get: (t, e, s = {}) => (O.defaults.headers = { ...O.defaults.headers || {}, ...s || {} }, new Promise((n, r) => { O.get(t, { params: e }).then((o) => { o.status == 200 ? n(o.data) : r(o); }).catch((o) => { r(o); }); })), post: (t, e, s, n) => (O.defaults.headers = { ...O.defaults.headers || {}, ...s || {} }, new Promise((r, o) => { O.post(t, e, { cancelToken: new O.CancelToken(function(c) { typeof n == "function" && n(c); }) }).then((i) => { i.status == 200 ? r(i.data) : o(i); }).catch((i) => { o(i); }); })), all: (t) => O.all(t) }, ft = "KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihhKXtpZih0eXBlb2YgZXhwb3J0cz09Im9iamVjdCIpbW9kdWxlLmV4cG9ydHM9YSgpO2Vsc2UgaWYodHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZClkZWZpbmUoYSk7ZWxzZXt2YXIgdTt0cnl7dT13aW5kb3d9Y2F0Y2h7dT1zZWxmfXUuU3BhcmtNRDU9YSgpfX0pKGZ1bmN0aW9uKGEpe3ZhciB1PVsiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiJdO2Z1bmN0aW9uIG8oaSxmKXt2YXIgcj1pWzBdLHQ9aVsxXSxuPWlbMl0sZT1pWzNdO3IrPSh0Jm58fnQmZSkrZlswXS02ODA4NzY5MzZ8MCxyPShyPDw3fHI+Pj4yNSkrdHwwLGUrPShyJnR8fnImbikrZlsxXS0zODk1NjQ1ODZ8MCxlPShlPDwxMnxlPj4+MjApK3J8MCxuKz0oZSZyfH5lJnQpK2ZbMl0rNjA2MTA1ODE5fDAsbj0objw8MTd8bj4+PjE1KStlfDAsdCs9KG4mZXx+biZyKStmWzNdLTEwNDQ1MjUzMzB8MCx0PSh0PDwyMnx0Pj4+MTApK258MCxyKz0odCZufH50JmUpK2ZbNF0tMTc2NDE4ODk3fDAscj0ocjw8N3xyPj4+MjUpK3R8MCxlKz0ociZ0fH5yJm4pK2ZbNV0rMTIwMDA4MDQyNnwwLGU9KGU8PDEyfGU+Pj4yMCkrcnwwLG4rPShlJnJ8fmUmdCkrZls2XS0xNDczMjMxMzQxfDAsbj0objw8MTd8bj4+PjE1KStlfDAsdCs9KG4mZXx+biZyKStmWzddLTQ1NzA1OTgzfDAsdD0odDw8MjJ8dD4+PjEwKStufDAscis9KHQmbnx+dCZlKStmWzhdKzE3NzAwMzU0MTZ8MCxyPShyPDw3fHI+Pj4yNSkrdHwwLGUrPShyJnR8fnImbikrZls5XS0xOTU4NDE0NDE3fDAsZT0oZTw8MTJ8ZT4+PjIwKStyfDAsbis9KGUmcnx+ZSZ0KStmWzEwXS00MjA2M3wwLG49KG48PDE3fG4+Pj4xNSkrZXwwLHQrPShuJmV8fm4mcikrZlsxMV0tMTk5MDQwNDE2MnwwLHQ9KHQ8PDIyfHQ+Pj4xMCkrbnwwLHIrPSh0Jm58fnQmZSkrZlsxMl0rMTgwNDYwMzY4MnwwLHI9KHI8PDd8cj4+PjI1KSt0fDAsZSs9KHImdHx+ciZuKStmWzEzXS00MDM0MTEwMXwwLGU9KGU8PDEyfGU+Pj4yMCkrcnwwLG4rPShlJnJ8fmUmdCkrZlsxNF0tMTUwMjAwMjI5MHwwLG49KG48PDE3fG4+Pj4xNSkrZXwwLHQrPShuJmV8fm4mcikrZlsxNV0rMTIzNjUzNTMyOXwwLHQ9KHQ8PDIyfHQ+Pj4xMCkrbnwwLHIrPSh0JmV8biZ+ZSkrZlsxXS0xNjU3OTY1MTB8MCxyPShyPDw1fHI+Pj4yNykrdHwwLGUrPShyJm58dCZ+bikrZls2XS0xMDY5NTAxNjMyfDAsZT0oZTw8OXxlPj4+MjMpK3J8MCxuKz0oZSZ0fHImfnQpK2ZbMTFdKzY0MzcxNzcxM3wwLG49KG48PDE0fG4+Pj4xOCkrZXwwLHQrPShuJnJ8ZSZ+cikrZlswXS0zNzM4OTczMDJ8MCx0PSh0PDwyMHx0Pj4+MTIpK258MCxyKz0odCZlfG4mfmUpK2ZbNV0tNzAxNTU4NjkxfDAscj0ocjw8NXxyPj4+MjcpK3R8MCxlKz0ociZufHQmfm4pK2ZbMTBdKzM4MDE2MDgzfDAsZT0oZTw8OXxlPj4+MjMpK3J8MCxuKz0oZSZ0fHImfnQpK2ZbMTVdLTY2MDQ3ODMzNXwwLG49KG48PDE0fG4+Pj4xOCkrZXwwLHQrPShuJnJ8ZSZ+cikrZls0XS00MDU1Mzc4NDh8MCx0PSh0PDwyMHx0Pj4+MTIpK258MCxyKz0odCZlfG4mfmUpK2ZbOV0rNTY4NDQ2NDM4fDAscj0ocjw8NXxyPj4+MjcpK3R8MCxlKz0ociZufHQmfm4pK2ZbMTRdLTEwMTk4MDM2OTB8MCxlPShlPDw5fGU+Pj4yMykrcnwwLG4rPShlJnR8ciZ+dCkrZlszXS0xODczNjM5NjF8MCxuPShuPDwxNHxuPj4+MTgpK2V8MCx0Kz0obiZyfGUmfnIpK2ZbOF0rMTE2MzUzMTUwMXwwLHQ9KHQ8PDIwfHQ+Pj4xMikrbnwwLHIrPSh0JmV8biZ+ZSkrZlsxM10tMTQ0NDY4MTQ2N3wwLHI9KHI8PDV8cj4+PjI3KSt0fDAsZSs9KHImbnx0Jn5uKStmWzJdLTUxNDAzNzg0fDAsZT0oZTw8OXxlPj4+MjMpK3J8MCxuKz0oZSZ0fHImfnQpK2ZbN10rMTczNTMyODQ3M3wwLG49KG48PDE0fG4+Pj4xOCkrZXwwLHQrPShuJnJ8ZSZ+cikrZlsxMl0tMTkyNjYwNzczNHwwLHQ9KHQ8PDIwfHQ+Pj4xMikrbnwwLHIrPSh0Xm5eZSkrZls1XS0zNzg1NTh8MCxyPShyPDw0fHI+Pj4yOCkrdHwwLGUrPShyXnRebikrZls4XS0yMDIyNTc0NDYzfDAsZT0oZTw8MTF8ZT4+PjIxKStyfDAsbis9KGVecl50KStmWzExXSsxODM5MDMwNTYyfDAsbj0objw8MTZ8bj4+PjE2KStlfDAsdCs9KG5eZV5yKStmWzE0XS0zNTMwOTU1NnwwLHQ9KHQ8PDIzfHQ+Pj45KStufDAscis9KHRebl5lKStmWzFdLTE1MzA5OTIwNjB8MCxyPShyPDw0fHI+Pj4yOCkrdHwwLGUrPShyXnRebikrZls0XSsxMjcyODkzMzUzfDAsZT0oZTw8MTF8ZT4+PjIxKStyfDAsbis9KGVecl50KStmWzddLTE1NTQ5NzYzMnwwLG49KG48PDE2fG4+Pj4xNikrZXwwLHQrPShuXmVecikrZlsxMF0tMTA5NDczMDY0MHwwLHQ9KHQ8PDIzfHQ+Pj45KStufDAscis9KHRebl5lKStmWzEzXSs2ODEyNzkxNzR8MCxyPShyPDw0fHI+Pj4yOCkrdHwwLGUrPShyXnRebikrZlswXS0zNTg1MzcyMjJ8MCxlPShlPDwxMXxlPj4+MjEpK3J8MCxuKz0oZV5yXnQpK2ZbM10tNzIyNTIxOTc5fDAsbj0objw8MTZ8bj4+PjE2KStlfDAsdCs9KG5eZV5yKStmWzZdKzc2MDI5MTg5fDAsdD0odDw8MjN8dD4+PjkpK258MCxyKz0odF5uXmUpK2ZbOV0tNjQwMzY0NDg3fDAscj0ocjw8NHxyPj4+MjgpK3R8MCxlKz0ocl50Xm4pK2ZbMTJdLTQyMTgxNTgzNXwwLGU9KGU8PDExfGU+Pj4yMSkrcnwwLG4rPShlXnJedCkrZlsxNV0rNTMwNzQyNTIwfDAsbj0objw8MTZ8bj4+PjE2KStlfDAsdCs9KG5eZV5yKStmWzJdLTk5NTMzODY1MXwwLHQ9KHQ8PDIzfHQ+Pj45KStufDAscis9KG5eKHR8fmUpKStmWzBdLTE5ODYzMDg0NHwwLHI9KHI8PDZ8cj4+PjI2KSt0fDAsZSs9KHReKHJ8fm4pKStmWzddKzExMjY4OTE0MTV8MCxlPShlPDwxMHxlPj4+MjIpK3J8MCxuKz0ocl4oZXx+dCkpK2ZbMTRdLTE0MTYzNTQ5MDV8MCxuPShuPDwxNXxuPj4+MTcpK2V8MCx0Kz0oZV4obnx+cikpK2ZbNV0tNTc0MzQwNTV8MCx0PSh0PDwyMXx0Pj4+MTEpK258MCxyKz0obl4odHx+ZSkpK2ZbMTJdKzE3MDA0ODU1NzF8MCxyPShyPDw2fHI+Pj4yNikrdHwwLGUrPSh0XihyfH5uKSkrZlszXS0xODk0OTg2NjA2fDAsZT0oZTw8MTB8ZT4+PjIyKStyfDAsbis9KHJeKGV8fnQpKStmWzEwXS0xMDUxNTIzfDAsbj0objw8MTV8bj4+PjE3KStlfDAsdCs9KGVeKG58fnIpKStmWzFdLTIwNTQ5MjI3OTl8MCx0PSh0PDwyMXx0Pj4+MTEpK258MCxyKz0obl4odHx+ZSkpK2ZbOF0rMTg3MzMxMzM1OXwwLHI9KHI8PDZ8cj4+PjI2KSt0fDAsZSs9KHReKHJ8fm4pKStmWzE1XS0zMDYxMTc0NHwwLGU9KGU8PDEwfGU+Pj4yMikrcnwwLG4rPShyXihlfH50KSkrZls2XS0xNTYwMTk4MzgwfDAsbj0objw8MTV8bj4+PjE3KStlfDAsdCs9KGVeKG58fnIpKStmWzEzXSsxMzA5MTUxNjQ5fDAsdD0odDw8MjF8dD4+PjExKStufDAscis9KG5eKHR8fmUpKStmWzRdLTE0NTUyMzA3MHwwLHI9KHI8PDZ8cj4+PjI2KSt0fDAsZSs9KHReKHJ8fm4pKStmWzExXS0xMTIwMjEwMzc5fDAsZT0oZTw8MTB8ZT4+PjIyKStyfDAsbis9KHJeKGV8fnQpKStmWzJdKzcxODc4NzI1OXwwLG49KG48PDE1fG4+Pj4xNykrZXwwLHQrPShlXihufH5yKSkrZls5XS0zNDM0ODU1NTF8MCx0PSh0PDwyMXx0Pj4+MTEpK258MCxpWzBdPXIraVswXXwwLGlbMV09dCtpWzFdfDAsaVsyXT1uK2lbMl18MCxpWzNdPWUraVszXXwwfWZ1bmN0aW9uIEEoaSl7dmFyIGY9W10scjtmb3Iocj0wO3I8NjQ7cis9NClmW3I+PjJdPWkuY2hhckNvZGVBdChyKSsoaS5jaGFyQ29kZUF0KHIrMSk8PDgpKyhpLmNoYXJDb2RlQXQocisyKTw8MTYpKyhpLmNoYXJDb2RlQXQociszKTw8MjQpO3JldHVybiBmfWZ1bmN0aW9uIGIoaSl7dmFyIGY9W10scjtmb3Iocj0wO3I8NjQ7cis9NClmW3I+PjJdPWlbcl0rKGlbcisxXTw8OCkrKGlbcisyXTw8MTYpKyhpW3IrM108PDI0KTtyZXR1cm4gZn1mdW5jdGlvbiBwKGkpe3ZhciBmPWkubGVuZ3RoLHI9WzE3MzI1ODQxOTMsLTI3MTczMzg3OSwtMTczMjU4NDE5NCwyNzE3MzM4NzhdLHQsbixlLHMsYyxnO2Zvcih0PTY0O3Q8PWY7dCs9NjQpbyhyLEEoaS5zdWJzdHJpbmcodC02NCx0KSkpO2ZvcihpPWkuc3Vic3RyaW5nKHQtNjQpLG49aS5sZW5ndGgsZT1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sdD0wO3Q8bjt0Kz0xKWVbdD4+Ml18PWkuY2hhckNvZGVBdCh0KTw8KHQlNDw8Myk7aWYoZVt0Pj4yXXw9MTI4PDwodCU0PDwzKSx0PjU1KWZvcihvKHIsZSksdD0wO3Q8MTY7dCs9MSllW3RdPTA7cmV0dXJuIHM9Zio4LHM9cy50b1N0cmluZygxNikubWF0Y2goLyguKj8pKC57MCw4fSkkLyksYz1wYXJzZUludChzWzJdLDE2KSxnPXBhcnNlSW50KHNbMV0sMTYpfHwwLGVbMTRdPWMsZVsxNV09ZyxvKHIsZSkscn1mdW5jdGlvbiBkKGkpe3ZhciBmPWkubGVuZ3RoLHI9WzE3MzI1ODQxOTMsLTI3MTczMzg3OSwtMTczMjU4NDE5NCwyNzE3MzM4NzhdLHQsbixlLHMsYyxnO2Zvcih0PTY0O3Q8PWY7dCs9NjQpbyhyLGIoaS5zdWJhcnJheSh0LTY0LHQpKSk7Zm9yKGk9dC02NDxmP2kuc3ViYXJyYXkodC02NCk6bmV3IFVpbnQ4QXJyYXkoMCksbj1pLmxlbmd0aCxlPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSx0PTA7dDxuO3QrPTEpZVt0Pj4yXXw9aVt0XTw8KHQlNDw8Myk7aWYoZVt0Pj4yXXw9MTI4PDwodCU0PDwzKSx0PjU1KWZvcihvKHIsZSksdD0wO3Q8MTY7dCs9MSllW3RdPTA7cmV0dXJuIHM9Zio4LHM9cy50b1N0cmluZygxNikubWF0Y2goLyguKj8pKC57MCw4fSkkLyksYz1wYXJzZUludChzWzJdLDE2KSxnPXBhcnNlSW50KHNbMV0sMTYpfHwwLGVbMTRdPWMsZVsxNV09ZyxvKHIsZSkscn1mdW5jdGlvbiB5KGkpe3ZhciBmPSIiLHI7Zm9yKHI9MDtyPDQ7cis9MSlmKz11W2k+PnIqOCs0JjE1XSt1W2k+PnIqOCYxNV07cmV0dXJuIGZ9ZnVuY3Rpb24gbChpKXt2YXIgZjtmb3IoZj0wO2Y8aS5sZW5ndGg7Zis9MSlpW2ZdPXkoaVtmXSk7cmV0dXJuIGkuam9pbigiIil9bChwKCJoZWxsbyIpKSx0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiYhQXJyYXlCdWZmZXIucHJvdG90eXBlLnNsaWNlJiZmdW5jdGlvbigpe2Z1bmN0aW9uIGkoZixyKXtyZXR1cm4gZj1mfDB8fDAsZjwwP01hdGgubWF4KGYrciwwKTpNYXRoLm1pbihmLHIpfUFycmF5QnVmZmVyLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbihmLHIpe3ZhciB0PXRoaXMuYnl0ZUxlbmd0aCxuPWkoZix0KSxlPXQscyxjLGcsUztyZXR1cm4gciE9PWEmJihlPWkocix0KSksbj5lP25ldyBBcnJheUJ1ZmZlcigwKToocz1lLW4sYz1uZXcgQXJyYXlCdWZmZXIocyksZz1uZXcgVWludDhBcnJheShjKSxTPW5ldyBVaW50OEFycmF5KHRoaXMsbixzKSxnLnNldChTKSxjKX19KCk7ZnVuY3Rpb24gXyhpKXtyZXR1cm4vW1x1MDA4MC1cdUZGRkZdLy50ZXN0KGkpJiYoaT11bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoaSkpKSxpfWZ1bmN0aW9uIHcoaSxmKXt2YXIgcj1pLmxlbmd0aCx0PW5ldyBBcnJheUJ1ZmZlcihyKSxuPW5ldyBVaW50OEFycmF5KHQpLGU7Zm9yKGU9MDtlPHI7ZSs9MSluW2VdPWkuY2hhckNvZGVBdChlKTtyZXR1cm4gZj9uOnR9ZnVuY3Rpb24gbShpKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KGkpKX1mdW5jdGlvbiBDKGksZixyKXt2YXIgdD1uZXcgVWludDhBcnJheShpLmJ5dGVMZW5ndGgrZi5ieXRlTGVuZ3RoKTtyZXR1cm4gdC5zZXQobmV3IFVpbnQ4QXJyYXkoaSkpLHQuc2V0KG5ldyBVaW50OEFycmF5KGYpLGkuYnl0ZUxlbmd0aCkscj90OnQuYnVmZmVyfWZ1bmN0aW9uIEIoaSl7dmFyIGY9W10scj1pLmxlbmd0aCx0O2Zvcih0PTA7dDxyLTE7dCs9MilmLnB1c2gocGFyc2VJbnQoaS5zdWJzdHIodCwyKSwxNikpO3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxmKX1mdW5jdGlvbiBoKCl7dGhpcy5yZXNldCgpfXJldHVybiBoLnByb3RvdHlwZS5hcHBlbmQ9ZnVuY3Rpb24oaSl7cmV0dXJuIHRoaXMuYXBwZW5kQmluYXJ5KF8oaSkpLHRoaXN9LGgucHJvdG90eXBlLmFwcGVuZEJpbmFyeT1mdW5jdGlvbihpKXt0aGlzLl9idWZmKz1pLHRoaXMuX2xlbmd0aCs9aS5sZW5ndGg7dmFyIGY9dGhpcy5fYnVmZi5sZW5ndGgscjtmb3Iocj02NDtyPD1mO3IrPTY0KW8odGhpcy5faGFzaCxBKHRoaXMuX2J1ZmYuc3Vic3RyaW5nKHItNjQscikpKTtyZXR1cm4gdGhpcy5fYnVmZj10aGlzLl9idWZmLnN1YnN0cmluZyhyLTY0KSx0aGlzfSxoLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oaSl7dmFyIGY9dGhpcy5fYnVmZixyPWYubGVuZ3RoLHQsbj1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sZTtmb3IodD0wO3Q8cjt0Kz0xKW5bdD4+Ml18PWYuY2hhckNvZGVBdCh0KTw8KHQlNDw8Myk7cmV0dXJuIHRoaXMuX2ZpbmlzaChuLHIpLGU9bCh0aGlzLl9oYXNoKSxpJiYoZT1CKGUpKSx0aGlzLnJlc2V0KCksZX0saC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZj0iIix0aGlzLl9sZW5ndGg9MCx0aGlzLl9oYXNoPVsxNzMyNTg0MTkzLC0yNzE3MzM4NzksLTE3MzI1ODQxOTQsMjcxNzMzODc4XSx0aGlzf