vue-files-preview-inno
Version:
A tool for previewing files such as doc, excel, pdf, image, markdown, txt, audio, and video and so on.
3,770 lines • 173 kB
JavaScript
import { getDefaultExportFromCjs as qe, commonjsGlobal as Xe } from "../../../_virtual/_commonjsHelpers.mjs";
import { commonjsRequire as Ve } from "../../../_virtual/_commonjs-dynamic-modules.mjs";
import { __module as Qe } from "../../../_virtual/jszip.mjs";
/*!
JSZip v3.10.1 - A JavaScript class for generating and reading zip files
<http://stuartk.com/jszip>
(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
JSZip uses the library pako released under the MIT license :
https://github.com/nodeca/pako/blob/main/LICENSE
*/
(function($e, tt) {
(function(v) {
$e.exports = v();
})(function() {
return function v(N, y, d) {
function f(w, l) {
if (!y[w]) {
if (!N[w]) {
var h = typeof Ve == "function" && Ve;
if (!l && h) return h(w, !0);
if (p) return p(w, !0);
var x = new Error("Cannot find module '" + w + "'");
throw x.code = "MODULE_NOT_FOUND", x;
}
var u = y[w] = { exports: {} };
N[w][0].call(u.exports, function(z) {
var A = N[w][1][z];
return f(A || z);
}, u, u.exports, v, N, y, d);
}
return y[w].exports;
}
for (var p = typeof Ve == "function" && Ve, o = 0; o < d.length; o++) f(d[o]);
return f;
}({ 1: [function(v, N, y) {
var d = v("./utils"), f = v("./support"), p = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
y.encode = function(o) {
for (var w = [], l, h, x, u, z, A, r, n = 0, s = o.length, b = s, O = d.getTypeOf(o) !== "string"; n < o.length; )
b = s - n, O ? (l = o[n++], h = n < s ? o[n++] : 0, x = n < s ? o[n++] : 0) : (l = o.charCodeAt(n++), h = n < s ? o.charCodeAt(n++) : 0, x = n < s ? o.charCodeAt(n++) : 0), u = l >> 2, z = (l & 3) << 4 | h >> 4, A = b > 1 ? (h & 15) << 2 | x >> 6 : 64, r = b > 2 ? x & 63 : 64, w.push(p.charAt(u) + p.charAt(z) + p.charAt(A) + p.charAt(r));
return w.join("");
}, y.decode = function(o) {
var w, l, h, x, u, z, A, r = 0, n = 0, s = "data:";
if (o.substr(0, s.length) === s)
throw new Error("Invalid base64 input, it looks like a data url.");
o = o.replace(/[^A-Za-z0-9+/=]/g, "");
var b = o.length * 3 / 4;
if (o.charAt(o.length - 1) === p.charAt(64) && b--, o.charAt(o.length - 2) === p.charAt(64) && b--, b % 1 !== 0)
throw new Error("Invalid base64 input, bad content length.");
var O;
for (f.uint8array ? O = new Uint8Array(b | 0) : O = new Array(b | 0); r < o.length; )
x = p.indexOf(o.charAt(r++)), u = p.indexOf(o.charAt(r++)), z = p.indexOf(o.charAt(r++)), A = p.indexOf(o.charAt(r++)), w = x << 2 | u >> 4, l = (u & 15) << 4 | z >> 2, h = (z & 3) << 6 | A, O[n++] = w, z !== 64 && (O[n++] = l), A !== 64 && (O[n++] = h);
return O;
};
}, { "./support": 30, "./utils": 32 }], 2: [function(v, N, y) {
var d = v("./external"), f = v("./stream/DataWorker"), p = v("./stream/Crc32Probe"), o = v("./stream/DataLengthProbe");
function w(l, h, x, u, z) {
this.compressedSize = l, this.uncompressedSize = h, this.crc32 = x, this.compression = u, this.compressedContent = z;
}
w.prototype = {
/**
* Create a worker to get the uncompressed content.
* @return {GenericWorker} the worker.
*/
getContentWorker: function() {
var l = new f(d.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new o("data_length")), h = this;
return l.on("end", function() {
if (this.streamInfo.data_length !== h.uncompressedSize)
throw new Error("Bug : uncompressed data size mismatch");
}), l;
},
/**
* Create a worker to get the compressed content.
* @return {GenericWorker} the worker.
*/
getCompressedWorker: function() {
return new f(d.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize", this.compressedSize).withStreamInfo("uncompressedSize", this.uncompressedSize).withStreamInfo("crc32", this.crc32).withStreamInfo("compression", this.compression);
}
}, w.createWorkerFrom = function(l, h, x) {
return l.pipe(new p()).pipe(new o("uncompressedSize")).pipe(h.compressWorker(x)).pipe(new o("compressedSize")).withStreamInfo("compression", h);
}, N.exports = w;
}, { "./external": 6, "./stream/Crc32Probe": 25, "./stream/DataLengthProbe": 26, "./stream/DataWorker": 27 }], 3: [function(v, N, y) {
var d = v("./stream/GenericWorker");
y.STORE = {
magic: "\0\0",
compressWorker: function() {
return new d("STORE compression");
},
uncompressWorker: function() {
return new d("STORE decompression");
}
}, y.DEFLATE = v("./flate");
}, { "./flate": 7, "./stream/GenericWorker": 28 }], 4: [function(v, N, y) {
var d = v("./utils");
function f() {
for (var l, h = [], x = 0; x < 256; x++) {
l = x;
for (var u = 0; u < 8; u++)
l = l & 1 ? 3988292384 ^ l >>> 1 : l >>> 1;
h[x] = l;
}
return h;
}
var p = f();
function o(l, h, x, u) {
var z = p, A = u + x;
l = l ^ -1;
for (var r = u; r < A; r++)
l = l >>> 8 ^ z[(l ^ h[r]) & 255];
return l ^ -1;
}
function w(l, h, x, u) {
var z = p, A = u + x;
l = l ^ -1;
for (var r = u; r < A; r++)
l = l >>> 8 ^ z[(l ^ h.charCodeAt(r)) & 255];
return l ^ -1;
}
N.exports = function(h, x) {
if (typeof h > "u" || !h.length)
return 0;
var u = d.getTypeOf(h) !== "string";
return u ? o(x | 0, h, h.length, 0) : w(x | 0, h, h.length, 0);
};
}, { "./utils": 32 }], 5: [function(v, N, y) {
y.base64 = !1, y.binary = !1, y.dir = !1, y.createFolders = !0, y.date = null, y.compression = null, y.compressionOptions = null, y.comment = null, y.unixPermissions = null, y.dosPermissions = null;
}, {}], 6: [function(v, N, y) {
var d = null;
typeof Promise < "u" ? d = Promise : d = v("lie"), N.exports = {
Promise: d
};
}, { lie: 37 }], 7: [function(v, N, y) {
var d = typeof Uint8Array < "u" && typeof Uint16Array < "u" && typeof Uint32Array < "u", f = v("pako"), p = v("./utils"), o = v("./stream/GenericWorker"), w = d ? "uint8array" : "array";
y.magic = "\b\0";
function l(h, x) {
o.call(this, "FlateWorker/" + h), this._pako = null, this._pakoAction = h, this._pakoOptions = x, this.meta = {};
}
p.inherits(l, o), l.prototype.processChunk = function(h) {
this.meta = h.meta, this._pako === null && this._createPako(), this._pako.push(p.transformTo(w, h.data), !1);
}, l.prototype.flush = function() {
o.prototype.flush.call(this), this._pako === null && this._createPako(), this._pako.push([], !0);
}, l.prototype.cleanUp = function() {
o.prototype.cleanUp.call(this), this._pako = null;
}, l.prototype._createPako = function() {
this._pako = new f[this._pakoAction]({
raw: !0,
level: this._pakoOptions.level || -1
// default compression
});
var h = this;
this._pako.onData = function(x) {
h.push({
data: x,
meta: h.meta
});
};
}, y.compressWorker = function(h) {
return new l("Deflate", h);
}, y.uncompressWorker = function() {
return new l("Inflate", {});
};
}, { "./stream/GenericWorker": 28, "./utils": 32, pako: 38 }], 8: [function(v, N, y) {
var d = v("../utils"), f = v("../stream/GenericWorker"), p = v("../utf8"), o = v("../crc32"), w = v("../signature"), l = function(n, s) {
var b = "", O;
for (O = 0; O < s; O++)
b += String.fromCharCode(n & 255), n = n >>> 8;
return b;
}, h = function(n, s) {
var b = n;
return n || (b = s ? 16893 : 33204), (b & 65535) << 16;
}, x = function(n) {
return (n || 0) & 63;
}, u = function(n, s, b, O, c, g) {
var k = n.file, S = n.compression, R = g !== p.utf8encode, I = d.transformTo("string", g(k.name)), P = d.transformTo("string", p.utf8encode(k.name)), L = k.comment, G = d.transformTo("string", g(L)), J = d.transformTo("string", p.utf8encode(L)), X = P.length !== k.name.length, te = J.length !== L.length, V, j, q = "", fe = "", ce = "", Y = k.dir, se = k.date, ie = {
crc32: 0,
compressedSize: 0,
uncompressedSize: 0
};
(!s || b) && (ie.crc32 = n.crc32, ie.compressedSize = n.compressedSize, ie.uncompressedSize = n.uncompressedSize);
var we = 0;
s && (we |= 8), !R && (X || te) && (we |= 2048);
var me = 0, de = 0;
Y && (me |= 16), c === "UNIX" ? (de = 798, me |= h(k.unixPermissions, Y)) : (de = 20, me |= x(k.dosPermissions)), V = se.getUTCHours(), V = V << 6, V = V | se.getUTCMinutes(), V = V << 5, V = V | se.getUTCSeconds() / 2, j = se.getUTCFullYear() - 1980, j = j << 4, j = j | se.getUTCMonth() + 1, j = j << 5, j = j | se.getUTCDate(), X && (fe = // Version
l(1, 1) + // NameCRC32
l(o(I), 4) + // UnicodeName
P, q += // Info-ZIP Unicode Path Extra Field
"up" + // size
l(fe.length, 2) + // content
fe), te && (ce = // Version
l(1, 1) + // CommentCRC32
l(o(G), 4) + // UnicodeName
J, q += // Info-ZIP Unicode Path Extra Field
"uc" + // size
l(ce.length, 2) + // content
ce);
var $ = "";
$ += `
\0`, $ += l(we, 2), $ += S.magic, $ += l(V, 2), $ += l(j, 2), $ += l(ie.crc32, 4), $ += l(ie.compressedSize, 4), $ += l(ie.uncompressedSize, 4), $ += l(I.length, 2), $ += l(q.length, 2);
var ge = w.LOCAL_FILE_HEADER + $ + I + q, pe = w.CENTRAL_FILE_HEADER + // version made by (00: DOS)
l(de, 2) + // file header (common to file and central directory)
$ + // file comment length
l(G.length, 2) + // disk number start
"\0\0\0\0" + // external file attributes
l(me, 4) + // relative offset of local header
l(O, 4) + // file name
I + // extra field
q + // file comment
G;
return {
fileRecord: ge,
dirRecord: pe
};
}, z = function(n, s, b, O, c) {
var g = "", k = d.transformTo("string", c(O));
return g = w.CENTRAL_DIRECTORY_END + // number of this disk
"\0\0\0\0" + // total number of entries in the central directory on this disk
l(n, 2) + // total number of entries in the central directory
l(n, 2) + // size of the central directory 4 bytes
l(s, 4) + // offset of start of central directory with respect to the starting disk number
l(b, 4) + // .ZIP file comment length
l(k.length, 2) + // .ZIP file comment
k, g;
}, A = function(n) {
var s = "";
return s = w.DATA_DESCRIPTOR + // crc-32 4 bytes
l(n.crc32, 4) + // compressed size 4 bytes
l(n.compressedSize, 4) + // uncompressed size 4 bytes
l(n.uncompressedSize, 4), s;
};
function r(n, s, b, O) {
f.call(this, "ZipFileWorker"), this.bytesWritten = 0, this.zipComment = s, this.zipPlatform = b, this.encodeFileName = O, this.streamFiles = n, this.accumulate = !1, this.contentBuffer = [], this.dirRecords = [], this.currentSourceOffset = 0, this.entriesCount = 0, this.currentFile = null, this._sources = [];
}
d.inherits(r, f), r.prototype.push = function(n) {
var s = n.meta.percent || 0, b = this.entriesCount, O = this._sources.length;
this.accumulate ? this.contentBuffer.push(n) : (this.bytesWritten += n.data.length, f.prototype.push.call(this, {
data: n.data,
meta: {
currentFile: this.currentFile,
percent: b ? (s + 100 * (b - O - 1)) / b : 100
}
}));
}, r.prototype.openedSource = function(n) {
this.currentSourceOffset = this.bytesWritten, this.currentFile = n.file.name;
var s = this.streamFiles && !n.file.dir;
if (s) {
var b = u(n, s, !1, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
this.push({
data: b.fileRecord,
meta: { percent: 0 }
});
} else
this.accumulate = !0;
}, r.prototype.closedSource = function(n) {
this.accumulate = !1;
var s = this.streamFiles && !n.file.dir, b = u(n, s, !0, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
if (this.dirRecords.push(b.dirRecord), s)
this.push({
data: A(n),
meta: { percent: 100 }
});
else
for (this.push({
data: b.fileRecord,
meta: { percent: 0 }
}); this.contentBuffer.length; )
this.push(this.contentBuffer.shift());
this.currentFile = null;
}, r.prototype.flush = function() {
for (var n = this.bytesWritten, s = 0; s < this.dirRecords.length; s++)
this.push({
data: this.dirRecords[s],
meta: { percent: 100 }
});
var b = this.bytesWritten - n, O = z(this.dirRecords.length, b, n, this.zipComment, this.encodeFileName);
this.push({
data: O,
meta: { percent: 100 }
});
}, r.prototype.prepareNextSource = function() {
this.previous = this._sources.shift(), this.openedSource(this.previous.streamInfo), this.isPaused ? this.previous.pause() : this.previous.resume();
}, r.prototype.registerPrevious = function(n) {
this._sources.push(n);
var s = this;
return n.on("data", function(b) {
s.processChunk(b);
}), n.on("end", function() {
s.closedSource(s.previous.streamInfo), s._sources.length ? s.prepareNextSource() : s.end();
}), n.on("error", function(b) {
s.error(b);
}), this;
}, r.prototype.resume = function() {
if (!f.prototype.resume.call(this))
return !1;
if (!this.previous && this._sources.length)
return this.prepareNextSource(), !0;
if (!this.previous && !this._sources.length && !this.generatedError)
return this.end(), !0;
}, r.prototype.error = function(n) {
var s = this._sources;
if (!f.prototype.error.call(this, n))
return !1;
for (var b = 0; b < s.length; b++)
try {
s[b].error(n);
} catch {
}
return !0;
}, r.prototype.lock = function() {
f.prototype.lock.call(this);
for (var n = this._sources, s = 0; s < n.length; s++)
n[s].lock();
}, N.exports = r;
}, { "../crc32": 4, "../signature": 23, "../stream/GenericWorker": 28, "../utf8": 31, "../utils": 32 }], 9: [function(v, N, y) {
var d = v("../compressions"), f = v("./ZipFileWorker"), p = function(o, w) {
var l = o || w, h = d[l];
if (!h)
throw new Error(l + " is not a valid compression method !");
return h;
};
y.generateWorker = function(o, w, l) {
var h = new f(w.streamFiles, l, w.platform, w.encodeFileName), x = 0;
try {
o.forEach(function(u, z) {
x++;
var A = p(z.options.compression, w.compression), r = z.options.compressionOptions || w.compressionOptions || {}, n = z.dir, s = z.date;
z._compressWorker(A, r).withStreamInfo("file", {
name: u,
dir: n,
date: s,
comment: z.comment || "",
unixPermissions: z.unixPermissions,
dosPermissions: z.dosPermissions
}).pipe(h);
}), h.entriesCount = x;
} catch (u) {
h.error(u);
}
return h;
};
}, { "../compressions": 3, "./ZipFileWorker": 8 }], 10: [function(v, N, y) {
function d() {
if (!(this instanceof d))
return new d();
if (arguments.length)
throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");
this.files = /* @__PURE__ */ Object.create(null), this.comment = null, this.root = "", this.clone = function() {
var f = new d();
for (var p in this)
typeof this[p] != "function" && (f[p] = this[p]);
return f;
};
}
d.prototype = v("./object"), d.prototype.loadAsync = v("./load"), d.support = v("./support"), d.defaults = v("./defaults"), d.version = "3.10.1", d.loadAsync = function(f, p) {
return new d().loadAsync(f, p);
}, d.external = v("./external"), N.exports = d;
}, { "./defaults": 5, "./external": 6, "./load": 11, "./object": 15, "./support": 30 }], 11: [function(v, N, y) {
var d = v("./utils"), f = v("./external"), p = v("./utf8"), o = v("./zipEntries"), w = v("./stream/Crc32Probe"), l = v("./nodejsUtils");
function h(x) {
return new f.Promise(function(u, z) {
var A = x.decompressed.getContentWorker().pipe(new w());
A.on("error", function(r) {
z(r);
}).on("end", function() {
A.streamInfo.crc32 !== x.decompressed.crc32 ? z(new Error("Corrupted zip : CRC32 mismatch")) : u();
}).resume();
});
}
N.exports = function(x, u) {
var z = this;
return u = d.extend(u || {}, {
base64: !1,
checkCRC32: !1,
optimizedBinaryString: !1,
createFolders: !1,
decodeFileName: p.utf8decode
}), l.isNode && l.isStream(x) ? f.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")) : d.prepareContent("the loaded zip file", x, !0, u.optimizedBinaryString, u.base64).then(function(A) {
var r = new o(u);
return r.load(A), r;
}).then(function(r) {
var n = [f.Promise.resolve(r)], s = r.files;
if (u.checkCRC32)
for (var b = 0; b < s.length; b++)
n.push(h(s[b]));
return f.Promise.all(n);
}).then(function(r) {
for (var n = r.shift(), s = n.files, b = 0; b < s.length; b++) {
var O = s[b], c = O.fileNameStr, g = d.resolve(O.fileNameStr);
z.file(g, O.decompressed, {
binary: !0,
optimizedBinaryString: !0,
date: O.date,
dir: O.dir,
comment: O.fileCommentStr.length ? O.fileCommentStr : null,
unixPermissions: O.unixPermissions,
dosPermissions: O.dosPermissions,
createFolders: u.createFolders
}), O.dir || (z.file(g).unsafeOriginalName = c);
}
return n.zipComment.length && (z.comment = n.zipComment), z;
});
};
}, { "./external": 6, "./nodejsUtils": 14, "./stream/Crc32Probe": 25, "./utf8": 31, "./utils": 32, "./zipEntries": 33 }], 12: [function(v, N, y) {
var d = v("../utils"), f = v("../stream/GenericWorker");
function p(o, w) {
f.call(this, "Nodejs stream input adapter for " + o), this._upstreamEnded = !1, this._bindStream(w);
}
d.inherits(p, f), p.prototype._bindStream = function(o) {
var w = this;
this._stream = o, o.pause(), o.on("data", function(l) {
w.push({
data: l,
meta: {
percent: 0
}
});
}).on("error", function(l) {
w.isPaused ? this.generatedError = l : w.error(l);
}).on("end", function() {
w.isPaused ? w._upstreamEnded = !0 : w.end();
});
}, p.prototype.pause = function() {
return f.prototype.pause.call(this) ? (this._stream.pause(), !0) : !1;
}, p.prototype.resume = function() {
return f.prototype.resume.call(this) ? (this._upstreamEnded ? this.end() : this._stream.resume(), !0) : !1;
}, N.exports = p;
}, { "../stream/GenericWorker": 28, "../utils": 32 }], 13: [function(v, N, y) {
var d = v("readable-stream").Readable, f = v("../utils");
f.inherits(p, d);
function p(o, w, l) {
d.call(this, w), this._helper = o;
var h = this;
o.on("data", function(x, u) {
h.push(x) || h._helper.pause(), l && l(u);
}).on("error", function(x) {
h.emit("error", x);
}).on("end", function() {
h.push(null);
});
}
p.prototype._read = function() {
this._helper.resume();
}, N.exports = p;
}, { "../utils": 32, "readable-stream": 16 }], 14: [function(v, N, y) {
N.exports = {
/**
* True if this is running in Nodejs, will be undefined in a browser.
* In a browser, browserify won't include this file and the whole module
* will be resolved an empty object.
*/
isNode: typeof Buffer < "u",
/**
* Create a new nodejs Buffer from an existing content.
* @param {Object} data the data to pass to the constructor.
* @param {String} encoding the encoding to use.
* @return {Buffer} a new Buffer.
*/
newBufferFrom: function(d, f) {
if (Buffer.from && Buffer.from !== Uint8Array.from)
return Buffer.from(d, f);
if (typeof d == "number")
throw new Error('The "data" argument must not be a number');
return new Buffer(d, f);
},
/**
* Create a new nodejs Buffer with the specified size.
* @param {Integer} size the size of the buffer.
* @return {Buffer} a new Buffer.
*/
allocBuffer: function(d) {
if (Buffer.alloc)
return Buffer.alloc(d);
var f = new Buffer(d);
return f.fill(0), f;
},
/**
* Find out if an object is a Buffer.
* @param {Object} b the object to test.
* @return {Boolean} true if the object is a Buffer, false otherwise.
*/
isBuffer: function(d) {
return Buffer.isBuffer(d);
},
isStream: function(d) {
return d && typeof d.on == "function" && typeof d.pause == "function" && typeof d.resume == "function";
}
};
}, {}], 15: [function(v, N, y) {
var d = v("./utf8"), f = v("./utils"), p = v("./stream/GenericWorker"), o = v("./stream/StreamHelper"), w = v("./defaults"), l = v("./compressedObject"), h = v("./zipObject"), x = v("./generate"), u = v("./nodejsUtils"), z = v("./nodejs/NodejsStreamInputAdapter"), A = function(c, g, k) {
var S = f.getTypeOf(g), R, I = f.extend(k || {}, w);
I.date = I.date || /* @__PURE__ */ new Date(), I.compression !== null && (I.compression = I.compression.toUpperCase()), typeof I.unixPermissions == "string" && (I.unixPermissions = parseInt(I.unixPermissions, 8)), I.unixPermissions && I.unixPermissions & 16384 && (I.dir = !0), I.dosPermissions && I.dosPermissions & 16 && (I.dir = !0), I.dir && (c = n(c)), I.createFolders && (R = r(c)) && s.call(this, R, !0);
var P = S === "string" && I.binary === !1 && I.base64 === !1;
(!k || typeof k.binary > "u") && (I.binary = !P);
var L = g instanceof l && g.uncompressedSize === 0;
(L || I.dir || !g || g.length === 0) && (I.base64 = !1, I.binary = !0, g = "", I.compression = "STORE", S = "string");
var G = null;
g instanceof l || g instanceof p ? G = g : u.isNode && u.isStream(g) ? G = new z(c, g) : G = f.prepareContent(c, g, I.binary, I.optimizedBinaryString, I.base64);
var J = new h(c, G, I);
this.files[c] = J;
}, r = function(c) {
c.slice(-1) === "/" && (c = c.substring(0, c.length - 1));
var g = c.lastIndexOf("/");
return g > 0 ? c.substring(0, g) : "";
}, n = function(c) {
return c.slice(-1) !== "/" && (c += "/"), c;
}, s = function(c, g) {
return g = typeof g < "u" ? g : w.createFolders, c = n(c), this.files[c] || A.call(this, c, null, {
dir: !0,
createFolders: g
}), this.files[c];
};
function b(c) {
return Object.prototype.toString.call(c) === "[object RegExp]";
}
var O = {
/**
* @see loadAsync
*/
load: function() {
throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
},
/**
* Call a callback function for each entry at this folder level.
* @param {Function} cb the callback function:
* function (relativePath, file) {...}
* It takes 2 arguments : the relative path and the file.
*/
forEach: function(c) {
var g, k, S;
for (g in this.files)
S = this.files[g], k = g.slice(this.root.length, g.length), k && g.slice(0, this.root.length) === this.root && c(k, S);
},
/**
* Filter nested files/folders with the specified function.
* @param {Function} search the predicate to use :
* function (relativePath, file) {...}
* It takes 2 arguments : the relative path and the file.
* @return {Array} An array of matching elements.
*/
filter: function(c) {
var g = [];
return this.forEach(function(k, S) {
c(k, S) && g.push(S);
}), g;
},
/**
* Add a file to the zip file, or search a file.
* @param {string|RegExp} name The name of the file to add (if data is defined),
* the name of the file to find (if no data) or a regex to match files.
* @param {String|ArrayBuffer|Uint8Array|Buffer} data The file data, either raw or base64 encoded
* @param {Object} o File options
* @return {JSZip|Object|Array} this JSZip object (when adding a file),
* a file (when searching by string) or an array of files (when searching by regex).
*/
file: function(c, g, k) {
if (arguments.length === 1)
if (b(c)) {
var S = c;
return this.filter(function(I, P) {
return !P.dir && S.test(I);
});
} else {
var R = this.files[this.root + c];
return R && !R.dir ? R : null;
}
else
c = this.root + c, A.call(this, c, g, k);
return this;
},
/**
* Add a directory to the zip file, or search.
* @param {String|RegExp} arg The name of the directory to add, or a regex to search folders.
* @return {JSZip} an object with the new directory as the root, or an array containing matching folders.
*/
folder: function(c) {
if (!c)
return this;
if (b(c))
return this.filter(function(R, I) {
return I.dir && c.test(R);
});
var g = this.root + c, k = s.call(this, g), S = this.clone();
return S.root = k.name, S;
},
/**
* Delete a file, or a directory and all sub-files, from the zip
* @param {string} name the name of the file to delete
* @return {JSZip} this JSZip object
*/
remove: function(c) {
c = this.root + c;
var g = this.files[c];
if (g || (c.slice(-1) !== "/" && (c += "/"), g = this.files[c]), g && !g.dir)
delete this.files[c];
else
for (var k = this.filter(function(R, I) {
return I.name.slice(0, c.length) === c;
}), S = 0; S < k.length; S++)
delete this.files[k[S].name];
return this;
},
/**
* @deprecated This method has been removed in JSZip 3.0, please check the upgrade guide.
*/
generate: function() {
throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
},
/**
* Generate the complete zip file as an internal stream.
* @param {Object} options the options to generate the zip file :
* - compression, "STORE" by default.
* - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob.
* @return {StreamHelper} the streamed zip file.
*/
generateInternalStream: function(c) {
var g, k = {};
try {
if (k = f.extend(c || {}, {
streamFiles: !1,
compression: "STORE",
compressionOptions: null,
type: "",
platform: "DOS",
comment: null,
mimeType: "application/zip",
encodeFileName: d.utf8encode
}), k.type = k.type.toLowerCase(), k.compression = k.compression.toUpperCase(), k.type === "binarystring" && (k.type = "string"), !k.type)
throw new Error("No output type specified.");
f.checkSupport(k.type), (k.platform === "darwin" || k.platform === "freebsd" || k.platform === "linux" || k.platform === "sunos") && (k.platform = "UNIX"), k.platform === "win32" && (k.platform = "DOS");
var S = k.comment || this.comment || "";
g = x.generateWorker(this, k, S);
} catch (R) {
g = new p("error"), g.error(R);
}
return new o(g, k.type || "string", k.mimeType);
},
/**
* Generate the complete zip file asynchronously.
* @see generateInternalStream
*/
generateAsync: function(c, g) {
return this.generateInternalStream(c).accumulate(g);
},
/**
* Generate the complete zip file asynchronously.
* @see generateInternalStream
*/
generateNodeStream: function(c, g) {
return c = c || {}, c.type || (c.type = "nodebuffer"), this.generateInternalStream(c).toNodejsStream(g);
}
};
N.exports = O;
}, { "./compressedObject": 2, "./defaults": 5, "./generate": 9, "./nodejs/NodejsStreamInputAdapter": 12, "./nodejsUtils": 14, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31, "./utils": 32, "./zipObject": 35 }], 16: [function(v, N, y) {
N.exports = v("stream");
}, { stream: void 0 }], 17: [function(v, N, y) {
var d = v("./DataReader"), f = v("../utils");
function p(o) {
d.call(this, o);
for (var w = 0; w < this.data.length; w++)
o[w] = o[w] & 255;
}
f.inherits(p, d), p.prototype.byteAt = function(o) {
return this.data[this.zero + o];
}, p.prototype.lastIndexOfSignature = function(o) {
for (var w = o.charCodeAt(0), l = o.charCodeAt(1), h = o.charCodeAt(2), x = o.charCodeAt(3), u = this.length - 4; u >= 0; --u)
if (this.data[u] === w && this.data[u + 1] === l && this.data[u + 2] === h && this.data[u + 3] === x)
return u - this.zero;
return -1;
}, p.prototype.readAndCheckSignature = function(o) {
var w = o.charCodeAt(0), l = o.charCodeAt(1), h = o.charCodeAt(2), x = o.charCodeAt(3), u = this.readData(4);
return w === u[0] && l === u[1] && h === u[2] && x === u[3];
}, p.prototype.readData = function(o) {
if (this.checkOffset(o), o === 0)
return [];
var w = this.data.slice(this.zero + this.index, this.zero + this.index + o);
return this.index += o, w;
}, N.exports = p;
}, { "../utils": 32, "./DataReader": 18 }], 18: [function(v, N, y) {
var d = v("../utils");
function f(p) {
this.data = p, this.length = p.length, this.index = 0, this.zero = 0;
}
f.prototype = {
/**
* Check that the offset will not go too far.
* @param {string} offset the additional offset to check.
* @throws {Error} an Error if the offset is out of bounds.
*/
checkOffset: function(p) {
this.checkIndex(this.index + p);
},
/**
* Check that the specified index will not be too far.
* @param {string} newIndex the index to check.
* @throws {Error} an Error if the index is out of bounds.
*/
checkIndex: function(p) {
if (this.length < this.zero + p || p < 0)
throw new Error("End of data reached (data length = " + this.length + ", asked index = " + p + "). Corrupted zip ?");
},
/**
* Change the index.
* @param {number} newIndex The new index.
* @throws {Error} if the new index is out of the data.
*/
setIndex: function(p) {
this.checkIndex(p), this.index = p;
},
/**
* Skip the next n bytes.
* @param {number} n the number of bytes to skip.
* @throws {Error} if the new index is out of the data.
*/
skip: function(p) {
this.setIndex(this.index + p);
},
/**
* Get the byte at the specified index.
* @param {number} i the index to use.
* @return {number} a byte.
*/
byteAt: function() {
},
/**
* Get the next number with a given byte size.
* @param {number} size the number of bytes to read.
* @return {number} the corresponding number.
*/
readInt: function(p) {
var o = 0, w;
for (this.checkOffset(p), w = this.index + p - 1; w >= this.index; w--)
o = (o << 8) + this.byteAt(w);
return this.index += p, o;
},
/**
* Get the next string with a given byte size.
* @param {number} size the number of bytes to read.
* @return {string} the corresponding string.
*/
readString: function(p) {
return d.transformTo("string", this.readData(p));
},
/**
* Get raw data without conversion, <size> bytes.
* @param {number} size the number of bytes to read.
* @return {Object} the raw data, implementation specific.
*/
readData: function() {
},
/**
* Find the last occurrence of a zip signature (4 bytes).
* @param {string} sig the signature to find.
* @return {number} the index of the last occurrence, -1 if not found.
*/
lastIndexOfSignature: function() {
},
/**
* Read the signature (4 bytes) at the current position and compare it with sig.
* @param {string} sig the expected signature
* @return {boolean} true if the signature matches, false otherwise.
*/
readAndCheckSignature: function() {
},
/**
* Get the next date.
* @return {Date} the date.
*/
readDate: function() {
var p = this.readInt(4);
return new Date(Date.UTC(
(p >> 25 & 127) + 1980,
// year
(p >> 21 & 15) - 1,
// month
p >> 16 & 31,
// day
p >> 11 & 31,
// hour
p >> 5 & 63,
// minute
(p & 31) << 1
));
}
}, N.exports = f;
}, { "../utils": 32 }], 19: [function(v, N, y) {
var d = v("./Uint8ArrayReader"), f = v("../utils");
function p(o) {
d.call(this, o);
}
f.inherits(p, d), p.prototype.readData = function(o) {
this.checkOffset(o);
var w = this.data.slice(this.zero + this.index, this.zero + this.index + o);
return this.index += o, w;
}, N.exports = p;
}, { "../utils": 32, "./Uint8ArrayReader": 21 }], 20: [function(v, N, y) {
var d = v("./DataReader"), f = v("../utils");
function p(o) {
d.call(this, o);
}
f.inherits(p, d), p.prototype.byteAt = function(o) {
return this.data.charCodeAt(this.zero + o);
}, p.prototype.lastIndexOfSignature = function(o) {
return this.data.lastIndexOf(o) - this.zero;
}, p.prototype.readAndCheckSignature = function(o) {
var w = this.readData(4);
return o === w;
}, p.prototype.readData = function(o) {
this.checkOffset(o);
var w = this.data.slice(this.zero + this.index, this.zero + this.index + o);
return this.index += o, w;
}, N.exports = p;
}, { "../utils": 32, "./DataReader": 18 }], 21: [function(v, N, y) {
var d = v("./ArrayReader"), f = v("../utils");
function p(o) {
d.call(this, o);
}
f.inherits(p, d), p.prototype.readData = function(o) {
if (this.checkOffset(o), o === 0)
return new Uint8Array(0);
var w = this.data.subarray(this.zero + this.index, this.zero + this.index + o);
return this.index += o, w;
}, N.exports = p;
}, { "../utils": 32, "./ArrayReader": 17 }], 22: [function(v, N, y) {
var d = v("../utils"), f = v("../support"), p = v("./ArrayReader"), o = v("./StringReader"), w = v("./NodeBufferReader"), l = v("./Uint8ArrayReader");
N.exports = function(h) {
var x = d.getTypeOf(h);
return d.checkSupport(x), x === "string" && !f.uint8array ? new o(h) : x === "nodebuffer" ? new w(h) : f.uint8array ? new l(d.transformTo("uint8array", h)) : new p(d.transformTo("array", h));
};
}, { "../support": 30, "../utils": 32, "./ArrayReader": 17, "./NodeBufferReader": 19, "./StringReader": 20, "./Uint8ArrayReader": 21 }], 23: [function(v, N, y) {
y.LOCAL_FILE_HEADER = "PK", y.CENTRAL_FILE_HEADER = "PK", y.CENTRAL_DIRECTORY_END = "PK", y.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x07", y.ZIP64_CENTRAL_DIRECTORY_END = "PK", y.DATA_DESCRIPTOR = "PK\x07\b";
}, {}], 24: [function(v, N, y) {
var d = v("./GenericWorker"), f = v("../utils");
function p(o) {
d.call(this, "ConvertWorker to " + o), this.destType = o;
}
f.inherits(p, d), p.prototype.processChunk = function(o) {
this.push({
data: f.transformTo(this.destType, o.data),
meta: o.meta
});
}, N.exports = p;
}, { "../utils": 32, "./GenericWorker": 28 }], 25: [function(v, N, y) {
var d = v("./GenericWorker"), f = v("../crc32"), p = v("../utils");
function o() {
d.call(this, "Crc32Probe"), this.withStreamInfo("crc32", 0);
}
p.inherits(o, d), o.prototype.processChunk = function(w) {
this.streamInfo.crc32 = f(w.data, this.streamInfo.crc32 || 0), this.push(w);
}, N.exports = o;
}, { "../crc32": 4, "../utils": 32, "./GenericWorker": 28 }], 26: [function(v, N, y) {
var d = v("../utils"), f = v("./GenericWorker");
function p(o) {
f.call(this, "DataLengthProbe for " + o), this.propName = o, this.withStreamInfo(o, 0);
}
d.inherits(p, f), p.prototype.processChunk = function(o) {
if (o) {
var w = this.streamInfo[this.propName] || 0;
this.streamInfo[this.propName] = w + o.data.length;
}
f.prototype.processChunk.call(this, o);
}, N.exports = p;
}, { "../utils": 32, "./GenericWorker": 28 }], 27: [function(v, N, y) {
var d = v("../utils"), f = v("./GenericWorker"), p = 16 * 1024;
function o(w) {
f.call(this, "DataWorker");
var l = this;
this.dataIsReady = !1, this.index = 0, this.max = 0, this.data = null, this.type = "", this._tickScheduled = !1, w.then(function(h) {
l.dataIsReady = !0, l.data = h, l.max = h && h.length || 0, l.type = d.getTypeOf(h), l.isPaused || l._tickAndRepeat();
}, function(h) {
l.error(h);
});
}
d.inherits(o, f), o.prototype.cleanUp = function() {
f.prototype.cleanUp.call(this), this.data = null;
}, o.prototype.resume = function() {
return f.prototype.resume.call(this) ? (!this._tickScheduled && this.dataIsReady && (this._tickScheduled = !0, d.delay(this._tickAndRepeat, [], this)), !0) : !1;
}, o.prototype._tickAndRepeat = function() {
this._tickScheduled = !1, !(this.isPaused || this.isFinished) && (this._tick(), this.isFinished || (d.delay(this._tickAndRepeat, [], this), this._tickScheduled = !0));
}, o.prototype._tick = function() {
if (this.isPaused || this.isFinished)
return !1;
var w = p, l = null, h = Math.min(this.max, this.index + w);
if (this.index >= this.max)
return this.end();
switch (this.type) {
case "string":
l = this.data.substring(this.index, h);
break;
case "uint8array":
l = this.data.subarray(this.index, h);
break;
case "array":
case "nodebuffer":
l = this.data.slice(this.index, h);
break;
}
return this.index = h, this.push({
data: l,
meta: {
percent: this.max ? this.index / this.max * 100 : 0
}
});
}, N.exports = o;
}, { "../utils": 32, "./GenericWorker": 28 }], 28: [function(v, N, y) {
function d(f) {
this.name = f || "default", this.streamInfo = {}, this.generatedError = null, this.extraStreamInfo = {}, this.isPaused = !0, this.isFinished = !1, this.isLocked = !1, this._listeners = {
data: [],
end: [],
error: []
}, this.previous = null;
}
d.prototype = {
/**
* Push a chunk to the next workers.
* @param {Object} chunk the chunk to push
*/
push: function(f) {
this.emit("data", f);
},
/**
* End the stream.
* @return {Boolean} true if this call ended the worker, false otherwise.
*/
end: function() {
if (this.isFinished)
return !1;
this.flush();
try {
this.emit("end"), this.cleanUp(), this.isFinished = !0;
} catch (f) {
this.emit("error", f);
}
return !0;
},
/**
* End the stream with an error.
* @param {Error} e the error which caused the premature end.
* @return {Boolean} true if this call ended the worker with an error, false otherwise.
*/
error: function(f) {
return this.isFinished ? !1 : (this.isPaused ? this.generatedError = f : (this.isFinished = !0, this.emit("error", f), this.previous && this.previous.error(f), this.cleanUp()), !0);
},
/**
* Add a callback on an event.
* @param {String} name the name of the event (data, end, error)
* @param {Function} listener the function to call when the event is triggered
* @return {GenericWorker} the current object for chainability
*/
on: function(f, p) {
return this._listeners[f].push(p), this;
},
/**
* Clean any references when a worker is ending.
*/
cleanUp: function() {
this.streamInfo = this.generatedError = this.extraStreamInfo = null, this._listeners = [];
},
/**
* Trigger an event. This will call registered callback with the provided arg.
* @param {String} name the name of the event (data, end, error)
* @param {Object} arg the argument to call the callback with.
*/
emit: function(f, p) {
if (this._listeners[f])
for (var o = 0; o < this._listeners[f].length; o++)
this._listeners[f][o].call(this, p);
},
/**
* Chain a worker with an other.
* @param {Worker} next the worker receiving events from the current one.
* @return {worker} the next worker for chainability
*/
pipe: function(f) {
return f.registerPrevious(this);
},
/**
* Same as `pipe` in the other direction.
* Using an API with `pipe(next)` is very easy.
* Implementing the API with the point of view of the next one registering
* a source is easier, see the ZipFileWorker.
* @param {Worker} previous the previous worker, sending events to this one
* @return {Worker} the current worker for chainability
*/
registerPrevious: function(f) {
if (this.isLocked)
throw new Error("The stream '" + this + "' has already been used.");
this.streamInfo = f.streamInfo, this.mergeStreamInfo(), this.previous = f;
var p = this;
return f.on("data", function(o) {
p.processChunk(o);
}), f.on("end", function() {
p.end();
}), f.on("error", function(o) {
p.error(o);
}), this;
},
/**
* Pause the stream so it doesn't send events anymore.
* @return {Boolean} true if this call paused the worker, false otherwise.
*/
pause: function() {
return this.isPaused || this.isFinished ? !1 : (this.isPaused = !0, this.previous && this.previous.pause(), !0);
},
/**
* Resume a paused stream.
* @return {Boolean} true if this call resumed the worker, false otherwise.
*/
resume: function() {
if (!this.isPaused || this.isFinished)
return !1;
this.isPaused = !1;
var f = !1;
return this.generatedError && (this.error(this.generatedError), f = !0), this.previous && this.previous.resume(), !f;
},
/**
* Flush any remaining bytes as the stream is ending.
*/
flush: function() {
},
/**
* Process a chunk. This is usually the method overridden.
* @param {Object} chunk the chunk to process.
*/
processChunk: function(f) {
this.push(f);
},
/**
* Add a key/value to be added in the workers chain streamInfo once activated.
* @param {String} key the key to use
* @param {Object} value the associated value
* @return {Worker} the current worker for chainability
*/
withStreamInfo: function(f, p) {
return this.extraStreamInfo[f] = p, this.mergeStreamInfo(), this;
},
/**
* Merge this worker's streamInfo into the chain's streamInfo.
*/
mergeStreamInfo: function() {
for (var f in this.extraStreamInfo)
Object.prototype.hasOwnProperty.call(this.extraStreamInfo, f) && (this.streamInfo[f] = this.extraStreamInfo[f]);
},
/**
* Lock the stream to prevent further updates on the workers chain.
* After calling this method, all calls to pipe will fail.
*/
lock: function() {
if (this.isLocked)
throw new Error("The stream '" + this + "' has already been used.");
this.isLocked = !0, this.previous && this.previous.lock();
},
/**
*
* Pretty print the workers chain.
*/
toString: function() {
var f = "Worker " + this.name;
return this.previous ? this.previous + " -> " + f : f;
}
}, N.exports = d;
}, {}], 29: [function(v, N, y) {
var d = v("../utils"), f = v("./ConvertWorker"), p = v("./GenericWorker"), o = v("../base64"), w = v("../support"), l = v("../external"), h = null;
if (w.nodestream)
try {
h = v("../nodejs/NodejsStreamOutputAdapter");
} catch {
}
function x(r, n, s) {
switch (r) {
case "blob":
return d.newBlob(d.transformTo("arraybuffer", n), s);
case "base64":
return o.encode(n);
default:
return d.transformTo(r, n);
}
}
function u(r, n) {
var s, b = 0, O = null, c = 0;
for (s = 0; s < n.length; s++)
c += n[s].length;
switch (r) {
case "string":
return n.join("");
case "array":
return Array.prototype.concat.apply([], n);
case "uint8array":
for (O = new Uint8Array(c), s = 0; s < n.length; s++)
O.set(n[s], b), b += n[s].length;
return O;
case "nodebuffer":
return Buffer.concat(n);
default:
throw new Error("concat : unsupported type '" + r + "'");
}
}
function z(r, n) {
return new l.Promise(function(s, b) {
var O = [], c = r._internalType, g = r._outputType, k = r._mimeType;
r.on("data", function(S, R) {
O.push(S), n && n(R);
}).on("error", function(S) {
O = [], b(S);
}).on("end", function() {
try {
var S = x(g, u(c, O), k);
s(S);
} catch (R) {
b(R);
}
O = [];
}).resume();
});
}
function A(r, n, s) {
var b = n;
switch (n) {
case "blob":
case "arraybuffer":
b = "uint8array";
break;
case "base64":
b = "string";
break;
}
try {
this._internalType = b, this._outputType = n, this._mimeType = s, d.checkSupport(b), this._worker = r.pipe(new f(b)), r.lock();
} catch (O) {
this._worker = new p("error"), this._worker.error(O);
}
}
A.prototype = {
/**
* Listen a StreamHelper, accumulate its content and concatenate it into a
* complete block.
* @param {Function} updateCb the update callback.
* @return Promise the promise for the accumulation.
*/
accumulate: function(r) {
return z(this, r);
},
/**
* Add a listener on an event triggered on a stream.
* @param {String} evt the name of the event
* @param {Function} fn the listener
* @return {StreamHelper} the current helper.
*/
on: function(r, n) {
var s = this;
return r === "data" ? this._worker.on(r, function(b) {
n.call(s, b.data, b.meta);
}) : this._worker.on(r, function() {
d.delay(n, arguments, s);
}), this;
},
/**
* Resume the flow of chunks.
* @return {StreamHelper} the current helper.
*/
resume: function() {
return d.delay(this._worker.resume, [], this._worker), this;
},
/**
* Pause the flow of chunks.
* @return {StreamHelper} the current helper.
*/
pause: function() {
return this._worker.pause(), this;
},
/**
* Return a nodejs stream for this helper.
* @param {Function} updateCb the update callback.
* @return {NodejsStreamOutputAdapter} the nodejs stream.
*/
toNodejsStream: function(r) {
if (d.checkSupport("nodestream"), this._outputType !== "nodebuffer")
throw new Error(this._outputType + " is not supported by this method");
return new h(this, {
objectMode: this._outputType !== "nodebuffer"
}, r);
}
}, N.exports = A;
}, { "../base64": 1, "../external": 6, "../nodejs/NodejsStreamOutputAdapter": 13, "../support": 30, "../utils": 32, "./ConvertWorker": 24, "./GenericWorker": 28 }], 30: [function(v, N, y) {
if (y.base64 = !0, y.array = !0, y.string = !0, y.arraybuffer = typeof ArrayBuffer < "u" && typeof Uint8Array < "u", y.nodebuffer = typeof Buffer < "u", y.uint8array = typeof Uint8Array < "u", typeof ArrayBuffer > "u")
y.blob = !1;
else {
var d = new ArrayBuffer(0);
try {
y.blob = new Blob([d], {
type: "application/zip"
}).size === 0;
} catch {
try {
var f = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder, p = new f();
p.append(d), y.blob = p.getBlob("application/zip").size === 0;
} catch {
y.blob = !1;
}
}
}
try {
y.nodestream = !!v("readable-stream").Readable;
} catch {
y.nodestream = !1;
}
}, { "readable-stream": 16 }], 31: [function(v, N, y) {
for (var d = v("./utils"), f = v("./support"), p = v("./nodejsUtils"), o = v("./stream/GenericWorker"), w = new Array(256), l = 0; l < 256; l++)
w[l] = l >= 252 ? 6 : l >= 248 ? 5 : l >= 240 ? 4 : l >= 224 ? 3 : l >= 192 ? 2 : 1;
w[254] = w[254] = 1;
var h = function(r) {
var n, s, b, O, c, g = r.length, k = 0;
for (O = 0; O < g; O++)
s = r.charCodeAt(O), (s & 64512) === 55296 && O + 1 < g && (b = r.charCodeAt(O + 1), (b & 64512) === 56320 && (s = 65536 + (s - 55296 << 10) + (b - 56320), O++)), k += s < 128 ? 1 : s < 2048 ? 2 : s < 65536 ? 3 : 4;
for (f.uint8array ? n = new Uint8Array(k) : n = new Array(k), c = 0, O = 0; c < k; O++)
s = r.charCodeAt(O), (s & 64512) === 55296 && O + 1 < g && (b = r.charCodeAt(O + 1), (b & 64512) === 56320 && (s = 65536 + (s - 55296 << 10) + (b - 56320), O++)), s < 128 ? n[c++] = s : s < 2048 ? (n[c++] = 192 | s >>> 6, n[c++] = 128 | s & 63) : s < 65536 ? (n[c++] = 224 | s >>> 12, n[c++] = 128 | s >>> 6 & 63, n[c++] = 128 | s & 63) : (n[c++] = 240 | s >>> 18, n[c++] = 128 | s >>> 12 & 63, n[c++] = 128 | s >>> 6 & 63, n[c++] = 128 | s & 63);
return n;
}, x = function(r, n) {
var s;
for (n = n || r.length, n > r.length && (n = r.length), s = n - 1; s >= 0 && (r[s] & 192) === 128; )
s--;
return s < 0 || s === 0 ? n : s + w[r[s]] > n ? s : n;
}, u = function(r) {
var n, s, b, O, c = r.length, g = new Array(c * 2);
for (s = 0, n = 0; n < c; ) {
if (b = r[n++], b < 128) {
g[s++] = b;
continue;
}
if (O = w[b], O > 4) {
g[s++] = 65533, n += O - 1;
continue;
}
for (b &= O === 2 ? 31 : O === 3 ? 15 : 7; O > 1 && n < c; )
b = b << 6 | r[n++] & 63, O--;
if (O > 1) {
g[s++] = 65533;
continue;
}
b < 65536 ? g[s++] = b : (b -= 65536, g[s++] = 55296 | b >> 10 & 1023, g[s++] = 56320 | b & 1023);
}
return g.length !== s && (g.subarray ? g = g.subarray(0, s) : g.length = s), d.applyFromCharCode(g);
};
y.utf8encode = function(n) {
return f.nodebuffer ? p.newBufferFrom(n, "utf-8") : h(n);
}, y.utf8decode = function(n) {
return f.nodebuffer ? d.transformTo("nodebuffer", n).toString("utf-8") : (n = d.transformTo(f.uint8array ? "uint8array" : "array", n), u(n));
};
function z() {
o.call(this, "utf-8 decode"), this.leftOver = null;
}
d.inherits(z, o), z.prototype.processChunk = function(r) {
var n = d.transformTo(f.uint8array ? "uint8array" : "array", r.data);
if (this.leftOver && this.leftOver.length) {
if (f.uint8array) {
var s = n;
n = new Uint8Array(s.length + this.leftOver.length), n.set(this.leftOver, 0), n.set(s, this.leftOver.length);
} else
n = this.leftOver.concat(n);
this.leftOver = null;
}
var b = x(n), O = n;
b !== n.length && (f.uint8array ? (O = n.subarray(0, b), this.leftOver = n.subarray(b, n.length)) : (O = n.slice(0, b), this.leftOver = n.slice(b, n.length))), this.push({
data: y.utf8decode(O),
meta: r.meta
});
}, z.prototype.flush = function() {
this.leftOver && this.leftOver.length && (this.push({
data: y.utf8decode(this.leftOver),
meta: {}
}), this.leftOver = null);
}, y.Utf8DecodeWorker = z;
function A() {
o.call(this, "utf-8 encode");
}
d.inherits(A, o), A.prototype.processChunk = function(r) {
this.push({
data: y.utf8encode(r.data),
meta: r.meta
});
}, y.Utf8EncodeWorker = A;
}, { "./nodejsUtils": 14, "./stream/GenericWorker": 28, "./support": 30, "./utils": 32 }], 32: [function(v, N, y) {
var d = v("./support"), f = v("./base64"), p = v("./nodejsUtils"), o = v("./external");
v("setimmediate");
function w(r) {
var n = null;
return d.uint8array ? n = new Uint8Array(r.length) : n = new Array(r.length), h(r, n);
}
y.newBlob = function(r, n) {
y.checkSupport("blob");
try {
return new Blob([r], {
type: n
});
} catch {
try {
var s = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder, b = new s();
return b.append(r), b.getBlob(n);
} catch {
throw new Error("Bug : can't construct the Blob.");
}
}
};
function l(r) {
return r;
}
function h(r, n) {
for (var s = 0; s < r.length; ++s)
n[s] = r.charCodeAt(s) & 255;
return n;
}
var x = {
/**
* Transform an array of int into a string, chunk by chunk.
* See the performances notes on arrayLikeToString.
* @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
* @param {String} type the type of the array.
* @param {Integer} chunk the chunk size.
* @return {String} the resulting string.
* @throws Error if the chunk is too big for the stack.
*/
stringifyByChunk: function(r, n, s) {
var b = [], O = 0, c = r.length;
if (c <= s)
return String.fromCharCode.apply(null, r);
for (; O < c; )
n === "array" || n === "nodebuffer" ? b.push(String.fromCharCode.apply(null, r.slice(O, Math.min(O + s, c)))) : b.push(String.fromCharCode.apply(null, r.subarray(O, Math.min(O + s, c)))), O += s;
return b.join("");
},
/**
* Call String.fromCharCode on every item in the array.
* This is the naive implementation, which generate A LOT of intermediate string.
* This should be used when everything else fail.
* @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
* @return {String} the result.
*/
stringifyByChar: function(r) {
for (var n = "", s = 0; s < r.length; s++)
n += String.fromCharCode(r[s]);
return n;
},
applyCanBeUsed: {
/**
* true if the browser accepts to use String.fromCharCode on Uint8Array
*/
uint8array: function() {
try {
return d.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1;
} catch {
return !1;
}
}(),
/**
* true if the browser accepts to use String.fromCharCode on nodejs Buffer.
*/
nodebuffer: function() {
try {
return d.nodebuffer && String.fromCharCode.apply(null, p.allocBuffer(1)).length === 1;
} catch {
return !1;
}
}()
}
};
function u(r) {
var n = 65536, s = y.getTypeOf(r), b = !0;
if (s === "uint8array" ? b = x.applyCanBeUsed.uint8array : s === "nodebuffer" && (b = x.applyCanBeUsed.nodebuffer), b)
for (; n > 1; )
try {
return x.stringifyByChunk(r, s, n);
} catch {
n = Math.floor(n / 2);
}
return x.stringifyByChar(r);
}
y.applyFromCharCode = u;
function z(r, n) {
for (var s = 0; s < r.length; s++)
n[s] = r[s];
return n;
}
var A = {};
A.string = {
string: l,
array: function(r) {
return h(r, new Array(r.length));
},
arraybuffer: function(r) {
return A.string.uint8array(r).buffer;
},
uint8array: function(r) {
return h(r, new Uint8Array(r.length));
},
nodebuffer: function(r) {
return h(r, p.allocBuffer(r.length));
}
}, A.array = {
string: u,
array: l,
arraybuffer: function(r) {
return new Uint8Array(r).buffer;
},
uint8array: function(r) {
return new Uint8Array(r);
},
nodebuffer: function(r) {
return p.newBufferFrom(r);
}
}, A.arraybuffer = {
string: function(r) {
return u(new Uint8Array(r));
},
array: function(r) {
return z(new Uint8Array(r), new Array(r.byteLength));
},
arraybuffer: l,
uint8array: function(r) {
return new Uint8Array(r);
},
nodebuffer: function(r) {
return p.newBufferFrom(new Uint8Array(r));
}
}, A.uint8array = {
string: u,
array: function(r) {
return z(r, new Array(r.length));
},
arraybuffer: function(r) {
return r.buffer;
},
uint8array: l,
nodebuffer: function(r) {
return p.newBufferFrom(r);
}
}, A.nodebuffer = {
string: u,
array: function(r) {
return z(r, new Array(r.length));
},
arraybuffer: function(r) {
return A.nodebuffer.uint8array(r).buffer;
},
uint8array: function(r) {
return z(r, new Uint8Array(r.length));
},
nodebuffer: l
}, y.transformTo = function(r, n) {
if (n || (n = ""), !r)
return n;
y.checkSupport(r);
var s = y.getTypeOf(n), b = A[s][r](n);
return b;
}, y.resolve = function(r) {
for (var n = r.split("/"), s = [], b = 0; b < n.length; b++) {
var O = n[b];
O === "." || O === "" && b !== 0 && b !== n.length - 1 || (O === ".." ? s.pop() : s.push(O));
}
return s.join("/");
}, y.getTypeOf = function(r) {
if (typeof r == "string")
return "string";
if (Object.prototype.toString.call(r) === "[object Array]")
return "array";
if (d.nodebuffer && p.isBuffer(r))
return "nodebuffer";
if (d.uint8array && r instanceof Uint8Array)
return "uint8array";
if (d.arraybuffer && r instanceof ArrayBuffer)
return "arraybuffer";
}, y.checkSupport = function(r) {
var n = d[r.toLowerCase()];
if (!n)
throw new Error(r + " is not supported by this platform");
}, y.MAX_VALUE_16BITS = 65535, y.MAX_VALUE_32BITS = -1, y.pretty = function(r) {
var n = "", s, b;
for (b = 0; b < (r || "").length; b++)
s = r.charCodeAt(b), n += "\\x" + (s < 16 ? "0" : "") + s.toString(16).toUpperCase();
return n;
}, y.delay = function(r, n, s) {
setImmediate(function() {
r.apply(s || null, n || []);
});
}, y.inherits = function(r, n) {
var s = function() {
};
s.prototype = n.prototype, r.prototype = new s();
}, y.extend = function() {
var r = {}, n, s;
for (n = 0; n < arguments.length; n++)
for (s in arguments[n])
Object.prototype.hasOwnProperty.call(arguments[n], s) && typeof r[s] > "u" && (r[s] = arguments[n][s]);
return r;
}, y.prepareContent = function(r, n, s, b, O) {
var c = o.Promise.resolve(n).then(function(g) {
var k = d.blob && (g instanceof Blob || ["[object File]", "[object Blob]"].indexOf(Object.prototype.toString.call(g)) !== -1);
return k && typeof FileReader < "u" ? new o.Promise(function(S, R) {
var I = new FileReader();
I.onload = function(P) {
S(P.target.result);
}, I.onerror = function(P) {
R(P.target.error);
}, I.readAsArrayBuffer(g);
}) : g;
});
return c.then(function(g) {
var k = y.getTypeOf(g);
return k ? (k === "arraybuffer" ? g = y.transformTo("uint8array", g) : k === "string" && (O ? g = f.decode(g) : s && b !== !0 && (g = w(g))), g) : o.Promise.reject(
new Error("Can't read the data of '" + r + "'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?")
);
});
};
}, { "./base64": 1, "./external": 6, "./nodejsUtils": 14, "./support": 30, setimmediate: 54 }], 33: [function(v, N, y) {
var d = v("./reader/readerFor"), f = v("./utils"), p = v("./signature"), o = v("./zipEntry"), w = v("./support");
function l(h) {
this.files = [], this.loadOptions = h;
}
l.prototype = {
/**
* Check that the reader is on the specified signature.
* @param {string} expectedSignature the expected signature.
* @throws {Error} if it is an other signature.
*/
checkSignature: function(h) {
if (!this.reader.readAndCheckSignature(h)) {
this.reader.index -= 4;
var x = this.reader.readString(4);
throw new Error("Corrupted zip or bug: unexpected signature (" + f.pretty(x) + ", expected " + f.pretty(h) + ")");
}
},
/**
* Check if the given signature is at the given index.
* @param {number} askedIndex the index to check.
* @param {string} expectedSignature the signature to expect.
* @return {boolean} true if the signature is here, false otherwise.
*/
isSignature: function(h, x) {
var u = this.reader.index;
this.reader.setIndex(h);
var z = this.reader.readString(4), A = z === x;
return this.reader.setIndex(u), A;
},
/**
* Read the end of the central directory.
*/
readBlockEndOfCentral: function() {
this.diskNumber = this.reader.readInt(2), this.diskWithCentralDirStart = this.reader.readInt(2), this.centralDirRecordsOnThisDisk = this.reader.readInt(2), this.centralDirRecords = this.reader.readInt(2), this.centralDirSize = this.reader.readInt(4), this.centralDirOffset = this.reader.readInt(4), this.zipCommentLength = this.reader.readInt(2);
var h = this.reader.readData(this.zipCommentLength), x = w.uint8array ? "uint8array" : "array", u = f.transformTo(x, h);
this.zipComment = this.loadOptions.decodeFileName(u);
},
/**
* Read the end of the Zip 64 central directory.
* Not merged with the method readEndOfCentral :
* The end of central can coexist with its Zip64 brother,
* I don't want to read the wrong number of bytes !
*/
readBlockZip64EndOfCentral: function() {
this.zip64EndOfCentralSize = this.reader.readInt(8), this.reader.skip(4), this.diskNumber = this.reader.readInt(4), this.diskWithCentralDirStart = this.reader.readInt(4), this.centralDirRecordsOnThisDisk = this.reader.readInt(8), this.centralDirRecords = this.reader.readInt(8), this.centralDirSize = this.reader.readInt(8), this.centralDirOffset = this.reader.readInt(8), this.zip64ExtensibleData = {};
for (var h = this.zip64EndOfCentralSize - 44, x = 0, u, z, A; x < h; )
u = this.reader.readInt(2), z = this.reader.readInt(4), A = this.reader.readData(z), this.zip64ExtensibleData[u] = {
id: u,
length: z,
value: A
};
},
/**
* Read the end of the Zip 64 central directory locator.
*/
readBlockZip64EndOfCentralLocator: function() {
if (this.diskWithZip64CentralDirStart = this.reader.readInt(4), this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8), this.disksCount = this.reader.readInt(4), this.disksCount > 1)
throw new Error("Multi-volumes zip are not supported");
},
/**
* Read the local files, based on the offset read in the central part.
*/
readLocalFiles: function() {
var h, x;
for (h = 0; h < this.files.length; h++)
x = this.files[h], this.reader.setIndex(x.localHeaderOffset), this.checkSignature(p.LOCAL_FILE_HEADER), x.readLocalPart(this.reader), x.handleUTF8(), x.processAttributes();
},
/**
* Read the central directory.
*/
readCentralDir: function() {
var h;
for (this.reader.setIndex(this.centralDirOffset); this.reader.readAndCheckSignature(p.CENTRAL_FILE_HEADER); )
h = new o({
zip64: this.zip64
}, this.loadOptions), h.readCentralPart(this.reader), this.files.push(h);
if (this.centralDirRecords !== this.files.length && this.centralDirRecords !== 0 && this.files.length === 0)
throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length);
},
/**
* Read the end of central directory.
*/
readEndOfCentral: function() {
var h = this.reader.lastIndexOfSignature(p.CENTRAL_DIRECTORY_END);
if (h < 0) {
var x = !this.isSignature(0, p.LOCAL_FILE_HEADER);
throw x ? new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html") : new Error("Corrupted zip: can't find end of central directory");
}
this.reader.setIndex(h);
var u = h;
if (this.checkSignature(p.CENTRAL_DIRECTORY_END), this.readBlockEndOfCentral(), this.diskNumber === f.MAX_VALUE_16BITS || this.diskWithCentralDirStart === f.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === f.MAX_VALUE_16BITS || this.centralDirRecords === f.MAX_VALUE_16BITS || this.centralDirSize === f.MAX_VALUE_32BITS || this.centralDirOffset === f.MAX_VALUE_32BITS) {
if (this.zip64 = !0, h = this.reader.lastIndexOfSignature(p.ZIP64_CENTRAL_DIRECTORY_LOCATOR), h < 0)
throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");
if (this.reader.setIndex(h), this.checkSignature(p.ZIP64_CENTRAL_DIRECTORY_LOCATOR), this.readBlockZip64EndOfCentralLocator(), !this.isSignature(this.relativeOffsetEndOfZip64CentralDir, p.ZIP64_CENTRAL_DIRECTORY_END) && (this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(p.ZIP64_CENTRAL_DIRECTORY_END), this.relativeOffsetEndOfZip64CentralDir < 0))
throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");
this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir), this.checkSignature(p.ZIP64_CENTRAL_DIRECTORY_END), this.readBlockZip64EndOfCentral();
}
var z = this.centralDirOffset + this.centralDirSize;
this.zip64 && (z += 20, z += 12 + this.zip64EndOfCentralSize);
var A = u - z;
if (A > 0)
this.isSignature(u, p.CENTRAL_FILE_HEADER) || (this.reader.zero = A);
else if (A < 0)
throw new Error("Corrupted zip: missing " + Math.abs(A) + " bytes.");
},
prepareReader: function(h) {
this.reader = d(h);
},
/**
* Read a zip file and create ZipEntries.
* @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file.
*/
load: function(h) {
this.prepareReader(h), this.readEndOfCentral(), this.readCentralDir(), this.readLocalFiles();
}
}, N.exports = l;
}, { "./reader/readerFor": 22, "./signature": 23, "./support": 30, "./utils": 32, "./zipEntry": 34 }], 34: [function(v, N, y) {
var d = v("./reader/readerFor"), f = v("./utils"), p = v("./compressedObject"), o = v("./crc32"), w = v("./utf8"), l = v("./compressions"), h = v("./support"), x = 0, u = 3, z = function(r) {
for (var n in l)
if (Object.prototype.hasOwnProperty.call(l, n) && l[n].magic === r)
return l[n];
return null;
};
function A(r, n) {
this.options = r, this.loadOptions = n;
}
A.prototype = {
/**
* say if the file is encrypted.
* @return {boolean} true if the file is encrypted, false otherwise.
*/
isEncrypted: function() {
return (this.bitFlag & 1) === 1;
},
/**
* say if the file has utf-8 filename/comment.
* @return {boolean} true if the filename/comment is in utf-8, false otherwise.
*/
useUTF8: function() {
return (this.bitFlag & 2048) === 2048;
},
/**
* Read the local part of a zip file and add the info in this object.
* @param {DataReader} reader the reader to use.
*/
readLocalPart: function(r) {
var n, s;
if (r.skip(22), this.fileNameLength = r.readInt(2), s = r.readInt(2), this.fileName = r.readData(this.fileNameLength), r.skip(s), this.compressedSize === -1 || this.uncompressedSize === -1)
throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");
if (n = z(this.compressionMethod), n === null)
throw new Error("Corrupted zip : compression " + f.pretty(this.compressionMethod) + " unknown (inner file : " + f.transformTo("string", this.fileName) + ")");
this.decompressed = new p(this.compressedSize, this.uncompressedSize, this.crc32, n, r.readData(this.compressedSize));
},
/**
* Read the central part of a zip file and add the info in this object.
* @param {DataReader} reader the reader to use.
*/
readCentralPart: function(r) {
this.versionMadeBy = r.readInt(2), r.skip(2), this.bitFlag = r.readInt(2), this.compressionMethod = r.readString(2), this.date = r.readDate(), this.crc32 = r.readInt(4), this.compressedSize = r.readInt(4), this.uncompressedSize = r.readInt(4);
var n = r.readInt(2);
if (this.extraFieldsLength = r.readInt(2), this.fileCommentLength = r.readInt(2), this.diskNumberStart = r.readInt(2), this.internalFileAttributes = r.readInt(2), this.externalFileAttributes = r.readInt(4), this.localHeaderOffset = r.readInt(4), this.isEncrypted())
throw new Error("Encrypted zip are not supported");
r.skip(n), this.readExtraFields(r), this.parseZIP64ExtraField(r), this.fileComment = r.readData(this.fileCommentLength);
},
/**
* Parse the external file attributes and get the unix/dos permissions.
*/
processAttributes: function() {
this.unixPermissions = null, this.dosPermissions = null;
var r = this.versionMadeBy >> 8;
this.dir = !!(this.externalFileAttributes & 16), r === x && (this.dosPermissions = this.externalFileAttributes & 63), r === u && (this.unixPermissions = this.externalFileAttributes >> 16 & 65535), !this.dir && this.fileNameStr.slice(-1) === "/" && (this.dir = !0);
},
/**
* Parse the ZIP64 extra field and merge the info in the current ZipEntry.
* @param {DataReader} reader the reader to use.
*/
parseZIP64ExtraField: function() {
if (this.extraFields[1]) {
var r = d(this.extraFields[1].value);
this.uncompressedSize === f.MAX_VALUE_32BITS && (this.uncompressedSize = r.readInt(8)), this.compressedSize === f.MAX_VALUE_32BITS && (this.compressedSize = r.readInt(8)), this.localHeaderOffset === f.MAX_VALUE_32BITS && (this.localHeaderOffset = r.readInt(8)), this.diskNumberStart === f.MAX_VALUE_32BITS && (this.diskNumberStart = r.readInt(4));
}
},
/**
* Read the central part of a zip file and add the info in this object.
* @param {DataReader} reader the reader to use.
*/
readExtraFields: function(r) {
var n = r.index + this.extraFieldsLength, s, b, O;
for (this.extraFields || (this.extraFields = {}); r.index + 4 < n; )
s = r.readInt(2), b = r.readInt(2), O = r.readData(b), this.extraFields[s] = {
id: s,
length: b,
value: O
};
r.setIndex(n);
},
/**
* Apply an UTF8 transformation if needed.
*/
handleUTF8: function() {
var r = h.uint8array ? "uint8array" : "array";
if (this.useUTF8())
this.fileNameStr = w.utf8decode(this.fileName), this.fileCommentStr = w.utf8decode(this.fileComment);
else {
var n = this.findExtraFieldUnicodePath();
if (n !== null)
this.fileNameStr = n;
else {
var s = f.transformTo(r, this.fileName);
this.fileNameStr = this.loadOptions.decodeFileName(s);
}
var b = this.findExtraFieldUnicodeComment();
if (b !== null)
this.fileCommentStr = b;
else {
var O = f.transformTo(r, this.fileComment);
this.fileCommentStr = this.loadOptions.decodeFileName(O);
}
}
},
/**
* Find the unicode path declared in the extra field, if any.
* @return {String} the unicode path, null otherwise.
*/
findExtraFieldUnicodePath: function() {
var r = this.extraFields[28789];
if (r) {
var n = d(r.value);
return n.readInt(1) !== 1 || o(this.fileName) !== n.readInt(4) ? null : w.utf8decode(n.readData(r.length - 5));
}
return null;
},
/**
* Find the unicode comment declared in the extra field, if any.
* @return {String} the unicode comment, null otherwise.
*/
findExtraFieldUnicodeComment: function() {
var r = this.extraFields[25461];
if (r) {
var n = d(r.value);
return n.readInt(1) !== 1 || o(this.fileComment) !== n.readInt(4) ? null : w.utf8decode(n.readData(r.length - 5));
}
return null;
}
}, N.exports = A;
}, { "./compressedObject": 2, "./compressions": 3, "./crc32": 4, "./reader/readerFor": 22, "./support": 30, "./utf8": 31, "./utils": 32 }], 35: [function(v, N, y) {
var d = v("./stream/StreamHelper"), f = v("./stream/DataWorker"), p = v("./utf8"), o = v("./compressedObject"), w = v("./stream/GenericWorker"), l = function(z, A, r) {
this.name = z, this.dir = r.dir, this.date = r.date, this.comment = r.comment, this.unixPermissions = r.unixPermissions, this.dosPermissions = r.dosPermissions, this._data = A, this._dataBinary = r.binary, this.options = {
compression: r.compression,
compressionOptions: r.compressionOptions
};
};
l.prototype = {
/**
* Create an internal stream for the content of this object.
* @param {String} type the type of each chunk.
* @return StreamHelper the stream.
*/
internalStream: function(z) {
var A = null, r = "string";
try {
if (!z)
throw new Error("No output type specified.");
r = z.toLowerCase();
var n = r === "string" || r === "text";
(r === "binarystring" || r === "text") && (r = "string"), A = this._decompressWorker();
var s = !this._dataBinary;
s && !n && (A = A.pipe(new p.Utf8EncodeWorker())), !s && n && (A = A.pipe(new p.Utf8DecodeWorker()));
} catch (b) {
A = new w("error"), A.error(b);
}
return new d(A, r, "");
},
/**
* Prepare the content in the asked type.
* @param {String} type the type of the result.
* @param {Function} onUpdate a function to call on each internal update.
* @return Promise the promise of the result.
*/
async: function(z, A) {
return this.internalStream(z).accumulate(A);
},
/**
* Prepare the content as a nodejs stream.
* @param {String} type the type of each chunk.
* @param {Function} onUpdate a function to call on each internal update.
* @return Stream the stream.
*/
nodeStream: function(z, A) {
return this.internalStream(z || "nodebuffer").toNodejsStream(A);
},
/**
* Return a worker for the compressed content.
* @private
* @param {Object} compression the compression object to use.
* @param {Object} compressionOptions the options to use when compressing.
* @return Worker the worker.
*/
_compressWorker: function(z, A) {
if (this._data instanceof o && this._data.compression.magic === z.magic)
return this._data.getCompressedWorker();
var r = this._decompressWorker();
return this._dataBinary || (r = r.pipe(new p.Utf8EncodeWorker())), o.createWorkerFrom(r, z, A);
},
/**
* Return a worker for the decompressed content.
* @private
* @return Worker the worker.
*/
_decompressWorker: function() {
return this._data instanceof o ? this._data.getContentWorker() : this._data instanceof w ? this._data : new f(this._data);
}
};
for (var h = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"], x = function() {
throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
}, u = 0; u < h.length; u++)
l.prototype[h[u]] = x;
N.exports = l;
}, { "./compressedObject": 2, "./stream/DataWorker": 27, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31 }], 36: [function(v, N, y) {
(function(d) {
var f = d.MutationObserver || d.WebKitMutationObserver, p;
if (f) {
var o = 0, w = new f(z), l = d.document.createTextNode("");
w.observe(l, {
characterData: !0
}), p = function() {
l.data = o = ++o % 2;
};
} else if (!d.setImmediate && typeof d.MessageChannel < "u") {
var h = new d.MessageChannel();
h.port1.onmessage = z, p = function() {
h.port2.postMessage(0);
};
} else "document" in d && "onreadystatechange" in d.document.createElement("script") ? p = function() {
var r = d.document.createElement("script");
r.onreadystatechange = function() {
z(), r.onreadystatechange = null, r.parentNode.removeChild(r), r = null;
}, d.document.documentElement.appendChild(r);
} : p = function() {
setTimeout(z, 0);
};
var x, u = [];
function z() {
x = !0;
for (var r, n, s = u.length; s; ) {
for (n = u, u = [], r = -1; ++r < s; )
n[r]();
s = u.length;
}
x = !1;
}
N.exports = A;
function A(r) {
u.push(r) === 1 && !x && p();
}
}).call(this, typeof Xe < "u" ? Xe : typeof self < "u" ? self : typeof window < "u" ? window : {});
}, {}], 37: [function(v, N, y) {
var d = v("immediate");
function f() {
}
var p = {}, o = ["REJECTED"], w = ["FULFILLED"], l = ["PENDING"];
N.exports = h;
function h(c) {
if (typeof c != "function")
throw new TypeError("resolver must be a function");
this.state = l, this.queue = [], this.outcome = void 0, c !== f && A(this, c);
}
h.prototype.finally = function(c) {
if (typeof c != "function")
return this;
var g = this.constructor;
return this.then(k, S);
function k(R) {
function I() {
return R;
}
return g.resolve(c()).then(I);
}
function S(R) {
function I() {
throw R;
}
return g.resolve(c()).then(I);
}
}, h.prototype.catch = function(c) {
return this.then(null, c);
}, h.prototype.then = function(c, g) {
if (typeof c != "function" && this.state === w || typeof g != "function" && this.state === o)
return this;
var k = new this.constructor(f);
if (this.state !== l) {
var S = this.state === w ? c : g;
u(k, S, this.outcome);
} else
this.queue.push(new x(k, c, g));
return k;
};
function x(c, g, k) {
this.promise = c, typeof g == "function" && (this.onFulfilled = g, this.callFulfilled = this.otherCallFulfilled), typeof k == "function" && (this.onRejected = k, this.callRejected = this.otherCallRejected);
}
x.prototype.callFulfilled = function(c) {
p.resolve(this.promise, c);
}, x.prototype.otherCallFulfilled = function(c) {
u(this.promise, this.onFulfilled, c);
}, x.prototype.callRejected = function(c) {
p.reject(this.promise, c);
}, x.prototype.otherCallRejected = function(c) {
u(this.promise, this.onRejected, c);
};
function u(c, g, k) {
d(function() {
var S;
try {
S = g(k);
} catch (R) {
return p.reject(c, R);
}
S === c ? p.reject(c, new TypeError("Cannot resolve promise with itself")) : p.resolve(c, S);
});
}
p.resolve = function(c, g) {
var k = r(z, g);
if (k.status === "error")
return p.reject(c, k.value);
var S = k.value;
if (S)
A(c, S);
else {
c.state = w, c.outcome = g;
for (var R = -1, I = c.queue.length; ++R < I; )
c.queue[R].callFulfilled(g);
}
return c;
}, p.reject = function(c, g) {
c.state = o, c.outcome = g;
for (var k = -1, S = c.queue.length; ++k < S; )
c.queue[k].callRejected(g);
return c;
};
function z(c) {
var g = c && c.then;
if (c && (typeof c == "object" || typeof c == "function") && typeof g == "function")
return function() {
g.apply(c, arguments);
};
}
function A(c, g) {
var k = !1;
function S(L) {
k || (k = !0, p.reject(c, L));
}
function R(L) {
k || (k = !0, p.resolve(c, L));
}
function I() {
g(R, S);
}
var P = r(I);
P.status === "error" && S(P.value);
}
function r(c, g) {
var k = {};
try {
k.value = c(g), k.status = "success";
} catch (S) {
k.status = "error", k.value = S;
}
return k;
}
h.resolve = n;
function n(c) {
return c instanceof this ? c : p.resolve(new this(f), c);
}
h.reject = s;
function s(c) {
var g = new this(f);
return p.reject(g, c);
}
h.all = b;
function b(c) {
var g = this;
if (Object.prototype.toString.call(c) !== "[object Array]")
return this.reject(new TypeError("must be an array"));
var k = c.length, S = !1;
if (!k)
return this.resolve([]);
for (var R = new Array(k), I = 0, P = -1, L = new this(f); ++P < k; )
G(c[P], P);
return L;
function G(J, X) {
g.resolve(J).then(te, function(V) {
S || (S = !0, p.reject(L, V));
});
function te(V) {
R[X] = V, ++I === k && !S && (S = !0, p.resolve(L, R));
}
}
}
h.race = O;
function O(c) {
var g = this;
if (Object.prototype.toString.call(c) !== "[object Array]")
return this.reject(new TypeError("must be an array"));
var k = c.length, S = !1;
if (!k)
return this.resolve([]);
for (var R = -1, I = new this(f); ++R < k; )
P(c[R]);
return I;
function P(L) {
g.resolve(L).then(function(G) {
S || (S = !0, p.resolve(I, G));
}, function(G) {
S || (S = !0, p.reject(I, G));
});
}
}
}, { immediate: 36 }], 38: [function(v, N, y) {
var d = v("./lib/utils/common").assign, f = v("./lib/deflate"), p = v("./lib/inflate"), o = v("./lib/zlib/constants"), w = {};
d(w, f, p, o), N.exports = w;
}, { "./lib/deflate": 39, "./lib/inflate": 40, "./lib/utils/common": 41, "./lib/zlib/constants": 44 }], 39: [function(v, N, y) {
var d = v("./zlib/deflate"), f = v("./utils/common"), p = v("./utils/strings"), o = v("./zlib/messages"), w = v("./zlib/zstream"), l = Object.prototype.toString, h = 0, x = 4, u = 0, z = 1, A = 2, r = -1, n = 0, s = 8;
function b(k) {
if (!(this instanceof b)) return new b(k);
this.options = f.assign({
level: r,
method: s,
chunkSize: 16384,
windowBits: 15,
memLevel: 8,
strategy: n,
to: ""
}, k || {});
var S = this.options;
S.raw && S.windowBits > 0 ? S.windowBits = -S.windowBits : S.gzip && S.windowBits > 0 && S.windowBits < 16 && (S.windowBits += 16), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new w(), this.strm.avail_out = 0;
var R = d.deflateInit2(
this.strm,
S.level,
S.method,
S.windowBits,
S.memLevel,
S.strategy
);
if (R !== u)
throw new Error(o[R]);
if (S.header && d.deflateSetHeader(this.strm, S.header), S.dictionary) {
var I;
if (typeof S.dictionary == "string" ? I = p.string2buf(S.dictionary) : l.call(S.dictionary) === "[object ArrayBuffer]" ? I = new Uint8Array(S.dictionary) : I = S.dictionary, R = d.deflateSetDictionary(this.strm, I), R !== u)
throw new Error(o[R]);
this._dict_set = !0;
}
}
b.prototype.push = function(k, S) {
var R = this.strm, I = this.options.chunkSize, P, L;
if (this.ended)
return !1;
L = S === ~~S ? S : S === !0 ? x : h, typeof k == "string" ? R.input = p.string2buf(k) : l.call(k) === "[object ArrayBuffer]" ? R.input = new Uint8Array(k) : R.input = k, R.next_in = 0, R.avail_in = R.input.length;
do {
if (R.avail_out === 0 && (R.output = new f.Buf8(I), R.next_out = 0, R.avail_out = I), P = d.deflate(R, L), P !== z && P !== u)
return this.onEnd(P), this.ended = !0, !1;
(R.avail_out === 0 || R.avail_in === 0 && (L === x || L === A)) && (this.options.to === "string" ? this.onData(p.buf2binstring(f.shrinkBuf(R.output, R.next_out))) : this.onData(f.shrinkBuf(R.output, R.next_out)));
} while ((R.avail_in > 0 || R.avail_out === 0) && P !== z);
return L === x ? (P = d.deflateEnd(this.strm), this.onEnd(P), this.ended = !0, P === u) : (L === A && (this.onEnd(u), R.avail_out = 0), !0);
}, b.prototype.onData = function(k) {
this.chunks.push(k);
}, b.prototype.onEnd = function(k) {
k === u && (this.options.to === "string" ? this.result = this.chunks.join("") : this.result = f.flattenChunks(this.chunks)), this.chunks = [], this.err = k, this.msg = this.strm.msg;
};
function O(k, S) {
var R = new b(S);
if (R.push(k, !0), R.err)
throw R.msg || o[R.err];
return R.result;
}
function c(k, S) {
return S = S || {}, S.raw = !0, O(k, S);
}
function g(k, S) {
return S = S || {}, S.gzip = !0, O(k, S);
}
y.Deflate = b, y.deflate = O, y.deflateRaw = c, y.gzip = g;
}, { "./utils/common": 41, "./utils/strings": 42, "./zlib/deflate": 46, "./zlib/messages": 51, "./zlib/zstream": 53 }], 40: [function(v, N, y) {
var d = v("./zlib/inflate"), f = v("./utils/common"), p = v("./utils/strings"), o = v("./zlib/constants"), w = v("./zlib/messages"), l = v("./zlib/zstream"), h = v("./zlib/gzheader"), x = Object.prototype.toString;
function u(r) {
if (!(this instanceof u)) return new u(r);
this.options = f.assign({
chunkSize: 16384,
windowBits: 0,
to: ""
}, r || {});
var n = this.options;
n.raw && n.windowBits >= 0 && n.windowBits < 16 && (n.windowBits = -n.windowBits, n.windowBits === 0 && (n.windowBits = -15)), n.windowBits >= 0 && n.windowBits < 16 && !(r && r.windowBits) && (n.windowBits += 32), n.windowBits > 15 && n.windowBits < 48 && (n.windowBits & 15 || (n.windowBits |= 15)), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new l(), this.strm.avail_out = 0;
var s = d.inflateInit2(
this.strm,
n.windowBits
);
if (s !== o.Z_OK)
throw new Error(w[s]);
this.header = new h(), d.inflateGetHeader(this.strm, this.header);
}
u.prototype.push = function(r, n) {
var s = this.strm, b = this.options.chunkSize, O = this.options.dictionary, c, g, k, S, R, I, P = !1;
if (this.ended)
return !1;
g = n === ~~n ? n : n === !0 ? o.Z_FINISH : o.Z_NO_FLUSH, typeof r == "string" ? s.input = p.binstring2buf(r) : x.call(r) === "[object ArrayBuffer]" ? s.input = new Uint8Array(r) : s.input = r, s.next_in = 0, s.avail_in = s.input.length;
do {
if (s.avail_out === 0 && (s.output = new f.Buf8(b), s.next_out = 0, s.avail_out = b), c = d.inflate(s, o.Z_NO_FLUSH), c === o.Z_NEED_DICT && O && (typeof O == "string" ? I = p.string2buf(O) : x.call(O) === "[object ArrayBuffer]" ? I = new Uint8Array(O) : I = O, c = d.inflateSetDictionary(this.strm, I)), c === o.Z_BUF_ERROR && P === !0 && (c = o.Z_OK, P = !1), c !== o.Z_STREAM_END && c !== o.Z_OK)
return this.onEnd(c), this.ended = !0, !1;
s.next_out && (s.avail_out === 0 || c === o.Z_STREAM_END || s.avail_in === 0 && (g === o.Z_FINISH || g === o.Z_SYNC_FLUSH)) && (this.options.to === "string" ? (k = p.utf8border(s.output, s.next_out), S = s.next_out - k, R = p.buf2string(s.output, k), s.next_out = S, s.avail_out = b - S, S && f.arraySet(s.output, s.output, k, S, 0), this.onData(R)) : this.onData(f.shrinkBuf(s.output, s.next_out))), s.avail_in === 0 && s.avail_out === 0 && (P = !0);
} while ((s.avail_in > 0 || s.avail_out === 0) && c !== o.Z_STREAM_END);
return c === o.Z_STREAM_END && (g = o.Z_FINISH), g === o.Z_FINISH ? (c = d.inflateEnd(this.strm), this.onEnd(c), this.ended = !0, c === o.Z_OK) : (g === o.Z_SYNC_FLUSH && (this.onEnd(o.Z_OK), s.avail_out = 0), !0);
}, u.prototype.onData = function(r) {
this.chunks.push(r);
}, u.prototype.onEnd = function(r) {
r === o.Z_OK && (this.options.to === "string" ? this.result = this.chunks.join("") : this.result = f.flattenChunks(this.chunks)), this.chunks = [], this.err = r, this.msg = this.strm.msg;
};
function z(r, n) {
var s = new u(n);
if (s.push(r, !0), s.err)
throw s.msg || w[s.err];
return s.result;
}
function A(r, n) {
return n = n || {}, n.raw = !0, z(r, n);
}
y.Inflate = u, y.inflate = z, y.inflateRaw = A, y.ungzip = z;
}, { "./utils/common": 41, "./utils/strings": 42, "./zlib/constants": 44, "./zlib/gzheader": 47, "./zlib/inflate": 49, "./zlib/messages": 51, "./zlib/zstream": 53 }], 41: [function(v, N, y) {
var d = typeof Uint8Array < "u" && typeof Uint16Array < "u" && typeof Int32Array < "u";
y.assign = function(o) {
for (var w = Array.prototype.slice.call(arguments, 1); w.length; ) {
var l = w.shift();
if (l) {
if (typeof l != "object")
throw new TypeError(l + "must be non-object");
for (var h in l)
l.hasOwnProperty(h) && (o[h] = l[h]);
}
}
return o;
}, y.shrinkBuf = function(o, w) {
return o.length === w ? o : o.subarray ? o.subarray(0, w) : (o.length = w, o);
};
var f = {
arraySet: function(o, w, l, h, x) {
if (w.subarray && o.subarray) {
o.set(w.subarray(l, l + h), x);
return;
}
for (var u = 0; u < h; u++)
o[x + u] = w[l + u];
},
// Join array of chunks to single array.
flattenChunks: function(o) {
var w, l, h, x, u, z;
for (h = 0, w = 0, l = o.length; w < l; w++)
h += o[w].length;
for (z = new Uint8Array(h), x = 0, w = 0, l = o.length; w < l; w++)
u = o[w], z.set(u, x), x += u.length;
return z;
}
}, p = {
arraySet: function(o, w, l, h, x) {
for (var u = 0; u < h; u++)
o[x + u] = w[l + u];
},
// Join array of chunks to single array.
flattenChunks: function(o) {
return [].concat.apply([], o);
}
};
y.setTyped = function(o) {
o ? (y.Buf8 = Uint8Array, y.Buf16 = Uint16Array, y.Buf32 = Int32Array, y.assign(y, f)) : (y.Buf8 = Array, y.Buf16 = Array, y.Buf32 = Array, y.assign(y, p));
}, y.setTyped(d);
}, {}], 42: [function(v, N, y) {
var d = v("./common"), f = !0, p = !0;
try {
String.fromCharCode.apply(null, [0]);
} catch {
f = !1;
}
try {
String.fromCharCode.apply(null, new Uint8Array(1));
} catch {
p = !1;
}
for (var o = new d.Buf8(256), w = 0; w < 256; w++)
o[w] = w >= 252 ? 6 : w >= 248 ? 5 : w >= 240 ? 4 : w >= 224 ? 3 : w >= 192 ? 2 : 1;
o[254] = o[254] = 1, y.string2buf = function(h) {
var x, u, z, A, r, n = h.length, s = 0;
for (A = 0; A < n; A++)
u = h.charCodeAt(A), (u & 64512) === 55296 && A + 1 < n && (z = h.charCodeAt(A + 1), (z & 64512) === 56320 && (u = 65536 + (u - 55296 << 10) + (z - 56320), A++)), s += u < 128 ? 1 : u < 2048 ? 2 : u < 65536 ? 3 : 4;
for (x = new d.Buf8(s), r = 0, A = 0; r < s; A++)
u = h.charCodeAt(A), (u & 64512) === 55296 && A + 1 < n && (z = h.charCodeAt(A + 1), (z & 64512) === 56320 && (u = 65536 + (u - 55296 << 10) + (z - 56320), A++)), u < 128 ? x[r++] = u : u < 2048 ? (x[r++] = 192 | u >>> 6, x[r++] = 128 | u & 63) : u < 65536 ? (x[r++] = 224 | u >>> 12, x[r++] = 128 | u >>> 6 & 63, x[r++] = 128 | u & 63) : (x[r++] = 240 | u >>> 18, x[r++] = 128 | u >>> 12 & 63, x[r++] = 128 | u >>> 6 & 63, x[r++] = 128 | u & 63);
return x;
};
function l(h, x) {
if (x < 65537 && (h.subarray && p || !h.subarray && f))
return String.fromCharCode.apply(null, d.shrinkBuf(h, x));
for (var u = "", z = 0; z < x; z++)
u += String.fromCharCode(h[z]);
return u;
}
y.buf2binstring = function(h) {
return l(h, h.length);
}, y.binstring2buf = function(h) {
for (var x = new d.Buf8(h.length), u = 0, z = x.length; u < z; u++)
x[u] = h.charCodeAt(u);
return x;
}, y.buf2string = function(h, x) {
var u, z, A, r, n = x || h.length, s = new Array(n * 2);
for (z = 0, u = 0; u < n; ) {
if (A = h[u++], A < 128) {
s[z++] = A;
continue;
}
if (r = o[A], r > 4) {
s[z++] = 65533, u += r - 1;
continue;
}
for (A &= r === 2 ? 31 : r === 3 ? 15 : 7; r > 1 && u < n; )
A = A << 6 | h[u++] & 63, r--;
if (r > 1) {
s[z++] = 65533;
continue;
}
A < 65536 ? s[z++] = A : (A -= 65536, s[z++] = 55296 | A >> 10 & 1023, s[z++] = 56320 | A & 1023);
}
return l(s, z);
}, y.utf8border = function(h, x) {
var u;
for (x = x || h.length, x > h.length && (x = h.length), u = x - 1; u >= 0 && (h[u] & 192) === 128; )
u--;
return u < 0 || u === 0 ? x : u + o[h[u]] > x ? u : x;
};
}, { "./common": 41 }], 43: [function(v, N, y) {
function d(f, p, o, w) {
for (var l = f & 65535 | 0, h = f >>> 16 & 65535 | 0, x = 0; o !== 0; ) {
x = o > 2e3 ? 2e3 : o, o -= x;
do
l = l + p[w++] | 0, h = h + l | 0;
while (--x);
l %= 65521, h %= 65521;
}
return l | h << 16 | 0;
}
N.exports = d;
}, {}], 44: [function(v, N, y) {
N.exports = {
/* Allowed flush values; see deflate() and inflate() below for details */
Z_NO_FLUSH: 0,
Z_PARTIAL_FLUSH: 1,
Z_SYNC_FLUSH: 2,
Z_FULL_FLUSH: 3,
Z_FINISH: 4,
Z_BLOCK: 5,
Z_TREES: 6,
/* Return codes for the compression/decompression functions. Negative values
* are errors, positive values are used for special but normal events.
*/
Z_OK: 0,
Z_STREAM_END: 1,
Z_NEED_DICT: 2,
Z_ERRNO: -1,
Z_STREAM_ERROR: -2,
Z_DATA_ERROR: -3,
//Z_MEM_ERROR: -4,
Z_BUF_ERROR: -5,
//Z_VERSION_ERROR: -6,
/* compression levels */
Z_NO_COMPRESSION: 0,
Z_BEST_SPEED: 1,
Z_BEST_COMPRESSION: 9,
Z_DEFAULT_COMPRESSION: -1,
Z_FILTERED: 1,
Z_HUFFMAN_ONLY: 2,
Z_RLE: 3,
Z_FIXED: 4,
Z_DEFAULT_STRATEGY: 0,
/* Possible values of the data_type field (though see inflate()) */
Z_BINARY: 0,
Z_TEXT: 1,
//Z_ASCII: 1, // = Z_TEXT (deprecated)
Z_UNKNOWN: 2,
/* The deflate compression method */
Z_DEFLATED: 8
//Z_NULL: null // Use -1 or null inline, depending on var type
};
}, {}], 45: [function(v, N, y) {
function d() {
for (var o, w = [], l = 0; l < 256; l++) {
o = l;
for (var h = 0; h < 8; h++)
o = o & 1 ? 3988292384 ^ o >>> 1 : o >>> 1;
w[l] = o;
}
return w;
}
var f = d();
function p(o, w, l, h) {
var x = f, u = h + l;
o ^= -1;
for (var z = h; z < u; z++)
o = o >>> 8 ^ x[(o ^ w[z]) & 255];
return o ^ -1;
}
N.exports = p;
}, {}], 46: [function(v, N, y) {
var d = v("../utils/common"), f = v("./trees"), p = v("./adler32"), o = v("./crc32"), w = v("./messages"), l = 0, h = 1, x = 3, u = 4, z = 5, A = 0, r = 1, n = -2, s = -3, b = -5, O = -1, c = 1, g = 2, k = 3, S = 4, R = 0, I = 2, P = 8, L = 9, G = 15, J = 8, X = 29, te = 256, V = te + 1 + X, j = 30, q = 19, fe = 2 * V + 1, ce = 15, Y = 3, se = 258, ie = se + Y + 1, we = 32, me = 42, de = 69, $ = 73, ge = 91, pe = 103, ae = 113, he = 666, ne = 1, xe = 2, Ae = 3, Te = 4, oe = 3;
function Ee(e, C) {
return e.msg = w[C], C;
}
function We(e) {
return (e << 1) - (e > 4 ? 9 : 0);
}
function Ie(e) {
for (var C = e.length; --C >= 0; )
e[C] = 0;
}
function Ce(e) {
var C = e.state, T = C.pending;
T > e.avail_out && (T = e.avail_out), T !== 0 && (d.arraySet(e.output, C.pending_buf, C.pending_out, T, e.next_out), e.next_out += T, C.pending_out += T, e.total_out += T, e.avail_out -= T, C.pending -= T, C.pending === 0 && (C.pending_out = 0));
}
function le(e, C) {
f._tr_flush_block(e, e.block_start >= 0 ? e.block_start : -1, e.strstart - e.block_start, C), e.block_start = e.strstart, Ce(e.strm);
}
function Q(e, C) {
e.pending_buf[e.pending++] = C;
}
function ze(e, C) {
e.pending_buf[e.pending++] = C >>> 8 & 255, e.pending_buf[e.pending++] = C & 255;
}
function Me(e, C, T, i) {
var _ = e.avail_in;
return _ > i && (_ = i), _ === 0 ? 0 : (e.avail_in -= _, d.arraySet(C, e.input, e.next_in, _, T), e.state.wrap === 1 ? e.adler = p(e.adler, C, _, T) : e.state.wrap === 2 && (e.adler = o(e.adler, C, _, T)), e.next_in += _, e.total_in += _, _);
}
function Ue(e, C) {
var T = e.max_chain_length, i = e.strstart, _, E, H = e.prev_length, Z = e.nice_match, W = e.strstart > e.w_size - ie ? e.strstart - (e.w_size - ie) : 0, ee = e.window, Ne = e.w_mask, ue = e.prev, re = e.strstart + se, ve = ee[i + H - 1], ke = ee[i + H];
e.prev_length >= e.good_match && (T >>= 2), Z > e.lookahead && (Z = e.lookahead);
do
if (_ = C, !(ee[_ + H] !== ke || ee[_ + H - 1] !== ve || ee[_] !== ee[i] || ee[++_] !== ee[i + 1])) {
i += 2, _++;
do
;
while (ee[++i] === ee[++_] && ee[++i] === ee[++_] && ee[++i] === ee[++_] && ee[++i] === ee[++_] && ee[++i] === ee[++_] && ee[++i] === ee[++_] && ee[++i] === ee[++_] && ee[++i] === ee[++_] && i < re);
if (E = se - (re - i), i = re - se, E > H) {
if (e.match_start = C, H = E, E >= Z)
break;
ve = ee[i + H - 1], ke = ee[i + H];
}
}
while ((C = ue[C & Ne]) > W && --T !== 0);
return H <= e.lookahead ? H : e.lookahead;
}
function Oe(e) {
var C = e.w_size, T, i, _, E, H;
do {
if (E = e.window_size - e.lookahead - e.strstart, e.strstart >= C + (C - ie)) {
d.arraySet(e.window, e.window, C, C, 0), e.match_start -= C, e.strstart -= C, e.block_start -= C, i = e.hash_size, T = i;
do
_ = e.head[--T], e.head[T] = _ >= C ? _ - C : 0;
while (--i);
i = C, T = i;
do
_ = e.prev[--T], e.prev[T] = _ >= C ? _ - C : 0;
while (--i);
E += C;
}
if (e.strm.avail_in === 0)
break;
if (i = Me(e.strm, e.window, e.strstart + e.lookahead, E), e.lookahead += i, e.lookahead + e.insert >= Y)
for (H = e.strstart - e.insert, e.ins_h = e.window[H], e.ins_h = (e.ins_h << e.hash_shift ^ e.window[H + 1]) & e.hash_mask; e.insert && (e.ins_h = (e.ins_h << e.hash_shift ^ e.window[H + Y - 1]) & e.hash_mask, e.prev[H & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = H, H++, e.insert--, !(e.lookahead + e.insert < Y)); )
;
} while (e.lookahead < ie && e.strm.avail_in !== 0);
}
function je(e, C) {
var T = 65535;
for (T > e.pending_buf_size - 5 && (T = e.pending_buf_size - 5); ; ) {
if (e.lookahead <= 1) {
if (Oe(e), e.lookahead === 0 && C === l)
return ne;
if (e.lookahead === 0)
break;
}
e.strstart += e.lookahead, e.lookahead = 0;
var i = e.block_start + T;
if ((e.strstart === 0 || e.strstart >= i) && (e.lookahead = e.strstart - i, e.strstart = i, le(e, !1), e.strm.avail_out === 0) || e.strstart - e.block_start >= e.w_size - ie && (le(e, !1), e.strm.avail_out === 0))
return ne;
}
return e.insert = 0, C === u ? (le(e, !0), e.strm.avail_out === 0 ? Ae : Te) : (e.strstart > e.block_start && (le(e, !1), e.strm.avail_out === 0), ne);
}
function Pe(e, C) {
for (var T, i; ; ) {
if (e.lookahead < ie) {
if (Oe(e), e.lookahead < ie && C === l)
return ne;
if (e.lookahead === 0)
break;
}
if (T = 0, e.lookahead >= Y && (e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + Y - 1]) & e.hash_mask, T = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = e.strstart), T !== 0 && e.strstart - T <= e.w_size - ie && (e.match_length = Ue(e, T)), e.match_length >= Y)
if (i = f._tr_tally(e, e.strstart - e.match_start, e.match_length - Y), e.lookahead -= e.match_length, e.match_length <= e.max_lazy_match && e.lookahead >= Y) {
e.match_length--;
do
e.strstart++, e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + Y - 1]) & e.hash_mask, T = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = e.strstart;
while (--e.match_length !== 0);
e.strstart++;
} else
e.strstart += e.match_length, e.match_length = 0, e.ins_h = e.window[e.strstart], e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + 1]) & e.hash_mask;
else
i = f._tr_tally(e, 0, e.window[e.strstart]), e.lookahead--, e.strstart++;
if (i && (le(e, !1), e.strm.avail_out === 0))
return ne;
}
return e.insert = e.strstart < Y - 1 ? e.strstart : Y - 1, C === u ? (le(e, !0), e.strm.avail_out === 0 ? Ae : Te) : e.last_lit && (le(e, !1), e.strm.avail_out === 0) ? ne : xe;
}
function Re(e, C) {
for (var T, i, _; ; ) {
if (e.lookahead < ie) {
if (Oe(e), e.lookahead < ie && C === l)
return ne;
if (e.lookahead === 0)
break;
}
if (T = 0, e.lookahead >= Y && (e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + Y - 1]) & e.hash_mask, T = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = e.strstart), e.prev_length = e.match_length, e.prev_match = e.match_start, e.match_length = Y - 1, T !== 0 && e.prev_length < e.max_lazy_match && e.strstart - T <= e.w_size - ie && (e.match_length = Ue(e, T), e.match_length <= 5 && (e.strategy === c || e.match_length === Y && e.strstart - e.match_start > 4096) && (e.match_length = Y - 1)), e.prev_length >= Y && e.match_length <= e.prev_length) {
_ = e.strstart + e.lookahead - Y, i = f._tr_tally(e, e.strstart - 1 - e.prev_match, e.prev_length - Y), e.lookahead -= e.prev_length - 1, e.prev_length -= 2;
do
++e.strstart <= _ && (e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + Y - 1]) & e.hash_mask, T = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = e.strstart);
while (--e.prev_length !== 0);
if (e.match_available = 0, e.match_length = Y - 1, e.strstart++, i && (le(e, !1), e.strm.avail_out === 0))
return ne;
} else if (e.match_available) {
if (i = f._tr_tally(e, 0, e.window[e.strstart - 1]), i && le(e, !1), e.strstart++, e.lookahead--, e.strm.avail_out === 0)
return ne;
} else
e.match_available = 1, e.strstart++, e.lookahead--;
}
return e.match_available && (i = f._tr_tally(e, 0, e.window[e.strstart - 1]), e.match_available = 0), e.insert = e.strstart < Y - 1 ? e.strstart : Y - 1, C === u ? (le(e, !0), e.strm.avail_out === 0 ? Ae : Te) : e.last_lit && (le(e, !1), e.strm.avail_out === 0) ? ne : xe;
}
function He(e, C) {
for (var T, i, _, E, H = e.window; ; ) {
if (e.lookahead <= se) {
if (Oe(e), e.lookahead <= se && C === l)
return ne;
if (e.lookahead === 0)
break;
}
if (e.match_length = 0, e.lookahead >= Y && e.strstart > 0 && (_ = e.strstart - 1, i = H[_], i === H[++_] && i === H[++_] && i === H[++_])) {
E = e.strstart + se;
do
;
while (i === H[++_] && i === H[++_] && i === H[++_] && i === H[++_] && i === H[++_] && i === H[++_] && i === H[++_] && i === H[++_] && _ < E);
e.match_length = se - (E - _), e.match_length > e.lookahead && (e.match_length = e.lookahead);
}
if (e.match_length >= Y ? (T = f._tr_tally(e, 1, e.match_length - Y), e.lookahead -= e.match_length, e.strstart += e.match_length, e.match_length = 0) : (T = f._tr_tally(e, 0, e.window[e.strstart]), e.lookahead--, e.strstart++), T && (le(e, !1), e.strm.avail_out === 0))
return ne;
}
return e.insert = 0, C === u ? (le(e, !0), e.strm.avail_out === 0 ? Ae : Te) : e.last_lit && (le(e, !1), e.strm.avail_out === 0) ? ne : xe;
}
function Ze(e, C) {
for (var T; ; ) {
if (e.lookahead === 0 && (Oe(e), e.lookahead === 0)) {
if (C === l)
return ne;
break;
}
if (e.match_length = 0, T = f._tr_tally(e, 0, e.window[e.strstart]), e.lookahead--, e.strstart++, T && (le(e, !1), e.strm.avail_out === 0))
return ne;
}
return e.insert = 0, C === u ? (le(e, !0), e.strm.avail_out === 0 ? Ae : Te) : e.last_lit && (le(e, !1), e.strm.avail_out === 0) ? ne : xe;
}
function ye(e, C, T, i, _) {
this.good_length = e, this.max_lazy = C, this.nice_length = T, this.max_chain = i, this.func = _;
}
var Fe;
Fe = [
/* good lazy nice chain */
new ye(0, 0, 0, 0, je),
/* 0 store only */
new ye(4, 4, 8, 4, Pe),
/* 1 max speed, no lazy matches */
new ye(4, 5, 16, 8, Pe),
/* 2 */
new ye(4, 6, 32, 32, Pe),
/* 3 */
new ye(4, 4, 16, 16, Re),
/* 4 lazy matches */
new ye(8, 16, 32, 32, Re),
/* 5 */
new ye(8, 16, 128, 128, Re),
/* 6 */
new ye(8, 32, 128, 256, Re),
/* 7 */
new ye(32, 128, 258, 1024, Re),
/* 8 */
new ye(32, 258, 258, 4096, Re)
/* 9 max compression */
];
function Ge(e) {
e.window_size = 2 * e.w_size, Ie(e.head), e.max_lazy_match = Fe[e.level].max_lazy, e.good_match = Fe[e.level].good_length, e.nice_match = Fe[e.level].nice_length, e.max_chain_length = Fe[e.level].max_chain, e.strstart = 0, e.block_start = 0, e.lookahead = 0, e.insert = 0, e.match_length = e.prev_length = Y - 1, e.match_available = 0, e.ins_h = 0;
}
function a() {
this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = P, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new d.Buf16(fe * 2), this.dyn_dtree = new d.Buf16((2 * j + 1) * 2), this.bl_tree = new d.Buf16((2 * q + 1) * 2), Ie(this.dyn_ltree), Ie(this.dyn_dtree), Ie(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new d.Buf16(ce + 1), this.heap = new d.Buf16(2 * V + 1), Ie(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new d.Buf16(2 * V + 1), Ie(this.depth), this.l_buf = 0, this.lit_bufsize = 0, this.last_lit = 0, this.d_buf = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0;
}
function F(e) {
var C;
return !e || !e.state ? Ee(e, n) : (e.total_in = e.total_out = 0, e.data_type = I, C = e.state, C.pending = 0, C.pending_out = 0, C.wrap < 0 && (C.wrap = -C.wrap), C.status = C.wrap ? me : ae, e.adler = C.wrap === 2 ? 0 : 1, C.last_flush = l, f._tr_init(C), A);
}
function U(e) {
var C = F(e);
return C === A && Ge(e.state), C;
}
function M(e, C) {
return !e || !e.state || e.state.wrap !== 2 ? n : (e.state.gzhead = C, A);
}
function m(e, C, T, i, _, E) {
if (!e)
return n;
var H = 1;
if (C === O && (C = 6), i < 0 ? (H = 0, i = -i) : i > 15 && (H = 2, i -= 16), _ < 1 || _ > L || T !== P || i < 8 || i > 15 || C < 0 || C > 9 || E < 0 || E > S)
return Ee(e, n);
i === 8 && (i = 9);
var Z = new a();
return e.state = Z, Z.strm = e, Z.wrap = H, Z.gzhead = null, Z.w_bits = i, Z.w_size = 1 << Z.w_bits, Z.w_mask = Z.w_size - 1, Z.hash_bits = _ + 7, Z.hash_size = 1 << Z.hash_bits, Z.hash_mask = Z.hash_size - 1, Z.hash_shift = ~~((Z.hash_bits + Y - 1) / Y), Z.window = new d.Buf8(Z.w_size * 2), Z.head = new d.Buf16(Z.hash_size), Z.prev = new d.Buf16(Z.w_size), Z.lit_bufsize = 1 << _ + 6, Z.pending_buf_size = Z.lit_bufsize * 4, Z.pending_buf = new d.Buf8(Z.pending_buf_size), Z.d_buf = 1 * Z.lit_bufsize, Z.l_buf = 3 * Z.lit_bufsize, Z.level = C, Z.strategy = E, Z.method = T, U(e);
}
function D(e, C) {
return m(e, C, P, G, J, R);
}
function t(e, C) {
var T, i, _, E;
if (!e || !e.state || C > z || C < 0)
return e ? Ee(e, n) : n;
if (i = e.state, !e.output || !e.input && e.avail_in !== 0 || i.status === he && C !== u)
return Ee(e, e.avail_out === 0 ? b : n);
if (i.strm = e, T = i.last_flush, i.last_flush = C, i.status === me)
if (i.wrap === 2)
e.adler = 0, Q(i, 31), Q(i, 139), Q(i, 8), i.gzhead ? (Q(
i,
(i.gzhead.text ? 1 : 0) + (i.gzhead.hcrc ? 2 : 0) + (i.gzhead.extra ? 4 : 0) + (i.gzhead.name ? 8 : 0) + (i.gzhead.comment ? 16 : 0)
), Q(i, i.gzhead.time & 255), Q(i, i.gzhead.time >> 8 & 255), Q(i, i.gzhead.time >> 16 & 255), Q(i, i.gzhead.time >> 24 & 255), Q(i, i.level === 9 ? 2 : i.strategy >= g || i.level < 2 ? 4 : 0), Q(i, i.gzhead.os & 255), i.gzhead.extra && i.gzhead.extra.length && (Q(i, i.gzhead.extra.length & 255), Q(i, i.gzhead.extra.length >> 8 & 255)), i.gzhead.hcrc && (e.adler = o(e.adler, i.pending_buf, i.pending, 0)), i.gzindex = 0, i.status = de) : (Q(i, 0), Q(i, 0), Q(i, 0), Q(i, 0), Q(i, 0), Q(i, i.level === 9 ? 2 : i.strategy >= g || i.level < 2 ? 4 : 0), Q(i, oe), i.status = ae);
else {
var H = P + (i.w_bits - 8 << 4) << 8, Z = -1;
i.strategy >= g || i.level < 2 ? Z = 0 : i.level < 6 ? Z = 1 : i.level === 6 ? Z = 2 : Z = 3, H |= Z << 6, i.strstart !== 0 && (H |= we), H += 31 - H % 31, i.status = ae, ze(i, H), i.strstart !== 0 && (ze(i, e.adler >>> 16), ze(i, e.adler & 65535)), e.adler = 1;
}
if (i.status === de)
if (i.gzhead.extra) {
for (_ = i.pending; i.gzindex < (i.gzhead.extra.length & 65535) && !(i.pending === i.pending_buf_size && (i.gzhead.hcrc && i.pending > _ && (e.adler = o(e.adler, i.pending_buf, i.pending - _, _)), Ce(e), _ = i.pending, i.pending === i.pending_buf_size)); )
Q(i, i.gzhead.extra[i.gzindex] & 255), i.gzindex++;
i.gzhead.hcrc && i.pending > _ && (e.adler = o(e.adler, i.pending_buf, i.pending - _, _)), i.gzindex === i.gzhead.extra.length && (i.gzindex = 0, i.status = $);
} else
i.status = $;
if (i.status === $)
if (i.gzhead.name) {
_ = i.pending;
do {
if (i.pending === i.pending_buf_size && (i.gzhead.hcrc && i.pending > _ && (e.adler = o(e.adler, i.pending_buf, i.pending - _, _)), Ce(e), _ = i.pending, i.pending === i.pending_buf_size)) {
E = 1;
break;
}
i.gzindex < i.gzhead.name.length ? E = i.gzhead.name.charCodeAt(i.gzindex++) & 255 : E = 0, Q(i, E);
} while (E !== 0);
i.gzhead.hcrc && i.pending > _ && (e.adler = o(e.adler, i.pending_buf, i.pending - _, _)), E === 0 && (i.gzindex = 0, i.status = ge);
} else
i.status = ge;
if (i.status === ge)
if (i.gzhead.comment) {
_ = i.pending;
do {
if (i.pending === i.pending_buf_size && (i.gzhead.hcrc && i.pending > _ && (e.adler = o(e.adler, i.pending_buf, i.pending - _, _)), Ce(e), _ = i.pending, i.pending === i.pending_buf_size)) {
E = 1;
break;
}
i.gzindex < i.gzhead.comment.length ? E = i.gzhead.comment.charCodeAt(i.gzindex++) & 255 : E = 0, Q(i, E);
} while (E !== 0);
i.gzhead.hcrc && i.pending > _ && (e.adler = o(e.adler, i.pending_buf, i.pending - _, _)), E === 0 && (i.status = pe);
} else
i.status = pe;
if (i.status === pe && (i.gzhead.hcrc ? (i.pending + 2 > i.pending_buf_size && Ce(e), i.pending + 2 <= i.pending_buf_size && (Q(i, e.adler & 255), Q(i, e.adler >> 8 & 255), e.adler = 0, i.status = ae)) : i.status = ae), i.pending !== 0) {
if (Ce(e), e.avail_out === 0)
return i.last_flush = -1, A;
} else if (e.avail_in === 0 && We(C) <= We(T) && C !== u)
return Ee(e, b);
if (i.status === he && e.avail_in !== 0)
return Ee(e, b);
if (e.avail_in !== 0 || i.lookahead !== 0 || C !== l && i.status !== he) {
var W = i.strategy === g ? Ze(i, C) : i.strategy === k ? He(i, C) : Fe[i.level].func(i, C);
if ((W === Ae || W === Te) && (i.status = he), W === ne || W === Ae)
return e.avail_out === 0 && (i.last_flush = -1), A;
if (W === xe && (C === h ? f._tr_align(i) : C !== z && (f._tr_stored_block(i, 0, 0, !1), C === x && (Ie(i.head), i.lookahead === 0 && (i.strstart = 0, i.block_start = 0, i.insert = 0))), Ce(e), e.avail_out === 0))
return i.last_flush = -1, A;
}
return C !== u ? A : i.wrap <= 0 ? r : (i.wrap === 2 ? (Q(i, e.adler & 255), Q(i, e.adler >> 8 & 255), Q(i, e.adler >> 16 & 255), Q(i, e.adler >> 24 & 255), Q(i, e.total_in & 255), Q(i, e.total_in >> 8 & 255), Q(i, e.total_in >> 16 & 255), Q(i, e.total_in >> 24 & 255)) : (ze(i, e.adler >>> 16), ze(i, e.adler & 65535)), Ce(e), i.wrap > 0 && (i.wrap = -i.wrap), i.pending !== 0 ? A : r);
}
function B(e) {
var C;
return !e || !e.state ? n : (C = e.state.status, C !== me && C !== de && C !== $ && C !== ge && C !== pe && C !== ae && C !== he ? Ee(e, n) : (e.state = null, C === ae ? Ee(e, s) : A));
}
function K(e, C) {
var T = C.length, i, _, E, H, Z, W, ee, Ne;
if (!e || !e.state || (i = e.state, H = i.wrap, H === 2 || H === 1 && i.status !== me || i.lookahead))
return n;
for (H === 1 && (e.adler = p(e.adler, C, T, 0)), i.wrap = 0, T >= i.w_size && (H === 0 && (Ie(i.head), i.strstart = 0, i.block_start = 0, i.insert = 0), Ne = new d.Buf8(i.w_size), d.arraySet(Ne, C, T - i.w_size, i.w_size, 0), C = Ne, T = i.w_size), Z = e.avail_in, W = e.next_in, ee = e.input, e.avail_in = T, e.next_in = 0, e.input = C, Oe(i); i.lookahead >= Y; ) {
_ = i.strstart, E = i.lookahead - (Y - 1);
do
i.ins_h = (i.ins_h << i.hash_shift ^ i.window[_ + Y - 1]) & i.hash_mask, i.prev[_ & i.w_mask] = i.head[i.ins_h], i.head[i.ins_h] = _, _++;
while (--E);
i.strstart = _, i.lookahead = Y - 1, Oe(i);
}
return i.strstart += i.lookahead, i.block_start = i.strstart, i.insert = i.lookahead, i.lookahead = 0, i.match_length = i.prev_length = Y - 1, i.match_available = 0, e.next_in = W, e.input = ee, e.avail_in = Z, i.wrap = H, A;
}
y.deflateInit = D, y.deflateInit2 = m, y.deflateReset = U, y.deflateResetKeep = F, y.deflateSetHeader = M, y.deflate = t, y.deflateEnd = B, y.deflateSetDictionary = K, y.deflateInfo = "pako deflate (from Nodeca project)";
}, { "../utils/common": 41, "./adler32": 43, "./crc32": 45, "./messages": 51, "./trees": 52 }], 47: [function(v, N, y) {
function d() {
this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = !1;
}
N.exports = d;
}, {}], 48: [function(v, N, y) {
var d = 30, f = 12;
N.exports = function(o, w) {
var l, h, x, u, z, A, r, n, s, b, O, c, g, k, S, R, I, P, L, G, J, X, te, V, j;
l = o.state, h = o.next_in, V = o.input, x = h + (o.avail_in - 5), u = o.next_out, j = o.output, z = u - (w - o.avail_out), A = u + (o.avail_out - 257), r = l.dmax, n = l.wsize, s = l.whave, b = l.wnext, O = l.window, c = l.hold, g = l.bits, k = l.lencode, S = l.distcode, R = (1 << l.lenbits) - 1, I = (1 << l.distbits) - 1;
e:
do {
g < 15 && (c += V[h++] << g, g += 8, c += V[h++] << g, g += 8), P = k[c & R];
t:
for (; ; ) {
if (L = P >>> 24, c >>>= L, g -= L, L = P >>> 16 & 255, L === 0)
j[u++] = P & 65535;
else if (L & 16) {
G = P & 65535, L &= 15, L && (g < L && (c += V[h++] << g, g += 8), G += c & (1 << L) - 1, c >>>= L, g -= L), g < 15 && (c += V[h++] << g, g += 8, c += V[h++] << g, g += 8), P = S[c & I];
r:
for (; ; ) {
if (L = P >>> 24, c >>>= L, g -= L, L = P >>> 16 & 255, L & 16) {
if (J = P & 65535, L &= 15, g < L && (c += V[h++] << g, g += 8, g < L && (c += V[h++] << g, g += 8)), J += c & (1 << L) - 1, J > r) {
o.msg = "invalid distance too far back", l.mode = d;
break e;
}
if (c >>>= L, g -= L, L = u - z, J > L) {
if (L = J - L, L > s && l.sane) {
o.msg = "invalid distance too far back", l.mode = d;
break e;
}
if (X = 0, te = O, b === 0) {
if (X += n - L, L < G) {
G -= L;
do
j[u++] = O[X++];
while (--L);
X = u - J, te = j;
}
} else if (b < L) {
if (X += n + b - L, L -= b, L < G) {
G -= L;
do
j[u++] = O[X++];
while (--L);
if (X = 0, b < G) {
L = b, G -= L;
do
j[u++] = O[X++];
while (--L);
X = u - J, te = j;
}
}
} else if (X += b - L, L < G) {
G -= L;
do
j[u++] = O[X++];
while (--L);
X = u - J, te = j;
}
for (; G > 2; )
j[u++] = te[X++], j[u++] = te[X++], j[u++] = te[X++], G -= 3;
G && (j[u++] = te[X++], G > 1 && (j[u++] = te[X++]));
} else {
X = u - J;
do
j[u++] = j[X++], j[u++] = j[X++], j[u++] = j[X++], G -= 3;
while (G > 2);
G && (j[u++] = j[X++], G > 1 && (j[u++] = j[X++]));
}
} else if (L & 64) {
o.msg = "invalid distance code", l.mode = d;
break e;
} else {
P = S[(P & 65535) + (c & (1 << L) - 1)];
continue r;
}
break;
}
} else if (L & 64)
if (L & 32) {
l.mode = f;
break e;
} else {
o.msg = "invalid literal/length code", l.mode = d;
break e;
}
else {
P = k[(P & 65535) + (c & (1 << L) - 1)];
continue t;
}
break;
}
} while (h < x && u < A);
G = g >> 3, h -= G, g -= G << 3, c &= (1 << g) - 1, o.next_in = h, o.next_out = u, o.avail_in = h < x ? 5 + (x - h) : 5 - (h - x), o.avail_out = u < A ? 257 + (A - u) : 257 - (u - A), l.hold = c, l.bits = g;
};
}, {}], 49: [function(v, N, y) {
var d = v("../utils/common"), f = v("./adler32"), p = v("./crc32"), o = v("./inffast"), w = v("./inftrees"), l = 0, h = 1, x = 2, u = 4, z = 5, A = 6, r = 0, n = 1, s = 2, b = -2, O = -3, c = -4, g = -5, k = 8, S = 1, R = 2, I = 3, P = 4, L = 5, G = 6, J = 7, X = 8, te = 9, V = 10, j = 11, q = 12, fe = 13, ce = 14, Y = 15, se = 16, ie = 17, we = 18, me = 19, de = 20, $ = 21, ge = 22, pe = 23, ae = 24, he = 25, ne = 26, xe = 27, Ae = 28, Te = 29, oe = 30, Ee = 31, We = 32, Ie = 852, Ce = 592, le = 15, Q = le;
function ze(m) {
return (m >>> 24 & 255) + (m >>> 8 & 65280) + ((m & 65280) << 8) + ((m & 255) << 24);
}
function Me() {
this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new d.Buf16(320), this.work = new d.Buf16(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0;
}
function Ue(m) {
var D;
return !m || !m.state ? b : (D = m.state, m.total_in = m.total_out = D.total = 0, m.msg = "", D.wrap && (m.adler = D.wrap & 1), D.mode = S, D.last = 0, D.havedict = 0, D.dmax = 32768, D.head = null, D.hold = 0, D.bits = 0, D.lencode = D.lendyn = new d.Buf32(Ie), D.distcode = D.distdyn = new d.Buf32(Ce), D.sane = 1, D.back = -1, r);
}
function Oe(m) {
var D;
return !m || !m.state ? b : (D = m.state, D.wsize = 0, D.whave = 0, D.wnext = 0, Ue(m));
}
function je(m, D) {
var t, B;
return !m || !m.state || (B = m.state, D < 0 ? (t = 0, D = -D) : (t = (D >> 4) + 1, D < 48 && (D &= 15)), D && (D < 8 || D > 15)) ? b : (B.window !== null && B.wbits !== D && (B.window = null), B.wrap = t, B.wbits = D, Oe(m));
}
function Pe(m, D) {
var t, B;
return m ? (B = new Me(), m.state = B, B.window = null, t = je(m, D), t !== r && (m.state = null), t) : b;
}
function Re(m) {
return Pe(m, Q);
}
var He = !0, Ze, ye;
function Fe(m) {
if (He) {
var D;
for (Ze = new d.Buf32(512), ye = new d.Buf32(32), D = 0; D < 144; )
m.lens[D++] = 8;
for (; D < 256; )
m.lens[D++] = 9;
for (; D < 280; )
m.lens[D++] = 7;
for (; D < 288; )
m.lens[D++] = 8;
for (w(h, m.lens, 0, 288, Ze, 0, m.work, { bits: 9 }), D = 0; D < 32; )
m.lens[D++] = 5;
w(x, m.lens, 0, 32, ye, 0, m.work, { bits: 5 }), He = !1;
}
m.lencode = Ze, m.lenbits = 9, m.distcode = ye, m.distbits = 5;
}
function Ge(m, D, t, B) {
var K, e = m.state;
return e.window === null && (e.wsize = 1 << e.wbits, e.wnext = 0, e.whave = 0, e.window = new d.Buf8(e.wsize)), B >= e.wsize ? (d.arraySet(e.window, D, t - e.wsize, e.wsize, 0), e.wnext = 0, e.whave = e.wsize) : (K = e.wsize - e.wnext, K > B && (K = B), d.arraySet(e.window, D, t - B, K, e.wnext), B -= K, B ? (d.arraySet(e.window, D, t - B, B, 0), e.wnext = B, e.whave = e.wsize) : (e.wnext += K, e.wnext === e.wsize && (e.wnext = 0), e.whave < e.wsize && (e.whave += K))), 0;
}
function a(m, D) {
var t, B, K, e, C, T, i, _, E, H, Z, W, ee, Ne, ue = 0, re, ve, ke, Se, Ye, Ke, _e, De, be = new d.Buf8(4), Le, Be, Je = (
/* permutation of code lengths */
[16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]
);
if (!m || !m.state || !m.output || !m.input && m.avail_in !== 0)
return b;
t = m.state, t.mode === q && (t.mode = fe), C = m.next_out, K = m.output, i = m.avail_out, e = m.next_in, B = m.input, T = m.avail_in, _ = t.hold, E = t.bits, H = T, Z = i, De = r;
e:
for (; ; )
switch (t.mode) {
case S:
if (t.wrap === 0) {
t.mode = fe;
break;
}
for (; E < 16; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
if (t.wrap & 2 && _ === 35615) {
t.check = 0, be[0] = _ & 255, be[1] = _ >>> 8 & 255, t.check = p(t.check, be, 2, 0), _ = 0, E = 0, t.mode = R;
break;
}
if (t.flags = 0, t.head && (t.head.done = !1), !(t.wrap & 1) || /* check if zlib header allowed */
(((_ & 255) << 8) + (_ >> 8)) % 31) {
m.msg = "incorrect header check", t.mode = oe;
break;
}
if ((_ & 15) !== k) {
m.msg = "unknown compression method", t.mode = oe;
break;
}
if (_ >>>= 4, E -= 4, _e = (_ & 15) + 8, t.wbits === 0)
t.wbits = _e;
else if (_e > t.wbits) {
m.msg = "invalid window size", t.mode = oe;
break;
}
t.dmax = 1 << _e, m.adler = t.check = 1, t.mode = _ & 512 ? V : q, _ = 0, E = 0;
break;
case R:
for (; E < 16; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
if (t.flags = _, (t.flags & 255) !== k) {
m.msg = "unknown compression method", t.mode = oe;
break;
}
if (t.flags & 57344) {
m.msg = "unknown header flags set", t.mode = oe;
break;
}
t.head && (t.head.text = _ >> 8 & 1), t.flags & 512 && (be[0] = _ & 255, be[1] = _ >>> 8 & 255, t.check = p(t.check, be, 2, 0)), _ = 0, E = 0, t.mode = I;
case I:
for (; E < 32; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
t.head && (t.head.time = _), t.flags & 512 && (be[0] = _ & 255, be[1] = _ >>> 8 & 255, be[2] = _ >>> 16 & 255, be[3] = _ >>> 24 & 255, t.check = p(t.check, be, 4, 0)), _ = 0, E = 0, t.mode = P;
case P:
for (; E < 16; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
t.head && (t.head.xflags = _ & 255, t.head.os = _ >> 8), t.flags & 512 && (be[0] = _ & 255, be[1] = _ >>> 8 & 255, t.check = p(t.check, be, 2, 0)), _ = 0, E = 0, t.mode = L;
case L:
if (t.flags & 1024) {
for (; E < 16; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
t.length = _, t.head && (t.head.extra_len = _), t.flags & 512 && (be[0] = _ & 255, be[1] = _ >>> 8 & 255, t.check = p(t.check, be, 2, 0)), _ = 0, E = 0;
} else t.head && (t.head.extra = null);
t.mode = G;
case G:
if (t.flags & 1024 && (W = t.length, W > T && (W = T), W && (t.head && (_e = t.head.extra_len - t.length, t.head.extra || (t.head.extra = new Array(t.head.extra_len)), d.arraySet(
t.head.extra,
B,
e,
// extra field is limited to 65536 bytes
// - no need for additional size check
W,
/*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
_e
)), t.flags & 512 && (t.check = p(t.check, B, W, e)), T -= W, e += W, t.length -= W), t.length))
break e;
t.length = 0, t.mode = J;
case J:
if (t.flags & 2048) {
if (T === 0)
break e;
W = 0;
do
_e = B[e + W++], t.head && _e && t.length < 65536 && (t.head.name += String.fromCharCode(_e));
while (_e && W < T);
if (t.flags & 512 && (t.check = p(t.check, B, W, e)), T -= W, e += W, _e)
break e;
} else t.head && (t.head.name = null);
t.length = 0, t.mode = X;
case X:
if (t.flags & 4096) {
if (T === 0)
break e;
W = 0;
do
_e = B[e + W++], t.head && _e && t.length < 65536 && (t.head.comment += String.fromCharCode(_e));
while (_e && W < T);
if (t.flags & 512 && (t.check = p(t.check, B, W, e)), T -= W, e += W, _e)
break e;
} else t.head && (t.head.comment = null);
t.mode = te;
case te:
if (t.flags & 512) {
for (; E < 16; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
if (_ !== (t.check & 65535)) {
m.msg = "header crc mismatch", t.mode = oe;
break;
}
_ = 0, E = 0;
}
t.head && (t.head.hcrc = t.flags >> 9 & 1, t.head.done = !0), m.adler = t.check = 0, t.mode = q;
break;
case V:
for (; E < 32; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
m.adler = t.check = ze(_), _ = 0, E = 0, t.mode = j;
case j:
if (t.havedict === 0)
return m.next_out = C, m.avail_out = i, m.next_in = e, m.avail_in = T, t.hold = _, t.bits = E, s;
m.adler = t.check = 1, t.mode = q;
case q:
if (D === z || D === A)
break e;
case fe:
if (t.last) {
_ >>>= E & 7, E -= E & 7, t.mode = xe;
break;
}
for (; E < 3; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
switch (t.last = _ & 1, _ >>>= 1, E -= 1, _ & 3) {
case 0:
t.mode = ce;
break;
case 1:
if (Fe(t), t.mode = de, D === A) {
_ >>>= 2, E -= 2;
break e;
}
break;
case 2:
t.mode = ie;
break;
case 3:
m.msg = "invalid block type", t.mode = oe;
}
_ >>>= 2, E -= 2;
break;
case ce:
for (_ >>>= E & 7, E -= E & 7; E < 32; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
if ((_ & 65535) !== (_ >>> 16 ^ 65535)) {
m.msg = "invalid stored block lengths", t.mode = oe;
break;
}
if (t.length = _ & 65535, _ = 0, E = 0, t.mode = Y, D === A)
break e;
case Y:
t.mode = se;
case se:
if (W = t.length, W) {
if (W > T && (W = T), W > i && (W = i), W === 0)
break e;
d.arraySet(K, B, e, W, C), T -= W, e += W, i -= W, C += W, t.length -= W;
break;
}
t.mode = q;
break;
case ie:
for (; E < 14; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
if (t.nlen = (_ & 31) + 257, _ >>>= 5, E -= 5, t.ndist = (_ & 31) + 1, _ >>>= 5, E -= 5, t.ncode = (_ & 15) + 4, _ >>>= 4, E -= 4, t.nlen > 286 || t.ndist > 30) {
m.msg = "too many length or distance symbols", t.mode = oe;
break;
}
t.have = 0, t.mode = we;
case we:
for (; t.have < t.ncode; ) {
for (; E < 3; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
t.lens[Je[t.have++]] = _ & 7, _ >>>= 3, E -= 3;
}
for (; t.have < 19; )
t.lens[Je[t.have++]] = 0;
if (t.lencode = t.lendyn, t.lenbits = 7, Le = { bits: t.lenbits }, De = w(l, t.lens, 0, 19, t.lencode, 0, t.work, Le), t.lenbits = Le.bits, De) {
m.msg = "invalid code lengths set", t.mode = oe;
break;
}
t.have = 0, t.mode = me;
case me:
for (; t.have < t.nlen + t.ndist; ) {
for (; ue = t.lencode[_ & (1 << t.lenbits) - 1], re = ue >>> 24, ve = ue >>> 16 & 255, ke = ue & 65535, !(re <= E); ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
if (ke < 16)
_ >>>= re, E -= re, t.lens[t.have++] = ke;
else {
if (ke === 16) {
for (Be = re + 2; E < Be; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
if (_ >>>= re, E -= re, t.have === 0) {
m.msg = "invalid bit length repeat", t.mode = oe;
break;
}
_e = t.lens[t.have - 1], W = 3 + (_ & 3), _ >>>= 2, E -= 2;
} else if (ke === 17) {
for (Be = re + 3; E < Be; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
_ >>>= re, E -= re, _e = 0, W = 3 + (_ & 7), _ >>>= 3, E -= 3;
} else {
for (Be = re + 7; E < Be; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
_ >>>= re, E -= re, _e = 0, W = 11 + (_ & 127), _ >>>= 7, E -= 7;
}
if (t.have + W > t.nlen + t.ndist) {
m.msg = "invalid bit length repeat", t.mode = oe;
break;
}
for (; W--; )
t.lens[t.have++] = _e;
}
}
if (t.mode === oe)
break;
if (t.lens[256] === 0) {
m.msg = "invalid code -- missing end-of-block", t.mode = oe;
break;
}
if (t.lenbits = 9, Le = { bits: t.lenbits }, De = w(h, t.lens, 0, t.nlen, t.lencode, 0, t.work, Le), t.lenbits = Le.bits, De) {
m.msg = "invalid literal/lengths set", t.mode = oe;
break;
}
if (t.distbits = 6, t.distcode = t.distdyn, Le = { bits: t.distbits }, De = w(x, t.lens, t.nlen, t.ndist, t.distcode, 0, t.work, Le), t.distbits = Le.bits, De) {
m.msg = "invalid distances set", t.mode = oe;
break;
}
if (t.mode = de, D === A)
break e;
case de:
t.mode = $;
case $:
if (T >= 6 && i >= 258) {
m.next_out = C, m.avail_out = i, m.next_in = e, m.avail_in = T, t.hold = _, t.bits = E, o(m, Z), C = m.next_out, K = m.output, i = m.avail_out, e = m.next_in, B = m.input, T = m.avail_in, _ = t.hold, E = t.bits, t.mode === q && (t.back = -1);
break;
}
for (t.back = 0; ue = t.lencode[_ & (1 << t.lenbits) - 1], re = ue >>> 24, ve = ue >>> 16 & 255, ke = ue & 65535, !(re <= E); ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
if (ve && !(ve & 240)) {
for (Se = re, Ye = ve, Ke = ke; ue = t.lencode[Ke + ((_ & (1 << Se + Ye) - 1) >> Se)], re = ue >>> 24, ve = ue >>> 16 & 255, ke = ue & 65535, !(Se + re <= E); ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
_ >>>= Se, E -= Se, t.back += Se;
}
if (_ >>>= re, E -= re, t.back += re, t.length = ke, ve === 0) {
t.mode = ne;
break;
}
if (ve & 32) {
t.back = -1, t.mode = q;
break;
}
if (ve & 64) {
m.msg = "invalid literal/length code", t.mode = oe;
break;
}
t.extra = ve & 15, t.mode = ge;
case ge:
if (t.extra) {
for (Be = t.extra; E < Be; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
t.length += _ & (1 << t.extra) - 1, _ >>>= t.extra, E -= t.extra, t.back += t.extra;
}
t.was = t.length, t.mode = pe;
case pe:
for (; ue = t.distcode[_ & (1 << t.distbits) - 1], re = ue >>> 24, ve = ue >>> 16 & 255, ke = ue & 65535, !(re <= E); ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
if (!(ve & 240)) {
for (Se = re, Ye = ve, Ke = ke; ue = t.distcode[Ke + ((_ & (1 << Se + Ye) - 1) >> Se)], re = ue >>> 24, ve = ue >>> 16 & 255, ke = ue & 65535, !(Se + re <= E); ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
_ >>>= Se, E -= Se, t.back += Se;
}
if (_ >>>= re, E -= re, t.back += re, ve & 64) {
m.msg = "invalid distance code", t.mode = oe;
break;
}
t.offset = ke, t.extra = ve & 15, t.mode = ae;
case ae:
if (t.extra) {
for (Be = t.extra; E < Be; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
t.offset += _ & (1 << t.extra) - 1, _ >>>= t.extra, E -= t.extra, t.back += t.extra;
}
if (t.offset > t.dmax) {
m.msg = "invalid distance too far back", t.mode = oe;
break;
}
t.mode = he;
case he:
if (i === 0)
break e;
if (W = Z - i, t.offset > W) {
if (W = t.offset - W, W > t.whave && t.sane) {
m.msg = "invalid distance too far back", t.mode = oe;
break;
}
W > t.wnext ? (W -= t.wnext, ee = t.wsize - W) : ee = t.wnext - W, W > t.length && (W = t.length), Ne = t.window;
} else
Ne = K, ee = C - t.offset, W = t.length;
W > i && (W = i), i -= W, t.length -= W;
do
K[C++] = Ne[ee++];
while (--W);
t.length === 0 && (t.mode = $);
break;
case ne:
if (i === 0)
break e;
K[C++] = t.length, i--, t.mode = $;
break;
case xe:
if (t.wrap) {
for (; E < 32; ) {
if (T === 0)
break e;
T--, _ |= B[e++] << E, E += 8;
}
if (Z -= i, m.total_out += Z, t.total += Z, Z && (m.adler = t.check = /*UPDATE(state.check, put - _out, _out);*/
t.flags ? p(t.check, K, Z, C - Z) : f(t.check, K, Z, C - Z)), Z = i, (t.flags ? _ : ze(_)) !== t.check) {
m.msg = "incorrect data check", t.mode = oe;
break;
}
_ = 0, E = 0;
}
t.mode = Ae;
case Ae:
if (t.wrap && t.flags) {
for (; E < 32; ) {
if (T === 0)
break e;
T--, _ += B[e++] << E, E += 8;
}
if (_ !== (t.total & 4294967295)) {
m.msg = "incorrect length check", t.mode = oe;
break;
}
_ = 0, E = 0;
}
t.mode = Te;
case Te:
De = n;
break e;
case oe:
De = O;
break e;
case Ee:
return c;
case We:
default:
return b;
}
return m.next_out = C, m.avail_out = i, m.next_in = e, m.avail_in = T, t.hold = _, t.bits = E, (t.wsize || Z !== m.avail_out && t.mode < oe && (t.mode < xe || D !== u)) && Ge(m, m.output, m.next_out, Z - m.avail_out), H -= m.avail_in, Z -= m.avail_out, m.total_in += H, m.total_out += Z, t.total += Z, t.wrap && Z && (m.adler = t.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/
t.flags ? p(t.check, K, Z, m.next_out - Z) : f(t.check, K, Z, m.next_out - Z)), m.data_type = t.bits + (t.last ? 64 : 0) + (t.mode === q ? 128 : 0) + (t.mode === de || t.mode === Y ? 256 : 0), (H === 0 && Z === 0 || D === u) && De === r && (De = g), De;
}
function F(m) {
if (!m || !m.state)
return b;
var D = m.state;
return D.window && (D.window = null), m.state = null, r;
}
function U(m, D) {
var t;
return !m || !m.state || (t = m.state, !(t.wrap & 2)) ? b : (t.head = D, D.done = !1, r);
}
function M(m, D) {
var t = D.length, B, K, e;
return !m || !m.state || (B = m.state, B.wrap !== 0 && B.mode !== j) ? b : B.mode === j && (K = 1, K = f(K, D, t, 0), K !== B.check) ? O : (e = Ge(m, D, t, t), e ? (B.mode = Ee, c) : (B.havedict = 1, r));
}
y.inflateReset = Oe, y.inflateReset2 = je, y.inflateResetKeep = Ue, y.inflateInit = Re, y.inflateInit2 = Pe, y.inflate = a, y.inflateEnd = F, y.inflateGetHeader = U, y.inflateSetDictionary = M, y.inflateInfo = "pako inflate (from Nodeca project)";
}, { "../utils/common": 41, "./adler32": 43, "./crc32": 45, "./inffast": 48, "./inftrees": 50 }], 50: [function(v, N, y) {
var d = v("../utils/common"), f = 15, p = 852, o = 592, w = 0, l = 1, h = 2, x = [
/* Length codes 257..285 base */
3,
4,
5,
6,
7,
8,
9,
10,
11,
13,
15,
17,
19,
23,
27,
31,
35,
43,
51,
59,
67,
83,
99,
115,
131,
163,
195,
227,
258,
0,
0
], u = [
/* Length codes 257..285 extra */
16,
16,
16,
16,
16,
16,
16,
16,
17,
17,
17,
17,
18,
18,
18,
18,
19,
19,
19,
19,
20,
20,
20,
20,
21,
21,
21,
21,
16,
72,
78
], z = [
/* Distance codes 0..29 base */
1,
2,
3,
4,
5,
7,
9,
13,
17,
25,
33,
49,
65,
97,
129,
193,
257,
385,
513,
769,
1025,
1537,
2049,
3073,
4097,
6145,
8193,
12289,
16385,
24577,
0,
0
], A = [
/* Distance codes 0..29 extra */
16,
16,
16,
16,
17,
17,
18,
18,
19,
19,
20,
20,
21,
21,
22,
22,
23,
23,
24,
24,
25,
25,
26,
26,
27,
27,
28,
28,
29,
29,
64,
64
];
N.exports = function(n, s, b, O, c, g, k, S) {
var R = S.bits, I = 0, P = 0, L = 0, G = 0, J = 0, X = 0, te = 0, V = 0, j = 0, q = 0, fe, ce, Y, se, ie, we = null, me = 0, de, $ = new d.Buf16(f + 1), ge = new d.Buf16(f + 1), pe = null, ae = 0, he, ne, xe;
for (I = 0; I <= f; I++)
$[I] = 0;
for (P = 0; P < O; P++)
$[s[b + P]]++;
for (J = R, G = f; G >= 1 && $[G] === 0; G--)
;
if (J > G && (J = G), G === 0)
return c[g++] = 1 << 24 | 64 << 16 | 0, c[g++] = 1 << 24 | 64 << 16 | 0, S.bits = 1, 0;
for (L = 1; L < G && $[L] === 0; L++)
;
for (J < L && (J = L), V = 1, I = 1; I <= f; I++)
if (V <<= 1, V -= $[I], V < 0)
return -1;
if (V > 0 && (n === w || G !== 1))
return -1;
for (ge[1] = 0, I = 1; I < f; I++)
ge[I + 1] = ge[I] + $[I];
for (P = 0; P < O; P++)
s[b + P] !== 0 && (k[ge[s[b + P]]++] = P);
if (n === w ? (we = pe = k, de = 19) : n === l ? (we = x, me -= 257, pe = u, ae -= 257, de = 256) : (we = z, pe = A, de = -1), q = 0, P = 0, I = L, ie = g, X = J, te = 0, Y = -1, j = 1 << J, se = j - 1, n === l && j > p || n === h && j > o)
return 1;
for (; ; ) {
he = I - te, k[P] < de ? (ne = 0, xe = k[P]) : k[P] > de ? (ne = pe[ae + k[P]], xe = we[me + k[P]]) : (ne = 96, xe = 0), fe = 1 << I - te, ce = 1 << X, L = ce;
do
ce -= fe, c[ie + (q >> te) + ce] = he << 24 | ne << 16 | xe | 0;
while (ce !== 0);
for (fe = 1 << I - 1; q & fe; )
fe >>= 1;
if (fe !== 0 ? (q &= fe - 1, q += fe) : q = 0, P++, --$[I] === 0) {
if (I === G)
break;
I = s[b + k[P]];
}
if (I > J && (q & se) !== Y) {
for (te === 0 && (te = J), ie += L, X = I - te, V = 1 << X; X + te < G && (V -= $[X + te], !(V <= 0)); )
X++, V <<= 1;
if (j += 1 << X, n === l && j > p || n === h && j > o)
return 1;
Y = q & se, c[Y] = J << 24 | X << 16 | ie - g | 0;
}
}
return q !== 0 && (c[ie + q] = I - te << 24 | 64 << 16 | 0), S.bits = J, 0;
};
}, { "../utils/common": 41 }], 51: [function(v, N, y) {
N.exports = {
2: "need dictionary",
/* Z_NEED_DICT 2 */
1: "stream end",
/* Z_STREAM_END 1 */
0: "",
/* Z_OK 0 */
"-1": "file error",
/* Z_ERRNO (-1) */
"-2": "stream error",
/* Z_STREAM_ERROR (-2) */
"-3": "data error",
/* Z_DATA_ERROR (-3) */
"-4": "insufficient memory",
/* Z_MEM_ERROR (-4) */
"-5": "buffer error",
/* Z_BUF_ERROR (-5) */
"-6": "incompatible version"
/* Z_VERSION_ERROR (-6) */
};
}, {}], 52: [function(v, N, y) {
var d = v("../utils/common"), f = 4, p = 0, o = 1, w = 2;
function l(a) {
for (var F = a.length; --F >= 0; )
a[F] = 0;
}
var h = 0, x = 1, u = 2, z = 3, A = 258, r = 29, n = 256, s = n + 1 + r, b = 30, O = 19, c = 2 * s + 1, g = 15, k = 16, S = 7, R = 256, I = 16, P = 17, L = 18, G = (
/* extra bits for each length code */
[0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]
), J = (
/* extra bits for each distance code */
[0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]
), X = (
/* extra bits for each bit length code */
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]
), te = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], V = 512, j = new Array((s + 2) * 2);
l(j);
var q = new Array(b * 2);
l(q);
var fe = new Array(V);
l(fe);
var ce = new Array(A - z + 1);
l(ce);
var Y = new Array(r);
l(Y);
var se = new Array(b);
l(se);
function ie(a, F, U, M, m) {
this.static_tree = a, this.extra_bits = F, this.extra_base = U, this.elems = M, this.max_length = m, this.has_stree = a && a.length;
}
var we, me, de;
function $(a, F) {
this.dyn_tree = a, this.max_code = 0, this.stat_desc = F;
}
function ge(a) {
return a < 256 ? fe[a] : fe[256 + (a >>> 7)];
}
function pe(a, F) {
a.pending_buf[a.pending++] = F & 255, a.pending_buf[a.pending++] = F >>> 8 & 255;
}
function ae(a, F, U) {
a.bi_valid > k - U ? (a.bi_buf |= F << a.bi_valid & 65535, pe(a, a.bi_buf), a.bi_buf = F >> k - a.bi_valid, a.bi_valid += U - k) : (a.bi_buf |= F << a.bi_valid & 65535, a.bi_valid += U);
}
function he(a, F, U) {
ae(
a,
U[F * 2],
U[F * 2 + 1]
/*.Len*/
);
}
function ne(a, F) {
var U = 0;
do
U |= a & 1, a >>>= 1, U <<= 1;
while (--F > 0);
return U >>> 1;
}
function xe(a) {
a.bi_valid === 16 ? (pe(a, a.bi_buf), a.bi_buf = 0, a.bi_valid = 0) : a.bi_valid >= 8 && (a.pending_buf[a.pending++] = a.bi_buf & 255, a.bi_buf >>= 8, a.bi_valid -= 8);
}
function Ae(a, F) {
var U = F.dyn_tree, M = F.max_code, m = F.stat_desc.static_tree, D = F.stat_desc.has_stree, t = F.stat_desc.extra_bits, B = F.stat_desc.extra_base, K = F.stat_desc.max_length, e, C, T, i, _, E, H = 0;
for (i = 0; i <= g; i++)
a.bl_count[i] = 0;
for (U[a.heap[a.heap_max] * 2 + 1] = 0, e = a.heap_max + 1; e < c; e++)
C = a.heap[e], i = U[U[C * 2 + 1] * 2 + 1] + 1, i > K && (i = K, H++), U[C * 2 + 1] = i, !(C > M) && (a.bl_count[i]++, _ = 0, C >= B && (_ = t[C - B]), E = U[C * 2], a.opt_len += E * (i + _), D && (a.static_len += E * (m[C * 2 + 1] + _)));
if (H !== 0) {
do {
for (i = K - 1; a.bl_count[i] === 0; )
i--;
a.bl_count[i]--, a.bl_count[i + 1] += 2, a.bl_count[K]--, H -= 2;
} while (H > 0);
for (i = K; i !== 0; i--)
for (C = a.bl_count[i]; C !== 0; )
T = a.heap[--e], !(T > M) && (U[T * 2 + 1] !== i && (a.opt_len += (i - U[T * 2 + 1]) * U[T * 2], U[T * 2 + 1] = i), C--);
}
}
function Te(a, F, U) {
var M = new Array(g + 1), m = 0, D, t;
for (D = 1; D <= g; D++)
M[D] = m = m + U[D - 1] << 1;
for (t = 0; t <= F; t++) {
var B = a[t * 2 + 1];
B !== 0 && (a[t * 2] = ne(M[B]++, B));
}
}
function oe() {
var a, F, U, M, m, D = new Array(g + 1);
for (U = 0, M = 0; M < r - 1; M++)
for (Y[M] = U, a = 0; a < 1 << G[M]; a++)
ce[U++] = M;
for (ce[U - 1] = M, m = 0, M = 0; M < 16; M++)
for (se[M] = m, a = 0; a < 1 << J[M]; a++)
fe[m++] = M;
for (m >>= 7; M < b; M++)
for (se[M] = m << 7, a = 0; a < 1 << J[M] - 7; a++)
fe[256 + m++] = M;
for (F = 0; F <= g; F++)
D[F] = 0;
for (a = 0; a <= 143; )
j[a * 2 + 1] = 8, a++, D[8]++;
for (; a <= 255; )
j[a * 2 + 1] = 9, a++, D[9]++;
for (; a <= 279; )
j[a * 2 + 1] = 7, a++, D[7]++;
for (; a <= 287; )
j[a * 2 + 1] = 8, a++, D[8]++;
for (Te(j, s + 1, D), a = 0; a < b; a++)
q[a * 2 + 1] = 5, q[a * 2] = ne(a, 5);
we = new ie(j, G, n + 1, s, g), me = new ie(q, J, 0, b, g), de = new ie(new Array(0), X, 0, O, S);
}
function Ee(a) {
var F;
for (F = 0; F < s; F++)
a.dyn_ltree[F * 2] = 0;
for (F = 0; F < b; F++)
a.dyn_dtree[F * 2] = 0;
for (F = 0; F < O; F++)
a.bl_tree[F * 2] = 0;
a.dyn_ltree[R * 2] = 1, a.opt_len = a.static_len = 0, a.last_lit = a.matches = 0;
}
function We(a) {
a.bi_valid > 8 ? pe(a, a.bi_buf) : a.bi_valid > 0 && (a.pending_buf[a.pending++] = a.bi_buf), a.bi_buf = 0, a.bi_valid = 0;
}
function Ie(a, F, U, M) {
We(a), pe(a, U), pe(a, ~U), d.arraySet(a.pending_buf, a.window, F, U, a.pending), a.pending += U;
}
function Ce(a, F, U, M) {
var m = F * 2, D = U * 2;
return a[m] < a[D] || a[m] === a[D] && M[F] <= M[U];
}
function le(a, F, U) {
for (var M = a.heap[U], m = U << 1; m <= a.heap_len && (m < a.heap_len && Ce(F, a.heap[m + 1], a.heap[m], a.depth) && m++, !Ce(F, M, a.heap[m], a.depth)); )
a.heap[U] = a.heap[m], U = m, m <<= 1;
a.heap[U] = M;
}
function Q(a, F, U) {
var M, m, D = 0, t, B;
if (a.last_lit !== 0)
do
M = a.pending_buf[a.d_buf + D * 2] << 8 | a.pending_buf[a.d_buf + D * 2 + 1], m = a.pending_buf[a.l_buf + D], D++, M === 0 ? he(a, m, F) : (t = ce[m], he(a, t + n + 1, F), B = G[t], B !== 0 && (m -= Y[t], ae(a, m, B)), M--, t = ge(M), he(a, t, U), B = J[t], B !== 0 && (M -= se[t], ae(a, M, B)));
while (D < a.last_lit);
he(a, R, F);
}
function ze(a, F) {
var U = F.dyn_tree, M = F.stat_desc.static_tree, m = F.stat_desc.has_stree, D = F.stat_desc.elems, t, B, K = -1, e;
for (a.heap_len = 0, a.heap_max = c, t = 0; t < D; t++)
U[t * 2] !== 0 ? (a.heap[++a.heap_len] = K = t, a.depth[t] = 0) : U[t * 2 + 1] = 0;
for (; a.heap_len < 2; )
e = a.heap[++a.heap_len] = K < 2 ? ++K : 0, U[e * 2] = 1, a.depth[e] = 0, a.opt_len--, m && (a.static_len -= M[e * 2 + 1]);
for (F.max_code = K, t = a.heap_len >> 1; t >= 1; t--)
le(a, U, t);
e = D;
do
t = a.heap[
1
/*SMALLEST*/
], a.heap[
1
/*SMALLEST*/
] = a.heap[a.heap_len--], le(
a,
U,
1
/*SMALLEST*/
), B = a.heap[
1
/*SMALLEST*/
], a.heap[--a.heap_max] = t, a.heap[--a.heap_max] = B, U[e * 2] = U[t * 2] + U[B * 2], a.depth[e] = (a.depth[t] >= a.depth[B] ? a.depth[t] : a.depth[B]) + 1, U[t * 2 + 1] = U[B * 2 + 1] = e, a.heap[
1
/*SMALLEST*/
] = e++, le(
a,
U,
1
/*SMALLEST*/
);
while (a.heap_len >= 2);
a.heap[--a.heap_max] = a.heap[
1
/*SMALLEST*/
], Ae(a, F), Te(U, K, a.bl_count);
}
function Me(a, F, U) {
var M, m = -1, D, t = F[0 * 2 + 1], B = 0, K = 7, e = 4;
for (t === 0 && (K = 138, e = 3), F[(U + 1) * 2 + 1] = 65535, M = 0; M <= U; M++)
D = t, t = F[(M + 1) * 2 + 1], !(++B < K && D === t) && (B < e ? a.bl_tree[D * 2] += B : D !== 0 ? (D !== m && a.bl_tree[D * 2]++, a.bl_tree[I * 2]++) : B <= 10 ? a.bl_tree[P * 2]++ : a.bl_tree[L * 2]++, B = 0, m = D, t === 0 ? (K = 138, e = 3) : D === t ? (K = 6, e = 3) : (K = 7, e = 4));
}
function Ue(a, F, U) {
var M, m = -1, D, t = F[0 * 2 + 1], B = 0, K = 7, e = 4;
for (t === 0 && (K = 138, e = 3), M = 0; M <= U; M++)
if (D = t, t = F[(M + 1) * 2 + 1], !(++B < K && D === t)) {
if (B < e)
do
he(a, D, a.bl_tree);
while (--B !== 0);
else D !== 0 ? (D !== m && (he(a, D, a.bl_tree), B--), he(a, I, a.bl_tree), ae(a, B - 3, 2)) : B <= 10 ? (he(a, P, a.bl_tree), ae(a, B - 3, 3)) : (he(a, L, a.bl_tree), ae(a, B - 11, 7));
B = 0, m = D, t === 0 ? (K = 138, e = 3) : D === t ? (K = 6, e = 3) : (K = 7, e = 4);
}
}
function Oe(a) {
var F;
for (Me(a, a.dyn_ltree, a.l_desc.max_code), Me(a, a.dyn_dtree, a.d_desc.max_code), ze(a, a.bl_desc), F = O - 1; F >= 3 && a.bl_tree[te[F] * 2 + 1] === 0; F--)
;
return a.opt_len += 3 * (F + 1) + 5 + 5 + 4, F;
}
function je(a, F, U, M) {
var m;
for (ae(a, F - 257, 5), ae(a, U - 1, 5), ae(a, M - 4, 4), m = 0; m < M; m++)
ae(a, a.bl_tree[te[m] * 2 + 1], 3);
Ue(a, a.dyn_ltree, F - 1), Ue(a, a.dyn_dtree, U - 1);
}
function Pe(a) {
var F = 4093624447, U;
for (U = 0; U <= 31; U++, F >>>= 1)
if (F & 1 && a.dyn_ltree[U * 2] !== 0)
return p;
if (a.dyn_ltree[9 * 2] !== 0 || a.dyn_ltree[10 * 2] !== 0 || a.dyn_ltree[13 * 2] !== 0)
return o;
for (U = 32; U < n; U++)
if (a.dyn_ltree[U * 2] !== 0)
return o;
return p;
}
var Re = !1;
function He(a) {
Re || (oe(), Re = !0), a.l_desc = new $(a.dyn_ltree, we), a.d_desc = new $(a.dyn_dtree, me), a.bl_desc = new $(a.bl_tree, de), a.bi_buf = 0, a.bi_valid = 0, Ee(a);
}
function Ze(a, F, U, M) {
ae(a, (h << 1) + (M ? 1 : 0), 3), Ie(a, F, U);
}
function ye(a) {
ae(a, x << 1, 3), he(a, R, j), xe(a);
}
function Fe(a, F, U, M) {
var m, D, t = 0;
a.level > 0 ? (a.strm.data_type === w && (a.strm.data_type = Pe(a)), ze(a, a.l_desc), ze(a, a.d_desc), t = Oe(a), m = a.opt_len + 3 + 7 >>> 3, D = a.static_len + 3 + 7 >>> 3, D <= m && (m = D)) : m = D = U + 5, U + 4 <= m && F !== -1 ? Ze(a, F, U, M) : a.strategy === f || D === m ? (ae(a, (x << 1) + (M ? 1 : 0), 3), Q(a, j, q)) : (ae(a, (u << 1) + (M ? 1 : 0), 3), je(a, a.l_desc.max_code + 1, a.d_desc.max_code + 1, t + 1), Q(a, a.dyn_ltree, a.dyn_dtree)), Ee(a), M && We(a);
}
function Ge(a, F, U) {
return a.pending_buf[a.d_buf + a.last_lit * 2] = F >>> 8 & 255, a.pending_buf[a.d_buf + a.last_lit * 2 + 1] = F & 255, a.pending_buf[a.l_buf + a.last_lit] = U & 255, a.last_lit++, F === 0 ? a.dyn_ltree[U * 2]++ : (a.matches++, F--, a.dyn_ltree[(ce[U] + n + 1) * 2]++, a.dyn_dtree[ge(F) * 2]++), a.last_lit === a.lit_bufsize - 1;
}
y._tr_init = He, y._tr_stored_block = Ze, y._tr_flush_block = Fe, y._tr_tally = Ge, y._tr_align = ye;
}, { "../utils/common": 41 }], 53: [function(v, N, y) {
function d() {
this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0;
}
N.exports = d;
}, {}], 54: [function(v, N, y) {
(function(d) {
(function(f, p) {
if (f.setImmediate)
return;
var o = 1, w = {}, l = !1, h = f.document, x;
function u(S) {
typeof S != "function" && (S = new Function("" + S));
for (var R = new Array(arguments.length - 1), I = 0; I < R.length; I++)
R[I] = arguments[I + 1];
var P = { callback: S, args: R };
return w[o] = P, x(o), o++;
}
function z(S) {
delete w[S];
}
function A(S) {
var R = S.callback, I = S.args;
switch (I.length) {
case 0:
R();
break;
case 1:
R(I[0]);
break;
case 2:
R(I[0], I[1]);
break;
case 3:
R(I[0], I[1], I[2]);
break;
default:
R.apply(p, I);
break;
}
}
function r(S) {
if (l)
setTimeout(r, 0, S);
else {
var R = w[S];
if (R) {
l = !0;
try {
A(R);
} finally {
z(S), l = !1;
}
}
}
}
function n() {
x = function(S) {
process.nextTick(function() {
r(S);
});
};
}
function s() {
if (f.postMessage && !f.importScripts) {
var S = !0, R = f.onmessage;
return f.onmessage = function() {
S = !1;
}, f.postMessage("", "*"), f.onmessage = R, S;
}
}
function b() {
var S = "setImmediate$" + Math.random() + "$", R = function(I) {
I.source === f && typeof I.data == "string" && I.data.indexOf(S) === 0 && r(+I.data.slice(S.length));
};
f.addEventListener ? f.addEventListener("message", R, !1) : f.attachEvent("onmessage", R), x = function(I) {
f.postMessage(S + I, "*");
};
}
function O() {
var S = new MessageChannel();
S.port1.onmessage = function(R) {
var I = R.data;
r(I);
}, x = function(R) {
S.port2.postMessage(R);
};
}
function c() {
var S = h.documentElement;
x = function(R) {
var I = h.createElement("script");
I.onreadystatechange = function() {
r(R), I.onreadystatechange = null, S.removeChild(I), I = null;
}, S.appendChild(I);
};
}
function g() {
x = function(S) {
setTimeout(r, 0, S);
};
}
var k = Object.getPrototypeOf && Object.getPrototypeOf(f);
k = k && k.setTimeout ? k : f, {}.toString.call(f.process) === "[object process]" ? n() : s() ? b() : f.MessageChannel ? O() : h && "onreadystatechange" in h.createElement("script") ? c() : g(), k.setImmediate = u, k.clearImmediate = z;
})(typeof self > "u" ? typeof d > "u" ? this : d : self);
}).call(this, typeof Xe < "u" ? Xe : typeof self < "u" ? self : typeof window < "u" ? window : {});
}, {}] }, {}, [10])(10);
});
})(Qe);
var et = Qe.exports;
const at = /* @__PURE__ */ qe(et);
export {
at as default
};
//# sourceMappingURL=jszip.mjs.map