"use strict"; /* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ exports.id = "vendor-chunks/fast-png"; exports.ids = ["vendor-chunks/fast-png"]; exports.modules = { /***/ "(ssr)/./node_modules/fast-png/lib-esm/PngDecoder.js": /*!*****************************************************!*\ !*** ./node_modules/fast-png/lib-esm/PngDecoder.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PngDecoder)\n/* harmony export */ });\n/* harmony import */ var iobuffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! iobuffer */ \"(ssr)/./node_modules/iobuffer/lib-esm/IOBuffer.js\");\n/* harmony import */ var pako__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! pako */ \"(ssr)/./node_modules/pako/dist/pako.esm.mjs\");\n/* harmony import */ var _helpers_crc__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers/crc */ \"(ssr)/./node_modules/fast-png/lib-esm/helpers/crc.js\");\n/* harmony import */ var _helpers_decodeInterlaceAdam7__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers/decodeInterlaceAdam7 */ \"(ssr)/./node_modules/fast-png/lib-esm/helpers/decodeInterlaceAdam7.js\");\n/* harmony import */ var _helpers_decodeInterlaceNull__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers/decodeInterlaceNull */ \"(ssr)/./node_modules/fast-png/lib-esm/helpers/decodeInterlaceNull.js\");\n/* harmony import */ var _helpers_signature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./helpers/signature */ \"(ssr)/./node_modules/fast-png/lib-esm/helpers/signature.js\");\n/* harmony import */ var _helpers_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./helpers/text */ \"(ssr)/./node_modules/fast-png/lib-esm/helpers/text.js\");\n/* harmony import */ var _internalTypes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./internalTypes */ \"(ssr)/./node_modules/fast-png/lib-esm/internalTypes.js\");\n\n\n\n\n\n\n\n\nclass PngDecoder extends iobuffer__WEBPACK_IMPORTED_MODULE_0__.IOBuffer {\n _checkCrc;\n _inflator;\n _png;\n _apng;\n _end;\n _hasPalette;\n _palette;\n _hasTransparency;\n _transparency;\n _compressionMethod;\n _filterMethod;\n _interlaceMethod;\n _colorType;\n _isAnimated;\n _numberOfFrames;\n _numberOfPlays;\n _frames;\n _writingDataChunks;\n constructor(data, options = {}) {\n super(data);\n const { checkCrc = false } = options;\n this._checkCrc = checkCrc;\n this._inflator = new pako__WEBPACK_IMPORTED_MODULE_1__.Inflate();\n this._png = {\n width: -1,\n height: -1,\n channels: -1,\n data: new Uint8Array(0),\n depth: 1,\n text: {},\n };\n this._apng = {\n width: -1,\n height: -1,\n channels: -1,\n depth: 1,\n numberOfFrames: 1,\n numberOfPlays: 0,\n text: {},\n frames: [],\n };\n this._end = false;\n this._hasPalette = false;\n this._palette = [];\n this._hasTransparency = false;\n this._transparency = new Uint16Array(0);\n this._compressionMethod = _internalTypes__WEBPACK_IMPORTED_MODULE_7__.CompressionMethod.UNKNOWN;\n this._filterMethod = _internalTypes__WEBPACK_IMPORTED_MODULE_7__.FilterMethod.UNKNOWN;\n this._interlaceMethod = _internalTypes__WEBPACK_IMPORTED_MODULE_7__.InterlaceMethod.UNKNOWN;\n this._colorType = _internalTypes__WEBPACK_IMPORTED_MODULE_7__.ColorType.UNKNOWN;\n this._isAnimated = false;\n this._numberOfFrames = 1;\n this._numberOfPlays = 0;\n this._frames = [];\n this._writingDataChunks = false;\n // PNG is always big endian\n // https://www.w3.org/TR/PNG/#7Integers-and-byte-order\n this.setBigEndian();\n }\n decode() {\n (0,_helpers_signature__WEBPACK_IMPORTED_MODULE_5__.checkSignature)(this);\n while (!this._end) {\n const length = this.readUint32();\n const type = this.readChars(4);\n this.decodeChunk(length, type);\n }\n this.decodeImage();\n return this._png;\n }\n decodeApng() {\n (0,_helpers_signature__WEBPACK_IMPORTED_MODULE_5__.checkSignature)(this);\n while (!this._end) {\n const length = this.readUint32();\n const type = this.readChars(4);\n this.decodeApngChunk(length, type);\n }\n this.decodeApngImage();\n return this._apng;\n }\n // https://www.w3.org/TR/PNG/#5Chunk-layout\n decodeChunk(length, type) {\n const offset = this.offset;\n switch (type) {\n // 11.2 Critical chunks\n case 'IHDR': // 11.2.2 IHDR Image header\n this.decodeIHDR();\n break;\n case 'PLTE': // 11.2.3 PLTE Palette\n this.decodePLTE(length);\n break;\n case 'IDAT': // 11.2.4 IDAT Image data\n this.decodeIDAT(length);\n break;\n case 'IEND': // 11.2.5 IEND Image trailer\n this._end = true;\n break;\n // 11.3 Ancillary chunks\n case 'tRNS': // 11.3.2.1 tRNS Transparency\n this.decodetRNS(length);\n break;\n case 'iCCP': // 11.3.3.3 iCCP Embedded ICC profile\n this.decodeiCCP(length);\n break;\n case _helpers_text__WEBPACK_IMPORTED_MODULE_6__.textChunkName: // 11.3.4.3 tEXt Textual data\n (0,_helpers_text__WEBPACK_IMPORTED_MODULE_6__.decodetEXt)(this._png.text, this, length);\n break;\n case 'pHYs': // 11.3.5.3 pHYs Physical pixel dimensions\n this.decodepHYs();\n break;\n default:\n this.skip(length);\n break;\n }\n if (this.offset - offset !== length) {\n throw new Error(`Length mismatch while decoding chunk ${type}`);\n }\n if (this._checkCrc) {\n (0,_helpers_crc__WEBPACK_IMPORTED_MODULE_2__.checkCrc)(this, length + 4, type);\n }\n else {\n this.skip(4);\n }\n }\n decodeApngChunk(length, type) {\n const offset = this.offset;\n if (type !== 'fdAT' && type !== 'IDAT' && this._writingDataChunks) {\n this.pushDataToFrame();\n }\n switch (type) {\n case 'acTL':\n this.decodeACTL();\n break;\n case 'fcTL':\n this.decodeFCTL();\n break;\n case 'fdAT':\n this.decodeFDAT(length);\n break;\n default:\n this.decodeChunk(length, type);\n this.offset = offset + length;\n break;\n }\n if (this.offset - offset !== length) {\n throw new Error(`Length mismatch while decoding chunk ${type}`);\n }\n if (this._checkCrc) {\n (0,_helpers_crc__WEBPACK_IMPORTED_MODULE_2__.checkCrc)(this, length + 4, type);\n }\n else {\n this.skip(4);\n }\n }\n // https://www.w3.org/TR/PNG/#11IHDR\n decodeIHDR() {\n const image = this._png;\n image.width = this.readUint32();\n image.height = this.readUint32();\n image.depth = checkBitDepth(this.readUint8());\n const colorType = this.readUint8();\n this._colorType = colorType;\n let channels;\n switch (colorType) {\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.ColorType.GREYSCALE:\n channels = 1;\n break;\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.ColorType.TRUECOLOUR:\n channels = 3;\n break;\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.ColorType.INDEXED_COLOUR:\n channels = 1;\n break;\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.ColorType.GREYSCALE_ALPHA:\n channels = 2;\n break;\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.ColorType.TRUECOLOUR_ALPHA:\n channels = 4;\n break;\n // Kept for exhaustiveness.\n // eslint-disable-next-line unicorn/no-useless-switch-case\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.ColorType.UNKNOWN:\n default:\n throw new Error(`Unknown color type: ${colorType}`);\n }\n this._png.channels = channels;\n this._compressionMethod = this.readUint8();\n if (this._compressionMethod !== _internalTypes__WEBPACK_IMPORTED_MODULE_7__.CompressionMethod.DEFLATE) {\n throw new Error(`Unsupported compression method: ${this._compressionMethod}`);\n }\n this._filterMethod = this.readUint8();\n this._interlaceMethod = this.readUint8();\n }\n decodeACTL() {\n this._numberOfFrames = this.readUint32();\n this._numberOfPlays = this.readUint32();\n this._isAnimated = true;\n }\n decodeFCTL() {\n const image = {\n sequenceNumber: this.readUint32(),\n width: this.readUint32(),\n height: this.readUint32(),\n xOffset: this.readUint32(),\n yOffset: this.readUint32(),\n delayNumber: this.readUint16(),\n delayDenominator: this.readUint16(),\n disposeOp: this.readUint8(),\n blendOp: this.readUint8(),\n data: new Uint8Array(0),\n };\n this._frames.push(image);\n }\n // https://www.w3.org/TR/PNG/#11PLTE\n decodePLTE(length) {\n if (length % 3 !== 0) {\n throw new RangeError(`PLTE field length must be a multiple of 3. Got ${length}`);\n }\n const l = length / 3;\n this._hasPalette = true;\n const palette = [];\n this._palette = palette;\n for (let i = 0; i < l; i++) {\n palette.push([this.readUint8(), this.readUint8(), this.readUint8()]);\n }\n }\n // https://www.w3.org/TR/PNG/#11IDAT\n decodeIDAT(length) {\n this._writingDataChunks = true;\n const dataLength = length;\n const dataOffset = this.offset + this.byteOffset;\n this._inflator.push(new Uint8Array(this.buffer, dataOffset, dataLength));\n if (this._inflator.err) {\n throw new Error(`Error while decompressing the data: ${this._inflator.err}`);\n }\n this.skip(length);\n }\n decodeFDAT(length) {\n this._writingDataChunks = true;\n let dataLength = length;\n let dataOffset = this.offset + this.byteOffset;\n dataOffset += 4;\n dataLength -= 4;\n this._inflator.push(new Uint8Array(this.buffer, dataOffset, dataLength));\n if (this._inflator.err) {\n throw new Error(`Error while decompressing the data: ${this._inflator.err}`);\n }\n this.skip(length);\n }\n // https://www.w3.org/TR/PNG/#11tRNS\n decodetRNS(length) {\n switch (this._colorType) {\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.ColorType.GREYSCALE:\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.ColorType.TRUECOLOUR: {\n if (length % 2 !== 0) {\n throw new RangeError(`tRNS chunk length must be a multiple of 2. Got ${length}`);\n }\n if (length / 2 > this._png.width * this._png.height) {\n throw new Error(`tRNS chunk contains more alpha values than there are pixels (${length / 2} vs ${this._png.width * this._png.height})`);\n }\n this._hasTransparency = true;\n this._transparency = new Uint16Array(length / 2);\n for (let i = 0; i < length / 2; i++) {\n this._transparency[i] = this.readUint16();\n }\n break;\n }\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.ColorType.INDEXED_COLOUR: {\n if (length > this._palette.length) {\n throw new Error(`tRNS chunk contains more alpha values than there are palette colors (${length} vs ${this._palette.length})`);\n }\n let i = 0;\n for (; i < length; i++) {\n const alpha = this.readByte();\n this._palette[i].push(alpha);\n }\n for (; i < this._palette.length; i++) {\n this._palette[i].push(255);\n }\n break;\n }\n // Kept for exhaustiveness.\n /* eslint-disable unicorn/no-useless-switch-case */\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.ColorType.UNKNOWN:\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.ColorType.GREYSCALE_ALPHA:\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.ColorType.TRUECOLOUR_ALPHA:\n default: {\n throw new Error(`tRNS chunk is not supported for color type ${this._colorType}`);\n }\n /* eslint-enable unicorn/no-useless-switch-case */\n }\n }\n // https://www.w3.org/TR/PNG/#11iCCP\n decodeiCCP(length) {\n const name = (0,_helpers_text__WEBPACK_IMPORTED_MODULE_6__.readKeyword)(this);\n const compressionMethod = this.readUint8();\n if (compressionMethod !== _internalTypes__WEBPACK_IMPORTED_MODULE_7__.CompressionMethod.DEFLATE) {\n throw new Error(`Unsupported iCCP compression method: ${compressionMethod}`);\n }\n const compressedProfile = this.readBytes(length - name.length - 2);\n this._png.iccEmbeddedProfile = {\n name,\n profile: (0,pako__WEBPACK_IMPORTED_MODULE_1__.inflate)(compressedProfile),\n };\n }\n // https://www.w3.org/TR/PNG/#11pHYs\n decodepHYs() {\n const ppuX = this.readUint32();\n const ppuY = this.readUint32();\n const unitSpecifier = this.readByte();\n this._png.resolution = { x: ppuX, y: ppuY, unit: unitSpecifier };\n }\n decodeApngImage() {\n this._apng.width = this._png.width;\n this._apng.height = this._png.height;\n this._apng.channels = this._png.channels;\n this._apng.depth = this._png.depth;\n this._apng.numberOfFrames = this._numberOfFrames;\n this._apng.numberOfPlays = this._numberOfPlays;\n this._apng.text = this._png.text;\n this._apng.resolution = this._png.resolution;\n for (let i = 0; i < this._numberOfFrames; i++) {\n const newFrame = {\n sequenceNumber: this._frames[i].sequenceNumber,\n delayNumber: this._frames[i].delayNumber,\n delayDenominator: this._frames[i].delayDenominator,\n data: this._apng.depth === 8\n ? new Uint8Array(this._apng.width * this._apng.height * this._apng.channels)\n : new Uint16Array(this._apng.width * this._apng.height * this._apng.channels),\n };\n const frame = this._frames.at(i);\n if (frame) {\n frame.data = (0,_helpers_decodeInterlaceNull__WEBPACK_IMPORTED_MODULE_4__.decodeInterlaceNull)({\n data: frame.data,\n width: frame.width,\n height: frame.height,\n channels: this._apng.channels,\n depth: this._apng.depth,\n });\n if (this._hasPalette) {\n this._apng.palette = this._palette;\n }\n if (this._hasTransparency) {\n this._apng.transparency = this._transparency;\n }\n if (i === 0 ||\n (frame.xOffset === 0 &&\n frame.yOffset === 0 &&\n frame.width === this._png.width &&\n frame.height === this._png.height)) {\n newFrame.data = frame.data;\n }\n else {\n const prevFrame = this._apng.frames.at(i - 1);\n this.disposeFrame(frame, prevFrame, newFrame);\n this.addFrameDataToCanvas(newFrame, frame);\n }\n this._apng.frames.push(newFrame);\n }\n }\n return this._apng;\n }\n disposeFrame(frame, prevFrame, imageFrame) {\n switch (frame.disposeOp) {\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.DisposeOpType.NONE:\n break;\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.DisposeOpType.BACKGROUND:\n for (let row = 0; row < this._png.height; row++) {\n for (let col = 0; col < this._png.width; col++) {\n const index = (row * frame.width + col) * this._png.channels;\n for (let channel = 0; channel < this._png.channels; channel++) {\n imageFrame.data[index + channel] = 0;\n }\n }\n }\n break;\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.DisposeOpType.PREVIOUS:\n imageFrame.data.set(prevFrame.data);\n break;\n default:\n throw new Error('Unknown disposeOp');\n }\n }\n addFrameDataToCanvas(imageFrame, frame) {\n const maxValue = 1 << this._png.depth;\n const calculatePixelIndices = (row, col) => {\n const index = ((row + frame.yOffset) * this._png.width + frame.xOffset + col) *\n this._png.channels;\n const frameIndex = (row * frame.width + col) * this._png.channels;\n return { index, frameIndex };\n };\n switch (frame.blendOp) {\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.BlendOpType.SOURCE:\n for (let row = 0; row < frame.height; row++) {\n for (let col = 0; col < frame.width; col++) {\n const { index, frameIndex } = calculatePixelIndices(row, col);\n for (let channel = 0; channel < this._png.channels; channel++) {\n imageFrame.data[index + channel] =\n frame.data[frameIndex + channel];\n }\n }\n }\n break;\n // https://www.w3.org/TR/png-3/#13Alpha-channel-processing\n case _internalTypes__WEBPACK_IMPORTED_MODULE_7__.BlendOpType.OVER:\n for (let row = 0; row < frame.height; row++) {\n for (let col = 0; col < frame.width; col++) {\n const { index, frameIndex } = calculatePixelIndices(row, col);\n for (let channel = 0; channel < this._png.channels; channel++) {\n const sourceAlpha = frame.data[frameIndex + this._png.channels - 1] / maxValue;\n const foregroundValue = channel % (this._png.channels - 1) === 0\n ? 1\n : frame.data[frameIndex + channel];\n const value = Math.floor(sourceAlpha * foregroundValue +\n (1 - sourceAlpha) * imageFrame.data[index + channel]);\n imageFrame.data[index + channel] += value;\n }\n }\n }\n break;\n default:\n throw new Error('Unknown blendOp');\n }\n }\n decodeImage() {\n if (this._inflator.err) {\n throw new Error(`Error while decompressing the data: ${this._inflator.err}`);\n }\n const data = this._isAnimated\n ? (this._frames?.at(0)).data\n : this._inflator.result;\n if (this._filterMethod !== _internalTypes__WEBPACK_IMPORTED_MODULE_7__.FilterMethod.ADAPTIVE) {\n throw new Error(`Filter method ${this._filterMethod} not supported`);\n }\n if (this._interlaceMethod === _internalTypes__WEBPACK_IMPORTED_MODULE_7__.InterlaceMethod.NO_INTERLACE) {\n this._png.data = (0,_helpers_decodeInterlaceNull__WEBPACK_IMPORTED_MODULE_4__.decodeInterlaceNull)({\n data: data,\n width: this._png.width,\n height: this._png.height,\n channels: this._png.channels,\n depth: this._png.depth,\n });\n }\n else if (this._interlaceMethod === _internalTypes__WEBPACK_IMPORTED_MODULE_7__.InterlaceMethod.ADAM7) {\n this._png.data = (0,_helpers_decodeInterlaceAdam7__WEBPACK_IMPORTED_MODULE_3__.decodeInterlaceAdam7)({\n data: data,\n width: this._png.width,\n height: this._png.height,\n channels: this._png.channels,\n depth: this._png.depth,\n });\n }\n else {\n throw new Error(`Interlace method ${this._interlaceMethod} not supported`);\n }\n if (this._hasPalette) {\n this._png.palette = this._palette;\n }\n if (this._hasTransparency) {\n this._png.transparency = this._transparency;\n }\n }\n pushDataToFrame() {\n const result = this._inflator.result;\n const lastFrame = this._frames.at(-1);\n if (lastFrame) {\n lastFrame.data = result;\n }\n else {\n this._frames.push({\n sequenceNumber: 0,\n width: this._png.width,\n height: this._png.height,\n xOffset: 0,\n yOffset: 0,\n delayNumber: 0,\n delayDenominator: 0,\n disposeOp: _internalTypes__WEBPACK_IMPORTED_MODULE_7__.DisposeOpType.NONE,\n blendOp: _internalTypes__WEBPACK_IMPORTED_MODULE_7__.BlendOpType.SOURCE,\n data: result,\n });\n }\n this._inflator = new pako__WEBPACK_IMPORTED_MODULE_1__.Inflate();\n this._writingDataChunks = false;\n }\n}\nfunction checkBitDepth(value) {\n if (value !== 1 &&\n value !== 2 &&\n value !== 4 &&\n value !== 8 &&\n value !== 16) {\n throw new Error(`invalid bit depth: ${value}`);\n }\n return value;\n}\n//# sourceMappingURL=PngDecoder.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9QbmdEZWNvZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFvQztBQUNnQjtBQUNYO0FBQzZCO0FBQ0Y7QUFDZjtBQUNtQjtBQUNtRDtBQUM1Ryx5QkFBeUIsOENBQVE7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0EsZ0JBQWdCLG1CQUFtQjtBQUNuQztBQUNBLDZCQUE2Qix5Q0FBUTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyw2REFBaUI7QUFDbkQsNkJBQTZCLHdEQUFZO0FBQ3pDLGdDQUFnQywyREFBZTtBQUMvQywwQkFBMEIscURBQVM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLGtFQUFjO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsa0VBQWM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQix3REFBYTtBQUM5QixnQkFBZ0IseURBQVU7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0VBQW9FLEtBQUs7QUFDekU7QUFDQTtBQUNBLFlBQVksc0RBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9FQUFvRSxLQUFLO0FBQ3pFO0FBQ0E7QUFDQSxZQUFZLHNEQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixxREFBUztBQUMxQjtBQUNBO0FBQ0EsaUJBQWlCLHFEQUFTO0FBQzFCO0FBQ0E7QUFDQSxpQkFBaUIscURBQVM7QUFDMUI7QUFDQTtBQUNBLGlCQUFpQixxREFBUztBQUMxQjtBQUNBO0FBQ0EsaUJBQWlCLHFEQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHFEQUFTO0FBQzFCO0FBQ0EsdURBQXVELFVBQVU7QUFDakU7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLDZEQUFpQjtBQUN6RCwrREFBK0Qsd0JBQXdCO0FBQ3ZGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1GQUFtRixPQUFPO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsT0FBTztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1FQUFtRSxtQkFBbUI7QUFDdEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1FQUFtRSxtQkFBbUI7QUFDdEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHFEQUFTO0FBQzFCLGlCQUFpQixxREFBUztBQUMxQjtBQUNBLDJGQUEyRixPQUFPO0FBQ2xHO0FBQ0E7QUFDQSxvR0FBb0csWUFBWSxLQUFLLG1DQUFtQztBQUN4SjtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsZ0JBQWdCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHFEQUFTO0FBQzFCO0FBQ0EsNEdBQTRHLFFBQVEsS0FBSyxxQkFBcUI7QUFDOUk7QUFDQTtBQUNBLHVCQUF1QixZQUFZO0FBQ25DO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QiwwQkFBMEI7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHFEQUFTO0FBQzFCLGlCQUFpQixxREFBUztBQUMxQixpQkFBaUIscURBQVM7QUFDMUI7QUFDQSw4RUFBOEUsZ0JBQWdCO0FBQzlGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiwwREFBVztBQUNoQztBQUNBLGtDQUFrQyw2REFBaUI7QUFDbkQsb0VBQW9FLGtCQUFrQjtBQUN0RjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiw2Q0FBTztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiwwQkFBMEI7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsaUZBQW1CO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIseURBQWE7QUFDOUI7QUFDQSxpQkFBaUIseURBQWE7QUFDOUIsa0NBQWtDLHdCQUF3QjtBQUMxRCxzQ0FBc0MsdUJBQXVCO0FBQzdEO0FBQ0EsOENBQThDLDhCQUE4QjtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHlEQUFhO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EsaUJBQWlCLHVEQUFXO0FBQzVCLGtDQUFrQyxvQkFBb0I7QUFDdEQsc0NBQXNDLG1CQUFtQjtBQUN6RCxnQ0FBZ0Msb0JBQW9CO0FBQ3BELDhDQUE4Qyw4QkFBOEI7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsdURBQVc7QUFDNUIsa0NBQWtDLG9CQUFvQjtBQUN0RCxzQ0FBc0MsbUJBQW1CO0FBQ3pELGdDQUFnQyxvQkFBb0I7QUFDcEQsOENBQThDLDhCQUE4QjtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUVBQW1FLG1CQUFtQjtBQUN0RjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyx3REFBWTtBQUMvQyw2Q0FBNkMsb0JBQW9CO0FBQ2pFO0FBQ0Esc0NBQXNDLDJEQUFlO0FBQ3JELDZCQUE2QixpRkFBbUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLDJDQUEyQywyREFBZTtBQUMxRCw2QkFBNkIsbUZBQW9CO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGdEQUFnRCx1QkFBdUI7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQix5REFBYTtBQUN4Qyx5QkFBeUIsdURBQVc7QUFDcEM7QUFDQSxhQUFhO0FBQ2I7QUFDQSw2QkFBNkIseUNBQVE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOENBQThDLE1BQU07QUFDcEQ7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92ZXJpZnlwYWNrLWZyb250ZW5kLy4vbm9kZV9tb2R1bGVzL2Zhc3QtcG5nL2xpYi1lc20vUG5nRGVjb2Rlci5qcz83MzRlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElPQnVmZmVyIH0gZnJvbSAnaW9idWZmZXInO1xuaW1wb3J0IHsgaW5mbGF0ZSwgSW5mbGF0ZSBhcyBJbmZsYXRvciB9IGZyb20gJ3Bha28nO1xuaW1wb3J0IHsgY2hlY2tDcmMgfSBmcm9tICcuL2hlbHBlcnMvY3JjJztcbmltcG9ydCB7IGRlY29kZUludGVybGFjZUFkYW03IH0gZnJvbSAnLi9oZWxwZXJzL2RlY29kZUludGVybGFjZUFkYW03JztcbmltcG9ydCB7IGRlY29kZUludGVybGFjZU51bGwgfSBmcm9tICcuL2hlbHBlcnMvZGVjb2RlSW50ZXJsYWNlTnVsbCc7XG5pbXBvcnQgeyBjaGVja1NpZ25hdHVyZSB9IGZyb20gJy4vaGVscGVycy9zaWduYXR1cmUnO1xuaW1wb3J0IHsgZGVjb2RldEVYdCwgcmVhZEtleXdvcmQsIHRleHRDaHVua05hbWUgfSBmcm9tICcuL2hlbHBlcnMvdGV4dCc7XG5pbXBvcnQgeyBDb2xvclR5cGUsIENvbXByZXNzaW9uTWV0aG9kLCBEaXNwb3NlT3BUeXBlLCBGaWx0ZXJNZXRob2QsIEludGVybGFjZU1ldGhvZCwgQmxlbmRPcFR5cGUsIH0gZnJvbSAnLi9pbnRlcm5hbFR5cGVzJztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBuZ0RlY29kZXIgZXh0ZW5kcyBJT0J1ZmZlciB7XG4gICAgX2NoZWNrQ3JjO1xuICAgIF9pbmZsYXRvcjtcbiAgICBfcG5nO1xuICAgIF9hcG5nO1xuICAgIF9lbmQ7XG4gICAgX2hhc1BhbGV0dGU7XG4gICAgX3BhbGV0dGU7XG4gICAgX2hhc1RyYW5zcGFyZW5jeTtcbiAgICBfdHJhbnNwYXJlbmN5O1xuICAgIF9jb21wcmVzc2lvbk1ldGhvZDtcbiAgICBfZmlsdGVyTWV0aG9kO1xuICAgIF9pbnRlcmxhY2VNZXRob2Q7XG4gICAgX2NvbG9yVHlwZTtcbiAgICBfaXNBbmltYXRlZDtcbiAgICBfbnVtYmVyT2ZGcmFtZXM7XG4gICAgX251bWJlck9mUGxheXM7XG4gICAgX2ZyYW1lcztcbiAgICBfd3JpdGluZ0RhdGFDaHVua3M7XG4gICAgY29uc3RydWN0b3IoZGF0YSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKGRhdGEpO1xuICAgICAgICBjb25zdCB7IGNoZWNrQ3JjID0gZmFsc2UgfSA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMuX2NoZWNrQ3JjID0gY2hlY2tDcmM7XG4gICAgICAgIHRoaXMuX2luZmxhdG9yID0gbmV3IEluZmxhdG9yKCk7XG4gICAgICAgIHRoaXMuX3BuZyA9IHtcbiAgICAgICAgICAgIHdpZHRoOiAtMSxcbiAgICAgICAgICAgIGhlaWdodDogLTEsXG4gICAgICAgICAgICBjaGFubmVsczogLTEsXG4gICAgICAgICAgICBkYXRhOiBuZXcgVWludDhBcnJheSgwKSxcbiAgICAgICAgICAgIGRlcHRoOiAxLFxuICAgICAgICAgICAgdGV4dDoge30sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2FwbmcgPSB7XG4gICAgICAgICAgICB3aWR0aDogLTEsXG4gICAgICAgICAgICBoZWlnaHQ6IC0xLFxuICAgICAgICAgICAgY2hhbm5lbHM6IC0xLFxuICAgICAgICAgICAgZGVwdGg6IDEsXG4gICAgICAgICAgICBudW1iZXJPZkZyYW1lczogMSxcbiAgICAgICAgICAgIG51bWJlck9mUGxheXM6IDAsXG4gICAgICAgICAgICB0ZXh0OiB7fSxcbiAgICAgICAgICAgIGZyYW1lczogW10sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2VuZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9oYXNQYWxldHRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3BhbGV0dGUgPSBbXTtcbiAgICAgICAgdGhpcy5faGFzVHJhbnNwYXJlbmN5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3RyYW5zcGFyZW5jeSA9IG5ldyBVaW50MTZBcnJheSgwKTtcbiAgICAgICAgdGhpcy5fY29tcHJlc3Npb25NZXRob2QgPSBDb21wcmVzc2lvbk1ldGhvZC5VTktOT1dOO1xuICAgICAgICB0aGlzLl9maWx0ZXJNZXRob2QgPSBGaWx0ZXJNZXRob2QuVU5LTk9XTjtcbiAgICAgICAgdGhpcy5faW50ZXJsYWNlTWV0aG9kID0gSW50ZXJsYWNlTWV0aG9kLlVOS05PV047XG4gICAgICAgIHRoaXMuX2NvbG9yVHlwZSA9IENvbG9yVHlwZS5VTktOT1dOO1xuICAgICAgICB0aGlzLl9pc0FuaW1hdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX251bWJlck9mRnJhbWVzID0gMTtcbiAgICAgICAgdGhpcy5fbnVtYmVyT2ZQbGF5cyA9IDA7XG4gICAgICAgIHRoaXMuX2ZyYW1lcyA9IFtdO1xuICAgICAgICB0aGlzLl93cml0aW5nRGF0YUNodW5rcyA9IGZhbHNlO1xuICAgICAgICAvLyBQTkcgaXMgYWx3YXlzIGJpZyBlbmRpYW5cbiAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL1BORy8jN0ludGVnZXJzLWFuZC1ieXRlLW9yZGVyXG4gICAgICAgIHRoaXMuc2V0QmlnRW5kaWFuKCk7XG4gICAgfVxuICAgIGRlY29kZSgpIHtcbiAgICAgICAgY2hlY2tTaWduYXR1cmUodGhpcyk7XG4gICAgICAgIHdoaWxlICghdGhpcy5fZW5kKSB7XG4gICAgICAgICAgICBjb25zdCBsZW5ndGggPSB0aGlzLnJlYWRVaW50MzIoKTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLnJlYWRDaGFycyg0KTtcbiAgICAgICAgICAgIHRoaXMuZGVjb2RlQ2h1bmsobGVuZ3RoLCB0eXBlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRlY29kZUltYWdlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLl9wbmc7XG4gICAgfVxuICAgIGRlY29kZUFwbmcoKSB7XG4gICAgICAgIGNoZWNrU2lnbmF0dXJlKHRoaXMpO1xuICAgICAgICB3aGlsZSAoIXRoaXMuX2VuZCkge1xuICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gdGhpcy5yZWFkVWludDMyKCk7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gdGhpcy5yZWFkQ2hhcnMoNCk7XG4gICAgICAgICAgICB0aGlzLmRlY29kZUFwbmdDaHVuayhsZW5ndGgsIHR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGVjb2RlQXBuZ0ltYWdlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcG5nO1xuICAgIH1cbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvUE5HLyM1Q2h1bmstbGF5b3V0XG4gICAgZGVjb2RlQ2h1bmsobGVuZ3RoLCB0eXBlKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMub2Zmc2V0O1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIC8vIDExLjIgQ3JpdGljYWwgY2h1bmtzXG4gICAgICAgICAgICBjYXNlICdJSERSJzogLy8gMTEuMi4yIElIRFIgSW1hZ2UgaGVhZGVyXG4gICAgICAgICAgICAgICAgdGhpcy5kZWNvZGVJSERSKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQTFRFJzogLy8gMTEuMi4zIFBMVEUgUGFsZXR0ZVxuICAgICAgICAgICAgICAgIHRoaXMuZGVjb2RlUExURShsZW5ndGgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSURBVCc6IC8vIDExLjIuNCBJREFUIEltYWdlIGRhdGFcbiAgICAgICAgICAgICAgICB0aGlzLmRlY29kZUlEQVQobGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0lFTkQnOiAvLyAxMS4yLjUgSUVORCBJbWFnZSB0cmFpbGVyXG4gICAgICAgICAgICAgICAgdGhpcy5fZW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIC8vIDExLjMgQW5jaWxsYXJ5IGNodW5rc1xuICAgICAgICAgICAgY2FzZSAndFJOUyc6IC8vIDExLjMuMi4xIHRSTlMgVHJhbnNwYXJlbmN5XG4gICAgICAgICAgICAgICAgdGhpcy5kZWNvZGV0Uk5TKGxlbmd0aCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdpQ0NQJzogLy8gMTEuMy4zLjMgaUNDUCBFbWJlZGRlZCBJQ0MgcHJvZmlsZVxuICAgICAgICAgICAgICAgIHRoaXMuZGVjb2RlaUNDUChsZW5ndGgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0ZXh0Q2h1bmtOYW1lOiAvLyAxMS4zLjQuMyB0RVh0IFRleHR1YWwgZGF0YVxuICAgICAgICAgICAgICAgIGRlY29kZXRFWHQodGhpcy5fcG5nLnRleHQsIHRoaXMsIGxlbmd0aCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwSFlzJzogLy8gMTEuMy41LjMgcEhZcyBQaHlzaWNhbCBwaXhlbCBkaW1lbnNpb25zXG4gICAgICAgICAgICAgICAgdGhpcy5kZWNvZGVwSFlzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMuc2tpcChsZW5ndGgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9mZnNldCAtIG9mZnNldCAhPT0gbGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYExlbmd0aCBtaXNtYXRjaCB3aGlsZSBkZWNvZGluZyBjaHVuayAke3R5cGV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2NoZWNrQ3JjKSB7XG4gICAgICAgICAgICBjaGVja0NyYyh0aGlzLCBsZW5ndGggKyA0LCB0eXBlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2tpcCg0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZWNvZGVBcG5nQ2h1bmsobGVuZ3RoLCB0eXBlKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMub2Zmc2V0O1xuICAgICAgICBpZiAodHlwZSAhPT0gJ2ZkQVQnICYmIHR5cGUgIT09ICdJREFUJyAmJiB0aGlzLl93cml0aW5nRGF0YUNodW5rcykge1xuICAgICAgICAgICAgdGhpcy5wdXNoRGF0YVRvRnJhbWUoKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2FjVEwnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGVjb2RlQUNUTCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZmNUTCc6XG4gICAgICAgICAgICAgICAgdGhpcy5kZWNvZGVGQ1RMKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmZEFUJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRlY29kZUZEQVQobGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5kZWNvZGVDaHVuayhsZW5ndGgsIHR5cGUpO1xuICAgICAgICAgICAgICAgIHRoaXMub2Zmc2V0ID0gb2Zmc2V0ICsgbGVuZ3RoO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9mZnNldCAtIG9mZnNldCAhPT0gbGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYExlbmd0aCBtaXNtYXRjaCB3aGlsZSBkZWNvZGluZyBjaHVuayAke3R5cGV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2NoZWNrQ3JjKSB7XG4gICAgICAgICAgICBjaGVja0NyYyh0aGlzLCBsZW5ndGggKyA0LCB0eXBlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2tpcCg0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvUE5HLyMxMUlIRFJcbiAgICBkZWNvZGVJSERSKCkge1xuICAgICAgICBjb25zdCBpbWFnZSA9IHRoaXMuX3BuZztcbiAgICAgICAgaW1hZ2Uud2lkdGggPSB0aGlzLnJlYWRVaW50MzIoKTtcbiAgICAgICAgaW1hZ2UuaGVpZ2h0ID0gdGhpcy5yZWFkVWludDMyKCk7XG4gICAgICAgIGltYWdlLmRlcHRoID0gY2hlY2tCaXREZXB0aCh0aGlzLnJlYWRVaW50OCgpKTtcbiAgICAgICAgY29uc3QgY29sb3JUeXBlID0gdGhpcy5yZWFkVWludDgoKTtcbiAgICAgICAgdGhpcy5fY29sb3JUeXBlID0gY29sb3JUeXBlO1xuICAgICAgICBsZXQgY2hhbm5lbHM7XG4gICAgICAgIHN3aXRjaCAoY29sb3JUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIENvbG9yVHlwZS5HUkVZU0NBTEU6XG4gICAgICAgICAgICAgICAgY2hhbm5lbHMgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDb2xvclR5cGUuVFJVRUNPTE9VUjpcbiAgICAgICAgICAgICAgICBjaGFubmVscyA9IDM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENvbG9yVHlwZS5JTkRFWEVEX0NPTE9VUjpcbiAgICAgICAgICAgICAgICBjaGFubmVscyA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENvbG9yVHlwZS5HUkVZU0NBTEVfQUxQSEE6XG4gICAgICAgICAgICAgICAgY2hhbm5lbHMgPSAyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDb2xvclR5cGUuVFJVRUNPTE9VUl9BTFBIQTpcbiAgICAgICAgICAgICAgICBjaGFubmVscyA9IDQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAvLyBLZXB0IGZvciBleGhhdXN0aXZlbmVzcy5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLXVzZWxlc3Mtc3dpdGNoLWNhc2VcbiAgICAgICAgICAgIGNhc2UgQ29sb3JUeXBlLlVOS05PV046XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb2xvciB0eXBlOiAke2NvbG9yVHlwZX1gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wbmcuY2hhbm5lbHMgPSBjaGFubmVscztcbiAgICAgICAgdGhpcy5fY29tcHJlc3Npb25NZXRob2QgPSB0aGlzLnJlYWRVaW50OCgpO1xuICAgICAgICBpZiAodGhpcy5fY29tcHJlc3Npb25NZXRob2QgIT09IENvbXByZXNzaW9uTWV0aG9kLkRFRkxBVEUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgY29tcHJlc3Npb24gbWV0aG9kOiAke3RoaXMuX2NvbXByZXNzaW9uTWV0aG9kfWApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZpbHRlck1ldGhvZCA9IHRoaXMucmVhZFVpbnQ4KCk7XG4gICAgICAgIHRoaXMuX2ludGVybGFjZU1ldGhvZCA9IHRoaXMucmVhZFVpbnQ4KCk7XG4gICAgfVxuICAgIGRlY29kZUFDVEwoKSB7XG4gICAgICAgIHRoaXMuX251bWJlck9mRnJhbWVzID0gdGhpcy5yZWFkVWludDMyKCk7XG4gICAgICAgIHRoaXMuX251bWJlck9mUGxheXMgPSB0aGlzLnJlYWRVaW50MzIoKTtcbiAgICAgICAgdGhpcy5faXNBbmltYXRlZCA9IHRydWU7XG4gICAgfVxuICAgIGRlY29kZUZDVEwoKSB7XG4gICAgICAgIGNvbnN0IGltYWdlID0ge1xuICAgICAgICAgICAgc2VxdWVuY2VOdW1iZXI6IHRoaXMucmVhZFVpbnQzMigpLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMucmVhZFVpbnQzMigpLFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLnJlYWRVaW50MzIoKSxcbiAgICAgICAgICAgIHhPZmZzZXQ6IHRoaXMucmVhZFVpbnQzMigpLFxuICAgICAgICAgICAgeU9mZnNldDogdGhpcy5yZWFkVWludDMyKCksXG4gICAgICAgICAgICBkZWxheU51bWJlcjogdGhpcy5yZWFkVWludDE2KCksXG4gICAgICAgICAgICBkZWxheURlbm9taW5hdG9yOiB0aGlzLnJlYWRVaW50MTYoKSxcbiAgICAgICAgICAgIGRpc3Bvc2VPcDogdGhpcy5yZWFkVWludDgoKSxcbiAgICAgICAgICAgIGJsZW5kT3A6IHRoaXMucmVhZFVpbnQ4KCksXG4gICAgICAgICAgICBkYXRhOiBuZXcgVWludDhBcnJheSgwKSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fZnJhbWVzLnB1c2goaW1hZ2UpO1xuICAgIH1cbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvUE5HLyMxMVBMVEVcbiAgICBkZWNvZGVQTFRFKGxlbmd0aCkge1xuICAgICAgICBpZiAobGVuZ3RoICUgMyAhPT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFBMVEUgZmllbGQgbGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzLiBHb3QgJHtsZW5ndGh9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbCA9IGxlbmd0aCAvIDM7XG4gICAgICAgIHRoaXMuX2hhc1BhbGV0dGUgPSB0cnVlO1xuICAgICAgICBjb25zdCBwYWxldHRlID0gW107XG4gICAgICAgIHRoaXMuX3BhbGV0dGUgPSBwYWxldHRlO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgcGFsZXR0ZS5wdXNoKFt0aGlzLnJlYWRVaW50OCgpLCB0aGlzLnJlYWRVaW50OCgpLCB0aGlzLnJlYWRVaW50OCgpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL1BORy8jMTFJREFUXG4gICAgZGVjb2RlSURBVChsZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fd3JpdGluZ0RhdGFDaHVua3MgPSB0cnVlO1xuICAgICAgICBjb25zdCBkYXRhTGVuZ3RoID0gbGVuZ3RoO1xuICAgICAgICBjb25zdCBkYXRhT2Zmc2V0ID0gdGhpcy5vZmZzZXQgKyB0aGlzLmJ5dGVPZmZzZXQ7XG4gICAgICAgIHRoaXMuX2luZmxhdG9yLnB1c2gobmV3IFVpbnQ4QXJyYXkodGhpcy5idWZmZXIsIGRhdGFPZmZzZXQsIGRhdGFMZW5ndGgpKTtcbiAgICAgICAgaWYgKHRoaXMuX2luZmxhdG9yLmVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciB3aGlsZSBkZWNvbXByZXNzaW5nIHRoZSBkYXRhOiAke3RoaXMuX2luZmxhdG9yLmVycn1gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNraXAobGVuZ3RoKTtcbiAgICB9XG4gICAgZGVjb2RlRkRBVChsZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fd3JpdGluZ0RhdGFDaHVua3MgPSB0cnVlO1xuICAgICAgICBsZXQgZGF0YUxlbmd0aCA9IGxlbmd0aDtcbiAgICAgICAgbGV0IGRhdGFPZmZzZXQgPSB0aGlzLm9mZnNldCArIHRoaXMuYnl0ZU9mZnNldDtcbiAgICAgICAgZGF0YU9mZnNldCArPSA0O1xuICAgICAgICBkYXRhTGVuZ3RoIC09IDQ7XG4gICAgICAgIHRoaXMuX2luZmxhdG9yLnB1c2gobmV3IFVpbnQ4QXJyYXkodGhpcy5idWZmZXIsIGRhdGFPZmZzZXQsIGRhdGFMZW5ndGgpKTtcbiAgICAgICAgaWYgKHRoaXMuX2luZmxhdG9yLmVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciB3aGlsZSBkZWNvbXByZXNzaW5nIHRoZSBkYXRhOiAke3RoaXMuX2luZmxhdG9yLmVycn1gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNraXAobGVuZ3RoKTtcbiAgICB9XG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL1BORy8jMTF0Uk5TXG4gICAgZGVjb2RldFJOUyhsZW5ndGgpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9jb2xvclR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQ29sb3JUeXBlLkdSRVlTQ0FMRTpcbiAgICAgICAgICAgIGNhc2UgQ29sb3JUeXBlLlRSVUVDT0xPVVI6IHtcbiAgICAgICAgICAgICAgICBpZiAobGVuZ3RoICUgMiAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgdFJOUyBjaHVuayBsZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDIuIEdvdCAke2xlbmd0aH1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGxlbmd0aCAvIDIgPiB0aGlzLl9wbmcud2lkdGggKiB0aGlzLl9wbmcuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdFJOUyBjaHVuayBjb250YWlucyBtb3JlIGFscGhhIHZhbHVlcyB0aGFuIHRoZXJlIGFyZSBwaXhlbHMgKCR7bGVuZ3RoIC8gMn0gdnMgJHt0aGlzLl9wbmcud2lkdGggKiB0aGlzLl9wbmcuaGVpZ2h0fSlgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5faGFzVHJhbnNwYXJlbmN5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc3BhcmVuY3kgPSBuZXcgVWludDE2QXJyYXkobGVuZ3RoIC8gMik7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGggLyAyOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNwYXJlbmN5W2ldID0gdGhpcy5yZWFkVWludDE2KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBDb2xvclR5cGUuSU5ERVhFRF9DT0xPVVI6IHtcbiAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID4gdGhpcy5fcGFsZXR0ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB0Uk5TIGNodW5rIGNvbnRhaW5zIG1vcmUgYWxwaGEgdmFsdWVzIHRoYW4gdGhlcmUgYXJlIHBhbGV0dGUgY29sb3JzICgke2xlbmd0aH0gdnMgJHt0aGlzLl9wYWxldHRlLmxlbmd0aH0pYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFscGhhID0gdGhpcy5yZWFkQnl0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYWxldHRlW2ldLnB1c2goYWxwaGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKDsgaSA8IHRoaXMuX3BhbGV0dGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFsZXR0ZVtpXS5wdXNoKDI1NSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gS2VwdCBmb3IgZXhoYXVzdGl2ZW5lc3MuXG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSB1bmljb3JuL25vLXVzZWxlc3Mtc3dpdGNoLWNhc2UgKi9cbiAgICAgICAgICAgIGNhc2UgQ29sb3JUeXBlLlVOS05PV046XG4gICAgICAgICAgICBjYXNlIENvbG9yVHlwZS5HUkVZU0NBTEVfQUxQSEE6XG4gICAgICAgICAgICBjYXNlIENvbG9yVHlwZS5UUlVFQ09MT1VSX0FMUEhBOlxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdFJOUyBjaHVuayBpcyBub3Qgc3VwcG9ydGVkIGZvciBjb2xvciB0eXBlICR7dGhpcy5fY29sb3JUeXBlfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogZXNsaW50LWVuYWJsZSB1bmljb3JuL25vLXVzZWxlc3Mtc3dpdGNoLWNhc2UgKi9cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvUE5HLyMxMWlDQ1BcbiAgICBkZWNvZGVpQ0NQKGxlbmd0aCkge1xuICAgICAgICBjb25zdCBuYW1lID0gcmVhZEtleXdvcmQodGhpcyk7XG4gICAgICAgIGNvbnN0IGNvbXByZXNzaW9uTWV0aG9kID0gdGhpcy5yZWFkVWludDgoKTtcbiAgICAgICAgaWYgKGNvbXByZXNzaW9uTWV0aG9kICE9PSBDb21wcmVzc2lvbk1ldGhvZC5ERUZMQVRFKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGlDQ1AgY29tcHJlc3Npb24gbWV0aG9kOiAke2NvbXByZXNzaW9uTWV0aG9kfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXByZXNzZWRQcm9maWxlID0gdGhpcy5yZWFkQnl0ZXMobGVuZ3RoIC0gbmFtZS5sZW5ndGggLSAyKTtcbiAgICAgICAgdGhpcy5fcG5nLmljY0VtYmVkZGVkUHJvZmlsZSA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBwcm9maWxlOiBpbmZsYXRlKGNvbXByZXNzZWRQcm9maWxlKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL1BORy8jMTFwSFlzXG4gICAgZGVjb2RlcEhZcygpIHtcbiAgICAgICAgY29uc3QgcHB1WCA9IHRoaXMucmVhZFVpbnQzMigpO1xuICAgICAgICBjb25zdCBwcHVZID0gdGhpcy5yZWFkVWludDMyKCk7XG4gICAgICAgIGNvbnN0IHVuaXRTcGVjaWZpZXIgPSB0aGlzLnJlYWRCeXRlKCk7XG4gICAgICAgIHRoaXMuX3BuZy5yZXNvbHV0aW9uID0geyB4OiBwcHVYLCB5OiBwcHVZLCB1bml0OiB1bml0U3BlY2lmaWVyIH07XG4gICAgfVxuICAgIGRlY29kZUFwbmdJbWFnZSgpIHtcbiAgICAgICAgdGhpcy5fYXBuZy53aWR0aCA9IHRoaXMuX3BuZy53aWR0aDtcbiAgICAgICAgdGhpcy5fYXBuZy5oZWlnaHQgPSB0aGlzLl9wbmcuaGVpZ2h0O1xuICAgICAgICB0aGlzLl9hcG5nLmNoYW5uZWxzID0gdGhpcy5fcG5nLmNoYW5uZWxzO1xuICAgICAgICB0aGlzLl9hcG5nLmRlcHRoID0gdGhpcy5fcG5nLmRlcHRoO1xuICAgICAgICB0aGlzLl9hcG5nLm51bWJlck9mRnJhbWVzID0gdGhpcy5fbnVtYmVyT2ZGcmFtZXM7XG4gICAgICAgIHRoaXMuX2FwbmcubnVtYmVyT2ZQbGF5cyA9IHRoaXMuX251bWJlck9mUGxheXM7XG4gICAgICAgIHRoaXMuX2FwbmcudGV4dCA9IHRoaXMuX3BuZy50ZXh0O1xuICAgICAgICB0aGlzLl9hcG5nLnJlc29sdXRpb24gPSB0aGlzLl9wbmcucmVzb2x1dGlvbjtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9udW1iZXJPZkZyYW1lczsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdGcmFtZSA9IHtcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZU51bWJlcjogdGhpcy5fZnJhbWVzW2ldLnNlcXVlbmNlTnVtYmVyLFxuICAgICAgICAgICAgICAgIGRlbGF5TnVtYmVyOiB0aGlzLl9mcmFtZXNbaV0uZGVsYXlOdW1iZXIsXG4gICAgICAgICAgICAgICAgZGVsYXlEZW5vbWluYXRvcjogdGhpcy5fZnJhbWVzW2ldLmRlbGF5RGVub21pbmF0b3IsXG4gICAgICAgICAgICAgICAgZGF0YTogdGhpcy5fYXBuZy5kZXB0aCA9PT0gOFxuICAgICAgICAgICAgICAgICAgICA/IG5ldyBVaW50OEFycmF5KHRoaXMuX2Fwbmcud2lkdGggKiB0aGlzLl9hcG5nLmhlaWdodCAqIHRoaXMuX2FwbmcuY2hhbm5lbHMpXG4gICAgICAgICAgICAgICAgICAgIDogbmV3IFVpbnQxNkFycmF5KHRoaXMuX2Fwbmcud2lkdGggKiB0aGlzLl9hcG5nLmhlaWdodCAqIHRoaXMuX2FwbmcuY2hhbm5lbHMpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGZyYW1lID0gdGhpcy5fZnJhbWVzLmF0KGkpO1xuICAgICAgICAgICAgaWYgKGZyYW1lKSB7XG4gICAgICAgICAgICAgICAgZnJhbWUuZGF0YSA9IGRlY29kZUludGVybGFjZU51bGwoe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBmcmFtZS5kYXRhLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogZnJhbWUud2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogZnJhbWUuaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBjaGFubmVsczogdGhpcy5fYXBuZy5jaGFubmVscyxcbiAgICAgICAgICAgICAgICAgICAgZGVwdGg6IHRoaXMuX2FwbmcuZGVwdGgsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2hhc1BhbGV0dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBuZy5wYWxldHRlID0gdGhpcy5fcGFsZXR0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2hhc1RyYW5zcGFyZW5jeSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcG5nLnRyYW5zcGFyZW5jeSA9IHRoaXMuX3RyYW5zcGFyZW5jeTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGkgPT09IDAgfHxcbiAgICAgICAgICAgICAgICAgICAgKGZyYW1lLnhPZmZzZXQgPT09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLnlPZmZzZXQgPT09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLndpZHRoID09PSB0aGlzLl9wbmcud2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLmhlaWdodCA9PT0gdGhpcy5fcG5nLmhlaWdodCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3RnJhbWUuZGF0YSA9IGZyYW1lLmRhdGE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2RnJhbWUgPSB0aGlzLl9hcG5nLmZyYW1lcy5hdChpIC0gMSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcG9zZUZyYW1lKGZyYW1lLCBwcmV2RnJhbWUsIG5ld0ZyYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRGcmFtZURhdGFUb0NhbnZhcyhuZXdGcmFtZSwgZnJhbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9hcG5nLmZyYW1lcy5wdXNoKG5ld0ZyYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fYXBuZztcbiAgICB9XG4gICAgZGlzcG9zZUZyYW1lKGZyYW1lLCBwcmV2RnJhbWUsIGltYWdlRnJhbWUpIHtcbiAgICAgICAgc3dpdGNoIChmcmFtZS5kaXNwb3NlT3ApIHtcbiAgICAgICAgICAgIGNhc2UgRGlzcG9zZU9wVHlwZS5OT05FOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBEaXNwb3NlT3BUeXBlLkJBQ0tHUk9VTkQ6XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDwgdGhpcy5fcG5nLmhlaWdodDsgcm93KyspIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgY29sID0gMDsgY29sIDwgdGhpcy5fcG5nLndpZHRoOyBjb2wrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSAocm93ICogZnJhbWUud2lkdGggKyBjb2wpICogdGhpcy5fcG5nLmNoYW5uZWxzO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgY2hhbm5lbCA9IDA7IGNoYW5uZWwgPCB0aGlzLl9wbmcuY2hhbm5lbHM7IGNoYW5uZWwrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlRnJhbWUuZGF0YVtpbmRleCArIGNoYW5uZWxdID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGlzcG9zZU9wVHlwZS5QUkVWSU9VUzpcbiAgICAgICAgICAgICAgICBpbWFnZUZyYW1lLmRhdGEuc2V0KHByZXZGcmFtZS5kYXRhKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGRpc3Bvc2VPcCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFkZEZyYW1lRGF0YVRvQ2FudmFzKGltYWdlRnJhbWUsIGZyYW1lKSB7XG4gICAgICAgIGNvbnN0IG1heFZhbHVlID0gMSA8PCB0aGlzLl9wbmcuZGVwdGg7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZVBpeGVsSW5kaWNlcyA9IChyb3csIGNvbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSAoKHJvdyArIGZyYW1lLnlPZmZzZXQpICogdGhpcy5fcG5nLndpZHRoICsgZnJhbWUueE9mZnNldCArIGNvbCkgKlxuICAgICAgICAgICAgICAgIHRoaXMuX3BuZy5jaGFubmVscztcbiAgICAgICAgICAgIGNvbnN0IGZyYW1lSW5kZXggPSAocm93ICogZnJhbWUud2lkdGggKyBjb2wpICogdGhpcy5fcG5nLmNoYW5uZWxzO1xuICAgICAgICAgICAgcmV0dXJuIHsgaW5kZXgsIGZyYW1lSW5kZXggfTtcbiAgICAgICAgfTtcbiAgICAgICAgc3dpdGNoIChmcmFtZS5ibGVuZE9wKSB7XG4gICAgICAgICAgICBjYXNlIEJsZW5kT3BUeXBlLlNPVVJDRTpcbiAgICAgICAgICAgICAgICBmb3IgKGxldCByb3cgPSAwOyByb3cgPCBmcmFtZS5oZWlnaHQ7IHJvdysrKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGNvbCA9IDA7IGNvbCA8IGZyYW1lLndpZHRoOyBjb2wrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBpbmRleCwgZnJhbWVJbmRleCB9ID0gY2FsY3VsYXRlUGl4ZWxJbmRpY2VzKHJvdywgY29sKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGNoYW5uZWwgPSAwOyBjaGFubmVsIDwgdGhpcy5fcG5nLmNoYW5uZWxzOyBjaGFubmVsKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZUZyYW1lLmRhdGFbaW5kZXggKyBjaGFubmVsXSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLmRhdGFbZnJhbWVJbmRleCArIGNoYW5uZWxdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3BuZy0zLyMxM0FscGhhLWNoYW5uZWwtcHJvY2Vzc2luZ1xuICAgICAgICAgICAgY2FzZSBCbGVuZE9wVHlwZS5PVkVSOlxuICAgICAgICAgICAgICAgIGZvciAobGV0IHJvdyA9IDA7IHJvdyA8IGZyYW1lLmhlaWdodDsgcm93KyspIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgY29sID0gMDsgY29sIDwgZnJhbWUud2lkdGg7IGNvbCsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGluZGV4LCBmcmFtZUluZGV4IH0gPSBjYWxjdWxhdGVQaXhlbEluZGljZXMocm93LCBjb2wpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgY2hhbm5lbCA9IDA7IGNoYW5uZWwgPCB0aGlzLl9wbmcuY2hhbm5lbHM7IGNoYW5uZWwrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUFscGhhID0gZnJhbWUuZGF0YVtmcmFtZUluZGV4ICsgdGhpcy5fcG5nLmNoYW5uZWxzIC0gMV0gLyBtYXhWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JlZ3JvdW5kVmFsdWUgPSBjaGFubmVsICUgKHRoaXMuX3BuZy5jaGFubmVscyAtIDEpID09PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZyYW1lLmRhdGFbZnJhbWVJbmRleCArIGNoYW5uZWxdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5mbG9vcihzb3VyY2VBbHBoYSAqIGZvcmVncm91bmRWYWx1ZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gc291cmNlQWxwaGEpICogaW1hZ2VGcmFtZS5kYXRhW2luZGV4ICsgY2hhbm5lbF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlRnJhbWUuZGF0YVtpbmRleCArIGNoYW5uZWxdICs9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gYmxlbmRPcCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRlY29kZUltYWdlKCkge1xuICAgICAgICBpZiAodGhpcy5faW5mbGF0b3IuZXJyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIHdoaWxlIGRlY29tcHJlc3NpbmcgdGhlIGRhdGE6ICR7dGhpcy5faW5mbGF0b3IuZXJyfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9pc0FuaW1hdGVkXG4gICAgICAgICAgICA/ICh0aGlzLl9mcmFtZXM/LmF0KDApKS5kYXRhXG4gICAgICAgICAgICA6IHRoaXMuX2luZmxhdG9yLnJlc3VsdDtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbHRlck1ldGhvZCAhPT0gRmlsdGVyTWV0aG9kLkFEQVBUSVZFKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZpbHRlciBtZXRob2QgJHt0aGlzLl9maWx0ZXJNZXRob2R9IG5vdCBzdXBwb3J0ZWRgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5faW50ZXJsYWNlTWV0aG9kID09PSBJbnRlcmxhY2VNZXRob2QuTk9fSU5URVJMQUNFKSB7XG4gICAgICAgICAgICB0aGlzLl9wbmcuZGF0YSA9IGRlY29kZUludGVybGFjZU51bGwoe1xuICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMuX3BuZy53aWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHRoaXMuX3BuZy5oZWlnaHQsXG4gICAgICAgICAgICAgICAgY2hhbm5lbHM6IHRoaXMuX3BuZy5jaGFubmVscyxcbiAgICAgICAgICAgICAgICBkZXB0aDogdGhpcy5fcG5nLmRlcHRoLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5faW50ZXJsYWNlTWV0aG9kID09PSBJbnRlcmxhY2VNZXRob2QuQURBTTcpIHtcbiAgICAgICAgICAgIHRoaXMuX3BuZy5kYXRhID0gZGVjb2RlSW50ZXJsYWNlQWRhbTcoe1xuICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMuX3BuZy53aWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHRoaXMuX3BuZy5oZWlnaHQsXG4gICAgICAgICAgICAgICAgY2hhbm5lbHM6IHRoaXMuX3BuZy5jaGFubmVscyxcbiAgICAgICAgICAgICAgICBkZXB0aDogdGhpcy5fcG5nLmRlcHRoLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludGVybGFjZSBtZXRob2QgJHt0aGlzLl9pbnRlcmxhY2VNZXRob2R9IG5vdCBzdXBwb3J0ZWRgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5faGFzUGFsZXR0ZSkge1xuICAgICAgICAgICAgdGhpcy5fcG5nLnBhbGV0dGUgPSB0aGlzLl9wYWxldHRlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9oYXNUcmFuc3BhcmVuY3kpIHtcbiAgICAgICAgICAgIHRoaXMuX3BuZy50cmFuc3BhcmVuY3kgPSB0aGlzLl90cmFuc3BhcmVuY3k7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHVzaERhdGFUb0ZyYW1lKCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9pbmZsYXRvci5yZXN1bHQ7XG4gICAgICAgIGNvbnN0IGxhc3RGcmFtZSA9IHRoaXMuX2ZyYW1lcy5hdCgtMSk7XG4gICAgICAgIGlmIChsYXN0RnJhbWUpIHtcbiAgICAgICAgICAgIGxhc3RGcmFtZS5kYXRhID0gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZnJhbWVzLnB1c2goe1xuICAgICAgICAgICAgICAgIHNlcXVlbmNlTnVtYmVyOiAwLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLl9wbmcud2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLl9wbmcuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIHhPZmZzZXQ6IDAsXG4gICAgICAgICAgICAgICAgeU9mZnNldDogMCxcbiAgICAgICAgICAgICAgICBkZWxheU51bWJlcjogMCxcbiAgICAgICAgICAgICAgICBkZWxheURlbm9taW5hdG9yOiAwLFxuICAgICAgICAgICAgICAgIGRpc3Bvc2VPcDogRGlzcG9zZU9wVHlwZS5OT05FLFxuICAgICAgICAgICAgICAgIGJsZW5kT3A6IEJsZW5kT3BUeXBlLlNPVVJDRSxcbiAgICAgICAgICAgICAgICBkYXRhOiByZXN1bHQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pbmZsYXRvciA9IG5ldyBJbmZsYXRvcigpO1xuICAgICAgICB0aGlzLl93cml0aW5nRGF0YUNodW5rcyA9IGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNoZWNrQml0RGVwdGgodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgIT09IDEgJiZcbiAgICAgICAgdmFsdWUgIT09IDIgJiZcbiAgICAgICAgdmFsdWUgIT09IDQgJiZcbiAgICAgICAgdmFsdWUgIT09IDggJiZcbiAgICAgICAgdmFsdWUgIT09IDE2KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBiaXQgZGVwdGg6ICR7dmFsdWV9YCk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBuZ0RlY29kZXIuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/fast-png/lib-esm/PngDecoder.js\n"); /***/ }), /***/ "(ssr)/./node_modules/fast-png/lib-esm/PngEncoder.js": /*!*****************************************************!*\ !*** ./node_modules/fast-png/lib-esm/PngEncoder.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PngEncoder)\n/* harmony export */ });\n/* harmony import */ var iobuffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! iobuffer */ \"(ssr)/./node_modules/iobuffer/lib-esm/IOBuffer.js\");\n/* harmony import */ var pako__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! pako */ \"(ssr)/./node_modules/pako/dist/pako.esm.mjs\");\n/* harmony import */ var _helpers_crc__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers/crc */ \"(ssr)/./node_modules/fast-png/lib-esm/helpers/crc.js\");\n/* harmony import */ var _helpers_signature__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers/signature */ \"(ssr)/./node_modules/fast-png/lib-esm/helpers/signature.js\");\n/* harmony import */ var _helpers_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers/text */ \"(ssr)/./node_modules/fast-png/lib-esm/helpers/text.js\");\n/* harmony import */ var _internalTypes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internalTypes */ \"(ssr)/./node_modules/fast-png/lib-esm/internalTypes.js\");\n\n\n\n\n\n\nconst defaultZlibOptions = {\n level: 3,\n};\nclass PngEncoder extends iobuffer__WEBPACK_IMPORTED_MODULE_0__.IOBuffer {\n _png;\n _zlibOptions;\n _colorType;\n _interlaceMethod;\n constructor(data, options = {}) {\n super();\n this._colorType = _internalTypes__WEBPACK_IMPORTED_MODULE_5__.ColorType.UNKNOWN;\n this._zlibOptions = { ...defaultZlibOptions, ...options.zlib };\n this._png = this._checkData(data);\n this._interlaceMethod =\n (options.interlace === 'Adam7'\n ? _internalTypes__WEBPACK_IMPORTED_MODULE_5__.InterlaceMethod.ADAM7\n : _internalTypes__WEBPACK_IMPORTED_MODULE_5__.InterlaceMethod.NO_INTERLACE) ?? _internalTypes__WEBPACK_IMPORTED_MODULE_5__.InterlaceMethod.NO_INTERLACE;\n this.setBigEndian();\n }\n encode() {\n (0,_helpers_signature__WEBPACK_IMPORTED_MODULE_3__.writeSignature)(this);\n this.encodeIHDR();\n if (this._png.palette) {\n this.encodePLTE();\n if (this._png.palette[0].length === 4) {\n this.encodeTRNS();\n }\n }\n this.encodeData();\n if (this._png.text) {\n for (const [keyword, text] of Object.entries(this._png.text)) {\n (0,_helpers_text__WEBPACK_IMPORTED_MODULE_4__.encodetEXt)(this, keyword, text);\n }\n }\n this.encodeIEND();\n return this.toArray();\n }\n // https://www.w3.org/TR/PNG/#11IHDR\n encodeIHDR() {\n this.writeUint32(13);\n this.writeChars('IHDR');\n this.writeUint32(this._png.width);\n this.writeUint32(this._png.height);\n this.writeByte(this._png.depth);\n this.writeByte(this._colorType);\n this.writeByte(_internalTypes__WEBPACK_IMPORTED_MODULE_5__.CompressionMethod.DEFLATE);\n this.writeByte(_internalTypes__WEBPACK_IMPORTED_MODULE_5__.FilterMethod.ADAPTIVE);\n this.writeByte(this._interlaceMethod);\n (0,_helpers_crc__WEBPACK_IMPORTED_MODULE_2__.writeCrc)(this, 17);\n }\n // https://www.w3.org/TR/PNG/#11IEND\n encodeIEND() {\n this.writeUint32(0);\n this.writeChars('IEND');\n (0,_helpers_crc__WEBPACK_IMPORTED_MODULE_2__.writeCrc)(this, 4);\n }\n encodePLTE() {\n const paletteLength = this._png.palette?.length * 3;\n this.writeUint32(paletteLength);\n this.writeChars('PLTE');\n for (const color of this._png.palette) {\n this.writeByte(color[0]);\n this.writeByte(color[1]);\n this.writeByte(color[2]);\n }\n (0,_helpers_crc__WEBPACK_IMPORTED_MODULE_2__.writeCrc)(this, 4 + paletteLength);\n }\n encodeTRNS() {\n const alpha = this._png.palette.filter((color) => {\n return color.at(-1) !== 255;\n });\n this.writeUint32(alpha.length);\n this.writeChars('tRNS');\n for (const el of alpha) {\n this.writeByte(el.at(-1));\n }\n (0,_helpers_crc__WEBPACK_IMPORTED_MODULE_2__.writeCrc)(this, 4 + alpha.length);\n }\n // https://www.w3.org/TR/PNG/#11IDAT\n encodeIDAT(data) {\n this.writeUint32(data.length);\n this.writeChars('IDAT');\n this.writeBytes(data);\n (0,_helpers_crc__WEBPACK_IMPORTED_MODULE_2__.writeCrc)(this, data.length + 4);\n }\n encodeData() {\n const { width, height, channels, depth, data } = this._png;\n const slotsPerLine = depth <= 8\n ? Math.ceil((width * depth) / 8) * channels\n : Math.ceil((((width * depth) / 8) * channels) / 2);\n const newData = new iobuffer__WEBPACK_IMPORTED_MODULE_0__.IOBuffer().setBigEndian();\n let offset = 0;\n if (this._interlaceMethod === _internalTypes__WEBPACK_IMPORTED_MODULE_5__.InterlaceMethod.NO_INTERLACE) {\n for (let i = 0; i < height; i++) {\n newData.writeByte(0); // no filter\n if (depth === 16) {\n offset = writeDataUint16(data, newData, slotsPerLine, offset);\n }\n else {\n offset = writeDataBytes(data, newData, slotsPerLine, offset);\n }\n }\n }\n else if (this._interlaceMethod === _internalTypes__WEBPACK_IMPORTED_MODULE_5__.InterlaceMethod.ADAM7) {\n // Adam7 interlacing\n offset = writeDataInterlaced(this._png, data, newData, offset);\n }\n const buffer = newData.toArray();\n const compressed = (0,pako__WEBPACK_IMPORTED_MODULE_1__.deflate)(buffer, this._zlibOptions);\n this.encodeIDAT(compressed);\n }\n _checkData(data) {\n const { colorType, channels, depth } = getColorType(data, data.palette);\n const png = {\n width: checkInteger(data.width, 'width'),\n height: checkInteger(data.height, 'height'),\n channels,\n data: data.data,\n depth,\n text: data.text,\n palette: data.palette,\n };\n this._colorType = colorType;\n const expectedSize = depth < 8\n ? Math.ceil((png.width * depth) / 8) * png.height * channels\n : png.width * png.height * channels;\n if (png.data.length !== expectedSize) {\n throw new RangeError(`wrong data size. Found ${png.data.length}, expected ${expectedSize}`);\n }\n return png;\n }\n}\nfunction checkInteger(value, name) {\n if (Number.isInteger(value) && value > 0) {\n return value;\n }\n throw new TypeError(`${name} must be a positive integer`);\n}\nfunction getColorType(data, palette) {\n const { channels = 4, depth = 8 } = data;\n if (channels !== 4 && channels !== 3 && channels !== 2 && channels !== 1) {\n throw new RangeError(`unsupported number of channels: ${channels}`);\n }\n const returnValue = {\n channels,\n depth,\n colorType: _internalTypes__WEBPACK_IMPORTED_MODULE_5__.ColorType.UNKNOWN,\n };\n switch (channels) {\n case 4:\n returnValue.colorType = _internalTypes__WEBPACK_IMPORTED_MODULE_5__.ColorType.TRUECOLOUR_ALPHA;\n break;\n case 3:\n returnValue.colorType = _internalTypes__WEBPACK_IMPORTED_MODULE_5__.ColorType.TRUECOLOUR;\n break;\n case 1:\n if (palette) {\n returnValue.colorType = _internalTypes__WEBPACK_IMPORTED_MODULE_5__.ColorType.INDEXED_COLOUR;\n }\n else {\n returnValue.colorType = _internalTypes__WEBPACK_IMPORTED_MODULE_5__.ColorType.GREYSCALE;\n }\n break;\n case 2:\n returnValue.colorType = _internalTypes__WEBPACK_IMPORTED_MODULE_5__.ColorType.GREYSCALE_ALPHA;\n break;\n default:\n throw new Error('unsupported number of channels');\n }\n return returnValue;\n}\nfunction writeDataBytes(data, newData, slotsPerLine, offset) {\n for (let j = 0; j < slotsPerLine; j++) {\n newData.writeByte(data[offset++]);\n }\n return offset;\n}\nfunction writeDataInterlaced(imageData, data, newData, offset) {\n const passes = [\n { x: 0, y: 0, xStep: 8, yStep: 8 },\n { x: 4, y: 0, xStep: 8, yStep: 8 },\n { x: 0, y: 4, xStep: 4, yStep: 8 },\n { x: 2, y: 0, xStep: 4, yStep: 4 },\n { x: 0, y: 2, xStep: 2, yStep: 4 },\n { x: 1, y: 0, xStep: 2, yStep: 2 },\n { x: 0, y: 1, xStep: 1, yStep: 2 },\n ];\n const { width, height, channels, depth } = imageData;\n let pixelSize = 0;\n if (depth === 16) {\n pixelSize = (channels * depth) / 8 / 2;\n }\n else {\n pixelSize = (channels * depth) / 8;\n }\n // Process each pass\n for (let passIndex = 0; passIndex < 7; passIndex++) {\n const pass = passes[passIndex];\n const passWidth = Math.floor((width - pass.x + pass.xStep - 1) / pass.xStep);\n const passHeight = Math.floor((height - pass.y + pass.yStep - 1) / pass.yStep);\n if (passWidth <= 0 || passHeight <= 0)\n continue;\n const passLineBytes = passWidth * pixelSize;\n // For each scanline in this pass\n for (let y = 0; y < passHeight; y++) {\n const imageY = pass.y + y * pass.yStep;\n // Extract raw scanline data\n const rawScanline = depth <= 8\n ? new Uint8Array(passLineBytes)\n : new Uint16Array(passLineBytes);\n let rawOffset = 0;\n for (let x = 0; x < passWidth; x++) {\n const imageX = pass.x + x * pass.xStep;\n if (imageX < width && imageY < height) {\n const srcPos = (imageY * width + imageX) * pixelSize;\n for (let i = 0; i < pixelSize; i++) {\n rawScanline[rawOffset++] = data[srcPos + i];\n }\n }\n }\n newData.writeByte(0); // no filter\n if (depth === 8) {\n newData.writeBytes(rawScanline);\n }\n else if (depth === 16) {\n for (const value of rawScanline) {\n newData.writeByte((value >> 8) & 0xff); // High byte\n newData.writeByte(value & 0xff);\n }\n }\n }\n }\n return offset;\n}\nfunction writeDataUint16(data, newData, slotsPerLine, offset) {\n for (let j = 0; j < slotsPerLine; j++) {\n newData.writeUint16(data[offset++]);\n }\n return offset;\n}\n//# sourceMappingURL=PngEncoder.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9QbmdFbmNvZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBb0M7QUFDTDtBQUNVO0FBQ1k7QUFDVDtBQUNtRDtBQUMvRjtBQUNBO0FBQ0E7QUFDZSx5QkFBeUIsOENBQVE7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQSwwQkFBMEIscURBQVM7QUFDbkMsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiwyREFBZTtBQUNqQyxrQkFBa0IsMkRBQWUsa0JBQWtCLDJEQUFlO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBLFFBQVEsa0VBQWM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IseURBQVU7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsNkRBQWlCO0FBQ3hDLHVCQUF1Qix3REFBWTtBQUNuQztBQUNBLFFBQVEsc0RBQVE7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsc0RBQVE7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHNEQUFRO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHNEQUFRO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsc0RBQVE7QUFDaEI7QUFDQTtBQUNBLGdCQUFnQix1Q0FBdUM7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLDhDQUFRO0FBQ3BDO0FBQ0Esc0NBQXNDLDJEQUFlO0FBQ3JELDRCQUE0QixZQUFZO0FBQ3hDLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLDJEQUFlO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLDZDQUFPO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw2QkFBNkI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxnQkFBZ0IsYUFBYSxhQUFhO0FBQ3JHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsTUFBTTtBQUNqQztBQUNBO0FBQ0EsWUFBWSwwQkFBMEI7QUFDdEM7QUFDQSxnRUFBZ0UsU0FBUztBQUN6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixxREFBUztBQUM1QjtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MscURBQVM7QUFDN0M7QUFDQTtBQUNBLG9DQUFvQyxxREFBUztBQUM3QztBQUNBO0FBQ0E7QUFDQSx3Q0FBd0MscURBQVM7QUFDakQ7QUFDQTtBQUNBLHdDQUF3QyxxREFBUztBQUNqRDtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MscURBQVM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isa0JBQWtCO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsZ0NBQWdDO0FBQzFDLFVBQVUsZ0NBQWdDO0FBQzFDLFVBQVUsZ0NBQWdDO0FBQzFDLFVBQVUsZ0NBQWdDO0FBQzFDLFVBQVUsZ0NBQWdDO0FBQzFDLFVBQVUsZ0NBQWdDO0FBQzFDLFVBQVUsZ0NBQWdDO0FBQzFDO0FBQ0EsWUFBWSxpQ0FBaUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixlQUFlO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdCQUFnQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsZUFBZTtBQUMzQztBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsZUFBZTtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNERBQTREO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isa0JBQWtCO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92ZXJpZnlwYWNrLWZyb250ZW5kLy4vbm9kZV9tb2R1bGVzL2Zhc3QtcG5nL2xpYi1lc20vUG5nRW5jb2Rlci5qcz80YzY4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElPQnVmZmVyIH0gZnJvbSAnaW9idWZmZXInO1xuaW1wb3J0IHsgZGVmbGF0ZSB9IGZyb20gJ3Bha28nO1xuaW1wb3J0IHsgd3JpdGVDcmMgfSBmcm9tICcuL2hlbHBlcnMvY3JjJztcbmltcG9ydCB7IHdyaXRlU2lnbmF0dXJlIH0gZnJvbSAnLi9oZWxwZXJzL3NpZ25hdHVyZSc7XG5pbXBvcnQgeyBlbmNvZGV0RVh0IH0gZnJvbSAnLi9oZWxwZXJzL3RleHQnO1xuaW1wb3J0IHsgSW50ZXJsYWNlTWV0aG9kLCBDb2xvclR5cGUsIENvbXByZXNzaW9uTWV0aG9kLCBGaWx0ZXJNZXRob2QsIH0gZnJvbSAnLi9pbnRlcm5hbFR5cGVzJztcbmNvbnN0IGRlZmF1bHRabGliT3B0aW9ucyA9IHtcbiAgICBsZXZlbDogMyxcbn07XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQbmdFbmNvZGVyIGV4dGVuZHMgSU9CdWZmZXIge1xuICAgIF9wbmc7XG4gICAgX3psaWJPcHRpb25zO1xuICAgIF9jb2xvclR5cGU7XG4gICAgX2ludGVybGFjZU1ldGhvZDtcbiAgICBjb25zdHJ1Y3RvcihkYXRhLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fY29sb3JUeXBlID0gQ29sb3JUeXBlLlVOS05PV047XG4gICAgICAgIHRoaXMuX3psaWJPcHRpb25zID0geyAuLi5kZWZhdWx0WmxpYk9wdGlvbnMsIC4uLm9wdGlvbnMuemxpYiB9O1xuICAgICAgICB0aGlzLl9wbmcgPSB0aGlzLl9jaGVja0RhdGEoZGF0YSk7XG4gICAgICAgIHRoaXMuX2ludGVybGFjZU1ldGhvZCA9XG4gICAgICAgICAgICAob3B0aW9ucy5pbnRlcmxhY2UgPT09ICdBZGFtNydcbiAgICAgICAgICAgICAgICA/IEludGVybGFjZU1ldGhvZC5BREFNN1xuICAgICAgICAgICAgICAgIDogSW50ZXJsYWNlTWV0aG9kLk5PX0lOVEVSTEFDRSkgPz8gSW50ZXJsYWNlTWV0aG9kLk5PX0lOVEVSTEFDRTtcbiAgICAgICAgdGhpcy5zZXRCaWdFbmRpYW4oKTtcbiAgICB9XG4gICAgZW5jb2RlKCkge1xuICAgICAgICB3cml0ZVNpZ25hdHVyZSh0aGlzKTtcbiAgICAgICAgdGhpcy5lbmNvZGVJSERSKCk7XG4gICAgICAgIGlmICh0aGlzLl9wbmcucGFsZXR0ZSkge1xuICAgICAgICAgICAgdGhpcy5lbmNvZGVQTFRFKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5fcG5nLnBhbGV0dGVbMF0ubGVuZ3RoID09PSA0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbmNvZGVUUk5TKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbmNvZGVEYXRhKCk7XG4gICAgICAgIGlmICh0aGlzLl9wbmcudGV4dCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5d29yZCwgdGV4dF0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5fcG5nLnRleHQpKSB7XG4gICAgICAgICAgICAgICAgZW5jb2RldEVYdCh0aGlzLCBrZXl3b3JkLCB0ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVuY29kZUlFTkQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9BcnJheSgpO1xuICAgIH1cbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvUE5HLyMxMUlIRFJcbiAgICBlbmNvZGVJSERSKCkge1xuICAgICAgICB0aGlzLndyaXRlVWludDMyKDEzKTtcbiAgICAgICAgdGhpcy53cml0ZUNoYXJzKCdJSERSJyk7XG4gICAgICAgIHRoaXMud3JpdGVVaW50MzIodGhpcy5fcG5nLndpZHRoKTtcbiAgICAgICAgdGhpcy53cml0ZVVpbnQzMih0aGlzLl9wbmcuaGVpZ2h0KTtcbiAgICAgICAgdGhpcy53cml0ZUJ5dGUodGhpcy5fcG5nLmRlcHRoKTtcbiAgICAgICAgdGhpcy53cml0ZUJ5dGUodGhpcy5fY29sb3JUeXBlKTtcbiAgICAgICAgdGhpcy53cml0ZUJ5dGUoQ29tcHJlc3Npb25NZXRob2QuREVGTEFURSk7XG4gICAgICAgIHRoaXMud3JpdGVCeXRlKEZpbHRlck1ldGhvZC5BREFQVElWRSk7XG4gICAgICAgIHRoaXMud3JpdGVCeXRlKHRoaXMuX2ludGVybGFjZU1ldGhvZCk7XG4gICAgICAgIHdyaXRlQ3JjKHRoaXMsIDE3KTtcbiAgICB9XG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL1BORy8jMTFJRU5EXG4gICAgZW5jb2RlSUVORCgpIHtcbiAgICAgICAgdGhpcy53cml0ZVVpbnQzMigwKTtcbiAgICAgICAgdGhpcy53cml0ZUNoYXJzKCdJRU5EJyk7XG4gICAgICAgIHdyaXRlQ3JjKHRoaXMsIDQpO1xuICAgIH1cbiAgICBlbmNvZGVQTFRFKCkge1xuICAgICAgICBjb25zdCBwYWxldHRlTGVuZ3RoID0gdGhpcy5fcG5nLnBhbGV0dGU/Lmxlbmd0aCAqIDM7XG4gICAgICAgIHRoaXMud3JpdGVVaW50MzIocGFsZXR0ZUxlbmd0aCk7XG4gICAgICAgIHRoaXMud3JpdGVDaGFycygnUExURScpO1xuICAgICAgICBmb3IgKGNvbnN0IGNvbG9yIG9mIHRoaXMuX3BuZy5wYWxldHRlKSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlQnl0ZShjb2xvclswXSk7XG4gICAgICAgICAgICB0aGlzLndyaXRlQnl0ZShjb2xvclsxXSk7XG4gICAgICAgICAgICB0aGlzLndyaXRlQnl0ZShjb2xvclsyXSk7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGVDcmModGhpcywgNCArIHBhbGV0dGVMZW5ndGgpO1xuICAgIH1cbiAgICBlbmNvZGVUUk5TKCkge1xuICAgICAgICBjb25zdCBhbHBoYSA9IHRoaXMuX3BuZy5wYWxldHRlLmZpbHRlcigoY29sb3IpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBjb2xvci5hdCgtMSkgIT09IDI1NTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMud3JpdGVVaW50MzIoYWxwaGEubGVuZ3RoKTtcbiAgICAgICAgdGhpcy53cml0ZUNoYXJzKCd0Uk5TJyk7XG4gICAgICAgIGZvciAoY29uc3QgZWwgb2YgYWxwaGEpIHtcbiAgICAgICAgICAgIHRoaXMud3JpdGVCeXRlKGVsLmF0KC0xKSk7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGVDcmModGhpcywgNCArIGFscGhhLmxlbmd0aCk7XG4gICAgfVxuICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9QTkcvIzExSURBVFxuICAgIGVuY29kZUlEQVQoZGF0YSkge1xuICAgICAgICB0aGlzLndyaXRlVWludDMyKGRhdGEubGVuZ3RoKTtcbiAgICAgICAgdGhpcy53cml0ZUNoYXJzKCdJREFUJyk7XG4gICAgICAgIHRoaXMud3JpdGVCeXRlcyhkYXRhKTtcbiAgICAgICAgd3JpdGVDcmModGhpcywgZGF0YS5sZW5ndGggKyA0KTtcbiAgICB9XG4gICAgZW5jb2RlRGF0YSgpIHtcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0LCBjaGFubmVscywgZGVwdGgsIGRhdGEgfSA9IHRoaXMuX3BuZztcbiAgICAgICAgY29uc3Qgc2xvdHNQZXJMaW5lID0gZGVwdGggPD0gOFxuICAgICAgICAgICAgPyBNYXRoLmNlaWwoKHdpZHRoICogZGVwdGgpIC8gOCkgKiBjaGFubmVsc1xuICAgICAgICAgICAgOiBNYXRoLmNlaWwoKCgod2lkdGggKiBkZXB0aCkgLyA4KSAqIGNoYW5uZWxzKSAvIDIpO1xuICAgICAgICBjb25zdCBuZXdEYXRhID0gbmV3IElPQnVmZmVyKCkuc2V0QmlnRW5kaWFuKCk7XG4gICAgICAgIGxldCBvZmZzZXQgPSAwO1xuICAgICAgICBpZiAodGhpcy5faW50ZXJsYWNlTWV0aG9kID09PSBJbnRlcmxhY2VNZXRob2QuTk9fSU5URVJMQUNFKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhlaWdodDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbmV3RGF0YS53cml0ZUJ5dGUoMCk7IC8vIG5vIGZpbHRlclxuICAgICAgICAgICAgICAgIGlmIChkZXB0aCA9PT0gMTYpIHtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gd3JpdGVEYXRhVWludDE2KGRhdGEsIG5ld0RhdGEsIHNsb3RzUGVyTGluZSwgb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IHdyaXRlRGF0YUJ5dGVzKGRhdGEsIG5ld0RhdGEsIHNsb3RzUGVyTGluZSwgb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5faW50ZXJsYWNlTWV0aG9kID09PSBJbnRlcmxhY2VNZXRob2QuQURBTTcpIHtcbiAgICAgICAgICAgIC8vIEFkYW03IGludGVybGFjaW5nXG4gICAgICAgICAgICBvZmZzZXQgPSB3cml0ZURhdGFJbnRlcmxhY2VkKHRoaXMuX3BuZywgZGF0YSwgbmV3RGF0YSwgb2Zmc2V0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBidWZmZXIgPSBuZXdEYXRhLnRvQXJyYXkoKTtcbiAgICAgICAgY29uc3QgY29tcHJlc3NlZCA9IGRlZmxhdGUoYnVmZmVyLCB0aGlzLl96bGliT3B0aW9ucyk7XG4gICAgICAgIHRoaXMuZW5jb2RlSURBVChjb21wcmVzc2VkKTtcbiAgICB9XG4gICAgX2NoZWNrRGF0YShkYXRhKSB7XG4gICAgICAgIGNvbnN0IHsgY29sb3JUeXBlLCBjaGFubmVscywgZGVwdGggfSA9IGdldENvbG9yVHlwZShkYXRhLCBkYXRhLnBhbGV0dGUpO1xuICAgICAgICBjb25zdCBwbmcgPSB7XG4gICAgICAgICAgICB3aWR0aDogY2hlY2tJbnRlZ2VyKGRhdGEud2lkdGgsICd3aWR0aCcpLFxuICAgICAgICAgICAgaGVpZ2h0OiBjaGVja0ludGVnZXIoZGF0YS5oZWlnaHQsICdoZWlnaHQnKSxcbiAgICAgICAgICAgIGNoYW5uZWxzLFxuICAgICAgICAgICAgZGF0YTogZGF0YS5kYXRhLFxuICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICB0ZXh0OiBkYXRhLnRleHQsXG4gICAgICAgICAgICBwYWxldHRlOiBkYXRhLnBhbGV0dGUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2NvbG9yVHlwZSA9IGNvbG9yVHlwZTtcbiAgICAgICAgY29uc3QgZXhwZWN0ZWRTaXplID0gZGVwdGggPCA4XG4gICAgICAgICAgICA/IE1hdGguY2VpbCgocG5nLndpZHRoICogZGVwdGgpIC8gOCkgKiBwbmcuaGVpZ2h0ICogY2hhbm5lbHNcbiAgICAgICAgICAgIDogcG5nLndpZHRoICogcG5nLmhlaWdodCAqIGNoYW5uZWxzO1xuICAgICAgICBpZiAocG5nLmRhdGEubGVuZ3RoICE9PSBleHBlY3RlZFNpemUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGB3cm9uZyBkYXRhIHNpemUuIEZvdW5kICR7cG5nLmRhdGEubGVuZ3RofSwgZXhwZWN0ZWQgJHtleHBlY3RlZFNpemV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBuZztcbiAgICB9XG59XG5mdW5jdGlvbiBjaGVja0ludGVnZXIodmFsdWUsIG5hbWUpIHtcbiAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgJiYgdmFsdWUgPiAwKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgJHtuYW1lfSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlcmApO1xufVxuZnVuY3Rpb24gZ2V0Q29sb3JUeXBlKGRhdGEsIHBhbGV0dGUpIHtcbiAgICBjb25zdCB7IGNoYW5uZWxzID0gNCwgZGVwdGggPSA4IH0gPSBkYXRhO1xuICAgIGlmIChjaGFubmVscyAhPT0gNCAmJiBjaGFubmVscyAhPT0gMyAmJiBjaGFubmVscyAhPT0gMiAmJiBjaGFubmVscyAhPT0gMSkge1xuICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgdW5zdXBwb3J0ZWQgbnVtYmVyIG9mIGNoYW5uZWxzOiAke2NoYW5uZWxzfWApO1xuICAgIH1cbiAgICBjb25zdCByZXR1cm5WYWx1ZSA9IHtcbiAgICAgICAgY2hhbm5lbHMsXG4gICAgICAgIGRlcHRoLFxuICAgICAgICBjb2xvclR5cGU6IENvbG9yVHlwZS5VTktOT1dOLFxuICAgIH07XG4gICAgc3dpdGNoIChjaGFubmVscykge1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICByZXR1cm5WYWx1ZS5jb2xvclR5cGUgPSBDb2xvclR5cGUuVFJVRUNPTE9VUl9BTFBIQTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm5WYWx1ZS5jb2xvclR5cGUgPSBDb2xvclR5cGUuVFJVRUNPTE9VUjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBpZiAocGFsZXR0ZSkge1xuICAgICAgICAgICAgICAgIHJldHVyblZhbHVlLmNvbG9yVHlwZSA9IENvbG9yVHlwZS5JTkRFWEVEX0NPTE9VUjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVyblZhbHVlLmNvbG9yVHlwZSA9IENvbG9yVHlwZS5HUkVZU0NBTEU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuVmFsdWUuY29sb3JUeXBlID0gQ29sb3JUeXBlLkdSRVlTQ0FMRV9BTFBIQTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bnN1cHBvcnRlZCBudW1iZXIgb2YgY2hhbm5lbHMnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xufVxuZnVuY3Rpb24gd3JpdGVEYXRhQnl0ZXMoZGF0YSwgbmV3RGF0YSwgc2xvdHNQZXJMaW5lLCBvZmZzZXQpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNsb3RzUGVyTGluZTsgaisrKSB7XG4gICAgICAgIG5ld0RhdGEud3JpdGVCeXRlKGRhdGFbb2Zmc2V0KytdKTtcbiAgICB9XG4gICAgcmV0dXJuIG9mZnNldDtcbn1cbmZ1bmN0aW9uIHdyaXRlRGF0YUludGVybGFjZWQoaW1hZ2VEYXRhLCBkYXRhLCBuZXdEYXRhLCBvZmZzZXQpIHtcbiAgICBjb25zdCBwYXNzZXMgPSBbXG4gICAgICAgIHsgeDogMCwgeTogMCwgeFN0ZXA6IDgsIHlTdGVwOiA4IH0sXG4gICAgICAgIHsgeDogNCwgeTogMCwgeFN0ZXA6IDgsIHlTdGVwOiA4IH0sXG4gICAgICAgIHsgeDogMCwgeTogNCwgeFN0ZXA6IDQsIHlTdGVwOiA4IH0sXG4gICAgICAgIHsgeDogMiwgeTogMCwgeFN0ZXA6IDQsIHlTdGVwOiA0IH0sXG4gICAgICAgIHsgeDogMCwgeTogMiwgeFN0ZXA6IDIsIHlTdGVwOiA0IH0sXG4gICAgICAgIHsgeDogMSwgeTogMCwgeFN0ZXA6IDIsIHlTdGVwOiAyIH0sXG4gICAgICAgIHsgeDogMCwgeTogMSwgeFN0ZXA6IDEsIHlTdGVwOiAyIH0sXG4gICAgXTtcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQsIGNoYW5uZWxzLCBkZXB0aCB9ID0gaW1hZ2VEYXRhO1xuICAgIGxldCBwaXhlbFNpemUgPSAwO1xuICAgIGlmIChkZXB0aCA9PT0gMTYpIHtcbiAgICAgICAgcGl4ZWxTaXplID0gKGNoYW5uZWxzICogZGVwdGgpIC8gOCAvIDI7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBwaXhlbFNpemUgPSAoY2hhbm5lbHMgKiBkZXB0aCkgLyA4O1xuICAgIH1cbiAgICAvLyBQcm9jZXNzIGVhY2ggcGFzc1xuICAgIGZvciAobGV0IHBhc3NJbmRleCA9IDA7IHBhc3NJbmRleCA8IDc7IHBhc3NJbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IHBhc3MgPSBwYXNzZXNbcGFzc0luZGV4XTtcbiAgICAgICAgY29uc3QgcGFzc1dpZHRoID0gTWF0aC5mbG9vcigod2lkdGggLSBwYXNzLnggKyBwYXNzLnhTdGVwIC0gMSkgLyBwYXNzLnhTdGVwKTtcbiAgICAgICAgY29uc3QgcGFzc0hlaWdodCA9IE1hdGguZmxvb3IoKGhlaWdodCAtIHBhc3MueSArIHBhc3MueVN0ZXAgLSAxKSAvIHBhc3MueVN0ZXApO1xuICAgICAgICBpZiAocGFzc1dpZHRoIDw9IDAgfHwgcGFzc0hlaWdodCA8PSAwKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNvbnN0IHBhc3NMaW5lQnl0ZXMgPSBwYXNzV2lkdGggKiBwaXhlbFNpemU7XG4gICAgICAgIC8vIEZvciBlYWNoIHNjYW5saW5lIGluIHRoaXMgcGFzc1xuICAgICAgICBmb3IgKGxldCB5ID0gMDsgeSA8IHBhc3NIZWlnaHQ7IHkrKykge1xuICAgICAgICAgICAgY29uc3QgaW1hZ2VZID0gcGFzcy55ICsgeSAqIHBhc3MueVN0ZXA7XG4gICAgICAgICAgICAvLyBFeHRyYWN0IHJhdyBzY2FubGluZSBkYXRhXG4gICAgICAgICAgICBjb25zdCByYXdTY2FubGluZSA9IGRlcHRoIDw9IDhcbiAgICAgICAgICAgICAgICA/IG5ldyBVaW50OEFycmF5KHBhc3NMaW5lQnl0ZXMpXG4gICAgICAgICAgICAgICAgOiBuZXcgVWludDE2QXJyYXkocGFzc0xpbmVCeXRlcyk7XG4gICAgICAgICAgICBsZXQgcmF3T2Zmc2V0ID0gMDtcbiAgICAgICAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgcGFzc1dpZHRoOyB4KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbWFnZVggPSBwYXNzLnggKyB4ICogcGFzcy54U3RlcDtcbiAgICAgICAgICAgICAgICBpZiAoaW1hZ2VYIDwgd2lkdGggJiYgaW1hZ2VZIDwgaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNyY1BvcyA9IChpbWFnZVkgKiB3aWR0aCArIGltYWdlWCkgKiBwaXhlbFNpemU7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGl4ZWxTaXplOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJhd1NjYW5saW5lW3Jhd09mZnNldCsrXSA9IGRhdGFbc3JjUG9zICsgaV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXdEYXRhLndyaXRlQnl0ZSgwKTsgLy8gbm8gZmlsdGVyXG4gICAgICAgICAgICBpZiAoZGVwdGggPT09IDgpIHtcbiAgICAgICAgICAgICAgICBuZXdEYXRhLndyaXRlQnl0ZXMocmF3U2NhbmxpbmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZGVwdGggPT09IDE2KSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiByYXdTY2FubGluZSkge1xuICAgICAgICAgICAgICAgICAgICBuZXdEYXRhLndyaXRlQnl0ZSgodmFsdWUgPj4gOCkgJiAweGZmKTsgLy8gSGlnaCBieXRlXG4gICAgICAgICAgICAgICAgICAgIG5ld0RhdGEud3JpdGVCeXRlKHZhbHVlICYgMHhmZik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvZmZzZXQ7XG59XG5mdW5jdGlvbiB3cml0ZURhdGFVaW50MTYoZGF0YSwgbmV3RGF0YSwgc2xvdHNQZXJMaW5lLCBvZmZzZXQpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNsb3RzUGVyTGluZTsgaisrKSB7XG4gICAgICAgIG5ld0RhdGEud3JpdGVVaW50MTYoZGF0YVtvZmZzZXQrK10pO1xuICAgIH1cbiAgICByZXR1cm4gb2Zmc2V0O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UG5nRW5jb2Rlci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/fast-png/lib-esm/PngEncoder.js\n"); /***/ }), /***/ "(ssr)/./node_modules/fast-png/lib-esm/convertIndexedToRgb.js": /*!**************************************************************!*\ !*** ./node_modules/fast-png/lib-esm/convertIndexedToRgb.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ convertIndexedToRgb: () => (/* binding */ convertIndexedToRgb)\n/* harmony export */ });\n/**\n * Converts indexed data into RGB/RGBA format\n * @param decodedImage - Image to decode data from.\n * @returns Uint8Array with RGB data.\n */\nfunction convertIndexedToRgb(decodedImage) {\n const palette = decodedImage.palette;\n const depth = decodedImage.depth;\n if (!palette) {\n throw new Error('Color palette is undefined.');\n }\n checkDataSize(decodedImage);\n const indexSize = decodedImage.width * decodedImage.height;\n const resSize = indexSize * palette[0].length;\n const res = new Uint8Array(resSize);\n let indexPos = 0;\n let offset = 0;\n const indexes = new Uint8Array(indexSize);\n let bit = 0xff;\n switch (depth) {\n case 1:\n bit = 0x80;\n break;\n case 2:\n bit = 0xc0;\n break;\n case 4:\n bit = 0xf0;\n break;\n case 8:\n bit = 0xff;\n break;\n default:\n throw new Error('Incorrect depth value');\n }\n for (const byte of decodedImage.data) {\n let bit2 = bit;\n let shift = 8;\n while (bit2) {\n shift -= depth;\n indexes[indexPos++] = (byte & bit2) >> shift;\n bit2 = bit2 >> depth;\n if (indexPos % decodedImage.width === 0) {\n break;\n }\n }\n }\n if (decodedImage.palette) {\n for (const index of indexes) {\n const color = decodedImage.palette.at(index);\n if (!color) {\n throw new Error('Incorrect index of palette color');\n }\n res.set(color, offset);\n offset += color.length;\n }\n }\n return res;\n}\nfunction checkDataSize(image) {\n const expectedSize = image.depth < 8\n ? Math.ceil((image.width * image.depth) / 8) *\n image.height *\n image.channels\n : image.width * image.height * image.channels;\n if (image.data.length !== expectedSize) {\n throw new RangeError(`wrong data size. Found ${image.data.length}, expected ${expectedSize}`);\n }\n}\n//# sourceMappingURL=convertIndexedToRgb.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9jb252ZXJ0SW5kZXhlZFRvUmdiLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQsa0JBQWtCLGFBQWEsYUFBYTtBQUNuRztBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92ZXJpZnlwYWNrLWZyb250ZW5kLy4vbm9kZV9tb2R1bGVzL2Zhc3QtcG5nL2xpYi1lc20vY29udmVydEluZGV4ZWRUb1JnYi5qcz9mODUxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udmVydHMgaW5kZXhlZCBkYXRhIGludG8gUkdCL1JHQkEgZm9ybWF0XG4gKiBAcGFyYW0gZGVjb2RlZEltYWdlIC0gSW1hZ2UgdG8gZGVjb2RlIGRhdGEgZnJvbS5cbiAqIEByZXR1cm5zIFVpbnQ4QXJyYXkgd2l0aCBSR0IgZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRJbmRleGVkVG9SZ2IoZGVjb2RlZEltYWdlKSB7XG4gICAgY29uc3QgcGFsZXR0ZSA9IGRlY29kZWRJbWFnZS5wYWxldHRlO1xuICAgIGNvbnN0IGRlcHRoID0gZGVjb2RlZEltYWdlLmRlcHRoO1xuICAgIGlmICghcGFsZXR0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbG9yIHBhbGV0dGUgaXMgdW5kZWZpbmVkLicpO1xuICAgIH1cbiAgICBjaGVja0RhdGFTaXplKGRlY29kZWRJbWFnZSk7XG4gICAgY29uc3QgaW5kZXhTaXplID0gZGVjb2RlZEltYWdlLndpZHRoICogZGVjb2RlZEltYWdlLmhlaWdodDtcbiAgICBjb25zdCByZXNTaXplID0gaW5kZXhTaXplICogcGFsZXR0ZVswXS5sZW5ndGg7XG4gICAgY29uc3QgcmVzID0gbmV3IFVpbnQ4QXJyYXkocmVzU2l6ZSk7XG4gICAgbGV0IGluZGV4UG9zID0gMDtcbiAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICBjb25zdCBpbmRleGVzID0gbmV3IFVpbnQ4QXJyYXkoaW5kZXhTaXplKTtcbiAgICBsZXQgYml0ID0gMHhmZjtcbiAgICBzd2l0Y2ggKGRlcHRoKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIGJpdCA9IDB4ODA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgYml0ID0gMHhjMDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICBiaXQgPSAweGYwO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgIGJpdCA9IDB4ZmY7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGRlcHRoIHZhbHVlJyk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgYnl0ZSBvZiBkZWNvZGVkSW1hZ2UuZGF0YSkge1xuICAgICAgICBsZXQgYml0MiA9IGJpdDtcbiAgICAgICAgbGV0IHNoaWZ0ID0gODtcbiAgICAgICAgd2hpbGUgKGJpdDIpIHtcbiAgICAgICAgICAgIHNoaWZ0IC09IGRlcHRoO1xuICAgICAgICAgICAgaW5kZXhlc1tpbmRleFBvcysrXSA9IChieXRlICYgYml0MikgPj4gc2hpZnQ7XG4gICAgICAgICAgICBiaXQyID0gYml0MiA+PiBkZXB0aDtcbiAgICAgICAgICAgIGlmIChpbmRleFBvcyAlIGRlY29kZWRJbWFnZS53aWR0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChkZWNvZGVkSW1hZ2UucGFsZXR0ZSkge1xuICAgICAgICBmb3IgKGNvbnN0IGluZGV4IG9mIGluZGV4ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gZGVjb2RlZEltYWdlLnBhbGV0dGUuYXQoaW5kZXgpO1xuICAgICAgICAgICAgaWYgKCFjb2xvcikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGluZGV4IG9mIHBhbGV0dGUgY29sb3InKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcy5zZXQoY29sb3IsIG9mZnNldCk7XG4gICAgICAgICAgICBvZmZzZXQgKz0gY29sb3IubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59XG5mdW5jdGlvbiBjaGVja0RhdGFTaXplKGltYWdlKSB7XG4gICAgY29uc3QgZXhwZWN0ZWRTaXplID0gaW1hZ2UuZGVwdGggPCA4XG4gICAgICAgID8gTWF0aC5jZWlsKChpbWFnZS53aWR0aCAqIGltYWdlLmRlcHRoKSAvIDgpICpcbiAgICAgICAgICAgIGltYWdlLmhlaWdodCAqXG4gICAgICAgICAgICBpbWFnZS5jaGFubmVsc1xuICAgICAgICA6IGltYWdlLndpZHRoICogaW1hZ2UuaGVpZ2h0ICogaW1hZ2UuY2hhbm5lbHM7XG4gICAgaWYgKGltYWdlLmRhdGEubGVuZ3RoICE9PSBleHBlY3RlZFNpemUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYHdyb25nIGRhdGEgc2l6ZS4gRm91bmQgJHtpbWFnZS5kYXRhLmxlbmd0aH0sIGV4cGVjdGVkICR7ZXhwZWN0ZWRTaXplfWApO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnZlcnRJbmRleGVkVG9SZ2IuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/fast-png/lib-esm/convertIndexedToRgb.js\n"); /***/ }), /***/ "(ssr)/./node_modules/fast-png/lib-esm/helpers/applyUnfilter.js": /*!****************************************************************!*\ !*** ./node_modules/fast-png/lib-esm/helpers/applyUnfilter.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyUnfilter: () => (/* binding */ applyUnfilter)\n/* harmony export */ });\n/* harmony import */ var _unfilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./unfilter */ \"(ssr)/./node_modules/fast-png/lib-esm/helpers/unfilter.js\");\n\n/**\n * Apllies filter on scanline based on the filter type.\n * @param filterType - The filter type to apply.\n * @param currentLine - The current line of pixel data.\n * @param newLine - The new line of pixel data.\n * @param prevLine - The previous line of pixel data.\n * @param passLineBytes - The number of bytes in the pass line.\n * @param bytesPerPixel - The number of bytes per pixel.\n */\nfunction applyUnfilter(filterType, currentLine, newLine, prevLine, passLineBytes, bytesPerPixel) {\n switch (filterType) {\n case 0:\n (0,_unfilter__WEBPACK_IMPORTED_MODULE_0__.unfilterNone)(currentLine, newLine, passLineBytes);\n break;\n case 1:\n (0,_unfilter__WEBPACK_IMPORTED_MODULE_0__.unfilterSub)(currentLine, newLine, passLineBytes, bytesPerPixel);\n break;\n case 2:\n (0,_unfilter__WEBPACK_IMPORTED_MODULE_0__.unfilterUp)(currentLine, newLine, prevLine, passLineBytes);\n break;\n case 3:\n (0,_unfilter__WEBPACK_IMPORTED_MODULE_0__.unfilterAverage)(currentLine, newLine, prevLine, passLineBytes, bytesPerPixel);\n break;\n case 4:\n (0,_unfilter__WEBPACK_IMPORTED_MODULE_0__.unfilterPaeth)(currentLine, newLine, prevLine, passLineBytes, bytesPerPixel);\n break;\n default:\n throw new Error(`Unsupported filter: ${filterType}`);\n }\n}\n//# sourceMappingURL=applyUnfilter.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9oZWxwZXJzL2FwcGx5VW5maWx0ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBb0c7QUFDcEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0EsWUFBWSx1REFBWTtBQUN4QjtBQUNBO0FBQ0EsWUFBWSxzREFBVztBQUN2QjtBQUNBO0FBQ0EsWUFBWSxxREFBVTtBQUN0QjtBQUNBO0FBQ0EsWUFBWSwwREFBZTtBQUMzQjtBQUNBO0FBQ0EsWUFBWSx3REFBYTtBQUN6QjtBQUNBO0FBQ0EsbURBQW1ELFdBQVc7QUFDOUQ7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmVyaWZ5cGFjay1mcm9udGVuZC8uL25vZGVfbW9kdWxlcy9mYXN0LXBuZy9saWItZXNtL2hlbHBlcnMvYXBwbHlVbmZpbHRlci5qcz8yYjYzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVuZmlsdGVyQXZlcmFnZSwgdW5maWx0ZXJOb25lLCB1bmZpbHRlclBhZXRoLCB1bmZpbHRlclN1YiwgdW5maWx0ZXJVcCwgfSBmcm9tICcuL3VuZmlsdGVyJztcbi8qKlxuICogQXBsbGllcyBmaWx0ZXIgb24gc2NhbmxpbmUgYmFzZWQgb24gdGhlIGZpbHRlciB0eXBlLlxuICogQHBhcmFtIGZpbHRlclR5cGUgLSBUaGUgZmlsdGVyIHR5cGUgdG8gYXBwbHkuXG4gKiBAcGFyYW0gY3VycmVudExpbmUgLSBUaGUgY3VycmVudCBsaW5lIG9mIHBpeGVsIGRhdGEuXG4gKiBAcGFyYW0gbmV3TGluZSAtIFRoZSBuZXcgbGluZSBvZiBwaXhlbCBkYXRhLlxuICogQHBhcmFtIHByZXZMaW5lIC0gVGhlIHByZXZpb3VzIGxpbmUgb2YgcGl4ZWwgZGF0YS5cbiAqIEBwYXJhbSBwYXNzTGluZUJ5dGVzIC0gVGhlIG51bWJlciBvZiBieXRlcyBpbiB0aGUgcGFzcyBsaW5lLlxuICogQHBhcmFtIGJ5dGVzUGVyUGl4ZWwgLSBUaGUgbnVtYmVyIG9mIGJ5dGVzIHBlciBwaXhlbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5VW5maWx0ZXIoZmlsdGVyVHlwZSwgY3VycmVudExpbmUsIG5ld0xpbmUsIHByZXZMaW5lLCBwYXNzTGluZUJ5dGVzLCBieXRlc1BlclBpeGVsKSB7XG4gICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHVuZmlsdGVyTm9uZShjdXJyZW50TGluZSwgbmV3TGluZSwgcGFzc0xpbmVCeXRlcyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgdW5maWx0ZXJTdWIoY3VycmVudExpbmUsIG5ld0xpbmUsIHBhc3NMaW5lQnl0ZXMsIGJ5dGVzUGVyUGl4ZWwpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHVuZmlsdGVyVXAoY3VycmVudExpbmUsIG5ld0xpbmUsIHByZXZMaW5lLCBwYXNzTGluZUJ5dGVzKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICB1bmZpbHRlckF2ZXJhZ2UoY3VycmVudExpbmUsIG5ld0xpbmUsIHByZXZMaW5lLCBwYXNzTGluZUJ5dGVzLCBieXRlc1BlclBpeGVsKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICB1bmZpbHRlclBhZXRoKGN1cnJlbnRMaW5lLCBuZXdMaW5lLCBwcmV2TGluZSwgcGFzc0xpbmVCeXRlcywgYnl0ZXNQZXJQaXhlbCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZmlsdGVyOiAke2ZpbHRlclR5cGV9YCk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwbHlVbmZpbHRlci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/fast-png/lib-esm/helpers/applyUnfilter.js\n"); /***/ }), /***/ "(ssr)/./node_modules/fast-png/lib-esm/helpers/crc.js": /*!******************************************************!*\ !*** ./node_modules/fast-png/lib-esm/helpers/crc.js ***! \******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkCrc: () => (/* binding */ checkCrc),\n/* harmony export */ writeCrc: () => (/* binding */ writeCrc)\n/* harmony export */ });\nconst crcTable = [];\nfor (let n = 0; n < 256; n++) {\n let c = n;\n for (let k = 0; k < 8; k++) {\n if (c & 1) {\n c = 0xedb88320 ^ (c >>> 1);\n }\n else {\n c = c >>> 1;\n }\n }\n crcTable[n] = c;\n}\nconst initialCrc = 0xffffffff;\nfunction updateCrc(currentCrc, data, length) {\n let c = currentCrc;\n for (let n = 0; n < length; n++) {\n c = crcTable[(c ^ data[n]) & 0xff] ^ (c >>> 8);\n }\n return c;\n}\nfunction crc(data, length) {\n return (updateCrc(initialCrc, data, length) ^ initialCrc) >>> 0;\n}\nfunction checkCrc(buffer, crcLength, chunkName) {\n const expectedCrc = buffer.readUint32();\n const actualCrc = crc(new Uint8Array(buffer.buffer, buffer.byteOffset + buffer.offset - crcLength - 4, crcLength), crcLength); // \"- 4\" because we already advanced by reading the CRC\n if (actualCrc !== expectedCrc) {\n throw new Error(`CRC mismatch for chunk ${chunkName}. Expected ${expectedCrc}, found ${actualCrc}`);\n }\n}\nfunction writeCrc(buffer, length) {\n buffer.writeUint32(crc(new Uint8Array(buffer.buffer, buffer.byteOffset + buffer.offset - length, length), length));\n}\n//# sourceMappingURL=crc.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9oZWxwZXJzL2NyYy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0EsZ0JBQWdCLFNBQVM7QUFDekI7QUFDQSxvQkFBb0IsT0FBTztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsWUFBWTtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQSxtSUFBbUk7QUFDbkk7QUFDQSxrREFBa0QsVUFBVSxhQUFhLFlBQVksVUFBVSxVQUFVO0FBQ3pHO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL3ZlcmlmeXBhY2stZnJvbnRlbmQvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9oZWxwZXJzL2NyYy5qcz8zZTJhIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNyY1RhYmxlID0gW107XG5mb3IgKGxldCBuID0gMDsgbiA8IDI1NjsgbisrKSB7XG4gICAgbGV0IGMgPSBuO1xuICAgIGZvciAobGV0IGsgPSAwOyBrIDwgODsgaysrKSB7XG4gICAgICAgIGlmIChjICYgMSkge1xuICAgICAgICAgICAgYyA9IDB4ZWRiODgzMjAgXiAoYyA+Pj4gMSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjID0gYyA+Pj4gMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjcmNUYWJsZVtuXSA9IGM7XG59XG5jb25zdCBpbml0aWFsQ3JjID0gMHhmZmZmZmZmZjtcbmZ1bmN0aW9uIHVwZGF0ZUNyYyhjdXJyZW50Q3JjLCBkYXRhLCBsZW5ndGgpIHtcbiAgICBsZXQgYyA9IGN1cnJlbnRDcmM7XG4gICAgZm9yIChsZXQgbiA9IDA7IG4gPCBsZW5ndGg7IG4rKykge1xuICAgICAgICBjID0gY3JjVGFibGVbKGMgXiBkYXRhW25dKSAmIDB4ZmZdIF4gKGMgPj4+IDgpO1xuICAgIH1cbiAgICByZXR1cm4gYztcbn1cbmZ1bmN0aW9uIGNyYyhkYXRhLCBsZW5ndGgpIHtcbiAgICByZXR1cm4gKHVwZGF0ZUNyYyhpbml0aWFsQ3JjLCBkYXRhLCBsZW5ndGgpIF4gaW5pdGlhbENyYykgPj4+IDA7XG59XG5leHBvcnQgZnVuY3Rpb24gY2hlY2tDcmMoYnVmZmVyLCBjcmNMZW5ndGgsIGNodW5rTmFtZSkge1xuICAgIGNvbnN0IGV4cGVjdGVkQ3JjID0gYnVmZmVyLnJlYWRVaW50MzIoKTtcbiAgICBjb25zdCBhY3R1YWxDcmMgPSBjcmMobmV3IFVpbnQ4QXJyYXkoYnVmZmVyLmJ1ZmZlciwgYnVmZmVyLmJ5dGVPZmZzZXQgKyBidWZmZXIub2Zmc2V0IC0gY3JjTGVuZ3RoIC0gNCwgY3JjTGVuZ3RoKSwgY3JjTGVuZ3RoKTsgLy8gXCItIDRcIiBiZWNhdXNlIHdlIGFscmVhZHkgYWR2YW5jZWQgYnkgcmVhZGluZyB0aGUgQ1JDXG4gICAgaWYgKGFjdHVhbENyYyAhPT0gZXhwZWN0ZWRDcmMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDUkMgbWlzbWF0Y2ggZm9yIGNodW5rICR7Y2h1bmtOYW1lfS4gRXhwZWN0ZWQgJHtleHBlY3RlZENyY30sIGZvdW5kICR7YWN0dWFsQ3JjfWApO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUNyYyhidWZmZXIsIGxlbmd0aCkge1xuICAgIGJ1ZmZlci53cml0ZVVpbnQzMihjcmMobmV3IFVpbnQ4QXJyYXkoYnVmZmVyLmJ1ZmZlciwgYnVmZmVyLmJ5dGVPZmZzZXQgKyBidWZmZXIub2Zmc2V0IC0gbGVuZ3RoLCBsZW5ndGgpLCBsZW5ndGgpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyYy5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/fast-png/lib-esm/helpers/crc.js\n"); /***/ }), /***/ "(ssr)/./node_modules/fast-png/lib-esm/helpers/decodeInterlaceAdam7.js": /*!***********************************************************************!*\ !*** ./node_modules/fast-png/lib-esm/helpers/decodeInterlaceAdam7.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ decodeInterlaceAdam7: () => (/* binding */ decodeInterlaceAdam7)\n/* harmony export */ });\n/* harmony import */ var _applyUnfilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./applyUnfilter */ \"(ssr)/./node_modules/fast-png/lib-esm/helpers/applyUnfilter.js\");\n\nconst uint16 = new Uint16Array([0x00ff]);\nconst uint8 = new Uint8Array(uint16.buffer);\nconst osIsLittleEndian = uint8[0] === 0xff;\n/**\n * Decodes the Adam7 interlaced PNG data.\n *\n * @param params - DecodeInterlaceNullParams\n * @returns - array of pixel data.\n */\nfunction decodeInterlaceAdam7(params) {\n const { data, width, height, channels, depth } = params;\n // Adam7 interlacing pattern\n const passes = [\n { x: 0, y: 0, xStep: 8, yStep: 8 }, // Pass 1\n { x: 4, y: 0, xStep: 8, yStep: 8 }, // Pass 2\n { x: 0, y: 4, xStep: 4, yStep: 8 }, // Pass 3\n { x: 2, y: 0, xStep: 4, yStep: 4 }, // Pass 4\n { x: 0, y: 2, xStep: 2, yStep: 4 }, // Pass 5\n { x: 1, y: 0, xStep: 2, yStep: 2 }, // Pass 6\n { x: 0, y: 1, xStep: 1, yStep: 2 }, // Pass 7\n ];\n const bytesPerPixel = Math.ceil(depth / 8) * channels;\n const resultData = new Uint8Array(height * width * bytesPerPixel);\n let offset = 0;\n // Process each pass\n for (let passIndex = 0; passIndex < 7; passIndex++) {\n const pass = passes[passIndex];\n // Calculate pass dimensions\n const passWidth = Math.ceil((width - pass.x) / pass.xStep);\n const passHeight = Math.ceil((height - pass.y) / pass.yStep);\n if (passWidth <= 0 || passHeight <= 0)\n continue;\n const passLineBytes = passWidth * bytesPerPixel;\n const prevLine = new Uint8Array(passLineBytes);\n // Process each scanline in this pass\n for (let y = 0; y < passHeight; y++) {\n // First byte is the filter type\n const filterType = data[offset++];\n const currentLine = data.subarray(offset, offset + passLineBytes);\n offset += passLineBytes;\n // Create a new line for the unfiltered data\n const newLine = new Uint8Array(passLineBytes);\n // Apply the appropriate unfilter\n (0,_applyUnfilter__WEBPACK_IMPORTED_MODULE_0__.applyUnfilter)(filterType, currentLine, newLine, prevLine, passLineBytes, bytesPerPixel);\n prevLine.set(newLine);\n for (let x = 0; x < passWidth; x++) {\n const outputX = pass.x + x * pass.xStep;\n const outputY = pass.y + y * pass.yStep;\n if (outputX >= width || outputY >= height)\n continue;\n for (let i = 0; i < bytesPerPixel; i++) {\n resultData[(outputY * width + outputX) * bytesPerPixel + i] =\n newLine[x * bytesPerPixel + i];\n }\n }\n }\n }\n if (depth === 16) {\n const uint16Data = new Uint16Array(resultData.buffer);\n if (osIsLittleEndian) {\n for (let k = 0; k < uint16Data.length; k++) {\n // PNG is always big endian. Swap the bytes.\n uint16Data[k] = swap16(uint16Data[k]);\n }\n }\n return uint16Data;\n }\n else {\n return resultData;\n }\n}\nfunction swap16(val) {\n return ((val & 0xff) << 8) | ((val >> 8) & 0xff);\n}\n//# sourceMappingURL=decodeInterlaceAdam7.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9oZWxwZXJzL2RlY29kZUludGVybGFjZUFkYW03LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWdEO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsWUFBWSx1Q0FBdUM7QUFDbkQ7QUFDQTtBQUNBLFVBQVUsZ0NBQWdDO0FBQzFDLFVBQVUsZ0NBQWdDO0FBQzFDLFVBQVUsZ0NBQWdDO0FBQzFDLFVBQVUsZ0NBQWdDO0FBQzFDLFVBQVUsZ0NBQWdDO0FBQzFDLFVBQVUsZ0NBQWdDO0FBQzFDLFVBQVUsZ0NBQWdDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsZUFBZTtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0JBQWdCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSw2REFBYTtBQUN6QjtBQUNBLDRCQUE0QixlQUFlO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLG1CQUFtQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsdUJBQXVCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92ZXJpZnlwYWNrLWZyb250ZW5kLy4vbm9kZV9tb2R1bGVzL2Zhc3QtcG5nL2xpYi1lc20vaGVscGVycy9kZWNvZGVJbnRlcmxhY2VBZGFtNy5qcz9iYmIwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGx5VW5maWx0ZXIgfSBmcm9tICcuL2FwcGx5VW5maWx0ZXInO1xuY29uc3QgdWludDE2ID0gbmV3IFVpbnQxNkFycmF5KFsweDAwZmZdKTtcbmNvbnN0IHVpbnQ4ID0gbmV3IFVpbnQ4QXJyYXkodWludDE2LmJ1ZmZlcik7XG5jb25zdCBvc0lzTGl0dGxlRW5kaWFuID0gdWludDhbMF0gPT09IDB4ZmY7XG4vKipcbiAqIERlY29kZXMgdGhlIEFkYW03IGludGVybGFjZWQgUE5HIGRhdGEuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIERlY29kZUludGVybGFjZU51bGxQYXJhbXNcbiAqIEByZXR1cm5zIC0gYXJyYXkgb2YgcGl4ZWwgZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZUludGVybGFjZUFkYW03KHBhcmFtcykge1xuICAgIGNvbnN0IHsgZGF0YSwgd2lkdGgsIGhlaWdodCwgY2hhbm5lbHMsIGRlcHRoIH0gPSBwYXJhbXM7XG4gICAgLy8gQWRhbTcgaW50ZXJsYWNpbmcgcGF0dGVyblxuICAgIGNvbnN0IHBhc3NlcyA9IFtcbiAgICAgICAgeyB4OiAwLCB5OiAwLCB4U3RlcDogOCwgeVN0ZXA6IDggfSwgLy8gUGFzcyAxXG4gICAgICAgIHsgeDogNCwgeTogMCwgeFN0ZXA6IDgsIHlTdGVwOiA4IH0sIC8vIFBhc3MgMlxuICAgICAgICB7IHg6IDAsIHk6IDQsIHhTdGVwOiA0LCB5U3RlcDogOCB9LCAvLyBQYXNzIDNcbiAgICAgICAgeyB4OiAyLCB5OiAwLCB4U3RlcDogNCwgeVN0ZXA6IDQgfSwgLy8gUGFzcyA0XG4gICAgICAgIHsgeDogMCwgeTogMiwgeFN0ZXA6IDIsIHlTdGVwOiA0IH0sIC8vIFBhc3MgNVxuICAgICAgICB7IHg6IDEsIHk6IDAsIHhTdGVwOiAyLCB5U3RlcDogMiB9LCAvLyBQYXNzIDZcbiAgICAgICAgeyB4OiAwLCB5OiAxLCB4U3RlcDogMSwgeVN0ZXA6IDIgfSwgLy8gUGFzcyA3XG4gICAgXTtcbiAgICBjb25zdCBieXRlc1BlclBpeGVsID0gTWF0aC5jZWlsKGRlcHRoIC8gOCkgKiBjaGFubmVscztcbiAgICBjb25zdCByZXN1bHREYXRhID0gbmV3IFVpbnQ4QXJyYXkoaGVpZ2h0ICogd2lkdGggKiBieXRlc1BlclBpeGVsKTtcbiAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAvLyBQcm9jZXNzIGVhY2ggcGFzc1xuICAgIGZvciAobGV0IHBhc3NJbmRleCA9IDA7IHBhc3NJbmRleCA8IDc7IHBhc3NJbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IHBhc3MgPSBwYXNzZXNbcGFzc0luZGV4XTtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHBhc3MgZGltZW5zaW9uc1xuICAgICAgICBjb25zdCBwYXNzV2lkdGggPSBNYXRoLmNlaWwoKHdpZHRoIC0gcGFzcy54KSAvIHBhc3MueFN0ZXApO1xuICAgICAgICBjb25zdCBwYXNzSGVpZ2h0ID0gTWF0aC5jZWlsKChoZWlnaHQgLSBwYXNzLnkpIC8gcGFzcy55U3RlcCk7XG4gICAgICAgIGlmIChwYXNzV2lkdGggPD0gMCB8fCBwYXNzSGVpZ2h0IDw9IDApXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY29uc3QgcGFzc0xpbmVCeXRlcyA9IHBhc3NXaWR0aCAqIGJ5dGVzUGVyUGl4ZWw7XG4gICAgICAgIGNvbnN0IHByZXZMaW5lID0gbmV3IFVpbnQ4QXJyYXkocGFzc0xpbmVCeXRlcyk7XG4gICAgICAgIC8vIFByb2Nlc3MgZWFjaCBzY2FubGluZSBpbiB0aGlzIHBhc3NcbiAgICAgICAgZm9yIChsZXQgeSA9IDA7IHkgPCBwYXNzSGVpZ2h0OyB5KyspIHtcbiAgICAgICAgICAgIC8vIEZpcnN0IGJ5dGUgaXMgdGhlIGZpbHRlciB0eXBlXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJUeXBlID0gZGF0YVtvZmZzZXQrK107XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50TGluZSA9IGRhdGEuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyBwYXNzTGluZUJ5dGVzKTtcbiAgICAgICAgICAgIG9mZnNldCArPSBwYXNzTGluZUJ5dGVzO1xuICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGxpbmUgZm9yIHRoZSB1bmZpbHRlcmVkIGRhdGFcbiAgICAgICAgICAgIGNvbnN0IG5ld0xpbmUgPSBuZXcgVWludDhBcnJheShwYXNzTGluZUJ5dGVzKTtcbiAgICAgICAgICAgIC8vIEFwcGx5IHRoZSBhcHByb3ByaWF0ZSB1bmZpbHRlclxuICAgICAgICAgICAgYXBwbHlVbmZpbHRlcihmaWx0ZXJUeXBlLCBjdXJyZW50TGluZSwgbmV3TGluZSwgcHJldkxpbmUsIHBhc3NMaW5lQnl0ZXMsIGJ5dGVzUGVyUGl4ZWwpO1xuICAgICAgICAgICAgcHJldkxpbmUuc2V0KG5ld0xpbmUpO1xuICAgICAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCBwYXNzV2lkdGg7IHgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dFggPSBwYXNzLnggKyB4ICogcGFzcy54U3RlcDtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXRwdXRZID0gcGFzcy55ICsgeSAqIHBhc3MueVN0ZXA7XG4gICAgICAgICAgICAgICAgaWYgKG91dHB1dFggPj0gd2lkdGggfHwgb3V0cHV0WSA+PSBoZWlnaHQpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZXNQZXJQaXhlbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdERhdGFbKG91dHB1dFkgKiB3aWR0aCArIG91dHB1dFgpICogYnl0ZXNQZXJQaXhlbCArIGldID1cbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpbmVbeCAqIGJ5dGVzUGVyUGl4ZWwgKyBpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRlcHRoID09PSAxNikge1xuICAgICAgICBjb25zdCB1aW50MTZEYXRhID0gbmV3IFVpbnQxNkFycmF5KHJlc3VsdERhdGEuYnVmZmVyKTtcbiAgICAgICAgaWYgKG9zSXNMaXR0bGVFbmRpYW4pIHtcbiAgICAgICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgdWludDE2RGF0YS5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgICAgIC8vIFBORyBpcyBhbHdheXMgYmlnIGVuZGlhbi4gU3dhcCB0aGUgYnl0ZXMuXG4gICAgICAgICAgICAgICAgdWludDE2RGF0YVtrXSA9IHN3YXAxNih1aW50MTZEYXRhW2tdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdWludDE2RGF0YTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiByZXN1bHREYXRhO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHN3YXAxNih2YWwpIHtcbiAgICByZXR1cm4gKCh2YWwgJiAweGZmKSA8PCA4KSB8ICgodmFsID4+IDgpICYgMHhmZik7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWNvZGVJbnRlcmxhY2VBZGFtNy5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/fast-png/lib-esm/helpers/decodeInterlaceAdam7.js\n"); /***/ }), /***/ "(ssr)/./node_modules/fast-png/lib-esm/helpers/decodeInterlaceNull.js": /*!**********************************************************************!*\ !*** ./node_modules/fast-png/lib-esm/helpers/decodeInterlaceNull.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ decodeInterlaceNull: () => (/* binding */ decodeInterlaceNull)\n/* harmony export */ });\n/* harmony import */ var _unfilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./unfilter */ \"(ssr)/./node_modules/fast-png/lib-esm/helpers/unfilter.js\");\n\nconst uint16 = new Uint16Array([0x00ff]);\nconst uint8 = new Uint8Array(uint16.buffer);\nconst osIsLittleEndian = uint8[0] === 0xff;\nconst empty = new Uint8Array(0);\nfunction decodeInterlaceNull(params) {\n const { data, width, height, channels, depth } = params;\n const bytesPerPixel = Math.ceil(depth / 8) * channels;\n const bytesPerLine = Math.ceil((depth / 8) * channels * width);\n const newData = new Uint8Array(height * bytesPerLine);\n let prevLine = empty;\n let offset = 0;\n let currentLine;\n let newLine;\n for (let i = 0; i < height; i++) {\n currentLine = data.subarray(offset + 1, offset + 1 + bytesPerLine);\n newLine = newData.subarray(i * bytesPerLine, (i + 1) * bytesPerLine);\n switch (data[offset]) {\n case 0:\n (0,_unfilter__WEBPACK_IMPORTED_MODULE_0__.unfilterNone)(currentLine, newLine, bytesPerLine);\n break;\n case 1:\n (0,_unfilter__WEBPACK_IMPORTED_MODULE_0__.unfilterSub)(currentLine, newLine, bytesPerLine, bytesPerPixel);\n break;\n case 2:\n (0,_unfilter__WEBPACK_IMPORTED_MODULE_0__.unfilterUp)(currentLine, newLine, prevLine, bytesPerLine);\n break;\n case 3:\n (0,_unfilter__WEBPACK_IMPORTED_MODULE_0__.unfilterAverage)(currentLine, newLine, prevLine, bytesPerLine, bytesPerPixel);\n break;\n case 4:\n (0,_unfilter__WEBPACK_IMPORTED_MODULE_0__.unfilterPaeth)(currentLine, newLine, prevLine, bytesPerLine, bytesPerPixel);\n break;\n default:\n throw new Error(`Unsupported filter: ${data[offset]}`);\n }\n prevLine = newLine;\n offset += bytesPerLine + 1;\n }\n if (depth === 16) {\n const uint16Data = new Uint16Array(newData.buffer);\n if (osIsLittleEndian) {\n for (let k = 0; k < uint16Data.length; k++) {\n // PNG is always big endian. Swap the bytes.\n uint16Data[k] = swap16(uint16Data[k]);\n }\n }\n return uint16Data;\n }\n else {\n return newData;\n }\n}\nfunction swap16(val) {\n return ((val & 0xff) << 8) | ((val >> 8) & 0xff);\n}\n//# sourceMappingURL=decodeInterlaceNull.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9oZWxwZXJzL2RlY29kZUludGVybGFjZU51bGwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBb0c7QUFDcEc7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQLFlBQVksdUNBQXVDO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFlBQVk7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQVk7QUFDNUI7QUFDQTtBQUNBLGdCQUFnQixzREFBVztBQUMzQjtBQUNBO0FBQ0EsZ0JBQWdCLHFEQUFVO0FBQzFCO0FBQ0E7QUFDQSxnQkFBZ0IsMERBQWU7QUFDL0I7QUFDQTtBQUNBLGdCQUFnQix3REFBYTtBQUM3QjtBQUNBO0FBQ0EsdURBQXVELGFBQWE7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsdUJBQXVCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92ZXJpZnlwYWNrLWZyb250ZW5kLy4vbm9kZV9tb2R1bGVzL2Zhc3QtcG5nL2xpYi1lc20vaGVscGVycy9kZWNvZGVJbnRlcmxhY2VOdWxsLmpzPzZlZjciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdW5maWx0ZXJBdmVyYWdlLCB1bmZpbHRlck5vbmUsIHVuZmlsdGVyUGFldGgsIHVuZmlsdGVyU3ViLCB1bmZpbHRlclVwLCB9IGZyb20gJy4vdW5maWx0ZXInO1xuY29uc3QgdWludDE2ID0gbmV3IFVpbnQxNkFycmF5KFsweDAwZmZdKTtcbmNvbnN0IHVpbnQ4ID0gbmV3IFVpbnQ4QXJyYXkodWludDE2LmJ1ZmZlcik7XG5jb25zdCBvc0lzTGl0dGxlRW5kaWFuID0gdWludDhbMF0gPT09IDB4ZmY7XG5jb25zdCBlbXB0eSA9IG5ldyBVaW50OEFycmF5KDApO1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZUludGVybGFjZU51bGwocGFyYW1zKSB7XG4gICAgY29uc3QgeyBkYXRhLCB3aWR0aCwgaGVpZ2h0LCBjaGFubmVscywgZGVwdGggfSA9IHBhcmFtcztcbiAgICBjb25zdCBieXRlc1BlclBpeGVsID0gTWF0aC5jZWlsKGRlcHRoIC8gOCkgKiBjaGFubmVscztcbiAgICBjb25zdCBieXRlc1BlckxpbmUgPSBNYXRoLmNlaWwoKGRlcHRoIC8gOCkgKiBjaGFubmVscyAqIHdpZHRoKTtcbiAgICBjb25zdCBuZXdEYXRhID0gbmV3IFVpbnQ4QXJyYXkoaGVpZ2h0ICogYnl0ZXNQZXJMaW5lKTtcbiAgICBsZXQgcHJldkxpbmUgPSBlbXB0eTtcbiAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICBsZXQgY3VycmVudExpbmU7XG4gICAgbGV0IG5ld0xpbmU7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZWlnaHQ7IGkrKykge1xuICAgICAgICBjdXJyZW50TGluZSA9IGRhdGEuc3ViYXJyYXkob2Zmc2V0ICsgMSwgb2Zmc2V0ICsgMSArIGJ5dGVzUGVyTGluZSk7XG4gICAgICAgIG5ld0xpbmUgPSBuZXdEYXRhLnN1YmFycmF5KGkgKiBieXRlc1BlckxpbmUsIChpICsgMSkgKiBieXRlc1BlckxpbmUpO1xuICAgICAgICBzd2l0Y2ggKGRhdGFbb2Zmc2V0XSkge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgIHVuZmlsdGVyTm9uZShjdXJyZW50TGluZSwgbmV3TGluZSwgYnl0ZXNQZXJMaW5lKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICB1bmZpbHRlclN1YihjdXJyZW50TGluZSwgbmV3TGluZSwgYnl0ZXNQZXJMaW5lLCBieXRlc1BlclBpeGVsKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICB1bmZpbHRlclVwKGN1cnJlbnRMaW5lLCBuZXdMaW5lLCBwcmV2TGluZSwgYnl0ZXNQZXJMaW5lKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICB1bmZpbHRlckF2ZXJhZ2UoY3VycmVudExpbmUsIG5ld0xpbmUsIHByZXZMaW5lLCBieXRlc1BlckxpbmUsIGJ5dGVzUGVyUGl4ZWwpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgIHVuZmlsdGVyUGFldGgoY3VycmVudExpbmUsIG5ld0xpbmUsIHByZXZMaW5lLCBieXRlc1BlckxpbmUsIGJ5dGVzUGVyUGl4ZWwpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGZpbHRlcjogJHtkYXRhW29mZnNldF19YCk7XG4gICAgICAgIH1cbiAgICAgICAgcHJldkxpbmUgPSBuZXdMaW5lO1xuICAgICAgICBvZmZzZXQgKz0gYnl0ZXNQZXJMaW5lICsgMTtcbiAgICB9XG4gICAgaWYgKGRlcHRoID09PSAxNikge1xuICAgICAgICBjb25zdCB1aW50MTZEYXRhID0gbmV3IFVpbnQxNkFycmF5KG5ld0RhdGEuYnVmZmVyKTtcbiAgICAgICAgaWYgKG9zSXNMaXR0bGVFbmRpYW4pIHtcbiAgICAgICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgdWludDE2RGF0YS5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgICAgIC8vIFBORyBpcyBhbHdheXMgYmlnIGVuZGlhbi4gU3dhcCB0aGUgYnl0ZXMuXG4gICAgICAgICAgICAgICAgdWludDE2RGF0YVtrXSA9IHN3YXAxNih1aW50MTZEYXRhW2tdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdWludDE2RGF0YTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXdEYXRhO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHN3YXAxNih2YWwpIHtcbiAgICByZXR1cm4gKCh2YWwgJiAweGZmKSA8PCA4KSB8ICgodmFsID4+IDgpICYgMHhmZik7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWNvZGVJbnRlcmxhY2VOdWxsLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/fast-png/lib-esm/helpers/decodeInterlaceNull.js\n"); /***/ }), /***/ "(ssr)/./node_modules/fast-png/lib-esm/helpers/signature.js": /*!************************************************************!*\ !*** ./node_modules/fast-png/lib-esm/helpers/signature.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkSignature: () => (/* binding */ checkSignature),\n/* harmony export */ hasPngSignature: () => (/* binding */ hasPngSignature),\n/* harmony export */ writeSignature: () => (/* binding */ writeSignature)\n/* harmony export */ });\n// https://www.w3.org/TR/PNG/#5PNG-file-signature\nconst pngSignature = Uint8Array.of(137, 80, 78, 71, 13, 10, 26, 10);\nfunction writeSignature(buffer) {\n buffer.writeBytes(pngSignature);\n}\nfunction checkSignature(buffer) {\n if (!hasPngSignature(buffer.readBytes(pngSignature.length))) {\n throw new Error('wrong PNG signature');\n }\n}\nfunction hasPngSignature(array) {\n if (array.length < pngSignature.length) {\n return false;\n }\n for (let i = 0; i < pngSignature.length; i++) {\n if (array[i] !== pngSignature[i]) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=signature.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9oZWxwZXJzL3NpZ25hdHVyZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHlCQUF5QjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL3ZlcmlmeXBhY2stZnJvbnRlbmQvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9oZWxwZXJzL3NpZ25hdHVyZS5qcz9kM2Y3Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9QTkcvIzVQTkctZmlsZS1zaWduYXR1cmVcbmNvbnN0IHBuZ1NpZ25hdHVyZSA9IFVpbnQ4QXJyYXkub2YoMTM3LCA4MCwgNzgsIDcxLCAxMywgMTAsIDI2LCAxMCk7XG5leHBvcnQgZnVuY3Rpb24gd3JpdGVTaWduYXR1cmUoYnVmZmVyKSB7XG4gICAgYnVmZmVyLndyaXRlQnl0ZXMocG5nU2lnbmF0dXJlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1NpZ25hdHVyZShidWZmZXIpIHtcbiAgICBpZiAoIWhhc1BuZ1NpZ25hdHVyZShidWZmZXIucmVhZEJ5dGVzKHBuZ1NpZ25hdHVyZS5sZW5ndGgpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dyb25nIFBORyBzaWduYXR1cmUnKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gaGFzUG5nU2lnbmF0dXJlKGFycmF5KSB7XG4gICAgaWYgKGFycmF5Lmxlbmd0aCA8IHBuZ1NpZ25hdHVyZS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBuZ1NpZ25hdHVyZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoYXJyYXlbaV0gIT09IHBuZ1NpZ25hdHVyZVtpXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2lnbmF0dXJlLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/fast-png/lib-esm/helpers/signature.js\n"); /***/ }), /***/ "(ssr)/./node_modules/fast-png/lib-esm/helpers/text.js": /*!*******************************************************!*\ !*** ./node_modules/fast-png/lib-esm/helpers/text.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ decodetEXt: () => (/* binding */ decodetEXt),\n/* harmony export */ encodetEXt: () => (/* binding */ encodetEXt),\n/* harmony export */ readKeyword: () => (/* binding */ readKeyword),\n/* harmony export */ readLatin1: () => (/* binding */ readLatin1),\n/* harmony export */ textChunkName: () => (/* binding */ textChunkName)\n/* harmony export */ });\n/* harmony import */ var _crc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./crc */ \"(ssr)/./node_modules/fast-png/lib-esm/helpers/crc.js\");\n\n// https://www.w3.org/TR/png/#11tEXt\nconst textChunkName = 'tEXt';\nconst NULL = 0;\nconst latin1Decoder = new TextDecoder('latin1');\nfunction validateKeyword(keyword) {\n validateLatin1(keyword);\n if (keyword.length === 0 || keyword.length > 79) {\n throw new Error('keyword length must be between 1 and 79');\n }\n}\n// eslint-disable-next-line no-control-regex\nconst latin1Regex = /^[\\u0000-\\u00FF]*$/;\nfunction validateLatin1(text) {\n if (!latin1Regex.test(text)) {\n throw new Error('invalid latin1 text');\n }\n}\nfunction decodetEXt(text, buffer, length) {\n const keyword = readKeyword(buffer);\n text[keyword] = readLatin1(buffer, length - keyword.length - 1);\n}\nfunction encodetEXt(buffer, keyword, text) {\n validateKeyword(keyword);\n validateLatin1(text);\n const length = keyword.length + 1 /* NULL */ + text.length;\n buffer.writeUint32(length);\n buffer.writeChars(textChunkName);\n buffer.writeChars(keyword);\n buffer.writeByte(NULL);\n buffer.writeChars(text);\n (0,_crc__WEBPACK_IMPORTED_MODULE_0__.writeCrc)(buffer, length + 4);\n}\n// https://www.w3.org/TR/png/#11keywords\nfunction readKeyword(buffer) {\n buffer.mark();\n while (buffer.readByte() !== NULL) {\n /* advance */\n }\n const end = buffer.offset;\n buffer.reset();\n const keyword = latin1Decoder.decode(buffer.readBytes(end - buffer.offset - 1));\n // NULL\n buffer.skip(1);\n validateKeyword(keyword);\n return keyword;\n}\nfunction readLatin1(buffer, length) {\n return latin1Decoder.decode(buffer.readBytes(length));\n}\n//# sourceMappingURL=text.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9oZWxwZXJzL3RleHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWlDO0FBQ2pDO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksOENBQVE7QUFDWjtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL3ZlcmlmeXBhY2stZnJvbnRlbmQvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9oZWxwZXJzL3RleHQuanM/NDc5ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3cml0ZUNyYyB9IGZyb20gJy4vY3JjJztcbi8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9wbmcvIzExdEVYdFxuZXhwb3J0IGNvbnN0IHRleHRDaHVua05hbWUgPSAndEVYdCc7XG5jb25zdCBOVUxMID0gMDtcbmNvbnN0IGxhdGluMURlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoJ2xhdGluMScpO1xuZnVuY3Rpb24gdmFsaWRhdGVLZXl3b3JkKGtleXdvcmQpIHtcbiAgICB2YWxpZGF0ZUxhdGluMShrZXl3b3JkKTtcbiAgICBpZiAoa2V5d29yZC5sZW5ndGggPT09IDAgfHwga2V5d29yZC5sZW5ndGggPiA3OSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2tleXdvcmQgbGVuZ3RoIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA3OScpO1xuICAgIH1cbn1cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250cm9sLXJlZ2V4XG5jb25zdCBsYXRpbjFSZWdleCA9IC9eW1xcdTAwMDAtXFx1MDBGRl0qJC87XG5mdW5jdGlvbiB2YWxpZGF0ZUxhdGluMSh0ZXh0KSB7XG4gICAgaWYgKCFsYXRpbjFSZWdleC50ZXN0KHRleHQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBsYXRpbjEgdGV4dCcpO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGV0RVh0KHRleHQsIGJ1ZmZlciwgbGVuZ3RoKSB7XG4gICAgY29uc3Qga2V5d29yZCA9IHJlYWRLZXl3b3JkKGJ1ZmZlcik7XG4gICAgdGV4dFtrZXl3b3JkXSA9IHJlYWRMYXRpbjEoYnVmZmVyLCBsZW5ndGggLSBrZXl3b3JkLmxlbmd0aCAtIDEpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZXRFWHQoYnVmZmVyLCBrZXl3b3JkLCB0ZXh0KSB7XG4gICAgdmFsaWRhdGVLZXl3b3JkKGtleXdvcmQpO1xuICAgIHZhbGlkYXRlTGF0aW4xKHRleHQpO1xuICAgIGNvbnN0IGxlbmd0aCA9IGtleXdvcmQubGVuZ3RoICsgMSAvKiBOVUxMICovICsgdGV4dC5sZW5ndGg7XG4gICAgYnVmZmVyLndyaXRlVWludDMyKGxlbmd0aCk7XG4gICAgYnVmZmVyLndyaXRlQ2hhcnModGV4dENodW5rTmFtZSk7XG4gICAgYnVmZmVyLndyaXRlQ2hhcnMoa2V5d29yZCk7XG4gICAgYnVmZmVyLndyaXRlQnl0ZShOVUxMKTtcbiAgICBidWZmZXIud3JpdGVDaGFycyh0ZXh0KTtcbiAgICB3cml0ZUNyYyhidWZmZXIsIGxlbmd0aCArIDQpO1xufVxuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3BuZy8jMTFrZXl3b3Jkc1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRLZXl3b3JkKGJ1ZmZlcikge1xuICAgIGJ1ZmZlci5tYXJrKCk7XG4gICAgd2hpbGUgKGJ1ZmZlci5yZWFkQnl0ZSgpICE9PSBOVUxMKSB7XG4gICAgICAgIC8qIGFkdmFuY2UgKi9cbiAgICB9XG4gICAgY29uc3QgZW5kID0gYnVmZmVyLm9mZnNldDtcbiAgICBidWZmZXIucmVzZXQoKTtcbiAgICBjb25zdCBrZXl3b3JkID0gbGF0aW4xRGVjb2Rlci5kZWNvZGUoYnVmZmVyLnJlYWRCeXRlcyhlbmQgLSBidWZmZXIub2Zmc2V0IC0gMSkpO1xuICAgIC8vIE5VTExcbiAgICBidWZmZXIuc2tpcCgxKTtcbiAgICB2YWxpZGF0ZUtleXdvcmQoa2V5d29yZCk7XG4gICAgcmV0dXJuIGtleXdvcmQ7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVhZExhdGluMShidWZmZXIsIGxlbmd0aCkge1xuICAgIHJldHVybiBsYXRpbjFEZWNvZGVyLmRlY29kZShidWZmZXIucmVhZEJ5dGVzKGxlbmd0aCkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGV4dC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/fast-png/lib-esm/helpers/text.js\n"); /***/ }), /***/ "(ssr)/./node_modules/fast-png/lib-esm/helpers/unfilter.js": /*!***********************************************************!*\ !*** ./node_modules/fast-png/lib-esm/helpers/unfilter.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ unfilterAverage: () => (/* binding */ unfilterAverage),\n/* harmony export */ unfilterNone: () => (/* binding */ unfilterNone),\n/* harmony export */ unfilterPaeth: () => (/* binding */ unfilterPaeth),\n/* harmony export */ unfilterSub: () => (/* binding */ unfilterSub),\n/* harmony export */ unfilterUp: () => (/* binding */ unfilterUp)\n/* harmony export */ });\nfunction unfilterNone(currentLine, newLine, bytesPerLine) {\n for (let i = 0; i < bytesPerLine; i++) {\n newLine[i] = currentLine[i];\n }\n}\nfunction unfilterSub(currentLine, newLine, bytesPerLine, bytesPerPixel) {\n let i = 0;\n for (; i < bytesPerPixel; i++) {\n // just copy first bytes\n newLine[i] = currentLine[i];\n }\n for (; i < bytesPerLine; i++) {\n newLine[i] = (currentLine[i] + newLine[i - bytesPerPixel]) & 0xff;\n }\n}\nfunction unfilterUp(currentLine, newLine, prevLine, bytesPerLine) {\n let i = 0;\n if (prevLine.length === 0) {\n // just copy bytes for first line\n for (; i < bytesPerLine; i++) {\n newLine[i] = currentLine[i];\n }\n }\n else {\n for (; i < bytesPerLine; i++) {\n newLine[i] = (currentLine[i] + prevLine[i]) & 0xff;\n }\n }\n}\nfunction unfilterAverage(currentLine, newLine, prevLine, bytesPerLine, bytesPerPixel) {\n let i = 0;\n if (prevLine.length === 0) {\n for (; i < bytesPerPixel; i++) {\n newLine[i] = currentLine[i];\n }\n for (; i < bytesPerLine; i++) {\n newLine[i] = (currentLine[i] + (newLine[i - bytesPerPixel] >> 1)) & 0xff;\n }\n }\n else {\n for (; i < bytesPerPixel; i++) {\n newLine[i] = (currentLine[i] + (prevLine[i] >> 1)) & 0xff;\n }\n for (; i < bytesPerLine; i++) {\n newLine[i] =\n (currentLine[i] + ((newLine[i - bytesPerPixel] + prevLine[i]) >> 1)) &\n 0xff;\n }\n }\n}\nfunction unfilterPaeth(currentLine, newLine, prevLine, bytesPerLine, bytesPerPixel) {\n let i = 0;\n if (prevLine.length === 0) {\n for (; i < bytesPerPixel; i++) {\n newLine[i] = currentLine[i];\n }\n for (; i < bytesPerLine; i++) {\n newLine[i] = (currentLine[i] + newLine[i - bytesPerPixel]) & 0xff;\n }\n }\n else {\n for (; i < bytesPerPixel; i++) {\n newLine[i] = (currentLine[i] + prevLine[i]) & 0xff;\n }\n for (; i < bytesPerLine; i++) {\n newLine[i] =\n (currentLine[i] +\n paethPredictor(newLine[i - bytesPerPixel], prevLine[i], prevLine[i - bytesPerPixel])) &\n 0xff;\n }\n }\n}\nfunction paethPredictor(a, b, c) {\n const p = a + b - c;\n const pa = Math.abs(p - a);\n const pb = Math.abs(p - b);\n const pc = Math.abs(p - c);\n if (pa <= pb && pa <= pc)\n return a;\n else if (pb <= pc)\n return b;\n else\n return c;\n}\n//# sourceMappingURL=unfilter.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9oZWxwZXJzL3VuZmlsdGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQU87QUFDUCxvQkFBb0Isa0JBQWtCO0FBQ3RDO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQSxXQUFXLG1CQUFtQjtBQUM5QjtBQUNBO0FBQ0E7QUFDQSxXQUFXLGtCQUFrQjtBQUM3QjtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBLGVBQWUsa0JBQWtCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxrQkFBa0I7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQSxlQUFlLG1CQUFtQjtBQUNsQztBQUNBO0FBQ0EsZUFBZSxrQkFBa0I7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFtQjtBQUNsQztBQUNBO0FBQ0EsZUFBZSxrQkFBa0I7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0EsZUFBZSxtQkFBbUI7QUFDbEM7QUFDQTtBQUNBLGVBQWUsa0JBQWtCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtQkFBbUI7QUFDbEM7QUFDQTtBQUNBLGVBQWUsa0JBQWtCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92ZXJpZnlwYWNrLWZyb250ZW5kLy4vbm9kZV9tb2R1bGVzL2Zhc3QtcG5nL2xpYi1lc20vaGVscGVycy91bmZpbHRlci5qcz8yOGE4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiB1bmZpbHRlck5vbmUoY3VycmVudExpbmUsIG5ld0xpbmUsIGJ5dGVzUGVyTGluZSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZXNQZXJMaW5lOyBpKyspIHtcbiAgICAgICAgbmV3TGluZVtpXSA9IGN1cnJlbnRMaW5lW2ldO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiB1bmZpbHRlclN1YihjdXJyZW50TGluZSwgbmV3TGluZSwgYnl0ZXNQZXJMaW5lLCBieXRlc1BlclBpeGVsKSB7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoOyBpIDwgYnl0ZXNQZXJQaXhlbDsgaSsrKSB7XG4gICAgICAgIC8vIGp1c3QgY29weSBmaXJzdCBieXRlc1xuICAgICAgICBuZXdMaW5lW2ldID0gY3VycmVudExpbmVbaV07XG4gICAgfVxuICAgIGZvciAoOyBpIDwgYnl0ZXNQZXJMaW5lOyBpKyspIHtcbiAgICAgICAgbmV3TGluZVtpXSA9IChjdXJyZW50TGluZVtpXSArIG5ld0xpbmVbaSAtIGJ5dGVzUGVyUGl4ZWxdKSAmIDB4ZmY7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIHVuZmlsdGVyVXAoY3VycmVudExpbmUsIG5ld0xpbmUsIHByZXZMaW5lLCBieXRlc1BlckxpbmUpIHtcbiAgICBsZXQgaSA9IDA7XG4gICAgaWYgKHByZXZMaW5lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAvLyBqdXN0IGNvcHkgYnl0ZXMgZm9yIGZpcnN0IGxpbmVcbiAgICAgICAgZm9yICg7IGkgPCBieXRlc1BlckxpbmU7IGkrKykge1xuICAgICAgICAgICAgbmV3TGluZVtpXSA9IGN1cnJlbnRMaW5lW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBmb3IgKDsgaSA8IGJ5dGVzUGVyTGluZTsgaSsrKSB7XG4gICAgICAgICAgICBuZXdMaW5lW2ldID0gKGN1cnJlbnRMaW5lW2ldICsgcHJldkxpbmVbaV0pICYgMHhmZjtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiB1bmZpbHRlckF2ZXJhZ2UoY3VycmVudExpbmUsIG5ld0xpbmUsIHByZXZMaW5lLCBieXRlc1BlckxpbmUsIGJ5dGVzUGVyUGl4ZWwpIHtcbiAgICBsZXQgaSA9IDA7XG4gICAgaWYgKHByZXZMaW5lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBmb3IgKDsgaSA8IGJ5dGVzUGVyUGl4ZWw7IGkrKykge1xuICAgICAgICAgICAgbmV3TGluZVtpXSA9IGN1cnJlbnRMaW5lW2ldO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoOyBpIDwgYnl0ZXNQZXJMaW5lOyBpKyspIHtcbiAgICAgICAgICAgIG5ld0xpbmVbaV0gPSAoY3VycmVudExpbmVbaV0gKyAobmV3TGluZVtpIC0gYnl0ZXNQZXJQaXhlbF0gPj4gMSkpICYgMHhmZjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZm9yICg7IGkgPCBieXRlc1BlclBpeGVsOyBpKyspIHtcbiAgICAgICAgICAgIG5ld0xpbmVbaV0gPSAoY3VycmVudExpbmVbaV0gKyAocHJldkxpbmVbaV0gPj4gMSkpICYgMHhmZjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKDsgaSA8IGJ5dGVzUGVyTGluZTsgaSsrKSB7XG4gICAgICAgICAgICBuZXdMaW5lW2ldID1cbiAgICAgICAgICAgICAgICAoY3VycmVudExpbmVbaV0gKyAoKG5ld0xpbmVbaSAtIGJ5dGVzUGVyUGl4ZWxdICsgcHJldkxpbmVbaV0pID4+IDEpKSAmXG4gICAgICAgICAgICAgICAgICAgIDB4ZmY7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gdW5maWx0ZXJQYWV0aChjdXJyZW50TGluZSwgbmV3TGluZSwgcHJldkxpbmUsIGJ5dGVzUGVyTGluZSwgYnl0ZXNQZXJQaXhlbCkge1xuICAgIGxldCBpID0gMDtcbiAgICBpZiAocHJldkxpbmUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGZvciAoOyBpIDwgYnl0ZXNQZXJQaXhlbDsgaSsrKSB7XG4gICAgICAgICAgICBuZXdMaW5lW2ldID0gY3VycmVudExpbmVbaV07XG4gICAgICAgIH1cbiAgICAgICAgZm9yICg7IGkgPCBieXRlc1BlckxpbmU7IGkrKykge1xuICAgICAgICAgICAgbmV3TGluZVtpXSA9IChjdXJyZW50TGluZVtpXSArIG5ld0xpbmVbaSAtIGJ5dGVzUGVyUGl4ZWxdKSAmIDB4ZmY7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGZvciAoOyBpIDwgYnl0ZXNQZXJQaXhlbDsgaSsrKSB7XG4gICAgICAgICAgICBuZXdMaW5lW2ldID0gKGN1cnJlbnRMaW5lW2ldICsgcHJldkxpbmVbaV0pICYgMHhmZjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKDsgaSA8IGJ5dGVzUGVyTGluZTsgaSsrKSB7XG4gICAgICAgICAgICBuZXdMaW5lW2ldID1cbiAgICAgICAgICAgICAgICAoY3VycmVudExpbmVbaV0gK1xuICAgICAgICAgICAgICAgICAgICBwYWV0aFByZWRpY3RvcihuZXdMaW5lW2kgLSBieXRlc1BlclBpeGVsXSwgcHJldkxpbmVbaV0sIHByZXZMaW5lW2kgLSBieXRlc1BlclBpeGVsXSkpICZcbiAgICAgICAgICAgICAgICAgICAgMHhmZjtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHBhZXRoUHJlZGljdG9yKGEsIGIsIGMpIHtcbiAgICBjb25zdCBwID0gYSArIGIgLSBjO1xuICAgIGNvbnN0IHBhID0gTWF0aC5hYnMocCAtIGEpO1xuICAgIGNvbnN0IHBiID0gTWF0aC5hYnMocCAtIGIpO1xuICAgIGNvbnN0IHBjID0gTWF0aC5hYnMocCAtIGMpO1xuICAgIGlmIChwYSA8PSBwYiAmJiBwYSA8PSBwYylcbiAgICAgICAgcmV0dXJuIGE7XG4gICAgZWxzZSBpZiAocGIgPD0gcGMpXG4gICAgICAgIHJldHVybiBiO1xuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGM7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11bmZpbHRlci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/fast-png/lib-esm/helpers/unfilter.js\n"); /***/ }), /***/ "(ssr)/./node_modules/fast-png/lib-esm/index.js": /*!************************************************!*\ !*** ./node_modules/fast-png/lib-esm/index.js ***! \************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ResolutionUnitSpecifier: () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_3__.ResolutionUnitSpecifier),\n/* harmony export */ convertIndexedToRgb: () => (/* reexport safe */ _convertIndexedToRgb__WEBPACK_IMPORTED_MODULE_4__.convertIndexedToRgb),\n/* harmony export */ decode: () => (/* binding */ decodePng),\n/* harmony export */ decodeApng: () => (/* binding */ decodeApng),\n/* harmony export */ encode: () => (/* binding */ encodePng),\n/* harmony export */ hasPngSignature: () => (/* reexport safe */ _helpers_signature__WEBPACK_IMPORTED_MODULE_2__.hasPngSignature)\n/* harmony export */ });\n/* harmony import */ var _PngDecoder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PngDecoder */ \"(ssr)/./node_modules/fast-png/lib-esm/PngDecoder.js\");\n/* harmony import */ var _PngEncoder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PngEncoder */ \"(ssr)/./node_modules/fast-png/lib-esm/PngEncoder.js\");\n/* harmony import */ var _helpers_signature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers/signature */ \"(ssr)/./node_modules/fast-png/lib-esm/helpers/signature.js\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./types */ \"(ssr)/./node_modules/fast-png/lib-esm/types.js\");\n/* harmony import */ var _convertIndexedToRgb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./convertIndexedToRgb */ \"(ssr)/./node_modules/fast-png/lib-esm/convertIndexedToRgb.js\");\n\n\n\n\nfunction decodePng(data, options) {\n const decoder = new _PngDecoder__WEBPACK_IMPORTED_MODULE_0__[\"default\"](data, options);\n return decoder.decode();\n}\nfunction encodePng(png, options) {\n const encoder = new _PngEncoder__WEBPACK_IMPORTED_MODULE_1__[\"default\"](png, options);\n return encoder.encode();\n}\nfunction decodeApng(data, options) {\n const decoder = new _PngDecoder__WEBPACK_IMPORTED_MODULE_0__[\"default\"](data, options);\n return decoder.decodeApng();\n}\n\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFzQztBQUNBO0FBQ2dCO0FBQzlCO0FBQ3hCO0FBQ0Esd0JBQXdCLG1EQUFVO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixtREFBVTtBQUNsQztBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsbURBQVU7QUFDbEM7QUFDQTtBQUNnRTtBQUNKO0FBQzVEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmVyaWZ5cGFjay1mcm9udGVuZC8uL25vZGVfbW9kdWxlcy9mYXN0LXBuZy9saWItZXNtL2luZGV4LmpzP2ZjZWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFBuZ0RlY29kZXIgZnJvbSAnLi9QbmdEZWNvZGVyJztcbmltcG9ydCBQbmdFbmNvZGVyIGZyb20gJy4vUG5nRW5jb2Rlcic7XG5leHBvcnQgeyBoYXNQbmdTaWduYXR1cmUgfSBmcm9tICcuL2hlbHBlcnMvc2lnbmF0dXJlJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZnVuY3Rpb24gZGVjb2RlUG5nKGRhdGEsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBkZWNvZGVyID0gbmV3IFBuZ0RlY29kZXIoZGF0YSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKCk7XG59XG5mdW5jdGlvbiBlbmNvZGVQbmcocG5nLCBvcHRpb25zKSB7XG4gICAgY29uc3QgZW5jb2RlciA9IG5ldyBQbmdFbmNvZGVyKHBuZywgb3B0aW9ucyk7XG4gICAgcmV0dXJuIGVuY29kZXIuZW5jb2RlKCk7XG59XG5mdW5jdGlvbiBkZWNvZGVBcG5nKGRhdGEsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBkZWNvZGVyID0gbmV3IFBuZ0RlY29kZXIoZGF0YSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlQXBuZygpO1xufVxuZXhwb3J0IHsgZGVjb2RlUG5nIGFzIGRlY29kZSwgZW5jb2RlUG5nIGFzIGVuY29kZSwgZGVjb2RlQXBuZyB9O1xuZXhwb3J0IHsgY29udmVydEluZGV4ZWRUb1JnYiB9IGZyb20gJy4vY29udmVydEluZGV4ZWRUb1JnYic7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/fast-png/lib-esm/index.js\n"); /***/ }), /***/ "(ssr)/./node_modules/fast-png/lib-esm/internalTypes.js": /*!********************************************************!*\ !*** ./node_modules/fast-png/lib-esm/internalTypes.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BlendOpType: () => (/* binding */ BlendOpType),\n/* harmony export */ ColorType: () => (/* binding */ ColorType),\n/* harmony export */ CompressionMethod: () => (/* binding */ CompressionMethod),\n/* harmony export */ DisposeOpType: () => (/* binding */ DisposeOpType),\n/* harmony export */ FilterMethod: () => (/* binding */ FilterMethod),\n/* harmony export */ InterlaceMethod: () => (/* binding */ InterlaceMethod)\n/* harmony export */ });\nconst ColorType = {\n UNKNOWN: -1,\n GREYSCALE: 0,\n TRUECOLOUR: 2,\n INDEXED_COLOUR: 3,\n GREYSCALE_ALPHA: 4,\n TRUECOLOUR_ALPHA: 6,\n};\nconst CompressionMethod = {\n UNKNOWN: -1,\n DEFLATE: 0,\n};\nconst FilterMethod = {\n UNKNOWN: -1,\n ADAPTIVE: 0,\n};\nconst InterlaceMethod = {\n UNKNOWN: -1,\n NO_INTERLACE: 0,\n ADAM7: 1,\n};\nconst DisposeOpType = {\n NONE: 0,\n BACKGROUND: 1,\n PREVIOUS: 2,\n};\nconst BlendOpType = {\n SOURCE: 0,\n OVER: 1,\n};\n//# sourceMappingURL=internalTypes.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS9pbnRlcm5hbFR5cGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmVyaWZ5cGFjay1mcm9udGVuZC8uL25vZGVfbW9kdWxlcy9mYXN0LXBuZy9saWItZXNtL2ludGVybmFsVHlwZXMuanM/NDJiNyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ29sb3JUeXBlID0ge1xuICAgIFVOS05PV046IC0xLFxuICAgIEdSRVlTQ0FMRTogMCxcbiAgICBUUlVFQ09MT1VSOiAyLFxuICAgIElOREVYRURfQ09MT1VSOiAzLFxuICAgIEdSRVlTQ0FMRV9BTFBIQTogNCxcbiAgICBUUlVFQ09MT1VSX0FMUEhBOiA2LFxufTtcbmV4cG9ydCBjb25zdCBDb21wcmVzc2lvbk1ldGhvZCA9IHtcbiAgICBVTktOT1dOOiAtMSxcbiAgICBERUZMQVRFOiAwLFxufTtcbmV4cG9ydCBjb25zdCBGaWx0ZXJNZXRob2QgPSB7XG4gICAgVU5LTk9XTjogLTEsXG4gICAgQURBUFRJVkU6IDAsXG59O1xuZXhwb3J0IGNvbnN0IEludGVybGFjZU1ldGhvZCA9IHtcbiAgICBVTktOT1dOOiAtMSxcbiAgICBOT19JTlRFUkxBQ0U6IDAsXG4gICAgQURBTTc6IDEsXG59O1xuZXhwb3J0IGNvbnN0IERpc3Bvc2VPcFR5cGUgPSB7XG4gICAgTk9ORTogMCxcbiAgICBCQUNLR1JPVU5EOiAxLFxuICAgIFBSRVZJT1VTOiAyLFxufTtcbmV4cG9ydCBjb25zdCBCbGVuZE9wVHlwZSA9IHtcbiAgICBTT1VSQ0U6IDAsXG4gICAgT1ZFUjogMSxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbnRlcm5hbFR5cGVzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/fast-png/lib-esm/internalTypes.js\n"); /***/ }), /***/ "(ssr)/./node_modules/fast-png/lib-esm/types.js": /*!************************************************!*\ !*** ./node_modules/fast-png/lib-esm/types.js ***! \************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ResolutionUnitSpecifier: () => (/* binding */ ResolutionUnitSpecifier)\n/* harmony export */ });\nvar ResolutionUnitSpecifier;\n(function (ResolutionUnitSpecifier) {\n /**\n * Unit is unknown\n */\n ResolutionUnitSpecifier[ResolutionUnitSpecifier[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /**\n * Unit is the metre\n */\n ResolutionUnitSpecifier[ResolutionUnitSpecifier[\"METRE\"] = 1] = \"METRE\";\n})(ResolutionUnitSpecifier || (ResolutionUnitSpecifier = {}));\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS90eXBlcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDBEQUEwRDtBQUMzRCIsInNvdXJjZXMiOlsid2VicGFjazovL3ZlcmlmeXBhY2stZnJvbnRlbmQvLi9ub2RlX21vZHVsZXMvZmFzdC1wbmcvbGliLWVzbS90eXBlcy5qcz84MjZlIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB2YXIgUmVzb2x1dGlvblVuaXRTcGVjaWZpZXI7XG4oZnVuY3Rpb24gKFJlc29sdXRpb25Vbml0U3BlY2lmaWVyKSB7XG4gICAgLyoqXG4gICAgICogVW5pdCBpcyB1bmtub3duXG4gICAgICovXG4gICAgUmVzb2x1dGlvblVuaXRTcGVjaWZpZXJbUmVzb2x1dGlvblVuaXRTcGVjaWZpZXJbXCJVTktOT1dOXCJdID0gMF0gPSBcIlVOS05PV05cIjtcbiAgICAvKipcbiAgICAgKiBVbml0IGlzIHRoZSBtZXRyZVxuICAgICAqL1xuICAgIFJlc29sdXRpb25Vbml0U3BlY2lmaWVyW1Jlc29sdXRpb25Vbml0U3BlY2lmaWVyW1wiTUVUUkVcIl0gPSAxXSA9IFwiTUVUUkVcIjtcbn0pKFJlc29sdXRpb25Vbml0U3BlY2lmaWVyIHx8IChSZXNvbHV0aW9uVW5pdFNwZWNpZmllciA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD10eXBlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/fast-png/lib-esm/types.js\n"); /***/ }) }; ;