%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 13.59.27.141
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/landing/imagecompressor/dist/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/landing/imagecompressor/dist/imagecompressor.bundle.js.map
{"version":3,"file":"imagecompressor.bundle.js","sources":["../node_modules/blueimp-canvas-to-blob/js/canvas-to-blob.js","../node_modules/is-blob/index.js","../node_modules/compressorjs/src/defaults.js","../node_modules/compressorjs/src/constants.js","../node_modules/compressorjs/src/utilities.js","../node_modules/compressorjs/src/index.js","../src/internal/allowed-size-props.js","../src/internal/url-to-blob.js","../src/imagecompressor.js"],"sourcesContent":["/*\n * JavaScript Canvas to Blob\n * https://github.com/blueimp/JavaScript-Canvas-to-Blob\n *\n * Copyright 2012, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on stackoverflow user Stoive's code snippet:\n * http://stackoverflow.com/q/4998908\n */\n\n/* global define, Uint8Array, ArrayBuffer, module */\n\n;(function(window) {\n  'use strict'\n\n  var CanvasPrototype =\n    window.HTMLCanvasElement && window.HTMLCanvasElement.prototype\n  var hasBlobConstructor =\n    window.Blob &&\n    (function() {\n      try {\n        return Boolean(new Blob())\n      } catch (e) {\n        return false\n      }\n    })()\n  var hasArrayBufferViewSupport =\n    hasBlobConstructor &&\n    window.Uint8Array &&\n    (function() {\n      try {\n        return new Blob([new Uint8Array(100)]).size === 100\n      } catch (e) {\n        return false\n      }\n    })()\n  var BlobBuilder =\n    window.BlobBuilder ||\n    window.WebKitBlobBuilder ||\n    window.MozBlobBuilder ||\n    window.MSBlobBuilder\n  var dataURIPattern = /^data:((.*?)(;charset=.*?)?)(;base64)?,/\n  var dataURLtoBlob =\n    (hasBlobConstructor || BlobBuilder) &&\n    window.atob &&\n    window.ArrayBuffer &&\n    window.Uint8Array &&\n    function(dataURI) {\n      var matches,\n        mediaType,\n        isBase64,\n        dataString,\n        byteString,\n        arrayBuffer,\n        intArray,\n        i,\n        bb\n      // Parse the dataURI components as per RFC 2397\n      matches = dataURI.match(dataURIPattern)\n      if (!matches) {\n        throw new Error('invalid data URI')\n      }\n      // Default to text/plain;charset=US-ASCII\n      mediaType = matches[2]\n        ? matches[1]\n        : 'text/plain' + (matches[3] || ';charset=US-ASCII')\n      isBase64 = !!matches[4]\n      dataString = dataURI.slice(matches[0].length)\n      if (isBase64) {\n        // Convert base64 to raw binary data held in a string:\n        byteString = atob(dataString)\n      } else {\n        // Convert base64/URLEncoded data component to raw binary:\n        byteString = decodeURIComponent(dataString)\n      }\n      // Write the bytes of the string to an ArrayBuffer:\n      arrayBuffer = new ArrayBuffer(byteString.length)\n      intArray = new Uint8Array(arrayBuffer)\n      for (i = 0; i < byteString.length; i += 1) {\n        intArray[i] = byteString.charCodeAt(i)\n      }\n      // Write the ArrayBuffer (or ArrayBufferView) to a blob:\n      if (hasBlobConstructor) {\n        return new Blob([hasArrayBufferViewSupport ? intArray : arrayBuffer], {\n          type: mediaType\n        })\n      }\n      bb = new BlobBuilder()\n      bb.append(arrayBuffer)\n      return bb.getBlob(mediaType)\n    }\n  if (window.HTMLCanvasElement && !CanvasPrototype.toBlob) {\n    if (CanvasPrototype.mozGetAsFile) {\n      CanvasPrototype.toBlob = function(callback, type, quality) {\n        var self = this\n        setTimeout(function() {\n          if (quality && CanvasPrototype.toDataURL && dataURLtoBlob) {\n            callback(dataURLtoBlob(self.toDataURL(type, quality)))\n          } else {\n            callback(self.mozGetAsFile('blob', type))\n          }\n        })\n      }\n    } else if (CanvasPrototype.toDataURL && dataURLtoBlob) {\n      CanvasPrototype.toBlob = function(callback, type, quality) {\n        var self = this\n        setTimeout(function() {\n          callback(dataURLtoBlob(self.toDataURL(type, quality)))\n        })\n      }\n    }\n  }\n  if (typeof define === 'function' && define.amd) {\n    define(function() {\n      return dataURLtoBlob\n    })\n  } else if (typeof module === 'object' && module.exports) {\n    module.exports = dataURLtoBlob\n  } else {\n    window.dataURLtoBlob = dataURLtoBlob\n  }\n})(window)\n","'use strict';\n\nmodule.exports = input => {\n\tif (typeof Blob === 'undefined') {\n\t\treturn false;\n\t}\n\n\treturn input instanceof Blob || Object.prototype.toString.call(input) === '[object Blob]';\n};\n","export default {\n  /**\n   * Indicates if output the original image instead of the compressed one\n   * when the size of the compressed image is greater than the original one's\n   * @type {boolean}\n   */\n  strict: true,\n\n  /**\n   * Indicates if read the image's Exif Orientation information,\n   * and then rotate or flip the image automatically.\n   * @type {boolean}\n   */\n  checkOrientation: true,\n\n  /**\n   * The max width of the output image.\n   * @type {number}\n   */\n  maxWidth: Infinity,\n\n  /**\n   * The max height of the output image.\n   * @type {number}\n   */\n  maxHeight: Infinity,\n\n  /**\n   * The min width of the output image.\n   * @type {number}\n   */\n  minWidth: 0,\n\n  /**\n   * The min height of the output image.\n   * @type {number}\n   */\n  minHeight: 0,\n\n  /**\n   * The width of the output image.\n   * If not specified, the natural width of the source image will be used.\n   * @type {number}\n   */\n  width: undefined,\n\n  /**\n   * The height of the output image.\n   * If not specified, the natural height of the source image will be used.\n   * @type {number}\n   */\n  height: undefined,\n\n  /**\n   * The quality of the output image.\n   * It must be a number between `0` and `1`,\n   * and only available for `image/jpeg` and `image/webp` images.\n   * Check out {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob canvas.toBlob}.\n   * @type {number}\n   */\n  quality: 0.8,\n\n  /**\n   * The mime type of the output image.\n   * By default, the original mime type of the source image file will be used.\n   * @type {string}\n   */\n  mimeType: 'auto',\n\n  /**\n   * PNG files over this value (5 MB by default) will be converted to JPEGs.\n   * To disable this, just set the value to `Infinity`.\n   * @type {number}\n   */\n  convertSize: 5000000,\n\n  /**\n   * The hook function to execute before draw the image into the canvas for compression.\n   * @type {Function}\n   * @param {CanvasRenderingContext2D} context - The 2d rendering context of the canvas.\n   * @param {HTMLCanvasElement} canvas - The canvas for compression.\n   * @example\n   * function (context, canvas) {\n   *   context.fillStyle = '#fff';\n   * }\n   */\n  beforeDraw: null,\n\n  /**\n   * The hook function to execute after drew the image into the canvas for compression.\n   * @type {Function}\n   * @param {CanvasRenderingContext2D} context - The 2d rendering context of the canvas.\n   * @param {HTMLCanvasElement} canvas - The canvas for compression.\n   * @example\n   * function (context, canvas) {\n   *   context.filter = 'grayscale(100%)';\n   * }\n   */\n  drew: null,\n\n  /**\n   * The hook function to execute when success to compress the image.\n   * @type {Function}\n   * @param {File} file - The compressed image File object.\n   * @example\n   * function (file) {\n   *   console.log(file);\n   * }\n   */\n  success: null,\n\n  /**\n   * The hook function to execute when fail to compress the image.\n   * @type {Function}\n   * @param {Error} err - An Error object.\n   * @example\n   * function (err) {\n   *   console.log(err.message);\n   * }\n   */\n  error: null,\n};\n","export const IN_BROWSER = typeof window !== 'undefined';\nexport const WINDOW = IN_BROWSER ? window : {};\n","import {\n  WINDOW,\n} from './constants';\n\nconst { slice } = Array.prototype;\n\n/**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\nexport function toArray(value) {\n  return Array.from ? Array.from(value) : slice.call(value);\n}\n\nconst REGEXP_IMAGE_TYPE = /^image\\/.+$/;\n\n/**\n * Check if the given value is a mime type of image.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given is a mime type of image, else `false`.\n */\nexport function isImageType(value) {\n  return REGEXP_IMAGE_TYPE.test(value);\n}\n\n/**\n * Convert image type to extension.\n * @param {string} value - The image type to convert.\n * @returns {boolean} Returns the image extension.\n */\nexport function imageTypeToExtension(value) {\n  let extension = isImageType(value) ? value.substr(6) : '';\n\n  if (extension === 'jpeg') {\n    extension = 'jpg';\n  }\n\n  return `.${extension}`;\n}\n\nconst { fromCharCode } = String;\n\n/**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\nexport function getStringFromCharCode(dataView, start, length) {\n  let str = '';\n  let i;\n\n  length += start;\n\n  for (i = start; i < length; i += 1) {\n    str += fromCharCode(dataView.getUint8(i));\n  }\n\n  return str;\n}\n\nconst { btoa } = WINDOW;\n\n/**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\nexport function arrayBufferToDataURL(arrayBuffer, mimeType) {\n  const chunks = [];\n  const chunkSize = 8192;\n  let uint8 = new Uint8Array(arrayBuffer);\n\n  while (uint8.length > 0) {\n    // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n    // eslint-disable-next-line prefer-spread\n    chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n    uint8 = uint8.subarray(chunkSize);\n  }\n\n  return `data:${mimeType};base64,${btoa(chunks.join(''))}`;\n}\n\n/**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\nexport function resetAndGetOrientation(arrayBuffer) {\n  const dataView = new DataView(arrayBuffer);\n  let orientation;\n\n  // Ignores range error when the image does not have correct Exif information\n  try {\n    let littleEndian;\n    let app1Start;\n    let ifdStart;\n\n    // Only handle JPEG image (start by 0xFFD8)\n    if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n      const length = dataView.byteLength;\n      let offset = 2;\n\n      while (offset + 1 < length) {\n        if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n          app1Start = offset;\n          break;\n        }\n\n        offset += 1;\n      }\n    }\n\n    if (app1Start) {\n      const exifIDCode = app1Start + 4;\n      const tiffOffset = app1Start + 10;\n\n      if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n        const endianness = dataView.getUint16(tiffOffset);\n\n        littleEndian = endianness === 0x4949;\n\n        if (littleEndian || endianness === 0x4D4D /* bigEndian */) {\n          if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n            const firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n\n            if (firstIFDOffset >= 0x00000008) {\n              ifdStart = tiffOffset + firstIFDOffset;\n            }\n          }\n        }\n      }\n    }\n\n    if (ifdStart) {\n      const length = dataView.getUint16(ifdStart, littleEndian);\n      let offset;\n      let i;\n\n      for (i = 0; i < length; i += 1) {\n        offset = ifdStart + (i * 12) + 2;\n\n        if (dataView.getUint16(offset, littleEndian) === 0x0112 /* Orientation */) {\n          // 8 is the offset of the current tag's value\n          offset += 8;\n\n          // Get the original orientation value\n          orientation = dataView.getUint16(offset, littleEndian);\n\n          // Override the orientation with its default value\n          dataView.setUint16(offset, 1, littleEndian);\n          break;\n        }\n      }\n    }\n  } catch (e) {\n    orientation = 1;\n  }\n\n  return orientation;\n}\n\n/**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\nexport function parseOrientation(orientation) {\n  let rotate = 0;\n  let scaleX = 1;\n  let scaleY = 1;\n\n  switch (orientation) {\n    // Flip horizontal\n    case 2:\n      scaleX = -1;\n      break;\n\n    // Rotate left 180°\n    case 3:\n      rotate = -180;\n      break;\n\n    // Flip vertical\n    case 4:\n      scaleY = -1;\n      break;\n\n    // Flip vertical and rotate right 90°\n    case 5:\n      rotate = 90;\n      scaleY = -1;\n      break;\n\n    // Rotate right 90°\n    case 6:\n      rotate = 90;\n      break;\n\n    // Flip horizontal and rotate right 90°\n    case 7:\n      rotate = 90;\n      scaleX = -1;\n      break;\n\n    // Rotate left 90°\n    case 8:\n      rotate = -90;\n      break;\n\n    default:\n  }\n\n  return {\n    rotate,\n    scaleX,\n    scaleY,\n  };\n}\n\nconst REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n\n/**\n * Normalize decimal number.\n * Check out {@link http://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\nexport function normalizeDecimalNumber(value, times = 100000000000) {\n  return REGEXP_DECIMALS.test(value) ? (Math.round(value * times) / times) : value;\n}\n","import toBlob from 'blueimp-canvas-to-blob';\nimport isBlob from 'is-blob';\nimport DEFAULTS from './defaults';\nimport {\n  WINDOW,\n} from './constants';\nimport {\n  arrayBufferToDataURL,\n  imageTypeToExtension,\n  isImageType,\n  normalizeDecimalNumber,\n  parseOrientation,\n  resetAndGetOrientation,\n} from './utilities';\n\nconst { ArrayBuffer, FileReader } = WINDOW;\nconst URL = WINDOW.URL || WINDOW.webkitURL;\nconst REGEXP_EXTENSION = /\\.\\w+$/;\nconst AnotherCompressor = WINDOW.Compressor;\n\n/**\n * Creates a new image compressor.\n * @class\n */\nexport default class Compressor {\n  /**\n   * The constructor of Compressor.\n   * @param {File|Blob} file - The target image file for compressing.\n   * @param {Object} [options] - The options for compressing.\n   */\n  constructor(file, options) {\n    this.file = file;\n    this.image = new Image();\n    this.options = {\n      ...DEFAULTS,\n      ...options,\n    };\n    this.aborted = false;\n    this.result = null;\n    this.init();\n  }\n\n  init() {\n    const { file, options } = this;\n\n    if (!isBlob(file)) {\n      this.fail(new Error('The first argument must be a File or Blob object.'));\n      return;\n    }\n\n    const mimeType = file.type;\n\n    if (!isImageType(mimeType)) {\n      this.fail(new Error('The first argument must be an image File or Blob object.'));\n      return;\n    }\n\n    if (!URL || !FileReader) {\n      this.fail(new Error('The current browser does not support image compression.'));\n      return;\n    }\n\n    if (!ArrayBuffer) {\n      options.checkOrientation = false;\n    }\n\n    if (URL && !options.checkOrientation) {\n      this.load({\n        url: URL.createObjectURL(file),\n      });\n    } else {\n      const reader = new FileReader();\n      const checkOrientation = options.checkOrientation && mimeType === 'image/jpeg';\n\n      this.reader = reader;\n      reader.onload = ({ target }) => {\n        const { result } = target;\n        const data = {};\n\n        if (checkOrientation) {\n          // Reset the orientation value to its default value 1\n          // as some iOS browsers will render image with its orientation\n          const orientation = resetAndGetOrientation(result);\n\n          if (orientation > 1 || !URL) {\n            // Generate a new URL which has the default orientation value\n            data.url = arrayBufferToDataURL(result, mimeType);\n\n            if (orientation > 1) {\n              Object.assign(data, parseOrientation(orientation));\n            }\n          } else {\n            data.url = URL.createObjectURL(file);\n          }\n        } else {\n          data.url = result;\n        }\n\n        this.load(data);\n      };\n      reader.onabort = () => {\n        this.fail(new Error('Aborted to read the image with FileReader.'));\n      };\n      reader.onerror = () => {\n        this.fail(new Error('Failed to read the image with FileReader.'));\n      };\n      reader.onloadend = () => {\n        this.reader = null;\n      };\n\n      if (checkOrientation) {\n        reader.readAsArrayBuffer(file);\n      } else {\n        reader.readAsDataURL(file);\n      }\n    }\n  }\n\n  load(data) {\n    const { file, image } = this;\n\n    image.onload = () => {\n      this.draw({\n        ...data,\n        naturalWidth: image.naturalWidth,\n        naturalHeight: image.naturalHeight,\n      });\n    };\n    image.onabort = () => {\n      this.fail(new Error('Aborted to load the image.'));\n    };\n    image.onerror = () => {\n      this.fail(new Error('Failed to load the image.'));\n    };\n    image.alt = file.name;\n    image.src = data.url;\n  }\n\n  draw({\n    naturalWidth,\n    naturalHeight,\n    rotate = 0,\n    scaleX = 1,\n    scaleY = 1,\n  }) {\n    const { file, image, options } = this;\n    const canvas = document.createElement('canvas');\n    const context = canvas.getContext('2d');\n    const aspectRatio = naturalWidth / naturalHeight;\n    const is90DegreesRotated = Math.abs(rotate) % 180 === 90;\n    let maxWidth = Math.max(options.maxWidth, 0) || Infinity;\n    let maxHeight = Math.max(options.maxHeight, 0) || Infinity;\n    let minWidth = Math.max(options.minWidth, 0) || 0;\n    let minHeight = Math.max(options.minHeight, 0) || 0;\n    let width = Math.max(options.width, 0) || naturalWidth;\n    let height = Math.max(options.height, 0) || naturalHeight;\n\n    if (is90DegreesRotated) {\n      [maxWidth, maxHeight] = [maxHeight, maxWidth];\n      [minWidth, minHeight] = [minHeight, minWidth];\n      [width, height] = [height, width];\n    }\n\n    if (maxWidth < Infinity && maxHeight < Infinity) {\n      if (maxHeight * aspectRatio > maxWidth) {\n        maxHeight = maxWidth / aspectRatio;\n      } else {\n        maxWidth = maxHeight * aspectRatio;\n      }\n    } else if (maxWidth < Infinity) {\n      maxHeight = maxWidth / aspectRatio;\n    } else if (maxHeight < Infinity) {\n      maxWidth = maxHeight * aspectRatio;\n    }\n\n    if (minWidth > 0 && minHeight > 0) {\n      if (minHeight * aspectRatio > minWidth) {\n        minHeight = minWidth / aspectRatio;\n      } else {\n        minWidth = minHeight * aspectRatio;\n      }\n    } else if (minWidth > 0) {\n      minHeight = minWidth / aspectRatio;\n    } else if (minHeight > 0) {\n      minWidth = minHeight * aspectRatio;\n    }\n\n    if (height * aspectRatio > width) {\n      height = width / aspectRatio;\n    } else {\n      width = height * aspectRatio;\n    }\n\n    width = Math.floor(normalizeDecimalNumber(Math.min(Math.max(width, minWidth), maxWidth)));\n    height = Math.floor(normalizeDecimalNumber(Math.min(Math.max(height, minHeight), maxHeight)));\n\n    const destX = -width / 2;\n    const destY = -height / 2;\n    const destWidth = width;\n    const destHeight = height;\n\n    if (is90DegreesRotated) {\n      [width, height] = [height, width];\n    }\n\n    canvas.width = width;\n    canvas.height = height;\n\n    if (!isImageType(options.mimeType)) {\n      options.mimeType = file.type;\n    }\n\n    let fillStyle = 'transparent';\n\n    // Converts PNG files over the `convertSize` to JPEGs.\n    if (file.size > options.convertSize && options.mimeType === 'image/png') {\n      fillStyle = '#fff';\n      options.mimeType = 'image/jpeg';\n    }\n\n    // Override the default fill color (#000, black)\n    context.fillStyle = fillStyle;\n    context.fillRect(0, 0, width, height);\n\n    if (options.beforeDraw) {\n      options.beforeDraw.call(this, context, canvas);\n    }\n\n    if (this.aborted) {\n      return;\n    }\n\n    context.save();\n    context.translate(width / 2, height / 2);\n    context.rotate((rotate * Math.PI) / 180);\n    context.scale(scaleX, scaleY);\n    context.drawImage(image, destX, destY, destWidth, destHeight);\n    context.restore();\n\n    if (options.drew) {\n      options.drew.call(this, context, canvas);\n    }\n\n    if (this.aborted) {\n      return;\n    }\n\n    const done = (result) => {\n      if (!this.aborted) {\n        this.done({\n          naturalWidth,\n          naturalHeight,\n          result,\n        });\n      }\n    };\n\n    if (canvas.toBlob) {\n      canvas.toBlob(done, options.mimeType, options.quality);\n    } else {\n      done(toBlob(canvas.toDataURL(options.mimeType, options.quality)));\n    }\n  }\n\n  done({\n    naturalWidth,\n    naturalHeight,\n    result,\n  }) {\n    const { file, image, options } = this;\n\n    if (URL && !options.checkOrientation) {\n      URL.revokeObjectURL(image.src);\n    }\n\n    if (result) {\n      // Returns original file if the result is greater than it and without size related options\n      if (options.strict && result.size > file.size && options.mimeType === file.type && !(\n        options.width > naturalWidth\n        || options.height > naturalHeight\n        || options.minWidth > naturalWidth\n        || options.minHeight > naturalHeight\n      )) {\n        result = file;\n      } else {\n        const date = new Date();\n\n        result.lastModified = date.getTime();\n        result.lastModifiedDate = date;\n        result.name = file.name;\n\n        // Convert the extension to match its type\n        if (result.name && result.type !== file.type) {\n          result.name = result.name.replace(\n            REGEXP_EXTENSION,\n            imageTypeToExtension(result.type),\n          );\n        }\n      }\n    } else {\n      // Returns original file if the result is null in some cases.\n      result = file;\n    }\n\n    this.result = result;\n\n    if (options.success) {\n      options.success.call(this, result);\n    }\n  }\n\n  fail(err) {\n    const { options } = this;\n\n    if (options.error) {\n      options.error.call(this, err);\n    } else {\n      throw err;\n    }\n  }\n\n  abort() {\n    if (!this.aborted) {\n      this.aborted = true;\n\n      if (this.reader) {\n        this.reader.abort();\n      } else if (!this.image.complete) {\n        this.image.onload = null;\n        this.image.onabort();\n      } else {\n        this.fail(new Error('The compression process has been aborted.'));\n      }\n    }\n  }\n\n  /**\n   * Get the no conflict compressor class.\n   * @returns {Compressor} The compressor class.\n   */\n  static noConflict() {\n    window.Compressor = AnotherCompressor;\n    return Compressor;\n  }\n\n  /**\n   * Change the default options.\n   * @param {Object} options - The new default options.\n   */\n  static setDefaults(options) {\n    Object.assign(DEFAULTS, options);\n  }\n}\n","const allowedSizeProps = [\n\t'width',\n\t'height',\n\t'maxWidth',\n\t'maxHeight',\n\t'minWidth',\n\t'minHeight',\n];\n\nexport default allowedSizeProps;","import {Type, ajax} from 'main.core';\n\nexport default function urlToBlob(url)\n{\n\tif (!Type.isString(url))\n\t{\n\t\treturn Promise.resolve(url);\n\t}\n\n\treturn new Promise((resolve, reject) => {\n\t\ttry\n\t\t{\n\t\t\tconst xhr = ajax.xhr();\n\t\t\txhr.open('GET', url);\n\t\t\txhr.responseType = 'blob';\n\t\t\txhr.onerror = () => {\n\t\t\t\treject(new Error('Network error.'));\n\t\t\t};\n\t\t\txhr.onload = () => {\n\t\t\t\tif (xhr.status === 200)\n\t\t\t\t{\n\t\t\t\t\tresolve(xhr.response);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\treject(new Error(`Loading error: ${xhr.statusText}`));\n\t\t\t\t}\n\t\t\t};\n\t\t\txhr.send();\n\t\t}\n\t\tcatch (err)\n\t\t{\n\t\t\treject(err.message);\n\t\t}\n\t});\n}","import {Type} from 'main.core';\nimport Compressor from 'compressorjs/src/index';\nimport allowedSizeProps from './internal/allowed-size-props';\nimport urlToBlob from './internal/url-to-blob';\nimport type {ImageCompressorOptions} from './types';\n\nexport class ImageCompressor\n{\n\tconstructor(file, options: ImageCompressorOptions = {})\n\t{\n\t\tthis.file = file;\n\t\tthis.options = {quality: 0.8, ...options};\n\n\t\tif (this.options.retina)\n\t\t{\n\t\t\tallowedSizeProps.forEach((prop) => {\n\t\t\t\tif (Type.isNumber(this.options[prop]))\n\t\t\t\t{\n\t\t\t\t\tthis.options[prop] *= 2;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic compress(file, options: ImageCompressorOptions = {}): Promise<File>\n\t{\n\t\treturn urlToBlob(file).then((blob) => {\n\t\t\tconst compressor = new ImageCompressor(blob, options);\n\t\t\treturn compressor.compress();\n\t\t});\n\t}\n\n\tcompress(): Promise<File>\n\t{\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tvoid new Compressor(\n\t\t\t\tthis.file,\n\t\t\t\t{...this.options, ...{success: resolve, error: reject}},\n\t\t\t);\n\t\t});\n\t}\n}"],"names":["dataURIPattern","dataURLtoBlob","window","matches","match","mediaType","byteString","decodeURIComponent","arrayBuffer","intArray","i","bb","HTMLCanvasElement","self","setTimeout","toDataURL","callback","CanvasPrototype","define","module","Blob","input","Object","prototype","toString","call","strict","checkOrientation","maxWidth","Infinity","maxHeight","minWidth","minHeight","width","undefined","height","quality","mimeType","convertSize","beforeDraw","drew","success","error","IN_BROWSER","WINDOW","slice","Array","toArray","value","from","REGEXP_IMAGE_TYPE","isImageType","test","imageTypeToExtension","extension","substr","fromCharCode","String","getStringFromCharCode","dataView","start","length","str","getUint8","btoa","arrayBufferToDataURL","chunks","chunkSize","uint8","Uint8Array","push","apply","subarray","join","resetAndGetOrientation","DataView","orientation","littleEndian","app1Start","ifdStart","byteLength","offset","exifIDCode","tiffOffset","endianness","getUint16","firstIFDOffset","getUint32","setUint16","e","parseOrientation","rotate","scaleX","scaleY","REGEXP_DECIMALS","normalizeDecimalNumber","times","Math","round","ArrayBuffer","FileReader","URL","webkitURL","REGEXP_EXTENSION","AnotherCompressor","Compressor","file","options","image","Image","DEFAULTS","aborted","result","init","isBlob","fail","Error","type","load","url","createObjectURL","reader","onload","target","data","assign","onabort","onerror","onloadend","readAsArrayBuffer","readAsDataURL","draw","naturalWidth","naturalHeight","alt","name","src","canvas","document","createElement","context","getContext","aspectRatio","is90DegreesRotated","abs","max","floor","min","destX","destY","destWidth","destHeight","fillStyle","size","fillRect","save","translate","PI","scale","drawImage","restore","done","toBlob","revokeObjectURL","date","Date","lastModified","getTime","lastModifiedDate","replace","err","abort","complete","allowedSizeProps","urlToBlob","Type","isString","Promise","resolve","reject","xhr","ajax","open","responseType","status","response","statusText","send","message","ImageCompressor","retina","forEach","prop","isNumber","then","blob","compressor","compress"],"mappings":";;;;;;;;;;;;CAmBE;AAEA;CAGI;;CAEC,MAAC;CACA;CACD;CACF,KARH;;CASA;CAII;;CAEC,MAAC;CACA;CACD;CACF,KATH;;CAUA;CAKA,MAAIA;;CACJ,MAAIC,sEAGFC,uCAFA;CAKE;;CAUAC,sBAAkBC;;;CAEhB,qBAAM,CAAU;;;;CAGlBC;;;;CAKA,gBAAA;CACE;;CAED;CACC;CACAC,MAAAA,UAAU,GAAGC;CACd,KA3Be;;;CA6BhBC;;;CAEA,4CAAwC,CAAxC;CACEC,eAASC,eAAe,WAAV,CAAsBA,CAAtB;;;;CAGhB;;;CACwE,QAAtE;CAGD;;CACDC,SAAK;CACLA;;CAED;;CACH,aAAWC;CACT;;CAEI,YAAIC;CACJC,QAAAA;CACE,qBAAW,oBAAoBC;CAC7BC,YAAAA;CACD;CACCA,qBAASH,IAAI;CACd;CACF;CACF;CACF,WAAM;CACLI;CACE;CACAH,+BAAsB;CACpBE,gEAAA;CACD;CACF;CACF;CACF;;CACD;CACEE;;CAEC;CAKF;CACF,GAAEhB,MA7GF;;;;;;CCdDiB;CACC,MAAI,OAAOC,IAAP,KAAgB,WAApB,EAAiC;CAChC,WAAO,KAAP;CACA;;CAED,SAAOC,KAAK,YAAYD,IAAjB,IAAyBE,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,KAA/B,MAA0C,eAA1E;CACA,CAND;;ACFA,gBAAe;CACb;;;;;CAKAK,EAAAA,MAAM,EAAE,IANK;;CAQb;;;;;CAKAC,EAAAA,gBAAgB,EAAE,IAbL;;CAeb;;;;CAIAC,EAAAA,QAAQ,EAAEC,QAnBG;;CAqBb;;;;CAIAC,EAAAA,SAAS,EAAED,QAzBE;;CA2Bb;;;;CAIAE,EAAAA,QAAQ,EAAE,CA/BG;;CAiCb;;;;CAIAC,EAAAA,SAAS,EAAE,CArCE;;CAuCb;;;;;CAKAC,EAAAA,KAAK,EAAEC,SA5CM;;CA8Cb;;;;;CAKAC,EAAAA,MAAM,EAAED,SAnDK;;CAqDb;;;;;;;CAOAE,EAAAA,OAAO,EAAE,GA5DI;;CA8Db;;;;;CAKAC,EAAAA,QAAQ,EAAE,MAnEG;;CAqEb;;;;;CAKAC,EAAAA,WAAW,EAAE,OA1EA;;CA4Eb;;;;;;;;;;CAUAC,EAAAA,UAAU,EAAE,IAtFC;;CAwFb;;;;;;;;;;CAUAC,EAAAA,IAAI,EAAE,IAlGO;;CAoGb;;;;;;;;;CASAC,EAAAA,OAAO,EAAE,IA7GI;;CA+Gb;;;;;;;;;CASAC,EAAAA,KAAK,EAAE;CAxHM,CAAf;;CCAO,IAAMC,UAAU,GAAG,OAAOzC,MAAP,KAAkB,WAArC;AACP,CAAO,IAAM0C,MAAM,GAAGD,UAAU,GAAGzC,MAAH,GAAY,EAArC;;KCGC2C,QAAUC,KAAK,CAACvB,UAAhBsB;CAER;;;;;;AAKA,CAAO,SAASE,OAAT,CAAiBC,KAAjB,EAAwB;CAC7B,SAAOF,KAAK,CAACG,IAAN,GAAaH,KAAK,CAACG,IAAN,CAAWD,KAAX,CAAb,GAAiCH,KAAK,CAACpB,IAAN,CAAWuB,KAAX,CAAxC;CACD;CAED,IAAME,iBAAiB,GAAG,aAA1B;CAEA;;;;;;AAKA,CAAO,SAASC,WAAT,CAAqBH,KAArB,EAA4B;CACjC,SAAOE,iBAAiB,CAACE,IAAlB,CAAuBJ,KAAvB,CAAP;CACD;CAED;;;;;;AAKA,CAAO,SAASK,oBAAT,CAA8BL,KAA9B,EAAqC;CAC1C,MAAIM,SAAS,GAAGH,WAAW,CAACH,KAAD,CAAX,GAAqBA,KAAK,CAACO,MAAN,CAAa,CAAb,CAArB,GAAuC,EAAvD;;CAEA,MAAID,SAAS,KAAK,MAAlB,EAA0B;CACxBA,IAAAA,SAAS,GAAG,KAAZ;CACD;;CAED,oBAAWA,SAAX;CACD;KAEOE,eAAiBC,OAAjBD;CAER;;;;;;;;AAOA,CAAO,SAASE,qBAAT,CAA+BC,QAA/B,EAAyCC,KAAzC,EAAgDC,MAAhD,EAAwD;CAC7D,MAAIC,GAAG,GAAG,EAAV;CACA,MAAIpD,CAAJ;CAEAmD,EAAAA,MAAM,IAAID,KAAV;;CAEA,OAAKlD,CAAC,GAAGkD,KAAT,EAAgBlD,CAAC,GAAGmD,MAApB,EAA4BnD,CAAC,IAAI,CAAjC,EAAoC;CAClCoD,IAAAA,GAAG,IAAIN,YAAY,CAACG,QAAQ,CAACI,QAAT,CAAkBrD,CAAlB,CAAD,CAAnB;CACD;;CAED,SAAOoD,GAAP;CACD;KAEOE,OAASpB,OAAToB;CAER;;;;;;;AAMA,CAAO,SAASC,oBAAT,CAA8BzD,WAA9B,EAA2C6B,QAA3C,EAAqD;CAC1D,MAAM6B,MAAM,GAAG,EAAf;CACA,MAAMC,SAAS,GAAG,IAAlB;CACA,MAAIC,KAAK,GAAG,IAAIC,UAAJ,CAAe7D,WAAf,CAAZ;;CAEA,SAAO4D,KAAK,CAACP,MAAN,GAAe,CAAtB,EAAyB;CACvB;CACA;CACAK,IAAAA,MAAM,CAACI,IAAP,CAAYd,YAAY,CAACe,KAAb,CAAmB,IAAnB,EAAyBxB,OAAO,CAACqB,KAAK,CAACI,QAAN,CAAe,CAAf,EAAkBL,SAAlB,CAAD,CAAhC,CAAZ;CACAC,IAAAA,KAAK,GAAGA,KAAK,CAACI,QAAN,CAAeL,SAAf,CAAR;CACD;;CAED,wBAAe9B,QAAf,qBAAkC2B,IAAI,CAACE,MAAM,CAACO,IAAP,CAAY,EAAZ,CAAD,CAAtC;CACD;CAED;;;;;;AAKA,CAAO,SAASC,sBAAT,CAAgClE,WAAhC,EAA6C;CAClD,MAAMmD,QAAQ,GAAG,IAAIgB,QAAJ,CAAanE,WAAb,CAAjB;CACA,MAAIoE,WAAJ,CAFkD;;CAKlD,MAAI;CACF,QAAIC,YAAJ;CACA,QAAIC,SAAJ;CACA,QAAIC,QAAJ,CAHE;;CAMF,QAAIpB,QAAQ,CAACI,QAAT,CAAkB,CAAlB,MAAyB,IAAzB,IAAiCJ,QAAQ,CAACI,QAAT,CAAkB,CAAlB,MAAyB,IAA9D,EAAoE;CAClE,UAAMF,MAAM,GAAGF,QAAQ,CAACqB,UAAxB;CACA,UAAIC,MAAM,GAAG,CAAb;;CAEA,aAAOA,MAAM,GAAG,CAAT,GAAapB,MAApB,EAA4B;CAC1B,YAAIF,QAAQ,CAACI,QAAT,CAAkBkB,MAAlB,MAA8B,IAA9B,IAAsCtB,QAAQ,CAACI,QAAT,CAAkBkB,MAAM,GAAG,CAA3B,MAAkC,IAA5E,EAAkF;CAChFH,UAAAA,SAAS,GAAGG,MAAZ;CACA;CACD;;CAEDA,QAAAA,MAAM,IAAI,CAAV;CACD;CACF;;CAED,QAAIH,SAAJ,EAAe;CACb,UAAMI,UAAU,GAAGJ,SAAS,GAAG,CAA/B;CACA,UAAMK,UAAU,GAAGL,SAAS,GAAG,EAA/B;;CAEA,UAAIpB,qBAAqB,CAACC,QAAD,EAAWuB,UAAX,EAAuB,CAAvB,CAArB,KAAmD,MAAvD,EAA+D;CAC7D,YAAME,UAAU,GAAGzB,QAAQ,CAAC0B,SAAT,CAAmBF,UAAnB,CAAnB;CAEAN,QAAAA,YAAY,GAAGO,UAAU,KAAK,MAA9B;;CAEA,YAAIP,YAAY,IAAIO,UAAU,KAAK;CAAO;CAA1C,UAA2D;CACzD,gBAAIzB,QAAQ,CAAC0B,SAAT,CAAmBF,UAAU,GAAG,CAAhC,EAAmCN,YAAnC,MAAqD,MAAzD,EAAiE;CAC/D,kBAAMS,cAAc,GAAG3B,QAAQ,CAAC4B,SAAT,CAAmBJ,UAAU,GAAG,CAAhC,EAAmCN,YAAnC,CAAvB;;CAEA,kBAAIS,cAAc,IAAI,UAAtB,EAAkC;CAChCP,gBAAAA,QAAQ,GAAGI,UAAU,GAAGG,cAAxB;CACD;CACF;CACF;CACF;CACF;;CAED,QAAIP,QAAJ,EAAc;CACZ,UAAMlB,OAAM,GAAGF,QAAQ,CAAC0B,SAAT,CAAmBN,QAAnB,EAA6BF,YAA7B,CAAf;;CACA,UAAII,OAAJ;;CACA,UAAIvE,CAAJ;;CAEA,WAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGmD,OAAhB,EAAwBnD,CAAC,IAAI,CAA7B,EAAgC;CAC9BuE,QAAAA,OAAM,GAAGF,QAAQ,GAAIrE,CAAC,GAAG,EAAhB,GAAsB,CAA/B;;CAEA,YAAIiD,QAAQ,CAAC0B,SAAT,CAAmBJ,OAAnB,EAA2BJ,YAA3B,MAA6C;CAAO;CAAxD,UAA2E;CACzE;CACAI,YAAAA,OAAM,IAAI,CAAV,CAFyE;;CAKzEL,YAAAA,WAAW,GAAGjB,QAAQ,CAAC0B,SAAT,CAAmBJ,OAAnB,EAA2BJ,YAA3B,CAAd,CALyE;;CAQzElB,YAAAA,QAAQ,CAAC6B,SAAT,CAAmBP,OAAnB,EAA2B,CAA3B,EAA8BJ,YAA9B;CACA;CACD;CACF;CACF;CACF,GA9DD,CA8DE,OAAOY,CAAP,EAAU;CACVb,IAAAA,WAAW,GAAG,CAAd;CACD;;CAED,SAAOA,WAAP;CACD;CAED;;;;;;AAKA,CAAO,SAASc,gBAAT,CAA0Bd,WAA1B,EAAuC;CAC5C,MAAIe,MAAM,GAAG,CAAb;CACA,MAAIC,MAAM,GAAG,CAAb;CACA,MAAIC,MAAM,GAAG,CAAb;;CAEA,UAAQjB,WAAR;CACE;CACA,SAAK,CAAL;CACEgB,MAAAA,MAAM,GAAG,CAAC,CAAV;CACA;CAEF;;CACA,SAAK,CAAL;CACED,MAAAA,MAAM,GAAG,CAAC,GAAV;CACA;CAEF;;CACA,SAAK,CAAL;CACEE,MAAAA,MAAM,GAAG,CAAC,CAAV;CACA;CAEF;;CACA,SAAK,CAAL;CACEF,MAAAA,MAAM,GAAG,EAAT;CACAE,MAAAA,MAAM,GAAG,CAAC,CAAV;CACA;CAEF;;CACA,SAAK,CAAL;CACEF,MAAAA,MAAM,GAAG,EAAT;CACA;CAEF;;CACA,SAAK,CAAL;CACEA,MAAAA,MAAM,GAAG,EAAT;CACAC,MAAAA,MAAM,GAAG,CAAC,CAAV;CACA;CAEF;;CACA,SAAK,CAAL;CACED,MAAAA,MAAM,GAAG,CAAC,EAAV;CACA;;CAEF;CAtCF;;CAyCA,SAAO;CACLA,IAAAA,MAAM,EAANA,MADK;CAELC,IAAAA,MAAM,EAANA,MAFK;CAGLC,IAAAA,MAAM,EAANA;CAHK,GAAP;CAKD;CAED,IAAMC,eAAe,GAAG,sBAAxB;CAEA;;;;;;;;AAOA,CAAO,SAASC,sBAAT,CAAgC/C,KAAhC,EAA6D;CAAA,MAAtBgD,KAAsB,uEAAd,YAAc;CAClE,SAAOF,eAAe,CAAC1C,IAAhB,CAAqBJ,KAArB,IAA+BiD,IAAI,CAACC,KAAL,CAAWlD,KAAK,GAAGgD,KAAnB,IAA4BA,KAA3D,GAAoEhD,KAA3E;CACD;;KC3NOmD,gBAA4BvD,OAA5BuD;KAAaC,aAAexD,OAAfwD;CACrB,IAAMC,GAAG,GAAGzD,MAAM,CAACyD,GAAP,IAAczD,MAAM,CAAC0D,SAAjC;CACA,IAAMC,gBAAgB,GAAG,QAAzB;CACA,IAAMC,iBAAiB,GAAG5D,MAAM,CAAC6D,UAAjC;CAEA;;;;;KAIqBA;CACnB;;;;;CAKA,sBAAYC,IAAZ,EAAkBC,OAAlB,EAA2B;CAAA;CACzB,SAAKD,IAAL,GAAYA,IAAZ;CACA,SAAKE,KAAL,GAAa,IAAIC,KAAJ,EAAb;CACA,SAAKF,OAAL,iCACKG,QADL,EAEKH,OAFL;CAIA,SAAKI,OAAL,GAAe,KAAf;CACA,SAAKC,MAAL,GAAc,IAAd;CACA,SAAKC,IAAL;CACD;;;;4BAEM;CAAA;;CAAA,UACGP,IADH,GACqB,IADrB,CACGA,IADH;CAAA,UACSC,OADT,GACqB,IADrB,CACSA,OADT;;CAGL,UAAI,CAACO,MAAM,CAACR,IAAD,CAAX,EAAmB;CACjB,aAAKS,IAAL,CAAU,IAAIC,KAAJ,CAAU,mDAAV,CAAV;CACA;CACD;;CAED,UAAM/E,QAAQ,GAAGqE,IAAI,CAACW,IAAtB;;CAEA,UAAI,CAAClE,WAAW,CAACd,QAAD,CAAhB,EAA4B;CAC1B,aAAK8E,IAAL,CAAU,IAAIC,KAAJ,CAAU,0DAAV,CAAV;CACA;CACD;;CAED,UAAI,CAACf,GAAD,IAAQ,CAACD,UAAb,EAAyB;CACvB,aAAKe,IAAL,CAAU,IAAIC,KAAJ,CAAU,yDAAV,CAAV;CACA;CACD;;CAED,UAAI,CAACjB,aAAL,EAAkB;CAChBQ,QAAAA,OAAO,CAAChF,gBAAR,GAA2B,KAA3B;CACD;;CAED,UAAI0E,GAAG,IAAI,CAACM,OAAO,CAAChF,gBAApB,EAAsC;CACpC,aAAK2F,IAAL,CAAU;CACRC,UAAAA,GAAG,EAAElB,GAAG,CAACmB,eAAJ,CAAoBd,IAApB;CADG,SAAV;CAGD,OAJD,MAIO;CACL,YAAMe,MAAM,GAAG,IAAIrB,UAAJ,EAAf;CACA,YAAMzE,gBAAgB,GAAGgF,OAAO,CAAChF,gBAAR,IAA4BU,QAAQ,KAAK,YAAlE;CAEA,aAAKoF,MAAL,GAAcA,MAAd;;CACAA,QAAAA,MAAM,CAACC,MAAP,GAAgB,gBAAgB;CAAA,cAAbC,MAAa,QAAbA,MAAa;CAAA,cACtBX,MADsB,GACXW,MADW,CACtBX,MADsB;CAE9B,cAAMY,IAAI,GAAG,EAAb;;CAEA,cAAIjG,gBAAJ,EAAsB;CACpB;CACA;CACA,gBAAMiD,WAAW,GAAGF,sBAAsB,CAACsC,MAAD,CAA1C;;CAEA,gBAAIpC,WAAW,GAAG,CAAd,IAAmB,CAACyB,GAAxB,EAA6B;CAC3B;CACAuB,cAAAA,IAAI,CAACL,GAAL,GAAWtD,oBAAoB,CAAC+C,MAAD,EAAS3E,QAAT,CAA/B;;CAEA,kBAAIuC,WAAW,GAAG,CAAlB,EAAqB;CACnBtD,gBAAAA,MAAM,CAACuG,MAAP,CAAcD,IAAd,EAAoBlC,gBAAgB,CAACd,WAAD,CAApC;CACD;CACF,aAPD,MAOO;CACLgD,cAAAA,IAAI,CAACL,GAAL,GAAWlB,GAAG,CAACmB,eAAJ,CAAoBd,IAApB,CAAX;CACD;CACF,WAfD,MAeO;CACLkB,YAAAA,IAAI,CAACL,GAAL,GAAWP,MAAX;CACD;;CAED,UAAA,KAAI,CAACM,IAAL,CAAUM,IAAV;CACD,SAxBD;;CAyBAH,QAAAA,MAAM,CAACK,OAAP,GAAiB,YAAM;CACrB,UAAA,KAAI,CAACX,IAAL,CAAU,IAAIC,KAAJ,CAAU,4CAAV,CAAV;CACD,SAFD;;CAGAK,QAAAA,MAAM,CAACM,OAAP,GAAiB,YAAM;CACrB,UAAA,KAAI,CAACZ,IAAL,CAAU,IAAIC,KAAJ,CAAU,2CAAV,CAAV;CACD,SAFD;;CAGAK,QAAAA,MAAM,CAACO,SAAP,GAAmB,YAAM;CACvB,UAAA,KAAI,CAACP,MAAL,GAAc,IAAd;CACD,SAFD;;CAIA,YAAI9F,gBAAJ,EAAsB;CACpB8F,UAAAA,MAAM,CAACQ,iBAAP,CAAyBvB,IAAzB;CACD,SAFD,MAEO;CACLe,UAAAA,MAAM,CAACS,aAAP,CAAqBxB,IAArB;CACD;CACF;CACF;;;0BAEIkB,MAAM;CAAA;;CAAA,UACDlB,IADC,GACe,IADf,CACDA,IADC;CAAA,UACKE,KADL,GACe,IADf,CACKA,KADL;;CAGTA,MAAAA,KAAK,CAACc,MAAN,GAAe,YAAM;CACnB,QAAA,MAAI,CAACS,IAAL,+BACKP,IADL;CAEEQ,UAAAA,YAAY,EAAExB,KAAK,CAACwB,YAFtB;CAGEC,UAAAA,aAAa,EAAEzB,KAAK,CAACyB;CAHvB;CAKD,OAND;;CAOAzB,MAAAA,KAAK,CAACkB,OAAN,GAAgB,YAAM;CACpB,QAAA,MAAI,CAACX,IAAL,CAAU,IAAIC,KAAJ,CAAU,4BAAV,CAAV;CACD,OAFD;;CAGAR,MAAAA,KAAK,CAACmB,OAAN,GAAgB,YAAM;CACpB,QAAA,MAAI,CAACZ,IAAL,CAAU,IAAIC,KAAJ,CAAU,2BAAV,CAAV;CACD,OAFD;;CAGAR,MAAAA,KAAK,CAAC0B,GAAN,GAAY5B,IAAI,CAAC6B,IAAjB;CACA3B,MAAAA,KAAK,CAAC4B,GAAN,GAAYZ,IAAI,CAACL,GAAjB;CACD;;;iCAQE;CAAA;;CAAA,UALDa,YAKC,SALDA,YAKC;CAAA,UAJDC,aAIC,SAJDA,aAIC;CAAA,+BAHD1C,MAGC;CAAA,UAHDA,MAGC,6BAHQ,CAGR;CAAA,+BAFDC,MAEC;CAAA,UAFDA,MAEC,6BAFQ,CAER;CAAA,+BADDC,MACC;CAAA,UADDA,MACC,6BADQ,CACR;CAAA,UACOa,IADP,GACgC,IADhC,CACOA,IADP;CAAA,UACaE,KADb,GACgC,IADhC,CACaA,KADb;CAAA,UACoBD,OADpB,GACgC,IADhC,CACoBA,OADpB;CAED,UAAM8B,MAAM,GAAGC,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAf;CACA,UAAMC,OAAO,GAAGH,MAAM,CAACI,UAAP,CAAkB,IAAlB,CAAhB;CACA,UAAMC,WAAW,GAAGV,YAAY,GAAGC,aAAnC;CACA,UAAMU,kBAAkB,GAAG9C,IAAI,CAAC+C,GAAL,CAASrD,MAAT,IAAmB,GAAnB,KAA2B,EAAtD;CACA,UAAI/D,QAAQ,GAAGqE,IAAI,CAACgD,GAAL,CAAStC,OAAO,CAAC/E,QAAjB,EAA2B,CAA3B,KAAiCC,QAAhD;CACA,UAAIC,SAAS,GAAGmE,IAAI,CAACgD,GAAL,CAAStC,OAAO,CAAC7E,SAAjB,EAA4B,CAA5B,KAAkCD,QAAlD;CACA,UAAIE,QAAQ,GAAGkE,IAAI,CAACgD,GAAL,CAAStC,OAAO,CAAC5E,QAAjB,EAA2B,CAA3B,KAAiC,CAAhD;CACA,UAAIC,SAAS,GAAGiE,IAAI,CAACgD,GAAL,CAAStC,OAAO,CAAC3E,SAAjB,EAA4B,CAA5B,KAAkC,CAAlD;CACA,UAAIC,KAAK,GAAGgE,IAAI,CAACgD,GAAL,CAAStC,OAAO,CAAC1E,KAAjB,EAAwB,CAAxB,KAA8BmG,YAA1C;CACA,UAAIjG,MAAM,GAAG8D,IAAI,CAACgD,GAAL,CAAStC,OAAO,CAACxE,MAAjB,EAAyB,CAAzB,KAA+BkG,aAA5C;;CAEA,UAAIU,kBAAJ,EAAwB;CAAA,oBACE,CAACjH,SAAD,EAAYF,QAAZ,CADF;CACrBA,QAAAA,QADqB;CACXE,QAAAA,SADW;CAAA,oBAEE,CAACE,SAAD,EAAYD,QAAZ,CAFF;CAErBA,QAAAA,QAFqB;CAEXC,QAAAA,SAFW;CAAA,oBAGJ,CAACG,MAAD,EAASF,KAAT,CAHI;CAGrBA,QAAAA,KAHqB;CAGdE,QAAAA,MAHc;CAIvB;;CAED,UAAIP,QAAQ,GAAGC,QAAX,IAAuBC,SAAS,GAAGD,QAAvC,EAAiD;CAC/C,YAAIC,SAAS,GAAGgH,WAAZ,GAA0BlH,QAA9B,EAAwC;CACtCE,UAAAA,SAAS,GAAGF,QAAQ,GAAGkH,WAAvB;CACD,SAFD,MAEO;CACLlH,UAAAA,QAAQ,GAAGE,SAAS,GAAGgH,WAAvB;CACD;CACF,OAND,MAMO,IAAIlH,QAAQ,GAAGC,QAAf,EAAyB;CAC9BC,QAAAA,SAAS,GAAGF,QAAQ,GAAGkH,WAAvB;CACD,OAFM,MAEA,IAAIhH,SAAS,GAAGD,QAAhB,EAA0B;CAC/BD,QAAAA,QAAQ,GAAGE,SAAS,GAAGgH,WAAvB;CACD;;CAED,UAAI/G,QAAQ,GAAG,CAAX,IAAgBC,SAAS,GAAG,CAAhC,EAAmC;CACjC,YAAIA,SAAS,GAAG8G,WAAZ,GAA0B/G,QAA9B,EAAwC;CACtCC,UAAAA,SAAS,GAAGD,QAAQ,GAAG+G,WAAvB;CACD,SAFD,MAEO;CACL/G,UAAAA,QAAQ,GAAGC,SAAS,GAAG8G,WAAvB;CACD;CACF,OAND,MAMO,IAAI/G,QAAQ,GAAG,CAAf,EAAkB;CACvBC,QAAAA,SAAS,GAAGD,QAAQ,GAAG+G,WAAvB;CACD,OAFM,MAEA,IAAI9G,SAAS,GAAG,CAAhB,EAAmB;CACxBD,QAAAA,QAAQ,GAAGC,SAAS,GAAG8G,WAAvB;CACD;;CAED,UAAI3G,MAAM,GAAG2G,WAAT,GAAuB7G,KAA3B,EAAkC;CAChCE,QAAAA,MAAM,GAAGF,KAAK,GAAG6G,WAAjB;CACD,OAFD,MAEO;CACL7G,QAAAA,KAAK,GAAGE,MAAM,GAAG2G,WAAjB;CACD;;CAED7G,MAAAA,KAAK,GAAGgE,IAAI,CAACiD,KAAL,CAAWnD,sBAAsB,CAACE,IAAI,CAACkD,GAAL,CAASlD,IAAI,CAACgD,GAAL,CAAShH,KAAT,EAAgBF,QAAhB,CAAT,EAAoCH,QAApC,CAAD,CAAjC,CAAR;CACAO,MAAAA,MAAM,GAAG8D,IAAI,CAACiD,KAAL,CAAWnD,sBAAsB,CAACE,IAAI,CAACkD,GAAL,CAASlD,IAAI,CAACgD,GAAL,CAAS9G,MAAT,EAAiBH,SAAjB,CAAT,EAAsCF,SAAtC,CAAD,CAAjC,CAAT;CAEA,UAAMsH,KAAK,GAAG,CAACnH,KAAD,GAAS,CAAvB;CACA,UAAMoH,KAAK,GAAG,CAAClH,MAAD,GAAU,CAAxB;CACA,UAAMmH,SAAS,GAAGrH,KAAlB;CACA,UAAMsH,UAAU,GAAGpH,MAAnB;;CAEA,UAAI4G,kBAAJ,EAAwB;CAAA,oBACJ,CAAC5G,MAAD,EAASF,KAAT,CADI;CACrBA,QAAAA,KADqB;CACdE,QAAAA,MADc;CAEvB;;CAEDsG,MAAAA,MAAM,CAACxG,KAAP,GAAeA,KAAf;CACAwG,MAAAA,MAAM,CAACtG,MAAP,GAAgBA,MAAhB;;CAEA,UAAI,CAACgB,WAAW,CAACwD,OAAO,CAACtE,QAAT,CAAhB,EAAoC;CAClCsE,QAAAA,OAAO,CAACtE,QAAR,GAAmBqE,IAAI,CAACW,IAAxB;CACD;;CAED,UAAImC,SAAS,GAAG,aAAhB,CApEC;;CAuED,UAAI9C,IAAI,CAAC+C,IAAL,GAAY9C,OAAO,CAACrE,WAApB,IAAmCqE,OAAO,CAACtE,QAAR,KAAqB,WAA5D,EAAyE;CACvEmH,QAAAA,SAAS,GAAG,MAAZ;CACA7C,QAAAA,OAAO,CAACtE,QAAR,GAAmB,YAAnB;CACD,OA1EA;;;CA6EDuG,MAAAA,OAAO,CAACY,SAAR,GAAoBA,SAApB;CACAZ,MAAAA,OAAO,CAACc,QAAR,CAAiB,CAAjB,EAAoB,CAApB,EAAuBzH,KAAvB,EAA8BE,MAA9B;;CAEA,UAAIwE,OAAO,CAACpE,UAAZ,EAAwB;CACtBoE,QAAAA,OAAO,CAACpE,UAAR,CAAmBd,IAAnB,CAAwB,IAAxB,EAA8BmH,OAA9B,EAAuCH,MAAvC;CACD;;CAED,UAAI,KAAK1B,OAAT,EAAkB;CAChB;CACD;;CAED6B,MAAAA,OAAO,CAACe,IAAR;CACAf,MAAAA,OAAO,CAACgB,SAAR,CAAkB3H,KAAK,GAAG,CAA1B,EAA6BE,MAAM,GAAG,CAAtC;CACAyG,MAAAA,OAAO,CAACjD,MAAR,CAAgBA,MAAM,GAAGM,IAAI,CAAC4D,EAAf,GAAqB,GAApC;CACAjB,MAAAA,OAAO,CAACkB,KAAR,CAAclE,MAAd,EAAsBC,MAAtB;CACA+C,MAAAA,OAAO,CAACmB,SAAR,CAAkBnD,KAAlB,EAAyBwC,KAAzB,EAAgCC,KAAhC,EAAuCC,SAAvC,EAAkDC,UAAlD;CACAX,MAAAA,OAAO,CAACoB,OAAR;;CAEA,UAAIrD,OAAO,CAACnE,IAAZ,EAAkB;CAChBmE,QAAAA,OAAO,CAACnE,IAAR,CAAaf,IAAb,CAAkB,IAAlB,EAAwBmH,OAAxB,EAAiCH,MAAjC;CACD;;CAED,UAAI,KAAK1B,OAAT,EAAkB;CAChB;CACD;;CAED,UAAMkD,IAAI,GAAG,SAAPA,IAAO,CAACjD,MAAD,EAAY;CACvB,YAAI,CAAC,MAAI,CAACD,OAAV,EAAmB;CACjB,UAAA,MAAI,CAACkD,IAAL,CAAU;CACR7B,YAAAA,YAAY,EAAZA,YADQ;CAERC,YAAAA,aAAa,EAAbA,aAFQ;CAGRrB,YAAAA,MAAM,EAANA;CAHQ,WAAV;CAKD;CACF,OARD;;CAUA,UAAIyB,MAAM,CAACyB,MAAX,EAAmB;CACjBzB,QAAAA,MAAM,CAACyB,MAAP,CAAcD,IAAd,EAAoBtD,OAAO,CAACtE,QAA5B,EAAsCsE,OAAO,CAACvE,OAA9C;CACD,OAFD,MAEO;CACL6H,QAAAA,IAAI,CAACC,YAAM,CAACzB,MAAM,CAAC1H,SAAP,CAAiB4F,OAAO,CAACtE,QAAzB,EAAmCsE,OAAO,CAACvE,OAA3C,CAAD,CAAP,CAAJ;CACD;CACF;;;iCAME;CAAA,UAHDgG,YAGC,SAHDA,YAGC;CAAA,UAFDC,aAEC,SAFDA,aAEC;CAAA,UADDrB,MACC,SADDA,MACC;CAAA,UACON,IADP,GACgC,IADhC,CACOA,IADP;CAAA,UACaE,KADb,GACgC,IADhC,CACaA,KADb;CAAA,UACoBD,OADpB,GACgC,IADhC,CACoBA,OADpB;;CAGD,UAAIN,GAAG,IAAI,CAACM,OAAO,CAAChF,gBAApB,EAAsC;CACpC0E,QAAAA,GAAG,CAAC8D,eAAJ,CAAoBvD,KAAK,CAAC4B,GAA1B;CACD;;CAED,UAAIxB,MAAJ,EAAY;CACV;CACA,YAAIL,OAAO,CAACjF,MAAR,IAAkBsF,MAAM,CAACyC,IAAP,GAAc/C,IAAI,CAAC+C,IAArC,IAA6C9C,OAAO,CAACtE,QAAR,KAAqBqE,IAAI,CAACW,IAAvE,IAA+E,EACjFV,OAAO,CAAC1E,KAAR,GAAgBmG,YAAhB,IACGzB,OAAO,CAACxE,MAAR,GAAiBkG,aADpB,IAEG1B,OAAO,CAAC5E,QAAR,GAAmBqG,YAFtB,IAGGzB,OAAO,CAAC3E,SAAR,GAAoBqG,aAJ0D,CAAnF,EAKG;CACDrB,UAAAA,MAAM,GAAGN,IAAT;CACD,SAPD,MAOO;CACL,cAAM0D,IAAI,GAAG,IAAIC,IAAJ,EAAb;CAEArD,UAAAA,MAAM,CAACsD,YAAP,GAAsBF,IAAI,CAACG,OAAL,EAAtB;CACAvD,UAAAA,MAAM,CAACwD,gBAAP,GAA0BJ,IAA1B;CACApD,UAAAA,MAAM,CAACuB,IAAP,GAAc7B,IAAI,CAAC6B,IAAnB,CALK;;CAQL,cAAIvB,MAAM,CAACuB,IAAP,IAAevB,MAAM,CAACK,IAAP,KAAgBX,IAAI,CAACW,IAAxC,EAA8C;CAC5CL,YAAAA,MAAM,CAACuB,IAAP,GAAcvB,MAAM,CAACuB,IAAP,CAAYkC,OAAZ,CACZlE,gBADY,EAEZlD,oBAAoB,CAAC2D,MAAM,CAACK,IAAR,CAFR,CAAd;CAID;CACF;CACF,OAxBD,MAwBO;CACL;CACAL,QAAAA,MAAM,GAAGN,IAAT;CACD;;CAED,WAAKM,MAAL,GAAcA,MAAd;;CAEA,UAAIL,OAAO,CAAClE,OAAZ,EAAqB;CACnBkE,QAAAA,OAAO,CAAClE,OAAR,CAAgBhB,IAAhB,CAAqB,IAArB,EAA2BuF,MAA3B;CACD;CACF;;;0BAEI0D,KAAK;CAAA,UACA/D,OADA,GACY,IADZ,CACAA,OADA;;CAGR,UAAIA,OAAO,CAACjE,KAAZ,EAAmB;CACjBiE,QAAAA,OAAO,CAACjE,KAAR,CAAcjB,IAAd,CAAmB,IAAnB,EAAyBiJ,GAAzB;CACD,OAFD,MAEO;CACL,cAAMA,GAAN;CACD;CACF;;;6BAEO;CACN,UAAI,CAAC,KAAK3D,OAAV,EAAmB;CACjB,aAAKA,OAAL,GAAe,IAAf;;CAEA,YAAI,KAAKU,MAAT,EAAiB;CACf,eAAKA,MAAL,CAAYkD,KAAZ;CACD,SAFD,MAEO,IAAI,CAAC,KAAK/D,KAAL,CAAWgE,QAAhB,EAA0B;CAC/B,eAAKhE,KAAL,CAAWc,MAAX,GAAoB,IAApB;CACA,eAAKd,KAAL,CAAWkB,OAAX;CACD,SAHM,MAGA;CACL,eAAKX,IAAL,CAAU,IAAIC,KAAJ,CAAU,2CAAV,CAAV;CACD;CACF;CACF;CAED;;;;;;;kCAIoB;CAClBlH,MAAAA,MAAM,CAACuG,UAAP,GAAoBD,iBAApB;CACA,aAAOC,UAAP;CACD;CAED;;;;;;;iCAImBE,SAAS;CAC1BrF,MAAAA,MAAM,CAACuG,MAAP,CAAcf,QAAd,EAAwBH,OAAxB;CACD;;;;;CC/VH,IAAMkE,gBAAgB,GAAG,CACxB,OADwB,EAExB,QAFwB,EAGxB,UAHwB,EAIxB,WAJwB,EAKxB,UALwB,EAMxB,WANwB,CAAzB;;CCEe,SAASC,SAAT,CAAmBvD,GAAnB,EACf;CACC,MAAI,CAACwD,cAAI,CAACC,QAAL,CAAczD,GAAd,CAAL,EACA;CACC,WAAO0D,OAAO,CAACC,OAAR,CAAgB3D,GAAhB,CAAP;CACA;;CAED,SAAO,IAAI0D,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;CACvC,QACA;CACC,UAAMC,GAAG,GAAGC,cAAI,CAACD,GAAL,EAAZ;CACAA,MAAAA,GAAG,CAACE,IAAJ,CAAS,KAAT,EAAgB/D,GAAhB;CACA6D,MAAAA,GAAG,CAACG,YAAJ,GAAmB,MAAnB;;CACAH,MAAAA,GAAG,CAACrD,OAAJ,GAAc,YAAM;CACnBoD,QAAAA,MAAM,CAAC,IAAI/D,KAAJ,CAAU,gBAAV,CAAD,CAAN;CACA,OAFD;;CAGAgE,MAAAA,GAAG,CAAC1D,MAAJ,GAAa,YAAM;CAClB,YAAI0D,GAAG,CAACI,MAAJ,KAAe,GAAnB,EACA;CACCN,UAAAA,OAAO,CAACE,GAAG,CAACK,QAAL,CAAP;CACA,SAHD,MAKA;CACCN,UAAAA,MAAM,CAAC,IAAI/D,KAAJ,0BAA4BgE,GAAG,CAACM,UAAhC,EAAD,CAAN;CACA;CACD,OATD;;CAUAN,MAAAA,GAAG,CAACO,IAAJ;CACA,KAnBD,CAoBA,OAAOjB,GAAP,EACA;CACCS,MAAAA,MAAM,CAACT,GAAG,CAACkB,OAAL,CAAN;CACA;CACD,GAzBM,CAAP;CA0BA;;KC7BYC,eAAb;CAEC,2BAAYnF,IAAZ,EACA;CAAA;;CAAA,QADkBC,OAClB,uEADoD,EACpD;CAAA;CACC,SAAKD,IAAL,GAAYA,IAAZ;CACA,SAAKC,OAAL;CAAgBvE,MAAAA,OAAO,EAAE;CAAzB,OAAiCuE,OAAjC;;CAEA,QAAI,KAAKA,OAAL,CAAamF,MAAjB,EACA;CACCjB,MAAAA,gBAAgB,CAACkB,OAAjB,CAAyB,UAACC,IAAD,EAAU;CAClC,YAAIjB,cAAI,CAACkB,QAAL,CAAc,KAAI,CAACtF,OAAL,CAAaqF,IAAb,CAAd,CAAJ,EACA;CACC,UAAA,KAAI,CAACrF,OAAL,CAAaqF,IAAb,KAAsB,CAAtB;CACA;CACD,OALD;CAMA;CACD;;CAhBF;CAAA;CAAA,+BA2BC;CAAA;;CACC,aAAO,IAAIf,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;CACvC,aAAK,IAAI1E,UAAJ,CACJ,MAAI,CAACC,IADD,gCAEA,MAAI,CAACC,OAFL,EAEiB;CAAClE,UAAAA,OAAO,EAAEyI,OAAV;CAAmBxI,UAAAA,KAAK,EAAEyI;CAA1B,SAFjB,EAAL;CAIA,OALM,CAAP;CAMA;CAlCF;CAAA;CAAA,6BAkBiBzE,IAlBjB,EAmBC;CAAA,UADsBC,OACtB,uEADwD,EACxD;CACC,aAAOmE,SAAS,CAACpE,IAAD,CAAT,CAAgBwF,IAAhB,CAAqB,UAACC,IAAD,EAAU;CACrC,YAAMC,UAAU,GAAG,IAAIP,eAAJ,CAAoBM,IAApB,EAA0BxF,OAA1B,CAAnB;CACA,eAAOyF,UAAU,CAACC,QAAX,EAAP;CACA,OAHM,CAAP;CAIA;CAxBF;CAAA;CAAA;;;;;;;;"}

Youez - 2016 - github.com/yon3zu
LinuXploit