@caspingus/lt
Version:
A utility library of helpers and extensions useful when working with Learnosity APIs.
1,471 lines • 1.14 MB
JavaScript
import { n as __exportAll, r as __toESM, t as __commonJSMin } from "../../chunk-BPfpcrXh.js";
import { r as createExtension, t as LT } from "../../extensionsFactory-hk5ijx1G.js";
import { t as setObserver } from "../../dom-CpjYEKpq.js";
import { t as debounce } from "../../debounce-C3hW3xEb.js";
//#region node_modules/xlsx/xlsx.mjs
var xlsx_exports = /* @__PURE__ */ __exportAll({
CFB: () => CFB,
SSF: () => SSF,
default: () => xlsx_default,
parse_xlscfb: () => parse_xlscfb,
parse_zip: () => parse_zip,
read: () => readSync,
readFile: () => readFileSync,
readFileSync: () => readFileSync,
set_cptable: () => set_cptable,
set_fs: () => set_fs,
stream: () => __stream,
utils: () => utils,
version: () => version,
write: () => writeSync,
writeFile: () => writeFileSync,
writeFileAsync: () => writeFileAsync,
writeFileSync: () => writeFileSync,
writeFileXLSX: () => writeFileSyncXLSX,
writeXLSX: () => writeSyncXLSX
}), XLSX = {};
XLSX.version = "0.20.3";
var current_codepage = 1200, current_ansi = 1252, $cptable, VALID_ANSI = [
874,
932,
936,
949,
950,
1250,
1251,
1252,
1253,
1254,
1255,
1256,
1257,
1258,
1e4
], CS2CP = {
0: 1252,
1: 65001,
2: 65001,
77: 1e4,
128: 932,
129: 949,
130: 1361,
134: 936,
136: 950,
161: 1253,
162: 1254,
163: 1258,
177: 1255,
178: 1256,
186: 1257,
204: 1251,
222: 874,
238: 1250,
255: 1252,
69: 6969
}, set_ansi = function(x) {
VALID_ANSI.indexOf(x) != -1 && (current_ansi = CS2CP[0] = x);
};
function reset_ansi() {
set_ansi(1252);
}
var set_cp = function(x) {
current_codepage = x, set_ansi(x);
};
function reset_cp() {
set_cp(1200), reset_ansi();
}
function char_codes(x) {
for (var w = [], T = 0, O = x.length; T < O; ++T) w[T] = x.charCodeAt(T);
return w;
}
function utf16leread(x) {
for (var w = [], T = 0; T < x.length >> 1; ++T) w[T] = String.fromCharCode(x.charCodeAt(2 * T) + (x.charCodeAt(2 * T + 1) << 8));
return w.join("");
}
function utf16lereadu(x) {
for (var w = [], T = 0; T < x.length >> 1; ++T) w[T] = String.fromCharCode(x[2 * T] + (x[2 * T + 1] << 8));
return w.join("");
}
function utf16beread(x) {
for (var w = [], T = 0; T < x.length >> 1; ++T) w[T] = String.fromCharCode(x.charCodeAt(2 * T + 1) + (x.charCodeAt(2 * T) << 8));
return w.join("");
}
var debom = function(x) {
var w = x.charCodeAt(0), T = x.charCodeAt(1);
return w == 255 && T == 254 ? utf16leread(x.slice(2)) : w == 254 && T == 255 ? utf16beread(x.slice(2)) : w == 65279 ? x.slice(1) : x;
}, _getchar = function(x) {
return String.fromCharCode(x);
}, _getansi = function(x) {
return String.fromCharCode(x);
};
function set_cptable(x) {
$cptable = x, set_cp = function(x) {
current_codepage = x, set_ansi(x);
}, debom = function(x) {
return x.charCodeAt(0) === 255 && x.charCodeAt(1) === 254 ? $cptable.utils.decode(1200, char_codes(x.slice(2))) : x;
}, _getchar = function(x) {
return current_codepage === 1200 ? String.fromCharCode(x) : $cptable.utils.decode(current_codepage, [x & 255, x >> 8])[0];
}, _getansi = function(x) {
return $cptable.utils.decode(current_ansi, [x])[0];
}, cpdoit();
}
var DENSE = null, DIF_XL = !0, Base64_map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function Base64_encode(x) {
for (var w = "", T = 0, O = 0, j = 0, F = 0, U = 0, W = 0, G = 0, K = 0; K < x.length;) T = x.charCodeAt(K++), F = T >> 2, O = x.charCodeAt(K++), U = (T & 3) << 4 | O >> 4, j = x.charCodeAt(K++), W = (O & 15) << 2 | j >> 6, G = j & 63, isNaN(O) ? W = G = 64 : isNaN(j) && (G = 64), w += Base64_map.charAt(F) + Base64_map.charAt(U) + Base64_map.charAt(W) + Base64_map.charAt(G);
return w;
}
function Base64_encode_pass(x) {
for (var w = "", T = 0, O = 0, j = 0, F = 0, U = 0, W = 0, G = 0, K = 0; K < x.length;) T = x.charCodeAt(K++), T > 255 && (T = 95), F = T >> 2, O = x.charCodeAt(K++), O > 255 && (O = 95), U = (T & 3) << 4 | O >> 4, j = x.charCodeAt(K++), j > 255 && (j = 95), W = (O & 15) << 2 | j >> 6, G = j & 63, isNaN(O) ? W = G = 64 : isNaN(j) && (G = 64), w += Base64_map.charAt(F) + Base64_map.charAt(U) + Base64_map.charAt(W) + Base64_map.charAt(G);
return w;
}
function Base64_encode_arr(x) {
for (var w = "", T = 0, O = 0, j = 0, F = 0, U = 0, W = 0, G = 0, K = 0; K < x.length;) T = x[K++], F = T >> 2, O = x[K++], U = (T & 3) << 4 | O >> 4, j = x[K++], W = (O & 15) << 2 | j >> 6, G = j & 63, isNaN(O) ? W = G = 64 : isNaN(j) && (G = 64), w += Base64_map.charAt(F) + Base64_map.charAt(U) + Base64_map.charAt(W) + Base64_map.charAt(G);
return w;
}
function Base64_decode(x) {
var w = "", T = 0, O = 0, j = 0, F = 0, U = 0, W = 0, G = 0;
if (x.slice(0, 5) == "data:") {
var K = x.slice(0, 1024).indexOf(";base64,");
K > -1 && (x = x.slice(K + 8));
}
x = x.replace(/[^\w\+\/\=]/g, "");
for (var K = 0; K < x.length;) F = Base64_map.indexOf(x.charAt(K++)), U = Base64_map.indexOf(x.charAt(K++)), T = F << 2 | U >> 4, w += String.fromCharCode(T), W = Base64_map.indexOf(x.charAt(K++)), O = (U & 15) << 4 | W >> 2, W !== 64 && (w += String.fromCharCode(O)), G = Base64_map.indexOf(x.charAt(K++)), j = (W & 3) << 6 | G, G !== 64 && (w += String.fromCharCode(j));
return w;
}
var has_buf = /* @__PURE__ */ (function() {
return typeof Buffer < "u" && typeof process < "u" && process.versions !== void 0 && !!process.versions.node;
})(), Buffer_from = /* @__PURE__ */ (function() {
if (typeof Buffer < "u") {
var x = !Buffer.from;
if (!x) try {
Buffer.from("foo", "utf8");
} catch {
x = !0;
}
return x ? function(x, w) {
return w ? new Buffer(x, w) : new Buffer(x);
} : Buffer.from.bind(Buffer);
}
return function() {};
})(), buf_utf16le = /* @__PURE__ */ (function() {
if (typeof Buffer > "u") return !1;
var x = Buffer_from([65, 0]);
return x ? x.toString("utf16le").length == 1 : !1;
})();
function new_raw_buf(x) {
return has_buf ? Buffer.alloc ? Buffer.alloc(x) : new Buffer(x) : typeof Uint8Array < "u" ? new Uint8Array(x) : Array(x);
}
function new_unsafe_buf(x) {
return has_buf ? Buffer.allocUnsafe ? Buffer.allocUnsafe(x) : new Buffer(x) : typeof Uint8Array < "u" ? new Uint8Array(x) : Array(x);
}
var s2a = function(x) {
return has_buf ? Buffer_from(x, "binary") : x.split("").map(function(x) {
return x.charCodeAt(0) & 255;
});
};
function s2ab(x) {
if (typeof ArrayBuffer > "u") return s2a(x);
for (var w = new ArrayBuffer(x.length), T = new Uint8Array(w), O = 0; O != x.length; ++O) T[O] = x.charCodeAt(O) & 255;
return w;
}
function a2s(x) {
if (Array.isArray(x)) return x.map(function(x) {
return String.fromCharCode(x);
}).join("");
for (var w = [], T = 0; T < x.length; ++T) w[T] = String.fromCharCode(x[T]);
return w.join("");
}
function a2u(x) {
if (typeof Uint8Array > "u") throw Error("Unsupported");
return new Uint8Array(x);
}
function ab2a(x) {
if (typeof ArrayBuffer > "u") throw Error("Unsupported");
if (x instanceof ArrayBuffer) return ab2a(new Uint8Array(x));
for (var w = Array(x.length), T = 0; T < x.length; ++T) w[T] = x[T];
return w;
}
var bconcat = has_buf ? function(x) {
return Buffer.concat(x.map(function(x) {
return Buffer.isBuffer(x) ? x : Buffer_from(x);
}));
} : function(x) {
if (typeof Uint8Array < "u") {
var w = 0, T = 0;
for (w = 0; w < x.length; ++w) T += x[w].length;
var O = new Uint8Array(T), j = 0;
for (w = 0, T = 0; w < x.length; T += j, ++w) j = x[w].length, x[w] instanceof Uint8Array ? O.set(x[w], T) : typeof x[w] == "string" ? O.set(new Uint8Array(s2a(x[w])), T) : O.set(new Uint8Array(x[w]), T);
return O;
}
return [].concat.apply([], x.map(function(x) {
return Array.isArray(x) ? x : [].slice.call(x);
}));
};
function utf8decode(x) {
for (var w = [], T = 0, O = x.length + 250, j = new_raw_buf(x.length + 255), F = 0; F < x.length; ++F) {
var U = x.charCodeAt(F);
if (U < 128) j[T++] = U;
else if (U < 2048) j[T++] = 192 | U >> 6 & 31, j[T++] = 128 | U & 63;
else if (U >= 55296 && U < 57344) {
U = (U & 1023) + 64;
var W = x.charCodeAt(++F) & 1023;
j[T++] = 240 | U >> 8 & 7, j[T++] = 128 | U >> 2 & 63, j[T++] = 128 | W >> 6 & 15 | (U & 3) << 4, j[T++] = 128 | W & 63;
} else j[T++] = 224 | U >> 12 & 15, j[T++] = 128 | U >> 6 & 63, j[T++] = 128 | U & 63;
T > O && (w.push(j.slice(0, T)), T = 0, j = new_raw_buf(65535), O = 65530);
}
return w.push(j.slice(0, T)), bconcat(w);
}
var chr0 = /\u0000/g, chr1 = /[\u0001-\u0006]/g;
function _strrev(x) {
for (var w = "", T = x.length - 1; T >= 0;) w += x.charAt(T--);
return w;
}
function pad0(x, w) {
var T = "" + x;
return T.length >= w ? T : fill("0", w - T.length) + T;
}
function pad_(x, w) {
var T = "" + x;
return T.length >= w ? T : fill(" ", w - T.length) + T;
}
function rpad_(x, w) {
var T = "" + x;
return T.length >= w ? T : T + fill(" ", w - T.length);
}
function pad0r1(x, w) {
var T = "" + Math.round(x);
return T.length >= w ? T : fill("0", w - T.length) + T;
}
function pad0r2(x, w) {
var T = "" + x;
return T.length >= w ? T : fill("0", w - T.length) + T;
}
var p2_32 = 2 ** 32;
function pad0r(x, w) {
return x > p2_32 || x < -p2_32 ? pad0r1(x, w) : pad0r2(Math.round(x), w);
}
function SSF_isgeneral(x, w) {
return w ||= 0, x.length >= 7 + w && (x.charCodeAt(w) | 32) == 103 && (x.charCodeAt(w + 1) | 32) == 101 && (x.charCodeAt(w + 2) | 32) == 110 && (x.charCodeAt(w + 3) | 32) == 101 && (x.charCodeAt(w + 4) | 32) == 114 && (x.charCodeAt(w + 5) | 32) == 97 && (x.charCodeAt(w + 6) | 32) == 108;
}
var days = [
["Sun", "Sunday"],
["Mon", "Monday"],
["Tue", "Tuesday"],
["Wed", "Wednesday"],
["Thu", "Thursday"],
["Fri", "Friday"],
["Sat", "Saturday"]
], months = [
[
"J",
"Jan",
"January"
],
[
"F",
"Feb",
"February"
],
[
"M",
"Mar",
"March"
],
[
"A",
"Apr",
"April"
],
[
"M",
"May",
"May"
],
[
"J",
"Jun",
"June"
],
[
"J",
"Jul",
"July"
],
[
"A",
"Aug",
"August"
],
[
"S",
"Sep",
"September"
],
[
"O",
"Oct",
"October"
],
[
"N",
"Nov",
"November"
],
[
"D",
"Dec",
"December"
]
];
function SSF_init_table(x) {
return x ||= {}, x[0] = "General", x[1] = "0", x[2] = "0.00", x[3] = "#,##0", x[4] = "#,##0.00", x[9] = "0%", x[10] = "0.00%", x[11] = "0.00E+00", x[12] = "# ?/?", x[13] = "# ??/??", x[14] = "m/d/yy", x[15] = "d-mmm-yy", x[16] = "d-mmm", x[17] = "mmm-yy", x[18] = "h:mm AM/PM", x[19] = "h:mm:ss AM/PM", x[20] = "h:mm", x[21] = "h:mm:ss", x[22] = "m/d/yy h:mm", x[37] = "#,##0 ;(#,##0)", x[38] = "#,##0 ;[Red](#,##0)", x[39] = "#,##0.00;(#,##0.00)", x[40] = "#,##0.00;[Red](#,##0.00)", x[45] = "mm:ss", x[46] = "[h]:mm:ss", x[47] = "mmss.0", x[48] = "##0.0E+0", x[49] = "@", x[56] = "\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"", x;
}
var table_fmt = {
0: "General",
1: "0",
2: "0.00",
3: "#,##0",
4: "#,##0.00",
9: "0%",
10: "0.00%",
11: "0.00E+00",
12: "# ?/?",
13: "# ??/??",
14: "m/d/yy",
15: "d-mmm-yy",
16: "d-mmm",
17: "mmm-yy",
18: "h:mm AM/PM",
19: "h:mm:ss AM/PM",
20: "h:mm",
21: "h:mm:ss",
22: "m/d/yy h:mm",
37: "#,##0 ;(#,##0)",
38: "#,##0 ;[Red](#,##0)",
39: "#,##0.00;(#,##0.00)",
40: "#,##0.00;[Red](#,##0.00)",
45: "mm:ss",
46: "[h]:mm:ss",
47: "mmss.0",
48: "##0.0E+0",
49: "@",
56: "\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \""
}, SSF_default_map = {
5: 37,
6: 38,
7: 39,
8: 40,
23: 0,
24: 0,
25: 0,
26: 0,
27: 14,
28: 14,
29: 14,
30: 14,
31: 14,
50: 14,
51: 14,
52: 14,
53: 14,
54: 14,
55: 14,
56: 14,
57: 14,
58: 14,
59: 1,
60: 2,
61: 3,
62: 4,
67: 9,
68: 10,
69: 12,
70: 13,
71: 14,
72: 14,
73: 15,
74: 16,
75: 17,
76: 20,
77: 21,
78: 22,
79: 45,
80: 46,
81: 47,
82: 0
}, SSF_default_str = {
5: "\"$\"#,##0_);\\(\"$\"#,##0\\)",
63: "\"$\"#,##0_);\\(\"$\"#,##0\\)",
6: "\"$\"#,##0_);[Red]\\(\"$\"#,##0\\)",
64: "\"$\"#,##0_);[Red]\\(\"$\"#,##0\\)",
7: "\"$\"#,##0.00_);\\(\"$\"#,##0.00\\)",
65: "\"$\"#,##0.00_);\\(\"$\"#,##0.00\\)",
8: "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)",
66: "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)",
41: "_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)",
42: "_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)",
43: "_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)",
44: "_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)"
};
function SSF_frac(x, w, T) {
for (var O = x < 0 ? -1 : 1, j = x * O, F = 0, U = 1, W = 0, G = 1, K = 0, q = 0, J = Math.floor(j); K < w && (J = Math.floor(j), W = J * U + F, q = J * K + G, !(j - J < 5e-8));) j = 1 / (j - J), F = U, U = W, G = K, K = q;
if (q > w && (K > w ? (q = G, W = F) : (q = K, W = U)), !T) return [
0,
O * W,
q
];
var Y = Math.floor(O * W / q);
return [
Y,
O * W - Y * q,
q
];
}
function SSF_normalize_xl_unsafe(x) {
var w = x.toPrecision(16);
if (w.indexOf("e") > -1) {
var T = w.slice(0, w.indexOf("e"));
return T = T.indexOf(".") > -1 ? T.slice(0, T.slice(0, 2) == "0." ? 17 : 16) : T.slice(0, 15) + fill("0", T.length - 15), T + w.slice(w.indexOf("e"));
}
var O = w.indexOf(".") > -1 ? w.slice(0, w.slice(0, 2) == "0." ? 17 : 16) : w.slice(0, 15) + fill("0", w.length - 15);
return Number(O);
}
function SSF_parse_date_code(x, w, T) {
if (x > 2958465 || x < 0) return null;
x = SSF_normalize_xl_unsafe(x);
var O = x | 0, j = Math.floor(86400 * (x - O)), F = 0, U = [], W = {
D: O,
T: j,
u: 86400 * (x - O) - j,
y: 0,
m: 0,
d: 0,
H: 0,
M: 0,
S: 0,
q: 0
};
if (Math.abs(W.u) < 1e-6 && (W.u = 0), w && w.date1904 && (O += 1462), W.u > .9999 && (W.u = 0, ++j == 86400 && (W.T = j = 0, ++O, ++W.D)), O === 60) U = T ? [
1317,
10,
29
] : [
1900,
2,
29
], F = 3;
else if (O === 0) U = T ? [
1317,
8,
29
] : [
1900,
1,
0
], F = 6;
else {
O > 60 && --O;
var G = new Date(1900, 0, 1);
G.setDate(G.getDate() + O - 1), U = [
G.getFullYear(),
G.getMonth() + 1,
G.getDate()
], F = G.getDay(), O < 60 && (F = (F + 6) % 7), T && (F = SSF_fix_hijri(G, U));
}
return W.y = U[0], W.m = U[1], W.d = U[2], W.S = j % 60, j = Math.floor(j / 60), W.M = j % 60, j = Math.floor(j / 60), W.H = j, W.q = F, W;
}
function SSF_strip_decimal(x) {
return x.indexOf(".") == -1 ? x : x.replace(/(?:\.0*|(\.\d*[1-9])0+)$/, "$1");
}
function SSF_normalize_exp(x) {
return x.indexOf("E") == -1 ? x : x.replace(/(?:\.0*|(\.\d*[1-9])0+)[Ee]/, "$1E").replace(/(E[+-])(\d)$/, "$10$2");
}
function SSF_small_exp(x) {
var w = x < 0 ? 12 : 11, T = SSF_strip_decimal(x.toFixed(12));
return T.length <= w || (T = x.toPrecision(10), T.length <= w) ? T : x.toExponential(5);
}
function SSF_large_exp(x) {
var w = SSF_strip_decimal(x.toFixed(11));
return w.length > (x < 0 ? 12 : 11) || w === "0" || w === "-0" ? x.toPrecision(6) : w;
}
function SSF_general_num(x) {
if (!isFinite(x)) return isNaN(x) ? "#NUM!" : "#DIV/0!";
var w = Math.floor(Math.log(Math.abs(x)) * Math.LOG10E);
return SSF_strip_decimal(SSF_normalize_exp((w >= -4 && w <= -1 ? x.toPrecision(10 + w) : Math.abs(w) <= 9 ? SSF_small_exp(x) : w === 10 ? x.toFixed(10).substr(0, 12) : SSF_large_exp(x)).toUpperCase()));
}
function SSF_general(x, w) {
switch (typeof x) {
case "string": return x;
case "boolean": return x ? "TRUE" : "FALSE";
case "number": return (x | 0) === x ? x.toString(10) : SSF_general_num(x);
case "undefined": return "";
case "object":
if (x == null) return "";
if (x instanceof Date) return SSF_format(14, datenum(x, w && w.date1904), w);
}
throw Error("unsupported value in General format: " + x);
}
function SSF_fix_hijri(x, w) {
w[0] -= 581;
var T = x.getDay();
return x < 60 && (T = (T + 6) % 7), T;
}
function SSF_write_date(x, w, T, O) {
var j = "", F = 0, U = 0, W = T.y, G, K = 0;
switch (x) {
case 98: W = T.y + 543;
case 121:
switch (w.length) {
case 1:
case 2:
G = W % 100, K = 2;
break;
default:
G = W % 1e4, K = 4;
break;
}
break;
case 109:
switch (w.length) {
case 1:
case 2:
G = T.m, K = w.length;
break;
case 3: return months[T.m - 1][1];
case 5: return months[T.m - 1][0];
default: return months[T.m - 1][2];
}
break;
case 100:
switch (w.length) {
case 1:
case 2:
G = T.d, K = w.length;
break;
case 3: return days[T.q][0];
default: return days[T.q][1];
}
break;
case 104:
switch (w.length) {
case 1:
case 2:
G = 1 + (T.H + 11) % 12, K = w.length;
break;
default: throw "bad hour format: " + w;
}
break;
case 72:
switch (w.length) {
case 1:
case 2:
G = T.H, K = w.length;
break;
default: throw "bad hour format: " + w;
}
break;
case 77:
switch (w.length) {
case 1:
case 2:
G = T.M, K = w.length;
break;
default: throw "bad minute format: " + w;
}
break;
case 115:
if (w != "s" && w != "ss" && w != ".0" && w != ".00" && w != ".000") throw "bad second format: " + w;
return T.u === 0 && (w == "s" || w == "ss") ? pad0(T.S, w.length) : (U = O >= 2 ? O === 3 ? 1e3 : 100 : O === 1 ? 10 : 1, F = Math.round(U * (T.S + T.u)), F >= 60 * U && (F = 0), w === "s" ? F === 0 ? "0" : "" + F / U : (j = pad0(F, 2 + O), w === "ss" ? j.substr(0, 2) : "." + j.substr(2, w.length - 1)));
case 90:
switch (w) {
case "[h]":
case "[hh]":
G = T.D * 24 + T.H;
break;
case "[m]":
case "[mm]":
G = (T.D * 24 + T.H) * 60 + T.M;
break;
case "[s]":
case "[ss]":
G = ((T.D * 24 + T.H) * 60 + T.M) * 60 + (O == 0 ? Math.round(T.S + T.u) : T.S);
break;
default: throw "bad abstime format: " + w;
}
K = w.length === 3 ? 1 : 2;
break;
case 101:
G = W, K = 1;
break;
}
return K > 0 ? pad0(G, K) : "";
}
function commaify(x) {
var w = 3;
if (x.length <= w) return x;
for (var T = x.length % w, O = x.substr(0, T); T != x.length; T += w) O += (O.length > 0 ? "," : "") + x.substr(T, w);
return O;
}
var pct1 = /%/g;
function write_num_pct(x, w, T) {
var O = w.replace(pct1, ""), j = w.length - O.length;
return write_num(x, O, T * 10 ** (2 * j)) + fill("%", j);
}
function write_num_cm(x, w, T) {
for (var O = w.length - 1; w.charCodeAt(O - 1) === 44;) --O;
return write_num(x, w.substr(0, O), T / 10 ** (3 * (w.length - O)));
}
function write_num_exp(x, w) {
var T, O = x.indexOf("E") - x.indexOf(".") - 1;
if (x.match(/^#+0.0E\+0$/)) {
if (w == 0) return "0.0E+0";
if (w < 0) return "-" + write_num_exp(x, -w);
var j = x.indexOf(".");
j === -1 && (j = x.indexOf("E"));
var F = Math.floor(Math.log(w) * Math.LOG10E) % j;
if (F < 0 && (F += j), T = (w / 10 ** F).toPrecision(O + 1 + (j + F) % j), T.indexOf("e") === -1) {
var U = Math.floor(Math.log(w) * Math.LOG10E);
for (T.indexOf(".") === -1 ? T = T.charAt(0) + "." + T.substr(1) + "E+" + (U - T.length + F) : T += "E+" + (U - F); T.substr(0, 2) === "0.";) T = T.charAt(0) + T.substr(2, j) + "." + T.substr(2 + j), T = T.replace(/^0+([1-9])/, "$1").replace(/^0+\./, "0.");
T = T.replace(/\+-/, "-");
}
T = T.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/, function(x, w, T, O) {
return w + T + O.substr(0, (j + F) % j) + "." + O.substr(F) + "E";
});
} else T = w.toExponential(O);
return x.match(/E\+00$/) && T.match(/e[+-]\d$/) && (T = T.substr(0, T.length - 1) + "0" + T.charAt(T.length - 1)), x.match(/E\-/) && T.match(/e\+/) && (T = T.replace(/e\+/, "e")), T.replace("e", "E");
}
var frac1 = /# (\?+)( ?)\/( ?)(\d+)/;
function write_num_f1(x, w, T) {
var O = parseInt(x[4], 10), j = Math.round(w * O), F = Math.floor(j / O), U = j - F * O, W = O;
return T + (F === 0 ? "" : "" + F) + " " + (U === 0 ? fill(" ", x[1].length + 1 + x[4].length) : pad_(U, x[1].length) + x[2] + "/" + x[3] + pad0(W, x[4].length));
}
function write_num_f2(x, w, T) {
return T + (w === 0 ? "" : "" + w) + fill(" ", x[1].length + 2 + x[4].length);
}
var dec1 = /^#*0*\.([0#]+)/, closeparen = /\)[^)]*[0#]/, phone = /\(###\) ###\\?-####/;
function hashq(x) {
for (var w = "", T, O = 0; O != x.length; ++O) switch (T = x.charCodeAt(O)) {
case 35: break;
case 63:
w += " ";
break;
case 48:
w += "0";
break;
default: w += String.fromCharCode(T);
}
return w;
}
function rnd(x, w) {
var T = 10 ** w;
return "" + Math.round(x * T) / T;
}
function dec(x, w) {
var T = x - Math.floor(x), O = 10 ** w;
return w < ("" + Math.round(T * O)).length ? 0 : Math.round(T * O);
}
function carry(x, w) {
return +(w < ("" + Math.round((x - Math.floor(x)) * 10 ** w)).length);
}
function flr(x) {
return x < 2147483647 && x > -2147483648 ? "" + (x >= 0 ? x | 0 : x - 1 | 0) : "" + Math.floor(x);
}
function write_num_flt(x, w, T) {
if (x.charCodeAt(0) === 40 && !w.match(closeparen)) {
var O = w.replace(/\( */, "").replace(/ \)/, "").replace(/\)/, "");
return T >= 0 ? write_num_flt("n", O, T) : "(" + write_num_flt("n", O, -T) + ")";
}
if (w.charCodeAt(w.length - 1) === 44) return write_num_cm(x, w, T);
if (w.indexOf("%") !== -1) return write_num_pct(x, w, T);
if (w.indexOf("E") !== -1) return write_num_exp(w, T);
if (w.charCodeAt(0) === 36) return "$" + write_num_flt(x, w.substr(w.charAt(1) == " " ? 2 : 1), T);
var j, F, U, W, G = Math.abs(T), K = T < 0 ? "-" : "";
if (w.match(/^00+$/)) return K + pad0r(G, w.length);
if (w.match(/^[#?]+$/)) return j = pad0r(T, 0), j === "0" && (j = ""), j.length > w.length ? j : hashq(w.substr(0, w.length - j.length)) + j;
if (F = w.match(frac1)) return write_num_f1(F, G, K);
if (w.match(/^#+0+$/)) return K + pad0r(G, w.length - w.indexOf("0"));
if (F = w.match(dec1)) return j = rnd(T, F[1].length).replace(/^([^\.]+)$/, "$1." + hashq(F[1])).replace(/\.$/, "." + hashq(F[1])).replace(/\.(\d*)$/, function(x, w) {
return "." + w + fill("0", hashq(F[1]).length - w.length);
}), w.indexOf("0.") === -1 ? j.replace(/^0\./, ".") : j;
if (w = w.replace(/^#+([0.])/, "$1"), F = w.match(/^(0*)\.(#*)$/)) return K + rnd(G, F[2].length).replace(/\.(\d*[1-9])0*$/, ".$1").replace(/^(-?\d*)$/, "$1.").replace(/^0\./, F[1].length ? "0." : ".");
if (F = w.match(/^#{1,3},##0(\.?)$/)) return K + commaify(pad0r(G, 0));
if (F = w.match(/^#,##0\.([#0]*0)$/)) return T < 0 ? "-" + write_num_flt(x, w, -T) : commaify("" + (Math.floor(T) + carry(T, F[1].length))) + "." + pad0(dec(T, F[1].length), F[1].length);
if (F = w.match(/^#,#*,#0/)) return write_num_flt(x, w.replace(/^#,#*,/, ""), T);
if (F = w.match(/^([0#]+)(\\?-([0#]+))+$/)) return j = _strrev(write_num_flt(x, w.replace(/[\\-]/g, ""), T)), U = 0, _strrev(_strrev(w.replace(/\\/g, "")).replace(/[0#]/g, function(x) {
return U < j.length ? j.charAt(U++) : x === "0" ? "0" : "";
}));
if (w.match(phone)) return j = write_num_flt(x, "##########", T), "(" + j.substr(0, 3) + ") " + j.substr(3, 3) + "-" + j.substr(6);
var q = "";
if (F = w.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/)) return U = Math.min(F[4].length, 7), W = SSF_frac(G, 10 ** U - 1, !1), j = "" + K, q = write_num("n", F[1], W[1]), q.charAt(q.length - 1) == " " && (q = q.substr(0, q.length - 1) + "0"), j += q + F[2] + "/" + F[3], q = rpad_(W[2], U), q.length < F[4].length && (q = hashq(F[4].substr(F[4].length - q.length)) + q), j += q, j;
if (F = w.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/)) return U = Math.min(Math.max(F[1].length, F[4].length), 7), W = SSF_frac(G, 10 ** U - 1, !0), K + (W[0] || (W[1] ? "" : "0")) + " " + (W[1] ? pad_(W[1], U) + F[2] + "/" + F[3] + rpad_(W[2], U) : fill(" ", 2 * U + 1 + F[2].length + F[3].length));
if (F = w.match(/^[#0?]+$/)) return j = pad0r(T, 0), w.length <= j.length ? j : hashq(w.substr(0, w.length - j.length)) + j;
if (F = w.match(/^([#0?]+)\.([#0]+)$/)) {
j = "" + T.toFixed(Math.min(F[2].length, 10)).replace(/([^0])0+$/, "$1"), U = j.indexOf(".");
var J = w.indexOf(".") - U, Y = w.length - j.length - J;
return hashq(w.substr(0, J) + j + w.substr(w.length - Y));
}
if (F = w.match(/^00,000\.([#0]*0)$/)) return U = dec(T, F[1].length), T < 0 ? "-" + write_num_flt(x, w, -T) : commaify(flr(T)).replace(/^\d,\d{3}$/, "0$&").replace(/^\d*$/, function(x) {
return "00," + (x.length < 3 ? pad0(0, 3 - x.length) : "") + x;
}) + "." + pad0(U, F[1].length);
switch (w) {
case "###,##0.00": return write_num_flt(x, "#,##0.00", T);
case "###,###":
case "##,###":
case "#,###":
var X = commaify(pad0r(G, 0));
return X === "0" ? "" : K + X;
case "###,###.00": return write_num_flt(x, "###,##0.00", T).replace(/^0\./, ".");
case "#,###.00": return write_num_flt(x, "#,##0.00", T).replace(/^0\./, ".");
default:
}
throw Error("unsupported format |" + w + "|");
}
function write_num_cm2(x, w, T) {
for (var O = w.length - 1; w.charCodeAt(O - 1) === 44;) --O;
return write_num(x, w.substr(0, O), T / 10 ** (3 * (w.length - O)));
}
function write_num_pct2(x, w, T) {
var O = w.replace(pct1, ""), j = w.length - O.length;
return write_num(x, O, T * 10 ** (2 * j)) + fill("%", j);
}
function write_num_exp2(x, w) {
var T, O = x.indexOf("E") - x.indexOf(".") - 1;
if (x.match(/^#+0.0E\+0$/)) {
if (w == 0) return "0.0E+0";
if (w < 0) return "-" + write_num_exp2(x, -w);
var j = x.indexOf(".");
j === -1 && (j = x.indexOf("E"));
var F = Math.floor(Math.log(w) * Math.LOG10E) % j;
if (F < 0 && (F += j), T = (w / 10 ** F).toPrecision(O + 1 + (j + F) % j), !T.match(/[Ee]/)) {
var U = Math.floor(Math.log(w) * Math.LOG10E);
T.indexOf(".") === -1 ? T = T.charAt(0) + "." + T.substr(1) + "E+" + (U - T.length + F) : T += "E+" + (U - F), T = T.replace(/\+-/, "-");
}
T = T.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/, function(x, w, T, O) {
return w + T + O.substr(0, (j + F) % j) + "." + O.substr(F) + "E";
});
} else T = w.toExponential(O);
return x.match(/E\+00$/) && T.match(/e[+-]\d$/) && (T = T.substr(0, T.length - 1) + "0" + T.charAt(T.length - 1)), x.match(/E\-/) && T.match(/e\+/) && (T = T.replace(/e\+/, "e")), T.replace("e", "E");
}
function write_num_int(x, w, T) {
if (x.charCodeAt(0) === 40 && !w.match(closeparen)) {
var O = w.replace(/\( */, "").replace(/ \)/, "").replace(/\)/, "");
return T >= 0 ? write_num_int("n", O, T) : "(" + write_num_int("n", O, -T) + ")";
}
if (w.charCodeAt(w.length - 1) === 44) return write_num_cm2(x, w, T);
if (w.indexOf("%") !== -1) return write_num_pct2(x, w, T);
if (w.indexOf("E") !== -1) return write_num_exp2(w, T);
if (w.charCodeAt(0) === 36) return "$" + write_num_int(x, w.substr(w.charAt(1) == " " ? 2 : 1), T);
var j, F, U, W, G = Math.abs(T), K = T < 0 ? "-" : "";
if (w.match(/^00+$/)) return K + pad0(G, w.length);
if (w.match(/^[#?]+$/)) return j = "" + T, T === 0 && (j = ""), j.length > w.length ? j : hashq(w.substr(0, w.length - j.length)) + j;
if (F = w.match(frac1)) return write_num_f2(F, G, K);
if (w.match(/^#+0+$/)) return K + pad0(G, w.length - w.indexOf("0"));
if (F = w.match(dec1)) return j = ("" + T).replace(/^([^\.]+)$/, "$1." + hashq(F[1])).replace(/\.$/, "." + hashq(F[1])), j = j.replace(/\.(\d*)$/, function(x, w) {
return "." + w + fill("0", hashq(F[1]).length - w.length);
}), w.indexOf("0.") === -1 ? j.replace(/^0\./, ".") : j;
if (w = w.replace(/^#+([0.])/, "$1"), F = w.match(/^(0*)\.(#*)$/)) return K + ("" + G).replace(/\.(\d*[1-9])0*$/, ".$1").replace(/^(-?\d*)$/, "$1.").replace(/^0\./, F[1].length ? "0." : ".");
if (F = w.match(/^#{1,3},##0(\.?)$/)) return K + commaify("" + G);
if (F = w.match(/^#,##0\.([#0]*0)$/)) return T < 0 ? "-" + write_num_int(x, w, -T) : commaify("" + T) + "." + fill("0", F[1].length);
if (F = w.match(/^#,#*,#0/)) return write_num_int(x, w.replace(/^#,#*,/, ""), T);
if (F = w.match(/^([0#]+)(\\?-([0#]+))+$/)) return j = _strrev(write_num_int(x, w.replace(/[\\-]/g, ""), T)), U = 0, _strrev(_strrev(w.replace(/\\/g, "")).replace(/[0#]/g, function(x) {
return U < j.length ? j.charAt(U++) : x === "0" ? "0" : "";
}));
if (w.match(phone)) return j = write_num_int(x, "##########", T), "(" + j.substr(0, 3) + ") " + j.substr(3, 3) + "-" + j.substr(6);
var q = "";
if (F = w.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/)) return U = Math.min(F[4].length, 7), W = SSF_frac(G, 10 ** U - 1, !1), j = "" + K, q = write_num("n", F[1], W[1]), q.charAt(q.length - 1) == " " && (q = q.substr(0, q.length - 1) + "0"), j += q + F[2] + "/" + F[3], q = rpad_(W[2], U), q.length < F[4].length && (q = hashq(F[4].substr(F[4].length - q.length)) + q), j += q, j;
if (F = w.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/)) return U = Math.min(Math.max(F[1].length, F[4].length), 7), W = SSF_frac(G, 10 ** U - 1, !0), K + (W[0] || (W[1] ? "" : "0")) + " " + (W[1] ? pad_(W[1], U) + F[2] + "/" + F[3] + rpad_(W[2], U) : fill(" ", 2 * U + 1 + F[2].length + F[3].length));
if (F = w.match(/^[#0?]+$/)) return j = "" + T, w.length <= j.length ? j : hashq(w.substr(0, w.length - j.length)) + j;
if (F = w.match(/^([#0]+)\.([#0]+)$/)) {
j = "" + T.toFixed(Math.min(F[2].length, 10)).replace(/([^0])0+$/, "$1"), U = j.indexOf(".");
var J = w.indexOf(".") - U, Y = w.length - j.length - J;
return hashq(w.substr(0, J) + j + w.substr(w.length - Y));
}
if (F = w.match(/^00,000\.([#0]*0)$/)) return T < 0 ? "-" + write_num_int(x, w, -T) : commaify("" + T).replace(/^\d,\d{3}$/, "0$&").replace(/^\d*$/, function(x) {
return "00," + (x.length < 3 ? pad0(0, 3 - x.length) : "") + x;
}) + "." + pad0(0, F[1].length);
switch (w) {
case "###,###":
case "##,###":
case "#,###":
var X = commaify("" + G);
return X === "0" ? "" : K + X;
default: if (w.match(/\.[0#?]*$/)) return write_num_int(x, w.slice(0, w.lastIndexOf(".")), T) + hashq(w.slice(w.lastIndexOf(".")));
}
throw Error("unsupported format |" + w + "|");
}
function write_num(x, w, T) {
return (T | 0) === T ? write_num_int(x, w, T) : write_num_flt(x, w, T);
}
function SSF_split_fmt(x) {
for (var w = [], T = !1, O = 0, j = 0; O < x.length; ++O) switch (x.charCodeAt(O)) {
case 34:
T = !T;
break;
case 95:
case 42:
case 92:
++O;
break;
case 59: w[w.length] = x.substr(j, O - j), j = O + 1;
}
if (w[w.length] = x.substr(j), T === !0) throw Error("Format |" + x + "| unterminated string ");
return w;
}
var SSF_abstime = /\[[HhMmSs\u0E0A\u0E19\u0E17]*\]/;
function fmt_is_date(x) {
for (var w = 0, T = "", O = ""; w < x.length;) switch (T = x.charAt(w)) {
case "G":
SSF_isgeneral(x, w) && (w += 6), w++;
break;
case "\"":
for (; x.charCodeAt(++w) !== 34 && w < x.length;);
++w;
break;
case "\\":
w += 2;
break;
case "_":
w += 2;
break;
case "@":
++w;
break;
case "B":
case "b": if (x.charAt(w + 1) === "1" || x.charAt(w + 1) === "2") return !0;
case "M":
case "D":
case "Y":
case "H":
case "S":
case "E":
case "m":
case "d":
case "y":
case "h":
case "s":
case "e":
case "g": return !0;
case "A":
case "a":
case "上":
if (x.substr(w, 3).toUpperCase() === "A/P" || x.substr(w, 5).toUpperCase() === "AM/PM" || x.substr(w, 5).toUpperCase() === "上午/下午") return !0;
++w;
break;
case "[":
for (O = T; x.charAt(w++) !== "]" && w < x.length;) O += x.charAt(w);
if (O.match(SSF_abstime)) return !0;
break;
case ".":
case "0":
case "#":
for (; w < x.length && ("0#?.,E+-%".indexOf(T = x.charAt(++w)) > -1 || T == "\\" && x.charAt(w + 1) == "-" && "0#".indexOf(x.charAt(w + 2)) > -1););
break;
case "?":
for (; x.charAt(++w) === T;);
break;
case "*":
++w, (x.charAt(w) == " " || x.charAt(w) == "*") && ++w;
break;
case "(":
case ")":
++w;
break;
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
for (; w < x.length && "0123456789".indexOf(x.charAt(++w)) > -1;);
break;
case " ":
++w;
break;
default:
++w;
break;
}
return !1;
}
function eval_fmt(x, w, T, O) {
for (var j = [], F = "", U = 0, W = "", G = "t", K, q, J, Y = "H"; U < x.length;) switch (W = x.charAt(U)) {
case "G":
if (!SSF_isgeneral(x, U)) throw Error("unrecognized character " + W + " in " + x);
j[j.length] = {
t: "G",
v: "General"
}, U += 7;
break;
case "\"":
for (F = ""; (J = x.charCodeAt(++U)) !== 34 && U < x.length;) F += String.fromCharCode(J);
j[j.length] = {
t: "t",
v: F
}, ++U;
break;
case "\\":
var X = x.charAt(++U), ee = X === "(" || X === ")" ? X : "t";
j[j.length] = {
t: ee,
v: X
}, ++U;
break;
case "_":
j[j.length] = {
t: "t",
v: " "
}, U += 2;
break;
case "@":
j[j.length] = {
t: "T",
v: w
}, ++U;
break;
case "B":
case "b": if (x.charAt(U + 1) === "1" || x.charAt(U + 1) === "2") {
if (K == null && (K = SSF_parse_date_code(w, T, x.charAt(U + 1) === "2"), K == null)) return "";
j[j.length] = {
t: "X",
v: x.substr(U, 2)
}, G = W, U += 2;
break;
}
case "M":
case "D":
case "Y":
case "H":
case "S":
case "E": W = W.toLowerCase();
case "m":
case "d":
case "y":
case "h":
case "s":
case "e":
case "g":
if (w < 0 || K == null && (K = SSF_parse_date_code(w, T), K == null)) return "";
for (F = W; ++U < x.length && x.charAt(U).toLowerCase() === W;) F += W;
W === "m" && G.toLowerCase() === "h" && (W = "M"), W === "h" && (W = Y), j[j.length] = {
t: W,
v: F
}, G = W;
break;
case "A":
case "a":
case "上":
var Q = {
t: W,
v: W
};
if (K ??= SSF_parse_date_code(w, T), x.substr(U, 3).toUpperCase() === "A/P" ? (K != null && (Q.v = K.H >= 12 ? x.charAt(U + 2) : W), Q.t = "T", Y = "h", U += 3) : x.substr(U, 5).toUpperCase() === "AM/PM" ? (K != null && (Q.v = K.H >= 12 ? "PM" : "AM"), Q.t = "T", U += 5, Y = "h") : x.substr(U, 5).toUpperCase() === "上午/下午" ? (K != null && (Q.v = K.H >= 12 ? "下午" : "上午"), Q.t = "T", U += 5, Y = "h") : (Q.t = "t", ++U), K == null && Q.t === "T") return "";
j[j.length] = Q, G = W;
break;
case "[":
for (F = W; x.charAt(U++) !== "]" && U < x.length;) F += x.charAt(U);
if (F.slice(-1) !== "]") throw "unterminated \"[\" block: |" + F + "|";
if (F.match(SSF_abstime)) {
if (K == null && (K = SSF_parse_date_code(w, T), K == null)) return "";
j[j.length] = {
t: "Z",
v: F.toLowerCase()
}, G = F.charAt(1);
} else F.indexOf("$") > -1 && (F = (F.match(/\$([^-\[\]]*)/) || [])[1] || "$", fmt_is_date(x) || (j[j.length] = {
t: "t",
v: F
}));
break;
case ".": if (K != null) {
for (F = W; ++U < x.length && (W = x.charAt(U)) === "0";) F += W;
j[j.length] = {
t: "s",
v: F
};
break;
}
case "0":
case "#":
for (F = W; ++U < x.length && "0#?.,E+-%".indexOf(W = x.charAt(U)) > -1;) F += W;
j[j.length] = {
t: "n",
v: F
};
break;
case "?":
for (F = W; x.charAt(++U) === W;) F += W;
j[j.length] = {
t: W,
v: F
}, G = W;
break;
case "*":
++U, (x.charAt(U) == " " || x.charAt(U) == "*") && ++U;
break;
case "(":
case ")":
j[j.length] = {
t: O === 1 ? "t" : W,
v: W
}, ++U;
break;
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
for (F = W; U < x.length && "0123456789".indexOf(x.charAt(++U)) > -1;) F += x.charAt(U);
j[j.length] = {
t: "D",
v: F
};
break;
case " ":
j[j.length] = {
t: W,
v: W
}, ++U;
break;
case "$":
j[j.length] = {
t: "t",
v: "$"
}, ++U;
break;
default:
if (",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(W) === -1) throw Error("unrecognized character " + W + " in " + x);
j[j.length] = {
t: "t",
v: W
}, ++U;
break;
}
var te = 0, ne = 0, re;
for (U = j.length - 1, G = "t"; U >= 0; --U) switch (j[U].t) {
case "h":
case "H":
j[U].t = Y, G = "h", te < 1 && (te = 1);
break;
case "s": (re = j[U].v.match(/\.0+$/)) && (ne = Math.max(ne, re[0].length - 1), te = 4), te < 3 && (te = 3);
case "d":
case "y":
case "e":
G = j[U].t;
break;
case "M":
G = j[U].t, te < 2 && (te = 2);
break;
case "m":
G === "s" && (j[U].t = "M", te < 2 && (te = 2));
break;
case "X": break;
case "Z": te < 1 && j[U].v.match(/[Hh]/) && (te = 1), te < 2 && j[U].v.match(/[Mm]/) && (te = 2), te < 3 && j[U].v.match(/[Ss]/) && (te = 3);
}
var ie;
switch (te) {
case 0: break;
case 1:
case 2:
case 3:
K.u >= .5 && (K.u = 0, ++K.S), K.S >= 60 && (K.S = 0, ++K.M), K.M >= 60 && (K.M = 0, ++K.H), K.H >= 24 && (K.H = 0, ++K.D, ie = SSF_parse_date_code(K.D), ie.u = K.u, ie.S = K.S, ie.M = K.M, ie.H = K.H, K = ie);
break;
case 4:
switch (ne) {
case 1:
K.u = Math.round(K.u * 10) / 10;
break;
case 2:
K.u = Math.round(K.u * 100) / 100;
break;
case 3:
K.u = Math.round(K.u * 1e3) / 1e3;
break;
}
K.u >= 1 && (K.u = 0, ++K.S), K.S >= 60 && (K.S = 0, ++K.M), K.M >= 60 && (K.M = 0, ++K.H), K.H >= 24 && (K.H = 0, ++K.D, ie = SSF_parse_date_code(K.D), ie.u = K.u, ie.S = K.S, ie.M = K.M, ie.H = K.H, K = ie);
break;
}
var ae = "", oe;
for (U = 0; U < j.length; ++U) switch (j[U].t) {
case "t":
case "T":
case " ":
case "D": break;
case "X":
j[U].v = "", j[U].t = ";";
break;
case "d":
case "m":
case "y":
case "h":
case "H":
case "M":
case "s":
case "e":
case "b":
case "Z":
j[U].v = SSF_write_date(j[U].t.charCodeAt(0), j[U].v, K, ne), j[U].t = "t";
break;
case "n":
case "?":
for (oe = U + 1; j[oe] != null && ((W = j[oe].t) === "?" || W === "D" || (W === " " || W === "t") && j[oe + 1] != null && (j[oe + 1].t === "?" || j[oe + 1].t === "t" && j[oe + 1].v === "/") || j[U].t === "(" && (W === " " || W === "n" || W === ")") || W === "t" && (j[oe].v === "/" || j[oe].v === " " && j[oe + 1] != null && j[oe + 1].t == "?"));) j[U].v += j[oe].v, j[oe] = {
v: "",
t: ";"
}, ++oe;
ae += j[U].v, U = oe - 1;
break;
case "G":
j[U].t = "t", j[U].v = SSF_general(w, T);
break;
}
var se = "", ce, le;
if (ae.length > 0) {
ae.charCodeAt(0) == 40 ? (ce = w < 0 && ae.charCodeAt(0) === 45 ? -w : w, le = write_num("n", ae, ce)) : (ce = w < 0 && O > 1 ? -w : w, le = write_num("n", ae, ce), ce < 0 && j[0] && j[0].t == "t" && (le = le.substr(1), j[0].v = "-" + j[0].v)), oe = le.length - 1;
var ue = j.length;
for (U = 0; U < j.length; ++U) if (j[U] != null && j[U].t != "t" && j[U].v.indexOf(".") > -1) {
ue = U;
break;
}
var de = j.length;
if (ue === j.length && le.indexOf("E") === -1) {
for (U = j.length - 1; U >= 0; --U) j[U] == null || "n?".indexOf(j[U].t) === -1 || (oe >= j[U].v.length - 1 ? (oe -= j[U].v.length, j[U].v = le.substr(oe + 1, j[U].v.length)) : oe < 0 ? j[U].v = "" : (j[U].v = le.substr(0, oe + 1), oe = -1), j[U].t = "t", de = U);
oe >= 0 && de < j.length && (j[de].v = le.substr(0, oe + 1) + j[de].v);
} else if (ue !== j.length && le.indexOf("E") === -1) {
for (oe = le.indexOf(".") - 1, U = ue; U >= 0; --U) if (!(j[U] == null || "n?".indexOf(j[U].t) === -1)) {
for (q = j[U].v.indexOf(".") > -1 && U === ue ? j[U].v.indexOf(".") - 1 : j[U].v.length - 1, se = j[U].v.substr(q + 1); q >= 0; --q) oe >= 0 && (j[U].v.charAt(q) === "0" || j[U].v.charAt(q) === "#") && (se = le.charAt(oe--) + se);
j[U].v = se, j[U].t = "t", de = U;
}
for (oe >= 0 && de < j.length && (j[de].v = le.substr(0, oe + 1) + j[de].v), oe = le.indexOf(".") + 1, U = ue; U < j.length; ++U) if (!(j[U] == null || "n?(".indexOf(j[U].t) === -1 && U !== ue)) {
for (q = j[U].v.indexOf(".") > -1 && U === ue ? j[U].v.indexOf(".") + 1 : 0, se = j[U].v.substr(0, q); q < j[U].v.length; ++q) oe < le.length && (se += le.charAt(oe++));
j[U].v = se, j[U].t = "t", de = U;
}
}
}
for (U = 0; U < j.length; ++U) j[U] != null && "n?".indexOf(j[U].t) > -1 && (ce = O > 1 && w < 0 && U > 0 && j[U - 1].v === "-" ? -w : w, j[U].v = write_num(j[U].t, j[U].v, ce), j[U].t = "t");
var fe = "";
for (U = 0; U !== j.length; ++U) j[U] != null && (fe += j[U].v);
return fe;
}
var cfregex2 = /\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;
function chkcond(x, w) {
if (w == null) return !1;
var T = parseFloat(w[2]);
switch (w[1]) {
case "=":
if (x == T) return !0;
break;
case ">":
if (x > T) return !0;
break;
case "<":
if (x < T) return !0;
break;
case "<>":
if (x != T) return !0;
break;
case ">=":
if (x >= T) return !0;
break;
case "<=":
if (x <= T) return !0;
break;
}
return !1;
}
function choose_fmt(x, w) {
var T = SSF_split_fmt(x), O = T.length, j = T[O - 1].indexOf("@");
if (O < 4 && j > -1 && --O, T.length > 4) throw Error("cannot find right format for |" + T.join("|") + "|");
if (typeof w != "number") return [4, T.length === 4 || j > -1 ? T[T.length - 1] : "@"];
switch (typeof w == "number" && !isFinite(w) && (w = 0), T.length) {
case 1:
T = j > -1 ? [
"General",
"General",
"General",
T[0]
] : [
T[0],
T[0],
T[0],
"@"
];
break;
case 2:
T = j > -1 ? [
T[0],
T[0],
T[0],
T[1]
] : [
T[0],
T[1],
T[0],
"@"
];
break;
case 3:
T = j > -1 ? [
T[0],
T[1],
T[0],
T[2]
] : [
T[0],
T[1],
T[2],
"@"
];
break;
case 4: break;
}
var F = w > 0 ? T[0] : w < 0 ? T[1] : T[2];
if (T[0].indexOf("[") === -1 && T[1].indexOf("[") === -1) return [O, F];
if (T[0].match(/\[[=<>]/) != null || T[1].match(/\[[=<>]/) != null) {
var U = T[0].match(cfregex2), W = T[1].match(cfregex2);
return chkcond(w, U) ? [O, T[0]] : chkcond(w, W) ? [O, T[1]] : [O, T[U != null && W != null ? 2 : 1]];
}
return [O, F];
}
function SSF_format(x, w, T) {
T ??= {};
var O = "";
switch (typeof x) {
case "string":
O = x == "m/d/yy" && T.dateNF ? T.dateNF : x;
break;
case "number":
O = x == 14 && T.dateNF ? T.dateNF : (T.table == null ? table_fmt : T.table)[x], O ??= T.table && T.table[SSF_default_map[x]] || table_fmt[SSF_default_map[x]], O ??= SSF_default_str[x] || "General";
break;
}
if (SSF_isgeneral(O, 0)) return SSF_general(w, T);
w instanceof Date && (w = datenum(w, T.date1904));
var j = choose_fmt(O, w);
if (SSF_isgeneral(j[1])) return SSF_general(w, T);
if (w === !0) w = "TRUE";
else if (w === !1) w = "FALSE";
else if (w === "" || w == null) return "";
else if (isNaN(w) && j[1].indexOf("0") > -1) return "#NUM!";
else if (!isFinite(w) && j[1].indexOf("0") > -1) return "#DIV/0!";
return eval_fmt(j[1], w, T, j[0]);
}
function SSF_load(x, w) {
if (typeof w != "number") {
w = +w || -1;
for (var T = 0; T < 392; ++T) {
if (table_fmt[T] == null) {
w < 0 && (w = T);
continue;
}
if (table_fmt[T] == x) {
w = T;
break;
}
}
w < 0 && (w = 391);
}
return table_fmt[w] = x, w;
}
function SSF_load_table(x) {
for (var w = 0; w != 392; ++w) x[w] !== void 0 && SSF_load(x[w], w);
}
function make_ssf() {
table_fmt = SSF_init_table();
}
var SSF = {
format: SSF_format,
load: SSF_load,
_table: table_fmt,
load_table: SSF_load_table,
parse_date_code: SSF_parse_date_code,
is_date: fmt_is_date,
get_table: function() {
return SSF._table = table_fmt;
}
}, SSFImplicit = {
5: "\"$\"#,##0_);\\(\"$\"#,##0\\)",
6: "\"$\"#,##0_);[Red]\\(\"$\"#,##0\\)",
7: "\"$\"#,##0.00_);\\(\"$\"#,##0.00\\)",
8: "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)",
23: "General",
24: "General",
25: "General",
26: "General",
27: "m/d/yy",
28: "m/d/yy",
29: "m/d/yy",
30: "m/d/yy",
31: "m/d/yy",
32: "h:mm:ss",
33: "h:mm:ss",
34: "h:mm:ss",
35: "h:mm:ss",
36: "m/d/yy",
41: "_(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)",
42: "_(\"$\"* #,##0_);_(\"$\"* (#,##0);_(\"$\"* \"-\"_);_(@_)",
43: "_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)",
44: "_(\"$\"* #,##0.00_);_(\"$\"* (#,##0.00);_(\"$\"* \"-\"??_);_(@_)",
50: "m/d/yy",
51: "m/d/yy",
52: "m/d/yy",
53: "m/d/yy",
54: "m/d/yy",
55: "m/d/yy",
56: "m/d/yy",
57: "m/d/yy",
58: "m/d/yy",
59: "0",
60: "0.00",
61: "#,##0",
62: "#,##0.00",
63: "\"$\"#,##0_);\\(\"$\"#,##0\\)",
64: "\"$\"#,##0_);[Red]\\(\"$\"#,##0\\)",
65: "\"$\"#,##0.00_);\\(\"$\"#,##0.00\\)",
66: "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)",
67: "0%",
68: "0.00%",
69: "# ?/?",
70: "# ??/??",
71: "m/d/yy",
72: "m/d/yy",
73: "d-mmm-yy",
74: "d-mmm",
75: "mmm-yy",
76: "h:mm",
77: "h:mm:ss",
78: "m/d/yy h:mm",
79: "mm:ss",
80: "[h]:mm:ss",
81: "mmss.0"
}, dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;
function dateNF_regex(x) {
var w = typeof x == "number" ? table_fmt[x] : x;
return w = w.replace(dateNFregex, "(\\d+)"), dateNFregex.lastIndex = 0, RegExp("^" + w + "$");
}
function dateNF_fix(x, w, T) {
var O = -1, j = -1, F = -1, U = -1, W = -1, G = -1;
(w.match(dateNFregex) || []).forEach(function(x, w) {
var K = parseInt(T[w + 1], 10);
switch (x.toLowerCase().charAt(0)) {
case "y":
O = K;
break;
case "d":
F = K;
break;
case "h":
U = K;
break;
case "s":
G = K;
break;
case "m":
U >= 0 ? W = K : j = K;
break;
}
}), dateNFregex.lastIndex = 0, G >= 0 && W == -1 && j >= 0 && (W = j, j = -1);
var K = ("" + (O >= 0 ? O : (/* @__PURE__ */ new Date()).getFullYear())).slice(-4) + "-" + ("00" + (j >= 1 ? j : 1)).slice(-2) + "-" + ("00" + (F >= 1 ? F : 1)).slice(-2);
K.length == 7 && (K = "0" + K), K.length == 8 && (K = "20" + K);
var q = ("00" + (U >= 0 ? U : 0)).slice(-2) + ":" + ("00" + (W >= 0 ? W : 0)).slice(-2) + ":" + ("00" + (G >= 0 ? G : 0)).slice(-2);
return U == -1 && W == -1 && G == -1 ? K : O == -1 && j == -1 && F == -1 ? q : K + "T" + q;
}
var bad_formats = { "d.m": "d\\.m" };
function SSF__load(x, w) {
return SSF_load(bad_formats[x] || x, w);
}
var CRC32 = /* @__PURE__ */ (function() {
var x = {};
x.version = "1.2.0";
function w() {
for (var x = 0, w = Array(256), T = 0; T != 256; ++T) x = T, x = x & 1 ? -306674912 ^ x >>> 1 : x >>> 1, x = x & 1 ? -306674912 ^ x >>> 1 : x >>> 1, x = x & 1 ? -306674912 ^ x >>> 1 : x >>> 1, x = x & 1 ? -306674912 ^ x >>> 1 : x >>> 1, x = x & 1 ? -306674912 ^ x >>> 1 : x >>> 1, x = x & 1 ? -306674912 ^ x >>> 1 : x >>> 1, x = x & 1 ? -306674912 ^ x >>> 1 : x >>> 1, x = x & 1 ? -306674912 ^ x >>> 1 : x >>> 1, w[T] = x;
return typeof Int32Array < "u" ? new Int32Array(w) : w;
}
var T = w();
function O(x) {
var w = 0, T = 0, O = 0, j = typeof Int32Array < "u" ? new Int32Array(4096) : Array(4096);
for (O = 0; O != 256; ++O) j[O] = x[O];
for (O = 0; O != 256; ++O) for (T = x[O], w = 256 + O; w < 4096; w += 256) T = j[w] = T >>> 8 ^ x[T & 255];
var F = [];
for (O = 1; O != 16; ++O) F[O - 1] = typeof Int32Array < "u" && typeof j.subarray == "function" ? j.subarray(O * 256, O * 256 + 256) : j.slice(O * 256, O * 256 + 256);
return F;
}
var j = O(T), F = j[0], U = j[1], W = j[2], G = j[3], K = j[4], q = j[5], J = j[6], Y = j[7], X = j[8], ee = j[9], Q = j[10], te = j[11], ne = j[12], re = j[13], ie = j[14];
function ae(x, w) {
for (var O = w ^ -1, j = 0, F = x.length; j < F;) O = O >>> 8 ^ T[(O ^ x.charCodeAt(j++)) & 255];
return ~O;
}
function oe(x, w) {
for (var O = w ^ -1, j = x.length - 15, ae = 0; ae < j;) O = ie[x[ae++] ^ O & 255] ^ re[x[ae++] ^ O >> 8 & 255] ^ ne[x[ae++] ^ O >> 16 & 255] ^ te[x[ae++] ^ O >>> 24] ^ Q[x[ae++]] ^ ee[x[ae++]] ^ X[x[ae++]] ^ Y[x[ae++]] ^ J[x[ae++]] ^ q[x[ae++]] ^ K[x[ae++]] ^ G[x[ae++]] ^ W[x[ae++]] ^ U[x[ae++]] ^ F[x[ae++]] ^ T[x[ae++]];
for (j += 15; ae < j;) O = O >>> 8 ^ T[(O ^ x[ae++]) & 255];
return ~O;
}
function se(x, w) {
for (var O = w ^ -1, j = 0, F = x.length, U = 0, W = 0; j < F;) U = x.charCodeAt(j++), U < 128 ? O = O >>> 8 ^ T[(O ^ U) & 255] : U < 2048 ? (O = O >>> 8 ^ T[(O ^ (192 | U >> 6 & 31)) & 255], O = O >>> 8 ^ T[(O ^ (128 | U & 63)) & 255]) : U >= 55296 && U < 57344 ? (U = (U & 1023) + 64, W = x.charCodeAt(j++) & 1023, O = O >>> 8 ^ T[(O ^ (240 | U >> 8 & 7)) & 255], O = O >>> 8 ^ T[(O ^ (128 | U >> 2 & 63)) & 255], O = O >>> 8 ^ T[(O ^ (128 | W >> 6 & 15 | (U & 3) << 4)) & 255], O = O >>> 8 ^ T[(O ^ (128 | W & 63)) & 255]) : (O = O >>> 8 ^ T[(O ^ (224 | U >> 12 & 15)) & 255], O = O >>> 8 ^ T[(O ^ (128 | U >> 6 & 63)) & 255], O = O >>> 8 ^ T[(O ^ (128 | U & 63)) & 255]);
return ~O;
}
return x.table = T, x.bstr = ae, x.buf = oe, x.str = se, x;
})(), CFB = /* @__PURE__ */ (function() {
var x = {};
x.version = "1.2.2";
function w(x, w) {
for (var T = x.split("/"), O = w.split("/"), j = 0, F = 0, U = Math.min(T.length, O.length); j < U; ++j) {
if (F = T[j].length - O[j].length) return F;
if (T[j] != O[j]) return T[j] < O[j] ? -1 : 1;
}
return T.length - O.length;
}
function T(x) {
if (x.charAt(x.length - 1) == "/") return x.slice(0, -1).indexOf("/") === -1 ? x : T(x.slice(0, -1));
var w = x.lastIndexOf("/");
return w === -1 ? x : x.slice(0, w + 1);
}
function O(x) {
if (x.charAt(x.length - 1) == "/") return O(x.slice(0, -1));
var w = x.lastIndexOf("/");
return w === -1 ? x : x.slice(w + 1);
}
function j(x, w) {
typeof w == "string" && (w = new Date(w));
var T = w.getHours();
T = T << 6 | w.getMinutes(), T = T << 5 | w.getSeconds() >>> 1, x.write_shift(2, T);
var O = w.getFullYear() - 1980;
O = O << 4 | w.getMonth() + 1, O = O << 5 | w.getDate(), x.write_shift(2, O);
}
function F(x) {
var w = x.read_shift(2) & 65535, T = x.read_shift(2) & 65535, O = /* @__PURE__ */ new Date(), j = T & 31;
T >>>= 5;
var F = T & 15;
T >>>= 4, O.setMilliseconds(0), O.setFullYear(T + 1980), O.setMonth(F - 1), O.setDate(j);
var U = w & 31;
w >>>= 5;
var W = w & 63;
return w >>>= 6, O.setHours(w), O.setMinutes(W), O.setSeconds(U << 1), O;
}
function U(x) {
prep_blob(x, 0);
for (var w = {}, T = 0; x.l <= x.length - 4;) {
var O = x.read_shift(2), j = x.read_shift(2), F = x.l + j, U = {};
switch (O) {
case 21589:
T = x.read_shift(1), T & 1 && (U.mtime = x.read_shift(4)), j > 5 && (T & 2 && (U.atime = x.read_shift(4)), T & 4 && (U.ctime = x.read_shift(4))), U.mtime && (U.mt = /* @__PURE__ */ new Date(U.mtime * 1e3));
break;
case 1:
var W = x.read_shift(4), G = x.read_shift(4);
U.usz = G * 2 ** 32 + W, W = x.read_shift(4), G = x.read_shift(4), U.csz = G * 2 ** 32 + W;
break;
}
x.l = F, w[O] = U;
}
return w;
}
var W;
function G() {
return W ||= _fs;
}
function K(x, w) {
if (x[0] == 80 && x[1] == 75) return ot(x, w);
if ((x[0] | 32) == 109 && (x[1