filesbox/web/dist/pdfjs/build/pdf.js.map
2024-07-26 14:10:54 +08:00

1 line
1.6 MiB
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"pdf.js","mappings":"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","sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/src/display/display_utils.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/regenerator/index.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://pdfjs-dist/build/pdf/src/shared/util.js","webpack://pdfjs-dist/build/pdf/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/global-this.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.global-this.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/export.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/descriptors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/fails.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-call.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-uncurry-this.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof-raw.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/require-object-coercible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-property-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-callable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-built-in.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-is-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-v8-version.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-user-agent.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-callable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/try-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/well-known-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-pure.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-store.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/has-own-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/ie8-dom-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/document-create-element.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/inspect-source.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-state.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/hidden-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-name.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/own-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys-internal.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-absolute-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/length-of-array-like.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/enum-bug-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-forced.js","webpack://pdfjs-dist/build/pdf/node_modules/dommatrix/dist/dommatrix.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/object/from-entries.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/add-to-unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/html.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/define-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-iterator-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators-core.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-possible-prototype.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.from-entries.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterate.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-bind-context.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-string-tag-support.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterator-close.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/path.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/promise/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.aggregate-error.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/clear-error-stack.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-slice-simple.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/install-error-cause.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/normalize-string-argument.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/error-stack-installable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-promise-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/task.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-apply.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-slice.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-ios.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/microtask.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/promise-resolve.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/new-promise-capability.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/host-report-errors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/perform.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-browser.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.all-settled.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.any.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.finally.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-multibyte.js","webpack://pdfjs-dist/build/pdf/node_modules/web-streams-polyfill/dist/ponyfill.js","webpack://pdfjs-dist/build/pdf/src/display/base_factory.js","webpack://pdfjs-dist/build/pdf/src/display/api.js","webpack://pdfjs-dist/build/pdf/src/display/font_loader.js","webpack://pdfjs-dist/build/pdf/src/display/node_utils.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_storage.js","webpack://pdfjs-dist/build/pdf/src/display/canvas.js","webpack://pdfjs-dist/build/pdf/src/display/pattern_helper.js","webpack://pdfjs-dist/build/pdf/src/display/worker_options.js","webpack://pdfjs-dist/build/pdf/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf/src/display/metadata.js","webpack://pdfjs-dist/build/pdf/src/display/optional_content_config.js","webpack://pdfjs-dist/build/pdf/src/display/transport_stream.js","webpack://pdfjs-dist/build/pdf/src/display/xfa_text.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_layer.js","webpack://pdfjs-dist/build/pdf/src/shared/scripting_utils.js","webpack://pdfjs-dist/build/pdf/src/display/xfa_layer.js","webpack://pdfjs-dist/build/pdf/src/display/text_layer.js","webpack://pdfjs-dist/build/pdf/src/display/svg.js","webpack://pdfjs-dist/build/pdf/src/display/node_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network_utils.js","webpack://pdfjs-dist/build/pdf/src/display/content_disposition.js","webpack://pdfjs-dist/build/pdf/src/display/network.js","webpack://pdfjs-dist/build/pdf/src/display/fetch_stream.js","webpack://pdfjs-dist/build/pdf/webpack/bootstrap","webpack://pdfjs-dist/build/pdf/webpack/runtime/node module decorator","webpack://pdfjs-dist/build/pdf/src/pdf.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(this, function() {\nreturn ","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n BaseException,\n isString,\n removeNullCharacters,\n shadow,\n stringToBytes,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n BaseCanvasFactory,\n BaseCMapReaderFactory,\n BaseStandardFontDataFactory,\n BaseSVGFactory,\n} from \"./base_factory.js\";\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nconst PixelsPerInch = {\n CSS: 96.0,\n PDF: 72.0,\n\n /** @type {number} */\n get PDF_TO_CSS_UNITS() {\n return shadow(this, \"PDF_TO_CSS_UNITS\", this.CSS / this.PDF);\n },\n};\n\nclass DOMCanvasFactory extends BaseCanvasFactory {\n constructor({ ownerDocument = globalThis.document } = {}) {\n super();\n this._document = ownerDocument;\n }\n\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n}\n\nasync function fetchData(url, asTypedArray = false) {\n if (\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n isValidFetchUrl(url, document.baseURI)\n ) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return asTypedArray\n ? new Uint8Array(await response.arrayBuffer())\n : stringToBytes(await response.text());\n }\n\n // The Fetch API is not supported.\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, /* asTypedArray = */ true);\n\n if (asTypedArray) {\n request.responseType = \"arraybuffer\";\n }\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n let data;\n if (asTypedArray && request.response) {\n data = new Uint8Array(request.response);\n } else if (!asTypedArray && request.responseText) {\n data = stringToBytes(request.responseText);\n }\n if (data) {\n resolve(data);\n return;\n }\n }\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n });\n}\n\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url, /* asTypedArray = */ this.isCompressed).then(data => {\n return { cMapData: data, compressionType };\n });\n }\n}\n\nclass DOMStandardFontDataFactory extends BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url, /* asTypedArray = */ true);\n }\n}\n\nclass DOMSVGFactory extends BaseSVGFactory {\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n}\n\n/**\n * @typedef {Object} PageViewportParameters\n * @property {Array<number>} viewBox - The xMin, yMin, xMax and\n * yMax coordinates.\n * @property {number} scale - The scale of the viewport.\n * @property {number} rotation - The rotation, in degrees, of the viewport.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset. The\n * default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset. The\n * default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be flipped.\n * The default value is `false`.\n */\n\n/**\n * @typedef {Object} PageViewportCloneParameters\n * @property {number} [scale] - The scale, overriding the one in the cloned\n * viewport. The default value is `this.scale`.\n * @property {number} [rotation] - The rotation, in degrees, overriding the one\n * in the cloned viewport. The default value is `this.rotation`.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n * The default value is `this.offsetX`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n * The default value is `this.offsetY`.\n * @property {boolean} [dontFlip] - If true, the x-axis will not be flipped.\n * The default value is `false`.\n */\n\n/**\n * PDF page viewport created based on scale, rotation and offset.\n */\nclass PageViewport {\n /**\n * @param {PageViewportParameters}\n */\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false,\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n\n // creating transform to convert pdf coordinate system to the normal\n // canvas like coordinates taking in account scale and rotation\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n // Normalize the rotation, by clamping it to the [0, 360) range.\n rotation %= 360;\n if (rotation < 0) {\n rotation += 360;\n }\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n default:\n throw new Error(\n \"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\"\n );\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n // creating transform for the following operations:\n // translate(-centerX, -centerY), rotate and flip vertically,\n // scale, and translate(offsetCanvasX, offsetCanvasY)\n this.transform = [\n rotateA * scale,\n rotateB * scale,\n rotateC * scale,\n rotateD * scale,\n offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,\n offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY,\n ];\n\n this.width = width;\n this.height = height;\n }\n\n /**\n * Clones viewport, with optional additional properties.\n * @param {PageViewportCloneParameters} [params]\n * @returns {PageViewport} Cloned viewport.\n */\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false,\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip,\n });\n }\n\n /**\n * Converts PDF point to the viewport coordinates. For examples, useful for\n * converting PDF location into canvas pixel coordinates.\n * @param {number} x - The x-coordinate.\n * @param {number} y - The y-coordinate.\n * @returns {Object} Object containing `x` and `y` properties of the\n * point in the viewport coordinate space.\n * @see {@link convertToPdfPoint}\n * @see {@link convertToViewportRectangle}\n */\n convertToViewportPoint(x, y) {\n return Util.applyTransform([x, y], this.transform);\n }\n\n /**\n * Converts PDF rectangle to the viewport coordinates.\n * @param {Array} rect - The xMin, yMin, xMax and yMax coordinates.\n * @returns {Array} Array containing corresponding coordinates of the\n * rectangle in the viewport coordinate space.\n * @see {@link convertToViewportPoint}\n */\n convertToViewportRectangle(rect) {\n const topLeft = Util.applyTransform([rect[0], rect[1]], this.transform);\n const bottomRight = Util.applyTransform([rect[2], rect[3]], this.transform);\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n\n /**\n * Converts viewport coordinates to the PDF location. For examples, useful\n * for converting canvas pixel location into PDF one.\n * @param {number} x - The x-coordinate.\n * @param {number} y - The y-coordinate.\n * @returns {Object} Object containing `x` and `y` properties of the\n * point in the PDF coordinate space.\n * @see {@link convertToViewportPoint}\n */\n convertToPdfPoint(x, y) {\n return Util.applyInverseTransform([x, y], this.transform);\n }\n}\n\nclass RenderingCancelledException extends BaseException {\n constructor(msg, type) {\n super(msg, \"RenderingCancelledException\");\n this.type = type;\n }\n}\n\nconst LinkTarget = {\n NONE: 0, // Default value.\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4,\n};\n\n/**\n * @typedef ExternalLinkParameters\n * @typedef {Object} ExternalLinkParameters\n * @property {string} url - An absolute URL.\n * @property {LinkTarget} [target] - The link target. The default value is\n * `LinkTarget.NONE`.\n * @property {string} [rel] - The link relationship. The default value is\n * `DEFAULT_LINK_REL`.\n * @property {boolean} [enabled] - Whether the link should be enabled. The\n * default value is true.\n */\n\n/**\n * Adds various attributes (href, title, target, rel) to hyperlinks.\n * @param {HTMLAnchorElement} link - The link element.\n * @param {ExternalLinkParameters} params\n */\nfunction addLinkAttributes(link, { url, target, rel, enabled = true } = {}) {\n assert(\n url && typeof url === \"string\",\n 'addLinkAttributes: A valid \"url\" parameter must provided.'\n );\n\n const urlNullRemoved = removeNullCharacters(url);\n if (enabled) {\n link.href = link.title = urlNullRemoved;\n } else {\n link.href = \"\";\n link.title = `Disabled: ${urlNullRemoved}`;\n link.onclick = () => {\n return false;\n };\n }\n\n let targetStr = \"\"; // LinkTarget.NONE\n switch (target) {\n case LinkTarget.NONE:\n break;\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n link.target = targetStr;\n\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\n\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\n\n/**\n * Gets the filename from a given URL.\n * @param {string} url\n * @returns {string}\n */\nfunction getFilenameFromUrl(url) {\n const anchor = url.indexOf(\"#\");\n const query = url.indexOf(\"?\");\n const end = Math.min(\n anchor > 0 ? anchor : url.length,\n query > 0 ? query : url.length\n );\n return url.substring(url.lastIndexOf(\"/\", end) + 1, end);\n}\n\n/**\n * Returns the filename or guessed filename from the url (see issue 3455).\n * @param {string} url - The original PDF location.\n * @param {string} defaultFilename - The value returned if the filename is\n * unknown, or the protocol is unsupported.\n * @returns {string} Guessed PDF filename.\n */\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n if (isDataScheme(url)) {\n warn('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n // SCHEME HOST 1.PATH 2.QUERY 3.REF\n // Pattern to get last matching NAME.pdf\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename =\n reFilename.exec(splitURI[1]) ||\n reFilename.exec(splitURI[2]) ||\n reFilename.exec(splitURI[3]);\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n if (suggestedFilename.includes(\"%\")) {\n // URL-encoded %2Fpath%2Fto%2Ffile.pdf should be file.pdf\n try {\n suggestedFilename = reFilename.exec(\n decodeURIComponent(suggestedFilename)\n )[0];\n } catch (ex) {\n // Possible (extremely rare) errors:\n // URIError \"Malformed URI\", e.g. for \"%AA.pdf\"\n // TypeError \"null has no properties\", e.g. for \"%2F.pdf\"\n }\n }\n }\n return suggestedFilename || defaultFilename;\n}\n\nclass StatTimer {\n constructor() {\n this.started = Object.create(null);\n this.times = [];\n }\n\n time(name) {\n if (name in this.started) {\n warn(`Timer is already running for ${name}`);\n }\n this.started[name] = Date.now();\n }\n\n timeEnd(name) {\n if (!(name in this.started)) {\n warn(`Timer has not been started for ${name}`);\n }\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now(),\n });\n // Remove timer from started so it can be called again.\n delete this.started[name];\n }\n\n toString() {\n // Find the longest name for padding purposes.\n const outBuf = [];\n let longest = 0;\n for (const time of this.times) {\n const name = time.name;\n if (name.length > longest) {\n longest = name.length;\n }\n }\n for (const time of this.times) {\n const duration = time.end - time.start;\n outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\\n`);\n }\n return outBuf.join(\"\");\n }\n}\n\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const { protocol } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n // The Fetch API only supports the http/https protocols, and not file/ftp.\n return protocol === \"http:\" || protocol === \"https:\";\n } catch (ex) {\n return false; // `new URL()` will throw on incorrect data.\n }\n}\n\n/**\n * @param {string} src\n * @param {boolean} [removeScriptElement]\n * @returns {Promise<void>}\n */\nfunction loadScript(src, removeScriptElement = false) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n\n script.onload = function (evt) {\n if (removeScriptElement) {\n script.remove();\n }\n resolve(evt);\n };\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n (document.head || document.documentElement).appendChild(script);\n });\n}\n\n// Deprecated API function -- display regardless of the `verbosity` setting.\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n /**\n * Convert a PDF date string to a JavaScript `Date` object.\n *\n * The PDF date string format is described in section 7.9.4 of the official\n * PDF 32000-1:2008 specification. However, in the PDF 1.7 reference (sixth\n * edition) Adobe describes the same format including a trailing apostrophe.\n * This syntax in incorrect, but Adobe Acrobat creates PDF files that contain\n * them. We ignore all apostrophes as they are not necessary for date parsing.\n *\n * Moreover, Adobe Acrobat doesn't handle changing the date to universal time\n * and doesn't use the user's time zone (effectively ignoring the HH' and mm'\n * parts of the date string).\n *\n * @param {string} input\n * @returns {Date|null}\n */\n static toDateObject(input) {\n if (!input || !isString(input)) {\n return null;\n }\n\n // Lazily initialize the regular expression.\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\n \"^D:\" + // Prefix (required)\n \"(\\\\d{4})\" + // Year (required)\n \"(\\\\d{2})?\" + // Month (optional)\n \"(\\\\d{2})?\" + // Day (optional)\n \"(\\\\d{2})?\" + // Hour (optional)\n \"(\\\\d{2})?\" + // Minute (optional)\n \"(\\\\d{2})?\" + // Second (optional)\n \"([Z|+|-])?\" + // Universal time relation (optional)\n \"(\\\\d{2})?\" + // Offset hour (optional)\n \"'?\" + // Splitting apostrophe (optional)\n \"(\\\\d{2})?\" + // Offset minute (optional)\n \"'?\" // Trailing apostrophe (optional)\n );\n }\n\n // Optional fields that don't satisfy the requirements from the regular\n // expression (such as incorrect digit counts or numbers that are out of\n // range) will fall back the defaults from the specification.\n const matches = pdfDateStringRegex.exec(input);\n if (!matches) {\n return null;\n }\n\n // JavaScript's `Date` object expects the month to be between 0 and 11\n // instead of 1 and 12, so we have to correct for that.\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n // Universal time relation 'Z' means that the local time is equal to the\n // universal time, whereas the relations '+'/'-' indicate that the local\n // time is later respectively earlier than the universal time. Every date\n // is normalized to universal time.\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n}\n\n/**\n * NOTE: This is (mostly) intended to support printing of XFA forms.\n */\nfunction getXfaPageViewport(xfaPage, { scale = 1, rotation = 0 }) {\n const { width, height } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n\n return new PageViewport({\n viewBox,\n scale,\n rotation,\n });\n}\n\nexport {\n addLinkAttributes,\n deprecated,\n DOMCanvasFactory,\n DOMCMapReaderFactory,\n DOMStandardFontDataFactory,\n DOMSVGFactory,\n getFilenameFromUrl,\n getPdfFilenameFromUrl,\n getXfaPageViewport,\n isDataScheme,\n isPdfFile,\n isValidFetchUrl,\n LinkTarget,\n loadScript,\n PageViewport,\n PDFDateString,\n PixelsPerInch,\n RenderingCancelledException,\n StatTimer,\n};\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport \"./compatibility.js\";\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n /** @deprecated unused */\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n /** @deprecated unused */\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n /** @deprecated unused */\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\",\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.\nfunction isSameOrigin(baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false; // non-HTTP url\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nconst NullCharactersRegExp = /\\x00+/g;\nconst InvisibleCharactersRegExp = /[\\x01-\\x1F]/g;\n\n/**\n * @param {string} str\n */\nfunction removeNullCharacters(str, replaceInvisible = false) {\n if (typeof str !== \"string\") {\n warn(\"The argument for removeNullCharacters must be a string.\");\n return str;\n }\n if (replaceInvisible) {\n str = str.replace(InvisibleCharactersRegExp, \" \");\n }\n return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n assert(\n bytes !== null && typeof bytes === \"object\" && bytes.length !== undefined,\n \"Invalid argument for bytesToString\"\n );\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n assert(typeof str === \"string\", \"Invalid argument for stringToBytes\");\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array<any>|Uint8Array|string} arr\n * @returns {number}\n */\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n assert(arr.byteLength !== undefined, \"arrayByteLength - invalid argument.\");\n return arr.byteLength;\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array<Array<any>|Uint8Array|string>} arr - the array of the arrays\n * (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n const length = arr.length;\n // Shortcut: if first and only item is Uint8Array, return it.\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n let resultLength = 0;\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n let pos = 0;\n const data = new Uint8Array(resultLength);\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n `string32: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\nconst IsLittleEndianCached = {\n get value() {\n return shadow(this, \"value\", isLittleEndian());\n },\n};\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(\"\"); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\nconst IsEvalSupportedCached = {\n get value() {\n return shadow(this, \"value\", isEvalSupported());\n },\n};\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // For 2d affine transforms\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1]),\n ];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n static apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2],\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'false'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n // Order points along the axes\n const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);\n const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);\n const result = [];\n\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n // X: first and second points belong to different rectangles?\n if (\n (orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||\n (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])\n ) {\n // Intersection must be between second and third points\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return null;\n }\n\n // Y: first and second points belong to different rectangles?\n if (\n (orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||\n (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])\n ) {\n // Intersection must be between second and third points\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return null;\n }\n\n return result;\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] =\n mt * mt * mt * x0 +\n 3 * mt * mt * t * x1 +\n 3 * mt * t * t * x2 +\n t * t * t * x3;\n bounds[1][j] =\n mt * mt * mt * y0 +\n 3 * mt * mt * t * y1 +\n 3 * mt * t * t * y2 +\n t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return [\n Math.min(...bounds[0]),\n Math.min(...bounds[1]),\n Math.max(...bounds[0]),\n Math.max(...bounds[1]),\n ];\n }\n}\n\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n const length = str.length,\n strBuf = [];\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n // UTF16BE BOM\n for (let i = 2; i < length; i += 2) {\n strBuf.push(\n String.fromCharCode((str.charCodeAt(i) << 8) | str.charCodeAt(i + 1))\n );\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n // UTF16LE BOM\n for (let i = 2; i < length; i += 2) {\n strBuf.push(\n String.fromCharCode((str.charCodeAt(i + 1) << 8) | str.charCodeAt(i))\n );\n }\n } else {\n for (let i = 0; i < length; ++i) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n }\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n // replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\"\n // by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n // in order to write it in a PDF file.\n return str.replace(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n String.fromCharCode((char >> 8) & 0xff),\n String.fromCharCode(char & 0xff)\n );\n }\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isBool(v) {\n return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n return typeof v === \"number\";\n}\n\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise<any>} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nfunction createObjectURL(data, contentType = \"\", forceDataSchema = false) {\n if (URL.createObjectURL && typeof Blob !== \"undefined\" && !forceDataSchema) {\n return URL.createObjectURL(new Blob([data], { type: contentType }));\n }\n // Blob/createObjectURL is not available, falling back to data schema.\n const digits =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n let buffer = `data:${contentType};base64,`;\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n const b1 = data[i] & 0xff;\n const b2 = data[i + 1] & 0xff;\n const b3 = data[i + 2] & 0xff;\n const d1 = b1 >> 2,\n d2 = ((b1 & 3) << 4) | (b2 >> 4);\n const d3 = i + 1 < ii ? ((b2 & 0xf) << 2) | (b3 >> 6) : 64;\n const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n}\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMarkedState,\n AnnotationMode,\n AnnotationReplyType,\n AnnotationReviewState,\n AnnotationStateModelType,\n AnnotationType,\n arrayByteLength,\n arraysToBytes,\n assert,\n BaseException,\n bytesToString,\n CMapCompressionType,\n createObjectURL,\n createPromiseCapability,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n escapeString,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n getModificationDate,\n getVerbosityLevel,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isArrayEqual,\n isAscii,\n isBool,\n IsEvalSupportedCached,\n IsLittleEndianCached,\n isNum,\n isSameOrigin,\n isString,\n MissingPDFException,\n objectFromMap,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n removeNullCharacters,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n StreamType,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF16BEString,\n stringToUTF8String,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n UNSUPPORTED_FEATURES,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isNodeJS } from \"./is_node.js\";\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"SKIP_BABEL\")) &&\n (typeof globalThis === \"undefined\" || !globalThis._pdfjsCompatibilityChecked)\n) {\n // Provides support for `globalThis` in legacy browsers.\n // Support: Firefox<65, Chrome<71, Safari<12.1, Node.js<12.0.0\n if (typeof globalThis === \"undefined\" || globalThis.Math !== Math) {\n // eslint-disable-next-line no-global-assign\n globalThis = require(\"core-js/es/global-this\");\n }\n globalThis._pdfjsCompatibilityChecked = true;\n\n // Support: Node.js\n (function checkNodeBtoa() {\n if (globalThis.btoa || !isNodeJS) {\n return;\n }\n globalThis.btoa = function (chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, \"binary\").toString(\"base64\");\n };\n })();\n\n // Support: Node.js\n (function checkNodeAtob() {\n if (globalThis.atob || !isNodeJS) {\n return;\n }\n globalThis.atob = function (input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, \"base64\").toString(\"binary\");\n };\n })();\n\n // Support: Node.js\n (function checkDOMMatrix() {\n if (globalThis.DOMMatrix || !isNodeJS) {\n return;\n }\n globalThis.DOMMatrix = require(\"dommatrix/dist/dommatrix.js\");\n })();\n\n // Provides support for Object.fromEntries in legacy browsers.\n // Support: Firefox<63, Chrome<73, Safari<12.1, Node.js<12.0.0\n (function checkObjectFromEntries() {\n if (Object.fromEntries) {\n return;\n }\n require(\"core-js/es/object/from-entries.js\");\n })();\n\n // Provides support for *recent* additions to the Promise specification,\n // however basic Promise support is assumed to be available natively.\n // Support: Firefox<71, Chrome<76, Safari<13, Node.js<12.9.0\n (function checkPromise() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `Promise` shouldn't\n // need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.Promise.allSettled) {\n return;\n }\n globalThis.Promise = require(\"core-js/es/promise/index.js\");\n })();\n\n // Support: Node.js\n (function checkReadableStream() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `ReadableStream`\n // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"CHROME\")) {\n // Slightly reduce the size of the Chromium-extension, given\n // that `ReadableStream` has been supported since Chrome 43.\n return;\n }\n if (globalThis.ReadableStream || !isNodeJS) {\n return;\n }\n globalThis.ReadableStream =\n require(\"web-streams-polyfill/dist/ponyfill.js\").ReadableStream;\n })();\n}\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nexport { isNodeJS };\n","require('../modules/es.global-this');\n\nmodule.exports = require('../internals/global');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true }, {\n globalThis: global\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.19.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","/*!\n* DOMMatrix v0.0.24 (https://thednp.github.io/DOMMatrix/)\n* Copyright 2021 © thednp\n* Licensed under MIT (https://github.com/thednp/DOMMatrix/blob/master/LICENSE)\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.CSSMatrix = factory());\n})(this, (function () { 'use strict';\n\n // DOMMatrix Static methods\n // * `fromFloat64Array` and `fromFloat32Array are not implemented;\n // * `fromArray` is a more simple implementation, should also accept Float[32/64]Array;\n // * `fromMatrix` load values from another CSSMatrix/DOMMatrix instance or JSON object;\n // * `fromString` parses and loads values from any valid CSS transform string (TransformList).\n\n /**\n * Creates a new mutable `CSSMatrix` instance given an array of 16/6 floating point values.\n * This static method invalidates arrays that contain non-number elements.\n *\n * If the array has six values, the result is a 2D matrix; if the array has 16 values,\n * the result is a 3D matrix. Otherwise, a TypeError exception is thrown.\n *\n * @param {number[]} array an `Array` to feed values from.\n * @return {CSSMatrix} the resulted matrix.\n */\n function fromArray(array) {\n var m = new CSSMatrix();\n var a = Array.from(array);\n\n if (!a.every(function (n) { return !Number.isNaN(n); })) {\n throw TypeError((\"CSSMatrix: \\\"\" + array + \"\\\" must only have numbers.\"));\n }\n if (a.length === 16) {\n var m11 = a[0];\n var m12 = a[1];\n var m13 = a[2];\n var m14 = a[3];\n var m21 = a[4];\n var m22 = a[5];\n var m23 = a[6];\n var m24 = a[7];\n var m31 = a[8];\n var m32 = a[9];\n var m33 = a[10];\n var m34 = a[11];\n var m41 = a[12];\n var m42 = a[13];\n var m43 = a[14];\n var m44 = a[15];\n\n m.m11 = m11;\n m.a = m11;\n\n m.m21 = m21;\n m.c = m21;\n\n m.m31 = m31;\n\n m.m41 = m41;\n m.e = m41;\n\n m.m12 = m12;\n m.b = m12;\n\n m.m22 = m22;\n m.d = m22;\n\n m.m32 = m32;\n\n m.m42 = m42;\n m.f = m42;\n\n m.m13 = m13;\n m.m23 = m23;\n m.m33 = m33;\n m.m43 = m43;\n m.m14 = m14;\n m.m24 = m24;\n m.m34 = m34;\n m.m44 = m44;\n } else if (a.length === 6) {\n var M11 = a[0];\n var M12 = a[1];\n var M21 = a[2];\n var M22 = a[3];\n var M41 = a[4];\n var M42 = a[5];\n\n m.m11 = M11;\n m.a = M11;\n\n m.m12 = M12;\n m.b = M12;\n\n m.m21 = M21;\n m.c = M21;\n\n m.m22 = M22;\n m.d = M22;\n\n m.m41 = M41;\n m.e = M41;\n\n m.m42 = M42;\n m.f = M42;\n } else {\n throw new TypeError('CSSMatrix: expecting an Array of 6/16 values.');\n }\n return m;\n }\n\n /**\n * Creates a new mutable `CSSMatrix` instance given an existing matrix or a\n * `DOMMatrix` instance which provides the values for its properties.\n *\n * @param {CSSMatrix | DOMMatrix | CSSMatrix.JSONMatrix} m the source matrix to feed values from.\n * @return {CSSMatrix} the resulted matrix.\n */\n function fromMatrix(m) {\n var keys = Object.keys(new CSSMatrix());\n if (typeof m === 'object' && keys.every(function (k) { return k in m; })) {\n return fromArray(\n [m.m11, m.m12, m.m13, m.m14,\n m.m21, m.m22, m.m23, m.m24,\n m.m31, m.m32, m.m33, m.m34,\n m.m41, m.m42, m.m43, m.m44]\n );\n }\n throw TypeError((\"CSSMatrix: \\\"\" + m + \"\\\" is not a DOMMatrix / CSSMatrix / JSON compatible object.\"));\n }\n\n /**\n * Creates a new mutable `CSSMatrix` given any valid CSS transform string,\n * or what we call `TransformList`:\n *\n * * `matrix(a, b, c, d, e, f)` - valid matrix() transform function\n * * `matrix3d(m11, m12, m13, ...m44)` - valid matrix3d() transform function\n * * `translate(tx, ty) rotateX(alpha)` - any valid transform function(s)\n *\n * @copyright thednp © 2021\n *\n * @param {string} source valid CSS transform string syntax.\n * @return {CSSMatrix} the resulted matrix.\n */\n function fromString(source) {\n if (typeof source !== 'string') {\n throw TypeError((\"CSSMatrix: \\\"\" + source + \"\\\" is not a string.\"));\n }\n var str = String(source).replace(/\\s/g, '');\n var m = new CSSMatrix();\n var invalidStringError = \"CSSMatrix: invalid transform string \\\"\" + source + \"\\\"\";\n\n // const px = ['perspective'];\n // const length = ['translate', 'translate3d', 'translateX', 'translateY', 'translateZ'];\n // const deg = ['rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'skew', 'skewX', 'skewY'];\n // const abs = ['scale', 'scale3d', 'matrix', 'matrix3d'];\n // const transformFunctions = px.concat(length, deg, abs);\n\n str.split(')').filter(function (f) { return f; }).forEach(function (tf) {\n var ref = tf.split('(');\n var prop = ref[0];\n var value = ref[1];\n\n // invalidate empty string\n if (!value) { throw TypeError(invalidStringError); }\n\n var components = value.split(',')\n .map(function (n) { return (n.includes('rad') ? parseFloat(n) * (180 / Math.PI) : parseFloat(n)); });\n\n var x = components[0];\n var y = components[1];\n var z = components[2];\n var a = components[3];\n var xyz = [x, y, z];\n var xyza = [x, y, z, a];\n\n // single number value expected\n if (prop === 'perspective' && x && [y, z].every(function (n) { return n === undefined; })) {\n m.m34 = -1 / x;\n // 6/16 number values expected\n } else if (prop.includes('matrix') && [6, 16].includes(components.length)\n && components.every(function (n) { return !Number.isNaN(+n); })) {\n var values = components.map(function (n) { return (Math.abs(n) < 1e-6 ? 0 : n); });\n m = m.multiply(fromArray(values));\n // 3 values expected\n } else if (prop === 'translate3d' && xyz.every(function (n) { return !Number.isNaN(+n); })) {\n m = m.translate(x, y, z);\n // single/double number value(s) expected\n } else if (prop === 'translate' && x && z === undefined) {\n m = m.translate(x, y || 0, 0);\n // all 4 values expected\n } else if (prop === 'rotate3d' && xyza.every(function (n) { return !Number.isNaN(+n); }) && a) {\n m = m.rotateAxisAngle(x, y, z, a);\n // single value expected\n } else if (prop === 'rotate' && x && [y, z].every(function (n) { return n === undefined; })) {\n m = m.rotate(0, 0, x);\n // 4 values expected\n } else if (prop === 'scale3d' && xyz.every(function (n) { return !Number.isNaN(+n); }) && xyz.some(function (n) { return n !== 1; })) {\n m = m.scale(x, y, z);\n // single value expected\n } else if (prop === 'scale' && !Number.isNaN(x) && x !== 1 && z === undefined) {\n var nosy = Number.isNaN(+y);\n var sy = nosy ? x : y;\n m = m.scale(x, sy, 1);\n // single/double value expected\n } else if (prop === 'skew' && x && z === undefined) {\n m = m.skewX(x);\n m = y ? m.skewY(y) : m;\n } else if (/[XYZ]/.test(prop) && x && [y, z].every(function (n) { return n === undefined; }) // a single value expected\n && ['translate', 'rotate', 'scale', 'skew'].some(function (p) { return prop.includes(p); })) {\n if (['skewX', 'skewY'].includes(prop)) {\n // @ts-ignore unfortunately\n m = m[prop](x);\n } else {\n var fn = prop.replace(/[XYZ]/, '');\n var axis = prop.replace(fn, '');\n var idx = ['X', 'Y', 'Z'].indexOf(axis);\n var axeValues = [\n idx === 0 ? x : 0,\n idx === 1 ? x : 0,\n idx === 2 ? x : 0];\n // @ts-ignore unfortunately\n m = m[fn].apply(m, axeValues);\n }\n } else {\n throw TypeError(invalidStringError);\n }\n });\n\n return m;\n }\n\n // Transform Functions\n // https://www.w3.org/TR/css-transforms-1/#transform-functions\n\n /**\n * Creates a new `CSSMatrix` for the translation matrix and returns it.\n * This method is equivalent to the CSS `translate3d()` function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate3d\n *\n * @param {number} x the `x-axis` position.\n * @param {number} y the `y-axis` position.\n * @param {number} z the `z-axis` position.\n * @return {CSSMatrix} the resulted matrix.\n */\n function Translate(x, y, z) {\n var m = new CSSMatrix();\n m.m41 = x;\n m.e = x;\n m.m42 = y;\n m.f = y;\n m.m43 = z;\n return m;\n }\n\n /**\n * Creates a new `CSSMatrix` for the rotation matrix and returns it.\n *\n * http://en.wikipedia.org/wiki/Rotation_matrix\n *\n * @param {number} rx the `x-axis` rotation.\n * @param {number} ry the `y-axis` rotation.\n * @param {number} rz the `z-axis` rotation.\n * @return {CSSMatrix} the resulted matrix.\n */\n function Rotate(rx, ry, rz) {\n var m = new CSSMatrix();\n var degToRad = Math.PI / 180;\n var radX = rx * degToRad;\n var radY = ry * degToRad;\n var radZ = rz * degToRad;\n\n // minus sin() because of right-handed system\n var cosx = Math.cos(radX);\n var sinx = -Math.sin(radX);\n var cosy = Math.cos(radY);\n var siny = -Math.sin(radY);\n var cosz = Math.cos(radZ);\n var sinz = -Math.sin(radZ);\n\n var m11 = cosy * cosz;\n var m12 = -cosy * sinz;\n\n m.m11 = m11;\n m.a = m11;\n\n m.m12 = m12;\n m.b = m12;\n\n m.m13 = siny;\n\n var m21 = sinx * siny * cosz + cosx * sinz;\n m.m21 = m21;\n m.c = m21;\n\n var m22 = cosx * cosz - sinx * siny * sinz;\n m.m22 = m22;\n m.d = m22;\n\n m.m23 = -sinx * cosy;\n\n m.m31 = sinx * sinz - cosx * siny * cosz;\n m.m32 = sinx * cosz + cosx * siny * sinz;\n m.m33 = cosx * cosy;\n\n return m;\n }\n\n /**\n * Creates a new `CSSMatrix` for the rotation matrix and returns it.\n * This method is equivalent to the CSS `rotate3d()` function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate3d\n *\n * @param {number} x the `x-axis` vector length.\n * @param {number} y the `y-axis` vector length.\n * @param {number} z the `z-axis` vector length.\n * @param {number} alpha the value in degrees of the rotation.\n * @return {CSSMatrix} the resulted matrix.\n */\n function RotateAxisAngle(x, y, z, alpha) {\n var m = new CSSMatrix();\n var angle = alpha * (Math.PI / 360);\n var sinA = Math.sin(angle);\n var cosA = Math.cos(angle);\n var sinA2 = sinA * sinA;\n var length = Math.sqrt(x * x + y * y + z * z);\n var X = x;\n var Y = y;\n var Z = z;\n\n if (length === 0) {\n // bad vector length, use something reasonable\n X = 0;\n Y = 0;\n Z = 1;\n } else {\n X /= length;\n Y /= length;\n Z /= length;\n }\n\n var x2 = X * X;\n var y2 = Y * Y;\n var z2 = Z * Z;\n\n var m11 = 1 - 2 * (y2 + z2) * sinA2;\n m.m11 = m11;\n m.a = m11;\n\n var m12 = 2 * (X * Y * sinA2 + Z * sinA * cosA);\n m.m12 = m12;\n m.b = m12;\n\n m.m13 = 2 * (X * Z * sinA2 - Y * sinA * cosA);\n\n var m21 = 2 * (Y * X * sinA2 - Z * sinA * cosA);\n m.m21 = m21;\n m.c = m21;\n\n var m22 = 1 - 2 * (z2 + x2) * sinA2;\n m.m22 = m22;\n m.d = m22;\n\n m.m23 = 2 * (Y * Z * sinA2 + X * sinA * cosA);\n m.m31 = 2 * (Z * X * sinA2 + Y * sinA * cosA);\n m.m32 = 2 * (Z * Y * sinA2 - X * sinA * cosA);\n m.m33 = 1 - 2 * (x2 + y2) * sinA2;\n\n return m;\n }\n\n /**\n * Creates a new `CSSMatrix` for the scale matrix and returns it.\n * This method is equivalent to the CSS `scale3d()` function, except it doesn't\n * accept {x, y, z} transform origin parameters.\n *\n * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scale3d\n *\n * @param {number} x the `x-axis` scale.\n * @param {number} y the `y-axis` scale.\n * @param {number} z the `z-axis` scale.\n * @return {CSSMatrix} the resulted matrix.\n */\n function Scale(x, y, z) {\n var m = new CSSMatrix();\n m.m11 = x;\n m.a = x;\n\n m.m22 = y;\n m.d = y;\n\n m.m33 = z;\n return m;\n }\n\n /**\n * Creates a new `CSSMatrix` for the shear of the `x-axis` rotation matrix and\n * returns it. This method is equivalent to the CSS `skewX()` function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skewX\n *\n * @param {number} angle the angle in degrees.\n * @return {CSSMatrix} the resulted matrix.\n */\n function SkewX(angle) {\n var m = new CSSMatrix();\n var radA = (angle * Math.PI) / 180;\n var t = Math.tan(radA);\n m.m21 = t;\n m.c = t;\n return m;\n }\n\n /**\n * Creates a new `CSSMatrix` for the shear of the `y-axis` rotation matrix and\n * returns it. This method is equivalent to the CSS `skewY()` function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skewY\n *\n * @param {number} angle the angle in degrees.\n * @return {CSSMatrix} the resulted matrix.\n */\n function SkewY(angle) {\n var m = new CSSMatrix();\n var radA = (angle * Math.PI) / 180;\n var t = Math.tan(radA);\n m.m12 = t;\n m.b = t;\n return m;\n }\n\n /**\n * Creates a new `CSSMatrix` resulted from the multiplication of two matrixes\n * and returns it. Both matrixes are not changed.\n *\n * @param {CSSMatrix} m1 the first matrix.\n * @param {CSSMatrix} m2 the second matrix.\n * @return {CSSMatrix} the resulted matrix.\n */\n function Multiply(m1, m2) {\n var m11 = m2.m11 * m1.m11 + m2.m12 * m1.m21 + m2.m13 * m1.m31 + m2.m14 * m1.m41;\n var m12 = m2.m11 * m1.m12 + m2.m12 * m1.m22 + m2.m13 * m1.m32 + m2.m14 * m1.m42;\n var m13 = m2.m11 * m1.m13 + m2.m12 * m1.m23 + m2.m13 * m1.m33 + m2.m14 * m1.m43;\n var m14 = m2.m11 * m1.m14 + m2.m12 * m1.m24 + m2.m13 * m1.m34 + m2.m14 * m1.m44;\n\n var m21 = m2.m21 * m1.m11 + m2.m22 * m1.m21 + m2.m23 * m1.m31 + m2.m24 * m1.m41;\n var m22 = m2.m21 * m1.m12 + m2.m22 * m1.m22 + m2.m23 * m1.m32 + m2.m24 * m1.m42;\n var m23 = m2.m21 * m1.m13 + m2.m22 * m1.m23 + m2.m23 * m1.m33 + m2.m24 * m1.m43;\n var m24 = m2.m21 * m1.m14 + m2.m22 * m1.m24 + m2.m23 * m1.m34 + m2.m24 * m1.m44;\n\n var m31 = m2.m31 * m1.m11 + m2.m32 * m1.m21 + m2.m33 * m1.m31 + m2.m34 * m1.m41;\n var m32 = m2.m31 * m1.m12 + m2.m32 * m1.m22 + m2.m33 * m1.m32 + m2.m34 * m1.m42;\n var m33 = m2.m31 * m1.m13 + m2.m32 * m1.m23 + m2.m33 * m1.m33 + m2.m34 * m1.m43;\n var m34 = m2.m31 * m1.m14 + m2.m32 * m1.m24 + m2.m33 * m1.m34 + m2.m34 * m1.m44;\n\n var m41 = m2.m41 * m1.m11 + m2.m42 * m1.m21 + m2.m43 * m1.m31 + m2.m44 * m1.m41;\n var m42 = m2.m41 * m1.m12 + m2.m42 * m1.m22 + m2.m43 * m1.m32 + m2.m44 * m1.m42;\n var m43 = m2.m41 * m1.m13 + m2.m42 * m1.m23 + m2.m43 * m1.m33 + m2.m44 * m1.m43;\n var m44 = m2.m41 * m1.m14 + m2.m42 * m1.m24 + m2.m43 * m1.m34 + m2.m44 * m1.m44;\n\n return fromArray(\n [m11, m12, m13, m14,\n m21, m22, m23, m24,\n m31, m32, m33, m34,\n m41, m42, m43, m44]\n );\n }\n\n /**\n * Creates and returns a new `DOMMatrix` compatible instance\n * with equivalent instance.\n * @class CSSMatrix\n *\n * @author thednp <https://github.com/thednp/DOMMatrix/>\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix\n */\n\n var CSSMatrix = function CSSMatrix() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var m = this;\n // array 6\n m.a = 1; m.b = 0;\n m.c = 0; m.d = 1;\n m.e = 0; m.f = 0;\n // array 16\n m.m11 = 1; m.m12 = 0; m.m13 = 0; m.m14 = 0;\n m.m21 = 0; m.m22 = 1; m.m23 = 0; m.m24 = 0;\n m.m31 = 0; m.m32 = 0; m.m33 = 1; m.m34 = 0;\n m.m41 = 0; m.m42 = 0; m.m43 = 0; m.m44 = 1;\n\n if (args && args.length) {\n var ARGS = [16, 6].some(function (l) { return l === args.length; }) ? args : args[0];\n\n return m.setMatrixValue(ARGS);\n }\n return m;\n };\n\n var prototypeAccessors = { isIdentity: { configurable: true },is2D: { configurable: true } };\n\n /**\n * Sets a new `Boolean` flag value for `this.isIdentity` matrix property.\n *\n * @param {boolean} value sets a new flag for this property\n */\n prototypeAccessors.isIdentity.set = function (value) {\n this.isIdentity = value;\n };\n\n /**\n * A `Boolean` whose value is `true` if the matrix is the identity matrix. The identity\n * matrix is one in which every value is 0 except those on the main diagonal from top-left\n * to bottom-right corner (in other words, where the offsets in each direction are equal).\n *\n * @return {boolean} the current property value\n */\n prototypeAccessors.isIdentity.get = function () {\n var m = this;\n return (m.m11 === 1 && m.m12 === 0 && m.m13 === 0 && m.m14 === 0\n && m.m21 === 0 && m.m22 === 1 && m.m23 === 0 && m.m24 === 0\n && m.m31 === 0 && m.m32 === 0 && m.m33 === 1 && m.m34 === 0\n && m.m41 === 0 && m.m42 === 0 && m.m43 === 0 && m.m44 === 1);\n };\n\n /**\n * A `Boolean` flag whose value is `true` if the matrix was initialized as a 2D matrix\n * and `false` if the matrix is 3D.\n *\n * @return {boolean} the current property value\n */\n prototypeAccessors.is2D.get = function () {\n var m = this;\n return (m.m31 === 0 && m.m32 === 0 && m.m33 === 1 && m.m34 === 0 && m.m43 === 0 && m.m44 === 1);\n };\n\n /**\n * Sets a new `Boolean` flag value for `this.is2D` matrix property.\n *\n * @param {boolean} value sets a new flag for this property\n */\n prototypeAccessors.is2D.set = function (value) {\n this.is2D = value;\n };\n\n /**\n * The `setMatrixValue` method replaces the existing matrix with one computed\n * in the browser. EG: `matrix(1,0.25,-0.25,1,0,0)`\n *\n * The method accepts any *Array* values, the result of\n * `DOMMatrix` instance method `toFloat64Array()` / `toFloat32Array()` calls\n *or `CSSMatrix` instance method `toArray()`.\n *\n * This method expects valid *matrix()* / *matrix3d()* string values, as well\n * as other transform functions like *translateX(10px)*.\n *\n * @param {string | number[] | CSSMatrix | DOMMatrix} source\n * @return {CSSMatrix} the matrix instance\n */\n CSSMatrix.prototype.setMatrixValue = function setMatrixValue (source) {\n var m = this;\n\n // [Arguments list | Array] come here\n if ([Array, Float64Array, Float32Array].some(function (a) { return source instanceof a; })) {\n return fromArray(source);\n }\n // CSS transform string source - TransformList\n if (typeof source === 'string' && source.length && source !== 'none') {\n return fromString(source);\n }\n // new CSSMatrix(CSSMatrix | DOMMatrix | JSON)\n if (typeof source === 'object') {\n return fromMatrix(source);\n }\n return m;\n };\n\n /**\n * Returns an *Array* containing elements which comprise the matrix.\n * The method can return either the 16 elements or the 6 elements\n * depending on the value of the `is2D` property.\n *\n * @return {number[]} an *Array* representation of the matrix\n */\n CSSMatrix.prototype.toArray = function toArray () {\n var m = this;\n var pow = (Math.pow( 10, 6 ));\n var result;\n\n if (m.is2D) {\n result = [m.a, m.b, m.c, m.d, m.e, m.f];\n } else {\n result = [m.m11, m.m12, m.m13, m.m14,\n m.m21, m.m22, m.m23, m.m24,\n m.m31, m.m32, m.m33, m.m34,\n m.m41, m.m42, m.m43, m.m44];\n }\n // clean up the numbers\n // eslint-disable-next-line -- no-bitwise\n return result.map(function (n) { return (Math.abs(n) < 1e-6 ? 0 : ((n * pow) >> 0) / pow); });\n };\n\n /**\n * Creates and returns a string representation of the matrix in `CSS` matrix syntax,\n * using the appropriate `CSS` matrix notation.\n *\n * matrix3d *matrix3d(m11, m12, m13, m14, m21, ...)*\n * matrix *matrix(a, b, c, d, e, f)*\n *\n * @return {string} a string representation of the matrix\n */\n CSSMatrix.prototype.toString = function toString () {\n var m = this;\n var values = m.toArray();\n var type = m.is2D ? 'matrix' : 'matrix3d';\n return (type + \"(\" + values + \")\");\n };\n\n /**\n * Returns a JSON representation of the `CSSMatrix` instance, a standard *Object*\n * that includes `{a,b,c,d,e,f}` and `{m11,m12,m13,..m44}` properties as well\n * as the `is2D` & `isIdentity` properties.\n *\n * The result can also be used as a second parameter for the `fromMatrix` static method\n * to load values into another matrix instance.\n *\n * @return {CSSMatrix.JSONMatrix} an *Object* with all matrix values.\n */\n CSSMatrix.prototype.toJSON = function toJSON () {\n var m = this;\n var is2D = m.is2D;\n var isIdentity = m.isIdentity;\n return Object.assign({}, m, {is2D: is2D, isIdentity: isIdentity});\n };\n\n /**\n * The Multiply method returns a new CSSMatrix which is the result of this\n * matrix multiplied by the passed matrix, with the passed matrix to the right.\n * This matrix is not modified.\n *\n * @param {CSSMatrix | DOMMatrix | CSSMatrix.JSONMatrix} m2 CSSMatrix\n * @return {CSSMatrix} The resulted matrix.\n */\n CSSMatrix.prototype.multiply = function multiply (m2) {\n return Multiply(this, m2);\n };\n\n /**\n * The translate method returns a new matrix which is this matrix post\n * multiplied by a translation matrix containing the passed values. If the z\n * component is undefined, a 0 value is used in its place. This matrix is not\n * modified.\n *\n * @param {number} x X component of the translation value.\n * @param {number=} y Y component of the translation value.\n * @param {number=} z Z component of the translation value.\n * @return {CSSMatrix} The resulted matrix\n */\n CSSMatrix.prototype.translate = function translate (x, y, z) {\n var X = x;\n var Y = y;\n var Z = z;\n if (Z === undefined) { Z = 0; }\n if (Y === undefined) { Y = 0; }\n return Multiply(this, Translate(X, Y, Z));\n };\n\n /**\n * The scale method returns a new matrix which is this matrix post multiplied by\n * a scale matrix containing the passed values. If the z component is undefined,\n * a 1 value is used in its place. If the y component is undefined, the x\n * component value is used in its place. This matrix is not modified.\n *\n * @param {number} x The X component of the scale value.\n * @param {number=} y The Y component of the scale value.\n * @param {number=} z The Z component of the scale value.\n * @return {CSSMatrix} The resulted matrix\n */\n CSSMatrix.prototype.scale = function scale (x, y, z) {\n var X = x;\n var Y = y;\n var Z = z;\n if (Y === undefined) { Y = x; }\n if (Z === undefined) { Z = 1; } // Z must be 1 if undefined\n\n return Multiply(this, Scale(X, Y, Z));\n };\n\n /**\n * The rotate method returns a new matrix which is this matrix post multiplied\n * by each of 3 rotation matrices about the major axes, first X, then Y, then Z.\n * If the y and z components are undefined, the x value is used to rotate the\n * object about the z axis, as though the vector (0,0,x) were passed. All\n * rotation values are in degrees. This matrix is not modified.\n *\n * @param {number} rx The X component of the rotation, or Z if Y and Z are null.\n * @param {number=} ry The (optional) Y component of the rotation value.\n * @param {number=} rz The (optional) Z component of the rotation value.\n * @return {CSSMatrix} The resulted matrix\n */\n CSSMatrix.prototype.rotate = function rotate (rx, ry, rz) {\n var RX = rx;\n var RY = ry;\n var RZ = rz;\n if (RY === undefined) { RY = 0; }\n if (RZ === undefined) { RZ = RX; RX = 0; }\n return Multiply(this, Rotate(RX, RY, RZ));\n };\n\n /**\n * The rotateAxisAngle method returns a new matrix which is this matrix post\n * multiplied by a rotation matrix with the given axis and `angle`. The right-hand\n * rule is used to determine the direction of rotation. All rotation values are\n * in degrees. This matrix is not modified.\n *\n * @param {number} x The X component of the axis vector.\n * @param {number} y The Y component of the axis vector.\n * @param {number} z The Z component of the axis vector.\n * @param {number} angle The angle of rotation about the axis vector, in degrees.\n * @return {CSSMatrix} The resulted matrix\n */\n CSSMatrix.prototype.rotateAxisAngle = function rotateAxisAngle (x, y, z, angle) {\n if ([x, y, z, angle].some(function (n) { return Number.isNaN(n); })) {\n throw new TypeError('CSSMatrix: expecting 4 values');\n }\n return Multiply(this, RotateAxisAngle(x, y, z, angle));\n };\n\n /**\n * Specifies a skew transformation along the `x-axis` by the given angle.\n * This matrix is not modified.\n *\n * @param {number} angle The angle amount in degrees to skew.\n * @return {CSSMatrix} The resulted matrix\n */\n CSSMatrix.prototype.skewX = function skewX (angle) {\n return Multiply(this, SkewX(angle));\n };\n\n /**\n * Specifies a skew transformation along the `y-axis` by the given angle.\n * This matrix is not modified.\n *\n * @param {number} angle The angle amount in degrees to skew.\n * @return {CSSMatrix} The resulted matrix\n */\n CSSMatrix.prototype.skewY = function skewY (angle) {\n return Multiply(this, SkewY(angle));\n };\n\n /**\n * Transforms a specified point using the matrix, returning a new\n * Tuple *Object* comprising of the transformed point.\n * Neither the matrix nor the original point are altered.\n *\n * The method is equivalent with `transformPoint()` method\n * of the `DOMMatrix` constructor.\n *\n * @copyright thednp © 2021\n *\n * @param {CSSMatrix.PointTuple | DOMPoint} v Tuple or DOMPoint\n * @return {CSSMatrix.PointTuple} the resulting Tuple\n */\n CSSMatrix.prototype.transformPoint = function transformPoint (v) {\n var M = this;\n var m = Translate(v.x, v.y, v.z);\n\n m.m44 = v.w || 1;\n m = M.multiply(m);\n\n return {\n x: m.m41,\n y: m.m42,\n z: m.m43,\n w: m.m44,\n };\n };\n\n /**\n * Transforms a specified vector using the matrix, returning a new\n * {x,y,z,w} Tuple *Object* comprising the transformed vector.\n * Neither the matrix nor the original vector are altered.\n *\n * @param {CSSMatrix.PointTuple} t Tuple with `{x,y,z,w}` components\n * @return {CSSMatrix.PointTuple} the resulting Tuple\n */\n CSSMatrix.prototype.transform = function transform (t) {\n var m = this;\n var x = m.m11 * t.x + m.m12 * t.y + m.m13 * t.z + m.m14 * t.w;\n var y = m.m21 * t.x + m.m22 * t.y + m.m23 * t.z + m.m24 * t.w;\n var z = m.m31 * t.x + m.m32 * t.y + m.m33 * t.z + m.m34 * t.w;\n var w = m.m41 * t.x + m.m42 * t.y + m.m43 * t.z + m.m44 * t.w;\n\n return {\n x: x / w,\n y: y / w,\n z: z / w,\n w: w,\n };\n };\n\n Object.defineProperties( CSSMatrix.prototype, prototypeAccessors );\n\n // Add Transform Functions to CSSMatrix object\n // without creating a TypeScript namespace.\n Object.assign(CSSMatrix, {\n Translate: Translate,\n Rotate: Rotate,\n RotateAxisAngle: RotateAxisAngle,\n Scale: Scale,\n SkewX: SkewX,\n SkewY: SkewY,\n Multiply: Multiply,\n fromArray: fromArray,\n fromMatrix: fromMatrix,\n fromString: fromString,\n });\n\n var version = \"0.0.24\";\n\n // @ts-ignore\n\n /**\n * A global namespace for library version.\n * @type {string}\n */\n var Version = version;\n\n Object.assign(CSSMatrix, { Version: Version });\n\n return CSSMatrix;\n\n}));\n","require('../../modules/es.array.iterator');\nrequire('../../modules/es.object.from-entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.fromEntries;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = {};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","require('../../modules/es.aggregate-error');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.any');\nrequire('../../modules/es.promise.finally');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar installErrorCause = require('../internals/install-error-cause');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Error = global.Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf(new Error(undefined), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n createNonEnumerableProperty(that, 'message', normalizeStringArgument(message, ''));\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));\n installErrorCause(that, options);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, Error);\nelse copyConstructorProperties($AggregateError, Error);\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create(Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true }, {\n AggregateError: $AggregateError\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar join = uncurryThis([].join);\n\nvar TEST = (function (arg) { return String(Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\nvar IS_FIREFOX_OR_SAFARI_STACK = /@[^\\n]*\\n/.test(TEST) && !/zxcasd/.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (typeof stack != 'string') return stack;\n if (IS_V8_OR_CHAKRA_STACK) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } else if (IS_FIREFOX_OR_SAFARI_STACK) {\n return join(arraySlice(split(stack, '\\n'), dropEntries), '\\n');\n } return stack;\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\n\nvar getInternalState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromisePrototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n PromisePrototype = PromiseConstructor.prototype;\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromisePrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reactions = state.reactions;\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n reactions[reactions.length] = reaction;\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function (argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function (argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n // we can't check .prototype since constructors produced by .bind haven't it\n } return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n};\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(isCallable(fn) ? fn : Function(fn), undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","module.exports = typeof window == 'object';\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true }, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromise)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromise.prototype['finally'] !== method) {\n redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","/**\n * web-streams-polyfill v3.2.0\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.WebStreamsPolyfill = {}));\n}(this, (function (exports) { 'use strict';\n\n /// <reference lib=\"es2015.symbol\" />\n var SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\n Symbol :\n function (description) { return \"Symbol(\" + description + \")\"; };\n\n /// <reference lib=\"dom\" />\n function noop() {\n return undefined;\n }\n function getGlobals() {\n if (typeof self !== 'undefined') {\n return self;\n }\n else if (typeof window !== 'undefined') {\n return window;\n }\n else if (typeof global !== 'undefined') {\n return global;\n }\n return undefined;\n }\n var globals = getGlobals();\n\n function typeIsObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n var rethrowAssertionErrorRejection = noop;\n\n var originalPromise = Promise;\n var originalPromiseThen = Promise.prototype.then;\n var originalPromiseResolve = Promise.resolve.bind(originalPromise);\n var originalPromiseReject = Promise.reject.bind(originalPromise);\n function newPromise(executor) {\n return new originalPromise(executor);\n }\n function promiseResolvedWith(value) {\n return originalPromiseResolve(value);\n }\n function promiseRejectedWith(reason) {\n return originalPromiseReject(reason);\n }\n function PerformPromiseThen(promise, onFulfilled, onRejected) {\n // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n // approximation.\n return originalPromiseThen.call(promise, onFulfilled, onRejected);\n }\n function uponPromise(promise, onFulfilled, onRejected) {\n PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n }\n function uponFulfillment(promise, onFulfilled) {\n uponPromise(promise, onFulfilled);\n }\n function uponRejection(promise, onRejected) {\n uponPromise(promise, undefined, onRejected);\n }\n function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n }\n function setPromiseIsHandledToTrue(promise) {\n PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n }\n var queueMicrotask = (function () {\n var globalQueueMicrotask = globals && globals.queueMicrotask;\n if (typeof globalQueueMicrotask === 'function') {\n return globalQueueMicrotask;\n }\n var resolvedPromise = promiseResolvedWith(undefined);\n return function (fn) { return PerformPromiseThen(resolvedPromise, fn); };\n })();\n function reflectCall(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\n }\n function promiseCall(F, V, args) {\n try {\n return promiseResolvedWith(reflectCall(F, V, args));\n }\n catch (value) {\n return promiseRejectedWith(value);\n }\n }\n\n // Original from Chromium\n // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n var QUEUE_MAX_ARRAY_SIZE = 16384;\n /**\n * Simple queue structure.\n *\n * Avoids scalability issues with using a packed array directly by using\n * multiple arrays in a linked list and keeping the array size bounded.\n */\n var SimpleQueue = /** @class */ (function () {\n function SimpleQueue() {\n this._cursor = 0;\n this._size = 0;\n // _front and _back are always defined.\n this._front = {\n _elements: [],\n _next: undefined\n };\n this._back = this._front;\n // The cursor is used to avoid calling Array.shift().\n // It contains the index of the front element of the array inside the\n // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n this._cursor = 0;\n // When there is only one node, size === elements.length - cursor.\n this._size = 0;\n }\n Object.defineProperty(SimpleQueue.prototype, \"length\", {\n get: function () {\n return this._size;\n },\n enumerable: false,\n configurable: true\n });\n // For exception safety, this method is structured in order:\n // 1. Read state\n // 2. Calculate required state mutations\n // 3. Perform state mutations\n SimpleQueue.prototype.push = function (element) {\n var oldBack = this._back;\n var newBack = oldBack;\n if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n newBack = {\n _elements: [],\n _next: undefined\n };\n }\n // push() is the mutation most likely to throw an exception, so it\n // goes first.\n oldBack._elements.push(element);\n if (newBack !== oldBack) {\n this._back = newBack;\n oldBack._next = newBack;\n }\n ++this._size;\n };\n // Like push(), shift() follows the read -> calculate -> mutate pattern for\n // exception safety.\n SimpleQueue.prototype.shift = function () { // must not be called on an empty queue\n var oldFront = this._front;\n var newFront = oldFront;\n var oldCursor = this._cursor;\n var newCursor = oldCursor + 1;\n var elements = oldFront._elements;\n var element = elements[oldCursor];\n if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n newFront = oldFront._next;\n newCursor = 0;\n }\n // No mutations before this point.\n --this._size;\n this._cursor = newCursor;\n if (oldFront !== newFront) {\n this._front = newFront;\n }\n // Permit shifted element to be garbage collected.\n elements[oldCursor] = undefined;\n return element;\n };\n // The tricky thing about forEach() is that it can be called\n // re-entrantly. The queue may be mutated inside the callback. It is easy to\n // see that push() within the callback has no negative effects since the end\n // of the queue is checked for on every iteration. If shift() is called\n // repeatedly within the callback then the next iteration may return an\n // element that has been removed. In this case the callback will be called\n // with undefined values until we either \"catch up\" with elements that still\n // exist or reach the back of the queue.\n SimpleQueue.prototype.forEach = function (callback) {\n var i = this._cursor;\n var node = this._front;\n var elements = node._elements;\n while (i !== elements.length || node._next !== undefined) {\n if (i === elements.length) {\n node = node._next;\n elements = node._elements;\n i = 0;\n if (elements.length === 0) {\n break;\n }\n }\n callback(elements[i]);\n ++i;\n }\n };\n // Return the element that would be returned if shift() was called now,\n // without modifying the queue.\n SimpleQueue.prototype.peek = function () { // must not be called on an empty queue\n var front = this._front;\n var cursor = this._cursor;\n return front._elements[cursor];\n };\n return SimpleQueue;\n }());\n\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n }\n else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n }\n else {\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n }\n }\n // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n // check.\n function ReadableStreamReaderGenericCancel(reader, reason) {\n var stream = reader._ownerReadableStream;\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\"));\n }\n else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\"));\n }\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n // Helper functions for the readers.\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = newPromise(function (resolve, reject) {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseReject(reader, reason);\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseResolve(reader);\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n if (reader._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(reader._closedPromise);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n }\n function defaultReaderClosedPromiseResolve(reader) {\n if (reader._closedPromise_resolve === undefined) {\n return;\n }\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n var AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n var ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n var CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n var PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n /// <reference lib=\"es2015.core\" />\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill\n var NumberIsFinite = Number.isFinite || function (x) {\n return typeof x === 'number' && isFinite(x);\n };\n\n /// <reference lib=\"es2015.core\" />\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill\n var MathTrunc = Math.trunc || function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v);\n };\n\n // https://heycam.github.io/webidl/#idl-dictionaries\n function isDictionary(x) {\n return typeof x === 'object' || typeof x === 'function';\n }\n function assertDictionary(obj, context) {\n if (obj !== undefined && !isDictionary(obj)) {\n throw new TypeError(context + \" is not an object.\");\n }\n }\n // https://heycam.github.io/webidl/#idl-callback-functions\n function assertFunction(x, context) {\n if (typeof x !== 'function') {\n throw new TypeError(context + \" is not a function.\");\n }\n }\n // https://heycam.github.io/webidl/#idl-object\n function isObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n function assertObject(x, context) {\n if (!isObject(x)) {\n throw new TypeError(context + \" is not an object.\");\n }\n }\n function assertRequiredArgument(x, position, context) {\n if (x === undefined) {\n throw new TypeError(\"Parameter \" + position + \" is required in '\" + context + \"'.\");\n }\n }\n function assertRequiredField(x, field, context) {\n if (x === undefined) {\n throw new TypeError(field + \" is required in '\" + context + \"'.\");\n }\n }\n // https://heycam.github.io/webidl/#idl-unrestricted-double\n function convertUnrestrictedDouble(value) {\n return Number(value);\n }\n function censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n }\n function integerPart(x) {\n return censorNegativeZero(MathTrunc(x));\n }\n // https://heycam.github.io/webidl/#idl-unsigned-long-long\n function convertUnsignedLongLongWithEnforceRange(value, context) {\n var lowerBound = 0;\n var upperBound = Number.MAX_SAFE_INTEGER;\n var x = Number(value);\n x = censorNegativeZero(x);\n if (!NumberIsFinite(x)) {\n throw new TypeError(context + \" is not a finite number\");\n }\n x = integerPart(x);\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(context + \" is outside the accepted range of \" + lowerBound + \" to \" + upperBound + \", inclusive\");\n }\n if (!NumberIsFinite(x) || x === 0) {\n return 0;\n }\n // TODO Use BigInt if supported?\n // let xBigInt = BigInt(integerPart(x));\n // xBigInt = BigInt.asUintN(64, xBigInt);\n // return Number(xBigInt);\n return x;\n }\n\n function assertReadableStream(x, context) {\n if (!IsReadableStream(x)) {\n throw new TypeError(context + \" is not a ReadableStream.\");\n }\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadRequest(stream, readRequest) {\n stream._reader._readRequests.push(readRequest);\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n var reader = stream._reader;\n var readRequest = reader._readRequests.shift();\n if (done) {\n readRequest._closeSteps();\n }\n else {\n readRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasDefaultReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamDefaultReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A default reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n var ReadableStreamDefaultReader = /** @class */ (function () {\n function ReadableStreamDefaultReader(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = new SimpleQueue();\n }\n Object.defineProperty(ReadableStreamDefaultReader.prototype, \"closed\", {\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed,\n * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing.\n */\n get: function () {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n ReadableStreamDefaultReader.prototype.cancel = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n };\n /**\n * Returns a promise that allows access to the next chunk from the stream's internal queue, if available.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n ReadableStreamDefaultReader.prototype.read = function () {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n var resolvePromise;\n var rejectPromise;\n var promise = newPromise(function (resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var readRequest = {\n _chunkSteps: function (chunk) { return resolvePromise({ value: chunk, done: false }); },\n _closeSteps: function () { return resolvePromise({ value: undefined, done: true }); },\n _errorSteps: function (e) { return rejectPromise(e); }\n };\n ReadableStreamDefaultReaderRead(this, readRequest);\n return promise;\n };\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n ReadableStreamDefaultReader.prototype.releaseLock = function () {\n if (!IsReadableStreamDefaultReader(this)) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n };\n return ReadableStreamDefaultReader;\n }());\n Object.defineProperties(ReadableStreamDefaultReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultReader;\n }\n function ReadableStreamDefaultReaderRead(reader, readRequest) {\n var stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'closed') {\n readRequest._closeSteps();\n }\n else if (stream._state === 'errored') {\n readRequest._errorSteps(stream._storedError);\n }\n else {\n stream._readableStreamController[PullSteps](readRequest);\n }\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderBrandCheckException(name) {\n return new TypeError(\"ReadableStreamDefaultReader.prototype.\" + name + \" can only be used on a ReadableStreamDefaultReader\");\n }\n\n /// <reference lib=\"es2018.asynciterable\" />\n var _a;\n var AsyncIteratorPrototype;\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n // We're running inside a ES2018+ environment, but we're compiling to an older syntax.\n // We cannot access %AsyncIteratorPrototype% without non-ES2018 syntax, but we can re-create it.\n AsyncIteratorPrototype = (_a = {},\n // 25.1.3.1 %AsyncIteratorPrototype% [ @@asyncIterator ] ( )\n // https://tc39.github.io/ecma262/#sec-asynciteratorprototype-asynciterator\n _a[SymbolPolyfill.asyncIterator] = function () {\n return this;\n },\n _a);\n Object.defineProperty(AsyncIteratorPrototype, SymbolPolyfill.asyncIterator, { enumerable: false });\n }\n\n /// <reference lib=\"es2018.asynciterable\" />\n var ReadableStreamAsyncIteratorImpl = /** @class */ (function () {\n function ReadableStreamAsyncIteratorImpl(reader, preventCancel) {\n this._ongoingPromise = undefined;\n this._isFinished = false;\n this._reader = reader;\n this._preventCancel = preventCancel;\n }\n ReadableStreamAsyncIteratorImpl.prototype.next = function () {\n var _this = this;\n var nextSteps = function () { return _this._nextSteps(); };\n this._ongoingPromise = this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) :\n nextSteps();\n return this._ongoingPromise;\n };\n ReadableStreamAsyncIteratorImpl.prototype.return = function (value) {\n var _this = this;\n var returnSteps = function () { return _this._returnSteps(value); };\n return this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) :\n returnSteps();\n };\n ReadableStreamAsyncIteratorImpl.prototype._nextSteps = function () {\n var _this = this;\n if (this._isFinished) {\n return Promise.resolve({ value: undefined, done: true });\n }\n var reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('iterate'));\n }\n var resolvePromise;\n var rejectPromise;\n var promise = newPromise(function (resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var readRequest = {\n _chunkSteps: function (chunk) {\n _this._ongoingPromise = undefined;\n // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test.\n // FIXME Is this a bug in the specification, or in the test?\n queueMicrotask(function () { return resolvePromise({ value: chunk, done: false }); });\n },\n _closeSteps: function () {\n _this._ongoingPromise = undefined;\n _this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n resolvePromise({ value: undefined, done: true });\n },\n _errorSteps: function (reason) {\n _this._ongoingPromise = undefined;\n _this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n rejectPromise(reason);\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promise;\n };\n ReadableStreamAsyncIteratorImpl.prototype._returnSteps = function (value) {\n if (this._isFinished) {\n return Promise.resolve({ value: value, done: true });\n }\n this._isFinished = true;\n var reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('finish iterating'));\n }\n if (!this._preventCancel) {\n var result = ReadableStreamReaderGenericCancel(reader, value);\n ReadableStreamReaderGenericRelease(reader);\n return transformPromiseWith(result, function () { return ({ value: value, done: true }); });\n }\n ReadableStreamReaderGenericRelease(reader);\n return promiseResolvedWith({ value: value, done: true });\n };\n return ReadableStreamAsyncIteratorImpl;\n }());\n var ReadableStreamAsyncIteratorPrototype = {\n next: function () {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n }\n return this._asyncIteratorImpl.next();\n },\n return: function (value) {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return'));\n }\n return this._asyncIteratorImpl.return(value);\n }\n };\n if (AsyncIteratorPrototype !== undefined) {\n Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n }\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n var reader = AcquireReadableStreamDefaultReader(stream);\n var impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n iterator._asyncIteratorImpl = impl;\n return iterator;\n }\n function IsReadableStreamAsyncIterator(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) {\n return false;\n }\n try {\n // noinspection SuspiciousTypeOfGuard\n return x._asyncIteratorImpl instanceof\n ReadableStreamAsyncIteratorImpl;\n }\n catch (_a) {\n return false;\n }\n }\n // Helper functions for the ReadableStream.\n function streamAsyncIteratorBrandCheckException(name) {\n return new TypeError(\"ReadableStreamAsyncIterator.\" + name + \" can only be used on a ReadableSteamAsyncIterator\");\n }\n\n /// <reference lib=\"es2015.core\" />\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n var NumberIsNaN = Number.isNaN || function (x) {\n // eslint-disable-next-line no-self-compare\n return x !== x;\n };\n\n function CreateArrayFromList(elements) {\n // We use arrays to represent lists, so this is basically a no-op.\n // Do a slice though just in case we happen to depend on the unique-ness.\n return elements.slice();\n }\n function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n }\n // Not implemented correctly\n function TransferArrayBuffer(O) {\n return O;\n }\n // Not implemented correctly\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function IsDetachedBuffer(O) {\n return false;\n }\n function ArrayBufferSlice(buffer, begin, end) {\n // ArrayBuffer.prototype.slice is not available on IE10\n // https://www.caniuse.com/mdn-javascript_builtins_arraybuffer_slice\n if (buffer.slice) {\n return buffer.slice(begin, end);\n }\n var length = end - begin;\n var slice = new ArrayBuffer(length);\n CopyDataBlockBytes(slice, 0, buffer, begin, length);\n return slice;\n }\n\n function IsNonNegativeNumber(v) {\n if (typeof v !== 'number') {\n return false;\n }\n if (NumberIsNaN(v)) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n }\n function CloneAsUint8Array(O) {\n var buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength);\n return new Uint8Array(buffer);\n }\n\n function DequeueValue(container) {\n var pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\n }\n function EnqueueValueWithSize(container, value, size) {\n if (!IsNonNegativeNumber(size) || size === Infinity) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({ value: value, size: size });\n container._queueTotalSize += size;\n }\n function PeekQueueValue(container) {\n var pair = container._queue.peek();\n return pair.value;\n }\n function ResetQueue(container) {\n container._queue = new SimpleQueue();\n container._queueTotalSize = 0;\n }\n\n /**\n * A pull-into request in a {@link ReadableByteStreamController}.\n *\n * @public\n */\n var ReadableStreamBYOBRequest = /** @class */ (function () {\n function ReadableStreamBYOBRequest() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, \"view\", {\n /**\n * Returns the view for writing in to, or `null` if the BYOB request has already been responded to.\n */\n get: function () {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('view');\n }\n return this._view;\n },\n enumerable: false,\n configurable: true\n });\n ReadableStreamBYOBRequest.prototype.respond = function (bytesWritten) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respond');\n }\n assertRequiredArgument(bytesWritten, 1, 'respond');\n bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter');\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(this._view.buffer)) ;\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n };\n ReadableStreamBYOBRequest.prototype.respondWithNewView = function (view) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respondWithNewView');\n }\n assertRequiredArgument(view, 1, 'respondWithNewView');\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(view.buffer)) ;\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n };\n return ReadableStreamBYOBRequest;\n }());\n Object.defineProperties(ReadableStreamBYOBRequest.prototype, {\n respond: { enumerable: true },\n respondWithNewView: { enumerable: true },\n view: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBRequest',\n configurable: true\n });\n }\n /**\n * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue.\n *\n * @public\n */\n var ReadableByteStreamController = /** @class */ (function () {\n function ReadableByteStreamController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(ReadableByteStreamController.prototype, \"byobRequest\", {\n /**\n * Returns the current BYOB pull request, or `null` if there isn't one.\n */\n get: function () {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n return ReadableByteStreamControllerGetBYOBRequest(this);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ReadableByteStreamController.prototype, \"desiredSize\", {\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure.\n */\n get: function () {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n ReadableByteStreamController.prototype.close = function () {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n var state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be closed\");\n }\n ReadableByteStreamControllerClose(this);\n };\n ReadableByteStreamController.prototype.enqueue = function (chunk) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n assertRequiredArgument(chunk, 1, 'enqueue');\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('chunk must be an array buffer view');\n }\n if (chunk.byteLength === 0) {\n throw new TypeError('chunk must have non-zero byteLength');\n }\n if (chunk.buffer.byteLength === 0) {\n throw new TypeError(\"chunk's buffer must have non-zero byteLength\");\n }\n if (this._closeRequested) {\n throw new TypeError('stream is closed or draining');\n }\n var state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be enqueued to\");\n }\n ReadableByteStreamControllerEnqueue(this, chunk);\n };\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n ReadableByteStreamController.prototype.error = function (e) {\n if (e === void 0) { e = undefined; }\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('error');\n }\n ReadableByteStreamControllerError(this, e);\n };\n /** @internal */\n ReadableByteStreamController.prototype[CancelSteps] = function (reason) {\n ReadableByteStreamControllerClearPendingPullIntos(this);\n ResetQueue(this);\n var result = this._cancelAlgorithm(reason);\n ReadableByteStreamControllerClearAlgorithms(this);\n return result;\n };\n /** @internal */\n ReadableByteStreamController.prototype[PullSteps] = function (readRequest) {\n var stream = this._controlledReadableByteStream;\n if (this._queueTotalSize > 0) {\n var entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n var view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n readRequest._chunkSteps(view);\n return;\n }\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n var buffer = void 0;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n }\n catch (bufferE) {\n readRequest._errorSteps(bufferE);\n return;\n }\n var pullIntoDescriptor = {\n buffer: buffer,\n bufferByteLength: autoAllocateChunkSize,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n viewConstructor: Uint8Array,\n readerType: 'default'\n };\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n };\n return ReadableByteStreamController;\n }());\n Object.defineProperties(ReadableByteStreamController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n byobRequest: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableByteStreamController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableByteStreamController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableByteStreamController.\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n return false;\n }\n return x instanceof ReadableByteStreamController;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBRequest;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n // TODO: Test controller argument\n var pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, function () {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n ReadableByteStreamControllerError(controller, e);\n });\n }\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = new SimpleQueue();\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n var done = false;\n if (stream._state === 'closed') {\n done = true;\n }\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n }\n else {\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n var bytesFilled = pullIntoDescriptor.bytesFilled;\n var elementSize = pullIntoDescriptor.elementSize;\n return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({ buffer: buffer, byteOffset: byteOffset, byteLength: byteLength });\n controller._queueTotalSize += byteLength;\n }\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n var elementSize = pullIntoDescriptor.elementSize;\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n var totalBytesToCopyRemaining = maxBytesToCopy;\n var ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n var queue = controller._queue;\n while (totalBytesToCopyRemaining > 0) {\n var headOfQueue = queue.peek();\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n }\n else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n return ready;\n }\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n pullIntoDescriptor.bytesFilled += size;\n }\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n if (controller._queueTotalSize === 0 && controller._closeRequested) {\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(controller._controlledReadableByteStream);\n }\n else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === null) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = null;\n controller._byobRequest = null;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n var pullIntoDescriptor = controller._pendingPullIntos.peek();\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view, readIntoRequest) {\n var stream = controller._controlledReadableByteStream;\n var elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n var ctor = view.constructor;\n // try {\n var buffer = TransferArrayBuffer(view.buffer);\n // } catch (e) {\n // readIntoRequest._errorSteps(e);\n // return;\n // }\n var pullIntoDescriptor = {\n buffer: buffer,\n bufferByteLength: buffer.byteLength,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize: elementSize,\n viewConstructor: ctor,\n readerType: 'byob'\n };\n if (controller._pendingPullIntos.length > 0) {\n controller._pendingPullIntos.push(pullIntoDescriptor);\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n // - No change happens on desiredSize\n // - The source has already been notified of that there's at least 1 pending read(view)\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n return;\n }\n if (stream._state === 'closed') {\n var emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n readIntoRequest._closeSteps(emptyView);\n return;\n }\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n readIntoRequest._chunkSteps(filledView);\n return;\n }\n if (controller._closeRequested) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n readIntoRequest._errorSteps(e);\n return;\n }\n }\n controller._pendingPullIntos.push(pullIntoDescriptor);\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n var stream = controller._controlledReadableByteStream;\n if (ReadableStreamHasBYOBReader(stream)) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n var remainder = ArrayBufferSlice(pullIntoDescriptor.buffer, end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n var state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n ReadableByteStreamControllerRespondInClosedState(controller);\n }\n else {\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n var descriptor = controller._pendingPullIntos.shift();\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n var desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n }\n // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n function ReadableByteStreamControllerClose(controller) {\n var stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos.peek();\n if (firstPendingPullInto.bytesFilled > 0) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n var buffer = chunk.buffer;\n var byteOffset = chunk.byteOffset;\n var byteLength = chunk.byteLength;\n var transferredBuffer = TransferArrayBuffer(buffer);\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos.peek();\n if (IsDetachedBuffer(firstPendingPullInto.buffer)) ;\n firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer);\n }\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n if (ReadableStreamHasDefaultReader(stream)) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n else {\n if (controller._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n }\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n }\n else if (ReadableStreamHasBYOBReader(stream)) {\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n else {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerError(controller, e) {\n var stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return;\n }\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableByteStreamControllerGetBYOBRequest(controller) {\n if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n var byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n SetUpReadableStreamBYOBRequest(byobRequest, controller, view);\n controller._byobRequest = byobRequest;\n }\n return controller._byobRequest;\n }\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n var state = controller._controlledReadableByteStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n var state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n }\n else {\n if (bytesWritten === 0) {\n throw new TypeError('bytesWritten must be greater than 0 when calling respond() on a readable stream');\n }\n if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n }\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n var firstDescriptor = controller._pendingPullIntos.peek();\n var state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (view.byteLength !== 0) {\n throw new TypeError('The view\\'s length must be 0 when calling respondWithNewView() on a closed stream');\n }\n }\n else {\n if (view.byteLength === 0) {\n throw new TypeError('The view\\'s length must be greater than 0 when calling respondWithNewView() on a readable stream');\n }\n }\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {\n throw new RangeError('The region specified by view is larger than byobRequest');\n }\n var viewByteLength = view.byteLength;\n firstDescriptor.buffer = TransferArrayBuffer(view.buffer);\n ReadableByteStreamControllerRespondInternal(controller, viewByteLength);\n }\n function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n controller._controlledReadableByteStream = stream;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._byobRequest = null;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._closeRequested = false;\n controller._started = false;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n controller._autoAllocateChunkSize = autoAllocateChunkSize;\n controller._pendingPullIntos = new SimpleQueue();\n stream._readableStreamController = controller;\n var startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), function () {\n controller._started = true;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableByteStreamControllerError(controller, r);\n });\n }\n function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n var controller = Object.create(ReadableByteStreamController.prototype);\n var startAlgorithm = function () { return undefined; };\n var pullAlgorithm = function () { return promiseResolvedWith(undefined); };\n var cancelAlgorithm = function () { return promiseResolvedWith(undefined); };\n if (underlyingByteSource.start !== undefined) {\n startAlgorithm = function () { return underlyingByteSource.start(controller); };\n }\n if (underlyingByteSource.pull !== undefined) {\n pullAlgorithm = function () { return underlyingByteSource.pull(controller); };\n }\n if (underlyingByteSource.cancel !== undefined) {\n cancelAlgorithm = function (reason) { return underlyingByteSource.cancel(reason); };\n }\n var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize === 0) {\n throw new TypeError('autoAllocateChunkSize must be greater than 0');\n }\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n }\n function SetUpReadableStreamBYOBRequest(request, controller, view) {\n request._associatedReadableByteStreamController = controller;\n request._view = view;\n }\n // Helper functions for the ReadableStreamBYOBRequest.\n function byobRequestBrandCheckException(name) {\n return new TypeError(\"ReadableStreamBYOBRequest.prototype.\" + name + \" can only be used on a ReadableStreamBYOBRequest\");\n }\n // Helper functions for the ReadableByteStreamController.\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError(\"ReadableByteStreamController.prototype.\" + name + \" can only be used on a ReadableByteStreamController\");\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {\n stream._reader._readIntoRequests.push(readIntoRequest);\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n var reader = stream._reader;\n var readIntoRequest = reader._readIntoRequests.shift();\n if (done) {\n readIntoRequest._closeSteps(chunk);\n }\n else {\n readIntoRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamBYOBReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A BYOB reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n var ReadableStreamBYOBReader = /** @class */ (function () {\n function ReadableStreamBYOBReader(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n if (!IsReadableByteStreamController(stream._readableStreamController)) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n 'source');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = new SimpleQueue();\n }\n Object.defineProperty(ReadableStreamBYOBReader.prototype, \"closed\", {\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the reader's lock is released before the stream finishes closing.\n */\n get: function () {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n ReadableStreamBYOBReader.prototype.cancel = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n };\n /**\n * Attempts to reads bytes into view, and returns a promise resolved with the result.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n ReadableStreamBYOBReader.prototype.read = function (view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('read'));\n }\n if (!ArrayBuffer.isView(view)) {\n return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n }\n if (view.buffer.byteLength === 0) {\n return promiseRejectedWith(new TypeError(\"view's buffer must have non-zero byteLength\"));\n }\n if (IsDetachedBuffer(view.buffer)) ;\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n var resolvePromise;\n var rejectPromise;\n var promise = newPromise(function (resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var readIntoRequest = {\n _chunkSteps: function (chunk) { return resolvePromise({ value: chunk, done: false }); },\n _closeSteps: function (chunk) { return resolvePromise({ value: chunk, done: true }); },\n _errorSteps: function (e) { return rejectPromise(e); }\n };\n ReadableStreamBYOBReaderRead(this, view, readIntoRequest);\n return promise;\n };\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n ReadableStreamBYOBReader.prototype.releaseLock = function () {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n };\n return ReadableStreamBYOBReader;\n }());\n Object.defineProperties(ReadableStreamBYOBReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBReader;\n }\n function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) {\n var stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'errored') {\n readIntoRequest._errorSteps(stream._storedError);\n }\n else {\n ReadableByteStreamControllerPullInto(stream._readableStreamController, view, readIntoRequest);\n }\n }\n // Helper functions for the ReadableStreamBYOBReader.\n function byobReaderBrandCheckException(name) {\n return new TypeError(\"ReadableStreamBYOBReader.prototype.\" + name + \" can only be used on a ReadableStreamBYOBReader\");\n }\n\n function ExtractHighWaterMark(strategy, defaultHWM) {\n var highWaterMark = strategy.highWaterMark;\n if (highWaterMark === undefined) {\n return defaultHWM;\n }\n if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('Invalid highWaterMark');\n }\n return highWaterMark;\n }\n function ExtractSizeAlgorithm(strategy) {\n var size = strategy.size;\n if (!size) {\n return function () { return 1; };\n }\n return size;\n }\n\n function convertQueuingStrategy(init, context) {\n assertDictionary(init, context);\n var highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n var size = init === null || init === void 0 ? void 0 : init.size;\n return {\n highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark),\n size: size === undefined ? undefined : convertQueuingStrategySize(size, context + \" has member 'size' that\")\n };\n }\n function convertQueuingStrategySize(fn, context) {\n assertFunction(fn, context);\n return function (chunk) { return convertUnrestrictedDouble(fn(chunk)); };\n }\n\n function convertUnderlyingSink(original, context) {\n assertDictionary(original, context);\n var abort = original === null || original === void 0 ? void 0 : original.abort;\n var close = original === null || original === void 0 ? void 0 : original.close;\n var start = original === null || original === void 0 ? void 0 : original.start;\n var type = original === null || original === void 0 ? void 0 : original.type;\n var write = original === null || original === void 0 ? void 0 : original.write;\n return {\n abort: abort === undefined ?\n undefined :\n convertUnderlyingSinkAbortCallback(abort, original, context + \" has member 'abort' that\"),\n close: close === undefined ?\n undefined :\n convertUnderlyingSinkCloseCallback(close, original, context + \" has member 'close' that\"),\n start: start === undefined ?\n undefined :\n convertUnderlyingSinkStartCallback(start, original, context + \" has member 'start' that\"),\n write: write === undefined ?\n undefined :\n convertUnderlyingSinkWriteCallback(write, original, context + \" has member 'write' that\"),\n type: type\n };\n }\n function convertUnderlyingSinkAbortCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (reason) { return promiseCall(fn, original, [reason]); };\n }\n function convertUnderlyingSinkCloseCallback(fn, original, context) {\n assertFunction(fn, context);\n return function () { return promiseCall(fn, original, []); };\n }\n function convertUnderlyingSinkStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return reflectCall(fn, original, [controller]); };\n }\n function convertUnderlyingSinkWriteCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (chunk, controller) { return promiseCall(fn, original, [chunk, controller]); };\n }\n\n function assertWritableStream(x, context) {\n if (!IsWritableStream(x)) {\n throw new TypeError(context + \" is not a WritableStream.\");\n }\n }\n\n function isAbortSignal(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return typeof value.aborted === 'boolean';\n }\n catch (_a) {\n // AbortSignal.prototype.aborted throws if its brand check fails\n return false;\n }\n }\n var supportsAbortController = typeof AbortController === 'function';\n /**\n * Construct a new AbortController, if supported by the platform.\n *\n * @internal\n */\n function createAbortController() {\n if (supportsAbortController) {\n return new AbortController();\n }\n return undefined;\n }\n\n /**\n * A writable stream represents a destination for data, into which you can write.\n *\n * @public\n */\n var WritableStream = /** @class */ (function () {\n function WritableStream(rawUnderlyingSink, rawStrategy) {\n if (rawUnderlyingSink === void 0) { rawUnderlyingSink = {}; }\n if (rawStrategy === void 0) { rawStrategy = {}; }\n if (rawUnderlyingSink === undefined) {\n rawUnderlyingSink = null;\n }\n else {\n assertObject(rawUnderlyingSink, 'First parameter');\n }\n var strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n var underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter');\n InitializeWritableStream(this);\n var type = underlyingSink.type;\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n var sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n var highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n }\n Object.defineProperty(WritableStream.prototype, \"locked\", {\n /**\n * Returns whether or not the writable stream is locked to a writer.\n */\n get: function () {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('locked');\n }\n return IsWritableStreamLocked(this);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be\n * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort\n * mechanism of the underlying sink.\n *\n * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled\n * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel\n * the stream) if the stream is currently locked.\n */\n WritableStream.prototype.abort = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('abort'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n }\n return WritableStreamAbort(this, reason);\n };\n /**\n * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its\n * close behavior. During this time any further attempts to write will fail (without erroring the stream).\n *\n * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream\n * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with\n * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked.\n */\n WritableStream.prototype.close = function () {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('close'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n }\n if (WritableStreamCloseQueuedOrInFlight(this)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamClose(this);\n };\n /**\n * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream\n * is locked, no other writer can be acquired until this one is released.\n *\n * This functionality is especially useful for creating abstractions that desire the ability to write to a stream\n * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at\n * the same time, which would cause the resulting written data to be unpredictable and probably useless.\n */\n WritableStream.prototype.getWriter = function () {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('getWriter');\n }\n return AcquireWritableStreamDefaultWriter(this);\n };\n return WritableStream;\n }());\n Object.defineProperties(WritableStream.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n getWriter: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStream',\n configurable: true\n });\n }\n // Abstract operations for the WritableStream.\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n // Throws if and only if startAlgorithm throws.\n function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n if (highWaterMark === void 0) { highWaterMark = 1; }\n if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n var stream = Object.create(WritableStream.prototype);\n InitializeWritableStream(stream);\n var controller = Object.create(WritableStreamDefaultController.prototype);\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n function InitializeWritableStream(stream) {\n stream._state = 'writable';\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n // 'erroring' or 'errored'. May be set to an undefined value.\n stream._storedError = undefined;\n stream._writer = undefined;\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n stream._writableStreamController = undefined;\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n // producer without waiting for the queued writes to finish.\n stream._writeRequests = new SimpleQueue();\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n stream._inFlightWriteRequest = undefined;\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n // has been detached.\n stream._closeRequest = undefined;\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n stream._inFlightCloseRequest = undefined;\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n stream._pendingAbortRequest = undefined;\n // The backpressure signal set by the controller.\n stream._backpressure = false;\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return x instanceof WritableStream;\n }\n function IsWritableStreamLocked(stream) {\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var _a;\n if (stream._state === 'closed' || stream._state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n stream._writableStreamController._abortReason = reason;\n (_a = stream._writableStreamController._abortController) === null || _a === void 0 ? void 0 : _a.abort();\n // TypeScript narrows the type of `stream._state` down to 'writable' | 'erroring',\n // but it doesn't know that signaling abort runs author code that might have changed the state.\n // Widen the type again by casting to WritableStreamState.\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n if (stream._pendingAbortRequest !== undefined) {\n return stream._pendingAbortRequest._promise;\n }\n var wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n // reason will not be used, so don't keep a reference to it.\n reason = undefined;\n }\n var promise = newPromise(function (resolve, reject) {\n stream._pendingAbortRequest = {\n _promise: undefined,\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n stream._pendingAbortRequest._promise = promise;\n if (!wasAlreadyErroring) {\n WritableStreamStartErroring(stream, reason);\n }\n return promise;\n }\n function WritableStreamClose(stream) {\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseRejectedWith(new TypeError(\"The stream (in \" + state + \" state) is not in the writable state and cannot be closed\"));\n }\n var promise = newPromise(function (resolve, reject) {\n var closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n var writer = stream._writer;\n if (writer !== undefined && stream._backpressure && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n // WritableStream API exposed for controllers.\n function WritableStreamAddWriteRequest(stream) {\n var promise = newPromise(function (resolve, reject) {\n var writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n var state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n WritableStreamFinishErroring(stream);\n }\n function WritableStreamStartErroring(stream, reason) {\n var controller = stream._writableStreamController;\n stream._state = 'erroring';\n stream._storedError = reason;\n var writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {\n WritableStreamFinishErroring(stream);\n }\n }\n function WritableStreamFinishErroring(stream) {\n stream._state = 'errored';\n stream._writableStreamController[ErrorSteps]();\n var storedError = stream._storedError;\n stream._writeRequests.forEach(function (writeRequest) {\n writeRequest._reject(storedError);\n });\n stream._writeRequests = new SimpleQueue();\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n uponPromise(promise, function () {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, function (reason) {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n var state = stream._state;\n if (state === 'erroring') {\n // The error was too late to do anything, so it is ignored.\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n // Never execute sink abort() after sink close().\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n // TODO(ricea): Fix alphabetical order.\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamMarkCloseRequestInFlight(stream) {\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n if (stream._closeRequest !== undefined) {\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n var writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure) {\n defaultWriterReadyPromiseReset(writer);\n }\n else {\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n stream._backpressure = backpressure;\n }\n /**\n * A default writer vended by a {@link WritableStream}.\n *\n * @public\n */\n var WritableStreamDefaultWriter = /** @class */ (function () {\n function WritableStreamDefaultWriter(stream) {\n assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter');\n assertWritableStream(stream, 'First parameter');\n if (IsWritableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n var state = stream._state;\n if (state === 'writable') {\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {\n defaultWriterReadyPromiseInitialize(this);\n }\n else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n }\n else {\n var storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n }\n }\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"closed\", {\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the writers lock is released before the stream finishes closing.\n */\n get: function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n }\n return this._closedPromise;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"desiredSize\", {\n /**\n * Returns the desired size to fill the streams internal queue. It can be negative, if the queue is over-full.\n * A producer can use this information to determine the right amount of data to write.\n *\n * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort\n * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when\n * the writers lock is released.\n */\n get: function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n return WritableStreamDefaultWriterGetDesiredSize(this);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"ready\", {\n /**\n * Returns a promise that will be fulfilled when the desired size to fill the streams internal queue transitions\n * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips\n * back to zero or below, the getter will return a new promise that stays pending until the next transition.\n *\n * If the stream becomes errored or aborted, or the writers lock is released, the returned promise will become\n * rejected.\n */\n get: function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n }\n return this._readyPromise;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}.\n */\n WritableStreamDefaultWriter.prototype.abort = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('abort'));\n }\n return WritableStreamDefaultWriterAbort(this, reason);\n };\n /**\n * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}.\n */\n WritableStreamDefaultWriter.prototype.close = function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamDefaultWriterClose(this);\n };\n /**\n * Releases the writers lock on the corresponding stream. After the lock is released, the writer is no longer active.\n * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from\n * now on; otherwise, the writer will appear closed.\n *\n * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the\n * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled).\n * Its not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents\n * other producers from writing in an interleaved manner.\n */\n WritableStreamDefaultWriter.prototype.releaseLock = function () {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\n }\n WritableStreamDefaultWriterRelease(this);\n };\n WritableStreamDefaultWriter.prototype.write = function (chunk) {\n if (chunk === void 0) { chunk = undefined; }\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n return WritableStreamDefaultWriterWrite(this, chunk);\n };\n return WritableStreamDefaultWriter;\n }());\n Object.defineProperties(WritableStreamDefaultWriter.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n releaseLock: { enumerable: true },\n write: { enumerable: true },\n closed: { enumerable: true },\n desiredSize: { enumerable: true },\n ready: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultWriter.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultWriter',\n configurable: true\n });\n }\n // Abstract operations for the WritableStreamDefaultWriter.\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultWriter;\n }\n // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n function WritableStreamDefaultWriterAbort(writer, reason) {\n var stream = writer._ownerWritableStream;\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n var stream = writer._ownerWritableStream;\n return WritableStreamClose(stream);\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n }\n else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n }\n else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n function WritableStreamDefaultWriterRelease(writer) {\n var stream = writer._ownerWritableStream;\n var releasedError = new TypeError(\"Writer was released and can no longer be used to monitor the stream's closedness\");\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n // rejected until afterwards. This means that simply testing state will not work.\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n var stream = writer._ownerWritableStream;\n var controller = stream._writableStreamController;\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n if (stream !== writer._ownerWritableStream) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n var state = stream._state;\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return promiseRejectedWith(stream._storedError);\n }\n var promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n var closeSentinel = {};\n /**\n * Allows control of a {@link WritableStream | writable stream}'s state and internal queue.\n *\n * @public\n */\n var WritableStreamDefaultController = /** @class */ (function () {\n function WritableStreamDefaultController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(WritableStreamDefaultController.prototype, \"abortReason\", {\n /**\n * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted.\n *\n * @deprecated\n * This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177.\n * Use {@link WritableStreamDefaultController.signal}'s `reason` instead.\n */\n get: function () {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('abortReason');\n }\n return this._abortReason;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WritableStreamDefaultController.prototype, \"signal\", {\n /**\n * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted.\n */\n get: function () {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('signal');\n }\n if (this._abortController === undefined) {\n // Older browsers or older Node versions may not support `AbortController` or `AbortSignal`.\n // We don't want to bundle and ship an `AbortController` polyfill together with our polyfill,\n // so instead we only implement support for `signal` if we find a global `AbortController` constructor.\n throw new TypeError('WritableStreamDefaultController.prototype.signal is not supported');\n }\n return this._abortController.signal;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`.\n *\n * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying\n * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the\n * normal lifecycle of interactions with the underlying sink.\n */\n WritableStreamDefaultController.prototype.error = function (e) {\n if (e === void 0) { e = undefined; }\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('error');\n }\n var state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n // just treat it as a no-op.\n return;\n }\n WritableStreamDefaultControllerError(this, e);\n };\n /** @internal */\n WritableStreamDefaultController.prototype[AbortSteps] = function (reason) {\n var result = this._abortAlgorithm(reason);\n WritableStreamDefaultControllerClearAlgorithms(this);\n return result;\n };\n /** @internal */\n WritableStreamDefaultController.prototype[ErrorSteps] = function () {\n ResetQueue(this);\n };\n return WritableStreamDefaultController;\n }());\n Object.defineProperties(WritableStreamDefaultController.prototype, {\n abortReason: { enumerable: true },\n signal: { enumerable: true },\n error: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations implementing interface required by the WritableStream.\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultController;\n }\n function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledWritableStream = stream;\n stream._writableStreamController = controller;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._abortReason = undefined;\n controller._abortController = createAbortController();\n controller._started = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._writeAlgorithm = writeAlgorithm;\n controller._closeAlgorithm = closeAlgorithm;\n controller._abortAlgorithm = abortAlgorithm;\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n var startResult = startAlgorithm();\n var startPromise = promiseResolvedWith(startResult);\n uponPromise(startPromise, function () {\n controller._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (r) {\n controller._started = true;\n WritableStreamDealWithRejection(stream, r);\n });\n }\n function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n var controller = Object.create(WritableStreamDefaultController.prototype);\n var startAlgorithm = function () { return undefined; };\n var writeAlgorithm = function () { return promiseResolvedWith(undefined); };\n var closeAlgorithm = function () { return promiseResolvedWith(undefined); };\n var abortAlgorithm = function () { return promiseResolvedWith(undefined); };\n if (underlyingSink.start !== undefined) {\n startAlgorithm = function () { return underlyingSink.start(controller); };\n }\n if (underlyingSink.write !== undefined) {\n writeAlgorithm = function (chunk) { return underlyingSink.write(chunk, controller); };\n }\n if (underlyingSink.close !== undefined) {\n closeAlgorithm = function () { return underlyingSink.close(); };\n }\n if (underlyingSink.abort !== undefined) {\n abortAlgorithm = function (reason) { return underlyingSink.abort(reason); };\n }\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n function WritableStreamDefaultControllerClearAlgorithms(controller) {\n controller._writeAlgorithm = undefined;\n controller._closeAlgorithm = undefined;\n controller._abortAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, closeSentinel, 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n try {\n return controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n var stream = controller._controlledWritableStream;\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n // Abstract operations for the WritableStreamDefaultController.\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n var stream = controller._controlledWritableStream;\n if (!controller._started) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n var state = stream._state;\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n var value = PeekQueueValue(controller);\n if (value === closeSentinel) {\n WritableStreamDefaultControllerProcessClose(controller);\n }\n else {\n WritableStreamDefaultControllerProcessWrite(controller, value);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n function WritableStreamDefaultControllerProcessClose(controller) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n var sinkClosePromise = controller._closeAlgorithm();\n WritableStreamDefaultControllerClearAlgorithms(controller);\n uponPromise(sinkClosePromise, function () {\n WritableStreamFinishInFlightClose(stream);\n }, function (reason) {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n var sinkWritePromise = controller._writeAlgorithm(chunk);\n uponPromise(sinkWritePromise, function () {\n WritableStreamFinishInFlightWrite(stream);\n var state = stream._state;\n DequeueValue(controller);\n if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (reason) {\n if (stream._state === 'writable') {\n WritableStreamDefaultControllerClearAlgorithms(controller);\n }\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n function WritableStreamDefaultControllerError(controller, error) {\n var stream = controller._controlledWritableStream;\n WritableStreamDefaultControllerClearAlgorithms(controller);\n WritableStreamStartErroring(stream, error);\n }\n // Helper functions for the WritableStream.\n function streamBrandCheckException$2(name) {\n return new TypeError(\"WritableStream.prototype.\" + name + \" can only be used on a WritableStream\");\n }\n // Helper functions for the WritableStreamDefaultController.\n function defaultControllerBrandCheckException$2(name) {\n return new TypeError(\"WritableStreamDefaultController.prototype.\" + name + \" can only be used on a WritableStreamDefaultController\");\n }\n // Helper functions for the WritableStreamDefaultWriter.\n function defaultWriterBrandCheckException(name) {\n return new TypeError(\"WritableStreamDefaultWriter.prototype.\" + name + \" can only be used on a WritableStreamDefaultWriter\");\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = newPromise(function (resolve, reject) {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseReject(writer, reason);\n }\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseResolve(writer);\n }\n function defaultWriterClosedPromiseReject(writer, reason) {\n if (writer._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._closedPromise);\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterClosedPromiseResolve(writer) {\n if (writer._closedPromise_resolve === undefined) {\n return;\n }\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = newPromise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseReject(writer, reason);\n }\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseResolve(writer);\n }\n function defaultWriterReadyPromiseReject(writer, reason) {\n if (writer._readyPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._readyPromise);\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseReset(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n }\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterReadyPromiseResolve(writer) {\n if (writer._readyPromise_resolve === undefined) {\n return;\n }\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n\n /// <reference lib=\"dom\" />\n var NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n\n /// <reference types=\"node\" />\n function isDOMExceptionConstructor(ctor) {\n if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n return false;\n }\n try {\n new ctor();\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n function createDOMExceptionPolyfill() {\n // eslint-disable-next-line no-shadow\n var ctor = function DOMException(message, name) {\n this.message = message || '';\n this.name = name || 'Error';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n };\n ctor.prototype = Object.create(Error.prototype);\n Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n return ctor;\n }\n // eslint-disable-next-line no-redeclare\n var DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n\n function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n var reader = AcquireReadableStreamDefaultReader(source);\n var writer = AcquireWritableStreamDefaultWriter(dest);\n source._disturbed = true;\n var shuttingDown = false;\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n var currentWrite = promiseResolvedWith(undefined);\n return newPromise(function (resolve, reject) {\n var abortAlgorithm;\n if (signal !== undefined) {\n abortAlgorithm = function () {\n var error = new DOMException$1('Aborted', 'AbortError');\n var actions = [];\n if (!preventAbort) {\n actions.push(function () {\n if (dest._state === 'writable') {\n return WritableStreamAbort(dest, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n if (!preventCancel) {\n actions.push(function () {\n if (source._state === 'readable') {\n return ReadableStreamCancel(source, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n shutdownWithAction(function () { return Promise.all(actions.map(function (action) { return action(); })); }, true, error);\n };\n if (signal.aborted) {\n abortAlgorithm();\n return;\n }\n signal.addEventListener('abort', abortAlgorithm);\n }\n // Using reader and writer, read all chunks from this and write them to dest\n // - Backpressure must be enforced\n // - Shutdown must stop all activity\n function pipeLoop() {\n return newPromise(function (resolveLoop, rejectLoop) {\n function next(done) {\n if (done) {\n resolveLoop();\n }\n else {\n // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n PerformPromiseThen(pipeStep(), next, rejectLoop);\n }\n }\n next(false);\n });\n }\n function pipeStep() {\n if (shuttingDown) {\n return promiseResolvedWith(true);\n }\n return PerformPromiseThen(writer._readyPromise, function () {\n return newPromise(function (resolveRead, rejectRead) {\n ReadableStreamDefaultReaderRead(reader, {\n _chunkSteps: function (chunk) {\n currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop);\n resolveRead(false);\n },\n _closeSteps: function () { return resolveRead(true); },\n _errorSteps: rejectRead\n });\n });\n });\n }\n // Errors must be propagated forward\n isOrBecomesErrored(source, reader._closedPromise, function (storedError) {\n if (!preventAbort) {\n shutdownWithAction(function () { return WritableStreamAbort(dest, storedError); }, true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Errors must be propagated backward\n isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n if (!preventCancel) {\n shutdownWithAction(function () { return ReadableStreamCancel(source, storedError); }, true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Closing must be propagated forward\n isOrBecomesClosed(source, reader._closedPromise, function () {\n if (!preventClose) {\n shutdownWithAction(function () { return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); });\n }\n else {\n shutdown();\n }\n });\n // Closing must be propagated backward\n if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') {\n var destClosed_1 = new TypeError('the destination writable stream closed before all data could be piped to it');\n if (!preventCancel) {\n shutdownWithAction(function () { return ReadableStreamCancel(source, destClosed_1); }, true, destClosed_1);\n }\n else {\n shutdown(true, destClosed_1);\n }\n }\n setPromiseIsHandledToTrue(pipeLoop());\n function waitForWritesToFinish() {\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n // for that too.\n var oldCurrentWrite = currentWrite;\n return PerformPromiseThen(currentWrite, function () { return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; });\n }\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n }\n else {\n uponRejection(promise, action);\n }\n }\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n }\n else {\n uponFulfillment(promise, action);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), doTheRest);\n }\n else {\n doTheRest();\n }\n function doTheRest() {\n uponPromise(action(), function () { return finalize(originalIsError, originalError); }, function (newError) { return finalize(true, newError); });\n }\n }\n function shutdown(isError, error) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), function () { return finalize(isError, error); });\n }\n else {\n finalize(isError, error);\n }\n }\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n if (signal !== undefined) {\n signal.removeEventListener('abort', abortAlgorithm);\n }\n if (isError) {\n reject(error);\n }\n else {\n resolve(undefined);\n }\n }\n });\n }\n\n /**\n * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue.\n *\n * @public\n */\n var ReadableStreamDefaultController = /** @class */ (function () {\n function ReadableStreamDefaultController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(ReadableStreamDefaultController.prototype, \"desiredSize\", {\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying source ought to use this information to determine when and how to apply backpressure.\n */\n get: function () {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('desiredSize');\n }\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n ReadableStreamDefaultController.prototype.close = function () {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('close');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits close');\n }\n ReadableStreamDefaultControllerClose(this);\n };\n ReadableStreamDefaultController.prototype.enqueue = function (chunk) {\n if (chunk === void 0) { chunk = undefined; }\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('enqueue');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits enqueue');\n }\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n };\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n ReadableStreamDefaultController.prototype.error = function (e) {\n if (e === void 0) { e = undefined; }\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('error');\n }\n ReadableStreamDefaultControllerError(this, e);\n };\n /** @internal */\n ReadableStreamDefaultController.prototype[CancelSteps] = function (reason) {\n ResetQueue(this);\n var result = this._cancelAlgorithm(reason);\n ReadableStreamDefaultControllerClearAlgorithms(this);\n return result;\n };\n /** @internal */\n ReadableStreamDefaultController.prototype[PullSteps] = function (readRequest) {\n var stream = this._controlledReadableStream;\n if (this._queue.length > 0) {\n var chunk = DequeueValue(this);\n if (this._closeRequested && this._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(this);\n ReadableStreamClose(stream);\n }\n else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n readRequest._chunkSteps(chunk);\n }\n else {\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n };\n return ReadableStreamDefaultController;\n }());\n Object.defineProperties(ReadableStreamDefaultController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableStreamDefaultController.\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultController;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n var pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, function () {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n ReadableStreamDefaultControllerError(controller, e);\n });\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n function ReadableStreamDefaultControllerClose(controller) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n var stream = controller._controlledReadableStream;\n controller._closeRequested = true;\n if (controller._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n var stream = controller._controlledReadableStream;\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n }\n else {\n var chunkSize = void 0;\n try {\n chunkSize = controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n ReadableStreamDefaultControllerError(controller, chunkSizeE);\n throw chunkSizeE;\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n ReadableStreamDefaultControllerError(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n function ReadableStreamDefaultControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return;\n }\n ResetQueue(controller);\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n var state = controller._controlledReadableStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n // This is used in the implementation of TransformStream.\n function ReadableStreamDefaultControllerHasBackpressure(controller) {\n if (ReadableStreamDefaultControllerShouldCallPull(controller)) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n var state = controller._controlledReadableStream._state;\n if (!controller._closeRequested && state === 'readable') {\n return true;\n }\n return false;\n }\n function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledReadableStream = stream;\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._started = false;\n controller._closeRequested = false;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n stream._readableStreamController = controller;\n var startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), function () {\n controller._started = true;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableStreamDefaultControllerError(controller, r);\n });\n }\n function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n var controller = Object.create(ReadableStreamDefaultController.prototype);\n var startAlgorithm = function () { return undefined; };\n var pullAlgorithm = function () { return promiseResolvedWith(undefined); };\n var cancelAlgorithm = function () { return promiseResolvedWith(undefined); };\n if (underlyingSource.start !== undefined) {\n startAlgorithm = function () { return underlyingSource.start(controller); };\n }\n if (underlyingSource.pull !== undefined) {\n pullAlgorithm = function () { return underlyingSource.pull(controller); };\n }\n if (underlyingSource.cancel !== undefined) {\n cancelAlgorithm = function (reason) { return underlyingSource.cancel(reason); };\n }\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // Helper functions for the ReadableStreamDefaultController.\n function defaultControllerBrandCheckException$1(name) {\n return new TypeError(\"ReadableStreamDefaultController.prototype.\" + name + \" can only be used on a ReadableStreamDefaultController\");\n }\n\n function ReadableStreamTee(stream, cloneForBranch2) {\n if (IsReadableByteStreamController(stream._readableStreamController)) {\n return ReadableByteStreamTee(stream);\n }\n return ReadableStreamDefaultTee(stream);\n }\n function ReadableStreamDefaultTee(stream, cloneForBranch2) {\n var reader = AcquireReadableStreamDefaultReader(stream);\n var reading = false;\n var readAgain = false;\n var canceled1 = false;\n var canceled2 = false;\n var reason1;\n var reason2;\n var branch1;\n var branch2;\n var resolveCancelPromise;\n var cancelPromise = newPromise(function (resolve) {\n resolveCancelPromise = resolve;\n });\n function pullAlgorithm() {\n if (reading) {\n readAgain = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n var readRequest = {\n _chunkSteps: function (chunk) {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(function () {\n readAgain = false;\n var chunk1 = chunk;\n var chunk2 = chunk;\n // There is no way to access the cloning code right now in the reference implementation.\n // If we add one then we'll need an implementation for serializable objects.\n // if (!canceled2 && cloneForBranch2) {\n // chunk2 = StructuredDeserialize(StructuredSerialize(chunk2));\n // }\n if (!canceled1) {\n ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgain) {\n pullAlgorithm();\n }\n });\n },\n _closeSteps: function () {\n reading = false;\n if (!canceled1) {\n ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: function () {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n var compositeReason = CreateArrayFromList([reason1, reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n var compositeReason = CreateArrayFromList([reason1, reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n // do nothing\n }\n branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n uponRejection(reader._closedPromise, function (r) {\n ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n return [branch1, branch2];\n }\n function ReadableByteStreamTee(stream) {\n var reader = AcquireReadableStreamDefaultReader(stream);\n var reading = false;\n var readAgainForBranch1 = false;\n var readAgainForBranch2 = false;\n var canceled1 = false;\n var canceled2 = false;\n var reason1;\n var reason2;\n var branch1;\n var branch2;\n var resolveCancelPromise;\n var cancelPromise = newPromise(function (resolve) {\n resolveCancelPromise = resolve;\n });\n function forwardReaderError(thisReader) {\n uponRejection(thisReader._closedPromise, function (r) {\n if (thisReader !== reader) {\n return;\n }\n ReadableByteStreamControllerError(branch1._readableStreamController, r);\n ReadableByteStreamControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n }\n function pullWithDefaultReader() {\n if (IsReadableStreamBYOBReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamDefaultReader(stream);\n forwardReaderError(reader);\n }\n var readRequest = {\n _chunkSteps: function (chunk) {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(function () {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n var chunk1 = chunk;\n var chunk2 = chunk;\n if (!canceled1 && !canceled2) {\n try {\n chunk2 = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(branch1._readableStreamController, cloneE);\n ReadableByteStreamControllerError(branch2._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n }\n if (!canceled1) {\n ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: function () {\n reading = false;\n if (!canceled1) {\n ReadableByteStreamControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableByteStreamControllerClose(branch2._readableStreamController);\n }\n if (branch1._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch1._readableStreamController, 0);\n }\n if (branch2._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch2._readableStreamController, 0);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: function () {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n }\n function pullWithBYOBReader(view, forBranch2) {\n if (IsReadableStreamDefaultReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamBYOBReader(stream);\n forwardReaderError(reader);\n }\n var byobBranch = forBranch2 ? branch2 : branch1;\n var otherBranch = forBranch2 ? branch1 : branch2;\n var readIntoRequest = {\n _chunkSteps: function (chunk) {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(function () {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n var byobCanceled = forBranch2 ? canceled2 : canceled1;\n var otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!otherCanceled) {\n var clonedChunk = void 0;\n try {\n clonedChunk = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE);\n ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk);\n }\n else if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: function (chunk) {\n reading = false;\n var byobCanceled = forBranch2 ? canceled2 : canceled1;\n var otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!byobCanceled) {\n ReadableByteStreamControllerClose(byobBranch._readableStreamController);\n }\n if (!otherCanceled) {\n ReadableByteStreamControllerClose(otherBranch._readableStreamController);\n }\n if (chunk !== undefined) {\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0);\n }\n }\n if (!byobCanceled || !otherCanceled) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: function () {\n reading = false;\n }\n };\n ReadableStreamBYOBReaderRead(reader, view, readIntoRequest);\n }\n function pull1Algorithm() {\n if (reading) {\n readAgainForBranch1 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n var byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, false);\n }\n return promiseResolvedWith(undefined);\n }\n function pull2Algorithm() {\n if (reading) {\n readAgainForBranch2 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n var byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, true);\n }\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n var compositeReason = CreateArrayFromList([reason1, reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n var compositeReason = CreateArrayFromList([reason1, reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n return;\n }\n branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm);\n branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm);\n forwardReaderError(reader);\n return [branch1, branch2];\n }\n\n function convertUnderlyingDefaultOrByteSource(source, context) {\n assertDictionary(source, context);\n var original = source;\n var autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;\n var cancel = original === null || original === void 0 ? void 0 : original.cancel;\n var pull = original === null || original === void 0 ? void 0 : original.pull;\n var start = original === null || original === void 0 ? void 0 : original.start;\n var type = original === null || original === void 0 ? void 0 : original.type;\n return {\n autoAllocateChunkSize: autoAllocateChunkSize === undefined ?\n undefined :\n convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, context + \" has member 'autoAllocateChunkSize' that\"),\n cancel: cancel === undefined ?\n undefined :\n convertUnderlyingSourceCancelCallback(cancel, original, context + \" has member 'cancel' that\"),\n pull: pull === undefined ?\n undefined :\n convertUnderlyingSourcePullCallback(pull, original, context + \" has member 'pull' that\"),\n start: start === undefined ?\n undefined :\n convertUnderlyingSourceStartCallback(start, original, context + \" has member 'start' that\"),\n type: type === undefined ? undefined : convertReadableStreamType(type, context + \" has member 'type' that\")\n };\n }\n function convertUnderlyingSourceCancelCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (reason) { return promiseCall(fn, original, [reason]); };\n }\n function convertUnderlyingSourcePullCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return promiseCall(fn, original, [controller]); };\n }\n function convertUnderlyingSourceStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return reflectCall(fn, original, [controller]); };\n }\n function convertReadableStreamType(type, context) {\n type = \"\" + type;\n if (type !== 'bytes') {\n throw new TypeError(context + \" '\" + type + \"' is not a valid enumeration value for ReadableStreamType\");\n }\n return type;\n }\n\n function convertReaderOptions(options, context) {\n assertDictionary(options, context);\n var mode = options === null || options === void 0 ? void 0 : options.mode;\n return {\n mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, context + \" has member 'mode' that\")\n };\n }\n function convertReadableStreamReaderMode(mode, context) {\n mode = \"\" + mode;\n if (mode !== 'byob') {\n throw new TypeError(context + \" '\" + mode + \"' is not a valid enumeration value for ReadableStreamReaderMode\");\n }\n return mode;\n }\n\n function convertIteratorOptions(options, context) {\n assertDictionary(options, context);\n var preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n return { preventCancel: Boolean(preventCancel) };\n }\n\n function convertPipeOptions(options, context) {\n assertDictionary(options, context);\n var preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;\n var preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n var preventClose = options === null || options === void 0 ? void 0 : options.preventClose;\n var signal = options === null || options === void 0 ? void 0 : options.signal;\n if (signal !== undefined) {\n assertAbortSignal(signal, context + \" has member 'signal' that\");\n }\n return {\n preventAbort: Boolean(preventAbort),\n preventCancel: Boolean(preventCancel),\n preventClose: Boolean(preventClose),\n signal: signal\n };\n }\n function assertAbortSignal(signal, context) {\n if (!isAbortSignal(signal)) {\n throw new TypeError(context + \" is not an AbortSignal.\");\n }\n }\n\n function convertReadableWritablePair(pair, context) {\n assertDictionary(pair, context);\n var readable = pair === null || pair === void 0 ? void 0 : pair.readable;\n assertRequiredField(readable, 'readable', 'ReadableWritablePair');\n assertReadableStream(readable, context + \" has member 'readable' that\");\n var writable = pair === null || pair === void 0 ? void 0 : pair.writable;\n assertRequiredField(writable, 'writable', 'ReadableWritablePair');\n assertWritableStream(writable, context + \" has member 'writable' that\");\n return { readable: readable, writable: writable };\n }\n\n /**\n * A readable stream represents a source of data, from which you can read.\n *\n * @public\n */\n var ReadableStream = /** @class */ (function () {\n function ReadableStream(rawUnderlyingSource, rawStrategy) {\n if (rawUnderlyingSource === void 0) { rawUnderlyingSource = {}; }\n if (rawStrategy === void 0) { rawStrategy = {}; }\n if (rawUnderlyingSource === undefined) {\n rawUnderlyingSource = null;\n }\n else {\n assertObject(rawUnderlyingSource, 'First parameter');\n }\n var strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n var underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter');\n InitializeReadableStream(this);\n if (underlyingSource.type === 'bytes') {\n if (strategy.size !== undefined) {\n throw new RangeError('The strategy for a byte stream cannot have a size function');\n }\n var highWaterMark = ExtractHighWaterMark(strategy, 0);\n SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n }\n else {\n var sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n var highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n }\n }\n Object.defineProperty(ReadableStream.prototype, \"locked\", {\n /**\n * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}.\n */\n get: function () {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('locked');\n }\n return IsReadableStreamLocked(this);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Cancels the stream, signaling a loss of interest in the stream by a consumer.\n *\n * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()}\n * method, which might or might not use it.\n */\n ReadableStream.prototype.cancel = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n return ReadableStreamCancel(this, reason);\n };\n ReadableStream.prototype.getReader = function (rawOptions) {\n if (rawOptions === void 0) { rawOptions = undefined; }\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('getReader');\n }\n var options = convertReaderOptions(rawOptions, 'First parameter');\n if (options.mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n return AcquireReadableStreamBYOBReader(this);\n };\n ReadableStream.prototype.pipeThrough = function (rawTransform, rawOptions) {\n if (rawOptions === void 0) { rawOptions = {}; }\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('pipeThrough');\n }\n assertRequiredArgument(rawTransform, 1, 'pipeThrough');\n var transform = convertReadableWritablePair(rawTransform, 'First parameter');\n var options = convertPipeOptions(rawOptions, 'Second parameter');\n if (IsReadableStreamLocked(this)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n }\n if (IsWritableStreamLocked(transform.writable)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n }\n var promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n setPromiseIsHandledToTrue(promise);\n return transform.readable;\n };\n ReadableStream.prototype.pipeTo = function (destination, rawOptions) {\n if (rawOptions === void 0) { rawOptions = {}; }\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n }\n if (destination === undefined) {\n return promiseRejectedWith(\"Parameter 1 is required in 'pipeTo'.\");\n }\n if (!IsWritableStream(destination)) {\n return promiseRejectedWith(new TypeError(\"ReadableStream.prototype.pipeTo's first argument must be a WritableStream\"));\n }\n var options;\n try {\n options = convertPipeOptions(rawOptions, 'Second parameter');\n }\n catch (e) {\n return promiseRejectedWith(e);\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(destination)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n };\n /**\n * Tees this readable stream, returning a two-element array containing the two resulting branches as\n * new {@link ReadableStream} instances.\n *\n * Teeing a stream will lock it, preventing any other consumer from acquiring a reader.\n * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be\n * propagated to the stream's underlying source.\n *\n * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable,\n * this could allow interference between the two branches.\n */\n ReadableStream.prototype.tee = function () {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('tee');\n }\n var branches = ReadableStreamTee(this);\n return CreateArrayFromList(branches);\n };\n ReadableStream.prototype.values = function (rawOptions) {\n if (rawOptions === void 0) { rawOptions = undefined; }\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('values');\n }\n var options = convertIteratorOptions(rawOptions, 'First parameter');\n return AcquireReadableStreamAsyncIterator(this, options.preventCancel);\n };\n return ReadableStream;\n }());\n Object.defineProperties(ReadableStream.prototype, {\n cancel: { enumerable: true },\n getReader: { enumerable: true },\n pipeThrough: { enumerable: true },\n pipeTo: { enumerable: true },\n tee: { enumerable: true },\n values: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStream',\n configurable: true\n });\n }\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\n value: ReadableStream.prototype.values,\n writable: true,\n configurable: true\n });\n }\n // Abstract operations for the ReadableStream.\n // Throws if and only if startAlgorithm throws.\n function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n if (highWaterMark === void 0) { highWaterMark = 1; }\n if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n var stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n var controller = Object.create(ReadableStreamDefaultController.prototype);\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n // Throws if and only if startAlgorithm throws.\n function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) {\n var stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n var controller = Object.create(ReadableByteStreamController.prototype);\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, undefined);\n return stream;\n }\n function InitializeReadableStream(stream) {\n stream._state = 'readable';\n stream._reader = undefined;\n stream._storedError = undefined;\n stream._disturbed = false;\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return x instanceof ReadableStream;\n }\n function IsReadableStreamLocked(stream) {\n if (stream._reader === undefined) {\n return false;\n }\n return true;\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (stream._state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n ReadableStreamClose(stream);\n var reader = stream._reader;\n if (reader !== undefined && IsReadableStreamBYOBReader(reader)) {\n reader._readIntoRequests.forEach(function (readIntoRequest) {\n readIntoRequest._closeSteps(undefined);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n var sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n return transformPromiseWith(sourceCancelPromise, noop);\n }\n function ReadableStreamClose(stream) {\n stream._state = 'closed';\n var reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseResolve(reader);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(function (readRequest) {\n readRequest._closeSteps();\n });\n reader._readRequests = new SimpleQueue();\n }\n }\n function ReadableStreamError(stream, e) {\n stream._state = 'errored';\n stream._storedError = e;\n var reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseReject(reader, e);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(function (readRequest) {\n readRequest._errorSteps(e);\n });\n reader._readRequests = new SimpleQueue();\n }\n else {\n reader._readIntoRequests.forEach(function (readIntoRequest) {\n readIntoRequest._errorSteps(e);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n }\n // Helper functions for the ReadableStream.\n function streamBrandCheckException$1(name) {\n return new TypeError(\"ReadableStream.prototype.\" + name + \" can only be used on a ReadableStream\");\n }\n\n function convertQueuingStrategyInit(init, context) {\n assertDictionary(init, context);\n var highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit');\n return {\n highWaterMark: convertUnrestrictedDouble(highWaterMark)\n };\n }\n\n // The size function must not have a prototype property nor be a constructor\n var byteLengthSizeFunction = function (chunk) {\n return chunk.byteLength;\n };\n Object.defineProperty(byteLengthSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n /**\n * A queuing strategy that counts the number of bytes in each chunk.\n *\n * @public\n */\n var ByteLengthQueuingStrategy = /** @class */ (function () {\n function ByteLengthQueuingStrategy(options) {\n assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, \"highWaterMark\", {\n /**\n * Returns the high water mark provided to the constructor.\n */\n get: function () {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('highWaterMark');\n }\n return this._byteLengthQueuingStrategyHighWaterMark;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, \"size\", {\n /**\n * Measures the size of `chunk` by returning the value of its `byteLength` property.\n */\n get: function () {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('size');\n }\n return byteLengthSizeFunction;\n },\n enumerable: false,\n configurable: true\n });\n return ByteLengthQueuingStrategy;\n }());\n Object.defineProperties(ByteLengthQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'ByteLengthQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the ByteLengthQueuingStrategy.\n function byteLengthBrandCheckException(name) {\n return new TypeError(\"ByteLengthQueuingStrategy.prototype.\" + name + \" can only be used on a ByteLengthQueuingStrategy\");\n }\n function IsByteLengthQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof ByteLengthQueuingStrategy;\n }\n\n // The size function must not have a prototype property nor be a constructor\n var countSizeFunction = function () {\n return 1;\n };\n Object.defineProperty(countSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n /**\n * A queuing strategy that counts the number of chunks.\n *\n * @public\n */\n var CountQueuingStrategy = /** @class */ (function () {\n function CountQueuingStrategy(options) {\n assertRequiredArgument(options, 1, 'CountQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._countQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n Object.defineProperty(CountQueuingStrategy.prototype, \"highWaterMark\", {\n /**\n * Returns the high water mark provided to the constructor.\n */\n get: function () {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('highWaterMark');\n }\n return this._countQueuingStrategyHighWaterMark;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CountQueuingStrategy.prototype, \"size\", {\n /**\n * Measures the size of `chunk` by always returning 1.\n * This ensures that the total queue size is a count of the number of chunks in the queue.\n */\n get: function () {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('size');\n }\n return countSizeFunction;\n },\n enumerable: false,\n configurable: true\n });\n return CountQueuingStrategy;\n }());\n Object.defineProperties(CountQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(CountQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'CountQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the CountQueuingStrategy.\n function countBrandCheckException(name) {\n return new TypeError(\"CountQueuingStrategy.prototype.\" + name + \" can only be used on a CountQueuingStrategy\");\n }\n function IsCountQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof CountQueuingStrategy;\n }\n\n function convertTransformer(original, context) {\n assertDictionary(original, context);\n var flush = original === null || original === void 0 ? void 0 : original.flush;\n var readableType = original === null || original === void 0 ? void 0 : original.readableType;\n var start = original === null || original === void 0 ? void 0 : original.start;\n var transform = original === null || original === void 0 ? void 0 : original.transform;\n var writableType = original === null || original === void 0 ? void 0 : original.writableType;\n return {\n flush: flush === undefined ?\n undefined :\n convertTransformerFlushCallback(flush, original, context + \" has member 'flush' that\"),\n readableType: readableType,\n start: start === undefined ?\n undefined :\n convertTransformerStartCallback(start, original, context + \" has member 'start' that\"),\n transform: transform === undefined ?\n undefined :\n convertTransformerTransformCallback(transform, original, context + \" has member 'transform' that\"),\n writableType: writableType\n };\n }\n function convertTransformerFlushCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return promiseCall(fn, original, [controller]); };\n }\n function convertTransformerStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (controller) { return reflectCall(fn, original, [controller]); };\n }\n function convertTransformerTransformCallback(fn, original, context) {\n assertFunction(fn, context);\n return function (chunk, controller) { return promiseCall(fn, original, [chunk, controller]); };\n }\n\n // Class TransformStream\n /**\n * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream},\n * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side.\n * In a manner specific to the transform stream in question, writes to the writable side result in new data being\n * made available for reading from the readable side.\n *\n * @public\n */\n var TransformStream = /** @class */ (function () {\n function TransformStream(rawTransformer, rawWritableStrategy, rawReadableStrategy) {\n if (rawTransformer === void 0) { rawTransformer = {}; }\n if (rawWritableStrategy === void 0) { rawWritableStrategy = {}; }\n if (rawReadableStrategy === void 0) { rawReadableStrategy = {}; }\n if (rawTransformer === undefined) {\n rawTransformer = null;\n }\n var writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter');\n var readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter');\n var transformer = convertTransformer(rawTransformer, 'First parameter');\n if (transformer.readableType !== undefined) {\n throw new RangeError('Invalid readableType specified');\n }\n if (transformer.writableType !== undefined) {\n throw new RangeError('Invalid writableType specified');\n }\n var readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);\n var readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);\n var writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);\n var writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);\n var startPromise_resolve;\n var startPromise = newPromise(function (resolve) {\n startPromise_resolve = resolve;\n });\n InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n if (transformer.start !== undefined) {\n startPromise_resolve(transformer.start(this._transformStreamController));\n }\n else {\n startPromise_resolve(undefined);\n }\n }\n Object.defineProperty(TransformStream.prototype, \"readable\", {\n /**\n * The readable side of the transform stream.\n */\n get: function () {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('readable');\n }\n return this._readable;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TransformStream.prototype, \"writable\", {\n /**\n * The writable side of the transform stream.\n */\n get: function () {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('writable');\n }\n return this._writable;\n },\n enumerable: false,\n configurable: true\n });\n return TransformStream;\n }());\n Object.defineProperties(TransformStream.prototype, {\n readable: { enumerable: true },\n writable: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStream',\n configurable: true\n });\n }\n function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n function startAlgorithm() {\n return startPromise;\n }\n function writeAlgorithm(chunk) {\n return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n }\n function abortAlgorithm(reason) {\n return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n }\n function closeAlgorithm() {\n return TransformStreamDefaultSinkCloseAlgorithm(stream);\n }\n stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n function pullAlgorithm() {\n return TransformStreamDefaultSourcePullAlgorithm(stream);\n }\n function cancelAlgorithm(reason) {\n TransformStreamErrorWritableAndUnblockWrite(stream, reason);\n return promiseResolvedWith(undefined);\n }\n stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n stream._backpressure = undefined;\n stream._backpressureChangePromise = undefined;\n stream._backpressureChangePromise_resolve = undefined;\n TransformStreamSetBackpressure(stream, true);\n stream._transformStreamController = undefined;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return x instanceof TransformStream;\n }\n // This is a no-op if both sides are already errored.\n function TransformStreamError(stream, e) {\n ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n }\n function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n if (stream._backpressure) {\n // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n // _backpressure is set.\n TransformStreamSetBackpressure(stream, false);\n }\n }\n function TransformStreamSetBackpressure(stream, backpressure) {\n // Passes also when called during construction.\n if (stream._backpressureChangePromise !== undefined) {\n stream._backpressureChangePromise_resolve();\n }\n stream._backpressureChangePromise = newPromise(function (resolve) {\n stream._backpressureChangePromise_resolve = resolve;\n });\n stream._backpressure = backpressure;\n }\n // Class TransformStreamDefaultController\n /**\n * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}.\n *\n * @public\n */\n var TransformStreamDefaultController = /** @class */ (function () {\n function TransformStreamDefaultController() {\n throw new TypeError('Illegal constructor');\n }\n Object.defineProperty(TransformStreamDefaultController.prototype, \"desiredSize\", {\n /**\n * Returns the desired size to fill the readable sides internal queue. It can be negative, if the queue is over-full.\n */\n get: function () {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n var readableController = this._controlledTransformStream._readable._readableStreamController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n },\n enumerable: false,\n configurable: true\n });\n TransformStreamDefaultController.prototype.enqueue = function (chunk) {\n if (chunk === void 0) { chunk = undefined; }\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n TransformStreamDefaultControllerEnqueue(this, chunk);\n };\n /**\n * Errors both the readable side and the writable side of the controlled transform stream, making all future\n * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded.\n */\n TransformStreamDefaultController.prototype.error = function (reason) {\n if (reason === void 0) { reason = undefined; }\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('error');\n }\n TransformStreamDefaultControllerError(this, reason);\n };\n /**\n * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the\n * transformer only needs to consume a portion of the chunks written to the writable side.\n */\n TransformStreamDefaultController.prototype.terminate = function () {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('terminate');\n }\n TransformStreamDefaultControllerTerminate(this);\n };\n return TransformStreamDefaultController;\n }());\n Object.defineProperties(TransformStreamDefaultController.prototype, {\n enqueue: { enumerable: true },\n error: { enumerable: true },\n terminate: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStreamDefaultController',\n configurable: true\n });\n }\n // Transform Stream Default Controller Abstract Operations\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return x instanceof TransformStreamDefaultController;\n }\n function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\n controller._controlledTransformStream = stream;\n stream._transformStreamController = controller;\n controller._transformAlgorithm = transformAlgorithm;\n controller._flushAlgorithm = flushAlgorithm;\n }\n function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n var controller = Object.create(TransformStreamDefaultController.prototype);\n var transformAlgorithm = function (chunk) {\n try {\n TransformStreamDefaultControllerEnqueue(controller, chunk);\n return promiseResolvedWith(undefined);\n }\n catch (transformResultE) {\n return promiseRejectedWith(transformResultE);\n }\n };\n var flushAlgorithm = function () { return promiseResolvedWith(undefined); };\n if (transformer.transform !== undefined) {\n transformAlgorithm = function (chunk) { return transformer.transform(chunk, controller); };\n }\n if (transformer.flush !== undefined) {\n flushAlgorithm = function () { return transformer.flush(controller); };\n }\n SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\n }\n function TransformStreamDefaultControllerClearAlgorithms(controller) {\n controller._transformAlgorithm = undefined;\n controller._flushAlgorithm = undefined;\n }\n function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n var stream = controller._controlledTransformStream;\n var readableController = stream._readable._readableStreamController;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {\n throw new TypeError('Readable side is not in a state that permits enqueue');\n }\n // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n // accept TransformStreamDefaultControllerEnqueue() calls.\n try {\n ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n }\n catch (e) {\n // This happens when readableStrategy.size() throws.\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n throw stream._readable._storedError;\n }\n var backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n if (backpressure !== stream._backpressure) {\n TransformStreamSetBackpressure(stream, true);\n }\n }\n function TransformStreamDefaultControllerError(controller, e) {\n TransformStreamError(controller._controlledTransformStream, e);\n }\n function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n var transformPromise = controller._transformAlgorithm(chunk);\n return transformPromiseWith(transformPromise, undefined, function (r) {\n TransformStreamError(controller._controlledTransformStream, r);\n throw r;\n });\n }\n function TransformStreamDefaultControllerTerminate(controller) {\n var stream = controller._controlledTransformStream;\n var readableController = stream._readable._readableStreamController;\n ReadableStreamDefaultControllerClose(readableController);\n var error = new TypeError('TransformStream terminated');\n TransformStreamErrorWritableAndUnblockWrite(stream, error);\n }\n // TransformStreamDefaultSink Algorithms\n function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n var controller = stream._transformStreamController;\n if (stream._backpressure) {\n var backpressureChangePromise = stream._backpressureChangePromise;\n return transformPromiseWith(backpressureChangePromise, function () {\n var writable = stream._writable;\n var state = writable._state;\n if (state === 'erroring') {\n throw writable._storedError;\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n });\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n }\n function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\n // errored.\n TransformStreamError(stream, reason);\n return promiseResolvedWith(undefined);\n }\n function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n var readable = stream._readable;\n var controller = stream._transformStreamController;\n var flushPromise = controller._flushAlgorithm();\n TransformStreamDefaultControllerClearAlgorithms(controller);\n // Return a promise that is fulfilled with undefined on success.\n return transformPromiseWith(flushPromise, function () {\n if (readable._state === 'errored') {\n throw readable._storedError;\n }\n ReadableStreamDefaultControllerClose(readable._readableStreamController);\n }, function (r) {\n TransformStreamError(stream, r);\n throw readable._storedError;\n });\n }\n // TransformStreamDefaultSource Algorithms\n function TransformStreamDefaultSourcePullAlgorithm(stream) {\n // Invariant. Enforced by the promises returned by start() and pull().\n TransformStreamSetBackpressure(stream, false);\n // Prevent the next pull() call until there is backpressure.\n return stream._backpressureChangePromise;\n }\n // Helper functions for the TransformStreamDefaultController.\n function defaultControllerBrandCheckException(name) {\n return new TypeError(\"TransformStreamDefaultController.prototype.\" + name + \" can only be used on a TransformStreamDefaultController\");\n }\n // Helper functions for the TransformStream.\n function streamBrandCheckException(name) {\n return new TypeError(\"TransformStream.prototype.\" + name + \" can only be used on a TransformStream\");\n }\n\n exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n exports.CountQueuingStrategy = CountQueuingStrategy;\n exports.ReadableByteStreamController = ReadableByteStreamController;\n exports.ReadableStream = ReadableStream;\n exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader;\n exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;\n exports.ReadableStreamDefaultController = ReadableStreamDefaultController;\n exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader;\n exports.TransformStream = TransformStream;\n exports.TransformStreamDefaultController = TransformStreamDefaultController;\n exports.WritableStream = WritableStream;\n exports.WritableStreamDefaultController = WritableStreamDefaultController;\n exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=ponyfill.js.map\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CMapCompressionType, unreachable } from \"../shared/util.js\";\n\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n unreachable(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n const canvas = this._createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\"),\n };\n }\n\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n // Zeroing the width and height cause Firefox to release graphics\n // resources immediately, which can greatly reduce memory consumption.\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n\n /**\n * @private\n */\n _createCanvas(width, height) {\n unreachable(\"Abstract method `_createCanvas` called.\");\n }\n}\n\nclass BaseCMapReaderFactory {\n constructor({ baseUrl = null, isCompressed = false }) {\n if (this.constructor === BaseCMapReaderFactory) {\n unreachable(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n async fetch({ name }) {\n if (!this.baseUrl) {\n throw new Error(\n 'The CMap \"baseUrl\" parameter must be specified, ensure that ' +\n 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.'\n );\n }\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed\n ? CMapCompressionType.BINARY\n : CMapCompressionType.NONE;\n\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(\n `Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`\n );\n });\n }\n\n /**\n * @private\n */\n _fetchData(url, compressionType) {\n unreachable(\"Abstract method `_fetchData` called.\");\n }\n}\n\nclass BaseStandardFontDataFactory {\n constructor({ baseUrl = null }) {\n if (this.constructor === BaseStandardFontDataFactory) {\n unreachable(\"Cannot initialize BaseStandardFontDataFactory.\");\n }\n this.baseUrl = baseUrl;\n }\n\n async fetch({ filename }) {\n if (!this.baseUrl) {\n throw new Error(\n 'The standard font \"baseUrl\" parameter must be specified, ensure that ' +\n 'the \"standardFontDataUrl\" API parameter is provided.'\n );\n }\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n const url = `${this.baseUrl}${filename}`;\n\n return this._fetchData(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n\n /**\n * @private\n */\n _fetchData(url) {\n unreachable(\"Abstract method `_fetchData` called.\");\n }\n}\n\nclass BaseSVGFactory {\n constructor() {\n if (this.constructor === BaseSVGFactory) {\n unreachable(\"Cannot initialize BaseSVGFactory.\");\n }\n }\n\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n const svg = this._createSVG(\"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n\n return svg;\n }\n\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n return this._createSVG(type);\n }\n\n /**\n * @private\n */\n _createSVG(type) {\n unreachable(\"Abstract method `_createSVG` called.\");\n }\n}\n\nexport {\n BaseCanvasFactory,\n BaseCMapReaderFactory,\n BaseStandardFontDataFactory,\n BaseSVGFactory,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @module pdfjsLib\n */\n\nimport {\n AbortException,\n AnnotationMode,\n assert,\n createPromiseCapability,\n getVerbosityLevel,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isSameOrigin,\n MissingPDFException,\n PasswordException,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n stringToBytes,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport {\n deprecated,\n DOMCanvasFactory,\n DOMCMapReaderFactory,\n DOMStandardFontDataFactory,\n isDataScheme,\n loadScript,\n PageViewport,\n RenderingCancelledException,\n StatTimer,\n} from \"./display_utils.js\";\nimport { FontFaceObject, FontLoader } from \"./font_loader.js\";\nimport {\n NodeCanvasFactory,\n NodeCMapReaderFactory,\n NodeStandardFontDataFactory,\n} from \"./node_utils.js\";\nimport { AnnotationStorage } from \"./annotation_storage.js\";\nimport { CanvasGraphics } from \"./canvas.js\";\nimport { GlobalWorkerOptions } from \"./worker_options.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { Metadata } from \"./metadata.js\";\nimport { OptionalContentConfig } from \"./optional_content_config.js\";\nimport { PDFDataTransportStream } from \"./transport_stream.js\";\nimport { XfaText } from \"./xfa_text.js\";\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\nconst RENDERING_CANCELLED_TIMEOUT = 100; // ms\n\nconst DefaultCanvasFactory =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS\n ? NodeCanvasFactory\n : DOMCanvasFactory;\nconst DefaultCMapReaderFactory =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS\n ? NodeCMapReaderFactory\n : DOMCMapReaderFactory;\nconst DefaultStandardFontDataFactory =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS\n ? NodeStandardFontDataFactory\n : DOMStandardFontDataFactory;\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params - The document initialization\n * parameters. The \"url\" key is always present.\n * @returns {Promise} A promise, which is resolved with an instance of\n * {IPDFStream}.\n * @ignore\n */\n\n/**\n * @type IPDFStreamFactory\n * @private\n */\nlet createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates an {IPDFStream} as an alternative PDF\n * data transport.\n *\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - The factory function\n * that takes document initialization parameters (including a \"url\") and\n * returns a promise which is resolved with an instance of {IPDFStream}.\n * @ignore\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * @typedef { Int8Array | Uint8Array | Uint8ClampedArray |\n * Int16Array | Uint16Array |\n * Int32Array | Uint32Array | Float32Array |\n * Float64Array\n * } TypedArray\n */\n\n/**\n * @typedef {Object} RefProxy\n * @property {number} num\n * @property {number} gen\n */\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string|URL} [url] - The URL of the PDF.\n * @property {TypedArray|Array<number>|string} [data] - Binary PDF data. Use\n * typed arrays (Uint8Array) to improve the memory usage. If PDF data is\n * BASE64-encoded, use `atob()` to convert it to a binary string first.\n * @property {Object} [httpHeaders] - Basic authentication headers.\n * @property {boolean} [withCredentials] - Indicates whether or not\n * cross-site Access-Control requests should be made using credentials such\n * as cookies or authorization headers. The default is `false`.\n * @property {string} [password] - For decrypting password-protected PDFs.\n * @property {TypedArray} [initialData] - A typed array with the first portion\n * or all of the pdf data. Used by the extension since some data is already\n * loaded before the switch to range requests.\n * @property {number} [length] - The PDF file length. It's used for progress\n * reports and range requests operations.\n * @property {PDFDataRangeTransport} [range] - Allows for using a custom range\n * transport implementation.\n * @property {number} [rangeChunkSize] - Specify maximum number of bytes fetched\n * per range request. The default value is {@link DEFAULT_RANGE_CHUNK_SIZE}.\n * @property {PDFWorker} [worker] - The worker that will be used for loading and\n * parsing the PDF data.\n * @property {number} [verbosity] - Controls the logging level; the constants\n * from {@link VerbosityLevel} should be used.\n * @property {string} [docBaseUrl] - The base URL of the document, used when\n * attempting to recover valid absolute URLs for annotations, and outline\n * items, that (incorrectly) only specify relative URLs.\n * @property {string} [cMapUrl] - The URL where the predefined Adobe CMaps are\n * located. Include the trailing slash.\n * @property {boolean} [cMapPacked] - Specifies if the Adobe CMaps are binary\n * packed or not.\n * @property {Object} [CMapReaderFactory] - The factory that will be used when\n * reading built-in CMap files. Providing a custom factory is useful for\n * environments without Fetch API or `XMLHttpRequest` support, such as\n * Node.js. The default value is {DOMCMapReaderFactory}.\n * @property {boolean} [useSystemFonts] - When `true`, fonts that aren't\n * embedded in the PDF document will fallback to a system font.\n * The default value is `true` in web environments and `false` in Node.js;\n * unless `disableFontFace === true` in which case this defaults to `false`\n * regardless of the environment (to prevent completely broken fonts).\n * @property {string} [standardFontDataUrl] - The URL where the standard font\n * files are located. Include the trailing slash.\n * @property {Object} [StandardFontDataFactory] - The factory that will be used\n * when reading the standard font files. Providing a custom factory is useful\n * for environments without Fetch API or `XMLHttpRequest` support, such as\n * Node.js. The default value is {DOMStandardFontDataFactory}.\n * @property {boolean} [useWorkerFetch] - Enable using the Fetch API in the\n * worker-thread when reading CMap and standard font files. When `true`,\n * the `CMapReaderFactory` and `StandardFontDataFactory` options are ignored.\n * The default value is `true` in web environments and `false` in Node.js.\n * @property {boolean} [stopAtErrors] - Reject certain promises, e.g.\n * `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n * PDF data cannot be successfully parsed, instead of attempting to recover\n * whatever possible of the data. The default value is `false`.\n * @property {number} [maxImageSize] - The maximum allowed image size in total\n * pixels, i.e. width * height. Images above this value will not be rendered.\n * Use -1 for no limit, which is also the default value.\n * @property {boolean} [isEvalSupported] - Determines if we can evaluate strings\n * as JavaScript. Primarily used to improve performance of font rendering, and\n * when parsing PDF functions. The default value is `true`.\n * @property {boolean} [disableFontFace] - By default fonts are converted to\n * OpenType fonts and loaded via the Font Loading API or `@font-face` rules.\n * If disabled, fonts will be rendered using a built-in font renderer that\n * constructs the glyphs with primitive path commands.\n * The default value is `false` in web environments and `true` in Node.js.\n * @property {boolean} [fontExtraProperties] - Include additional properties,\n * which are unused during rendering of PDF documents, when exporting the\n * parsed font data from the worker-thread. This may be useful for debugging\n * purposes (and backwards compatibility), but note that it will lead to\n * increased memory usage. The default value is `false`.\n * @property {boolean} [enableXfa] - Render Xfa forms if any.\n * The default value is `false`.\n * @property {HTMLDocument} [ownerDocument] - Specify an explicit document\n * context to create elements with and to load resources, such as fonts,\n * into. Defaults to the current document.\n * @property {boolean} [disableRange] - Disable range request loading of PDF\n * files. When enabled, and if the server supports partial content requests,\n * then the PDF will be fetched in chunks. The default value is `false`.\n * @property {boolean} [disableStream] - Disable streaming of PDF file data.\n * By default PDF.js attempts to load PDF files in chunks. The default value\n * is `false`.\n * @property {boolean} [disableAutoFetch] - Disable pre-fetching of PDF file\n * data. When range requests are enabled PDF.js will automatically keep\n * fetching more data even if it isn't needed to display the current page.\n * The default value is `false`.\n *\n * NOTE: It is also necessary to disable streaming, see above, in order for\n * disabling of pre-fetching to work correctly.\n * @property {boolean} [pdfBug] - Enables special hooks for debugging PDF.js\n * (see `web/debugger.js`). The default value is `false`.\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n *\n * NOTE: If a URL is used to fetch the PDF data a standard Fetch API call (or\n * XHR as fallback) is used, which means it must follow same origin rules,\n * e.g. no cross-domain requests without CORS.\n *\n * @param {string|URL|TypedArray|PDFDataRangeTransport|DocumentInitParameters}\n * src - Can be a URL where a PDF file is located, a typed array (Uint8Array)\n * already populated with data, or a parameter object.\n * @returns {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n\n let source;\n if (typeof src === \"string\" || src instanceof URL) {\n source = { url: src };\n } else if (isArrayBuffer(src)) {\n source = { data: src };\n } else if (src instanceof PDFDataRangeTransport) {\n source = { range: src };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\n \"Invalid parameter in getDocument, \" +\n \"need either string, URL, Uint8Array, or parameter object.\"\n );\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\n \"Invalid parameter object: need either .data, .range or .url\"\n );\n }\n source = src;\n }\n const params = Object.create(null);\n let rangeTransport = null,\n worker = null;\n\n for (const key in source) {\n const value = source[key];\n\n switch (key) {\n case \"url\":\n if (typeof window !== \"undefined\") {\n try {\n // The full path is required in the 'url' field.\n params[key] = new URL(value, window.location).href;\n continue;\n } catch (ex) {\n warn(`Cannot create valid URL: \"${ex}\".`);\n }\n } else if (typeof value === \"string\" || value instanceof URL) {\n params[key] = value.toString(); // Support Node.js environments.\n continue;\n }\n throw new Error(\n \"Invalid PDF url data: \" +\n \"either string or URL-object is expected in the url property.\"\n );\n case \"range\":\n rangeTransport = value;\n continue;\n case \"worker\":\n worker = value;\n continue;\n case \"data\":\n // Converting string or array-like data to Uint8Array.\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n isNodeJS &&\n typeof Buffer !== \"undefined\" && // eslint-disable-line no-undef\n value instanceof Buffer // eslint-disable-line no-undef\n ) {\n params[key] = new Uint8Array(value);\n } else if (value instanceof Uint8Array) {\n break; // Use the data as-is when it's already a Uint8Array.\n } else if (typeof value === \"string\") {\n params[key] = stringToBytes(value);\n } else if (\n typeof value === \"object\" &&\n value !== null &&\n !isNaN(value.length)\n ) {\n params[key] = new Uint8Array(value);\n } else if (isArrayBuffer(value)) {\n params[key] = new Uint8Array(value);\n } else {\n throw new Error(\n \"Invalid PDF binary data: either typed array, \" +\n \"string, or array-like object is expected in the data property.\"\n );\n }\n continue;\n }\n params[key] = value;\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory =\n params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.StandardFontDataFactory =\n params.StandardFontDataFactory || DefaultStandardFontDataFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n params.enableXfa = params.enableXfa === true;\n\n if (\n typeof params.docBaseUrl !== \"string\" ||\n isDataScheme(params.docBaseUrl)\n ) {\n // Ignore \"data:\"-URLs, since they can't be used to recover valid absolute\n // URLs anyway. We want to avoid sending them to the worker-thread, since\n // they contain the *entire* PDF document and can thus be arbitrarily long.\n params.docBaseUrl = null;\n }\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n if (typeof params.useWorkerFetch !== \"boolean\") {\n params.useWorkerFetch =\n params.CMapReaderFactory === DOMCMapReaderFactory &&\n params.StandardFontDataFactory === DOMStandardFontDataFactory;\n }\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS;\n }\n if (typeof params.useSystemFonts !== \"boolean\") {\n params.useSystemFonts =\n !(\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n isNodeJS\n ) && !params.disableFontFace;\n }\n if (typeof params.ownerDocument === \"undefined\") {\n params.ownerDocument = globalThis.document;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n // Set the main-thread verbosity level.\n setVerbosityLevel(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: GlobalWorkerOptions.workerPort,\n };\n // Worker was not provided -- creating and owning our own. If message port\n // is specified in global worker options, using it.\n worker = workerParams.port\n ? PDFWorker.fromPort(workerParams)\n : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const docId = task.docId;\n worker.promise\n .then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(\n worker,\n params,\n rangeTransport,\n docId\n );\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream(\n {\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n contentDispositionFilename: params.contentDispositionFilename,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n },\n rangeTransport\n );\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n });\n }\n resolve(networkStream);\n });\n\n return Promise.all([workerIdPromise, networkStreamPromise]).then(\n function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new MessageHandler(\n docId,\n workerId,\n worker.port\n );\n const transport = new WorkerTransport(\n messageHandler,\n task,\n networkStream,\n params\n );\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n }\n );\n })\n .catch(task._capability.reject);\n\n return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n *\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId - Unique document ID, used in `MessageHandler`.\n * @returns {Promise<string>} A promise that is resolved when the worker ID of\n * the `MessageHandler` is known.\n * @private\n */\nasync function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n source.contentDispositionFilename =\n pdfDataRangeTransport.contentDispositionFilename;\n }\n const workerId = await worker.messageHandler.sendWithPromise(\n \"GetDocRequest\",\n {\n docId,\n apiVersion:\n typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n : null,\n // Only send the required properties, and *not* the entire object.\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length,\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n docBaseUrl: source.docBaseUrl,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n fontExtraProperties: source.fontExtraProperties,\n enableXfa: source.enableXfa,\n useSystemFonts: source.useSystemFonts,\n cMapUrl: source.useWorkerFetch ? source.cMapUrl : null,\n standardFontDataUrl: source.useWorkerFetch\n ? source.standardFontDataUrl\n : null,\n }\n );\n\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n return workerId;\n}\n\n/**\n * @typedef {Object} OnProgressParameters\n * @property {number} loaded - Currently loaded number of bytes.\n * @property {number} total - Total number of bytes in the PDF file.\n */\n\n/**\n * The loading task controls the operations required to load a PDF document\n * (such as network requests) and provides a way to listen for completion,\n * after which individual pages can be rendered.\n */\nclass PDFDocumentLoadingTask {\n static get idCounters() {\n return shadow(this, \"idCounters\", { doc: 0 });\n }\n\n constructor() {\n this._capability = createPromiseCapability();\n this._transport = null;\n this._worker = null;\n\n /**\n * Unique identifier for the document loading task.\n * @type {string}\n */\n this.docId = `d${PDFDocumentLoadingTask.idCounters.doc++}`;\n\n /**\n * Whether the loading task is destroyed or not.\n * @type {boolean}\n */\n this.destroyed = false;\n\n /**\n * Callback to request a password if a wrong or no password was provided.\n * The callback receives two parameters: a function that should be called\n * with the new password, and a reason (see {@link PasswordResponses}).\n * @type {function}\n */\n this.onPassword = null;\n\n /**\n * Callback to be able to monitor the loading progress of the PDF file\n * (necessary to implement e.g. a loading bar).\n * The callback receives an {@link OnProgressParameters} argument.\n * @type {function}\n */\n this.onProgress = null;\n\n /**\n * Callback for when an unsupported feature is used in the PDF document.\n * The callback receives an {@link UNSUPPORTED_FEATURES} argument.\n * @type {function}\n */\n this.onUnsupportedFeature = null;\n }\n\n /**\n * Promise for document loading task completion.\n * @type {Promise<PDFDocumentProxy>}\n */\n get promise() {\n return this._capability.promise;\n }\n\n /**\n * Abort all network requests and destroy the worker.\n * @returns {Promise<void>} A promise that is resolved when destruction is\n * completed.\n */\n async destroy() {\n this.destroyed = true;\n await this._transport?.destroy();\n\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\n\n/**\n * Abstract class to support range requests file loading.\n */\nclass PDFDataRangeTransport {\n /**\n * @param {number} length\n * @param {Uint8Array} initialData\n * @param {boolean} [progressiveDone]\n * @param {string} [contentDispositionFilename]\n */\n constructor(\n length,\n initialData,\n progressiveDone = false,\n contentDispositionFilename = null\n ) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = createPromiseCapability();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n}\n\n/**\n * Proxy to a `PDFDocument` in the worker thread.\n */\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n Object.defineProperty(this, \"fingerprint\", {\n get() {\n deprecated(\n \"`PDFDocumentProxy.fingerprint`, \" +\n \"please use `PDFDocumentProxy.fingerprints` instead.\"\n );\n return this.fingerprints[0];\n },\n });\n\n Object.defineProperty(this, \"getStats\", {\n value: async () => {\n deprecated(\n \"`PDFDocumentProxy.getStats`, \" +\n \"please use the `PDFDocumentProxy.stats`-getter instead.\"\n );\n return this.stats || { streamTypes: {}, fontTypes: {} };\n },\n });\n }\n }\n\n /**\n * @type {AnnotationStorage} Storage for annotation data in forms.\n */\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n\n /**\n * @type {number} Total number of pages in the PDF file.\n */\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n /**\n * @type {Array<string, string|null>} A (not guaranteed to be) unique ID to\n * identify the PDF document.\n * NOTE: The first element will always be defined for all PDF documents,\n * whereas the second element is only defined for *modified* PDF documents.\n */\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n\n /**\n * @typedef {Object} PDFDocumentStats\n * @property {Object<string, boolean>} streamTypes - Used stream types in the\n * document (an item is set to true if specific stream ID was used in the\n * document).\n * @property {Object<string, boolean>} fontTypes - Used font types in the\n * document (an item is set to true if specific font ID was used in the\n * document).\n */\n\n /**\n * @type {PDFDocumentStats | null} The current statistics about document\n * structures, or `null` when no statistics exists.\n */\n get stats() {\n return this._transport.stats;\n }\n\n /**\n * @type {boolean} True if only XFA form.\n */\n get isPureXfa() {\n return !!this._transport._htmlForXfa;\n }\n\n /**\n * NOTE: This is (mostly) intended to support printing of XFA forms.\n *\n * @type {Object | null} An object representing a HTML tree structure\n * to render the XFA, or `null` when no XFA form exists.\n */\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n\n /**\n * @param {number} pageNumber - The page number to get. The first page is 1.\n * @returns {Promise<PDFPageProxy>} A promise that is resolved with\n * a {@link PDFPageProxy} object.\n */\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n /**\n * @param {RefProxy} ref - The page reference.\n * @returns {Promise<number>} A promise that is resolved with the page index,\n * starting from zero, that is associated with the reference.\n */\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n /**\n * @returns {Promise<Object<string, Array<any>>>} A promise that is resolved\n * with a mapping from named destinations to references.\n *\n * This can be slow for large documents. Use `getDestination` instead.\n */\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n /**\n * @param {string} id - The named destination to get.\n * @returns {Promise<Array<any> | null>} A promise that is resolved with all\n * information of the given named destination, or `null` when the named\n * destination is not present in the PDF file.\n */\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n /**\n * @returns {Promise<Array<string> | null>} A promise that is resolved with\n * an {Array} containing the page labels that correspond to the page\n * indexes, or `null` when no page labels are present in the PDF file.\n */\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n /**\n * @returns {Promise<string>} A promise that is resolved with a {string}\n * containing the page layout name.\n */\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n /**\n * @returns {Promise<string>} A promise that is resolved with a {string}\n * containing the page mode name.\n */\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n /**\n * @returns {Promise<Object | null>} A promise that is resolved with an\n * {Object} containing the viewer preferences, or `null` when no viewer\n * preferences are present in the PDF file.\n */\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n /**\n * @returns {Promise<any | null>} A promise that is resolved with an {Array}\n * containing the destination, or `null` when no open action is present\n * in the PDF.\n */\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n /**\n * @returns {Promise<any>} A promise that is resolved with a lookup table\n * for mapping named attachments to their content.\n */\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n /**\n * @returns {Promise<Array<string> | null>} A promise that is resolved with\n * an {Array} of all the JavaScript strings in the name tree, or `null`\n * if no JavaScript exists.\n */\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n /**\n * @returns {Promise<Object | null>} A promise that is resolved with\n * an {Object} with the JavaScript actions:\n * - from the name tree (like getJavaScript);\n * - from A or AA entries in the catalog dictionary.\n * , or `null` if no JavaScript exists.\n */\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n\n /**\n * @typedef {Object} OutlineNode\n * @property {string} title\n * @property {boolean} bold\n * @property {boolean} italic\n * @property {Uint8ClampedArray} color - The color in RGB format to use for\n * display purposes.\n * @property {string | Array<any> | null} dest\n * @property {string | null} url\n * @property {string | undefined} unsafeUrl\n * @property {boolean | undefined} newWindow\n * @property {number | undefined} count\n * @property {Array<OutlineNode>} items\n */\n\n /**\n * @returns {Promise<Array<OutlineNode>>} A promise that is resolved with an\n * {Array} that is a tree outline (if it has one) of the PDF file.\n */\n getOutline() {\n return this._transport.getOutline();\n }\n\n /**\n * @returns {Promise<OptionalContentConfig>} A promise that is resolved with\n * an {@link OptionalContentConfig} that contains all the optional content\n * groups (assuming that the document has any).\n */\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n\n /**\n * @returns {Promise<Array<number> | null>} A promise that is resolved with\n * an {Array} that contains the permission flags for the PDF document, or\n * `null` when no permissions are present in the PDF file.\n */\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n /**\n * @returns {Promise<{ info: Object, metadata: Metadata }>} A promise that is\n * resolved with an {Object} that has `info` and `metadata` properties.\n * `info` is an {Object} filled with anything available in the information\n * dictionary and similarly `metadata` is a {Metadata} object with\n * information from the metadata section of the PDF.\n */\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n /**\n * @typedef {Object} MarkInfo\n * Properties correspond to Table 321 of the PDF 32000-1:2008 spec.\n * @property {boolean} Marked\n * @property {boolean} UserProperties\n * @property {boolean} Suspects\n */\n\n /**\n * @returns {Promise<MarkInfo | null>} A promise that is resolved with\n * a {MarkInfo} object that contains the MarkInfo flags for the PDF\n * document, or `null` when no MarkInfo values are present in the PDF file.\n */\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n\n /**\n * @returns {Promise<TypedArray>} A promise that is resolved with a\n * {TypedArray} that has the raw data from the PDF.\n */\n getData() {\n return this._transport.getData();\n }\n\n /**\n * @returns {Promise<{ length: number }>} A promise that is resolved when the\n * document's data is loaded. It is resolved with an {Object} that contains\n * the `length` property that indicates size of the PDF data in bytes.\n */\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n /**\n * Cleans up resources allocated by the document on both the main and worker\n * threads.\n *\n * NOTE: Do not, under any circumstances, call this method when rendering is\n * currently ongoing since that may lead to rendering errors.\n *\n * @param {boolean} [keepLoadedFonts] - Let fonts remain attached to the DOM.\n * NOTE: This will increase persistent memory usage, hence don't use this\n * option unless absolutely necessary. The default value is `false`.\n * @returns {Promise} A promise that is resolved when clean-up has finished.\n */\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n\n /**\n * Destroys the current document instance and terminates the worker.\n */\n destroy() {\n return this.loadingTask.destroy();\n }\n\n /**\n * @type {DocumentInitParameters} A subset of the current\n * {DocumentInitParameters}, which are needed in the viewer.\n */\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n /**\n * @type {PDFDocumentLoadingTask} The loadingTask for the current document.\n */\n get loadingTask() {\n return this._transport.loadingTask;\n }\n\n /**\n * @returns {Promise<Uint8Array>} A promise that is resolved with a\n * {Uint8Array} containing the full data of the saved document.\n */\n saveDocument() {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n this._transport.annotationStorage.size <= 0\n ) {\n deprecated(\n \"saveDocument called while `annotationStorage` is empty, \" +\n \"please use the getData-method instead.\"\n );\n }\n return this._transport.saveDocument();\n }\n\n /**\n * @returns {Promise<Object<string, Array<Object>> | null>} A promise that is\n * resolved with an {Object} containing /AcroForm field data for the JS\n * sandbox, or `null` when no field data is present in the PDF file.\n */\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n\n /**\n * @returns {Promise<boolean>} A promise that is resolved with `true`\n * if some /AcroForm fields have JavaScript actions.\n */\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n\n /**\n * @returns {Promise<Array<string> | null>} A promise that is resolved with an\n * {Array<string>} containing IDs of annotations that have a calculation\n * action, or `null` when no such annotations are present in the PDF file.\n */\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n}\n\n/**\n * Page getViewport parameters.\n *\n * @typedef {Object} GetViewportParameters\n * @property {number} scale - The desired scale of the viewport.\n * @property {number} [rotation] - The desired rotation, in degrees, of\n * the viewport. If omitted it defaults to the page rotation.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n * The default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n * The default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be\n * flipped. The default value is `false`.\n */\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} normalizeWhitespace - Replaces all occurrences of\n * whitespace with standard spaces (0x20). The default value is `false`.\n * @property {boolean} disableCombineTextItems - Do not attempt to combine\n * same line {@link TextItem}'s. The default value is `false`.\n * @property {boolean} [includeMarkedContent] - When true include marked\n * content items in the items array of TextContent. The default is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {Array<TextItem | TextMarkedContent>} items - Array of\n * {@link TextItem} and {@link TextMarkedContent} objects. TextMarkedContent\n * items are included when includeMarkedContent is true.\n * @property {Object<string, TextStyle>} styles - {@link TextStyle} objects,\n * indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - Text content.\n * @property {string} dir - Text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {Array<any>} transform - Transformation matrix.\n * @property {number} width - Width in device space.\n * @property {number} height - Height in device space.\n * @property {string} fontName - Font name used by PDF.js for converted font.\n * @property {boolean} hasEOL - Indicating if the text content is followed by a\n * line-break.\n */\n\n/**\n * Page text marked content part.\n *\n * @typedef {Object} TextMarkedContent\n * @property {string} type - Either 'beginMarkedContent',\n * 'beginMarkedContentProps', or 'endMarkedContent'.\n * @property {string} id - The marked content identifier. Only used for type\n * 'beginMarkedContentProps'.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - Font ascent.\n * @property {number} descent - Font descent.\n * @property {boolean} vertical - Whether or not the text is in vertical mode.\n * @property {string} fontFamily - The possible font family.\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} [intent] - Determines the annotations that are fetched,\n * can be 'display' (viewable annotations), 'print' (printable annotations),\n * or 'any' (all annotations). The default value is 'display'.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by calling\n * the `PDFPageProxy.getViewport` method.\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n * or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are rendered\n * onto the canvas, for annotations with appearance-data; the values from\n * {@link AnnotationMode} should be used. The following values are supported:\n * - `AnnotationMode.DISABLE`, which disables all annotations.\n * - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n * it also depends on the `intent`-option, see above).\n * - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n * interactive form elements (those will be rendered in the display layer).\n * - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n * (as above) but where interactive form elements are updated with data\n * from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n * The default value is `AnnotationMode.ENABLE`.\n * @property {Array<any>} [transform] - Additional transform, applied just\n * before viewport transform.\n * @property {Object} [imageLayer] - An object that has `beginLayout`,\n * `endLayout` and `appendImage` functions.\n * @property {Object} [canvasFactory] - The factory instance that will be used\n * when creating canvases. The default value is {new DOMCanvasFactory()}.\n * @property {Object | string} [background] - Background to use for the canvas.\n * Any valid `canvas.fillStyle` can be used: a `DOMString` parsed as CSS\n * <color> value, a `CanvasGradient` object (a linear or radial gradient) or\n * a `CanvasPattern` object (a repetitive image). The default value is\n * 'rgb(255,255,255)'.\n * @property {Promise<OptionalContentConfig>} [optionalContentConfigPromise] -\n * A promise that should resolve with an {@link OptionalContentConfig}\n * created from `PDFDocumentProxy.getOptionalContentConfig`. If `null`,\n * the configuration will be fetched automatically with the default visibility\n * states set.\n * @property {Map<string, HTMLCanvasElement>} [annotationCanvasMap] - Map some\n * annotation ids with canvases used to render them.\n */\n\n/**\n * Page getOperatorList parameters.\n *\n * @typedef {Object} GetOperatorListParameters\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n * or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are included\n * in the operatorList, for annotations with appearance-data; the values from\n * {@link AnnotationMode} should be used. The following values are supported:\n * - `AnnotationMode.DISABLE`, which disables all annotations.\n * - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n * it also depends on the `intent`-option, see above).\n * - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n * interactive form elements (those will be rendered in the display layer).\n * - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n * (as above) but where interactive form elements are updated with data\n * from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n * The default value is `AnnotationMode.ENABLE`.\n */\n\n/**\n * Structure tree node. The root node will have a role \"Root\".\n *\n * @typedef {Object} StructTreeNode\n * @property {Array<StructTreeNode | StructTreeContent>} children - Array of\n * {@link StructTreeNode} and {@link StructTreeContent} objects.\n * @property {string} role - element's role, already mapped if a role map exists\n * in the PDF.\n */\n\n/**\n * Structure tree content.\n *\n * @typedef {Object} StructTreeContent\n * @property {string} type - either \"content\" for page and stream structure\n * elements or \"object\" for object references.\n * @property {string} id - unique id that will map to the text layer.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array<number>} fnArray - Array containing the operator functions.\n * @property {Array<any>} argsArray - Array containing the arguments of the\n * functions.\n */\n\n/**\n * Proxy to a `PDFPage` in the worker thread.\n */\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this._annotationPromises = new Map();\n this.destroyed = false;\n }\n\n /**\n * @type {number} Page number of the page. First page is 1.\n */\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n /**\n * @type {number} The number of degrees the page is rotated clockwise.\n */\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n /**\n * @type {RefProxy | null} The reference that points to this page.\n */\n get ref() {\n return this._pageInfo.ref;\n }\n\n /**\n * @type {number} The default size of units in 1/72nds of an inch.\n */\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n /**\n * @type {Array<number>} An array of the visible portion of the PDF page in\n * user space units [x1, y1, x2, y2].\n */\n get view() {\n return this._pageInfo.view;\n }\n\n /**\n * @param {GetViewportParameters} params - Viewport parameters.\n * @returns {PageViewport} Contains 'width' and 'height' properties\n * along with transforms required for rendering.\n */\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false,\n } = {}) {\n return new PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip,\n });\n }\n\n /**\n * @param {GetAnnotationsParameters} params - Annotation parameters.\n * @returns {Promise<Array<any>>} A promise that is resolved with an\n * {Array} of the annotation objects.\n */\n getAnnotations({ intent = \"display\" } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n\n let promise = this._annotationPromises.get(intentArgs.cacheKey);\n if (!promise) {\n promise = this._transport.getAnnotations(\n this._pageIndex,\n intentArgs.renderingIntent\n );\n this._annotationPromises.set(intentArgs.cacheKey, promise);\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n promise = promise.then(annotations => {\n for (const annotation of annotations) {\n if (annotation.titleObj !== undefined) {\n Object.defineProperty(annotation, \"title\", {\n get() {\n deprecated(\n \"`title`-property on annotation, please use `titleObj` instead.\"\n );\n return annotation.titleObj.str;\n },\n });\n }\n if (annotation.contentsObj !== undefined) {\n Object.defineProperty(annotation, \"contents\", {\n get() {\n deprecated(\n \"`contents`-property on annotation, please use `contentsObj` instead.\"\n );\n return annotation.contentsObj.str;\n },\n });\n }\n }\n return annotations;\n });\n }\n }\n return promise;\n }\n\n /**\n * @returns {Promise<Object>} A promise that is resolved with an\n * {Object} with JS actions.\n */\n getJSActions() {\n return (this._jsActionsPromise ||= this._transport.getPageJSActions(\n this._pageIndex\n ));\n }\n\n /**\n * @returns {Promise<Object | null>} A promise that is resolved with\n * an {Object} with a fake DOM object (a tree structure where elements\n * are {Object} with a name, attributes (class, style, ...), value and\n * children, very similar to a HTML DOM tree), or `null` if no XFA exists.\n */\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n\n /**\n * Begins the process of rendering a page to the desired context.\n *\n * @param {RenderParameters} params - Page render parameters.\n * @returns {RenderTask} An object that contains a promise that is\n * resolved when the page finishes rendering.\n */\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n transform = null,\n imageLayer = null,\n canvasFactory = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n }) {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n if (arguments[0]?.renderInteractiveForms !== undefined) {\n deprecated(\n \"render no longer accepts the `renderInteractiveForms`-option, \" +\n \"please use the `annotationMode`-option instead.\"\n );\n if (\n arguments[0].renderInteractiveForms === true &&\n annotationMode === AnnotationMode.ENABLE\n ) {\n annotationMode = AnnotationMode.ENABLE_FORMS;\n }\n }\n if (arguments[0]?.includeAnnotationStorage !== undefined) {\n deprecated(\n \"render no longer accepts the `includeAnnotationStorage`-option, \" +\n \"please use the `annotationMode`-option instead.\"\n );\n if (\n arguments[0].includeAnnotationStorage === true &&\n annotationMode === AnnotationMode.ENABLE\n ) {\n annotationMode = AnnotationMode.ENABLE_STORAGE;\n }\n }\n }\n\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const intentArgs = this._transport.getRenderingIntent(\n intent,\n annotationMode\n );\n // If there was a pending destroy, cancel it so no cleanup happens during\n // this call to render.\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n // Ensure that a pending `streamReader` cancel timeout is always aborted.\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance =\n canvasFactory ||\n new DefaultCanvasFactory({ ownerDocument: this._ownerDocument });\n const intentPrint = !!(\n intentArgs.renderingIntent & RenderingIntentFlag.PRINT\n );\n\n // If there's no displayReadyCapability yet, then the operatorList\n // was never requested before. Make the request and create the promise.\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = createPromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n this._pumpOperatorList(intentArgs);\n }\n\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n\n // Attempt to reduce memory usage during *printing*, by always running\n // cleanup once rendering has finished (regardless of cleanupAfterRender).\n if (this.cleanupAfterRender || intentPrint) {\n this.pendingCleanup = true;\n }\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error),\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n this._stats.timeEnd(\"Overall\");\n }\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n // Only include the required properties, and *not* the entire object.\n params: {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background,\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n });\n\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n\n Promise.all([\n intentState.displayReadyCapability.promise,\n optionalContentConfigPromise,\n ])\n .then(([transparency, optionalContentConfig]) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig,\n });\n internalRenderTask.operatorListChanged();\n })\n .catch(complete);\n\n return renderTask;\n }\n\n /**\n * @param {GetOperatorListParameters} params - Page getOperatorList\n * parameters.\n * @returns {Promise<PDFOperatorList>} A promise resolved with an\n * {@link PDFOperatorList} object that represents the page's operator list.\n */\n getOperatorList({\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n\n intentState.renderTasks.delete(opListTask);\n }\n }\n\n const intentArgs = this._transport.getRenderingIntent(\n intent,\n annotationMode,\n /* isOpList = */ true\n );\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = createPromiseCapability();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {ReadableStream} Stream for reading text content chunks.\n */\n streamTextContent({\n normalizeWhitespace = false,\n disableCombineTextItems = false,\n includeMarkedContent = false,\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n return this._transport.messageHandler.sendWithStream(\n \"GetTextContent\",\n {\n pageIndex: this._pageIndex,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true,\n includeMarkedContent: includeMarkedContent === true,\n },\n {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n },\n }\n );\n }\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {Promise<TextContent>} A promise that is resolved with a\n * {@link TextContent} object that represents the page's text content.\n */\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n // TODO: We need to revisit this once the XFA foreground patch lands and\n // only do this for non-foreground XFA.\n return this.getXfa().then(xfa => {\n return XfaText.textContent(xfa);\n });\n }\n const readableStream = this.streamTextContent(params);\n\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({ value, done }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n pump();\n });\n }\n\n /**\n * @returns {Promise<StructTreeNode>} A promise that is resolved with a\n * {@link StructTreeNode} object that represents the page's structure tree,\n * or `null` when no structure tree is present for the current page.\n */\n getStructTree() {\n return (this._structTreePromise ||= this._transport.getStructTree(\n this._pageIndex\n ));\n }\n\n /**\n * Destroys the page object.\n * @private\n */\n _destroy() {\n this.destroyed = true;\n\n const waitOn = [];\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true,\n });\n\n if (intentState.opListReadCapability) {\n // Avoid errors below, since the renderTasks are just stubs.\n continue;\n }\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n this.objs.clear();\n this._annotationPromises.clear();\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n /**\n * Cleans up resources allocated by the page.\n *\n * @param {boolean} [resetStats] - Reset page stats, if enabled.\n * The default value is `false`.\n * @returns {boolean} Indicates if clean-up was successfully run.\n */\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n\n /**\n * Attempts to clean up if rendering is in a state where that's possible.\n * @private\n */\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup) {\n return false;\n }\n for (const { renderTasks, operatorList } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n\n this._intentStates.clear();\n this.objs.clear();\n this._annotationPromises.clear();\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n if (resetStats && this._stats) {\n this._stats = new StatTimer();\n }\n this.pendingCleanup = false;\n return true;\n }\n\n /**\n * @private\n */\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return; // Rendering was cancelled.\n }\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n // TODO Refactor RenderPageRequest to separate rendering\n // and operator list logic\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n /**\n * @private\n */\n _renderPageChunk(operatorListChunk, intentState) {\n // Add the new chunk to the current operator list.\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n // Notify all the rendering tasks there are more operators to be consumed.\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n /**\n * @private\n */\n _pumpOperatorList({ renderingIntent, cacheKey }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n Number.isInteger(renderingIntent) && renderingIntent > 0,\n '_pumpOperatorList: Expected valid \"renderingIntent\" argument.'\n );\n }\n\n const readableStream = this._transport.messageHandler.sendWithStream(\n \"GetOperatorList\",\n {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage:\n renderingIntent & RenderingIntentFlag.ANNOTATIONS_STORAGE\n ? this._transport.annotationStorage.serializable\n : null,\n }\n );\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(\n ({ value, done }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n this._renderPageChunk(value, intentState);\n pump();\n },\n reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n if (intentState.operatorList) {\n // Mark operator list as complete.\n intentState.operatorList.lastChunk = true;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n }\n );\n };\n pump();\n }\n\n /**\n * @private\n */\n _abortOperatorList({ intentState, reason, force = false }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n reason instanceof Error,\n '_abortOperatorList: Expected valid \"reason\" argument.'\n );\n }\n\n if (!intentState.streamReader) {\n return;\n }\n if (!force) {\n // Ensure that an Error occurring in *only* one `InternalRenderTask`, e.g.\n // multiple render() calls on the same canvas, won't break all rendering.\n if (intentState.renderTasks.size > 0) {\n return;\n }\n // Don't immediately abort parsing on the worker-thread when rendering is\n // cancelled, since that will unnecessarily delay re-rendering when (for\n // partially parsed pages) e.g. zooming/rotation occurs in the viewer.\n if (reason instanceof RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({ intentState, reason, force: true });\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n intentState.streamReader\n .cancel(new AbortException(reason.message))\n .catch(() => {\n // Avoid \"Uncaught promise\" messages in the console.\n });\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n // Remove the current `intentState`, since a cancelled `getOperatorList`\n // call on the worker-thread cannot be re-started...\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n // ... and force clean-up to ensure that any old state is always removed.\n this.cleanup();\n }\n\n /**\n * @type {Object} Returns page stats, if enabled; returns `null` otherwise.\n */\n get stats() {\n return this._stats;\n }\n}\n\nclass LoopbackPort {\n constructor() {\n this._listeners = [];\n this._deferred = Promise.resolve();\n }\n\n postMessage(obj, transfers) {\n function cloneValue(object) {\n if (\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n globalThis.structuredClone\n ) {\n return globalThis.structuredClone(object, transfers);\n }\n\n // Trying to perform a structured clone close to the spec, including\n // transfers.\n function fallbackCloneValue(value) {\n if (\n typeof value === \"function\" ||\n typeof value === \"symbol\" ||\n value instanceof URL\n ) {\n throw new Error(\n `LoopbackPort.postMessage - cannot clone: ${value?.toString()}`\n );\n }\n\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n if (cloned.has(value)) {\n // already cloned the object\n return cloned.get(value);\n }\n let buffer, result;\n if ((buffer = value.buffer) && isArrayBuffer(buffer)) {\n // We found object with ArrayBuffer (typed array).\n if (transfers?.includes(buffer)) {\n result = new value.constructor(\n buffer,\n value.byteOffset,\n value.byteLength\n );\n } else {\n result = new value.constructor(value);\n }\n cloned.set(value, result);\n return result;\n }\n if (value instanceof Map) {\n result = new Map();\n cloned.set(value, result); // Adding to cache now for cyclic references.\n for (const [key, val] of value) {\n result.set(key, fallbackCloneValue(val));\n }\n return result;\n }\n if (value instanceof Set) {\n result = new Set();\n cloned.set(value, result); // Adding to cache now for cyclic references.\n for (const val of value) {\n result.add(fallbackCloneValue(val));\n }\n return result;\n }\n result = Array.isArray(value) ? [] : Object.create(null);\n cloned.set(value, result); // Adding to cache now for cyclic references.\n // Cloning all value and object properties, however ignoring properties\n // defined via getter.\n for (const i in value) {\n let desc,\n p = value;\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n if (typeof desc.value === \"undefined\") {\n continue;\n }\n if (typeof desc.value === \"function\" && !value.hasOwnProperty?.(i)) {\n continue;\n }\n result[i] = fallbackCloneValue(desc.value);\n }\n return result;\n }\n\n const cloned = new WeakMap();\n return fallbackCloneValue(object);\n }\n\n const event = { data: cloneValue(obj) };\n\n this._deferred.then(() => {\n for (const listener of this._listeners) {\n listener.call(this, event);\n }\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} [name] - The name of the worker.\n * @property {Object} [port] - The `workerPort` object.\n * @property {number} [verbosity] - Controls the logging level;\n * the constants from {@link VerbosityLevel} should be used.\n */\n\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0,\n};\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n // eslint-disable-next-line no-undef\n if (isNodeJS && typeof __non_webpack_require__ === \"function\") {\n // Workers aren't supported in Node.js, force-disabling them there.\n PDFWorkerUtil.isWorkerDisabled = true;\n\n PDFWorkerUtil.fallbackWorkerSrc = PDFJSDev.test(\"LIB\")\n ? \"../pdf.worker.js\"\n : \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(\n /(\\.(?:min\\.)?js)(\\?.*)?$/i,\n \".worker$1$2\"\n );\n }\n }\n\n PDFWorkerUtil.createCDNWrapper = function (url) {\n // We will rely on blob URL's property to specify origin.\n // We want this function to fail in case if createObjectURL or Blob do not\n // exist or fail for some reason -- our Worker creation will fail anyway.\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\n\n/**\n * PDF.js web worker abstraction that controls the instantiation of PDF\n * documents. Message handlers are used to pass information from the main\n * thread to the worker thread and vice versa. If the creation of a web\n * worker is not possible, a \"fake\" worker will be used instead.\n *\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\nclass PDFWorker {\n static get _workerPorts() {\n return shadow(this, \"_workerPorts\", new WeakMap());\n }\n\n constructor({\n name = null,\n port = null,\n verbosity = getVerbosityLevel(),\n } = {}) {\n if (port && PDFWorker._workerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n\n this._readyCapability = createPromiseCapability();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n PDFWorker._workerPorts.set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n\n /**\n * Promise for worker initialization completion.\n * @type {Promise<void>}\n */\n get promise() {\n return this._readyCapability.promise;\n }\n\n /**\n * The current `workerPort`, when it exists.\n * @type {Worker}\n */\n get port() {\n return this._port;\n }\n\n /**\n * The current MessageHandler-instance.\n * @type {MessageHandler}\n */\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {\n // Ignoring \"ready\" event -- MessageHandler should already be initialized\n // and ready to accept messages.\n });\n this._readyCapability.resolve();\n }\n\n _initialize() {\n // If worker support isn't disabled explicit and the browser has worker\n // support, create a new web worker and test if it/the browser fulfills\n // all requirements to run parts of pdf.js in a web worker.\n // Right now, the requirement is, that an Uint8Array is still an\n // Uint8Array as it arrives on the worker. (Chrome added this with v.15.)\n if (\n typeof Worker !== \"undefined\" &&\n !PDFWorkerUtil.isWorkerDisabled &&\n !PDFWorker._mainThreadWorkerMessageHandler\n ) {\n let workerSrc = PDFWorker.workerSrc;\n\n try {\n // Wraps workerSrc path into blob URL, if the former does not belong\n // to the same origin.\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n !isSameOrigin(window.location.href, workerSrc)\n ) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(\n new URL(workerSrc, window.location).href\n );\n }\n\n // Some versions of FF can't create a worker on localhost, see:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=683280\n const worker = new Worker(workerSrc);\n const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n // Fall back to fake worker if the termination is caused by an\n // error (e.g. NetworkError / SecurityError).\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n // Worker failed to initialize due to an error. Clean up and fall\n // back to the fake worker.\n terminateEarly();\n }\n };\n worker.addEventListener(\"error\", onWorkerError);\n\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n try {\n sendTest();\n } catch (e) {\n // We need fallback to a faked worker.\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array([255]);\n // Some versions of Opera throw a DATA_CLONE_ERR on serializing the\n // typed array. Also, checking if we can use transfers.\n try {\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n } catch (ex) {\n warn(\"Cannot use postMessage transfers.\");\n testObj[0] = 0;\n messageHandler.send(\"test\", testObj);\n }\n };\n\n // It might take time for the worker to initialize. We will try to send\n // the \"test\" message immediately, and once the \"ready\" message arrives.\n // The worker shall process only the first received \"test\" message.\n sendTest();\n return;\n } catch (e) {\n info(\"The worker has been disabled.\");\n }\n }\n // Either workers are disabled, not supported or have thrown an exception.\n // Thus, we fallback to a faked worker.\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n warn(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n\n PDFWorker._setupFakeWorkerGlobal\n .then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n\n // All fake workers use the same port, making id unique.\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n\n // If the main thread is our worker, setup the handling for the\n // messages -- the main thread sends to it self.\n const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n\n const messageHandler = new MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n })\n .catch(reason => {\n this._readyCapability.reject(\n new Error(`Setting up fake worker failed: \"${reason.message}\".`)\n );\n });\n }\n\n /**\n * Destroys the worker instance.\n */\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n // We need to terminate only web worker created resource.\n this._webWorker.terminate();\n this._webWorker = null;\n }\n PDFWorker._workerPorts.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n\n /**\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n if (this._workerPorts.has(params.port)) {\n return this._workerPorts.get(params.port);\n }\n return new PDFWorker(params);\n }\n\n /**\n * The current `workerSrc`, when it exists.\n * @type {string}\n */\n static get workerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n if (!isNodeJS) {\n deprecated('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch (ex) {\n return null;\n }\n }\n\n // Loads worker code into the main-thread.\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n\n if (mainWorkerMessageHandler) {\n // The worker was already loaded using e.g. a `<script>` tag.\n return mainWorkerMessageHandler;\n }\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")) {\n const worker = await import(\"pdfjs/core/worker.js\");\n return worker.WorkerMessageHandler;\n }\n if (\n PDFJSDev.test(\"GENERIC\") &&\n isNodeJS &&\n // eslint-disable-next-line no-undef\n typeof __non_webpack_require__ === \"function\"\n ) {\n // Since bundlers, such as Webpack, cannot be told to leave `require`\n // statements alone we are thus forced to jump through hoops in order\n // to prevent `Critical dependency: ...` warnings in third-party\n // deployments of the built `pdf.js`/`pdf.worker.js` files; see\n // https://github.com/webpack/webpack/issues/8826\n //\n // The following hack is based on the assumption that code running in\n // Node.js won't ever be affected by e.g. Content Security Policies that\n // prevent the use of `eval`. If that ever occurs, we should revert this\n // to a normal `__non_webpack_require__` statement and simply document\n // the Webpack warnings instead (telling users to ignore them).\n //\n // eslint-disable-next-line no-eval\n const worker = eval(\"require\")(this.workerSrc);\n return worker.WorkerMessageHandler;\n }\n await loadScript(this.workerSrc);\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n\n return shadow(this, \"_setupFakeWorkerGlobal\", loader());\n }\n}\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n PDFWorker.getWorkerSrc = function () {\n deprecated(\n \"`PDFWorker.getWorkerSrc()`, please use `PDFWorker.workerSrc` instead.\"\n );\n return this.workerSrc;\n };\n}\n\n/**\n * For internal use only.\n * @ignore\n */\nclass WorkerTransport {\n #docStats = null;\n\n #pageCache = new Map();\n\n #pagePromises = new Map();\n\n #metadataPromise = null;\n\n constructor(messageHandler, loadingTask, networkStream, params) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new FontLoader({\n docId: loadingTask.docId,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement,\n });\n this._params = params;\n\n if (!params.useWorkerFetch) {\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked,\n });\n this.StandardFontDataFactory = new params.StandardFontDataFactory({\n baseUrl: params.standardFontDataUrl,\n });\n }\n\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = createPromiseCapability();\n\n this.setupMessageHandler();\n }\n\n get annotationStorage() {\n return shadow(this, \"annotationStorage\", new AnnotationStorage());\n }\n\n get stats() {\n return this.#docStats;\n }\n\n getRenderingIntent(\n intent,\n annotationMode = AnnotationMode.ENABLE,\n isOpList = false\n ) {\n let renderingIntent = RenderingIntentFlag.DISPLAY; // Default value.\n let lastModified = \"\";\n\n switch (intent) {\n case \"any\":\n renderingIntent = RenderingIntentFlag.ANY;\n break;\n case \"display\":\n break;\n case \"print\":\n renderingIntent = RenderingIntentFlag.PRINT;\n break;\n default:\n warn(`getRenderingIntent - invalid intent: ${intent}`);\n }\n\n switch (annotationMode) {\n case AnnotationMode.DISABLE:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n case AnnotationMode.ENABLE:\n break;\n case AnnotationMode.ENABLE_FORMS:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n case AnnotationMode.ENABLE_STORAGE:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_STORAGE;\n\n lastModified = this.annotationStorage.lastModified;\n break;\n default:\n warn(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n\n if (isOpList) {\n renderingIntent += RenderingIntentFlag.OPLIST;\n }\n\n return {\n renderingIntent,\n cacheKey: `${renderingIntent}_${lastModified}`,\n };\n }\n\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = createPromiseCapability();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(\n new Error(\"Worker was destroyed during onPassword callback\")\n );\n }\n\n const waitOn = [];\n // We need to wait for all renderings to be completed, e.g.\n // timeout/rAF can take a long time.\n for (const page of this.#pageCache.values()) {\n waitOn.push(page._destroy());\n }\n this.#pageCache.clear();\n this.#pagePromises.clear();\n // Allow `AnnotationStorage`-related clean-up when destroying the document.\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n // We also need to wait for the worker to finish its long running tasks.\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n this.#metadataPromise = null;\n this._getFieldObjectsPromise = null;\n this._hasJSActionsPromise = null;\n\n if (this._networkStream) {\n this._networkStream.cancelAllRequests(\n new AbortException(\"Worker was terminated.\")\n );\n }\n\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n\n setupMessageHandler() {\n const { messageHandler, loadingTask } = this;\n\n messageHandler.on(\"GetReader\", (data, sink) => {\n assert(\n this._networkStream,\n \"GetReader - no `IPDFStream` instance available.\"\n );\n this._fullReader = this._networkStream.getFullReader();\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total,\n };\n };\n sink.onPull = () => {\n this._fullReader\n .read()\n .then(function ({ value, done }) {\n if (done) {\n sink.close();\n return;\n }\n assert(\n isArrayBuffer(value),\n \"GetReader - expected an ArrayBuffer.\"\n );\n // Enqueue data chunk into sink, and transfer it\n // to other side as `Transferable` object.\n sink.enqueue(new Uint8Array(value), 1, [value]);\n })\n .catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n throw readyReason;\n });\n };\n });\n\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = createPromiseCapability();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n // If stream or range are disabled, it's our only way to report\n // loading progress.\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress) {\n loadingTask.onProgress?.(this._lastProgress);\n }\n fullReader.onProgress = evt => {\n loadingTask.onProgress?.({\n loaded: evt.loaded,\n total: evt.total,\n });\n };\n }\n\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength,\n });\n }, headersCapability.reject);\n\n return headersCapability.promise;\n });\n\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n assert(\n this._networkStream,\n \"GetRangeReader - no `IPDFStream` instance available.\"\n );\n const rangeReader = this._networkStream.getRangeReader(\n data.begin,\n data.end\n );\n\n // When streaming is enabled, it's possible that the data requested here\n // has already been fetched via the `_fullRequestReader` implementation.\n // However, given that the PDF data is loaded asynchronously on the\n // main-thread and then sent via `postMessage` to the worker-thread,\n // it may not have been available during parsing (hence the attempt to\n // use range requests here).\n //\n // To avoid wasting time and resources here, we'll thus *not* dispatch\n // range requests if the data was already loaded but has not been sent to\n // the worker-thread yet (which will happen via the `_fullRequestReader`).\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = () => {\n rangeReader\n .read()\n .then(function ({ value, done }) {\n if (done) {\n sink.close();\n return;\n }\n assert(\n isArrayBuffer(value),\n \"GetRangeReader - expected an ArrayBuffer.\"\n );\n sink.enqueue(new Uint8Array(value), 1, [value]);\n })\n .catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n throw readyReason;\n });\n };\n });\n\n messageHandler.on(\"GetDoc\", ({ pdfInfo }) => {\n this._numPages = pdfInfo.numPages;\n this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n switch (ex.name) {\n case \"PasswordException\":\n reason = new PasswordException(ex.message, ex.code);\n break;\n case \"InvalidPDFException\":\n reason = new InvalidPDFException(ex.message);\n break;\n case \"MissingPDFException\":\n reason = new MissingPDFException(ex.message);\n break;\n case \"UnexpectedResponseException\":\n reason = new UnexpectedResponseException(ex.message, ex.status);\n break;\n case \"UnknownErrorException\":\n reason = new UnknownErrorException(ex.message, ex.details);\n break;\n default:\n unreachable(\"DocException - expected a valid Error.\");\n }\n loadingTask._capability.reject(reason);\n });\n\n messageHandler.on(\"PasswordRequest\", exception => {\n this._passwordCapability = createPromiseCapability();\n\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n this._passwordCapability.resolve({\n password,\n });\n };\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this._passwordCapability.reject(ex);\n }\n } else {\n this._passwordCapability.reject(\n new PasswordException(exception.message, exception.code)\n );\n }\n return this._passwordCapability.promise;\n });\n\n messageHandler.on(\"DataLoaded\", data => {\n // For consistency: Ensure that progress is always reported when the\n // entire PDF file has been loaded, regardless of how it was fetched.\n loadingTask.onProgress?.({\n loaded: data.length,\n total: data.length,\n });\n\n this.downloadInfoCapability.resolve(data);\n });\n\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n const page = this.#pageCache.get(data.pageIndex);\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n\n messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n if (this.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Font\":\n const params = this._params;\n\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n warn(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n let fontRegistry = null;\n if (params.pdfBug && globalThis.FontInspector?.enabled) {\n fontRegistry = {\n registerFont(font, url) {\n globalThis.FontInspector.fontAdded(font, url);\n },\n };\n }\n const font = new FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry,\n });\n\n this.fontLoader\n .bind(font)\n .catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", { id });\n })\n .finally(() => {\n if (!params.fontExtraProperties && font.data) {\n // Immediately release the `font.data` property once the font\n // has been attached to the DOM, since it's no longer needed,\n // rather than waiting for a `PDFDocumentProxy.cleanup` call.\n // Since `font.data` could be very large, e.g. in some cases\n // multiple megabytes, this will help reduce memory usage.\n font.data = null;\n }\n this.commonObjs.resolve(id, font);\n });\n break;\n case \"FontPath\":\n case \"Image\":\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n\n messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n if (this.destroyed) {\n // Ignore any pending requests if the worker was terminated.\n return;\n }\n\n const pageProxy = this.#pageCache.get(pageIndex);\n if (pageProxy.objs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n\n // Heuristic that will allow us not to store large data.\n const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n if (imageData?.data?.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n break;\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n loadingTask.onProgress?.({\n loaded: data.loaded,\n total: data.total,\n });\n });\n\n messageHandler.on(\"DocStats\", data => {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n // Ensure that a `PDFDocumentProxy.stats` call-site cannot accidentally\n // modify this internal data.\n this.#docStats = Object.freeze({\n streamTypes: Object.freeze(data.streamTypes),\n fontTypes: Object.freeze(data.fontTypes),\n });\n });\n\n messageHandler.on(\n \"UnsupportedFeature\",\n this._onUnsupportedFeature.bind(this)\n );\n\n messageHandler.on(\"FetchBuiltInCMap\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.CMapReaderFactory) {\n return Promise.reject(\n new Error(\n \"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"\n )\n );\n }\n return this.CMapReaderFactory.fetch(data);\n });\n\n messageHandler.on(\"FetchStandardFontData\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.StandardFontDataFactory) {\n return Promise.reject(\n new Error(\n \"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"\n )\n );\n }\n return this.StandardFontDataFactory.fetch(data);\n });\n }\n\n _onUnsupportedFeature({ featureId }) {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n this.loadingTask.onUnsupportedFeature?.(featureId);\n }\n\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n\n getPage(pageNumber) {\n if (\n !Number.isInteger(pageNumber) ||\n pageNumber <= 0 ||\n pageNumber > this._numPages\n ) {\n return Promise.reject(new Error(\"Invalid page request\"));\n }\n\n const pageIndex = pageNumber - 1,\n cachedPromise = this.#pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler\n .sendWithPromise(\"GetPage\", {\n pageIndex,\n })\n .then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n const page = new PDFPageProxy(\n pageIndex,\n pageInfo,\n this,\n this._params.ownerDocument,\n this._params.pdfBug\n );\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n\n getPageIndex(ref) {\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n ref,\n });\n }\n\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent,\n });\n }\n\n saveDocument() {\n return this.messageHandler\n .sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: this.annotationStorage.serializable,\n filename: this._fullReader?.filename ?? null,\n })\n .finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n\n getFieldObjects() {\n return (this._getFieldObjectsPromise ||=\n this.messageHandler.sendWithPromise(\"GetFieldObjects\", null));\n }\n\n hasJSActions() {\n return (this._hasJSActionsPromise ||= this.messageHandler.sendWithPromise(\n \"HasJSActions\",\n null\n ));\n }\n\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id,\n });\n }\n\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n\n getJavaScript() {\n return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n }\n\n getDocJSActions() {\n return this.messageHandler.sendWithPromise(\"GetDocJSActions\", null);\n }\n\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex,\n });\n }\n\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex,\n });\n }\n\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n\n getOptionalContentConfig() {\n return this.messageHandler\n .sendWithPromise(\"GetOptionalContentConfig\", null)\n .then(results => {\n return new OptionalContentConfig(results);\n });\n }\n\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n\n getMetadata() {\n return (this.#metadataPromise ||= this.messageHandler\n .sendWithPromise(\"GetMetadata\", null)\n .then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader?.filename ?? null,\n contentLength: this._fullReader?.contentLength ?? null,\n };\n }));\n }\n\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n\n async startCleanup(keepLoadedFonts = false) {\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n\n if (this.destroyed) {\n return; // No need to manually clean-up when destruction has started.\n }\n for (const page of this.#pageCache.values()) {\n const cleanupSuccessful = page.cleanup();\n\n if (!cleanupSuccessful) {\n throw new Error(\n `startCleanup: Page ${page.pageNumber} is currently rendering.`\n );\n }\n }\n this.commonObjs.clear();\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n this.#metadataPromise = null;\n this._getFieldObjectsPromise = null;\n this._hasJSActionsPromise = null;\n }\n\n get loadingParams() {\n const params = this._params;\n return shadow(this, \"loadingParams\", {\n disableAutoFetch: params.disableAutoFetch,\n enableXfa: params.enableXfa,\n });\n }\n}\n\n/**\n * A PDF document and page is built of many objects. E.g. there are objects for\n * fonts, images, rendering code, etc. These objects may get processed inside of\n * a worker. This class implements some basic methods to manage these objects.\n * @ignore\n */\nclass PDFObjects {\n constructor() {\n this._objs = Object.create(null);\n }\n\n /**\n * Ensures there is an object defined for `objId`.\n * @private\n */\n _ensureObj(objId) {\n if (this._objs[objId]) {\n return this._objs[objId];\n }\n return (this._objs[objId] = {\n capability: createPromiseCapability(),\n data: null,\n resolved: false,\n });\n }\n\n /**\n * If called *without* callback, this returns the data of `objId` but the\n * object needs to be resolved. If it isn't, this method throws.\n *\n * If called *with* a callback, the callback is called with the data of the\n * object once the object is resolved. That means, if you call this method\n * and the object is already resolved, the callback gets called right away.\n */\n get(objId, callback = null) {\n // If there is a callback, then the get can be async and the object is\n // not required to be resolved right now.\n if (callback) {\n this._ensureObj(objId).capability.promise.then(callback);\n return null;\n }\n // If there isn't a callback, the user expects to get the resolved data\n // directly.\n const obj = this._objs[objId];\n // If there isn't an object yet or the object isn't resolved, then the\n // data isn't ready yet!\n if (!obj || !obj.resolved) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n return obj.data;\n }\n\n has(objId) {\n const obj = this._objs[objId];\n return obj?.resolved || false;\n }\n\n /**\n * Resolves the object `objId` with optional `data`.\n */\n resolve(objId, data) {\n const obj = this._ensureObj(objId);\n\n obj.resolved = true;\n obj.data = data;\n obj.capability.resolve(data);\n }\n\n clear() {\n this._objs = Object.create(null);\n }\n}\n\n/**\n * Allows controlling of the rendering tasks.\n */\nclass RenderTask {\n constructor(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\n\n /**\n * Callback for incremental rendering -- a function that will be called\n * each time the rendering is paused. To continue rendering call the\n * function that is the first argument to the callback.\n * @type {function}\n */\n this.onContinue = null;\n }\n\n /**\n * Promise for rendering task completion.\n * @type {Promise<void>}\n */\n get promise() {\n return this._internalRenderTask.capability.promise;\n }\n\n /**\n * Cancels the rendering task. If the task is currently rendering it will\n * not be cancelled until graphics pauses with a timeout. The promise that\n * this object extends will be rejected when cancelled.\n */\n cancel() {\n this._internalRenderTask.cancel();\n }\n}\n\n/**\n * For internal use only.\n * @ignore\n */\nclass InternalRenderTask {\n static get canvasInUse() {\n return shadow(this, \"canvasInUse\", new WeakSet());\n }\n\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this._pdfBug = pdfBug;\n\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame =\n useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = createPromiseCapability();\n this.task = new RenderTask(this);\n // caching this-bound methods\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n get completed() {\n return this.capability.promise.catch(function () {\n // Ignoring errors, since we only want to know when rendering is\n // no longer pending.\n });\n }\n\n initializeGraphics({ transparency = false, optionalContentConfig }) {\n if (this.cancelled) {\n return;\n }\n if (this._canvas) {\n if (InternalRenderTask.canvasInUse.has(this._canvas)) {\n throw new Error(\n \"Cannot use the same canvas during multiple render() operations. \" +\n \"Use different canvas or ensure previous operations were \" +\n \"cancelled or completed.\"\n );\n }\n InternalRenderTask.canvasInUse.add(this._canvas);\n }\n\n if (this._pdfBug && globalThis.StepperManager?.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n const { canvasContext, viewport, transform, imageLayer, background } =\n this.params;\n\n this.gfx = new CanvasGraphics(\n canvasContext,\n this.commonObjs,\n this.objs,\n this.canvasFactory,\n imageLayer,\n optionalContentConfig,\n this.annotationCanvasMap\n );\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background,\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n\n cancel(error = null) {\n this.running = false;\n this.cancelled = true;\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n if (this._canvas) {\n InternalRenderTask.canvasInUse.delete(this._canvas);\n }\n this.callback(\n error ||\n new RenderingCancelledException(\n `Rendering cancelled, page ${this._pageIndex + 1}`,\n \"canvas\"\n )\n );\n }\n\n operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n return;\n }\n\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n\n if (this.running) {\n return;\n }\n this._continue();\n }\n\n _continue() {\n this.running = true;\n if (this.cancelled) {\n return;\n }\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n\n async _next() {\n if (this.cancelled) {\n return;\n }\n this.operatorListIdx = this.gfx.executeOperatorList(\n this.operatorList,\n this.operatorListIdx,\n this._continueBound,\n this.stepper\n );\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n if (this._canvas) {\n InternalRenderTask.canvasInUse.delete(this._canvas);\n }\n this.callback();\n }\n }\n }\n}\n\n/** @type {string} */\nconst version =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : null;\n/** @type {string} */\nconst build =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : null;\n\nexport {\n build,\n DefaultCanvasFactory,\n DefaultCMapReaderFactory,\n DefaultStandardFontDataFactory,\n getDocument,\n LoopbackPort,\n PDFDataRangeTransport,\n PDFDocumentLoadingTask,\n PDFDocumentProxy,\n PDFPageProxy,\n PDFWorker,\n RenderTask,\n setPDFNetworkStreamFactory,\n version,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n IsEvalSupportedCached,\n shadow,\n string32,\n unreachable,\n UNSUPPORTED_FEATURES,\n warn,\n} from \"../shared/util.js\";\n\nclass BaseFontLoader {\n constructor({\n docId,\n onUnsupportedFeature,\n ownerDocument = globalThis.document,\n // For testing only.\n styleElement = null,\n }) {\n if (this.constructor === BaseFontLoader) {\n unreachable(\"Cannot initialize BaseFontLoader.\");\n }\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this._document = ownerDocument;\n\n this.nativeFontFaces = [];\n this.styleElement =\n typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ? styleElement\n : null;\n }\n\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n this._document.fonts.add(nativeFontFace);\n }\n\n insertRule(rule) {\n let styleElement = this.styleElement;\n if (!styleElement) {\n styleElement = this.styleElement = this._document.createElement(\"style\");\n styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n this._document.documentElement\n .getElementsByTagName(\"head\")[0]\n .appendChild(styleElement);\n }\n const styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n // Note: ChildNode.remove doesn't throw if the parentNode is undefined.\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n\n async bind(font) {\n // Add the font to the DOM only once; skip if the font is already loaded.\n if (font.attached || font.missingFile) {\n return;\n }\n font.attached = true;\n\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n this._onUnsupportedFeature({\n featureId: UNSUPPORTED_FEATURES.errorFontLoadNative,\n });\n warn(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n\n // When font loading failed, fall back to the built-in font renderer.\n font.disableFontFace = true;\n throw ex;\n }\n }\n return; // The font was, asynchronously, loaded.\n }\n\n // !this.isFontLoadingAPISupported\n const rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n\n if (this.isSyncFontLoadingSupported) {\n return; // The font was, synchronously, loaded.\n }\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n this._prepareFontLoadEvent([rule], [font], request);\n });\n // The font was, asynchronously, loaded.\n }\n }\n\n _queueLoadingCallback(callback) {\n unreachable(\"Abstract method `_queueLoadingCallback`.\");\n }\n\n get isFontLoadingAPISupported() {\n const hasFonts = !!this._document?.fonts;\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n return shadow(\n this,\n \"isFontLoadingAPISupported\",\n hasFonts && !this.styleElement\n );\n }\n return shadow(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n\n // eslint-disable-next-line getter-return\n get isSyncFontLoadingSupported() {\n unreachable(\"Abstract method `isSyncFontLoadingSupported`.\");\n }\n\n // eslint-disable-next-line getter-return\n get _loadTestFont() {\n unreachable(\"Abstract method `_loadTestFont`.\");\n }\n\n _prepareFontLoadEvent(rules, fontsToLoad, request) {\n unreachable(\"Abstract method `_prepareFontLoadEvent`.\");\n }\n}\n\nlet FontLoader;\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n FontLoader = class MozcentralFontLoader extends BaseFontLoader {\n get isSyncFontLoadingSupported() {\n return shadow(this, \"isSyncFontLoadingSupported\", true);\n }\n };\n} else {\n // PDFJSDev.test('CHROME || GENERIC')\n\n FontLoader = class GenericFontLoader extends BaseFontLoader {\n constructor(params) {\n super(params);\n this.loadingContext = {\n requests: [],\n nextRequestId: 0,\n };\n this.loadTestFontId = 0;\n }\n\n get isSyncFontLoadingSupported() {\n let supported = false;\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"CHROME\")) {\n if (typeof navigator === \"undefined\") {\n // Node.js - we can pretend that sync font loading is supported.\n supported = true;\n } else {\n // User agent string sniffing is bad, but there is no reliable way to\n // tell if the font is fully loaded and ready to be used with canvas.\n const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(\n navigator.userAgent\n );\n if (m?.[1] >= 14) {\n supported = true;\n }\n // TODO - other browsers...\n }\n }\n return shadow(this, \"isSyncFontLoadingSupported\", supported);\n }\n\n _queueLoadingCallback(callback) {\n function completeRequest() {\n assert(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n\n // Sending all completed requests in order of how they were queued.\n while (context.requests.length > 0 && context.requests[0].done) {\n const otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n\n const context = this.loadingContext;\n const request = {\n id: `pdfjs-font-loading-${context.nextRequestId++}`,\n done: false,\n complete: completeRequest,\n callback,\n };\n context.requests.push(request);\n return request;\n }\n\n get _loadTestFont() {\n const getLoadTestFont = function () {\n // This is a CFF font with 1 glyph for '.' that fills its entire width\n // and height.\n return atob(\n \"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" +\n \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" +\n \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" +\n \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" +\n \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" +\n \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" +\n \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" +\n \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" +\n \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" +\n \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" +\n \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" +\n \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" +\n \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" +\n \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" +\n \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" +\n \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" +\n \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\"\n );\n };\n return shadow(this, \"_loadTestFont\", getLoadTestFont());\n }\n\n _prepareFontLoadEvent(rules, fonts, request) {\n /** Hack begin */\n // There's currently no event when a font has finished downloading so the\n // following code is a dirty hack to 'guess' when a font is ready.\n // It's assumed fonts are loaded in order, so add a known test font after\n // the desired fonts and then test for the loading of that test font.\n\n function int32(data, offset) {\n return (\n (data.charCodeAt(offset) << 24) |\n (data.charCodeAt(offset + 1) << 16) |\n (data.charCodeAt(offset + 2) << 8) |\n (data.charCodeAt(offset + 3) & 0xff)\n );\n }\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n let i, ii;\n\n // The temporary canvas is used to determine if fonts are loaded.\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n\n let called = 0;\n function isFontReady(name, callback) {\n called++;\n // With setTimeout clamping this gives the font ~100ms to load.\n if (called > 30) {\n warn(\"Load test font never loaded.\");\n callback();\n return;\n }\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n // Chromium seems to cache fonts based on a hash of the actual font data,\n // so the font must be modified for each load test else it will appear to\n // be loaded already.\n // TODO: This could maybe be made faster by avoiding the btoa of the full\n // font by splitting it in chunks before hand and padding the font id.\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976; // has to be on 4 byte boundary (for checksum)\n data = spliceString(\n data,\n COMMENT_OFFSET,\n loadTestFontId.length,\n loadTestFontId\n );\n // CFF checksum is important for IE, adjusting it\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858; // the \"comment\" filled with 'X'\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = (checksum - XXXX_VALUE + int32(loadTestFontId, i)) | 0;\n }\n if (i < loadTestFontId.length) {\n // align to 4 bytes boundary\n checksum =\n (checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i)) | 0;\n }\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));\n\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n\n const names = [];\n for (const font of fonts) {\n names.push(font.loadedName);\n }\n names.push(loadTestFontId);\n\n const div = this._document.createElement(\"div\");\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n\n for (const name of names) {\n const span = this._document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.appendChild(span);\n }\n this._document.body.appendChild(div);\n\n isFontReady(loadTestFontId, () => {\n div.remove();\n request.complete();\n });\n /** Hack end */\n }\n };\n} // End of PDFJSDev.test('CHROME || GENERIC')\n\nclass FontFaceObject {\n constructor(\n translatedData,\n {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n onUnsupportedFeature,\n fontRegistry = null,\n }\n ) {\n this.compiledGlyphs = Object.create(null);\n // importing translated data\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n let nativeFontFace;\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight,\n };\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n nativeFontFace = new FontFace(\n this.cssFontInfo.fontFamily,\n this.data,\n css\n );\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n return nativeFontFace;\n }\n\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n const data = bytesToString(this.data);\n // Add the @font-face rule to the document.\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n let rule;\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n return rule;\n }\n\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n\n let cmds;\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n this._onUnsupportedFeature({\n featureId: UNSUPPORTED_FEATURES.errorFontGetPath,\n });\n warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n\n return (this.compiledGlyphs[character] = function (c, size) {\n // No-op function, to allow rendering to continue.\n });\n }\n\n // If we can, compile cmds into JS for MAXIMUM SPEED...\n if (this.isEvalSupported && IsEvalSupportedCached.value) {\n const jsBuf = [];\n for (const current of cmds) {\n const args = current.args !== undefined ? current.args.join(\",\") : \"\";\n jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n }\n // eslint-disable-next-line no-new-func\n return (this.compiledGlyphs[character] = new Function(\n \"c\",\n \"size\",\n jsBuf.join(\"\")\n ));\n }\n // ... but fall back on using Function.prototype.apply() if we're\n // blocked from using eval() for whatever reason (like CSP policies).\n return (this.compiledGlyphs[character] = function (c, size) {\n for (const current of cmds) {\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n c[current.cmd].apply(c, current.args);\n }\n });\n }\n}\n\nexport { FontFaceObject, FontLoader };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport {\n BaseCanvasFactory,\n BaseCMapReaderFactory,\n BaseStandardFontDataFactory,\n} from \"./base_factory.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { unreachable } from \"../shared/util.js\";\n\nlet NodeCanvasFactory = class {\n constructor() {\n unreachable(\"Not implemented: NodeCanvasFactory\");\n }\n};\n\nlet NodeCMapReaderFactory = class {\n constructor() {\n unreachable(\"Not implemented: NodeCMapReaderFactory\");\n }\n};\n\nlet NodeStandardFontDataFactory = class {\n constructor() {\n unreachable(\"Not implemented: NodeStandardFontDataFactory\");\n }\n};\n\nif ((typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS) {\n const fetchData = function (url) {\n return new Promise((resolve, reject) => {\n const fs = __non_webpack_require__(\"fs\");\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n resolve(new Uint8Array(data));\n });\n });\n };\n\n NodeCanvasFactory = class extends BaseCanvasFactory {\n _createCanvas(width, height) {\n const Canvas = __non_webpack_require__(\"canvas\");\n return Canvas.createCanvas(width, height);\n }\n };\n\n NodeCMapReaderFactory = class extends BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url).then(data => {\n return { cMapData: data, compressionType };\n });\n }\n };\n\n NodeStandardFontDataFactory = class extends BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url);\n }\n };\n}\n\nexport {\n NodeCanvasFactory,\n NodeCMapReaderFactory,\n NodeStandardFontDataFactory,\n};\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { objectFromMap } from \"../shared/util.js\";\n\n/**\n * Key/value storage for annotation data in forms.\n */\nclass AnnotationStorage {\n constructor() {\n this._storage = new Map();\n this._timeStamp = Date.now();\n this._modified = false;\n\n // Callbacks to signal when the modification state is set or reset.\n // This is used by the viewer to only bind on `beforeunload` if forms\n // are actually edited to prevent doing so unconditionally since that\n // can have undesirable effects.\n this.onSetModified = null;\n this.onResetModified = null;\n }\n\n /**\n * Get the value for a given key if it exists, or return the default value.\n *\n * @public\n * @memberof AnnotationStorage\n * @param {string} key\n * @param {Object} defaultValue\n * @returns {Object}\n */\n getValue(key, defaultValue) {\n const value = this._storage.get(key);\n if (value === undefined) {\n return defaultValue;\n }\n\n return Object.assign(defaultValue, value);\n }\n\n /**\n * Set the value for a given key\n *\n * @public\n * @memberof AnnotationStorage\n * @param {string} key\n * @param {Object} value\n */\n setValue(key, value) {\n const obj = this._storage.get(key);\n let modified = false;\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n this._storage.set(key, value);\n }\n if (modified) {\n this._timeStamp = Date.now();\n this._setModified();\n }\n }\n\n getAll() {\n return this._storage.size > 0 ? objectFromMap(this._storage) : null;\n }\n\n get size() {\n return this._storage.size;\n }\n\n /**\n * @private\n */\n _setModified() {\n if (!this._modified) {\n this._modified = true;\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n\n resetModified() {\n if (this._modified) {\n this._modified = false;\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n\n /**\n * PLEASE NOTE: Only intended for usage within the API itself.\n * @ignore\n */\n get serializable() {\n return this._storage.size > 0 ? this._storage : null;\n }\n\n /**\n * PLEASE NOTE: Only intended for usage within the API itself.\n * @ignore\n */\n get lastModified() {\n return this._timeStamp.toString();\n }\n}\n\nexport { AnnotationStorage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FONT_IDENTITY_MATRIX,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n IsLittleEndianCached,\n isNum,\n OPS,\n shadow,\n TextRenderingMode,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n getShadingPattern,\n PathType,\n TilingPattern,\n} from \"./pattern_helper.js\";\nimport { PixelsPerInch } from \"./display_utils.js\";\n\n// <canvas> contexts store most of the state we need natively.\n// However, PDF needs a bit more state, which we store here.\n// Minimal font size that would be used during canvas fillText operations.\nconst MIN_FONT_SIZE = 16;\n// Maximum font size that would be used during canvas fillText operations.\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\n\n// Defines the time the `executeOperatorList`-method is going to be executing\n// before it stops and shedules a continue of execution.\nconst EXECUTION_TIME = 15; // ms\n// Defines the number of steps before checking the execution time.\nconst EXECUTION_STEPS = 10;\n\nconst COMPILE_TYPE3_GLYPHS = true;\nconst MAX_SIZE_TO_COMPILE = 1000;\n\nconst FULL_CHUNK_HEIGHT = 16;\n\n// Because of https://bugs.chromium.org/p/chromium/issues/detail?id=1170396\n// some curves aren't rendered correctly.\n// Multiplying lineWidth by this factor should help to have \"correct\"\n// rendering with no artifacts.\n// Once the bug is fixed upstream, we can remove this constant and its use.\nconst LINEWIDTH_SCALE_FACTOR = 1.000001;\n\n/**\n * Overrides certain methods on a 2d ctx so that when they are called they\n * will also call the same method on the destCtx. The methods that are\n * overridden are all the transformation state modifiers, path creation, and\n * save/restore. We only forward these specific methods because they are the\n * only state modifiers that we cannot copy over when we switch contexts.\n *\n * To remove mirroring call `ctx._removeMirroring()`.\n *\n * @param {Object} ctx - The 2d canvas context that will duplicate its calls on\n * the destCtx.\n * @param {Object} destCtx - The 2d canvas context that will receive the\n * forwarded calls.\n */\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\n ctx.__originalSave = ctx.save;\n ctx.__originalRestore = ctx.restore;\n ctx.__originalRotate = ctx.rotate;\n ctx.__originalScale = ctx.scale;\n ctx.__originalTranslate = ctx.translate;\n ctx.__originalTransform = ctx.transform;\n ctx.__originalSetTransform = ctx.setTransform;\n ctx.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n\n ctx.save = function ctxSave() {\n destCtx.save();\n this.__originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n this.__originalRestore();\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n this.__originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n this.__originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n this.__originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n this.__originalResetTransform();\n };\n\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n this.__originalRotate(angle);\n };\n\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n this.__originalClip(rule);\n };\n\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n this.__originalMoveTo(x, y);\n };\n\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n this.__originalLineTo(x, y);\n };\n\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n this.__originalRect(x, y, width, height);\n };\n\n ctx.closePath = function () {\n destCtx.closePath();\n this.__originalClosePath();\n };\n\n ctx.beginPath = function () {\n destCtx.beginPath();\n this.__originalBeginPath();\n };\n}\n\nfunction addContextCurrentTransform(ctx) {\n // If the context doesn't expose a `mozCurrentTransform`, add a JS based one.\n if (ctx.mozCurrentTransform) {\n return;\n }\n ctx._originalSave = ctx.save;\n ctx._originalRestore = ctx.restore;\n ctx._originalRotate = ctx.rotate;\n ctx._originalScale = ctx.scale;\n ctx._originalTranslate = ctx.translate;\n ctx._originalTransform = ctx.transform;\n ctx._originalSetTransform = ctx.setTransform;\n ctx._originalResetTransform = ctx.resetTransform;\n\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n\n try {\n // The call to getOwnPropertyDescriptor throws an exception in Node.js:\n // \"TypeError: Method lineWidth called on incompatible receiver\n // #<CanvasRenderingContext2D>\".\n const desc = Object.getOwnPropertyDescriptor(\n Object.getPrototypeOf(ctx),\n \"lineWidth\"\n );\n\n ctx._setLineWidth = desc.set;\n ctx._getLineWidth = desc.get;\n\n Object.defineProperty(ctx, \"lineWidth\", {\n set: function setLineWidth(width) {\n this._setLineWidth(width * LINEWIDTH_SCALE_FACTOR);\n },\n get: function getLineWidth() {\n return this._getLineWidth();\n },\n });\n } catch (_) {}\n\n Object.defineProperty(ctx, \"mozCurrentTransform\", {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n },\n });\n\n Object.defineProperty(ctx, \"mozCurrentTransformInverse\", {\n get: function getCurrentTransformInverse() {\n // Calculation done using WolframAlpha:\n // http://www.wolframalpha.com/input/?\n // i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}}\n\n const [a, b, c, d, e, f] = this._transformMatrix;\n const ad_bc = a * d - b * c;\n const bc_ad = b * c - a * d;\n\n return [\n d / ad_bc,\n b / bc_ad,\n c / bc_ad,\n a / ad_bc,\n (d * e - c * f) / bc_ad,\n (b * e - a * f) / ad_bc,\n ];\n },\n });\n\n ctx.save = function ctxSave() {\n const old = this._transformMatrix;\n this._transformStack.push(old);\n this._transformMatrix = old.slice(0, 6);\n\n this._originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n const prev = this._transformStack.pop();\n if (prev) {\n this._transformMatrix = prev;\n this._originalRestore();\n }\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n const m = this._transformMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n\n this._originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n const m = this._transformMatrix;\n m[0] *= x;\n m[1] *= x;\n m[2] *= y;\n m[3] *= y;\n\n this._originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n const m = this._transformMatrix;\n this._transformMatrix = [\n m[0] * a + m[2] * b,\n m[1] * a + m[3] * b,\n m[0] * c + m[2] * d,\n m[1] * c + m[3] * d,\n m[0] * e + m[2] * f + m[4],\n m[1] * e + m[3] * f + m[5],\n ];\n\n ctx._originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n\n ctx._originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.resetTransform = function ctxResetTransform() {\n this._transformMatrix = [1, 0, 0, 1, 0, 0];\n\n ctx._originalResetTransform();\n };\n\n ctx.rotate = function ctxRotate(angle) {\n const cosValue = Math.cos(angle);\n const sinValue = Math.sin(angle);\n\n const m = this._transformMatrix;\n this._transformMatrix = [\n m[0] * cosValue + m[2] * sinValue,\n m[1] * cosValue + m[3] * sinValue,\n m[0] * -sinValue + m[2] * cosValue,\n m[1] * -sinValue + m[3] * cosValue,\n m[4],\n m[5],\n ];\n\n this._originalRotate(angle);\n };\n}\n\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n\n getCanvas(id, width, height, trackTransform) {\n let canvasEntry;\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n // reset canvas transform for emulated mozCurrentTransform, if needed\n canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n return canvasEntry;\n }\n\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n}\n\nfunction compileType3Glyph(imgData) {\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([\n 0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0,\n ]);\n\n const width = imgData.width,\n height = imgData.height,\n width1 = width + 1;\n let i, ii, j, j0;\n const points = new Uint8Array(width1 * (height + 1));\n\n // decodes bit-packed mask data\n const lineSize = (width + 7) & ~7,\n data0 = imgData.data;\n const data = new Uint8Array(lineSize * height);\n let pos = 0;\n for (i = 0, ii = data0.length; i < ii; i++) {\n const elem = data0[i];\n let mask = 128;\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n // finding interesting points: every point is located between mask pixels,\n // so there will be points of the (width + 1)x(height + 1) grid. Every point\n // will have flags assigned based on neighboring mask pixels:\n // 4 | 8\n // --P--\n // 2 | 1\n // We are interested only in points with the flags:\n // - outside corners: 1, 2, 4, 8;\n // - inside corners: 7, 11, 13, 14;\n // - and, intersections: 5, 10.\n let count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n // 'sum' is the position of the current pixel configuration in the 'TYPES'\n // array (in order 8-1-2-4, so we can use '>>2' to shift the column).\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum =\n (sum >> 2) +\n (data[pos + 1] ? 4 : 0) +\n (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\n }\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n\n pos = lineSize * (height - 1);\n j0 = i * width1;\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n // building outlines\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n const outlines = [];\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n const coords = [p % width1, i];\n\n const p0 = p;\n let type = points[p];\n do {\n const step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n\n const pp = points[p];\n if (pp !== 5 && pp !== 10) {\n // set new direction\n type = pp;\n // delete mark\n points[p] = 0;\n } else {\n // type is 5 or 10, ie, a crossing\n // set new direction\n type = pp & ((0x33 * type) >> 4);\n // set new type for \"future hit\"\n points[p] &= (type >> 2) | (type << 2);\n }\n\n coords.push(p % width1, (p / width1) | 0);\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n outlines.push(coords);\n --i;\n }\n\n const drawOutline = function (c) {\n c.save();\n // the path shall be painted in [0..1]x[0..1] space\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n for (let k = 0, kk = outlines.length; k < kk; k++) {\n const o = outlines[k];\n c.moveTo(o[0], o[1]);\n for (let l = 2, ll = o.length; l < ll; l += 2) {\n c.lineTo(o[l], o[l + 1]);\n }\n }\n c.fill();\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n}\n\nclass CanvasExtraState {\n constructor(width, height) {\n // Are soft masks and alpha values shapes or opacities?\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = FONT_IDENTITY_MATRIX;\n this.leading = 0;\n // Current point (in user coordinates)\n this.x = 0;\n this.y = 0;\n // Start of text line (in text coordinates)\n this.lineX = 0;\n this.lineY = 0;\n // Character and word spacing\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.textRise = 0;\n // Default fore and background colors\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n // Note: fill alpha applies to all non-stroking operations\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.transferMaps = null;\n\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n updatePathMinMax(transform, x, y) {\n [x, y] = Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3) {\n const box = Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n this.updatePathMinMax(transform, box[0], box[1]);\n this.updatePathMinMax(transform, box[2], box[3]);\n }\n\n getPathBoundingBox(pathType = PathType.FILL, transform = null) {\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n if (pathType === PathType.STROKE) {\n if (!transform) {\n unreachable(\"Stroke bounding box must include transform.\");\n }\n // Stroked paths can be outside of the path bounding box by 1/2 the line\n // width.\n const scale = Util.singularValueDecompose2dScale(transform);\n const xStrokePad = (scale[0] * this.lineWidth) / 2;\n const yStrokePad = (scale[1] * this.lineWidth) / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n return box;\n }\n\n updateClipFromPath() {\n const intersect = Util.intersect(this.clipBox, this.getPathBoundingBox());\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n\n getClippedPathBoundingBox(pathType = PathType.FILL, transform = null) {\n return Util.intersect(\n this.clipBox,\n this.getPathBoundingBox(pathType, transform)\n );\n }\n}\n\nfunction putBinaryImageData(ctx, imgData, transferMaps = null) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n // Put the image data to the canvas in chunks, rather than putting the\n // whole image at once. This saves JS memory, because the ImageData object\n // is smaller. It also possibly saves C++ memory within the implementation\n // of putImageData(). (E.g. in Firefox we make two short-lived copies of\n // the data passed to putImageData()). |n| shouldn't be too small, however,\n // because too many putImageData() calls will slow things down.\n //\n // Note: as written, if the last chunk is partial, the putImageData() call\n // will (conceptually) put pixels past the bounds of the canvas. But\n // that's ok; any such pixels are ignored.\n\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n\n let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray;\n if (transferMaps) {\n switch (transferMaps.length) {\n case 1:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[0];\n transferMapBlue = transferMaps[0];\n transferMapGray = transferMaps[0];\n break;\n case 4:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[1];\n transferMapBlue = transferMaps[2];\n transferMapGray = transferMaps[3];\n break;\n }\n }\n\n // There are multiple forms in which the pixel data can be passed, and\n // imgData.kind tells us which one this is.\n if (imgData.kind === ImageKind.GRAYSCALE_1BPP) {\n // Grayscale, 1 bit per pixel (i.e. black-and-white).\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = (width + 7) >> 3;\n let white = 0xffffffff;\n let black = IsLittleEndianCached.value ? 0xff000000 : 0x000000ff;\n\n if (transferMapGray) {\n if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n [white, black] = [black, white];\n }\n }\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n // We ran out of input. Make all remaining pixels transparent.\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === ImageKind.RGBA_32BPP) {\n // RGBA, 32-bits per pixel.\n const hasTransferMaps = !!(\n transferMapRed ||\n transferMapGreen ||\n transferMapBlue\n );\n\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === ImageKind.RGB_24BPP) {\n // RGB, 24-bits per pixel.\n const hasTransferMaps = !!(\n transferMapRed ||\n transferMapGreen ||\n transferMapBlue\n );\n\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n for (j = elemsInThisChunk; j--; ) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n\n if (hasTransferMaps) {\n for (let k = 0; k < destPos; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n}\n\nfunction putBinaryImageMask(ctx, imgData) {\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight =\n i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n\n // Expand the mask so it can be used by the canvas. Any required\n // inversion has already been handled.\n let destPos = 3; // alpha component offset\n for (let j = 0; j < thisChunkHeight; j++) {\n let elem,\n mask = 0;\n for (let k = 0; k < width; k++) {\n if (!mask) {\n elem = src[srcPos++];\n mask = 128;\n }\n dest[destPos] = elem & mask ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\n\nfunction copyCtxState(sourceCtx, destCtx) {\n const properties = [\n \"strokeStyle\",\n \"fillStyle\",\n \"fillRule\",\n \"globalAlpha\",\n \"lineWidth\",\n \"lineCap\",\n \"lineJoin\",\n \"miterLimit\",\n \"globalCompositeOperation\",\n \"font\",\n ];\n for (let i = 0, ii = properties.length; i < ii; i++) {\n const property = properties[i];\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\n\nfunction resetCtxToDefault(ctx) {\n ctx.strokeStyle = \"#000000\";\n ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n}\n\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n const length = bytes.length;\n for (let i = 3; i < length; i += 4) {\n const alpha = bytes[i];\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n const alpha_ = 255 - alpha;\n bytes[i - 3] = (bytes[i - 3] * alpha + r0 * alpha_) >> 8;\n bytes[i - 2] = (bytes[i - 2] * alpha + g0 * alpha_) >> 8;\n bytes[i - 1] = (bytes[i - 1] * alpha + b0 * alpha_) >> 8;\n }\n }\n}\n\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n const length = maskData.length;\n const scale = 1 / 255;\n for (let i = 3; i < length; i += 4) {\n const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = (layerData[i] * alpha * scale) | 0;\n }\n}\n\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n const length = maskData.length;\n for (let i = 3; i < length; i += 4) {\n const y =\n maskData[i - 3] * 77 + // * 0.3 / 255 * 0x10000\n maskData[i - 2] * 152 + // * 0.59 ....\n maskData[i - 1] * 28; // * 0.11 ....\n layerData[i] = transferMap\n ? (layerData[i] * transferMap[y >> 8]) >> 8\n : (layerData[i] * y) >> 16;\n }\n}\n\nfunction genericComposeSMask(\n maskCtx,\n layerCtx,\n width,\n height,\n subtype,\n backdrop,\n transferMap,\n layerOffsetX,\n layerOffsetY,\n maskOffsetX,\n maskOffsetY\n) {\n const hasBackdrop = !!backdrop;\n const r0 = hasBackdrop ? backdrop[0] : 0;\n const g0 = hasBackdrop ? backdrop[1] : 0;\n const b0 = hasBackdrop ? backdrop[2] : 0;\n\n let composeFn;\n if (subtype === \"Luminosity\") {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n // processing image in chunks to save memory\n const PIXELS_TO_PROCESS = 1048576;\n const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n for (let row = 0; row < height; row += chunkSize) {\n const chunkHeight = Math.min(chunkSize, height - row);\n const maskData = maskCtx.getImageData(\n layerOffsetX - maskOffsetX,\n row + (layerOffsetY - maskOffsetY),\n width,\n chunkHeight\n );\n const layerData = layerCtx.getImageData(\n layerOffsetX,\n row + layerOffsetY,\n width,\n chunkHeight\n );\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n composeFn(maskData.data, layerData.data, transferMap);\n\n layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n }\n}\n\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n genericComposeSMask(\n smask.context,\n layerCtx,\n layerWidth,\n layerHeight,\n smask.subtype,\n smask.backdrop,\n smask.transferMap,\n layerOffsetX,\n layerOffsetY,\n smask.offsetX,\n smask.offsetY\n );\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n}\n\nfunction getImageSmoothingEnabled(transform, interpolate) {\n const scale = Util.singularValueDecompose2dScale(transform);\n // Round to a 32bit float so that `<=` check below will pass for numbers that\n // are very close, but not exactly the same 64bit floats.\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround(\n (globalThis.devicePixelRatio || 1) * PixelsPerInch.PDF_TO_CSS_UNITS\n );\n if (interpolate !== undefined) {\n // If the value is explicitly set use it.\n return interpolate;\n } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n // Smooth when downscaling.\n return true;\n }\n // Don't smooth when upscaling.\n return false;\n}\n\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\n\nclass CanvasGraphics {\n constructor(\n canvasCtx,\n commonObjs,\n objs,\n canvasFactory,\n imageLayer,\n optionalContentConfig,\n annotationCanvasMap\n ) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(\n this.ctx.canvas.width,\n this.ctx.canvas.height\n );\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n // Patterns are painted relative to the initial page/form transform, see\n // PDF spec 8.7.2 NOTE 1.\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n if (canvasCtx) {\n // NOTE: if mozCurrentTransform is polyfilled, then the current state of\n // the transformation must already be set in canvasCtx._transformMatrix.\n addContextCurrentTransform(canvasCtx);\n }\n this._cachedGetSinglePixelWidth = null;\n }\n\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null,\n }) {\n // For pdfs that use blend modes we have to clear the canvas else certain\n // blend modes can look wrong since we'd be blending with a white\n // backdrop. The problem with a transparent backdrop though is we then\n // don't get sub pixel anti aliasing on text, creating temporary\n // transparent canvas when we have blend modes.\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n\n this.ctx.save();\n this.ctx.fillStyle = background || \"rgb(255, 255, 255)\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\n \"transparent\",\n width,\n height,\n true\n );\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n // The transform can be applied before rendering, transferring it to\n // the new canvas.\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.viewportScale = viewport.scale;\n\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n this._combinedScaleFactor = Math.hypot(\n this.baseTransform[0],\n this.baseTransform[2]\n );\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n }\n\n executeOperatorList(\n operatorList,\n executionStartIdx,\n continueCallback,\n stepper\n ) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n\n // Sometimes the OperatorList to execute is empty.\n if (argsArrayLen === i) {\n return i;\n }\n\n const chunkOperations =\n argsArrayLen - i > EXECUTION_STEPS &&\n typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n\n fnId = fnArray[i];\n\n if (fnId !== OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n // If the promise isn't resolved yet, add the continueCallback\n // to the promise and bail out.\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n\n i++;\n\n // If the entire operatorList was executed, stop as were done.\n if (i === argsArrayLen) {\n return i;\n }\n\n // If the execution took longer then a certain amount of time and\n // `continueCallback` is specified, interrupt the execution.\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n\n // If the operatorList isn't executed completely yet OR the execution\n // time was short enough, do another execution round.\n }\n }\n\n endDrawing() {\n // Finishing all opened operations such as SMask group painting.\n while (this.stateStack.length || this.current.activeSMask !== null) {\n this.restore();\n }\n\n this.ctx.restore();\n\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0); // Avoid apply transform twice\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n }\n\n _scaleImage(img, inverseTransform) {\n // Vertical or horizontal scaling shall not be more than 2 to not lose the\n // pixels during drawImage operation, painting on the temporary canvas(es)\n // that are twice smaller in size.\n const width = img.width;\n const height = img.height;\n let widthScale = Math.max(\n Math.hypot(inverseTransform[0], inverseTransform[1]),\n 1\n );\n let heightScale = Math.max(\n Math.hypot(inverseTransform[2], inverseTransform[3]),\n 1\n );\n\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\n while (\n (widthScale > 2 && paintWidth > 1) ||\n (heightScale > 2 && paintHeight > 1)\n ) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(\n tmpCanvasId,\n newWidth,\n newHeight\n );\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(\n img,\n 0,\n 0,\n paintWidth,\n paintHeight,\n 0,\n 0,\n newWidth,\n newHeight\n );\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n return {\n img,\n paintWidth,\n paintHeight,\n };\n }\n\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const width = img.width,\n height = img.height;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const maskCanvas = this.cachedCanvases.getCanvas(\n \"maskCanvas\",\n width,\n height\n );\n const maskCtx = maskCanvas.context;\n putBinaryImageMask(maskCtx, img);\n\n // Create the mask canvas at the size it will be drawn at and also set\n // its transform to match the current transform so if there are any\n // patterns applied they will be applied relative to the correct\n // transform.\n const objToCanvas = ctx.mozCurrentTransform;\n let maskToCanvas = Util.transform(objToCanvas, [\n 1 / width,\n 0,\n 0,\n -1 / height,\n 0,\n 0,\n ]);\n maskToCanvas = Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n const cord1 = Util.applyTransform([0, 0], maskToCanvas);\n const cord2 = Util.applyTransform([width, height], maskToCanvas);\n const rect = Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n const drawnWidth = Math.ceil(rect[2] - rect[0]);\n const drawnHeight = Math.ceil(rect[3] - rect[1]);\n const fillCanvas = this.cachedCanvases.getCanvas(\n \"fillCanvas\",\n drawnWidth,\n drawnHeight,\n true\n );\n const fillCtx = fillCanvas.context;\n // The offset will be the top-left cordinate mask.\n const offsetX = Math.min(cord1[0], cord2[0]);\n const offsetY = Math.min(cord1[1], cord2[1]);\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform.apply(fillCtx, maskToCanvas);\n // Pre-scale if needed to improve image smoothing.\n const scaled = this._scaleImage(\n maskCanvas.canvas,\n fillCtx.mozCurrentTransformInverse\n );\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(\n fillCtx.mozCurrentTransform,\n img.interpolate\n );\n fillCtx.drawImage(\n scaled.img,\n 0,\n 0,\n scaled.img.width,\n scaled.img.height,\n 0,\n 0,\n width,\n height\n );\n fillCtx.globalCompositeOperation = \"source-in\";\n\n const inverse = Util.transform(fillCtx.mozCurrentTransformInverse, [\n 1,\n 0,\n 0,\n 1,\n -offsetX,\n -offsetY,\n ]);\n fillCtx.fillStyle = isPatternFill\n ? fillColor.getPattern(ctx, this, inverse, PathType.FILL)\n : fillColor;\n\n fillCtx.fillRect(0, 0, width, height);\n\n // Round the offsets to avoid drawing fractional pixels.\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY),\n };\n }\n\n // Graphics state\n setLineWidth(width) {\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n\n setRenderingIntent(intent) {\n // This operation is ignored since we haven't found a use case for it yet.\n }\n\n setFlatness(flatness) {\n // This operation is ignored since we haven't found a use case for it yet.\n }\n\n setGState(states) {\n for (let i = 0, ii = states.length; i < ii; i++) {\n const state = states[i];\n const key = state[0];\n const value = state[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n case \"CA\":\n this.current.strokeAlpha = state[1];\n break;\n case \"ca\":\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n case \"TR\":\n this.current.transferMaps = value;\n }\n }\n }\n\n checkSMaskState() {\n const inSMaskMode = !!this.suspendedCtx;\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n // Else, the state is okay and nothing needs to be done.\n }\n\n /**\n * Soft mask mode takes the current main drawing canvas and replaces it with\n * a temporary canvas. Any drawing operations that happen on the temporary\n * canvas need to be composed with the main canvas that was suspended (see\n * `compose()`). The temporary canvas also duplicates many of its operations\n * on the suspended canvas to keep them in sync, so that when the soft mask\n * mode ends any clipping paths or transformations will still be active and in\n * the right order on the canvas' graphics state stack.\n */\n beginSMaskMode() {\n if (this.suspendedCtx) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(\n cacheId,\n drawnWidth,\n drawnHeight,\n true\n );\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.suspendedCtx.mozCurrentTransform);\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n\n this.setGState([\n [\"BM\", \"source-over\"],\n [\"ca\", 1],\n [\"CA\", 1],\n ]);\n }\n\n endSMaskMode() {\n if (!this.suspendedCtx) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n // The soft mask is done, now restore the suspended canvas as the main\n // drawing canvas.\n this.ctx._removeMirroring();\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n\n this.current.activeSMask = null;\n this.suspendedCtx = null;\n }\n\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n\n composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n // Whatever was drawn has been moved to the suspended canvas, now clear it\n // out of the current canvas.\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n\n save() {\n this.ctx.save();\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n if (this.stateStack.length === 0 && this.current.activeSMask) {\n this.endSMaskMode();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n this.ctx.restore();\n this.checkSMaskState();\n\n // Ensure that the clipping path is reset (fixes issue6413.pdf).\n this.pendingClip = null;\n\n this._cachedGetSinglePixelWidth = null;\n }\n }\n\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n\n this._cachedGetSinglePixelWidth = null;\n }\n\n // Path\n constructPath(ops, args) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n current.updatePathMinMax(ctx.mozCurrentTransform, x, y);\n current.updatePathMinMax(ctx.mozCurrentTransform, xw, yh);\n ctx.closePath();\n break;\n case OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n current.updatePathMinMax(ctx.mozCurrentTransform, x, y);\n break;\n case OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n current.updatePathMinMax(ctx.mozCurrentTransform, x, y);\n break;\n case OPS.curveTo:\n startX = x;\n startY = y;\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(\n args[j],\n args[j + 1],\n args[j + 2],\n args[j + 3],\n x,\n y\n );\n current.updateCurvePathMinMax(\n ctx.mozCurrentTransform,\n startX,\n startY,\n args[j],\n args[j + 1],\n args[j + 2],\n args[j + 3],\n x,\n y\n );\n j += 6;\n break;\n case OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(\n x,\n y,\n args[j],\n args[j + 1],\n args[j + 2],\n args[j + 3]\n );\n current.updateCurvePathMinMax(\n ctx.mozCurrentTransform,\n startX,\n startY,\n x,\n y,\n args[j],\n args[j + 1],\n args[j + 2],\n args[j + 3]\n );\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(\n ctx.mozCurrentTransform,\n startX,\n startY,\n args[j],\n args[j + 1],\n x,\n y,\n x,\n y\n );\n j += 4;\n break;\n case OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n current.setCurrentPoint(x, y);\n }\n\n closePath() {\n this.ctx.closePath();\n }\n\n stroke(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n // For stroke we want to temporarily change the global alpha to the\n // stroking alpha.\n ctx.globalAlpha = this.current.strokeAlpha;\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n const lineWidth = this.getSinglePixelWidth();\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(\n ctx,\n this,\n ctx.mozCurrentTransformInverse,\n PathType.STROKE\n );\n // Prevent drawing too thin lines by enforcing a minimum line width.\n ctx.lineWidth = Math.max(lineWidth, this.current.lineWidth);\n ctx.stroke();\n ctx.restore();\n } else {\n const lineWidth = this.getSinglePixelWidth();\n if (lineWidth < 0 && -lineWidth >= this.current.lineWidth) {\n // The current transform will transform a square pixel into a\n // parallelogram where both heights are lower than 1 and not equal.\n ctx.save();\n ctx.resetTransform();\n ctx.lineWidth = Math.round(this._combinedScaleFactor);\n ctx.stroke();\n ctx.restore();\n } else {\n // Prevent drawing too thin lines by enforcing a minimum line width.\n ctx.lineWidth = Math.max(lineWidth, this.current.lineWidth);\n ctx.stroke();\n }\n }\n }\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n // Restore the global alpha to the fill alpha\n ctx.globalAlpha = this.current.fillAlpha;\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n fill(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(\n ctx,\n this,\n ctx.mozCurrentTransformInverse,\n PathType.FILL\n );\n needRestore = true;\n }\n\n const intersect = this.current.getClippedPathBoundingBox();\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n\n if (needRestore) {\n ctx.restore();\n }\n if (consumePath) {\n this.consumePath(intersect);\n }\n }\n\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n\n this.consumePath();\n }\n\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n\n endPath() {\n this.consumePath();\n }\n\n // Clipping\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n\n // Text\n beginText() {\n this.current.textMatrix = IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n\n endText() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n for (let i = 0; i < paths.length; i++) {\n const path = paths[i];\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n current.fontMatrix = fontObj.fontMatrix || FONT_IDENTITY_MATRIX;\n\n // A valid matrix needs all main diagonal elements to be non-zero\n // This also ensures we bypass FF bugzilla bug #719844.\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n warn(\"Invalid font matrix for font \" + fontRefName);\n }\n\n // The spec for Tf (setFont) says that 'size' specifies the font 'scale',\n // and in some docs this can be negative (inverted x-y axes).\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n this.current.font = fontObj;\n this.current.fontSize = size;\n\n if (fontObj.isType3Font) {\n return; // we don't need ctx.font for Type3 fonts\n }\n\n const name = fontObj.loadedName || \"sans-serif\";\n\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n const typeface = `\"${name}\", ${fontObj.fallbackName}`;\n\n // Some font backends cannot handle fonts below certain size.\n // Keeping the font at minimal size and using the fontSizeScale to change\n // the current transformation matrix before the fillText/strokeText.\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=726227\n let browserFontSize = size;\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n this.current.fontSizeScale = size / browserFontSize;\n\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n }\n\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n paintChar(character, x, y, patternTransform, resetLineWidthToOne) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode =\n textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(\n textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG\n );\n const patternFill = current.patternFill && !font.missingFile;\n\n let addToPath;\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n if (\n fillStrokeMode === TextRenderingMode.FILL ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n ctx.fill();\n }\n if (\n fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n if (resetLineWidthToOne) {\n ctx.resetTransform();\n ctx.lineWidth = Math.round(this._combinedScaleFactor);\n }\n ctx.stroke();\n }\n ctx.restore();\n } else {\n if (\n fillStrokeMode === TextRenderingMode.FILL ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n ctx.fillText(character, x, y);\n }\n if (\n fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n if (resetLineWidthToOne) {\n ctx.save();\n ctx.moveTo(x, y);\n ctx.resetTransform();\n ctx.lineWidth = Math.round(this._combinedScaleFactor);\n ctx.strokeText(character, 0, 0);\n ctx.restore();\n } else {\n ctx.strokeText(character, x, y);\n }\n }\n }\n\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x,\n y,\n fontSize,\n addToPath,\n });\n }\n }\n\n get isFontSubpixelAAEnabled() {\n // Checks if anti-aliasing is enabled when scaled text is painted.\n // On Windows GDI scaled fonts looks bad.\n const { context: ctx } = this.cachedCanvases.getCanvas(\n \"isFontSubpixelAAEnabled\",\n 10,\n 10\n );\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n return shadow(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return undefined;\n }\n\n const ctx = this.ctx;\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n const simpleFillText =\n current.textRenderingMode === TextRenderingMode.FILL &&\n !font.disableFontFace &&\n !current.patternFill;\n\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n\n let patternTransform;\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(\n ctx,\n this,\n ctx.mozCurrentTransformInverse,\n PathType.FILL\n );\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n\n let lineWidth = current.lineWidth;\n let resetLineWidthToOne = false;\n const scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode =\n current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n if (\n fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n this._cachedGetSinglePixelWidth = null;\n lineWidth = this.getSinglePixelWidth();\n resetLineWidthToOne = lineWidth < 0;\n }\n } else {\n lineWidth /= scale;\n }\n\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n\n ctx.lineWidth = lineWidth;\n\n let x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n if (isNum(glyph)) {\n x += (spacingDir * glyph * fontSize) / 1000;\n continue;\n }\n\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx =\n -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (font.remeasure && width > 0) {\n // Some standard fonts may not have the exact width: rescale per\n // character if measured width is greater than expected glyph width\n // and subpixel-aa is enabled, otherwise just center the glyph.\n const measuredWidth =\n ((ctx.measureText(character).width * 1000) / fontSize) *\n fontSizeScale;\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX +=\n (((width - measuredWidth) / 2000) * fontSize) / fontSizeScale;\n }\n }\n\n // Only attempt to draw the glyph if it is actually in the embedded font\n // file or if there isn't a font file so the fallback font is shown.\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n // common case\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(\n character,\n scaledX,\n scaledY,\n patternTransform,\n resetLineWidthToOne\n );\n if (accent) {\n const scaledAccentX =\n scaledX + (fontSize * accent.offset.x) / fontSizeScale;\n const scaledAccentY =\n scaledY - (fontSize * accent.offset.y) / fontSizeScale;\n this.paintChar(\n accent.fontChar,\n scaledAccentX,\n scaledAccentY,\n patternTransform,\n resetLineWidthToOne\n );\n }\n }\n }\n\n let charWidth;\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n this.compose();\n return undefined;\n }\n\n showType3Text(glyphs) {\n // Type3 fonts - each glyph is a \"mini-PDF\"\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible =\n current.textRenderingMode === TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n this._cachedGetSinglePixelWidth = null;\n\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n if (isNum(glyph)) {\n spacingLength = (spacingDir * glyph * fontSize) / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n if (!operatorList) {\n warn(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n\n const transformed = Util.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n this.processingType3 = null;\n }\n\n // Type3 fonts\n setCharWidth(xWidth, yWidth) {\n // We can safely ignore this since the width should be the same\n // as the width in the Widths array.\n }\n\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n // TODO According to the spec we're also suppose to ignore any operators\n // that set color or include images while processing this type3 font.\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n }\n\n // Color\n getColorN_Pattern(IR) {\n let pattern;\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform =\n this.baseTransform || this.ctx.mozCurrentTransform.slice();\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(\n ctx,\n this.commonObjs,\n this.objs,\n this.canvasFactory\n );\n },\n };\n pattern = new TilingPattern(\n IR,\n color,\n this.ctx,\n canvasGraphicsFactory,\n baseTransform\n );\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n return pattern;\n }\n\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n\n setStrokeRGBColor(r, g, b) {\n const color = Util.makeHexColor(r, g, b);\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n }\n\n setFillRGBColor(r, g, b) {\n const color = Util.makeHexColor(r, g, b);\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n }\n\n _getPattern(objId, matrix = null) {\n let pattern;\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = getShadingPattern(this.objs.get(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n if (matrix) {\n pattern.matrix = matrix;\n }\n return pattern;\n }\n\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n\n this.save();\n const pattern = this._getPattern(objId);\n ctx.fillStyle = pattern.getPattern(\n ctx,\n this,\n ctx.mozCurrentTransformInverse,\n PathType.SHADING\n );\n\n const inv = ctx.mozCurrentTransformInverse;\n if (inv) {\n const canvas = ctx.canvas;\n const width = canvas.width;\n const height = canvas.height;\n\n const bl = Util.applyTransform([0, 0], inv);\n const br = Util.applyTransform([0, height], inv);\n const ul = Util.applyTransform([width, 0], inv);\n const ur = Util.applyTransform([width, height], inv);\n\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n // HACK to draw the gradient onto an infinite rectangle.\n // PDF gradients are drawn across the entire image while\n // Canvas only allows gradients to be drawn in a rectangle\n // The following bug should allow us to remove this.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=664884\n\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n\n // Images\n beginInlineImage() {\n unreachable(\"Should not call beginInlineImage\");\n }\n\n beginImageData() {\n unreachable(\"Should not call beginImageData\");\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n\n this.baseTransform = this.ctx.mozCurrentTransform;\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updatePathMinMax(\n this.ctx.mozCurrentTransform,\n bbox[0],\n bbox[1]\n );\n this.current.updatePathMinMax(\n this.ctx.mozCurrentTransform,\n bbox[2],\n bbox[3]\n );\n this.clip();\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n // If there's an active soft mask we don't want it enabled for the group, so\n // clear it out. The mask and suspended canvas will be restored in endGroup.\n const suspendedCtx = this.suspendedCtx;\n if (this.current.activeSMask) {\n this.suspendedCtx = null;\n this.current.activeSMask = null;\n }\n\n const currentCtx = this.ctx;\n // TODO non-isolated groups - according to Rik at adobe non-isolated\n // group results aren't usually that different and they even have tools\n // that ignore this setting. Notes from Rik on implementing:\n // - When you encounter an transparency group, create a new canvas with\n // the dimensions of the bbox\n // - copy the content from the previous canvas to the new canvas\n // - draw as usual\n // - remove the backdrop alpha:\n // alphaNew = 1 - (1 - alpha)/(1 - alphaBackdrop) with 'alpha' the alpha\n // value of your transparency group and 'alphaBackdrop' the alpha of the\n // backdrop\n // - remove background color:\n // colorNew = color - alphaNew *colorBackdrop /(1 - alphaNew)\n if (!group.isolated) {\n info(\"TODO: Support non-isolated groups.\");\n }\n\n // TODO knockout - supposedly possible with the clever use of compositing\n // modes.\n if (group.knockout) {\n warn(\"Knockout groups not supported.\");\n }\n\n const currentTransform = currentCtx.mozCurrentTransform;\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n\n // Based on the current transform figure out how big the bounding box\n // will actually be.\n let bounds = Util.getAxialAlignedBoundingBox(\n group.bbox,\n currentCtx.mozCurrentTransform\n );\n // Clip the bounding box to the current canvas.\n const canvasBounds = [\n 0,\n 0,\n currentCtx.canvas.width,\n currentCtx.canvas.height,\n ];\n bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n // Use ceil in case we're between sizes so we don't create canvas that is\n // too small and make the canvas at least 1x1 pixels.\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n let scaleX = 1,\n scaleY = 1;\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n\n let cacheId = \"groupAt\" + this.groupLevel;\n if (group.smask) {\n // Using two cache entries is case if masks are used one after another.\n cacheId += \"_smask_\" + (this.smaskCounter++ % 2);\n }\n const scratchCanvas = this.cachedCanvases.getCanvas(\n cacheId,\n drawnWidth,\n drawnHeight,\n true\n );\n const groupCtx = scratchCanvas.context;\n\n // Since we created a new canvas that is just the size of the bounding box\n // we have to translate the group ctx.\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n // Saving state and cached mask to be used in setGState.\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null, // used during suspend operation\n });\n } else {\n // Setup the current ctx so when the group is popped we draw it at the\n // right location.\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n currentCtx.save();\n }\n // The transparency group inherits all off the current graphics state\n // except the blend mode, soft mask, and alpha constants.\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([\n [\"BM\", \"source-over\"],\n [\"ca\", 1],\n [\"CA\", 1],\n ]);\n this.groupStack.push({\n ctx: currentCtx,\n suspendedCtx,\n });\n this.groupLevel++;\n }\n\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.groupLevel--;\n const groupCtx = this.ctx;\n const { ctx, suspendedCtx } = this.groupStack.pop();\n this.ctx = ctx;\n // Turn off image smoothing to avoid sub pixel interpolation which can\n // look kind of blurry for some pdfs.\n this.ctx.imageSmoothingEnabled = false;\n\n if (suspendedCtx) {\n this.suspendedCtx = suspendedCtx;\n }\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = this.ctx.mozCurrentTransform;\n this.restore();\n this.ctx.save();\n this.ctx.setTransform.apply(this.ctx, currentMtx);\n const dirtyBox = Util.getAxialAlignedBoundingBox(\n [0, 0, groupCtx.canvas.width, groupCtx.canvas.height],\n currentMtx\n );\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n\n beginAnnotations() {\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n }\n\n endAnnotations() {\n this.restore();\n }\n\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.save();\n\n if (Array.isArray(rect) && rect.length === 4) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n\n const [scaleX, scaleY] = Util.singularValueDecompose2dScale(\n this.ctx.mozCurrentTransform\n );\n const { viewportScale } = this;\n const canvasWidth = Math.ceil(\n width * this.outputScaleX * viewportScale\n );\n const canvasHeight = Math.ceil(\n height * this.outputScaleY * viewportScale\n );\n\n this.annotationCanvas = this.canvasFactory.create(\n canvasWidth,\n canvasHeight\n );\n const { canvas, context } = this.annotationCanvas;\n canvas.style.width = `calc(${width}px * var(--viewport-scale-factor))`;\n canvas.style.height = `calc(${height}px * var(--viewport-scale-factor))`;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n addContextCurrentTransform(this.ctx);\n\n resetCtxToDefault(this.ctx);\n } else {\n resetCtxToDefault(this.ctx);\n\n this.ctx.rect(rect[0], rect[1], width, height);\n this.clip();\n this.endPath();\n }\n }\n\n this.current = new CanvasExtraState(\n this.ctx.canvas.width,\n this.ctx.canvas.height\n );\n\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n }\n\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n this.restore();\n }\n\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n const width = img.width,\n height = img.height;\n\n const glyph = this.processingType3;\n\n if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n glyph.compiled = compileType3Glyph({ data: img.data, width, height });\n } else {\n glyph.compiled = null;\n }\n }\n\n if (glyph?.compiled) {\n glyph.compiled(ctx);\n return;\n }\n const mask = this._createMaskCanvas(img);\n const maskCanvas = mask.canvas;\n\n ctx.save();\n // The mask is drawn with the transform applied. Reset the current\n // transform to draw to the identity.\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n\n paintImageMaskXObjectRepeat(\n imgData,\n scaleX,\n skewX = 0,\n skewY = 0,\n scaleY,\n positions\n ) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = ctx.mozCurrentTransform;\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n const mask = this._createMaskCanvas(imgData);\n\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = Util.transform(currentTransform, [\n scaleX,\n skewX,\n skewY,\n scaleY,\n positions[i],\n positions[i + 1],\n ]);\n\n const [x, y] = Util.applyTransform([0, 0], trans);\n ctx.drawImage(mask.canvas, x, y);\n }\n ctx.restore();\n this.compose();\n }\n\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n for (let i = 0, ii = images.length; i < ii; i++) {\n const image = images[i];\n const width = image.width,\n height = image.height;\n\n const maskCanvas = this.cachedCanvases.getCanvas(\n \"maskCanvas\",\n width,\n height\n );\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n\n putBinaryImageMask(maskCtx, image);\n\n maskCtx.globalCompositeOperation = \"source-in\";\n\n maskCtx.fillStyle = isPatternFill\n ? fillColor.getPattern(\n maskCtx,\n this,\n ctx.mozCurrentTransformInverse,\n PathType.FILL\n )\n : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n\n maskCtx.restore();\n\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = objId.startsWith(\"g_\")\n ? this.commonObjs.get(objId)\n : this.objs.get(objId);\n if (!imgData) {\n warn(\"Dependent image isn't ready yet\");\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = objId.startsWith(\"g_\")\n ? this.commonObjs.get(objId)\n : this.objs.get(objId);\n if (!imgData) {\n warn(\"Dependent image isn't ready yet\");\n return;\n }\n\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height,\n });\n }\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n\n this.save();\n // scale the image to the unit square\n ctx.scale(1 / width, -1 / height);\n\n let imgToPaint;\n // typeof check is needed due to node.js support, see issue #8489\n if (\n (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement) ||\n !imgData.data\n ) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\n \"inlineImage\",\n width,\n height\n );\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n imgToPaint = tmpCanvas.canvas;\n }\n\n const scaled = this._scaleImage(imgToPaint, ctx.mozCurrentTransformInverse);\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled(\n ctx.mozCurrentTransform,\n imgData.interpolate\n );\n ctx.drawImage(\n scaled.img,\n 0,\n 0,\n scaled.paintWidth,\n scaled.paintHeight,\n 0,\n -height,\n width,\n height\n );\n\n if (this.imageLayer) {\n const position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: width / ctx.mozCurrentTransformInverse[0],\n height: height / ctx.mozCurrentTransformInverse[3],\n });\n }\n this.compose();\n this.restore();\n }\n\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n const w = imgData.width;\n const h = imgData.height;\n\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n\n for (let i = 0, ii = map.length; i < ii; i++) {\n const entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n ctx.drawImage(\n tmpCanvas.canvas,\n entry.x,\n entry.y,\n entry.w,\n entry.h,\n 0,\n -1,\n 1,\n 1\n );\n if (this.imageLayer) {\n const position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h,\n });\n }\n ctx.restore();\n }\n this.compose();\n }\n\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n\n // Marked content\n\n markPoint(tag) {\n // TODO Marked content.\n }\n\n markPointProps(tag, properties) {\n // TODO Marked content.\n }\n\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true,\n });\n }\n\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties),\n });\n } else {\n this.markedContentStack.push({\n visible: true,\n });\n }\n this.contentVisible = this.isContentVisible();\n }\n\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n\n // Compatibility\n\n beginCompat() {\n // TODO ignore undefined operators (should we do that anyway?)\n }\n\n endCompat() {\n // TODO stop ignoring undefined operators\n }\n\n // Helper functions\n\n consumePath(clipBox) {\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n const ctx = this.ctx;\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n this.pendingClip = null;\n }\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n\n getSinglePixelWidth() {\n if (this._cachedGetSinglePixelWidth === null) {\n // If transform is [a b] then a pixel (square) is transformed\n // [c d]\n // into a parallelogram: its area is the abs value of the determinant.\n // This parallelogram has 2 heights:\n // - Area / |col_1|;\n // - Area / |col_2|.\n // so in order to get a height of at least 1, pixel height\n // must be computed as followed:\n // h = max(sqrt(a² + c²) / |det(M)|, sqrt(b² + d²) / |det(M)|).\n // This is equivalent to:\n // h = max(|line_1_inv(M)|, |line_2_inv(M)|)\n const m = this.ctx.mozCurrentTransform;\n\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const sqNorm1 = m[0] ** 2 + m[2] ** 2;\n const sqNorm2 = m[1] ** 2 + m[3] ** 2;\n const pixelHeight = Math.sqrt(Math.max(sqNorm1, sqNorm2)) / absDet;\n if (sqNorm1 !== sqNorm2 && this._combinedScaleFactor * pixelHeight > 1) {\n // The parallelogram isn't a square and at least one height\n // is lower than 1 so the resulting line width must be 1\n // but it cannot be achieved with one scale: when scaling a pixel\n // we'll get a rectangle (see issue #12295).\n // For example with matrix [0.001 0, 0, 100], a pixel is transformed\n // in a rectangle 0.001x100. If we just scale by 1000 (to have a 1)\n // then we'll get a rectangle 1x1e5 which is wrong.\n // In this case, we must reset the transform, set linewidth to 1\n // and then stroke.\n this._cachedGetSinglePixelWidth = -(\n this._combinedScaleFactor * pixelHeight\n );\n } else if (absDet > Number.EPSILON) {\n this._cachedGetSinglePixelWidth = pixelHeight;\n } else {\n // Matrix is non-invertible.\n this._cachedGetSinglePixelWidth = 1;\n }\n }\n\n return this._cachedGetSinglePixelWidth;\n }\n\n getCanvasPosition(x, y) {\n const transform = this.ctx.mozCurrentTransform;\n return [\n transform[0] * x + transform[2] * y + transform[4],\n transform[1] * x + transform[3] * y + transform[5],\n ];\n }\n\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n return true;\n }\n}\n\nfor (const op in OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\nexport { CanvasGraphics };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FormatError,\n info,\n shadow,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\n\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\",\n};\n\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox || typeof Path2D === \"undefined\") {\n return;\n }\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\n\nclass BaseShadingPattern {\n constructor() {\n if (this.constructor === BaseShadingPattern) {\n unreachable(\"Cannot initialize BaseShadingPattern.\");\n }\n }\n\n getPattern() {\n unreachable(\"Abstract method `getPattern` called.\");\n }\n}\n\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this.matrix = null;\n }\n\n _createGradient(ctx) {\n let grad;\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(\n this._p0[0],\n this._p0[1],\n this._p1[0],\n this._p1[1]\n );\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(\n this._p0[0],\n this._p0[1],\n this._r0,\n this._p1[0],\n this._p1[1],\n this._r1\n );\n }\n\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n return grad;\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(\n pathType,\n ctx.mozCurrentTransform\n ) || [0, 0, 0, 0];\n // Create a canvas that is only as big as the current path. This doesn't\n // allow us to cache the pattern, but it generally creates much smaller\n // canvases and saves memory use. See bug 1722807 for an example.\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n\n const tmpCanvas = owner.cachedCanvases.getCanvas(\n \"pattern\",\n width,\n height,\n true\n );\n\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n // Non shading fill patterns are positioned relative to the base transform\n // (usually the page's initial transform), but we may have created a\n // smaller canvas based on the path, so we must account for the shift.\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = Util.transform(inverse, [\n 1,\n 0,\n 0,\n 1,\n ownerBBox[0],\n ownerBBox[1],\n ]);\n\n tmpCtx.transform.apply(tmpCtx, owner.baseTransform);\n if (this.matrix) {\n tmpCtx.transform.apply(tmpCtx, this.matrix);\n }\n applyBoundingBox(tmpCtx, this._bbox);\n\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n // Avoid rendering breaking completely in Firefox 78 ESR,\n // and in Node.js (see issue 13724).\n warn(`RadialAxialShadingPattern.getPattern: \"${ex?.message}\".`);\n }\n } else {\n // Shading fills are applied relative to the current matrix which is also\n // how canvas gradients work, so there's no need to do anything special\n // here.\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n return pattern;\n }\n}\n\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n // Very basic Gouraud-shaded triangle rasterization algorithm.\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n let k;\n if (y < y1) {\n k = 0;\n } else {\n k = (y1 - y) / (y1 - y2);\n }\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n\n let k;\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n bytes[j++] = (car - (car - cbr) * k) | 0;\n bytes[j++] = (cag - (cag - cbg) * k) | 0;\n bytes[j++] = (cab - (cab - cbb) * k) | 0;\n bytes[j++] = 255;\n }\n }\n}\n\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n for (let j = 0; j < cols; j++, q++) {\n drawTriangle(\n data,\n context,\n ps[q],\n ps[q + 1],\n ps[q + verticesPerRow],\n cs[q],\n cs[q + 1],\n cs[q + verticesPerRow]\n );\n drawTriangle(\n data,\n context,\n ps[q + verticesPerRow + 1],\n ps[q + 1],\n ps[q + verticesPerRow],\n cs[q + verticesPerRow + 1],\n cs[q + 1],\n cs[q + verticesPerRow]\n );\n }\n }\n break;\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(\n data,\n context,\n ps[i],\n ps[i + 1],\n ps[i + 2],\n cs[i],\n cs[i + 1],\n cs[i + 2]\n );\n }\n break;\n default:\n throw new Error(\"illegal figure\");\n }\n}\n\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\n }\n\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n // we will increase scale on some weird factor to let antialiasing take\n // care of \"rough\" edges\n const EXPECTED_SCALE = 1.1;\n // MAX_PATTERN_SIZE is used to avoid OOM situation.\n const MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\n // We need to keep transparent border around our pattern for fill():\n // createPattern with 'no-repeat' will bleed edges across entire area.\n const BORDER_SIZE = 2;\n\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n\n const width = Math.min(\n Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)),\n MAX_PATTERN_SIZE\n );\n const height = Math.min(\n Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)),\n MAX_PATTERN_SIZE\n );\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY,\n };\n\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n\n const tmpCanvas = cachedCanvases.getCanvas(\n \"mesh\",\n paddedWidth,\n paddedHeight,\n false\n );\n const tmpCtx = tmpCanvas.context;\n\n const data = tmpCtx.createImageData(width, height);\n if (backgroundColor) {\n const bytes = data.data;\n for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY,\n };\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n if (pathType === PathType.SHADING) {\n scale = Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n // Obtain scale from matrix and current transformation matrix.\n scale = Util.singularValueDecompose2dScale(owner.baseTransform);\n if (this.matrix) {\n const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n // Rasterizing on the main thread since sending/queue large canvases\n // might cause OOM.\n const temporaryPatternCanvas = this._createMeshCanvas(\n scale,\n pathType === PathType.SHADING ? null : this._background,\n owner.cachedCanvases\n );\n\n if (pathType !== PathType.SHADING) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n if (this.matrix) {\n ctx.transform.apply(ctx, this.matrix);\n }\n }\n\n ctx.translate(\n temporaryPatternCanvas.offsetX,\n temporaryPatternCanvas.offsetY\n );\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n}\n\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n}\n\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\n\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2,\n};\n\nclass TilingPattern {\n // 10in @ 300dpi shall be enough.\n static get MAX_PATTERN_SIZE() {\n return shadow(this, \"MAX_PATTERN_SIZE\", 3000);\n }\n\n constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n\n createPatternCanvas(owner) {\n const operatorList = this.operatorList;\n const bbox = this.bbox;\n const xstep = this.xstep;\n const ystep = this.ystep;\n const paintType = this.paintType;\n const tilingType = this.tilingType;\n const color = this.color;\n const canvasGraphicsFactory = this.canvasGraphicsFactory;\n\n info(\"TilingType: \" + tilingType);\n\n // A tiling pattern as defined by PDF spec 8.7.2 is a cell whose size is\n // described by bbox, and may repeat regularly by shifting the cell by\n // xstep and ystep.\n // Because the HTML5 canvas API does not support pattern repetition with\n // gaps in between, we use the xstep/ystep instead of the bbox's size.\n //\n // This has the following consequences (similarly for ystep):\n //\n // - If xstep is the same as bbox, then there is no observable difference.\n //\n // - If xstep is larger than bbox, then the pattern canvas is partially\n // empty: the area bounded by bbox is painted, the outside area is void.\n //\n // - If xstep is smaller than bbox, then the pixels between xstep and the\n // bbox boundary will be missing. This is INCORRECT behavior.\n // \"Figures on adjacent tiles should not overlap\" (PDF spec 8.7.3.1),\n // but overlapping cells without common pixels are still valid.\n // TODO: Fix the implementation, to allow this scenario to be painted\n // correctly.\n\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n\n // Obtain scale from matrix and current transformation matrix.\n const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n const curMatrixScale = Util.singularValueDecompose2dScale(\n this.baseTransform\n );\n const combinedScale = [\n matrixScale[0] * curMatrixScale[0],\n matrixScale[1] * curMatrixScale[1],\n ];\n\n // Use width and height values that are as close as possible to the end\n // result when the pattern is used. Too low value makes the pattern look\n // blurry. Too large value makes it look too crispy.\n const dimx = this.getSizeAndScale(\n xstep,\n this.ctx.canvas.width,\n combinedScale[0]\n );\n const dimy = this.getSizeAndScale(\n ystep,\n this.ctx.canvas.height,\n combinedScale[1]\n );\n\n const tmpCanvas = owner.cachedCanvases.getCanvas(\n \"pattern\",\n dimx.size,\n dimy.size,\n true\n );\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n\n let adjustedX0 = x0;\n let adjustedY0 = y0;\n let adjustedX1 = x1;\n let adjustedY1 = y1;\n // Some bounding boxes have negative x0/y0 cordinates which will cause the\n // some of the drawing to be off of the canvas. To avoid this shift the\n // bounding box over.\n if (x0 < 0) {\n adjustedX0 = 0;\n adjustedX1 += Math.abs(x0);\n }\n if (y0 < 0) {\n adjustedY0 = 0;\n adjustedY1 += Math.abs(y0);\n }\n tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n\n this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n\n graphics.baseTransform = graphics.ctx.mozCurrentTransform.slice();\n\n graphics.executeOperatorList(operatorList);\n\n graphics.endDrawing();\n\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: adjustedX0,\n offsetY: adjustedY0,\n };\n }\n\n getSizeAndScale(step, realOutputSize, scale) {\n // xstep / ystep may be negative -- normalize.\n step = Math.abs(step);\n // MAX_PATTERN_SIZE is used to avoid OOM situation.\n // Use the destination canvas's size if it is bigger than the hard-coded\n // limit of MAX_PATTERN_SIZE to avoid clipping patterns that cover the\n // whole canvas.\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n return { scale, size };\n }\n\n clipBbox(graphics, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.clip();\n graphics.endPath();\n }\n\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n switch (paintType) {\n case PaintType.COLORED:\n const ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n case PaintType.UNCOLORED:\n const cssColor = Util.makeHexColor(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n // Set color needed by image masks (fixes issues 3226 and 8741).\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n // PDF spec 8.7.2 NOTE 1: pattern's matrix is relative to initial matrix.\n let matrix = inverse;\n if (pathType !== PathType.SHADING) {\n matrix = Util.transform(matrix, owner.baseTransform);\n if (this.matrix) {\n matrix = Util.transform(matrix, this.matrix);\n }\n }\n\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n\n let domMatrix = new DOMMatrix(matrix);\n // Rescale and so that the ctx.createPattern call generates a pattern with\n // the desired size.\n domMatrix = domMatrix.translate(\n temporaryPatternCanvas.offsetX,\n temporaryPatternCanvas.offsetY\n );\n domMatrix = domMatrix.scale(\n 1 / temporaryPatternCanvas.scaleX,\n 1 / temporaryPatternCanvas.scaleY\n );\n\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n // Avoid rendering breaking completely in Firefox 78 ESR,\n // and in Node.js (see issue 13724).\n warn(`TilingPattern.getPattern: \"${ex?.message}\".`);\n }\n return pattern;\n }\n}\n\nexport { getShadingPattern, PathType, TilingPattern };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @typedef {Object} GlobalWorkerOptionsType\n * @property {Worker | null} workerPort - Defines global port for worker\n * process. Overrides the `workerSrc` option.\n * @property {string} workerSrc - A string containing the path and filename\n * of the worker file.\n *\n * NOTE: The `workerSrc` option should always be set, in order to prevent any\n * issues when using the PDF.js library.\n */\n\n/** @type {GlobalWorkerOptionsType} */\nconst GlobalWorkerOptions = Object.create(null);\n\nGlobalWorkerOptions.workerPort =\n GlobalWorkerOptions.workerPort === undefined\n ? null\n : GlobalWorkerOptions.workerPort;\n\nGlobalWorkerOptions.workerSrc =\n GlobalWorkerOptions.workerSrc === undefined\n ? \"\"\n : GlobalWorkerOptions.workerSrc;\n\nexport { GlobalWorkerOptions };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AbortException,\n assert,\n createPromiseCapability,\n MissingPDFException,\n PasswordException,\n UnexpectedResponseException,\n UnknownErrorException,\n warn,\n} from \"./util.js\";\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2,\n};\n\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8,\n};\n\nfunction wrapReason(reason) {\n if (\n !(\n reason instanceof Error ||\n (typeof reason === \"object\" && reason !== null)\n )\n ) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n throw new Error(\n 'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n );\n }\n warn('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n return reason;\n }\n switch (reason.name) {\n case \"AbortException\":\n return new AbortException(reason.message);\n case \"MissingPDFException\":\n return new MissingPDFException(reason.message);\n case \"PasswordException\":\n return new PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new UnknownErrorException(reason.message, reason.details);\n default:\n return new UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = event => {\n const data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this._processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(\n function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason),\n });\n }\n );\n return;\n }\n if (data.streamId) {\n this._createStreamSink(data);\n return;\n }\n action(data.data);\n };\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof handler === \"function\",\n 'MessageHandler.on: Expected \"handler\" to be a function.'\n );\n }\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n */\n send(actionName, data, transfers) {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data,\n },\n transfers\n );\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expects that the other side will callback with the response.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {Promise} Promise to be resolved with response data.\n */\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = createPromiseCapability();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data,\n },\n transfers\n );\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expect that the other side will callback to signal 'start_complete'.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Object} queueingStrategy - Strategy to signal backpressure based on\n * internal queue.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {ReadableStream} ReadableStream to read data in chunks.\n */\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n\n return new ReadableStream(\n {\n start: controller => {\n const startCapability = createPromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false,\n };\n comObj.postMessage(\n {\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize,\n },\n transfers\n );\n // Return Promise for Async process, to signal success/failure.\n return startCapability.promise;\n },\n\n pull: controller => {\n const pullCapability = createPromiseCapability();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize,\n });\n // Returning Promise will not call \"pull\"\n // again until current pull is resolved.\n return pullCapability.promise;\n },\n\n cancel: reason => {\n assert(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = createPromiseCapability();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason),\n });\n // Return Promise to signal success or failure.\n return cancelCapability.promise;\n },\n },\n queueingStrategy\n );\n }\n\n /**\n * @private\n */\n _createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n // Enqueue decreases the desiredSize property of sink,\n // so when it changes from positive to negative,\n // set ready as unresolved promise.\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = createPromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage(\n {\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk,\n },\n transfers\n );\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId,\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n assert(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason),\n });\n },\n\n sinkCapability: createPromiseCapability(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null,\n };\n\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n }\n\n /**\n * @private\n */\n _processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n // Ignore any pull after close is called.\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n break;\n }\n // Pull increases the desiredSize property of sink, so when it changes\n // from negative to positive, set ready property as resolved promise.\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n // Reset desiredSize property of sink on every pull.\n streamSink.desiredSize = data.desiredSize;\n\n new Promise(function (resolve) {\n resolve(streamSink.onPull && streamSink.onPull());\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n break;\n case StreamKind.ENQUEUE:\n assert(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n assert(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n assert(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n\n new Promise(function (resolve) {\n resolve(\n streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason))\n );\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n /**\n * @private\n */\n async _deleteStreamController(streamController, streamId) {\n // Delete the `streamController` only when the start, pull, and cancel\n // capabilities have settled, to prevent `TypeError`s.\n await Promise.allSettled([\n streamController.startCall && streamController.startCall.promise,\n streamController.pullCall && streamController.pullCall.promise,\n streamController.cancelCall && streamController.cancelCall.promise,\n ]);\n delete this.streamControllers[streamId];\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n}\n\nexport { MessageHandler };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { objectFromMap } from \"../shared/util.js\";\n\nclass Metadata {\n #metadataMap;\n\n #data;\n\n constructor({ parsedData, rawData }) {\n this.#metadataMap = parsedData;\n this.#data = rawData;\n }\n\n getRaw() {\n return this.#data;\n }\n\n get(name) {\n return this.#metadataMap.get(name) ?? null;\n }\n\n getAll() {\n return objectFromMap(this.#metadataMap);\n }\n\n has(name) {\n return this.#metadataMap.has(name);\n }\n}\n\nexport { Metadata };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { objectFromMap, warn } from \"../shared/util.js\";\n\nclass OptionalContentGroup {\n constructor(name, intent) {\n this.visible = true;\n this.name = name;\n this.intent = intent;\n }\n}\n\nclass OptionalContentConfig {\n constructor(data) {\n this.name = null;\n this.creator = null;\n this._order = null;\n this._groups = new Map();\n\n if (data === null) {\n return;\n }\n this.name = data.name;\n this.creator = data.creator;\n this._order = data.order;\n for (const group of data.groups) {\n this._groups.set(\n group.id,\n new OptionalContentGroup(group.name, group.intent)\n );\n }\n\n if (data.baseState === \"OFF\") {\n for (const group of this._groups) {\n group.visible = false;\n }\n }\n\n for (const on of data.on) {\n this._groups.get(on).visible = true;\n }\n\n for (const off of data.off) {\n this._groups.get(off).visible = false;\n }\n }\n\n _evaluateVisibilityExpression(array) {\n const length = array.length;\n if (length < 2) {\n return true;\n }\n const operator = array[0];\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n if (Array.isArray(element)) {\n state = this._evaluateVisibilityExpression(element);\n } else if (this._groups.has(element)) {\n state = this._groups.get(element).visible;\n } else {\n warn(`Optional content group not found: ${element}`);\n return true;\n }\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n break;\n case \"Or\":\n if (state) {\n return true;\n }\n break;\n case \"Not\":\n return !state;\n default:\n return true;\n }\n }\n return operator === \"And\";\n }\n\n isVisible(group) {\n if (this._groups.size === 0) {\n return true;\n }\n if (!group) {\n warn(\"Optional content group not defined.\");\n return true;\n }\n if (group.type === \"OCG\") {\n if (!this._groups.has(group.id)) {\n warn(`Optional content group not found: ${group.id}`);\n return true;\n }\n return this._groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n // Per the spec, the expression should be preferred if available.\n if (group.expression) {\n return this._evaluateVisibilityExpression(group.expression);\n }\n if (!group.policy || group.policy === \"AnyOn\") {\n // Default\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (this._groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this._groups.get(id).visible) {\n return false;\n }\n }\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this._groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (this._groups.get(id).visible) {\n return false;\n }\n }\n return true;\n }\n warn(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n warn(`Unknown group type ${group.type}.`);\n return true;\n }\n\n setVisibility(id, visible = true) {\n if (!this._groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return;\n }\n this._groups.get(id).visible = !!visible;\n }\n\n getOrder() {\n if (!this._groups.size) {\n return null;\n }\n if (this._order) {\n return this._order.slice();\n }\n return Array.from(this._groups.keys());\n }\n\n getGroups() {\n return this._groups.size > 0 ? objectFromMap(this._groups) : null;\n }\n\n getGroup(id) {\n return this._groups.get(id) || null;\n }\n}\n\nexport { OptionalContentConfig };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, createPromiseCapability } from \"../shared/util.js\";\nimport { isPdfFile } from \"./display_utils.js\";\n\n/** @implements {IPDFStream} */\nclass PDFDataTransportStream {\n constructor(params, pdfDataRangeTransport) {\n assert(\n pdfDataRangeTransport,\n 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.'\n );\n\n this._queuedChunks = [];\n this._progressiveDone = params.progressiveDone || false;\n this._contentDispositionFilename =\n params.contentDispositionFilename || null;\n\n const initialData = params.initialData;\n if (initialData?.length > 0) {\n const buffer = new Uint8Array(initialData).buffer;\n this._queuedChunks.push(buffer);\n }\n\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !params.disableStream;\n this._isRangeSupported = !params.disableRange;\n this._contentLength = params.length;\n\n this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({ begin, chunk });\n });\n\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({ loaded, total });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({ chunk });\n });\n\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n\n _onReceiveData(args) {\n const buffer = new Uint8Array(args.chunk).buffer;\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n assert(\n found,\n \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\"\n );\n }\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n _onProgress(evt) {\n if (evt.total === undefined) {\n // Reporting to first range reader, if it exists.\n const firstReader = this._rangeReaders[0];\n if (firstReader?.onProgress) {\n firstReader.onProgress({ loaded: evt.loaded });\n }\n } else {\n const fullReader = this._fullRequestReader;\n if (fullReader?.onProgress) {\n fullReader.onProgress({ loaded: evt.loaded, total: evt.total });\n }\n }\n }\n\n _onProgressiveDone() {\n if (this._fullRequestReader) {\n this._fullRequestReader.progressiveDone();\n }\n this._progressiveDone = true;\n }\n\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n assert(\n !this._fullRequestReader,\n \"PDFDataTransportStream.getFullReader can only be called once.\"\n );\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(\n this,\n queuedChunks,\n this._progressiveDone,\n this._contentDispositionFilename\n );\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n this._pdfDataRangeTransport.abort();\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFDataTransportStreamReader {\n constructor(\n stream,\n queuedChunks,\n progressiveDone = false,\n contentDispositionFilename = null\n ) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = isPdfFile(contentDispositionFilename)\n ? contentDispositionFilename\n : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return; // Ignore new data.\n }\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({ value: chunk, done: false });\n } else {\n this._queuedChunks.push(chunk);\n }\n this._loaded += chunk.byteLength;\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n\n get contentLength() {\n return this._stream._contentLength;\n }\n\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n return { value: chunk, done: false };\n }\n if (this._done) {\n return { value: undefined, done: true };\n }\n const requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n }\n\n progressiveDone() {\n if (this._done) {\n return;\n }\n this._done = true;\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return; // ignore new data\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n requestsCapability.resolve({ value: chunk, done: false });\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return { value: chunk, done: false };\n }\n if (this._done) {\n return { value: undefined, done: true };\n }\n const requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n this._stream._removeRangeReader(this);\n }\n}\n\nexport { PDFDataTransportStream };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nclass XfaText {\n /**\n * Walk an XFA tree and create an array of text nodes that is compatible\n * with a regular PDFs TextContent. Currently, only TextItem.str is supported,\n * all other fields and styles haven't been implemented.\n *\n * @param {Object} xfa - An XFA fake DOM object.\n *\n * @returns {TextContent}\n */\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null),\n };\n function walk(node) {\n if (!node) {\n return;\n }\n let str = null;\n const name = node.name;\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node?.attributes?.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n if (str !== null) {\n items.push({\n str,\n });\n }\n if (!node.children) {\n return;\n }\n for (const child of node.children) {\n walk(child);\n }\n }\n walk(xfa);\n return output;\n }\n\n /**\n * @param {string} name - DOM node name. (lower case)\n *\n * @returns {boolean} true if the DOM node should have a corresponding text\n * node.\n */\n static shouldBuildText(name) {\n return !(\n name === \"textarea\" ||\n name === \"input\" ||\n name === \"option\" ||\n name === \"select\"\n );\n }\n}\n\nexport { XfaText };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./api\").PDFPageProxy} PDFPageProxy */\n/** @typedef {import(\"./display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"./interfaces\").IDownloadManager} IDownloadManager */\n/** @typedef {import(\"../../web/interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport {\n AnnotationBorderStyleType,\n AnnotationType,\n assert,\n shadow,\n stringToPDFString,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n DOMSVGFactory,\n getFilenameFromUrl,\n PDFDateString,\n} from \"./display_utils.js\";\nimport { AnnotationStorage } from \"./annotation_storage.js\";\nimport { ColorConverters } from \"../shared/scripting_utils.js\";\nimport { XfaLayer } from \"./xfa_layer.js\";\n\nconst DEFAULT_TAB_INDEX = 1000;\nconst GetElementsByNameSet = new WeakSet();\n\n/**\n * @typedef {Object} AnnotationElementParameters\n * @property {Object} data\n * @property {HTMLDivElement} layer\n * @property {PDFPageProxy} page\n * @property {PageViewport} viewport\n * @property {IPDFLinkService} linkService\n * @property {IDownloadManager} downloadManager\n * @property {AnnotationStorage} [annotationStorage]\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n * for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {Object} svgFactory\n * @property {boolean} [enableScripting]\n * @property {boolean} [hasJSActions]\n * @property {Object} [fieldObjects]\n * @property {Object} [mouseState]\n */\n\nclass AnnotationElementFactory {\n /**\n * @param {AnnotationElementParameters} parameters\n * @returns {AnnotationElement}\n */\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n return new PushButtonWidgetAnnotationElement(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n\n case AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n\n case AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n\n case AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n}\n\nclass AnnotationElement {\n constructor(\n parameters,\n {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false,\n } = {}\n ) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this._mouseState = parameters.mouseState;\n\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n if (createQuadrilaterals) {\n this.quadrilaterals = this._createQuadrilaterals(ignoreBorder);\n }\n }\n\n /**\n * Create an empty container for the annotation's HTML element.\n *\n * @private\n * @param {boolean} ignoreBorder\n * @memberof AnnotationElement\n * @returns {HTMLSectionElement}\n */\n _createContainer(ignoreBorder = false) {\n const data = this.data,\n page = this.page,\n viewport = this.viewport;\n const container = document.createElement(\"section\");\n let width = data.rect[2] - data.rect[0];\n let height = data.rect[3] - data.rect[1];\n\n container.setAttribute(\"data-annotation-id\", data.id);\n\n // Do *not* modify `data.rect`, since that will corrupt the annotation\n // position on subsequent calls to `_createContainer` (see issue 6804).\n const rect = Util.normalizeRect([\n data.rect[0],\n page.view[3] - data.rect[1] + page.view[1],\n data.rect[2],\n page.view[3] - data.rect[3] + page.view[1],\n ]);\n\n if (data.hasOwnCanvas) {\n const transform = viewport.transform.slice();\n const [scaleX, scaleY] = Util.singularValueDecompose2dScale(transform);\n width = Math.ceil(width * scaleX);\n height = Math.ceil(height * scaleY);\n rect[0] *= scaleX;\n rect[1] *= scaleY;\n // Reset the scale part of the transform matrix (which must be diagonal\n // or anti-diagonal) in order to avoid to rescale the canvas.\n // The canvas for the annotation is correctly scaled when it is drawn\n // (see `beginAnnotation` in canvas.js).\n for (let i = 0; i < 4; i++) {\n transform[i] = Math.sign(transform[i]);\n }\n container.style.transform = `matrix(${transform.join(\",\")})`;\n } else {\n container.style.transform = `matrix(${viewport.transform.join(\",\")})`;\n }\n\n container.style.transformOrigin = `${-rect[0]}px ${-rect[1]}px`;\n\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n if (data.borderStyle.style !== AnnotationBorderStyleType.UNDERLINE) {\n // Underline styles only have a bottom border, so we do not need\n // to adjust for all borders. This yields a similar result as\n // Adobe Acrobat/Reader.\n width -= 2 * data.borderStyle.width;\n height -= 2 * data.borderStyle.width;\n }\n\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `${horizontalRadius}px / ${verticalRadius}px`;\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n\n case AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n\n case AnnotationBorderStyleType.BEVELED:\n warn(\"Unimplemented border style: beveled\");\n break;\n\n case AnnotationBorderStyleType.INSET:\n warn(\"Unimplemented border style: inset\");\n break;\n\n case AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n\n default:\n break;\n }\n\n const borderColor = data.borderColor || data.color || null;\n if (borderColor) {\n container.style.borderColor = Util.makeHexColor(\n data.color[0] | 0,\n data.color[1] | 0,\n data.color[2] | 0\n );\n } else {\n // Transparent (invisible) border, so do not draw it at all.\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = `${rect[0]}px`;\n container.style.top = `${rect[1]}px`;\n\n if (data.hasOwnCanvas) {\n container.style.width = container.style.height = \"auto\";\n } else {\n container.style.width = `${width}px`;\n container.style.height = `${height}px`;\n }\n return container;\n }\n\n /**\n * Create quadrilaterals from the annotation's quadpoints.\n *\n * @private\n * @param {boolean} ignoreBorder\n * @memberof AnnotationElement\n * @returns {Array<HTMLSectionElement>}\n */\n _createQuadrilaterals(ignoreBorder = false) {\n if (!this.data.quadPoints) {\n return null;\n }\n\n const quadrilaterals = [];\n const savedRect = this.data.rect;\n for (const quadPoint of this.data.quadPoints) {\n this.data.rect = [\n quadPoint[2].x,\n quadPoint[2].y,\n quadPoint[1].x,\n quadPoint[1].y,\n ];\n quadrilaterals.push(this._createContainer(ignoreBorder));\n }\n this.data.rect = savedRect;\n return quadrilaterals;\n }\n\n /**\n * Create a popup for the annotation's HTML element. This is used for\n * annotations that do not have a Popup entry in the dictionary, but\n * are of a type that works with popups (such as Highlight annotations).\n *\n * @private\n * @param {HTMLDivElement|HTMLImageElement|null} trigger\n * @param {Object} data\n * @memberof AnnotationElement\n */\n _createPopup(trigger, data) {\n let container = this.container;\n if (this.quadrilaterals) {\n trigger = trigger || this.quadrilaterals;\n container = this.quadrilaterals[0];\n }\n\n // If no trigger element is specified, create it.\n if (!trigger) {\n trigger = document.createElement(\"div\");\n trigger.style.height = container.style.height;\n trigger.style.width = container.style.width;\n container.appendChild(trigger);\n }\n\n const popupElement = new PopupElement({\n container,\n trigger,\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n hideWrapper: true,\n });\n const popup = popupElement.render();\n\n // Position the popup next to the annotation's container.\n popup.style.left = container.style.width;\n\n container.appendChild(popup);\n }\n\n /**\n * Render the quadrilaterals of the annotation.\n *\n * @private\n * @param {string} className\n * @memberof AnnotationElement\n * @returns {Array<HTMLSectionElement>}\n */\n _renderQuadrilaterals(className) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(this.quadrilaterals, \"Missing quadrilaterals during rendering\");\n }\n\n for (const quadrilateral of this.quadrilaterals) {\n quadrilateral.className = className;\n }\n return this.quadrilaterals;\n }\n\n /**\n * Render the annotation's HTML element(s).\n *\n * @public\n * @memberof AnnotationElement\n * @returns {HTMLSectionElement|Array<HTMLSectionElement>}\n */\n render() {\n unreachable(\"Abstract method `AnnotationElement.render` called\");\n }\n\n /**\n * @private\n * @returns {Array}\n */\n _getElementsByName(name, skipId = null) {\n const fields = [];\n\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n if (fieldObj) {\n for (const { page, id, exportValues } of fieldObj) {\n if (page === -1) {\n continue;\n }\n if (id === skipId) {\n continue;\n }\n const exportValue =\n typeof exportValues === \"string\" ? exportValues : null;\n\n const domElement = document.getElementById(id);\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n warn(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n fields.push({ id, exportValue, domElement });\n }\n }\n return fields;\n }\n // Fallback to a regular DOM lookup, to ensure that the standalone\n // viewer components won't break.\n for (const domElement of document.getElementsByName(name)) {\n const { id, exportValue } = domElement;\n if (id === skipId) {\n continue;\n }\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n fields.push({ id, exportValue, domElement });\n }\n return fields;\n }\n\n static get platform() {\n const platform = typeof navigator !== \"undefined\" ? navigator.platform : \"\";\n\n return shadow(this, \"platform\", {\n isWin: platform.includes(\"Win\"),\n isMac: platform.includes(\"Mac\"),\n });\n }\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters, options = null) {\n const isRenderable = !!(\n parameters.data.url ||\n parameters.data.dest ||\n parameters.data.action ||\n parameters.data.isTooltipOnly ||\n parameters.data.resetForm ||\n (parameters.data.actions &&\n (parameters.data.actions.Action ||\n parameters.data.actions[\"Mouse Up\"] ||\n parameters.data.actions[\"Mouse Down\"]))\n );\n super(parameters, {\n isRenderable,\n ignoreBorder: !!options?.ignoreBorder,\n createQuadrilaterals: true,\n });\n }\n\n render() {\n const { data, linkService } = this;\n const link = document.createElement(\"a\");\n\n if (data.url) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n !linkService.addLinkAttributes\n ) {\n warn(\n \"LinkAnnotationElement.render - missing `addLinkAttributes`-method on the `linkService`-instance.\"\n );\n }\n linkService.addLinkAttributes?.(link, data.url, data.newWindow);\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n } else {\n let hasClickAction = false;\n if (\n data.actions &&\n (data.actions.Action ||\n data.actions[\"Mouse Up\"] ||\n data.actions[\"Mouse Down\"]) &&\n this.enableScripting &&\n this.hasJSActions\n ) {\n hasClickAction = true;\n this._bindJSAction(link, data);\n }\n\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n } else if (!hasClickAction) {\n this._bindLink(link, \"\");\n }\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"linkAnnotation\").map(\n (quadrilateral, index) => {\n const linkElement = index === 0 ? link : link.cloneNode();\n quadrilateral.appendChild(linkElement);\n return quadrilateral;\n }\n );\n }\n\n this.container.className = \"linkAnnotation\";\n this.container.appendChild(link);\n return this.container;\n }\n\n /**\n * Bind internal links to the link element.\n *\n * @private\n * @param {Object} link\n * @param {Object} destination\n * @memberof LinkAnnotationElement\n */\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n return false;\n };\n if (destination || destination === /* isTooltipOnly = */ \"\") {\n link.className = \"internalLink\";\n }\n }\n\n /**\n * Bind named actions to the link element.\n *\n * @private\n * @param {Object} link\n * @param {Object} action\n * @memberof LinkAnnotationElement\n */\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n link.className = \"internalLink\";\n }\n\n /**\n * Bind JS actions to the link element.\n *\n * @private\n * @param {Object} link\n * @param {Object} data\n * @memberof LinkAnnotationElement\n */\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([\n [\"Action\", \"onclick\"],\n [\"Mouse Up\", \"onmouseup\"],\n [\"Mouse Down\", \"onmousedown\"],\n ]);\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n if (!jsName) {\n continue;\n }\n link[jsName] = () => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name,\n },\n });\n return false;\n };\n }\n\n if (!link.onclick) {\n link.onclick = () => false;\n }\n link.className = \"internalLink\";\n }\n\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n link.className = \"internalLink\";\n\n if (!this._fieldObjects) {\n warn(\n `_bindResetFormAction - \"resetForm\" action not supported, ` +\n \"ensure that the `fieldObjects` parameter is provided.\"\n );\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n return;\n }\n\n link.onclick = () => {\n if (otherClickAction) {\n otherClickAction();\n }\n\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include,\n } = resetForm;\n\n const allFields = [];\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n for (const { id } of fields) {\n fieldIds.add(id);\n }\n }\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n\n const storage = this.annotationStorage;\n const allIds = [];\n for (const field of allFields) {\n const { id } = field;\n allIds.push(id);\n switch (field.type) {\n case \"text\": {\n const value = field.defaultValue || \"\";\n storage.setValue(id, { value, valueAsString: value });\n break;\n }\n case \"checkbox\":\n case \"radiobutton\": {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, { value });\n break;\n }\n case \"combobox\":\n case \"listbox\": {\n const value = field.defaultValue || \"\";\n storage.setValue(id, { value });\n break;\n }\n default:\n continue;\n }\n const domElement = document.getElementById(id);\n if (!domElement || !GetElementsByNameSet.has(domElement)) {\n continue;\n }\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n\n if (this.enableScripting) {\n // Update the values in the sandbox.\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\",\n },\n });\n }\n\n return false;\n };\n }\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable });\n }\n\n render() {\n this.container.className = \"textAnnotation\";\n\n const image = document.createElement(\"img\");\n image.style.height = this.container.style.height;\n image.style.width = this.container.style.width;\n image.src =\n this.imageResourcesPath +\n \"annotation-\" +\n this.data.name.toLowerCase() +\n \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({ type: this.data.name });\n\n if (!this.data.hasPopup) {\n this._createPopup(image, this.data);\n }\n\n this.container.appendChild(image);\n return this.container;\n }\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n // Show only the container for unsupported field types.\n if (this.data.alternativeText) {\n this.container.title = this.data.alternativeText;\n }\n\n return this.container;\n }\n\n _getKeyModifier(event) {\n const { isWin, isMac } = AnnotationElement.platform;\n return (isWin && event.ctrlKey) || (isMac && event.metaKey);\n }\n\n _setEventListener(element, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n // Mouse events\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event),\n },\n });\n });\n } else {\n // Non mouse event\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: event.target.checked,\n },\n });\n });\n }\n }\n\n _setEventListeners(element, names, getter) {\n for (const [baseName, eventName] of names) {\n if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n this._setEventListener(element, baseName, eventName, getter);\n }\n }\n }\n\n _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor =\n color === null\n ? \"transparent\"\n : Util.makeHexColor(color[0], color[1], color[2]);\n }\n\n _dispatchEventFromSandbox(actions, jsEvent) {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n event.target.style[styleName] = ColorConverters[`${color[0]}_HTML`](\n color.slice(1)\n );\n };\n\n const commonActions = {\n display: event => {\n const hidden = event.detail.display % 2 === 1;\n event.target.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden,\n print: event.detail.display === 0 || event.detail.display === 3,\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n print: event.detail.print,\n });\n },\n hidden: event => {\n event.target.style.visibility = event.detail.hidden\n ? \"hidden\"\n : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden: event.detail.hidden,\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({ preventScroll: false }), 0);\n },\n userName: event => {\n // tooltip\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n if (event.detail.readonly) {\n event.target.setAttribute(\"readonly\", \"\");\n } else {\n event.target.removeAttribute(\"readonly\");\n }\n },\n required: event => {\n if (event.detail.required) {\n event.target.setAttribute(\"required\", \"\");\n } else {\n event.target.removeAttribute(\"required\");\n }\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n },\n };\n\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n if (action) {\n action(jsEvent);\n }\n }\n }\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable =\n parameters.renderForms ||\n (!parameters.data.hasAppearance && !!parameters.data.fieldValue);\n super(parameters, { isRenderable });\n }\n\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n for (const element of this._getElementsByName(\n base.name,\n /* skipId = */ base.id\n )) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n storage.setValue(element.id, { [keyInStorage]: value });\n }\n }\n\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n\n this.container.className = \"textWidgetAnnotation\";\n\n let element = null;\n if (this.renderForms) {\n // NOTE: We cannot set the values using `element.value` below, since it\n // prevents the AnnotationLayer rasterizer in `test/driver.js`\n // from parsing the elements correctly for the reference tests.\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue,\n valueAsString: this.data.fieldValue,\n });\n const textContent = storedData.valueAsString || storedData.value || \"\";\n const elementData = {\n userValue: null,\n formattedValue: null,\n beforeInputSelectionRange: null,\n beforeInputValue: null,\n };\n\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = textContent;\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", textContent);\n }\n GetElementsByNameSet.add(element);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n\n elementData.userValue = textContent;\n element.setAttribute(\"id\", id);\n\n element.addEventListener(\"input\", event => {\n storage.setValue(id, { value: event.target.value });\n this.setPropertyOnSiblings(\n element,\n \"value\",\n event.target.value,\n \"value\"\n );\n });\n\n element.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue || \"\";\n element.value = elementData.userValue = defaultValue;\n delete elementData.formattedValue;\n });\n\n let blurListener = event => {\n if (elementData.formattedValue) {\n event.target.value = elementData.formattedValue;\n }\n // Reset the cursor position to the start of the field (issue 12359).\n event.target.scrollLeft = 0;\n elementData.beforeInputSelectionRange = null;\n };\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"focus\", event => {\n if (elementData.userValue) {\n event.target.value = elementData.userValue;\n }\n });\n\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value || \"\";\n storage.setValue(id, { value: elementData.userValue.toString() });\n if (!elementData.formattedValue) {\n event.target.value = elementData.userValue;\n }\n },\n valueAsString(event) {\n elementData.formattedValue = event.detail.valueAsString || \"\";\n if (event.target !== document.activeElement) {\n // Input hasn't the focus so display formatted string\n event.target.value = elementData.formattedValue;\n }\n storage.setValue(id, {\n formattedValue: elementData.formattedValue,\n });\n },\n selRange(event) {\n const [selStart, selEnd] = event.detail.selRange;\n if (selStart >= 0 && selEnd < event.target.value.length) {\n event.target.setSelectionRange(selStart, selEnd);\n }\n },\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n // Even if the field hasn't any actions\n // leaving it can still trigger some actions with Calculate\n element.addEventListener(\"keydown\", event => {\n elementData.beforeInputValue = event.target.value;\n // if the key is one of Escape, Enter or Tab\n // then the data are committed\n let commitKey = -1;\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\") {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n commitKey = 3;\n }\n if (commitKey === -1) {\n return;\n }\n // Save the entered value\n elementData.userValue = event.target.value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: event.target.value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd,\n },\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n if (this._mouseState.isDown) {\n // Focus out using the mouse: data are committed\n elementData.userValue = event.target.value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: event.target.value,\n willCommit: true,\n commitKey: 1,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd,\n },\n });\n }\n _blurListener(event);\n });\n element.addEventListener(\"mousedown\", event => {\n elementData.beforeInputValue = event.target.value;\n elementData.beforeInputSelectionRange = null;\n });\n element.addEventListener(\"keyup\", event => {\n // keyup is triggered after input\n if (event.target.selectionStart === event.target.selectionEnd) {\n elementData.beforeInputSelectionRange = null;\n }\n });\n element.addEventListener(\"select\", event => {\n elementData.beforeInputSelectionRange = [\n event.target.selectionStart,\n event.target.selectionEnd,\n ];\n });\n\n if (this.data.actions?.Keystroke) {\n // We should use beforeinput but this\n // event isn't available in Firefox\n element.addEventListener(\"input\", event => {\n let selStart = -1;\n let selEnd = -1;\n if (elementData.beforeInputSelectionRange) {\n [selStart, selEnd] = elementData.beforeInputSelectionRange;\n }\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: elementData.beforeInputValue,\n change: event.data,\n willCommit: false,\n selStart,\n selEnd,\n },\n });\n });\n }\n\n this._setEventListeners(\n element,\n [\n [\"focus\", \"Focus\"],\n [\"blur\", \"Blur\"],\n [\"mousedown\", \"Mouse Down\"],\n [\"mouseenter\", \"Mouse Enter\"],\n [\"mouseleave\", \"Mouse Exit\"],\n [\"mouseup\", \"Mouse Up\"],\n ],\n event => event.target.value\n );\n }\n\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / this.data.maxLen;\n\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n }\n\n this._setTextStyle(element);\n this._setBackgroundColor(element);\n\n this.container.appendChild(element);\n return this.container;\n }\n\n /**\n * Apply text styles to the text in the element.\n *\n * @private\n * @param {HTMLDivElement} element\n * @memberof TextWidgetAnnotationElement\n */\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const { fontSize, fontColor } = this.data.defaultAppearanceData;\n const style = element.style;\n\n // TODO: If the font-size is zero, calculate it based on the height and\n // width of the element.\n // Not setting `style.fontSize` will use the default font-size for now.\n if (fontSize) {\n style.fontSize = `${fontSize}px`;\n }\n\n style.color = Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, { isRenderable: parameters.renderForms });\n }\n\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue,\n }).value;\n if (typeof value === \"string\") {\n // The value has been changed through js and set in annotationStorage.\n value = value !== \"Off\";\n storage.setValue(id, { value });\n }\n\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.disabled = data.readOnly;\n element.type = \"checkbox\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.setAttribute(\"id\", id);\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n\n element.addEventListener(\"change\", event => {\n const { name, checked } = event.target;\n for (const checkbox of this._getElementsByName(name, /* skipId = */ id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n storage.setValue(checkbox.id, { value: curChecked });\n }\n storage.setValue(id, { value: checked });\n });\n\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, { value: event.target.checked });\n },\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(\n element,\n [\n [\"change\", \"Validate\"],\n [\"change\", \"Action\"],\n [\"focus\", \"Focus\"],\n [\"blur\", \"Blur\"],\n [\"mousedown\", \"Mouse Down\"],\n [\"mouseenter\", \"Mouse Enter\"],\n [\"mouseleave\", \"Mouse Exit\"],\n [\"mouseup\", \"Mouse Up\"],\n ],\n event => event.target.checked\n );\n }\n\n this._setBackgroundColor(element);\n\n this.container.appendChild(element);\n return this.container;\n }\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, { isRenderable: parameters.renderForms });\n }\n\n render() {\n this.container.className = \"buttonWidgetAnnotation radioButton\";\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue,\n }).value;\n if (typeof value === \"string\") {\n // The value has been changed through js and set in annotationStorage.\n value = value !== data.buttonValue;\n storage.setValue(id, { value });\n }\n\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.disabled = data.readOnly;\n element.type = \"radio\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.setAttribute(\"id\", id);\n element.tabIndex = DEFAULT_TAB_INDEX;\n\n element.addEventListener(\"change\", event => {\n const { name, checked } = event.target;\n for (const radio of this._getElementsByName(name, /* skipId = */ id)) {\n storage.setValue(radio.id, { value: false });\n }\n storage.setValue(id, { value: checked });\n });\n\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked =\n defaultValue !== null &&\n defaultValue !== undefined &&\n defaultValue === data.buttonValue;\n });\n\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value: event => {\n const checked = pdfButtonValue === event.detail.value;\n for (const radio of this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n storage.setValue(radio.id, { value: curChecked });\n }\n },\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(\n element,\n [\n [\"change\", \"Validate\"],\n [\"change\", \"Action\"],\n [\"focus\", \"Focus\"],\n [\"blur\", \"Blur\"],\n [\"mousedown\", \"Mouse Down\"],\n [\"mouseenter\", \"Mouse Enter\"],\n [\"mouseleave\", \"Mouse Exit\"],\n [\"mouseup\", \"Mouse Up\"],\n ],\n event => event.target.checked\n );\n }\n\n this._setBackgroundColor(element);\n\n this.container.appendChild(element);\n return this.container;\n }\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, { ignoreBorder: parameters.data.hasAppearance });\n }\n\n render() {\n // The rendering and functionality of a push button widget annotation is\n // equal to that of a link annotation, but may have more functionality, such\n // as performing actions on form fields (resetting, submitting, et cetera).\n const container = super.render();\n container.className = \"buttonWidgetAnnotation pushButton\";\n\n if (this.data.alternativeText) {\n container.title = this.data.alternativeText;\n }\n\n return container;\n }\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, { isRenderable: parameters.renderForms });\n }\n\n render() {\n this.container.className = \"choiceWidgetAnnotation\";\n const storage = this.annotationStorage;\n const id = this.data.id;\n\n // For printing/saving we currently only support choice widgets with one\n // option selection. Therefore, listboxes (#12189) and comboboxes (#12224)\n // are not properly printed/saved yet, so we only store the first item in\n // the field value array instead of the entire array. Once support for those\n // two field types is implemented, we should use the same pattern as the\n // other interactive widgets where the return value of `getValue`\n // is used and the full array of field values is stored.\n storage.getValue(id, {\n value:\n this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : undefined,\n });\n\n let { fontSize } = this.data.defaultAppearanceData;\n if (!fontSize) {\n fontSize = 9;\n }\n const fontSizeStyle = `calc(${fontSize}px * var(--zoom-factor))`;\n\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.disabled = this.data.readOnly;\n selectElement.name = this.data.fieldName;\n selectElement.setAttribute(\"id\", id);\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n\n selectElement.style.fontSize = `${fontSize}px`;\n\n if (!this.data.combo) {\n // List boxes have a size and (optionally) multiple selection.\n selectElement.size = this.data.options.length;\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\n }\n });\n\n // Insert the options into the choice field.\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n if (this.data.combo) {\n optionElement.style.fontSize = fontSizeStyle;\n }\n if (this.data.fieldValue.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n }\n selectElement.appendChild(optionElement);\n }\n\n const getValue = (event, isExport) => {\n const name = isExport ? \"value\" : \"textContent\";\n const options = event.target.options;\n if (!event.target.multiple) {\n return options.selectedIndex === -1\n ? null\n : options[options.selectedIndex][name];\n }\n return Array.prototype.filter\n .call(options, option => option.selected)\n .map(option => option[name]);\n };\n\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => {\n return { displayValue: option.textContent, exportValue: option.value };\n });\n };\n\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\n storage.setValue(id, {\n value: getValue(event, /* isExport */ true),\n });\n },\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(\n options,\n option => option.selected\n );\n if (i === -1) {\n options[0].selected = true;\n }\n }\n storage.setValue(id, {\n value: getValue(event, /* isExport */ true),\n items: getItems(event),\n });\n },\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n storage.setValue(id, { value: null, items: [] });\n },\n insert(event) {\n const { index, displayValue, exportValue } = event.detail.insert;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.insertBefore(\n optionElement,\n selectElement.children[index]\n );\n storage.setValue(id, {\n value: getValue(event, /* isExport */ true),\n items: getItems(event),\n });\n },\n items(event) {\n const { items } = event.detail;\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n for (const item of items) {\n const { displayValue, exportValue } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.appendChild(optionElement);\n }\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n storage.setValue(id, {\n value: getValue(event, /* isExport */ true),\n items: getItems(event),\n });\n },\n indices(event) {\n const indices = new Set(event.detail.indices);\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\n storage.setValue(id, {\n value: getValue(event, /* isExport */ true),\n });\n },\n editable(event) {\n event.target.disabled = !event.detail.editable;\n },\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n selectElement.addEventListener(\"input\", event => {\n const exportValue = getValue(event, /* isExport */ true);\n const value = getValue(event, /* isExport */ false);\n storage.setValue(id, { value: exportValue });\n\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n changeEx: exportValue,\n willCommit: true,\n commitKey: 1,\n keyDown: false,\n },\n });\n });\n\n this._setEventListeners(\n selectElement,\n [\n [\"focus\", \"Focus\"],\n [\"blur\", \"Blur\"],\n [\"mousedown\", \"Mouse Down\"],\n [\"mouseenter\", \"Mouse Enter\"],\n [\"mouseleave\", \"Mouse Exit\"],\n [\"mouseup\", \"Mouse Up\"],\n [\"input\", \"Action\"],\n ],\n event => event.target.checked\n );\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, { value: getValue(event) });\n });\n }\n\n this._setBackgroundColor(selectElement);\n\n this.container.appendChild(selectElement);\n return this.container;\n }\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable });\n }\n\n render() {\n // Do not render popup annotations for parent elements with these types as\n // they create the popups themselves (because of custom trigger divs).\n const IGNORE_TYPES = [\n \"Line\",\n \"Square\",\n \"Circle\",\n \"PolyLine\",\n \"Polygon\",\n \"Ink\",\n ];\n\n this.container.className = \"popupAnnotation\";\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n const selector = `[data-annotation-id=\"${this.data.parentId}\"]`;\n const parentElements = this.layer.querySelectorAll(selector);\n if (parentElements.length === 0) {\n return this.container;\n }\n\n const popup = new PopupElement({\n container: this.container,\n trigger: Array.from(parentElements),\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText,\n });\n\n // Position the popup next to the parent annotation's container.\n // PDF viewers ignore a popup annotation's rectangle.\n const page = this.page;\n const rect = Util.normalizeRect([\n this.data.parentRect[0],\n page.view[3] - this.data.parentRect[1] + page.view[1],\n this.data.parentRect[2],\n page.view[3] - this.data.parentRect[3] + page.view[1],\n ]);\n const popupLeft =\n rect[0] + this.data.parentRect[2] - this.data.parentRect[0];\n const popupTop = rect[1];\n\n this.container.style.transformOrigin = `${-popupLeft}px ${-popupTop}px`;\n this.container.style.left = `${popupLeft}px`;\n this.container.style.top = `${popupTop}px`;\n\n this.container.appendChild(popup.render());\n return this.container;\n }\n}\n\nclass PopupElement {\n constructor(parameters) {\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.titleObj = parameters.titleObj;\n this.modificationDate = parameters.modificationDate;\n this.contentsObj = parameters.contentsObj;\n this.richText = parameters.richText;\n this.hideWrapper = parameters.hideWrapper || false;\n\n this.pinned = false;\n }\n\n render() {\n const BACKGROUND_ENLIGHT = 0.7;\n\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"popupWrapper\";\n\n // For Popup annotations we hide the entire section because it contains\n // only the popup. However, for Text annotations without a separate Popup\n // annotation, we cannot hide the entire container as the image would\n // disappear too. In that special case, hiding the wrapper suffices.\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.hidden = true;\n\n const popup = document.createElement(\"div\");\n popup.className = \"popup\";\n\n const color = this.color;\n if (color) {\n // Enlighten the color.\n const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = Util.makeHexColor(r | 0, g | 0, b | 0);\n }\n\n const title = document.createElement(\"h1\");\n title.dir = this.titleObj.dir;\n title.textContent = this.titleObj.str;\n popup.appendChild(title);\n\n // The modification date is shown in the popup instead of the creation\n // date if it is available and can be parsed correctly, which is\n // consistent with other viewers such as Adobe Acrobat.\n const dateObject = PDFDateString.toDateObject(this.modificationDate);\n if (dateObject) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.className = \"popupDate\";\n modificationDate.textContent = \"{{date}}, {{time}}\";\n modificationDate.dataset.l10nId = \"annotation_date_string\";\n modificationDate.dataset.l10nArgs = JSON.stringify({\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString(),\n });\n popup.appendChild(modificationDate);\n }\n\n if (\n this.richText?.str &&\n (!this.contentsObj?.str || this.contentsObj.str === this.richText.str)\n ) {\n XfaLayer.render({\n xfaHtml: this.richText.html,\n intent: \"richText\",\n div: popup,\n });\n popup.lastChild.className = \"richText popupContent\";\n } else {\n const contents = this._formatContents(this.contentsObj);\n popup.appendChild(contents);\n }\n\n if (!Array.isArray(this.trigger)) {\n this.trigger = [this.trigger];\n }\n\n // Attach the event listeners to the trigger element.\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this._toggle.bind(this));\n element.addEventListener(\"mouseover\", this._show.bind(this, false));\n element.addEventListener(\"mouseout\", this._hide.bind(this, false));\n }\n popup.addEventListener(\"click\", this._hide.bind(this, true));\n\n wrapper.appendChild(popup);\n return wrapper;\n }\n\n /**\n * Format the contents of the popup by adding newlines where necessary.\n *\n * @private\n * @param {Object<string, string>} contentsObj\n * @memberof PopupElement\n * @returns {HTMLParagraphElement}\n */\n _formatContents({ str, dir }) {\n const p = document.createElement(\"p\");\n p.className = \"popupContent\";\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.appendChild(document.createTextNode(line));\n if (i < ii - 1) {\n p.appendChild(document.createElement(\"br\"));\n }\n }\n return p;\n }\n\n /**\n * Toggle the visibility of the popup.\n *\n * @private\n * @memberof PopupElement\n */\n _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n\n /**\n * Show the popup.\n *\n * @private\n * @param {boolean} pin\n * @memberof PopupElement\n */\n _show(pin = false) {\n if (pin) {\n this.pinned = true;\n }\n if (this.hideElement.hidden) {\n this.hideElement.hidden = false;\n this.container.style.zIndex += 1;\n }\n }\n\n /**\n * Hide the popup.\n *\n * @private\n * @param {boolean} unpin\n * @memberof PopupElement\n */\n _hide(unpin = true) {\n if (unpin) {\n this.pinned = false;\n }\n if (!this.hideElement.hidden && !this.pinned) {\n this.hideElement.hidden = true;\n this.container.style.zIndex -= 1;\n }\n }\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n }\n\n render() {\n this.container.className = \"freeTextAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n return this.container;\n }\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n }\n\n render() {\n this.container.className = \"lineAnnotation\";\n\n // Create an invisible line with the same starting and ending coordinates\n // that acts as the trigger for the popup. Only the line itself should\n // trigger the popup, not the entire container.\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n // PDF coordinates are calculated from a bottom left origin, so transform\n // the line coordinates to a top left origin for the SVG element.\n const line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n // won't be possible to open/close the popup (note e.g. issue 11122).\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n line.setAttribute(\"fill\", \"transparent\");\n\n svg.appendChild(line);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the line instead\n // of to the entire container (which is the default).\n this._createPopup(line, data);\n\n return this.container;\n }\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n }\n\n render() {\n this.container.className = \"squareAnnotation\";\n\n // Create an invisible square with the same rectangle that acts as the\n // trigger for the popup. Only the square itself should trigger the\n // popup, not the entire container.\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n // The browser draws half of the borders inside the square and half of\n // the borders outside the square by default. This behavior cannot be\n // changed programmatically, so correct for that here.\n const borderWidth = data.borderStyle.width;\n const square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n // won't be possible to open/close the popup (note e.g. issue 11122).\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"transparent\");\n\n svg.appendChild(square);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the square instead\n // of to the entire container (which is the default).\n this._createPopup(square, data);\n\n return this.container;\n }\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n }\n\n render() {\n this.container.className = \"circleAnnotation\";\n\n // Create an invisible circle with the same ellipse that acts as the\n // trigger for the popup. Only the circle itself should trigger the\n // popup, not the entire container.\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n // The browser draws half of the borders inside the circle and half of\n // the borders outside the circle by default. This behavior cannot be\n // changed programmatically, so correct for that here.\n const borderWidth = data.borderStyle.width;\n const circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n // won't be possible to open/close the popup (note e.g. issue 11122).\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"transparent\");\n\n svg.appendChild(circle);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the circle instead\n // of to the entire container (which is the default).\n this._createPopup(circle, data);\n\n return this.container;\n }\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n\n // Create an invisible polyline with the same points that acts as the\n // trigger for the popup. Only the polyline itself should trigger the\n // popup, not the entire container.\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n // Convert the vertices array to a single points string that the SVG\n // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n // calculated from a bottom left origin, so transform the polyline\n // coordinates to a top left origin for the SVG element.\n let points = [];\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n points = points.join(\" \");\n\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n // won't be possible to open/close the popup (note e.g. issue 11122).\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n\n svg.appendChild(polyline);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the polyline\n // instead of to the entire container (which is the default).\n this._createPopup(polyline, data);\n\n return this.container;\n }\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n // Polygons are specific forms of polylines, so reuse their logic.\n super(parameters);\n\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n }\n\n render() {\n this.container.className = \"caretAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n return this.container;\n }\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n\n this.containerClassName = \"inkAnnotation\";\n\n // Use the polyline SVG element since it allows us to use coordinates\n // directly and to draw both straight lines and curves.\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n\n // Create an invisible polyline with the same points that acts as the\n // trigger for the popup.\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n for (const inkList of data.inkLists) {\n // Convert the ink list to a single points string that the SVG\n // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n // calculated from a bottom left origin, so transform the polyline\n // coordinates to a top left origin for the SVG element.\n let points = [];\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n points = points.join(\" \");\n\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n // won't be possible to open/close the popup (note e.g. issue 11122).\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n\n // Create the popup ourselves so that we can bind it to the polyline\n // instead of to the entire container (which is the default).\n this._createPopup(polyline, data);\n\n svg.appendChild(polyline);\n }\n\n this.container.append(svg);\n return this.container;\n }\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true,\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"highlightAnnotation\");\n }\n\n this.container.className = \"highlightAnnotation\";\n return this.container;\n }\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true,\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"underlineAnnotation\");\n }\n\n this.container.className = \"underlineAnnotation\";\n return this.container;\n }\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true,\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"squigglyAnnotation\");\n }\n\n this.container.className = \"squigglyAnnotation\";\n return this.container;\n }\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true,\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"strikeoutAnnotation\");\n }\n\n this.container.className = \"strikeoutAnnotation\";\n return this.container;\n }\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(\n parameters.data.hasPopup ||\n parameters.data.titleObj?.str ||\n parameters.data.contentsObj?.str ||\n parameters.data.richText?.str\n );\n super(parameters, { isRenderable, ignoreBorder: true });\n }\n\n render() {\n this.container.className = \"stampAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n return this.container;\n }\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, { isRenderable: true });\n\n const { filename, content } = this.data.file;\n this.filename = getFilenameFromUrl(filename);\n this.content = content;\n\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n id: stringToPDFString(filename),\n filename,\n content,\n });\n }\n\n render() {\n this.container.className = \"fileAttachmentAnnotation\";\n\n const trigger = document.createElement(\"div\");\n trigger.style.height = this.container.style.height;\n trigger.style.width = this.container.style.width;\n trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n if (\n !this.data.hasPopup &&\n (this.data.titleObj?.str ||\n this.data.contentsObj?.str ||\n this.data.richText)\n ) {\n this._createPopup(trigger, this.data);\n }\n\n this.container.appendChild(trigger);\n return this.container;\n }\n\n /**\n * Download the file attachment associated with this annotation.\n *\n * @private\n * @memberof FileAttachmentAnnotationElement\n */\n _download() {\n this.downloadManager?.openOrDownloadData(\n this.container,\n this.content,\n this.filename\n );\n }\n}\n\n/**\n * @typedef {Object} AnnotationLayerParameters\n * @property {PageViewport} viewport\n * @property {HTMLDivElement} div\n * @property {Array} annotations\n * @property {PDFPageProxy} page\n * @property {IPDFLinkService} linkService\n * @property {IDownloadManager} downloadManager\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n * for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {boolean} [enableScripting] - Enable embedded script execution.\n * @property {boolean} [hasJSActions] - Some fields have JS actions.\n * The default value is `false`.\n * @property {Map<string, HTMLCanvasElement>} [annotationCanvasMap]\n */\n\nclass AnnotationLayer {\n /**\n * Render a new annotation layer with all annotation elements.\n *\n * @public\n * @param {AnnotationLayerParameters} parameters\n * @memberof AnnotationLayer\n */\n static render(parameters) {\n const sortedAnnotations = [],\n popupAnnotations = [];\n // Ensure that Popup annotations are handled last, since they're dependant\n // upon the parent annotation having already been rendered (please refer to\n // the `PopupAnnotationElement.render` method); fixes issue 11362.\n for (const data of parameters.annotations) {\n if (!data) {\n continue;\n }\n if (data.annotationType === AnnotationType.POPUP) {\n popupAnnotations.push(data);\n continue;\n }\n sortedAnnotations.push(data);\n }\n if (popupAnnotations.length) {\n sortedAnnotations.push(...popupAnnotations);\n }\n\n const div = parameters.div;\n\n for (const data of sortedAnnotations) {\n const element = AnnotationElementFactory.create({\n data,\n layer: div,\n page: parameters.page,\n viewport: parameters.viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || \"\",\n renderForms: parameters.renderForms !== false,\n svgFactory: new DOMSVGFactory(),\n annotationStorage:\n parameters.annotationStorage || new AnnotationStorage(),\n enableScripting: parameters.enableScripting,\n hasJSActions: parameters.hasJSActions,\n fieldObjects: parameters.fieldObjects,\n mouseState: parameters.mouseState || { isDown: false },\n });\n if (element.isRenderable) {\n const rendered = element.render();\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n if (Array.isArray(rendered)) {\n for (const renderedElement of rendered) {\n div.appendChild(renderedElement);\n }\n } else {\n if (element instanceof PopupAnnotationElement) {\n // Popup annotation elements should not be on top of other\n // annotation elements to prevent interfering with mouse events.\n div.prepend(rendered);\n } else {\n div.appendChild(rendered);\n }\n }\n }\n }\n\n this.#setAnnotationCanvasMap(div, parameters.annotationCanvasMap);\n }\n\n /**\n * Update the annotation elements on existing annotation layer.\n *\n * @public\n * @param {AnnotationLayerParameters} parameters\n * @memberof AnnotationLayer\n */\n static update(parameters) {\n const { page, viewport, annotations, annotationCanvasMap, div } =\n parameters;\n const transform = viewport.transform;\n const matrix = `matrix(${transform.join(\",\")})`;\n\n let scale, ownMatrix;\n for (const data of annotations) {\n const elements = div.querySelectorAll(\n `[data-annotation-id=\"${data.id}\"]`\n );\n if (elements) {\n for (const element of elements) {\n if (data.hasOwnCanvas) {\n const rect = Util.normalizeRect([\n data.rect[0],\n page.view[3] - data.rect[1] + page.view[1],\n data.rect[2],\n page.view[3] - data.rect[3] + page.view[1],\n ]);\n\n if (!ownMatrix) {\n // When an annotation has its own canvas, then\n // the scale has been already applied to the canvas,\n // so we musn't scale it twice.\n scale = Math.abs(transform[0] || transform[1]);\n const ownTransform = transform.slice();\n for (let i = 0; i < 4; i++) {\n ownTransform[i] = Math.sign(ownTransform[i]);\n }\n ownMatrix = `matrix(${ownTransform.join(\",\")})`;\n }\n\n const left = rect[0] * scale;\n const top = rect[1] * scale;\n element.style.left = `${left}px`;\n element.style.top = `${top}px`;\n element.style.transformOrigin = `${-left}px ${-top}px`;\n element.style.transform = ownMatrix;\n } else {\n element.style.transform = matrix;\n }\n }\n }\n }\n\n this.#setAnnotationCanvasMap(div, annotationCanvasMap);\n div.hidden = false;\n }\n\n static #setAnnotationCanvasMap(div, annotationCanvasMap) {\n if (!annotationCanvasMap) {\n return;\n }\n for (const [id, canvas] of annotationCanvasMap) {\n const element = div.querySelector(`[data-annotation-id=\"${id}\"]`);\n if (!element) {\n continue;\n }\n\n const { firstChild } = element;\n if (firstChild.nodeName === \"CANVAS\") {\n element.replaceChild(canvas, firstChild);\n } else {\n element.insertBefore(canvas, firstChild);\n }\n }\n annotationCanvasMap.clear();\n }\n}\n\nexport { AnnotationLayer };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * PLEASE NOTE: This file is currently imported in both the `../display/` and\n * `../scripting_api/` folders, hence be EXTREMELY careful about\n * introducing any dependencies here since that can lead to an\n * unexpected/unnecessary size increase of the *built* files.\n */\n\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255)\n .toString(16)\n .padStart(2, \"0\");\n}\n\n// PDF specifications section 10.3\nclass ColorConverters {\n static CMYK_G([c, y, m, k]) {\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n\n static G_CMYK([g]) {\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n\n static G_RGB([g]) {\n return [\"RGB\", g, g, g];\n }\n\n static G_HTML([g]) {\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n\n static RGB_G([r, g, b]) {\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n\n static RGB_HTML([r, g, b]) {\n const R = makeColorComp(r);\n const G = makeColorComp(g);\n const B = makeColorComp(b);\n return `#${R}${G}${B}`;\n }\n\n static T_HTML() {\n return \"#00000000\";\n }\n\n static CMYK_RGB([c, y, m, k]) {\n return [\n \"RGB\",\n 1 - Math.min(1, c + k),\n 1 - Math.min(1, m + k),\n 1 - Math.min(1, y + k),\n ];\n }\n\n static CMYK_HTML(components) {\n return this.RGB_HTML(this.CMYK_RGB(components));\n }\n\n static RGB_CMYK([r, g, b]) {\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n}\n\nexport { ColorConverters };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"../../web/interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport { warn } from \"../shared/util.js\";\nimport { XfaText } from \"./xfa_text.js\";\n\n/**\n * @typedef {Object} XfaLayerParameters\n * @property {PageViewport} viewport\n * @property {HTMLDivElement} div\n * @property {Object} xfaHtml\n * @property {AnnotationStorage} [annotationStorage]\n * @property {IPDFLinkService} linkService\n * @property {string} [intent] - (default value is 'display').\n */\n\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, { value: null });\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, { value: event.target.value });\n });\n break;\n case \"input\":\n if (\n element.attributes.type === \"radio\" ||\n element.attributes.type === \"checkbox\"\n ) {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n // The checked attribute may have been set when opening the file,\n // unset through the UI and we're here because of printing.\n html.removeAttribute(\"checked\");\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked\n ? event.target.getAttribute(\"xfaOn\")\n : event.target.getAttribute(\"xfaOff\"),\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, { value: event.target.value });\n });\n }\n break;\n case \"select\":\n if (storedData.value !== null) {\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n }\n }\n }\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value =\n options.selectedIndex === -1\n ? \"\"\n : options[options.selectedIndex].value;\n storage.setValue(id, { value });\n });\n break;\n }\n }\n\n static setAttributes({ html, element, storage = null, intent, linkService }) {\n const { attributes } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n\n if (attributes.type === \"radio\") {\n // Avoid to have a radio group when printing with the same as one\n // already displayed.\n attributes.name = `${attributes.name}-${intent}`;\n }\n for (const [key, value] of Object.entries(attributes)) {\n // We don't need to add dataId in the html object but it can\n // be useful to know its value when writing printing tests:\n // in this case, don't skip dataId to have its value.\n if (value === null || value === undefined || key === \"dataId\") {\n continue;\n }\n\n if (key !== \"style\") {\n if (key === \"textContent\") {\n html.textContent = value;\n } else if (key === \"class\") {\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n } else {\n if (isHTMLAnchorElement && (key === \"href\" || key === \"newWindow\")) {\n continue; // Handled below.\n }\n html.setAttribute(key, value);\n }\n } else {\n Object.assign(html.style, value);\n }\n }\n\n if (isHTMLAnchorElement) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n !linkService.addLinkAttributes\n ) {\n warn(\n \"XfaLayer.setAttribute - missing `addLinkAttributes`-method on the `linkService`-instance.\"\n );\n }\n linkService.addLinkAttributes?.(\n html,\n attributes.href,\n attributes.newWindow\n );\n }\n\n // Set the value after the others to be sure overwrite\n // any other values.\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n\n /**\n * Render the XFA layer.\n *\n * @param {XfaLayerParameters} parameters\n */\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService,\n });\n }\n const stack = [[root, -1, rootHtml]];\n\n const rootDiv = parameters.div;\n rootDiv.appendChild(rootHtml);\n\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n\n // Set defaults.\n if (intent !== \"richText\") {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n\n // Text nodes used for the text highlighter.\n const textDivs = [];\n\n while (stack.length > 0) {\n const [parent, i, html] = stack[stack.length - 1];\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n\n const child = parent.children[++stack[stack.length - 1][1]];\n if (child === null) {\n continue;\n }\n\n const { name } = child;\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.appendChild(node);\n continue;\n }\n\n let childHtml;\n if (child?.attributes?.xmlns) {\n childHtml = document.createElementNS(child.attributes.xmlns, name);\n } else {\n childHtml = document.createElement(name);\n }\n\n html.appendChild(childHtml);\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService,\n });\n }\n\n if (child.children && child.children.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n if (XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n childHtml.appendChild(node);\n }\n }\n\n /**\n * TODO: re-enable that stuff once we've JS implementation.\n * See https://bugzilla.mozilla.org/show_bug.cgi?id=1719465.\n *\n * for (const el of rootDiv.querySelectorAll(\n * \".xfaDisabled input, .xfaDisabled textarea\"\n * )) {\n * el.setAttribute(\"disabled\", true);\n * }\n * for (const el of rootDiv.querySelectorAll(\n * \".xfaReadOnly input, .xfaReadOnly textarea\"\n * )) {\n * el.setAttribute(\"readOnly\", true);\n * }\n */\n\n for (const el of rootDiv.querySelectorAll(\n \".xfaNonInteractive input, .xfaNonInteractive textarea\"\n )) {\n el.setAttribute(\"readOnly\", true);\n }\n\n return {\n textDivs,\n };\n }\n\n /**\n * Update the XFA layer.\n *\n * @param {XfaLayerParameters} parameters\n */\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n}\n\nexport { XfaLayer };\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AbortException,\n createPromiseCapability,\n Util,\n} from \"../shared/util.js\";\n\n/**\n * Text layer render parameters.\n *\n * @typedef {Object} TextLayerRenderParameters\n * @property {import(\"./api\").TextContent} [textContent] - Text content to\n * render (the object is returned by the page's `getTextContent` method).\n * @property {ReadableStream} [textContentStream] - Text content stream to\n * render (the stream is returned by the page's `streamTextContent` method).\n * @property {HTMLElement} container - HTML element that will contain text runs.\n * @property {import(\"./display_utils\").PageViewport} viewport - The target\n * viewport to properly layout the text runs.\n * @property {Array<HTMLElement>} [textDivs] - HTML elements that are correspond\n * to the text items of the textContent input. This is output and shall be\n * initially be set to empty array.\n * @property {Array<string>} [textContentItemsStr] - Strings that correspond to\n * the `str` property of the text items of textContent input. This is output\n * and shall be initially be set to empty array.\n * @property {number} [timeout] - Delay in milliseconds before rendering of the\n * text runs occurs.\n * @property {boolean} [enhanceTextSelection] - Whether to turn on the text\n * selection enhancement.\n */\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\nconst AllWhitespaceRegexp = /^\\s+$/g;\n\nfunction getAscent(fontFamily, ctx) {\n const cachedAscent = ascentCache.get(fontFamily);\n if (cachedAscent) {\n return cachedAscent;\n }\n\n ctx.save();\n ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n const metrics = ctx.measureText(\"\");\n\n // Both properties aren't available by default in Firefox.\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n if (ascent) {\n ctx.restore();\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n\n // Try basic heuristic to guess ascent/descent.\n // Draw a g with baseline at 0,0 and then get the line\n // number where a pixel has non-null red component (starting\n // from bottom).\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(\n 0,\n 0,\n DEFAULT_FONT_SIZE,\n DEFAULT_FONT_SIZE\n ).data;\n descent = 0;\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n // Draw an A with baseline at 0,DEFAULT_FONT_SIZE and then get the line\n // number where a pixel has non-null red component (starting\n // from top).\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n ctx.restore();\n\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n\n ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n return DEFAULT_FONT_ASCENT;\n}\n\nfunction appendText(task, geom, styles, ctx) {\n // Initialize all used properties to keep the caches monomorphic.\n const textDiv = document.createElement(\"span\");\n const textDivProperties = task._enhanceTextSelection\n ? {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1,\n }\n : {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n };\n\n task._textDivs.push(textDiv);\n\n const tx = Util.transform(task._viewport.transform, geom.transform);\n let angle = Math.atan2(tx[1], tx[0]);\n const style = styles[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * getAscent(style.fontFamily, ctx);\n\n let left, top;\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n // Setting the style properties individually, rather than all at once,\n // should be OK since the `textDiv` isn't appended to the document yet.\n textDiv.style.left = `${left}px`;\n textDiv.style.top = `${top}px`;\n textDiv.style.fontSize = `${fontHeight}px`;\n textDiv.style.fontFamily = style.fontFamily;\n\n // Keeps screen readers from pausing on every new text span.\n textDiv.setAttribute(\"role\", \"presentation\");\n\n textDiv.textContent = geom.str;\n // geom.dir may be 'ttb' for vertical texts.\n textDiv.dir = geom.dir;\n\n // `fontName` is only used by the FontInspector, and we only use `dataset`\n // here to make the font name available in the debugger.\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n // We don't bother scaling single-char text divs, because it has very\n // little effect on text highlighting. This makes scrolling on docs with\n // lots of such divs a lot faster.\n let shouldScaleText = false;\n if (\n geom.str.length > 1 ||\n (task._enhanceTextSelection && AllWhitespaceRegexp.test(geom.str))\n ) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n // When the horizontal/vertical scaling differs significantly, also scale\n // even single-char text to improve highlighting (fixes issue11713.pdf).\n if (\n absScaleX !== absScaleY &&\n Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5\n ) {\n shouldScaleText = true;\n }\n }\n if (shouldScaleText) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n task._textDivProperties.set(textDiv, textDivProperties);\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection && textDivProperties.hasText) {\n let angleCos = 1,\n angleSin = 0;\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n const divWidth =\n (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n const divHeight = fontHeight;\n\n let m, b;\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n } else {\n b = [left, top, left + divWidth, top + divHeight];\n }\n\n task._bounds.push({\n left: b[0],\n top: b[1],\n right: b[2],\n bottom: b[3],\n div: textDiv,\n size: [divWidth, divHeight],\n m,\n });\n }\n}\n\nfunction render(task) {\n if (task._canceled) {\n return;\n }\n const textDivs = task._textDivs;\n const capability = task._capability;\n const textDivsLength = textDivs.length;\n\n // No point in rendering many divs as it would make the browser\n // unusable even after the divs are rendered.\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n\n if (!task._textContentStream) {\n for (let i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n\n task._renderingDone = true;\n capability.resolve();\n}\n\nfunction findPositiveMin(ts, offset, count) {\n let result = 0;\n for (let i = 0; i < count; i++) {\n const t = ts[offset++];\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n return result;\n}\n\nfunction expand(task) {\n const bounds = task._bounds;\n const viewport = task._viewport;\n\n const expanded = expandBounds(viewport.width, viewport.height, bounds);\n for (let i = 0; i < expanded.length; i++) {\n const div = bounds[i].div;\n const divProperties = task._textDivProperties.get(div);\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n task._textDivProperties.set(div, divProperties);\n continue;\n }\n // Box is rotated -- trying to find padding so rotated div will not\n // exceed its expanded bounds.\n const e = expanded[i],\n b = bounds[i];\n const m = b.m,\n c = m[0],\n s = m[1];\n // Finding intersections with expanded box.\n const points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n const ts = new Float64Array(64);\n for (let j = 0, jj = points.length; j < jj; j++) {\n const t = Util.applyTransform(points[j], m);\n ts[j + 0] = c && (e.left - t[0]) / c;\n ts[j + 4] = s && (e.top - t[1]) / s;\n ts[j + 8] = c && (e.right - t[0]) / c;\n ts[j + 12] = s && (e.bottom - t[1]) / s;\n\n ts[j + 16] = s && (e.left - t[0]) / -s;\n ts[j + 20] = c && (e.top - t[1]) / c;\n ts[j + 24] = s && (e.right - t[0]) / -s;\n ts[j + 28] = c && (e.bottom - t[1]) / c;\n\n ts[j + 32] = c && (e.left - t[0]) / -c;\n ts[j + 36] = s && (e.top - t[1]) / -s;\n ts[j + 40] = c && (e.right - t[0]) / -c;\n ts[j + 44] = s && (e.bottom - t[1]) / -s;\n\n ts[j + 48] = s && (e.left - t[0]) / s;\n ts[j + 52] = c && (e.top - t[1]) / -c;\n ts[j + 56] = s && (e.right - t[0]) / s;\n ts[j + 60] = c && (e.bottom - t[1]) / -c;\n }\n // Not based on math, but to simplify calculations, using cos and sin\n // absolute values to not exceed the box (it can but insignificantly).\n const boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n task._textDivProperties.set(div, divProperties);\n }\n}\n\nfunction expandBounds(width, height, boxes) {\n const bounds = boxes.map(function (box, i) {\n return {\n x1: box.left,\n y1: box.top,\n x2: box.right,\n y2: box.bottom,\n index: i,\n x1New: undefined,\n x2New: undefined,\n };\n });\n expandBoundsLTR(width, bounds);\n\n const expanded = new Array(boxes.length);\n for (const b of bounds) {\n const i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0,\n };\n }\n\n // Rotating on 90 degrees and extending extended boxes. Reusing the bounds\n // array and objects.\n boxes.map(function (box, i) {\n const e = expanded[i],\n b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n\n for (const b of bounds) {\n const i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n }\n return expanded;\n}\n\nfunction expandBoundsLTR(width, bounds) {\n // Sorting by x1 coordinate and walk by the bounds in the same order.\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n\n // First we see on the horizon is a fake boundary.\n const fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0,\n };\n const horizon = [\n {\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary,\n },\n ];\n\n for (const boundary of bounds) {\n // Searching for the affected part of horizon.\n // TODO red-black tree or simple binary search\n let i = 0;\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n let j = horizon.length - 1;\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n let horizonPart, affectedBoundary;\n let q,\n k,\n maxXNew = -Infinity;\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n let xNew;\n if (affectedBoundary.x2 > boundary.x1) {\n // In the middle of the previous element, new x shall be at the\n // boundary start. Extending if further if the affected boundary\n // placed on top of the current one.\n xNew =\n affectedBoundary.index > boundary.index\n ? affectedBoundary.x1New\n : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n // We have some space in between, new x in middle will be a fair\n // choice.\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n // Affected boundary has x2new set, using it as new x.\n xNew = affectedBoundary.x2New;\n }\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n // Set new x1 for current boundary.\n boundary.x1New = maxXNew;\n\n // Adjusts new x2 for the affected boundaries.\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New === undefined) {\n // Was not set yet, choosing new x if possible.\n if (affectedBoundary.x2 > boundary.x1) {\n // Current and affected boundaries intersect. If affected boundary\n // is placed on top of the current, shrinking the affected.\n if (affectedBoundary.index > boundary.index) {\n affectedBoundary.x2New = affectedBoundary.x2;\n }\n } else {\n affectedBoundary.x2New = maxXNew;\n }\n } else if (affectedBoundary.x2New > maxXNew) {\n // Affected boundary is touching new x, pushing it back.\n affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n // Fixing the horizon.\n const changedHorizon = [];\n let lastBoundary = null;\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n // Checking which boundary will be visible.\n const useBoundary =\n affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n if (lastBoundary === useBoundary) {\n // Merging with previous.\n changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n } else {\n changedHorizon.push({\n start: horizonPart.start,\n end: horizonPart.end,\n boundary: useBoundary,\n });\n lastBoundary = useBoundary;\n }\n }\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary,\n });\n }\n if (boundary.y2 < horizon[j].end) {\n changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary,\n });\n }\n\n // Set x2 new of boundary that is no longer visible (see overlapping case\n // above).\n // TODO more efficient, e.g. via reference counting.\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n let used = false;\n for (\n k = i - 1;\n !used && k >= 0 && horizon[k].start >= affectedBoundary.y1;\n k--\n ) {\n used = horizon[k].boundary === affectedBoundary;\n }\n for (\n k = j + 1;\n !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2;\n k++\n ) {\n used = horizon[k].boundary === affectedBoundary;\n }\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(\n horizon,\n [i, j - i + 1].concat(changedHorizon)\n );\n }\n\n // Set new x2 for all unset boundaries.\n for (const horizonPart of horizon) {\n const affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n }\n}\n\nclass TextLayerRenderTask {\n constructor({\n textContent,\n textContentStream,\n container,\n viewport,\n textDivs,\n textContentItemsStr,\n enhanceTextSelection,\n }) {\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._document = container.ownerDocument;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = createPromiseCapability();\n this._renderTimer = null;\n this._bounds = [];\n\n // Always clean-up the temporary canvas once rendering is no longer pending.\n this._capability.promise\n .finally(() => {\n if (!this._enhanceTextSelection) {\n // The `textDiv` properties are no longer needed.\n this._textDivProperties = null;\n }\n\n if (this._layoutTextCtx) {\n // Zeroing the width and height cause Firefox to release graphics\n // resources immediately, which can greatly reduce memory consumption.\n this._layoutTextCtx.canvas.width = 0;\n this._layoutTextCtx.canvas.height = 0;\n this._layoutTextCtx = null;\n }\n })\n .catch(() => {\n // Avoid \"Uncaught promise\" messages in the console.\n });\n }\n\n /**\n * Promise for textLayer rendering task completion.\n * @type {Promise<void>}\n */\n get promise() {\n return this._capability.promise;\n }\n\n /**\n * Cancel rendering of the textLayer.\n */\n cancel() {\n this._canceled = true;\n if (this._reader) {\n this._reader\n .cancel(new AbortException(\"TextLayer task cancelled.\"))\n .catch(() => {\n // Avoid \"Uncaught promise\" messages in the console.\n });\n this._reader = null;\n }\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n }\n\n /**\n * @private\n */\n _processItems(items, styleCache) {\n for (let i = 0, len = items.length; i < len; i++) {\n if (items[i].str === undefined) {\n if (\n items[i].type === \"beginMarkedContentProps\" ||\n items[i].type === \"beginMarkedContent\"\n ) {\n const parent = this._container;\n this._container = document.createElement(\"span\");\n this._container.classList.add(\"markedContent\");\n if (items[i].id !== null) {\n this._container.setAttribute(\"id\", `${items[i].id}`);\n }\n parent.appendChild(this._container);\n } else if (items[i].type === \"endMarkedContent\") {\n this._container = this._container.parentNode;\n }\n continue;\n }\n this._textContentItemsStr.push(items[i].str);\n appendText(this, items[i], styleCache, this._layoutTextCtx);\n }\n }\n\n /**\n * @private\n */\n _layoutText(textDiv) {\n const textDivProperties = this._textDivProperties.get(textDiv);\n\n let transform = \"\";\n if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) {\n const { fontSize, fontFamily } = textDiv.style;\n\n // Only build font string and set to context if different from last.\n if (\n fontSize !== this._layoutTextLastFontSize ||\n fontFamily !== this._layoutTextLastFontFamily\n ) {\n this._layoutTextCtx.font = `${fontSize} ${fontFamily}`;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n // Only measure the width for multi-char text divs, see `appendText`.\n const { width } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n if (width > 0) {\n const scale = textDivProperties.canvasWidth / width;\n if (this._enhanceTextSelection) {\n textDivProperties.scale = scale;\n }\n transform = `scaleX(${scale})`;\n }\n }\n if (textDivProperties.angle !== 0) {\n transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n }\n if (transform.length > 0) {\n if (this._enhanceTextSelection) {\n textDivProperties.originalTransform = transform;\n }\n textDiv.style.transform = transform;\n }\n\n if (textDivProperties.hasText) {\n this._container.appendChild(textDiv);\n }\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n this._container.appendChild(br);\n }\n }\n\n /**\n * @private\n */\n _render(timeout = 0) {\n const capability = createPromiseCapability();\n let styleCache = Object.create(null);\n\n // The temporary canvas is used to measure text length in the DOM.\n const canvas = this._document.createElement(\"canvas\");\n canvas.height = canvas.width = DEFAULT_FONT_SIZE;\n\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"MOZCENTRAL || GENERIC\")\n ) {\n canvas.mozOpaque = true;\n }\n this._layoutTextCtx = canvas.getContext(\"2d\", { alpha: false });\n\n if (this._textContent) {\n const textItems = this._textContent.items;\n const textStyles = this._textContent.styles;\n this._processItems(textItems, textStyles);\n capability.resolve();\n } else if (this._textContentStream) {\n const pump = () => {\n this._reader.read().then(({ value, done }) => {\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n this._processItems(value.items, styleCache);\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error(\n 'Neither \"textContent\" nor \"textContentStream\" parameters specified.'\n );\n }\n\n capability.promise.then(() => {\n styleCache = null;\n if (!timeout) {\n // Render right away\n render(this);\n } else {\n // Schedule\n this._renderTimer = setTimeout(() => {\n render(this);\n this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n }\n\n /**\n * @param {boolean} [expandDivs]\n */\n expandTextDivs(expandDivs = false) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n const transformBuf = [],\n paddingBuf = [];\n\n for (let i = 0, ii = this._textDivs.length; i < ii; i++) {\n const div = this._textDivs[i];\n const divProps = this._textDivProperties.get(div);\n\n if (!divProps.hasText) {\n continue;\n }\n if (expandDivs) {\n transformBuf.length = 0;\n paddingBuf.length = 0;\n\n if (divProps.originalTransform) {\n transformBuf.push(divProps.originalTransform);\n }\n if (divProps.paddingTop > 0) {\n paddingBuf.push(`${divProps.paddingTop}px`);\n transformBuf.push(`translateY(${-divProps.paddingTop}px)`);\n } else {\n paddingBuf.push(0);\n }\n if (divProps.paddingRight > 0) {\n paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);\n } else {\n paddingBuf.push(0);\n }\n if (divProps.paddingBottom > 0) {\n paddingBuf.push(`${divProps.paddingBottom}px`);\n } else {\n paddingBuf.push(0);\n }\n if (divProps.paddingLeft > 0) {\n paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);\n transformBuf.push(\n `translateX(${-divProps.paddingLeft / divProps.scale}px)`\n );\n } else {\n paddingBuf.push(0);\n }\n\n div.style.padding = paddingBuf.join(\" \");\n if (transformBuf.length) {\n div.style.transform = transformBuf.join(\" \");\n }\n } else {\n div.style.padding = null;\n div.style.transform = divProps.originalTransform;\n }\n }\n }\n}\n\n/**\n * @param {TextLayerRenderParameters} renderParameters\n * @returns {TextLayerRenderTask}\n */\nfunction renderTextLayer(renderParameters) {\n const task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection,\n });\n task._render(renderParameters.timeout);\n return task;\n}\n\nexport { renderTextLayer };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport {\n createObjectURL,\n FONT_IDENTITY_MATRIX,\n IDENTITY_MATRIX,\n ImageKind,\n isNum,\n OPS,\n TextRenderingMode,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { DOMSVGFactory } from \"./display_utils.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\n\n/** @type {any} */\nlet SVGGraphics = class {\n constructor() {\n unreachable(\"Not implemented: SVGGraphics\");\n }\n};\n\nif (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || GENERIC\")\n) {\n const SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\",\n };\n const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n const convertImgDataToPng = (function () {\n const PNG_HEADER = new Uint8Array([\n 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a,\n ]);\n const CHUNK_WRAPPER_SIZE = 12;\n\n const crcTable = new Int32Array(256);\n for (let i = 0; i < 256; i++) {\n let c = i;\n for (let h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedb88320 ^ ((c >> 1) & 0x7fffffff);\n } else {\n c = (c >> 1) & 0x7fffffff;\n }\n }\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n let crc = -1;\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = (crc >>> 8) ^ b;\n }\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n\n data[p] = (len >> 24) & 0xff;\n data[p + 1] = (len >> 16) & 0xff;\n data[p + 2] = (len >> 8) & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n\n data.set(body, p);\n p += body.length;\n\n const crc = crc32(data, offset + 4, p);\n data[p] = (crc >> 24) & 0xff;\n data[p + 1] = (crc >> 16) & 0xff;\n data[p + 2] = (crc >> 8) & 0xff;\n data[p + 3] = crc & 0xff;\n }\n\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n return (b << 16) | a;\n }\n\n /**\n * @param {Uint8Array} literals The input data.\n * @returns {Uint8Array} The DEFLATE-compressed data stream in zlib format.\n * This is the required format for compressed streams in the PNG format:\n * http://www.libpng.org/pub/png/spec/1.2/PNG-Compression.html\n */\n function deflateSync(literals) {\n if (!isNodeJS) {\n // zlib is certainly not available outside of Node.js. We can either use\n // the pako library for client-side DEFLATE compression, or use the\n // canvas API of the browser to obtain a more optimal PNG file.\n return deflateSyncUncompressed(literals);\n }\n try {\n // NOTE: This implementation is far from perfect, but already way better\n // than not applying any compression.\n //\n // A better algorithm will try to choose a good predictor/filter and\n // then choose a suitable zlib compression strategy (e.g. 3,Z_RLE).\n //\n // Node v0.11.12 zlib.deflateSync is introduced (and returns a Buffer).\n // Node v3.0.0 Buffer inherits from Uint8Array.\n // Node v8.0.0 zlib.deflateSync accepts Uint8Array as input.\n let input;\n // eslint-disable-next-line no-undef\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n // eslint-disable-next-line no-undef\n input = Buffer.from(literals);\n }\n const output = __non_webpack_require__(\"zlib\").deflateSync(input, {\n level: 9,\n });\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n warn(\n \"Not compressing PNG because zlib.deflateSync is unavailable: \" + e\n );\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n // An implementation of DEFLATE with compression level 0 (Z_NO_COMPRESSION).\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\n\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78; // compression method and flags\n idat[pi++] = 0x9c; // flags\n\n let pos = 0;\n while (len > maxBlockLength) {\n // writing non-final DEFLATE blocks type 0 and length of 65535\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n\n // writing non-final DEFLATE blocks type 0\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = (len >> 8) & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = ((~len & 0xffff) >> 8) & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n\n const adler = adler32(literals, 0, literals.length); // checksum\n idat[pi++] = (adler >> 24) & 0xff;\n idat[pi++] = (adler >> 16) & 0xff;\n idat[pi++] = (adler >> 8) & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n\n switch (kind) {\n case ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = (width + 7) >> 3;\n break;\n case ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n case ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n default:\n throw new Error(\"invalid format\");\n }\n\n // prefix every row with predictor 0\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0; // no prediction\n literals.set(\n bytes.subarray(offsetBytes, offsetBytes + lineSize),\n offsetLiterals\n );\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === ImageKind.GRAYSCALE_1BPP && isMask) {\n // inverting for image masks\n offsetLiterals = 0;\n for (let y = 0; y < height; y++) {\n offsetLiterals++; // skipping predictor\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n\n const ihdr = new Uint8Array([\n (width >> 24) & 0xff,\n (width >> 16) & 0xff,\n (width >> 8) & 0xff,\n width & 0xff,\n (height >> 24) & 0xff,\n (height >> 16) & 0xff,\n (height >> 8) & 0xff,\n height & 0xff,\n bitDepth, // bit depth\n colorType, // color type\n 0x00, // compression method\n 0x00, // filter method\n 0x00, // interlace method\n ]);\n const idat = deflateSync(literals);\n\n // PNG consists of: header, IHDR+data, IDAT+data, and IEND.\n const pngLength =\n PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n\n return createObjectURL(data, \"image/png\", forceDataSchema);\n }\n\n // eslint-disable-next-line no-shadow\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind =\n imgData.kind === undefined ? ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n })();\n\n class SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n\n this.textMatrix = IDENTITY_MATRIX;\n this.fontMatrix = FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n\n // Current point (in user coordinates)\n this.x = 0;\n this.y = 0;\n\n // Start of text line (in text coordinates)\n this.lineX = 0;\n this.lineY = 0;\n\n // Character and word spacing\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n\n // Default foreground and background colors\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n\n this.dashArray = [];\n this.dashPhase = 0;\n\n this.dependencies = [];\n\n // Clipping\n this.activeClipUrl = null;\n this.clipGroup = null;\n\n this.maskId = \"\";\n }\n\n clone() {\n return Object.create(this);\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n }\n\n // eslint-disable-next-line no-inner-declarations\n function opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n\n for (const opListElement of opList) {\n if (opListElement.fn === \"save\") {\n opTree.push({ fnId: 92, fn: \"group\", items: [] });\n tmp.push(opTree);\n opTree = opTree[opTree.length - 1].items;\n continue;\n }\n\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n return opTree;\n }\n\n /**\n * Format a float number as a string.\n *\n * @param value {number} - The float number to format.\n * @returns {string}\n */\n // eslint-disable-next-line no-inner-declarations\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n const s = value.toFixed(10);\n let i = s.length - 1;\n if (s[i] !== \"0\") {\n return s;\n }\n\n // Remove trailing zeros.\n do {\n i--;\n } while (s[i] === \"0\");\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n }\n\n /**\n * Format a transform matrix as a string. The standard rotation, scale and\n * translation matrices are replaced by their shorter forms, and for\n * identity matrices an empty string is returned to save memory.\n *\n * @param m {Array} - The transform matrix to format.\n * @returns {string}\n */\n // eslint-disable-next-line no-inner-declarations\n function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = (Math.acos(m[0]) * 180) / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n }\n return (\n `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` +\n `${pf(m[5])})`\n );\n }\n\n // The counts below are relevant for all pages, so they have to be global\n // instead of being members of `SVGGraphics` (which is recreated for\n // each page).\n let clipCount = 0;\n let maskCount = 0;\n let shadingCount = 0;\n\n SVGGraphics = class {\n constructor(commonObjs, objs, forceDataSchema = false) {\n this.svgFactory = new DOMSVGFactory();\n\n this.current = new SVGExtraState();\n this.transformMatrix = IDENTITY_MATRIX; // Graphics state matrix\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n\n // In `src/shared/util.js` the operator names are mapped to IDs.\n // The list below represents the reverse of that, i.e., it maps IDs\n // to operator names.\n this._operatorIdMapping = [];\n for (const op in OPS) {\n this._operatorIdMapping[OPS[op]] = op;\n }\n }\n\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== OPS.dependency) {\n continue;\n }\n\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n const promise = new Promise(resolve => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n return Promise.all(this.current.dependencies);\n }\n\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = Util.transform(\n this.transformMatrix,\n transformMatrix\n );\n this.tgrp = null;\n }\n\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n\n const svgElement = this._initialize(viewport);\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i],\n });\n }\n return opListToTree(opList);\n }\n\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n\n switch (fnId | 0) {\n case OPS.beginText:\n this.beginText();\n break;\n case OPS.dependency:\n // Handled in `loadDependencies`, so no warning should be shown.\n break;\n case OPS.setLeading:\n this.setLeading(args);\n break;\n case OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n case OPS.setFont:\n this.setFont(args);\n break;\n case OPS.showText:\n this.showText(args[0]);\n break;\n case OPS.showSpacedText:\n this.showText(args[0]);\n break;\n case OPS.endText:\n this.endText();\n break;\n case OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n case OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n case OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n case OPS.setHScale:\n this.setHScale(args[0]);\n break;\n case OPS.setTextMatrix:\n this.setTextMatrix(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n break;\n case OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n case OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n case OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n case OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n case OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n case OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n case OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n case OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n case OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n case OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n case OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n case OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n case OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n case OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n case OPS.setGState:\n this.setGState(args[0]);\n break;\n case OPS.fill:\n this.fill();\n break;\n case OPS.eoFill:\n this.eoFill();\n break;\n case OPS.stroke:\n this.stroke();\n break;\n case OPS.fillStroke:\n this.fillStroke();\n break;\n case OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n case OPS.clip:\n this.clip(\"nonzero\");\n break;\n case OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n case OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n case OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n case OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n case OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n case OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n case OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n case OPS.closePath:\n this.closePath();\n break;\n case OPS.closeStroke:\n this.closeStroke();\n break;\n case OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n case OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n case OPS.nextLine:\n this.nextLine();\n break;\n case OPS.transform:\n this.transform(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n break;\n case OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n case OPS.endPath:\n this.endPath();\n break;\n case 92:\n this.group(opTreeElement.items);\n break;\n default:\n warn(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.hypot(a, b);\n\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(\n null,\n \"font-size\",\n `${pf(current.fontSize)}px`\n );\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.appendChild(current.tspan);\n }\n\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = IDENTITY_MATRIX;\n current.lineMatrix = IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(\n null,\n \"font-size\",\n `${pf(current.fontSize)}px`\n );\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return;\n }\n\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n let x = 0;\n for (const glyph of glyphs) {\n if (glyph === null) {\n // Word break\n x += fontDirection * wordSpacing;\n continue;\n } else if (isNum(glyph)) {\n x += (spacingDir * glyph * fontSize) / 1000;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n let vx;\n const vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n current.tspan.textContent += character;\n } else {\n // TODO: To assist with text selection, we should replace the missing\n // character with a space character if charWidth is not zero.\n // But we cannot just do \"character = ' '\", because the ' ' character\n // might actually map to a different glyph.\n }\n\n let charWidth;\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n }\n current.tspan.setAttributeNS(\n null,\n \"x\",\n current.xcoords.map(pf).join(\" \")\n );\n if (vertical) {\n current.tspan.setAttributeNS(\n null,\n \"y\",\n current.ycoords.map(pf).join(\" \")\n );\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(\n null,\n \"font-size\",\n `${pf(current.fontSize)}px`\n );\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n\n const fillStrokeMode =\n current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n if (\n fillStrokeMode === TextRenderingMode.FILL ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === TextRenderingMode.ADD_TO_PATH) {\n // Workaround for Firefox: We must set fill=\"transparent\" because\n // fill=\"none\" would generate an empty clipping path.\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n\n if (\n fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE\n ) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n // Include the text rise in the text matrix since the `pm` function\n // creates the SVG element's `translate` entry (work on a copy to avoid\n // altering the original text matrix).\n let textMatrix = current.textMatrix;\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(\n null,\n \"transform\",\n `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`\n );\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.appendChild(current.tspan);\n current.txtgrp.appendChild(current.txtElement);\n\n this._ensureTransformGroup().appendChild(current.txtElement);\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\n \"addFontStyle: No font data available, \" +\n 'ensure that the \"fontExtraProperties\" API parameter is set.'\n );\n }\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.appendChild(this.cssStyle);\n }\n\n const url = createObjectURL(\n fontObj.data,\n fontObj.mimetype,\n this.forceDataSchema\n );\n this.cssStyle.textContent +=\n `@font-face { font-family: \"${fontObj.loadedName}\";` +\n ` src: url(${url}); }\\n`;\n }\n\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n\n if (\n this.embedFonts &&\n !fontObj.missingFile &&\n !this.embeddedFonts[fontObj.loadedName]\n ) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n current.fontMatrix = fontObj.fontMatrix || FONT_IDENTITY_MATRIX;\n\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n current.ycoords = [];\n }\n\n endText() {\n const current = this.current;\n if (\n current.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG &&\n current.txtElement?.hasChildNodes()\n ) {\n // If no glyphs are shown (i.e. no child nodes), no clipping occurs.\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n // Path properties\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = Util.makeHexColor(r, g, b);\n }\n\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n\n setFillRGBColor(r, g, b) {\n this.current.fillColor = Util.makeHexColor(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n\n shadingFill(args) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n const inv = Util.inverseTransform(this.transformMatrix);\n const bl = Util.applyTransform([0, 0], inv);\n const br = Util.applyTransform([0, height], inv);\n const ul = Util.applyTransform([width, 0], inv);\n const ur = Util.applyTransform([width, height], inv);\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n this._ensureTransformGroup().appendChild(rect);\n }\n\n /**\n * @private\n */\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n return this._makeShadingPattern(args);\n }\n\n /**\n * @private\n */\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n\n const tilingId = `shading${shadingCount++}`;\n const [tx0, ty0, tx1, ty1] = Util.normalizeRect([\n ...Util.applyTransform([x0, y0], matrix),\n ...Util.applyTransform([x1, y1], matrix),\n ]);\n const [xscale, yscale] = Util.singularValueDecompose2dScale(matrix);\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n\n const tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", `${tx0}`);\n tiling.setAttributeNS(null, \"y\", `${ty0}`);\n\n // Save current state.\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n if (paintType === 2) {\n const cssColor = Util.makeHexColor(...color);\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n this.executeOpTree(this.convertOpList(operatorList));\n\n // Restore saved state.\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n\n tiling.appendChild(bbox.childNodes[0]);\n this.defs.appendChild(tiling);\n return `url(#${tilingId})`;\n }\n\n /**\n * @private\n */\n _makeShadingPattern(args) {\n if (typeof args === \"string\") {\n args = this.objs.get(args);\n }\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\n\n switch (args[1]) {\n case \"axial\":\n const point0 = args[4];\n const point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n case \"radial\":\n const focalPoint = args[4];\n const circlePoint = args[5];\n const focalRadius = args[6];\n const circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.appendChild(stop);\n }\n this.defs.appendChild(gradient);\n return `url(#${shadingId})`;\n case \"Mesh\":\n warn(\"Unimplemented pattern Mesh\");\n return null;\n case \"Dummy\":\n return \"hotpink\";\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x,\n y = current.y;\n let d = [];\n let j = 0;\n\n for (const op of ops) {\n switch (op | 0) {\n case OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push(\n \"M\",\n pf(x),\n pf(y),\n \"L\",\n pf(xw),\n pf(y),\n \"L\",\n pf(xw),\n pf(yh),\n \"L\",\n pf(x),\n pf(yh),\n \"Z\"\n );\n break;\n case OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n case OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n case OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\n \"C\",\n pf(args[j]),\n pf(args[j + 1]),\n pf(args[j + 2]),\n pf(args[j + 3]),\n pf(x),\n pf(y)\n );\n j += 6;\n break;\n case OPS.curveTo2:\n d.push(\n \"C\",\n pf(x),\n pf(y),\n pf(args[j]),\n pf(args[j + 1]),\n pf(args[j + 2]),\n pf(args[j + 3])\n );\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\n \"C\",\n pf(args[j]),\n pf(args[j + 1]),\n pf(x),\n pf(y),\n pf(x),\n pf(y)\n );\n j += 4;\n break;\n case OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n\n d = d.join(\" \");\n\n if (\n current.path &&\n ops.length > 0 &&\n ops[0] !== OPS.rectangle &&\n ops[0] !== OPS.moveTo\n ) {\n // If a path does not start with an OPS.rectangle or OPS.moveTo, it has\n // probably been divided into two OPS.constructPath operators by\n // OperatorList. Append the commands to the previous path element.\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n this._ensureTransformGroup().appendChild(current.path);\n }\n\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n\n // Saving a reference in current.element so that it can be addressed\n // in 'fill' and 'stroke'\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n\n endPath() {\n const current = this.current;\n\n // Painting operators end a path.\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\n // Add the current path to a clipping path.\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n // A deep clone is needed when text is used as a clipping path.\n const clipElement = current.element.cloneNode(true);\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n // The previous clipping group content can go out of order -- resetting\n // cached clipGroups.\n current.clipGroup = null;\n for (const prev of this.extraStack) {\n prev.clipGroup = null;\n }\n // Intersect with the previous clipping path.\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n current.activeClipUrl = `url(#${clipId})`;\n\n this.tgrp = null;\n }\n\n clip(type) {\n this.pendingClip = type;\n }\n\n closePath() {\n const current = this.current;\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setRenderingIntent(intent) {\n // This operation is ignored since we haven't found a use case for it yet.\n }\n\n setFlatness(flatness) {\n // This operation is ignored since we haven't found a use case for it yet.\n }\n\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value);\n break;\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n case \"ca\":\n this.setFillAlpha(value);\n break;\n default:\n warn(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n\n fill() {\n const current = this.current;\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n\n stroke() {\n const current = this.current;\n if (current.element) {\n this._setStrokeAttributes(current.element);\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n\n /**\n * @private\n */\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(\n null,\n \"stroke-width\",\n pf(lineWidthScale * current.lineWidth) + \"px\"\n );\n element.setAttributeNS(\n null,\n \"stroke-dasharray\",\n dashArray.map(pf).join(\" \")\n );\n element.setAttributeNS(\n null,\n \"stroke-dashoffset\",\n pf(lineWidthScale * current.dashPhase) + \"px\"\n );\n }\n\n eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n this.fill();\n }\n\n fillStroke() {\n // Order is important since stroke wants fill to be none.\n // First stroke, then if fill needed, it will be overwritten.\n this.stroke();\n this.fill();\n }\n\n eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n this.fillStroke();\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n paintImageXObject(objId) {\n const imgData = objId.startsWith(\"g_\")\n ? this.commonObjs.get(objId)\n : this.objs.get(objId);\n if (!imgData) {\n warn(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n\n const imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(\n null,\n \"transform\",\n `scale(${pf(1 / width)} ${pf(-1 / height)})`\n );\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n }\n\n paintImageMaskXObject(imgData) {\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n\n this.defs.appendChild(mask);\n this._ensureTransformGroup().appendChild(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(\n matrix[0],\n matrix[1],\n matrix[2],\n matrix[3],\n matrix[4],\n matrix[5]\n );\n }\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {}\n\n /**\n * @private\n */\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n\n // Create the definitions element.\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.appendChild(definitions);\n this.defs = definitions;\n\n // Create the root group element, which acts a container for all other\n // groups and applies the viewport transform.\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.appendChild(rootGroup);\n\n // For the construction of the SVG image we are only interested in the\n // root group, so we expose it as the entry point of the SVG image for\n // the other code in this class.\n this.svg = rootGroup;\n\n return svg;\n }\n\n /**\n * @private\n */\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.appendChild(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n return this.current.clipGroup;\n }\n\n /**\n * @private\n */\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n return this.tgrp;\n }\n };\n}\n\nexport { SVGGraphics };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport {\n AbortException,\n assert,\n createPromiseCapability,\n MissingPDFException,\n} from \"../shared/util.js\";\nimport {\n extractFilenameFromHeader,\n validateRangeRequestCapabilities,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\n 'Module \"./node_stream.js\" shall not be used with MOZCENTRAL builds.'\n );\n}\n\nconst fs = __non_webpack_require__(\"fs\");\nconst http = __non_webpack_require__(\"http\");\nconst https = __non_webpack_require__(\"https\");\nconst url = __non_webpack_require__(\"url\");\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n const parsedUrl = url.parse(sourceUrl);\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n // Prepending 'file:///' to Windows absolute path.\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n // Changes protocol to 'file:' if url refers to filesystem.\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n return parsedUrl;\n}\n\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp =\n this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n // Check if url refers to filesystem.\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n getFullReader() {\n assert(\n !this._fullRequestReader,\n \"PDFNodeStream.getFullReader can only be called once.\"\n );\n this._fullRequestReader = this.isFsUrl\n ? new PDFNodeStreamFsFullReader(this)\n : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const rangeReader = this.isFsUrl\n ? new PDFNodeStreamFsRangeReader(this, start, end)\n : new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\n\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length; // optional\n this._loaded = 0;\n this._filename = null;\n\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n\n this._readableStream = null;\n this._readCapability = createPromiseCapability();\n this._headersCapability = createPromiseCapability();\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return { value: undefined, done: true };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = createPromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength,\n });\n }\n // Ensure that `read()` method returns ArrayBuffer.\n const buffer = new Uint8Array(chunk).buffer;\n return { value: buffer, done: false };\n }\n\n cancel(reason) {\n // Call `this._error()` method when cancel is called\n // before _readableStream is set.\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n\n readableStream.on(\"end\", () => {\n // Destroy readable to minimize resource usage.\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n // We need to stop reading when range is supported and streaming is\n // disabled.\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new AbortException(\"streaming is disabled\"));\n }\n\n // Destroy ReadableStream if already in errored state.\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\n\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = createPromiseCapability();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return { value: undefined, done: true };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = createPromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n if (this.onProgress) {\n this.onProgress({ loaded: this._loaded });\n }\n // Ensure that `read()` method returns ArrayBuffer.\n const buffer = new Uint8Array(chunk).buffer;\n return { value: buffer, done: false };\n }\n\n cancel(reason) {\n // Call `this._error()` method when cancel is called\n // before _readableStream is set.\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n\n readableStream.on(\"end\", () => {\n // Destroy readableStream to minimize resource usage.\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n // Destroy readableStream if already in errored state.\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\n\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers,\n };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._headersCapability.resolve();\n this._setReadableStream(response);\n\n const getResponseHeader = name => {\n // Make sure that headers name are in lower case, as mentioned\n // here: https://nodejs.org/api/http.html#http_message_headers.\n return this._readableStream.headers[name.toLowerCase()];\n };\n const { allowRangeRequests, suggestedLength } =\n validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange,\n });\n\n this._isRangeSupported = allowRangeRequests;\n // Setting right content length.\n this._contentLength = suggestedLength || this._contentLength;\n\n this._filename = extractFilenameFromHeader(getResponseHeader);\n };\n\n this._request = null;\n if (this._url.protocol === \"http:\") {\n this._request = http.request(\n createRequestOptions(this._url, stream.httpHeaders),\n handleResponse\n );\n } else {\n this._request = https.request(\n createRequestOptions(this._url, stream.httpHeaders),\n handleResponse\n );\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n this._headersCapability.reject(reason);\n });\n // Note: `request.end(data)` is used to write `data` to request body\n // and notify end of request. But one should always call `request.end()`\n // even if there is no data to write -- (to notify the end of request).\n this._request.end();\n }\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n\n this._httpHeaders = {};\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n if (typeof value === \"undefined\") {\n continue;\n }\n this._httpHeaders[property] = value;\n }\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n this._setReadableStream(response);\n };\n\n this._request = null;\n if (this._url.protocol === \"http:\") {\n this._request = http.request(\n createRequestOptions(this._url, this._httpHeaders),\n handleResponse\n );\n } else {\n this._request = https.request(\n createRequestOptions(this._url, this._httpHeaders),\n handleResponse\n );\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n this._request.end();\n }\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n let path = decodeURIComponent(this._url.path);\n\n // Remove the extra slash to get right path from url like `file:///C:/`\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new MissingPDFException(`Missing PDF \"${path}\".`);\n }\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n // Setting right content length.\n this._contentLength = stat.size;\n\n this._setReadableStream(fs.createReadStream(path));\n this._headersCapability.resolve();\n });\n }\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n\n let path = decodeURIComponent(this._url.path);\n\n // Remove the extra slash to get right path from url like `file:///C:/`\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n this._setReadableStream(fs.createReadStream(path, { start, end: end - 1 }));\n }\n}\n\nexport { PDFNodeStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n MissingPDFException,\n UnexpectedResponseException,\n} from \"../shared/util.js\";\nimport { getFilenameFromContentDispositionHeader } from \"./content_disposition.js\";\nimport { isPdfFile } from \"./display_utils.js\";\n\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange,\n}) {\n assert(rangeChunkSize > 0, \"Range chunk size must be larger than zero\");\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined,\n };\n\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n // The file size is smaller than the size of two chunks, so it does not\n // make any sense to abort the request and retry with a range request.\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n if (contentDisposition) {\n let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n if (isPdfFile(filename)) {\n return filename;\n }\n }\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || (status === 0 && url.startsWith(\"file:\"))) {\n return new MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new UnexpectedResponseException(\n `Unexpected server response (${status}) while retrieving PDF \"${url}\".`,\n status\n );\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\nexport {\n createResponseStatusError,\n extractFilenameFromHeader,\n validateRangeRequestCapabilities,\n validateResponseStatus,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToBytes } from \"../shared/util.js\";\n\n// This getFilenameFromContentDispositionHeader function is adapted from\n// https://github.com/Rob--W/open-in-browser/blob/7e2e35a38b8b4e981b11da7b2f01df0149049e92/extension/content-disposition.js\n// with the following changes:\n// - Modified to conform to PDF.js's coding style.\n// - Support UTF-8 decoding when TextDecoder is unsupported.\n// - Move return to the end of the function to prevent Babel from dropping the\n// function declarations.\n\n/**\n * Extract file name from the Content-Disposition HTTP response header.\n *\n * @param {string} contentDisposition\n * @returns {string} Filename, if found in the Content-Disposition header.\n */\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n\n // filename*=ext-value (\"ext-value\" from RFC 5987, referenced by RFC 6266).\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n // Continuations (RFC 2231 section 3, referenced by RFC 5987 section 3.1).\n // filename*n*=part\n // filename*n=part\n tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n // RFC 2047, section\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n\n // filename=value (RFC 5987, section 4.1).\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n // After this line there are only function declarations. We cannot put\n // \"return\" here for readability because babel would then drop the function\n // declarations...\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\n \"(?:^|;)\\\\s*\" +\n attributePattern +\n \"\\\\s*=\\\\s*\" +\n // Captures: value = token | quoted-string\n // (RFC 2616, section 3.6 and referenced by RFC 6266 4.1)\n \"(\" +\n '[^\";\\\\s][^;\\\\s]*' +\n \"|\" +\n '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' +\n \")\",\n flags\n );\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch (e) {\n // TextDecoder constructor threw - unrecognized encoding.\n // Or TextDecoder API is not available (in IE / Edge).\n if (/^utf-?8$/i.test(encoding)) {\n // UTF-8 is commonly used, try to support it in another way:\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {}\n }\n }\n }\n return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n // Maybe multi-byte UTF-8.\n value = textdecode(\"utf-8\", value);\n if (needsEncodingFixup) {\n // Try iso-8859-1 encoding.\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n // Iterate over all filename*n= and filename*n*= with n being an integer\n // of at least zero. Any non-zero number must not start with '0'.\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match; // eslint-disable-line prefer-const\n n = parseInt(n, 10);\n if (n in matches) {\n // Ignore anything after the invalid second filename*0.\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n const parts = [];\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n // Numbers must be consecutive. Truncate when there is a hole.\n break;\n }\n let [quot, part] = matches[n]; // eslint-disable-line prefer-const\n part = rfc2616unquote(part);\n if (quot) {\n part = unescape(part);\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n parts.push(part);\n }\n return parts.join(\"\");\n }\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n // Find the first unescaped \" and terminate there.\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1; // Truncates and stop the iteration.\n }\n parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n // Decodes \"ext-value\" from RFC 5987.\n const encodingend = extvalue.indexOf(\"'\");\n if (encodingend === -1) {\n // Some servers send \"filename*=\" without encoding 'language' prefix,\n // e.g. in https://github.com/Rob--W/open-in-browser/issues/26\n // Let's accept the value like Firefox (57) (Chrome 62 rejects it).\n return extvalue;\n }\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n // Ignore language (RFC 5987 section 3.2.1, and RFC 6266 section 4.1 ).\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n function rfc2047decode(value) {\n // RFC 2047-decode the result. Firefox tried to drop support for it, but\n // backed out because some servers use it - https://bugzil.la/875615\n // Firefox's condition for decoding is here: https://searchfox.org/mozilla-central/rev/4a590a5a15e35d88a3b23dd6ac3c471cf85b04a8/netwerk/mime/nsMIMEHeaderParamImpl.cpp#742-748\n\n // We are more strict and only recognize RFC 2047-encoding if the value\n // starts with \"=?\", since then it is likely that the full value is\n // RFC 2047-encoded.\n\n // Firefox also decodes words even where RFC 2047 section 5 states:\n // \"An 'encoded-word' MUST NOT appear within a 'quoted-string'.\"\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n // RFC 2047, section 2.4\n // encoded-word = \"=?\" charset \"?\" encoding \"?\" encoded-text \"?=\"\n // charset = token (but let's restrict to characters that denote a\n // possibly valid encoding).\n // encoding = q or b\n // encoded-text = any printable ASCII character other than ? or space.\n // ... but Firefox permits ? and space.\n return value.replace(\n /=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g,\n function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n // RFC 2047 section 4.2.\n text = text.replace(/_/g, \" \");\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n } // else encoding is b or B - base64 (RFC 2047 section 4.1)\n try {\n text = atob(text);\n } catch (e) {}\n return textdecode(charset, text);\n }\n );\n }\n\n return \"\";\n}\n\nexport { getFilenameFromContentDispositionHeader };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n createPromiseCapability,\n stringToBytes,\n} from \"../shared/util.js\";\nimport {\n createResponseStatusError,\n extractFilenameFromHeader,\n validateRangeRequestCapabilities,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\n 'Module \"./network.js\" shall not be used with MOZCENTRAL builds.'\n );\n}\n\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n if (typeof data !== \"string\") {\n return data;\n }\n const array = stringToBytes(data);\n return array.buffer;\n}\n\nclass NetworkManager {\n constructor(url, args = {}) {\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = (this.isHttp && args.httpHeaders) || Object.create(null);\n this.withCredentials = args.withCredentials || false;\n this.getXhr =\n args.getXhr ||\n function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end,\n };\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n }\n\n requestFull(listeners) {\n return this.request(listeners);\n }\n\n request(args) {\n const xhr = this.getXhr();\n const xhrId = this.currXhrId++;\n const pendingRequest = (this.pendingRequests[xhrId] = { xhr });\n\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n if (typeof value === \"undefined\") {\n continue;\n }\n xhr.setRequestHeader(property, value);\n }\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n xhr.responseType = \"arraybuffer\";\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n\n xhr.send(null);\n\n return xhrId;\n }\n\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return; // Maybe abortRequest was called...\n }\n pendingRequest.onProgress?.(evt);\n }\n\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return; // Maybe abortRequest was called...\n }\n\n const xhr = pendingRequest.xhr;\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (!(xhrId in this.pendingRequests)) {\n // The XHR request might have been aborted in onHeadersReceived()\n // callback, in which case we should abort request.\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n // Success status == 0 can be on ftp, file and other protocols.\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const xhrStatus = xhr.status || OK_RESPONSE;\n\n // From http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2:\n // \"A server MAY ignore the Range header\". This means it's possible to\n // get a 200 rather than a 206 response from a range request.\n const ok_response_on_range_request =\n xhrStatus === OK_RESPONSE &&\n pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (\n !ok_response_on_range_request &&\n xhrStatus !== pendingRequest.expectedStatus\n ) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n\n const chunk = getArrayBuffer(xhr);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk,\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk,\n });\n } else {\n pendingRequest.onError?.(xhr.status);\n }\n }\n\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n}\n\n/** @implements {IPDFStream} */\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials,\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n assert(\n !this._fullRequestReader,\n \"PDFNetworkStream.getFullReader can only be called once.\"\n );\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(\n this._manager,\n this._source\n );\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(\n this._manager,\n begin,\n end\n );\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this),\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = createPromiseCapability();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length; // Optional\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n\n this.onProgress = null;\n }\n\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n const { allowRangeRequests, suggestedLength } =\n validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange,\n });\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n // Setting right content length.\n this._contentLength = suggestedLength || this._contentLength;\n\n this._filename = extractFilenameFromHeader(getResponseHeader);\n\n if (this._isRangeSupported) {\n // NOTE: by cancelling the full request, and then issuing range\n // requests, there will be an issue for sites where you can only\n // request the pdf once. However, if this is the case, then the\n // server should not be returning that it can support range requests.\n this._manager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n }\n\n _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({ value: data.chunk, done: false });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n }\n\n _onError(status) {\n this._storedError = createResponseStatusError(status, this._url);\n this._headersReceivedCapability.reject(this._storedError);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n\n _onProgress(evt) {\n this.onProgress?.({\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength,\n });\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n return { value: chunk, done: false };\n }\n if (this._done) {\n return { value: undefined, done: true };\n }\n const requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n this._headersReceivedCapability.reject(reason);\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n\n const args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this),\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _close() {\n this.onClosed?.(this);\n }\n\n _onDone(data) {\n const chunk = data.chunk;\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({ value: chunk, done: false });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n this._close();\n }\n\n _onError(status) {\n this._storedError = createResponseStatusError(status, this._url);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\n this.onProgress?.({ loaded: evt.loaded });\n }\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return { value: chunk, done: false };\n }\n if (this._done) {\n return { value: undefined, done: true };\n }\n const requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({ value: undefined, done: true });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n }\n}\n\nexport { PDFNetworkStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AbortException,\n assert,\n createPromiseCapability,\n} from \"../shared/util.js\";\nimport {\n createResponseStatusError,\n extractFilenameFromHeader,\n validateRangeRequestCapabilities,\n validateResponseStatus,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\n 'Module \"./fetch_stream.js\" shall not be used with MOZCENTRAL builds.'\n );\n}\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController?.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\",\n };\n}\n\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n if (typeof value === \"undefined\") {\n continue;\n }\n headers.append(property, value);\n }\n return headers;\n}\n\n/** @implements {IPDFStream} */\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n getFullReader() {\n assert(\n !this._fullRequestReader,\n \"PDFFetchStream.getFullReader can only be called once.\"\n );\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = createPromiseCapability();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n\n this._headers = createHeaders(this._stream.httpHeaders);\n\n const url = source.url;\n fetch(\n url,\n createFetchOptions(\n this._headers,\n this._withCredentials,\n this._abortController\n )\n )\n .then(response => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._reader = response.body.getReader();\n this._headersCapability.resolve();\n\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n const { allowRangeRequests, suggestedLength } =\n validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange,\n });\n\n this._isRangeSupported = allowRangeRequests;\n // Setting right content length.\n this._contentLength = suggestedLength || this._contentLength;\n\n this._filename = extractFilenameFromHeader(getResponseHeader);\n\n // We need to stop reading when range is supported and streaming is\n // disabled.\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new AbortException(\"Streaming is disabled.\"));\n }\n })\n .catch(this._headersCapability.reject);\n\n this.onProgress = null;\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._headersCapability.promise;\n const { value, done } = await this._reader.read();\n if (done) {\n return { value, done };\n }\n this._loaded += value.byteLength;\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength,\n });\n }\n const buffer = new Uint8Array(value).buffer;\n return { value: buffer, done: false };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = createPromiseCapability();\n this._isStreamingSupported = !source.disableStream;\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._headers = createHeaders(this._stream.httpHeaders);\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n const url = source.url;\n fetch(\n url,\n createFetchOptions(\n this._headers,\n this._withCredentials,\n this._abortController\n )\n )\n .then(response => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._readCapability.resolve();\n this._reader = response.body.getReader();\n })\n .catch(this._readCapability.reject);\n\n this.onProgress = null;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n const { value, done } = await this._reader.read();\n if (done) {\n return { value, done };\n }\n this._loaded += value.byteLength;\n if (this.onProgress) {\n this.onProgress({ loaded: this._loaded });\n }\n const buffer = new Uint8Array(value).buffer;\n return { value: buffer, done: false };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n}\n\nexport { PDFFetchStream };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __w_pdfjs_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__w_pdfjs_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable sort-exports/sort-exports */\n\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./display/api\").PDFDocumentLoadingTask} PDFDocumentLoadingTask */\n/** @typedef {import(\"./display/api\").PDFDocumentProxy} PDFDocumentProxy */\n/** @typedef {import(\"./display/api\").PDFPageProxy} PDFPageProxy */\n/** @typedef {import(\"./display/api\").RenderTask} RenderTask */\n\nimport {\n addLinkAttributes,\n getFilenameFromUrl,\n getPdfFilenameFromUrl,\n getXfaPageViewport,\n isPdfFile,\n isValidFetchUrl,\n LinkTarget,\n loadScript,\n PDFDateString,\n PixelsPerInch,\n RenderingCancelledException,\n} from \"./display/display_utils.js\";\nimport {\n AnnotationMode,\n CMapCompressionType,\n createObjectURL,\n createPromiseCapability,\n createValidAbsoluteUrl,\n InvalidPDFException,\n MissingPDFException,\n OPS,\n PasswordResponses,\n PermissionFlag,\n removeNullCharacters,\n shadow,\n UnexpectedResponseException,\n UNSUPPORTED_FEATURES,\n Util,\n VerbosityLevel,\n} from \"./shared/util.js\";\nimport {\n build,\n getDocument,\n LoopbackPort,\n PDFDataRangeTransport,\n PDFWorker,\n setPDFNetworkStreamFactory,\n version,\n} from \"./display/api.js\";\nimport { AnnotationLayer } from \"./display/annotation_layer.js\";\nimport { GlobalWorkerOptions } from \"./display/worker_options.js\";\nimport { isNodeJS } from \"./shared/is_node.js\";\nimport { renderTextLayer } from \"./display/text_layer.js\";\nimport { SVGGraphics } from \"./display/svg.js\";\nimport { XfaLayer } from \"./display/xfa_layer.js\";\n\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsVersion =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : void 0;\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsBuild =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : void 0;\n\nif (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")) {\n const streamsPromise = Promise.all([\n import(\"pdfjs/display/network.js\"),\n import(\"pdfjs/display/fetch_stream.js\"),\n ]);\n\n setPDFNetworkStreamFactory(async params => {\n const [{ PDFNetworkStream }, { PDFFetchStream }] = await streamsPromise;\n if (isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n} else if (PDFJSDev.test(\"GENERIC || CHROME\")) {\n if (PDFJSDev.test(\"GENERIC\") && isNodeJS) {\n const { PDFNodeStream } = require(\"./display/node_stream.js\");\n\n setPDFNetworkStreamFactory(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const { PDFNetworkStream } = require(\"./display/network.js\");\n const { PDFFetchStream } = require(\"./display/fetch_stream.js\");\n\n setPDFNetworkStreamFactory(params => {\n if (isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n }\n}\n\nexport {\n // From \"./display/display_utils.js\":\n addLinkAttributes,\n getFilenameFromUrl,\n getPdfFilenameFromUrl,\n isPdfFile,\n LinkTarget,\n loadScript,\n PDFDateString,\n PixelsPerInch,\n RenderingCancelledException,\n getXfaPageViewport,\n // From \"./shared/util.js\":\n AnnotationMode,\n CMapCompressionType,\n createObjectURL,\n createPromiseCapability,\n createValidAbsoluteUrl,\n InvalidPDFException,\n MissingPDFException,\n OPS,\n PasswordResponses,\n PermissionFlag,\n removeNullCharacters,\n shadow,\n UnexpectedResponseException,\n UNSUPPORTED_FEATURES,\n Util,\n VerbosityLevel,\n // From \"./display/api.js\":\n build,\n getDocument,\n LoopbackPort,\n PDFDataRangeTransport,\n PDFWorker,\n version,\n // From \"./display/annotation_layer.js\":\n AnnotationLayer,\n // From \"./display/worker_options.js\":\n GlobalWorkerOptions,\n // From \"./display/text_layer.js\":\n renderTextLayer,\n // From \"./display/svg.js\":\n SVGGraphics,\n // From \"./display/xfa_layer.js\":\n XfaLayer,\n};\n"],"names":["DEFAULT_LINK_REL","SVG_NS","PixelsPerInch","CSS","PDF","shadow","constructor","ownerDocument","globalThis","_createCanvas","canvas","asTypedArray","isValidFetchUrl","document","response","fetch","stringToBytes","request","XMLHttpRequest","data","resolve","reject","_fetchData","cMapData","compressionType","fetchData","_createSVG","offsetX","offsetY","dontFlip","centerX","viewBox","centerY","rotation","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","Math","offsetCanvasY","width","height","clone","scale","convertToViewportPoint","convertToViewportRectangle","topLeft","rect","bottomRight","convertToPdfPoint","LinkTarget","NONE","SELF","BLANK","PARENT","TOP","enabled","assert","url","urlNullRemoved","removeNullCharacters","link","targetStr","ii","i","anchor","query","end","defaultFilename","isDataScheme","warn","reURI","reFilename","splitURI","suggestedFilename","decodeURIComponent","Object","time","name","Date","timeEnd","start","toString","outBuf","longest","duration","baseUrl","protocol","removeScriptElement","script","console","isString","pdfDateStringRegex","matches","year","parseInt","month","day","hour","minute","second","universalTimeRelation","offsetHour","offsetMinute","xfaPage","module","require","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","value","enumerable","configurable","writable","obj","define","protoGenerator","outerFn","generator","context","tryLocsList","makeInvokeMethod","exports","type","arg","fn","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","ctor","genFun","__await","record","tryCatch","result","invoke","previousPromise","callInvokeWithMethodAndArg","defineIteratorMethods","AsyncIterator","PromiseImpl","iter","wrap","state","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","done","info","entry","tryLoc","locs","keys","key","next","iteratorMethod","iterable","isNaN","Context","reset","stop","rootEntry","rootRecord","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","complete","finish","resetTryEntry","thrown","delegateYield","iterator","resultName","nextLoc","regeneratorRuntime","Function","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","RenderingIntentFlag","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationStateModelType","MARKED","REVIEW","AnnotationMarkedState","UNMARKED","AnnotationReviewState","ACCEPTED","REJECTED","CANCELLED","COMPLETED","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","O","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","FontType","TYPE1","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","UNSUPPORTED_FEATURES","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","errorContentSubStream","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","Number","unreachable","base","other","options","dots","stringToUTF8String","absoluteUrl","_isValidProtocol","BaseException","NullCharactersRegExp","InvisibleCharactersRegExp","replaceInvisible","str","bytes","length","MAX_ARGUMENT_COUNT","String","strBuf","chunkEnd","chunk","arr","resultLength","arrayByteLength","pos","item","itemLength","buffer8","view32","IsLittleEndianCached","isLittleEndian","IsEvalSupportedCached","isEvalSupported","hexNumbers","Array","n","m1","m2","xt","p","m","yt","d","p1","Util","p2","r","p3","p4","v","transpose","a","b","c","first","sx","sy","orderedX","rect1","rect2","orderedY","tvalues","bounds","t","b2ac","sqrtb2ac","t1","t2","j","jlen","mt","PDFStringTranslateTable","code","match","buf","char","escape","unescape","encodeURIComponent","arr1","arr2","date","buffer","capability","isSettled","get","contentType","forceDataSchema","URL","digits","b1","b2","b3","d1","d2","d3","d4","Buffer","isNodeJS","process","$","global","getOwnPropertyDescriptor","f","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","source","TARGET","target","GLOBAL","STATIC","stat","FORCED","targetProperty","sourceProperty","descriptor","prototype","noTargetGet","forced","undefined","sham","check","it","window","self","DESCRIPTORS","call","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPropertyKey","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","P","error","fails","defineProperty","exec","bind","apply","arguments","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","bitmap","IndexedObject","requireObjectCoercible","uncurryThis","classof","split","FunctionPrototype","callBind","stringSlice","slice","TypeError","toPrimitive","isSymbol","argument","isObject","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","input","pref","exoticToPrim","isCallable","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","aFunction","namespace","NATIVE_SYMBOL","Symbol","V8_VERSION","getOwnPropertySymbols","symbol","userAgent","Deno","versions","version","v8","aCallable","func","tryToString","val","valueOf","shared","uid","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","IS_PURE","store","push","mode","copyright","SHARED","toObject","hasOwnProperty","id","postfix","random","createElement","EXISTS","definePropertyModule","object","anObject","$defineProperty","Attributes","inspectSource","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","getInternalState","enforceInternalState","enforce","TEMPLATE","unsafe","simple","replace","join","functionToString","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","set","has","getterFor","TYPE","wmget","wmhas","wmset","metadata","facade","STATE","test","getDescriptor","PROPER","something","ownKeys","getOwnPropertyDescriptorModule","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","internalObjectKeys","enumBugKeys","getOwnPropertyNames","indexOf","names","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","index","includes","toIntegerOrInfinity","max","min","integer","ceil","floor","number","toLength","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","toLowerCase","factory","m11","m12","m13","m14","m21","m22","m23","m24","m31","m32","m33","m34","m41","m42","m43","m44","M11","M12","M21","M22","M41","M42","k","invalidStringError","ref","tf","prop","components","parseFloat","x","y","z","xyz","xyza","fromArray","nosy","axis","idx","axeValues","degToRad","radX","rx","radY","ry","radZ","rz","cosx","sinx","cosy","siny","cosz","sinz","angle","alpha","sinA","cosA","sinA2","Y","Z","x2","y2","z2","radA","CSSMatrix","args","len","ARGS","l","prototypeAccessors","isIdentity","is2D","fromString","fromMatrix","pow","Multiply","Translate","Scale","RX","RY","RZ","Rotate","RotateAxisAngle","SkewX","SkewY","M","w","Version","path","fromEntries","addToUnscopables","Iterators","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","kind","Arguments","create","UNSCOPABLES","ArrayPrototype","defineProperties","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","src","contentWindow","open","NullProtoObject","ActiveXObject","domain","Properties","objectKeys","props","FunctionName","createIteratorConstructor","getPrototypeOf","setPrototypeOf","setToStringTag","IteratorsCore","PROPER_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","entries","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","proto","ENUMERABLE_NEXT","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","TAG","aPossiblePrototype","CORRECT_SETTER","setter","__proto__","iterate","createProperty","AS_ENTRIES","isArrayIteratorMethod","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","unboundFunction","that","IS_ITERATOR","INTERRUPTED","iterFn","step","condition","callFn","usingIterator","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","innerResult","innerError","propertyKey","Promise","clearErrorStack","installErrorCause","normalizeStringArgument","ERROR_STACK_INSTALLABLE","Error","$AggregateError","AggregateError","errors","message","isInstance","AggregateErrorPrototype","stack","errorsArray","arraySlice","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","IS_FIREFOX_OR_SAFARI_STACK","dropEntries","fin","cause","$default","NativePromise","redefineAll","setSpecies","anInstance","checkCorrectnessOfIteration","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","IS_BROWSER","IS_NODE","SPECIES","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","HANDLED","UNHANDLED","SUBCLASSING","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","promise","FakePromise","then","INCORRECT_ITERATION","all","isThenable","notify","isReject","notified","chain","reactions","ok","reaction","handler","fail","exited","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","event","initEvent","IS_UNHANDLED","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","$promiseResolve","counter","remaining","alreadyCalled","race","CONSTRUCTOR_NAME","Constructor","Prototype","SAFE_CLOSING","called","iteratorWithReturn","from","SKIP_CLOSING","ITERATION_SUPPORT","aConstructor","defaultConstructor","S","isConstructor","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","IS_IOS","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","queue","ONREADYSTATECHANGE","location","defer","channel","port","run","runner","listener","post","postMessage","host","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","Reflect","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","flush","head","last","toggle","node","createTextNode","observe","characterData","Pebble","promiseCapability","PromiseCapability","$$resolve","$$reject","allSettled","status","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","NON_GENERIC","real","onFinally","isFunction","e","charAt","STRING_ITERATOR","point","charCodeAt","CONVERT_TO_STRING","position","size","codeAt","amd","WebStreamsPolyfill","SymbolPolyfill","getGlobals","globals","typeIsObject","rethrowAssertionErrorRejection","originalPromise","originalPromiseThen","originalPromiseResolve","originalPromiseReject","newPromise","promiseResolvedWith","promiseRejectedWith","PerformPromiseThen","uponPromise","uponFulfillment","uponRejection","transformPromiseWith","fulfillmentHandler","rejectionHandler","setPromiseIsHandledToTrue","globalQueueMicrotask","resolvedPromise","reflectCall","promiseCall","QUEUE_MAX_ARRAY_SIZE","SimpleQueue","_cursor","_size","_front","_elements","_next","_back","element","oldBack","newBack","shift","oldFront","newFront","oldCursor","newCursor","elements","forEach","callback","peek","front","cursor","ReadableStreamReaderGenericInitialize","reader","stream","_ownerReadableStream","_reader","_state","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","_storedError","ReadableStreamReaderGenericCancel","ReadableStreamCancel","ReadableStreamReaderGenericRelease","defaultReaderClosedPromiseReject","defaultReaderClosedPromiseResetToRejected","readerLockException","_closedPromise","_closedPromise_resolve","_closedPromise_reject","defaultReaderClosedPromiseResolve","AbortSteps","ErrorSteps","CancelSteps","PullSteps","NumberIsFinite","isFinite","MathTrunc","trunc","isDictionary","assertDictionary","assertFunction","assertObject","assertRequiredArgument","assertRequiredField","field","convertUnrestrictedDouble","censorNegativeZero","integerPart","convertUnsignedLongLongWithEnforceRange","lowerBound","upperBound","MAX_SAFE_INTEGER","assertReadableStream","IsReadableStream","AcquireReadableStreamDefaultReader","ReadableStreamDefaultReader","ReadableStreamAddReadRequest","readRequest","_readRequests","ReadableStreamFulfillReadRequest","_closeSteps","_chunkSteps","ReadableStreamGetNumReadRequests","ReadableStreamHasDefaultReader","IsReadableStreamDefaultReader","IsReadableStreamLocked","defaultReaderBrandCheckException","cancel","read","resolvePromise","rejectPromise","_errorSteps","ReadableStreamDefaultReaderRead","releaseLock","closed","toStringTag","_disturbed","_readableStreamController","_a","AsyncIteratorPrototype","asyncIterator","ReadableStreamAsyncIteratorImpl","preventCancel","_ongoingPromise","_isFinished","_preventCancel","_this","nextSteps","_nextSteps","return","returnSteps","_returnSteps","ReadableStreamAsyncIteratorPrototype","IsReadableStreamAsyncIterator","streamAsyncIteratorBrandCheckException","_asyncIteratorImpl","AcquireReadableStreamAsyncIterator","impl","NumberIsNaN","CreateArrayFromList","CopyDataBlockBytes","dest","destOffset","srcOffset","Uint8Array","TransferArrayBuffer","IsDetachedBuffer","ArrayBufferSlice","begin","ArrayBuffer","IsNonNegativeNumber","CloneAsUint8Array","byteOffset","byteLength","DequeueValue","container","pair","_queue","_queueTotalSize","EnqueueValueWithSize","Infinity","RangeError","PeekQueueValue","ResetQueue","ReadableStreamBYOBRequest","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","_view","respond","bytesWritten","_associatedReadableByteStreamController","ReadableByteStreamControllerRespond","respondWithNewView","view","isView","ReadableByteStreamControllerRespondWithNewView","ReadableByteStreamController","IsReadableByteStreamController","byteStreamControllerBrandCheckException","ReadableByteStreamControllerGetBYOBRequest","ReadableByteStreamControllerGetDesiredSize","_closeRequested","_controlledReadableByteStream","ReadableByteStreamControllerClose","enqueue","ReadableByteStreamControllerEnqueue","ReadableByteStreamControllerError","ReadableByteStreamControllerClearPendingPullIntos","_cancelAlgorithm","ReadableByteStreamControllerClearAlgorithms","ReadableByteStreamControllerHandleQueueDrain","autoAllocateChunkSize","_autoAllocateChunkSize","bufferE","pullIntoDescriptor","bufferByteLength","bytesFilled","elementSize","viewConstructor","readerType","_pendingPullIntos","ReadableByteStreamControllerCallPullIfNeeded","byobRequest","desiredSize","controller","shouldPull","ReadableByteStreamControllerShouldCallPull","_pulling","_pullAgain","pullPromise","_pullAlgorithm","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableByteStreamControllerCommitPullIntoDescriptor","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableStreamClose","_byobRequest","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerPullInto","readIntoRequest","DataView","BYTES_PER_ELEMENT","ReadableStreamAddReadIntoRequest","emptyView","ReadableByteStreamControllerRespondInClosedState","firstDescriptor","ReadableStreamHasBYOBReader","ReadableStreamGetNumReadIntoRequests","ReadableByteStreamControllerRespondInReadableState","remainderSize","remainder","ReadableByteStreamControllerRespondInternal","_started","firstPendingPullInto","transferredBuffer","transferredView","ReadableStreamError","SetUpReadableStreamBYOBRequest","_strategyHWM","viewByteLength","SetUpReadableByteStreamController","startAlgorithm","pullAlgorithm","cancelAlgorithm","highWaterMark","startResult","SetUpReadableByteStreamControllerFromUnderlyingSource","underlyingByteSource","pull","AcquireReadableStreamBYOBReader","ReadableStreamBYOBReader","_readIntoRequests","IsReadableStreamBYOBReader","byobReaderBrandCheckException","ReadableStreamBYOBReaderRead","ExtractHighWaterMark","strategy","defaultHWM","ExtractSizeAlgorithm","convertQueuingStrategy","init","convertQueuingStrategySize","convertUnderlyingSink","original","abort","convertUnderlyingSinkAbortCallback","convertUnderlyingSinkCloseCallback","convertUnderlyingSinkStartCallback","convertUnderlyingSinkWriteCallback","assertWritableStream","IsWritableStream","isAbortSignal","aborted","supportsAbortController","AbortController","createAbortController","WritableStream","rawUnderlyingSink","rawStrategy","underlyingSink","InitializeWritableStream","sizeAlgorithm","SetUpWritableStreamDefaultControllerFromUnderlyingSink","streamBrandCheckException$2","IsWritableStreamLocked","WritableStreamAbort","WritableStreamCloseQueuedOrInFlight","WritableStreamClose","getWriter","AcquireWritableStreamDefaultWriter","locked","WritableStreamDefaultWriter","CreateWritableStream","writeAlgorithm","closeAlgorithm","abortAlgorithm","WritableStreamDefaultController","SetUpWritableStreamDefaultController","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","_abortReason","_abortController","_promise","wasAlreadyErroring","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","closeRequest","writer","defaultWriterReadyPromiseResolve","WritableStreamDefaultControllerClose","WritableStreamAddWriteRequest","writeRequest","WritableStreamDealWithRejection","WritableStreamFinishErroring","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","storedError","WritableStreamRejectCloseAndClosedPromiseIfNeeded","abortRequest","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamFinishInFlightClose","defaultWriterClosedPromiseResolve","WritableStreamFinishInFlightCloseWithError","WritableStreamMarkCloseRequestInFlight","WritableStreamMarkFirstWriteRequestInFlight","defaultWriterClosedPromiseReject","WritableStreamUpdateBackpressure","backpressure","defaultWriterReadyPromiseReset","_ownerWritableStream","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterGetDesiredSize","_readyPromise","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterEnsureClosedPromiseRejected","_closedPromiseState","defaultWriterClosedPromiseResetToRejected","_readyPromiseState","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamDefaultControllerWrite","closeSentinel","IsWritableStreamDefaultController","defaultControllerBrandCheckException$2","signal","_controlledWritableStream","WritableStreamDefaultControllerError","_abortAlgorithm","WritableStreamDefaultControllerClearAlgorithms","abortReason","_strategySizeAlgorithm","_writeAlgorithm","_closeAlgorithm","WritableStreamDefaultControllerGetBackpressure","startPromise","WritableStreamDefaultControllerAdvanceQueueIfNeeded","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","enqueueE","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","sinkClosePromise","sinkWritePromise","_readyPromise_resolve","_readyPromise_reject","NativeDOMException","DOMException","isDOMExceptionConstructor","createDOMExceptionPolyfill","captureStackTrace","DOMException$1","ReadableStreamPipeTo","preventClose","preventAbort","shuttingDown","currentWrite","actions","shutdownWithAction","map","action","pipeLoop","resolveLoop","rejectLoop","pipeStep","resolveRead","rejectRead","isOrBecomesErrored","shutdown","isOrBecomesClosed","destClosed_1","waitForWritesToFinish","oldCurrentWrite","originalIsError","originalError","doTheRest","finalize","newError","isError","removeEventListener","ReadableStreamDefaultController","IsReadableStreamDefaultController","defaultControllerBrandCheckException$1","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamDefaultControllerCanCloseOrEnqueue","ReadableStreamDefaultControllerClose","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","ReadableStreamDefaultControllerClearAlgorithms","_controlledReadableStream","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerShouldCallPull","ReadableStreamDefaultControllerHasBackpressure","SetUpReadableStreamDefaultController","SetUpReadableStreamDefaultControllerFromUnderlyingSource","underlyingSource","ReadableStreamTee","cloneForBranch2","ReadableByteStreamTee","ReadableStreamDefaultTee","reading","readAgain","canceled1","canceled2","reason1","reason2","branch1","branch2","resolveCancelPromise","cancelPromise","chunk1","chunk2","cancel1Algorithm","compositeReason","cancelResult","cancel2Algorithm","CreateReadableStream","readAgainForBranch1","readAgainForBranch2","forwardReaderError","thisReader","pullWithDefaultReader","cloneE","pull1Algorithm","pull2Algorithm","pullWithBYOBReader","forBranch2","byobBranch","otherBranch","byobCanceled","otherCanceled","clonedChunk","CreateReadableByteStream","convertUnderlyingDefaultOrByteSource","convertUnderlyingSourceCancelCallback","convertUnderlyingSourcePullCallback","convertUnderlyingSourceStartCallback","convertReadableStreamType","convertReaderOptions","convertReadableStreamReaderMode","convertIteratorOptions","Boolean","convertPipeOptions","assertAbortSignal","convertReadableWritablePair","readable","ReadableStream","rawUnderlyingSource","InitializeReadableStream","streamBrandCheckException$1","getReader","rawOptions","pipeThrough","rawTransform","pipeTo","destination","tee","branches","sourceCancelPromise","convertQueuingStrategyInit","byteLengthSizeFunction","ByteLengthQueuingStrategy","_byteLengthQueuingStrategyHighWaterMark","IsByteLengthQueuingStrategy","byteLengthBrandCheckException","countSizeFunction","CountQueuingStrategy","_countQueuingStrategyHighWaterMark","IsCountQueuingStrategy","countBrandCheckException","convertTransformer","readableType","writableType","convertTransformerFlushCallback","convertTransformerStartCallback","convertTransformerTransformCallback","TransformStream","rawTransformer","rawWritableStrategy","rawReadableStrategy","writableStrategy","readableStrategy","transformer","readableHighWaterMark","readableSizeAlgorithm","writableHighWaterMark","writableSizeAlgorithm","startPromise_resolve","InitializeTransformStream","SetUpTransformStreamDefaultControllerFromTransformer","_transformStreamController","IsTransformStream","streamBrandCheckException","_readable","_writable","TransformStreamDefaultSinkWriteAlgorithm","TransformStreamDefaultSinkAbortAlgorithm","TransformStreamDefaultSinkCloseAlgorithm","TransformStreamDefaultSourcePullAlgorithm","TransformStreamErrorWritableAndUnblockWrite","_backpressureChangePromise","_backpressureChangePromise_resolve","TransformStreamSetBackpressure","TransformStreamError","TransformStreamDefaultControllerClearAlgorithms","TransformStreamDefaultController","IsTransformStreamDefaultController","defaultControllerBrandCheckException","readableController","_controlledTransformStream","TransformStreamDefaultControllerEnqueue","TransformStreamDefaultControllerError","terminate","TransformStreamDefaultControllerTerminate","SetUpTransformStreamDefaultController","transformAlgorithm","flushAlgorithm","_transformAlgorithm","_flushAlgorithm","transformResultE","TransformStreamDefaultControllerPerformTransform","transformPromise","backpressureChangePromise","flushPromise","canvasAndContext","destroy","isCompressed","svg","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DefaultCanvasFactory","DefaultCMapReaderFactory","DefaultStandardFontDataFactory","createPDFNetworkStream","isArrayBuffer","range","params","rangeTransport","worker","setVerbosityLevel","workerParams","GlobalWorkerOptions","PDFWorker","docId","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","initialData","progressiveDone","contentDispositionFilename","disableRange","disableStream","httpHeaders","withCredentials","rangeChunkSize","messageHandler","transport","pdfDataRangeTransport","workerId","apiVersion","password","disableAutoFetch","maxImageSize","disableFontFace","docBaseUrl","ignoreErrors","fontExtraProperties","enableXfa","useSystemFonts","cMapUrl","standardFontDataUrl","doc","PDFDocumentLoadingTask","addRangeListener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","onDataProgress","onDataProgressiveRead","onDataProgressiveDone","transportReady","requestDataRange","deprecated","streamTypes","fontTypes","getPage","getPageIndex","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getJSActions","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","getData","getDownloadInfo","cleanup","keepLoadedFonts","saveDocument","getFieldObjects","hasJSActions","getCalculationOrderIds","pdfBug","getViewport","getAnnotations","intent","intentArgs","annotations","annotation","render","annotationMode","imageLayer","canvasFactory","background","optionalContentConfigPromise","annotationCanvasMap","intentState","clearTimeout","canvasFactoryInstance","intentPrint","fnArray","argsArray","lastChunk","internalRenderTask","canvasContext","viewport","objs","commonObjs","operatorList","pageIndex","useRequestAnimationFrame","renderTask","transparency","optionalContentConfig","getOperatorList","opListTask","streamTextContent","normalizeWhitespace","disableCombineTextItems","includeMarkedContent","TEXT_CONTENT_CHUNK_SIZE","combineTextItems","textContent","getTextContent","xfa","XfaText","readableStream","pump","items","styles","getStructTree","_destroy","waitOn","force","resetStats","_tryCleanup","renderTasks","_startRenderPage","_renderPageChunk","operatorListChunk","_pumpOperatorList","cacheKey","annotationStorage","renderingIntent","_abortOperatorList","curIntentState","cloned","transfers","fallbackCloneValue","desc","cloneValue","PDFWorkerUtil","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerId","pdfjsFilePath","_initializeFromPort","_initialize","workerSrc","isSameOrigin","terminateEarly","onWorkerError","sendTest","testObj","_setupFakeWorker","WorkerMessageHandler","workerHandler","loader","mainWorkerMessageHandler","eval","loadScript","loadingTask","onUnsupportedFeature","styleElement","getRenderingIntent","isOpList","lastModified","page","terminated","setupMessageHandler","evt","loaded","total","sink","readyReason","headersCapability","fullReader","isStreamingSupported","isRangeSupported","contentLength","rangeReader","pdfInfo","ex","exception","updatePassword","exportedError","exportedData","fontRegistry","registerFont","pageProxy","MAX_IMAGE_SIZE_TO_STORE","imageData","_onUnsupportedFeature","pageNumber","cachedPromise","pageInfo","isPureXfa","numPages","filename","getDocJSActions","getPageJSActions","results","cleanupSuccessful","_ensureObj","resolved","initializeGraphics","InternalRenderTask","operatorListChanged","_continue","_scheduleNext","build","addNativeFontFace","insertRule","styleSheet","nativeFontFace","featureId","rule","_queueLoadingCallback","hasFonts","_prepareFontLoadEvent","FontLoader","requests","nextRequestId","supported","navigator","otherRequest","getLoadTestFont","atob","offset","s","ctx","isFontReady","loadTestFontId","COMMENT_OFFSET","spliceString","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","int32","string32","btoa","div","span","translatedData","createNativeFontFace","css","weight","createFontFaceRule","bytesToString","getPathGenerator","cmds","jsBuf","current","NodeCanvasFactory","NodeCMapReaderFactory","NodeStandardFontDataFactory","fs","__non_webpack_require__","Canvas","getValue","setValue","modified","getAll","objectFromMap","_setModified","resetModified","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","EXECUTION_TIME","EXECUTION_STEPS","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","LINEWIDTH_SCALE_FACTOR","destCtx","ad_bc","bc_ad","old","prev","cosValue","sinValue","getCanvas","canvasEntry","addContextCurrentTransform","POINT_TO_PROCESS_LIMIT","POINT_TYPES","imgData","width1","points","lineSize","data0","elem","mask","count","j0","sum","steps","outlines","coords","p0","pp","drawOutline","kk","o","ll","setCurrentPoint","updatePathMinMax","updateCurvePathMinMax","box","getPathBoundingBox","pathType","PathType","xStrokePad","yStrokePad","updateClipFromPath","intersect","startNewPathAndClipBox","getClippedPathBoundingBox","transferMaps","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","thisChunkHeight","destPos","srcDiff","kEnd","kEndUnrolled","srcByte","hasTransferMaps","elemsInThisChunk","properties","property","sourceCtx","alpha_","r0","g0","b0","maskData","transferMap","layerData","hasBackdrop","backdrop","subtype","composeFn","PIXELS_TO_PROCESS","row","chunkHeight","maskCtx","layerOffsetX","layerCtx","composeSMaskBackdrop","layerBox","layerOffsetY","layerWidth","layerHeight","genericComposeSMask","actualScale","interpolate","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","beginDrawing","transparentCanvas","resetCtxToDefault","executeOperatorList","executionStartIdx","argsArrayLen","chunkOperations","endTime","stepper","fnId","objsPool","depObjId","continueCallback","endDrawing","_scaleImage","img","widthScale","inverseTransform","heightScale","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","tmpCanvas","tmpCtx","_createMaskCanvas","fillColor","isPatternFill","maskCanvas","putBinaryImageMask","objToCanvas","maskToCanvas","cord1","cord2","drawnWidth","drawnHeight","fillCanvas","fillCtx","scaled","getImageSmoothingEnabled","inverse","states","checkSMaskState","inSMaskMode","beginSMaskMode","cacheId","scratchCanvas","copyCtxState","mirrorContextOperations","endSMaskMode","compose","dirtyBox","suspendedCtx","composeSMask","ops","xw","yh","startX","startY","consumePath","strokeColor","lineWidth","needRestore","paths","fontObj","bold","italic","typeface","browserFontSize","paintChar","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","glyphs","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","patternTransform","resetLineWidthToOne","glyph","isNum","restoreNeeded","spacing","character","accent","scaledX","scaledY","vmetric","vx","vy","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","showType3Text","fontMatrix","isTextInvisible","spacingLength","transformed","urx","ury","getColorN_Pattern","IR","color","baseTransform","canvasGraphicsFactory","createCanvasGraphics","_getPattern","matrix","getShadingPattern","inv","bl","br","ul","ur","x0","y0","x1","y1","bbox","currentCtx","group","currentTransform","canvasBounds","scaleX","scaleY","groupCtx","startTransformInverse","currentMtx","hasOwnCanvas","canvasWidth","canvasHeight","skewX","skewY","positions","trans","images","image","objId","h","imgToPaint","putBinaryImageData","left","top","visible","getSinglePixelWidth","absDet","sqNorm1","sqNorm2","pixelHeight","getCanvasPosition","isContentVisible","CanvasGraphics","SHADING","region","getPattern","_createGradient","grad","colorStop","ownerBBox","owner","applyBoundingBox","domMatrix","colors","rowSize","tmp","c1","c2","c3","x3","y3","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","ps","figure","cs","verticesPerRow","rows","cols","q","drawTriangle","_createMeshCanvas","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","combinedScale","paddedWidth","paddedHeight","cachedCanvases","backgroundColor","drawFigure","matrixScale","temporaryPatternCanvas","PaintType","COLORED","UNCOLORED","createPatternCanvas","xstep","ystep","paintType","tilingType","curMatrixScale","dimx","dimy","graphics","adjustedX0","adjustedY0","adjustedX1","adjustedY1","getSizeAndScale","maxSize","TilingPattern","clipBbox","bboxWidth","bboxHeight","setFillAndStrokeStyleToContext","cssColor","CallbackKind","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","callbackId","wrapReason","cbSourceName","cbTargetName","comObj","sourceName","targetName","on","ah","send","sendWithPromise","sendWithStream","streamId","startCapability","startCall","pullCall","cancelCall","isClosed","pullCapability","cancelCapability","_createStreamSink","streamSink","lastDesiredSize","sinkCapability","onPull","onCancel","isCancelled","success","_processStreamMessage","streamController","getRaw","_evaluateVisibilityExpression","array","operator","isVisible","setVisibility","getOrder","getGroups","getGroup","_onReceiveData","found","_onProgress","firstReader","_onProgressiveDone","_removeRangeReader","getFullReader","queuedChunks","getRangeReader","cancelAllRequests","isPdfFile","_enqueue","requestCapability","requestsCapability","output","walk","DEFAULT_TAB_INDEX","GetElementsByNameSet","parameters","fieldType","isRenderable","ignoreBorder","createQuadrilaterals","_createContainer","horizontalRadius","verticalRadius","radius","borderColor","_createQuadrilaterals","quadrilaterals","savedRect","quadPoint","_createPopup","trigger","popupElement","titleObj","modificationDate","contentsObj","richText","hideWrapper","popup","_renderQuadrilaterals","quadrilateral","_getElementsByName","skipId","fields","fieldObj","exportValue","domElement","platform","isWin","isMac","linkService","hasClickAction","linkElement","_bindLink","_bindNamedAction","_bindJSAction","jsName","detail","_bindResetFormAction","otherClickAction","refs","allFields","resetFormFields","resetFormRefs","fieldIds","storage","allIds","valueAsString","ids","JSON","_getKeyModifier","AnnotationElement","_setEventListener","baseName","valueGetter","modifier","_setEventListeners","eventName","_setBackgroundColor","_dispatchEventFromSandbox","setColor","ColorConverters","commonActions","hidden","print","focus","preventScroll","userName","readonly","required","bgColor","fgColor","textColor","jsEvent","setPropertyOnSiblings","storedData","elementData","userValue","formattedValue","beforeInputSelectionRange","beforeInputValue","defaultValue","blurListener","selRange","selStart","selEnd","commitKey","willCommit","_blurListener","change","fieldWidth","combWidth","_setTextStyle","TEXT_ALIGNMENT","fontColor","curChecked","checked","checkbox","radio","pdfButtonValue","fontSizeStyle","selectElement","option","optionElement","isExport","getItems","displayValue","multipleSelection","remove","insert","indices","editable","changeEx","keyDown","IGNORE_TYPES","selector","parentElements","popupLeft","popupTop","BACKGROUND_ENLIGHT","g","title","dateObject","PDFDateString","XfaLayer","xfaHtml","contents","_formatContents","lines","line","_toggle","_show","pin","_hide","unpin","borderWidth","square","circle","coordinate","polyline","getFilenameFromUrl","stringToPDFString","_download","sortedAnnotations","popupAnnotations","layer","downloadManager","imageResourcesPath","renderForms","svgFactory","enableScripting","fieldObjects","mouseState","isDown","rendered","ownTransform","ownMatrix","firstChild","G","makeColorComp","R","B","isHTMLAnchorElement","attributes","root","rootHtml","rootDiv","textDivs","child","childHtml","MAX_TEXT_DIVS_TO_RENDER","DEFAULT_FONT_SIZE","DEFAULT_FONT_ASCENT","ascentCache","AllWhitespaceRegexp","cachedAscent","metrics","ascent","descent","ratio","pixels","textDiv","textDivProperties","hasText","geom","hasEOL","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","tx","fontHeight","fontAscent","getAscent","shouldScaleText","absScaleX","absScaleY","angleCos","angleSin","divWidth","divHeight","right","bottom","textDivsLength","ts","expanded","expandBounds","divProperties","jj","boxScale","findPositiveMin","x1New","x2New","expandBoundsLTR","boxes","fakeBoundary","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","used","textContentItemsStr","_processItems","appendText","_layoutText","fontFamily","_render","timeout","styleCache","textItems","textStyles","expandTextDivs","expandDivs","expand","transformBuf","paddingBuf","divProps","renderParameters","textContentStream","enhanceTextSelection","SVGGraphics","SVG_DEFAULTS","fontStyle","fontWeight","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc","body","crc32","deflateSyncUncompressed","level","literals","maxBlockLength","deflateBlocks","idat","pi","adler","adler32","colorType","bitDepth","offsetLiterals","offsetBytes","ihdr","deflateSync","pngLength","writePngChunk","createObjectURL","encode","opTree","opListElement","pf","clipCount","maskCount","shadingCount","loadDependencies","transformMatrix","getSVG","svgElement","convertOpList","operatorIdMapping","opList","opListToTree","executeOpTree","opTreeElement","lineWidthScale","textMatrix","pm","addFontStyle","details","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeTilingPattern","tilingId","txstep","tystep","tiling","tx1","ty1","_makeShadingPattern","shadingId","colorStops","point0","point1","gradient","focalPoint","circlePoint","focalRadius","circleRadius","op","clipId","clipPath","clipElement","_setStrokeAttributes","dashArray","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","clipGroup","_ensureTransformGroup","http","https","fileUriRegex","parsedUrl","parseUrl","_error","_setReadableStream","auth","headers","handleResponse","getResponseHeader","isHttp","suggestedLength","extractFilenameFromHeader","createRequestOptions","returnValues","allowRangeRequests","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","decoder","fatal","textdecode","parts","part","quotindex","encodingend","extvalue","encoding","langvalue","text","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","xhr","requestRange","listeners","requestFull","xhrId","pendingRequest","onProgress","onStateChange","xhrStatus","ok_response_on_range_request","getArrayBuffer","rangeHeader","getRequestXhr","isPendingRequest","_onRangeRequestReaderClosed","onHeadersReceived","onDone","onError","manager","_onHeadersReceived","fullRequestXhrId","fullRequestXhr","_onDone","_onError","createResponseStatusError","_close","abortController","credentials","redirect","createHeaders","createFetchOptions","validateResponseStatus","pdfjsVersion","pdfjsBuild","setPDFNetworkStreamFactory"],"sourceRoot":""}