{"version":3,"file":"pdf.mjs","mappings":"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","sources":["webpack://pdf.js/node_modules/core-js/internals/a-callable.js","webpack://pdf.js/node_modules/core-js/internals/a-possible-prototype.js","webpack://pdf.js/node_modules/core-js/internals/a-set.js","webpack://pdf.js/node_modules/core-js/internals/an-instance.js","webpack://pdf.js/node_modules/core-js/internals/an-object.js","webpack://pdf.js/node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://pdf.js/node_modules/core-js/internals/array-buffer-byte-length.js","webpack://pdf.js/node_modules/core-js/internals/array-buffer-is-detached.js","webpack://pdf.js/node_modules/core-js/internals/array-buffer-transfer.js","webpack://pdf.js/node_modules/core-js/internals/array-buffer-view-core.js","webpack://pdf.js/node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://pdf.js/node_modules/core-js/internals/array-includes.js","webpack://pdf.js/node_modules/core-js/internals/array-iteration-from-last.js","webpack://pdf.js/node_modules/core-js/internals/array-set-length.js","webpack://pdf.js/node_modules/core-js/internals/array-to-reversed.js","webpack://pdf.js/node_modules/core-js/internals/array-with.js","webpack://pdf.js/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://pdf.js/node_modules/core-js/internals/classof-raw.js","webpack://pdf.js/node_modules/core-js/internals/classof.js","webpack://pdf.js/node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdf.js/node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdf.js/node_modules/core-js/internals/create-iter-result-object.js","webpack://pdf.js/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdf.js/node_modules/core-js/internals/create-property-descriptor.js","webpack://pdf.js/node_modules/core-js/internals/create-property.js","webpack://pdf.js/node_modules/core-js/internals/define-built-in-accessor.js","webpack://pdf.js/node_modules/core-js/internals/define-built-in.js","webpack://pdf.js/node_modules/core-js/internals/define-built-ins.js","webpack://pdf.js/node_modules/core-js/internals/define-global-property.js","webpack://pdf.js/node_modules/core-js/internals/descriptors.js","webpack://pdf.js/node_modules/core-js/internals/detach-transferable.js","webpack://pdf.js/node_modules/core-js/internals/document-all.js","webpack://pdf.js/node_modules/core-js/internals/document-create-element.js","webpack://pdf.js/node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://pdf.js/node_modules/core-js/internals/dom-exception-constants.js","webpack://pdf.js/node_modules/core-js/internals/engine-is-browser.js","webpack://pdf.js/node_modules/core-js/internals/engine-is-deno.js","webpack://pdf.js/node_modules/core-js/internals/engine-is-node.js","webpack://pdf.js/node_modules/core-js/internals/engine-user-agent.js","webpack://pdf.js/node_modules/core-js/internals/engine-v8-version.js","webpack://pdf.js/node_modules/core-js/internals/enum-bug-keys.js","webpack://pdf.js/node_modules/core-js/internals/error-stack-clear.js","webpack://pdf.js/node_modules/core-js/internals/error-stack-install.js","webpack://pdf.js/node_modules/core-js/internals/error-stack-installable.js","webpack://pdf.js/node_modules/core-js/internals/export.js","webpack://pdf.js/node_modules/core-js/internals/fails.js","webpack://pdf.js/node_modules/core-js/internals/function-apply.js","webpack://pdf.js/node_modules/core-js/internals/function-bind-context.js","webpack://pdf.js/node_modules/core-js/internals/function-bind-native.js","webpack://pdf.js/node_modules/core-js/internals/function-call.js","webpack://pdf.js/node_modules/core-js/internals/function-name.js","webpack://pdf.js/node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://pdf.js/node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://pdf.js/node_modules/core-js/internals/function-uncurry-this.js","webpack://pdf.js/node_modules/core-js/internals/get-built-in.js","webpack://pdf.js/node_modules/core-js/internals/get-iterator-direct.js","webpack://pdf.js/node_modules/core-js/internals/get-iterator-flattenable.js","webpack://pdf.js/node_modules/core-js/internals/get-iterator-method.js","webpack://pdf.js/node_modules/core-js/internals/get-iterator.js","webpack://pdf.js/node_modules/core-js/internals/get-method.js","webpack://pdf.js/node_modules/core-js/internals/get-set-record.js","webpack://pdf.js/node_modules/core-js/internals/global.js","webpack://pdf.js/node_modules/core-js/internals/has-own-property.js","webpack://pdf.js/node_modules/core-js/internals/hidden-keys.js","webpack://pdf.js/node_modules/core-js/internals/html.js","webpack://pdf.js/node_modules/core-js/internals/ie8-dom-define.js","webpack://pdf.js/node_modules/core-js/internals/indexed-object.js","webpack://pdf.js/node_modules/core-js/internals/inherit-if-required.js","webpack://pdf.js/node_modules/core-js/internals/inspect-source.js","webpack://pdf.js/node_modules/core-js/internals/install-error-cause.js","webpack://pdf.js/node_modules/core-js/internals/internal-state.js","webpack://pdf.js/node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdf.js/node_modules/core-js/internals/is-array.js","webpack://pdf.js/node_modules/core-js/internals/is-big-int-array.js","webpack://pdf.js/node_modules/core-js/internals/is-callable.js","webpack://pdf.js/node_modules/core-js/internals/is-forced.js","webpack://pdf.js/node_modules/core-js/internals/is-null-or-undefined.js","webpack://pdf.js/node_modules/core-js/internals/is-object.js","webpack://pdf.js/node_modules/core-js/internals/is-pure.js","webpack://pdf.js/node_modules/core-js/internals/is-symbol.js","webpack://pdf.js/node_modules/core-js/internals/iterate-simple.js","webpack://pdf.js/node_modules/core-js/internals/iterate.js","webpack://pdf.js/node_modules/core-js/internals/iterator-close.js","webpack://pdf.js/node_modules/core-js/internals/iterator-create-proxy.js","webpack://pdf.js/node_modules/core-js/internals/iterator-map.js","webpack://pdf.js/node_modules/core-js/internals/iterators-core.js","webpack://pdf.js/node_modules/core-js/internals/iterators.js","webpack://pdf.js/node_modules/core-js/internals/length-of-array-like.js","webpack://pdf.js/node_modules/core-js/internals/make-built-in.js","webpack://pdf.js/node_modules/core-js/internals/math-trunc.js","webpack://pdf.js/node_modules/core-js/internals/normalize-string-argument.js","webpack://pdf.js/node_modules/core-js/internals/object-create.js","webpack://pdf.js/node_modules/core-js/internals/object-define-properties.js","webpack://pdf.js/node_modules/core-js/internals/object-define-property.js","webpack://pdf.js/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdf.js/node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdf.js/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdf.js/node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdf.js/node_modules/core-js/internals/object-is-prototype-of.js","webpack://pdf.js/node_modules/core-js/internals/object-keys-internal.js","webpack://pdf.js/node_modules/core-js/internals/object-keys.js","webpack://pdf.js/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdf.js/node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdf.js/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://pdf.js/node_modules/core-js/internals/own-keys.js","webpack://pdf.js/node_modules/core-js/internals/parse-json-string.js","webpack://pdf.js/node_modules/core-js/internals/proxy-accessor.js","webpack://pdf.js/node_modules/core-js/internals/require-object-coercible.js","webpack://pdf.js/node_modules/core-js/internals/set-clone.js","webpack://pdf.js/node_modules/core-js/internals/set-difference.js","webpack://pdf.js/node_modules/core-js/internals/set-helpers.js","webpack://pdf.js/node_modules/core-js/internals/set-intersection.js","webpack://pdf.js/node_modules/core-js/internals/set-is-disjoint-from.js","webpack://pdf.js/node_modules/core-js/internals/set-is-subset-of.js","webpack://pdf.js/node_modules/core-js/internals/set-is-superset-of.js","webpack://pdf.js/node_modules/core-js/internals/set-iterate.js","webpack://pdf.js/node_modules/core-js/internals/set-method-accept-set-like.js","webpack://pdf.js/node_modules/core-js/internals/set-size.js","webpack://pdf.js/node_modules/core-js/internals/set-symmetric-difference.js","webpack://pdf.js/node_modules/core-js/internals/set-union.js","webpack://pdf.js/node_modules/core-js/internals/shared-key.js","webpack://pdf.js/node_modules/core-js/internals/shared-store.js","webpack://pdf.js/node_modules/core-js/internals/shared.js","webpack://pdf.js/node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack://pdf.js/node_modules/core-js/internals/symbol-constructor-detection.js","webpack://pdf.js/node_modules/core-js/internals/to-absolute-index.js","webpack://pdf.js/node_modules/core-js/internals/to-big-int.js","webpack://pdf.js/node_modules/core-js/internals/to-index.js","webpack://pdf.js/node_modules/core-js/internals/to-indexed-object.js","webpack://pdf.js/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://pdf.js/node_modules/core-js/internals/to-length.js","webpack://pdf.js/node_modules/core-js/internals/to-object.js","webpack://pdf.js/node_modules/core-js/internals/to-offset.js","webpack://pdf.js/node_modules/core-js/internals/to-positive-integer.js","webpack://pdf.js/node_modules/core-js/internals/to-primitive.js","webpack://pdf.js/node_modules/core-js/internals/to-property-key.js","webpack://pdf.js/node_modules/core-js/internals/to-string-tag-support.js","webpack://pdf.js/node_modules/core-js/internals/to-string.js","webpack://pdf.js/node_modules/core-js/internals/try-node-require.js","webpack://pdf.js/node_modules/core-js/internals/try-to-string.js","webpack://pdf.js/node_modules/core-js/internals/uid.js","webpack://pdf.js/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdf.js/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://pdf.js/node_modules/core-js/internals/validate-arguments-length.js","webpack://pdf.js/node_modules/core-js/internals/weak-map-basic-detection.js","webpack://pdf.js/node_modules/core-js/internals/well-known-symbol.js","webpack://pdf.js/node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://pdf.js/node_modules/core-js/modules/es.array.push.js","webpack://pdf.js/node_modules/core-js/modules/es.error.cause.js","webpack://pdf.js/node_modules/core-js/modules/es.typed-array.find-last-index.js","webpack://pdf.js/node_modules/core-js/modules/es.typed-array.find-last.js","webpack://pdf.js/node_modules/core-js/modules/es.typed-array.set.js","webpack://pdf.js/node_modules/core-js/modules/es.typed-array.to-reversed.js","webpack://pdf.js/node_modules/core-js/modules/es.typed-array.to-sorted.js","webpack://pdf.js/node_modules/core-js/modules/es.typed-array.with.js","webpack://pdf.js/node_modules/core-js/modules/esnext.array-buffer.detached.js","webpack://pdf.js/node_modules/core-js/modules/esnext.array-buffer.transfer-to-fixed-length.js","webpack://pdf.js/node_modules/core-js/modules/esnext.array-buffer.transfer.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.constructor.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.every.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.filter.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.flat-map.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.map.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.some.js","webpack://pdf.js/node_modules/core-js/modules/esnext.json.parse.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.difference.v2.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.intersection.v2.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.is-subset-of.v2.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.is-superset-of.v2.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.union.v2.js","webpack://pdf.js/node_modules/core-js/modules/web.dom-exception.stack.js","webpack://pdf.js/node_modules/core-js/modules/web.url-search-params.delete.js","webpack://pdf.js/node_modules/core-js/modules/web.url-search-params.has.js","webpack://pdf.js/node_modules/core-js/modules/web.url-search-params.size.js","webpack://pdf.js/src/shared/scripting_utils.js","webpack://pdf.js/src/display/annotation_layer.js","webpack://pdf.js/src/display/annotation_storage.js","webpack://pdf.js/src/display/api.js","webpack://pdf.js/src/display/base_factory.js","webpack://pdf.js/src/display/pattern_helper.js","webpack://pdf.js/src/shared/image_utils.js","webpack://pdf.js/src/display/canvas.js","webpack://pdf.js/src/display/display_utils.js","webpack://pdf.js/src/display/draw_layer.js","webpack://pdf.js/src/display/editor/freetext.js","webpack://pdf.js/src/display/editor/ink.js","webpack://pdf.js/src/display/editor/stamp.js","webpack://pdf.js/src/display/editor/annotation_editor_layer.js","webpack://pdf.js/src/display/editor/toolbar.js","webpack://pdf.js/src/display/editor/editor.js","webpack://pdf.js/src/display/editor/outliner.js","webpack://pdf.js/src/display/editor/tools.js","webpack://pdf.js/src/display/fetch_stream.js","webpack://pdf.js/src/display/font_loader.js","webpack://pdf.js/src/display/metadata.js","webpack://pdf.js/src/display/network.js","webpack://pdf.js/src/display/content_disposition.js","webpack://pdf.js/src/display/network_utils.js","webpack://pdf.js/src/display/node_stream.js","webpack://pdf.js/src/display/node_utils.js","webpack://pdf.js/src/display/optional_content_config.js","webpack://pdf.js/src/display/text_layer.js","webpack://pdf.js/src/display/transport_stream.js","webpack://pdf.js/src/display/worker_options.js","webpack://pdf.js/src/display/xfa_layer.js","webpack://pdf.js/src/display/xfa_text.js","webpack://pdf.js/src/pdf.js","webpack://pdf.js/src/shared/message_handler.js","webpack://pdf.js/src/shared/murmurhash3.js","webpack://pdf.js/src/shared/util.js","webpack://pdf.js/webpack/bootstrap","webpack://pdf.js/webpack/runtime/async module","webpack://pdf.js/webpack/runtime/define property getters","webpack://pdf.js/webpack/runtime/hasOwnProperty shorthand","webpack://pdf.js/webpack/before-startup","webpack://pdf.js/webpack/startup","webpack://pdf.js/webpack/after-startup"],"sourcesContent":["'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n  if (isCallable(argument)) return argument;\n  throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (typeof argument == 'object' || isCallable(argument)) return argument;\n  throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n  has(it);\n  return it;\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n  if (isPrototypeOf(Prototype, it)) return it;\n  throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n  if (isObject(argument)) return argument;\n  throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar classof = require('../internals/classof-raw');\n\nvar $TypeError = TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n  if (classof(O) !== 'ArrayBuffer') throw new $TypeError('ArrayBuffer expected');\n  return O.byteLength;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\n\nvar slice = uncurryThis(ArrayBuffer.prototype.slice);\n\nmodule.exports = function (O) {\n  if (arrayBufferByteLength(O) !== 0) return false;\n  try {\n    slice(O, 0, 0);\n    return false;\n  } catch (error) {\n    return true;\n  }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar toIndex = require('../internals/to-index');\nvar isDetached = require('../internals/array-buffer-is-detached');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\nvar detachTransferable = require('../internals/detach-transferable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = global.structuredClone;\nvar ArrayBuffer = global.ArrayBuffer;\nvar DataView = global.DataView;\nvar TypeError = global.TypeError;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n  var byteLength = arrayBufferByteLength(arrayBuffer);\n  var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n  var fixedLength = !isResizable || !isResizable(arrayBuffer);\n  var newBuffer;\n  if (isDetached(arrayBuffer)) throw new TypeError('ArrayBuffer is detached');\n  if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n    arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n    if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n  }\n  if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n    newBuffer = slice(arrayBuffer, 0, newByteLength);\n  } else {\n    var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined;\n    newBuffer = new ArrayBuffer(newByteLength, options);\n    var a = new DataView(arrayBuffer);\n    var b = new DataView(newBuffer);\n    var copyLength = min(newByteLength, byteLength);\n    for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n  }\n  if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n  return newBuffer;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\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 wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n  BigInt64Array: 8,\n  BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return klass === 'DataView'\n    || hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n  var proto = getPrototypeOf(it);\n  if (!isObject(proto)) return;\n  var state = getInternalState(proto);\n  return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n  throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n      delete TypedArrayConstructor.prototype[KEY];\n    } catch (error) {\n      // old WebKit bug - some methods are non-configurable\n      try {\n        TypedArrayConstructor.prototype[KEY] = property;\n      } catch (error2) { /* empty */ }\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n  }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n  var ARRAY, TypedArrayConstructor;\n  if (!DESCRIPTORS) return;\n  if (setPrototypeOf) {\n    if (forced) for (ARRAY in TypedArrayConstructorsList) {\n      TypedArrayConstructor = global[ARRAY];\n      if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n        delete TypedArrayConstructor[KEY];\n      } catch (error) { /* empty */ }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n      } catch (error) { /* empty */ }\n    } else return;\n  }\n  for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n      defineBuiltIn(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  Constructor = global[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n  else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n  Constructor = global[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow -- safe\n  TypedArray = function TypedArray() {\n    throw new TypeError('Incorrect invocation');\n  };\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n  }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n  TypedArrayPrototype = TypedArray.prototype;\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n  }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQUIRED = true;\n  defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n    configurable: true,\n    get: function () {\n      return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n    }\n  });\n  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n    createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n  }\n}\n\nmodule.exports = {\n  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportTypedArrayMethod: exportTypedArrayMethod,\n  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n  getTypedArrayConstructor: getTypedArrayConstructor,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list) {\n  var index = 0;\n  var length = lengthOfArrayLike(list);\n  var result = new Constructor(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n","'use strict';\nvar 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","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_FIND_LAST_INDEX = TYPE === 1;\n  return function ($this, callbackfn, that) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var boundFunction = bind(callbackfn, that);\n    var index = lengthOfArrayLike(self);\n    var value, result;\n    while (index-- > 0) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (result) switch (TYPE) {\n        case 0: return value; // findLast\n        case 1: return index; // findLastIndex\n      }\n    }\n    return IS_FIND_LAST_INDEX ? -1 : undefined;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.findLast` method\n  // https://github.com/tc39/proposal-array-find-from-last\n  findLast: createMethod(0),\n  // `Array.prototype.findLastIndex` method\n  // https://github.com/tc39/proposal-array-find-from-last\n  findLastIndex: createMethod(1)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n  // makes no sense without proper strict mode support\n  if (this !== undefined) return true;\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).length = 1;\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n  if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n    throw new $TypeError('Cannot set read only .length');\n  } return O.length = length;\n} : function (O, length) {\n  return O.length = length;\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed\nmodule.exports = function (O, C) {\n  var len = lengthOfArrayLike(O);\n  var A = new C(len);\n  var k = 0;\n  for (; k < len; k++) A[k] = O[len - k - 1];\n  return A;\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nmodule.exports = function (O, C, index, value) {\n  var len = lengthOfArrayLike(O);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n  if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n  var A = new C(len);\n  var k = 0;\n  for (; k < len; k++) A[k] = k === actualIndex ? value : O[k];\n  return A;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  } catch (error) {\n    iteratorClose(iterator, 'throw', error);\n  }\n};\n","'use strict';\nvar 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","'use strict';\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 = 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","'use strict';\nvar 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, exceptions) {\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) && !(exceptions && hasOwn(exceptions, key))) {\n      defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n    }\n  }\n};\n","'use strict';\nvar 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","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n  return { value: value, done: done };\n};\n","'use strict';\nvar 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","'use strict';\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\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","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n  if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n  if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n  return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n  if (!options) options = {};\n  var simple = options.enumerable;\n  var name = options.name !== undefined ? options.name : key;\n  if (isCallable(value)) makeBuiltIn(value, name, options);\n  if (options.global) {\n    if (simple) O[key] = value;\n    else defineGlobalProperty(key, value);\n  } else {\n    try {\n      if (!options.unsafe) delete O[key];\n      else if (O[key]) simple = true;\n    } catch (error) { /* empty */ }\n    if (simple) O[key] = value;\n    else definePropertyModule.f(O, key, {\n      value: value,\n      enumerable: false,\n      configurable: !options.nonConfigurable,\n      writable: !options.nonWritable\n    });\n  } return O;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) defineBuiltIn(target, key, src[key], options);\n  return target;\n};\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar global = require('../internals/global');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = global.structuredClone;\nvar $ArrayBuffer = global.ArrayBuffer;\nvar $MessageChannel = global.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n  detach = function (transferable) {\n    structuredClone(transferable, { transfer: [transferable] });\n  };\n} else if ($ArrayBuffer) try {\n  if (!$MessageChannel) {\n    WorkerThreads = tryNodeRequire('worker_threads');\n    if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n  }\n\n  if ($MessageChannel) {\n    channel = new $MessageChannel();\n    buffer = new $ArrayBuffer(2);\n\n    $detach = function (transferable) {\n      channel.port1.postMessage(null, [transferable]);\n    };\n\n    if (buffer.byteLength === 2) {\n      $detach(buffer);\n      if (buffer.byteLength === 0) detach = $detach;\n    }\n  }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n  all: documentAll,\n  IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar 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","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n  if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n  return it;\n};\n","'use strict';\nmodule.exports = {\n  IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n  DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n  HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n  WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n  InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n  NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n  NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n  NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n  NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n  InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n  InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n  SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n  InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n  NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n  InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n  ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n  TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n  SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n  NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n  AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n  URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n  QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n  TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n  InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n  DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n  && typeof window == 'object'\n  && typeof document == 'object';\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar 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","'use strict';\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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n  if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n    while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n  } return stack;\n};\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n  if (ERROR_STACK_INSTALLABLE) {\n    if (captureStackTrace) captureStackTrace(error, C);\n    else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n  }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n  var error = new 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","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\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.dontCallGetSet - 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] || defineGlobalProperty(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.dontCallGetSet) {\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    defineBuiltIn(target, key, sourceProperty, options);\n  }\n};\n","'use strict';\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n  return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\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 : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-function-prototype-bind -- safe\n  var test = (function () { /* empty */ }).bind();\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n  return call.apply(call, arguments);\n};\n","'use strict';\nvar 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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n  try {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n  } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n  // Nashorn bug:\n  //   https://github.com/zloirock/core-js/issues/1128\n  //   https://github.com/zloirock/core-js/issues/1130\n  if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n  return function () {\n    return call.apply(fn, arguments);\n  };\n};\n","'use strict';\nvar 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","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n  return {\n    iterator: obj,\n    next: obj.next,\n    done: false\n  };\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (obj, stringHandling) {\n  if (!stringHandling || typeof obj !== 'string') anObject(obj);\n  var method = getIteratorMethod(obj);\n  return getIteratorDirect(anObject(method !== undefined ? call(method, obj) : obj));\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n    || getMethod(it, '@@iterator')\n    || Iterators[classof(it)];\n};\n","'use strict';\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 = 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 new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n  var func = V[P];\n  return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, size, has, keys) {\n  this.set = set;\n  this.size = size;\n  this.has = has;\n  this.keys = keys;\n};\n\nSetRecord.prototype = {\n  getIterator: function () {\n    return getIteratorDirect(anObject(call(this.keys, this.set)));\n  },\n  includes: function (it) {\n    return call(this.has, this.set, it);\n  }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n  anObject(obj);\n  var numSize = +obj.size;\n  // NOTE: If size is undefined, then numSize will be NaN\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n  var intSize = toIntegerOrInfinity(numSize);\n  if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n  return new SetRecord(\n    obj,\n    max(intSize, 0),\n    aCallable(obj.has),\n    aCallable(obj.keys)\n  );\n};\n","'use strict';\nvar 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  check(typeof this == 'object' && this) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n","'use strict';\nvar 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\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = 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","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    isCallable(NewTarget = dummy.constructor) &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\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 new 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  /* eslint-disable no-self-assign -- prototype methods protection */\n  store.get = store.get;\n  store.has = store.has;\n  store.set = store.set;\n  /* eslint-enable no-self-assign -- prototype methods protection */\n  set = function (it, metadata) {\n    if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    store.set(it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return store.get(it) || {};\n  };\n  has = function (it) {\n    return store.has(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","'use strict';\nvar 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","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n  return classof(argument) === 'Array';\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n  var klass = classof(it);\n  return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n  return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n  return typeof argument == 'function';\n};\n","'use strict';\nvar 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","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n  return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\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 = 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","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n  var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n  var next = record.next;\n  var step, result;\n  while (!(step = call(next, iterator)).done) {\n    result = fn(step.value);\n    if (result !== undefined) return result;\n  }\n};\n","'use strict';\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 = 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_RECORD = !!(options && options.IS_RECORD);\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_RECORD) {\n    iterator = iterable.iterator;\n  } else if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (!iterFn) throw new $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 = IS_RECORD ? iterable.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","'use strict';\nvar 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 call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n  var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n  return defineBuiltIns(create(IteratorPrototype), {\n    next: function next() {\n      var state = getInternalState(this);\n      // for simplification:\n      //   for `%WrapForValidIteratorPrototype%.next` our `nextHandler` returns `IterResultObject`\n      //   for `%IteratorHelperPrototype%.next` - just a value\n      if (IS_ITERATOR) return state.nextHandler();\n      try {\n        var result = state.done ? undefined : state.nextHandler();\n        return createIterResultObject(result, state.done);\n      } catch (error) {\n        state.done = true;\n        throw error;\n      }\n    },\n    'return': function () {\n      var state = getInternalState(this);\n      var iterator = state.iterator;\n      state.done = true;\n      if (IS_ITERATOR) {\n        var returnMethod = getMethod(iterator, 'return');\n        return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n      }\n      if (state.inner) try {\n        iteratorClose(state.inner.iterator, 'normal');\n      } catch (error) {\n        return iteratorClose(iterator, 'throw', error);\n      }\n      iteratorClose(iterator, 'normal');\n      return createIterResultObject(undefined, true);\n    }\n  });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n  var IteratorProxy = function Iterator(record, state) {\n    if (state) {\n      state.iterator = record.iterator;\n      state.next = record.next;\n    } else state = record;\n    state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n    state.nextHandler = nextHandler;\n    state.counter = 0;\n    state.done = false;\n    setInternalState(this, state);\n  };\n\n  IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n  return IteratorProxy;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var result = anObject(call(this.next, iterator));\n  var done = this.done = !!result.done;\n  if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n  anObject(this);\n  aCallable(mapper);\n  return new IteratorProxy(getIteratorDirect(this), {\n    mapper: mapper\n  });\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\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 = !isObject(IteratorPrototype) || 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  defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n    return this;\n  });\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar 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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n  return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n  if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n    name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n  }\n  if (options && options.getter) name = 'get ' + name;\n  if (options && options.setter) name = 'set ' + name;\n  if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n    if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n    else value.name = name;\n  }\n  if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n    defineProperty(value, 'length', { value: options.arity });\n  }\n  try {\n    if (options && hasOwn(options, 'constructor') && options.constructor) {\n      if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n    // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n    } else if (value.prototype) value.prototype = undefined;\n  } catch (error) { /* empty */ }\n  var state = enforceInternalState(value);\n  if (!hasOwn(state, 'source')) {\n    state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n  } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n  return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n  var n = +x;\n  return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n  return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = 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\n// eslint-disable-next-line es/no-object-create -- safe\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 : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\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\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? 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","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n    var current = $getOwnPropertyDescriptor(O, P);\n    if (current && current[WRITABLE]) {\n      O[P] = Attributes.value;\n      Attributes = {\n        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n        writable: false\n      };\n    }\n  } return $defineProperty(O, P, Attributes);\n} : $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 new $TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\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 = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar 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","'use strict';\nvar 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","'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","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\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    setter = uncurryThisAccessor(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","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = 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 new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar 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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\n\nvar $SyntaxError = SyntaxError;\nvar $parseInt = parseInt;\nvar fromCharCode = String.fromCharCode;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar codePoints = {\n  '\\\\\"': '\"',\n  '\\\\\\\\': '\\\\',\n  '\\\\/': '/',\n  '\\\\b': '\\b',\n  '\\\\f': '\\f',\n  '\\\\n': '\\n',\n  '\\\\r': '\\r',\n  '\\\\t': '\\t'\n};\n\nvar IS_4_HEX_DIGITS = /^[\\da-f]{4}$/i;\n// eslint-disable-next-line regexp/no-control-character -- safe\nvar IS_C0_CONTROL_CODE = /^[\\u0000-\\u001F]$/;\n\nmodule.exports = function (source, i) {\n  var unterminated = true;\n  var value = '';\n  while (i < source.length) {\n    var chr = at(source, i);\n    if (chr === '\\\\') {\n      var twoChars = slice(source, i, i + 2);\n      if (hasOwn(codePoints, twoChars)) {\n        value += codePoints[twoChars];\n        i += 2;\n      } else if (twoChars === '\\\\u') {\n        i += 2;\n        var fourHexDigits = slice(source, i, i + 4);\n        if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i);\n        value += fromCharCode($parseInt(fourHexDigits, 16));\n        i += 4;\n      } else throw new $SyntaxError('Unknown escape sequence: \"' + twoChars + '\"');\n    } else if (chr === '\"') {\n      unterminated = false;\n      i++;\n      break;\n    } else {\n      if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i);\n      value += chr;\n      i++;\n    }\n  }\n  if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i);\n  return { value: value, end: i };\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n  key in Target || defineProperty(Target, key, {\n    configurable: true,\n    get: function () { return Source[key]; },\n    set: function (it) { Source[key] = it; }\n  });\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n  var result = new Set();\n  iterate(set, function (it) {\n    add(result, it);\n  });\n  return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function difference(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  var result = clone(O);\n  if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n    if (otherRec.includes(e)) remove(result, e);\n  });\n  else iterateSimple(otherRec.getIterator(), function (e) {\n    if (has(O, e)) remove(result, e);\n  });\n  return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n  // eslint-disable-next-line es/no-set -- safe\n  Set: Set,\n  add: uncurryThis(SetPrototype.add),\n  has: uncurryThis(SetPrototype.has),\n  remove: uncurryThis(SetPrototype['delete']),\n  proto: SetPrototype\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function intersection(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  var result = new Set();\n\n  if (size(O) > otherRec.size) {\n    iterateSimple(otherRec.getIterator(), function (e) {\n      if (has(O, e)) add(result, e);\n    });\n  } else {\n    iterateSet(O, function (e) {\n      if (otherRec.includes(e)) add(result, e);\n    });\n  }\n\n  return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n    if (otherRec.includes(e)) return false;\n  }, true) !== false;\n  var iterator = otherRec.getIterator();\n  return iterateSimple(iterator, function (e) {\n    if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n  }) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) > otherRec.size) return false;\n  return iterate(O, function (e) {\n    if (!otherRec.includes(e)) return false;\n  }, true) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) < otherRec.size) return false;\n  var iterator = otherRec.getIterator();\n  return iterateSimple(iterator, function (e) {\n    if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n  }) !== false;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n  return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n  return {\n    size: size,\n    has: function () {\n      return false;\n    },\n    keys: function () {\n      return {\n        next: function () {\n          return { done: true };\n        }\n      };\n    }\n  };\n};\n\nmodule.exports = function (name) {\n  var Set = getBuiltIn('Set');\n  try {\n    new Set()[name](createSetLike(0));\n    try {\n      // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it\n      // https://github.com/tc39/proposal-set-methods/pull/88\n      new Set()[name](createSetLike(-1));\n      return false;\n    } catch (error2) {\n      return true;\n    }\n  } catch (error) {\n    return false;\n  }\n};\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n  return set.size;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function symmetricDifference(other) {\n  var O = aSet(this);\n  var keysIter = getSetRecord(other).getIterator();\n  var result = clone(O);\n  iterateSimple(keysIter, function (e) {\n    if (has(O, e)) remove(result, e);\n    else add(result, e);\n  });\n  return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function union(other) {\n  var O = aSet(this);\n  var keysIter = getSetRecord(other).getIterator();\n  var result = clone(O);\n  iterateSimple(keysIter, function (it) {\n    add(result, it);\n  });\n  return result;\n};\n","'use strict';\nvar 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","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar 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.33.3',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n  license: 'https://github.com/zloirock/core-js/blob/v3.33.3/LICENSE',\n  source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/engine-v8-version');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar structuredClone = global.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n  // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false;\n  var buffer = new ArrayBuffer(8);\n  var clone = structuredClone(buffer, { transfer: [buffer] });\n  return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol('symbol detection');\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n  // of course, fail.\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","'use strict';\nvar 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","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n  var prim = toPrimitive(argument, 'number');\n  if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n  // eslint-disable-next-line es/no-bigint -- safe\n  return BigInt(prim);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n  if (it === undefined) return 0;\n  var number = toIntegerOrInfinity(it);\n  var length = toLength(number);\n  if (number !== length) throw new $RangeError('Wrong length or index');\n  return length;\n};\n","'use strict';\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","'use strict';\nvar trunc = require('../internals/math-trunc');\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 -- NaN check\n  return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar 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","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n  var offset = toPositiveInteger(it);\n  if (offset % BYTES) throw new $RangeError('Wrong offset');\n  return offset;\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n  var result = toIntegerOrInfinity(it);\n  if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n  return result;\n};\n","'use strict';\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 = 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 new $TypeError(\"Can't convert object to primitive value\");\n  }\n  if (pref === undefined) pref = 'number';\n  return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n  if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n  return $String(argument);\n};\n","'use strict';\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n  try {\n    // eslint-disable-next-line no-new-func -- safe\n    if (IS_NODE) return Function('return require(\"' + name + '\")')();\n  } catch (error) { /* empty */ }\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n  try {\n    return $String(argument);\n  } catch (error) {\n    return 'Object';\n  }\n};\n","'use strict';\nvar 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","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n  && !Symbol.sham\n  && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n    value: 42,\n    writable: false\n  }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n  if (passed < required) throw new $TypeError('Not enough arguments');\n  return passed;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar 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/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!hasOwn(WellKnownSymbolsStore, name)) {\n    WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n      ? Symbol[name]\n      : createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n  var STACK_TRACE_LIMIT = 'stackTraceLimit';\n  var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n  var path = FULL_NAME.split('.');\n  var ERROR_NAME = path[path.length - 1];\n  var OriginalError = getBuiltIn.apply(null, path);\n\n  if (!OriginalError) return;\n\n  var OriginalErrorPrototype = OriginalError.prototype;\n\n  // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n  if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n  if (!FORCED) return OriginalError;\n\n  var BaseError = getBuiltIn('Error');\n\n  var WrappedError = wrapper(function (a, b) {\n    var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n    var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n    if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n    installErrorStack(result, WrappedError, result.stack, 2);\n    if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n    if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n    return result;\n  });\n\n  WrappedError.prototype = OriginalErrorPrototype;\n\n  if (ERROR_NAME !== 'Error') {\n    if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n    else copyConstructorProperties(WrappedError, BaseError, { name: true });\n  } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n    proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n    proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n  }\n\n  copyConstructorProperties(WrappedError, OriginalError);\n\n  if (!IS_PURE) try {\n    // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n    if (OriginalErrorPrototype.name !== ERROR_NAME) {\n      createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n    }\n    OriginalErrorPrototype.constructor = WrappedError;\n  } catch (error) { /* empty */ }\n\n  return WrappedError;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n  return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).push();\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  push: function push(item) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var argCount = arguments.length;\n    doesNotExceedSafeInteger(len + argCount);\n    for (var i = 0; i < argCount; i++) {\n      O[len] = arguments[i];\n      len++;\n    }\n    setArrayLength(O, len);\n    return len;\n  }\n});\n","'use strict';\n/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\n// eslint-disable-next-line es/no-error-cause -- feature detection\nvar FORCED = new Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  var O = {};\n  O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n  $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  if (WebAssembly && WebAssembly[ERROR_NAME]) {\n    var O = {};\n    O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n    $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n  }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\nexportGlobalErrorCauseWrapper('Error', function (init) {\n  return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n  return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n  return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n  return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n  return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n  return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n  return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n  return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n  return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n  return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n  return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n  return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () {\n  // eslint-disable-next-line es/no-typed-arrays -- required for testing\n  var array = new Uint8ClampedArray(2);\n  call($set, array, { length: 1, 0: 3 }, 1);\n  return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n  var array = new Int8Array(2);\n  array.set(1);\n  array.set('2', 1);\n  return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n  aTypedArray(this);\n  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n  var src = toIndexedObject(arrayLike);\n  if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n  var length = this.length;\n  var len = lengthOfArrayLike(src);\n  var index = 0;\n  if (len + offset > length) throw new RangeError('Wrong length');\n  while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n  return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this));\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n  if (compareFn !== undefined) aCallable(compareFn);\n  var O = aTypedArray(this);\n  var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n  return sort(A, compareFn);\n});\n","'use strict';\nvar arrayWith = require('../internals/array-with');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar PROPER_ORDER = !!function () {\n  try {\n    // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n    new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n  } catch (error) {\n    // some early implementations, like WebKit, does not follow the final semantic\n    // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n    return error === 8;\n  }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n  var O = aTypedArray(this);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var actualValue = isBigIntArray(O) ? toBigInt(value) : +value;\n  return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue);\n} }['with'], !PROPER_ORDER);\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n  defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n    configurable: true,\n    get: function detached() {\n      return isDetached(this);\n    }\n  });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n  transferToFixedLength: function transferToFixedLength() {\n    return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n  transfer: function transfer() {\n    return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar IS_PURE = require('../internals/is-pure');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = global.Iterator;\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n  || !isCallable(NativeIterator)\n  || NativeIterator.prototype !== IteratorPrototype\n  // FF44- non-standard `Iterator` passes previous tests\n  || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n  anInstance(this, IteratorPrototype);\n  if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) {\n  createNonEnumerableProperty(IteratorPrototype, TO_STRING_TAG, 'Iterator');\n}\n\nif (FORCED || !hasOwn(IteratorPrototype, 'constructor') || IteratorPrototype.constructor === Object) {\n  createNonEnumerableProperty(IteratorPrototype, 'constructor', IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://github.com/tc39/proposal-iterator-helpers\n$({ global: true, constructor: true, forced: FORCED }, {\n  Iterator: IteratorConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.every` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  every: function every(predicate) {\n    anObject(this);\n    aCallable(predicate);\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return !iterate(record, function (value, stop) {\n      if (!predicate(value, counter++)) return stop();\n    }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var predicate = this.predicate;\n  var next = this.next;\n  var result, done, value;\n  while (true) {\n    result = anObject(call(next, iterator));\n    done = this.done = !!result.done;\n    if (done) return;\n    value = result.value;\n    if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n  }\n});\n\n// `Iterator.prototype.filter` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n  filter: function filter(predicate) {\n    anObject(this);\n    aCallable(predicate);\n    return new IteratorProxy(getIteratorDirect(this), {\n      predicate: predicate\n    });\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorClose = require('../internals/iterator-close');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var mapper = this.mapper;\n  var result, inner;\n\n  while (true) {\n    if (inner = this.inner) try {\n      result = anObject(call(inner.next, inner.iterator));\n      if (!result.done) return result.value;\n      this.inner = null;\n    } catch (error) { iteratorClose(iterator, 'throw', error); }\n\n    result = anObject(call(this.next, iterator));\n\n    if (this.done = !!result.done) return;\n\n    try {\n      this.inner = getIteratorFlattenable(mapper(result.value, this.counter++), false);\n    } catch (error) { iteratorClose(iterator, 'throw', error); }\n  }\n});\n\n// `Iterator.prototype.flatMap` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n  flatMap: function flatMap(mapper) {\n    anObject(this);\n    aCallable(mapper);\n    return new IteratorProxy(getIteratorDirect(this), {\n      mapper: mapper,\n      inner: null\n    });\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar map = require('../internals/iterator-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n  map: map\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.some` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  some: function some(predicate) {\n    anObject(this);\n    aCallable(predicate);\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return iterate(record, function (value, stop) {\n      if (predicate(value, counter++)) return stop();\n    }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar parseJSONString = require('../internals/parse-json-string');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar JSON = global.JSON;\nvar Number = global.Number;\nvar SyntaxError = global.SyntaxError;\nvar nativeParse = JSON && JSON.parse;\nvar enumerableOwnProperties = getBuiltIn('Object', 'keys');\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar IS_DIGIT = /^\\d$/;\nvar IS_NON_ZERO_DIGIT = /^[1-9]$/;\nvar IS_NUMBER_START = /^(?:-|\\d)$/;\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\nvar PRIMITIVE = 0;\nvar OBJECT = 1;\n\nvar $parse = function (source, reviver) {\n  source = toString(source);\n  var context = new Context(source, 0, '');\n  var root = context.parse();\n  var value = root.value;\n  var endIndex = context.skip(IS_WHITESPACE, root.end);\n  if (endIndex < source.length) {\n    throw new SyntaxError('Unexpected extra character: \"' + at(source, endIndex) + '\" after the parsed data at: ' + endIndex);\n  }\n  return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;\n};\n\nvar internalize = function (holder, name, reviver, node) {\n  var val = holder[name];\n  var unmodified = node && val === node.value;\n  var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};\n  var elementRecordsLen, keys, len, i, P;\n  if (isObject(val)) {\n    var nodeIsArray = isArray(val);\n    var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};\n    if (nodeIsArray) {\n      elementRecordsLen = nodes.length;\n      len = lengthOfArrayLike(val);\n      for (i = 0; i < len; i++) {\n        internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));\n      }\n    } else {\n      keys = enumerableOwnProperties(val);\n      len = lengthOfArrayLike(keys);\n      for (i = 0; i < len; i++) {\n        P = keys[i];\n        internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));\n      }\n    }\n  }\n  return call(reviver, holder, name, val, context);\n};\n\nvar internalizeProperty = function (object, key, value) {\n  if (DESCRIPTORS) {\n    var descriptor = getOwnPropertyDescriptor(object, key);\n    if (descriptor && !descriptor.configurable) return;\n  }\n  if (value === undefined) delete object[key];\n  else createProperty(object, key, value);\n};\n\nvar Node = function (value, end, source, nodes) {\n  this.value = value;\n  this.end = end;\n  this.source = source;\n  this.nodes = nodes;\n};\n\nvar Context = function (source, index) {\n  this.source = source;\n  this.index = index;\n};\n\n// https://www.json.org/json-en.html\nContext.prototype = {\n  fork: function (nextIndex) {\n    return new Context(this.source, nextIndex);\n  },\n  parse: function () {\n    var source = this.source;\n    var i = this.skip(IS_WHITESPACE, this.index);\n    var fork = this.fork(i);\n    var chr = at(source, i);\n    if (exec(IS_NUMBER_START, chr)) return fork.number();\n    switch (chr) {\n      case '{':\n        return fork.object();\n      case '[':\n        return fork.array();\n      case '\"':\n        return fork.string();\n      case 't':\n        return fork.keyword(true);\n      case 'f':\n        return fork.keyword(false);\n      case 'n':\n        return fork.keyword(null);\n    } throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n  },\n  node: function (type, value, start, end, nodes) {\n    return new Node(value, end, type ? null : slice(this.source, start, end), nodes);\n  },\n  object: function () {\n    var source = this.source;\n    var i = this.index + 1;\n    var expectKeypair = false;\n    var object = {};\n    var nodes = {};\n    while (i < source.length) {\n      i = this.until(['\"', '}'], i);\n      if (at(source, i) === '}' && !expectKeypair) {\n        i++;\n        break;\n      }\n      // Parsing the key\n      var result = this.fork(i).string();\n      var key = result.value;\n      i = result.end;\n      i = this.until([':'], i) + 1;\n      // Parsing value\n      i = this.skip(IS_WHITESPACE, i);\n      result = this.fork(i).parse();\n      createProperty(nodes, key, result);\n      createProperty(object, key, result.value);\n      i = this.until([',', '}'], result.end);\n      var chr = at(source, i);\n      if (chr === ',') {\n        expectKeypair = true;\n        i++;\n      } else if (chr === '}') {\n        i++;\n        break;\n      }\n    }\n    return this.node(OBJECT, object, this.index, i, nodes);\n  },\n  array: function () {\n    var source = this.source;\n    var i = this.index + 1;\n    var expectElement = false;\n    var array = [];\n    var nodes = [];\n    while (i < source.length) {\n      i = this.skip(IS_WHITESPACE, i);\n      if (at(source, i) === ']' && !expectElement) {\n        i++;\n        break;\n      }\n      var result = this.fork(i).parse();\n      push(nodes, result);\n      push(array, result.value);\n      i = this.until([',', ']'], result.end);\n      if (at(source, i) === ',') {\n        expectElement = true;\n        i++;\n      } else if (at(source, i) === ']') {\n        i++;\n        break;\n      }\n    }\n    return this.node(OBJECT, array, this.index, i, nodes);\n  },\n  string: function () {\n    var index = this.index;\n    var parsed = parseJSONString(this.source, this.index + 1);\n    return this.node(PRIMITIVE, parsed.value, index, parsed.end);\n  },\n  number: function () {\n    var source = this.source;\n    var startIndex = this.index;\n    var i = startIndex;\n    if (at(source, i) === '-') i++;\n    if (at(source, i) === '0') i++;\n    else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, ++i);\n    else throw new SyntaxError('Failed to parse number at: ' + i);\n    if (at(source, i) === '.') i = this.skip(IS_DIGIT, ++i);\n    if (at(source, i) === 'e' || at(source, i) === 'E') {\n      i++;\n      if (at(source, i) === '+' || at(source, i) === '-') i++;\n      var exponentStartIndex = i;\n      i = this.skip(IS_DIGIT, i);\n      if (exponentStartIndex === i) throw new SyntaxError(\"Failed to parse number's exponent value at: \" + i);\n    }\n    return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);\n  },\n  keyword: function (value) {\n    var keyword = '' + value;\n    var index = this.index;\n    var endIndex = index + keyword.length;\n    if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index);\n    return this.node(PRIMITIVE, value, index, endIndex);\n  },\n  skip: function (regex, i) {\n    var source = this.source;\n    for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;\n    return i;\n  },\n  until: function (array, i) {\n    i = this.skip(IS_WHITESPACE, i);\n    var chr = at(this.source, i);\n    for (var j = 0; j < array.length; j++) if (array[j] === chr) return i;\n    throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n  }\n};\n\nvar NO_SOURCE_SUPPORT = fails(function () {\n  var unsafeInt = '9007199254740993';\n  var source;\n  nativeParse(unsafeInt, function (key, value, context) {\n    source = context.source;\n  });\n  return source !== unsafeInt;\n});\n\nvar PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {\n  // Safari 9 bug\n  return 1 / nativeParse('-0 \\t') !== -Infinity;\n});\n\n// `JSON.parse` method\n// https://tc39.es/ecma262/#sec-json.parse\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {\n  parse: function parse(text, reviver) {\n    return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, {\n  difference: difference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () {\n  // eslint-disable-next-line es/no-array-from, es/no-set -- testing\n  return Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2]))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n  intersection: intersection\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, {\n  isDisjointFrom: isDisjointFrom\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, {\n  isSubsetOf: isSubsetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, {\n  isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n  symmetricDifference: symmetricDifference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n  union: union\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n  anInstance(this, DOMExceptionPrototype);\n  var argumentsLength = arguments.length;\n  var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n  var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n  var that = new NativeDOMException(message, name);\n  var error = new Error(message);\n  error.name = DOM_EXCEPTION;\n  defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n  inheritIfRequired(that, this, $DOMException);\n  return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n  DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n  if (!IS_PURE) {\n    defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n  }\n\n  for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n    var constant = DOMExceptionConstants[key];\n    var constantName = constant.s;\n    if (!hasOwn(PolyfilledDOMException, constantName)) {\n      defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n    }\n  }\n}\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n  defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n    var length = arguments.length;\n    var $value = length < 2 ? undefined : arguments[1];\n    if (length && $value === undefined) return $delete(this, name);\n    var entries = [];\n    forEach(this, function (v, k) { // also validates `this`\n      push(entries, { key: k, value: v });\n    });\n    validateArgumentsLength(length, 1);\n    var key = toString(name);\n    var value = toString($value);\n    var index = 0;\n    var dindex = 0;\n    var found = false;\n    var entriesLength = entries.length;\n    var entry;\n    while (index < entriesLength) {\n      entry = entries[index++];\n      if (found || entry.key === key) {\n        found = true;\n        $delete(this, entry.key);\n      } else dindex++;\n    }\n    while (dindex < entriesLength) {\n      entry = entries[dindex++];\n      if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n    }\n  }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n  defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n    var length = arguments.length;\n    var $value = length < 2 ? undefined : arguments[1];\n    if (length && $value === undefined) return $has(this, name);\n    var values = getAll(this, name); // also validates `this`\n    validateArgumentsLength(length, 1);\n    var value = toString($value);\n    var index = 0;\n    while (index < values.length) {\n      if (values[index++] === value) return true;\n    } return false;\n  }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n  defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n    get: function size() {\n      var count = 0;\n      forEach(this, function () { count++; });\n      return count;\n    },\n    configurable: true,\n    enumerable: true\n  });\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\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\nfunction scaleAndClamp(x) {\n  return Math.max(0, Math.min(255, 255 * x));\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_rgb([g]) {\n    g = scaleAndClamp(g);\n    return [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_rgb(color) {\n    return color.map(scaleAndClamp);\n  }\n\n  static RGB_HTML(color) {\n    return `#${color.map(makeColorComp).join(\"\")}`;\n  }\n\n  static T_HTML() {\n    return \"#00000000\";\n  }\n\n  static T_rgb() {\n    return [null];\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_rgb([c, y, m, k]) {\n    return [\n      scaleAndClamp(1 - Math.min(1, c + k)),\n      scaleAndClamp(1 - Math.min(1, m + k)),\n      scaleAndClamp(1 - Math.min(1, y + k)),\n    ];\n  }\n\n  static CMYK_HTML(components) {\n    const rgb = this.CMYK_RGB(components).slice(1);\n    return this.RGB_HTML(rgb);\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 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// eslint-disable-next-line max-len\n/** @typedef {import(\"../../web/text_accessibility.js\").TextAccessibilityManager} TextAccessibilityManager */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../../web/interfaces\").IDownloadManager} IDownloadManager */\n/** @typedef {import(\"../../web/interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport {\n  AnnotationBorderStyleType,\n  AnnotationEditorType,\n  AnnotationPrefix,\n  AnnotationType,\n  FeatureTest,\n  LINE_FACTOR,\n  shadow,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  DOMSVGFactory,\n  getFilenameFromUrl,\n  PDFDateString,\n  setLayerDimensions,\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 DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\n\nfunction getRectDims(rect) {\n  return {\n    width: rect[2] - rect[0],\n    height: rect[3] - rect[1],\n  };\n}\n\n/**\n * @typedef {Object} AnnotationElementParameters\n * @property {Object} data\n * @property {HTMLDivElement} layer\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 */\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          case \"Sig\":\n            return new SignatureWidgetAnnotationElement(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  #hasBorder = false;\n\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.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.parent = parameters.parent;\n\n    if (isRenderable) {\n      this.container = this._createContainer(ignoreBorder);\n    }\n    if (createQuadrilaterals) {\n      this._createQuadrilaterals();\n    }\n  }\n\n  static _hasPopupData({ titleObj, contentsObj, richText }) {\n    return !!(titleObj?.str || contentsObj?.str || richText?.str);\n  }\n\n  get hasPopupData() {\n    return AnnotationElement._hasPopupData(this.data);\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 {HTMLElement} A section element.\n   */\n  _createContainer(ignoreBorder) {\n    const {\n      data,\n      parent: { page, viewport },\n    } = this;\n\n    const container = document.createElement(\"section\");\n    container.setAttribute(\"data-annotation-id\", data.id);\n    if (!(this instanceof WidgetAnnotationElement)) {\n      container.tabIndex = DEFAULT_TAB_INDEX;\n    }\n\n    // The accessibility manager will move the annotation in the DOM in\n    // order to match the visual ordering.\n    // But if an annotation is above an other one, then we must draw it\n    // after the other one whatever the order is in the DOM, hence the\n    // use of the z-index.\n    container.style.zIndex = this.parent.zIndex++;\n\n    if (this.data.popupRef) {\n      container.setAttribute(\"aria-haspopup\", \"dialog\");\n    }\n\n    if (data.noRotate) {\n      container.classList.add(\"norotate\");\n    }\n\n    const { pageWidth, pageHeight, pageX, pageY } = viewport.rawDims;\n\n    if (!data.rect || this instanceof PopupAnnotationElement) {\n      const { rotation } = data;\n      if (!data.hasOwnCanvas && rotation !== 0) {\n        this.setRotation(rotation, container);\n      }\n      return container;\n    }\n\n    const { width, height } = getRectDims(data.rect);\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 (!ignoreBorder && data.borderStyle.width > 0) {\n      container.style.borderWidth = `${data.borderStyle.width}px`;\n\n      const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n      const verticalRadius = data.borderStyle.verticalCornerRadius;\n      if (horizontalRadius > 0 || verticalRadius > 0) {\n        const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n        container.style.borderRadius = radius;\n      } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n        const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;\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 || null;\n      if (borderColor) {\n        this.#hasBorder = true;\n        container.style.borderColor = Util.makeHexColor(\n          borderColor[0] | 0,\n          borderColor[1] | 0,\n          borderColor[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 = `${(100 * (rect[0] - pageX)) / pageWidth}%`;\n    container.style.top = `${(100 * (rect[1] - pageY)) / pageHeight}%`;\n\n    const { rotation } = data;\n    if (data.hasOwnCanvas || rotation === 0) {\n      container.style.width = `${(100 * width) / pageWidth}%`;\n      container.style.height = `${(100 * height) / pageHeight}%`;\n    } else {\n      this.setRotation(rotation, container);\n    }\n\n    return container;\n  }\n\n  setRotation(angle, container = this.container) {\n    if (!this.data.rect) {\n      return;\n    }\n    const { pageWidth, pageHeight } = this.parent.viewport.rawDims;\n    const { width, height } = getRectDims(this.data.rect);\n\n    let elementWidth, elementHeight;\n    if (angle % 180 === 0) {\n      elementWidth = (100 * width) / pageWidth;\n      elementHeight = (100 * height) / pageHeight;\n    } else {\n      elementWidth = (100 * height) / pageWidth;\n      elementHeight = (100 * width) / pageHeight;\n    }\n\n    container.style.width = `${elementWidth}%`;\n    container.style.height = `${elementHeight}%`;\n\n    container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n  }\n\n  get _commonActions() {\n    const setColor = (jsName, styleName, event) => {\n      const color = event.detail[jsName];\n      const colorType = color[0];\n      const colorArray = color.slice(1);\n      event.target.style[styleName] =\n        ColorConverters[`${colorType}_HTML`](colorArray);\n      this.annotationStorage.setValue(this.data.id, {\n        [styleName]: ColorConverters[`${colorType}_rgb`](colorArray),\n      });\n    };\n\n    return shadow(this, \"_commonActions\", {\n      display: event => {\n        const { display } = event.detail;\n        // See scripting/constants.js for the values of `Display`.\n        // 0 = visible, 1 = hidden, 2 = noPrint and 3 = noView.\n        const hidden = display % 2 === 1;\n        this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n        this.annotationStorage.setValue(this.data.id, {\n          noView: hidden,\n          noPrint: display === 1 || display === 2,\n        });\n      },\n      print: event => {\n        this.annotationStorage.setValue(this.data.id, {\n          noPrint: !event.detail.print,\n        });\n      },\n      hidden: event => {\n        const { hidden } = event.detail;\n        this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n        this.annotationStorage.setValue(this.data.id, {\n          noPrint: hidden,\n          noView: 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        event.target.disabled = event.detail.readonly;\n      },\n      required: event => {\n        this._setRequired(event.target, event.detail.required);\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      rotation: event => {\n        const angle = event.detail.rotation;\n        this.setRotation(angle);\n        this.annotationStorage.setValue(this.data.id, {\n          rotation: angle,\n        });\n      },\n    });\n  }\n\n  _dispatchEventFromSandbox(actions, jsEvent) {\n    const commonActions = this._commonActions;\n    for (const name of Object.keys(jsEvent.detail)) {\n      const action = actions[name] || commonActions[name];\n      action?.(jsEvent);\n    }\n  }\n\n  _setDefaultPropertiesFromJS(element) {\n    if (!this.enableScripting) {\n      return;\n    }\n\n    // Some properties may have been updated thanks to JS.\n    const storedData = this.annotationStorage.getRawValue(this.data.id);\n    if (!storedData) {\n      return;\n    }\n\n    const commonActions = this._commonActions;\n    for (const [actionName, detail] of Object.entries(storedData)) {\n      const action = commonActions[actionName];\n      if (action) {\n        const eventProxy = {\n          detail: {\n            [actionName]: detail,\n          },\n          target: element,\n        };\n        action(eventProxy);\n        // The action has been consumed: no need to keep it.\n        delete storedData[actionName];\n      }\n    }\n  }\n\n  /**\n   * Create quadrilaterals from the annotation's quadpoints.\n   *\n   * @private\n   * @memberof AnnotationElement\n   */\n  _createQuadrilaterals() {\n    if (!this.container) {\n      return;\n    }\n    const { quadPoints } = this.data;\n    if (!quadPoints) {\n      return;\n    }\n\n    const [rectBlX, rectBlY, rectTrX, rectTrY] = this.data.rect;\n\n    if (quadPoints.length === 1) {\n      const [, { x: trX, y: trY }, { x: blX, y: blY }] = quadPoints[0];\n      if (\n        rectTrX === trX &&\n        rectTrY === trY &&\n        rectBlX === blX &&\n        rectBlY === blY\n      ) {\n        // The quadpoints cover the whole annotation rectangle, so no need to\n        // create a quadrilateral.\n        return;\n      }\n    }\n\n    const { style } = this.container;\n    let svgBuffer;\n    if (this.#hasBorder) {\n      const { borderColor, borderWidth } = style;\n      style.borderWidth = 0;\n      svgBuffer = [\n        \"url('data:image/svg+xml;utf8,\",\n        `<svg xmlns=\"http://www.w3.org/2000/svg\"`,\n        ` preserveAspectRatio=\"none\" viewBox=\"0 0 1 1\">`,\n        `<g fill=\"transparent\" stroke=\"${borderColor}\" stroke-width=\"${borderWidth}\">`,\n      ];\n      this.container.classList.add(\"hasBorder\");\n    }\n\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n      this.container.classList.add(\"hasClipPath\");\n    }\n\n    const width = rectTrX - rectBlX;\n    const height = rectTrY - rectBlY;\n\n    const { svgFactory } = this;\n    const svg = svgFactory.createElement(\"svg\");\n    svg.classList.add(\"quadrilateralsContainer\");\n    svg.setAttribute(\"width\", 0);\n    svg.setAttribute(\"height\", 0);\n    const defs = svgFactory.createElement(\"defs\");\n    svg.append(defs);\n    const clipPath = svgFactory.createElement(\"clipPath\");\n    const id = `clippath_${this.data.id}`;\n    clipPath.setAttribute(\"id\", id);\n    clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n    defs.append(clipPath);\n\n    for (const [, { x: trX, y: trY }, { x: blX, y: blY }] of quadPoints) {\n      const rect = svgFactory.createElement(\"rect\");\n      const x = (blX - rectBlX) / width;\n      const y = (rectTrY - trY) / height;\n      const rectWidth = (trX - blX) / width;\n      const rectHeight = (trY - blY) / height;\n      rect.setAttribute(\"x\", x);\n      rect.setAttribute(\"y\", y);\n      rect.setAttribute(\"width\", rectWidth);\n      rect.setAttribute(\"height\", rectHeight);\n      clipPath.append(rect);\n      svgBuffer?.push(\n        `<rect vector-effect=\"non-scaling-stroke\" x=\"${x}\" y=\"${y}\" width=\"${rectWidth}\" height=\"${rectHeight}\"/>`\n      );\n    }\n\n    if (this.#hasBorder) {\n      svgBuffer.push(`</g></svg>')`);\n      style.backgroundImage = svgBuffer.join(\"\");\n    }\n\n    this.container.append(svg);\n    this.container.style.clipPath = `url(#${id})`;\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   * @memberof AnnotationElement\n   */\n  _createPopup() {\n    const { container, data } = this;\n    container.setAttribute(\"aria-haspopup\", \"dialog\");\n\n    const popup = new PopupAnnotationElement({\n      data: {\n        color: data.color,\n        titleObj: data.titleObj,\n        modificationDate: data.modificationDate,\n        contentsObj: data.contentsObj,\n        richText: data.richText,\n        parentRect: data.rect,\n        borderStyle: 0,\n        id: `popup_${data.id}`,\n        rotation: data.rotation,\n      },\n      parent: this.parent,\n      elements: [this],\n    });\n    this.parent.div.append(popup.render());\n  }\n\n  /**\n   * Render the annotation's HTML element(s).\n   *\n   * @public\n   * @memberof AnnotationElement\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.querySelector(\n            `[data-element-id=\"${id}\"]`\n          );\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 { exportValue } = domElement;\n      const id = domElement.getAttribute(\"data-element-id\");\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  show() {\n    if (this.container) {\n      this.container.hidden = false;\n    }\n    this.popup?.maybeShow();\n  }\n\n  hide() {\n    if (this.container) {\n      this.container.hidden = true;\n    }\n    this.popup?.forceHide();\n  }\n\n  /**\n   * Get the HTML element(s) which can trigger a popup when clicked or hovered.\n   *\n   * @public\n   * @memberof AnnotationElement\n   * @returns {Array<HTMLElement>|HTMLElement} An array of elements or an\n   *          element.\n   */\n  getElementsToTriggerPopup() {\n    return this.container;\n  }\n\n  addHighlightArea() {\n    const triggers = this.getElementsToTriggerPopup();\n    if (Array.isArray(triggers)) {\n      for (const element of triggers) {\n        element.classList.add(\"highlightArea\");\n      }\n    } else {\n      triggers.classList.add(\"highlightArea\");\n    }\n  }\n\n  get _isEditable() {\n    return false;\n  }\n\n  _editOnDoubleClick() {\n    if (!this._isEditable) {\n      return;\n    }\n    const {\n      annotationEditorType: mode,\n      data: { id: editId },\n    } = this;\n    this.container.addEventListener(\"dblclick\", () => {\n      this.linkService.eventBus?.dispatch(\"switchannotationeditormode\", {\n        source: this,\n        mode,\n        editId,\n      });\n    });\n  }\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n  constructor(parameters, options = null) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: !!options?.ignoreBorder,\n      createQuadrilaterals: true,\n    });\n    this.isTooltipOnly = parameters.data.isTooltipOnly;\n  }\n\n  render() {\n    const { data, linkService } = this;\n    const link = document.createElement(\"a\");\n    link.setAttribute(\"data-element-id\", data.id);\n    let isBound = false;\n\n    if (data.url) {\n      linkService.addLinkAttributes(link, data.url, data.newWindow);\n      isBound = true;\n    } else if (data.action) {\n      this._bindNamedAction(link, data.action);\n      isBound = true;\n    } else if (data.attachment) {\n      this.#bindAttachment(link, data.attachment, data.attachmentDest);\n      isBound = true;\n    } else if (data.setOCGState) {\n      this.#bindSetOCGState(link, data.setOCGState);\n      isBound = true;\n    } else if (data.dest) {\n      this._bindLink(link, data.dest);\n      isBound = true;\n    } else {\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        this._bindJSAction(link, data);\n        isBound = true;\n      }\n\n      if (data.resetForm) {\n        this._bindResetFormAction(link, data.resetForm);\n        isBound = true;\n      } else if (this.isTooltipOnly && !isBound) {\n        this._bindLink(link, \"\");\n        isBound = true;\n      }\n    }\n\n    this.container.classList.add(\"linkAnnotation\");\n    if (isBound) {\n      this.container.append(link);\n    }\n\n    return this.container;\n  }\n\n  #setInternalLink() {\n    this.container.setAttribute(\"data-internal-link\", \"\");\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      this.#setInternalLink();\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    this.#setInternalLink();\n  }\n\n  /**\n   * Bind attachments to the link element.\n   * @param {Object} link\n   * @param {Object} attachment\n   * @param {str} [dest]\n   */\n  #bindAttachment(link, attachment, dest = null) {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    link.onclick = () => {\n      this.downloadManager?.openOrDownloadData(\n        attachment.content,\n        attachment.filename,\n        dest\n      );\n      return false;\n    };\n    this.#setInternalLink();\n  }\n\n  /**\n   * Bind SetOCGState actions to the link element.\n   * @param {Object} link\n   * @param {Object} action\n   */\n  #bindSetOCGState(link, action) {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    link.onclick = () => {\n      this.linkService.executeSetOCGState(action);\n      return false;\n    };\n    this.#setInternalLink();\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    this.#setInternalLink();\n  }\n\n  _bindResetFormAction(link, resetForm) {\n    const otherClickAction = link.onclick;\n    if (!otherClickAction) {\n      link.href = this.linkService.getAnchorUrl(\"\");\n    }\n    this.#setInternalLink();\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      otherClickAction?.();\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 });\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\n        const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n        if (!domElement) {\n          continue;\n        } else if (!GetElementsByNameSet.has(domElement)) {\n          warn(`_bindResetFormAction - element not allowed: ${id}`);\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    super(parameters, { isRenderable: true });\n  }\n\n  render() {\n    this.container.classList.add(\"textAnnotation\");\n\n    const image = document.createElement(\"img\");\n    image.src =\n      this.imageResourcesPath +\n      \"annotation-\" +\n      this.data.name.toLowerCase() +\n      \".svg\";\n    image.setAttribute(\"data-l10n-id\", \"pdfjs-text-annotation-type\");\n    image.setAttribute(\n      \"data-l10n-args\",\n      JSON.stringify({ type: this.data.name })\n    );\n\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    this.container.append(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  showElementAndHideCanvas(element) {\n    if (this.data.hasOwnCanvas) {\n      if (element.previousSibling?.nodeName === \"CANVAS\") {\n        element.previousSibling.hidden = true;\n      }\n      element.hidden = false;\n    }\n  }\n\n  _getKeyModifier(event) {\n    return FeatureTest.platform.isMac ? event.metaKey : event.ctrlKey;\n  }\n\n  _setEventListener(element, elementData, 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 events\n      element.addEventListener(baseName, event => {\n        if (baseName === \"blur\") {\n          if (!elementData.focused || !event.relatedTarget) {\n            return;\n          }\n          elementData.focused = false;\n        } else if (baseName === \"focus\") {\n          if (elementData.focused) {\n            return;\n          }\n          elementData.focused = true;\n        }\n\n        if (!valueGetter) {\n          return;\n        }\n\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: this.data.id,\n            name: eventName,\n            value: valueGetter(event),\n          },\n        });\n      });\n    }\n  }\n\n  _setEventListeners(element, elementData, names, getter) {\n    for (const [baseName, eventName] of names) {\n      if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n        if (eventName === \"Focus\" || eventName === \"Blur\") {\n          elementData ||= { focused: false };\n        }\n        this._setEventListener(\n          element,\n          elementData,\n          baseName,\n          eventName,\n          getter\n        );\n        if (eventName === \"Focus\" && !this.data.actions?.Blur) {\n          // Ensure that elementData will have the correct value.\n          this._setEventListener(element, elementData, \"blur\", \"Blur\", null);\n        } else if (eventName === \"Blur\" && !this.data.actions?.Focus) {\n          this._setEventListener(element, elementData, \"focus\", \"Focus\", null);\n        }\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  /**\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 { fontColor } = this.data.defaultAppearanceData;\n    const fontSize =\n      this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE;\n\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\n    // We don't use the font, as specified in the PDF document, for the <input>\n    // element. Hence using the original `fontSize` could look bad, which is why\n    // it's instead based on the field height.\n    // If the height is \"big\" then it could lead to a too big font size\n    // so in this case use the one we've in the pdf (hence the min).\n    let computedFontSize;\n    const BORDER_SIZE = 2;\n    const roundToOneDecimal = x => Math.round(10 * x) / 10;\n    if (this.data.multiLine) {\n      const height = Math.abs(\n        this.data.rect[3] - this.data.rect[1] - BORDER_SIZE\n      );\n      const numberOfLines = Math.round(height / (LINE_FACTOR * fontSize)) || 1;\n      const lineHeight = height / numberOfLines;\n      computedFontSize = Math.min(\n        fontSize,\n        roundToOneDecimal(lineHeight / LINE_FACTOR)\n      );\n    } else {\n      const height = Math.abs(\n        this.data.rect[3] - this.data.rect[1] - BORDER_SIZE\n      );\n      computedFontSize = Math.min(\n        fontSize,\n        roundToOneDecimal(height / LINE_FACTOR)\n      );\n    }\n    style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\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  _setRequired(element, isRequired) {\n    if (isRequired) {\n      element.setAttribute(\"required\", true);\n    } else {\n      element.removeAttribute(\"required\");\n    }\n    element.setAttribute(\"aria-required\", isRequired);\n  }\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    const isRenderable =\n      parameters.renderForms ||\n      parameters.data.hasOwnCanvas ||\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.classList.add(\"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      });\n      let textContent = storedData.value || \"\";\n      const maxLen = storage.getValue(id, {\n        charLimit: this.data.maxLen,\n      }).charLimit;\n      if (maxLen && textContent.length > maxLen) {\n        textContent = textContent.slice(0, maxLen);\n      }\n\n      let fieldFormattedValues =\n        storedData.formattedValue || this.data.textContent?.join(\"\\n\") || null;\n      if (fieldFormattedValues && this.data.comb) {\n        fieldFormattedValues = fieldFormattedValues.replaceAll(/\\s+/g, \"\");\n      }\n\n      const elementData = {\n        userValue: textContent,\n        formattedValue: fieldFormattedValues,\n        lastCommittedValue: null,\n        commitKey: 1,\n        focused: false,\n      };\n\n      if (this.data.multiLine) {\n        element = document.createElement(\"textarea\");\n        element.textContent = fieldFormattedValues ?? textContent;\n        if (this.data.doNotScroll) {\n          element.style.overflowY = \"hidden\";\n        }\n      } else {\n        element = document.createElement(\"input\");\n        element.type = \"text\";\n        element.setAttribute(\"value\", fieldFormattedValues ?? textContent);\n        if (this.data.doNotScroll) {\n          element.style.overflowX = \"hidden\";\n        }\n      }\n      if (this.data.hasOwnCanvas) {\n        element.hidden = true;\n      }\n      GetElementsByNameSet.add(element);\n      element.setAttribute(\"data-element-id\", id);\n\n      element.disabled = this.data.readOnly;\n      element.name = this.data.fieldName;\n      element.tabIndex = DEFAULT_TAB_INDEX;\n\n      this._setRequired(element, this.data.required);\n\n      if (maxLen) {\n        element.maxLength = maxLen;\n      }\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        elementData.formattedValue = null;\n      });\n\n      element.addEventListener(\"resetform\", event => {\n        const defaultValue = this.data.defaultFieldValue ?? \"\";\n        element.value = elementData.userValue = defaultValue;\n        elementData.formattedValue = null;\n      });\n\n      let blurListener = event => {\n        const { formattedValue } = elementData;\n        if (formattedValue !== null && formattedValue !== undefined) {\n          event.target.value = formattedValue;\n        }\n        // Reset the cursor position to the start of the field (issue 12359).\n        event.target.scrollLeft = 0;\n      };\n\n      if (this.enableScripting && this.hasJSActions) {\n        element.addEventListener(\"focus\", event => {\n          if (elementData.focused) {\n            return;\n          }\n          const { target } = event;\n          if (elementData.userValue) {\n            target.value = elementData.userValue;\n          }\n          elementData.lastCommittedValue = target.value;\n          elementData.commitKey = 1;\n          if (!this.data.actions?.Focus) {\n            elementData.focused = true;\n          }\n        });\n\n        element.addEventListener(\"updatefromsandbox\", jsEvent => {\n          this.showElementAndHideCanvas(jsEvent.target);\n          const actions = {\n            value(event) {\n              elementData.userValue = event.detail.value ?? \"\";\n              storage.setValue(id, { value: elementData.userValue.toString() });\n              event.target.value = elementData.userValue;\n            },\n            formattedValue(event) {\n              const { formattedValue } = event.detail;\n              elementData.formattedValue = formattedValue;\n              if (\n                formattedValue !== null &&\n                formattedValue !== undefined &&\n                event.target !== document.activeElement\n              ) {\n                // Input hasn't the focus so display formatted string\n                event.target.value = formattedValue;\n              }\n              storage.setValue(id, {\n                formattedValue,\n              });\n            },\n            selRange(event) {\n              event.target.setSelectionRange(...event.detail.selRange);\n            },\n            charLimit: event => {\n              const { charLimit } = event.detail;\n              const { target } = event;\n              if (charLimit === 0) {\n                target.removeAttribute(\"maxLength\");\n                return;\n              }\n\n              target.setAttribute(\"maxLength\", charLimit);\n              let value = elementData.userValue;\n              if (!value || value.length <= charLimit) {\n                return;\n              }\n              value = value.slice(0, charLimit);\n              target.value = elementData.userValue = value;\n              storage.setValue(id, { value });\n\n              this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n                source: this,\n                detail: {\n                  id,\n                  name: \"Keystroke\",\n                  value,\n                  willCommit: true,\n                  commitKey: 1,\n                  selStart: target.selectionStart,\n                  selEnd: target.selectionEnd,\n                },\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.commitKey = 1;\n          // If the key is one of Escape, Enter then the data are committed.\n          // If we've a Tab then data will be committed on blur.\n          let commitKey = -1;\n          if (event.key === \"Escape\") {\n            commitKey = 0;\n          } else if (event.key === \"Enter\" && !this.data.multiLine) {\n            // When we've a multiline field, \"Enter\" key is a key as the other\n            // hence we don't commit the data (Acrobat behaves the same way)\n            // (see issue #15627).\n            commitKey = 2;\n          } else if (event.key === \"Tab\") {\n            elementData.commitKey = 3;\n          }\n          if (commitKey === -1) {\n            return;\n          }\n          const { value } = event.target;\n          if (elementData.lastCommittedValue === value) {\n            return;\n          }\n          elementData.lastCommittedValue = value;\n          // Save the entered value\n          elementData.userValue = value;\n          this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n            source: this,\n            detail: {\n              id,\n              name: \"Keystroke\",\n              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 (!elementData.focused || !event.relatedTarget) {\n            return;\n          }\n          if (!this.data.actions?.Blur) {\n            elementData.focused = false;\n          }\n          const { value } = event.target;\n          elementData.userValue = value;\n          if (elementData.lastCommittedValue !== value) {\n            this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n              source: this,\n              detail: {\n                id,\n                name: \"Keystroke\",\n                value,\n                willCommit: true,\n                commitKey: elementData.commitKey,\n                selStart: event.target.selectionStart,\n                selEnd: event.target.selectionEnd,\n              },\n            });\n          }\n          _blurListener(event);\n        });\n\n        if (this.data.actions?.Keystroke) {\n          element.addEventListener(\"beforeinput\", event => {\n            elementData.lastCommittedValue = null;\n            const { data, target } = event;\n            const { value, selectionStart, selectionEnd } = target;\n\n            let selStart = selectionStart,\n              selEnd = selectionEnd;\n\n            switch (event.inputType) {\n              // https://rawgit.com/w3c/input-events/v1/index.html#interface-InputEvent-Attributes\n              case \"deleteWordBackward\": {\n                const match = value\n                  .substring(0, selectionStart)\n                  .match(/\\w*[^\\w]*$/);\n                if (match) {\n                  selStart -= match[0].length;\n                }\n                break;\n              }\n              case \"deleteWordForward\": {\n                const match = value\n                  .substring(selectionStart)\n                  .match(/^[^\\w]*\\w*/);\n                if (match) {\n                  selEnd += match[0].length;\n                }\n                break;\n              }\n              case \"deleteContentBackward\":\n                if (selectionStart === selectionEnd) {\n                  selStart -= 1;\n                }\n                break;\n              case \"deleteContentForward\":\n                if (selectionStart === selectionEnd) {\n                  selEnd += 1;\n                }\n                break;\n            }\n\n            // We handle the event ourselves.\n            event.preventDefault();\n            this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n              source: this,\n              detail: {\n                id,\n                name: \"Keystroke\",\n                value,\n                change: data || \"\",\n                willCommit: false,\n                selStart,\n                selEnd,\n              },\n            });\n          });\n        }\n\n        this._setEventListeners(\n          element,\n          elementData,\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.comb) {\n        const fieldWidth = this.data.rect[2] - this.data.rect[0];\n        const combWidth = fieldWidth / maxLen;\n\n        element.classList.add(\"comb\");\n        element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 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      if (this.data.hasOwnCanvas) {\n        element.hidden = true;\n      }\n    }\n\n    this._setTextStyle(element);\n    this._setBackgroundColor(element);\n    this._setDefaultPropertiesFromJS(element);\n\n    this.container.append(element);\n    return this.container;\n  }\n}\n\nclass SignatureWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: !!parameters.data.hasOwnCanvas });\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.classList.add(\"buttonWidgetAnnotation\", \"checkBox\");\n\n    const element = document.createElement(\"input\");\n    GetElementsByNameSet.add(element);\n    element.setAttribute(\"data-element-id\", id);\n\n    element.disabled = data.readOnly;\n    this._setRequired(element, this.data.required);\n    element.type = \"checkbox\";\n    element.name = data.fieldName;\n    if (value) {\n      element.setAttribute(\"checked\", true);\n    }\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        null,\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    this._setDefaultPropertiesFromJS(element);\n\n    this.container.append(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.classList.add(\"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    if (value) {\n      // It's possible that multiple radio buttons are checked.\n      // So if this one is checked we just reset the other ones.\n      // (see bug 1864136). Then when the other ones will be rendered they will\n      // unchecked (because of their value in the storage).\n      // Consequently, the first checked radio button will be the only checked\n      // one.\n      for (const radio of this._getElementsByName(\n        data.fieldName,\n        /* skipId = */ id\n      )) {\n        storage.setValue(radio.id, { value: false });\n      }\n    }\n\n    const element = document.createElement(\"input\");\n    GetElementsByNameSet.add(element);\n    element.setAttribute(\"data-element-id\", id);\n\n    element.disabled = data.readOnly;\n    this._setRequired(element, this.data.required);\n    element.type = \"radio\";\n    element.name = data.fieldName;\n    if (value) {\n      element.setAttribute(\"checked\", true);\n    }\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        null,\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    this._setDefaultPropertiesFromJS(element);\n\n    this.container.append(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.classList.add(\"buttonWidgetAnnotation\", \"pushButton\");\n\n    if (this.data.alternativeText) {\n      container.title = this.data.alternativeText;\n    }\n\n    const linkElement = container.lastChild;\n    if (this.enableScripting && this.hasJSActions && linkElement) {\n      this._setDefaultPropertiesFromJS(linkElement);\n\n      linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n        this._dispatchEventFromSandbox({}, jsEvent);\n      });\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.classList.add(\"choiceWidgetAnnotation\");\n    const storage = this.annotationStorage;\n    const id = this.data.id;\n\n    const storedData = storage.getValue(id, {\n      value: this.data.fieldValue,\n    });\n\n    const selectElement = document.createElement(\"select\");\n    GetElementsByNameSet.add(selectElement);\n    selectElement.setAttribute(\"data-element-id\", id);\n\n    selectElement.disabled = this.data.readOnly;\n    this._setRequired(selectElement, this.data.required);\n    selectElement.name = this.data.fieldName;\n    selectElement.tabIndex = DEFAULT_TAB_INDEX;\n\n    let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\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 (storedData.value.includes(option.exportValue)) {\n        optionElement.setAttribute(\"selected\", true);\n        addAnEmptyEntry = false;\n      }\n      selectElement.append(optionElement);\n    }\n\n    let removeEmptyEntry = null;\n    if (addAnEmptyEntry) {\n      const noneOptionElement = document.createElement(\"option\");\n      noneOptionElement.value = \" \";\n      noneOptionElement.setAttribute(\"hidden\", true);\n      noneOptionElement.setAttribute(\"selected\", true);\n      selectElement.prepend(noneOptionElement);\n\n      removeEmptyEntry = () => {\n        noneOptionElement.remove();\n        selectElement.removeEventListener(\"input\", removeEmptyEntry);\n        removeEmptyEntry = null;\n      };\n      selectElement.addEventListener(\"input\", removeEmptyEntry);\n    }\n\n    const getValue = isExport => {\n      const name = isExport ? \"value\" : \"textContent\";\n      const { options, multiple } = selectElement;\n      if (!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    let selectedValues = getValue(/* isExport */ false);\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            removeEmptyEntry?.();\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(/* isExport */ true),\n            });\n            selectedValues = getValue(/* isExport */ false);\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(/* isExport */ true),\n              items: getItems(event),\n            });\n            selectedValues = getValue(/* isExport */ false);\n          },\n          clear(event) {\n            while (selectElement.length !== 0) {\n              selectElement.remove(0);\n            }\n            storage.setValue(id, { value: null, items: [] });\n            selectedValues = getValue(/* isExport */ false);\n          },\n          insert(event) {\n            const { index, displayValue, exportValue } = event.detail.insert;\n            const selectChild = selectElement.children[index];\n            const optionElement = document.createElement(\"option\");\n            optionElement.textContent = displayValue;\n            optionElement.value = exportValue;\n\n            if (selectChild) {\n              selectChild.before(optionElement);\n            } else {\n              selectElement.append(optionElement);\n            }\n            storage.setValue(id, {\n              value: getValue(/* isExport */ true),\n              items: getItems(event),\n            });\n            selectedValues = getValue(/* isExport */ false);\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.append(optionElement);\n            }\n            if (selectElement.options.length > 0) {\n              selectElement.options[0].selected = true;\n            }\n            storage.setValue(id, {\n              value: getValue(/* isExport */ true),\n              items: getItems(event),\n            });\n            selectedValues = getValue(/* isExport */ false);\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(/* isExport */ true),\n            });\n            selectedValues = getValue(/* isExport */ false);\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(/* isExport */ true);\n        storage.setValue(id, { value: exportValue });\n\n        event.preventDefault();\n\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id,\n            name: \"Keystroke\",\n            value: selectedValues,\n            changeEx: exportValue,\n            willCommit: false,\n            commitKey: 1,\n            keyDown: false,\n          },\n        });\n      });\n\n      this._setEventListeners(\n        selectElement,\n        null,\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          [\"input\", \"Validate\"],\n        ],\n        event => event.target.value\n      );\n    } else {\n      selectElement.addEventListener(\"input\", function (event) {\n        storage.setValue(id, { value: getValue(/* isExport */ true) });\n      });\n    }\n\n    if (this.data.combo) {\n      this._setTextStyle(selectElement);\n    } else {\n      // Just use the default font size...\n      // it's a bit hard to guess what is a good size.\n    }\n    this._setBackgroundColor(selectElement);\n    this._setDefaultPropertiesFromJS(selectElement);\n\n    this.container.append(selectElement);\n    return this.container;\n  }\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const { data, elements } = parameters;\n    super(parameters, { isRenderable: AnnotationElement._hasPopupData(data) });\n    this.elements = elements;\n  }\n\n  render() {\n    this.container.classList.add(\"popupAnnotation\");\n\n    const popup = new PopupElement({\n      container: this.container,\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      rect: this.data.rect,\n      parentRect: this.data.parentRect || null,\n      parent: this.parent,\n      elements: this.elements,\n      open: this.data.open,\n    });\n\n    const elementIds = [];\n    for (const element of this.elements) {\n      element.popup = popup;\n      elementIds.push(element.data.id);\n      element.addHighlightArea();\n    }\n\n    this.container.setAttribute(\n      \"aria-controls\",\n      elementIds.map(id => `${AnnotationPrefix}${id}`).join(\",\")\n    );\n\n    return this.container;\n  }\n}\n\nclass PopupElement {\n  #boundKeyDown = this.#keyDown.bind(this);\n\n  #boundHide = this.#hide.bind(this);\n\n  #boundShow = this.#show.bind(this);\n\n  #boundToggle = this.#toggle.bind(this);\n\n  #color = null;\n\n  #container = null;\n\n  #contentsObj = null;\n\n  #dateObj = null;\n\n  #elements = null;\n\n  #parent = null;\n\n  #parentRect = null;\n\n  #pinned = false;\n\n  #popup = null;\n\n  #rect = null;\n\n  #richText = null;\n\n  #titleObj = null;\n\n  #wasVisible = false;\n\n  constructor({\n    container,\n    color,\n    elements,\n    titleObj,\n    modificationDate,\n    contentsObj,\n    richText,\n    parent,\n    rect,\n    parentRect,\n    open,\n  }) {\n    this.#container = container;\n    this.#titleObj = titleObj;\n    this.#contentsObj = contentsObj;\n    this.#richText = richText;\n    this.#parent = parent;\n    this.#color = color;\n    this.#rect = rect;\n    this.#parentRect = parentRect;\n    this.#elements = elements;\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    this.#dateObj = PDFDateString.toDateObject(modificationDate);\n\n    this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup());\n    // Attach the event listeners to the trigger element.\n    for (const element of this.trigger) {\n      element.addEventListener(\"click\", this.#boundToggle);\n      element.addEventListener(\"mouseenter\", this.#boundShow);\n      element.addEventListener(\"mouseleave\", this.#boundHide);\n      element.classList.add(\"popupTriggerArea\");\n    }\n\n    // Attach the event listener to toggle the popup with the keyboard.\n    for (const element of elements) {\n      element.container?.addEventListener(\"keydown\", this.#boundKeyDown);\n    }\n\n    this.#container.hidden = true;\n    if (open) {\n      this.#toggle();\n    }\n\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n      // Since the popup is lazily created, we need to ensure that it'll be\n      // created and displayed during reference tests.\n      this.#parent.popupShow.push(async () => {\n        if (this.#container.hidden) {\n          this.#show();\n        }\n      });\n    }\n  }\n\n  render() {\n    if (this.#popup) {\n      return;\n    }\n\n    const {\n      page: { view },\n      viewport: {\n        rawDims: { pageWidth, pageHeight, pageX, pageY },\n      },\n    } = this.#parent;\n    const popup = (this.#popup = document.createElement(\"div\"));\n    popup.className = \"popup\";\n\n    if (this.#color) {\n      const baseColor = (popup.style.outlineColor = Util.makeHexColor(\n        ...this.#color\n      ));\n      if (\n        (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n        CSS.supports(\"background-color\", \"color-mix(in srgb, red 30%, white)\")\n      ) {\n        popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`;\n      } else {\n        // color-mix isn't supported in some browsers hence this version.\n        // See https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color-mix#browser_compatibility\n        // TODO: Use color-mix when it's supported everywhere.\n        // Enlighten the color.\n        const BACKGROUND_ENLIGHT = 0.7;\n        popup.style.backgroundColor = Util.makeHexColor(\n          ...this.#color.map(c =>\n            Math.floor(BACKGROUND_ENLIGHT * (255 - c) + c)\n          )\n        );\n      }\n    }\n\n    const header = document.createElement(\"span\");\n    header.className = \"header\";\n    const title = document.createElement(\"h1\");\n    header.append(title);\n    ({ dir: title.dir, str: title.textContent } = this.#titleObj);\n    popup.append(header);\n\n    if (this.#dateObj) {\n      const modificationDate = document.createElement(\"span\");\n      modificationDate.classList.add(\"popupDate\");\n      modificationDate.setAttribute(\n        \"data-l10n-id\",\n        \"pdfjs-annotation-date-string\"\n      );\n      modificationDate.setAttribute(\n        \"data-l10n-args\",\n        JSON.stringify({\n          date: this.#dateObj.toLocaleDateString(),\n          time: this.#dateObj.toLocaleTimeString(),\n        })\n      );\n      header.append(modificationDate);\n    }\n\n    const contentsObj = this.#contentsObj;\n    const richText = this.#richText;\n    if (\n      richText?.str &&\n      (!contentsObj?.str || contentsObj.str === richText.str)\n    ) {\n      XfaLayer.render({\n        xfaHtml: richText.html,\n        intent: \"richText\",\n        div: popup,\n      });\n      popup.lastChild.classList.add(\"richText\", \"popupContent\");\n    } else {\n      const contents = this._formatContents(contentsObj);\n      popup.append(contents);\n    }\n\n    let useParentRect = !!this.#parentRect;\n    let rect = useParentRect ? this.#parentRect : this.#rect;\n    for (const element of this.#elements) {\n      if (!rect || Util.intersect(element.data.rect, rect) !== null) {\n        rect = element.data.rect;\n        useParentRect = true;\n        break;\n      }\n    }\n\n    const normalizedRect = Util.normalizeRect([\n      rect[0],\n      view[3] - rect[1] + view[1],\n      rect[2],\n      view[3] - rect[3] + view[1],\n    ]);\n\n    const HORIZONTAL_SPACE_AFTER_ANNOTATION = 5;\n    const parentWidth = useParentRect\n      ? rect[2] - rect[0] + HORIZONTAL_SPACE_AFTER_ANNOTATION\n      : 0;\n    const popupLeft = normalizedRect[0] + parentWidth;\n    const popupTop = normalizedRect[1];\n\n    const { style } = this.#container;\n    style.left = `${(100 * (popupLeft - pageX)) / pageWidth}%`;\n    style.top = `${(100 * (popupTop - pageY)) / pageHeight}%`;\n\n    this.#container.append(popup);\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.classList.add(\"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.append(document.createTextNode(line));\n      if (i < ii - 1) {\n        p.append(document.createElement(\"br\"));\n      }\n    }\n    return p;\n  }\n\n  #keyDown(event) {\n    if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n      return;\n    }\n\n    if (event.key === \"Enter\" || (event.key === \"Escape\" && this.#pinned)) {\n      this.#toggle();\n    }\n  }\n\n  /**\n   * Toggle the visibility of the popup.\n   */\n  #toggle() {\n    this.#pinned = !this.#pinned;\n    if (this.#pinned) {\n      this.#show();\n      this.#container.addEventListener(\"click\", this.#boundToggle);\n      this.#container.addEventListener(\"keydown\", this.#boundKeyDown);\n    } else {\n      this.#hide();\n      this.#container.removeEventListener(\"click\", this.#boundToggle);\n      this.#container.removeEventListener(\"keydown\", this.#boundKeyDown);\n    }\n  }\n\n  /**\n   * Show the popup.\n   */\n  #show() {\n    if (!this.#popup) {\n      this.render();\n    }\n    if (!this.isVisible) {\n      this.#container.hidden = false;\n      this.#container.style.zIndex =\n        parseInt(this.#container.style.zIndex) + 1000;\n    } else if (this.#pinned) {\n      this.#container.classList.add(\"focused\");\n    }\n  }\n\n  /**\n   * Hide the popup.\n   */\n  #hide() {\n    this.#container.classList.remove(\"focused\");\n    if (this.#pinned || !this.isVisible) {\n      return;\n    }\n    this.#container.hidden = true;\n    this.#container.style.zIndex =\n      parseInt(this.#container.style.zIndex) - 1000;\n  }\n\n  forceHide() {\n    this.#wasVisible = this.isVisible;\n    if (!this.#wasVisible) {\n      return;\n    }\n    this.#container.hidden = true;\n  }\n\n  maybeShow() {\n    if (!this.#wasVisible) {\n      return;\n    }\n    this.#wasVisible = false;\n    this.#container.hidden = false;\n  }\n\n  get isVisible() {\n    return this.#container.hidden === false;\n  }\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n    this.textContent = parameters.data.textContent;\n    this.textPosition = parameters.data.textPosition;\n    this.annotationEditorType = AnnotationEditorType.FREETEXT;\n  }\n\n  render() {\n    this.container.classList.add(\"freeTextAnnotation\");\n\n    if (this.textContent) {\n      const content = document.createElement(\"div\");\n      content.classList.add(\"annotationTextContent\");\n      content.setAttribute(\"role\", \"comment\");\n      for (const line of this.textContent) {\n        const lineSpan = document.createElement(\"span\");\n        lineSpan.textContent = line;\n        content.append(lineSpan);\n      }\n      this.container.append(content);\n    }\n\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    this._editOnDoubleClick();\n\n    return this.container;\n  }\n\n  get _isEditable() {\n    return this.data.hasOwnCanvas;\n  }\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n  #line = null;\n\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.classList.add(\"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, height } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(\n      width,\n      height,\n      /* skipDimensions = */ true\n    );\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.#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.append(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    if (!data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    return this.container;\n  }\n\n  getElementsToTriggerPopup() {\n    return this.#line;\n  }\n\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n  #square = null;\n\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.classList.add(\"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, height } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(\n      width,\n      height,\n      /* skipDimensions = */ true\n    );\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.#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.append(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    if (!data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    return this.container;\n  }\n\n  getElementsToTriggerPopup() {\n    return this.#square;\n  }\n\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n  #circle = null;\n\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.classList.add(\"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, height } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(\n      width,\n      height,\n      /* skipDimensions = */ true\n    );\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.#circle =\n      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.append(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    if (!data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    return this.container;\n  }\n\n  getElementsToTriggerPopup() {\n    return this.#circle;\n  }\n\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n  #polyline = null;\n\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n\n    this.containerClassName = \"polylineAnnotation\";\n    this.svgElementName = \"svg:polyline\";\n  }\n\n  render() {\n    this.container.classList.add(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, height } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(\n      width,\n      height,\n      /* skipDimensions = */ true\n    );\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.#polyline = this.svgFactory.createElement(\n      this.svgElementName\n    ));\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.append(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    if (!data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    return this.container;\n  }\n\n  getElementsToTriggerPopup() {\n    return this.#polyline;\n  }\n\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\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    super(parameters, { isRenderable: true, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.classList.add(\"caretAnnotation\");\n\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n    return this.container;\n  }\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n  #polylines = [];\n\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, 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    this.annotationEditorType = AnnotationEditorType.INK;\n  }\n\n  render() {\n    this.container.classList.add(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, height } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(\n      width,\n      height,\n      /* skipDimensions = */ true\n    );\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      this.#polylines.push(polyline);\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      if (!data.popupRef && this.hasPopupData) {\n        this._createPopup();\n      }\n\n      svg.append(polyline);\n    }\n\n    this.container.append(svg);\n    return this.container;\n  }\n\n  getElementsToTriggerPopup() {\n    return this.#polylines;\n  }\n\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true,\n      createQuadrilaterals: true,\n    });\n  }\n\n  render() {\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    this.container.classList.add(\"highlightAnnotation\");\n    return this.container;\n  }\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true,\n      createQuadrilaterals: true,\n    });\n  }\n\n  render() {\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    this.container.classList.add(\"underlineAnnotation\");\n    return this.container;\n  }\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true,\n      createQuadrilaterals: true,\n    });\n  }\n\n  render() {\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    this.container.classList.add(\"squigglyAnnotation\");\n    return this.container;\n  }\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true,\n      createQuadrilaterals: true,\n    });\n  }\n\n  render() {\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    this.container.classList.add(\"strikeoutAnnotation\");\n    return this.container;\n  }\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.classList.add(\"stampAnnotation\");\n\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n    return this.container;\n  }\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n  #trigger = null;\n\n  constructor(parameters) {\n    super(parameters, { isRenderable: true });\n\n    const { filename, content } = this.data.file;\n    this.filename = getFilenameFromUrl(filename, /* onlyStripPath = */ true);\n    this.content = content;\n\n    this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n      source: this,\n      filename,\n      content,\n    });\n  }\n\n  render() {\n    this.container.classList.add(\"fileAttachmentAnnotation\");\n\n    const { container, data } = this;\n    let trigger;\n    if (data.hasAppearance || data.fillAlpha === 0) {\n      trigger = document.createElement(\"div\");\n    } else {\n      // Unfortunately it seems that it's not clearly specified exactly what\n      // names are actually valid, since Table 184 contains:\n      //   Conforming readers shall provide predefined icon appearances for at\n      //   least the following standard names: GraphPushPin, PaperclipTag.\n      //   Additional names may be supported as well. Default value: PushPin.\n      trigger = document.createElement(\"img\");\n      trigger.src = `${this.imageResourcesPath}annotation-${\n        /paperclip/i.test(data.name) ? \"paperclip\" : \"pushpin\"\n      }.svg`;\n\n      if (data.fillAlpha && data.fillAlpha < 1) {\n        trigger.style = `filter: opacity(${Math.round(\n          data.fillAlpha * 100\n        )}%);`;\n\n        if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n          this.container.classList.add(\"hasFillAlpha\");\n        }\n      }\n    }\n    trigger.addEventListener(\"dblclick\", this.#download.bind(this));\n    this.#trigger = trigger;\n\n    const { isMac } = FeatureTest.platform;\n    container.addEventListener(\"keydown\", evt => {\n      if (evt.key === \"Enter\" && (isMac ? evt.metaKey : evt.ctrlKey)) {\n        this.#download();\n      }\n    });\n\n    if (!data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    } else {\n      trigger.classList.add(\"popupTriggerArea\");\n    }\n\n    container.append(trigger);\n    return container;\n  }\n\n  getElementsToTriggerPopup() {\n    return this.#trigger;\n  }\n\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n\n  /**\n   * Download the file attachment associated with this annotation.\n   */\n  #download() {\n    this.downloadManager?.openOrDownloadData(this.content, this.filename);\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 {AnnotationStorage} [annotationStorage]\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 {Object<string, Array<Object>> | null} [fieldObjects]\n * @property {Map<string, HTMLCanvasElement>} [annotationCanvasMap]\n * @property {TextAccessibilityManager} [accessibilityManager]\n */\n\n/**\n * Manage the layer containing all the annotations.\n */\nclass AnnotationLayer {\n  #accessibilityManager = null;\n\n  #annotationCanvasMap = null;\n\n  #editableAnnotations = new Map();\n\n  constructor({\n    div,\n    accessibilityManager,\n    annotationCanvasMap,\n    page,\n    viewport,\n  }) {\n    this.div = div;\n    this.#accessibilityManager = accessibilityManager;\n    this.#annotationCanvasMap = annotationCanvasMap;\n    this.page = page;\n    this.viewport = viewport;\n    this.zIndex = 0;\n\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n      // For testing purposes.\n      Object.defineProperty(this, \"showPopups\", {\n        value: async () => {\n          for (const show of this.popupShow) {\n            await show();\n          }\n        },\n      });\n      this.popupShow = [];\n    }\n  }\n\n  #appendElement(element, id) {\n    const contentElement = element.firstChild || element;\n    contentElement.id = `${AnnotationPrefix}${id}`;\n\n    this.div.append(element);\n    this.#accessibilityManager?.moveElementInDOM(\n      this.div,\n      element,\n      contentElement,\n      /* isRemovable = */ false\n    );\n  }\n\n  /**\n   * Render a new annotation layer with all annotation elements.\n   *\n   * @param {AnnotationLayerParameters} params\n   * @memberof AnnotationLayer\n   */\n  async render(params) {\n    const { annotations } = params;\n    const layer = this.div;\n    setLayerDimensions(layer, this.viewport);\n\n    const popupToElements = new Map();\n    const elementParams = {\n      data: null,\n      layer,\n      linkService: params.linkService,\n      downloadManager: params.downloadManager,\n      imageResourcesPath: params.imageResourcesPath || \"\",\n      renderForms: params.renderForms !== false,\n      svgFactory: new DOMSVGFactory(),\n      annotationStorage: params.annotationStorage || new AnnotationStorage(),\n      enableScripting: params.enableScripting === true,\n      hasJSActions: params.hasJSActions,\n      fieldObjects: params.fieldObjects,\n      parent: this,\n      elements: null,\n    };\n\n    for (const data of annotations) {\n      if (data.noHTML) {\n        continue;\n      }\n      const isPopupAnnotation = data.annotationType === AnnotationType.POPUP;\n      if (!isPopupAnnotation) {\n        const { width, height } = getRectDims(data.rect);\n        if (width <= 0 || height <= 0) {\n          continue; // Ignore empty annotations.\n        }\n      } else {\n        const elements = popupToElements.get(data.id);\n        if (!elements) {\n          // Ignore popup annotations without a corresponding annotation.\n          continue;\n        }\n        elementParams.elements = elements;\n      }\n      elementParams.data = data;\n      const element = AnnotationElementFactory.create(elementParams);\n\n      if (!element.isRenderable) {\n        continue;\n      }\n\n      if (!isPopupAnnotation && data.popupRef) {\n        const elements = popupToElements.get(data.popupRef);\n        if (!elements) {\n          popupToElements.set(data.popupRef, [element]);\n        } else {\n          elements.push(element);\n        }\n      }\n\n      if (element.annotationEditorType > 0) {\n        this.#editableAnnotations.set(element.data.id, element);\n      }\n\n      const rendered = element.render();\n      if (data.hidden) {\n        rendered.style.visibility = \"hidden\";\n      }\n      this.#appendElement(rendered, data.id);\n    }\n\n    this.#setAnnotationCanvasMap();\n  }\n\n  /**\n   * Update the annotation elements on existing annotation layer.\n   *\n   * @param {AnnotationLayerParameters} viewport\n   * @memberof AnnotationLayer\n   */\n  update({ viewport }) {\n    const layer = this.div;\n    this.viewport = viewport;\n    setLayerDimensions(layer, { rotation: viewport.rotation });\n\n    this.#setAnnotationCanvasMap();\n    layer.hidden = false;\n  }\n\n  #setAnnotationCanvasMap() {\n    if (!this.#annotationCanvasMap) {\n      return;\n    }\n    const layer = this.div;\n    for (const [id, canvas] of this.#annotationCanvasMap) {\n      const element = layer.querySelector(`[data-annotation-id=\"${id}\"]`);\n      if (!element) {\n        continue;\n      }\n\n      const { firstChild } = element;\n      if (!firstChild) {\n        element.append(canvas);\n      } else if (firstChild.nodeName === \"CANVAS\") {\n        firstChild.replaceWith(canvas);\n      } else {\n        firstChild.before(canvas);\n      }\n    }\n    this.#annotationCanvasMap.clear();\n  }\n\n  getEditableAnnotations() {\n    return Array.from(this.#editableAnnotations.values());\n  }\n\n  getEditableAnnotation(id) {\n    return this.#editableAnnotations.get(id);\n  }\n}\n\nexport {\n  AnnotationLayer,\n  FreeTextAnnotationElement,\n  InkAnnotationElement,\n  StampAnnotationElement,\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, unreachable } from \"../shared/util.js\";\nimport { AnnotationEditor } from \"./editor/editor.js\";\nimport { MurmurHash3_64 } from \"../shared/murmurhash3.js\";\n\nconst SerializableEmpty = Object.freeze({\n  map: null,\n  hash: \"\",\n  transfer: undefined,\n});\n\n/**\n * Key/value storage for annotation data in forms.\n */\nclass AnnotationStorage {\n  #modified = false;\n\n  #storage = new Map();\n\n  constructor() {\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    this.onAnnotationEditor = null;\n  }\n\n  /**\n   * Get the value for a given key if it exists, or return the default value.\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   * Get the value for a given key.\n   * @param {string} key\n   * @returns {Object}\n   */\n  getRawValue(key) {\n    return this.#storage.get(key);\n  }\n\n  /**\n   * Remove a value from the storage.\n   * @param {string} key\n   */\n  remove(key) {\n    this.#storage.delete(key);\n\n    if (this.#storage.size === 0) {\n      this.resetModified();\n    }\n\n    if (typeof this.onAnnotationEditor === \"function\") {\n      for (const value of this.#storage.values()) {\n        if (value instanceof AnnotationEditor) {\n          return;\n        }\n      }\n      this.onAnnotationEditor(null);\n    }\n  }\n\n  /**\n   * Set the value for a given key\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.#setModified();\n    }\n\n    if (\n      value instanceof AnnotationEditor &&\n      typeof this.onAnnotationEditor === \"function\"\n    ) {\n      this.onAnnotationEditor(value.constructor._type);\n    }\n  }\n\n  /**\n   * Check if the storage contains the given key.\n   * @param {string} key\n   * @returns {boolean}\n   */\n  has(key) {\n    return this.#storage.has(key);\n  }\n\n  /**\n   * @returns {Object | null}\n   */\n  getAll() {\n    return this.#storage.size > 0 ? objectFromMap(this.#storage) : null;\n  }\n\n  /**\n   * @param {Object} obj\n   */\n  setAll(obj) {\n    for (const [key, val] of Object.entries(obj)) {\n      this.setValue(key, val);\n    }\n  }\n\n  get size() {\n    return this.#storage.size;\n  }\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   * @returns {PrintAnnotationStorage}\n   */\n  get print() {\n    return new PrintAnnotationStorage(this);\n  }\n\n  /**\n   * PLEASE NOTE: Only intended for usage within the API itself.\n   * @ignore\n   */\n  get serializable() {\n    if (this.#storage.size === 0) {\n      return SerializableEmpty;\n    }\n    const map = new Map(),\n      hash = new MurmurHash3_64(),\n      transfer = [];\n    const context = Object.create(null);\n    let hasBitmap = false;\n\n    for (const [key, val] of this.#storage) {\n      const serialized =\n        val instanceof AnnotationEditor\n          ? val.serialize(/* isForCopying = */ false, context)\n          : val;\n      if (serialized) {\n        map.set(key, serialized);\n\n        hash.update(`${key}:${JSON.stringify(serialized)}`);\n        hasBitmap ||= !!serialized.bitmap;\n      }\n    }\n\n    if (hasBitmap) {\n      // We must transfer the bitmap data separately, since it can be changed\n      // during serialization with SVG images.\n      for (const value of map.values()) {\n        if (value.bitmap) {\n          transfer.push(value.bitmap);\n        }\n      }\n    }\n\n    return map.size > 0\n      ? { map, hash: hash.hexdigest(), transfer }\n      : SerializableEmpty;\n  }\n}\n\n/**\n * A special `AnnotationStorage` for use during printing, where the serializable\n * data is *frozen* upon initialization, to prevent scripting from modifying its\n * contents. (Necessary since printing is triggered synchronously in browsers.)\n */\nclass PrintAnnotationStorage extends AnnotationStorage {\n  #serializable;\n\n  constructor(parent) {\n    super();\n    const { map, hash, transfer } = parent.serializable;\n    // Create a *copy* of the data, since Objects are passed by reference in JS.\n    const clone = structuredClone(map, transfer ? { transfer } : null);\n\n    this.#serializable = { map: clone, hash, transfer };\n  }\n\n  /**\n   * @returns {PrintAnnotationStorage}\n   */\n  // eslint-disable-next-line getter-return\n  get print() {\n    unreachable(\"Should not call PrintAnnotationStorage.print\");\n  }\n\n  /**\n   * PLEASE NOTE: Only intended for usage within the API itself.\n   * @ignore\n   */\n  get serializable() {\n    return this.#serializable;\n  }\n}\n\nexport { AnnotationStorage, PrintAnnotationStorage, SerializableEmpty };\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  getVerbosityLevel,\n  info,\n  InvalidPDFException,\n  isArrayBuffer,\n  isNodeJS,\n  MAX_IMAGE_SIZE_TO_CACHE,\n  MissingPDFException,\n  PasswordException,\n  PromiseCapability,\n  RenderingIntentFlag,\n  setVerbosityLevel,\n  shadow,\n  stringToBytes,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  AnnotationStorage,\n  PrintAnnotationStorage,\n  SerializableEmpty,\n} from \"./annotation_storage.js\";\nimport {\n  DOMCanvasFactory,\n  DOMCMapReaderFactory,\n  DOMFilterFactory,\n  DOMStandardFontDataFactory,\n  isDataScheme,\n  isValidFetchUrl,\n  PageViewport,\n  RenderingCancelledException,\n  StatTimer,\n} from \"./display_utils.js\";\nimport { FontFaceObject, FontLoader } from \"./font_loader.js\";\nimport {\n  NodeCanvasFactory,\n  NodeCMapReaderFactory,\n  NodeFilterFactory,\n  NodeStandardFontDataFactory,\n} from \"display-node_utils\";\nimport { CanvasGraphics } from \"./canvas.js\";\nimport { GlobalWorkerOptions } from \"./worker_options.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 { PDFFetchStream } from \"display-fetch_stream\";\nimport { PDFNetworkStream } from \"display-network\";\nimport { PDFNodeStream } from \"display-node_stream\";\nimport { XfaText } from \"./xfa_text.js\";\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\nconst RENDERING_CANCELLED_TIMEOUT = 100; // ms\nconst DELAYED_CLEANUP_TIMEOUT = 5000; // 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 DefaultFilterFactory =\n  typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\") && isNodeJS\n    ? NodeFilterFactory\n    : DOMFilterFactory;\nconst DefaultStandardFontDataFactory =\n  typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\") && isNodeJS\n    ? NodeStandardFontDataFactory\n    : DOMStandardFontDataFactory;\n\n/**\n * @typedef { Int8Array | Uint8Array | Uint8ClampedArray |\n *            Int16Array | Uint16Array |\n *            Int32Array | Uint32Array | Float32Array |\n *            Float64Array\n * } TypedArray\n */\n\n/**\n * @typedef { TypedArray | ArrayBuffer | Array<number> | string } BinaryData\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 {BinaryData} [data] - Binary PDF data.\n *   Use TypedArrays (Uint8Array) to improve the memory usage. If PDF data is\n *   BASE64-encoded, use `atob()` to convert it to a binary string first.\n *\n *   NOTE: If TypedArrays are used they will generally be transferred to the\n *   worker-thread. This will help reduce main-thread memory usage, however\n *   it will take ownership of the TypedArrays.\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 {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. The default value is `true`.\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} [isOffscreenCanvasSupported] - Determines if we can use\n *   `OffscreenCanvas` in the worker. Primarily used to improve performance of\n *   image conversion/rendering.\n *   The default value is `true` in web environments and `false` in Node.js.\n * @property {number} [canvasMaxAreaInBytes] - The integer value is used to\n *   know when an image must be resized (uses `OffscreenCanvas` in the worker).\n *   If it's -1 then a possibly slow algorithm is used to guess the max value.\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 * @property {Object} [canvasFactory] - The factory instance that will be used\n *   when creating canvases. The default value is {new DOMCanvasFactory()}.\n * @property {Object} [filterFactory] - A factory instance that will be used\n *   to create SVG filters when rendering some images on the main canvas.\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 | ArrayBuffer | 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  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n    if (typeof src === \"string\" || src instanceof URL) {\n      src = { url: src };\n    } else if (isArrayBuffer(src)) {\n      src = { data: src };\n    }\n  }\n  if (typeof src !== \"object\") {\n    throw new Error(\"Invalid parameter in getDocument, need parameter object.\");\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  const task = new PDFDocumentLoadingTask();\n  const { docId } = task;\n\n  const url = src.url ? getUrlProp(src.url) : null;\n  const data = src.data ? getDataProp(src.data) : null;\n  const httpHeaders = src.httpHeaders || null;\n  const withCredentials = src.withCredentials === true;\n  const password = src.password ?? null;\n  const rangeTransport =\n    src.range instanceof PDFDataRangeTransport ? src.range : null;\n  const rangeChunkSize =\n    Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0\n      ? src.rangeChunkSize\n      : DEFAULT_RANGE_CHUNK_SIZE;\n  let worker = src.worker instanceof PDFWorker ? src.worker : null;\n  const verbosity = src.verbosity;\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  const docBaseUrl =\n    typeof src.docBaseUrl === \"string\" && !isDataScheme(src.docBaseUrl)\n      ? src.docBaseUrl\n      : null;\n  const cMapUrl = typeof src.cMapUrl === \"string\" ? src.cMapUrl : null;\n  const cMapPacked = src.cMapPacked !== false;\n  const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory;\n  const standardFontDataUrl =\n    typeof src.standardFontDataUrl === \"string\"\n      ? src.standardFontDataUrl\n      : null;\n  const StandardFontDataFactory =\n    src.StandardFontDataFactory || DefaultStandardFontDataFactory;\n  const ignoreErrors = src.stopAtErrors !== true;\n  const maxImageSize =\n    Number.isInteger(src.maxImageSize) && src.maxImageSize > -1\n      ? src.maxImageSize\n      : -1;\n  const isEvalSupported = src.isEvalSupported !== false;\n  const isOffscreenCanvasSupported =\n    typeof src.isOffscreenCanvasSupported === \"boolean\"\n      ? src.isOffscreenCanvasSupported\n      : !isNodeJS;\n  const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes)\n    ? src.canvasMaxAreaInBytes\n    : -1;\n  const disableFontFace =\n    typeof src.disableFontFace === \"boolean\" ? src.disableFontFace : isNodeJS;\n  const fontExtraProperties = src.fontExtraProperties === true;\n  const enableXfa = src.enableXfa === true;\n  const ownerDocument = src.ownerDocument || globalThis.document;\n  const disableRange = src.disableRange === true;\n  const disableStream = src.disableStream === true;\n  const disableAutoFetch = src.disableAutoFetch === true;\n  const pdfBug = src.pdfBug === true;\n\n  // Parameters whose default values depend on other parameters.\n  const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;\n  const useSystemFonts =\n    typeof src.useSystemFonts === \"boolean\"\n      ? src.useSystemFonts\n      : !isNodeJS && !disableFontFace;\n  const useWorkerFetch =\n    typeof src.useWorkerFetch === \"boolean\"\n      ? src.useWorkerFetch\n      : (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n        (CMapReaderFactory === DOMCMapReaderFactory &&\n          StandardFontDataFactory === DOMStandardFontDataFactory &&\n          cMapUrl &&\n          standardFontDataUrl &&\n          isValidFetchUrl(cMapUrl, document.baseURI) &&\n          isValidFetchUrl(standardFontDataUrl, document.baseURI));\n  const canvasFactory =\n    src.canvasFactory || new DefaultCanvasFactory({ ownerDocument });\n  const filterFactory =\n    src.filterFactory || new DefaultFilterFactory({ docId, ownerDocument });\n\n  // Parameters only intended for development/testing purposes.\n  const styleElement =\n    typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")\n      ? src.styleElement\n      : null;\n\n  // Set the main-thread verbosity level.\n  setVerbosityLevel(verbosity);\n\n  // Ensure that the various factories can be initialized, when necessary,\n  // since the user may provide *custom* ones.\n  const transportFactory = {\n    canvasFactory,\n    filterFactory,\n  };\n  if (!useWorkerFetch) {\n    transportFactory.cMapReaderFactory = new CMapReaderFactory({\n      baseUrl: cMapUrl,\n      isCompressed: cMapPacked,\n    });\n    transportFactory.standardFontDataFactory = new StandardFontDataFactory({\n      baseUrl: standardFontDataUrl,\n    });\n  }\n\n  if (!worker) {\n    const workerParams = {\n      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\n  const fetchDocParams = {\n    docId,\n    apiVersion:\n      typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n        ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n        : null,\n    data,\n    password,\n    disableAutoFetch,\n    rangeChunkSize,\n    length,\n    docBaseUrl,\n    enableXfa,\n    evaluatorOptions: {\n      maxImageSize,\n      disableFontFace,\n      ignoreErrors,\n      isEvalSupported,\n      isOffscreenCanvasSupported,\n      canvasMaxAreaInBytes,\n      fontExtraProperties,\n      useSystemFonts,\n      cMapUrl: useWorkerFetch ? cMapUrl : null,\n      standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null,\n    },\n  };\n  const transportParams = {\n    ignoreErrors,\n    isEvalSupported,\n    disableFontFace,\n    fontExtraProperties,\n    enableXfa,\n    ownerDocument,\n    disableAutoFetch,\n    pdfBug,\n    styleElement,\n  };\n\n  worker.promise\n    .then(function () {\n      if (task.destroyed) {\n        throw new Error(\"Loading aborted\");\n      }\n\n      const workerIdPromise = _fetchDocument(worker, fetchDocParams);\n      const networkStreamPromise = new Promise(function (resolve) {\n        let networkStream;\n        if (rangeTransport) {\n          networkStream = new PDFDataTransportStream(\n            {\n              length,\n              initialData: rangeTransport.initialData,\n              progressiveDone: rangeTransport.progressiveDone,\n              contentDispositionFilename:\n                rangeTransport.contentDispositionFilename,\n              disableRange,\n              disableStream,\n            },\n            rangeTransport\n          );\n        } else if (!data) {\n          if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n            throw new Error(\"Not implemented: createPDFNetworkStream\");\n          }\n          const createPDFNetworkStream = params => {\n            if (\n              typeof PDFJSDev !== \"undefined\" &&\n              PDFJSDev.test(\"GENERIC\") &&\n              isNodeJS\n            ) {\n              return new PDFNodeStream(params);\n            }\n            return isValidFetchUrl(params.url)\n              ? new PDFFetchStream(params)\n              : new PDFNetworkStream(params);\n          };\n\n          networkStream = createPDFNetworkStream({\n            url,\n            length,\n            httpHeaders,\n            withCredentials,\n            rangeChunkSize,\n            disableRange,\n            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            transportParams,\n            transportFactory\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 * @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) {\n  if (worker.destroyed) {\n    throw new Error(\"Worker was destroyed\");\n  }\n  const workerId = await worker.messageHandler.sendWithPromise(\n    \"GetDocRequest\",\n    source,\n    source.data ? [source.data.buffer] : null\n  );\n\n  if (worker.destroyed) {\n    throw new Error(\"Worker was destroyed\");\n  }\n  return workerId;\n}\n\nfunction getUrlProp(val) {\n  if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n    return null; // The 'url' is unused with `PDFDataRangeTransport`.\n  }\n  if (val instanceof URL) {\n    return val.href;\n  }\n  try {\n    // The full path is required in the 'url' field.\n    return new URL(val, window.location).href;\n  } catch {\n    if (\n      typeof PDFJSDev !== \"undefined\" &&\n      PDFJSDev.test(\"GENERIC\") &&\n      isNodeJS &&\n      typeof val === \"string\"\n    ) {\n      return val; // Use the url as-is in Node.js environments.\n    }\n  }\n  throw new Error(\n    \"Invalid PDF url data: \" +\n      \"either string or URL-object is expected in the url property.\"\n  );\n}\n\nfunction getDataProp(val) {\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    val instanceof Buffer // eslint-disable-line no-undef\n  ) {\n    throw new Error(\n      \"Please provide binary data as `Uint8Array`, rather than `Buffer`.\"\n    );\n  }\n  if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {\n    // Use the data as-is when it's already a Uint8Array that completely\n    // \"utilizes\" its underlying ArrayBuffer, to prevent any possible\n    // issues when transferring it to the worker-thread.\n    return val;\n  }\n  if (typeof val === \"string\") {\n    return stringToBytes(val);\n  }\n  if ((typeof val === \"object\" && !isNaN(val?.length)) || isArrayBuffer(val)) {\n    return new Uint8Array(val);\n  }\n  throw new Error(\n    \"Invalid PDF binary data: either TypedArray, \" +\n      \"string, or array-like object is expected in the data property.\"\n  );\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 #docId = 0;\n\n  constructor() {\n    this._capability = new PromiseCapability();\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.#docId++}`;\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  /**\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    try {\n      if (this._worker?.port) {\n        this._worker._pendingDestroy = true;\n      }\n      await this._transport?.destroy();\n    } catch (ex) {\n      if (this._worker?.port) {\n        delete this._worker._pendingDestroy;\n      }\n      throw ex;\n    }\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 *\n * NOTE: The TypedArrays passed to the constructor and relevant methods below\n * will generally be transferred to the worker-thread. This will help reduce\n * main-thread memory usage, however it will take ownership of the TypedArrays.\n */\nclass PDFDataRangeTransport {\n  /**\n   * @param {number} length\n   * @param {Uint8Array|null} 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 = new PromiseCapability();\n  }\n\n  /**\n   * @param {function} listener\n   */\n  addRangeListener(listener) {\n    this._rangeListeners.push(listener);\n  }\n\n  /**\n   * @param {function} listener\n   */\n  addProgressListener(listener) {\n    this._progressListeners.push(listener);\n  }\n\n  /**\n   * @param {function} listener\n   */\n  addProgressiveReadListener(listener) {\n    this._progressiveReadListeners.push(listener);\n  }\n\n  /**\n   * @param {function} listener\n   */\n  addProgressiveDoneListener(listener) {\n    this._progressiveDoneListeners.push(listener);\n  }\n\n  /**\n   * @param {number} begin\n   * @param {Uint8Array|null} chunk\n   */\n  onDataRange(begin, chunk) {\n    for (const listener of this._rangeListeners) {\n      listener(begin, chunk);\n    }\n  }\n\n  /**\n   * @param {number} loaded\n   * @param {number|undefined} total\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  /**\n   * @param {Uint8Array|null} chunk\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  /**\n   * @param {number} begin\n   * @param {number} end\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(\"TESTING\")) {\n      // For testing purposes.\n      Object.defineProperty(this, \"getXFADatasets\", {\n        value: () => {\n          return this._transport.getXFADatasets();\n        },\n      });\n      Object.defineProperty(this, \"getXRefPrevValue\", {\n        value: () => {\n          return this._transport.getXRefPrevValue();\n        },\n      });\n      Object.defineProperty(this, \"getAnnotArray\", {\n        value: pageIndex => {\n          return this._transport.getAnnotArray(pageIndex);\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 {Object} The filter factory instance.\n   */\n  get filterFactory() {\n    return this._transport.filterFactory;\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   * @type {boolean} True if only XFA form.\n   */\n  get isPureXfa() {\n    return shadow(this, \"isPureXfa\", !!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<Object | null>} A promise that is resolved with\n   *   an {Object} with the JavaScript actions:\n   *     - from the name tree.\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<Uint8Array>} A promise that is resolved with a\n   *   {Uint8Array} containing the raw data of the PDF document.\n   */\n  getData() {\n    return this._transport.getData();\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    return this._transport.saveDocument();\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<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} [includeMarkedContent] - When true include marked\n *   content items in the items array of TextContent. The default is `false`.\n * @property {boolean} [disableNormalization] - When true the text is *not*\n *   normalized in the worker-thread. 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 {CanvasRenderingContext2D} canvasContext - A 2D context of a DOM\n *   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 {CanvasGradient | CanvasPattern | string} [background] - Background\n *   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 *\n *   NOTE: This option may be partially, or completely, ignored when the\n *   `pageColors`-option is used.\n * @property {Object} [pageColors] - Overwrites background and foreground colors\n *   with user defined ones in order to improve readability in high contrast\n *   mode.\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 * @property {PrintAnnotationStorage} [printAnnotationStorage]\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 * @property {PrintAnnotationStorage} [printAnnotationStorage]\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  #delayedCleanupTimeout = null;\n\n  #pendingCleanup = false;\n\n  constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n    this._pageIndex = pageIndex;\n    this._pageInfo = pageInfo;\n    this._transport = transport;\n    this._stats = pdfBug ? new StatTimer() : null;\n    this._pdfBug = pdfBug;\n    /** @type {PDFObjects} */\n    this.commonObjs = transport.commonObjs;\n    this.objs = new PDFObjects();\n\n    this._maybeCleanupAfterRender = false;\n    this._intentStates = 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    return this._transport.getAnnotations(\n      this._pageIndex,\n      intentArgs.renderingIntent\n    );\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._transport.getPageJSActions(this._pageIndex);\n  }\n\n  /**\n   * @type {Object} The filter factory instance.\n   */\n  get filterFactory() {\n    return this._transport.filterFactory;\n  }\n\n  /**\n   * @type {boolean} True if only XFA form.\n   */\n  get isPureXfa() {\n    return shadow(this, \"isPureXfa\", !!this._transport._htmlForXfa);\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    background = null,\n    optionalContentConfigPromise = null,\n    annotationCanvasMap = null,\n    pageColors = null,\n    printAnnotationStorage = null,\n  }) {\n    this._stats?.time(\"Overall\");\n\n    const intentArgs = this._transport.getRenderingIntent(\n      intent,\n      annotationMode,\n      printAnnotationStorage\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    // ... and ensure that a delayed cleanup is always aborted.\n    this.#abortDelayedCleanup();\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 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 = new PromiseCapability();\n      intentState.operatorList = {\n        fnArray: [],\n        argsArray: [],\n        lastChunk: false,\n        separateAnnots: null,\n      };\n\n      this._stats?.time(\"Page Request\");\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 immediately once rendering has finished.\n      if (this._maybeCleanupAfterRender || intentPrint) {\n        this.#pendingCleanup = true;\n      }\n      this.#tryCleanup(/* delayed = */ !intentPrint);\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\n      this._stats?.timeEnd(\"Rendering\");\n      this._stats?.timeEnd(\"Overall\");\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        background,\n      },\n      objs: this.objs,\n      commonObjs: this.commonObjs,\n      annotationCanvasMap,\n      operatorList: intentState.operatorList,\n      pageIndex: this._pageIndex,\n      canvasFactory: this._transport.canvasFactory,\n      filterFactory: this._transport.filterFactory,\n      useRequestAnimationFrame: !intentPrint,\n      pdfBug: this._pdfBug,\n      pageColors,\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.destroyed) {\n          complete();\n          return;\n        }\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    printAnnotationStorage = null,\n  } = {}) {\n    if (typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"GENERIC\")) {\n      throw new Error(\"Not implemented: getOperatorList\");\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      printAnnotationStorage,\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 = new PromiseCapability();\n      (intentState.renderTasks ||= new Set()).add(opListTask);\n      intentState.operatorList = {\n        fnArray: [],\n        argsArray: [],\n        lastChunk: false,\n        separateAnnots: null,\n      };\n\n      this._stats?.time(\"Page Request\");\n      this._pumpOperatorList(intentArgs);\n    }\n    return intentState.opListReadCapability.promise;\n  }\n\n  /**\n   * NOTE: All occurrences of whitespace will be replaced by\n   * standard spaces (0x20).\n   *\n   * @param {getTextContentParameters} params - getTextContent parameters.\n   * @returns {ReadableStream} Stream for reading text content chunks.\n   */\n  streamTextContent({\n    includeMarkedContent = false,\n    disableNormalization = false,\n  } = {}) {\n    const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n    return this._transport.messageHandler.sendWithStream(\n      \"GetTextContent\",\n      {\n        pageIndex: this._pageIndex,\n        includeMarkedContent: includeMarkedContent === true,\n        disableNormalization: disableNormalization === true,\n      },\n      {\n        highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n        size(textContent) {\n          return textContent.items.length;\n        },\n      }\n    );\n  }\n\n  /**\n   * NOTE: All occurrences of whitespace will be replaced by\n   * standard spaces (0x20).\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._transport.getStructTree(this._pageIndex);\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.#pendingCleanup = false;\n    this.#abortDelayedCleanup();\n\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    const success = this.#tryCleanup(/* delayed = */ false);\n\n    if (resetStats && success) {\n      this._stats &&= new StatTimer();\n    }\n    return success;\n  }\n\n  /**\n   * Attempts to clean up if rendering is in a state where that's possible.\n   * @param {boolean} [delayed] - Delay the cleanup, to e.g. improve zooming\n   *   performance in documents with large images.\n   *   The default value is `false`.\n   * @returns {boolean} Indicates if clean-up was successfully run.\n   */\n  #tryCleanup(delayed = false) {\n    this.#abortDelayedCleanup();\n\n    if (!this.#pendingCleanup || this.destroyed) {\n      return false;\n    }\n    if (delayed) {\n      this.#delayedCleanupTimeout = setTimeout(() => {\n        this.#delayedCleanupTimeout = null;\n        this.#tryCleanup(/* delayed = */ false);\n      }, DELAYED_CLEANUP_TIMEOUT);\n\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    this._intentStates.clear();\n    this.objs.clear();\n    this.#pendingCleanup = false;\n    return true;\n  }\n\n  #abortDelayedCleanup() {\n    if (this.#delayedCleanupTimeout) {\n      clearTimeout(this.#delayedCleanupTimeout);\n      this.#delayedCleanupTimeout = null;\n    }\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    this._stats?.timeEnd(\"Page Request\");\n\n    // TODO Refactor RenderPageRequest to separate rendering\n    // and operator list logic\n    intentState.displayReadyCapability?.resolve(transparency);\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    intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\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(/* delayed = */ true);\n    }\n  }\n\n  /**\n   * @private\n   */\n  _pumpOperatorList({\n    renderingIntent,\n    cacheKey,\n    annotationStorageSerializable,\n  }) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        Number.isInteger(renderingIntent) && renderingIntent > 0,\n        '_pumpOperatorList: Expected valid \"renderingIntent\" argument.'\n      );\n    }\n    const { map, transfer } = annotationStorageSerializable;\n\n    const readableStream = this._transport.messageHandler.sendWithStream(\n      \"GetOperatorList\",\n      {\n        pageIndex: this._pageIndex,\n        intent: renderingIntent,\n        cacheKey,\n        annotationStorage: map,\n      },\n      transfer\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(/* delayed = */ true);\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 (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        reason instanceof Error,\n        '_abortOperatorList: Expected valid \"reason\" argument.'\n      );\n    }\n\n    if (!intentState.streamReader) {\n      return;\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    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        let delay = RENDERING_CANCELLED_TIMEOUT;\n        if (reason.extraDelay > 0 && reason.extraDelay < /* ms = */ 1000) {\n          // Above, we prevent the total delay from becoming arbitrarily large.\n          delay += reason.extraDelay;\n        }\n\n        intentState.streamReaderCancelTimeout = setTimeout(() => {\n          intentState.streamReaderCancelTimeout = null;\n          this._abortOperatorList({ intentState, reason, force: true });\n        }, delay);\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 {StatTimer | null} Returns page stats, if enabled; returns `null`\n   *   otherwise.\n   */\n  get stats() {\n    return this._stats;\n  }\n}\n\nclass LoopbackPort {\n  #listeners = new Set();\n\n  #deferred = Promise.resolve();\n\n  postMessage(obj, transfer) {\n    const event = {\n      data: structuredClone(obj, transfer ? { transfer } : null),\n    };\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.add(listener);\n  }\n\n  removeEventListener(name, listener) {\n    this.#listeners.delete(listener);\n  }\n\n  terminate() {\n    this.#listeners.clear();\n  }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} [name] - The name of the worker.\n * @property {Worker} [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  fakeWorkerId: 0,\n};\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n  if (isNodeJS) {\n    // Workers aren't supported in Node.js, force-disabling them there.\n    PDFWorkerUtil.isWorkerDisabled = true;\n\n    GlobalWorkerOptions.workerSrc ||= PDFJSDev.test(\"LIB\")\n      ? \"../pdf.worker.js\"\n      : \"./pdf.worker.mjs\";\n  }\n\n  // Check if URLs have the same origin. For non-HTTP based URLs, returns false.\n  PDFWorkerUtil.isSameOrigin = function (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 {\n      return false;\n    }\n\n    const other = new URL(otherUrl, base);\n    return base.origin === other.origin;\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 = `await import(\"${url}\");`;\n    return URL.createObjectURL(\n      new Blob([wrapper], { type: \"text/javascript\" })\n    );\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 #workerPorts;\n\n  constructor({\n    name = null,\n    port = null,\n    verbosity = getVerbosityLevel(),\n  } = {}) {\n    this.name = name;\n    this.destroyed = false;\n    this.verbosity = verbosity;\n\n    this._readyCapability = new PromiseCapability();\n    this._port = null;\n    this._webWorker = null;\n    this._messageHandler = null;\n\n    if (\n      (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) &&\n      port\n    ) {\n      if (PDFWorker.#workerPorts?.has(port)) {\n        throw new Error(\"Cannot use more than one PDFWorker per port.\");\n      }\n      (PDFWorker.#workerPorts ||= new WeakMap()).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    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      throw new Error(\"Not implemented: _initializeFromPort\");\n    }\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    // Send global setting, e.g. verbosity level.\n    this._messageHandler.send(\"configure\", {\n      verbosity: this.verbosity,\n    });\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      !PDFWorkerUtil.isWorkerDisabled &&\n      !PDFWorker.#mainThreadWorkerMessageHandler\n    ) {\n      let { workerSrc } = PDFWorker;\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          !PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)\n        ) {\n          workerSrc = PDFWorkerUtil.createCDNWrapper(\n            new URL(workerSrc, window.location).href\n          );\n        }\n\n        const worker = new Worker(workerSrc, { type: \"module\" });\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 {\n            // We need fallback to a faked worker.\n            this._setupFakeWorker();\n          }\n        });\n\n        const sendTest = () => {\n          const testObj = new Uint8Array();\n          // Ensure that we can use `postMessage` transfers.\n          messageHandler.send(\"test\", testObj, [testObj.buffer]);\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 {\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 (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      throw new Error(\"Not implemented: fromPort\");\n    }\n    if (!params?.port) {\n      throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n    }\n    const cachedPort = this.#workerPorts?.get(params.port);\n    if (cachedPort) {\n      if (cachedPort._pendingDestroy) {\n        throw new Error(\n          \"PDFWorker.fromPort - the worker is being destroyed.\\n\" +\n            \"Please remember to await `PDFDocumentLoadingTask.destroy()`-calls.\"\n        );\n      }\n      return cachedPort;\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    throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n  }\n\n  static get #mainThreadWorkerMessageHandler() {\n    try {\n      return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n    } catch {\n      return null;\n    }\n  }\n\n  // Loads worker code into the main-thread.\n  static get _setupFakeWorkerGlobal() {\n    const loader = async () => {\n      if (this.#mainThreadWorkerMessageHandler) {\n        // The worker was already loaded using e.g. a `<script>` tag.\n        return this.#mainThreadWorkerMessageHandler;\n      }\n      const worker =\n        typeof PDFJSDev === \"undefined\"\n          ? await import(\"pdfjs/pdf.worker.js\")\n          : await import(/* webpackIgnore: true */ this.workerSrc);\n      return worker.WorkerMessageHandler;\n    };\n\n    return shadow(this, \"_setupFakeWorkerGlobal\", loader());\n  }\n}\n\n/**\n * For internal use only.\n * @ignore\n */\nclass WorkerTransport {\n  #methodPromises = new Map();\n\n  #pageCache = new Map();\n\n  #pagePromises = new Map();\n\n  #passwordCapability = null;\n\n  constructor(messageHandler, loadingTask, networkStream, params, factory) {\n    this.messageHandler = messageHandler;\n    this.loadingTask = loadingTask;\n    this.commonObjs = new PDFObjects();\n    this.fontLoader = new FontLoader({\n      ownerDocument: params.ownerDocument,\n      styleElement: params.styleElement,\n    });\n    this._params = params;\n\n    this.canvasFactory = factory.canvasFactory;\n    this.filterFactory = factory.filterFactory;\n    this.cMapReaderFactory = factory.cMapReaderFactory;\n    this.standardFontDataFactory = factory.standardFontDataFactory;\n\n    this.destroyed = false;\n    this.destroyCapability = null;\n\n    this._networkStream = networkStream;\n    this._fullReader = null;\n    this._lastProgress = null;\n    this.downloadInfoCapability = new PromiseCapability();\n\n    this.setupMessageHandler();\n\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      // For testing purposes.\n      Object.defineProperty(this, \"getXFADatasets\", {\n        value: () => {\n          return this.messageHandler.sendWithPromise(\"GetXFADatasets\", null);\n        },\n      });\n      Object.defineProperty(this, \"getXRefPrevValue\", {\n        value: () => {\n          return this.messageHandler.sendWithPromise(\"GetXRefPrevValue\", null);\n        },\n      });\n      Object.defineProperty(this, \"getAnnotArray\", {\n        value: pageIndex => {\n          return this.messageHandler.sendWithPromise(\"GetAnnotArray\", {\n            pageIndex,\n          });\n        },\n      });\n    }\n  }\n\n  #cacheSimpleMethod(name, data = null) {\n    const cachedPromise = this.#methodPromises.get(name);\n    if (cachedPromise) {\n      return cachedPromise;\n    }\n    const promise = this.messageHandler.sendWithPromise(name, data);\n\n    this.#methodPromises.set(name, promise);\n    return promise;\n  }\n\n  get annotationStorage() {\n    return shadow(this, \"annotationStorage\", new AnnotationStorage());\n  }\n\n  getRenderingIntent(\n    intent,\n    annotationMode = AnnotationMode.ENABLE,\n    printAnnotationStorage = null,\n    isOpList = false\n  ) {\n    let renderingIntent = RenderingIntentFlag.DISPLAY; // Default value.\n    let annotationStorageSerializable = SerializableEmpty;\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        const annotationStorage =\n          renderingIntent & RenderingIntentFlag.PRINT &&\n          printAnnotationStorage instanceof PrintAnnotationStorage\n            ? printAnnotationStorage\n            : this.annotationStorage;\n\n        annotationStorageSerializable = annotationStorage.serializable;\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}_${annotationStorageSerializable.hash}`,\n      annotationStorageSerializable,\n    };\n  }\n\n  destroy() {\n    if (this.destroyCapability) {\n      return this.destroyCapability.promise;\n    }\n\n    this.destroyed = true;\n    this.destroyCapability = new PromiseCapability();\n\n    this.#passwordCapability?.reject(\n      new Error(\"Worker was destroyed during onPassword callback\")\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.#methodPromises.clear();\n      this.filterFactory.destroy();\n\n      this._networkStream?.cancelAllRequests(\n        new AbortException(\"Worker was terminated.\")\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              value instanceof ArrayBuffer,\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 = new PromiseCapability();\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              value instanceof ArrayBuffer,\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 = new PromiseCapability();\n\n      if (loadingTask.onPassword) {\n        const updatePassword = password => {\n          if (password instanceof Error) {\n            this.#passwordCapability.reject(password);\n          } else {\n            this.#passwordCapability.resolve({ 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          const inspectFont =\n            params.pdfBug && globalThis.FontInspector?.enabled\n              ? (font, url) => globalThis.FontInspector.fontAdded(font, url)\n              : null;\n          const font = new FontFaceObject(exportedData, {\n            isEvalSupported: params.isEvalSupported,\n            disableFontFace: params.disableFontFace,\n            ignoreErrors: params.ignoreErrors,\n            inspectFont,\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        case \"Pattern\":\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      // Don't store data *after* cleanup has successfully run, see bug 1854145.\n      if (pageProxy._intentStates.size === 0) {\n        imageData?.bitmap?.close(); // Release any `ImageBitmap` data.\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          if (imageData) {\n            let length;\n            if (imageData.bitmap) {\n              const { width, height } = imageData;\n              length = width * height * 4;\n            } else {\n              length = imageData.data?.length || 0;\n            }\n\n            if (length > MAX_IMAGE_SIZE_TO_CACHE) {\n              pageProxy._maybeCleanupAfterRender = true;\n            }\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(\"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  getData() {\n    return this.messageHandler.sendWithPromise(\"GetData\", null);\n  }\n\n  saveDocument() {\n    if (this.annotationStorage.size <= 0) {\n      warn(\n        \"saveDocument called while `annotationStorage` is empty, \" +\n          \"please use the getData-method instead.\"\n      );\n    }\n    const { map, transfer } = this.annotationStorage.serializable;\n\n    return this.messageHandler\n      .sendWithPromise(\n        \"SaveDocument\",\n        {\n          isPureXfa: !!this._htmlForXfa,\n          numPages: this._numPages,\n          annotationStorage: map,\n          filename: this._fullReader?.filename ?? null,\n        },\n        transfer\n      )\n      .finally(() => {\n        this.annotationStorage.resetModified();\n      });\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.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    if (\n      typeof ref !== \"object\" ||\n      ref === null ||\n      !Number.isInteger(ref.num) ||\n      ref.num < 0 ||\n      !Number.isInteger(ref.gen) ||\n      ref.gen < 0\n    ) {\n      return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n    }\n    return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n      num: ref.num,\n      gen: ref.gen,\n    });\n  }\n\n  getAnnotations(pageIndex, intent) {\n    return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n      pageIndex,\n      intent,\n    });\n  }\n\n  getFieldObjects() {\n    return this.#cacheSimpleMethod(\"GetFieldObjects\");\n  }\n\n  hasJSActions() {\n    return this.#cacheSimpleMethod(\"HasJSActions\");\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  getDocJSActions() {\n    return this.#cacheSimpleMethod(\"GetDocJSActions\");\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    const name = \"GetMetadata\",\n      cachedPromise = this.#methodPromises.get(name);\n    if (cachedPromise) {\n      return cachedPromise;\n    }\n    const promise = this.messageHandler\n      .sendWithPromise(name, 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    this.#methodPromises.set(name, promise);\n    return promise;\n  }\n\n  getMarkInfo() {\n    return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n  }\n\n  async startCleanup(keepLoadedFonts = false) {\n    if (this.destroyed) {\n      return; // No need to manually clean-up when destruction has started.\n    }\n    await this.messageHandler.sendWithPromise(\"Cleanup\", null);\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.#methodPromises.clear();\n    this.filterFactory.destroy(/* keepHCM = */ true);\n  }\n\n  get loadingParams() {\n    const { disableAutoFetch, enableXfa } = this._params;\n    return shadow(this, \"loadingParams\", {\n      disableAutoFetch,\n      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 */\nclass PDFObjects {\n  #objs = Object.create(null);\n\n  /**\n   * Ensures there is an object defined for `objId`.\n   *\n   * @param {string} objId\n   * @returns {Object}\n   */\n  #ensureObj(objId) {\n    return (this.#objs[objId] ||= {\n      capability: new PromiseCapability(),\n      data: null,\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   * @param {string} objId\n   * @param {function} [callback]\n   * @returns {any}\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      const obj = this.#ensureObj(objId);\n      obj.capability.promise.then(() => callback(obj.data));\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?.capability.settled) {\n      throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n    }\n    return obj.data;\n  }\n\n  /**\n   * @param {string} objId\n   * @returns {boolean}\n   */\n  has(objId) {\n    const obj = this.#objs[objId];\n    return obj?.capability.settled || false;\n  }\n\n  /**\n   * Resolves the object `objId` with optional `data`.\n   *\n   * @param {string} objId\n   * @param {any} [data]\n   */\n  resolve(objId, data = null) {\n    const obj = this.#ensureObj(objId);\n    obj.data = data;\n    obj.capability.resolve();\n  }\n\n  clear() {\n    for (const objId in this.#objs) {\n      const { data } = this.#objs[objId];\n      data?.bitmap?.close(); // Release any `ImageBitmap` data.\n    }\n    this.#objs = Object.create(null);\n  }\n}\n\n/**\n * Allows controlling of the rendering tasks.\n */\nclass RenderTask {\n  #internalRenderTask = null;\n\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   * @param {number} [extraDelay]\n   */\n  cancel(extraDelay = 0) {\n    this.#internalRenderTask.cancel(/* error = */ null, extraDelay);\n  }\n\n  /**\n   * Whether form fields are rendered separately from the main operatorList.\n   * @type {boolean}\n   */\n  get separateAnnots() {\n    const { separateAnnots } = this.#internalRenderTask.operatorList;\n    if (!separateAnnots) {\n      return false;\n    }\n    const { annotationCanvasMap } = this.#internalRenderTask;\n    return (\n      separateAnnots.form ||\n      (separateAnnots.canvas && annotationCanvasMap?.size > 0)\n    );\n  }\n}\n\n/**\n * For internal use only.\n * @ignore\n */\nclass InternalRenderTask {\n  static #canvasInUse = new WeakSet();\n\n  constructor({\n    callback,\n    params,\n    objs,\n    commonObjs,\n    annotationCanvasMap,\n    operatorList,\n    pageIndex,\n    canvasFactory,\n    filterFactory,\n    useRequestAnimationFrame = false,\n    pdfBug = false,\n    pageColors = null,\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.filterFactory = filterFactory;\n    this._pdfBug = pdfBug;\n    this.pageColors = pageColors;\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 = new PromiseCapability();\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, background } = this.params;\n\n    this.gfx = new CanvasGraphics(\n      canvasContext,\n      this.commonObjs,\n      this.objs,\n      this.canvasFactory,\n      this.filterFactory,\n      { optionalContentConfig },\n      this.annotationCanvasMap,\n      this.pageColors\n    );\n    this.gfx.beginDrawing({\n      transform,\n      viewport,\n      transparency,\n      background,\n    });\n    this.operatorListIdx = 0;\n    this.graphicsReady = true;\n    this.graphicsReadyCallback?.();\n  }\n\n  cancel(error = null, extraDelay = 0) {\n    this.running = false;\n    this.cancelled = true;\n    this.gfx?.endDrawing();\n    InternalRenderTask.#canvasInUse.delete(this._canvas);\n\n    this.callback(\n      error ||\n        new RenderingCancelledException(\n          `Rendering cancelled, page ${this._pageIndex + 1}`,\n          extraDelay\n        )\n    );\n  }\n\n  operatorListChanged() {\n    if (!this.graphicsReady) {\n      this.graphicsReadyCallback ||= this._continueBound;\n      return;\n    }\n    this.stepper?.updateOperatorList(this.operatorList);\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        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  DefaultFilterFactory,\n  DefaultStandardFontDataFactory,\n  getDocument,\n  LoopbackPort,\n  PDFDataRangeTransport,\n  PDFDocumentLoadingTask,\n  PDFDocumentProxy,\n  PDFPageProxy,\n  PDFWorker,\n  PDFWorkerUtil,\n  RenderTask,\n  version,\n};\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 BaseFilterFactory {\n  constructor() {\n    if (this.constructor === BaseFilterFactory) {\n      unreachable(\"Cannot initialize BaseFilterFactory.\");\n    }\n  }\n\n  addFilter(maps) {\n    return \"none\";\n  }\n\n  addHCMFilter(fgColor, bgColor) {\n    return \"none\";\n  }\n\n  addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {\n    return \"none\";\n  }\n\n  destroy(keepHCM = false) {}\n}\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   * @ignore\n   */\n  _createCanvas(width, height) {\n    unreachable(\"Abstract method `_createCanvas` called.\");\n  }\n}\n\nclass BaseCMapReaderFactory {\n  constructor({ baseUrl = null, isCompressed = true }) {\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   * @ignore\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   * @ignore\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, skipDimensions = false) {\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\n    if (!skipDimensions) {\n      svg.setAttribute(\"width\", `${width}px`);\n      svg.setAttribute(\"height\", `${height}px`);\n    }\n\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   * @ignore\n   */\n  _createSVG(type) {\n    unreachable(\"Abstract method `_createSVG` called.\");\n  }\n}\n\nexport {\n  BaseCanvasFactory,\n  BaseCMapReaderFactory,\n  BaseFilterFactory,\n  BaseStandardFontDataFactory,\n  BaseSVGFactory,\n};\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 { FormatError, info, unreachable, Util } from \"../shared/util.js\";\nimport { getCurrentTransform } from \"./display_utils.js\";\n\nconst PathType = {\n  FILL: \"Fill\",\n  STROKE: \"Stroke\",\n  SHADING: \"Shading\",\n};\n\nfunction applyBoundingBox(ctx, bbox) {\n  if (!bbox) {\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        getCurrentTransform(ctx)\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(...owner.baseTransform);\n      if (this.matrix) {\n        tmpCtx.transform(...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      pattern.setTransform(domMatrix);\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      const k = y < y1 ? 0 : (y1 - y) / (y1 - y2);\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(getCurrentTransform(ctx));\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(...owner.baseTransform);\n      if (this.matrix) {\n        ctx.transform(...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 MAX_PATTERN_SIZE = 3000;\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 coordinates 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    // To match CanvasGraphics beginDrawing we must save the context here or\n    // else we end up with unbalanced save/restores.\n    tmpCtx.save();\n\n    this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n\n    graphics.baseTransform = getCurrentTransform(graphics.ctx);\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.current.updateRectMinMax(getCurrentTransform(graphics.ctx), [\n      x0,\n      y0,\n      x1,\n      y1,\n    ]);\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    pattern.setTransform(domMatrix);\n\n    return pattern;\n  }\n}\n\nexport { getShadingPattern, PathType, TilingPattern };\n","/* Copyright 2022 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 { FeatureTest, ImageKind } from \"./util.js\";\n\nfunction convertToRGBA(params) {\n  switch (params.kind) {\n    case ImageKind.GRAYSCALE_1BPP:\n      return convertBlackAndWhiteToRGBA(params);\n    case ImageKind.RGB_24BPP:\n      return convertRGBToRGBA(params);\n  }\n\n  return null;\n}\n\nfunction convertBlackAndWhiteToRGBA({\n  src,\n  srcPos = 0,\n  dest,\n  width,\n  height,\n  nonBlackColor = 0xffffffff,\n  inverseDecode = false,\n}) {\n  const black = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n  const [zeroMapping, oneMapping] = inverseDecode\n    ? [nonBlackColor, black]\n    : [black, nonBlackColor];\n  const widthInSource = width >> 3;\n  const widthRemainder = width & 7;\n  const srcLength = src.length;\n  dest = new Uint32Array(dest.buffer);\n  let destPos = 0;\n\n  for (let i = 0; i < height; i++) {\n    for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n      const elem = srcPos < srcLength ? src[srcPos] : 255;\n      dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n    }\n    if (widthRemainder === 0) {\n      continue;\n    }\n    const elem = srcPos < srcLength ? src[srcPos++] : 255;\n    for (let j = 0; j < widthRemainder; j++) {\n      dest[destPos++] = elem & (1 << (7 - j)) ? oneMapping : zeroMapping;\n    }\n  }\n  return { srcPos, destPos };\n}\n\nfunction convertRGBToRGBA({\n  src,\n  srcPos = 0,\n  dest,\n  destPos = 0,\n  width,\n  height,\n}) {\n  let i = 0;\n  const len32 = src.length >> 2;\n  const src32 = new Uint32Array(src.buffer, srcPos, len32);\n\n  if (FeatureTest.isLittleEndian) {\n    // It's a way faster to do the shuffle manually instead of working\n    // component by component with some Uint8 arrays.\n    for (; i < len32 - 2; i += 3, destPos += 4) {\n      const s1 = src32[i]; // R2B1G1R1\n      const s2 = src32[i + 1]; // G3R3B2G2\n      const s3 = src32[i + 2]; // B4G4R4B3\n\n      dest[destPos] = s1 | 0xff000000;\n      dest[destPos + 1] = (s1 >>> 24) | (s2 << 8) | 0xff000000;\n      dest[destPos + 2] = (s2 >>> 16) | (s3 << 16) | 0xff000000;\n      dest[destPos + 3] = (s3 >>> 8) | 0xff000000;\n    }\n\n    for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n      dest[destPos++] =\n        src[j] | (src[j + 1] << 8) | (src[j + 2] << 16) | 0xff000000;\n    }\n  } else {\n    for (; i < len32 - 2; i += 3, destPos += 4) {\n      const s1 = src32[i]; // R1G1B1R2\n      const s2 = src32[i + 1]; // G2B2R3G3\n      const s3 = src32[i + 2]; // B3R4G4B4\n\n      dest[destPos] = s1 | 0xff;\n      dest[destPos + 1] = (s1 << 24) | (s2 >>> 8) | 0xff;\n      dest[destPos + 2] = (s2 << 16) | (s3 >>> 16) | 0xff;\n      dest[destPos + 3] = (s3 << 8) | 0xff;\n    }\n\n    for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n      dest[destPos++] =\n        (src[j] << 24) | (src[j + 1] << 16) | (src[j + 2] << 8) | 0xff;\n    }\n  }\n\n  return { srcPos, destPos };\n}\n\nfunction grayToRGBA(src, dest) {\n  if (FeatureTest.isLittleEndian) {\n    for (let i = 0, ii = src.length; i < ii; i++) {\n      dest[i] = (src[i] * 0x10101) | 0xff000000;\n    }\n  } else {\n    for (let i = 0, ii = src.length; i < ii; i++) {\n      dest[i] = (src[i] * 0x1010100) | 0x000000ff;\n    }\n  }\n}\n\nexport { convertBlackAndWhiteToRGBA, convertToRGBA, grayToRGBA };\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  FeatureTest,\n  FONT_IDENTITY_MATRIX,\n  IDENTITY_MATRIX,\n  ImageKind,\n  info,\n  isNodeJS,\n  OPS,\n  shadow,\n  TextRenderingMode,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  getCurrentTransform,\n  getCurrentTransformInverse,\n  PixelsPerInch,\n} from \"./display_utils.js\";\nimport {\n  getShadingPattern,\n  PathType,\n  TilingPattern,\n} from \"./pattern_helper.js\";\nimport { convertBlackAndWhiteToRGBA } from \"../shared/image_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 schedules 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\n// To disable Type3 compilation, set the value to `-1`.\nconst MAX_SIZE_TO_COMPILE = 1000;\n\nconst FULL_CHUNK_HEIGHT = 16;\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\nclass CachedCanvases {\n  constructor(canvasFactory) {\n    this.canvasFactory = canvasFactory;\n    this.cache = Object.create(null);\n  }\n\n  getCanvas(id, width, height) {\n    let canvasEntry;\n    if (this.cache[id] !== undefined) {\n      canvasEntry = this.cache[id];\n      this.canvasFactory.reset(canvasEntry, width, height);\n    } else {\n      canvasEntry = this.canvasFactory.create(width, height);\n      this.cache[id] = canvasEntry;\n    }\n    return canvasEntry;\n  }\n\n  delete(id) {\n    delete this.cache[id];\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 drawImageAtIntegerCoords(\n  ctx,\n  srcImg,\n  srcX,\n  srcY,\n  srcW,\n  srcH,\n  destX,\n  destY,\n  destW,\n  destH\n) {\n  const [a, b, c, d, tx, ty] = getCurrentTransform(ctx);\n  if (b === 0 && c === 0) {\n    // top-left corner is at (X, Y) and\n    // bottom-right one is at (X + width, Y + height).\n\n    // If leftX is 4.321 then it's rounded to 4.\n    // If width is 10.432 then it's rounded to 11 because\n    // rightX = leftX + width = 14.753 which is rounded to 15\n    // so after rounding the total width is 11 (15 - 4).\n    // It's why we can't just floor/ceil uniformly, it just depends\n    // on the values we've.\n\n    const tlX = destX * a + tx;\n    const rTlX = Math.round(tlX);\n    const tlY = destY * d + ty;\n    const rTlY = Math.round(tlY);\n    const brX = (destX + destW) * a + tx;\n\n    // Some pdf contains images with 1x1 images so in case of 0-width after\n    // scaling we must fallback on 1 to be sure there is something.\n    const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n    const brY = (destY + destH) * d + ty;\n    const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n\n    // We must apply a transformation in order to apply it on the image itself.\n    // For example if a == 1 && d == -1, it means that the image itself is\n    // mirrored w.r.t. the x-axis.\n    ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n    ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n    ctx.setTransform(a, b, c, d, tx, ty);\n\n    return [rWidth, rHeight];\n  }\n\n  if (a === 0 && d === 0) {\n    // This path is taken in issue9462.pdf (page 3).\n    const tlX = destY * c + tx;\n    const rTlX = Math.round(tlX);\n    const tlY = destX * b + ty;\n    const rTlY = Math.round(tlY);\n    const brX = (destY + destH) * c + tx;\n    const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n    const brY = (destX + destW) * b + ty;\n    const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n\n    ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n    ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n    ctx.setTransform(a, b, c, d, tx, ty);\n\n    return [rHeight, rWidth];\n  }\n\n  // Not a scale matrix so let the render handle the case without rounding.\n  ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n\n  const scaleX = Math.hypot(a, b);\n  const scaleY = Math.hypot(c, d);\n  return [scaleX * destW, scaleY * destH];\n}\n\nfunction compileType3Glyph(imgData) {\n  const { width, height } = imgData;\n  if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n    return null;\n  }\n\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 width1 = width + 1;\n  let points = new Uint8Array(width1 * (height + 1));\n  let i, j, j0;\n\n  // decodes bit-packed mask data\n  const lineSize = (width + 7) & ~7;\n  let data = new Uint8Array(lineSize * height),\n    pos = 0;\n  for (const elem of imgData.data) {\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 path = new Path2D();\n\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    path.moveTo(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      path.lineTo(p % width1, (p / width1) | 0);\n\n      if (!points[p]) {\n        --count;\n      }\n    } while (p0 !== p);\n    --i;\n  }\n\n  // Immediately release the, potentially large, `Uint8Array`s after parsing.\n  data = null;\n  points = null;\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.fill(path);\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 = \"none\";\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  updateRectMinMax(transform, rect) {\n    const p1 = Util.applyTransform(rect, transform);\n    const p2 = Util.applyTransform(rect.slice(2), transform);\n    const p3 = Util.applyTransform([rect[0], rect[3]], transform);\n    const p4 = Util.applyTransform([rect[2], rect[1]], transform);\n\n    this.minX = Math.min(this.minX, p1[0], p2[0], p3[0], p4[0]);\n    this.minY = Math.min(this.minY, p1[1], p2[1], p3[1], p4[1]);\n    this.maxX = Math.max(this.maxX, p1[0], p2[0], p3[0], p4[0]);\n    this.maxY = Math.max(this.maxY, p1[1], p2[1], p3[1], p4[1]);\n  }\n\n  updateScalingPathMinMax(transform, minMax) {\n    Util.scaleMinMax(transform, minMax);\n    this.minX = Math.min(this.minX, minMax[0]);\n    this.maxX = Math.max(this.maxX, minMax[1]);\n    this.minY = Math.min(this.minY, minMax[2]);\n    this.maxY = Math.max(this.maxY, minMax[3]);\n  }\n\n  updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n    const box = Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n    if (minMax) {\n      minMax[0] = Math.min(minMax[0], box[0], box[2]);\n      minMax[1] = Math.max(minMax[1], box[0], box[2]);\n      minMax[2] = Math.min(minMax[2], box[1], box[3]);\n      minMax[3] = Math.max(minMax[3], box[1], box[3]);\n      return;\n    }\n    this.updateRectMinMax(transform, box);\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  isEmptyClip() {\n    return this.minX === Infinity;\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) {\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  // 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    const white = 0xffffffff;\n    const black = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\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    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      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      ctx.putImageData(chunkImgData, 0, j);\n    }\n  } else if (imgData.kind === ImageKind.RGB_24BPP) {\n    // RGB, 24-bits per pixel.\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      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  if (imgData.bitmap) {\n    // The bitmap has been created in the worker.\n    ctx.drawImage(imgData.bitmap, 0, 0);\n    return;\n  }\n\n  // Slow path: OffscreenCanvas isn't available in the worker.\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\n    ({ srcPos } = convertBlackAndWhiteToRGBA({\n      src,\n      srcPos,\n      dest,\n      width,\n      height: thisChunkHeight,\n      nonBlackColor: 0,\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    \"filter\",\n  ];\n  for (const property of properties) {\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 = 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  if (\n    (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n    !isNodeJS\n  ) {\n    const { filter } = ctx;\n    if (filter !== \"none\" && filter !== \"\") {\n      ctx.filter = \"none\";\n    }\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  const composeFn =\n    subtype === \"Luminosity\" ? composeSMaskLuminosity : composeSMaskAlpha;\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    filterFactory,\n    { optionalContentConfig, markedContentStack = null },\n    annotationCanvasMap,\n    pageColors\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.filterFactory = filterFactory;\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 = 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    this.pageColors = pageColors;\n\n    this._cachedScaleForStroking = [-1, 0];\n    this._cachedGetSinglePixelWidth = null;\n    this._cachedBitmapsMap = new Map();\n  }\n\n  getObject(data, fallback = null) {\n    if (typeof data === \"string\") {\n      return data.startsWith(\"g_\")\n        ? this.commonObjs.get(data)\n        : this.objs.get(data);\n    }\n    return fallback;\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    const savedFillStyle = this.ctx.fillStyle;\n    this.ctx.fillStyle = background || \"#ffffff\";\n    this.ctx.fillRect(0, 0, width, height);\n    this.ctx.fillStyle = savedFillStyle;\n\n    if (transparency) {\n      const transparentCanvas = this.cachedCanvases.getCanvas(\n        \"transparent\",\n        width,\n        height\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(...getCurrentTransform(this.compositeCtx));\n    }\n\n    this.ctx.save();\n    resetCtxToDefault(this.ctx);\n    if (transform) {\n      this.ctx.transform(...transform);\n      this.outputScaleX = transform[0];\n      this.outputScaleY = transform[0];\n    }\n    this.ctx.transform(...viewport.transform);\n    this.viewportScale = viewport.scale;\n\n    this.baseTransform = getCurrentTransform(this.ctx);\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        // eslint-disable-next-line prefer-spread\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  #restoreInitialState() {\n    // Finishing all opened operations such as SMask group painting.\n    while (this.stateStack.length || this.inSMaskMode) {\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\n  endDrawing() {\n    this.#restoreInitialState();\n\n    this.cachedCanvases.clear();\n    this.cachedPatterns.clear();\n\n    for (const cache of this._cachedBitmapsMap.values()) {\n      for (const canvas of cache.values()) {\n        if (\n          typeof HTMLCanvasElement !== \"undefined\" &&\n          canvas instanceof HTMLCanvasElement\n        ) {\n          canvas.width = canvas.height = 0;\n        }\n      }\n      cache.clear();\n    }\n    this._cachedBitmapsMap.clear();\n    this.#drawFilter();\n  }\n\n  #drawFilter() {\n    if (this.pageColors) {\n      const hcmFilterId = this.filterFactory.addHCMFilter(\n        this.pageColors.foreground,\n        this.pageColors.background\n      );\n      if (hcmFilterId !== \"none\") {\n        const savedFilter = this.ctx.filter;\n        this.ctx.filter = hcmFilterId;\n        this.ctx.drawImage(this.ctx.canvas, 0, 0);\n        this.ctx.filter = savedFilter;\n      }\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        // See bug 1820511 (Windows specific bug).\n        // TODO: once the above bug is fixed we could revert to:\n        // newWidth = Math.ceil(paintWidth / 2);\n        newWidth =\n          paintWidth >= 16384\n            ? Math.floor(paintWidth / 2) - 1 || 1\n            : Math.ceil(paintWidth / 2);\n        widthScale /= paintWidth / newWidth;\n      }\n      if (heightScale > 2 && paintHeight > 1) {\n        // TODO: see the comment above.\n        newHeight =\n          paintHeight >= 16384\n            ? Math.floor(paintHeight / 2) - 1 || 1\n            : 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, height } = img;\n    const fillColor = this.current.fillColor;\n    const isPatternFill = this.current.patternFill;\n    const currentTransform = getCurrentTransform(ctx);\n\n    let cache, cacheKey, scaled, maskCanvas;\n    if ((img.bitmap || img.data) && img.count > 1) {\n      const mainKey = img.bitmap || img.data.buffer;\n      // We're reusing the same image several times, so we can cache it.\n      // In case we've a pattern fill we just keep the scaled version of\n      // the image.\n      // Only the scaling part matters, the translation part is just used\n      // to compute offsets (but not when filling patterns see #15573).\n      // TODO: handle the case of a pattern fill if it's possible.\n      cacheKey = JSON.stringify(\n        isPatternFill\n          ? currentTransform\n          : [currentTransform.slice(0, 4), fillColor]\n      );\n\n      cache = this._cachedBitmapsMap.get(mainKey);\n      if (!cache) {\n        cache = new Map();\n        this._cachedBitmapsMap.set(mainKey, cache);\n      }\n      const cachedImage = cache.get(cacheKey);\n      if (cachedImage && !isPatternFill) {\n        const offsetX = Math.round(\n          Math.min(currentTransform[0], currentTransform[2]) +\n            currentTransform[4]\n        );\n        const offsetY = Math.round(\n          Math.min(currentTransform[1], currentTransform[3]) +\n            currentTransform[5]\n        );\n        return {\n          canvas: cachedImage,\n          offsetX,\n          offsetY,\n        };\n      }\n      scaled = cachedImage;\n    }\n\n    if (!scaled) {\n      maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n      putBinaryImageMask(maskCanvas.context, img);\n    }\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\n    let maskToCanvas = Util.transform(currentTransform, [\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 [minX, minY, maxX, maxY] = Util.getAxialAlignedBoundingBox(\n      [0, 0, width, height],\n      maskToCanvas\n    );\n    const drawnWidth = Math.round(maxX - minX) || 1;\n    const drawnHeight = Math.round(maxY - minY) || 1;\n    const fillCanvas = this.cachedCanvases.getCanvas(\n      \"fillCanvas\",\n      drawnWidth,\n      drawnHeight\n    );\n    const fillCtx = fillCanvas.context;\n\n    // The offset will be the top-left cordinate mask.\n    // If objToCanvas is [a,b,c,d,e,f] then:\n    //   - offsetX = min(a, c) + e\n    //   - offsetY = min(b, d) + f\n    const offsetX = minX;\n    const offsetY = minY;\n    fillCtx.translate(-offsetX, -offsetY);\n    fillCtx.transform(...maskToCanvas);\n\n    if (!scaled) {\n      // Pre-scale if needed to improve image smoothing.\n      scaled = this._scaleImage(\n        maskCanvas.canvas,\n        getCurrentTransformInverse(fillCtx)\n      );\n      scaled = scaled.img;\n      if (cache && isPatternFill) {\n        cache.set(cacheKey, scaled);\n      }\n    }\n\n    fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(\n      getCurrentTransform(fillCtx),\n      img.interpolate\n    );\n\n    drawImageAtIntegerCoords(\n      fillCtx,\n      scaled,\n      0,\n      0,\n      scaled.width,\n      scaled.height,\n      0,\n      0,\n      width,\n      height\n    );\n    fillCtx.globalCompositeOperation = \"source-in\";\n\n    const inverse = Util.transform(getCurrentTransformInverse(fillCtx), [\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    if (cache && !isPatternFill) {\n      // The fill canvas is put in the cache associated to the mask image\n      // so we must remove from the cached canvas: it mustn't be used again.\n      this.cachedCanvases.delete(\"fillCanvas\");\n      cache.set(cacheKey, fillCanvas.canvas);\n    }\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    if (width !== this.current.lineWidth) {\n      this._cachedScaleForStroking[0] = -1;\n    }\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 (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[0], value[1]);\n          break;\n        case \"CA\":\n          this.current.strokeAlpha = value;\n          break;\n        case \"ca\":\n          this.current.fillAlpha = value;\n          this.ctx.globalAlpha = value;\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.ctx.filter = this.current.transferMaps =\n            this.filterFactory.addFilter(value);\n          break;\n      }\n    }\n  }\n\n  get inSMaskMode() {\n    return !!this.suspendedCtx;\n  }\n\n  checkSMaskState() {\n    const inSMaskMode = this.inSMaskMode;\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.inSMaskMode) {\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    );\n    this.suspendedCtx = this.ctx;\n    this.ctx = scratchCanvas.context;\n    const ctx = this.ctx;\n    ctx.setTransform(...getCurrentTransform(this.suspendedCtx));\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.inSMaskMode) {\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.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    if (this.inSMaskMode) {\n      // SMask mode may be turned on/off causing us to lose graphics state.\n      // Copy the temporary canvas state to the main(suspended) canvas to keep\n      // it in sync.\n      copyCtxState(this.ctx, this.suspendedCtx);\n      // Don't bother calling save on the temporary canvas since state is not\n      // saved there.\n      this.suspendedCtx.save();\n    } else {\n      this.ctx.save();\n    }\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.inSMaskMode) {\n      this.endSMaskMode();\n    }\n    if (this.stateStack.length !== 0) {\n      this.current = this.stateStack.pop();\n      if (this.inSMaskMode) {\n        // Graphics state is stored on the main(suspended) canvas. Restore its\n        // state then copy it over to the temporary canvas.\n        this.suspendedCtx.restore();\n        copyCtxState(this.suspendedCtx, this.ctx);\n      } else {\n        this.ctx.restore();\n      }\n      this.checkSMaskState();\n\n      // Ensure that the clipping path is reset (fixes issue6413.pdf).\n      this.pendingClip = null;\n\n      this._cachedScaleForStroking[0] = -1;\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._cachedScaleForStroking[0] = -1;\n    this._cachedGetSinglePixelWidth = null;\n  }\n\n  // Path\n  constructPath(ops, args, minMax) {\n    const ctx = this.ctx;\n    const current = this.current;\n    let x = current.x,\n      y = current.y;\n    let startX, startY;\n    const currentTransform = getCurrentTransform(ctx);\n\n    // Most of the time the current transform is a scaling matrix\n    // so we don't need to transform points before computing min/max:\n    // we can compute min/max first and then smartly \"apply\" the\n    // transform (see Util.scaleMinMax).\n    // For rectangle, moveTo and lineTo, min/max are computed in the\n    // worker (see evaluator.js).\n    const isScalingMatrix =\n      (currentTransform[0] === 0 && currentTransform[3] === 0) ||\n      (currentTransform[1] === 0 && currentTransform[2] === 0);\n    const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n\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          if (!isScalingMatrix) {\n            current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n          }\n          ctx.closePath();\n          break;\n        case OPS.moveTo:\n          x = args[j++];\n          y = args[j++];\n          ctx.moveTo(x, y);\n          if (!isScalingMatrix) {\n            current.updatePathMinMax(currentTransform, x, y);\n          }\n          break;\n        case OPS.lineTo:\n          x = args[j++];\n          y = args[j++];\n          ctx.lineTo(x, y);\n          if (!isScalingMatrix) {\n            current.updatePathMinMax(currentTransform, x, y);\n          }\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            currentTransform,\n            startX,\n            startY,\n            args[j],\n            args[j + 1],\n            args[j + 2],\n            args[j + 3],\n            x,\n            y,\n            minMaxForBezier\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            currentTransform,\n            startX,\n            startY,\n            x,\n            y,\n            args[j],\n            args[j + 1],\n            args[j + 2],\n            args[j + 3],\n            minMaxForBezier\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            currentTransform,\n            startX,\n            startY,\n            args[j],\n            args[j + 1],\n            x,\n            y,\n            x,\n            y,\n            minMaxForBezier\n          );\n          j += 4;\n          break;\n        case OPS.closePath:\n          ctx.closePath();\n          break;\n      }\n    }\n\n    if (isScalingMatrix) {\n      current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n    }\n\n    current.setCurrentPoint(x, y);\n  }\n\n  closePath() {\n    this.ctx.closePath();\n  }\n\n  stroke(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        ctx.save();\n        ctx.strokeStyle = strokeColor.getPattern(\n          ctx,\n          this,\n          getCurrentTransformInverse(ctx),\n          PathType.STROKE\n        );\n        this.rescaleAndStroke(/* saveRestore */ false);\n        ctx.restore();\n      } else {\n        this.rescaleAndStroke(/* saveRestore */ true);\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 = 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        getCurrentTransformInverse(ctx),\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 (const path of paths) {\n      ctx.setTransform(...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    const typeface =\n      fontObj.systemFontInfo?.css || `\"${name}\", ${fontObj.fallbackName}`;\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    // 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) {\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(...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        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        ctx.strokeText(character, x, y);\n      }\n    }\n\n    if (isAddToPathSet) {\n      const paths = (this.pendingTextPaths ||= []);\n      paths.push({\n        transform: getCurrentTransform(ctx),\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(...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        getCurrentTransformInverse(ctx),\n        PathType.FILL\n      );\n      patternTransform = getCurrentTransform(ctx);\n      ctx.restore();\n      ctx.fillStyle = pattern;\n    }\n\n    let lineWidth = current.lineWidth;\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        lineWidth = this.getSinglePixelWidth();\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    if (font.isInvalidPDFjsFont) {\n      const chars = [];\n      let width = 0;\n      for (const glyph of glyphs) {\n        chars.push(glyph.unicode);\n        width += glyph.width;\n      }\n      ctx.fillText(chars.join(\"\"), 0, 0);\n      current.x += width * widthAdvanceScale * textHScale;\n      ctx.restore();\n      this.compose();\n\n      return undefined;\n    }\n\n    let x = 0,\n      i;\n    for (i = 0; i < glyphsLength; ++i) {\n      const glyph = glyphs[i];\n      if (typeof glyph === \"number\") {\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(character, scaledX, scaledY, patternTransform);\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            );\n          }\n        }\n      }\n\n      const charWidth = vertical\n        ? width * widthAdvanceScale - spacing * fontDirection\n        : width * widthAdvanceScale + spacing * fontDirection;\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\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._cachedScaleForStroking[0] = -1;\n    this._cachedGetSinglePixelWidth = null;\n\n    ctx.save();\n    ctx.transform(...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 (typeof glyph === \"number\") {\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(...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    this.ctx.rect(llx, lly, urx - llx, ury - lly);\n    this.ctx.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 = this.baseTransform || getCurrentTransform(this.ctx);\n      const canvasGraphicsFactory = {\n        createCanvasGraphics: ctx => {\n          return new CanvasGraphics(\n            ctx,\n            this.commonObjs,\n            this.objs,\n            this.canvasFactory,\n            this.filterFactory,\n            {\n              optionalContentConfig: this.optionalContentConfig,\n              markedContentStack: this.markedContentStack,\n            }\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.getObject(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      getCurrentTransformInverse(ctx),\n      PathType.SHADING\n    );\n\n    const inv = getCurrentTransformInverse(ctx);\n    if (inv) {\n      const { width, height } = ctx.canvas;\n      const [x0, y0, x1, y1] = Util.getAxialAlignedBoundingBox(\n        [0, 0, width, height],\n        inv\n      );\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(...matrix);\n    }\n\n    this.baseTransform = getCurrentTransform(this.ctx);\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.updateRectMinMax(getCurrentTransform(this.ctx), bbox);\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    if (this.inSMaskMode) {\n      this.endSMaskMode();\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 = getCurrentTransform(currentCtx);\n    if (group.matrix) {\n      currentCtx.transform(...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      getCurrentTransform(currentCtx)\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    );\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(...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(currentCtx);\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 = 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 (group.smask) {\n      this.tempSMask = this.smaskStack.pop();\n      this.restore();\n    } else {\n      this.ctx.restore();\n      const currentMtx = getCurrentTransform(this.ctx);\n      this.restore();\n      this.ctx.save();\n      this.ctx.setTransform(...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  beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n    // The annotations are drawn just after the page content.\n    // The page content drawing can potentially have set a transform,\n    // a clipping path, whatever...\n    // So in order to have something clean, we restore the initial state.\n    this.#restoreInitialState();\n    resetCtxToDefault(this.ctx);\n\n    this.ctx.save();\n    this.save();\n\n    if (this.baseTransform) {\n      this.ctx.setTransform(...this.baseTransform);\n    }\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          getCurrentTransform(this.ctx)\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        this.annotationCanvasMap.set(id, canvas);\n        this.annotationCanvas.savedCtx = this.ctx;\n        this.ctx = context;\n        this.ctx.save();\n        this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n\n        resetCtxToDefault(this.ctx);\n      } else {\n        resetCtxToDefault(this.ctx);\n\n        this.ctx.rect(rect[0], rect[1], width, height);\n        this.ctx.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(...transform);\n    this.transform(...matrix);\n  }\n\n  endAnnotation() {\n    if (this.annotationCanvas) {\n      this.ctx.restore();\n      this.#drawFilter();\n\n      this.ctx = this.annotationCanvas.savedCtx;\n      delete this.annotationCanvas.savedCtx;\n      delete this.annotationCanvas;\n    }\n  }\n\n  paintImageMaskXObject(img) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const count = img.count;\n    img = this.getObject(img.data, img);\n    img.count = count;\n\n    const ctx = this.ctx;\n    const glyph = this.processingType3;\n\n    if (glyph) {\n      if (glyph.compiled === undefined) {\n        glyph.compiled = compileType3Glyph(img);\n      }\n\n      if (glyph.compiled) {\n        glyph.compiled(ctx);\n        return;\n      }\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    img,\n    scaleX,\n    skewX = 0,\n    skewY = 0,\n    scaleY,\n    positions\n  ) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    img = this.getObject(img.data, img);\n\n    const ctx = this.ctx;\n    ctx.save();\n    const currentTransform = getCurrentTransform(ctx);\n    ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n    const mask = this._createMaskCanvas(img);\n\n    ctx.setTransform(\n      1,\n      0,\n      0,\n      1,\n      mask.offsetX - currentTransform[4],\n      mask.offsetY - currentTransform[5]\n    );\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\n    for (const image of images) {\n      const { data, width, height, transform } = image;\n\n      const maskCanvas = this.cachedCanvases.getCanvas(\n        \"maskCanvas\",\n        width,\n        height\n      );\n      const maskCtx = maskCanvas.context;\n      maskCtx.save();\n\n      const img = this.getObject(data, image);\n      putBinaryImageMask(maskCtx, img);\n\n      maskCtx.globalCompositeOperation = \"source-in\";\n\n      maskCtx.fillStyle = isPatternFill\n        ? fillColor.getPattern(\n            maskCtx,\n            this,\n            getCurrentTransformInverse(ctx),\n            PathType.FILL\n          )\n        : fillColor;\n      maskCtx.fillRect(0, 0, width, height);\n\n      maskCtx.restore();\n\n      ctx.save();\n      ctx.transform(...transform);\n      ctx.scale(1, -1);\n      drawImageAtIntegerCoords(\n        ctx,\n        maskCanvas.canvas,\n        0,\n        0,\n        width,\n        height,\n        0,\n        -1,\n        1,\n        1\n      );\n      ctx.restore();\n    }\n    this.compose();\n  }\n\n  paintImageXObject(objId) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const imgData = this.getObject(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 = this.getObject(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  applyTransferMapsToCanvas(ctx) {\n    if (this.current.transferMaps !== \"none\") {\n      ctx.filter = this.current.transferMaps;\n      ctx.drawImage(ctx.canvas, 0, 0);\n      ctx.filter = \"none\";\n    }\n    return ctx.canvas;\n  }\n\n  applyTransferMapsToBitmap(imgData) {\n    if (this.current.transferMaps === \"none\") {\n      return imgData.bitmap;\n    }\n    const { bitmap, width, height } = imgData;\n    const tmpCanvas = this.cachedCanvases.getCanvas(\n      \"inlineImage\",\n      width,\n      height\n    );\n    const tmpCtx = tmpCanvas.context;\n    tmpCtx.filter = this.current.transferMaps;\n    tmpCtx.drawImage(bitmap, 0, 0);\n    tmpCtx.filter = \"none\";\n\n    return tmpCanvas.canvas;\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\n    if (\n      (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n      !isNodeJS\n    ) {\n      // The filter, if any, will be applied in applyTransferMapsToBitmap.\n      // It must be applied to the image before rescaling else some artifacts\n      // could appear.\n      // The final restore will reset it to its value.\n      const { filter } = ctx;\n      if (filter !== \"none\" && filter !== \"\") {\n        ctx.filter = \"none\";\n      }\n    }\n\n    // scale the image to the unit square\n    ctx.scale(1 / width, -1 / height);\n\n    let imgToPaint;\n    if (imgData.bitmap) {\n      imgToPaint = this.applyTransferMapsToBitmap(imgData);\n    } else if (\n      (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement) ||\n      !imgData.data\n    ) {\n      // typeof check is needed due to node.js support, see issue #8489\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);\n      imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n    }\n\n    const scaled = this._scaleImage(\n      imgToPaint,\n      getCurrentTransformInverse(ctx)\n    );\n    ctx.imageSmoothingEnabled = getImageSmoothingEnabled(\n      getCurrentTransform(ctx),\n      imgData.interpolate\n    );\n\n    drawImageAtIntegerCoords(\n      ctx,\n      scaled.img,\n      0,\n      0,\n      scaled.paintWidth,\n      scaled.paintHeight,\n      0,\n      -height,\n      width,\n      height\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    let imgToPaint;\n    if (imgData.bitmap) {\n      imgToPaint = imgData.bitmap;\n    } else {\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);\n      imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n    }\n\n    for (const entry of map) {\n      ctx.save();\n      ctx.transform(...entry.transform);\n      ctx.scale(1, -1);\n      drawImageAtIntegerCoords(\n        ctx,\n        imgToPaint,\n        entry.x,\n        entry.y,\n        entry.w,\n        entry.h,\n        0,\n        -1,\n        1,\n        1\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    const isEmpty = this.current.isEmptyClip();\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 (!isEmpty) {\n        if (this.pendingClip === EO_CLIP) {\n          ctx.clip(\"evenodd\");\n        } else {\n          ctx.clip();\n        }\n      }\n      this.pendingClip = null;\n    }\n    this.current.startNewPathAndClipBox(this.current.clipBox);\n    ctx.beginPath();\n  }\n\n  getSinglePixelWidth() {\n    if (!this._cachedGetSinglePixelWidth) {\n      const m = getCurrentTransform(this.ctx);\n      if (m[1] === 0 && m[2] === 0) {\n        // Fast path\n        this._cachedGetSinglePixelWidth =\n          1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n      } else {\n        const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n        const normX = Math.hypot(m[0], m[2]);\n        const normY = Math.hypot(m[1], m[3]);\n        this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n      }\n    }\n    return this._cachedGetSinglePixelWidth;\n  }\n\n  getScaleForStroking() {\n    // A pixel has thicknessX = thicknessY = 1;\n    // A transformed pixel is a parallelogram and the thicknesses\n    // corresponds to the heights.\n    // The goal of this function is to rescale before setting the\n    // lineWidth in order to have both thicknesses greater or equal\n    // to 1 after transform.\n    if (this._cachedScaleForStroking[0] === -1) {\n      const { lineWidth } = this.current;\n      const { a, b, c, d } = this.ctx.getTransform();\n      let scaleX, scaleY;\n\n      if (b === 0 && c === 0) {\n        // Fast path\n        const normX = Math.abs(a);\n        const normY = Math.abs(d);\n        if (normX === normY) {\n          if (lineWidth === 0) {\n            scaleX = scaleY = 1 / normX;\n          } else {\n            const scaledLineWidth = normX * lineWidth;\n            scaleX = scaleY = scaledLineWidth < 1 ? 1 / scaledLineWidth : 1;\n          }\n        } else if (lineWidth === 0) {\n          scaleX = 1 / normX;\n          scaleY = 1 / normY;\n        } else {\n          const scaledXLineWidth = normX * lineWidth;\n          const scaledYLineWidth = normY * lineWidth;\n          scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n          scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n        }\n      } else {\n        // A pixel (base (x, y)) is transformed by M into a parallelogram:\n        //  - its area is |det(M)|;\n        //  - heightY (orthogonal to Mx) has a length: |det(M)| / norm(Mx);\n        //  - heightX (orthogonal to My) has a length: |det(M)| / norm(My).\n        // heightX and heightY are the thicknesses of the transformed pixel\n        // and they must be both greater or equal to 1.\n        const absDet = Math.abs(a * d - b * c);\n        const normX = Math.hypot(a, b);\n        const normY = Math.hypot(c, d);\n        if (lineWidth === 0) {\n          scaleX = normY / absDet;\n          scaleY = normX / absDet;\n        } else {\n          const baseArea = lineWidth * absDet;\n          scaleX = normY > baseArea ? normY / baseArea : 1;\n          scaleY = normX > baseArea ? normX / baseArea : 1;\n        }\n      }\n      this._cachedScaleForStroking[0] = scaleX;\n      this._cachedScaleForStroking[1] = scaleY;\n    }\n    return this._cachedScaleForStroking;\n  }\n\n  // Rescale before stroking in order to have a final lineWidth\n  // with both thicknesses greater or equal to 1.\n  rescaleAndStroke(saveRestore) {\n    const { ctx } = this;\n    const { lineWidth } = this.current;\n    const [scaleX, scaleY] = this.getScaleForStroking();\n\n    ctx.lineWidth = lineWidth || 1;\n\n    if (scaleX === 1 && scaleY === 1) {\n      ctx.stroke();\n      return;\n    }\n\n    const dashes = ctx.getLineDash();\n    if (saveRestore) {\n      ctx.save();\n    }\n\n    ctx.scale(scaleX, scaleY);\n\n    // How the dashed line is rendered depends on the current transform...\n    // so we added a rescale to handle too thin lines and consequently\n    // the way the line is dashed will be modified.\n    // If scaleX === scaleY, the dashed lines will be rendered correctly\n    // else we'll have some bugs (but only with too thin lines).\n    // Here we take the max... why not taking the min... or something else.\n    // Anyway, as said it's buggy when scaleX !== scaleY.\n    if (dashes.length > 0) {\n      const scale = Math.max(scaleX, scaleY);\n      ctx.setLineDash(dashes.map(x => x / scale));\n      ctx.lineDashOffset /= scale;\n    }\n\n    ctx.stroke();\n\n    if (saveRestore) {\n      ctx.restore();\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 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  BaseCanvasFactory,\n  BaseCMapReaderFactory,\n  BaseFilterFactory,\n  BaseStandardFontDataFactory,\n  BaseSVGFactory,\n} from \"./base_factory.js\";\nimport {\n  BaseException,\n  FeatureTest,\n  shadow,\n  stringToBytes,\n  Util,\n  warn,\n} from \"../shared/util.js\";\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nclass PixelsPerInch {\n  static CSS = 96.0;\n\n  static PDF = 72.0;\n\n  static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\n\n/**\n * FilterFactory aims to create some SVG filters we can use when drawing an\n * image (or whatever) on a canvas.\n * Filters aren't applied with ctx.putImageData because it just overwrites the\n * underlying pixels.\n * With these filters, it's possible for example to apply some transfer maps on\n * an image without the need to apply them on the pixel arrays: the renderer\n * does the magic for us.\n */\nclass DOMFilterFactory extends BaseFilterFactory {\n  #_cache;\n\n  #_defs;\n\n  #docId;\n\n  #document;\n\n  #hcmFilter;\n\n  #hcmKey;\n\n  #hcmUrl;\n\n  #hcmHighlightFilter;\n\n  #hcmHighlightKey;\n\n  #hcmHighlightUrl;\n\n  #id = 0;\n\n  constructor({ docId, ownerDocument = globalThis.document } = {}) {\n    super();\n    this.#docId = docId;\n    this.#document = ownerDocument;\n  }\n\n  get #cache() {\n    return (this.#_cache ||= new Map());\n  }\n\n  get #defs() {\n    if (!this.#_defs) {\n      const div = this.#document.createElement(\"div\");\n      const { style } = div;\n      style.visibility = \"hidden\";\n      style.contain = \"strict\";\n      style.width = style.height = 0;\n      style.position = \"absolute\";\n      style.top = style.left = 0;\n      style.zIndex = -1;\n\n      const svg = this.#document.createElementNS(SVG_NS, \"svg\");\n      svg.setAttribute(\"width\", 0);\n      svg.setAttribute(\"height\", 0);\n      this.#_defs = this.#document.createElementNS(SVG_NS, \"defs\");\n      div.append(svg);\n      svg.append(this.#_defs);\n      this.#document.body.append(div);\n    }\n    return this.#_defs;\n  }\n\n  addFilter(maps) {\n    if (!maps) {\n      return \"none\";\n    }\n\n    // When a page is zoomed the page is re-drawn but the maps are likely\n    // the same.\n    let value = this.#cache.get(maps);\n    if (value) {\n      return value;\n    }\n\n    let tableR, tableG, tableB, key;\n    if (maps.length === 1) {\n      const mapR = maps[0];\n      const buffer = new Array(256);\n      for (let i = 0; i < 256; i++) {\n        buffer[i] = mapR[i] / 255;\n      }\n      key = tableR = tableG = tableB = buffer.join(\",\");\n    } else {\n      const [mapR, mapG, mapB] = maps;\n      const bufferR = new Array(256);\n      const bufferG = new Array(256);\n      const bufferB = new Array(256);\n      for (let i = 0; i < 256; i++) {\n        bufferR[i] = mapR[i] / 255;\n        bufferG[i] = mapG[i] / 255;\n        bufferB[i] = mapB[i] / 255;\n      }\n      tableR = bufferR.join(\",\");\n      tableG = bufferG.join(\",\");\n      tableB = bufferB.join(\",\");\n      key = `${tableR}${tableG}${tableB}`;\n    }\n\n    value = this.#cache.get(key);\n    if (value) {\n      this.#cache.set(maps, value);\n      return value;\n    }\n\n    // We create a SVG filter: feComponentTransferElement\n    //  https://www.w3.org/TR/SVG11/filters.html#feComponentTransferElement\n\n    const id = `g_${this.#docId}_transfer_map_${this.#id++}`;\n    const url = `url(#${id})`;\n    this.#cache.set(maps, url);\n    this.#cache.set(key, url);\n\n    const filter = this.#createFilter(id);\n    this.#addTransferMapConversion(tableR, tableG, tableB, filter);\n\n    return url;\n  }\n\n  addHCMFilter(fgColor, bgColor) {\n    const key = `${fgColor}-${bgColor}`;\n    if (this.#hcmKey === key) {\n      return this.#hcmUrl;\n    }\n\n    this.#hcmKey = key;\n    this.#hcmUrl = \"none\";\n    this.#hcmFilter?.remove();\n\n    if (!fgColor || !bgColor) {\n      return this.#hcmUrl;\n    }\n\n    const fgRGB = this.#getRGB(fgColor);\n    fgColor = Util.makeHexColor(...fgRGB);\n    const bgRGB = this.#getRGB(bgColor);\n    bgColor = Util.makeHexColor(...bgRGB);\n    this.#defs.style.color = \"\";\n\n    if (\n      (fgColor === \"#000000\" && bgColor === \"#ffffff\") ||\n      fgColor === bgColor\n    ) {\n      return this.#hcmUrl;\n    }\n\n    // https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_Colors_and_Luminance\n    //\n    // Relative luminance:\n    // https://www.w3.org/TR/WCAG20/#relativeluminancedef\n    //\n    // We compute the rounded luminance of the default background color.\n    // Then for every color in the pdf, if its rounded luminance is the\n    // same as the background one then it's replaced by the new\n    // background color else by the foreground one.\n    const map = new Array(256);\n    for (let i = 0; i <= 255; i++) {\n      const x = i / 255;\n      map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n    }\n    const table = map.join(\",\");\n\n    const id = `g_${this.#docId}_hcm_filter`;\n    const filter = (this.#hcmHighlightFilter = this.#createFilter(id));\n    this.#addTransferMapConversion(table, table, table, filter);\n    this.#addGrayConversion(filter);\n\n    const getSteps = (c, n) => {\n      const start = fgRGB[c] / 255;\n      const end = bgRGB[c] / 255;\n      const arr = new Array(n + 1);\n      for (let i = 0; i <= n; i++) {\n        arr[i] = start + (i / n) * (end - start);\n      }\n      return arr.join(\",\");\n    };\n    this.#addTransferMapConversion(\n      getSteps(0, 5),\n      getSteps(1, 5),\n      getSteps(2, 5),\n      filter\n    );\n\n    this.#hcmUrl = `url(#${id})`;\n    return this.#hcmUrl;\n  }\n\n  addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {\n    const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;\n    if (this.#hcmHighlightKey === key) {\n      return this.#hcmHighlightUrl;\n    }\n\n    this.#hcmHighlightKey = key;\n    this.#hcmHighlightUrl = \"none\";\n    this.#hcmHighlightFilter?.remove();\n\n    if (!fgColor || !bgColor) {\n      return this.#hcmHighlightUrl;\n    }\n\n    const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this));\n    let fgGray = Math.round(\n      0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]\n    );\n    let bgGray = Math.round(\n      0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]\n    );\n    let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(\n      this.#getRGB.bind(this)\n    );\n    if (bgGray < fgGray) {\n      [fgGray, bgGray, newFgRGB, newBgRGB] = [\n        bgGray,\n        fgGray,\n        newBgRGB,\n        newFgRGB,\n      ];\n    }\n    this.#defs.style.color = \"\";\n\n    // Now we can create the filters to highlight some canvas parts.\n    // The colors in the pdf will almost be Canvas and CanvasText, hence we\n    // want to filter them to finally get Highlight and HighlightText.\n    // Since we're in HCM the background color and the foreground color should\n    // be really different when converted to grayscale (if they're not then it\n    // means that we've a poor contrast). Once the canvas colors are converted\n    // to grayscale we can easily map them on their new colors.\n    // The grayscale step is important because if we've something like:\n    //   fgColor = #FF....\n    //   bgColor = #FF....\n    //   then we are enable to map the red component on the new red components\n    //   which can be different.\n\n    const getSteps = (fg, bg, n) => {\n      const arr = new Array(256);\n      const step = (bgGray - fgGray) / n;\n      const newStart = fg / 255;\n      const newStep = (bg - fg) / (255 * n);\n      let prev = 0;\n      for (let i = 0; i <= n; i++) {\n        const k = Math.round(fgGray + i * step);\n        const value = newStart + i * newStep;\n        for (let j = prev; j <= k; j++) {\n          arr[j] = value;\n        }\n        prev = k + 1;\n      }\n      for (let i = prev; i < 256; i++) {\n        arr[i] = arr[prev - 1];\n      }\n      return arr.join(\",\");\n    };\n\n    const id = `g_${this.#docId}_hcm_highlight_filter`;\n    const filter = (this.#hcmHighlightFilter = this.#createFilter(id));\n\n    this.#addGrayConversion(filter);\n    this.#addTransferMapConversion(\n      getSteps(newFgRGB[0], newBgRGB[0], 5),\n      getSteps(newFgRGB[1], newBgRGB[1], 5),\n      getSteps(newFgRGB[2], newBgRGB[2], 5),\n      filter\n    );\n\n    this.#hcmHighlightUrl = `url(#${id})`;\n    return this.#hcmHighlightUrl;\n  }\n\n  destroy(keepHCM = false) {\n    if (keepHCM && (this.#hcmUrl || this.#hcmHighlightUrl)) {\n      return;\n    }\n    if (this.#_defs) {\n      this.#_defs.parentNode.parentNode.remove();\n      this.#_defs = null;\n    }\n    if (this.#_cache) {\n      this.#_cache.clear();\n      this.#_cache = null;\n    }\n    this.#id = 0;\n  }\n\n  #addGrayConversion(filter) {\n    const feColorMatrix = this.#document.createElementNS(\n      SVG_NS,\n      \"feColorMatrix\"\n    );\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\n      \"values\",\n      \"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\"\n    );\n    filter.append(feColorMatrix);\n  }\n\n  #createFilter(id) {\n    const filter = this.#document.createElementNS(SVG_NS, \"filter\");\n    filter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    filter.setAttribute(\"id\", id);\n    this.#defs.append(filter);\n\n    return filter;\n  }\n\n  #appendFeFunc(feComponentTransfer, func, table) {\n    const feFunc = this.#document.createElementNS(SVG_NS, func);\n    feFunc.setAttribute(\"type\", \"discrete\");\n    feFunc.setAttribute(\"tableValues\", table);\n    feComponentTransfer.append(feFunc);\n  }\n\n  #addTransferMapConversion(rTable, gTable, bTable, filter) {\n    const feComponentTransfer = this.#document.createElementNS(\n      SVG_NS,\n      \"feComponentTransfer\"\n    );\n    filter.append(feComponentTransfer);\n    this.#appendFeFunc(feComponentTransfer, \"feFuncR\", rTable);\n    this.#appendFeFunc(feComponentTransfer, \"feFuncG\", gTable);\n    this.#appendFeFunc(feComponentTransfer, \"feFuncB\", bTable);\n  }\n\n  #getRGB(color) {\n    this.#defs.style.color = color;\n    return getRGB(getComputedStyle(this.#defs).getPropertyValue(\"color\"));\n  }\n}\n\nclass DOMCanvasFactory extends BaseCanvasFactory {\n  constructor({ ownerDocument = globalThis.document } = {}) {\n    super();\n    this._document = ownerDocument;\n  }\n\n  /**\n   * @ignore\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, type = \"text\") {\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    switch (type) {\n      case \"arraybuffer\":\n        return response.arrayBuffer();\n      case \"blob\":\n        return response.blob();\n      case \"json\":\n        return response.json();\n    }\n    return 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, /* async = */ true);\n    request.responseType = type;\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        switch (type) {\n          case \"arraybuffer\":\n          case \"blob\":\n          case \"json\":\n            data = request.response;\n            break;\n          default:\n            data = request.responseText;\n            break;\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  /**\n   * @ignore\n   */\n  _fetchData(url, compressionType) {\n    return fetchData(\n      url,\n      /* type = */ this.isCompressed ? \"arraybuffer\" : \"text\"\n    ).then(data => {\n      return {\n        cMapData:\n          data instanceof ArrayBuffer\n            ? new Uint8Array(data)\n            : stringToBytes(data),\n        compressionType,\n      };\n    });\n  }\n}\n\nclass DOMStandardFontDataFactory extends BaseStandardFontDataFactory {\n  /**\n   * @ignore\n   */\n  _fetchData(url) {\n    return fetchData(url, /* type = */ \"arraybuffer\").then(data => {\n      return new Uint8Array(data);\n    });\n  }\n}\n\nclass DOMSVGFactory extends BaseSVGFactory {\n  /**\n   * @ignore\n   */\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 = (viewBox[3] - viewBox[1]) * scale;\n      height = (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 = (viewBox[2] - viewBox[0]) * scale;\n      height = (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   * The original, un-scaled, viewport dimensions.\n   * @type {Object}\n   */\n  get rawDims() {\n    const { viewBox } = this;\n    return shadow(this, \"rawDims\", {\n      pageWidth: viewBox[2] - viewBox[0],\n      pageHeight: viewBox[3] - viewBox[1],\n      pageX: viewBox[0],\n      pageY: viewBox[1],\n    });\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 {Array} Array containing `x`- and `y`-coordinates 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 {Array} Array containing `x`- and `y`-coordinates 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, extraDelay = 0) {\n    super(msg, \"RenderingCancelledException\");\n    this.extraDelay = extraDelay;\n  }\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 * @param {boolean} [onlyStripPath]\n * @returns {string}\n */\nfunction getFilenameFromUrl(url, onlyStripPath = false) {\n  if (!onlyStripPath) {\n    [url] = url.split(/[#?]/, 1);\n  }\n  return url.substring(url.lastIndexOf(\"/\") + 1);\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 {\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  started = Object.create(null);\n\n  times = [];\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 { name } of this.times) {\n      longest = Math.max(name.length, longest);\n    }\n    for (const { name, start, end } of this.times) {\n      outBuf.push(`${name.padEnd(longest)} ${end - start}ms\\n`);\n    }\n    return outBuf.join(\"\");\n  }\n}\n\nfunction isValidFetchUrl(url, baseUrl) {\n  if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n    throw new Error(\"Not implemented: isValidFetchUrl\");\n  }\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 {\n    return false; // `new URL()` will throw on incorrect data.\n  }\n}\n\n/**\n * Event handler to suppress context menu.\n */\nfunction noContextMenu(e) {\n  e.preventDefault();\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 || typeof input !== \"string\") {\n      return null;\n    }\n\n    // Lazily initialize the regular expression.\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    // 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\nfunction getRGB(color) {\n  if (color.startsWith(\"#\")) {\n    const colorRGB = parseInt(color.slice(1), 16);\n    return [\n      (colorRGB & 0xff0000) >> 16,\n      (colorRGB & 0x00ff00) >> 8,\n      colorRGB & 0x0000ff,\n    ];\n  }\n\n  if (color.startsWith(\"rgb(\")) {\n    // getComputedStyle(...).color returns a `rgb(R, G, B)` color.\n    return color\n      .slice(/* \"rgb(\".length */ 4, -1) // Strip out \"rgb(\" and \")\".\n      .split(\",\")\n      .map(x => parseInt(x));\n  }\n\n  if (color.startsWith(\"rgba(\")) {\n    return color\n      .slice(/* \"rgba(\".length */ 5, -1) // Strip out \"rgba(\" and \")\".\n      .split(\",\")\n      .map(x => parseInt(x))\n      .slice(0, 3);\n  }\n\n  warn(`Not a valid color format: \"${color}\"`);\n  return [0, 0, 0];\n}\n\nfunction getColorValues(colors) {\n  const span = document.createElement(\"span\");\n  span.style.visibility = \"hidden\";\n  document.body.append(span);\n  for (const name of colors.keys()) {\n    span.style.color = name;\n    const computedColor = window.getComputedStyle(span).color;\n    colors.set(name, getRGB(computedColor));\n  }\n  span.remove();\n}\n\nfunction getCurrentTransform(ctx) {\n  const { a, b, c, d, e, f } = ctx.getTransform();\n  return [a, b, c, d, e, f];\n}\n\nfunction getCurrentTransformInverse(ctx) {\n  const { a, b, c, d, e, f } = ctx.getTransform().invertSelf();\n  return [a, b, c, d, e, f];\n}\n\n/**\n * @param {HTMLDivElement} div\n * @param {PageViewport} viewport\n * @param {boolean} mustFlip\n * @param {boolean} mustRotate\n */\nfunction setLayerDimensions(\n  div,\n  viewport,\n  mustFlip = false,\n  mustRotate = true\n) {\n  if (viewport instanceof PageViewport) {\n    const { pageWidth, pageHeight } = viewport.rawDims;\n    const { style } = div;\n    const useRound = FeatureTest.isCSSRoundSupported;\n\n    const w = `var(--scale-factor) * ${pageWidth}px`,\n      h = `var(--scale-factor) * ${pageHeight}px`;\n    const widthStr = useRound ? `round(${w}, 1px)` : `calc(${w})`,\n      heightStr = useRound ? `round(${h}, 1px)` : `calc(${h})`;\n\n    if (!mustFlip || viewport.rotation % 180 === 0) {\n      style.width = widthStr;\n      style.height = heightStr;\n    } else {\n      style.width = heightStr;\n      style.height = widthStr;\n    }\n  }\n\n  if (mustRotate) {\n    div.setAttribute(\"data-main-rotation\", viewport.rotation);\n  }\n}\n\nexport {\n  deprecated,\n  DOMCanvasFactory,\n  DOMCMapReaderFactory,\n  DOMFilterFactory,\n  DOMStandardFontDataFactory,\n  DOMSVGFactory,\n  fetchData,\n  getColorValues,\n  getCurrentTransform,\n  getCurrentTransformInverse,\n  getFilenameFromUrl,\n  getPdfFilenameFromUrl,\n  getRGB,\n  getXfaPageViewport,\n  isDataScheme,\n  isPdfFile,\n  isValidFetchUrl,\n  noContextMenu,\n  PageViewport,\n  PDFDateString,\n  PixelsPerInch,\n  RenderingCancelledException,\n  setLayerDimensions,\n  StatTimer,\n};\n","/* Copyright 2023 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 { DOMSVGFactory } from \"./display_utils.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * Manage the SVGs drawn on top of the page canvas.\n * It's important to have them directly on top of the canvas because we want to\n * be able to use mix-blend-mode for some of them.\n */\nclass DrawLayer {\n  #parent = null;\n\n  #id = 0;\n\n  #mapping = new Map();\n\n  constructor({ pageIndex }) {\n    this.pageIndex = pageIndex;\n  }\n\n  setParent(parent) {\n    if (!this.#parent) {\n      this.#parent = parent;\n      return;\n    }\n\n    if (this.#parent !== parent) {\n      if (this.#mapping.size > 0) {\n        for (const root of this.#mapping.values()) {\n          root.remove();\n          parent.append(root);\n        }\n      }\n      this.#parent = parent;\n    }\n  }\n\n  static get _svgFactory() {\n    return shadow(this, \"_svgFactory\", new DOMSVGFactory());\n  }\n\n  static #setBox(element, { x, y, width, height }) {\n    const { style } = element;\n    style.top = `${100 * y}%`;\n    style.left = `${100 * x}%`;\n    style.width = `${100 * width}%`;\n    style.height = `${100 * height}%`;\n  }\n\n  #createSVG(box) {\n    const svg = DrawLayer._svgFactory.create(1, 1, /* skipDimensions = */ true);\n    this.#parent.append(svg);\n    DrawLayer.#setBox(svg, box);\n\n    return svg;\n  }\n\n  highlight({ outlines, box }, color, opacity) {\n    const id = this.#id++;\n    const root = this.#createSVG(box);\n    root.classList.add(\"highlight\");\n    const defs = DrawLayer._svgFactory.createElement(\"defs\");\n    root.append(defs);\n    const path = DrawLayer._svgFactory.createElement(\"path\");\n    defs.append(path);\n    const pathId = `path_p${this.pageIndex}_${id}`;\n    path.setAttribute(\"id\", pathId);\n    path.setAttribute(\n      \"d\",\n      DrawLayer.#extractPathFromHighlightOutlines(outlines)\n    );\n\n    // Create the clipping path for the editor div.\n    const clipPath = DrawLayer._svgFactory.createElement(\"clipPath\");\n    defs.append(clipPath);\n    const clipPathId = `clip_${pathId}`;\n    clipPath.setAttribute(\"id\", clipPathId);\n    clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n    const clipPathUse = DrawLayer._svgFactory.createElement(\"use\");\n    clipPath.append(clipPathUse);\n    clipPathUse.setAttribute(\"href\", `#${pathId}`);\n    clipPathUse.classList.add(\"clip\");\n\n    const use = DrawLayer._svgFactory.createElement(\"use\");\n    root.append(use);\n    root.setAttribute(\"fill\", color);\n    root.setAttribute(\"fill-opacity\", opacity);\n    use.setAttribute(\"href\", `#${pathId}`);\n\n    this.#mapping.set(id, root);\n\n    return { id, clipPathId: `url(#${clipPathId})` };\n  }\n\n  highlightOutline({ outlines, box }) {\n    // We cannot draw the outline directly in the SVG for highlights because\n    // it composes with its parent with mix-blend-mode: multiply.\n    // But the outline has a different mix-blend-mode, so we need to draw it in\n    // its own SVG.\n    const id = this.#id++;\n    const root = this.#createSVG(box);\n    root.classList.add(\"highlightOutline\");\n    const defs = DrawLayer._svgFactory.createElement(\"defs\");\n    root.append(defs);\n    const path = DrawLayer._svgFactory.createElement(\"path\");\n    defs.append(path);\n    const pathId = `path_p${this.pageIndex}_${id}`;\n    path.setAttribute(\"id\", pathId);\n    path.setAttribute(\n      \"d\",\n      DrawLayer.#extractPathFromHighlightOutlines(outlines)\n    );\n    path.setAttribute(\"vector-effect\", \"non-scaling-stroke\");\n\n    const use1 = DrawLayer._svgFactory.createElement(\"use\");\n    root.append(use1);\n    use1.setAttribute(\"href\", `#${pathId}`);\n    const use2 = use1.cloneNode();\n    root.append(use2);\n    use1.classList.add(\"mainOutline\");\n    use2.classList.add(\"secondaryOutline\");\n\n    this.#mapping.set(id, root);\n\n    return id;\n  }\n\n  static #extractPathFromHighlightOutlines(polygons) {\n    const buffer = [];\n    for (const polygon of polygons) {\n      let [prevX, prevY] = polygon;\n      buffer.push(`M${prevX} ${prevY}`);\n      for (let i = 2; i < polygon.length; i += 2) {\n        const x = polygon[i];\n        const y = polygon[i + 1];\n        if (x === prevX) {\n          buffer.push(`V${y}`);\n          prevY = y;\n        } else if (y === prevY) {\n          buffer.push(`H${x}`);\n          prevX = x;\n        }\n      }\n      buffer.push(\"Z\");\n    }\n    return buffer.join(\" \");\n  }\n\n  updateBox(id, box) {\n    DrawLayer.#setBox(this.#mapping.get(id), box);\n  }\n\n  rotate(id, angle) {\n    this.#mapping.get(id).setAttribute(\"data-main-rotation\", angle);\n  }\n\n  changeColor(id, color) {\n    this.#mapping.get(id).setAttribute(\"fill\", color);\n  }\n\n  changeOpacity(id, opacity) {\n    this.#mapping.get(id).setAttribute(\"fill-opacity\", opacity);\n  }\n\n  addClass(id, className) {\n    this.#mapping.get(id).classList.add(className);\n  }\n\n  removeClass(id, className) {\n    this.#mapping.get(id).classList.remove(className);\n  }\n\n  remove(id) {\n    this.#mapping.get(id).remove();\n    this.#mapping.delete(id);\n  }\n\n  destroy() {\n    this.#parent = null;\n    for (const root of this.#mapping.values()) {\n      root.remove();\n    }\n    this.#mapping.clear();\n  }\n}\n\nexport { DrawLayer };\n","/* Copyright 2022 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// eslint-disable-next-line max-len\n/** @typedef {import(\"./annotation_editor_layer.js\").AnnotationEditorLayer} AnnotationEditorLayer */\n\nimport {\n  AnnotationEditorParamsType,\n  AnnotationEditorType,\n  assert,\n  LINE_FACTOR,\n  shadow,\n  Util,\n} from \"../../shared/util.js\";\nimport {\n  AnnotationEditorUIManager,\n  bindEvents,\n  KeyboardManager,\n} from \"./tools.js\";\nimport { AnnotationEditor } from \"./editor.js\";\nimport { FreeTextAnnotationElement } from \"../annotation_layer.js\";\n\n/**\n * Basic text editor in order to create a FreeTex annotation.\n */\nclass FreeTextEditor extends AnnotationEditor {\n  #boundEditorDivBlur = this.editorDivBlur.bind(this);\n\n  #boundEditorDivFocus = this.editorDivFocus.bind(this);\n\n  #boundEditorDivInput = this.editorDivInput.bind(this);\n\n  #boundEditorDivKeydown = this.editorDivKeydown.bind(this);\n\n  #color;\n\n  #content = \"\";\n\n  #editorDivId = `${this.id}-editor`;\n\n  #fontSize;\n\n  #initialData = null;\n\n  static _freeTextDefaultContent = \"\";\n\n  static _internalPadding = 0;\n\n  static _defaultColor = null;\n\n  static _defaultFontSize = 10;\n\n  static get _keyboardManager() {\n    const proto = FreeTextEditor.prototype;\n\n    const arrowChecker = self => self.isEmpty();\n\n    const small = AnnotationEditorUIManager.TRANSLATE_SMALL;\n    const big = AnnotationEditorUIManager.TRANSLATE_BIG;\n\n    return shadow(\n      this,\n      \"_keyboardManager\",\n      new KeyboardManager([\n        [\n          // Commit the text in case the user use ctrl+s to save the document.\n          // The event must bubble in order to be caught by the viewer.\n          // See bug 1831574.\n          [\"ctrl+s\", \"mac+meta+s\", \"ctrl+p\", \"mac+meta+p\"],\n          proto.commitOrRemove,\n          { bubbles: true },\n        ],\n        [\n          [\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"],\n          proto.commitOrRemove,\n        ],\n        [\n          [\"ArrowLeft\", \"mac+ArrowLeft\"],\n          proto._translateEmpty,\n          { args: [-small, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"],\n          proto._translateEmpty,\n          { args: [-big, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ArrowRight\", \"mac+ArrowRight\"],\n          proto._translateEmpty,\n          { args: [small, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"],\n          proto._translateEmpty,\n          { args: [big, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ArrowUp\", \"mac+ArrowUp\"],\n          proto._translateEmpty,\n          { args: [0, -small], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"],\n          proto._translateEmpty,\n          { args: [0, -big], checker: arrowChecker },\n        ],\n        [\n          [\"ArrowDown\", \"mac+ArrowDown\"],\n          proto._translateEmpty,\n          { args: [0, small], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"],\n          proto._translateEmpty,\n          { args: [0, big], checker: arrowChecker },\n        ],\n      ])\n    );\n  }\n\n  static _type = \"freetext\";\n\n  static _editorType = AnnotationEditorType.FREETEXT;\n\n  constructor(params) {\n    super({ ...params, name: \"freeTextEditor\" });\n    this.#color =\n      params.color ||\n      FreeTextEditor._defaultColor ||\n      AnnotationEditor._defaultLineColor;\n    this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n  }\n\n  /** @inheritdoc */\n  static initialize(l10n) {\n    AnnotationEditor.initialize(l10n, {\n      strings: [\"pdfjs-free-text-default-content\"],\n    });\n    const style = getComputedStyle(document.documentElement);\n\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      const lineHeight = parseFloat(\n        style.getPropertyValue(\"--freetext-line-height\")\n      );\n      assert(\n        lineHeight === LINE_FACTOR,\n        \"Update the CSS variable to agree with the constant.\"\n      );\n    }\n\n    this._internalPadding = parseFloat(\n      style.getPropertyValue(\"--freetext-padding\")\n    );\n  }\n\n  /** @inheritdoc */\n  static updateDefaultParams(type, value) {\n    switch (type) {\n      case AnnotationEditorParamsType.FREETEXT_SIZE:\n        FreeTextEditor._defaultFontSize = value;\n        break;\n      case AnnotationEditorParamsType.FREETEXT_COLOR:\n        FreeTextEditor._defaultColor = value;\n        break;\n    }\n  }\n\n  /** @inheritdoc */\n  updateParams(type, value) {\n    switch (type) {\n      case AnnotationEditorParamsType.FREETEXT_SIZE:\n        this.#updateFontSize(value);\n        break;\n      case AnnotationEditorParamsType.FREETEXT_COLOR:\n        this.#updateColor(value);\n        break;\n    }\n  }\n\n  /** @inheritdoc */\n  static get defaultPropertiesToUpdate() {\n    return [\n      [\n        AnnotationEditorParamsType.FREETEXT_SIZE,\n        FreeTextEditor._defaultFontSize,\n      ],\n      [\n        AnnotationEditorParamsType.FREETEXT_COLOR,\n        FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor,\n      ],\n    ];\n  }\n\n  /** @inheritdoc */\n  get propertiesToUpdate() {\n    return [\n      [AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize],\n      [AnnotationEditorParamsType.FREETEXT_COLOR, this.#color],\n    ];\n  }\n\n  /**\n   * Update the font size and make this action as undoable.\n   * @param {number} fontSize\n   */\n  #updateFontSize(fontSize) {\n    const setFontsize = size => {\n      this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n      this.translate(0, -(size - this.#fontSize) * this.parentScale);\n      this.#fontSize = size;\n      this.#setEditorDimensions();\n    };\n    const savedFontsize = this.#fontSize;\n    this.addCommands({\n      cmd: () => {\n        setFontsize(fontSize);\n      },\n      undo: () => {\n        setFontsize(savedFontsize);\n      },\n      mustExec: true,\n      type: AnnotationEditorParamsType.FREETEXT_SIZE,\n      overwriteIfSameType: true,\n      keepUndo: true,\n    });\n  }\n\n  /**\n   * Update the color and make this action undoable.\n   * @param {string} color\n   */\n  #updateColor(color) {\n    const savedColor = this.#color;\n    this.addCommands({\n      cmd: () => {\n        this.#color = this.editorDiv.style.color = color;\n      },\n      undo: () => {\n        this.#color = this.editorDiv.style.color = savedColor;\n      },\n      mustExec: true,\n      type: AnnotationEditorParamsType.FREETEXT_COLOR,\n      overwriteIfSameType: true,\n      keepUndo: true,\n    });\n  }\n\n  /**\n   * Helper to translate the editor with the keyboard when it's empty.\n   * @param {number} x in page units.\n   * @param {number} y in page units.\n   */\n  _translateEmpty(x, y) {\n    this._uiManager.translateSelectedEditors(x, y, /* noCommit = */ true);\n  }\n\n  /** @inheritdoc */\n  getInitialTranslation() {\n    // The start of the base line is where the user clicked.\n    const scale = this.parentScale;\n    return [\n      -FreeTextEditor._internalPadding * scale,\n      -(FreeTextEditor._internalPadding + this.#fontSize) * scale,\n    ];\n  }\n\n  /** @inheritdoc */\n  rebuild() {\n    if (!this.parent) {\n      return;\n    }\n    super.rebuild();\n    if (this.div === null) {\n      return;\n    }\n\n    if (!this.isAttachedToDOM) {\n      // At some point this editor was removed and we're rebuilting it,\n      // hence we must add it to its parent.\n      this.parent.add(this);\n    }\n  }\n\n  /** @inheritdoc */\n  enableEditMode() {\n    if (this.isInEditMode()) {\n      return;\n    }\n\n    this.parent.setEditingState(false);\n    this.parent.updateToolbar(AnnotationEditorType.FREETEXT);\n    super.enableEditMode();\n    this.overlayDiv.classList.remove(\"enabled\");\n    this.editorDiv.contentEditable = true;\n    this._isDraggable = false;\n    this.div.removeAttribute(\"aria-activedescendant\");\n    this.editorDiv.addEventListener(\"keydown\", this.#boundEditorDivKeydown);\n    this.editorDiv.addEventListener(\"focus\", this.#boundEditorDivFocus);\n    this.editorDiv.addEventListener(\"blur\", this.#boundEditorDivBlur);\n    this.editorDiv.addEventListener(\"input\", this.#boundEditorDivInput);\n  }\n\n  /** @inheritdoc */\n  disableEditMode() {\n    if (!this.isInEditMode()) {\n      return;\n    }\n\n    this.parent.setEditingState(true);\n    super.disableEditMode();\n    this.overlayDiv.classList.add(\"enabled\");\n    this.editorDiv.contentEditable = false;\n    this.div.setAttribute(\"aria-activedescendant\", this.#editorDivId);\n    this._isDraggable = true;\n    this.editorDiv.removeEventListener(\"keydown\", this.#boundEditorDivKeydown);\n    this.editorDiv.removeEventListener(\"focus\", this.#boundEditorDivFocus);\n    this.editorDiv.removeEventListener(\"blur\", this.#boundEditorDivBlur);\n    this.editorDiv.removeEventListener(\"input\", this.#boundEditorDivInput);\n\n    // On Chrome, the focus is given to <body> when contentEditable is set to\n    // false, hence we focus the div.\n    this.div.focus({\n      preventScroll: true /* See issue #15744 */,\n    });\n\n    // In case the blur callback hasn't been called.\n    this.isEditing = false;\n    this.parent.div.classList.add(\"freetextEditing\");\n  }\n\n  /** @inheritdoc */\n  focusin(event) {\n    if (!this._focusEventsAllowed) {\n      return;\n    }\n    super.focusin(event);\n    if (event.target !== this.editorDiv) {\n      this.editorDiv.focus();\n    }\n  }\n\n  /** @inheritdoc */\n  onceAdded() {\n    if (this.width) {\n      this.#cheatInitialRect();\n      // The editor was created in using ctrl+c.\n      return;\n    }\n    this.enableEditMode();\n    this.editorDiv.focus();\n    if (this._initialOptions?.isCentered) {\n      this.center();\n    }\n    this._initialOptions = null;\n  }\n\n  /** @inheritdoc */\n  isEmpty() {\n    return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n  }\n\n  /** @inheritdoc */\n  remove() {\n    this.isEditing = false;\n    if (this.parent) {\n      this.parent.setEditingState(true);\n      this.parent.div.classList.add(\"freetextEditing\");\n    }\n    super.remove();\n  }\n\n  /**\n   * Extract the text from this editor.\n   * @returns {string}\n   */\n  #extractText() {\n    const divs = this.editorDiv.getElementsByTagName(\"div\");\n    if (divs.length === 0) {\n      return this.editorDiv.innerText;\n    }\n    const buffer = [];\n    for (const div of divs) {\n      buffer.push(div.innerText.replace(/\\r\\n?|\\n/, \"\"));\n    }\n    return buffer.join(\"\\n\");\n  }\n\n  #setEditorDimensions() {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n\n    let rect;\n    if (this.isAttachedToDOM) {\n      rect = this.div.getBoundingClientRect();\n    } else {\n      // This editor isn't on screen but we need to get its dimensions, so\n      // we just insert it in the DOM, get its bounding box and then remove it.\n      const { currentLayer, div } = this;\n      const savedDisplay = div.style.display;\n      div.style.display = \"hidden\";\n      currentLayer.div.append(this.div);\n      rect = div.getBoundingClientRect();\n      div.remove();\n      div.style.display = savedDisplay;\n    }\n\n    // The dimensions are relative to the rotation of the page, hence we need to\n    // take that into account (see issue #16636).\n    if (this.rotation % 180 === this.parentRotation % 180) {\n      this.width = rect.width / parentWidth;\n      this.height = rect.height / parentHeight;\n    } else {\n      this.width = rect.height / parentWidth;\n      this.height = rect.width / parentHeight;\n    }\n    this.fixAndSetPosition();\n  }\n\n  /**\n   * Commit the content we have in this editor.\n   * @returns {undefined}\n   */\n  commit() {\n    if (!this.isInEditMode()) {\n      return;\n    }\n\n    super.commit();\n    this.disableEditMode();\n    const savedText = this.#content;\n    const newText = (this.#content = this.#extractText().trimEnd());\n    if (savedText === newText) {\n      return;\n    }\n\n    const setText = text => {\n      this.#content = text;\n      if (!text) {\n        this.remove();\n        return;\n      }\n      this.#setContent();\n      this._uiManager.rebuild(this);\n      this.#setEditorDimensions();\n    };\n    this.addCommands({\n      cmd: () => {\n        setText(newText);\n      },\n      undo: () => {\n        setText(savedText);\n      },\n      mustExec: false,\n    });\n    this.#setEditorDimensions();\n  }\n\n  /** @inheritdoc */\n  shouldGetKeyboardEvents() {\n    return this.isInEditMode();\n  }\n\n  /** @inheritdoc */\n  enterInEditMode() {\n    this.enableEditMode();\n    this.editorDiv.focus();\n  }\n\n  /**\n   * ondblclick callback.\n   * @param {MouseEvent} event\n   */\n  dblclick(event) {\n    this.enterInEditMode();\n  }\n\n  /**\n   * onkeydown callback.\n   * @param {KeyboardEvent} event\n   */\n  keydown(event) {\n    if (event.target === this.div && event.key === \"Enter\") {\n      this.enterInEditMode();\n      // Avoid to add an unwanted new line.\n      event.preventDefault();\n    }\n  }\n\n  editorDivKeydown(event) {\n    FreeTextEditor._keyboardManager.exec(this, event);\n  }\n\n  editorDivFocus(event) {\n    this.isEditing = true;\n  }\n\n  editorDivBlur(event) {\n    this.isEditing = false;\n  }\n\n  editorDivInput(event) {\n    this.parent.div.classList.toggle(\"freetextEditing\", this.isEmpty());\n  }\n\n  /** @inheritdoc */\n  disableEditing() {\n    this.editorDiv.setAttribute(\"role\", \"comment\");\n    this.editorDiv.removeAttribute(\"aria-multiline\");\n  }\n\n  /** @inheritdoc */\n  enableEditing() {\n    this.editorDiv.setAttribute(\"role\", \"textbox\");\n    this.editorDiv.setAttribute(\"aria-multiline\", true);\n  }\n\n  /** @inheritdoc */\n  render() {\n    if (this.div) {\n      return this.div;\n    }\n\n    let baseX, baseY;\n    if (this.width) {\n      baseX = this.x;\n      baseY = this.y;\n    }\n\n    super.render();\n    this.editorDiv = document.createElement(\"div\");\n    this.editorDiv.className = \"internal\";\n\n    this.editorDiv.setAttribute(\"id\", this.#editorDivId);\n    this.editorDiv.setAttribute(\"data-l10n-id\", \"pdfjs-free-text\");\n    this.enableEditing();\n\n    AnnotationEditor._l10nPromise\n      .get(\"pdfjs-free-text-default-content\")\n      .then(msg => this.editorDiv?.setAttribute(\"default-content\", msg));\n    this.editorDiv.contentEditable = true;\n\n    const { style } = this.editorDiv;\n    style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n    style.color = this.#color;\n\n    this.div.append(this.editorDiv);\n\n    this.overlayDiv = document.createElement(\"div\");\n    this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n    this.div.append(this.overlayDiv);\n\n    // TODO: implement paste callback.\n    // The goal is to sanitize and have something suitable for this\n    // editor.\n    bindEvents(this, this.div, [\"dblclick\", \"keydown\"]);\n\n    if (this.width) {\n      // This editor was created in using copy (ctrl+c).\n      const [parentWidth, parentHeight] = this.parentDimensions;\n      if (this.annotationElementId) {\n        // This stuff is hard to test: if something is changed here, please\n        // test with the following PDF file:\n        //  - freetexts.pdf\n        //  - rotated_freetexts.pdf\n        // Only small variations between the original annotation and its editor\n        // are allowed.\n\n        // position is the position of the first glyph in the annotation\n        // and it's relative to its container.\n        const { position } = this.#initialData;\n        let [tx, ty] = this.getInitialTranslation();\n        [tx, ty] = this.pageTranslationToScreen(tx, ty);\n        const [pageWidth, pageHeight] = this.pageDimensions;\n        const [pageX, pageY] = this.pageTranslation;\n        let posX, posY;\n        switch (this.rotation) {\n          case 0:\n            posX = baseX + (position[0] - pageX) / pageWidth;\n            posY = baseY + this.height - (position[1] - pageY) / pageHeight;\n            break;\n          case 90:\n            posX = baseX + (position[0] - pageX) / pageWidth;\n            posY = baseY - (position[1] - pageY) / pageHeight;\n            [tx, ty] = [ty, -tx];\n            break;\n          case 180:\n            posX = baseX - this.width + (position[0] - pageX) / pageWidth;\n            posY = baseY - (position[1] - pageY) / pageHeight;\n            [tx, ty] = [-tx, -ty];\n            break;\n          case 270:\n            posX =\n              baseX +\n              (position[0] - pageX - this.height * pageHeight) / pageWidth;\n            posY =\n              baseY +\n              (position[1] - pageY - this.width * pageWidth) / pageHeight;\n            [tx, ty] = [-ty, tx];\n            break;\n        }\n        this.setAt(posX * parentWidth, posY * parentHeight, tx, ty);\n      } else {\n        this.setAt(\n          baseX * parentWidth,\n          baseY * parentHeight,\n          this.width * parentWidth,\n          this.height * parentHeight\n        );\n      }\n\n      this.#setContent();\n      this._isDraggable = true;\n      this.editorDiv.contentEditable = false;\n    } else {\n      this._isDraggable = false;\n      this.editorDiv.contentEditable = true;\n    }\n\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n      this.div.setAttribute(\"annotation-id\", this.annotationElementId);\n    }\n\n    return this.div;\n  }\n\n  #setContent() {\n    this.editorDiv.replaceChildren();\n    if (!this.#content) {\n      return;\n    }\n    for (const line of this.#content.split(\"\\n\")) {\n      const div = document.createElement(\"div\");\n      div.append(\n        line ? document.createTextNode(line) : document.createElement(\"br\")\n      );\n      this.editorDiv.append(div);\n    }\n  }\n\n  /** @inheritdoc */\n  get contentDiv() {\n    return this.editorDiv;\n  }\n\n  /** @inheritdoc */\n  static deserialize(data, parent, uiManager) {\n    let initialData = null;\n    if (data instanceof FreeTextAnnotationElement) {\n      const {\n        data: {\n          defaultAppearanceData: { fontSize, fontColor },\n          rect,\n          rotation,\n          id,\n        },\n        textContent,\n        textPosition,\n        parent: {\n          page: { pageNumber },\n        },\n      } = data;\n      // textContent is supposed to be an array of strings containing each line\n      // of text. However, it can be null or empty.\n      if (!textContent || textContent.length === 0) {\n        // Empty annotation.\n        return null;\n      }\n      initialData = data = {\n        annotationType: AnnotationEditorType.FREETEXT,\n        color: Array.from(fontColor),\n        fontSize,\n        value: textContent.join(\"\\n\"),\n        position: textPosition,\n        pageIndex: pageNumber - 1,\n        rect,\n        rotation,\n        id,\n        deleted: false,\n      };\n    }\n    const editor = super.deserialize(data, parent, uiManager);\n\n    editor.#fontSize = data.fontSize;\n    editor.#color = Util.makeHexColor(...data.color);\n    editor.#content = data.value;\n    editor.annotationElementId = data.id || null;\n    editor.#initialData = initialData;\n\n    return editor;\n  }\n\n  /** @inheritdoc */\n  serialize(isForCopying = false) {\n    if (this.isEmpty()) {\n      return null;\n    }\n\n    if (this.deleted) {\n      return {\n        pageIndex: this.pageIndex,\n        id: this.annotationElementId,\n        deleted: true,\n      };\n    }\n\n    const padding = FreeTextEditor._internalPadding * this.parentScale;\n    const rect = this.getRect(padding, padding);\n    const color = AnnotationEditor._colorManager.convert(\n      this.isAttachedToDOM\n        ? getComputedStyle(this.editorDiv).color\n        : this.#color\n    );\n\n    const serialized = {\n      annotationType: AnnotationEditorType.FREETEXT,\n      color,\n      fontSize: this.#fontSize,\n      value: this.#content,\n      pageIndex: this.pageIndex,\n      rect,\n      rotation: this.rotation,\n      structTreeParentId: this._structTreeParentId,\n    };\n\n    if (isForCopying) {\n      // Don't add the id when copying because the pasted editor mustn't be\n      // linked to an existing annotation.\n      return serialized;\n    }\n\n    if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n      return null;\n    }\n\n    serialized.id = this.annotationElementId;\n\n    return serialized;\n  }\n\n  #hasElementChanged(serialized) {\n    const { value, fontSize, color, rect, pageIndex } = this.#initialData;\n\n    return (\n      serialized.value !== value ||\n      serialized.fontSize !== fontSize ||\n      serialized.rect.some((x, i) => Math.abs(x - rect[i]) >= 1) ||\n      serialized.color.some((c, i) => c !== color[i]) ||\n      serialized.pageIndex !== pageIndex\n    );\n  }\n\n  #cheatInitialRect(delayed = false) {\n    // The annotation has a rect but the editor has an other one.\n    // When we want to know if the annotation has changed (e.g. has been moved)\n    // we must compare the editor initial rect with the current one.\n    // So this method is a hack to have a way to compare the real rects.\n    if (!this.annotationElementId) {\n      return;\n    }\n\n    this.#setEditorDimensions();\n    if (!delayed && (this.width === 0 || this.height === 0)) {\n      setTimeout(() => this.#cheatInitialRect(/* delayed = */ true), 0);\n      return;\n    }\n\n    const padding = FreeTextEditor._internalPadding * this.parentScale;\n    this.#initialData.rect = this.getRect(padding, padding);\n  }\n}\n\nexport { FreeTextEditor };\n","/* Copyright 2022 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  AnnotationEditorParamsType,\n  AnnotationEditorType,\n  Util,\n} from \"../../shared/util.js\";\nimport { AnnotationEditor } from \"./editor.js\";\nimport { InkAnnotationElement } from \"../annotation_layer.js\";\nimport { noContextMenu } from \"../display_utils.js\";\nimport { opacityToHex } from \"./tools.js\";\n\n/**\n * Basic draw editor in order to generate an Ink annotation.\n */\nclass InkEditor extends AnnotationEditor {\n  #baseHeight = 0;\n\n  #baseWidth = 0;\n\n  #boundCanvasPointermove = this.canvasPointermove.bind(this);\n\n  #boundCanvasPointerleave = this.canvasPointerleave.bind(this);\n\n  #boundCanvasPointerup = this.canvasPointerup.bind(this);\n\n  #boundCanvasPointerdown = this.canvasPointerdown.bind(this);\n\n  #canvasContextMenuTimeoutId = null;\n\n  #currentPath2D = new Path2D();\n\n  #disableEditing = false;\n\n  #hasSomethingToDraw = false;\n\n  #isCanvasInitialized = false;\n\n  #observer = null;\n\n  #realWidth = 0;\n\n  #realHeight = 0;\n\n  #requestFrameCallback = null;\n\n  static _defaultColor = null;\n\n  static _defaultOpacity = 1;\n\n  static _defaultThickness = 1;\n\n  static _type = \"ink\";\n\n  static _editorType = AnnotationEditorType.INK;\n\n  constructor(params) {\n    super({ ...params, name: \"inkEditor\" });\n    this.color = params.color || null;\n    this.thickness = params.thickness || null;\n    this.opacity = params.opacity || null;\n    this.paths = [];\n    this.bezierPath2D = [];\n    this.allRawPaths = [];\n    this.currentPath = [];\n    this.scaleFactor = 1;\n    this.translationX = this.translationY = 0;\n    this.x = 0;\n    this.y = 0;\n    this._willKeepAspectRatio = true;\n  }\n\n  /** @inheritdoc */\n  static initialize(l10n) {\n    AnnotationEditor.initialize(l10n);\n  }\n\n  /** @inheritdoc */\n  static updateDefaultParams(type, value) {\n    switch (type) {\n      case AnnotationEditorParamsType.INK_THICKNESS:\n        InkEditor._defaultThickness = value;\n        break;\n      case AnnotationEditorParamsType.INK_COLOR:\n        InkEditor._defaultColor = value;\n        break;\n      case AnnotationEditorParamsType.INK_OPACITY:\n        InkEditor._defaultOpacity = value / 100;\n        break;\n    }\n  }\n\n  /** @inheritdoc */\n  updateParams(type, value) {\n    switch (type) {\n      case AnnotationEditorParamsType.INK_THICKNESS:\n        this.#updateThickness(value);\n        break;\n      case AnnotationEditorParamsType.INK_COLOR:\n        this.#updateColor(value);\n        break;\n      case AnnotationEditorParamsType.INK_OPACITY:\n        this.#updateOpacity(value);\n        break;\n    }\n  }\n\n  /** @inheritdoc */\n  static get defaultPropertiesToUpdate() {\n    return [\n      [AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness],\n      [\n        AnnotationEditorParamsType.INK_COLOR,\n        InkEditor._defaultColor || AnnotationEditor._defaultLineColor,\n      ],\n      [\n        AnnotationEditorParamsType.INK_OPACITY,\n        Math.round(InkEditor._defaultOpacity * 100),\n      ],\n    ];\n  }\n\n  /** @inheritdoc */\n  get propertiesToUpdate() {\n    return [\n      [\n        AnnotationEditorParamsType.INK_THICKNESS,\n        this.thickness || InkEditor._defaultThickness,\n      ],\n      [\n        AnnotationEditorParamsType.INK_COLOR,\n        this.color ||\n          InkEditor._defaultColor ||\n          AnnotationEditor._defaultLineColor,\n      ],\n      [\n        AnnotationEditorParamsType.INK_OPACITY,\n        Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity)),\n      ],\n    ];\n  }\n\n  /**\n   * Update the thickness and make this action undoable.\n   * @param {number} thickness\n   */\n  #updateThickness(thickness) {\n    const savedThickness = this.thickness;\n    this.addCommands({\n      cmd: () => {\n        this.thickness = thickness;\n        this.#fitToContent();\n      },\n      undo: () => {\n        this.thickness = savedThickness;\n        this.#fitToContent();\n      },\n      mustExec: true,\n      type: AnnotationEditorParamsType.INK_THICKNESS,\n      overwriteIfSameType: true,\n      keepUndo: true,\n    });\n  }\n\n  /**\n   * Update the color and make this action undoable.\n   * @param {string} color\n   */\n  #updateColor(color) {\n    const savedColor = this.color;\n    this.addCommands({\n      cmd: () => {\n        this.color = color;\n        this.#redraw();\n      },\n      undo: () => {\n        this.color = savedColor;\n        this.#redraw();\n      },\n      mustExec: true,\n      type: AnnotationEditorParamsType.INK_COLOR,\n      overwriteIfSameType: true,\n      keepUndo: true,\n    });\n  }\n\n  /**\n   * Update the opacity and make this action undoable.\n   * @param {number} opacity\n   */\n  #updateOpacity(opacity) {\n    opacity /= 100;\n    const savedOpacity = this.opacity;\n    this.addCommands({\n      cmd: () => {\n        this.opacity = opacity;\n        this.#redraw();\n      },\n      undo: () => {\n        this.opacity = savedOpacity;\n        this.#redraw();\n      },\n      mustExec: true,\n      type: AnnotationEditorParamsType.INK_OPACITY,\n      overwriteIfSameType: true,\n      keepUndo: true,\n    });\n  }\n\n  /** @inheritdoc */\n  rebuild() {\n    if (!this.parent) {\n      return;\n    }\n    super.rebuild();\n    if (this.div === null) {\n      return;\n    }\n\n    if (!this.canvas) {\n      this.#createCanvas();\n      this.#createObserver();\n    }\n\n    if (!this.isAttachedToDOM) {\n      // At some point this editor was removed and we're rebuilding it,\n      // hence we must add it to its parent.\n      this.parent.add(this);\n      this.#setCanvasDims();\n    }\n    this.#fitToContent();\n  }\n\n  /** @inheritdoc */\n  remove() {\n    if (this.canvas === null) {\n      return;\n    }\n\n    if (!this.isEmpty()) {\n      this.commit();\n    }\n\n    // Destroy the canvas.\n    this.canvas.width = this.canvas.height = 0;\n    this.canvas.remove();\n    this.canvas = null;\n\n    if (this.#canvasContextMenuTimeoutId) {\n      clearTimeout(this.#canvasContextMenuTimeoutId);\n      this.#canvasContextMenuTimeoutId = null;\n    }\n\n    this.#observer.disconnect();\n    this.#observer = null;\n\n    super.remove();\n  }\n\n  setParent(parent) {\n    if (!this.parent && parent) {\n      // We've a parent hence the rescale will be handled thanks to the\n      // ResizeObserver.\n      this._uiManager.removeShouldRescale(this);\n    } else if (this.parent && parent === null) {\n      // The editor is removed from the DOM, hence we handle the rescale thanks\n      // to the onScaleChanging callback.\n      // This way, it'll be saved/printed correctly.\n      this._uiManager.addShouldRescale(this);\n    }\n    super.setParent(parent);\n  }\n\n  onScaleChanging() {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    const width = this.width * parentWidth;\n    const height = this.height * parentHeight;\n    this.setDimensions(width, height);\n  }\n\n  /** @inheritdoc */\n  enableEditMode() {\n    if (this.#disableEditing || this.canvas === null) {\n      return;\n    }\n\n    super.enableEditMode();\n    this._isDraggable = false;\n    this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n  }\n\n  /** @inheritdoc */\n  disableEditMode() {\n    if (!this.isInEditMode() || this.canvas === null) {\n      return;\n    }\n\n    super.disableEditMode();\n    this._isDraggable = !this.isEmpty();\n    this.div.classList.remove(\"editing\");\n\n    this.canvas.removeEventListener(\n      \"pointerdown\",\n      this.#boundCanvasPointerdown\n    );\n  }\n\n  /** @inheritdoc */\n  onceAdded() {\n    this._isDraggable = !this.isEmpty();\n  }\n\n  /** @inheritdoc */\n  isEmpty() {\n    return (\n      this.paths.length === 0 ||\n      (this.paths.length === 1 && this.paths[0].length === 0)\n    );\n  }\n\n  #getInitialBBox() {\n    const {\n      parentRotation,\n      parentDimensions: [width, height],\n    } = this;\n    switch (parentRotation) {\n      case 90:\n        return [0, height, height, width];\n      case 180:\n        return [width, height, width, height];\n      case 270:\n        return [width, 0, height, width];\n      default:\n        return [0, 0, width, height];\n    }\n  }\n\n  /**\n   * Set line styles.\n   */\n  #setStroke() {\n    const { ctx, color, opacity, thickness, parentScale, scaleFactor } = this;\n    ctx.lineWidth = (thickness * parentScale) / scaleFactor;\n    ctx.lineCap = \"round\";\n    ctx.lineJoin = \"round\";\n    ctx.miterLimit = 10;\n    ctx.strokeStyle = `${color}${opacityToHex(opacity)}`;\n  }\n\n  /**\n   * Start to draw on the canvas.\n   * @param {number} x\n   * @param {number} y\n   */\n  #startDrawing(x, y) {\n    this.canvas.addEventListener(\"contextmenu\", noContextMenu);\n    this.canvas.addEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n    this.canvas.addEventListener(\"pointermove\", this.#boundCanvasPointermove);\n    this.canvas.addEventListener(\"pointerup\", this.#boundCanvasPointerup);\n    this.canvas.removeEventListener(\n      \"pointerdown\",\n      this.#boundCanvasPointerdown\n    );\n\n    this.isEditing = true;\n    if (!this.#isCanvasInitialized) {\n      this.#isCanvasInitialized = true;\n      this.#setCanvasDims();\n      this.thickness ||= InkEditor._defaultThickness;\n      this.color ||=\n        InkEditor._defaultColor || AnnotationEditor._defaultLineColor;\n      this.opacity ??= InkEditor._defaultOpacity;\n    }\n    this.currentPath.push([x, y]);\n    this.#hasSomethingToDraw = false;\n    this.#setStroke();\n\n    this.#requestFrameCallback = () => {\n      this.#drawPoints();\n      if (this.#requestFrameCallback) {\n        window.requestAnimationFrame(this.#requestFrameCallback);\n      }\n    };\n    window.requestAnimationFrame(this.#requestFrameCallback);\n  }\n\n  /**\n   * Draw on the canvas.\n   * @param {number} x\n   * @param {number} y\n   */\n  #draw(x, y) {\n    const [lastX, lastY] = this.currentPath.at(-1);\n    if (this.currentPath.length > 1 && x === lastX && y === lastY) {\n      return;\n    }\n    const currentPath = this.currentPath;\n    let path2D = this.#currentPath2D;\n    currentPath.push([x, y]);\n    this.#hasSomethingToDraw = true;\n\n    if (currentPath.length <= 2) {\n      path2D.moveTo(...currentPath[0]);\n      path2D.lineTo(x, y);\n      return;\n    }\n\n    if (currentPath.length === 3) {\n      this.#currentPath2D = path2D = new Path2D();\n      path2D.moveTo(...currentPath[0]);\n    }\n\n    this.#makeBezierCurve(\n      path2D,\n      ...currentPath.at(-3),\n      ...currentPath.at(-2),\n      x,\n      y\n    );\n  }\n\n  #endPath() {\n    if (this.currentPath.length === 0) {\n      return;\n    }\n    const lastPoint = this.currentPath.at(-1);\n    this.#currentPath2D.lineTo(...lastPoint);\n  }\n\n  /**\n   * Stop to draw on the canvas.\n   * @param {number} x\n   * @param {number} y\n   */\n  #stopDrawing(x, y) {\n    this.#requestFrameCallback = null;\n\n    x = Math.min(Math.max(x, 0), this.canvas.width);\n    y = Math.min(Math.max(y, 0), this.canvas.height);\n\n    this.#draw(x, y);\n    this.#endPath();\n\n    // Interpolate the path entered by the user with some\n    // Bezier's curves in order to have a smoother path and\n    // to reduce the data size used to draw it in the PDF.\n    let bezier;\n    if (this.currentPath.length !== 1) {\n      bezier = this.#generateBezierPoints();\n    } else {\n      // We have only one point finally.\n      const xy = [x, y];\n      bezier = [[xy, xy.slice(), xy.slice(), xy]];\n    }\n    const path2D = this.#currentPath2D;\n    const currentPath = this.currentPath;\n    this.currentPath = [];\n    this.#currentPath2D = new Path2D();\n\n    const cmd = () => {\n      this.allRawPaths.push(currentPath);\n      this.paths.push(bezier);\n      this.bezierPath2D.push(path2D);\n      this.rebuild();\n    };\n\n    const undo = () => {\n      this.allRawPaths.pop();\n      this.paths.pop();\n      this.bezierPath2D.pop();\n      if (this.paths.length === 0) {\n        this.remove();\n      } else {\n        if (!this.canvas) {\n          this.#createCanvas();\n          this.#createObserver();\n        }\n        this.#fitToContent();\n      }\n    };\n\n    this.addCommands({ cmd, undo, mustExec: true });\n  }\n\n  #drawPoints() {\n    if (!this.#hasSomethingToDraw) {\n      return;\n    }\n    this.#hasSomethingToDraw = false;\n\n    const thickness = Math.ceil(this.thickness * this.parentScale);\n    const lastPoints = this.currentPath.slice(-3);\n    const x = lastPoints.map(xy => xy[0]);\n    const y = lastPoints.map(xy => xy[1]);\n    const xMin = Math.min(...x) - thickness;\n    const xMax = Math.max(...x) + thickness;\n    const yMin = Math.min(...y) - thickness;\n    const yMax = Math.max(...y) + thickness;\n\n    const { ctx } = this;\n    ctx.save();\n\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      // In Chrome, the clip() method doesn't work as expected.\n      ctx.clearRect(xMin, yMin, xMax - xMin, yMax - yMin);\n      ctx.beginPath();\n      ctx.rect(xMin, yMin, xMax - xMin, yMax - yMin);\n      ctx.clip();\n    } else {\n      ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n    }\n\n    for (const path of this.bezierPath2D) {\n      ctx.stroke(path);\n    }\n    ctx.stroke(this.#currentPath2D);\n\n    ctx.restore();\n  }\n\n  #makeBezierCurve(path2D, x0, y0, x1, y1, x2, y2) {\n    const prevX = (x0 + x1) / 2;\n    const prevY = (y0 + y1) / 2;\n    const x3 = (x1 + x2) / 2;\n    const y3 = (y1 + y2) / 2;\n\n    path2D.bezierCurveTo(\n      prevX + (2 * (x1 - prevX)) / 3,\n      prevY + (2 * (y1 - prevY)) / 3,\n      x3 + (2 * (x1 - x3)) / 3,\n      y3 + (2 * (y1 - y3)) / 3,\n      x3,\n      y3\n    );\n  }\n\n  #generateBezierPoints() {\n    const path = this.currentPath;\n    if (path.length <= 2) {\n      return [[path[0], path[0], path.at(-1), path.at(-1)]];\n    }\n\n    const bezierPoints = [];\n    let i;\n    let [x0, y0] = path[0];\n    for (i = 1; i < path.length - 2; i++) {\n      const [x1, y1] = path[i];\n      const [x2, y2] = path[i + 1];\n      const x3 = (x1 + x2) / 2;\n      const y3 = (y1 + y2) / 2;\n\n      // The quadratic is: [[x0, y0], [x1, y1], [x3, y3]].\n      // Convert the quadratic to a cubic\n      // (see https://fontforge.org/docs/techref/bezier.html#converting-truetype-to-postscript)\n      const control1 = [x0 + (2 * (x1 - x0)) / 3, y0 + (2 * (y1 - y0)) / 3];\n      const control2 = [x3 + (2 * (x1 - x3)) / 3, y3 + (2 * (y1 - y3)) / 3];\n\n      bezierPoints.push([[x0, y0], control1, control2, [x3, y3]]);\n\n      [x0, y0] = [x3, y3];\n    }\n\n    const [x1, y1] = path[i];\n    const [x2, y2] = path[i + 1];\n\n    // The quadratic is: [[x0, y0], [x1, y1], [x2, y2]].\n    const control1 = [x0 + (2 * (x1 - x0)) / 3, y0 + (2 * (y1 - y0)) / 3];\n    const control2 = [x2 + (2 * (x1 - x2)) / 3, y2 + (2 * (y1 - y2)) / 3];\n\n    bezierPoints.push([[x0, y0], control1, control2, [x2, y2]]);\n    return bezierPoints;\n  }\n\n  /**\n   * Redraw all the paths.\n   */\n  #redraw() {\n    if (this.isEmpty()) {\n      this.#updateTransform();\n      return;\n    }\n    this.#setStroke();\n\n    const { canvas, ctx } = this;\n    ctx.setTransform(1, 0, 0, 1, 0, 0);\n    ctx.clearRect(0, 0, canvas.width, canvas.height);\n    this.#updateTransform();\n\n    for (const path of this.bezierPath2D) {\n      ctx.stroke(path);\n    }\n  }\n\n  /**\n   * Commit the curves we have in this editor.\n   */\n  commit() {\n    if (this.#disableEditing) {\n      return;\n    }\n\n    super.commit();\n\n    this.isEditing = false;\n    this.disableEditMode();\n\n    // This editor must be on top of the main ink editor.\n    this.setInForeground();\n\n    this.#disableEditing = true;\n    this.div.classList.add(\"disabled\");\n\n    this.#fitToContent(/* firstTime = */ true);\n    this.select();\n\n    this.parent.addInkEditorIfNeeded(/* isCommitting = */ true);\n\n    // When commiting, the position of this editor is changed, hence we must\n    // move it to the right position in the DOM.\n    this.moveInDOM();\n    this.div.focus({\n      preventScroll: true /* See issue #15744 */,\n    });\n  }\n\n  /** @inheritdoc */\n  focusin(event) {\n    if (!this._focusEventsAllowed) {\n      return;\n    }\n    super.focusin(event);\n    this.enableEditMode();\n  }\n\n  /**\n   * onpointerdown callback for the canvas we're drawing on.\n   * @param {PointerEvent} event\n   */\n  canvasPointerdown(event) {\n    if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) {\n      return;\n    }\n\n    // We want to draw on top of any other editors.\n    // Since it's the last child, there's no need to give it a higher z-index.\n    this.setInForeground();\n\n    event.preventDefault();\n\n    if (\n      event.pointerType !== \"mouse\" &&\n      !this.div.contains(document.activeElement)\n    ) {\n      this.div.focus({\n        preventScroll: true /* See issue #17327 */,\n      });\n    }\n\n    this.#startDrawing(event.offsetX, event.offsetY);\n  }\n\n  /**\n   * onpointermove callback for the canvas we're drawing on.\n   * @param {PointerEvent} event\n   */\n  canvasPointermove(event) {\n    event.preventDefault();\n    this.#draw(event.offsetX, event.offsetY);\n  }\n\n  /**\n   * onpointerup callback for the canvas we're drawing on.\n   * @param {PointerEvent} event\n   */\n  canvasPointerup(event) {\n    event.preventDefault();\n    this.#endDrawing(event);\n  }\n\n  /**\n   * onpointerleave callback for the canvas we're drawing on.\n   * @param {PointerEvent} event\n   */\n  canvasPointerleave(event) {\n    this.#endDrawing(event);\n  }\n\n  /**\n   * End the drawing.\n   * @param {PointerEvent} event\n   */\n  #endDrawing(event) {\n    this.canvas.removeEventListener(\n      \"pointerleave\",\n      this.#boundCanvasPointerleave\n    );\n    this.canvas.removeEventListener(\n      \"pointermove\",\n      this.#boundCanvasPointermove\n    );\n    this.canvas.removeEventListener(\"pointerup\", this.#boundCanvasPointerup);\n    this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n\n    // Slight delay to avoid the context menu to appear (it can happen on a long\n    // tap with a pen).\n    if (this.#canvasContextMenuTimeoutId) {\n      clearTimeout(this.#canvasContextMenuTimeoutId);\n    }\n    this.#canvasContextMenuTimeoutId = setTimeout(() => {\n      this.#canvasContextMenuTimeoutId = null;\n      this.canvas.removeEventListener(\"contextmenu\", noContextMenu);\n    }, 10);\n\n    this.#stopDrawing(event.offsetX, event.offsetY);\n\n    this.addToAnnotationStorage();\n\n    // Since the ink editor covers all of the page and we want to be able\n    // to select another editor, we just put this one in the background.\n    this.setInBackground();\n  }\n\n  /**\n   * Create the canvas element.\n   */\n  #createCanvas() {\n    this.canvas = document.createElement(\"canvas\");\n    this.canvas.width = this.canvas.height = 0;\n    this.canvas.className = \"inkEditorCanvas\";\n    this.canvas.setAttribute(\"data-l10n-id\", \"pdfjs-ink-canvas\");\n\n    this.div.append(this.canvas);\n    this.ctx = this.canvas.getContext(\"2d\");\n  }\n\n  /**\n   * Create the resize observer.\n   */\n  #createObserver() {\n    this.#observer = new ResizeObserver(entries => {\n      const rect = entries[0].contentRect;\n      if (rect.width && rect.height) {\n        this.setDimensions(rect.width, rect.height);\n      }\n    });\n    this.#observer.observe(this.div);\n  }\n\n  /** @inheritdoc */\n  get isResizable() {\n    return !this.isEmpty() && this.#disableEditing;\n  }\n\n  /** @inheritdoc */\n  render() {\n    if (this.div) {\n      return this.div;\n    }\n\n    let baseX, baseY;\n    if (this.width) {\n      baseX = this.x;\n      baseY = this.y;\n    }\n\n    super.render();\n\n    this.div.setAttribute(\"data-l10n-id\", \"pdfjs-ink\");\n\n    const [x, y, w, h] = this.#getInitialBBox();\n    this.setAt(x, y, 0, 0);\n    this.setDims(w, h);\n\n    this.#createCanvas();\n\n    if (this.width) {\n      // This editor was created in using copy (ctrl+c).\n      const [parentWidth, parentHeight] = this.parentDimensions;\n      this.setAspectRatio(this.width * parentWidth, this.height * parentHeight);\n      this.setAt(\n        baseX * parentWidth,\n        baseY * parentHeight,\n        this.width * parentWidth,\n        this.height * parentHeight\n      );\n      this.#isCanvasInitialized = true;\n      this.#setCanvasDims();\n      this.setDims(this.width * parentWidth, this.height * parentHeight);\n      this.#redraw();\n      this.div.classList.add(\"disabled\");\n    } else {\n      this.div.classList.add(\"editing\");\n      this.enableEditMode();\n    }\n\n    this.#createObserver();\n\n    return this.div;\n  }\n\n  #setCanvasDims() {\n    if (!this.#isCanvasInitialized) {\n      return;\n    }\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.canvas.width = Math.ceil(this.width * parentWidth);\n    this.canvas.height = Math.ceil(this.height * parentHeight);\n    this.#updateTransform();\n  }\n\n  /**\n   * When the dimensions of the div change the inner canvas must\n   * renew its dimensions, hence it must redraw its own contents.\n   * @param {number} width - the new width of the div\n   * @param {number} height - the new height of the div\n   * @returns\n   */\n  setDimensions(width, height) {\n    const roundedWidth = Math.round(width);\n    const roundedHeight = Math.round(height);\n    if (\n      this.#realWidth === roundedWidth &&\n      this.#realHeight === roundedHeight\n    ) {\n      return;\n    }\n\n    this.#realWidth = roundedWidth;\n    this.#realHeight = roundedHeight;\n\n    this.canvas.style.visibility = \"hidden\";\n\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.width = width / parentWidth;\n    this.height = height / parentHeight;\n    this.fixAndSetPosition();\n\n    if (this.#disableEditing) {\n      this.#setScaleFactor(width, height);\n    }\n\n    this.#setCanvasDims();\n    this.#redraw();\n\n    this.canvas.style.visibility = \"visible\";\n\n    // For any reason the dimensions couldn't be in percent but in pixels, hence\n    // we must fix them.\n    this.fixDims();\n  }\n\n  #setScaleFactor(width, height) {\n    const padding = this.#getPadding();\n    const scaleFactorW = (width - padding) / this.#baseWidth;\n    const scaleFactorH = (height - padding) / this.#baseHeight;\n    this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n  }\n\n  /**\n   * Update the canvas transform.\n   */\n  #updateTransform() {\n    const padding = this.#getPadding() / 2;\n    this.ctx.setTransform(\n      this.scaleFactor,\n      0,\n      0,\n      this.scaleFactor,\n      this.translationX * this.scaleFactor + padding,\n      this.translationY * this.scaleFactor + padding\n    );\n  }\n\n  /**\n   * Convert into a Path2D.\n   * @param {Array<Array<number>>} bezier\n   * @returns {Path2D}\n   */\n  static #buildPath2D(bezier) {\n    const path2D = new Path2D();\n    for (let i = 0, ii = bezier.length; i < ii; i++) {\n      const [first, control1, control2, second] = bezier[i];\n      if (i === 0) {\n        path2D.moveTo(...first);\n      }\n      path2D.bezierCurveTo(\n        control1[0],\n        control1[1],\n        control2[0],\n        control2[1],\n        second[0],\n        second[1]\n      );\n    }\n    return path2D;\n  }\n\n  static #toPDFCoordinates(points, rect, rotation) {\n    const [blX, blY, trX, trY] = rect;\n\n    switch (rotation) {\n      case 0:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          points[i] += blX;\n          points[i + 1] = trY - points[i + 1];\n        }\n        break;\n      case 90:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          const x = points[i];\n          points[i] = points[i + 1] + blX;\n          points[i + 1] = x + blY;\n        }\n        break;\n      case 180:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          points[i] = trX - points[i];\n          points[i + 1] += blY;\n        }\n        break;\n      case 270:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          const x = points[i];\n          points[i] = trX - points[i + 1];\n          points[i + 1] = trY - x;\n        }\n        break;\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n    return points;\n  }\n\n  static #fromPDFCoordinates(points, rect, rotation) {\n    const [blX, blY, trX, trY] = rect;\n\n    switch (rotation) {\n      case 0:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          points[i] -= blX;\n          points[i + 1] = trY - points[i + 1];\n        }\n        break;\n      case 90:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          const x = points[i];\n          points[i] = points[i + 1] - blY;\n          points[i + 1] = x - blX;\n        }\n        break;\n      case 180:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          points[i] = trX - points[i];\n          points[i + 1] -= blY;\n        }\n        break;\n      case 270:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          const x = points[i];\n          points[i] = trY - points[i + 1];\n          points[i + 1] = trX - x;\n        }\n        break;\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n    return points;\n  }\n\n  /**\n   * Transform and serialize the paths.\n   * @param {number} s - scale factor\n   * @param {number} tx - abscissa of the translation\n   * @param {number} ty - ordinate of the translation\n   * @param {Array<number>} rect - the bounding box of the annotation\n   */\n  #serializePaths(s, tx, ty, rect) {\n    const paths = [];\n    const padding = this.thickness / 2;\n    const shiftX = s * tx + padding;\n    const shiftY = s * ty + padding;\n    for (const bezier of this.paths) {\n      const buffer = [];\n      const points = [];\n      for (let j = 0, jj = bezier.length; j < jj; j++) {\n        const [first, control1, control2, second] = bezier[j];\n        const p10 = s * first[0] + shiftX;\n        const p11 = s * first[1] + shiftY;\n        const p20 = s * control1[0] + shiftX;\n        const p21 = s * control1[1] + shiftY;\n        const p30 = s * control2[0] + shiftX;\n        const p31 = s * control2[1] + shiftY;\n        const p40 = s * second[0] + shiftX;\n        const p41 = s * second[1] + shiftY;\n\n        if (j === 0) {\n          buffer.push(p10, p11);\n          points.push(p10, p11);\n        }\n        buffer.push(p20, p21, p30, p31, p40, p41);\n        points.push(p20, p21);\n        if (j === jj - 1) {\n          points.push(p40, p41);\n        }\n      }\n      paths.push({\n        bezier: InkEditor.#toPDFCoordinates(buffer, rect, this.rotation),\n        points: InkEditor.#toPDFCoordinates(points, rect, this.rotation),\n      });\n    }\n\n    return paths;\n  }\n\n  /**\n   * Get the bounding box containing all the paths.\n   * @returns {Array<number>}\n   */\n  #getBbox() {\n    let xMin = Infinity;\n    let xMax = -Infinity;\n    let yMin = Infinity;\n    let yMax = -Infinity;\n\n    for (const path of this.paths) {\n      for (const [first, control1, control2, second] of path) {\n        const bbox = Util.bezierBoundingBox(\n          ...first,\n          ...control1,\n          ...control2,\n          ...second\n        );\n        xMin = Math.min(xMin, bbox[0]);\n        yMin = Math.min(yMin, bbox[1]);\n        xMax = Math.max(xMax, bbox[2]);\n        yMax = Math.max(yMax, bbox[3]);\n      }\n    }\n\n    return [xMin, yMin, xMax, yMax];\n  }\n\n  /**\n   * The bounding box is computed with null thickness, so we must take\n   * it into account for the display.\n   * It corresponds to the total padding, hence it should be divided by 2\n   * in order to have left/right paddings.\n   * @returns {number}\n   */\n  #getPadding() {\n    return this.#disableEditing\n      ? Math.ceil(this.thickness * this.parentScale)\n      : 0;\n  }\n\n  /**\n   * Set the div position and dimensions in order to fit to\n   * the bounding box of the contents.\n   * @returns {undefined}\n   */\n  #fitToContent(firstTime = false) {\n    if (this.isEmpty()) {\n      return;\n    }\n\n    if (!this.#disableEditing) {\n      this.#redraw();\n      return;\n    }\n\n    const bbox = this.#getBbox();\n    const padding = this.#getPadding();\n    this.#baseWidth = Math.max(AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n    this.#baseHeight = Math.max(AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n\n    const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor);\n    const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor);\n\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.width = width / parentWidth;\n    this.height = height / parentHeight;\n\n    this.setAspectRatio(width, height);\n\n    const prevTranslationX = this.translationX;\n    const prevTranslationY = this.translationY;\n\n    this.translationX = -bbox[0];\n    this.translationY = -bbox[1];\n    this.#setCanvasDims();\n    this.#redraw();\n\n    this.#realWidth = width;\n    this.#realHeight = height;\n\n    this.setDims(width, height);\n    const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n    this.translate(\n      prevTranslationX - this.translationX - unscaledPadding,\n      prevTranslationY - this.translationY - unscaledPadding\n    );\n  }\n\n  /** @inheritdoc */\n  static deserialize(data, parent, uiManager) {\n    if (data instanceof InkAnnotationElement) {\n      return null;\n    }\n    const editor = super.deserialize(data, parent, uiManager);\n\n    editor.thickness = data.thickness;\n    editor.color = Util.makeHexColor(...data.color);\n    editor.opacity = data.opacity;\n\n    const [pageWidth, pageHeight] = editor.pageDimensions;\n    const width = editor.width * pageWidth;\n    const height = editor.height * pageHeight;\n    const scaleFactor = editor.parentScale;\n    const padding = data.thickness / 2;\n\n    editor.#disableEditing = true;\n    editor.#realWidth = Math.round(width);\n    editor.#realHeight = Math.round(height);\n\n    const { paths, rect, rotation } = data;\n\n    for (let { bezier } of paths) {\n      bezier = InkEditor.#fromPDFCoordinates(bezier, rect, rotation);\n      const path = [];\n      editor.paths.push(path);\n      let p0 = scaleFactor * (bezier[0] - padding);\n      let p1 = scaleFactor * (bezier[1] - padding);\n      for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n        const p10 = scaleFactor * (bezier[i] - padding);\n        const p11 = scaleFactor * (bezier[i + 1] - padding);\n        const p20 = scaleFactor * (bezier[i + 2] - padding);\n        const p21 = scaleFactor * (bezier[i + 3] - padding);\n        const p30 = scaleFactor * (bezier[i + 4] - padding);\n        const p31 = scaleFactor * (bezier[i + 5] - padding);\n        path.push([\n          [p0, p1],\n          [p10, p11],\n          [p20, p21],\n          [p30, p31],\n        ]);\n        p0 = p30;\n        p1 = p31;\n      }\n      const path2D = this.#buildPath2D(path);\n      editor.bezierPath2D.push(path2D);\n    }\n\n    const bbox = editor.#getBbox();\n    editor.#baseWidth = Math.max(AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n    editor.#baseHeight = Math.max(AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n    editor.#setScaleFactor(width, height);\n\n    return editor;\n  }\n\n  /** @inheritdoc */\n  serialize() {\n    if (this.isEmpty()) {\n      return null;\n    }\n\n    const rect = this.getRect(0, 0);\n    const color = AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n\n    return {\n      annotationType: AnnotationEditorType.INK,\n      color,\n      thickness: this.thickness,\n      opacity: this.opacity,\n      paths: this.#serializePaths(\n        this.scaleFactor / this.parentScale,\n        this.translationX,\n        this.translationY,\n        rect\n      ),\n      pageIndex: this.pageIndex,\n      rect,\n      rotation: this.rotation,\n      structTreeParentId: this._structTreeParentId,\n    };\n  }\n}\n\nexport { InkEditor };\n","/* Copyright 2022 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 { AnnotationEditorType, shadow } from \"../../shared/util.js\";\nimport { AnnotationEditor } from \"./editor.js\";\nimport { PixelsPerInch } from \"../display_utils.js\";\nimport { StampAnnotationElement } from \"../annotation_layer.js\";\n\n/**\n * Basic text editor in order to create a FreeTex annotation.\n */\nclass StampEditor extends AnnotationEditor {\n  #bitmap = null;\n\n  #bitmapId = null;\n\n  #bitmapPromise = null;\n\n  #bitmapUrl = null;\n\n  #bitmapFile = null;\n\n  #bitmapFileName = \"\";\n\n  #canvas = null;\n\n  #observer = null;\n\n  #resizeTimeoutId = null;\n\n  #isSvg = false;\n\n  #hasBeenAddedInUndoStack = false;\n\n  static _type = \"stamp\";\n\n  static _editorType = AnnotationEditorType.STAMP;\n\n  constructor(params) {\n    super({ ...params, name: \"stampEditor\" });\n    this.#bitmapUrl = params.bitmapUrl;\n    this.#bitmapFile = params.bitmapFile;\n  }\n\n  /** @inheritdoc */\n  static initialize(l10n) {\n    AnnotationEditor.initialize(l10n);\n  }\n\n  static get supportedTypes() {\n    // See https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types\n    // to know which types are supported by the browser.\n    const types = [\n      \"apng\",\n      \"avif\",\n      \"bmp\",\n      \"gif\",\n      \"jpeg\",\n      \"png\",\n      \"svg+xml\",\n      \"webp\",\n      \"x-icon\",\n    ];\n    return shadow(\n      this,\n      \"supportedTypes\",\n      types.map(type => `image/${type}`)\n    );\n  }\n\n  static get supportedTypesStr() {\n    return shadow(this, \"supportedTypesStr\", this.supportedTypes.join(\",\"));\n  }\n\n  /** @inheritdoc */\n  static isHandlingMimeForPasting(mime) {\n    return this.supportedTypes.includes(mime);\n  }\n\n  /** @inheritdoc */\n  static paste(item, parent) {\n    parent.pasteEditor(AnnotationEditorType.STAMP, {\n      bitmapFile: item.getAsFile(),\n    });\n  }\n\n  #getBitmapFetched(data, fromId = false) {\n    if (!data) {\n      this.remove();\n      return;\n    }\n    this.#bitmap = data.bitmap;\n    if (!fromId) {\n      this.#bitmapId = data.id;\n      this.#isSvg = data.isSvg;\n    }\n    if (data.file) {\n      this.#bitmapFileName = data.file.name;\n    }\n    this.#createCanvas();\n  }\n\n  #getBitmapDone() {\n    this.#bitmapPromise = null;\n    this._uiManager.enableWaiting(false);\n    if (this.#canvas) {\n      this.div.focus();\n    }\n  }\n\n  #getBitmap() {\n    if (this.#bitmapId) {\n      this._uiManager.enableWaiting(true);\n      this._uiManager.imageManager\n        .getFromId(this.#bitmapId)\n        .then(data => this.#getBitmapFetched(data, /* fromId = */ true))\n        .finally(() => this.#getBitmapDone());\n      return;\n    }\n\n    if (this.#bitmapUrl) {\n      const url = this.#bitmapUrl;\n      this.#bitmapUrl = null;\n      this._uiManager.enableWaiting(true);\n      this.#bitmapPromise = this._uiManager.imageManager\n        .getFromUrl(url)\n        .then(data => this.#getBitmapFetched(data))\n        .finally(() => this.#getBitmapDone());\n      return;\n    }\n\n    if (this.#bitmapFile) {\n      const file = this.#bitmapFile;\n      this.#bitmapFile = null;\n      this._uiManager.enableWaiting(true);\n      this.#bitmapPromise = this._uiManager.imageManager\n        .getFromFile(file)\n        .then(data => this.#getBitmapFetched(data))\n        .finally(() => this.#getBitmapDone());\n      return;\n    }\n\n    const input = document.createElement(\"input\");\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n      input.hidden = true;\n      input.id = \"stampEditorFileInput\";\n      document.body.append(input);\n    }\n    input.type = \"file\";\n    input.accept = StampEditor.supportedTypesStr;\n    this.#bitmapPromise = new Promise(resolve => {\n      input.addEventListener(\"change\", async () => {\n        if (!input.files || input.files.length === 0) {\n          this.remove();\n        } else {\n          this._uiManager.enableWaiting(true);\n          const data = await this._uiManager.imageManager.getFromFile(\n            input.files[0]\n          );\n          this.#getBitmapFetched(data);\n        }\n        if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n          input.remove();\n        }\n        resolve();\n      });\n      input.addEventListener(\"cancel\", () => {\n        this.remove();\n        resolve();\n      });\n    }).finally(() => this.#getBitmapDone());\n    if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"TESTING\")) {\n      input.click();\n    }\n  }\n\n  /** @inheritdoc */\n  remove() {\n    if (this.#bitmapId) {\n      this.#bitmap = null;\n      this._uiManager.imageManager.deleteId(this.#bitmapId);\n      this.#canvas?.remove();\n      this.#canvas = null;\n      this.#observer?.disconnect();\n      this.#observer = null;\n      if (this.#resizeTimeoutId) {\n        clearTimeout(this.#resizeTimeoutId);\n        this.#resizeTimeoutId = null;\n      }\n    }\n    super.remove();\n  }\n\n  /** @inheritdoc */\n  rebuild() {\n    if (!this.parent) {\n      // It's possible to have to rebuild an editor which is not on a visible\n      // page.\n      if (this.#bitmapId) {\n        this.#getBitmap();\n      }\n      return;\n    }\n    super.rebuild();\n    if (this.div === null) {\n      return;\n    }\n\n    if (this.#bitmapId) {\n      this.#getBitmap();\n    }\n\n    if (!this.isAttachedToDOM) {\n      // At some point this editor was removed and we're rebuilting it,\n      // hence we must add it to its parent.\n      this.parent.add(this);\n    }\n  }\n\n  /** @inheritdoc */\n  onceAdded() {\n    this._isDraggable = true;\n    this.div.focus();\n  }\n\n  /** @inheritdoc */\n  isEmpty() {\n    return !(\n      this.#bitmapPromise ||\n      this.#bitmap ||\n      this.#bitmapUrl ||\n      this.#bitmapFile\n    );\n  }\n\n  /** @inheritdoc */\n  get isResizable() {\n    return true;\n  }\n\n  /** @inheritdoc */\n  render() {\n    if (this.div) {\n      return this.div;\n    }\n\n    let baseX, baseY;\n    if (this.width) {\n      baseX = this.x;\n      baseY = this.y;\n    }\n\n    super.render();\n    this.div.hidden = true;\n\n    if (this.#bitmap) {\n      this.#createCanvas();\n    } else {\n      this.#getBitmap();\n    }\n\n    if (this.width) {\n      // This editor was created in using copy (ctrl+c).\n      const [parentWidth, parentHeight] = this.parentDimensions;\n      this.setAt(\n        baseX * parentWidth,\n        baseY * parentHeight,\n        this.width * parentWidth,\n        this.height * parentHeight\n      );\n    }\n\n    return this.div;\n  }\n\n  #createCanvas() {\n    const { div } = this;\n    let { width, height } = this.#bitmap;\n    const [pageWidth, pageHeight] = this.pageDimensions;\n    const MAX_RATIO = 0.75;\n    if (this.width) {\n      width = this.width * pageWidth;\n      height = this.height * pageHeight;\n    } else if (\n      width > MAX_RATIO * pageWidth ||\n      height > MAX_RATIO * pageHeight\n    ) {\n      // If the the image is too big compared to the page dimensions\n      // (more than MAX_RATIO) then we scale it down.\n      const factor = Math.min(\n        (MAX_RATIO * pageWidth) / width,\n        (MAX_RATIO * pageHeight) / height\n      );\n      width *= factor;\n      height *= factor;\n    }\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.setDims(\n      (width * parentWidth) / pageWidth,\n      (height * parentHeight) / pageHeight\n    );\n\n    this._uiManager.enableWaiting(false);\n    const canvas = (this.#canvas = document.createElement(\"canvas\"));\n    div.append(canvas);\n    div.hidden = false;\n    this.#drawBitmap(width, height);\n    this.#createObserver();\n    if (!this.#hasBeenAddedInUndoStack) {\n      this.parent.addUndoableEditor(this);\n      this.#hasBeenAddedInUndoStack = true;\n    }\n\n    // There are multiple ways to add an image to the page, so here we just\n    // count the number of times an image is added to the page whatever the way\n    // is.\n    this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n      source: this,\n      details: {\n        type: \"editing\",\n        subtype: this.editorType,\n        data: {\n          action: \"inserted_image\",\n        },\n      },\n    });\n    this.addAltTextButton();\n    if (this.#bitmapFileName) {\n      canvas.setAttribute(\"aria-label\", this.#bitmapFileName);\n    }\n  }\n\n  /**\n   * When the dimensions of the div change the inner canvas must\n   * renew its dimensions, hence it must redraw its own contents.\n   * @param {number} width - the new width of the div\n   * @param {number} height - the new height of the div\n   * @returns\n   */\n  #setDimensions(width, height) {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.width = width / parentWidth;\n    this.height = height / parentHeight;\n    this.setDims(width, height);\n    if (this._initialOptions?.isCentered) {\n      this.center();\n    } else {\n      this.fixAndSetPosition();\n    }\n    this._initialOptions = null;\n    if (this.#resizeTimeoutId !== null) {\n      clearTimeout(this.#resizeTimeoutId);\n    }\n    // When the user is resizing the editor we just use CSS to scale the image\n    // to avoid redrawing it too often.\n    // And once the user stops resizing the editor we redraw the image in\n    // rescaling it correctly (see this.#scaleBitmap).\n    const TIME_TO_WAIT = 200;\n    this.#resizeTimeoutId = setTimeout(() => {\n      this.#resizeTimeoutId = null;\n      this.#drawBitmap(width, height);\n    }, TIME_TO_WAIT);\n  }\n\n  #scaleBitmap(width, height) {\n    const { width: bitmapWidth, height: bitmapHeight } = this.#bitmap;\n\n    let newWidth = bitmapWidth;\n    let newHeight = bitmapHeight;\n    let bitmap = this.#bitmap;\n    while (newWidth > 2 * width || newHeight > 2 * height) {\n      const prevWidth = newWidth;\n      const prevHeight = newHeight;\n\n      if (newWidth > 2 * width) {\n        // See bug 1820511 (Windows specific bug).\n        // TODO: once the above bug is fixed we could revert to:\n        // newWidth = Math.ceil(newWidth / 2);\n        newWidth =\n          newWidth >= 16384\n            ? Math.floor(newWidth / 2) - 1\n            : Math.ceil(newWidth / 2);\n      }\n      if (newHeight > 2 * height) {\n        newHeight =\n          newHeight >= 16384\n            ? Math.floor(newHeight / 2) - 1\n            : Math.ceil(newHeight / 2);\n      }\n\n      const offscreen = new OffscreenCanvas(newWidth, newHeight);\n      const ctx = offscreen.getContext(\"2d\");\n      ctx.drawImage(\n        bitmap,\n        0,\n        0,\n        prevWidth,\n        prevHeight,\n        0,\n        0,\n        newWidth,\n        newHeight\n      );\n      bitmap = offscreen.transferToImageBitmap();\n    }\n\n    return bitmap;\n  }\n\n  #drawBitmap(width, height) {\n    width = Math.ceil(width);\n    height = Math.ceil(height);\n    const canvas = this.#canvas;\n    if (!canvas || (canvas.width === width && canvas.height === height)) {\n      return;\n    }\n    canvas.width = width;\n    canvas.height = height;\n    const bitmap = this.#isSvg\n      ? this.#bitmap\n      : this.#scaleBitmap(width, height);\n    const ctx = canvas.getContext(\"2d\");\n    ctx.filter = this._uiManager.hcmFilter;\n    ctx.drawImage(\n      bitmap,\n      0,\n      0,\n      bitmap.width,\n      bitmap.height,\n      0,\n      0,\n      width,\n      height\n    );\n  }\n\n  /** @inheritdoc */\n  getImageForAltText() {\n    return this.#canvas;\n  }\n\n  #serializeBitmap(toUrl) {\n    if (toUrl) {\n      if (this.#isSvg) {\n        const url = this._uiManager.imageManager.getSvgUrl(this.#bitmapId);\n        if (url) {\n          return url;\n        }\n      }\n      // We convert to a data url because it's sync and the url can live in the\n      // clipboard.\n      const canvas = document.createElement(\"canvas\");\n      ({ width: canvas.width, height: canvas.height } = this.#bitmap);\n      const ctx = canvas.getContext(\"2d\");\n      ctx.drawImage(this.#bitmap, 0, 0);\n\n      return canvas.toDataURL();\n    }\n\n    if (this.#isSvg) {\n      const [pageWidth, pageHeight] = this.pageDimensions;\n      // Multiply by PixelsPerInch.PDF_TO_CSS_UNITS in order to increase the\n      // image resolution when rasterizing it.\n      const width = Math.round(\n        this.width * pageWidth * PixelsPerInch.PDF_TO_CSS_UNITS\n      );\n      const height = Math.round(\n        this.height * pageHeight * PixelsPerInch.PDF_TO_CSS_UNITS\n      );\n      const offscreen = new OffscreenCanvas(width, height);\n      const ctx = offscreen.getContext(\"2d\");\n      ctx.drawImage(\n        this.#bitmap,\n        0,\n        0,\n        this.#bitmap.width,\n        this.#bitmap.height,\n        0,\n        0,\n        width,\n        height\n      );\n      return offscreen.transferToImageBitmap();\n    }\n\n    return structuredClone(this.#bitmap);\n  }\n\n  /**\n   * Create the resize observer.\n   */\n  #createObserver() {\n    this.#observer = new ResizeObserver(entries => {\n      const rect = entries[0].contentRect;\n      if (rect.width && rect.height) {\n        this.#setDimensions(rect.width, rect.height);\n      }\n    });\n    this.#observer.observe(this.div);\n  }\n\n  /** @inheritdoc */\n  static deserialize(data, parent, uiManager) {\n    if (data instanceof StampAnnotationElement) {\n      return null;\n    }\n    const editor = super.deserialize(data, parent, uiManager);\n    const { rect, bitmapUrl, bitmapId, isSvg, accessibilityData } = data;\n    if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) {\n      editor.#bitmapId = bitmapId;\n    } else {\n      editor.#bitmapUrl = bitmapUrl;\n    }\n    editor.#isSvg = isSvg;\n\n    const [parentWidth, parentHeight] = editor.pageDimensions;\n    editor.width = (rect[2] - rect[0]) / parentWidth;\n    editor.height = (rect[3] - rect[1]) / parentHeight;\n\n    if (accessibilityData) {\n      editor.altTextData = accessibilityData;\n    }\n\n    return editor;\n  }\n\n  /** @inheritdoc */\n  serialize(isForCopying = false, context = null) {\n    if (this.isEmpty()) {\n      return null;\n    }\n\n    const serialized = {\n      annotationType: AnnotationEditorType.STAMP,\n      bitmapId: this.#bitmapId,\n      pageIndex: this.pageIndex,\n      rect: this.getRect(0, 0),\n      rotation: this.rotation,\n      isSvg: this.#isSvg,\n      structTreeParentId: this._structTreeParentId,\n    };\n\n    if (isForCopying) {\n      // We don't know what's the final destination (this pdf or another one)\n      // of this annotation and the clipboard doesn't support ImageBitmaps,\n      // hence we serialize the bitmap to a data url.\n      serialized.bitmapUrl = this.#serializeBitmap(/* toUrl = */ true);\n      serialized.accessibilityData = this.altTextData;\n      return serialized;\n    }\n\n    const { decorative, altText } = this.altTextData;\n    if (!decorative && altText) {\n      serialized.accessibilityData = { type: \"Figure\", alt: altText };\n    }\n\n    if (context === null) {\n      return serialized;\n    }\n\n    context.stamps ||= new Map();\n    const area = this.#isSvg\n      ? (serialized.rect[2] - serialized.rect[0]) *\n        (serialized.rect[3] - serialized.rect[1])\n      : null;\n    if (!context.stamps.has(this.#bitmapId)) {\n      // We don't want to have multiple copies of the same bitmap in the\n      // annotationMap, hence we only add the bitmap the first time we meet it.\n      context.stamps.set(this.#bitmapId, { area, serialized });\n      serialized.bitmap = this.#serializeBitmap(/* toUrl = */ false);\n    } else if (this.#isSvg) {\n      // If we have multiple copies of the same svg but with different sizes,\n      // then we want to keep the biggest one.\n      const prevData = context.stamps.get(this.#bitmapId);\n      if (area > prevData.area) {\n        prevData.area = area;\n        prevData.serialized.bitmap.close();\n        prevData.serialized.bitmap = this.#serializeBitmap(/* toUrl = */ false);\n      }\n    }\n    return serialized;\n  }\n}\n\nexport { StampEditor };\n","/* Copyright 2022 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// eslint-disable-next-line max-len\n/** @typedef {import(\"./tools.js\").AnnotationEditorUIManager} AnnotationEditorUIManager */\n/** @typedef {import(\"../display_utils.js\").PageViewport} PageViewport */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../../../web/text_accessibility.js\").TextAccessibilityManager} TextAccessibilityManager */\n/** @typedef {import(\"../../../web/interfaces\").IL10n} IL10n */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../annotation_layer.js\").AnnotationLayer} AnnotationLayer */\n\nimport { AnnotationEditorType, FeatureTest } from \"../../shared/util.js\";\nimport { AnnotationEditor } from \"./editor.js\";\nimport { FreeTextEditor } from \"./freetext.js\";\nimport { InkEditor } from \"./ink.js\";\nimport { setLayerDimensions } from \"../display_utils.js\";\nimport { StampEditor } from \"./stamp.js\";\n\n/**\n * @typedef {Object} AnnotationEditorLayerOptions\n * @property {Object} mode\n * @property {HTMLDivElement} div\n * @property {AnnotationEditorUIManager} uiManager\n * @property {boolean} enabled\n * @property {TextAccessibilityManager} [accessibilityManager]\n * @property {number} pageIndex\n * @property {IL10n} l10n\n * @property {AnnotationLayer} [annotationLayer]\n * @property {PageViewport} viewport\n */\n\n/**\n * @typedef {Object} RenderEditorLayerOptions\n * @property {PageViewport} viewport\n */\n\n/**\n * Manage all the different editors on a page.\n */\nclass AnnotationEditorLayer {\n  #accessibilityManager;\n\n  #allowClick = false;\n\n  #annotationLayer = null;\n\n  #boundPointerup = this.pointerup.bind(this);\n\n  #boundPointerdown = this.pointerdown.bind(this);\n\n  #editorFocusTimeoutId = null;\n\n  #editors = new Map();\n\n  #hadPointerDown = false;\n\n  #isCleaningUp = false;\n\n  #isDisabling = false;\n\n  #uiManager;\n\n  static _initialized = false;\n\n  static #editorTypes = new Map(\n    [FreeTextEditor, InkEditor, StampEditor].map(type => [\n      type._editorType,\n      type,\n    ])\n  );\n\n  /**\n   * @param {AnnotationEditorLayerOptions} options\n   */\n  constructor({\n    uiManager,\n    pageIndex,\n    div,\n    accessibilityManager,\n    annotationLayer,\n    viewport,\n    l10n,\n  }) {\n    const editorTypes = [...AnnotationEditorLayer.#editorTypes.values()];\n    if (!AnnotationEditorLayer._initialized) {\n      AnnotationEditorLayer._initialized = true;\n      for (const editorType of editorTypes) {\n        editorType.initialize(l10n);\n      }\n    }\n    uiManager.registerEditorTypes(editorTypes);\n\n    this.#uiManager = uiManager;\n    this.pageIndex = pageIndex;\n    this.div = div;\n    this.#accessibilityManager = accessibilityManager;\n    this.#annotationLayer = annotationLayer;\n    this.viewport = viewport;\n\n    this.#uiManager.addLayer(this);\n  }\n\n  get isEmpty() {\n    return this.#editors.size === 0;\n  }\n\n  /**\n   * Update the toolbar if it's required to reflect the tool currently used.\n   * @param {number} mode\n   */\n  updateToolbar(mode) {\n    this.#uiManager.updateToolbar(mode);\n  }\n\n  /**\n   * The mode has changed: it must be updated.\n   * @param {number} mode\n   */\n  updateMode(mode = this.#uiManager.getMode()) {\n    this.#cleanup();\n    if (mode === AnnotationEditorType.INK) {\n      // We always want to an ink editor ready to draw in.\n      this.addInkEditorIfNeeded(false);\n      this.disableClick();\n    } else {\n      this.enableClick();\n    }\n\n    if (mode !== AnnotationEditorType.NONE) {\n      const { classList } = this.div;\n      for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {\n        classList.toggle(\n          `${editorType._type}Editing`,\n          mode === editorType._editorType\n        );\n      }\n      this.div.hidden = false;\n    }\n  }\n\n  addInkEditorIfNeeded(isCommitting) {\n    if (\n      !isCommitting &&\n      this.#uiManager.getMode() !== AnnotationEditorType.INK\n    ) {\n      return;\n    }\n\n    if (!isCommitting) {\n      // We're removing an editor but an empty one can already exist so in this\n      // case we don't need to create a new one.\n      for (const editor of this.#editors.values()) {\n        if (editor.isEmpty()) {\n          editor.setInBackground();\n          return;\n        }\n      }\n    }\n\n    const editor = this.#createAndAddNewEditor(\n      { offsetX: 0, offsetY: 0 },\n      /* isCentered = */ false\n    );\n    editor.setInBackground();\n  }\n\n  /**\n   * Set the editing state.\n   * @param {boolean} isEditing\n   */\n  setEditingState(isEditing) {\n    this.#uiManager.setEditingState(isEditing);\n  }\n\n  /**\n   * Add some commands into the CommandManager (undo/redo stuff).\n   * @param {Object} params\n   */\n  addCommands(params) {\n    this.#uiManager.addCommands(params);\n  }\n\n  togglePointerEvents(enabled = false) {\n    this.div.classList.toggle(\"disabled\", !enabled);\n  }\n\n  /**\n   * Enable pointer events on the main div in order to enable\n   * editor creation.\n   */\n  enable() {\n    this.togglePointerEvents(true);\n    const annotationElementIds = new Set();\n    for (const editor of this.#editors.values()) {\n      editor.enableEditing();\n      if (editor.annotationElementId) {\n        annotationElementIds.add(editor.annotationElementId);\n      }\n    }\n\n    if (!this.#annotationLayer) {\n      return;\n    }\n\n    const editables = this.#annotationLayer.getEditableAnnotations();\n    for (const editable of editables) {\n      // The element must be hidden whatever its state is.\n      editable.hide();\n      if (this.#uiManager.isDeletedAnnotationElement(editable.data.id)) {\n        continue;\n      }\n      if (annotationElementIds.has(editable.data.id)) {\n        continue;\n      }\n      const editor = this.deserialize(editable);\n      if (!editor) {\n        continue;\n      }\n      this.addOrRebuild(editor);\n      editor.enableEditing();\n    }\n  }\n\n  /**\n   * Disable editor creation.\n   */\n  disable() {\n    this.#isDisabling = true;\n    this.togglePointerEvents(false);\n    const hiddenAnnotationIds = new Set();\n    for (const editor of this.#editors.values()) {\n      editor.disableEditing();\n      if (!editor.annotationElementId || editor.serialize() !== null) {\n        hiddenAnnotationIds.add(editor.annotationElementId);\n        continue;\n      }\n      this.getEditableAnnotation(editor.annotationElementId)?.show();\n      editor.remove();\n    }\n\n    if (this.#annotationLayer) {\n      // Show the annotations that were hidden in enable().\n      const editables = this.#annotationLayer.getEditableAnnotations();\n      for (const editable of editables) {\n        const { id } = editable.data;\n        if (\n          hiddenAnnotationIds.has(id) ||\n          this.#uiManager.isDeletedAnnotationElement(id)\n        ) {\n          continue;\n        }\n        editable.show();\n      }\n    }\n\n    this.#cleanup();\n    if (this.isEmpty) {\n      this.div.hidden = true;\n    }\n    const { classList } = this.div;\n    for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {\n      classList.remove(`${editorType._type}Editing`);\n    }\n\n    this.#isDisabling = false;\n  }\n\n  getEditableAnnotation(id) {\n    return this.#annotationLayer?.getEditableAnnotation(id) || null;\n  }\n\n  /**\n   * Set the current editor.\n   * @param {AnnotationEditor} editor\n   */\n  setActiveEditor(editor) {\n    const currentActive = this.#uiManager.getActive();\n    if (currentActive === editor) {\n      return;\n    }\n\n    this.#uiManager.setActiveEditor(editor);\n  }\n\n  enableClick() {\n    this.div.addEventListener(\"pointerdown\", this.#boundPointerdown);\n    this.div.addEventListener(\"pointerup\", this.#boundPointerup);\n  }\n\n  disableClick() {\n    this.div.removeEventListener(\"pointerdown\", this.#boundPointerdown);\n    this.div.removeEventListener(\"pointerup\", this.#boundPointerup);\n  }\n\n  attach(editor) {\n    this.#editors.set(editor.id, editor);\n    const { annotationElementId } = editor;\n    if (\n      annotationElementId &&\n      this.#uiManager.isDeletedAnnotationElement(annotationElementId)\n    ) {\n      this.#uiManager.removeDeletedAnnotationElement(editor);\n    }\n  }\n\n  detach(editor) {\n    this.#editors.delete(editor.id);\n    this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n\n    if (!this.#isDisabling && editor.annotationElementId) {\n      this.#uiManager.addDeletedAnnotationElement(editor);\n    }\n  }\n\n  /**\n   * Remove an editor.\n   * @param {AnnotationEditor} editor\n   */\n  remove(editor) {\n    // Since we can undo a removal we need to keep the\n    // parent property as it is, so don't null it!\n\n    this.detach(editor);\n    this.#uiManager.removeEditor(editor);\n    editor.div.remove();\n    editor.isAttachedToDOM = false;\n\n    if (!this.#isCleaningUp) {\n      this.addInkEditorIfNeeded(/* isCommitting = */ false);\n    }\n  }\n\n  /**\n   * An editor can have a different parent, for example after having\n   * being dragged and droped from a page to another.\n   * @param {AnnotationEditor} editor\n   */\n  changeParent(editor) {\n    if (editor.parent === this) {\n      return;\n    }\n\n    if (editor.annotationElementId) {\n      this.#uiManager.addDeletedAnnotationElement(editor.annotationElementId);\n      AnnotationEditor.deleteAnnotationElement(editor);\n      editor.annotationElementId = null;\n    }\n\n    this.attach(editor);\n    editor.parent?.detach(editor);\n    editor.setParent(this);\n    if (editor.div && editor.isAttachedToDOM) {\n      editor.div.remove();\n      this.div.append(editor.div);\n    }\n  }\n\n  /**\n   * Add a new editor in the current view.\n   * @param {AnnotationEditor} editor\n   */\n  add(editor) {\n    this.changeParent(editor);\n    this.#uiManager.addEditor(editor);\n    this.attach(editor);\n\n    if (!editor.isAttachedToDOM) {\n      const div = editor.render();\n      this.div.append(div);\n      editor.isAttachedToDOM = true;\n    }\n\n    // The editor will be correctly moved into the DOM (see fixAndSetPosition).\n    editor.fixAndSetPosition();\n    editor.onceAdded();\n    this.#uiManager.addToAnnotationStorage(editor);\n  }\n\n  moveEditorInDOM(editor) {\n    if (!editor.isAttachedToDOM) {\n      return;\n    }\n\n    const { activeElement } = document;\n    if (editor.div.contains(activeElement) && !this.#editorFocusTimeoutId) {\n      // When the div is moved in the DOM the focus can move somewhere else,\n      // so we want to be sure that the focus will stay on the editor but we\n      // don't want to call any focus callbacks, hence we disable them and only\n      // re-enable them when the editor has the focus.\n      editor._focusEventsAllowed = false;\n      this.#editorFocusTimeoutId = setTimeout(() => {\n        this.#editorFocusTimeoutId = null;\n        if (!editor.div.contains(document.activeElement)) {\n          editor.div.addEventListener(\n            \"focusin\",\n            () => {\n              editor._focusEventsAllowed = true;\n            },\n            { once: true }\n          );\n          activeElement.focus();\n        } else {\n          editor._focusEventsAllowed = true;\n        }\n      }, 0);\n    }\n\n    editor._structTreeParentId = this.#accessibilityManager?.moveElementInDOM(\n      this.div,\n      editor.div,\n      editor.contentDiv,\n      /* isRemovable = */ true\n    );\n  }\n\n  /**\n   * Add or rebuild depending if it has been removed or not.\n   * @param {AnnotationEditor} editor\n   */\n  addOrRebuild(editor) {\n    if (editor.needsToBeRebuilt()) {\n      editor.parent ||= this;\n      editor.rebuild();\n    } else {\n      this.add(editor);\n    }\n  }\n\n  /**\n   * Add a new editor and make this addition undoable.\n   * @param {AnnotationEditor} editor\n   */\n  addUndoableEditor(editor) {\n    const cmd = () => editor._uiManager.rebuild(editor);\n    const undo = () => {\n      editor.remove();\n    };\n\n    this.addCommands({ cmd, undo, mustExec: false });\n  }\n\n  /**\n   * Get an id for an editor.\n   * @returns {string}\n   */\n  getNextId() {\n    return this.#uiManager.getId();\n  }\n\n  /**\n   * Create a new editor\n   * @param {Object} params\n   * @returns {AnnotationEditor}\n   */\n  #createNewEditor(params) {\n    const editorType = AnnotationEditorLayer.#editorTypes.get(\n      this.#uiManager.getMode()\n    );\n    return editorType ? new editorType.prototype.constructor(params) : null;\n  }\n\n  /**\n   * Paste some content into a new editor.\n   * @param {number} mode\n   * @param {Object} params\n   */\n  pasteEditor(mode, params) {\n    this.#uiManager.updateToolbar(mode);\n    this.#uiManager.updateMode(mode);\n\n    const { offsetX, offsetY } = this.#getCenterPoint();\n    const id = this.getNextId();\n    const editor = this.#createNewEditor({\n      parent: this,\n      id,\n      x: offsetX,\n      y: offsetY,\n      uiManager: this.#uiManager,\n      isCentered: true,\n      ...params,\n    });\n    if (editor) {\n      this.add(editor);\n    }\n  }\n\n  /**\n   * Create a new editor\n   * @param {Object} data\n   * @returns {AnnotationEditor | null}\n   */\n  deserialize(data) {\n    return (\n      AnnotationEditorLayer.#editorTypes\n        .get(data.annotationType ?? data.annotationEditorType)\n        ?.deserialize(data, this, this.#uiManager) || null\n    );\n  }\n\n  /**\n   * Create and add a new editor.\n   * @param {PointerEvent} event\n   * @param {boolean} isCentered\n   * @returns {AnnotationEditor}\n   */\n  #createAndAddNewEditor(event, isCentered) {\n    const id = this.getNextId();\n    const editor = this.#createNewEditor({\n      parent: this,\n      id,\n      x: event.offsetX,\n      y: event.offsetY,\n      uiManager: this.#uiManager,\n      isCentered,\n    });\n    if (editor) {\n      this.add(editor);\n    }\n\n    return editor;\n  }\n\n  #getCenterPoint() {\n    const { x, y, width, height } = this.div.getBoundingClientRect();\n    const tlX = Math.max(0, x);\n    const tlY = Math.max(0, y);\n    const brX = Math.min(window.innerWidth, x + width);\n    const brY = Math.min(window.innerHeight, y + height);\n    const centerX = (tlX + brX) / 2 - x;\n    const centerY = (tlY + brY) / 2 - y;\n    const [offsetX, offsetY] =\n      this.viewport.rotation % 180 === 0\n        ? [centerX, centerY]\n        : [centerY, centerX];\n\n    return { offsetX, offsetY };\n  }\n\n  /**\n   * Create and add a new editor.\n   */\n  addNewEditor() {\n    this.#createAndAddNewEditor(\n      this.#getCenterPoint(),\n      /* isCentered = */ true\n    );\n  }\n\n  /**\n   * Set the last selected editor.\n   * @param {AnnotationEditor} editor\n   */\n  setSelected(editor) {\n    this.#uiManager.setSelected(editor);\n  }\n\n  /**\n   * Add or remove an editor the current selection.\n   * @param {AnnotationEditor} editor\n   */\n  toggleSelected(editor) {\n    this.#uiManager.toggleSelected(editor);\n  }\n\n  /**\n   * Check if the editor is selected.\n   * @param {AnnotationEditor} editor\n   */\n  isSelected(editor) {\n    return this.#uiManager.isSelected(editor);\n  }\n\n  /**\n   * Unselect an editor.\n   * @param {AnnotationEditor} editor\n   */\n  unselect(editor) {\n    this.#uiManager.unselect(editor);\n  }\n\n  /**\n   * Pointerup callback.\n   * @param {PointerEvent} event\n   */\n  pointerup(event) {\n    const { isMac } = FeatureTest.platform;\n    if (event.button !== 0 || (event.ctrlKey && isMac)) {\n      // Don't create an editor on right click.\n      return;\n    }\n\n    if (event.target !== this.div) {\n      return;\n    }\n\n    if (!this.#hadPointerDown) {\n      // It can happen when the user starts a drag inside a text editor\n      // and then releases the mouse button outside of it. In such a case\n      // we don't want to create a new editor, hence we check that a pointerdown\n      // occurred on this div previously.\n      return;\n    }\n    this.#hadPointerDown = false;\n\n    if (!this.#allowClick) {\n      this.#allowClick = true;\n      return;\n    }\n\n    if (this.#uiManager.getMode() === AnnotationEditorType.STAMP) {\n      this.#uiManager.unselectAll();\n      return;\n    }\n\n    this.#createAndAddNewEditor(event, /* isCentered = */ false);\n  }\n\n  /**\n   * Pointerdown callback.\n   * @param {PointerEvent} event\n   */\n  pointerdown(event) {\n    if (this.#hadPointerDown) {\n      // It's possible to have a second pointerdown event before a pointerup one\n      // when the user puts a finger on a touchscreen and then add a second one\n      // to start a pinch-to-zoom gesture.\n      // That said, in case it's possible to have two pointerdown events with\n      // a mouse, we don't want to create a new editor in such a case either.\n      this.#hadPointerDown = false;\n      return;\n    }\n    const { isMac } = FeatureTest.platform;\n    if (event.button !== 0 || (event.ctrlKey && isMac)) {\n      // Do nothing on right click.\n      return;\n    }\n\n    if (event.target !== this.div) {\n      return;\n    }\n\n    this.#hadPointerDown = true;\n\n    const editor = this.#uiManager.getActive();\n    this.#allowClick = !editor || editor.isEmpty();\n  }\n\n  /**\n   *\n   * @param {AnnotationEditor} editor\n   * @param {number} x\n   * @param {number} y\n   * @returns\n   */\n  findNewParent(editor, x, y) {\n    const layer = this.#uiManager.findParent(x, y);\n    if (layer === null || layer === this) {\n      return false;\n    }\n    layer.changeParent(editor);\n    return true;\n  }\n\n  /**\n   * Destroy the main editor.\n   */\n  destroy() {\n    if (this.#uiManager.getActive()?.parent === this) {\n      // We need to commit the current editor before destroying the layer.\n      this.#uiManager.commitOrRemove();\n      this.#uiManager.setActiveEditor(null);\n    }\n\n    if (this.#editorFocusTimeoutId) {\n      clearTimeout(this.#editorFocusTimeoutId);\n      this.#editorFocusTimeoutId = null;\n    }\n\n    for (const editor of this.#editors.values()) {\n      this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n      editor.setParent(null);\n      editor.isAttachedToDOM = false;\n      editor.div.remove();\n    }\n    this.div = null;\n    this.#editors.clear();\n    this.#uiManager.removeLayer(this);\n  }\n\n  #cleanup() {\n    // When we're cleaning up, some editors are removed but we don't want\n    // to add a new one which will induce an addition in this.#editors, hence\n    // an infinite loop.\n    this.#isCleaningUp = true;\n    for (const editor of this.#editors.values()) {\n      if (editor.isEmpty()) {\n        editor.remove();\n      }\n    }\n    this.#isCleaningUp = false;\n  }\n\n  /**\n   * Render the main editor.\n   * @param {RenderEditorLayerOptions} parameters\n   */\n  render({ viewport }) {\n    this.viewport = viewport;\n    setLayerDimensions(this.div, viewport);\n    for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n      this.add(editor);\n    }\n    this.updateMode();\n  }\n\n  /**\n   * Update the main editor.\n   * @param {RenderEditorLayerOptions} parameters\n   */\n  update({ viewport }) {\n    // Editors have their dimensions/positions in percent so to avoid any\n    // issues (see #15582), we must commit the current one before changing\n    // the viewport.\n    this.#uiManager.commitOrRemove();\n\n    this.viewport = viewport;\n    setLayerDimensions(this.div, { rotation: viewport.rotation });\n    this.updateMode();\n  }\n\n  /**\n   * Get page dimensions.\n   * @returns {Object} dimensions.\n   */\n  get pageDimensions() {\n    const { pageWidth, pageHeight } = this.viewport.rawDims;\n    return [pageWidth, pageHeight];\n  }\n}\n\nexport { AnnotationEditorLayer };\n","/* Copyright 2023 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 { noContextMenu } from \"../display_utils.js\";\n\nclass EditorToolbar {\n  #toolbar = null;\n\n  #editor;\n\n  #buttons = null;\n\n  constructor(editor) {\n    this.#editor = editor;\n  }\n\n  render() {\n    const editToolbar = (this.#toolbar = document.createElement(\"div\"));\n    editToolbar.className = \"editToolbar\";\n    editToolbar.addEventListener(\"contextmenu\", noContextMenu);\n    editToolbar.addEventListener(\"pointerdown\", EditorToolbar.#pointerDown);\n\n    const buttons = (this.#buttons = document.createElement(\"div\"));\n    buttons.className = \"buttons\";\n    editToolbar.append(buttons);\n\n    this.#addDeleteButton();\n\n    return editToolbar;\n  }\n\n  static #pointerDown(e) {\n    e.stopPropagation();\n  }\n\n  #focusIn(e) {\n    this.#editor._focusEventsAllowed = false;\n    e.preventDefault();\n    e.stopPropagation();\n  }\n\n  #focusOut(e) {\n    this.#editor._focusEventsAllowed = true;\n    e.preventDefault();\n    e.stopPropagation();\n  }\n\n  #addListenersToElement(element) {\n    // If we're clicking on a button with the keyboard or with\n    // the mouse, we don't want to trigger any focus events on\n    // the editor.\n    element.addEventListener(\"focusin\", this.#focusIn.bind(this), {\n      capture: true,\n    });\n    element.addEventListener(\"focusout\", this.#focusOut.bind(this), {\n      capture: true,\n    });\n    element.addEventListener(\"contextmenu\", noContextMenu);\n  }\n\n  hide() {\n    this.#toolbar.classList.add(\"hidden\");\n  }\n\n  show() {\n    this.#toolbar.classList.remove(\"hidden\");\n  }\n\n  #addDeleteButton() {\n    const button = document.createElement(\"button\");\n    button.className = \"delete\";\n    button.tabIndex = 0;\n    button.setAttribute(\"data-l10n-id\", \"pdfjs-editor-remove-button\");\n    this.#addListenersToElement(button);\n    button.addEventListener(\"click\", e => {\n      this.#editor._uiManager.delete();\n    });\n    this.#buttons.append(button);\n  }\n\n  remove() {\n    this.#toolbar.remove();\n  }\n}\n\nexport { EditorToolbar };\n","/* Copyright 2022 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// eslint-disable-next-line max-len\n/** @typedef {import(\"./annotation_editor_layer.js\").AnnotationEditorLayer} AnnotationEditorLayer */\n\nimport {\n  AnnotationEditorUIManager,\n  bindEvents,\n  ColorManager,\n  KeyboardManager,\n} from \"./tools.js\";\nimport { FeatureTest, shadow, unreachable } from \"../../shared/util.js\";\nimport { EditorToolbar } from \"./toolbar.js\";\nimport { noContextMenu } from \"../display_utils.js\";\n\n/**\n * @typedef {Object} AnnotationEditorParameters\n * @property {AnnotationEditorUIManager} uiManager - the global manager\n * @property {AnnotationEditorLayer} parent - the layer containing this editor\n * @property {string} id - editor id\n * @property {number} x - x-coordinate\n * @property {number} y - y-coordinate\n */\n\n/**\n * Base class for editors.\n */\nclass AnnotationEditor {\n  #allResizerDivs = null;\n\n  #altText = \"\";\n\n  #altTextDecorative = false;\n\n  #altTextButton = null;\n\n  #altTextTooltip = null;\n\n  #altTextTooltipTimeout = null;\n\n  #altTextWasFromKeyBoard = false;\n\n  #keepAspectRatio = false;\n\n  #resizersDiv = null;\n\n  #savedDimensions = null;\n\n  #boundFocusin = this.focusin.bind(this);\n\n  #boundFocusout = this.focusout.bind(this);\n\n  #editToolbar = null;\n\n  #focusedResizerName = \"\";\n\n  #hasBeenClicked = false;\n\n  #isEditing = false;\n\n  #isInEditMode = false;\n\n  #isResizerEnabledForKeyboard = false;\n\n  #moveInDOMTimeout = null;\n\n  _initialOptions = Object.create(null);\n\n  _uiManager = null;\n\n  _focusEventsAllowed = true;\n\n  _l10nPromise = null;\n\n  #isDraggable = false;\n\n  #zIndex = AnnotationEditor._zIndex++;\n\n  static _borderLineWidth = -1;\n\n  static _colorManager = new ColorManager();\n\n  static _zIndex = 1;\n\n  // When one of the dimensions of an editor is smaller than this value, the\n  // button to edit the alt text is visually moved outside of the editor.\n  static SMALL_EDITOR_SIZE = 0;\n\n  static get _resizerKeyboardManager() {\n    const resize = AnnotationEditor.prototype._resizeWithKeyboard;\n    const small = AnnotationEditorUIManager.TRANSLATE_SMALL;\n    const big = AnnotationEditorUIManager.TRANSLATE_BIG;\n\n    return shadow(\n      this,\n      \"_resizerKeyboardManager\",\n      new KeyboardManager([\n        [[\"ArrowLeft\", \"mac+ArrowLeft\"], resize, { args: [-small, 0] }],\n        [\n          [\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"],\n          resize,\n          { args: [-big, 0] },\n        ],\n        [[\"ArrowRight\", \"mac+ArrowRight\"], resize, { args: [small, 0] }],\n        [\n          [\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"],\n          resize,\n          { args: [big, 0] },\n        ],\n        [[\"ArrowUp\", \"mac+ArrowUp\"], resize, { args: [0, -small] }],\n        [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], resize, { args: [0, -big] }],\n        [[\"ArrowDown\", \"mac+ArrowDown\"], resize, { args: [0, small] }],\n        [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], resize, { args: [0, big] }],\n        [\n          [\"Escape\", \"mac+Escape\"],\n          AnnotationEditor.prototype._stopResizingWithKeyboard,\n        ],\n      ])\n    );\n  }\n\n  /**\n   * @param {AnnotationEditorParameters} parameters\n   */\n  constructor(parameters) {\n    if (this.constructor === AnnotationEditor) {\n      unreachable(\"Cannot initialize AnnotationEditor.\");\n    }\n\n    this.parent = parameters.parent;\n    this.id = parameters.id;\n    this.width = this.height = null;\n    this.pageIndex = parameters.parent.pageIndex;\n    this.name = parameters.name;\n    this.div = null;\n    this._uiManager = parameters.uiManager;\n    this.annotationElementId = null;\n    this._willKeepAspectRatio = false;\n    this._initialOptions.isCentered = parameters.isCentered;\n    this._structTreeParentId = null;\n\n    const {\n      rotation,\n      rawDims: { pageWidth, pageHeight, pageX, pageY },\n    } = this.parent.viewport;\n\n    this.rotation = rotation;\n    this.pageRotation =\n      (360 + rotation - this._uiManager.viewParameters.rotation) % 360;\n    this.pageDimensions = [pageWidth, pageHeight];\n    this.pageTranslation = [pageX, pageY];\n\n    const [width, height] = this.parentDimensions;\n    this.x = parameters.x / width;\n    this.y = parameters.y / height;\n\n    this.isAttachedToDOM = false;\n    this.deleted = false;\n  }\n\n  get editorType() {\n    return Object.getPrototypeOf(this).constructor._type;\n  }\n\n  static get _defaultLineColor() {\n    return shadow(\n      this,\n      \"_defaultLineColor\",\n      this._colorManager.getHexCode(\"CanvasText\")\n    );\n  }\n\n  static deleteAnnotationElement(editor) {\n    const fakeEditor = new FakeEditor({\n      id: editor.parent.getNextId(),\n      parent: editor.parent,\n      uiManager: editor._uiManager,\n    });\n    fakeEditor.annotationElementId = editor.annotationElementId;\n    fakeEditor.deleted = true;\n    fakeEditor._uiManager.addToAnnotationStorage(fakeEditor);\n  }\n\n  /**\n   * Initialize the l10n stuff for this type of editor.\n   * @param {Object} l10n\n   */\n  static initialize(l10n, options = null) {\n    AnnotationEditor._l10nPromise ||= new Map(\n      [\n        \"pdfjs-editor-alt-text-button-label\",\n        \"pdfjs-editor-alt-text-edit-button-label\",\n        \"pdfjs-editor-alt-text-decorative-tooltip\",\n        \"pdfjs-editor-resizer-label-topLeft\",\n        \"pdfjs-editor-resizer-label-topMiddle\",\n        \"pdfjs-editor-resizer-label-topRight\",\n        \"pdfjs-editor-resizer-label-middleRight\",\n        \"pdfjs-editor-resizer-label-bottomRight\",\n        \"pdfjs-editor-resizer-label-bottomMiddle\",\n        \"pdfjs-editor-resizer-label-bottomLeft\",\n        \"pdfjs-editor-resizer-label-middleLeft\",\n      ].map(str => [\n        str,\n        l10n.get(str.replaceAll(/([A-Z])/g, c => `-${c.toLowerCase()}`)),\n      ])\n    );\n    if (options?.strings) {\n      for (const str of options.strings) {\n        AnnotationEditor._l10nPromise.set(str, l10n.get(str));\n      }\n    }\n    if (AnnotationEditor._borderLineWidth !== -1) {\n      return;\n    }\n    const style = getComputedStyle(document.documentElement);\n    AnnotationEditor._borderLineWidth =\n      parseFloat(style.getPropertyValue(\"--outline-width\")) || 0;\n  }\n\n  /**\n   * Update the default parameters for this type of editor.\n   * @param {number} _type\n   * @param {*} _value\n   */\n  static updateDefaultParams(_type, _value) {}\n\n  /**\n   * Get the default properties to set in the UI for this type of editor.\n   * @returns {Array}\n   */\n  static get defaultPropertiesToUpdate() {\n    return [];\n  }\n\n  /**\n   * Check if this kind of editor is able to handle the given mime type for\n   * pasting.\n   * @param {string} mime\n   * @returns {boolean}\n   */\n  static isHandlingMimeForPasting(mime) {\n    return false;\n  }\n\n  /**\n   * Extract the data from the clipboard item and delegate the creation of the\n   * editor to the parent.\n   * @param {DataTransferItem} item\n   * @param {AnnotationEditorLayer} parent\n   */\n  static paste(item, parent) {\n    unreachable(\"Not implemented\");\n  }\n\n  /**\n   * Get the properties to update in the UI for this editor.\n   * @returns {Array}\n   */\n  get propertiesToUpdate() {\n    return [];\n  }\n\n  get _isDraggable() {\n    return this.#isDraggable;\n  }\n\n  set _isDraggable(value) {\n    this.#isDraggable = value;\n    this.div?.classList.toggle(\"draggable\", value);\n  }\n\n  /**\n   * @returns {boolean} true if the editor handles the Enter key itself.\n   */\n  get isEnterHandled() {\n    return true;\n  }\n\n  center() {\n    const [pageWidth, pageHeight] = this.pageDimensions;\n    switch (this.parentRotation) {\n      case 90:\n        this.x -= (this.height * pageHeight) / (pageWidth * 2);\n        this.y += (this.width * pageWidth) / (pageHeight * 2);\n        break;\n      case 180:\n        this.x += this.width / 2;\n        this.y += this.height / 2;\n        break;\n      case 270:\n        this.x += (this.height * pageHeight) / (pageWidth * 2);\n        this.y -= (this.width * pageWidth) / (pageHeight * 2);\n        break;\n      default:\n        this.x -= this.width / 2;\n        this.y -= this.height / 2;\n        break;\n    }\n    this.fixAndSetPosition();\n  }\n\n  /**\n   * Add some commands into the CommandManager (undo/redo stuff).\n   * @param {Object} params\n   */\n  addCommands(params) {\n    this._uiManager.addCommands(params);\n  }\n\n  get currentLayer() {\n    return this._uiManager.currentLayer;\n  }\n\n  /**\n   * This editor will be behind the others.\n   */\n  setInBackground() {\n    this.div.style.zIndex = 0;\n  }\n\n  /**\n   * This editor will be in the foreground.\n   */\n  setInForeground() {\n    this.div.style.zIndex = this.#zIndex;\n  }\n\n  setParent(parent) {\n    if (parent !== null) {\n      this.pageIndex = parent.pageIndex;\n      this.pageDimensions = parent.pageDimensions;\n    } else {\n      // The editor is being removed from the DOM, so we need to stop resizing.\n      this.#stopResizing();\n    }\n    this.parent = parent;\n  }\n\n  /**\n   * onfocus callback.\n   */\n  focusin(event) {\n    if (!this._focusEventsAllowed) {\n      return;\n    }\n    if (!this.#hasBeenClicked) {\n      this.parent.setSelected(this);\n    } else {\n      this.#hasBeenClicked = false;\n    }\n  }\n\n  /**\n   * onblur callback.\n   * @param {FocusEvent} event\n   */\n  focusout(event) {\n    if (!this._focusEventsAllowed) {\n      return;\n    }\n\n    if (!this.isAttachedToDOM) {\n      return;\n    }\n\n    // In case of focusout, the relatedTarget is the element which\n    // is grabbing the focus.\n    // So if the related target is an element under the div for this\n    // editor, then the editor isn't unactive.\n    const target = event.relatedTarget;\n    if (target?.closest(`#${this.id}`)) {\n      return;\n    }\n\n    event.preventDefault();\n\n    if (!this.parent?.isMultipleSelection) {\n      this.commitOrRemove();\n    }\n  }\n\n  commitOrRemove() {\n    if (this.isEmpty()) {\n      this.remove();\n    } else {\n      this.commit();\n    }\n  }\n\n  /**\n   * Commit the data contained in this editor.\n   */\n  commit() {\n    this.addToAnnotationStorage();\n  }\n\n  addToAnnotationStorage() {\n    this._uiManager.addToAnnotationStorage(this);\n  }\n\n  /**\n   * Set the editor position within its parent.\n   * @param {number} x\n   * @param {number} y\n   * @param {number} tx - x-translation in screen coordinates.\n   * @param {number} ty - y-translation in screen coordinates.\n   */\n  setAt(x, y, tx, ty) {\n    const [width, height] = this.parentDimensions;\n    [tx, ty] = this.screenToPageTranslation(tx, ty);\n\n    this.x = (x + tx) / width;\n    this.y = (y + ty) / height;\n\n    this.fixAndSetPosition();\n  }\n\n  #translate([width, height], x, y) {\n    [x, y] = this.screenToPageTranslation(x, y);\n\n    this.x += x / width;\n    this.y += y / height;\n\n    this.fixAndSetPosition();\n  }\n\n  /**\n   * Translate the editor position within its parent.\n   * @param {number} x - x-translation in screen coordinates.\n   * @param {number} y - y-translation in screen coordinates.\n   */\n  translate(x, y) {\n    this.#translate(this.parentDimensions, x, y);\n  }\n\n  /**\n   * Translate the editor position within its page and adjust the scroll\n   * in order to have the editor in the view.\n   * @param {number} x - x-translation in page coordinates.\n   * @param {number} y - y-translation in page coordinates.\n   */\n  translateInPage(x, y) {\n    this.#translate(this.pageDimensions, x, y);\n    this.div.scrollIntoView({ block: \"nearest\" });\n  }\n\n  drag(tx, ty) {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.x += tx / parentWidth;\n    this.y += ty / parentHeight;\n    if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) {\n      // It's possible to not have a parent: for example, when the user is\n      // dragging all the selected editors but this one on a page which has been\n      // destroyed.\n      // It's why we need to check for it. In such a situation, it isn't really\n      // a problem to not find a new parent: it's something which is related to\n      // what the user is seeing, hence it depends on how pages are layed out.\n\n      // The element will be outside of its parent so change the parent.\n      const { x, y } = this.div.getBoundingClientRect();\n      if (this.parent.findNewParent(this, x, y)) {\n        this.x -= Math.floor(this.x);\n        this.y -= Math.floor(this.y);\n      }\n    }\n\n    // The editor can be moved wherever the user wants, so we don't need to fix\n    // the position: it'll be done when the user will release the mouse button.\n\n    let { x, y } = this;\n    const [bx, by] = this.#getBaseTranslation();\n    x += bx;\n    y += by;\n\n    this.div.style.left = `${(100 * x).toFixed(2)}%`;\n    this.div.style.top = `${(100 * y).toFixed(2)}%`;\n    this.div.scrollIntoView({ block: \"nearest\" });\n  }\n\n  #getBaseTranslation() {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    const { _borderLineWidth } = AnnotationEditor;\n    const x = _borderLineWidth / parentWidth;\n    const y = _borderLineWidth / parentHeight;\n    switch (this.rotation) {\n      case 90:\n        return [-x, y];\n      case 180:\n        return [x, y];\n      case 270:\n        return [x, -y];\n      default:\n        return [-x, -y];\n    }\n  }\n\n  fixAndSetPosition() {\n    const [pageWidth, pageHeight] = this.pageDimensions;\n    let { x, y, width, height } = this;\n    width *= pageWidth;\n    height *= pageHeight;\n    x *= pageWidth;\n    y *= pageHeight;\n\n    switch (this.rotation) {\n      case 0:\n        x = Math.max(0, Math.min(pageWidth - width, x));\n        y = Math.max(0, Math.min(pageHeight - height, y));\n        break;\n      case 90:\n        x = Math.max(0, Math.min(pageWidth - height, x));\n        y = Math.min(pageHeight, Math.max(width, y));\n        break;\n      case 180:\n        x = Math.min(pageWidth, Math.max(width, x));\n        y = Math.min(pageHeight, Math.max(height, y));\n        break;\n      case 270:\n        x = Math.min(pageWidth, Math.max(height, x));\n        y = Math.max(0, Math.min(pageHeight - width, y));\n        break;\n    }\n\n    this.x = x /= pageWidth;\n    this.y = y /= pageHeight;\n\n    const [bx, by] = this.#getBaseTranslation();\n    x += bx;\n    y += by;\n\n    const { style } = this.div;\n    style.left = `${(100 * x).toFixed(2)}%`;\n    style.top = `${(100 * y).toFixed(2)}%`;\n\n    this.moveInDOM();\n  }\n\n  static #rotatePoint(x, y, angle) {\n    switch (angle) {\n      case 90:\n        return [y, -x];\n      case 180:\n        return [-x, -y];\n      case 270:\n        return [-y, x];\n      default:\n        return [x, y];\n    }\n  }\n\n  /**\n   * Convert a screen translation into a page one.\n   * @param {number} x\n   * @param {number} y\n   */\n  screenToPageTranslation(x, y) {\n    return AnnotationEditor.#rotatePoint(x, y, this.parentRotation);\n  }\n\n  /**\n   * Convert a page translation into a screen one.\n   * @param {number} x\n   * @param {number} y\n   */\n  pageTranslationToScreen(x, y) {\n    return AnnotationEditor.#rotatePoint(x, y, 360 - this.parentRotation);\n  }\n\n  #getRotationMatrix(rotation) {\n    switch (rotation) {\n      case 90: {\n        const [pageWidth, pageHeight] = this.pageDimensions;\n        return [0, -pageWidth / pageHeight, pageHeight / pageWidth, 0];\n      }\n      case 180:\n        return [-1, 0, 0, -1];\n      case 270: {\n        const [pageWidth, pageHeight] = this.pageDimensions;\n        return [0, pageWidth / pageHeight, -pageHeight / pageWidth, 0];\n      }\n      default:\n        return [1, 0, 0, 1];\n    }\n  }\n\n  get parentScale() {\n    return this._uiManager.viewParameters.realScale;\n  }\n\n  get parentRotation() {\n    return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360;\n  }\n\n  get parentDimensions() {\n    const {\n      parentScale,\n      pageDimensions: [pageWidth, pageHeight],\n    } = this;\n    const scaledWidth = pageWidth * parentScale;\n    const scaledHeight = pageHeight * parentScale;\n    return FeatureTest.isCSSRoundSupported\n      ? [Math.round(scaledWidth), Math.round(scaledHeight)]\n      : [scaledWidth, scaledHeight];\n  }\n\n  /**\n   * Set the dimensions of this editor.\n   * @param {number} width\n   * @param {number} height\n   */\n  setDims(width, height) {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.div.style.width = `${((100 * width) / parentWidth).toFixed(2)}%`;\n    if (!this.#keepAspectRatio) {\n      this.div.style.height = `${((100 * height) / parentHeight).toFixed(2)}%`;\n    }\n    this.#altTextButton?.classList.toggle(\n      \"small\",\n      width < AnnotationEditor.SMALL_EDITOR_SIZE ||\n        height < AnnotationEditor.SMALL_EDITOR_SIZE\n    );\n  }\n\n  fixDims() {\n    const { style } = this.div;\n    const { height, width } = style;\n    const widthPercent = width.endsWith(\"%\");\n    const heightPercent = !this.#keepAspectRatio && height.endsWith(\"%\");\n    if (widthPercent && heightPercent) {\n      return;\n    }\n\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    if (!widthPercent) {\n      style.width = `${((100 * parseFloat(width)) / parentWidth).toFixed(2)}%`;\n    }\n    if (!this.#keepAspectRatio && !heightPercent) {\n      style.height = `${((100 * parseFloat(height)) / parentHeight).toFixed(\n        2\n      )}%`;\n    }\n  }\n\n  /**\n   * Get the translation used to position this editor when it's created.\n   * @returns {Array<number>}\n   */\n  getInitialTranslation() {\n    return [0, 0];\n  }\n\n  #createResizers() {\n    if (this.#resizersDiv) {\n      return;\n    }\n    this.#resizersDiv = document.createElement(\"div\");\n    this.#resizersDiv.classList.add(\"resizers\");\n    // When the resizers are used with the keyboard, they're focusable, hence\n    // we want to have them in this order (top left, top middle, top right, ...)\n    // in the DOM to have the focus order correct.\n    const classes = this._willKeepAspectRatio\n      ? [\"topLeft\", \"topRight\", \"bottomRight\", \"bottomLeft\"]\n      : [\n          \"topLeft\",\n          \"topMiddle\",\n          \"topRight\",\n          \"middleRight\",\n          \"bottomRight\",\n          \"bottomMiddle\",\n          \"bottomLeft\",\n          \"middleLeft\",\n        ];\n    for (const name of classes) {\n      const div = document.createElement(\"div\");\n      this.#resizersDiv.append(div);\n      div.classList.add(\"resizer\", name);\n      div.setAttribute(\"data-resizer-name\", name);\n      div.addEventListener(\n        \"pointerdown\",\n        this.#resizerPointerdown.bind(this, name)\n      );\n      div.addEventListener(\"contextmenu\", noContextMenu);\n      div.tabIndex = -1;\n    }\n    this.div.prepend(this.#resizersDiv);\n  }\n\n  #resizerPointerdown(name, event) {\n    event.preventDefault();\n    const { isMac } = FeatureTest.platform;\n    if (event.button !== 0 || (event.ctrlKey && isMac)) {\n      return;\n    }\n\n    this.#toggleAltTextButton(false);\n\n    const boundResizerPointermove = this.#resizerPointermove.bind(this, name);\n    const savedDraggable = this._isDraggable;\n    this._isDraggable = false;\n    const pointerMoveOptions = { passive: true, capture: true };\n    this.parent.togglePointerEvents(false);\n    window.addEventListener(\n      \"pointermove\",\n      boundResizerPointermove,\n      pointerMoveOptions\n    );\n    const savedX = this.x;\n    const savedY = this.y;\n    const savedWidth = this.width;\n    const savedHeight = this.height;\n    const savedParentCursor = this.parent.div.style.cursor;\n    const savedCursor = this.div.style.cursor;\n    this.div.style.cursor = this.parent.div.style.cursor =\n      window.getComputedStyle(event.target).cursor;\n\n    const pointerUpCallback = () => {\n      this.parent.togglePointerEvents(true);\n      this.#toggleAltTextButton(true);\n      this._isDraggable = savedDraggable;\n      window.removeEventListener(\"pointerup\", pointerUpCallback);\n      window.removeEventListener(\"blur\", pointerUpCallback);\n      window.removeEventListener(\n        \"pointermove\",\n        boundResizerPointermove,\n        pointerMoveOptions\n      );\n      this.parent.div.style.cursor = savedParentCursor;\n      this.div.style.cursor = savedCursor;\n\n      this.#addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight);\n    };\n    window.addEventListener(\"pointerup\", pointerUpCallback);\n    // If the user switches to another window (with alt+tab), then we end the\n    // resize session.\n    window.addEventListener(\"blur\", pointerUpCallback);\n  }\n\n  #addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight) {\n    const newX = this.x;\n    const newY = this.y;\n    const newWidth = this.width;\n    const newHeight = this.height;\n    if (\n      newX === savedX &&\n      newY === savedY &&\n      newWidth === savedWidth &&\n      newHeight === savedHeight\n    ) {\n      return;\n    }\n\n    this.addCommands({\n      cmd: () => {\n        this.width = newWidth;\n        this.height = newHeight;\n        this.x = newX;\n        this.y = newY;\n        const [parentWidth, parentHeight] = this.parentDimensions;\n        this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n        this.fixAndSetPosition();\n      },\n      undo: () => {\n        this.width = savedWidth;\n        this.height = savedHeight;\n        this.x = savedX;\n        this.y = savedY;\n        const [parentWidth, parentHeight] = this.parentDimensions;\n        this.setDims(parentWidth * savedWidth, parentHeight * savedHeight);\n        this.fixAndSetPosition();\n      },\n      mustExec: true,\n    });\n  }\n\n  #resizerPointermove(name, event) {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    const savedX = this.x;\n    const savedY = this.y;\n    const savedWidth = this.width;\n    const savedHeight = this.height;\n    const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;\n    const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;\n\n    // 10000 because we multiply by 100 and use toFixed(2) in fixAndSetPosition.\n    // Without rounding, the positions of the corners other than the top left\n    // one can be slightly wrong.\n    const round = x => Math.round(x * 10000) / 10000;\n    const rotationMatrix = this.#getRotationMatrix(this.rotation);\n    const transf = (x, y) => [\n      rotationMatrix[0] * x + rotationMatrix[2] * y,\n      rotationMatrix[1] * x + rotationMatrix[3] * y,\n    ];\n    const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation);\n    const invTransf = (x, y) => [\n      invRotationMatrix[0] * x + invRotationMatrix[2] * y,\n      invRotationMatrix[1] * x + invRotationMatrix[3] * y,\n    ];\n    let getPoint;\n    let getOpposite;\n    let isDiagonal = false;\n    let isHorizontal = false;\n\n    switch (name) {\n      case \"topLeft\":\n        isDiagonal = true;\n        getPoint = (w, h) => [0, 0];\n        getOpposite = (w, h) => [w, h];\n        break;\n      case \"topMiddle\":\n        getPoint = (w, h) => [w / 2, 0];\n        getOpposite = (w, h) => [w / 2, h];\n        break;\n      case \"topRight\":\n        isDiagonal = true;\n        getPoint = (w, h) => [w, 0];\n        getOpposite = (w, h) => [0, h];\n        break;\n      case \"middleRight\":\n        isHorizontal = true;\n        getPoint = (w, h) => [w, h / 2];\n        getOpposite = (w, h) => [0, h / 2];\n        break;\n      case \"bottomRight\":\n        isDiagonal = true;\n        getPoint = (w, h) => [w, h];\n        getOpposite = (w, h) => [0, 0];\n        break;\n      case \"bottomMiddle\":\n        getPoint = (w, h) => [w / 2, h];\n        getOpposite = (w, h) => [w / 2, 0];\n        break;\n      case \"bottomLeft\":\n        isDiagonal = true;\n        getPoint = (w, h) => [0, h];\n        getOpposite = (w, h) => [w, 0];\n        break;\n      case \"middleLeft\":\n        isHorizontal = true;\n        getPoint = (w, h) => [0, h / 2];\n        getOpposite = (w, h) => [w, h / 2];\n        break;\n    }\n\n    const point = getPoint(savedWidth, savedHeight);\n    const oppositePoint = getOpposite(savedWidth, savedHeight);\n    let transfOppositePoint = transf(...oppositePoint);\n    const oppositeX = round(savedX + transfOppositePoint[0]);\n    const oppositeY = round(savedY + transfOppositePoint[1]);\n    let ratioX = 1;\n    let ratioY = 1;\n\n    let [deltaX, deltaY] = this.screenToPageTranslation(\n      event.movementX,\n      event.movementY\n    );\n    [deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight);\n\n    if (isDiagonal) {\n      const oldDiag = Math.hypot(savedWidth, savedHeight);\n      ratioX = ratioY = Math.max(\n        Math.min(\n          Math.hypot(\n            oppositePoint[0] - point[0] - deltaX,\n            oppositePoint[1] - point[1] - deltaY\n          ) / oldDiag,\n          // Avoid the editor to be larger than the page.\n          1 / savedWidth,\n          1 / savedHeight\n        ),\n        // Avoid the editor to be smaller than the minimum size.\n        minWidth / savedWidth,\n        minHeight / savedHeight\n      );\n    } else if (isHorizontal) {\n      ratioX =\n        Math.max(\n          minWidth,\n          Math.min(1, Math.abs(oppositePoint[0] - point[0] - deltaX))\n        ) / savedWidth;\n    } else {\n      ratioY =\n        Math.max(\n          minHeight,\n          Math.min(1, Math.abs(oppositePoint[1] - point[1] - deltaY))\n        ) / savedHeight;\n    }\n\n    const newWidth = round(savedWidth * ratioX);\n    const newHeight = round(savedHeight * ratioY);\n    transfOppositePoint = transf(...getOpposite(newWidth, newHeight));\n    const newX = oppositeX - transfOppositePoint[0];\n    const newY = oppositeY - transfOppositePoint[1];\n\n    this.width = newWidth;\n    this.height = newHeight;\n    this.x = newX;\n    this.y = newY;\n\n    this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n    this.fixAndSetPosition();\n  }\n\n  async addAltTextButton() {\n    if (this.#altTextButton) {\n      return;\n    }\n    const altText = (this.#altTextButton = document.createElement(\"button\"));\n    altText.className = \"altText\";\n    const msg = await AnnotationEditor._l10nPromise.get(\n      \"pdfjs-editor-alt-text-button-label\"\n    );\n    altText.textContent = msg;\n    altText.setAttribute(\"aria-label\", msg);\n    altText.tabIndex = \"0\";\n    altText.addEventListener(\"contextmenu\", noContextMenu);\n    altText.addEventListener(\"pointerdown\", event => event.stopPropagation());\n\n    const onClick = event => {\n      this.#altTextButton.hidden = true;\n      event.preventDefault();\n      this._uiManager.editAltText(this);\n    };\n    altText.addEventListener(\"click\", onClick, { capture: true });\n    altText.addEventListener(\"keydown\", event => {\n      if (event.target === altText && event.key === \"Enter\") {\n        this.#altTextWasFromKeyBoard = true;\n        onClick(event);\n      }\n    });\n    this.#setAltTextButtonState();\n    this.div.append(altText);\n    if (!AnnotationEditor.SMALL_EDITOR_SIZE) {\n      // We take the width of the alt text button and we add 40% to it to be\n      // sure to have enough space for it.\n      const PERCENT = 40;\n      AnnotationEditor.SMALL_EDITOR_SIZE = Math.min(\n        128,\n        Math.round(altText.getBoundingClientRect().width * (1 + PERCENT / 100))\n      );\n    }\n  }\n\n  async #setAltTextButtonState() {\n    const button = this.#altTextButton;\n    if (!button) {\n      return;\n    }\n    if (!this.#altText && !this.#altTextDecorative) {\n      button.classList.remove(\"done\");\n      this.#altTextTooltip?.remove();\n      return;\n    }\n    button.classList.add(\"done\");\n\n    AnnotationEditor._l10nPromise\n      .get(\"pdfjs-editor-alt-text-edit-button-label\")\n      .then(msg => {\n        button.setAttribute(\"aria-label\", msg);\n      });\n    let tooltip = this.#altTextTooltip;\n    if (!tooltip) {\n      this.#altTextTooltip = tooltip = document.createElement(\"span\");\n      tooltip.className = \"tooltip\";\n      tooltip.setAttribute(\"role\", \"tooltip\");\n      const id = (tooltip.id = `alt-text-tooltip-${this.id}`);\n      button.setAttribute(\"aria-describedby\", id);\n\n      const DELAY_TO_SHOW_TOOLTIP = 100;\n      button.addEventListener(\"mouseenter\", () => {\n        this.#altTextTooltipTimeout = setTimeout(() => {\n          this.#altTextTooltipTimeout = null;\n          this.#altTextTooltip.classList.add(\"show\");\n          this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n            source: this,\n            details: {\n              type: \"editing\",\n              subtype: this.editorType,\n              data: {\n                action: \"alt_text_tooltip\",\n              },\n            },\n          });\n        }, DELAY_TO_SHOW_TOOLTIP);\n      });\n      button.addEventListener(\"mouseleave\", () => {\n        if (this.#altTextTooltipTimeout) {\n          clearTimeout(this.#altTextTooltipTimeout);\n          this.#altTextTooltipTimeout = null;\n        }\n        this.#altTextTooltip?.classList.remove(\"show\");\n      });\n    }\n    tooltip.innerText = this.#altTextDecorative\n      ? await AnnotationEditor._l10nPromise.get(\n          \"pdfjs-editor-alt-text-decorative-tooltip\"\n        )\n      : this.#altText;\n\n    if (!tooltip.parentNode) {\n      button.append(tooltip);\n    }\n\n    const element = this.getImageForAltText();\n    element?.setAttribute(\"aria-describedby\", tooltip.id);\n  }\n\n  #toggleAltTextButton(enabled = false) {\n    if (!this.#altTextButton) {\n      return;\n    }\n    if (!enabled && this.#altTextTooltipTimeout) {\n      clearTimeout(this.#altTextTooltipTimeout);\n      this.#altTextTooltipTimeout = null;\n    }\n    this.#altTextButton.disabled = !enabled;\n  }\n\n  altTextFinish() {\n    if (!this.#altTextButton) {\n      return;\n    }\n    this.#altTextButton.hidden = false;\n    this.#altTextButton.focus({ focusVisible: this.#altTextWasFromKeyBoard });\n    this.#altTextWasFromKeyBoard = false;\n  }\n\n  addEditToolbar() {\n    if (this.#editToolbar || this.#isInEditMode) {\n      return;\n    }\n    this.#editToolbar = new EditorToolbar(this);\n    this.div.append(this.#editToolbar.render());\n  }\n\n  removeEditToolbar() {\n    if (!this.#editToolbar) {\n      return;\n    }\n    this.#editToolbar.remove();\n    this.#editToolbar = null;\n  }\n\n  getClientDimensions() {\n    return this.div.getBoundingClientRect();\n  }\n\n  get altTextData() {\n    return {\n      altText: this.#altText,\n      decorative: this.#altTextDecorative,\n    };\n  }\n\n  /**\n   * Set the alt text data.\n   */\n  set altTextData({ altText, decorative }) {\n    if (this.#altText === altText && this.#altTextDecorative === decorative) {\n      return;\n    }\n    this.#altText = altText;\n    this.#altTextDecorative = decorative;\n    this.#setAltTextButtonState();\n  }\n\n  /**\n   * Render this editor in a div.\n   * @returns {HTMLDivElement | null}\n   */\n  render() {\n    this.div = document.createElement(\"div\");\n    this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n    this.div.className = this.name;\n    this.div.setAttribute(\"id\", this.id);\n    this.div.setAttribute(\"tabIndex\", 0);\n\n    this.setInForeground();\n\n    this.div.addEventListener(\"focusin\", this.#boundFocusin);\n    this.div.addEventListener(\"focusout\", this.#boundFocusout);\n\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    if (this.parentRotation % 180 !== 0) {\n      this.div.style.maxWidth = `${((100 * parentHeight) / parentWidth).toFixed(\n        2\n      )}%`;\n      this.div.style.maxHeight = `${(\n        (100 * parentWidth) /\n        parentHeight\n      ).toFixed(2)}%`;\n    }\n\n    const [tx, ty] = this.getInitialTranslation();\n    this.translate(tx, ty);\n\n    bindEvents(this, this.div, [\"pointerdown\"]);\n\n    return this.div;\n  }\n\n  /**\n   * Onpointerdown callback.\n   * @param {PointerEvent} event\n   */\n  pointerdown(event) {\n    const { isMac } = FeatureTest.platform;\n    if (event.button !== 0 || (event.ctrlKey && isMac)) {\n      // Avoid to focus this editor because of a non-left click.\n      event.preventDefault();\n      return;\n    }\n\n    this.#hasBeenClicked = true;\n\n    this.#setUpDragSession(event);\n  }\n\n  #setUpDragSession(event) {\n    if (!this._isDraggable) {\n      return;\n    }\n\n    const isSelected = this._uiManager.isSelected(this);\n    this._uiManager.setUpDragSession();\n\n    let pointerMoveOptions, pointerMoveCallback;\n    if (isSelected) {\n      pointerMoveOptions = { passive: true, capture: true };\n      pointerMoveCallback = e => {\n        const [tx, ty] = this.screenToPageTranslation(e.movementX, e.movementY);\n        this._uiManager.dragSelectedEditors(tx, ty);\n      };\n      window.addEventListener(\n        \"pointermove\",\n        pointerMoveCallback,\n        pointerMoveOptions\n      );\n    }\n\n    const pointerUpCallback = () => {\n      window.removeEventListener(\"pointerup\", pointerUpCallback);\n      window.removeEventListener(\"blur\", pointerUpCallback);\n      if (isSelected) {\n        window.removeEventListener(\n          \"pointermove\",\n          pointerMoveCallback,\n          pointerMoveOptions\n        );\n      }\n\n      this.#hasBeenClicked = false;\n      if (!this._uiManager.endDragSession()) {\n        const { isMac } = FeatureTest.platform;\n        if (\n          (event.ctrlKey && !isMac) ||\n          event.shiftKey ||\n          (event.metaKey && isMac)\n        ) {\n          this.parent.toggleSelected(this);\n        } else {\n          this.parent.setSelected(this);\n        }\n      }\n    };\n    window.addEventListener(\"pointerup\", pointerUpCallback);\n    // If the user is using alt+tab during the dragging session, the pointerup\n    // event could be not fired, but a blur event is fired so we can use it in\n    // order to interrupt the dragging session.\n    window.addEventListener(\"blur\", pointerUpCallback);\n  }\n\n  moveInDOM() {\n    // Moving the editor in the DOM can be expensive, so we wait a bit before.\n    // It's important to not block the UI (for example when changing the font\n    // size in a FreeText).\n    if (this.#moveInDOMTimeout) {\n      clearTimeout(this.#moveInDOMTimeout);\n    }\n    this.#moveInDOMTimeout = setTimeout(() => {\n      this.#moveInDOMTimeout = null;\n      this.parent?.moveEditorInDOM(this);\n    }, 0);\n  }\n\n  _setParentAndPosition(parent, x, y) {\n    parent.changeParent(this);\n    this.x = x;\n    this.y = y;\n    this.fixAndSetPosition();\n  }\n\n  /**\n   * Convert the current rect into a page one.\n   */\n  getRect(tx, ty) {\n    const scale = this.parentScale;\n    const [pageWidth, pageHeight] = this.pageDimensions;\n    const [pageX, pageY] = this.pageTranslation;\n    const shiftX = tx / scale;\n    const shiftY = ty / scale;\n    const x = this.x * pageWidth;\n    const y = this.y * pageHeight;\n    const width = this.width * pageWidth;\n    const height = this.height * pageHeight;\n\n    switch (this.rotation) {\n      case 0:\n        return [\n          x + shiftX + pageX,\n          pageHeight - y - shiftY - height + pageY,\n          x + shiftX + width + pageX,\n          pageHeight - y - shiftY + pageY,\n        ];\n      case 90:\n        return [\n          x + shiftY + pageX,\n          pageHeight - y + shiftX + pageY,\n          x + shiftY + height + pageX,\n          pageHeight - y + shiftX + width + pageY,\n        ];\n      case 180:\n        return [\n          x - shiftX - width + pageX,\n          pageHeight - y + shiftY + pageY,\n          x - shiftX + pageX,\n          pageHeight - y + shiftY + height + pageY,\n        ];\n      case 270:\n        return [\n          x - shiftY - height + pageX,\n          pageHeight - y - shiftX - width + pageY,\n          x - shiftY + pageX,\n          pageHeight - y - shiftX + pageY,\n        ];\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n  }\n\n  getRectInCurrentCoords(rect, pageHeight) {\n    const [x1, y1, x2, y2] = rect;\n\n    const width = x2 - x1;\n    const height = y2 - y1;\n\n    switch (this.rotation) {\n      case 0:\n        return [x1, pageHeight - y2, width, height];\n      case 90:\n        return [x1, pageHeight - y1, height, width];\n      case 180:\n        return [x2, pageHeight - y1, width, height];\n      case 270:\n        return [x2, pageHeight - y2, height, width];\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n  }\n\n  /**\n   * Executed once this editor has been rendered.\n   */\n  onceAdded() {}\n\n  /**\n   * Check if the editor contains something.\n   * @returns {boolean}\n   */\n  isEmpty() {\n    return false;\n  }\n\n  /**\n   * Enable edit mode.\n   */\n  enableEditMode() {\n    this.#isInEditMode = true;\n  }\n\n  /**\n   * Disable edit mode.\n   */\n  disableEditMode() {\n    this.#isInEditMode = false;\n  }\n\n  /**\n   * Check if the editor is edited.\n   * @returns {boolean}\n   */\n  isInEditMode() {\n    return this.#isInEditMode;\n  }\n\n  /**\n   * If it returns true, then this editor handles the keyboard\n   * events itself.\n   * @returns {boolean}\n   */\n  shouldGetKeyboardEvents() {\n    return this.#isResizerEnabledForKeyboard;\n  }\n\n  /**\n   * Check if this editor needs to be rebuilt or not.\n   * @returns {boolean}\n   */\n  needsToBeRebuilt() {\n    return this.div && !this.isAttachedToDOM;\n  }\n\n  /**\n   * Rebuild the editor in case it has been removed on undo.\n   *\n   * To implement in subclasses.\n   */\n  rebuild() {\n    this.div?.addEventListener(\"focusin\", this.#boundFocusin);\n    this.div?.addEventListener(\"focusout\", this.#boundFocusout);\n  }\n\n  /**\n   * Serialize the editor.\n   * The result of the serialization will be used to construct a\n   * new annotation to add to the pdf document.\n   *\n   * To implement in subclasses.\n   * @param {boolean} [isForCopying]\n   * @param {Object | null} [context]\n   * @returns {Object | null}\n   */\n  serialize(isForCopying = false, context = null) {\n    unreachable(\"An editor must be serializable\");\n  }\n\n  /**\n   * Deserialize the editor.\n   * The result of the deserialization is a new editor.\n   *\n   * @param {Object} data\n   * @param {AnnotationEditorLayer} parent\n   * @param {AnnotationEditorUIManager} uiManager\n   * @returns {AnnotationEditor | null}\n   */\n  static deserialize(data, parent, uiManager) {\n    const editor = new this.prototype.constructor({\n      parent,\n      id: parent.getNextId(),\n      uiManager,\n    });\n    editor.rotation = data.rotation;\n\n    const [pageWidth, pageHeight] = editor.pageDimensions;\n    const [x, y, width, height] = editor.getRectInCurrentCoords(\n      data.rect,\n      pageHeight\n    );\n    editor.x = x / pageWidth;\n    editor.y = y / pageHeight;\n    editor.width = width / pageWidth;\n    editor.height = height / pageHeight;\n\n    return editor;\n  }\n\n  /**\n   * Remove this editor.\n   * It's used on ctrl+backspace action.\n   */\n  remove() {\n    this.div.removeEventListener(\"focusin\", this.#boundFocusin);\n    this.div.removeEventListener(\"focusout\", this.#boundFocusout);\n\n    if (!this.isEmpty()) {\n      // The editor is removed but it can be back at some point thanks to\n      // undo/redo so we must commit it before.\n      this.commit();\n    }\n    if (this.parent) {\n      this.parent.remove(this);\n    } else {\n      this._uiManager.removeEditor(this);\n    }\n\n    // The editor is removed so we can remove the alt text button and if it's\n    // restored then it's up to the subclass to add it back.\n    this.#altTextButton?.remove();\n    this.#altTextButton = null;\n    this.#altTextTooltip = null;\n    if (this.#moveInDOMTimeout) {\n      clearTimeout(this.#moveInDOMTimeout);\n      this.#moveInDOMTimeout = null;\n    }\n    this.#stopResizing();\n    this.removeEditToolbar();\n  }\n\n  /**\n   * @returns {boolean} true if this editor can be resized.\n   */\n  get isResizable() {\n    return false;\n  }\n\n  /**\n   * Add the resizers to this editor.\n   */\n  makeResizable() {\n    if (this.isResizable) {\n      this.#createResizers();\n      this.#resizersDiv.classList.remove(\"hidden\");\n      bindEvents(this, this.div, [\"keydown\"]);\n    }\n  }\n\n  /**\n   * onkeydown callback.\n   * @param {KeyboardEvent} event\n   */\n  keydown(event) {\n    if (\n      !this.isResizable ||\n      event.target !== this.div ||\n      event.key !== \"Enter\"\n    ) {\n      return;\n    }\n    this._uiManager.setSelected(this);\n    this.#savedDimensions = {\n      savedX: this.x,\n      savedY: this.y,\n      savedWidth: this.width,\n      savedHeight: this.height,\n    };\n    const children = this.#resizersDiv.children;\n    if (!this.#allResizerDivs) {\n      this.#allResizerDivs = Array.from(children);\n      const boundResizerKeydown = this.#resizerKeydown.bind(this);\n      const boundResizerBlur = this.#resizerBlur.bind(this);\n      for (const div of this.#allResizerDivs) {\n        const name = div.getAttribute(\"data-resizer-name\");\n        div.setAttribute(\"role\", \"spinbutton\");\n        div.addEventListener(\"keydown\", boundResizerKeydown);\n        div.addEventListener(\"blur\", boundResizerBlur);\n        div.addEventListener(\"focus\", this.#resizerFocus.bind(this, name));\n        AnnotationEditor._l10nPromise\n          .get(`pdfjs-editor-resizer-label-${name}`)\n          .then(msg => div.setAttribute(\"aria-label\", msg));\n      }\n    }\n\n    // We want to have the resizers in the visual order, so we move the first\n    // (top-left) to the right place.\n    const first = this.#allResizerDivs[0];\n    let firstPosition = 0;\n    for (const div of children) {\n      if (div === first) {\n        break;\n      }\n      firstPosition++;\n    }\n    const nextFirstPosition =\n      (((360 - this.rotation + this.parentRotation) % 360) / 90) *\n      (this.#allResizerDivs.length / 4);\n\n    if (nextFirstPosition !== firstPosition) {\n      // We need to reorder the resizers in the DOM in order to have the focus\n      // on the top-left one.\n      if (nextFirstPosition < firstPosition) {\n        for (let i = 0; i < firstPosition - nextFirstPosition; i++) {\n          this.#resizersDiv.append(this.#resizersDiv.firstChild);\n        }\n      } else if (nextFirstPosition > firstPosition) {\n        for (let i = 0; i < nextFirstPosition - firstPosition; i++) {\n          this.#resizersDiv.firstChild.before(this.#resizersDiv.lastChild);\n        }\n      }\n\n      let i = 0;\n      for (const child of children) {\n        const div = this.#allResizerDivs[i++];\n        const name = div.getAttribute(\"data-resizer-name\");\n        AnnotationEditor._l10nPromise\n          .get(`pdfjs-editor-resizer-label-${name}`)\n          .then(msg => child.setAttribute(\"aria-label\", msg));\n      }\n    }\n\n    this.#setResizerTabIndex(0);\n    this.#isResizerEnabledForKeyboard = true;\n    this.#resizersDiv.firstChild.focus({ focusVisible: true });\n    event.preventDefault();\n    event.stopImmediatePropagation();\n  }\n\n  #resizerKeydown(event) {\n    AnnotationEditor._resizerKeyboardManager.exec(this, event);\n  }\n\n  #resizerBlur(event) {\n    if (\n      this.#isResizerEnabledForKeyboard &&\n      event.relatedTarget?.parentNode !== this.#resizersDiv\n    ) {\n      this.#stopResizing();\n    }\n  }\n\n  #resizerFocus(name) {\n    this.#focusedResizerName = this.#isResizerEnabledForKeyboard ? name : \"\";\n  }\n\n  #setResizerTabIndex(value) {\n    if (!this.#allResizerDivs) {\n      return;\n    }\n    for (const div of this.#allResizerDivs) {\n      div.tabIndex = value;\n    }\n  }\n\n  _resizeWithKeyboard(x, y) {\n    if (!this.#isResizerEnabledForKeyboard) {\n      return;\n    }\n    this.#resizerPointermove(this.#focusedResizerName, {\n      movementX: x,\n      movementY: y,\n    });\n  }\n\n  #stopResizing() {\n    this.#isResizerEnabledForKeyboard = false;\n    this.#setResizerTabIndex(-1);\n    if (this.#savedDimensions) {\n      const { savedX, savedY, savedWidth, savedHeight } = this.#savedDimensions;\n      this.#addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight);\n      this.#savedDimensions = null;\n    }\n  }\n\n  _stopResizingWithKeyboard() {\n    this.#stopResizing();\n    this.div.focus();\n  }\n\n  /**\n   * Select this editor.\n   */\n  select() {\n    this.makeResizable();\n    this.div?.classList.add(\"selectedEditor\");\n    this.addEditToolbar();\n    this.#editToolbar?.show();\n  }\n\n  /**\n   * Unselect this editor.\n   */\n  unselect() {\n    this.#resizersDiv?.classList.add(\"hidden\");\n    this.div?.classList.remove(\"selectedEditor\");\n    if (this.div?.contains(document.activeElement)) {\n      // Don't use this.div.blur() because we don't know where the focus will\n      // go.\n      this._uiManager.currentLayer.div.focus();\n    }\n    this.#editToolbar?.hide();\n  }\n\n  /**\n   * Update some parameters which have been changed through the UI.\n   * @param {number} type\n   * @param {*} value\n   */\n  updateParams(type, value) {}\n\n  /**\n   * When the user disables the editing mode some editors can change some of\n   * their properties.\n   */\n  disableEditing() {\n    if (this.#altTextButton) {\n      this.#altTextButton.hidden = true;\n    }\n  }\n\n  /**\n   * When the user enables the editing mode some editors can change some of\n   * their properties.\n   */\n  enableEditing() {\n    if (this.#altTextButton) {\n      this.#altTextButton.hidden = false;\n    }\n  }\n\n  /**\n   * The editor is about to be edited.\n   */\n  enterInEditMode() {}\n\n  /**\n   * @returns {HTMLElement | null} the element requiring an alt text.\n   */\n  getImageForAltText() {\n    return null;\n  }\n\n  /**\n   * Get the div which really contains the displayed content.\n   * @returns {HTMLDivElement | undefined}\n   */\n  get contentDiv() {\n    return this.div;\n  }\n\n  /**\n   * If true then the editor is currently edited.\n   * @type {boolean}\n   */\n  get isEditing() {\n    return this.#isEditing;\n  }\n\n  /**\n   * When set to true, it means that this editor is currently edited.\n   * @param {boolean} value\n   */\n  set isEditing(value) {\n    this.#isEditing = value;\n    if (!this.parent) {\n      return;\n    }\n    if (value) {\n      this.parent.setSelected(this);\n      this.parent.setActiveEditor(this);\n    } else {\n      this.parent.setActiveEditor(null);\n    }\n  }\n\n  /**\n   * Set the aspect ratio to use when resizing.\n   * @param {number} width\n   * @param {number} height\n   */\n  setAspectRatio(width, height) {\n    this.#keepAspectRatio = true;\n    const aspectRatio = width / height;\n    const { style } = this.div;\n    style.aspectRatio = aspectRatio;\n    style.height = \"auto\";\n  }\n\n  static get MIN_SIZE() {\n    return 16;\n  }\n}\n\n// This class is used to fake an editor which has been deleted.\nclass FakeEditor extends AnnotationEditor {\n  constructor(params) {\n    super(params);\n    this.annotationElementId = params.annotationElementId;\n    this.deleted = true;\n  }\n\n  serialize() {\n    return {\n      id: this.annotationElementId,\n      deleted: true,\n      pageIndex: this.pageIndex,\n    };\n  }\n}\n\nexport { AnnotationEditor };\n","/* Copyright 2023 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 Outliner {\n  #box;\n\n  #verticalEdges = [];\n\n  #intervals = [];\n\n  /**\n   * Construct an outliner.\n   * @param {Array<Object>} boxes - An array of axis-aligned rectangles.\n   * @param {number} borderWidth - The width of the border of the boxes, it\n   *   allows to make the boxes bigger (or smaller).\n   * @param {number} innerMargin - The margin between the boxes and the\n   *   outlines. It's important to not have a null innerMargin when we want to\n   *   draw the outline else the stroked outline could be clipped because of its\n   *   width.\n   * @param {boolean} isLTR - true if we're in LTR mode. It's used to determine\n   *   the last point of the boxes.\n   */\n  constructor(boxes, borderWidth = 0, innerMargin = 0, isLTR = true) {\n    let minX = Infinity;\n    let maxX = -Infinity;\n    let minY = Infinity;\n    let maxY = -Infinity;\n\n    // We round the coordinates to slightly reduce the number of edges in the\n    // final outlines.\n    const NUMBER_OF_DIGITS = 4;\n    const EPSILON = 10 ** -NUMBER_OF_DIGITS;\n\n    // The coordinates of the boxes are in the page coordinate system.\n    for (const { x, y, width, height } of boxes) {\n      const x1 = Math.floor((x - borderWidth) / EPSILON) * EPSILON;\n      const x2 = Math.ceil((x + width + borderWidth) / EPSILON) * EPSILON;\n      const y1 = Math.floor((y - borderWidth) / EPSILON) * EPSILON;\n      const y2 = Math.ceil((y + height + borderWidth) / EPSILON) * EPSILON;\n      const left = [x1, y1, y2, true];\n      const right = [x2, y1, y2, false];\n      this.#verticalEdges.push(left, right);\n\n      minX = Math.min(minX, x1);\n      maxX = Math.max(maxX, x2);\n      minY = Math.min(minY, y1);\n      maxY = Math.max(maxY, y2);\n    }\n\n    const bboxWidth = maxX - minX + 2 * innerMargin;\n    const bboxHeight = maxY - minY + 2 * innerMargin;\n    const shiftedMinX = minX - innerMargin;\n    const shiftedMinY = minY - innerMargin;\n    const lastEdge = this.#verticalEdges.at(isLTR ? -1 : -2);\n    const lastPoint = [lastEdge[0], lastEdge[2]];\n\n    // Convert the coordinates of the edges into box coordinates.\n    for (const edge of this.#verticalEdges) {\n      const [x, y1, y2] = edge;\n      edge[0] = (x - shiftedMinX) / bboxWidth;\n      edge[1] = (y1 - shiftedMinY) / bboxHeight;\n      edge[2] = (y2 - shiftedMinY) / bboxHeight;\n    }\n\n    this.#box = {\n      x: shiftedMinX,\n      y: shiftedMinY,\n      width: bboxWidth,\n      height: bboxHeight,\n      lastPoint,\n    };\n  }\n\n  getOutlines() {\n    // We begin to sort lexicographically the vertical edges by their abscissa,\n    // and then by their ordinate.\n    this.#verticalEdges.sort(\n      (a, b) => a[0] - b[0] || a[1] - b[1] || a[2] - b[2]\n    );\n\n    // We're now using a sweep line algorithm to find the outlines.\n    // We start with the leftmost vertical edge, and we're going to iterate\n    // over all the vertical edges from left to right.\n    // Each time we encounter a left edge, we're going to insert the interval\n    // [y1, y2] in the set of intervals.\n    // This set of intervals is used to break the vertical edges into chunks:\n    // we only take the part of the vertical edge that isn't in the union of\n    // the intervals.\n    const outlineVerticalEdges = [];\n    for (const edge of this.#verticalEdges) {\n      if (edge[3]) {\n        // Left edge.\n        outlineVerticalEdges.push(...this.#breakEdge(edge));\n        this.#insert(edge);\n      } else {\n        // Right edge.\n        this.#remove(edge);\n        outlineVerticalEdges.push(...this.#breakEdge(edge));\n      }\n    }\n    return this.#getOutlines(outlineVerticalEdges);\n  }\n\n  #getOutlines(outlineVerticalEdges) {\n    const edges = [];\n    const allEdges = new Set();\n\n    for (const edge of outlineVerticalEdges) {\n      const [x, y1, y2] = edge;\n      edges.push([x, y1, edge], [x, y2, edge]);\n    }\n\n    // We sort lexicographically the vertices of each edge by their ordinate and\n    // by their abscissa.\n    // Every pair (v_2i, v_{2i + 1}) of vertices defines a horizontal edge.\n    // So for every vertical edge, we're going to add the two vertical edges\n    // which are connected to it through a horizontal edge.\n    edges.sort((a, b) => a[1] - b[1] || a[0] - b[0]);\n    for (let i = 0, ii = edges.length; i < ii; i += 2) {\n      const edge1 = edges[i][2];\n      const edge2 = edges[i + 1][2];\n      edge1.push(edge2);\n      edge2.push(edge1);\n      allEdges.add(edge1);\n      allEdges.add(edge2);\n    }\n    const outlines = [];\n    let outline;\n\n    while (allEdges.size > 0) {\n      const edge = allEdges.values().next().value;\n      let [x, y1, y2, edge1, edge2] = edge;\n      allEdges.delete(edge);\n      let lastPointX = x;\n      let lastPointY = y1;\n\n      outline = [x, y2];\n      outlines.push(outline);\n\n      while (true) {\n        let e;\n        if (allEdges.has(edge1)) {\n          e = edge1;\n        } else if (allEdges.has(edge2)) {\n          e = edge2;\n        } else {\n          break;\n        }\n\n        allEdges.delete(e);\n        [x, y1, y2, edge1, edge2] = e;\n\n        if (lastPointX !== x) {\n          outline.push(lastPointX, lastPointY, x, lastPointY === y1 ? y1 : y2);\n          lastPointX = x;\n        }\n        lastPointY = lastPointY === y1 ? y2 : y1;\n      }\n      outline.push(lastPointX, lastPointY);\n    }\n    return { outlines, box: this.#box };\n  }\n\n  #binarySearch(y) {\n    const array = this.#intervals;\n    let start = 0;\n    let end = array.length - 1;\n\n    while (start <= end) {\n      const middle = (start + end) >> 1;\n      const y1 = array[middle][0];\n      if (y1 === y) {\n        return middle;\n      }\n      if (y1 < y) {\n        start = middle + 1;\n      } else {\n        end = middle - 1;\n      }\n    }\n    return end + 1;\n  }\n\n  #insert([, y1, y2]) {\n    const index = this.#binarySearch(y1);\n    this.#intervals.splice(index, 0, [y1, y2]);\n  }\n\n  #remove([, y1, y2]) {\n    const index = this.#binarySearch(y1);\n    for (let i = index; i < this.#intervals.length; i++) {\n      const [start, end] = this.#intervals[i];\n      if (start !== y1) {\n        break;\n      }\n      if (start === y1 && end === y2) {\n        this.#intervals.splice(i, 1);\n        return;\n      }\n    }\n    for (let i = index - 1; i >= 0; i--) {\n      const [start, end] = this.#intervals[i];\n      if (start !== y1) {\n        break;\n      }\n      if (start === y1 && end === y2) {\n        this.#intervals.splice(i, 1);\n        return;\n      }\n    }\n  }\n\n  #breakEdge(edge) {\n    const [x, y1, y2] = edge;\n    const results = [[x, y1, y2]];\n    const index = this.#binarySearch(y2);\n    for (let i = 0; i < index; i++) {\n      const [start, end] = this.#intervals[i];\n      for (let j = 0, jj = results.length; j < jj; j++) {\n        const [, y3, y4] = results[j];\n        if (end <= y3 || y4 <= start) {\n          // There is no intersection between the interval and the edge, hence\n          // we keep it as is.\n          continue;\n        }\n        if (y3 >= start) {\n          if (y4 > end) {\n            results[j][1] = end;\n          } else {\n            if (jj === 1) {\n              return [];\n            }\n            // The edge is included in the interval, hence we remove it.\n            results.splice(j, 1);\n            j--;\n            jj--;\n          }\n          continue;\n        }\n        results[j][2] = start;\n        if (y4 > end) {\n          results.push([x, end, y4]);\n        }\n      }\n    }\n    return results;\n  }\n}\n\nexport { Outliner };\n","/* Copyright 2022 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(\"./editor.js\").AnnotationEditor} AnnotationEditor */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./annotation_editor_layer.js\").AnnotationEditorLayer} AnnotationEditorLayer */\n\nimport {\n  AnnotationEditorParamsType,\n  AnnotationEditorPrefix,\n  AnnotationEditorType,\n  FeatureTest,\n  getUuid,\n  shadow,\n  Util,\n  warn,\n} from \"../../shared/util.js\";\nimport {\n  fetchData,\n  getColorValues,\n  getRGB,\n  PixelsPerInch,\n} from \"../display_utils.js\";\n\nfunction bindEvents(obj, element, names) {\n  for (const name of names) {\n    element.addEventListener(name, obj[name].bind(obj));\n  }\n}\n\n/**\n * Convert a number between 0 and 100 into an hex number between 0 and 255.\n * @param {number} opacity\n * @return {string}\n */\nfunction opacityToHex(opacity) {\n  return Math.round(Math.min(255, Math.max(1, 255 * opacity)))\n    .toString(16)\n    .padStart(2, \"0\");\n}\n\n/**\n * Class to create some unique ids for the different editors.\n */\nclass IdManager {\n  #id = 0;\n\n  /**\n   * Get a unique id.\n   * @returns {string}\n   */\n  getId() {\n    return `${AnnotationEditorPrefix}${this.#id++}`;\n  }\n}\n\n/**\n * Class to manage the images used by the editors.\n * The main idea is to try to minimize the memory used by the images.\n * The images are cached and reused when possible\n * We use a refCounter to know when an image is not used anymore but we need to\n * be able to restore an image after a remove+undo, so we keep a file reference\n * or an url one.\n */\nclass ImageManager {\n  #baseId = getUuid();\n\n  #id = 0;\n\n  #cache = null;\n\n  static get _isSVGFittingCanvas() {\n    // By default, Firefox doesn't rescale without preserving the aspect ratio\n    // when drawing an SVG image on a canvas, see https://bugzilla.mozilla.org/1547776.\n    // The \"workaround\" is to append \"svgView(preserveAspectRatio(none))\" to the\n    // url, but according to comment #15, it seems that it leads to unexpected\n    // behavior in Safari.\n    const svg = `data:image/svg+xml;charset=UTF-8,<svg viewBox=\"0 0 1 1\" width=\"1\" height=\"1\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"1\" height=\"1\" style=\"fill:red;\"/></svg>`;\n    const canvas = new OffscreenCanvas(1, 3);\n    const ctx = canvas.getContext(\"2d\");\n    const image = new Image();\n    image.src = svg;\n    const promise = image.decode().then(() => {\n      ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3);\n      return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0;\n    });\n\n    return shadow(this, \"_isSVGFittingCanvas\", promise);\n  }\n\n  async #get(key, rawData) {\n    this.#cache ||= new Map();\n    let data = this.#cache.get(key);\n    if (data === null) {\n      // We already tried to load the image but it failed.\n      return null;\n    }\n    if (data?.bitmap) {\n      data.refCounter += 1;\n      return data;\n    }\n    try {\n      data ||= {\n        bitmap: null,\n        id: `image_${this.#baseId}_${this.#id++}`,\n        refCounter: 0,\n        isSvg: false,\n      };\n      let image;\n      if (typeof rawData === \"string\") {\n        data.url = rawData;\n        image = await fetchData(rawData, \"blob\");\n      } else {\n        image = data.file = rawData;\n      }\n\n      if (image.type === \"image/svg+xml\") {\n        // Unfortunately, createImageBitmap doesn't work with SVG images.\n        // (see https://bugzilla.mozilla.org/1841972).\n        const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas;\n        const fileReader = new FileReader();\n        const imageElement = new Image();\n        const imagePromise = new Promise((resolve, reject) => {\n          imageElement.onload = () => {\n            data.bitmap = imageElement;\n            data.isSvg = true;\n            resolve();\n          };\n          fileReader.onload = async () => {\n            const url = (data.svgUrl = fileReader.result);\n            // We need to set the preserveAspectRatio to none in order to let\n            // the image fits the canvas when resizing.\n            imageElement.src = (await mustRemoveAspectRatioPromise)\n              ? `${url}#svgView(preserveAspectRatio(none))`\n              : url;\n          };\n          imageElement.onerror = fileReader.onerror = reject;\n        });\n        fileReader.readAsDataURL(image);\n        await imagePromise;\n      } else {\n        data.bitmap = await createImageBitmap(image);\n      }\n      data.refCounter = 1;\n    } catch (e) {\n      console.error(e);\n      data = null;\n    }\n    this.#cache.set(key, data);\n    if (data) {\n      this.#cache.set(data.id, data);\n    }\n    return data;\n  }\n\n  async getFromFile(file) {\n    const { lastModified, name, size, type } = file;\n    return this.#get(`${lastModified}_${name}_${size}_${type}`, file);\n  }\n\n  async getFromUrl(url) {\n    return this.#get(url, url);\n  }\n\n  async getFromId(id) {\n    this.#cache ||= new Map();\n    const data = this.#cache.get(id);\n    if (!data) {\n      return null;\n    }\n    if (data.bitmap) {\n      data.refCounter += 1;\n      return data;\n    }\n\n    if (data.file) {\n      return this.getFromFile(data.file);\n    }\n    return this.getFromUrl(data.url);\n  }\n\n  getSvgUrl(id) {\n    const data = this.#cache.get(id);\n    if (!data?.isSvg) {\n      return null;\n    }\n    return data.svgUrl;\n  }\n\n  deleteId(id) {\n    this.#cache ||= new Map();\n    const data = this.#cache.get(id);\n    if (!data) {\n      return;\n    }\n    data.refCounter -= 1;\n    if (data.refCounter !== 0) {\n      return;\n    }\n    data.bitmap = null;\n  }\n\n  // We can use the id only if it belongs this manager.\n  // We must take care of having the right manager because we can copy/paste\n  // some images from other documents, hence it'd be a pity to use an id from an\n  // other manager.\n  isValidId(id) {\n    return id.startsWith(`image_${this.#baseId}_`);\n  }\n}\n\n/**\n * Class to handle undo/redo.\n * Commands are just saved in a buffer.\n * If we hit some memory issues we could likely use a circular buffer.\n * It has to be used as a singleton.\n */\nclass CommandManager {\n  #commands = [];\n\n  #locked = false;\n\n  #maxSize;\n\n  #position = -1;\n\n  constructor(maxSize = 128) {\n    this.#maxSize = maxSize;\n  }\n\n  /**\n   * @typedef {Object} addOptions\n   * @property {function} cmd\n   * @property {function} undo\n   * @property {boolean} mustExec\n   * @property {number} type\n   * @property {boolean} overwriteIfSameType\n   * @property {boolean} keepUndo\n   */\n\n  /**\n   * Add a new couple of commands to be used in case of redo/undo.\n   * @param {addOptions} options\n   */\n  add({\n    cmd,\n    undo,\n    mustExec,\n    type = NaN,\n    overwriteIfSameType = false,\n    keepUndo = false,\n  }) {\n    if (mustExec) {\n      cmd();\n    }\n\n    if (this.#locked) {\n      return;\n    }\n\n    const save = { cmd, undo, type };\n    if (this.#position === -1) {\n      if (this.#commands.length > 0) {\n        // All the commands have been undone and then a new one is added\n        // hence we clear the queue.\n        this.#commands.length = 0;\n      }\n      this.#position = 0;\n      this.#commands.push(save);\n      return;\n    }\n\n    if (overwriteIfSameType && this.#commands[this.#position].type === type) {\n      // For example when we change a color we don't want to\n      // be able to undo all the steps, hence we only want to\n      // keep the last undoable action in this sequence of actions.\n      if (keepUndo) {\n        save.undo = this.#commands[this.#position].undo;\n      }\n      this.#commands[this.#position] = save;\n      return;\n    }\n\n    const next = this.#position + 1;\n    if (next === this.#maxSize) {\n      this.#commands.splice(0, 1);\n    } else {\n      this.#position = next;\n      if (next < this.#commands.length) {\n        this.#commands.splice(next);\n      }\n    }\n\n    this.#commands.push(save);\n  }\n\n  /**\n   * Undo the last command.\n   */\n  undo() {\n    if (this.#position === -1) {\n      // Nothing to undo.\n      return;\n    }\n\n    // Avoid to insert something during the undo execution.\n    this.#locked = true;\n    this.#commands[this.#position].undo();\n    this.#locked = false;\n\n    this.#position -= 1;\n  }\n\n  /**\n   * Redo the last command.\n   */\n  redo() {\n    if (this.#position < this.#commands.length - 1) {\n      this.#position += 1;\n\n      // Avoid to insert something during the redo execution.\n      this.#locked = true;\n      this.#commands[this.#position].cmd();\n      this.#locked = false;\n    }\n  }\n\n  /**\n   * Check if there is something to undo.\n   * @returns {boolean}\n   */\n  hasSomethingToUndo() {\n    return this.#position !== -1;\n  }\n\n  /**\n   * Check if there is something to redo.\n   * @returns {boolean}\n   */\n  hasSomethingToRedo() {\n    return this.#position < this.#commands.length - 1;\n  }\n\n  destroy() {\n    this.#commands = null;\n  }\n}\n\n/**\n * Class to handle the different keyboards shortcuts we can have on mac or\n * non-mac OSes.\n */\nclass KeyboardManager {\n  /**\n   * Create a new keyboard manager class.\n   * @param {Array<Array>} callbacks - an array containing an array of shortcuts\n   * and a callback to call.\n   * A shortcut is a string like `ctrl+c` or `mac+ctrl+c` for mac OS.\n   */\n  constructor(callbacks) {\n    this.buffer = [];\n    this.callbacks = new Map();\n    this.allKeys = new Set();\n\n    const { isMac } = FeatureTest.platform;\n    for (const [keys, callback, options = {}] of callbacks) {\n      for (const key of keys) {\n        const isMacKey = key.startsWith(\"mac+\");\n        if (isMac && isMacKey) {\n          this.callbacks.set(key.slice(4), { callback, options });\n          this.allKeys.add(key.split(\"+\").at(-1));\n        } else if (!isMac && !isMacKey) {\n          this.callbacks.set(key, { callback, options });\n          this.allKeys.add(key.split(\"+\").at(-1));\n        }\n      }\n    }\n  }\n\n  /**\n   * Serialize an event into a string in order to match a\n   * potential key for a callback.\n   * @param {KeyboardEvent} event\n   * @returns {string}\n   */\n  #serialize(event) {\n    if (event.altKey) {\n      this.buffer.push(\"alt\");\n    }\n    if (event.ctrlKey) {\n      this.buffer.push(\"ctrl\");\n    }\n    if (event.metaKey) {\n      this.buffer.push(\"meta\");\n    }\n    if (event.shiftKey) {\n      this.buffer.push(\"shift\");\n    }\n    this.buffer.push(event.key);\n    const str = this.buffer.join(\"+\");\n    this.buffer.length = 0;\n\n    return str;\n  }\n\n  /**\n   * Execute a callback, if any, for a given keyboard event.\n   * The self is used as `this` in the callback.\n   * @param {Object} self\n   * @param {KeyboardEvent} event\n   * @returns\n   */\n  exec(self, event) {\n    if (!this.allKeys.has(event.key)) {\n      return;\n    }\n    const info = this.callbacks.get(this.#serialize(event));\n    if (!info) {\n      return;\n    }\n    const {\n      callback,\n      options: { bubbles = false, args = [], checker = null },\n    } = info;\n\n    if (checker && !checker(self, event)) {\n      return;\n    }\n    callback.bind(self, ...args)();\n\n    // For example, ctrl+s in a FreeText must be handled by the viewer, hence\n    // the event must bubble.\n    if (!bubbles) {\n      event.stopPropagation();\n      event.preventDefault();\n    }\n  }\n}\n\nclass ColorManager {\n  static _colorsMapping = new Map([\n    [\"CanvasText\", [0, 0, 0]],\n    [\"Canvas\", [255, 255, 255]],\n  ]);\n\n  get _colors() {\n    if (\n      typeof PDFJSDev !== \"undefined\" &&\n      PDFJSDev.test(\"LIB\") &&\n      typeof document === \"undefined\"\n    ) {\n      return shadow(this, \"_colors\", ColorManager._colorsMapping);\n    }\n\n    const colors = new Map([\n      [\"CanvasText\", null],\n      [\"Canvas\", null],\n    ]);\n    getColorValues(colors);\n    return shadow(this, \"_colors\", colors);\n  }\n\n  /**\n   * In High Contrast Mode, the color on the screen is not always the\n   * real color used in the pdf.\n   * For example in some cases white can appear to be black but when saving\n   * we want to have white.\n   * @param {string} color\n   * @returns {Array<number>}\n   */\n  convert(color) {\n    const rgb = getRGB(color);\n    if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n      return rgb;\n    }\n\n    for (const [name, RGB] of this._colors) {\n      if (RGB.every((x, i) => x === rgb[i])) {\n        return ColorManager._colorsMapping.get(name);\n      }\n    }\n    return rgb;\n  }\n\n  /**\n   * An input element must have its color value as a hex string\n   * and not as color name.\n   * So this function converts a name into an hex string.\n   * @param {string} name\n   * @returns {string}\n   */\n  getHexCode(name) {\n    const rgb = this._colors.get(name);\n    if (!rgb) {\n      return name;\n    }\n    return Util.makeHexColor(...rgb);\n  }\n}\n\n/**\n * A pdf has several pages and each of them when it will rendered\n * will have an AnnotationEditorLayer which will contain the some\n * new Annotations associated to an editor in order to modify them.\n *\n * This class is used to manage all the different layers, editors and\n * some action like copy/paste, undo/redo, ...\n */\nclass AnnotationEditorUIManager {\n  #activeEditor = null;\n\n  #allEditors = new Map();\n\n  #allLayers = new Map();\n\n  #altTextManager = null;\n\n  #annotationStorage = null;\n\n  #commandManager = new CommandManager();\n\n  #currentPageIndex = 0;\n\n  #deletedAnnotationsElementIds = new Set();\n\n  #draggingEditors = null;\n\n  #editorTypes = null;\n\n  #editorsToRescale = new Set();\n\n  #filterFactory = null;\n\n  #focusMainContainerTimeoutId = null;\n\n  #idManager = new IdManager();\n\n  #isEnabled = false;\n\n  #isWaiting = false;\n\n  #lastActiveElement = null;\n\n  #mode = AnnotationEditorType.NONE;\n\n  #selectedEditors = new Set();\n\n  #pageColors = null;\n\n  #boundBlur = this.blur.bind(this);\n\n  #boundFocus = this.focus.bind(this);\n\n  #boundCopy = this.copy.bind(this);\n\n  #boundCut = this.cut.bind(this);\n\n  #boundPaste = this.paste.bind(this);\n\n  #boundKeydown = this.keydown.bind(this);\n\n  #boundOnEditingAction = this.onEditingAction.bind(this);\n\n  #boundOnPageChanging = this.onPageChanging.bind(this);\n\n  #boundOnScaleChanging = this.onScaleChanging.bind(this);\n\n  #boundOnRotationChanging = this.onRotationChanging.bind(this);\n\n  #previousStates = {\n    isEditing: false,\n    isEmpty: true,\n    hasSomethingToUndo: false,\n    hasSomethingToRedo: false,\n    hasSelectedEditor: false,\n  };\n\n  #translation = [0, 0];\n\n  #translationTimeoutId = null;\n\n  #container = null;\n\n  #viewer = null;\n\n  static TRANSLATE_SMALL = 1; // page units.\n\n  static TRANSLATE_BIG = 10; // page units.\n\n  static get _keyboardManager() {\n    const proto = AnnotationEditorUIManager.prototype;\n\n    const arrowChecker = self => {\n      // If the focused element is an input, we don't want to handle the arrow.\n      // For example, sliders can be controlled with the arrow keys.\n      return (\n        self.#container.contains(document.activeElement) &&\n        self.hasSomethingToControl()\n      );\n    };\n\n    const textInputChecker = (_self, { target: el }) => {\n      if (el instanceof HTMLInputElement) {\n        const { type } = el;\n        return type !== \"text\" && type !== \"number\";\n      }\n      return true;\n    };\n\n    const small = this.TRANSLATE_SMALL;\n    const big = this.TRANSLATE_BIG;\n\n    return shadow(\n      this,\n      \"_keyboardManager\",\n      new KeyboardManager([\n        [\n          [\"ctrl+a\", \"mac+meta+a\"],\n          proto.selectAll,\n          { checker: textInputChecker },\n        ],\n        [[\"ctrl+z\", \"mac+meta+z\"], proto.undo, { checker: textInputChecker }],\n        [\n          // On mac, depending of the OS version, the event.key is either \"z\" or\n          // \"Z\" when the user presses \"meta+shift+z\".\n          [\n            \"ctrl+y\",\n            \"ctrl+shift+z\",\n            \"mac+meta+shift+z\",\n            \"ctrl+shift+Z\",\n            \"mac+meta+shift+Z\",\n          ],\n          proto.redo,\n          { checker: textInputChecker },\n        ],\n        [\n          [\n            \"Backspace\",\n            \"alt+Backspace\",\n            \"ctrl+Backspace\",\n            \"shift+Backspace\",\n            \"mac+Backspace\",\n            \"mac+alt+Backspace\",\n            \"mac+ctrl+Backspace\",\n            \"Delete\",\n            \"ctrl+Delete\",\n            \"shift+Delete\",\n            \"mac+Delete\",\n          ],\n          proto.delete,\n          { checker: textInputChecker },\n        ],\n        [\n          [\"Enter\", \"mac+Enter\"],\n          proto.addNewEditorFromKeyboard,\n          {\n            // Those shortcuts can be used in the toolbar for some other actions\n            // like zooming, hence we need to check if the container has the\n            // focus.\n            checker: (self, { target: el }) =>\n              !(el instanceof HTMLButtonElement) &&\n              self.#container.contains(el) &&\n              !self.isEnterHandled,\n          },\n        ],\n        [\n          [\" \", \"mac+ \"],\n          proto.addNewEditorFromKeyboard,\n          {\n            // Those shortcuts can be used in the toolbar for some other actions\n            // like zooming, hence we need to check if the container has the\n            // focus.\n            checker: self => self.#container.contains(document.activeElement),\n          },\n        ],\n        [[\"Escape\", \"mac+Escape\"], proto.unselectAll],\n        [\n          [\"ArrowLeft\", \"mac+ArrowLeft\"],\n          proto.translateSelectedEditors,\n          { args: [-small, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"],\n          proto.translateSelectedEditors,\n          { args: [-big, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ArrowRight\", \"mac+ArrowRight\"],\n          proto.translateSelectedEditors,\n          { args: [small, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"],\n          proto.translateSelectedEditors,\n          { args: [big, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ArrowUp\", \"mac+ArrowUp\"],\n          proto.translateSelectedEditors,\n          { args: [0, -small], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"],\n          proto.translateSelectedEditors,\n          { args: [0, -big], checker: arrowChecker },\n        ],\n        [\n          [\"ArrowDown\", \"mac+ArrowDown\"],\n          proto.translateSelectedEditors,\n          { args: [0, small], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"],\n          proto.translateSelectedEditors,\n          { args: [0, big], checker: arrowChecker },\n        ],\n      ])\n    );\n  }\n\n  constructor(\n    container,\n    viewer,\n    altTextManager,\n    eventBus,\n    pdfDocument,\n    pageColors\n  ) {\n    this.#container = container;\n    this.#viewer = viewer;\n    this.#altTextManager = altTextManager;\n    this._eventBus = eventBus;\n    this._eventBus._on(\"editingaction\", this.#boundOnEditingAction);\n    this._eventBus._on(\"pagechanging\", this.#boundOnPageChanging);\n    this._eventBus._on(\"scalechanging\", this.#boundOnScaleChanging);\n    this._eventBus._on(\"rotationchanging\", this.#boundOnRotationChanging);\n    this.#annotationStorage = pdfDocument.annotationStorage;\n    this.#filterFactory = pdfDocument.filterFactory;\n    this.#pageColors = pageColors;\n    this.viewParameters = {\n      realScale: PixelsPerInch.PDF_TO_CSS_UNITS,\n      rotation: 0,\n    };\n  }\n\n  destroy() {\n    this.#removeKeyboardManager();\n    this.#removeFocusManager();\n    this._eventBus._off(\"editingaction\", this.#boundOnEditingAction);\n    this._eventBus._off(\"pagechanging\", this.#boundOnPageChanging);\n    this._eventBus._off(\"scalechanging\", this.#boundOnScaleChanging);\n    this._eventBus._off(\"rotationchanging\", this.#boundOnRotationChanging);\n    for (const layer of this.#allLayers.values()) {\n      layer.destroy();\n    }\n    this.#allLayers.clear();\n    this.#allEditors.clear();\n    this.#editorsToRescale.clear();\n    this.#activeEditor = null;\n    this.#selectedEditors.clear();\n    this.#commandManager.destroy();\n    this.#altTextManager.destroy();\n    if (this.#focusMainContainerTimeoutId) {\n      clearTimeout(this.#focusMainContainerTimeoutId);\n      this.#focusMainContainerTimeoutId = null;\n    }\n    if (this.#translationTimeoutId) {\n      clearTimeout(this.#translationTimeoutId);\n      this.#translationTimeoutId = null;\n    }\n  }\n\n  get hcmFilter() {\n    return shadow(\n      this,\n      \"hcmFilter\",\n      this.#pageColors\n        ? this.#filterFactory.addHCMFilter(\n            this.#pageColors.foreground,\n            this.#pageColors.background\n          )\n        : \"none\"\n    );\n  }\n\n  get direction() {\n    return shadow(\n      this,\n      \"direction\",\n      getComputedStyle(this.#container).direction\n    );\n  }\n\n  editAltText(editor) {\n    this.#altTextManager?.editAltText(this, editor);\n  }\n\n  onPageChanging({ pageNumber }) {\n    this.#currentPageIndex = pageNumber - 1;\n  }\n\n  focusMainContainer() {\n    this.#container.focus();\n  }\n\n  findParent(x, y) {\n    for (const layer of this.#allLayers.values()) {\n      const {\n        x: layerX,\n        y: layerY,\n        width,\n        height,\n      } = layer.div.getBoundingClientRect();\n      if (\n        x >= layerX &&\n        x <= layerX + width &&\n        y >= layerY &&\n        y <= layerY + height\n      ) {\n        return layer;\n      }\n    }\n    return null;\n  }\n\n  disableUserSelect(value = false) {\n    this.#viewer.classList.toggle(\"noUserSelect\", value);\n  }\n\n  addShouldRescale(editor) {\n    this.#editorsToRescale.add(editor);\n  }\n\n  removeShouldRescale(editor) {\n    this.#editorsToRescale.delete(editor);\n  }\n\n  onScaleChanging({ scale }) {\n    this.commitOrRemove();\n    this.viewParameters.realScale = scale * PixelsPerInch.PDF_TO_CSS_UNITS;\n    for (const editor of this.#editorsToRescale) {\n      editor.onScaleChanging();\n    }\n  }\n\n  onRotationChanging({ pagesRotation }) {\n    this.commitOrRemove();\n    this.viewParameters.rotation = pagesRotation;\n  }\n\n  /**\n   * Add an editor in the annotation storage.\n   * @param {AnnotationEditor} editor\n   */\n  addToAnnotationStorage(editor) {\n    if (\n      !editor.isEmpty() &&\n      this.#annotationStorage &&\n      !this.#annotationStorage.has(editor.id)\n    ) {\n      this.#annotationStorage.setValue(editor.id, editor);\n    }\n  }\n\n  #addFocusManager() {\n    window.addEventListener(\"focus\", this.#boundFocus);\n    window.addEventListener(\"blur\", this.#boundBlur);\n  }\n\n  #removeFocusManager() {\n    window.removeEventListener(\"focus\", this.#boundFocus);\n    window.removeEventListener(\"blur\", this.#boundBlur);\n  }\n\n  blur() {\n    if (!this.hasSelection) {\n      return;\n    }\n    // When several editors are selected and the window loses focus, we want to\n    // keep the last active element in order to be able to focus it again when\n    // the window gets the focus back but we don't want to trigger any focus\n    // callbacks else only one editor will be selected.\n    const { activeElement } = document;\n    for (const editor of this.#selectedEditors) {\n      if (editor.div.contains(activeElement)) {\n        this.#lastActiveElement = [editor, activeElement];\n        editor._focusEventsAllowed = false;\n        break;\n      }\n    }\n  }\n\n  focus() {\n    if (!this.#lastActiveElement) {\n      return;\n    }\n    const [lastEditor, lastActiveElement] = this.#lastActiveElement;\n    this.#lastActiveElement = null;\n    lastActiveElement.addEventListener(\n      \"focusin\",\n      () => {\n        lastEditor._focusEventsAllowed = true;\n      },\n      { once: true }\n    );\n    lastActiveElement.focus();\n  }\n\n  #addKeyboardManager() {\n    // The keyboard events are caught at the container level in order to be able\n    // to execute some callbacks even if the current page doesn't have focus.\n    window.addEventListener(\"keydown\", this.#boundKeydown);\n  }\n\n  #removeKeyboardManager() {\n    window.removeEventListener(\"keydown\", this.#boundKeydown);\n  }\n\n  #addCopyPasteListeners() {\n    document.addEventListener(\"copy\", this.#boundCopy);\n    document.addEventListener(\"cut\", this.#boundCut);\n    document.addEventListener(\"paste\", this.#boundPaste);\n  }\n\n  #removeCopyPasteListeners() {\n    document.removeEventListener(\"copy\", this.#boundCopy);\n    document.removeEventListener(\"cut\", this.#boundCut);\n    document.removeEventListener(\"paste\", this.#boundPaste);\n  }\n\n  addEditListeners() {\n    this.#addKeyboardManager();\n    this.#addCopyPasteListeners();\n  }\n\n  removeEditListeners() {\n    this.#removeKeyboardManager();\n    this.#removeCopyPasteListeners();\n  }\n\n  /**\n   * Copy callback.\n   * @param {ClipboardEvent} event\n   */\n  copy(event) {\n    event.preventDefault();\n\n    // An editor is being edited so just commit it.\n    this.#activeEditor?.commitOrRemove();\n\n    if (!this.hasSelection) {\n      return;\n    }\n\n    const editors = [];\n    for (const editor of this.#selectedEditors) {\n      const serialized = editor.serialize(/* isForCopying = */ true);\n      if (serialized) {\n        editors.push(serialized);\n      }\n    }\n    if (editors.length === 0) {\n      return;\n    }\n\n    event.clipboardData.setData(\"application/pdfjs\", JSON.stringify(editors));\n  }\n\n  /**\n   * Cut callback.\n   * @param {ClipboardEvent} event\n   */\n  cut(event) {\n    this.copy(event);\n    this.delete();\n  }\n\n  /**\n   * Paste callback.\n   * @param {ClipboardEvent} event\n   */\n  paste(event) {\n    event.preventDefault();\n    const { clipboardData } = event;\n    for (const item of clipboardData.items) {\n      for (const editorType of this.#editorTypes) {\n        if (editorType.isHandlingMimeForPasting(item.type)) {\n          editorType.paste(item, this.currentLayer);\n          return;\n        }\n      }\n    }\n\n    let data = clipboardData.getData(\"application/pdfjs\");\n    if (!data) {\n      return;\n    }\n\n    try {\n      data = JSON.parse(data);\n    } catch (ex) {\n      warn(`paste: \"${ex.message}\".`);\n      return;\n    }\n\n    if (!Array.isArray(data)) {\n      return;\n    }\n\n    this.unselectAll();\n    const layer = this.currentLayer;\n\n    try {\n      const newEditors = [];\n      for (const editor of data) {\n        const deserializedEditor = layer.deserialize(editor);\n        if (!deserializedEditor) {\n          return;\n        }\n        newEditors.push(deserializedEditor);\n      }\n\n      const cmd = () => {\n        for (const editor of newEditors) {\n          this.#addEditorToLayer(editor);\n        }\n        this.#selectEditors(newEditors);\n      };\n      const undo = () => {\n        for (const editor of newEditors) {\n          editor.remove();\n        }\n      };\n      this.addCommands({ cmd, undo, mustExec: true });\n    } catch (ex) {\n      warn(`paste: \"${ex.message}\".`);\n    }\n  }\n\n  /**\n   * Keydown callback.\n   * @param {KeyboardEvent} event\n   */\n  keydown(event) {\n    if (!this.isEditorHandlingKeyboard) {\n      AnnotationEditorUIManager._keyboardManager.exec(this, event);\n    }\n  }\n\n  /**\n   * Execute an action for a given name.\n   * For example, the user can click on the \"Undo\" entry in the context menu\n   * and it'll trigger the undo action.\n   * @param {Object} details\n   */\n  onEditingAction(details) {\n    if ([\"undo\", \"redo\", \"delete\", \"selectAll\"].includes(details.name)) {\n      this[details.name]();\n    }\n  }\n\n  /**\n   * Update the different possible states of this manager, e.g. is there\n   * something to undo, redo, ...\n   * @param {Object} details\n   */\n  #dispatchUpdateStates(details) {\n    const hasChanged = Object.entries(details).some(\n      ([key, value]) => this.#previousStates[key] !== value\n    );\n\n    if (hasChanged) {\n      this._eventBus.dispatch(\"annotationeditorstateschanged\", {\n        source: this,\n        details: Object.assign(this.#previousStates, details),\n      });\n    }\n  }\n\n  #dispatchUpdateUI(details) {\n    this._eventBus.dispatch(\"annotationeditorparamschanged\", {\n      source: this,\n      details,\n    });\n  }\n\n  /**\n   * Set the editing state.\n   * It can be useful to temporarily disable it when the user is editing a\n   * FreeText annotation.\n   * @param {boolean} isEditing\n   */\n  setEditingState(isEditing) {\n    if (isEditing) {\n      this.#addFocusManager();\n      this.#addKeyboardManager();\n      this.#addCopyPasteListeners();\n      this.#dispatchUpdateStates({\n        isEditing: this.#mode !== AnnotationEditorType.NONE,\n        isEmpty: this.#isEmpty(),\n        hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n        hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n        hasSelectedEditor: false,\n      });\n    } else {\n      this.#removeFocusManager();\n      this.#removeKeyboardManager();\n      this.#removeCopyPasteListeners();\n      this.#dispatchUpdateStates({\n        isEditing: false,\n      });\n      this.disableUserSelect(false);\n    }\n  }\n\n  registerEditorTypes(types) {\n    if (this.#editorTypes) {\n      return;\n    }\n    this.#editorTypes = types;\n    for (const editorType of this.#editorTypes) {\n      this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n    }\n  }\n\n  /**\n   * Get an id.\n   * @returns {string}\n   */\n  getId() {\n    return this.#idManager.getId();\n  }\n\n  get currentLayer() {\n    return this.#allLayers.get(this.#currentPageIndex);\n  }\n\n  getLayer(pageIndex) {\n    return this.#allLayers.get(pageIndex);\n  }\n\n  get currentPageIndex() {\n    return this.#currentPageIndex;\n  }\n\n  /**\n   * Add a new layer for a page which will contains the editors.\n   * @param {AnnotationEditorLayer} layer\n   */\n  addLayer(layer) {\n    this.#allLayers.set(layer.pageIndex, layer);\n    if (this.#isEnabled) {\n      layer.enable();\n    } else {\n      layer.disable();\n    }\n  }\n\n  /**\n   * Remove a layer.\n   * @param {AnnotationEditorLayer} layer\n   */\n  removeLayer(layer) {\n    this.#allLayers.delete(layer.pageIndex);\n  }\n\n  /**\n   * Change the editor mode (None, FreeText, Ink, ...)\n   * @param {number} mode\n   * @param {string|null} editId\n   * @param {boolean} [isFromKeyboard] - true if the mode change is due to a\n   *   keyboard action.\n   */\n  updateMode(mode, editId = null, isFromKeyboard = false) {\n    if (this.#mode === mode) {\n      return;\n    }\n    this.#mode = mode;\n    if (mode === AnnotationEditorType.NONE) {\n      this.setEditingState(false);\n      this.#disableAll();\n      return;\n    }\n    this.setEditingState(true);\n    this.#enableAll();\n    this.unselectAll();\n    for (const layer of this.#allLayers.values()) {\n      layer.updateMode(mode);\n    }\n    if (!editId && isFromKeyboard) {\n      this.addNewEditorFromKeyboard();\n      return;\n    }\n\n    if (!editId) {\n      return;\n    }\n    for (const editor of this.#allEditors.values()) {\n      if (editor.annotationElementId === editId) {\n        this.setSelected(editor);\n        editor.enterInEditMode();\n        break;\n      }\n    }\n  }\n\n  addNewEditorFromKeyboard() {\n    this.currentLayer.addNewEditor();\n  }\n\n  /**\n   * Update the toolbar if it's required to reflect the tool currently used.\n   * @param {number} mode\n   * @returns {undefined}\n   */\n  updateToolbar(mode) {\n    if (mode === this.#mode) {\n      return;\n    }\n    this._eventBus.dispatch(\"switchannotationeditormode\", {\n      source: this,\n      mode,\n    });\n  }\n\n  /**\n   * Update a parameter in the current editor or globally.\n   * @param {number} type\n   * @param {*} value\n   */\n  updateParams(type, value) {\n    if (!this.#editorTypes) {\n      return;\n    }\n    if (type === AnnotationEditorParamsType.CREATE) {\n      this.currentLayer.addNewEditor();\n      return;\n    }\n\n    for (const editor of this.#selectedEditors) {\n      editor.updateParams(type, value);\n    }\n\n    for (const editorType of this.#editorTypes) {\n      editorType.updateDefaultParams(type, value);\n    }\n  }\n\n  enableWaiting(mustWait = false) {\n    if (this.#isWaiting === mustWait) {\n      return;\n    }\n    this.#isWaiting = mustWait;\n    for (const layer of this.#allLayers.values()) {\n      if (mustWait) {\n        layer.disableClick();\n      } else {\n        layer.enableClick();\n      }\n      layer.div.classList.toggle(\"waiting\", mustWait);\n    }\n  }\n\n  /**\n   * Enable all the layers.\n   */\n  #enableAll() {\n    if (!this.#isEnabled) {\n      this.#isEnabled = true;\n      for (const layer of this.#allLayers.values()) {\n        layer.enable();\n      }\n    }\n  }\n\n  /**\n   * Disable all the layers.\n   */\n  #disableAll() {\n    this.unselectAll();\n    if (this.#isEnabled) {\n      this.#isEnabled = false;\n      for (const layer of this.#allLayers.values()) {\n        layer.disable();\n      }\n    }\n  }\n\n  /**\n   * Get all the editors belonging to a given page.\n   * @param {number} pageIndex\n   * @returns {Array<AnnotationEditor>}\n   */\n  getEditors(pageIndex) {\n    const editors = [];\n    for (const editor of this.#allEditors.values()) {\n      if (editor.pageIndex === pageIndex) {\n        editors.push(editor);\n      }\n    }\n    return editors;\n  }\n\n  /**\n   * Get an editor with the given id.\n   * @param {string} id\n   * @returns {AnnotationEditor}\n   */\n  getEditor(id) {\n    return this.#allEditors.get(id);\n  }\n\n  /**\n   * Add a new editor.\n   * @param {AnnotationEditor} editor\n   */\n  addEditor(editor) {\n    this.#allEditors.set(editor.id, editor);\n  }\n\n  /**\n   * Remove an editor.\n   * @param {AnnotationEditor} editor\n   */\n  removeEditor(editor) {\n    if (editor.div.contains(document.activeElement)) {\n      if (this.#focusMainContainerTimeoutId) {\n        clearTimeout(this.#focusMainContainerTimeoutId);\n      }\n      this.#focusMainContainerTimeoutId = setTimeout(() => {\n        // When the div is removed from DOM the focus can move on the\n        // document.body, so we need to move it back to the main container.\n        this.focusMainContainer();\n        this.#focusMainContainerTimeoutId = null;\n      }, 0);\n    }\n    this.#allEditors.delete(editor.id);\n    this.unselect(editor);\n    if (\n      !editor.annotationElementId ||\n      !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)\n    ) {\n      this.#annotationStorage?.remove(editor.id);\n    }\n  }\n\n  /**\n   * The annotation element with the given id has been deleted.\n   * @param {AnnotationEditor} editor\n   */\n  addDeletedAnnotationElement(editor) {\n    this.#deletedAnnotationsElementIds.add(editor.annotationElementId);\n    editor.deleted = true;\n  }\n\n  /**\n   * Check if the annotation element with the given id has been deleted.\n   * @param {string} annotationElementId\n   * @returns {boolean}\n   */\n  isDeletedAnnotationElement(annotationElementId) {\n    return this.#deletedAnnotationsElementIds.has(annotationElementId);\n  }\n\n  /**\n   * The annotation element with the given id have been restored.\n   * @param {AnnotationEditor} editor\n   */\n  removeDeletedAnnotationElement(editor) {\n    this.#deletedAnnotationsElementIds.delete(editor.annotationElementId);\n    editor.deleted = false;\n  }\n\n  /**\n   * Add an editor to the layer it belongs to or add it to the global map.\n   * @param {AnnotationEditor} editor\n   */\n  #addEditorToLayer(editor) {\n    const layer = this.#allLayers.get(editor.pageIndex);\n    if (layer) {\n      layer.addOrRebuild(editor);\n    } else {\n      this.addEditor(editor);\n    }\n  }\n\n  /**\n   * Set the given editor as the active one.\n   * @param {AnnotationEditor} editor\n   */\n  setActiveEditor(editor) {\n    if (this.#activeEditor === editor) {\n      return;\n    }\n\n    this.#activeEditor = editor;\n    if (editor) {\n      this.#dispatchUpdateUI(editor.propertiesToUpdate);\n    }\n  }\n\n  /**\n   * Add or remove an editor the current selection.\n   * @param {AnnotationEditor} editor\n   */\n  toggleSelected(editor) {\n    if (this.#selectedEditors.has(editor)) {\n      this.#selectedEditors.delete(editor);\n      editor.unselect();\n      this.#dispatchUpdateStates({\n        hasSelectedEditor: this.hasSelection,\n      });\n      return;\n    }\n    this.#selectedEditors.add(editor);\n    editor.select();\n    this.#dispatchUpdateUI(editor.propertiesToUpdate);\n    this.#dispatchUpdateStates({\n      hasSelectedEditor: true,\n    });\n  }\n\n  /**\n   * Set the last selected editor.\n   * @param {AnnotationEditor} editor\n   */\n  setSelected(editor) {\n    for (const ed of this.#selectedEditors) {\n      if (ed !== editor) {\n        ed.unselect();\n      }\n    }\n    this.#selectedEditors.clear();\n\n    this.#selectedEditors.add(editor);\n    editor.select();\n    this.#dispatchUpdateUI(editor.propertiesToUpdate);\n    this.#dispatchUpdateStates({\n      hasSelectedEditor: true,\n    });\n  }\n\n  /**\n   * Check if the editor is selected.\n   * @param {AnnotationEditor} editor\n   */\n  isSelected(editor) {\n    return this.#selectedEditors.has(editor);\n  }\n\n  get firstSelectedEditor() {\n    return this.#selectedEditors.values().next().value;\n  }\n\n  /**\n   * Unselect an editor.\n   * @param {AnnotationEditor} editor\n   */\n  unselect(editor) {\n    editor.unselect();\n    this.#selectedEditors.delete(editor);\n    this.#dispatchUpdateStates({\n      hasSelectedEditor: this.hasSelection,\n    });\n  }\n\n  get hasSelection() {\n    return this.#selectedEditors.size !== 0;\n  }\n\n  get isEnterHandled() {\n    return (\n      this.#selectedEditors.size === 1 &&\n      this.firstSelectedEditor.isEnterHandled\n    );\n  }\n\n  /**\n   * Undo the last command.\n   */\n  undo() {\n    this.#commandManager.undo();\n    this.#dispatchUpdateStates({\n      hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n      hasSomethingToRedo: true,\n      isEmpty: this.#isEmpty(),\n    });\n  }\n\n  /**\n   * Redo the last undoed command.\n   */\n  redo() {\n    this.#commandManager.redo();\n    this.#dispatchUpdateStates({\n      hasSomethingToUndo: true,\n      hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n      isEmpty: this.#isEmpty(),\n    });\n  }\n\n  /**\n   * Add a command to execute (cmd) and another one to undo it.\n   * @param {Object} params\n   */\n  addCommands(params) {\n    this.#commandManager.add(params);\n    this.#dispatchUpdateStates({\n      hasSomethingToUndo: true,\n      hasSomethingToRedo: false,\n      isEmpty: this.#isEmpty(),\n    });\n  }\n\n  #isEmpty() {\n    if (this.#allEditors.size === 0) {\n      return true;\n    }\n\n    if (this.#allEditors.size === 1) {\n      for (const editor of this.#allEditors.values()) {\n        return editor.isEmpty();\n      }\n    }\n\n    return false;\n  }\n\n  /**\n   * Delete the current editor or all.\n   */\n  delete() {\n    this.commitOrRemove();\n    if (!this.hasSelection) {\n      return;\n    }\n\n    const editors = [...this.#selectedEditors];\n    const cmd = () => {\n      for (const editor of editors) {\n        editor.remove();\n      }\n    };\n    const undo = () => {\n      for (const editor of editors) {\n        this.#addEditorToLayer(editor);\n      }\n    };\n\n    this.addCommands({ cmd, undo, mustExec: true });\n  }\n\n  commitOrRemove() {\n    // An editor is being edited so just commit it.\n    this.#activeEditor?.commitOrRemove();\n  }\n\n  hasSomethingToControl() {\n    return this.#activeEditor || this.hasSelection;\n  }\n\n  /**\n   * Select the editors.\n   * @param {Array<AnnotationEditor>} editors\n   */\n  #selectEditors(editors) {\n    this.#selectedEditors.clear();\n    for (const editor of editors) {\n      if (editor.isEmpty()) {\n        continue;\n      }\n      this.#selectedEditors.add(editor);\n      editor.select();\n    }\n    this.#dispatchUpdateStates({ hasSelectedEditor: true });\n  }\n\n  /**\n   * Select all the editors.\n   */\n  selectAll() {\n    for (const editor of this.#selectedEditors) {\n      editor.commit();\n    }\n    this.#selectEditors(this.#allEditors.values());\n  }\n\n  /**\n   * Unselect all the selected editors.\n   */\n  unselectAll() {\n    if (this.#activeEditor) {\n      // An editor is being edited so just commit it.\n      this.#activeEditor.commitOrRemove();\n      return;\n    }\n\n    if (!this.hasSelection) {\n      return;\n    }\n    for (const editor of this.#selectedEditors) {\n      editor.unselect();\n    }\n    this.#selectedEditors.clear();\n    this.#dispatchUpdateStates({\n      hasSelectedEditor: false,\n    });\n  }\n\n  translateSelectedEditors(x, y, noCommit = false) {\n    if (!noCommit) {\n      this.commitOrRemove();\n    }\n    if (!this.hasSelection) {\n      return;\n    }\n\n    this.#translation[0] += x;\n    this.#translation[1] += y;\n    const [totalX, totalY] = this.#translation;\n    const editors = [...this.#selectedEditors];\n\n    // We don't want to have an undo/redo for each translation so we wait a bit\n    // before adding the command to the command manager.\n    const TIME_TO_WAIT = 1000;\n\n    if (this.#translationTimeoutId) {\n      clearTimeout(this.#translationTimeoutId);\n    }\n\n    this.#translationTimeoutId = setTimeout(() => {\n      this.#translationTimeoutId = null;\n      this.#translation[0] = this.#translation[1] = 0;\n\n      this.addCommands({\n        cmd: () => {\n          for (const editor of editors) {\n            if (this.#allEditors.has(editor.id)) {\n              editor.translateInPage(totalX, totalY);\n            }\n          }\n        },\n        undo: () => {\n          for (const editor of editors) {\n            if (this.#allEditors.has(editor.id)) {\n              editor.translateInPage(-totalX, -totalY);\n            }\n          }\n        },\n        mustExec: false,\n      });\n    }, TIME_TO_WAIT);\n\n    for (const editor of editors) {\n      editor.translateInPage(x, y);\n    }\n  }\n\n  /**\n   * Set up the drag session for moving the selected editors.\n   */\n  setUpDragSession() {\n    // Note: don't use any references to the editor's parent which can be null\n    // if the editor belongs to a destroyed page.\n    if (!this.hasSelection) {\n      return;\n    }\n    // Avoid to have spurious text selection in the text layer when dragging.\n    this.disableUserSelect(true);\n    this.#draggingEditors = new Map();\n    for (const editor of this.#selectedEditors) {\n      this.#draggingEditors.set(editor, {\n        savedX: editor.x,\n        savedY: editor.y,\n        savedPageIndex: editor.pageIndex,\n        newX: 0,\n        newY: 0,\n        newPageIndex: -1,\n      });\n    }\n  }\n\n  /**\n   * Ends the drag session.\n   * @returns {boolean} true if at least one editor has been moved.\n   */\n  endDragSession() {\n    if (!this.#draggingEditors) {\n      return false;\n    }\n    this.disableUserSelect(false);\n    const map = this.#draggingEditors;\n    this.#draggingEditors = null;\n    let mustBeAddedInUndoStack = false;\n\n    for (const [{ x, y, pageIndex }, value] of map) {\n      value.newX = x;\n      value.newY = y;\n      value.newPageIndex = pageIndex;\n      mustBeAddedInUndoStack ||=\n        x !== value.savedX ||\n        y !== value.savedY ||\n        pageIndex !== value.savedPageIndex;\n    }\n\n    if (!mustBeAddedInUndoStack) {\n      return false;\n    }\n\n    const move = (editor, x, y, pageIndex) => {\n      if (this.#allEditors.has(editor.id)) {\n        // The editor can be undone/redone on a page which is not visible (and\n        // which potentially has no annotation editor layer), hence we need to\n        // use the pageIndex instead of the parent.\n        const parent = this.#allLayers.get(pageIndex);\n        if (parent) {\n          editor._setParentAndPosition(parent, x, y);\n        } else {\n          editor.pageIndex = pageIndex;\n          editor.x = x;\n          editor.y = y;\n        }\n      }\n    };\n\n    this.addCommands({\n      cmd: () => {\n        for (const [editor, { newX, newY, newPageIndex }] of map) {\n          move(editor, newX, newY, newPageIndex);\n        }\n      },\n      undo: () => {\n        for (const [editor, { savedX, savedY, savedPageIndex }] of map) {\n          move(editor, savedX, savedY, savedPageIndex);\n        }\n      },\n      mustExec: true,\n    });\n\n    return true;\n  }\n\n  /**\n   * Drag the set of selected editors.\n   * @param {number} tx\n   * @param {number} ty\n   */\n  dragSelectedEditors(tx, ty) {\n    if (!this.#draggingEditors) {\n      return;\n    }\n    for (const editor of this.#draggingEditors.keys()) {\n      editor.drag(tx, ty);\n    }\n  }\n\n  /**\n   * Rebuild the editor (usually on undo/redo actions) on a potentially\n   * non-rendered page.\n   * @param {AnnotationEditor} editor\n   */\n  rebuild(editor) {\n    if (editor.parent === null) {\n      const parent = this.getLayer(editor.pageIndex);\n      if (parent) {\n        parent.changeParent(editor);\n        parent.addOrRebuild(editor);\n      } else {\n        this.addEditor(editor);\n        this.addToAnnotationStorage(editor);\n        editor.rebuild();\n      }\n    } else {\n      editor.parent.addOrRebuild(editor);\n    }\n  }\n\n  get isEditorHandlingKeyboard() {\n    return (\n      this.getActive()?.shouldGetKeyboardEvents() ||\n      (this.#selectedEditors.size === 1 &&\n        this.firstSelectedEditor.shouldGetKeyboardEvents())\n    );\n  }\n\n  /**\n   * Is the current editor the one passed as argument?\n   * @param {AnnotationEditor} editor\n   * @returns\n   */\n  isActive(editor) {\n    return this.#activeEditor === editor;\n  }\n\n  /**\n   * Get the current active editor.\n   * @returns {AnnotationEditor|null}\n   */\n  getActive() {\n    return this.#activeEditor;\n  }\n\n  /**\n   * Get the current editor mode.\n   * @returns {number}\n   */\n  getMode() {\n    return this.#mode;\n  }\n\n  get imageManager() {\n    return shadow(this, \"imageManager\", new ImageManager());\n  }\n}\n\nexport {\n  AnnotationEditorUIManager,\n  bindEvents,\n  ColorManager,\n  CommandManager,\n  KeyboardManager,\n  opacityToHex,\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  AbortException,\n  assert,\n  PromiseCapability,\n  warn,\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 (value === undefined) {\n      continue;\n    }\n    headers.append(property, value);\n  }\n  return headers;\n}\n\nfunction getArrayBuffer(val) {\n  if (val instanceof Uint8Array) {\n    return val.buffer;\n  }\n  if (val instanceof ArrayBuffer) {\n    return val;\n  }\n  warn(`getArrayBuffer - unexpected data format: ${val}`);\n  return new Uint8Array(val).buffer;\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    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 = new PromiseCapability();\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._abortController = new AbortController();\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    this.onProgress?.({\n      loaded: this._loaded,\n      total: this._contentLength,\n    });\n\n    return { value: getArrayBuffer(value), done: false };\n  }\n\n  cancel(reason) {\n    this._reader?.cancel(reason);\n    this._abortController.abort();\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 = new PromiseCapability();\n    this._isStreamingSupported = !source.disableStream;\n\n    this._abortController = new AbortController();\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    this.onProgress?.({ loaded: this._loaded });\n\n    return { value: getArrayBuffer(value), done: false };\n  }\n\n  cancel(reason) {\n    this._reader?.cancel(reason);\n    this._abortController.abort();\n  }\n}\n\nexport { PDFFetchStream };\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  FeatureTest,\n  isNodeJS,\n  shadow,\n  string32,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\n\nclass FontLoader {\n  #systemFonts = new Set();\n\n  constructor({\n    ownerDocument = globalThis.document,\n    styleElement = null, // For testing only.\n  }) {\n    this._document = ownerDocument;\n\n    this.nativeFontFaces = new Set();\n    this.styleElement =\n      typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")\n        ? styleElement\n        : null;\n\n    if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) {\n      this.loadingRequests = [];\n      this.loadTestFontId = 0;\n    }\n  }\n\n  addNativeFontFace(nativeFontFace) {\n    this.nativeFontFaces.add(nativeFontFace);\n    this._document.fonts.add(nativeFontFace);\n  }\n\n  removeNativeFontFace(nativeFontFace) {\n    this.nativeFontFaces.delete(nativeFontFace);\n    this._document.fonts.delete(nativeFontFace);\n  }\n\n  insertRule(rule) {\n    if (!this.styleElement) {\n      this.styleElement = this._document.createElement(\"style\");\n      this._document.documentElement\n        .getElementsByTagName(\"head\")[0]\n        .append(this.styleElement);\n    }\n    const styleSheet = this.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.clear();\n    this.#systemFonts.clear();\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 loadSystemFont({ systemFontInfo: info, _inspectFont }) {\n    if (!info || this.#systemFonts.has(info.loadedName)) {\n      return;\n    }\n    assert(\n      !this.disableFontFace,\n      \"loadSystemFont shouldn't be called when `disableFontFace` is set.\"\n    );\n\n    if (this.isFontLoadingAPISupported) {\n      const { loadedName, src, style } = info;\n      const fontFace = new FontFace(loadedName, src, style);\n      this.addNativeFontFace(fontFace);\n      try {\n        await fontFace.load();\n        this.#systemFonts.add(loadedName);\n        _inspectFont?.(info);\n      } catch {\n        warn(\n          `Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`\n        );\n\n        this.removeNativeFontFace(fontFace);\n      }\n      return;\n    }\n\n    unreachable(\n      \"Not implemented: loadSystemFont without the Font Loading API.\"\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 && !font.systemFontInfo)) {\n      return;\n    }\n    font.attached = true;\n\n    if (font.systemFontInfo) {\n      await this.loadSystemFont(font);\n      return;\n    }\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          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      if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n        throw new Error(\"Not implemented: async font loading\");\n      }\n      await new Promise(resolve => {\n        const request = this._queueLoadingCallback(resolve);\n        this._prepareFontLoadEvent(font, request);\n      });\n      // The font was, asynchronously, loaded.\n    }\n  }\n\n  get isFontLoadingAPISupported() {\n    const hasFonts = !!this._document?.fonts;\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      return shadow(\n        this,\n        \"isFontLoadingAPISupported\",\n        hasFonts && !this.styleElement\n      );\n    }\n    return shadow(this, \"isFontLoadingAPISupported\", hasFonts);\n  }\n\n  get isSyncFontLoadingSupported() {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      return shadow(this, \"isSyncFontLoadingSupported\", true);\n    }\n\n    let supported = false;\n    if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"CHROME\")) {\n      if (isNodeJS) {\n        // Node.js - we can pretend that sync font loading is supported.\n        supported = true;\n      } else if (\n        typeof navigator !== \"undefined\" &&\n        typeof navigator?.userAgent === \"string\" &&\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        /Mozilla\\/5.0.*?rv:\\d+.*? Gecko/.test(navigator.userAgent)\n      ) {\n        // Firefox, from version 14, supports synchronous font loading.\n        supported = true;\n      }\n    }\n    return shadow(this, \"isSyncFontLoadingSupported\", supported);\n  }\n\n  _queueLoadingCallback(callback) {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      throw new Error(\"Not implemented: _queueLoadingCallback\");\n    }\n\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 (loadingRequests.length > 0 && loadingRequests[0].done) {\n        const otherRequest = loadingRequests.shift();\n        setTimeout(otherRequest.callback, 0);\n      }\n    }\n\n    const { loadingRequests } = this;\n    const request = {\n      done: false,\n      complete: completeRequest,\n      callback,\n    };\n    loadingRequests.push(request);\n    return request;\n  }\n\n  get _loadTestFont() {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      throw new Error(\"Not implemented: _loadTestFont\");\n    }\n\n    // This is a CFF font with 1 glyph for '.' that fills its entire width\n    // and height.\n    const testFont = 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    return shadow(this, \"_loadTestFont\", testFont);\n  }\n\n  _prepareFontLoadEvent(font, request) {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      throw new Error(\"Not implemented: _prepareFontLoadEvent\");\n    }\n\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      // 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 = (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 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 [font.loadedName, loadTestFontId]) {\n      const span = this._document.createElement(\"span\");\n      span.textContent = \"Hi\";\n      span.style.fontFamily = name;\n      div.append(span);\n    }\n    this._document.body.append(div);\n\n    isFontReady(loadTestFontId, () => {\n      div.remove();\n      request.complete();\n    });\n    /** Hack end */\n  }\n}\n\nclass FontFaceObject {\n  constructor(\n    translatedData,\n    {\n      isEvalSupported = true,\n      disableFontFace = false,\n      ignoreErrors = false,\n      inspectFont = 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._inspectFont = inspectFont;\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    this._inspectFont?.(this);\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    this._inspectFont?.(this, url);\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      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 && FeatureTest.isEvalSupported) {\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        // eslint-disable-next-line prefer-spread\n        c[current.cmd].apply(c, current.args);\n      }\n    });\n  }\n}\n\nexport { FontFaceObject, FontLoader };\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 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, PromiseCapability, stringToBytes } 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  return stringToBytes(data).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\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 = new XMLHttpRequest();\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 (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 = new PromiseCapability();\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 = new PromiseCapability();\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 = new PromiseCapability();\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 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// - 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 {\n        // TextDecoder constructor threw - unrecognized encoding.\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].replaceAll(/\\\\(.)/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.replaceAll(\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.replaceAll(\"_\", \" \");\n          text = text.replaceAll(/=([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 {}\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  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  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(\n      Number.isInteger(rangeChunkSize) && rangeChunkSize > 0,\n      \"rangeChunkSize must be an integer larger than zero.\"\n    );\n  }\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 {}\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 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  isNodeJS,\n  MissingPDFException,\n  PromiseCapability,\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\nlet fs, http, https, url;\nif (isNodeJS) {\n  // Native packages.\n  fs = await import(/* webpackIgnore: true */ \"fs\");\n  http = await import(/* webpackIgnore: true */ \"http\");\n  https = await import(/* webpackIgnore: true */ \"https\");\n  url = await import(/* webpackIgnore: true */ \"url\");\n}\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    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 = new PromiseCapability();\n    this._headersCapability = new PromiseCapability();\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 = new PromiseCapability();\n      return this.read();\n    }\n    this._loaded += chunk.length;\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 = new PromiseCapability();\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 = new PromiseCapability();\n      return this.read();\n    }\n    this._loaded += chunk.length;\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 (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 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 {\n  BaseCanvasFactory,\n  BaseCMapReaderFactory,\n  BaseFilterFactory,\n  BaseStandardFontDataFactory,\n} from \"./base_factory.js\";\nimport { isNodeJS, warn } from \"../shared/util.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n  throw new Error(\n    'Module \"./node_utils.js\" shall not be used with MOZCENTRAL builds.'\n  );\n}\n\nlet fs, canvas, path2d_polyfill;\nif (isNodeJS) {\n  // Native packages.\n  fs = await import(/* webpackIgnore: true */ \"fs\");\n  // Optional, third-party, packages.\n  try {\n    canvas = await import(/* webpackIgnore: true */ \"canvas\");\n  } catch {}\n  try {\n    path2d_polyfill = await import(/* webpackIgnore: true */ \"path2d-polyfill\");\n  } catch {}\n}\n\nif (typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"SKIP_BABEL\")) {\n  (function checkDOMMatrix() {\n    if (globalThis.DOMMatrix || !isNodeJS) {\n      return;\n    }\n    const DOMMatrix = canvas?.DOMMatrix;\n\n    if (DOMMatrix) {\n      globalThis.DOMMatrix = DOMMatrix;\n    } else {\n      warn(\"Cannot polyfill `DOMMatrix`, rendering may be broken.\");\n    }\n  })();\n\n  (function checkPath2D() {\n    if (globalThis.Path2D || !isNodeJS) {\n      return;\n    }\n    const CanvasRenderingContext2D = canvas?.CanvasRenderingContext2D;\n    const polyfillPath2D = path2d_polyfill?.polyfillPath2D;\n\n    if (CanvasRenderingContext2D && polyfillPath2D) {\n      globalThis.CanvasRenderingContext2D = CanvasRenderingContext2D;\n      polyfillPath2D(globalThis);\n    } else {\n      warn(\"Cannot polyfill `Path2D`, rendering may be broken.\");\n    }\n  })();\n}\n\nconst fetchData = function (url) {\n  return new Promise((resolve, reject) => {\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\nclass NodeFilterFactory extends BaseFilterFactory {}\n\nclass NodeCanvasFactory extends BaseCanvasFactory {\n  /**\n   * @ignore\n   */\n  _createCanvas(width, height) {\n    return canvas.createCanvas(width, height);\n  }\n}\n\nclass NodeCMapReaderFactory extends BaseCMapReaderFactory {\n  /**\n   * @ignore\n   */\n  _fetchData(url, compressionType) {\n    return fetchData(url).then(data => {\n      return { cMapData: data, compressionType };\n    });\n  }\n}\n\nclass NodeStandardFontDataFactory extends BaseStandardFontDataFactory {\n  /**\n   * @ignore\n   */\n  _fetchData(url) {\n    return fetchData(url);\n  }\n}\n\nexport {\n  NodeCanvasFactory,\n  NodeCMapReaderFactory,\n  NodeFilterFactory,\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, unreachable, warn } from \"../shared/util.js\";\nimport { MurmurHash3_64 } from \"../shared/murmurhash3.js\";\n\nconst INTERNAL = Symbol(\"INTERNAL\");\n\nclass OptionalContentGroup {\n  #visible = true;\n\n  constructor(name, intent) {\n    this.name = name;\n    this.intent = intent;\n  }\n\n  /**\n   * @type {boolean}\n   */\n  get visible() {\n    return this.#visible;\n  }\n\n  /**\n   * @ignore\n   */\n  _setVisible(internal, visible) {\n    if (internal !== INTERNAL) {\n      unreachable(\"Internal method `_setVisible` called.\");\n    }\n    this.#visible = visible;\n  }\n}\n\nclass OptionalContentConfig {\n  #cachedGetHash = null;\n\n  #groups = new Map();\n\n  #initialHash = null;\n\n  #order = null;\n\n  constructor(data) {\n    this.name = null;\n    this.creator = null;\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.values()) {\n        group._setVisible(INTERNAL, false);\n      }\n    }\n\n    for (const on of data.on) {\n      this.#groups.get(on)._setVisible(INTERNAL, true);\n    }\n\n    for (const off of data.off) {\n      this.#groups.get(off)._setVisible(INTERNAL, false);\n    }\n\n    // The following code must always run *last* in the constructor.\n    this.#initialHash = this.getHash();\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)._setVisible(INTERNAL, !!visible);\n\n    this.#cachedGetHash = null;\n  }\n\n  get hasInitialVisibility() {\n    return this.#initialHash === null || this.getHash() === this.#initialHash;\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 [...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  getHash() {\n    if (this.#cachedGetHash !== null) {\n      return this.#cachedGetHash;\n    }\n    const hash = new MurmurHash3_64();\n\n    for (const [id, group] of this.#groups) {\n      hash.update(`${id}:${group.visible}`);\n    }\n    return (this.#cachedGetHash = hash.hexdigest());\n  }\n}\n\nexport { OptionalContentConfig };\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\n/** @typedef {import(\"./display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"./api\").TextContent} TextContent */\n\nimport {\n  AbortException,\n  FeatureTest,\n  PromiseCapability,\n  Util,\n} from \"../shared/util.js\";\nimport { setLayerDimensions } from \"./display_utils.js\";\n\n/**\n * Text layer render parameters.\n *\n * @typedef {Object} TextLayerRenderParameters\n * @property {ReadableStream | TextContent} textContentSource - Text content to\n *   render, i.e. the value returned by the page's `streamTextContent` or\n *   `getTextContent` method.\n * @property {HTMLElement} container - The DOM node that will contain the text\n *   runs.\n * @property {PageViewport} viewport - The target viewport to properly layout\n *   the text runs.\n * @property {Array<HTMLElement>} [textDivs] - HTML elements that correspond to\n *   the text items of the textContent input.\n *   This is output and shall initially be set to an empty array.\n * @property {WeakMap<HTMLElement,Object>} [textDivProperties] - Some properties\n *   weakly mapped to the HTML elements used to render the text.\n * @property {Array<string>} [textContentItemsStr] - Strings that correspond to\n *   the `str` property of the text items of the textContent input.\n *   This is output and shall initially be set to an empty array.\n * @property {boolean} [isOffscreenCanvasSupported] true if we can use\n *   OffscreenCanvas to measure string widths.\n */\n\n/**\n * Text layer update parameters.\n *\n * @typedef {Object} TextLayerUpdateParameters\n * @property {HTMLElement} container - The DOM node that will contain the text\n *   runs.\n * @property {PageViewport} viewport - The target viewport to properly layout\n *   the text runs.\n * @property {Array<HTMLElement>} [textDivs] - HTML elements that correspond to\n *   the text items of the textContent input.\n *   This is output and shall initially be set to an empty array.\n * @property {WeakMap<HTMLElement,Object>} [textDivProperties] - Some properties\n *   weakly mapped to the HTML elements used to render the text.\n * @property {boolean} [isOffscreenCanvasSupported] true if we can use\n *   OffscreenCanvas to measure string widths.\n * @property {boolean} [mustRotate] true if the text layer must be rotated.\n * @property {boolean} [mustRescale] true if the text layer contents must be\n *   rescaled.\n */\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\n\nfunction getCtx(size, isOffscreenCanvasSupported) {\n  let ctx;\n  if (isOffscreenCanvasSupported && FeatureTest.isOffscreenCanvasSupported) {\n    ctx = new OffscreenCanvas(size, size).getContext(\"2d\", { alpha: false });\n  } else {\n    const canvas = document.createElement(\"canvas\");\n    canvas.width = canvas.height = size;\n    ctx = canvas.getContext(\"2d\", { alpha: false });\n  }\n\n  return ctx;\n}\n\nfunction getAscent(fontFamily, isOffscreenCanvasSupported) {\n  const cachedAscent = ascentCache.get(fontFamily);\n  if (cachedAscent) {\n    return cachedAscent;\n  }\n\n  const ctx = getCtx(DEFAULT_FONT_SIZE, isOffscreenCanvasSupported);\n\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    const ratio = ascent / (ascent + descent);\n    ascentCache.set(fontFamily, ratio);\n\n    ctx.canvas.width = ctx.canvas.height = 0;\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.canvas.width = ctx.canvas.height = 0;\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) {\n  // Initialize all used properties to keep the caches monomorphic.\n  const textDiv = document.createElement(\"span\");\n  const textDivProperties = {\n    angle: 0,\n    canvasWidth: 0,\n    hasText: geom.str !== \"\",\n    hasEOL: geom.hasEOL,\n    fontSize: 0,\n  };\n  task._textDivs.push(textDiv);\n\n  const tx = Util.transform(task._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\n  const fontFamily =\n    (task._fontInspectorEnabled && style.fontSubstitution) || style.fontFamily;\n  const fontHeight = Math.hypot(tx[2], tx[3]);\n  const fontAscent =\n    fontHeight * getAscent(fontFamily, task._isOffscreenCanvasSupported);\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\n  const scaleFactorStr = \"calc(var(--scale-factor)*\";\n  const divStyle = textDiv.style;\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  if (task._container === task._rootContainer) {\n    divStyle.left = `${((100 * left) / task._pageWidth).toFixed(2)}%`;\n    divStyle.top = `${((100 * top) / task._pageHeight).toFixed(2)}%`;\n  } else {\n    // We're in a marked content span, hence we can't use percents.\n    divStyle.left = `${scaleFactorStr}${left.toFixed(2)}px)`;\n    divStyle.top = `${scaleFactorStr}${top.toFixed(2)}px)`;\n  }\n  divStyle.fontSize = `${scaleFactorStr}${fontHeight.toFixed(2)}px)`;\n  divStyle.fontFamily = fontFamily;\n\n  textDivProperties.fontSize = fontHeight;\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 =\n      style.fontSubstitutionLoadedName || 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 (geom.str.length > 1) {\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    textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width;\n  }\n  task._textDivProperties.set(textDiv, textDivProperties);\n  if (task._isReadableStream) {\n    task._layoutText(textDiv);\n  }\n}\n\nfunction layout(params) {\n  const { div, scale, properties, ctx, prevFontSize, prevFontFamily } = params;\n  const { style } = div;\n  let transform = \"\";\n  if (properties.canvasWidth !== 0 && properties.hasText) {\n    const { fontFamily } = style;\n    const { canvasWidth, fontSize } = properties;\n\n    if (prevFontSize !== fontSize || prevFontFamily !== fontFamily) {\n      ctx.font = `${fontSize * scale}px ${fontFamily}`;\n      params.prevFontSize = fontSize;\n      params.prevFontFamily = fontFamily;\n    }\n\n    // Only measure the width for multi-char text divs, see `appendText`.\n    const { width } = ctx.measureText(div.textContent);\n\n    if (width > 0) {\n      transform = `scaleX(${(canvasWidth * scale) / width})`;\n    }\n  }\n  if (properties.angle !== 0) {\n    transform = `rotate(${properties.angle}deg) ${transform}`;\n  }\n  if (transform.length > 0) {\n    style.transform = transform;\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    capability.resolve();\n    return;\n  }\n\n  if (!task._isReadableStream) {\n    for (const textDiv of textDivs) {\n      task._layoutText(textDiv);\n    }\n  }\n  capability.resolve();\n}\n\nclass TextLayerRenderTask {\n  constructor({\n    textContentSource,\n    container,\n    viewport,\n    textDivs,\n    textDivProperties,\n    textContentItemsStr,\n    isOffscreenCanvasSupported,\n  }) {\n    this._textContentSource = textContentSource;\n    this._isReadableStream = textContentSource instanceof ReadableStream;\n    this._container = this._rootContainer = container;\n    this._textDivs = textDivs || [];\n    this._textContentItemsStr = textContentItemsStr || [];\n    this._isOffscreenCanvasSupported = isOffscreenCanvasSupported;\n    this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n\n    this._reader = null;\n    this._textDivProperties = textDivProperties || new WeakMap();\n    this._canceled = false;\n    this._capability = new PromiseCapability();\n    this._layoutTextParams = {\n      prevFontSize: null,\n      prevFontFamily: null,\n      div: null,\n      scale: viewport.scale * (globalThis.devicePixelRatio || 1),\n      properties: null,\n      ctx: getCtx(0, isOffscreenCanvasSupported),\n    };\n    const { pageWidth, pageHeight, pageX, pageY } = viewport.rawDims;\n    this._transform = [1, 0, 0, -1, -pageX, pageY + pageHeight];\n    this._pageWidth = pageWidth;\n    this._pageHeight = pageHeight;\n\n    setLayerDimensions(container, viewport);\n\n    // Always clean-up the temporary canvas once rendering is no longer pending.\n    this._capability.promise\n      .finally(() => {\n        this._layoutTextParams = null;\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    this._capability.reject(new AbortException(\"TextLayer task cancelled.\"));\n  }\n\n  /**\n   * @private\n   */\n  _processItems(items, styleCache) {\n    for (const item of items) {\n      if (item.str === undefined) {\n        if (\n          item.type === \"beginMarkedContentProps\" ||\n          item.type === \"beginMarkedContent\"\n        ) {\n          const parent = this._container;\n          this._container = document.createElement(\"span\");\n          this._container.classList.add(\"markedContent\");\n          if (item.id !== null) {\n            this._container.setAttribute(\"id\", `${item.id}`);\n          }\n          parent.append(this._container);\n        } else if (item.type === \"endMarkedContent\") {\n          this._container = this._container.parentNode;\n        }\n        continue;\n      }\n      this._textContentItemsStr.push(item.str);\n      appendText(this, item, styleCache);\n    }\n  }\n\n  /**\n   * @private\n   */\n  _layoutText(textDiv) {\n    const textDivProperties = (this._layoutTextParams.properties =\n      this._textDivProperties.get(textDiv));\n    this._layoutTextParams.div = textDiv;\n    layout(this._layoutTextParams);\n\n    if (textDivProperties.hasText) {\n      this._container.append(textDiv);\n    }\n    if (textDivProperties.hasEOL) {\n      const br = document.createElement(\"br\");\n      br.setAttribute(\"role\", \"presentation\");\n      this._container.append(br);\n    }\n  }\n\n  /**\n   * @private\n   */\n  _render() {\n    const capability = new PromiseCapability();\n    let styleCache = Object.create(null);\n\n    if (this._isReadableStream) {\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._textContentSource.getReader();\n      pump();\n    } else if (this._textContentSource) {\n      const { items, styles } = this._textContentSource;\n      this._processItems(items, styles);\n      capability.resolve();\n    } else {\n      throw new Error('No \"textContentSource\" parameter specified.');\n    }\n\n    capability.promise.then(() => {\n      styleCache = null;\n      render(this);\n    }, this._capability.reject);\n  }\n}\n\n/**\n * @param {TextLayerRenderParameters} params\n * @returns {TextLayerRenderTask}\n */\nfunction renderTextLayer(params) {\n  const task = new TextLayerRenderTask(params);\n  task._render();\n  return task;\n}\n\n/**\n * @param {TextLayerUpdateParameters} params\n * @returns {undefined}\n */\nfunction updateTextLayer({\n  container,\n  viewport,\n  textDivs,\n  textDivProperties,\n  isOffscreenCanvasSupported,\n  mustRotate = true,\n  mustRescale = true,\n}) {\n  if (mustRotate) {\n    setLayerDimensions(container, { rotation: viewport.rotation });\n  }\n\n  if (mustRescale) {\n    const ctx = getCtx(0, isOffscreenCanvasSupported);\n    const scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n    const params = {\n      prevFontSize: null,\n      prevFontFamily: null,\n      div: null,\n      scale,\n      properties: null,\n      ctx,\n    };\n    for (const div of textDivs) {\n      params.properties = textDivProperties.get(div);\n      params.div = div;\n      layout(params);\n    }\n  }\n}\n\nexport { renderTextLayer, TextLayerRenderTask, updateTextLayer };\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/** @typedef {import(\"../interfaces\").IPDFStream} IPDFStream */\n/** @typedef {import(\"../interfaces\").IPDFStreamReader} IPDFStreamReader */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../interfaces\").IPDFStreamRangeReader} IPDFStreamRangeReader */\n\nimport { assert, PromiseCapability } from \"../shared/util.js\";\nimport { isPdfFile } from \"./display_utils.js\";\n\n/** @implements {IPDFStream} */\nclass PDFDataTransportStream {\n  constructor(\n    {\n      length,\n      initialData,\n      progressiveDone = false,\n      contentDispositionFilename = null,\n      disableRange = false,\n      disableStream = false,\n    },\n    pdfDataRangeTransport\n  ) {\n    assert(\n      pdfDataRangeTransport,\n      'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.'\n    );\n\n    this._queuedChunks = [];\n    this._progressiveDone = progressiveDone;\n    this._contentDispositionFilename = contentDispositionFilename;\n\n    if (initialData?.length > 0) {\n      // Prevent any possible issues by only transferring a Uint8Array that\n      // completely \"utilizes\" its underlying ArrayBuffer.\n      const buffer =\n        initialData instanceof Uint8Array &&\n        initialData.byteLength === initialData.buffer.byteLength\n          ? initialData.buffer\n          : new Uint8Array(initialData).buffer;\n      this._queuedChunks.push(buffer);\n    }\n\n    this._pdfDataRangeTransport = pdfDataRangeTransport;\n    this._isStreamingSupported = !disableStream;\n    this._isRangeSupported = !disableRange;\n    this._contentLength = 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({ begin, chunk }) {\n    // Prevent any possible issues by only transferring a Uint8Array that\n    // completely \"utilizes\" its underlying ArrayBuffer.\n    const buffer =\n      chunk instanceof Uint8Array &&\n      chunk.byteLength === chunk.buffer.byteLength\n        ? chunk.buffer\n        : new Uint8Array(chunk).buffer;\n\n    if (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 !== 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      this._rangeReaders[0]?.onProgress?.({ loaded: evt.loaded });\n    } else {\n      this._fullRequestReader?.onProgress?.({\n        loaded: evt.loaded,\n        total: evt.total,\n      });\n    }\n  }\n\n  _onProgressiveDone() {\n    this._fullRequestReader?.progressiveDone();\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    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 = new PromiseCapability();\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 = new PromiseCapability();\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 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 = null;\nGlobalWorkerOptions.workerSrc = \"\";\n\nexport { GlobalWorkerOptions };\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// eslint-disable-next-line max-len\n/** @typedef {import(\"./annotation_storage\").AnnotationStorage} AnnotationStorage */\n/** @typedef {import(\"./display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"../../web/interfaces\").IPDFLinkService} IPDFLinkService */\n\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          html.setAttribute(\"value\", storedData.value);\n          for (const option of element.children) {\n            if (option.attributes.value === storedData.value) {\n              option.attributes.selected = true;\n            } else if (option.attributes.hasOwnProperty(\"selected\")) {\n              delete option.attributes.selected;\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      if (value === null || value === undefined) {\n        continue;\n      }\n\n      switch (key) {\n        case \"class\":\n          if (value.length) {\n            html.setAttribute(key, value.join(\" \"));\n          }\n          break;\n        case \"dataId\":\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          break;\n        case \"id\":\n          html.setAttribute(\"data-element-id\", value);\n          break;\n        case \"style\":\n          Object.assign(html.style, value);\n          break;\n        case \"textContent\":\n          html.textContent = value;\n          break;\n        default:\n          if (!isHTMLAnchorElement || (key !== \"href\" && key !== \"newWindow\")) {\n            html.setAttribute(key, value);\n          }\n      }\n    }\n\n    if (isHTMLAnchorElement) {\n      linkService.addLinkAttributes(\n        html,\n        attributes.href,\n        attributes.newWindow\n      );\n    }\n\n    // Set the value after the others to be sure to overwrite 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\n    const isNotForRichText = intent !== \"richText\";\n    const rootDiv = parameters.div;\n    rootDiv.append(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 (isNotForRichText) {\n      rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n    }\n\n    // Text nodes used for the text highlighter.\n    const textDivs = [];\n\n    // In the rich text context, it's possible to just have a text node without\n    // a root element, so we handle this case here (see issue 17215).\n    if (root.children.length === 0) {\n      if (root.value) {\n        const node = document.createTextNode(root.value);\n        rootHtml.append(node);\n        if (isNotForRichText && XfaText.shouldBuildText(root.name)) {\n          textDivs.push(node);\n        }\n      }\n      return { textDivs };\n    }\n\n    const stack = [[root, -1, rootHtml]];\n\n    while (stack.length > 0) {\n      const [parent, i, html] = stack.at(-1);\n      if (i + 1 === parent.children.length) {\n        stack.pop();\n        continue;\n      }\n\n      const child = parent.children[++stack.at(-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.append(node);\n        continue;\n      }\n\n      const childHtml = child?.attributes?.xmlns\n        ? document.createElementNS(child.attributes.xmlns, name)\n        : document.createElement(name);\n\n      html.append(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?.length > 0) {\n        stack.push([child, -1, childHtml]);\n      } else if (child.value) {\n        const node = document.createTextNode(child.value);\n        if (isNotForRichText && XfaText.shouldBuildText(name)) {\n          textDivs.push(node);\n        }\n        childHtml.append(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 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(\"./api\").TextContent} TextContent */\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 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// eslint-disable-next-line max-len\n/** @typedef {import(\"./display/api\").OnProgressParameters} OnProgressParameters */\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/** @typedef {import(\"./display/display_utils\").PageViewport} PageViewport */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./display/text_layer\").TextLayerRenderTask} TextLayerRenderTask */\n\nimport {\n  AbortException,\n  AnnotationEditorParamsType,\n  AnnotationEditorType,\n  AnnotationMode,\n  CMapCompressionType,\n  createValidAbsoluteUrl,\n  FeatureTest,\n  ImageKind,\n  InvalidPDFException,\n  MissingPDFException,\n  normalizeUnicode,\n  OPS,\n  PasswordResponses,\n  PermissionFlag,\n  PromiseCapability,\n  shadow,\n  UnexpectedResponseException,\n  Util,\n  VerbosityLevel,\n} from \"./shared/util.js\";\nimport {\n  build,\n  getDocument,\n  PDFDataRangeTransport,\n  PDFWorker,\n  version,\n} from \"./display/api.js\";\nimport {\n  DOMSVGFactory,\n  fetchData,\n  getFilenameFromUrl,\n  getPdfFilenameFromUrl,\n  getXfaPageViewport,\n  isDataScheme,\n  isPdfFile,\n  noContextMenu,\n  PDFDateString,\n  PixelsPerInch,\n  RenderingCancelledException,\n  setLayerDimensions,\n} from \"./display/display_utils.js\";\nimport { renderTextLayer, updateTextLayer } from \"./display/text_layer.js\";\nimport { AnnotationEditorLayer } from \"./display/editor/annotation_editor_layer.js\";\nimport { AnnotationEditorUIManager } from \"./display/editor/tools.js\";\nimport { AnnotationLayer } from \"./display/annotation_layer.js\";\nimport { DrawLayer } from \"./display/draw_layer.js\";\nimport { GlobalWorkerOptions } from \"./display/worker_options.js\";\nimport { Outliner } from \"./display/editor/outliner.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\nexport {\n  AbortException,\n  AnnotationEditorLayer,\n  AnnotationEditorParamsType,\n  AnnotationEditorType,\n  AnnotationEditorUIManager,\n  AnnotationLayer,\n  AnnotationMode,\n  build,\n  CMapCompressionType,\n  createValidAbsoluteUrl,\n  DOMSVGFactory,\n  DrawLayer,\n  FeatureTest,\n  fetchData,\n  getDocument,\n  getFilenameFromUrl,\n  getPdfFilenameFromUrl,\n  getXfaPageViewport,\n  GlobalWorkerOptions,\n  ImageKind,\n  InvalidPDFException,\n  isDataScheme,\n  isPdfFile,\n  MissingPDFException,\n  noContextMenu,\n  normalizeUnicode,\n  OPS,\n  Outliner,\n  PasswordResponses,\n  PDFDataRangeTransport,\n  PDFDateString,\n  PDFWorker,\n  PermissionFlag,\n  PixelsPerInch,\n  PromiseCapability,\n  RenderingCancelledException,\n  renderTextLayer,\n  setLayerDimensions,\n  shadow,\n  UnexpectedResponseException,\n  updateTextLayer,\n  Util,\n  VerbosityLevel,\n  version,\n  XfaLayer,\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\nimport {\n  AbortException,\n  assert,\n  MissingPDFException,\n  PasswordException,\n  PromiseCapability,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  unreachable,\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    unreachable(\n      'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n    );\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 (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\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 = new PromiseCapability();\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 = new PromiseCapability();\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 = new PromiseCapability();\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 = new PromiseCapability();\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  #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 = new PromiseCapability();\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: new PromiseCapability(),\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  #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?.());\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(streamSink.onCancel?.(wrapReason(data.reason)));\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  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?.promise,\n      streamController.pullCall?.promise,\n      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 2014 Opera Software ASA\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 * Based on https://code.google.com/p/smhasher/wiki/MurmurHash3.\n * Hashes roughly 100 KB per millisecond on i7 3.4 GHz.\n */\n\nimport { isArrayBuffer } from \"./util.js\";\n\nconst SEED = 0xc3d2e1f0;\n// Workaround for missing math precision in JS.\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n  constructor(seed) {\n    this.h1 = seed ? seed & 0xffffffff : SEED;\n    this.h2 = seed ? seed & 0xffffffff : SEED;\n  }\n\n  update(input) {\n    let data, length;\n    if (typeof input === \"string\") {\n      data = new Uint8Array(input.length * 2);\n      length = 0;\n      for (let i = 0, ii = input.length; i < ii; i++) {\n        const code = input.charCodeAt(i);\n        if (code <= 0xff) {\n          data[length++] = code;\n        } else {\n          data[length++] = code >>> 8;\n          data[length++] = code & 0xff;\n        }\n      }\n    } else if (isArrayBuffer(input)) {\n      data = input.slice();\n      length = data.byteLength;\n    } else {\n      throw new Error(\n        \"Wrong data format in MurmurHash3_64_update. \" +\n          \"Input must be a string or array.\"\n      );\n    }\n\n    const blockCounts = length >> 2;\n    const tailLength = length - blockCounts * 4;\n    // We don't care about endianness here.\n    const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n    let k1 = 0,\n      k2 = 0;\n    let h1 = this.h1,\n      h2 = this.h2;\n    const C1 = 0xcc9e2d51,\n      C2 = 0x1b873593;\n    const C1_LOW = C1 & MASK_LOW,\n      C2_LOW = C2 & MASK_LOW;\n\n    for (let i = 0; i < blockCounts; i++) {\n      if (i & 1) {\n        k1 = dataUint32[i];\n        k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n        k1 = (k1 << 15) | (k1 >>> 17);\n        k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n        h1 ^= k1;\n        h1 = (h1 << 13) | (h1 >>> 19);\n        h1 = h1 * 5 + 0xe6546b64;\n      } else {\n        k2 = dataUint32[i];\n        k2 = ((k2 * C1) & MASK_HIGH) | ((k2 * C1_LOW) & MASK_LOW);\n        k2 = (k2 << 15) | (k2 >>> 17);\n        k2 = ((k2 * C2) & MASK_HIGH) | ((k2 * C2_LOW) & MASK_LOW);\n        h2 ^= k2;\n        h2 = (h2 << 13) | (h2 >>> 19);\n        h2 = h2 * 5 + 0xe6546b64;\n      }\n    }\n\n    k1 = 0;\n\n    switch (tailLength) {\n      case 3:\n        k1 ^= data[blockCounts * 4 + 2] << 16;\n      /* falls through */\n      case 2:\n        k1 ^= data[blockCounts * 4 + 1] << 8;\n      /* falls through */\n      case 1:\n        k1 ^= data[blockCounts * 4];\n        /* falls through */\n\n        k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n        k1 = (k1 << 15) | (k1 >>> 17);\n        k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n        if (blockCounts & 1) {\n          h1 ^= k1;\n        } else {\n          h2 ^= k1;\n        }\n    }\n\n    this.h1 = h1;\n    this.h2 = h2;\n  }\n\n  hexdigest() {\n    let h1 = this.h1,\n      h2 = this.h2;\n\n    h1 ^= h2 >>> 1;\n    h1 = ((h1 * 0xed558ccd) & MASK_HIGH) | ((h1 * 0x8ccd) & MASK_LOW);\n    h2 =\n      ((h2 * 0xff51afd7) & MASK_HIGH) |\n      (((((h2 << 16) | (h1 >>> 16)) * 0xafd7ed55) & MASK_HIGH) >>> 16);\n    h1 ^= h2 >>> 1;\n    h1 = ((h1 * 0x1a85ec53) & MASK_HIGH) | ((h1 * 0xec53) & MASK_LOW);\n    h2 =\n      ((h2 * 0xc4ceb9fe) & MASK_HIGH) |\n      (((((h2 << 16) | (h1 >>> 16)) * 0xb9fe1a85) & MASK_HIGH) >>> 16);\n    h1 ^= h2 >>> 1;\n\n    return (\n      (h1 >>> 0).toString(16).padStart(8, \"0\") +\n      (h2 >>> 0).toString(16).padStart(8, \"0\")\n    );\n  }\n}\n\nexport { MurmurHash3_64 };\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 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 PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n  typeof process === \"object\" &&\n  process + \"\" === \"[object process]\" &&\n  !process.versions.nw &&\n  !(process.versions.electron && process.type && process.type !== \"browser\");\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst MAX_IMAGE_SIZE_TO_CACHE = 10e6; // Ten megabytes.\n\n// Represent the percentage of the height of a single-line field over\n// the font size. Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\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  SAVE: 0x08,\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\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\n\nconst AnnotationEditorType = {\n  DISABLE: -1,\n  NONE: 0,\n  FREETEXT: 3,\n  HIGHLIGHT: 9,\n  STAMP: 13,\n  INK: 15,\n};\n\nconst AnnotationEditorParamsType = {\n  RESIZE: 1,\n  CREATE: 2,\n  FREETEXT_SIZE: 11,\n  FREETEXT_COLOR: 12,\n  FREETEXT_OPACITY: 13,\n  INK_COLOR: 21,\n  INK_THICKNESS: 22,\n  INK_OPACITY: 23,\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 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 VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5,\n};\n\nconst CMapCompressionType = {\n  NONE: 0,\n  BINARY: 1,\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  // PLEASE NOTE: We purposely keep any removed operators commented out, since\n  //              re-numbering the list would risk breaking third-party users.\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  // 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 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 use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\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?.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 {}\n      }\n    }\n\n    const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n    if (_isValidProtocol(absoluteUrl)) {\n      return absoluteUrl;\n    }\n  } catch {\n    /* `new URL()` will throw on incorrect data. */\n  }\n  return null;\n}\n\nfunction shadow(obj, prop, value, nonSerializable = false) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\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: !nonSerializable,\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\nfunction bytesToString(bytes) {\n  if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n    unreachable(\"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  if (typeof str !== \"string\") {\n    unreachable(\"Invalid argument for stringToBytes\");\n  }\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\nfunction string32(value) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\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}\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 {\n    return false;\n  }\n}\n\nclass FeatureTest {\n  static get isLittleEndian() {\n    return shadow(this, \"isLittleEndian\", isLittleEndian());\n  }\n\n  static get isEvalSupported() {\n    return shadow(this, \"isEvalSupported\", isEvalSupported());\n  }\n\n  static get isOffscreenCanvasSupported() {\n    return shadow(\n      this,\n      \"isOffscreenCanvasSupported\",\n      typeof OffscreenCanvas !== \"undefined\"\n    );\n  }\n\n  static get platform() {\n    if (\n      (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n      (typeof navigator !== \"undefined\" &&\n        typeof navigator?.platform === \"string\")\n    ) {\n      return shadow(this, \"platform\", {\n        isMac: navigator.platform.includes(\"Mac\"),\n      });\n    }\n    return shadow(this, \"platform\", { isMac: false });\n  }\n\n  static get isCSSRoundSupported() {\n    return shadow(\n      this,\n      \"isCSSRoundSupported\",\n      globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\")\n    );\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  // Apply a scaling matrix to some min/max values.\n  // If a scaling factor is negative then min and max must be\n  // swaped.\n  static scaleMinMax(transform, minMax) {\n    let temp;\n    if (transform[0]) {\n      if (transform[0] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n      minMax[0] *= transform[0];\n      minMax[1] *= transform[0];\n\n      if (transform[3] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n      minMax[2] *= transform[3];\n      minMax[3] *= transform[3];\n    } else {\n      temp = minMax[0];\n      minMax[0] = minMax[2];\n      minMax[2] = temp;\n      temp = minMax[1];\n      minMax[1] = minMax[3];\n      minMax[3] = temp;\n\n      if (transform[1] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n      minMax[2] *= transform[1];\n      minMax[3] *= transform[1];\n\n      if (transform[2] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n      minMax[0] *= transform[2];\n      minMax[1] *= transform[2];\n    }\n    minMax[0] += transform[4];\n    minMax[1] += transform[4];\n    minMax[2] += transform[5];\n    minMax[3] += transform[5];\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 = this.applyTransform(r, m);\n    const p2 = this.applyTransform(r.slice(2, 4), m);\n    const p3 = this.applyTransform([r[0], r[3]], m);\n    const p4 = this.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  // 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 'null'\n  // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n  static intersect(rect1, rect2) {\n    const xLow = Math.max(\n      Math.min(rect1[0], rect1[2]),\n      Math.min(rect2[0], rect2[2])\n    );\n    const xHigh = Math.min(\n      Math.max(rect1[0], rect1[2]),\n      Math.max(rect2[0], rect2[2])\n    );\n    if (xLow > xHigh) {\n      return null;\n    }\n    const yLow = Math.max(\n      Math.min(rect1[1], rect1[3]),\n      Math.min(rect2[1], rect2[3])\n    );\n    const yHigh = Math.min(\n      Math.max(rect1[1], rect1[3]),\n      Math.max(rect2[1], rect2[3])\n    );\n    if (yLow > yHigh) {\n      return null;\n    }\n\n    return [xLow, yLow, xHigh, yHigh];\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  // See section 7.9.2.2 Text String Type.\n  // The string can contain some language codes bracketed with 0x0b,\n  // so we must remove them.\n  if (str[0] >= \"\\xEF\") {\n    let encoding;\n    if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n      encoding = \"utf-16be\";\n      if (str.length % 2 === 1) {\n        str = str.slice(0, -1);\n      }\n    } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n      encoding = \"utf-16le\";\n      if (str.length % 2 === 1) {\n        str = str.slice(0, -1);\n      }\n    } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n      encoding = \"utf-8\";\n    }\n\n    if (encoding) {\n      try {\n        const decoder = new TextDecoder(encoding, { fatal: true });\n        const buffer = stringToBytes(str);\n        const decoded = decoder.decode(buffer);\n        if (!decoded.includes(\"\\x1b\")) {\n          return decoded;\n        }\n        return decoded.replaceAll(/\\x1b[^\\x1b]*(?:\\x1b|$)/g, \"\");\n      } catch (ex) {\n        warn(`stringToPDFString: \"${ex}\".`);\n      }\n    }\n  }\n  // ISO Latin 1\n  const strBuf = [];\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const charCode = str.charCodeAt(i);\n    if (charCode === 0x1b) {\n      // eslint-disable-next-line no-empty\n      while (++i < ii && str.charCodeAt(i) !== 0x1b) {}\n      continue;\n    }\n    const code = PDFStringTranslateTable[charCode];\n    strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n  }\n  return strBuf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n  return typeof v === \"object\" && 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\nclass PromiseCapability {\n  #settled = false;\n\n  constructor() {\n    /**\n     * @type {Promise<any>} The Promise object.\n     */\n    this.promise = new Promise((resolve, reject) => {\n      /**\n       * @type {function} Fulfills the Promise.\n       */\n      this.resolve = data => {\n        this.#settled = true;\n        resolve(data);\n      };\n\n      /**\n       * @type {function} Rejects the Promise.\n       */\n      this.reject = reason => {\n        if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n          assert(reason instanceof Error, 'Expected valid \"reason\" argument.');\n        }\n        this.#settled = true;\n        reject(reason);\n      };\n    });\n  }\n\n  /**\n   * @type {boolean} If the Promise has been fulfilled/rejected.\n   */\n  get settled() {\n    return this.#settled;\n  }\n}\n\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n  if (!NormalizeRegex) {\n    // In order to generate the following regex:\n    //  - create a PDF containing all the chars in the range 0000-FFFF with\n    //    a NFKC which is different of the char.\n    //  - copy and paste all those chars and get the ones where NFKC is\n    //    required.\n    // It appears that most the chars here contain some ligatures.\n    NormalizeRegex =\n      /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n    NormalizationMap = new Map([[\"ﬅ\", \"ſt\"]]);\n  }\n  return str.replaceAll(NormalizeRegex, (_, p1, p2) => {\n    return p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2);\n  });\n}\n\nfunction getUuid() {\n  if (\n    (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n    (typeof crypto !== \"undefined\" && typeof crypto?.randomUUID === \"function\")\n  ) {\n    return crypto.randomUUID();\n  }\n  const buf = new Uint8Array(32);\n  if (\n    typeof crypto !== \"undefined\" &&\n    typeof crypto?.getRandomValues === \"function\"\n  ) {\n    crypto.getRandomValues(buf);\n  } else {\n    for (let i = 0; i < 32; i++) {\n      buf[i] = Math.floor(Math.random() * 255);\n    }\n  }\n  return bytesToString(buf);\n}\n\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\n\nexport {\n  AbortException,\n  AnnotationActionEventType,\n  AnnotationBorderStyleType,\n  AnnotationEditorParamsType,\n  AnnotationEditorPrefix,\n  AnnotationEditorType,\n  AnnotationFieldFlag,\n  AnnotationFlag,\n  AnnotationMode,\n  AnnotationPrefix,\n  AnnotationReplyType,\n  AnnotationType,\n  assert,\n  BaseException,\n  BASELINE_FACTOR,\n  bytesToString,\n  CMapCompressionType,\n  createValidAbsoluteUrl,\n  DocumentActionEventType,\n  FeatureTest,\n  FONT_IDENTITY_MATRIX,\n  FormatError,\n  getModificationDate,\n  getUuid,\n  getVerbosityLevel,\n  IDENTITY_MATRIX,\n  ImageKind,\n  info,\n  InvalidPDFException,\n  isArrayBuffer,\n  isArrayEqual,\n  isNodeJS,\n  LINE_DESCENT_FACTOR,\n  LINE_FACTOR,\n  MAX_IMAGE_SIZE_TO_CACHE,\n  MissingPDFException,\n  normalizeUnicode,\n  objectFromMap,\n  objectSize,\n  OPS,\n  PageActionEventType,\n  PasswordException,\n  PasswordResponses,\n  PermissionFlag,\n  PromiseCapability,\n  RenderingIntentFlag,\n  setVerbosityLevel,\n  shadow,\n  string32,\n  stringToBytes,\n  stringToPDFString,\n  stringToUTF8String,\n  TextRenderingMode,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  unreachable,\n  utf8StringToString,\n  Util,\n  VerbosityLevel,\n  warn,\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_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\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","var webpackQueues = typeof Symbol === \"function\" ? Symbol(\"webpack queues\") : \"__webpack_queues__\";\nvar webpackExports = typeof Symbol === \"function\" ? Symbol(\"webpack exports\") : \"__webpack_exports__\";\nvar webpackError = typeof Symbol === \"function\" ? Symbol(\"webpack error\") : \"__webpack_error__\";\nvar resolveQueue = (queue) => {\n\tif(queue && queue.d < 1) {\n\t\tqueue.d = 1;\n\t\tqueue.forEach((fn) => (fn.r--));\n\t\tqueue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));\n\t}\n}\nvar wrapDeps = (deps) => (deps.map((dep) => {\n\tif(dep !== null && typeof dep === \"object\") {\n\t\tif(dep[webpackQueues]) return dep;\n\t\tif(dep.then) {\n\t\t\tvar queue = [];\n\t\t\tqueue.d = 0;\n\t\t\tdep.then((r) => {\n\t\t\t\tobj[webpackExports] = r;\n\t\t\t\tresolveQueue(queue);\n\t\t\t}, (e) => {\n\t\t\t\tobj[webpackError] = e;\n\t\t\t\tresolveQueue(queue);\n\t\t\t});\n\t\t\tvar obj = {};\n\t\t\tobj[webpackQueues] = (fn) => (fn(queue));\n\t\t\treturn obj;\n\t\t}\n\t}\n\tvar ret = {};\n\tret[webpackQueues] = x => {};\n\tret[webpackExports] = dep;\n\treturn ret;\n}));\n__webpack_require__.a = (module, body, hasAwait) => {\n\tvar queue;\n\thasAwait && ((queue = []).d = -1);\n\tvar depQueues = new Set();\n\tvar exports = module.exports;\n\tvar currentDeps;\n\tvar outerResolve;\n\tvar reject;\n\tvar promise = new Promise((resolve, rej) => {\n\t\treject = rej;\n\t\touterResolve = resolve;\n\t});\n\tpromise[webpackExports] = exports;\n\tpromise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise[\"catch\"](x => {}));\n\tmodule.exports = promise;\n\tbody((deps) => {\n\t\tcurrentDeps = wrapDeps(deps);\n\t\tvar fn;\n\t\tvar getResult = () => (currentDeps.map((d) => {\n\t\t\tif(d[webpackError]) throw d[webpackError];\n\t\t\treturn d[webpackExports];\n\t\t}))\n\t\tvar promise = new Promise((resolve) => {\n\t\t\tfn = () => (resolve(getResult));\n\t\t\tfn.r = 0;\n\t\t\tvar fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));\n\t\t\tcurrentDeps.map((dep) => (dep[webpackQueues](fnQueue)));\n\t\t});\n\t\treturn fn.r ? promise : getResult();\n\t}, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));\n\tqueue && queue.d < 0 && (queue.d = 0);\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","","// startup\n// Load entry module and return exports\n// This entry module used 'module' so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(9907);\n",""],"names":["isCallable","require","tryToString","$TypeError","TypeError","module","exports","argument","$String","String","has","it","isPrototypeOf","Prototype","isObject","ArrayBuffer","DataView","uncurryThisAccessor","classof","prototype","O","byteLength","uncurryThis","arrayBufferByteLength","slice","error","global","toIndex","isDetached","detachTransferable","PROPER_STRUCTURED_CLONE_TRANSFER","structuredClone","min","Math","ArrayBufferPrototype","DataViewPrototype","isResizable","maxByteLength","getInt8","setInt8","arrayBuffer","newLength","preserveResizability","newByteLength","undefined","fixedLength","newBuffer","transfer","options","a","b","copyLength","i","NATIVE_ARRAY_BUFFER","DESCRIPTORS","hasOwn","createNonEnumerableProperty","defineBuiltIn","defineBuiltInAccessor","getPrototypeOf","setPrototypeOf","wellKnownSymbol","uid","InternalStateModule","enforceInternalState","enforce","getInternalState","get","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","Object","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","NAME","Constructor","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isView","klass","getTypedArrayConstructor","proto","state","isTypedArray","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","property","forced","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","Function","configurable","lengthOfArrayLike","list","index","length","result","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","value","includes","indexOf","bind","IndexedObject","toObject","TYPE","IS_FIND_LAST_INDEX","callbackfn","that","self","boundFunction","findLast","findLastIndex","isArray","getOwnPropertyDescriptor","SILENT_ON_NON_WRITABLE_LENGTH_SET","defineProperty","writable","len","A","k","toIntegerOrInfinity","$RangeError","RangeError","relativeIndex","actualIndex","anObject","iteratorClose","iterator","fn","ENTRIES","toString","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","$Object","CORRECT_ARGUMENTS","arguments","tryGet","key","tag","callee","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","target","source","exceptions","keys","f","fails","F","constructor","done","createPropertyDescriptor","object","bitmap","enumerable","toPropertyKey","propertyKey","makeBuiltIn","name","descriptor","getter","set","setter","defineGlobalProperty","simple","unsafe","nonConfigurable","nonWritable","src","tryNodeRequire","$ArrayBuffer","$MessageChannel","MessageChannel","detach","WorkerThreads","channel","buffer","$detach","transferable","port1","postMessage","documentAll","document","all","IS_HTMLDDA","EXISTS","createElement","MAX_SAFE_INTEGER","IndexSizeError","s","c","m","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","IS_DENO","IS_NODE","window","Deno","version","process","navigator","userAgent","versions","v8","match","split","$Error","Error","replace","TEST","arg","stack","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","test","dropEntries","prepareStackTrace","clearErrorStack","ERROR_STACK_INSTALLABLE","captureStackTrace","copyConstructorProperties","isForced","TARGET","GLOBAL","STATIC","stat","FORCED","targetProperty","sourceProperty","dontCallGetSet","sham","exec","NATIVE_BIND","FunctionPrototype","apply","call","Reflect","aCallable","hasOwnProperty","getDescriptor","PROPER","something","CONFIGURABLE","method","uncurryThisWithBind","aFunction","namespace","obj","next","getIteratorDirect","getIteratorMethod","stringHandling","getMethod","isNullOrUndefined","Iterators","ITERATOR","usingIterator","iteratorMethod","V","P","func","INVALID_SIZE","max","SetRecord","size","getIterator","numSize","intSize","check","globalThis","getBuiltIn","propertyIsEnumerable","dummy","Wrapper","NewTarget","NewTargetPrototype","store","functionToString","inspectSource","cause","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","getterFor","type","metadata","facade","STATE","ArrayPrototype","Array","$documentAll","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","USE_SYMBOL_AS_UID","$Symbol","record","ITERATOR_INSTEAD_OF_RECORD","step","isArrayIteratorMethod","Result","stopped","ResultPrototype","iterable","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","stop","condition","callFn","kind","innerResult","innerError","create","defineBuiltIns","IteratorPrototype","createIterResultObject","ITERATOR_HELPER","WRAP_FOR_VALID_ITERATOR","setInternalState","createIteratorProxyPrototype","nextHandler","returnMethod","inner","WrapForValidIteratorPrototype","IteratorHelperPrototype","IteratorProxy","Iterator","counter","createIteratorProxy","callWithSafeIterationClosing","mapper","map","IS_PURE","BUGGY_SAFARI_ITERATORS","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","toLength","CONFIGURABLE_FUNCTION_NAME","join","CONFIGURABLE_LENGTH","TEMPLATE","arity","ceil","floor","trunc","x","n","$default","definePropertiesModule","enumBugKeys","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","contentWindow","open","NullProtoObject","ActiveXObject","domain","Properties","V8_PROTOTYPE_DEFINE_BUG","objectKeys","defineProperties","props","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","concat","getOwnPropertyNames","getOwnPropertySymbols","CORRECT_PROTOTYPE_GETTER","push","names","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","__proto__","input","pref","val","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","$SyntaxError","$parseInt","parseInt","fromCharCode","at","charAt","codePoints","IS_4_HEX_DIGITS","IS_C0_CONTROL_CODE","unterminated","chr","twoChars","fourHexDigits","end","Target","Source","SetHelpers","iterate","Set","add","aSet","clone","getSetRecord","iterateSet","iterateSimple","remove","difference","other","otherRec","e","SetPrototype","intersection","isDisjointFrom","isSubsetOf","isSupersetOf","forEach","interruptible","createSetLike","symmetricDifference","keysIter","union","SHARED","mode","copyright","license","V8","IS_BROWSER","V8_VERSION","symbol","Symbol","integer","toPrimitive","prim","BigInt","number","requireObjectCoercible","toPositiveInteger","BYTES","offset","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","id","postfix","random","NATIVE_SYMBOL","passed","required","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","proxyAccessor","inheritIfRequired","normalizeStringArgument","installErrorCause","installErrorStack","FULL_NAME","wrapper","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","path","ERROR_NAME","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","message","$","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","properErrorOnNonWritableLength","item","argCount","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","exportWebAssemblyErrorCauseWrapper","init","EvalError","ReferenceError","URIError","CompileError","LinkError","RuntimeError","ArrayBufferViewCore","$findLastIndex","predicate","$findLast","toOffset","$set","WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS","array","TO_OBJECT_BUG","arrayLike","arrayToReversed","toReversed","arrayFromConstructorAndList","sort","toSorted","compareFn","arrayWith","isBigIntArray","toBigInt","PROPER_ORDER","actualValue","detached","$transfer","transferToFixedLength","anInstance","NativeIterator","IteratorConstructor","real","every","filter","getIteratorFlattenable","flatMap","some","createProperty","parseJSONString","JSON","Number","nativeParse","parse","enumerableOwnProperties","IS_DIGIT","IS_NON_ZERO_DIGIT","IS_NUMBER_START","IS_WHITESPACE","PRIMITIVE","OBJECT","$parse","reviver","context","Context","root","endIndex","skip","internalize","holder","node","unmodified","elementRecordsLen","nodeIsArray","nodes","internalizeProperty","Node","fork","nextIndex","keyword","start","expectKeypair","until","expectElement","parsed","startIndex","exponentStartIndex","regex","j","NO_SOURCE_SUPPORT","unsafeInt","PROPER_BASE_PARSE","Infinity","text","setMethodAcceptSetLike","INCORRECT","from","DOMExceptionConstants","DOM_EXCEPTION","NativeDOMException","$DOMException","DOMException","DOMExceptionPrototype","argumentsLength","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","FORCED_CONSTRUCTOR","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constant","constantName","validateArgumentsLength","$URLSearchParams","URLSearchParams","URLSearchParamsPrototype","append","$delete","params","$value","entries","v","dindex","found","entriesLength","entry","getAll","$has","values","count","makeColorComp","padStart","scaleAndClamp","ColorConverters","CMYK_G","_ref","y","G_CMYK","_ref2","g","G_RGB","_ref3","G_rgb","_ref4","G_HTML","_ref5","G","RGB_G","_ref6","r","RGB_rgb","color","RGB_HTML","T_HTML","T_rgb","CMYK_RGB","_ref7","CMYK_rgb","_ref8","CMYK_HTML","components","rgb","RGB_CMYK","_ref9","AnnotationBorderStyleType","AnnotationEditorType","AnnotationPrefix","AnnotationType","FeatureTest","LINE_FACTOR","shadow","unreachable","Util","warn","DOMSVGFactory","getFilenameFromUrl","PDFDateString","setLayerDimensions","AnnotationStorage","XfaLayer","DEFAULT_TAB_INDEX","DEFAULT_FONT_SIZE","GetElementsByNameSet","WeakSet","getRectDims","rect","width","height","AnnotationElementFactory","parameters","subtype","annotationType","LINK","LinkAnnotationElement","TEXT","TextAnnotationElement","WIDGET","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","SignatureWidgetAnnotationElement","WidgetAnnotationElement","POPUP","PopupAnnotationElement","FREETEXT","FreeTextAnnotationElement","LINE","LineAnnotationElement","SQUARE","SquareAnnotationElement","CIRCLE","CircleAnnotationElement","POLYLINE","PolylineAnnotationElement","CARET","CaretAnnotationElement","INK","InkAnnotationElement","POLYGON","PolygonAnnotationElement","HIGHLIGHT","HighlightAnnotationElement","UNDERLINE","UnderlineAnnotationElement","SQUIGGLY","SquigglyAnnotationElement","STRIKEOUT","StrikeOutAnnotationElement","STAMP","StampAnnotationElement","FILEATTACHMENT","FileAttachmentAnnotationElement","AnnotationElement","hasBorder","isRenderable","ignoreBorder","createQuadrilaterals","layer","linkService","downloadManager","imageResourcesPath","renderForms","svgFactory","annotationStorage","enableScripting","hasJSActions","_fieldObjects","fieldObjects","parent","container","_createContainer","_createQuadrilaterals","_hasPopupData","titleObj","contentsObj","richText","str","hasPopupData","page","viewport","setAttribute","tabIndex","zIndex","popupRef","noRotate","classList","pageWidth","pageHeight","pageX","pageY","rawDims","rotation","hasOwnCanvas","setRotation","normalizeRect","view","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","radius","borderRadius","SOLID","DASHED","BEVELED","INSET","borderBottomStyle","borderColor","makeHexColor","left","top","angle","elementWidth","elementHeight","_commonActions","setColor","jsName","styleName","event","detail","colorType","colorArray","setValue","hidden","visibility","noView","noPrint","print","focus","setTimeout","preventScroll","userName","title","readonly","disabled","_setRequired","bgColor","fillColor","fgColor","textColor","strokeColor","_dispatchEventFromSandbox","actions","jsEvent","commonActions","action","_setDefaultPropertiesFromJS","element","storedData","getRawValue","actionName","eventProxy","quadPoints","rectBlX","rectBlY","rectTrX","rectTrY","trX","trY","blX","blY","svgBuffer","svg","defs","clipPath","rectWidth","rectHeight","backgroundImage","_createPopup","popup","modificationDate","parentRect","elements","div","render","_getElementsByName","skipId","fields","fieldObj","exportValues","exportValue","domElement","querySelector","getElementsByName","getAttribute","show","maybeShow","hide","forceHide","getElementsToTriggerPopup","addHighlightArea","triggers","_isEditable","_editOnDoubleClick","annotationEditorType","editId","addEventListener","eventBus","dispatch","isTooltipOnly","link","isBound","url","addLinkAttributes","newWindow","_bindNamedAction","attachment","bindAttachment","attachmentDest","setOCGState","bindSetOCGState","dest","_bindLink","Action","_bindJSAction","resetForm","_bindResetFormAction","setInternalLink","destination","href","getDestinationHash","onclick","goToDestination","getAnchorUrl","executeNamedAction","openOrDownloadData","filename","executeSetOCGState","Map","otherClickAction","resetFormFields","refs","resetFormRefs","include","allFields","fieldIds","fieldName","field","storage","allIds","defaultValue","dispatchEvent","Event","ids","image","stringify","alternativeText","showElementAndHideCanvas","previousSibling","nodeName","_getKeyModifier","platform","isMac","metaKey","ctrlKey","_setEventListener","elementData","baseName","eventName","valueGetter","shift","shiftKey","modifier","focused","relatedTarget","_setEventListeners","Blur","Focus","_setBackgroundColor","backgroundColor","_setTextStyle","TEXT_ALIGNMENT","fontColor","defaultAppearanceData","fontSize","computedFontSize","BORDER_SIZE","roundToOneDecimal","round","multiLine","abs","numberOfLines","lineHeight","textAlignment","textAlign","isRequired","removeAttribute","hasAppearance","fieldValue","setPropertyOnSiblings","base","keyInStorage","getValue","textContent","maxLen","charLimit","fieldFormattedValues","formattedValue","comb","replaceAll","userValue","lastCommittedValue","commitKey","doNotScroll","overflowY","overflowX","readOnly","maxLength","defaultFieldValue","blurListener","scrollLeft","activeElement","selRange","setSelectionRange","willCommit","selStart","selectionStart","selEnd","selectionEnd","_blurListener","Keystroke","inputType","substring","preventDefault","change","fieldWidth","combWidth","letterSpacing","verticalAlign","checked","checkbox","curChecked","buttonValue","radio","pdfButtonValue","linkElement","lastChild","selectElement","addAnEmptyEntry","combo","multiSelect","multiple","option","selected","optionElement","displayValue","removeEmptyEntry","noneOptionElement","prepend","removeEventListener","isExport","selectedIndex","selectedValues","getItems","multipleSelection","findIndex","items","clear","insert","selectChild","children","before","indices","editable","changeEx","keyDown","PopupElement","elementIds","boundKeyDown","boundHide","boundShow","boundToggle","toggle","dateObj","pinned","wasVisible","toDateObject","trigger","className","baseColor","outlineColor","CSS","supports","BACKGROUND_ENLIGHT","header","dir","date","toLocaleDateString","time","toLocaleTimeString","xfaHtml","intent","contents","_formatContents","useParentRect","intersect","normalizedRect","HORIZONTAL_SPACE_AFTER_ANNOTATION","parentWidth","popupLeft","popupTop","p","lines","ii","line","createTextNode","altKey","isVisible","textPosition","lineSpan","lineCoordinates","square","circle","polyline","containerClassName","svgElementName","points","coordinate","vertices","polylines","inkList","inkLists","file","fillAlpha","download","evt","AnnotationLayer","accessibilityManager","annotationCanvasMap","editableAnnotations","appendElement","contentElement","firstChild","moveElementInDOM","annotations","popupToElements","elementParams","noHTML","isPopupAnnotation","rendered","setAnnotationCanvasMap","update","canvas","replaceWith","getEditableAnnotations","getEditableAnnotation","objectFromMap","AnnotationEditor","MurmurHash3_64","SerializableEmpty","freeze","hash","modified","onSetModified","onResetModified","onAnnotationEditor","assign","delete","resetModified","setModified","_type","setAll","PrintAnnotationStorage","serializable","hasBitmap","serialized","serialize","hexdigest","AbortException","AnnotationMode","assert","getVerbosityLevel","info","InvalidPDFException","isArrayBuffer","isNodeJS","MAX_IMAGE_SIZE_TO_CACHE","MissingPDFException","PasswordException","PromiseCapability","RenderingIntentFlag","setVerbosityLevel","stringToBytes","UnexpectedResponseException","UnknownErrorException","DOMCanvasFactory","DOMCMapReaderFactory","DOMFilterFactory","DOMStandardFontDataFactory","isDataScheme","isValidFetchUrl","PageViewport","RenderingCancelledException","StatTimer","FontFaceObject","FontLoader","NodeCanvasFactory","NodeCMapReaderFactory","NodeFilterFactory","NodeStandardFontDataFactory","CanvasGraphics","GlobalWorkerOptions","MessageHandler","Metadata","OptionalContentConfig","PDFDataTransportStream","PDFFetchStream","PDFNetworkStream","PDFNodeStream","XfaText","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DELAYED_CLEANUP_TIMEOUT","DefaultCanvasFactory","DefaultCMapReaderFactory","DefaultFilterFactory","DefaultStandardFontDataFactory","getDocument","URL","range","task","PDFDocumentLoadingTask","docId","getUrlProp","getDataProp","httpHeaders","withCredentials","password","rangeTransport","PDFDataRangeTransport","rangeChunkSize","isInteger","worker","PDFWorker","verbosity","docBaseUrl","cMapUrl","cMapPacked","CMapReaderFactory","standardFontDataUrl","StandardFontDataFactory","ignoreErrors","stopAtErrors","maxImageSize","isEvalSupported","isOffscreenCanvasSupported","canvasMaxAreaInBytes","disableFontFace","fontExtraProperties","enableXfa","ownerDocument","disableRange","disableStream","disableAutoFetch","pdfBug","NaN","useSystemFonts","useWorkerFetch","baseURI","canvasFactory","filterFactory","styleElement","transportFactory","cMapReaderFactory","baseUrl","isCompressed","standardFontDataFactory","workerParams","port","workerPort","fromPort","_worker","fetchDocParams","apiVersion","evaluatorOptions","transportParams","promise","then","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","Promise","resolve","networkStream","initialData","progressiveDone","contentDispositionFilename","createPDFNetworkStream","workerId","messageHandler","transport","WorkerTransport","_transport","send","catch","_capability","reject","sendWithPromise","location","Buffer","isNaN","onPassword","onProgress","destroy","_pendingDestroy","ex","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","addRangeListener","listener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","begin","chunk","onDataProgress","loaded","total","onDataProgressiveRead","onDataProgressiveDone","transportReady","requestDataRange","abort","PDFDocumentProxy","pdfInfo","_pdfInfo","numPages","fingerprints","isPureXfa","_htmlForXfa","allXfaHtml","getPage","pageNumber","getPageIndex","ref","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJSActions","getDocJSActions","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","getData","saveDocument","getDownloadInfo","downloadInfoCapability","cleanup","keepLoadedFonts","startCleanup","loadingTask","loadingParams","getFieldObjects","getCalculationOrderIds","PDFPageProxy","delayedCleanupTimeout","pendingCleanup","pageIndex","pageInfo","_pageIndex","_pageInfo","_stats","_pdfBug","commonObjs","objs","PDFObjects","_maybeCleanupAfterRender","_intentStates","rotate","userUnit","getViewport","scale","offsetX","offsetY","dontFlip","viewBox","getAnnotations","intentArgs","getRenderingIntent","renderingIntent","getPageJSActions","getXfa","canvasContext","annotationMode","ENABLE","transform","background","optionalContentConfigPromise","pageColors","printAnnotationStorage","abortDelayedCleanup","intentState","cacheKey","streamReaderCancelTimeout","clearTimeout","intentPrint","PRINT","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","separateAnnots","_pumpOperatorList","complete","renderTasks","internalRenderTask","tryCleanup","capability","_abortOperatorList","reason","timeEnd","InternalRenderTask","callback","useRequestAnimationFrame","renderTask","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","getOperatorList","opListReadCapability","opListTask","streamTextContent","includeMarkedContent","disableNormalization","TEXT_CONTENT_CHUNK_SIZE","sendWithStream","highWaterMark","getTextContent","xfa","readableStream","pump","reader","read","styles","getReader","getStructTree","_destroy","waitOn","force","completed","cancel","resetStats","success","delayed","_startRenderPage","_renderPageChunk","operatorListChunk","annotationStorageSerializable","streamReader","delay","extraDelay","curCacheKey","curIntentState","stats","LoopbackPort","listeners","deferred","terminate","PDFWorkerUtil","isWorkerDisabled","fakeWorkerId","workerSrc","isSameOrigin","otherUrl","origin","createCDNWrapper","createObjectURL","Blob","workerPorts","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","on","mainThreadWorkerMessageHandler","Worker","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","testObj","_setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","setup","cachedPort","pdfjsWorker","loader","__non_webpack_import__","methodPromises","pageCache","pagePromises","passwordCapability","factory","fontLoader","_params","destroyCapability","_networkStream","_fullReader","_lastProgress","setupMessageHandler","cacheSimpleMethod","cachedPromise","isOpList","DISPLAY","ANY","DISABLE","ANNOTATIONS_DISABLE","ENABLE_FORMS","ANNOTATIONS_FORMS","ENABLE_STORAGE","ANNOTATIONS_STORAGE","OPLIST","terminated","cancelAllRequests","sink","getFullReader","onPull","enqueue","onCancel","ready","readyReason","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_ref10","_numPages","htmlForXfa","code","status","details","exception","updatePassword","_ref11","exportedData","exportedError","inspectFont","FontInspector","enabled","font","fontAdded","finally","_ref12","imageData","pageProxy","fetch","num","gen","results","cleanupSuccessful","ensureObj","objId","settled","RenderTask","onContinue","form","canvasInUse","_ref13","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_cancelBound","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","_canvas","_ref14","StepperManager","stepper","nextBreakPoint","getNextBreakPoint","gfx","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","executeOperatorList","build","CMapCompressionType","BaseFilterFactory","addFilter","maps","addHCMFilter","addHighlightHCMFilter","newFgColor","newBgColor","keepHCM","BaseCanvasFactory","_createCanvas","getContext","reset","canvasAndContext","BaseCMapReaderFactory","compressionType","BINARY","NONE","_fetchData","BaseStandardFontDataFactory","BaseSVGFactory","skipDimensions","_createSVG","FormatError","getCurrentTransform","PathType","FILL","STROKE","SHADING","applyBoundingBox","ctx","bbox","region","Path2D","clip","BaseShadingPattern","getPattern","RadialAxialShadingPattern","IR","_bbox","_colorStops","_p0","_p1","_r0","_r1","matrix","_createGradient","grad","createLinearGradient","createRadialGradient","colorStop","addColorStop","owner","inverse","pathType","pattern","ownerBBox","getClippedPathBoundingBox","tmpCanvas","cachedCanvases","getCanvas","tmpCtx","clearRect","beginPath","translate","baseTransform","fillStyle","fill","createPattern","domMatrix","DOMMatrix","setTransform","drawTriangle","p1","p2","p3","c1","c2","c3","coords","colors","bytes","rowSize","tmp","x1","scaleX","y1","scaleY","x2","y2","x3","y3","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","MeshShadingPattern","_coords","_colors","_figures","_bounds","_background","_createMeshCanvas","combinedScale","EXPECTED_SCALE","MAX_PATTERN_SIZE","boundsWidth","boundsHeight","paddedWidth","paddedHeight","createImageData","putImageData","singularValueDecompose2dScale","matrixScale","temporaryPatternCanvas","DummyShadingPattern","getShadingPattern","PaintType","COLORED","UNCOLORED","TilingPattern","canvasGraphicsFactory","xstep","ystep","paintType","tilingType","createPatternCanvas","x0","y0","curMatrixScale","dimx","getSizeAndScale","dimy","graphics","createCanvasGraphics","groupLevel","setFillAndStrokeStyleToContext","adjustedX0","adjustedY0","adjustedX1","adjustedY1","save","clipBbox","realOutputSize","maxSize","bboxWidth","bboxHeight","updateRectMinMax","endPath","strokeStyle","cssColor","ImageKind","convertToRGBA","GRAYSCALE_1BPP","convertBlackAndWhiteToRGBA","RGB_24BPP","convertRGBToRGBA","srcPos","nonBlackColor","inverseDecode","black","isLittleEndian","zeroMapping","oneMapping","widthInSource","widthRemainder","srcLength","destPos","elem","len32","src32","s1","s2","s3","jj","grayToRGBA","FONT_IDENTITY_MATRIX","IDENTITY_MATRIX","OPS","TextRenderingMode","getCurrentTransformInverse","PixelsPerInch","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","EXECUTION_TIME","EXECUTION_STEPS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","mirrorContextOperations","destCtx","_removeMirroring","__originalSave","__originalRestore","restore","__originalRotate","__originalScale","__originalTranslate","__originalTransform","__originalSetTransform","__originalResetTransform","resetTransform","__originalClip","__originalMoveTo","moveTo","__originalLineTo","lineTo","__originalBezierCurveTo","bezierCurveTo","__originalRect","__originalClosePath","closePath","__originalBeginPath","ctxSave","ctxRestore","ctxTranslate","ctxScale","ctxTransform","d","ctxSetTransform","ctxResetTransform","ctxRotate","rule","cp1x","cp1y","cp2x","cp2y","CachedCanvases","cache","canvasEntry","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tx","ty","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","sign","drawImage","hypot","compileType3Glyph","imgData","POINT_TO_PROCESS_LIMIT","POINT_TYPES","width1","j0","lineSize","pos","mask","sum","steps","p0","pp","drawOutline","CanvasExtraState","alphaIsShape","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","patternFill","strokeAlpha","lineWidth","activeSMask","transferMaps","startNewPathAndClipBox","clipBox","setCurrentPoint","updatePathMinMax","applyTransform","minX","maxX","p4","updateScalingPathMinMax","minMax","scaleMinMax","updateCurvePathMinMax","box","bezierBoundingBox","getPathBoundingBox","xStrokePad","yStrokePad","updateClipFromPath","isEmptyClip","putBinaryImageData","ImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","thisChunkHeight","elemsInThisChunk","dest32","dest32DataLength","fullSrcDiff","white","srcDiff","kEnd","kEndUnrolled","srcByte","RGBA_32BPP","subarray","putBinaryImageMask","copyCtxState","sourceCtx","properties","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","backdrop","layerOffsetX","layerOffsetY","maskOffsetX","maskOffsetY","hasBackdrop","composeFn","PIXELS_TO_PROCESS","chunkSize","row","chunkHeight","getImageData","composeSMask","smask","layerBox","layerWidth","layerHeight","getImageSmoothingEnabled","interpolate","fround","actualScale","devicePixelRatio","PDF_TO_CSS_UNITS","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","canvasCtx","markedContentStack","stateStack","pendingClip","pendingEOFill","res","xobjs","groupStack","processingType3","baseTransformStack","smaskStack","smaskCounter","tempSMask","suspendedCtx","contentVisible","cachedPatterns","viewportScale","outputScaleX","outputScaleY","_cachedScaleForStroking","_cachedGetSinglePixelWidth","_cachedBitmapsMap","getObject","fallback","startsWith","savedFillStyle","fillRect","transparentCanvas","compositeCtx","executionStartIdx","continueCallback","argsArrayLen","chunkOperations","endTime","Date","now","fnId","breakIt","dependency","depObjId","objsPool","restoreInitialState","inSMaskMode","HTMLCanvasElement","drawFilter","hcmFilterId","foreground","savedFilter","_scaleImage","img","inverseTransform","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","_createMaskCanvas","isPatternFill","currentTransform","scaled","maskCanvas","mainKey","cachedImage","maskToCanvas","getAxialAlignedBoundingBox","drawnWidth","drawnHeight","fillCanvas","fillCtx","imageSmoothingEnabled","setLineWidth","setLineCap","setLineJoin","setMiterLimit","limit","setDash","dashArray","dashPhase","setRenderingIntent","setFlatness","flatness","setGState","states","setFont","checkSMaskState","beginSMaskMode","endSMaskMode","cacheId","scratchCanvas","compose","dirtyBox","old","pop","constructPath","ops","args","startX","startY","isScalingMatrix","minMaxForBezier","rectangle","xw","yh","curveTo","curveTo2","curveTo3","stroke","consumePath","rescaleAndStroke","closeStroke","needRestore","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","eoClip","beginText","endText","paths","pendingTextPaths","addToPath","setCharSpacing","spacing","setWordSpacing","setHScale","setLeading","fontRefName","fontObj","fontDirection","isType3Font","loadedName","typeface","systemFontInfo","css","fallbackName","bold","italic","browserFontSize","setTextRenderingMode","setTextRise","rise","moveText","setLeadingMoveText","setTextMatrix","nextLine","paintChar","character","patternTransform","fillStrokeMode","FILL_STROKE_MASK","isAddToPathSet","ADD_TO_PATH_FLAG","missingFile","getPathGenerator","FILL_STROKE","fillText","strokeText","isFontSubpixelAAEnabled","showText","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","getSinglePixelWidth","isInvalidPDFjsFont","chars","glyph","unicode","restoreNeeded","isSpace","fontChar","accent","scaledX","scaledY","vmetric","vx","vy","remeasure","measuredWidth","measureText","characterScaleX","isInFont","scaledAccentX","scaledAccentY","charWidth","isTextInvisible","INVISIBLE","spacingLength","charProcOperatorList","operatorListId","transformed","setCharWidth","xWidth","yWidth","setCharWidthAndBounds","llx","lly","urx","ury","getColorN_Pattern","_getPattern","setStrokeColorN","setFillColorN","setStrokeRGBColor","setFillRGBColor","shadingFill","inv","beginInlineImage","beginImageData","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","group","currentCtx","isolated","knockout","bounds","canvasBounds","groupCtx","startTransformInverse","endGroup","currentMtx","beginAnnotation","canvasWidth","canvasHeight","annotationCanvas","savedCtx","endAnnotation","paintImageMaskXObject","compiled","paintImageMaskXObjectRepeat","skewX","skewY","positions","trans","paintImageMaskXObjectGroup","images","paintImageXObject","paintInlineImageXObject","paintImageXObjectRepeat","w","h","paintInlineImageXObjectGroup","applyTransferMapsToCanvas","applyTransferMapsToBitmap","imgToPaint","HTMLElement","paintSolidColorImageMask","markPoint","markPointProps","beginMarkedContent","visible","beginMarkedContentProps","isContentVisible","endMarkedContent","beginCompat","endCompat","isEmpty","absDet","normX","normY","getScaleForStroking","getTransform","scaledLineWidth","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","dashes","op","BaseException","SVG_NS","PDF","_","_defineProperty","_cache","_defs","hcmFilter","hcmKey","hcmUrl","hcmHighlightFilter","hcmHighlightKey","hcmHighlightUrl","contain","position","createElementNS","body","tableR","tableG","tableB","mapR","mapG","mapB","bufferR","bufferG","bufferB","createFilter","addTransferMapConversion","fgRGB","getRGB","bgRGB","table","addGrayConversion","getSteps","arr","fgGray","bgGray","newFgRGB","newBgRGB","fg","bg","newStart","newStep","prev","parentNode","feColorMatrix","appendFeFunc","feComponentTransfer","feFunc","rTable","gTable","bTable","getComputedStyle","getPropertyValue","_document","fetchData","response","ok","statusText","blob","json","request","XMLHttpRequest","responseType","onreadystatechange","readyState","DONE","responseText","cMapData","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","convertToViewportPoint","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","applyInverseTransform","msg","trim","isPdfFile","onlyStripPath","lastIndexOf","getPdfFilenameFromUrl","defaultFilename","reURI","reFilename","splitURI","suggestedFilename","decodeURIComponent","started","times","outBuf","longest","padEnd","protocol","noContextMenu","deprecated","console","log","pdfDateStringRegex","RegExp","matches","year","month","day","hour","minute","second","universalTimeRelation","offsetHour","offsetMinute","UTC","getXfaPageViewport","xfaPage","attributes","colorRGB","getColorValues","span","computedColor","invertSelf","mustFlip","mustRotate","useRound","isCSSRoundSupported","widthStr","heightStr","DrawLayer","mapping","setParent","_svgFactory","setBox","createSVG","highlight","opacity","outlines","pathId","extractPathFromHighlightOutlines","clipPathId","clipPathUse","use","highlightOutline","use1","use2","cloneNode","polygons","polygon","prevX","prevY","updateBox","changeColor","changeOpacity","addClass","removeClass","AnnotationEditorParamsType","AnnotationEditorUIManager","bindEvents","KeyboardManager","FreeTextEditor","boundEditorDivBlur","editorDivBlur","boundEditorDivFocus","editorDivFocus","boundEditorDivInput","editorDivInput","boundEditorDivKeydown","editorDivKeydown","editorDivId","_freeTextDefaultContent","_internalPadding","_defaultColor","_defaultFontSize","_keyboardManager","arrowChecker","small","TRANSLATE_SMALL","big","TRANSLATE_BIG","commitOrRemove","bubbles","_translateEmpty","checker","_editorType","_defaultLineColor","initialize","l10n","strings","documentElement","parseFloat","updateDefaultParams","FREETEXT_SIZE","FREETEXT_COLOR","updateParams","updateFontSize","updateColor","defaultPropertiesToUpdate","propertiesToUpdate","setFontsize","editorDiv","parentScale","setEditorDimensions","savedFontsize","addCommands","cmd","undo","mustExec","overwriteIfSameType","keepUndo","savedColor","_uiManager","translateSelectedEditors","getInitialTranslation","rebuild","isAttachedToDOM","enableEditMode","isInEditMode","setEditingState","updateToolbar","overlayDiv","contentEditable","_isDraggable","disableEditMode","isEditing","focusin","_focusEventsAllowed","onceAdded","cheatInitialRect","_initialOptions","isCentered","center","innerText","extractText","divs","getElementsByTagName","parentHeight","parentDimensions","getBoundingClientRect","currentLayer","savedDisplay","parentRotation","fixAndSetPosition","commit","savedText","newText","trimEnd","setText","setContent","shouldGetKeyboardEvents","enterInEditMode","dblclick","keydown","disableEditing","enableEditing","baseX","baseY","_l10nPromise","annotationElementId","pageTranslationToScreen","pageDimensions","pageTranslation","posX","posY","setAt","replaceChildren","contentDiv","deserialize","uiManager","deleted","editor","isForCopying","padding","getRect","_colorManager","convert","structTreeParentId","_structTreeParentId","hasElementChanged","opacityToHex","InkEditor","baseHeight","baseWidth","boundCanvasPointermove","canvasPointermove","boundCanvasPointerleave","canvasPointerleave","boundCanvasPointerup","canvasPointerup","boundCanvasPointerdown","canvasPointerdown","canvasContextMenuTimeoutId","currentPath2D","hasSomethingToDraw","isCanvasInitialized","observer","realWidth","realHeight","requestFrameCallback","_defaultOpacity","_defaultThickness","thickness","bezierPath2D","allRawPaths","currentPath","scaleFactor","translationX","translationY","_willKeepAspectRatio","INK_THICKNESS","INK_COLOR","INK_OPACITY","updateThickness","updateOpacity","savedThickness","fitToContent","redraw","savedOpacity","createCanvas","createObserver","setCanvasDims","disconnect","removeShouldRescale","addShouldRescale","onScaleChanging","setDimensions","getInitialBBox","setStroke","startDrawing","drawPoints","draw","lastX","lastY","path2D","makeBezierCurve","lastPoint","stopDrawing","bezier","generateBezierPoints","xy","lastPoints","xMin","xMax","yMin","yMax","bezierPoints","control1","control2","updateTransform","setInForeground","select","addInkEditorIfNeeded","moveInDOM","button","pointerType","contains","addToAnnotationStorage","setInBackground","ResizeObserver","contentRect","observe","setDims","setAspectRatio","roundedWidth","roundedHeight","setScaleFactor","fixDims","getPadding","scaleFactorW","scaleFactorH","buildPath2D","first","toPDFCoordinates","fromPDFCoordinates","serializePaths","shiftX","shiftY","p10","p11","p20","p21","p30","p31","p40","p41","getBbox","firstTime","MIN_SIZE","prevTranslationX","prevTranslationY","unscaledPadding","StampEditor","bitmapId","bitmapPromise","bitmapUrl","bitmapFile","bitmapFileName","resizeTimeoutId","isSvg","hasBeenAddedInUndoStack","supportedTypes","types","supportedTypesStr","isHandlingMimeForPasting","mime","paste","pasteEditor","getAsFile","getBitmapFetched","fromId","getBitmapDone","enableWaiting","getBitmap","imageManager","getFromId","getFromUrl","getFromFile","accept","files","click","deleteId","MAX_RATIO","factor","drawBitmap","addUndoableEditor","_eventBus","editorType","addAltTextButton","TIME_TO_WAIT","scaleBitmap","bitmapWidth","bitmapHeight","prevWidth","prevHeight","offscreen","OffscreenCanvas","transferToImageBitmap","getImageForAltText","serializeBitmap","toUrl","getSvgUrl","toDataURL","accessibilityData","isValidId","altTextData","decorative","altText","alt","stamps","area","prevData","AnnotationEditorLayer","allowClick","annotationLayer","boundPointerup","pointerup","boundPointerdown","pointerdown","editorFocusTimeoutId","editors","hadPointerDown","isCleaningUp","isDisabling","_initialized","editorTypes","registerEditorTypes","addLayer","updateMode","getMode","disableClick","enableClick","isCommitting","createAndAddNewEditor","togglePointerEvents","enable","annotationElementIds","editables","isDeletedAnnotationElement","addOrRebuild","disable","hiddenAnnotationIds","setActiveEditor","currentActive","getActive","attach","removeDeletedAnnotationElement","removePointerInTextLayer","addDeletedAnnotationElement","removeEditor","changeParent","deleteAnnotationElement","addEditor","moveEditorInDOM","once","needsToBeRebuilt","getNextId","getId","createNewEditor","getCenterPoint","innerWidth","innerHeight","addNewEditor","setSelected","toggleSelected","isSelected","unselect","unselectAll","findNewParent","findParent","removeLayer","getEditors","EditorToolbar","toolbar","buttons","editToolbar","pointerDown","addDeleteButton","stopPropagation","focusIn","focusOut","addListenersToElement","capture","ColorManager","allResizerDivs","altTextDecorative","altTextButton","altTextTooltip","altTextTooltipTimeout","altTextWasFromKeyBoard","keepAspectRatio","resizersDiv","savedDimensions","boundFocusin","boundFocusout","focusout","focusedResizerName","hasBeenClicked","isResizerEnabledForKeyboard","moveInDOMTimeout","isDraggable","_zIndex","_borderLineWidth","SMALL_EDITOR_SIZE","_resizerKeyboardManager","resize","_resizeWithKeyboard","_stopResizingWithKeyboard","pageRotation","viewParameters","getHexCode","fakeEditor","FakeEditor","_value","isEnterHandled","stopResizing","closest","isMultipleSelection","screenToPageTranslation","translateInPage","scrollIntoView","block","drag","bx","by","getBaseTranslation","toFixed","rotatePoint","getRotationMatrix","realScale","scaledWidth","scaledHeight","widthPercent","endsWith","heightPercent","createResizers","classes","resizerPointerdown","toggleAltTextButton","boundResizerPointermove","resizerPointermove","savedDraggable","pointerMoveOptions","passive","savedX","savedY","savedWidth","savedHeight","savedParentCursor","cursor","savedCursor","pointerUpCallback","addResizeToUndoStack","newX","newY","minWidth","minHeight","rotationMatrix","transf","invRotationMatrix","invTransf","getPoint","getOpposite","isDiagonal","isHorizontal","point","oppositePoint","transfOppositePoint","oppositeX","oppositeY","ratioX","ratioY","deltaX","deltaY","movementX","movementY","oldDiag","onClick","editAltText","setAltTextButtonState","PERCENT","tooltip","DELAY_TO_SHOW_TOOLTIP","altTextFinish","focusVisible","addEditToolbar","removeEditToolbar","getClientDimensions","maxWidth","maxHeight","setUpDragSession","pointerMoveCallback","dragSelectedEditors","endDragSession","_setParentAndPosition","getRectInCurrentCoords","makeResizable","boundResizerKeydown","resizerKeydown","boundResizerBlur","resizerBlur","resizerFocus","firstPosition","nextFirstPosition","child","setResizerTabIndex","stopImmediatePropagation","aspectRatio","Outliner","verticalEdges","intervals","boxes","innerMargin","isLTR","NUMBER_OF_DIGITS","EPSILON","right","shiftedMinX","shiftedMinY","lastEdge","edge","getOutlines","outlineVerticalEdges","breakEdge","edges","allEdges","edge1","edge2","outline","lastPointX","lastPointY","binarySearch","middle","splice","y4","AnnotationEditorPrefix","getUuid","IdManager","ImageManager","baseId","_isSVGFittingCanvas","Image","decode","rawData","refCounter","mustRemoveAspectRatioPromise","fileReader","FileReader","imageElement","imagePromise","onload","svgUrl","onerror","readAsDataURL","createImageBitmap","lastModified","CommandManager","commands","locked","redo","hasSomethingToUndo","hasSomethingToRedo","callbacks","allKeys","isMacKey","_colorsMapping","matchMedia","RGB","activeEditor","allEditors","allLayers","altTextManager","commandManager","currentPageIndex","deletedAnnotationsElementIds","draggingEditors","editorsToRescale","focusMainContainerTimeoutId","idManager","isEnabled","isWaiting","lastActiveElement","selectedEditors","boundBlur","blur","boundFocus","boundCopy","copy","boundCut","cut","boundPaste","boundKeydown","boundOnEditingAction","onEditingAction","boundOnPageChanging","onPageChanging","boundOnScaleChanging","boundOnRotationChanging","onRotationChanging","previousStates","hasSelectedEditor","translation","translationTimeoutId","viewer","hasSomethingToControl","textInputChecker","_self","HTMLInputElement","selectAll","addNewEditorFromKeyboard","HTMLButtonElement","pdfDocument","_on","removeKeyboardManager","removeFocusManager","_off","direction","focusMainContainer","layerX","layerY","disableUserSelect","pagesRotation","addFocusManager","hasSelection","lastEditor","addKeyboardManager","addCopyPasteListeners","removeCopyPasteListeners","addEditListeners","removeEditListeners","clipboardData","setData","newEditors","deserializedEditor","addEditorToLayer","selectEditors","isEditorHandlingKeyboard","dispatchUpdateStates","hasChanged","dispatchUpdateUI","getLayer","isFromKeyboard","disableAll","enableAll","CREATE","mustWait","getEditor","ed","firstSelectedEditor","noCommit","totalX","totalY","savedPageIndex","newPageIndex","mustBeAddedInUndoStack","move","isActive","createResponseStatusError","extractFilenameFromHeader","validateRangeRequestCapabilities","validateResponseStatus","createFetchOptions","headers","abortController","signal","credentials","redirect","createHeaders","Headers","getArrayBuffer","isHttp","_fullRequestReader","_rangeRequestReaders","_progressiveDataLength","_loaded","PDFFetchStreamReader","PDFFetchStreamRangeReader","stream","_stream","_reader","_filename","_withCredentials","_contentLength","_headersCapability","_disableRange","_rangeChunkSize","_abortController","AbortController","_isStreamingSupported","_isRangeSupported","_headers","getResponseHeader","allowRangeRequests","suggestedLength","_readCapability","bytesToString","string32","systemFonts","nativeFontFaces","loadingRequests","loadTestFontId","addNativeFontFace","nativeFontFace","fonts","removeNativeFontFace","insertRule","styleSheet","sheet","cssRules","loadSystemFont","_inspectFont","isFontLoadingAPISupported","fontFace","FontFace","load","baseFontName","attached","createNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","hasFonts","supported","completeRequest","otherRequest","_loadTestFont","testFont","atob","int32","charCodeAt","spliceString","chunk1","chunk2","called","isFontReady","COMMENT_OFFSET","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","btoa","fontFamily","translatedData","compiledGlyphs","cssFontInfo","weight","fontWeight","italicAngle","mimetype","cmds","jsBuf","metadataMap","parsedData","getRaw","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","xhr","NetworkManager","currXhrId","pendingRequests","requestRange","prop","requestFull","xhrId","pendingRequest","setRequestHeader","expectedStatus","onError","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","ok_response_on_range_request","rangeHeader","getRequestXhr","isPendingRequest","abortRequest","_source","_manager","_onRangeRequestReaderClosed","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","manager","_onHeadersReceived","_onDone","_onError","_onProgress","_url","_fullRequestId","_headersReceivedCapability","_cachedChunks","_requests","_done","_storedError","fullRequestXhrId","fullRequestXhr","requestCapability","lengthComputable","_requestId","_queuedChunk","_close","getFilenameFromContentDispositionHeader","contentDisposition","needsEncodingFixup","toParamRegExp","rfc2616unquote","unescape","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","flags","textdecode","encoding","decoder","TextDecoder","fatal","contentDispositionStr","iter","quot","part","parts","quotindex","extvalue","encodingend","langvalue","charset","hex","returnValues","contentEncoding","fs","http","https","fileUriRegex","parseUrl","sourceUrl","parsedUrl","host","isFsUrl","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_readableStream","_error","_setReadableStream","BaseRangeReader","createRequestOptions","auth","hostname","handleResponse","statusCode","_request","_httpHeaders","Range","lstat","createReadStream","path2d_polyfill","checkDOMMatrix","checkPath2D","CanvasRenderingContext2D","polyfillPath2D","readFile","INTERNAL","OptionalContentGroup","_setVisible","internal","cachedGetHash","groups","initialHash","order","creator","baseState","off","getHash","evaluateVisibilityExpression","operator","expression","policy","setVisibility","hasInitialVisibility","getOrder","getGroups","getGroup","MAX_TEXT_DIVS_TO_RENDER","DEFAULT_FONT_ASCENT","ascentCache","getCtx","getAscent","cachedAscent","metrics","ascent","fontBoundingBoxAscent","descent","fontBoundingBoxDescent","ratio","pixels","appendText","geom","textDiv","textDivProperties","hasText","hasEOL","_textDivs","_transform","atan2","fontName","PI","_fontInspectorEnabled","fontSubstitution","fontHeight","fontAscent","_isOffscreenCanvasSupported","sin","cos","scaleFactorStr","divStyle","_container","_rootContainer","_pageWidth","_pageHeight","dataset","fontSubstitutionLoadedName","shouldScaleText","absScaleX","absScaleY","_textDivProperties","_isReadableStream","_layoutText","layout","prevFontSize","prevFontFamily","_canceled","textDivs","textDivsLength","TextLayerRenderTask","textContentSource","textContentItemsStr","_textContentSource","ReadableStream","_textContentItemsStr","_layoutTextParams","_processItems","styleCache","br","_render","renderTextLayer","updateTextLayer","mustRescale","pdfDataRangeTransport","_queuedChunks","_progressiveDone","_contentDispositionFilename","_pdfDataRangeTransport","_rangeReaders","_onReceiveData","_onProgressiveDone","_enqueue","_begin","_removeRangeReader","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","_headersReady","_end","requestsCapability","setupStorage","xfaOn","xfaOff","setAttributes","isHTMLAnchorElement","HTMLAnchorElement","dataId","rootHtml","isNotForRichText","rootDiv","shouldBuildText","childHtml","xmlns","querySelectorAll","output","walk","createValidAbsoluteUrl","normalizeUnicode","PasswordResponses","PermissionFlag","VerbosityLevel","pdfjsVersion","pdfjsBuild","CallbackKind","UNKNOWN","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","processStreamMessage","cbSourceName","cbTargetName","createStreamSink","handler","ah","transfers","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","isClosed","desiredSize","pull","pullCapability","cancelCapability","streamSink","isCancelled","lastDesiredSize","sinkCapability","streamController","deleteStreamController","allSettled","SEED","MASK_HIGH","MASK_LOW","seed","h1","h2","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","nw","electron","LINE_DESCENT_FACTOR","BASELINE_FACTOR","SAVE","RESIZE","FREETEXT_OPACITY","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","SOUND","MOVIE","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","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","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","K","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","ERRORS","WARNINGS","INFOS","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setFillColor","setStrokeGray","setFillGray","setStrokeCMYKColor","setFillCMYKColor","endInlineImage","paintXObject","NEED_PASSWORD","INCORRECT_PASSWORD","level","cond","_isValidProtocol","addDefaultProtocol","dots","tryConvertEncoding","stringToUTF8String","absoluteUrl","nonSerializable","BaseExceptionClosure","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","objectSize","buffer8","view32","hexNumbers","m1","m2","xt","yt","transpose","sqrt","sx","sy","rect1","rect2","xLow","xHigh","yLow","yHigh","tvalues","t","t1","t2","b2ac","sqrtb2ac","mt","jlen","PDFStringTranslateTable","stringToPDFString","decoded","charCode","escape","utf8StringToString","encodeURIComponent","isArrayEqual","arr1","arr2","getModificationDate","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","NormalizeRegex","NormalizationMap","crypto","randomUUID","buf","getRandomValues"],"sourceRoot":""}