big-file-up
Version:
big-file-up是一款大文件上传的插件
1,405 lines • 64.4 kB
JavaScript
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