UNPKG

@caspingus/lt

Version:

A utility library of helpers and extensions useful when working with Learnosity APIs.

1,471 lines 1.14 MB
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