Index: imaps-frontend/node_modules/stackblur-canvas/dist/stackblur-es.js
===================================================================
--- imaps-frontend/node_modules/stackblur-canvas/dist/stackblur-es.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/stackblur-canvas/dist/stackblur-es.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -0,0 +1,639 @@
+function _typeof(obj) {
+  "@babel/helpers - typeof";
+
+  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+    _typeof = function (obj) {
+      return typeof obj;
+    };
+  } else {
+    _typeof = function (obj) {
+      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+    };
+  }
+
+  return _typeof(obj);
+}
+
+function _classCallCheck(instance, Constructor) {
+  if (!(instance instanceof Constructor)) {
+    throw new TypeError("Cannot call a class as a function");
+  }
+}
+
+/* eslint-disable no-bitwise -- used for calculations */
+
+/* eslint-disable unicorn/prefer-query-selector -- aiming at
+  backward-compatibility */
+
+/**
+* StackBlur - a fast almost Gaussian Blur For Canvas
+*
+* In case you find this class useful - especially in commercial projects -
+* I am not totally unhappy for a small donation to my PayPal account
+* mario@quasimondo.de
+*
+* Or support me on flattr:
+* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}.
+*
+* @module StackBlur
+* @author Mario Klingemann
+* Contact: mario@quasimondo.com
+* Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}
+* Twitter: @quasimondo
+*
+* @copyright (c) 2010 Mario Klingemann
+*
+* Permission is hereby granted, free of charge, to any person
+* obtaining a copy of this software and associated documentation
+* files (the "Software"), to deal in the Software without
+* restriction, including without limitation the rights to use,
+* copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following
+* conditions:
+*
+* The above copyright notice and this permission notice shall be
+* included in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+* OTHER DEALINGS IN THE SOFTWARE.
+*/
+var mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];
+var shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];
+/**
+ * @param {string|HTMLImageElement} img
+ * @param {string|HTMLCanvasElement} canvas
+ * @param {Float} radius
+ * @param {boolean} blurAlphaChannel
+ * @param {boolean} useOffset
+ * @param {boolean} skipStyles
+ * @returns {undefined}
+ */
+
+function processImage(img, canvas, radius, blurAlphaChannel, useOffset, skipStyles) {
+  if (typeof img === 'string') {
+    img = document.getElementById(img);
+  }
+
+  if (!img || Object.prototype.toString.call(img).slice(8, -1) === 'HTMLImageElement' && !('naturalWidth' in img)) {
+    return;
+  }
+
+  var dimensionType = useOffset ? 'offset' : 'natural';
+  var w = img[dimensionType + 'Width'];
+  var h = img[dimensionType + 'Height']; // add ImageBitmap support,can blur texture source
+
+  if (Object.prototype.toString.call(img).slice(8, -1) === 'ImageBitmap') {
+    w = img.width;
+    h = img.height;
+  }
+
+  if (typeof canvas === 'string') {
+    canvas = document.getElementById(canvas);
+  }
+
+  if (!canvas || !('getContext' in canvas)) {
+    return;
+  }
+
+  if (!skipStyles) {
+    canvas.style.width = w + 'px';
+    canvas.style.height = h + 'px';
+  }
+
+  canvas.width = w;
+  canvas.height = h;
+  var context = canvas.getContext('2d');
+  context.clearRect(0, 0, w, h);
+  context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h);
+
+  if (isNaN(radius) || radius < 1) {
+    return;
+  }
+
+  if (blurAlphaChannel) {
+    processCanvasRGBA(canvas, 0, 0, w, h, radius);
+  } else {
+    processCanvasRGB(canvas, 0, 0, w, h, radius);
+  }
+}
+/**
+ * @param {string|HTMLCanvasElement} canvas
+ * @param {Integer} topX
+ * @param {Integer} topY
+ * @param {Integer} width
+ * @param {Integer} height
+ * @throws {Error|TypeError}
+ * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}
+ */
+
+
+function getImageDataFromCanvas(canvas, topX, topY, width, height) {
+  if (typeof canvas === 'string') {
+    canvas = document.getElementById(canvas);
+  }
+
+  if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) {
+    throw new TypeError('Expecting canvas with `getContext` method ' + 'in processCanvasRGB(A) calls!');
+  }
+
+  var context = canvas.getContext('2d');
+
+  try {
+    return context.getImageData(topX, topY, width, height);
+  } catch (e) {
+    throw new Error('unable to access image data: ' + e);
+  }
+}
+/**
+ * @param {HTMLCanvasElement} canvas
+ * @param {Integer} topX
+ * @param {Integer} topY
+ * @param {Integer} width
+ * @param {Integer} height
+ * @param {Float} radius
+ * @returns {undefined}
+ */
+
+
+function processCanvasRGBA(canvas, topX, topY, width, height, radius) {
+  if (isNaN(radius) || radius < 1) {
+    return;
+  }
+
+  radius |= 0;
+  var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);
+  imageData = processImageDataRGBA(imageData, topX, topY, width, height, radius);
+  canvas.getContext('2d').putImageData(imageData, topX, topY);
+}
+/**
+ * @param {ImageData} imageData
+ * @param {Integer} topX
+ * @param {Integer} topY
+ * @param {Integer} width
+ * @param {Integer} height
+ * @param {Float} radius
+ * @returns {ImageData}
+ */
+
+
+function processImageDataRGBA(imageData, topX, topY, width, height, radius) {
+  var pixels = imageData.data;
+  var div = 2 * radius + 1; // const w4 = width << 2;
+
+  var widthMinus1 = width - 1;
+  var heightMinus1 = height - 1;
+  var radiusPlus1 = radius + 1;
+  var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;
+  var stackStart = new BlurStack();
+  var stack = stackStart;
+  var stackEnd;
+
+  for (var i = 1; i < div; i++) {
+    stack = stack.next = new BlurStack();
+
+    if (i === radiusPlus1) {
+      stackEnd = stack;
+    }
+  }
+
+  stack.next = stackStart;
+  var stackIn = null,
+      stackOut = null,
+      yw = 0,
+      yi = 0;
+  var mulSum = mulTable[radius];
+  var shgSum = shgTable[radius];
+
+  for (var y = 0; y < height; y++) {
+    stack = stackStart;
+    var pr = pixels[yi],
+        pg = pixels[yi + 1],
+        pb = pixels[yi + 2],
+        pa = pixels[yi + 3];
+
+    for (var _i = 0; _i < radiusPlus1; _i++) {
+      stack.r = pr;
+      stack.g = pg;
+      stack.b = pb;
+      stack.a = pa;
+      stack = stack.next;
+    }
+
+    var rInSum = 0,
+        gInSum = 0,
+        bInSum = 0,
+        aInSum = 0,
+        rOutSum = radiusPlus1 * pr,
+        gOutSum = radiusPlus1 * pg,
+        bOutSum = radiusPlus1 * pb,
+        aOutSum = radiusPlus1 * pa,
+        rSum = sumFactor * pr,
+        gSum = sumFactor * pg,
+        bSum = sumFactor * pb,
+        aSum = sumFactor * pa;
+
+    for (var _i2 = 1; _i2 < radiusPlus1; _i2++) {
+      var p = yi + ((widthMinus1 < _i2 ? widthMinus1 : _i2) << 2);
+      var r = pixels[p],
+          g = pixels[p + 1],
+          b = pixels[p + 2],
+          a = pixels[p + 3];
+      var rbs = radiusPlus1 - _i2;
+      rSum += (stack.r = r) * rbs;
+      gSum += (stack.g = g) * rbs;
+      bSum += (stack.b = b) * rbs;
+      aSum += (stack.a = a) * rbs;
+      rInSum += r;
+      gInSum += g;
+      bInSum += b;
+      aInSum += a;
+      stack = stack.next;
+    }
+
+    stackIn = stackStart;
+    stackOut = stackEnd;
+
+    for (var x = 0; x < width; x++) {
+      var paInitial = aSum * mulSum >>> shgSum;
+      pixels[yi + 3] = paInitial;
+
+      if (paInitial !== 0) {
+        var _a2 = 255 / paInitial;
+
+        pixels[yi] = (rSum * mulSum >>> shgSum) * _a2;
+        pixels[yi + 1] = (gSum * mulSum >>> shgSum) * _a2;
+        pixels[yi + 2] = (bSum * mulSum >>> shgSum) * _a2;
+      } else {
+        pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;
+      }
+
+      rSum -= rOutSum;
+      gSum -= gOutSum;
+      bSum -= bOutSum;
+      aSum -= aOutSum;
+      rOutSum -= stackIn.r;
+      gOutSum -= stackIn.g;
+      bOutSum -= stackIn.b;
+      aOutSum -= stackIn.a;
+
+      var _p = x + radius + 1;
+
+      _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;
+      rInSum += stackIn.r = pixels[_p];
+      gInSum += stackIn.g = pixels[_p + 1];
+      bInSum += stackIn.b = pixels[_p + 2];
+      aInSum += stackIn.a = pixels[_p + 3];
+      rSum += rInSum;
+      gSum += gInSum;
+      bSum += bInSum;
+      aSum += aInSum;
+      stackIn = stackIn.next;
+      var _stackOut = stackOut,
+          _r = _stackOut.r,
+          _g = _stackOut.g,
+          _b = _stackOut.b,
+          _a = _stackOut.a;
+      rOutSum += _r;
+      gOutSum += _g;
+      bOutSum += _b;
+      aOutSum += _a;
+      rInSum -= _r;
+      gInSum -= _g;
+      bInSum -= _b;
+      aInSum -= _a;
+      stackOut = stackOut.next;
+      yi += 4;
+    }
+
+    yw += width;
+  }
+
+  for (var _x = 0; _x < width; _x++) {
+    yi = _x << 2;
+
+    var _pr = pixels[yi],
+        _pg = pixels[yi + 1],
+        _pb = pixels[yi + 2],
+        _pa = pixels[yi + 3],
+        _rOutSum = radiusPlus1 * _pr,
+        _gOutSum = radiusPlus1 * _pg,
+        _bOutSum = radiusPlus1 * _pb,
+        _aOutSum = radiusPlus1 * _pa,
+        _rSum = sumFactor * _pr,
+        _gSum = sumFactor * _pg,
+        _bSum = sumFactor * _pb,
+        _aSum = sumFactor * _pa;
+
+    stack = stackStart;
+
+    for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {
+      stack.r = _pr;
+      stack.g = _pg;
+      stack.b = _pb;
+      stack.a = _pa;
+      stack = stack.next;
+    }
+
+    var yp = width;
+    var _gInSum = 0,
+        _bInSum = 0,
+        _aInSum = 0,
+        _rInSum = 0;
+
+    for (var _i4 = 1; _i4 <= radius; _i4++) {
+      yi = yp + _x << 2;
+
+      var _rbs = radiusPlus1 - _i4;
+
+      _rSum += (stack.r = _pr = pixels[yi]) * _rbs;
+      _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;
+      _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;
+      _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;
+      _rInSum += _pr;
+      _gInSum += _pg;
+      _bInSum += _pb;
+      _aInSum += _pa;
+      stack = stack.next;
+
+      if (_i4 < heightMinus1) {
+        yp += width;
+      }
+    }
+
+    yi = _x;
+    stackIn = stackStart;
+    stackOut = stackEnd;
+
+    for (var _y = 0; _y < height; _y++) {
+      var _p2 = yi << 2;
+
+      pixels[_p2 + 3] = _pa = _aSum * mulSum >>> shgSum;
+
+      if (_pa > 0) {
+        _pa = 255 / _pa;
+        pixels[_p2] = (_rSum * mulSum >>> shgSum) * _pa;
+        pixels[_p2 + 1] = (_gSum * mulSum >>> shgSum) * _pa;
+        pixels[_p2 + 2] = (_bSum * mulSum >>> shgSum) * _pa;
+      } else {
+        pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;
+      }
+
+      _rSum -= _rOutSum;
+      _gSum -= _gOutSum;
+      _bSum -= _bOutSum;
+      _aSum -= _aOutSum;
+      _rOutSum -= stackIn.r;
+      _gOutSum -= stackIn.g;
+      _bOutSum -= stackIn.b;
+      _aOutSum -= stackIn.a;
+      _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;
+      _rSum += _rInSum += stackIn.r = pixels[_p2];
+      _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];
+      _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];
+      _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];
+      stackIn = stackIn.next;
+      _rOutSum += _pr = stackOut.r;
+      _gOutSum += _pg = stackOut.g;
+      _bOutSum += _pb = stackOut.b;
+      _aOutSum += _pa = stackOut.a;
+      _rInSum -= _pr;
+      _gInSum -= _pg;
+      _bInSum -= _pb;
+      _aInSum -= _pa;
+      stackOut = stackOut.next;
+      yi += width;
+    }
+  }
+
+  return imageData;
+}
+/**
+ * @param {HTMLCanvasElement} canvas
+ * @param {Integer} topX
+ * @param {Integer} topY
+ * @param {Integer} width
+ * @param {Integer} height
+ * @param {Float} radius
+ * @returns {undefined}
+ */
+
+
+function processCanvasRGB(canvas, topX, topY, width, height, radius) {
+  if (isNaN(radius) || radius < 1) {
+    return;
+  }
+
+  radius |= 0;
+  var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);
+  imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);
+  canvas.getContext('2d').putImageData(imageData, topX, topY);
+}
+/**
+ * @param {ImageData} imageData
+ * @param {Integer} topX
+ * @param {Integer} topY
+ * @param {Integer} width
+ * @param {Integer} height
+ * @param {Float} radius
+ * @returns {ImageData}
+ */
+
+
+function processImageDataRGB(imageData, topX, topY, width, height, radius) {
+  var pixels = imageData.data;
+  var div = 2 * radius + 1; // const w4 = width << 2;
+
+  var widthMinus1 = width - 1;
+  var heightMinus1 = height - 1;
+  var radiusPlus1 = radius + 1;
+  var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;
+  var stackStart = new BlurStack();
+  var stack = stackStart;
+  var stackEnd;
+
+  for (var i = 1; i < div; i++) {
+    stack = stack.next = new BlurStack();
+
+    if (i === radiusPlus1) {
+      stackEnd = stack;
+    }
+  }
+
+  stack.next = stackStart;
+  var stackIn = null;
+  var stackOut = null;
+  var mulSum = mulTable[radius];
+  var shgSum = shgTable[radius];
+  var p, rbs;
+  var yw = 0,
+      yi = 0;
+
+  for (var y = 0; y < height; y++) {
+    var pr = pixels[yi],
+        pg = pixels[yi + 1],
+        pb = pixels[yi + 2],
+        rOutSum = radiusPlus1 * pr,
+        gOutSum = radiusPlus1 * pg,
+        bOutSum = radiusPlus1 * pb,
+        rSum = sumFactor * pr,
+        gSum = sumFactor * pg,
+        bSum = sumFactor * pb;
+    stack = stackStart;
+
+    for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {
+      stack.r = pr;
+      stack.g = pg;
+      stack.b = pb;
+      stack = stack.next;
+    }
+
+    var rInSum = 0,
+        gInSum = 0,
+        bInSum = 0;
+
+    for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {
+      p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);
+      rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);
+      gSum += (stack.g = pg = pixels[p + 1]) * rbs;
+      bSum += (stack.b = pb = pixels[p + 2]) * rbs;
+      rInSum += pr;
+      gInSum += pg;
+      bInSum += pb;
+      stack = stack.next;
+    }
+
+    stackIn = stackStart;
+    stackOut = stackEnd;
+
+    for (var x = 0; x < width; x++) {
+      pixels[yi] = rSum * mulSum >>> shgSum;
+      pixels[yi + 1] = gSum * mulSum >>> shgSum;
+      pixels[yi + 2] = bSum * mulSum >>> shgSum;
+      rSum -= rOutSum;
+      gSum -= gOutSum;
+      bSum -= bOutSum;
+      rOutSum -= stackIn.r;
+      gOutSum -= stackIn.g;
+      bOutSum -= stackIn.b;
+      p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;
+      rInSum += stackIn.r = pixels[p];
+      gInSum += stackIn.g = pixels[p + 1];
+      bInSum += stackIn.b = pixels[p + 2];
+      rSum += rInSum;
+      gSum += gInSum;
+      bSum += bInSum;
+      stackIn = stackIn.next;
+      rOutSum += pr = stackOut.r;
+      gOutSum += pg = stackOut.g;
+      bOutSum += pb = stackOut.b;
+      rInSum -= pr;
+      gInSum -= pg;
+      bInSum -= pb;
+      stackOut = stackOut.next;
+      yi += 4;
+    }
+
+    yw += width;
+  }
+
+  for (var _x2 = 0; _x2 < width; _x2++) {
+    yi = _x2 << 2;
+
+    var _pr2 = pixels[yi],
+        _pg2 = pixels[yi + 1],
+        _pb2 = pixels[yi + 2],
+        _rOutSum2 = radiusPlus1 * _pr2,
+        _gOutSum2 = radiusPlus1 * _pg2,
+        _bOutSum2 = radiusPlus1 * _pb2,
+        _rSum2 = sumFactor * _pr2,
+        _gSum2 = sumFactor * _pg2,
+        _bSum2 = sumFactor * _pb2;
+
+    stack = stackStart;
+
+    for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {
+      stack.r = _pr2;
+      stack.g = _pg2;
+      stack.b = _pb2;
+      stack = stack.next;
+    }
+
+    var _rInSum2 = 0,
+        _gInSum2 = 0,
+        _bInSum2 = 0;
+
+    for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {
+      yi = yp + _x2 << 2;
+      _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);
+      _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;
+      _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;
+      _rInSum2 += _pr2;
+      _gInSum2 += _pg2;
+      _bInSum2 += _pb2;
+      stack = stack.next;
+
+      if (_i8 < heightMinus1) {
+        yp += width;
+      }
+    }
+
+    yi = _x2;
+    stackIn = stackStart;
+    stackOut = stackEnd;
+
+    for (var _y2 = 0; _y2 < height; _y2++) {
+      p = yi << 2;
+      pixels[p] = _rSum2 * mulSum >>> shgSum;
+      pixels[p + 1] = _gSum2 * mulSum >>> shgSum;
+      pixels[p + 2] = _bSum2 * mulSum >>> shgSum;
+      _rSum2 -= _rOutSum2;
+      _gSum2 -= _gOutSum2;
+      _bSum2 -= _bOutSum2;
+      _rOutSum2 -= stackIn.r;
+      _gOutSum2 -= stackIn.g;
+      _bOutSum2 -= stackIn.b;
+      p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;
+      _rSum2 += _rInSum2 += stackIn.r = pixels[p];
+      _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];
+      _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];
+      stackIn = stackIn.next;
+      _rOutSum2 += _pr2 = stackOut.r;
+      _gOutSum2 += _pg2 = stackOut.g;
+      _bOutSum2 += _pb2 = stackOut.b;
+      _rInSum2 -= _pr2;
+      _gInSum2 -= _pg2;
+      _bInSum2 -= _pb2;
+      stackOut = stackOut.next;
+      yi += width;
+    }
+  }
+
+  return imageData;
+}
+/**
+ *
+ */
+
+
+var BlurStack =
+/**
+ * Set properties.
+ */
+function BlurStack() {
+  _classCallCheck(this, BlurStack);
+
+  this.r = 0;
+  this.g = 0;
+  this.b = 0;
+  this.a = 0;
+  this.next = null;
+};
+
+export { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA };
Index: imaps-frontend/node_modules/stackblur-canvas/dist/stackblur-es.min.js
===================================================================
--- imaps-frontend/node_modules/stackblur-canvas/dist/stackblur-es.min.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/stackblur-canvas/dist/stackblur-es.min.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -0,0 +1,2 @@
+function t(r){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(r)}var r=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],a=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function e(t,r,a,e,n,i){if("string"==typeof t&&(t=document.getElementById(t)),t&&("HTMLImageElement"!==Object.prototype.toString.call(t).slice(8,-1)||"naturalWidth"in t)){var f=n?"offset":"natural",c=t[f+"Width"],l=t[f+"Height"];if("ImageBitmap"===Object.prototype.toString.call(t).slice(8,-1)&&(c=t.width,l=t.height),"string"==typeof r&&(r=document.getElementById(r)),r&&"getContext"in r){i||(r.style.width=c+"px",r.style.height=l+"px"),r.width=c,r.height=l;var s=r.getContext("2d");s.clearRect(0,0,c,l),s.drawImage(t,0,0,t.naturalWidth,t.naturalHeight,0,0,c,l),isNaN(a)||a<1||(e?o(r,0,0,c,l,a):g(r,0,0,c,l,a))}}}function n(r,a,e,n,o){if("string"==typeof r&&(r=document.getElementById(r)),!r||"object"!==t(r)||!("getContext"in r))throw new TypeError("Expecting canvas with `getContext` method in processCanvasRGB(A) calls!");var i=r.getContext("2d");try{return i.getImageData(a,e,n,o)}catch(t){throw new Error("unable to access image data: "+t)}}function o(t,r,a,e,o,g){if(!(isNaN(g)||g<1)){g|=0;var f=n(t,r,a,e,o);f=i(f,r,a,e,o,g),t.getContext("2d").putImageData(f,r,a)}}function i(t,e,n,o,i,g){for(var f,l=t.data,s=2*g+1,v=o-1,u=i-1,b=g+1,x=b*(b+1)/2,h=new c,m=h,y=1;y<s;y++)m=m.next=new c,y===b&&(f=m);m.next=h;for(var p=null,d=null,w=0,B=0,C=r[g],I=a[g],E=0;E<i;E++){m=h;for(var S=l[B],N=l[B+1],R=l[B+2],D=l[B+3],G=0;G<b;G++)m.r=S,m.g=N,m.b=R,m.a=D,m=m.next;for(var j=0,A=0,H=0,T=0,W=b*S,O=b*N,L=b*R,M=b*D,k=x*S,q=x*N,z=x*R,F=x*D,J=1;J<b;J++){var K=B+((v<J?v:J)<<2),P=l[K],Q=l[K+1],U=l[K+2],V=l[K+3],X=b-J;k+=(m.r=P)*X,q+=(m.g=Q)*X,z+=(m.b=U)*X,F+=(m.a=V)*X,j+=P,A+=Q,H+=U,T+=V,m=m.next}p=h,d=f;for(var Y=0;Y<o;Y++){var Z=F*C>>>I;if(l[B+3]=Z,0!==Z){var $=255/Z;l[B]=(k*C>>>I)*$,l[B+1]=(q*C>>>I)*$,l[B+2]=(z*C>>>I)*$}else l[B]=l[B+1]=l[B+2]=0;k-=W,q-=O,z-=L,F-=M,W-=p.r,O-=p.g,L-=p.b,M-=p.a;var _=Y+g+1;_=w+(_<v?_:v)<<2,k+=j+=p.r=l[_],q+=A+=p.g=l[_+1],z+=H+=p.b=l[_+2],F+=T+=p.a=l[_+3],p=p.next;var tt=d,rt=tt.r,at=tt.g,et=tt.b,nt=tt.a;W+=rt,O+=at,L+=et,M+=nt,j-=rt,A-=at,H-=et,T-=nt,d=d.next,B+=4}w+=o}for(var ot=0;ot<o;ot++){var it=l[B=ot<<2],gt=l[B+1],ft=l[B+2],ct=l[B+3],lt=b*it,st=b*gt,vt=b*ft,ut=b*ct,bt=x*it,xt=x*gt,ht=x*ft,mt=x*ct;m=h;for(var yt=0;yt<b;yt++)m.r=it,m.g=gt,m.b=ft,m.a=ct,m=m.next;for(var pt=o,dt=0,wt=0,Bt=0,Ct=0,It=1;It<=g;It++){B=pt+ot<<2;var Et=b-It;bt+=(m.r=it=l[B])*Et,xt+=(m.g=gt=l[B+1])*Et,ht+=(m.b=ft=l[B+2])*Et,mt+=(m.a=ct=l[B+3])*Et,Ct+=it,dt+=gt,wt+=ft,Bt+=ct,m=m.next,It<u&&(pt+=o)}B=ot,p=h,d=f;for(var St=0;St<i;St++){var Nt=B<<2;l[Nt+3]=ct=mt*C>>>I,ct>0?(ct=255/ct,l[Nt]=(bt*C>>>I)*ct,l[Nt+1]=(xt*C>>>I)*ct,l[Nt+2]=(ht*C>>>I)*ct):l[Nt]=l[Nt+1]=l[Nt+2]=0,bt-=lt,xt-=st,ht-=vt,mt-=ut,lt-=p.r,st-=p.g,vt-=p.b,ut-=p.a,Nt=ot+((Nt=St+b)<u?Nt:u)*o<<2,bt+=Ct+=p.r=l[Nt],xt+=dt+=p.g=l[Nt+1],ht+=wt+=p.b=l[Nt+2],mt+=Bt+=p.a=l[Nt+3],p=p.next,lt+=it=d.r,st+=gt=d.g,vt+=ft=d.b,ut+=ct=d.a,Ct-=it,dt-=gt,wt-=ft,Bt-=ct,d=d.next,B+=o}}return t}function g(t,r,a,e,o,i){if(!(isNaN(i)||i<1)){i|=0;var g=n(t,r,a,e,o);g=f(g,r,a,e,o,i),t.getContext("2d").putImageData(g,r,a)}}function f(t,e,n,o,i,g){for(var f,l=t.data,s=2*g+1,v=o-1,u=i-1,b=g+1,x=b*(b+1)/2,h=new c,m=h,y=1;y<s;y++)m=m.next=new c,y===b&&(f=m);m.next=h;for(var p,d,w=null,B=null,C=r[g],I=a[g],E=0,S=0,N=0;N<i;N++){var R=l[S],D=l[S+1],G=l[S+2],j=b*R,A=b*D,H=b*G,T=x*R,W=x*D,O=x*G;m=h;for(var L=0;L<b;L++)m.r=R,m.g=D,m.b=G,m=m.next;for(var M=0,k=0,q=0,z=1;z<b;z++)p=S+((v<z?v:z)<<2),T+=(m.r=R=l[p])*(d=b-z),W+=(m.g=D=l[p+1])*d,O+=(m.b=G=l[p+2])*d,M+=R,k+=D,q+=G,m=m.next;w=h,B=f;for(var F=0;F<o;F++)l[S]=T*C>>>I,l[S+1]=W*C>>>I,l[S+2]=O*C>>>I,T-=j,W-=A,O-=H,j-=w.r,A-=w.g,H-=w.b,p=E+((p=F+g+1)<v?p:v)<<2,T+=M+=w.r=l[p],W+=k+=w.g=l[p+1],O+=q+=w.b=l[p+2],w=w.next,j+=R=B.r,A+=D=B.g,H+=G=B.b,M-=R,k-=D,q-=G,B=B.next,S+=4;E+=o}for(var J=0;J<o;J++){var K=l[S=J<<2],P=l[S+1],Q=l[S+2],U=b*K,V=b*P,X=b*Q,Y=x*K,Z=x*P,$=x*Q;m=h;for(var _=0;_<b;_++)m.r=K,m.g=P,m.b=Q,m=m.next;for(var tt=0,rt=0,at=0,et=1,nt=o;et<=g;et++)S=nt+J<<2,Y+=(m.r=K=l[S])*(d=b-et),Z+=(m.g=P=l[S+1])*d,$+=(m.b=Q=l[S+2])*d,tt+=K,rt+=P,at+=Q,m=m.next,et<u&&(nt+=o);S=J,w=h,B=f;for(var ot=0;ot<i;ot++)l[p=S<<2]=Y*C>>>I,l[p+1]=Z*C>>>I,l[p+2]=$*C>>>I,Y-=U,Z-=V,$-=X,U-=w.r,V-=w.g,X-=w.b,p=J+((p=ot+b)<u?p:u)*o<<2,Y+=tt+=w.r=l[p],Z+=rt+=w.g=l[p+1],$+=at+=w.b=l[p+2],w=w.next,U+=K=B.r,V+=P=B.g,X+=Q=B.b,tt-=K,rt-=P,at-=Q,B=B.next,S+=o}return t}var c=function t(){!function(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,t),this.r=0,this.g=0,this.b=0,this.a=0,this.next=null};export{c as BlurStack,g as canvasRGB,o as canvasRGBA,e as image,f as imageDataRGB,i as imageDataRGBA};
+//# sourceMappingURL=stackblur-es.min.js.map
Index: imaps-frontend/node_modules/stackblur-canvas/dist/stackblur-es.min.js.map
===================================================================
--- imaps-frontend/node_modules/stackblur-canvas/dist/stackblur-es.min.js.map	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/stackblur-canvas/dist/stackblur-es.min.js.map	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -0,0 +1,1 @@
+{"version":3,"file":"stackblur-es.min.js","sources":["../src/stackblur.js"],"sourcesContent":["/* eslint-disable no-bitwise -- used for calculations */\n/* eslint-disable unicorn/prefer-query-selector -- aiming at\n  backward-compatibility */\n/**\n* StackBlur - a fast almost Gaussian Blur For Canvas\n*\n* In case you find this class useful - especially in commercial projects -\n* I am not totally unhappy for a small donation to my PayPal account\n* mario@quasimondo.de\n*\n* Or support me on flattr:\n* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}.\n*\n* @module StackBlur\n* @author Mario Klingemann\n* Contact: mario@quasimondo.com\n* Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}\n* Twitter: @quasimondo\n*\n* @copyright (c) 2010 Mario Klingemann\n*\n* Permission is hereby granted, free of charge, to any person\n* obtaining a copy of this software and associated documentation\n* files (the \"Software\"), to deal in the Software without\n* restriction, including without limitation the rights to use,\n* copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the\n* Software is furnished to do so, subject to the following\n* conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n* OTHER DEALINGS IN THE SOFTWARE.\n*/\n\nconst mulTable = [\n  512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292,\n  512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292,\n  273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259,\n  496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292,\n  282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373,\n  364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259,\n  507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381,\n  374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292,\n  287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461,\n  454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373,\n  368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309,\n  305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259,\n  257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442,\n  437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381,\n  377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332,\n  329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292,\n  289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259\n];\n\nconst shgTable = [\n  9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17,\n  17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19,\n  19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20,\n  20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21,\n  21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,\n  21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,\n  22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n  22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23,\n  23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n  23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n  23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n  23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24\n];\n\n/**\n * @param {string|HTMLImageElement} img\n * @param {string|HTMLCanvasElement} canvas\n * @param {Float} radius\n * @param {boolean} blurAlphaChannel\n * @param {boolean} useOffset\n * @param {boolean} skipStyles\n * @returns {undefined}\n */\nfunction processImage (\n  img, canvas, radius, blurAlphaChannel, useOffset, skipStyles\n) {\n  if (typeof img === 'string') {\n    img = document.getElementById(img);\n  }\n\n  if (\n    !img ||\n    (Object.prototype.toString.call(img).slice(8, -1) ===\n      'HTMLImageElement' && !('naturalWidth' in img))\n  ) {\n    return;\n  }\n\n  const dimensionType = useOffset ? 'offset' : 'natural';\n  let w = img[dimensionType + 'Width'];\n  let h = img[dimensionType + 'Height'];\n\n  // add ImageBitmap support,can blur texture source\n  if (Object.prototype.toString.call(img).slice(8, -1) === 'ImageBitmap') {\n    w = img.width;\n    h = img.height;\n  }\n\n  if (typeof canvas === 'string') {\n    canvas = document.getElementById(canvas);\n  }\n  if (!canvas || !('getContext' in canvas)) {\n    return;\n  }\n\n  if (!skipStyles) {\n    canvas.style.width = w + 'px';\n    canvas.style.height = h + 'px';\n  }\n  canvas.width = w;\n  canvas.height = h;\n\n  const context = canvas.getContext('2d');\n  context.clearRect(0, 0, w, h);\n  context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h);\n\n  if (isNaN(radius) || radius < 1) { return; }\n\n  if (blurAlphaChannel) {\n    processCanvasRGBA(canvas, 0, 0, w, h, radius);\n  } else {\n    processCanvasRGB(canvas, 0, 0, w, h, radius);\n  }\n}\n\n/**\n * @param {string|HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @throws {Error|TypeError}\n * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}\n */\nfunction getImageDataFromCanvas (canvas, topX, topY, width, height) {\n  if (typeof canvas === 'string') {\n    canvas = document.getElementById(canvas);\n  }\n  if (!canvas || typeof canvas !== 'object' || !('getContext' in canvas)) {\n    throw new TypeError(\n      'Expecting canvas with `getContext` method ' +\n            'in processCanvasRGB(A) calls!'\n    );\n  }\n\n  const context = canvas.getContext('2d');\n\n  try {\n    return context.getImageData(topX, topY, width, height);\n  } catch (e) {\n    throw new Error('unable to access image data: ' + e);\n  }\n}\n\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\nfunction processCanvasRGBA (canvas, topX, topY, width, height, radius) {\n  if (isNaN(radius) || radius < 1) { return; }\n  radius |= 0;\n\n  let imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n\n  imageData = processImageDataRGBA(\n    imageData, topX, topY, width, height, radius\n  );\n\n  canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\nfunction processImageDataRGBA (imageData, topX, topY, width, height, radius) {\n  const pixels = imageData.data;\n\n  const div = 2 * radius + 1;\n  // const w4 = width << 2;\n  const widthMinus1 = width - 1;\n  const heightMinus1 = height - 1;\n  const radiusPlus1 = radius + 1;\n  const sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n\n  const stackStart = new BlurStack();\n  let stack = stackStart;\n  let stackEnd;\n  for (let i = 1; i < div; i++) {\n    stack = stack.next = new BlurStack();\n    if (i === radiusPlus1) {\n      stackEnd = stack;\n    }\n  }\n  stack.next = stackStart;\n\n  let stackIn = null,\n    stackOut = null,\n    yw = 0,\n    yi = 0;\n\n  const mulSum = mulTable[radius];\n  const shgSum = shgTable[radius];\n\n  for (let y = 0; y < height; y++) {\n    stack = stackStart;\n\n    const pr = pixels[yi],\n      pg = pixels[yi + 1],\n      pb = pixels[yi + 2],\n      pa = pixels[yi + 3];\n\n    for (let i = 0; i < radiusPlus1; i++) {\n      stack.r = pr;\n      stack.g = pg;\n      stack.b = pb;\n      stack.a = pa;\n      stack = stack.next;\n    }\n\n    let rInSum = 0, gInSum = 0, bInSum = 0, aInSum = 0,\n      rOutSum = radiusPlus1 * pr,\n      gOutSum = radiusPlus1 * pg,\n      bOutSum = radiusPlus1 * pb,\n      aOutSum = radiusPlus1 * pa,\n      rSum = sumFactor * pr,\n      gSum = sumFactor * pg,\n      bSum = sumFactor * pb,\n      aSum = sumFactor * pa;\n\n    for (let i = 1; i < radiusPlus1; i++) {\n      const p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n\n      const r = pixels[p],\n        g = pixels[p + 1],\n        b = pixels[p + 2],\n        a = pixels[p + 3];\n\n      const rbs = radiusPlus1 - i;\n      rSum += (stack.r = r) * rbs;\n      gSum += (stack.g = g) * rbs;\n      bSum += (stack.b = b) * rbs;\n      aSum += (stack.a = a) * rbs;\n\n      rInSum += r;\n      gInSum += g;\n      bInSum += b;\n      aInSum += a;\n\n      stack = stack.next;\n    }\n\n    stackIn = stackStart;\n    stackOut = stackEnd;\n    for (let x = 0; x < width; x++) {\n      const paInitial = (aSum * mulSum) >>> shgSum;\n      pixels[yi + 3] = paInitial;\n      if (paInitial !== 0) {\n        const a = 255 / paInitial;\n        pixels[yi] = ((rSum * mulSum) >>> shgSum) * a;\n        pixels[yi + 1] = ((gSum * mulSum) >>> shgSum) * a;\n        pixels[yi + 2] = ((bSum * mulSum) >>> shgSum) * a;\n      } else {\n        pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n      }\n\n      rSum -= rOutSum;\n      gSum -= gOutSum;\n      bSum -= bOutSum;\n      aSum -= aOutSum;\n\n      rOutSum -= stackIn.r;\n      gOutSum -= stackIn.g;\n      bOutSum -= stackIn.b;\n      aOutSum -= stackIn.a;\n\n      let p = x + radius + 1;\n      p = (yw + (p < widthMinus1\n        ? p\n        : widthMinus1)) << 2;\n\n      rInSum += (stackIn.r = pixels[p]);\n      gInSum += (stackIn.g = pixels[p + 1]);\n      bInSum += (stackIn.b = pixels[p + 2]);\n      aInSum += (stackIn.a = pixels[p + 3]);\n\n      rSum += rInSum;\n      gSum += gInSum;\n      bSum += bInSum;\n      aSum += aInSum;\n\n      stackIn = stackIn.next;\n\n      const {r, g, b, a} = stackOut;\n\n      rOutSum += r;\n      gOutSum += g;\n      bOutSum += b;\n      aOutSum += a;\n\n      rInSum -= r;\n      gInSum -= g;\n      bInSum -= b;\n      aInSum -= a;\n\n      stackOut = stackOut.next;\n\n      yi += 4;\n    }\n    yw += width;\n  }\n\n  for (let x = 0; x < width; x++) {\n    yi = x << 2;\n\n    let pr = pixels[yi],\n      pg = pixels[yi + 1],\n      pb = pixels[yi + 2],\n      pa = pixels[yi + 3],\n      rOutSum = radiusPlus1 * pr,\n      gOutSum = radiusPlus1 * pg,\n      bOutSum = radiusPlus1 * pb,\n      aOutSum = radiusPlus1 * pa,\n      rSum = sumFactor * pr,\n      gSum = sumFactor * pg,\n      bSum = sumFactor * pb,\n      aSum = sumFactor * pa;\n\n    stack = stackStart;\n\n    for (let i = 0; i < radiusPlus1; i++) {\n      stack.r = pr;\n      stack.g = pg;\n      stack.b = pb;\n      stack.a = pa;\n      stack = stack.next;\n    }\n\n    let yp = width;\n\n    let gInSum = 0, bInSum = 0, aInSum = 0, rInSum = 0;\n    for (let i = 1; i <= radius; i++) {\n      yi = (yp + x) << 2;\n\n      const rbs = radiusPlus1 - i;\n      rSum += (stack.r = (pr = pixels[yi])) * rbs;\n      gSum += (stack.g = (pg = pixels[yi + 1])) * rbs;\n      bSum += (stack.b = (pb = pixels[yi + 2])) * rbs;\n      aSum += (stack.a = (pa = pixels[yi + 3])) * rbs;\n\n      rInSum += pr;\n      gInSum += pg;\n      bInSum += pb;\n      aInSum += pa;\n\n      stack = stack.next;\n\n      if (i < heightMinus1) {\n        yp += width;\n      }\n    }\n\n    yi = x;\n    stackIn = stackStart;\n    stackOut = stackEnd;\n    for (let y = 0; y < height; y++) {\n      let p = yi << 2;\n      pixels[p + 3] = pa = (aSum * mulSum) >>> shgSum;\n      if (pa > 0) {\n        pa = 255 / pa;\n        pixels[p] = ((rSum * mulSum) >>> shgSum) * pa;\n        pixels[p + 1] = ((gSum * mulSum) >>> shgSum) * pa;\n        pixels[p + 2] = ((bSum * mulSum) >>> shgSum) * pa;\n      } else {\n        pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;\n      }\n\n      rSum -= rOutSum;\n      gSum -= gOutSum;\n      bSum -= bOutSum;\n      aSum -= aOutSum;\n\n      rOutSum -= stackIn.r;\n      gOutSum -= stackIn.g;\n      bOutSum -= stackIn.b;\n      aOutSum -= stackIn.a;\n\n      p = (x + (\n        ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) *\n                width\n      )) << 2;\n\n      rSum += (rInSum += (stackIn.r = pixels[p]));\n      gSum += (gInSum += (stackIn.g = pixels[p + 1]));\n      bSum += (bInSum += (stackIn.b = pixels[p + 2]));\n      aSum += (aInSum += (stackIn.a = pixels[p + 3]));\n\n      stackIn = stackIn.next;\n\n      rOutSum += (pr = stackOut.r);\n      gOutSum += (pg = stackOut.g);\n      bOutSum += (pb = stackOut.b);\n      aOutSum += (pa = stackOut.a);\n\n      rInSum -= pr;\n      gInSum -= pg;\n      bInSum -= pb;\n      aInSum -= pa;\n\n      stackOut = stackOut.next;\n\n      yi += width;\n    }\n  }\n  return imageData;\n}\n\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\nfunction processCanvasRGB (canvas, topX, topY, width, height, radius) {\n  if (isNaN(radius) || radius < 1) { return; }\n  radius |= 0;\n\n  let imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n  imageData = processImageDataRGB(\n    imageData, topX, topY, width, height, radius\n  );\n\n  canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\nfunction processImageDataRGB (imageData, topX, topY, width, height, radius) {\n  const pixels = imageData.data;\n\n  const div = 2 * radius + 1;\n  // const w4 = width << 2;\n  const widthMinus1 = width - 1;\n  const heightMinus1 = height - 1;\n  const radiusPlus1 = radius + 1;\n  const sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n\n  const stackStart = new BlurStack();\n  let stack = stackStart;\n  let stackEnd;\n  for (let i = 1; i < div; i++) {\n    stack = stack.next = new BlurStack();\n    if (i === radiusPlus1) {\n      stackEnd = stack;\n    }\n  }\n  stack.next = stackStart;\n  let stackIn = null;\n  let stackOut = null;\n\n  const mulSum = mulTable[radius];\n  const shgSum = shgTable[radius];\n\n  let p, rbs;\n  let yw = 0, yi = 0;\n\n  for (let y = 0; y < height; y++) {\n    let pr = pixels[yi],\n      pg = pixels[yi + 1],\n      pb = pixels[yi + 2],\n      rOutSum = radiusPlus1 * pr,\n      gOutSum = radiusPlus1 * pg,\n      bOutSum = radiusPlus1 * pb,\n      rSum = sumFactor * pr,\n      gSum = sumFactor * pg,\n      bSum = sumFactor * pb;\n\n    stack = stackStart;\n\n    for (let i = 0; i < radiusPlus1; i++) {\n      stack.r = pr;\n      stack.g = pg;\n      stack.b = pb;\n      stack = stack.next;\n    }\n\n    let rInSum = 0, gInSum = 0, bInSum = 0;\n    for (let i = 1; i < radiusPlus1; i++) {\n      p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n      rSum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i);\n      gSum += (stack.g = (pg = pixels[p + 1])) * rbs;\n      bSum += (stack.b = (pb = pixels[p + 2])) * rbs;\n\n      rInSum += pr;\n      gInSum += pg;\n      bInSum += pb;\n\n      stack = stack.next;\n    }\n\n    stackIn = stackStart;\n    stackOut = stackEnd;\n    for (let x = 0; x < width; x++) {\n      pixels[yi] = (rSum * mulSum) >>> shgSum;\n      pixels[yi + 1] = (gSum * mulSum) >>> shgSum;\n      pixels[yi + 2] = (bSum * mulSum) >>> shgSum;\n\n      rSum -= rOutSum;\n      gSum -= gOutSum;\n      bSum -= bOutSum;\n\n      rOutSum -= stackIn.r;\n      gOutSum -= stackIn.g;\n      bOutSum -= stackIn.b;\n\n      p = (yw + (\n        (p = x + radius + 1) < widthMinus1 ? p : widthMinus1\n      )) << 2;\n\n      rInSum += (stackIn.r = pixels[p]);\n      gInSum += (stackIn.g = pixels[p + 1]);\n      bInSum += (stackIn.b = pixels[p + 2]);\n\n      rSum += rInSum;\n      gSum += gInSum;\n      bSum += bInSum;\n\n      stackIn = stackIn.next;\n\n      rOutSum += (pr = stackOut.r);\n      gOutSum += (pg = stackOut.g);\n      bOutSum += (pb = stackOut.b);\n\n      rInSum -= pr;\n      gInSum -= pg;\n      bInSum -= pb;\n\n      stackOut = stackOut.next;\n\n      yi += 4;\n    }\n    yw += width;\n  }\n\n  for (let x = 0; x < width; x++) {\n    yi = x << 2;\n    let pr = pixels[yi],\n      pg = pixels[yi + 1],\n      pb = pixels[yi + 2],\n      rOutSum = radiusPlus1 * pr,\n      gOutSum = radiusPlus1 * pg,\n      bOutSum = radiusPlus1 * pb,\n      rSum = sumFactor * pr,\n      gSum = sumFactor * pg,\n      bSum = sumFactor * pb;\n\n    stack = stackStart;\n\n    for (let i = 0; i < radiusPlus1; i++) {\n      stack.r = pr;\n      stack.g = pg;\n      stack.b = pb;\n      stack = stack.next;\n    }\n\n    let rInSum = 0, gInSum = 0, bInSum = 0;\n    for (let i = 1, yp = width; i <= radius; i++) {\n      yi = (yp + x) << 2;\n\n      rSum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i);\n      gSum += (stack.g = (pg = pixels[yi + 1])) * rbs;\n      bSum += (stack.b = (pb = pixels[yi + 2])) * rbs;\n\n      rInSum += pr;\n      gInSum += pg;\n      bInSum += pb;\n\n      stack = stack.next;\n\n      if (i < heightMinus1) {\n        yp += width;\n      }\n    }\n\n    yi = x;\n    stackIn = stackStart;\n    stackOut = stackEnd;\n    for (let y = 0; y < height; y++) {\n      p = yi << 2;\n      pixels[p] = (rSum * mulSum) >>> shgSum;\n      pixels[p + 1] = (gSum * mulSum) >>> shgSum;\n      pixels[p + 2] = (bSum * mulSum) >>> shgSum;\n\n      rSum -= rOutSum;\n      gSum -= gOutSum;\n      bSum -= bOutSum;\n\n      rOutSum -= stackIn.r;\n      gOutSum -= stackIn.g;\n      bOutSum -= stackIn.b;\n\n      p = (x + (\n        ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) *\n                width\n      )) << 2;\n\n      rSum += (rInSum += (stackIn.r = pixels[p]));\n      gSum += (gInSum += (stackIn.g = pixels[p + 1]));\n      bSum += (bInSum += (stackIn.b = pixels[p + 2]));\n\n      stackIn = stackIn.next;\n\n      rOutSum += (pr = stackOut.r);\n      gOutSum += (pg = stackOut.g);\n      bOutSum += (pb = stackOut.b);\n\n      rInSum -= pr;\n      gInSum -= pg;\n      bInSum -= pb;\n\n      stackOut = stackOut.next;\n\n      yi += width;\n    }\n  }\n\n  return imageData;\n}\n\n/**\n *\n */\nexport class BlurStack {\n  /**\n   * Set properties.\n   */\n  constructor () {\n    this.r = 0;\n    this.g = 0;\n    this.b = 0;\n    this.a = 0;\n    this.next = null;\n  }\n}\n\nexport {\n  /**\n    * @function module:StackBlur.image\n    * @see module:StackBlur~processImage\n    */\n  processImage as image,\n  /**\n    * @function module:StackBlur.canvasRGBA\n    * @see module:StackBlur~processCanvasRGBA\n    */\n  processCanvasRGBA as canvasRGBA,\n  /**\n    * @function module:StackBlur.canvasRGB\n    * @see module:StackBlur~processCanvasRGB\n    */\n  processCanvasRGB as canvasRGB,\n  /**\n    * @function module:StackBlur.imageDataRGBA\n    * @see module:StackBlur~processImageDataRGBA\n    */\n  processImageDataRGBA as imageDataRGBA,\n  /**\n    * @function module:StackBlur.imageDataRGB\n    * @see module:StackBlur~processImageDataRGB\n    */\n  processImageDataRGB as imageDataRGB\n};\n"],"names":["mulTable","shgTable","processImage","img","canvas","radius","blurAlphaChannel","useOffset","skipStyles","document","getElementById","Object","prototype","toString","call","slice","dimensionType","w","h","width","height","style","context","getContext","clearRect","drawImage","naturalWidth","naturalHeight","isNaN","processCanvasRGBA","processCanvasRGB","getImageDataFromCanvas","topX","topY","_typeof","TypeError","getImageData","e","Error","imageData","processImageDataRGBA","putImageData","stackEnd","pixels","data","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","i","next","stackIn","stackOut","yw","yi","mulSum","shgSum","y","pr","pg","pb","pa","r","g","b","a","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","p","rbs","x","paInitial","yp","processImageDataRGB"],"mappings":"qOA2CA,IAAMA,EAAW,CACf,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGlEC,EAAW,CACf,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAY1D,SAASC,EACPC,EAAKC,EAAQC,EAAQC,EAAkBC,EAAWC,MAE/B,iBAARL,IACTA,EAAMM,SAASC,eAAeP,IAI7BA,IAEC,qBADDQ,OAAOC,UAAUC,SAASC,KAAKX,GAAKY,MAAM,GAAI,IACrB,iBAAkBZ,QAKxCa,EAAgBT,EAAY,SAAW,UACzCU,EAAId,EAAIa,EAAgB,SACxBE,EAAIf,EAAIa,EAAgB,aAG6B,gBAArDL,OAAOC,UAAUC,SAASC,KAAKX,GAAKY,MAAM,GAAI,KAChDE,EAAId,EAAIgB,MACRD,EAAIf,EAAIiB,QAGY,iBAAXhB,IACTA,EAASK,SAASC,eAAeN,IAE9BA,GAAY,eAAgBA,GAI5BI,IACHJ,EAAOiB,MAAMF,MAAQF,EAAI,KACzBb,EAAOiB,MAAMD,OAASF,EAAI,MAE5Bd,EAAOe,MAAQF,EACfb,EAAOgB,OAASF,MAEVI,EAAUlB,EAAOmB,WAAW,MAClCD,EAAQE,UAAU,EAAG,EAAGP,EAAGC,GAC3BI,EAAQG,UAAUtB,EAAK,EAAG,EAAGA,EAAIuB,aAAcvB,EAAIwB,cAAe,EAAG,EAAGV,EAAGC,GAEvEU,MAAMvB,IAAWA,EAAS,IAE1BC,EACFuB,EAAkBzB,EAAQ,EAAG,EAAGa,EAAGC,EAAGb,GAEtCyB,EAAiB1B,EAAQ,EAAG,EAAGa,EAAGC,EAAGb,MAazC,SAAS0B,EAAwB3B,EAAQ4B,EAAMC,EAAMd,EAAOC,MACpC,iBAAXhB,IACTA,EAASK,SAASC,eAAeN,KAE9BA,GAA4B,WAAlB8B,EAAO9B,MAAyB,eAAgBA,SACvD,IAAI+B,UACR,+EAKEb,EAAUlB,EAAOmB,WAAW,iBAGzBD,EAAQc,aAAaJ,EAAMC,EAAMd,EAAOC,GAC/C,MAAOiB,SACD,IAAIC,MAAM,gCAAkCD,IAatD,SAASR,EAAmBzB,EAAQ4B,EAAMC,EAAMd,EAAOC,EAAQf,QACzDuB,MAAMvB,IAAWA,EAAS,IAC9BA,GAAU,MAENkC,EAAYR,EAAuB3B,EAAQ4B,EAAMC,EAAMd,EAAOC,GAElEmB,EAAYC,EACVD,EAAWP,EAAMC,EAAMd,EAAOC,EAAQf,GAGxCD,EAAOmB,WAAW,MAAMkB,aAAaF,EAAWP,EAAMC,IAYxD,SAASO,EAAsBD,EAAWP,EAAMC,EAAMd,EAAOC,EAAQf,WAY/DqC,EAXEC,EAASJ,EAAUK,KAEnBC,EAAM,EAAIxC,EAAS,EAEnByC,EAAc3B,EAAQ,EACtB4B,EAAe3B,EAAS,EACxB4B,EAAc3C,EAAS,EACvB4C,EAAYD,GAAeA,EAAc,GAAK,EAE9CE,EAAa,IAAIC,EACnBC,EAAQF,EAEHG,EAAI,EAAGA,EAAIR,EAAKQ,IACvBD,EAAQA,EAAME,KAAO,IAAIH,EACrBE,IAAML,IACRN,EAAWU,GAGfA,EAAME,KAAOJ,UAETK,EAAU,KACZC,EAAW,KACXC,EAAK,EACLC,EAAK,EAEDC,EAAS3D,EAASK,GAClBuD,EAAS3D,EAASI,GAEfwD,EAAI,EAAGA,EAAIzC,EAAQyC,IAAK,CAC/BT,EAAQF,UAEFY,EAAKnB,EAAOe,GAChBK,EAAKpB,EAAOe,EAAK,GACjBM,EAAKrB,EAAOe,EAAK,GACjBO,EAAKtB,EAAOe,EAAK,GAEVL,EAAI,EAAGA,EAAIL,EAAaK,IAC/BD,EAAMc,EAAIJ,EACVV,EAAMe,EAAIJ,EACVX,EAAMgB,EAAIJ,EACVZ,EAAMiB,EAAIJ,EACVb,EAAQA,EAAME,aAGZgB,EAAS,EAAGC,EAAS,EAAGC,EAAS,EAAGC,EAAS,EAC/CC,EAAU1B,EAAcc,EACxBa,EAAU3B,EAAce,EACxBa,EAAU5B,EAAcgB,EACxBa,EAAU7B,EAAciB,EACxBa,EAAO7B,EAAYa,EACnBiB,EAAO9B,EAAYc,EACnBiB,EAAO/B,EAAYe,EACnBiB,EAAOhC,EAAYgB,EAEZZ,EAAI,EAAGA,EAAIL,EAAaK,IAAK,KAC9B6B,EAAIxB,IAAOZ,EAAcO,EAAIP,EAAcO,IAAM,GAEjDa,EAAIvB,EAAOuC,GACff,EAAIxB,EAAOuC,EAAI,GACfd,EAAIzB,EAAOuC,EAAI,GACfb,EAAI1B,EAAOuC,EAAI,GAEXC,EAAMnC,EAAcK,EAC1ByB,IAAS1B,EAAMc,EAAIA,GAAKiB,EACxBJ,IAAS3B,EAAMe,EAAIA,GAAKgB,EACxBH,IAAS5B,EAAMgB,EAAIA,GAAKe,EACxBF,IAAS7B,EAAMiB,EAAIA,GAAKc,EAExBb,GAAUJ,EACVK,GAAUJ,EACVK,GAAUJ,EACVK,GAAUJ,EAEVjB,EAAQA,EAAME,KAGhBC,EAAUL,EACVM,EAAWd,MACN,IAAI0C,EAAI,EAAGA,EAAIjE,EAAOiE,IAAK,KACxBC,EAAaJ,EAAOtB,IAAYC,KACtCjB,EAAOe,EAAK,GAAK2B,EACC,IAAdA,EAAiB,KACbhB,EAAI,IAAMgB,EAChB1C,EAAOe,IAAQoB,EAAOnB,IAAYC,GAAUS,EAC5C1B,EAAOe,EAAK,IAAOqB,EAAOpB,IAAYC,GAAUS,EAChD1B,EAAOe,EAAK,IAAOsB,EAAOrB,IAAYC,GAAUS,OAEhD1B,EAAOe,GAAMf,EAAOe,EAAK,GAAKf,EAAOe,EAAK,GAAK,EAGjDoB,GAAQJ,EACRK,GAAQJ,EACRK,GAAQJ,EACRK,GAAQJ,EAERH,GAAWnB,EAAQW,EACnBS,GAAWpB,EAAQY,EACnBS,GAAWrB,EAAQa,EACnBS,GAAWtB,EAAQc,MAEfa,EAAIE,EAAI/E,EAAS,EACrB6E,EAAKzB,GAAMyB,EAAIpC,EACXoC,EACApC,IAAiB,EAOrBgC,GALAR,GAAWf,EAAQW,EAAIvB,EAAOuC,GAM9BH,GALAR,GAAWhB,EAAQY,EAAIxB,EAAOuC,EAAI,GAMlCF,GALAR,GAAWjB,EAAQa,EAAIzB,EAAOuC,EAAI,GAMlCD,GALAR,GAAWlB,EAAQc,EAAI1B,EAAOuC,EAAI,GAOlC3B,EAAUA,EAAQD,YAEGE,EAAdU,MAAAA,EAAGC,MAAAA,EAAGC,MAAAA,EAAGC,MAAAA,EAEhBK,GAAWR,GACXS,GAAWR,GACXS,GAAWR,GACXS,GAAWR,GAEXC,GAAUJ,GACVK,GAAUJ,GACVK,GAAUJ,GACVK,GAAUJ,GAEVb,EAAWA,EAASF,KAEpBI,GAAM,EAERD,GAAMtC,MAGH,IAAIiE,GAAI,EAAGA,GAAIjE,EAAOiE,KAAK,KAG1BtB,GAAKnB,EAFTe,EAAK0B,IAAK,GAGRrB,GAAKpB,EAAOe,EAAK,GACjBM,GAAKrB,EAAOe,EAAK,GACjBO,GAAKtB,EAAOe,EAAK,GACjBgB,GAAU1B,EAAcc,GACxBa,GAAU3B,EAAce,GACxBa,GAAU5B,EAAcgB,GACxBa,GAAU7B,EAAciB,GACxBa,GAAO7B,EAAYa,GACnBiB,GAAO9B,EAAYc,GACnBiB,GAAO/B,EAAYe,GACnBiB,GAAOhC,EAAYgB,GAErBb,EAAQF,MAEH,IAAIG,GAAI,EAAGA,GAAIL,EAAaK,KAC/BD,EAAMc,EAAIJ,GACVV,EAAMe,EAAIJ,GACVX,EAAMgB,EAAIJ,GACVZ,EAAMiB,EAAIJ,GACVb,EAAQA,EAAME,aAGZgC,GAAKnE,EAELoD,GAAS,EAAGC,GAAS,EAAGC,GAAS,EAAGH,GAAS,EACxCjB,GAAI,EAAGA,IAAKhD,EAAQgD,KAAK,CAChCK,EAAM4B,GAAKF,IAAM,MAEXD,GAAMnC,EAAcK,GAC1ByB,KAAS1B,EAAMc,EAAKJ,GAAKnB,EAAOe,IAAQyB,GACxCJ,KAAS3B,EAAMe,EAAKJ,GAAKpB,EAAOe,EAAK,IAAOyB,GAC5CH,KAAS5B,EAAMgB,EAAKJ,GAAKrB,EAAOe,EAAK,IAAOyB,GAC5CF,KAAS7B,EAAMiB,EAAKJ,GAAKtB,EAAOe,EAAK,IAAOyB,GAE5Cb,IAAUR,GACVS,IAAUR,GACVS,IAAUR,GACVS,IAAUR,GAEVb,EAAQA,EAAME,KAEVD,GAAIN,IACNuC,IAAMnE,GAIVuC,EAAK0B,GACL7B,EAAUL,EACVM,EAAWd,MACN,IAAImB,GAAI,EAAGA,GAAIzC,EAAQyC,KAAK,KAC3BqB,GAAIxB,GAAM,EACdf,EAAOuC,GAAI,GAAKjB,GAAMgB,GAAOtB,IAAYC,EACrCK,GAAK,GACPA,GAAK,IAAMA,GACXtB,EAAOuC,KAAOJ,GAAOnB,IAAYC,GAAUK,GAC3CtB,EAAOuC,GAAI,IAAOH,GAAOpB,IAAYC,GAAUK,GAC/CtB,EAAOuC,GAAI,IAAOF,GAAOrB,IAAYC,GAAUK,IAE/CtB,EAAOuC,IAAKvC,EAAOuC,GAAI,GAAKvC,EAAOuC,GAAI,GAAK,EAG9CJ,IAAQJ,GACRK,IAAQJ,GACRK,IAAQJ,GACRK,IAAQJ,GAERH,IAAWnB,EAAQW,EACnBS,IAAWpB,EAAQY,EACnBS,IAAWrB,EAAQa,EACnBS,IAAWtB,EAAQc,EAEnBa,GAAKE,KACDF,GAAIrB,GAAIb,GAAeD,EAAemC,GAAInC,GACpC5B,GACJ,EAEN2D,IAASR,IAAWf,EAAQW,EAAIvB,EAAOuC,IACvCH,IAASR,IAAWhB,EAAQY,EAAIxB,EAAOuC,GAAI,GAC3CF,IAASR,IAAWjB,EAAQa,EAAIzB,EAAOuC,GAAI,GAC3CD,IAASR,IAAWlB,EAAQc,EAAI1B,EAAOuC,GAAI,GAE3C3B,EAAUA,EAAQD,KAElBoB,IAAYZ,GAAKN,EAASU,EAC1BS,IAAYZ,GAAKP,EAASW,EAC1BS,IAAYZ,GAAKR,EAASY,EAC1BS,IAAYZ,GAAKT,EAASa,EAE1BC,IAAUR,GACVS,IAAUR,GACVS,IAAUR,GACVS,IAAUR,GAEVT,EAAWA,EAASF,KAEpBI,GAAMvC,UAGHoB,EAYT,SAAST,EAAkB1B,EAAQ4B,EAAMC,EAAMd,EAAOC,EAAQf,QACxDuB,MAAMvB,IAAWA,EAAS,IAC9BA,GAAU,MAENkC,EAAYR,EAAuB3B,EAAQ4B,EAAMC,EAAMd,EAAOC,GAClEmB,EAAYgD,EACVhD,EAAWP,EAAMC,EAAMd,EAAOC,EAAQf,GAGxCD,EAAOmB,WAAW,MAAMkB,aAAaF,EAAWP,EAAMC,IAYxD,SAASsD,EAAqBhD,EAAWP,EAAMC,EAAMd,EAAOC,EAAQf,WAY9DqC,EAXEC,EAASJ,EAAUK,KAEnBC,EAAM,EAAIxC,EAAS,EAEnByC,EAAc3B,EAAQ,EACtB4B,EAAe3B,EAAS,EACxB4B,EAAc3C,EAAS,EACvB4C,EAAYD,GAAeA,EAAc,GAAK,EAE9CE,EAAa,IAAIC,EACnBC,EAAQF,EAEHG,EAAI,EAAGA,EAAIR,EAAKQ,IACvBD,EAAQA,EAAME,KAAO,IAAIH,EACrBE,IAAML,IACRN,EAAWU,GAGfA,EAAME,KAAOJ,UAOTgC,EAAGC,EANH5B,EAAU,KACVC,EAAW,KAETG,EAAS3D,EAASK,GAClBuD,EAAS3D,EAASI,GAGpBoD,EAAK,EAAGC,EAAK,EAERG,EAAI,EAAGA,EAAIzC,EAAQyC,IAAK,KAC3BC,EAAKnB,EAAOe,GACdK,EAAKpB,EAAOe,EAAK,GACjBM,EAAKrB,EAAOe,EAAK,GACjBgB,EAAU1B,EAAcc,EACxBa,EAAU3B,EAAce,EACxBa,EAAU5B,EAAcgB,EACxBc,EAAO7B,EAAYa,EACnBiB,EAAO9B,EAAYc,EACnBiB,EAAO/B,EAAYe,EAErBZ,EAAQF,MAEH,IAAIG,EAAI,EAAGA,EAAIL,EAAaK,IAC/BD,EAAMc,EAAIJ,EACVV,EAAMe,EAAIJ,EACVX,EAAMgB,EAAIJ,EACVZ,EAAQA,EAAME,aAGZgB,EAAS,EAAGC,EAAS,EAAGC,EAAS,EAC5BnB,EAAI,EAAGA,EAAIL,EAAaK,IAC/B6B,EAAIxB,IAAOZ,EAAcO,EAAIP,EAAcO,IAAM,GACjDyB,IAAS1B,EAAMc,EAAKJ,EAAKnB,EAAOuC,KAAQC,EAAMnC,EAAcK,GAC5D0B,IAAS3B,EAAMe,EAAKJ,EAAKpB,EAAOuC,EAAI,IAAOC,EAC3CH,IAAS5B,EAAMgB,EAAKJ,EAAKrB,EAAOuC,EAAI,IAAOC,EAE3Cb,GAAUR,EACVS,GAAUR,EACVS,GAAUR,EAEVZ,EAAQA,EAAME,KAGhBC,EAAUL,EACVM,EAAWd,MACN,IAAI0C,EAAI,EAAGA,EAAIjE,EAAOiE,IACzBzC,EAAOe,GAAOoB,EAAOnB,IAAYC,EACjCjB,EAAOe,EAAK,GAAMqB,EAAOpB,IAAYC,EACrCjB,EAAOe,EAAK,GAAMsB,EAAOrB,IAAYC,EAErCkB,GAAQJ,EACRK,GAAQJ,EACRK,GAAQJ,EAERF,GAAWnB,EAAQW,EACnBS,GAAWpB,EAAQY,EACnBS,GAAWrB,EAAQa,EAEnBc,EAAKzB,IACFyB,EAAIE,EAAI/E,EAAS,GAAKyC,EAAcoC,EAAIpC,IACrC,EAMNgC,GAJAR,GAAWf,EAAQW,EAAIvB,EAAOuC,GAK9BH,GAJAR,GAAWhB,EAAQY,EAAIxB,EAAOuC,EAAI,GAKlCF,GAJAR,GAAWjB,EAAQa,EAAIzB,EAAOuC,EAAI,GAMlC3B,EAAUA,EAAQD,KAElBoB,GAAYZ,EAAKN,EAASU,EAC1BS,GAAYZ,EAAKP,EAASW,EAC1BS,GAAYZ,EAAKR,EAASY,EAE1BE,GAAUR,EACVS,GAAUR,EACVS,GAAUR,EAEVR,EAAWA,EAASF,KAEpBI,GAAM,EAERD,GAAMtC,MAGH,IAAIiE,EAAI,EAAGA,EAAIjE,EAAOiE,IAAK,KAE1BtB,EAAKnB,EADTe,EAAK0B,GAAK,GAERrB,EAAKpB,EAAOe,EAAK,GACjBM,EAAKrB,EAAOe,EAAK,GACjBgB,EAAU1B,EAAcc,EACxBa,EAAU3B,EAAce,EACxBa,EAAU5B,EAAcgB,EACxBc,EAAO7B,EAAYa,EACnBiB,EAAO9B,EAAYc,EACnBiB,EAAO/B,EAAYe,EAErBZ,EAAQF,MAEH,IAAIG,EAAI,EAAGA,EAAIL,EAAaK,IAC/BD,EAAMc,EAAIJ,EACVV,EAAMe,EAAIJ,EACVX,EAAMgB,EAAIJ,EACVZ,EAAQA,EAAME,aAGZgB,GAAS,EAAGC,GAAS,EAAGC,GAAS,EAC5BnB,GAAI,EAAGiC,GAAKnE,EAAOkC,IAAKhD,EAAQgD,KACvCK,EAAM4B,GAAKF,GAAM,EAEjBN,IAAS1B,EAAMc,EAAKJ,EAAKnB,EAAOe,KAASyB,EAAMnC,EAAcK,IAC7D0B,IAAS3B,EAAMe,EAAKJ,EAAKpB,EAAOe,EAAK,IAAOyB,EAC5CH,IAAS5B,EAAMgB,EAAKJ,EAAKrB,EAAOe,EAAK,IAAOyB,EAE5Cb,IAAUR,EACVS,IAAUR,EACVS,IAAUR,EAEVZ,EAAQA,EAAME,KAEVD,GAAIN,IACNuC,IAAMnE,GAIVuC,EAAK0B,EACL7B,EAAUL,EACVM,EAAWd,MACN,IAAImB,GAAI,EAAGA,GAAIzC,EAAQyC,KAE1BlB,EADAuC,EAAIxB,GAAM,GACGoB,EAAOnB,IAAYC,EAChCjB,EAAOuC,EAAI,GAAMH,EAAOpB,IAAYC,EACpCjB,EAAOuC,EAAI,GAAMF,EAAOrB,IAAYC,EAEpCkB,GAAQJ,EACRK,GAAQJ,EACRK,GAAQJ,EAERF,GAAWnB,EAAQW,EACnBS,GAAWpB,EAAQY,EACnBS,GAAWrB,EAAQa,EAEnBc,EAAKE,IACDF,EAAIrB,GAAIb,GAAeD,EAAemC,EAAInC,GACpC5B,GACJ,EAEN2D,GAASR,IAAWf,EAAQW,EAAIvB,EAAOuC,GACvCH,GAASR,IAAWhB,EAAQY,EAAIxB,EAAOuC,EAAI,GAC3CF,GAASR,IAAWjB,EAAQa,EAAIzB,EAAOuC,EAAI,GAE3C3B,EAAUA,EAAQD,KAElBoB,GAAYZ,EAAKN,EAASU,EAC1BS,GAAYZ,EAAKP,EAASW,EAC1BS,GAAYZ,EAAKR,EAASY,EAE1BE,IAAUR,EACVS,IAAUR,EACVS,IAAUR,EAEVR,EAAWA,EAASF,KAEpBI,GAAMvC,SAIHoB,MAMIY,EAIX,wHACOe,EAAI,OACJC,EAAI,OACJC,EAAI,OACJC,EAAI,OACJf,KAAO"}
Index: imaps-frontend/node_modules/stackblur-canvas/dist/stackblur.js
===================================================================
--- imaps-frontend/node_modules/stackblur-canvas/dist/stackblur.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/stackblur-canvas/dist/stackblur.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -0,0 +1,654 @@
+(function (global, factory) {
+  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+  typeof define === 'function' && define.amd ? define(['exports'], factory) :
+  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.StackBlur = {}));
+}(this, (function (exports) { 'use strict';
+
+  function _typeof(obj) {
+    "@babel/helpers - typeof";
+
+    if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+      _typeof = function (obj) {
+        return typeof obj;
+      };
+    } else {
+      _typeof = function (obj) {
+        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+      };
+    }
+
+    return _typeof(obj);
+  }
+
+  function _classCallCheck(instance, Constructor) {
+    if (!(instance instanceof Constructor)) {
+      throw new TypeError("Cannot call a class as a function");
+    }
+  }
+
+  /* eslint-disable no-bitwise -- used for calculations */
+
+  /* eslint-disable unicorn/prefer-query-selector -- aiming at
+    backward-compatibility */
+
+  /**
+  * StackBlur - a fast almost Gaussian Blur For Canvas
+  *
+  * In case you find this class useful - especially in commercial projects -
+  * I am not totally unhappy for a small donation to my PayPal account
+  * mario@quasimondo.de
+  *
+  * Or support me on flattr:
+  * {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}.
+  *
+  * @module StackBlur
+  * @author Mario Klingemann
+  * Contact: mario@quasimondo.com
+  * Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}
+  * Twitter: @quasimondo
+  *
+  * @copyright (c) 2010 Mario Klingemann
+  *
+  * Permission is hereby granted, free of charge, to any person
+  * obtaining a copy of this software and associated documentation
+  * files (the "Software"), to deal in the Software without
+  * restriction, including without limitation the rights to use,
+  * copy, modify, merge, publish, distribute, sublicense, and/or sell
+  * copies of the Software, and to permit persons to whom the
+  * Software is furnished to do so, subject to the following
+  * conditions:
+  *
+  * The above copyright notice and this permission notice shall be
+  * included in all copies or substantial portions of the Software.
+  *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+  * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+  * OTHER DEALINGS IN THE SOFTWARE.
+  */
+  var mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];
+  var shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];
+  /**
+   * @param {string|HTMLImageElement} img
+   * @param {string|HTMLCanvasElement} canvas
+   * @param {Float} radius
+   * @param {boolean} blurAlphaChannel
+   * @param {boolean} useOffset
+   * @param {boolean} skipStyles
+   * @returns {undefined}
+   */
+
+  function processImage(img, canvas, radius, blurAlphaChannel, useOffset, skipStyles) {
+    if (typeof img === 'string') {
+      img = document.getElementById(img);
+    }
+
+    if (!img || Object.prototype.toString.call(img).slice(8, -1) === 'HTMLImageElement' && !('naturalWidth' in img)) {
+      return;
+    }
+
+    var dimensionType = useOffset ? 'offset' : 'natural';
+    var w = img[dimensionType + 'Width'];
+    var h = img[dimensionType + 'Height']; // add ImageBitmap support,can blur texture source
+
+    if (Object.prototype.toString.call(img).slice(8, -1) === 'ImageBitmap') {
+      w = img.width;
+      h = img.height;
+    }
+
+    if (typeof canvas === 'string') {
+      canvas = document.getElementById(canvas);
+    }
+
+    if (!canvas || !('getContext' in canvas)) {
+      return;
+    }
+
+    if (!skipStyles) {
+      canvas.style.width = w + 'px';
+      canvas.style.height = h + 'px';
+    }
+
+    canvas.width = w;
+    canvas.height = h;
+    var context = canvas.getContext('2d');
+    context.clearRect(0, 0, w, h);
+    context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h);
+
+    if (isNaN(radius) || radius < 1) {
+      return;
+    }
+
+    if (blurAlphaChannel) {
+      processCanvasRGBA(canvas, 0, 0, w, h, radius);
+    } else {
+      processCanvasRGB(canvas, 0, 0, w, h, radius);
+    }
+  }
+  /**
+   * @param {string|HTMLCanvasElement} canvas
+   * @param {Integer} topX
+   * @param {Integer} topY
+   * @param {Integer} width
+   * @param {Integer} height
+   * @throws {Error|TypeError}
+   * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}
+   */
+
+
+  function getImageDataFromCanvas(canvas, topX, topY, width, height) {
+    if (typeof canvas === 'string') {
+      canvas = document.getElementById(canvas);
+    }
+
+    if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) {
+      throw new TypeError('Expecting canvas with `getContext` method ' + 'in processCanvasRGB(A) calls!');
+    }
+
+    var context = canvas.getContext('2d');
+
+    try {
+      return context.getImageData(topX, topY, width, height);
+    } catch (e) {
+      throw new Error('unable to access image data: ' + e);
+    }
+  }
+  /**
+   * @param {HTMLCanvasElement} canvas
+   * @param {Integer} topX
+   * @param {Integer} topY
+   * @param {Integer} width
+   * @param {Integer} height
+   * @param {Float} radius
+   * @returns {undefined}
+   */
+
+
+  function processCanvasRGBA(canvas, topX, topY, width, height, radius) {
+    if (isNaN(radius) || radius < 1) {
+      return;
+    }
+
+    radius |= 0;
+    var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);
+    imageData = processImageDataRGBA(imageData, topX, topY, width, height, radius);
+    canvas.getContext('2d').putImageData(imageData, topX, topY);
+  }
+  /**
+   * @param {ImageData} imageData
+   * @param {Integer} topX
+   * @param {Integer} topY
+   * @param {Integer} width
+   * @param {Integer} height
+   * @param {Float} radius
+   * @returns {ImageData}
+   */
+
+
+  function processImageDataRGBA(imageData, topX, topY, width, height, radius) {
+    var pixels = imageData.data;
+    var div = 2 * radius + 1; // const w4 = width << 2;
+
+    var widthMinus1 = width - 1;
+    var heightMinus1 = height - 1;
+    var radiusPlus1 = radius + 1;
+    var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;
+    var stackStart = new BlurStack();
+    var stack = stackStart;
+    var stackEnd;
+
+    for (var i = 1; i < div; i++) {
+      stack = stack.next = new BlurStack();
+
+      if (i === radiusPlus1) {
+        stackEnd = stack;
+      }
+    }
+
+    stack.next = stackStart;
+    var stackIn = null,
+        stackOut = null,
+        yw = 0,
+        yi = 0;
+    var mulSum = mulTable[radius];
+    var shgSum = shgTable[radius];
+
+    for (var y = 0; y < height; y++) {
+      stack = stackStart;
+      var pr = pixels[yi],
+          pg = pixels[yi + 1],
+          pb = pixels[yi + 2],
+          pa = pixels[yi + 3];
+
+      for (var _i = 0; _i < radiusPlus1; _i++) {
+        stack.r = pr;
+        stack.g = pg;
+        stack.b = pb;
+        stack.a = pa;
+        stack = stack.next;
+      }
+
+      var rInSum = 0,
+          gInSum = 0,
+          bInSum = 0,
+          aInSum = 0,
+          rOutSum = radiusPlus1 * pr,
+          gOutSum = radiusPlus1 * pg,
+          bOutSum = radiusPlus1 * pb,
+          aOutSum = radiusPlus1 * pa,
+          rSum = sumFactor * pr,
+          gSum = sumFactor * pg,
+          bSum = sumFactor * pb,
+          aSum = sumFactor * pa;
+
+      for (var _i2 = 1; _i2 < radiusPlus1; _i2++) {
+        var p = yi + ((widthMinus1 < _i2 ? widthMinus1 : _i2) << 2);
+        var r = pixels[p],
+            g = pixels[p + 1],
+            b = pixels[p + 2],
+            a = pixels[p + 3];
+        var rbs = radiusPlus1 - _i2;
+        rSum += (stack.r = r) * rbs;
+        gSum += (stack.g = g) * rbs;
+        bSum += (stack.b = b) * rbs;
+        aSum += (stack.a = a) * rbs;
+        rInSum += r;
+        gInSum += g;
+        bInSum += b;
+        aInSum += a;
+        stack = stack.next;
+      }
+
+      stackIn = stackStart;
+      stackOut = stackEnd;
+
+      for (var x = 0; x < width; x++) {
+        var paInitial = aSum * mulSum >>> shgSum;
+        pixels[yi + 3] = paInitial;
+
+        if (paInitial !== 0) {
+          var _a2 = 255 / paInitial;
+
+          pixels[yi] = (rSum * mulSum >>> shgSum) * _a2;
+          pixels[yi + 1] = (gSum * mulSum >>> shgSum) * _a2;
+          pixels[yi + 2] = (bSum * mulSum >>> shgSum) * _a2;
+        } else {
+          pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;
+        }
+
+        rSum -= rOutSum;
+        gSum -= gOutSum;
+        bSum -= bOutSum;
+        aSum -= aOutSum;
+        rOutSum -= stackIn.r;
+        gOutSum -= stackIn.g;
+        bOutSum -= stackIn.b;
+        aOutSum -= stackIn.a;
+
+        var _p = x + radius + 1;
+
+        _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;
+        rInSum += stackIn.r = pixels[_p];
+        gInSum += stackIn.g = pixels[_p + 1];
+        bInSum += stackIn.b = pixels[_p + 2];
+        aInSum += stackIn.a = pixels[_p + 3];
+        rSum += rInSum;
+        gSum += gInSum;
+        bSum += bInSum;
+        aSum += aInSum;
+        stackIn = stackIn.next;
+        var _stackOut = stackOut,
+            _r = _stackOut.r,
+            _g = _stackOut.g,
+            _b = _stackOut.b,
+            _a = _stackOut.a;
+        rOutSum += _r;
+        gOutSum += _g;
+        bOutSum += _b;
+        aOutSum += _a;
+        rInSum -= _r;
+        gInSum -= _g;
+        bInSum -= _b;
+        aInSum -= _a;
+        stackOut = stackOut.next;
+        yi += 4;
+      }
+
+      yw += width;
+    }
+
+    for (var _x = 0; _x < width; _x++) {
+      yi = _x << 2;
+
+      var _pr = pixels[yi],
+          _pg = pixels[yi + 1],
+          _pb = pixels[yi + 2],
+          _pa = pixels[yi + 3],
+          _rOutSum = radiusPlus1 * _pr,
+          _gOutSum = radiusPlus1 * _pg,
+          _bOutSum = radiusPlus1 * _pb,
+          _aOutSum = radiusPlus1 * _pa,
+          _rSum = sumFactor * _pr,
+          _gSum = sumFactor * _pg,
+          _bSum = sumFactor * _pb,
+          _aSum = sumFactor * _pa;
+
+      stack = stackStart;
+
+      for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {
+        stack.r = _pr;
+        stack.g = _pg;
+        stack.b = _pb;
+        stack.a = _pa;
+        stack = stack.next;
+      }
+
+      var yp = width;
+      var _gInSum = 0,
+          _bInSum = 0,
+          _aInSum = 0,
+          _rInSum = 0;
+
+      for (var _i4 = 1; _i4 <= radius; _i4++) {
+        yi = yp + _x << 2;
+
+        var _rbs = radiusPlus1 - _i4;
+
+        _rSum += (stack.r = _pr = pixels[yi]) * _rbs;
+        _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;
+        _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;
+        _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;
+        _rInSum += _pr;
+        _gInSum += _pg;
+        _bInSum += _pb;
+        _aInSum += _pa;
+        stack = stack.next;
+
+        if (_i4 < heightMinus1) {
+          yp += width;
+        }
+      }
+
+      yi = _x;
+      stackIn = stackStart;
+      stackOut = stackEnd;
+
+      for (var _y = 0; _y < height; _y++) {
+        var _p2 = yi << 2;
+
+        pixels[_p2 + 3] = _pa = _aSum * mulSum >>> shgSum;
+
+        if (_pa > 0) {
+          _pa = 255 / _pa;
+          pixels[_p2] = (_rSum * mulSum >>> shgSum) * _pa;
+          pixels[_p2 + 1] = (_gSum * mulSum >>> shgSum) * _pa;
+          pixels[_p2 + 2] = (_bSum * mulSum >>> shgSum) * _pa;
+        } else {
+          pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;
+        }
+
+        _rSum -= _rOutSum;
+        _gSum -= _gOutSum;
+        _bSum -= _bOutSum;
+        _aSum -= _aOutSum;
+        _rOutSum -= stackIn.r;
+        _gOutSum -= stackIn.g;
+        _bOutSum -= stackIn.b;
+        _aOutSum -= stackIn.a;
+        _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;
+        _rSum += _rInSum += stackIn.r = pixels[_p2];
+        _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];
+        _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];
+        _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];
+        stackIn = stackIn.next;
+        _rOutSum += _pr = stackOut.r;
+        _gOutSum += _pg = stackOut.g;
+        _bOutSum += _pb = stackOut.b;
+        _aOutSum += _pa = stackOut.a;
+        _rInSum -= _pr;
+        _gInSum -= _pg;
+        _bInSum -= _pb;
+        _aInSum -= _pa;
+        stackOut = stackOut.next;
+        yi += width;
+      }
+    }
+
+    return imageData;
+  }
+  /**
+   * @param {HTMLCanvasElement} canvas
+   * @param {Integer} topX
+   * @param {Integer} topY
+   * @param {Integer} width
+   * @param {Integer} height
+   * @param {Float} radius
+   * @returns {undefined}
+   */
+
+
+  function processCanvasRGB(canvas, topX, topY, width, height, radius) {
+    if (isNaN(radius) || radius < 1) {
+      return;
+    }
+
+    radius |= 0;
+    var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);
+    imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);
+    canvas.getContext('2d').putImageData(imageData, topX, topY);
+  }
+  /**
+   * @param {ImageData} imageData
+   * @param {Integer} topX
+   * @param {Integer} topY
+   * @param {Integer} width
+   * @param {Integer} height
+   * @param {Float} radius
+   * @returns {ImageData}
+   */
+
+
+  function processImageDataRGB(imageData, topX, topY, width, height, radius) {
+    var pixels = imageData.data;
+    var div = 2 * radius + 1; // const w4 = width << 2;
+
+    var widthMinus1 = width - 1;
+    var heightMinus1 = height - 1;
+    var radiusPlus1 = radius + 1;
+    var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;
+    var stackStart = new BlurStack();
+    var stack = stackStart;
+    var stackEnd;
+
+    for (var i = 1; i < div; i++) {
+      stack = stack.next = new BlurStack();
+
+      if (i === radiusPlus1) {
+        stackEnd = stack;
+      }
+    }
+
+    stack.next = stackStart;
+    var stackIn = null;
+    var stackOut = null;
+    var mulSum = mulTable[radius];
+    var shgSum = shgTable[radius];
+    var p, rbs;
+    var yw = 0,
+        yi = 0;
+
+    for (var y = 0; y < height; y++) {
+      var pr = pixels[yi],
+          pg = pixels[yi + 1],
+          pb = pixels[yi + 2],
+          rOutSum = radiusPlus1 * pr,
+          gOutSum = radiusPlus1 * pg,
+          bOutSum = radiusPlus1 * pb,
+          rSum = sumFactor * pr,
+          gSum = sumFactor * pg,
+          bSum = sumFactor * pb;
+      stack = stackStart;
+
+      for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {
+        stack.r = pr;
+        stack.g = pg;
+        stack.b = pb;
+        stack = stack.next;
+      }
+
+      var rInSum = 0,
+          gInSum = 0,
+          bInSum = 0;
+
+      for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {
+        p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);
+        rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);
+        gSum += (stack.g = pg = pixels[p + 1]) * rbs;
+        bSum += (stack.b = pb = pixels[p + 2]) * rbs;
+        rInSum += pr;
+        gInSum += pg;
+        bInSum += pb;
+        stack = stack.next;
+      }
+
+      stackIn = stackStart;
+      stackOut = stackEnd;
+
+      for (var x = 0; x < width; x++) {
+        pixels[yi] = rSum * mulSum >>> shgSum;
+        pixels[yi + 1] = gSum * mulSum >>> shgSum;
+        pixels[yi + 2] = bSum * mulSum >>> shgSum;
+        rSum -= rOutSum;
+        gSum -= gOutSum;
+        bSum -= bOutSum;
+        rOutSum -= stackIn.r;
+        gOutSum -= stackIn.g;
+        bOutSum -= stackIn.b;
+        p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;
+        rInSum += stackIn.r = pixels[p];
+        gInSum += stackIn.g = pixels[p + 1];
+        bInSum += stackIn.b = pixels[p + 2];
+        rSum += rInSum;
+        gSum += gInSum;
+        bSum += bInSum;
+        stackIn = stackIn.next;
+        rOutSum += pr = stackOut.r;
+        gOutSum += pg = stackOut.g;
+        bOutSum += pb = stackOut.b;
+        rInSum -= pr;
+        gInSum -= pg;
+        bInSum -= pb;
+        stackOut = stackOut.next;
+        yi += 4;
+      }
+
+      yw += width;
+    }
+
+    for (var _x2 = 0; _x2 < width; _x2++) {
+      yi = _x2 << 2;
+
+      var _pr2 = pixels[yi],
+          _pg2 = pixels[yi + 1],
+          _pb2 = pixels[yi + 2],
+          _rOutSum2 = radiusPlus1 * _pr2,
+          _gOutSum2 = radiusPlus1 * _pg2,
+          _bOutSum2 = radiusPlus1 * _pb2,
+          _rSum2 = sumFactor * _pr2,
+          _gSum2 = sumFactor * _pg2,
+          _bSum2 = sumFactor * _pb2;
+
+      stack = stackStart;
+
+      for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {
+        stack.r = _pr2;
+        stack.g = _pg2;
+        stack.b = _pb2;
+        stack = stack.next;
+      }
+
+      var _rInSum2 = 0,
+          _gInSum2 = 0,
+          _bInSum2 = 0;
+
+      for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {
+        yi = yp + _x2 << 2;
+        _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);
+        _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;
+        _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;
+        _rInSum2 += _pr2;
+        _gInSum2 += _pg2;
+        _bInSum2 += _pb2;
+        stack = stack.next;
+
+        if (_i8 < heightMinus1) {
+          yp += width;
+        }
+      }
+
+      yi = _x2;
+      stackIn = stackStart;
+      stackOut = stackEnd;
+
+      for (var _y2 = 0; _y2 < height; _y2++) {
+        p = yi << 2;
+        pixels[p] = _rSum2 * mulSum >>> shgSum;
+        pixels[p + 1] = _gSum2 * mulSum >>> shgSum;
+        pixels[p + 2] = _bSum2 * mulSum >>> shgSum;
+        _rSum2 -= _rOutSum2;
+        _gSum2 -= _gOutSum2;
+        _bSum2 -= _bOutSum2;
+        _rOutSum2 -= stackIn.r;
+        _gOutSum2 -= stackIn.g;
+        _bOutSum2 -= stackIn.b;
+        p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;
+        _rSum2 += _rInSum2 += stackIn.r = pixels[p];
+        _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];
+        _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];
+        stackIn = stackIn.next;
+        _rOutSum2 += _pr2 = stackOut.r;
+        _gOutSum2 += _pg2 = stackOut.g;
+        _bOutSum2 += _pb2 = stackOut.b;
+        _rInSum2 -= _pr2;
+        _gInSum2 -= _pg2;
+        _bInSum2 -= _pb2;
+        stackOut = stackOut.next;
+        yi += width;
+      }
+    }
+
+    return imageData;
+  }
+  /**
+   *
+   */
+
+
+  var BlurStack =
+  /**
+   * Set properties.
+   */
+  function BlurStack() {
+    _classCallCheck(this, BlurStack);
+
+    this.r = 0;
+    this.g = 0;
+    this.b = 0;
+    this.a = 0;
+    this.next = null;
+  };
+
+  exports.BlurStack = BlurStack;
+  exports.canvasRGB = processCanvasRGB;
+  exports.canvasRGBA = processCanvasRGBA;
+  exports.image = processImage;
+  exports.imageDataRGB = processImageDataRGB;
+  exports.imageDataRGBA = processImageDataRGBA;
+
+  Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
Index: imaps-frontend/node_modules/stackblur-canvas/dist/stackblur.min.js
===================================================================
--- imaps-frontend/node_modules/stackblur-canvas/dist/stackblur.min.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/stackblur-canvas/dist/stackblur.min.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -0,0 +1,2 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).StackBlur={})}(this,(function(t){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var r=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],n=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function a(t,r,n,a,o){if("string"==typeof t&&(t=document.getElementById(t)),!t||"object"!==e(t)||!("getContext"in t))throw new TypeError("Expecting canvas with `getContext` method in processCanvasRGB(A) calls!");var i=t.getContext("2d");try{return i.getImageData(r,n,a,o)}catch(t){throw new Error("unable to access image data: "+t)}}function o(t,e,r,n,o,f){if(!(isNaN(f)||f<1)){f|=0;var g=a(t,e,r,n,o);g=i(g,e,r,n,o,f),t.getContext("2d").putImageData(g,e,r)}}function i(t,e,a,o,i,f){for(var g,c=t.data,u=2*f+1,s=o-1,v=i-1,b=f+1,x=b*(b+1)/2,d=new l,p=d,y=1;y<u;y++)p=p.next=new l,y===b&&(g=p);p.next=d;for(var h=null,m=null,w=0,B=0,C=r[f],I=n[f],S=0;S<i;S++){p=d;for(var E=c[B],N=c[B+1],R=c[B+2],j=c[B+3],D=0;D<b;D++)p.r=E,p.g=N,p.b=R,p.a=j,p=p.next;for(var G=0,T=0,A=0,H=0,O=b*E,W=b*N,k=b*R,M=b*j,_=x*E,L=x*N,P=x*R,q=x*j,z=1;z<b;z++){var F=B+((s<z?s:z)<<2),J=c[F],K=c[F+1],Q=c[F+2],U=c[F+3],V=b-z;_+=(p.r=J)*V,L+=(p.g=K)*V,P+=(p.b=Q)*V,q+=(p.a=U)*V,G+=J,T+=K,A+=Q,H+=U,p=p.next}h=d,m=g;for(var X=0;X<o;X++){var Y=q*C>>>I;if(c[B+3]=Y,0!==Y){var Z=255/Y;c[B]=(_*C>>>I)*Z,c[B+1]=(L*C>>>I)*Z,c[B+2]=(P*C>>>I)*Z}else c[B]=c[B+1]=c[B+2]=0;_-=O,L-=W,P-=k,q-=M,O-=h.r,W-=h.g,k-=h.b,M-=h.a;var $=X+f+1;$=w+($<s?$:s)<<2,_+=G+=h.r=c[$],L+=T+=h.g=c[$+1],P+=A+=h.b=c[$+2],q+=H+=h.a=c[$+3],h=h.next;var tt=m,et=tt.r,rt=tt.g,nt=tt.b,at=tt.a;O+=et,W+=rt,k+=nt,M+=at,G-=et,T-=rt,A-=nt,H-=at,m=m.next,B+=4}w+=o}for(var ot=0;ot<o;ot++){var it=c[B=ot<<2],ft=c[B+1],gt=c[B+2],lt=c[B+3],ct=b*it,ut=b*ft,st=b*gt,vt=b*lt,bt=x*it,xt=x*ft,dt=x*gt,pt=x*lt;p=d;for(var yt=0;yt<b;yt++)p.r=it,p.g=ft,p.b=gt,p.a=lt,p=p.next;for(var ht=o,mt=0,wt=0,Bt=0,Ct=0,It=1;It<=f;It++){B=ht+ot<<2;var St=b-It;bt+=(p.r=it=c[B])*St,xt+=(p.g=ft=c[B+1])*St,dt+=(p.b=gt=c[B+2])*St,pt+=(p.a=lt=c[B+3])*St,Ct+=it,mt+=ft,wt+=gt,Bt+=lt,p=p.next,It<v&&(ht+=o)}B=ot,h=d,m=g;for(var Et=0;Et<i;Et++){var Nt=B<<2;c[Nt+3]=lt=pt*C>>>I,lt>0?(lt=255/lt,c[Nt]=(bt*C>>>I)*lt,c[Nt+1]=(xt*C>>>I)*lt,c[Nt+2]=(dt*C>>>I)*lt):c[Nt]=c[Nt+1]=c[Nt+2]=0,bt-=ct,xt-=ut,dt-=st,pt-=vt,ct-=h.r,ut-=h.g,st-=h.b,vt-=h.a,Nt=ot+((Nt=Et+b)<v?Nt:v)*o<<2,bt+=Ct+=h.r=c[Nt],xt+=mt+=h.g=c[Nt+1],dt+=wt+=h.b=c[Nt+2],pt+=Bt+=h.a=c[Nt+3],h=h.next,ct+=it=m.r,ut+=ft=m.g,st+=gt=m.b,vt+=lt=m.a,Ct-=it,mt-=ft,wt-=gt,Bt-=lt,m=m.next,B+=o}}return t}function f(t,e,r,n,o,i){if(!(isNaN(i)||i<1)){i|=0;var f=a(t,e,r,n,o);f=g(f,e,r,n,o,i),t.getContext("2d").putImageData(f,e,r)}}function g(t,e,a,o,i,f){for(var g,c=t.data,u=2*f+1,s=o-1,v=i-1,b=f+1,x=b*(b+1)/2,d=new l,p=d,y=1;y<u;y++)p=p.next=new l,y===b&&(g=p);p.next=d;for(var h,m,w=null,B=null,C=r[f],I=n[f],S=0,E=0,N=0;N<i;N++){var R=c[E],j=c[E+1],D=c[E+2],G=b*R,T=b*j,A=b*D,H=x*R,O=x*j,W=x*D;p=d;for(var k=0;k<b;k++)p.r=R,p.g=j,p.b=D,p=p.next;for(var M=0,_=0,L=0,P=1;P<b;P++)h=E+((s<P?s:P)<<2),H+=(p.r=R=c[h])*(m=b-P),O+=(p.g=j=c[h+1])*m,W+=(p.b=D=c[h+2])*m,M+=R,_+=j,L+=D,p=p.next;w=d,B=g;for(var q=0;q<o;q++)c[E]=H*C>>>I,c[E+1]=O*C>>>I,c[E+2]=W*C>>>I,H-=G,O-=T,W-=A,G-=w.r,T-=w.g,A-=w.b,h=S+((h=q+f+1)<s?h:s)<<2,H+=M+=w.r=c[h],O+=_+=w.g=c[h+1],W+=L+=w.b=c[h+2],w=w.next,G+=R=B.r,T+=j=B.g,A+=D=B.b,M-=R,_-=j,L-=D,B=B.next,E+=4;S+=o}for(var z=0;z<o;z++){var F=c[E=z<<2],J=c[E+1],K=c[E+2],Q=b*F,U=b*J,V=b*K,X=x*F,Y=x*J,Z=x*K;p=d;for(var $=0;$<b;$++)p.r=F,p.g=J,p.b=K,p=p.next;for(var tt=0,et=0,rt=0,nt=1,at=o;nt<=f;nt++)E=at+z<<2,X+=(p.r=F=c[E])*(m=b-nt),Y+=(p.g=J=c[E+1])*m,Z+=(p.b=K=c[E+2])*m,tt+=F,et+=J,rt+=K,p=p.next,nt<v&&(at+=o);E=z,w=d,B=g;for(var ot=0;ot<i;ot++)c[h=E<<2]=X*C>>>I,c[h+1]=Y*C>>>I,c[h+2]=Z*C>>>I,X-=Q,Y-=U,Z-=V,Q-=w.r,U-=w.g,V-=w.b,h=z+((h=ot+b)<v?h:v)*o<<2,X+=tt+=w.r=c[h],Y+=et+=w.g=c[h+1],Z+=rt+=w.b=c[h+2],w=w.next,Q+=F=B.r,U+=J=B.g,V+=K=B.b,tt-=F,et-=J,rt-=K,B=B.next,E+=o}return t}var l=function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.r=0,this.g=0,this.b=0,this.a=0,this.next=null};t.BlurStack=l,t.canvasRGB=f,t.canvasRGBA=o,t.image=function(t,e,r,n,a,i){if("string"==typeof t&&(t=document.getElementById(t)),t&&("HTMLImageElement"!==Object.prototype.toString.call(t).slice(8,-1)||"naturalWidth"in t)){var g=a?"offset":"natural",l=t[g+"Width"],c=t[g+"Height"];if("ImageBitmap"===Object.prototype.toString.call(t).slice(8,-1)&&(l=t.width,c=t.height),"string"==typeof e&&(e=document.getElementById(e)),e&&"getContext"in e){i||(e.style.width=l+"px",e.style.height=c+"px"),e.width=l,e.height=c;var u=e.getContext("2d");u.clearRect(0,0,l,c),u.drawImage(t,0,0,t.naturalWidth,t.naturalHeight,0,0,l,c),isNaN(r)||r<1||(n?o(e,0,0,l,c,r):f(e,0,0,l,c,r))}}},t.imageDataRGB=g,t.imageDataRGBA=i,Object.defineProperty(t,"__esModule",{value:!0})}));
+//# sourceMappingURL=stackblur.min.js.map
Index: imaps-frontend/node_modules/stackblur-canvas/dist/stackblur.min.js.map
===================================================================
--- imaps-frontend/node_modules/stackblur-canvas/dist/stackblur.min.js.map	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/stackblur-canvas/dist/stackblur.min.js.map	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -0,0 +1,1 @@
+{"version":3,"file":"stackblur.min.js","sources":["../src/stackblur.js"],"sourcesContent":["/* eslint-disable no-bitwise -- used for calculations */\n/* eslint-disable unicorn/prefer-query-selector -- aiming at\n  backward-compatibility */\n/**\n* StackBlur - a fast almost Gaussian Blur For Canvas\n*\n* In case you find this class useful - especially in commercial projects -\n* I am not totally unhappy for a small donation to my PayPal account\n* mario@quasimondo.de\n*\n* Or support me on flattr:\n* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}.\n*\n* @module StackBlur\n* @author Mario Klingemann\n* Contact: mario@quasimondo.com\n* Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}\n* Twitter: @quasimondo\n*\n* @copyright (c) 2010 Mario Klingemann\n*\n* Permission is hereby granted, free of charge, to any person\n* obtaining a copy of this software and associated documentation\n* files (the \"Software\"), to deal in the Software without\n* restriction, including without limitation the rights to use,\n* copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the\n* Software is furnished to do so, subject to the following\n* conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n* OTHER DEALINGS IN THE SOFTWARE.\n*/\n\nconst mulTable = [\n  512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292,\n  512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292,\n  273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259,\n  496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292,\n  282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373,\n  364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259,\n  507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381,\n  374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292,\n  287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461,\n  454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373,\n  368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309,\n  305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259,\n  257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442,\n  437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381,\n  377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332,\n  329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292,\n  289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259\n];\n\nconst shgTable = [\n  9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17,\n  17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19,\n  19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20,\n  20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21,\n  21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,\n  21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,\n  22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n  22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23,\n  23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n  23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n  23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n  23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24\n];\n\n/**\n * @param {string|HTMLImageElement} img\n * @param {string|HTMLCanvasElement} canvas\n * @param {Float} radius\n * @param {boolean} blurAlphaChannel\n * @param {boolean} useOffset\n * @param {boolean} skipStyles\n * @returns {undefined}\n */\nfunction processImage (\n  img, canvas, radius, blurAlphaChannel, useOffset, skipStyles\n) {\n  if (typeof img === 'string') {\n    img = document.getElementById(img);\n  }\n\n  if (\n    !img ||\n    (Object.prototype.toString.call(img).slice(8, -1) ===\n      'HTMLImageElement' && !('naturalWidth' in img))\n  ) {\n    return;\n  }\n\n  const dimensionType = useOffset ? 'offset' : 'natural';\n  let w = img[dimensionType + 'Width'];\n  let h = img[dimensionType + 'Height'];\n\n  // add ImageBitmap support,can blur texture source\n  if (Object.prototype.toString.call(img).slice(8, -1) === 'ImageBitmap') {\n    w = img.width;\n    h = img.height;\n  }\n\n  if (typeof canvas === 'string') {\n    canvas = document.getElementById(canvas);\n  }\n  if (!canvas || !('getContext' in canvas)) {\n    return;\n  }\n\n  if (!skipStyles) {\n    canvas.style.width = w + 'px';\n    canvas.style.height = h + 'px';\n  }\n  canvas.width = w;\n  canvas.height = h;\n\n  const context = canvas.getContext('2d');\n  context.clearRect(0, 0, w, h);\n  context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h);\n\n  if (isNaN(radius) || radius < 1) { return; }\n\n  if (blurAlphaChannel) {\n    processCanvasRGBA(canvas, 0, 0, w, h, radius);\n  } else {\n    processCanvasRGB(canvas, 0, 0, w, h, radius);\n  }\n}\n\n/**\n * @param {string|HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @throws {Error|TypeError}\n * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}\n */\nfunction getImageDataFromCanvas (canvas, topX, topY, width, height) {\n  if (typeof canvas === 'string') {\n    canvas = document.getElementById(canvas);\n  }\n  if (!canvas || typeof canvas !== 'object' || !('getContext' in canvas)) {\n    throw new TypeError(\n      'Expecting canvas with `getContext` method ' +\n            'in processCanvasRGB(A) calls!'\n    );\n  }\n\n  const context = canvas.getContext('2d');\n\n  try {\n    return context.getImageData(topX, topY, width, height);\n  } catch (e) {\n    throw new Error('unable to access image data: ' + e);\n  }\n}\n\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\nfunction processCanvasRGBA (canvas, topX, topY, width, height, radius) {\n  if (isNaN(radius) || radius < 1) { return; }\n  radius |= 0;\n\n  let imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n\n  imageData = processImageDataRGBA(\n    imageData, topX, topY, width, height, radius\n  );\n\n  canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\nfunction processImageDataRGBA (imageData, topX, topY, width, height, radius) {\n  const pixels = imageData.data;\n\n  const div = 2 * radius + 1;\n  // const w4 = width << 2;\n  const widthMinus1 = width - 1;\n  const heightMinus1 = height - 1;\n  const radiusPlus1 = radius + 1;\n  const sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n\n  const stackStart = new BlurStack();\n  let stack = stackStart;\n  let stackEnd;\n  for (let i = 1; i < div; i++) {\n    stack = stack.next = new BlurStack();\n    if (i === radiusPlus1) {\n      stackEnd = stack;\n    }\n  }\n  stack.next = stackStart;\n\n  let stackIn = null,\n    stackOut = null,\n    yw = 0,\n    yi = 0;\n\n  const mulSum = mulTable[radius];\n  const shgSum = shgTable[radius];\n\n  for (let y = 0; y < height; y++) {\n    stack = stackStart;\n\n    const pr = pixels[yi],\n      pg = pixels[yi + 1],\n      pb = pixels[yi + 2],\n      pa = pixels[yi + 3];\n\n    for (let i = 0; i < radiusPlus1; i++) {\n      stack.r = pr;\n      stack.g = pg;\n      stack.b = pb;\n      stack.a = pa;\n      stack = stack.next;\n    }\n\n    let rInSum = 0, gInSum = 0, bInSum = 0, aInSum = 0,\n      rOutSum = radiusPlus1 * pr,\n      gOutSum = radiusPlus1 * pg,\n      bOutSum = radiusPlus1 * pb,\n      aOutSum = radiusPlus1 * pa,\n      rSum = sumFactor * pr,\n      gSum = sumFactor * pg,\n      bSum = sumFactor * pb,\n      aSum = sumFactor * pa;\n\n    for (let i = 1; i < radiusPlus1; i++) {\n      const p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n\n      const r = pixels[p],\n        g = pixels[p + 1],\n        b = pixels[p + 2],\n        a = pixels[p + 3];\n\n      const rbs = radiusPlus1 - i;\n      rSum += (stack.r = r) * rbs;\n      gSum += (stack.g = g) * rbs;\n      bSum += (stack.b = b) * rbs;\n      aSum += (stack.a = a) * rbs;\n\n      rInSum += r;\n      gInSum += g;\n      bInSum += b;\n      aInSum += a;\n\n      stack = stack.next;\n    }\n\n    stackIn = stackStart;\n    stackOut = stackEnd;\n    for (let x = 0; x < width; x++) {\n      const paInitial = (aSum * mulSum) >>> shgSum;\n      pixels[yi + 3] = paInitial;\n      if (paInitial !== 0) {\n        const a = 255 / paInitial;\n        pixels[yi] = ((rSum * mulSum) >>> shgSum) * a;\n        pixels[yi + 1] = ((gSum * mulSum) >>> shgSum) * a;\n        pixels[yi + 2] = ((bSum * mulSum) >>> shgSum) * a;\n      } else {\n        pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n      }\n\n      rSum -= rOutSum;\n      gSum -= gOutSum;\n      bSum -= bOutSum;\n      aSum -= aOutSum;\n\n      rOutSum -= stackIn.r;\n      gOutSum -= stackIn.g;\n      bOutSum -= stackIn.b;\n      aOutSum -= stackIn.a;\n\n      let p = x + radius + 1;\n      p = (yw + (p < widthMinus1\n        ? p\n        : widthMinus1)) << 2;\n\n      rInSum += (stackIn.r = pixels[p]);\n      gInSum += (stackIn.g = pixels[p + 1]);\n      bInSum += (stackIn.b = pixels[p + 2]);\n      aInSum += (stackIn.a = pixels[p + 3]);\n\n      rSum += rInSum;\n      gSum += gInSum;\n      bSum += bInSum;\n      aSum += aInSum;\n\n      stackIn = stackIn.next;\n\n      const {r, g, b, a} = stackOut;\n\n      rOutSum += r;\n      gOutSum += g;\n      bOutSum += b;\n      aOutSum += a;\n\n      rInSum -= r;\n      gInSum -= g;\n      bInSum -= b;\n      aInSum -= a;\n\n      stackOut = stackOut.next;\n\n      yi += 4;\n    }\n    yw += width;\n  }\n\n  for (let x = 0; x < width; x++) {\n    yi = x << 2;\n\n    let pr = pixels[yi],\n      pg = pixels[yi + 1],\n      pb = pixels[yi + 2],\n      pa = pixels[yi + 3],\n      rOutSum = radiusPlus1 * pr,\n      gOutSum = radiusPlus1 * pg,\n      bOutSum = radiusPlus1 * pb,\n      aOutSum = radiusPlus1 * pa,\n      rSum = sumFactor * pr,\n      gSum = sumFactor * pg,\n      bSum = sumFactor * pb,\n      aSum = sumFactor * pa;\n\n    stack = stackStart;\n\n    for (let i = 0; i < radiusPlus1; i++) {\n      stack.r = pr;\n      stack.g = pg;\n      stack.b = pb;\n      stack.a = pa;\n      stack = stack.next;\n    }\n\n    let yp = width;\n\n    let gInSum = 0, bInSum = 0, aInSum = 0, rInSum = 0;\n    for (let i = 1; i <= radius; i++) {\n      yi = (yp + x) << 2;\n\n      const rbs = radiusPlus1 - i;\n      rSum += (stack.r = (pr = pixels[yi])) * rbs;\n      gSum += (stack.g = (pg = pixels[yi + 1])) * rbs;\n      bSum += (stack.b = (pb = pixels[yi + 2])) * rbs;\n      aSum += (stack.a = (pa = pixels[yi + 3])) * rbs;\n\n      rInSum += pr;\n      gInSum += pg;\n      bInSum += pb;\n      aInSum += pa;\n\n      stack = stack.next;\n\n      if (i < heightMinus1) {\n        yp += width;\n      }\n    }\n\n    yi = x;\n    stackIn = stackStart;\n    stackOut = stackEnd;\n    for (let y = 0; y < height; y++) {\n      let p = yi << 2;\n      pixels[p + 3] = pa = (aSum * mulSum) >>> shgSum;\n      if (pa > 0) {\n        pa = 255 / pa;\n        pixels[p] = ((rSum * mulSum) >>> shgSum) * pa;\n        pixels[p + 1] = ((gSum * mulSum) >>> shgSum) * pa;\n        pixels[p + 2] = ((bSum * mulSum) >>> shgSum) * pa;\n      } else {\n        pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;\n      }\n\n      rSum -= rOutSum;\n      gSum -= gOutSum;\n      bSum -= bOutSum;\n      aSum -= aOutSum;\n\n      rOutSum -= stackIn.r;\n      gOutSum -= stackIn.g;\n      bOutSum -= stackIn.b;\n      aOutSum -= stackIn.a;\n\n      p = (x + (\n        ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) *\n                width\n      )) << 2;\n\n      rSum += (rInSum += (stackIn.r = pixels[p]));\n      gSum += (gInSum += (stackIn.g = pixels[p + 1]));\n      bSum += (bInSum += (stackIn.b = pixels[p + 2]));\n      aSum += (aInSum += (stackIn.a = pixels[p + 3]));\n\n      stackIn = stackIn.next;\n\n      rOutSum += (pr = stackOut.r);\n      gOutSum += (pg = stackOut.g);\n      bOutSum += (pb = stackOut.b);\n      aOutSum += (pa = stackOut.a);\n\n      rInSum -= pr;\n      gInSum -= pg;\n      bInSum -= pb;\n      aInSum -= pa;\n\n      stackOut = stackOut.next;\n\n      yi += width;\n    }\n  }\n  return imageData;\n}\n\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\nfunction processCanvasRGB (canvas, topX, topY, width, height, radius) {\n  if (isNaN(radius) || radius < 1) { return; }\n  radius |= 0;\n\n  let imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n  imageData = processImageDataRGB(\n    imageData, topX, topY, width, height, radius\n  );\n\n  canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\nfunction processImageDataRGB (imageData, topX, topY, width, height, radius) {\n  const pixels = imageData.data;\n\n  const div = 2 * radius + 1;\n  // const w4 = width << 2;\n  const widthMinus1 = width - 1;\n  const heightMinus1 = height - 1;\n  const radiusPlus1 = radius + 1;\n  const sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n\n  const stackStart = new BlurStack();\n  let stack = stackStart;\n  let stackEnd;\n  for (let i = 1; i < div; i++) {\n    stack = stack.next = new BlurStack();\n    if (i === radiusPlus1) {\n      stackEnd = stack;\n    }\n  }\n  stack.next = stackStart;\n  let stackIn = null;\n  let stackOut = null;\n\n  const mulSum = mulTable[radius];\n  const shgSum = shgTable[radius];\n\n  let p, rbs;\n  let yw = 0, yi = 0;\n\n  for (let y = 0; y < height; y++) {\n    let pr = pixels[yi],\n      pg = pixels[yi + 1],\n      pb = pixels[yi + 2],\n      rOutSum = radiusPlus1 * pr,\n      gOutSum = radiusPlus1 * pg,\n      bOutSum = radiusPlus1 * pb,\n      rSum = sumFactor * pr,\n      gSum = sumFactor * pg,\n      bSum = sumFactor * pb;\n\n    stack = stackStart;\n\n    for (let i = 0; i < radiusPlus1; i++) {\n      stack.r = pr;\n      stack.g = pg;\n      stack.b = pb;\n      stack = stack.next;\n    }\n\n    let rInSum = 0, gInSum = 0, bInSum = 0;\n    for (let i = 1; i < radiusPlus1; i++) {\n      p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n      rSum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i);\n      gSum += (stack.g = (pg = pixels[p + 1])) * rbs;\n      bSum += (stack.b = (pb = pixels[p + 2])) * rbs;\n\n      rInSum += pr;\n      gInSum += pg;\n      bInSum += pb;\n\n      stack = stack.next;\n    }\n\n    stackIn = stackStart;\n    stackOut = stackEnd;\n    for (let x = 0; x < width; x++) {\n      pixels[yi] = (rSum * mulSum) >>> shgSum;\n      pixels[yi + 1] = (gSum * mulSum) >>> shgSum;\n      pixels[yi + 2] = (bSum * mulSum) >>> shgSum;\n\n      rSum -= rOutSum;\n      gSum -= gOutSum;\n      bSum -= bOutSum;\n\n      rOutSum -= stackIn.r;\n      gOutSum -= stackIn.g;\n      bOutSum -= stackIn.b;\n\n      p = (yw + (\n        (p = x + radius + 1) < widthMinus1 ? p : widthMinus1\n      )) << 2;\n\n      rInSum += (stackIn.r = pixels[p]);\n      gInSum += (stackIn.g = pixels[p + 1]);\n      bInSum += (stackIn.b = pixels[p + 2]);\n\n      rSum += rInSum;\n      gSum += gInSum;\n      bSum += bInSum;\n\n      stackIn = stackIn.next;\n\n      rOutSum += (pr = stackOut.r);\n      gOutSum += (pg = stackOut.g);\n      bOutSum += (pb = stackOut.b);\n\n      rInSum -= pr;\n      gInSum -= pg;\n      bInSum -= pb;\n\n      stackOut = stackOut.next;\n\n      yi += 4;\n    }\n    yw += width;\n  }\n\n  for (let x = 0; x < width; x++) {\n    yi = x << 2;\n    let pr = pixels[yi],\n      pg = pixels[yi + 1],\n      pb = pixels[yi + 2],\n      rOutSum = radiusPlus1 * pr,\n      gOutSum = radiusPlus1 * pg,\n      bOutSum = radiusPlus1 * pb,\n      rSum = sumFactor * pr,\n      gSum = sumFactor * pg,\n      bSum = sumFactor * pb;\n\n    stack = stackStart;\n\n    for (let i = 0; i < radiusPlus1; i++) {\n      stack.r = pr;\n      stack.g = pg;\n      stack.b = pb;\n      stack = stack.next;\n    }\n\n    let rInSum = 0, gInSum = 0, bInSum = 0;\n    for (let i = 1, yp = width; i <= radius; i++) {\n      yi = (yp + x) << 2;\n\n      rSum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i);\n      gSum += (stack.g = (pg = pixels[yi + 1])) * rbs;\n      bSum += (stack.b = (pb = pixels[yi + 2])) * rbs;\n\n      rInSum += pr;\n      gInSum += pg;\n      bInSum += pb;\n\n      stack = stack.next;\n\n      if (i < heightMinus1) {\n        yp += width;\n      }\n    }\n\n    yi = x;\n    stackIn = stackStart;\n    stackOut = stackEnd;\n    for (let y = 0; y < height; y++) {\n      p = yi << 2;\n      pixels[p] = (rSum * mulSum) >>> shgSum;\n      pixels[p + 1] = (gSum * mulSum) >>> shgSum;\n      pixels[p + 2] = (bSum * mulSum) >>> shgSum;\n\n      rSum -= rOutSum;\n      gSum -= gOutSum;\n      bSum -= bOutSum;\n\n      rOutSum -= stackIn.r;\n      gOutSum -= stackIn.g;\n      bOutSum -= stackIn.b;\n\n      p = (x + (\n        ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) *\n                width\n      )) << 2;\n\n      rSum += (rInSum += (stackIn.r = pixels[p]));\n      gSum += (gInSum += (stackIn.g = pixels[p + 1]));\n      bSum += (bInSum += (stackIn.b = pixels[p + 2]));\n\n      stackIn = stackIn.next;\n\n      rOutSum += (pr = stackOut.r);\n      gOutSum += (pg = stackOut.g);\n      bOutSum += (pb = stackOut.b);\n\n      rInSum -= pr;\n      gInSum -= pg;\n      bInSum -= pb;\n\n      stackOut = stackOut.next;\n\n      yi += width;\n    }\n  }\n\n  return imageData;\n}\n\n/**\n *\n */\nexport class BlurStack {\n  /**\n   * Set properties.\n   */\n  constructor () {\n    this.r = 0;\n    this.g = 0;\n    this.b = 0;\n    this.a = 0;\n    this.next = null;\n  }\n}\n\nexport {\n  /**\n    * @function module:StackBlur.image\n    * @see module:StackBlur~processImage\n    */\n  processImage as image,\n  /**\n    * @function module:StackBlur.canvasRGBA\n    * @see module:StackBlur~processCanvasRGBA\n    */\n  processCanvasRGBA as canvasRGBA,\n  /**\n    * @function module:StackBlur.canvasRGB\n    * @see module:StackBlur~processCanvasRGB\n    */\n  processCanvasRGB as canvasRGB,\n  /**\n    * @function module:StackBlur.imageDataRGBA\n    * @see module:StackBlur~processImageDataRGBA\n    */\n  processImageDataRGBA as imageDataRGBA,\n  /**\n    * @function module:StackBlur.imageDataRGB\n    * @see module:StackBlur~processImageDataRGB\n    */\n  processImageDataRGB as imageDataRGB\n};\n"],"names":["mulTable","shgTable","getImageDataFromCanvas","canvas","topX","topY","width","height","document","getElementById","_typeof","TypeError","context","getContext","getImageData","e","Error","processCanvasRGBA","radius","isNaN","imageData","processImageDataRGBA","putImageData","stackEnd","pixels","data","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","i","next","stackIn","stackOut","yw","yi","mulSum","shgSum","y","pr","pg","pb","pa","r","g","b","a","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","p","rbs","x","paInitial","yp","processCanvasRGB","processImageDataRGB","img","blurAlphaChannel","useOffset","skipStyles","Object","prototype","toString","call","slice","dimensionType","w","h","style","clearRect","drawImage","naturalWidth","naturalHeight"],"mappings":"sdA2CA,IAAMA,EAAW,CACf,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGlEC,EAAW,CACf,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,G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"}
