in src/core/lib/gif.worker.js [2:283]
function a(b, d) {
if ({}.hasOwnProperty.call(a.cache, b)) return a.cache[b];var e = a.resolve(b);if (!e) throw new Error('Failed to resolve module ' + b);var c = { id: b, require: a, filename: b, exports: {}, loaded: !1, parent: d, children: [] };d && d.children.push(c);var f = b.slice(0, b.lastIndexOf('/') + 1);return a.cache[b] = c.exports, e.call(c.exports, c, c.exports, f, b), c.loaded = !0, a.cache[b] = c.exports;
}a.modules = {}, a.cache = {}, a.resolve = function (b) {
return {}.hasOwnProperty.call(a.modules, b) ? a.modules[b] : void 0;
}, a.define = function (b, c) {
a.modules[b] = c;
}, a.define('/gif.worker.coffee', function (d, e, f, g) {
var b, c;b = a('/GIFEncoder.js', d), c = function c(a) {
var c, e, d, f;return c = new b(a.width, a.height), a.index === 0 ? c.writeHeader() : c.firstFrame = !1, c.setTransparent(a.transparent), c.setRepeat(a.repeat), c.setDelay(a.delay), c.setQuality(a.quality), c.addFrame(a.data), a.last && c.finish(), d = c.stream(), a.data = d.pages, a.cursor = d.cursor, a.pageSize = d.constructor.pageSize, a.canTransfer ? (f = function (c) {
for (var b = 0, d = a.data.length; b < d; ++b) {
e = a.data[b], c.push(e.buffer);
}return c;
}.call(this, []), self.postMessage(a, f)) : self.postMessage(a);
}, self.onmessage = function (a) {
return c(a.data);
};
}), a.define('/GIFEncoder.js', function (e, h, i, j) {
function c() {
this.page = -1, this.pages = [], this.newPage();
}function b(a, b) {
this.width = ~~a, this.height = ~~b, this.transparent = null, this.transIndex = 0, this.repeat = -1, this.delay = 0, this.image = null, this.pixels = null, this.indexedPixels = null, this.colorDepth = null, this.colorTab = null, this.usedEntry = new Array(), this.palSize = 7, this.dispose = -1, this.firstFrame = !0, this.sample = 10, this.out = new c();
}var f = a('/TypedNeuQuant.js', e),
g = a('/LZWEncoder.js', e);c.pageSize = 4096, c.charMap = {};for (var d = 0; d < 256; d++) {
c.charMap[d] = String.fromCharCode(d);
}c.prototype.newPage = function () {
this.pages[++this.page] = new Uint8Array(c.pageSize), this.cursor = 0;
}, c.prototype.getData = function () {
var d = '';for (var a = 0; a < this.pages.length; a++) {
for (var b = 0; b < c.pageSize; b++) {
d += c.charMap[this.pages[a][b]];
}
}return d;
}, c.prototype.writeByte = function (a) {
this.cursor >= c.pageSize && this.newPage(), this.pages[this.page][this.cursor++] = a;
}, c.prototype.writeUTFBytes = function (b) {
for (var c = b.length, a = 0; a < c; a++) {
this.writeByte(b.charCodeAt(a));
}
}, c.prototype.writeBytes = function (b, d, e) {
for (var c = e || b.length, a = d || 0; a < c; a++) {
this.writeByte(b[a]);
}
}, b.prototype.setDelay = function (a) {
this.delay = Math.round(a / 10);
}, b.prototype.setFrameRate = function (a) {
this.delay = Math.round(100 / a);
}, b.prototype.setDispose = function (a) {
a >= 0 && (this.dispose = a);
}, b.prototype.setRepeat = function (a) {
this.repeat = a;
}, b.prototype.setTransparent = function (a) {
this.transparent = a;
}, b.prototype.addFrame = function (a) {
this.image = a, this.getImagePixels(), this.analyzePixels(), this.firstFrame && (this.writeLSD(), this.writePalette(), this.repeat >= 0 && this.writeNetscapeExt()), this.writeGraphicCtrlExt(), this.writeImageDesc(), this.firstFrame || this.writePalette(), this.writePixels(), this.firstFrame = !1;
}, b.prototype.finish = function () {
this.out.writeByte(59);
}, b.prototype.setQuality = function (a) {
a < 1 && (a = 1), this.sample = a;
}, b.prototype.writeHeader = function () {
this.out.writeUTFBytes('GIF89a');
}, b.prototype.analyzePixels = function () {
var g = this.pixels.length,
d = g / 3;this.indexedPixels = new Uint8Array(d);var a = new f(this.pixels, this.sample);a.buildColormap(), this.colorTab = a.getColormap();var b = 0;for (var c = 0; c < d; c++) {
var e = a.lookupRGB(this.pixels[b++] & 255, this.pixels[b++] & 255, this.pixels[b++] & 255);this.usedEntry[e] = !0, this.indexedPixels[c] = e;
}this.pixels = null, this.colorDepth = 8, this.palSize = 7, this.transparent !== null && (this.transIndex = this.findClosest(this.transparent));
}, b.prototype.findClosest = function (e) {
if (this.colorTab === null) return -1;var k = (e & 16711680) >> 16,
l = (e & 65280) >> 8,
m = e & 255,
c = 0,
d = 16777216,
j = this.colorTab.length;for (var a = 0; a < j;) {
var f = k - (this.colorTab[a++] & 255),
g = l - (this.colorTab[a++] & 255),
h = m - (this.colorTab[a] & 255),
i = f * f + g * g + h * h,
b = parseInt(a / 3);this.usedEntry[b] && i < d && (d = i, c = b), a++;
}return c;
}, b.prototype.getImagePixels = function () {
var a = this.width,
g = this.height;this.pixels = new Uint8Array(a * g * 3);var b = this.image,
c = 0;for (var d = 0; d < g; d++) {
for (var e = 0; e < a; e++) {
var f = d * a * 4 + e * 4;this.pixels[c++] = b[f], this.pixels[c++] = b[f + 1], this.pixels[c++] = b[f + 2];
}
}
}, b.prototype.writeGraphicCtrlExt = function () {
this.out.writeByte(33), this.out.writeByte(249), this.out.writeByte(4);var b, a;this.transparent === null ? (b = 0, a = 0) : (b = 1, a = 2), this.dispose >= 0 && (a = dispose & 7), a <<= 2, this.out.writeByte(0 | a | 0 | b), this.writeShort(this.delay), this.out.writeByte(this.transIndex), this.out.writeByte(0);
}, b.prototype.writeImageDesc = function () {
this.out.writeByte(44), this.writeShort(0), this.writeShort(0), this.writeShort(this.width), this.writeShort(this.height), this.firstFrame ? this.out.writeByte(0) : this.out.writeByte(128 | this.palSize);
}, b.prototype.writeLSD = function () {
this.writeShort(this.width), this.writeShort(this.height), this.out.writeByte(240 | this.palSize), this.out.writeByte(0), this.out.writeByte(0);
}, b.prototype.writeNetscapeExt = function () {
this.out.writeByte(33), this.out.writeByte(255), this.out.writeByte(11), this.out.writeUTFBytes('NETSCAPE2.0'), this.out.writeByte(3), this.out.writeByte(1), this.writeShort(this.repeat), this.out.writeByte(0);
}, b.prototype.writePalette = function () {
this.out.writeBytes(this.colorTab);var b = 768 - this.colorTab.length;for (var a = 0; a < b; a++) {
this.out.writeByte(0);
}
}, b.prototype.writeShort = function (a) {
this.out.writeByte(a & 255), this.out.writeByte(a >> 8 & 255);
}, b.prototype.writePixels = function () {
var a = new g(this.width, this.height, this.indexedPixels, this.colorDepth);a.encode(this.out);
}, b.prototype.stream = function () {
return this.out;
}, e.exports = b;
}), a.define('/LZWEncoder.js', function (e, g, h, i) {
function f(y, D, C, B) {
function w(a, b) {
r[f++] = a, f >= 254 && t(b);
}function x(b) {
u(a), k = i + 2, j = !0, l(i, b);
}function u(b) {
for (var a = 0; a < b; ++a) {
h[a] = -1;
}
}function A(z, r) {
var g, t, d, e, y, w, s;for (q = z, j = !1, n_bits = q, m = p(n_bits), i = 1 << z - 1, o = i + 1, k = i + 2, f = 0, e = v(), s = 0, g = a; g < 65536; g *= 2) {
++s;
}s = 8 - s, w = a, u(w), l(i, r);a: while ((t = v()) != c) {
if (g = (t << b) + e, d = t << s ^ e, h[d] === g) {
e = n[d];continue;
}if (h[d] >= 0) {
y = w - d, d === 0 && (y = 1);do {
if ((d -= y) < 0 && (d += w), h[d] === g) {
e = n[d];continue a;
}
} while (h[d] >= 0);
}l(e, r), e = t, k < 1 << b ? (n[d] = k++, h[d] = g) : x(r);
}l(e, r), l(o, r);
}function z(a) {
a.writeByte(s), remaining = y * D, curPixel = 0, A(s + 1, a), a.writeByte(0);
}function t(a) {
f > 0 && (a.writeByte(f), a.writeBytes(r, 0, f), f = 0);
}function p(a) {
return (1 << a) - 1;
}function v() {
if (remaining === 0) return c;--remaining;var a = C[curPixel++];return a & 255;
}function l(a, c) {
g &= d[e], e > 0 ? g |= a << e : g = a, e += n_bits;while (e >= 8) {
w(g & 255, c), g >>= 8, e -= 8;
}if ((k > m || j) && (j ? (m = p(n_bits = q), j = !1) : (++n_bits, n_bits == b ? m = 1 << b : m = p(n_bits))), a == o) {
while (e > 0) {
w(g & 255, c), g >>= 8, e -= 8;
}t(c);
}
}var s = Math.max(2, B),
r = new Uint8Array(256),
h = new Int32Array(a),
n = new Int32Array(a),
g,
e = 0,
f,
k = 0,
m,
j = !1,
q,
i,
o;this.encode = z;
}var c = -1,
b = 12,
a = 5003,
d = [0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535];e.exports = f;
}), a.define('/TypedNeuQuant.js', function (A, F, E, D) {
function C(A, B) {
function I() {
o = [], q = new Int32Array(256), t = new Int32Array(a), y = new Int32Array(a), z = new Int32Array(a >> 3);var c, d;for (c = 0; c < a; c++) {
d = (c << b + 8) / a, o[c] = new Float64Array([d, d, d, 0]), y[c] = e / a, t[c] = 0;
}
}function J() {
for (var c = 0; c < a; c++) {
o[c][0] >>= b, o[c][1] >>= b, o[c][2] >>= b, o[c][3] = c;
}
}function K(b, a, c, e, f) {
o[a][0] -= b * (o[a][0] - c) / d, o[a][1] -= b * (o[a][1] - e) / d, o[a][2] -= b * (o[a][2] - f) / d;
}function L(j, e, n, l, k) {
var h = Math.abs(e - j),
i = Math.min(e + j, a),
g = e + 1,
f = e - 1,
m = 1,
b,
d;while (g < i || f > h) {
d = z[m++], g < i && (b = o[g++], b[0] -= d * (b[0] - n) / c, b[1] -= d * (b[1] - l) / c, b[2] -= d * (b[2] - k) / c), f > h && (b = o[f--], b[0] -= d * (b[0] - n) / c, b[1] -= d * (b[1] - l) / c, b[2] -= d * (b[2] - k) / c);
}
}function C(p, s, q) {
var h = 2147483647,
k = h,
d = -1,
m = d,
c,
j,
e,
n,
l;for (c = 0; c < a; c++) {
j = o[c], e = Math.abs(j[0] - p) + Math.abs(j[1] - s) + Math.abs(j[2] - q), e < h && (h = e, d = c), n = e - (t[c] >> i - b), n < k && (k = n, m = c), l = y[c] >> g, y[c] -= l, t[c] += l << f;
}return y[d] += x, t[d] -= r, m;
}function D() {
var d,
b,
e,
c,
h,
g,
f = 0,
i = 0;for (d = 0; d < a; d++) {
for (e = o[d], h = d, g = e[1], b = d + 1; b < a; b++) {
c = o[b], c[1] < g && (h = b, g = c[1]);
}if (c = o[h], d != h && (b = c[0], c[0] = e[0], e[0] = b, b = c[1], c[1] = e[1], e[1] = b, b = c[2], c[2] = e[2], e[2] = b, b = c[3], c[3] = e[3], e[3] = b), g != f) {
for (q[f] = i + d >> 1, b = f + 1; b < g; b++) {
q[b] = d;
}f = g, i = d;
}
}for (q[f] = i + n >> 1, b = f + 1; b < 256; b++) {
q[b] = n;
}
}function E(j, i, k) {
var b,
d,
c,
e = 1e3,
h = -1,
f = q[i],
g = f - 1;while (f < a || g >= 0) {
f < a && (d = o[f], c = d[1] - i, c >= e ? f = a : (f++, c < 0 && (c = -c), b = d[0] - j, b < 0 && (b = -b), c += b, c < e && (b = d[2] - k, b < 0 && (b = -b), c += b, c < e && (e = c, h = d[3])))), g >= 0 && (d = o[g], c = i - d[1], c >= e ? g = -1 : (g--, c < 0 && (c = -c), b = d[0] - j, b < 0 && (b = -b), c += b, c < e && (b = d[2] - k, b < 0 && (b = -b), c += b, c < e && (e = c, h = d[3]))));
}return h;
}function F() {
var c,
f = A.length,
D = 30 + (B - 1) / 3,
y = f / (3 * B),
q = ~~(y / w),
n = d,
o = u,
a = o >> h;for (a <= 1 && (a = 0), c = 0; c < a; c++) {
z[c] = n * ((a * a - c * c) * m / (a * a));
}var i;f < s ? (B = 1, i = 3) : f % l !== 0 ? i = 3 * l : f % k !== 0 ? i = 3 * k : f % p !== 0 ? i = 3 * p : i = 3 * j;var r,
t,
x,
e,
g = 0;c = 0;while (c < y) {
if (r = (A[g] & 255) << b, t = (A[g + 1] & 255) << b, x = (A[g + 2] & 255) << b, e = C(r, t, x), K(n, e, r, t, x), a !== 0 && L(a, e, r, t, x), g += i, g >= f && (g -= f), c++, q === 0 && (q = 1), c % q === 0) for (n -= n / D, o -= o / v, a = o >> h, a <= 1 && (a = 0), e = 0; e < a; e++) {
z[e] = n * ((a * a - e * e) * m / (a * a));
}
}
}function G() {
I(), F(), J(), D();
}function H() {
var b = [],
g = [];for (var c = 0; c < a; c++) {
g[o[c][3]] = c;
}var d = 0;for (var e = 0; e < a; e++) {
var f = g[e];b[d++] = o[f][0], b[d++] = o[f][1], b[d++] = o[f][2];
}return b;
}var o, q, t, y, z;this.buildColormap = G, this.getColormap = H, this.lookupRGB = E;
}var w = 100,
a = 256,
n = a - 1,
b = 4,
i = 16,
e = 1 << i,
f = 10,
B = 1 << f,
g = 10,
x = e >> g,
r = e << f - g,
z = a >> 3,
h = 6,
t = 1 << h,
u = z * t,
v = 30,
o = 10,
d = 1 << o,
q = 8,
m = 1 << q,
y = o + q,
c = 1 << y,
l = 499,
k = 491,
p = 487,
j = 503,
s = 3 * j;A.exports = C;
}), a('/gif.worker.coffee');