{"version":3,"file":"pdf.image_decoders.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/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/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-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.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/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/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/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.filter.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.map.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.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/webpack/bootstrap","webpack://pdf.js/webpack/runtime/define property getters","webpack://pdf.js/webpack/runtime/hasOwnProperty shorthand","webpack://pdf.js/src/shared/util.js","webpack://pdf.js/src/core/primitives.js","webpack://pdf.js/src/core/base_stream.js","webpack://pdf.js/src/core/core_utils.js","webpack://pdf.js/src/core/arithmetic_decoder.js","webpack://pdf.js/src/core/ccitt.js","webpack://pdf.js/src/core/jbig2.js","webpack://pdf.js/src/shared/image_utils.js","webpack://pdf.js/src/core/jpg.js","webpack://pdf.js/src/core/jpx.js","webpack://pdf.js/src/pdf.image_decoders.js"],"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 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';\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 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 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 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';\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 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 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 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 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 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","// 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","// 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))","/* 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","/* 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, shadow, unreachable } from \"../shared/util.js\";\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\n\nlet CmdCache = Object.create(null);\nlet NameCache = Object.create(null);\nlet RefCache = Object.create(null);\n\nfunction clearPrimitiveCaches() {\n  CmdCache = Object.create(null);\n  NameCache = Object.create(null);\n  RefCache = Object.create(null);\n}\n\nclass Name {\n  constructor(name) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      typeof name !== \"string\"\n    ) {\n      unreachable('Name: The \"name\" must be a string.');\n    }\n    this.name = name;\n  }\n\n  static get(name) {\n    // eslint-disable-next-line no-restricted-syntax\n    return (NameCache[name] ||= new Name(name));\n  }\n}\n\nclass Cmd {\n  constructor(cmd) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      typeof cmd !== \"string\"\n    ) {\n      unreachable('Cmd: The \"cmd\" must be a string.');\n    }\n    this.cmd = cmd;\n  }\n\n  static get(cmd) {\n    // eslint-disable-next-line no-restricted-syntax\n    return (CmdCache[cmd] ||= new Cmd(cmd));\n  }\n}\n\nconst nonSerializable = function nonSerializableClosure() {\n  return nonSerializable; // Creating closure on some variable.\n};\n\nclass Dict {\n  constructor(xref = null) {\n    // Map should only be used internally, use functions below to access.\n    this._map = Object.create(null);\n    this.xref = xref;\n    this.objId = null;\n    this.suppressEncryption = false;\n    this.__nonSerializable__ = nonSerializable; // Disable cloning of the Dict.\n  }\n\n  assignXref(newXref) {\n    this.xref = newXref;\n  }\n\n  get size() {\n    return Object.keys(this._map).length;\n  }\n\n  // Automatically dereferences Ref objects.\n  get(key1, key2, key3) {\n    let value = this._map[key1];\n    if (value === undefined && key2 !== undefined) {\n      if (\n        (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n        key2.length < key1.length\n      ) {\n        unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n      }\n      value = this._map[key2];\n      if (value === undefined && key3 !== undefined) {\n        if (\n          (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n          key3.length < key2.length\n        ) {\n          unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n        }\n        value = this._map[key3];\n      }\n    }\n    if (value instanceof Ref && this.xref) {\n      return this.xref.fetch(value, this.suppressEncryption);\n    }\n    return value;\n  }\n\n  // Same as get(), but returns a promise and uses fetchIfRefAsync().\n  async getAsync(key1, key2, key3) {\n    let value = this._map[key1];\n    if (value === undefined && key2 !== undefined) {\n      if (\n        (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n        key2.length < key1.length\n      ) {\n        unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n      }\n      value = this._map[key2];\n      if (value === undefined && key3 !== undefined) {\n        if (\n          (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n          key3.length < key2.length\n        ) {\n          unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n        }\n        value = this._map[key3];\n      }\n    }\n    if (value instanceof Ref && this.xref) {\n      return this.xref.fetchAsync(value, this.suppressEncryption);\n    }\n    return value;\n  }\n\n  // Same as get(), but dereferences all elements if the result is an Array.\n  getArray(key1, key2, key3) {\n    let value = this._map[key1];\n    if (value === undefined && key2 !== undefined) {\n      if (\n        (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n        key2.length < key1.length\n      ) {\n        unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n      }\n      value = this._map[key2];\n      if (value === undefined && key3 !== undefined) {\n        if (\n          (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n          key3.length < key2.length\n        ) {\n          unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n        }\n        value = this._map[key3];\n      }\n    }\n    if (value instanceof Ref && this.xref) {\n      value = this.xref.fetch(value, this.suppressEncryption);\n    }\n\n    if (Array.isArray(value)) {\n      value = value.slice(); // Ensure that we don't modify the Dict data.\n      for (let i = 0, ii = value.length; i < ii; i++) {\n        if (value[i] instanceof Ref && this.xref) {\n          value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n        }\n      }\n    }\n    return value;\n  }\n\n  // No dereferencing.\n  getRaw(key) {\n    return this._map[key];\n  }\n\n  getKeys() {\n    return Object.keys(this._map);\n  }\n\n  // No dereferencing.\n  getRawValues() {\n    return Object.values(this._map);\n  }\n\n  set(key, value) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      if (typeof key !== \"string\") {\n        unreachable('Dict.set: The \"key\" must be a string.');\n      } else if (value === undefined) {\n        unreachable('Dict.set: The \"value\" cannot be undefined.');\n      }\n    }\n    this._map[key] = value;\n  }\n\n  has(key) {\n    return this._map[key] !== undefined;\n  }\n\n  forEach(callback) {\n    for (const key in this._map) {\n      callback(key, this.get(key));\n    }\n  }\n\n  static get empty() {\n    const emptyDict = new Dict(null);\n\n    emptyDict.set = (key, value) => {\n      unreachable(\"Should not call `set` on the empty dictionary.\");\n    };\n    return shadow(this, \"empty\", emptyDict);\n  }\n\n  static merge({ xref, dictArray, mergeSubDicts = false }) {\n    const mergedDict = new Dict(xref),\n      properties = new Map();\n\n    for (const dict of dictArray) {\n      if (!(dict instanceof Dict)) {\n        continue;\n      }\n      for (const [key, value] of Object.entries(dict._map)) {\n        let property = properties.get(key);\n        if (property === undefined) {\n          property = [];\n          properties.set(key, property);\n        } else if (!mergeSubDicts || !(value instanceof Dict)) {\n          // Ignore additional entries, if either:\n          //  - This is a \"shallow\" merge, where only the first element matters.\n          //  - The value is *not* a `Dict`, since other types cannot be merged.\n          continue;\n        }\n        property.push(value);\n      }\n    }\n    for (const [name, values] of properties) {\n      if (values.length === 1 || !(values[0] instanceof Dict)) {\n        mergedDict._map[name] = values[0];\n        continue;\n      }\n      const subDict = new Dict(xref);\n\n      for (const dict of values) {\n        for (const [key, value] of Object.entries(dict._map)) {\n          if (subDict._map[key] === undefined) {\n            subDict._map[key] = value;\n          }\n        }\n      }\n      if (subDict.size > 0) {\n        mergedDict._map[name] = subDict;\n      }\n    }\n    properties.clear();\n\n    return mergedDict.size > 0 ? mergedDict : Dict.empty;\n  }\n\n  clone() {\n    const dict = new Dict(this.xref);\n    for (const key of this.getKeys()) {\n      dict.set(key, this.getRaw(key));\n    }\n    return dict;\n  }\n}\n\nclass Ref {\n  constructor(num, gen) {\n    this.num = num;\n    this.gen = gen;\n  }\n\n  toString() {\n    // This function is hot, so we make the string as compact as possible.\n    // |this.gen| is almost always zero, so we treat that case specially.\n    if (this.gen === 0) {\n      return `${this.num}R`;\n    }\n    return `${this.num}R${this.gen}`;\n  }\n\n  static fromString(str) {\n    const ref = RefCache[str];\n    if (ref) {\n      return ref;\n    }\n    const m = /^(\\d+)R(\\d*)$/.exec(str);\n    if (!m || m[1] === \"0\") {\n      return null;\n    }\n\n    // eslint-disable-next-line no-restricted-syntax\n    return (RefCache[str] = new Ref(\n      parseInt(m[1]),\n      !m[2] ? 0 : parseInt(m[2])\n    ));\n  }\n\n  static get(num, gen) {\n    const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n    // eslint-disable-next-line no-restricted-syntax\n    return (RefCache[key] ||= new Ref(num, gen));\n  }\n}\n\n// The reference is identified by number and generation.\n// This structure stores only one instance of the reference.\nclass RefSet {\n  constructor(parent = null) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      parent &&\n      !(parent instanceof RefSet)\n    ) {\n      unreachable('RefSet: Invalid \"parent\" value.');\n    }\n    this._set = new Set(parent?._set);\n  }\n\n  has(ref) {\n    return this._set.has(ref.toString());\n  }\n\n  put(ref) {\n    this._set.add(ref.toString());\n  }\n\n  remove(ref) {\n    this._set.delete(ref.toString());\n  }\n\n  [Symbol.iterator]() {\n    return this._set.values();\n  }\n\n  clear() {\n    this._set.clear();\n  }\n}\n\nclass RefSetCache {\n  constructor() {\n    this._map = new Map();\n  }\n\n  get size() {\n    return this._map.size;\n  }\n\n  get(ref) {\n    return this._map.get(ref.toString());\n  }\n\n  has(ref) {\n    return this._map.has(ref.toString());\n  }\n\n  put(ref, obj) {\n    this._map.set(ref.toString(), obj);\n  }\n\n  putAlias(ref, aliasRef) {\n    this._map.set(ref.toString(), this.get(aliasRef));\n  }\n\n  [Symbol.iterator]() {\n    return this._map.values();\n  }\n\n  clear() {\n    this._map.clear();\n  }\n}\n\nfunction isName(v, name) {\n  return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n  return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n  return (\n    v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type))\n  );\n}\n\nfunction isRefsEqual(v1, v2) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(\n      v1 instanceof Ref && v2 instanceof Ref,\n      \"isRefsEqual: Both parameters should be `Ref`s.\"\n    );\n  }\n  return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nexport {\n  CIRCULAR_REF,\n  clearPrimitiveCaches,\n  Cmd,\n  Dict,\n  EOF,\n  isCmd,\n  isDict,\n  isName,\n  isRefsEqual,\n  Name,\n  Ref,\n  RefSet,\n  RefSetCache,\n};\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\nimport { bytesToString, shadow, unreachable } from \"../shared/util.js\";\n\nclass BaseStream {\n  constructor() {\n    if (this.constructor === BaseStream) {\n      unreachable(\"Cannot initialize BaseStream.\");\n    }\n  }\n\n  // eslint-disable-next-line getter-return\n  get length() {\n    unreachable(\"Abstract getter `length` accessed\");\n  }\n\n  // eslint-disable-next-line getter-return\n  get isEmpty() {\n    unreachable(\"Abstract getter `isEmpty` accessed\");\n  }\n\n  get isDataLoaded() {\n    return shadow(this, \"isDataLoaded\", true);\n  }\n\n  getByte() {\n    unreachable(\"Abstract method `getByte` called\");\n  }\n\n  getBytes(length) {\n    unreachable(\"Abstract method `getBytes` called\");\n  }\n\n  peekByte() {\n    const peekedByte = this.getByte();\n    if (peekedByte !== -1) {\n      this.pos--;\n    }\n    return peekedByte;\n  }\n\n  peekBytes(length) {\n    const bytes = this.getBytes(length);\n    this.pos -= bytes.length;\n    return bytes;\n  }\n\n  getUint16() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    if (b0 === -1 || b1 === -1) {\n      return -1;\n    }\n    return (b0 << 8) + b1;\n  }\n\n  getInt32() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    const b2 = this.getByte();\n    const b3 = this.getByte();\n    return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n  }\n\n  getByteRange(begin, end) {\n    unreachable(\"Abstract method `getByteRange` called\");\n  }\n\n  getString(length) {\n    return bytesToString(this.getBytes(length));\n  }\n\n  skip(n) {\n    this.pos += n || 1;\n  }\n\n  reset() {\n    unreachable(\"Abstract method `reset` called\");\n  }\n\n  moveStart() {\n    unreachable(\"Abstract method `moveStart` called\");\n  }\n\n  makeSubStream(start, length, dict = null) {\n    unreachable(\"Abstract method `makeSubStream` called\");\n  }\n\n  /**\n   * @returns {Array | null}\n   */\n  getBaseStreams() {\n    return null;\n  }\n}\n\nexport { BaseStream };\n","/* Copyright 2019 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  AnnotationEditorPrefix,\n  assert,\n  BaseException,\n  objectSize,\n  stringToPDFString,\n  warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\n\nconst PDF_VERSION_REGEXP = /^[1-9]\\.\\d$/;\n\nfunction getLookupTableFactory(initializer) {\n  let lookup;\n  return function () {\n    if (initializer) {\n      lookup = Object.create(null);\n      initializer(lookup);\n      initializer = null;\n    }\n    return lookup;\n  };\n}\n\nclass MissingDataException extends BaseException {\n  constructor(begin, end) {\n    super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n    this.begin = begin;\n    this.end = end;\n  }\n}\n\nclass ParserEOFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"ParserEOFException\");\n  }\n}\n\nclass XRefEntryException extends BaseException {\n  constructor(msg) {\n    super(msg, \"XRefEntryException\");\n  }\n}\n\nclass XRefParseException extends BaseException {\n  constructor(msg) {\n    super(msg, \"XRefParseException\");\n  }\n}\n\n/**\n * Combines multiple ArrayBuffers into a single Uint8Array.\n * @param {Array<ArrayBuffer>} arr - An array of ArrayBuffers.\n * @returns {Uint8Array}\n */\nfunction arrayBuffersToBytes(arr) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    for (const item of arr) {\n      assert(\n        item instanceof ArrayBuffer,\n        \"arrayBuffersToBytes - expected an ArrayBuffer.\"\n      );\n    }\n  }\n  const length = arr.length;\n  if (length === 0) {\n    return new Uint8Array(0);\n  }\n  if (length === 1) {\n    return new Uint8Array(arr[0]);\n  }\n  let dataLength = 0;\n  for (let i = 0; i < length; i++) {\n    dataLength += arr[i].byteLength;\n  }\n  const data = new Uint8Array(dataLength);\n  let pos = 0;\n  for (let i = 0; i < length; i++) {\n    const item = new Uint8Array(arr[i]);\n    data.set(item, pos);\n    pos += item.byteLength;\n  }\n  return data;\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n *   array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n *   the key is found. If set to `false`, we always walk up the entire parent\n *   chain, for example to be able to find `\\Resources` placed on multiple\n *   levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({\n  dict,\n  key,\n  getArray = false,\n  stopWhenFound = true,\n}) {\n  let values;\n  const visited = new RefSet();\n\n  while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) {\n    if (dict.objId) {\n      visited.put(dict.objId);\n    }\n    const value = getArray ? dict.getArray(key) : dict.get(key);\n    if (value !== undefined) {\n      if (stopWhenFound) {\n        return value;\n      }\n      (values ||= []).push(value);\n    }\n    dict = dict.get(\"Parent\");\n  }\n  return values;\n}\n\n// prettier-ignore\nconst ROMAN_NUMBER_MAP = [\n  \"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n  \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n  \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {number} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n *   to lower case letters. The default value is `false`.\n * @returns {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n  assert(\n    Number.isInteger(number) && number > 0,\n    \"The number should be a positive integer.\"\n  );\n  const romanBuf = [];\n  let pos;\n  // Thousands\n  while (number >= 1000) {\n    number -= 1000;\n    romanBuf.push(\"M\");\n  }\n  // Hundreds\n  pos = (number / 100) | 0;\n  number %= 100;\n  romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n  // Tens\n  pos = (number / 10) | 0;\n  number %= 10;\n  romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n  // Ones\n  romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); // eslint-disable-line unicorn/no-array-push-push\n\n  const romanStr = romanBuf.join(\"\");\n  return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n  if (x <= 0) {\n    return 0;\n  }\n  return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, offset) {\n  return (data[offset] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n  return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n  return (\n    ((data[offset] << 24) |\n      (data[offset + 1] << 16) |\n      (data[offset + 2] << 8) |\n      data[offset + 3]) >>>\n    0\n  );\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isWhiteSpace(ch) {\n  return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/**\n * AcroForm field names use an array like notation to refer to\n * repeated XFA elements e.g. foo.bar[nnn].\n * see: XFA Spec Chapter 3 - Repeated Elements\n *\n * @param {string} path - XFA path name.\n * @returns {Array} - Array of Objects with the name and pos of\n * each part of the path.\n */\nfunction parseXFAPath(path) {\n  const positionPattern = /(.+)\\[(\\d+)\\]$/;\n  return path.split(\".\").map(component => {\n    const m = component.match(positionPattern);\n    if (m) {\n      return { name: m[1], pos: parseInt(m[2], 10) };\n    }\n    return { name: component, pos: 0 };\n  });\n}\n\nfunction escapePDFName(str) {\n  const buffer = [];\n  let start = 0;\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    // Whitespace or delimiters aren't regular chars, so escape them.\n    if (\n      char < 0x21 ||\n      char > 0x7e ||\n      char === 0x23 /* # */ ||\n      char === 0x28 /* ( */ ||\n      char === 0x29 /* ) */ ||\n      char === 0x3c /* < */ ||\n      char === 0x3e /* > */ ||\n      char === 0x5b /* [ */ ||\n      char === 0x5d /* ] */ ||\n      char === 0x7b /* { */ ||\n      char === 0x7d /* } */ ||\n      char === 0x2f /* / */ ||\n      char === 0x25 /* % */\n    ) {\n      if (start < i) {\n        buffer.push(str.substring(start, i));\n      }\n      buffer.push(`#${char.toString(16)}`);\n      start = i + 1;\n    }\n  }\n\n  if (buffer.length === 0) {\n    return str;\n  }\n\n  if (start < str.length) {\n    buffer.push(str.substring(start, str.length));\n  }\n\n  return buffer.join(\"\");\n}\n\n// Replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\" by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n// in order to write it in a PDF file.\nfunction escapeString(str) {\n  return str.replaceAll(/([()\\\\\\n\\r])/g, match => {\n    if (match === \"\\n\") {\n      return \"\\\\n\";\n    } else if (match === \"\\r\") {\n      return \"\\\\r\";\n    }\n    return `\\\\${match}`;\n  });\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n  if (!entry) {\n    return;\n  }\n\n  let parent = null;\n  if (entry instanceof Ref) {\n    if (parents.has(entry)) {\n      // If we've already found entry then we've a cycle.\n      return;\n    }\n    parent = entry;\n    parents.put(parent);\n    entry = xref.fetch(entry);\n  }\n  if (Array.isArray(entry)) {\n    for (const element of entry) {\n      _collectJS(element, xref, list, parents);\n    }\n  } else if (entry instanceof Dict) {\n    if (isName(entry.get(\"S\"), \"JavaScript\")) {\n      const js = entry.get(\"JS\");\n      let code;\n      if (js instanceof BaseStream) {\n        code = js.getString();\n      } else if (typeof js === \"string\") {\n        code = js;\n      }\n      code &&= stringToPDFString(code).replaceAll(\"\\x00\", \"\");\n      if (code) {\n        list.push(code);\n      }\n    }\n    _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n  }\n\n  if (parent) {\n    parents.remove(parent);\n  }\n}\n\nfunction collectActions(xref, dict, eventType) {\n  const actions = Object.create(null);\n  const additionalActionsDicts = getInheritableProperty({\n    dict,\n    key: \"AA\",\n    stopWhenFound: false,\n  });\n  if (additionalActionsDicts) {\n    // additionalActionsDicts contains dicts from ancestors\n    // as they're found in the tree from bottom to top.\n    // So the dicts are visited in reverse order to guarantee\n    // that actions from elder ancestors will be overwritten\n    // by ones from younger ancestors.\n    for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n      const additionalActions = additionalActionsDicts[i];\n      if (!(additionalActions instanceof Dict)) {\n        continue;\n      }\n      for (const key of additionalActions.getKeys()) {\n        const action = eventType[key];\n        if (!action) {\n          continue;\n        }\n        const actionDict = additionalActions.getRaw(key);\n        const parents = new RefSet();\n        const list = [];\n        _collectJS(actionDict, xref, list, parents);\n        if (list.length > 0) {\n          actions[action] = list;\n        }\n      }\n    }\n  }\n  // Collect the Action if any (we may have one on pushbutton).\n  if (dict.has(\"A\")) {\n    const actionDict = dict.get(\"A\");\n    const parents = new RefSet();\n    const list = [];\n    _collectJS(actionDict, xref, list, parents);\n    if (list.length > 0) {\n      actions.Action = list;\n    }\n  }\n  return objectSize(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n  /* < */ 0x3c: \"&lt;\",\n  /* > */ 0x3e: \"&gt;\",\n  /* & */ 0x26: \"&amp;\",\n  /* \" */ 0x22: \"&quot;\",\n  /* ' */ 0x27: \"&apos;\",\n};\n\nfunction encodeToXmlString(str) {\n  const buffer = [];\n  let start = 0;\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.codePointAt(i);\n    if (0x20 <= char && char <= 0x7e) {\n      // ascii\n      const entity = XMLEntities[char];\n      if (entity) {\n        if (start < i) {\n          buffer.push(str.substring(start, i));\n        }\n        buffer.push(entity);\n        start = i + 1;\n      }\n    } else {\n      if (start < i) {\n        buffer.push(str.substring(start, i));\n      }\n      buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n      if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n        // char is represented by two u16\n        i++;\n      }\n      start = i + 1;\n    }\n  }\n\n  if (buffer.length === 0) {\n    return str;\n  }\n  if (start < str.length) {\n    buffer.push(str.substring(start, str.length));\n  }\n  return buffer.join(\"\");\n}\n\nfunction validateFontName(fontFamily, mustWarn = false) {\n  // See https://developer.mozilla.org/en-US/docs/Web/CSS/string.\n  const m = /^(\"|').*(\"|')$/.exec(fontFamily);\n  if (m && m[1] === m[2]) {\n    const re = new RegExp(`[^\\\\\\\\]${m[1]}`);\n    if (re.test(fontFamily.slice(1, -1))) {\n      if (mustWarn) {\n        warn(`FontFamily contains unescaped ${m[1]}: ${fontFamily}.`);\n      }\n      return false;\n    }\n  } else {\n    // See https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident.\n    for (const ident of fontFamily.split(/[ \\t]+/)) {\n      if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n        if (mustWarn) {\n          warn(`FontFamily contains invalid <custom-ident>: ${fontFamily}.`);\n        }\n        return false;\n      }\n    }\n  }\n  return true;\n}\n\nfunction validateCSSFont(cssFontInfo) {\n  // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-style.\n  const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n  // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight.\n  const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n  const CSS_FONT_WEIGHT_VALUES = new Set([\n    \"100\",\n    \"200\",\n    \"300\",\n    \"400\",\n    \"500\",\n    \"600\",\n    \"700\",\n    \"800\",\n    \"900\",\n    \"1000\",\n    \"normal\",\n    \"bold\",\n    \"bolder\",\n    \"lighter\",\n  ]);\n\n  const { fontFamily, fontWeight, italicAngle } = cssFontInfo;\n\n  if (!validateFontName(fontFamily, true)) {\n    return false;\n  }\n\n  const weight = fontWeight ? fontWeight.toString() : \"\";\n  cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight)\n    ? weight\n    : DEFAULT_CSS_FONT_WEIGHT;\n\n  const angle = parseFloat(italicAngle);\n  cssFontInfo.italicAngle =\n    isNaN(angle) || angle < -90 || angle > 90\n      ? DEFAULT_CSS_FONT_OBLIQUE\n      : italicAngle.toString();\n\n  return true;\n}\n\nfunction recoverJsURL(str) {\n  // Attempt to recover valid URLs from `JS` entries with certain\n  // white-listed formats:\n  //  - window.open('http://example.com')\n  //  - app.launchURL('http://example.com', true)\n  //  - xfa.host.gotoURL('http://example.com')\n  const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n  const regex = new RegExp(\n    \"^\\\\s*(\" +\n      URL_OPEN_METHODS.join(\"|\").replaceAll(\".\", \"\\\\.\") +\n      \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n    \"i\"\n  );\n\n  const jsUrl = regex.exec(str);\n  if (jsUrl?.[2]) {\n    const url = jsUrl[2];\n    let newWindow = false;\n\n    if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n      newWindow = true;\n    }\n    return { url, newWindow };\n  }\n\n  return null;\n}\n\nfunction numberToString(value) {\n  if (Number.isInteger(value)) {\n    return value.toString();\n  }\n\n  const roundedValue = Math.round(value * 100);\n  if (roundedValue % 100 === 0) {\n    return (roundedValue / 100).toString();\n  }\n\n  if (roundedValue % 10 === 0) {\n    return value.toFixed(1);\n  }\n\n  return value.toFixed(2);\n}\n\nfunction getNewAnnotationsMap(annotationStorage) {\n  if (!annotationStorage) {\n    return null;\n  }\n  const newAnnotationsByPage = new Map();\n  // The concept of page in a XFA is very different, so\n  // editing is just not implemented.\n  for (const [key, value] of annotationStorage) {\n    if (!key.startsWith(AnnotationEditorPrefix)) {\n      continue;\n    }\n    let annotations = newAnnotationsByPage.get(value.pageIndex);\n    if (!annotations) {\n      annotations = [];\n      newAnnotationsByPage.set(value.pageIndex, annotations);\n    }\n    annotations.push(value);\n  }\n  return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;\n}\n\nfunction isAscii(str) {\n  return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16HexString(str) {\n  const buf = [];\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    buf.push(\n      ((char >> 8) & 0xff).toString(16).padStart(2, \"0\"),\n      (char & 0xff).toString(16).padStart(2, \"0\")\n    );\n  }\n  return buf.join(\"\");\n}\n\nfunction stringToUTF16String(str, bigEndian = false) {\n  const buf = [];\n  if (bigEndian) {\n    buf.push(\"\\xFE\\xFF\");\n  }\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    buf.push(\n      String.fromCharCode((char >> 8) & 0xff),\n      String.fromCharCode(char & 0xff)\n    );\n  }\n  return buf.join(\"\");\n}\n\nfunction getRotationMatrix(rotation, width, height) {\n  switch (rotation) {\n    case 90:\n      return [0, 1, -1, 0, width, 0];\n    case 180:\n      return [-1, 0, 0, -1, width, height];\n    case 270:\n      return [0, -1, 1, 0, 0, height];\n    default:\n      throw new Error(\"Invalid rotation\");\n  }\n}\n\nexport {\n  arrayBuffersToBytes,\n  collectActions,\n  encodeToXmlString,\n  escapePDFName,\n  escapeString,\n  getInheritableProperty,\n  getLookupTableFactory,\n  getNewAnnotationsMap,\n  getRotationMatrix,\n  isAscii,\n  isWhiteSpace,\n  log2,\n  MissingDataException,\n  numberToString,\n  ParserEOFException,\n  parseXFAPath,\n  PDF_VERSION_REGEXP,\n  readInt8,\n  readUint16,\n  readUint32,\n  recoverJsURL,\n  stringToUTF16HexString,\n  stringToUTF16String,\n  toRomanNumerals,\n  validateCSSFont,\n  validateFontName,\n  XRefEntryException,\n  XRefParseException,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Table C-2\nconst QeTable = [\n  { qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1 },\n  { qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0 },\n  { qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0 },\n  { qe: 0x0ac1, nmps: 4, nlps: 12, switchFlag: 0 },\n  { qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0 },\n  { qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0 },\n  { qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1 },\n  { qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0 },\n  { qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0 },\n  { qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0 },\n  { qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0 },\n  { qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0 },\n  { qe: 0x1c01, nmps: 13, nlps: 20, switchFlag: 0 },\n  { qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0 },\n  { qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1 },\n  { qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0 },\n  { qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0 },\n  { qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0 },\n  { qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0 },\n  { qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0 },\n  { qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0 },\n  { qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0 },\n  { qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0 },\n  { qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0 },\n  { qe: 0x1c01, nmps: 25, nlps: 22, switchFlag: 0 },\n  { qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0 },\n  { qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0 },\n  { qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0 },\n  { qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0 },\n  { qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0 },\n  { qe: 0x0ac1, nmps: 31, nlps: 28, switchFlag: 0 },\n  { qe: 0x09c1, nmps: 32, nlps: 29, switchFlag: 0 },\n  { qe: 0x08a1, nmps: 33, nlps: 30, switchFlag: 0 },\n  { qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0 },\n  { qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0 },\n  { qe: 0x02a1, nmps: 36, nlps: 33, switchFlag: 0 },\n  { qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0 },\n  { qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0 },\n  { qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0 },\n  { qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0 },\n  { qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0 },\n  { qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0 },\n  { qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0 },\n  { qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0 },\n  { qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0 },\n  { qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0 },\n  { qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0 },\n];\n\n/**\n * This class implements the QM Coder decoding as defined in\n *   JPEG 2000 Part I Final Committee Draft Version 1.0\n *   Annex C.3 Arithmetic decoding procedure\n * available at http://www.jpeg.org/public/fcd15444-1.pdf\n *\n * The arithmetic decoder is used in conjunction with context models to decode\n * JPEG2000 and JBIG2 streams.\n */\nclass ArithmeticDecoder {\n  // C.3.5 Initialisation of the decoder (INITDEC)\n  constructor(data, start, end) {\n    this.data = data;\n    this.bp = start;\n    this.dataEnd = end;\n\n    this.chigh = data[start];\n    this.clow = 0;\n\n    this.byteIn();\n\n    this.chigh = ((this.chigh << 7) & 0xffff) | ((this.clow >> 9) & 0x7f);\n    this.clow = (this.clow << 7) & 0xffff;\n    this.ct -= 7;\n    this.a = 0x8000;\n  }\n\n  // C.3.4 Compressed data input (BYTEIN)\n  byteIn() {\n    const data = this.data;\n    let bp = this.bp;\n\n    if (data[bp] === 0xff) {\n      if (data[bp + 1] > 0x8f) {\n        this.clow += 0xff00;\n        this.ct = 8;\n      } else {\n        bp++;\n        this.clow += data[bp] << 9;\n        this.ct = 7;\n        this.bp = bp;\n      }\n    } else {\n      bp++;\n      this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;\n      this.ct = 8;\n      this.bp = bp;\n    }\n    if (this.clow > 0xffff) {\n      this.chigh += this.clow >> 16;\n      this.clow &= 0xffff;\n    }\n  }\n\n  // C.3.2 Decoding a decision (DECODE)\n  readBit(contexts, pos) {\n    // Contexts are packed into 1 byte:\n    // highest 7 bits carry cx.index, lowest bit carries cx.mps\n    let cx_index = contexts[pos] >> 1,\n      cx_mps = contexts[pos] & 1;\n    const qeTableIcx = QeTable[cx_index];\n    const qeIcx = qeTableIcx.qe;\n    let d;\n    let a = this.a - qeIcx;\n\n    if (this.chigh < qeIcx) {\n      // exchangeLps\n      if (a < qeIcx) {\n        a = qeIcx;\n        d = cx_mps;\n        cx_index = qeTableIcx.nmps;\n      } else {\n        a = qeIcx;\n        d = 1 ^ cx_mps;\n        if (qeTableIcx.switchFlag === 1) {\n          cx_mps = d;\n        }\n        cx_index = qeTableIcx.nlps;\n      }\n    } else {\n      this.chigh -= qeIcx;\n      if ((a & 0x8000) !== 0) {\n        this.a = a;\n        return cx_mps;\n      }\n      // exchangeMps\n      if (a < qeIcx) {\n        d = 1 ^ cx_mps;\n        if (qeTableIcx.switchFlag === 1) {\n          cx_mps = d;\n        }\n        cx_index = qeTableIcx.nlps;\n      } else {\n        d = cx_mps;\n        cx_index = qeTableIcx.nmps;\n      }\n    }\n    // C.3.3 renormD;\n    do {\n      if (this.ct === 0) {\n        this.byteIn();\n      }\n\n      a <<= 1;\n      this.chigh = ((this.chigh << 1) & 0xffff) | ((this.clow >> 15) & 1);\n      this.clow = (this.clow << 1) & 0xffff;\n      this.ct--;\n    } while ((a & 0x8000) === 0);\n    this.a = a;\n\n    contexts[pos] = (cx_index << 1) | cx_mps;\n    return d;\n  }\n}\n\nexport { ArithmeticDecoder };\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/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The CCITT stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { FormatError, info } from \"../shared/util.js\";\n\n/**\n * @typedef {Object} CCITTFaxDecoderSource\n * @property {function} next - Method that return one byte of data for decoding,\n *   or -1 when EOF is reached.\n */\n\nconst ccittEOL = -2;\nconst ccittEOF = -1;\nconst twoDimPass = 0;\nconst twoDimHoriz = 1;\nconst twoDimVert0 = 2;\nconst twoDimVertR1 = 3;\nconst twoDimVertL1 = 4;\nconst twoDimVertR2 = 5;\nconst twoDimVertL2 = 6;\nconst twoDimVertR3 = 7;\nconst twoDimVertL3 = 8;\n\n// prettier-ignore\nconst twoDimTable = [\n  [-1, -1], [-1, -1],                   // 000000x\n  [7, twoDimVertL3],                    // 0000010\n  [7, twoDimVertR3],                    // 0000011\n  [6, twoDimVertL2], [6, twoDimVertL2], // 000010x\n  [6, twoDimVertR2], [6, twoDimVertR2], // 000011x\n  [4, twoDimPass], [4, twoDimPass],     // 0001xxx\n  [4, twoDimPass], [4, twoDimPass],\n  [4, twoDimPass], [4, twoDimPass],\n  [4, twoDimPass], [4, twoDimPass],\n  [3, twoDimHoriz], [3, twoDimHoriz],   // 001xxxx\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [1, twoDimVert0], [1, twoDimVert0],   // 1xxxxxx\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0]\n];\n\n// prettier-ignore\nconst whiteTable1 = [\n  [-1, -1],                               // 00000\n  [12, ccittEOL],                         // 00001\n  [-1, -1], [-1, -1],                     // 0001x\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx\n  [11, 1792], [11, 1792],                 // 1000x\n  [12, 1984],                             // 10010\n  [12, 2048],                             // 10011\n  [12, 2112],                             // 10100\n  [12, 2176],                             // 10101\n  [12, 2240],                             // 10110\n  [12, 2304],                             // 10111\n  [11, 1856], [11, 1856],                 // 1100x\n  [11, 1920], [11, 1920],                 // 1101x\n  [12, 2368],                             // 11100\n  [12, 2432],                             // 11101\n  [12, 2496],                             // 11110\n  [12, 2560]                              // 11111\n];\n\n// prettier-ignore\nconst whiteTable2 = [\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],     // 0000000xx\n  [8, 29], [8, 29],                           // 00000010x\n  [8, 30], [8, 30],                           // 00000011x\n  [8, 45], [8, 45],                           // 00000100x\n  [8, 46], [8, 46],                           // 00000101x\n  [7, 22], [7, 22], [7, 22], [7, 22],         // 0000011xx\n  [7, 23], [7, 23], [7, 23], [7, 23],         // 0000100xx\n  [8, 47], [8, 47],                           // 00001010x\n  [8, 48], [8, 48],                           // 00001011x\n  [6, 13], [6, 13], [6, 13], [6, 13],         // 000011xxx\n  [6, 13], [6, 13], [6, 13], [6, 13],\n  [7, 20], [7, 20], [7, 20], [7, 20],         // 0001000xx\n  [8, 33], [8, 33],                           // 00010010x\n  [8, 34], [8, 34],                           // 00010011x\n  [8, 35], [8, 35],                           // 00010100x\n  [8, 36], [8, 36],                           // 00010101x\n  [8, 37], [8, 37],                           // 00010110x\n  [8, 38], [8, 38],                           // 00010111x\n  [7, 19], [7, 19], [7, 19], [7, 19],         // 0001100xx\n  [8, 31], [8, 31],                           // 00011010x\n  [8, 32], [8, 32],                           // 00011011x\n  [6, 1], [6, 1], [6, 1], [6, 1],             // 000111xxx\n  [6, 1], [6, 1], [6, 1], [6, 1],\n  [6, 12], [6, 12], [6, 12], [6, 12],         // 001000xxx\n  [6, 12], [6, 12], [6, 12], [6, 12],\n  [8, 53], [8, 53],                           // 00100100x\n  [8, 54], [8, 54],                           // 00100101x\n  [7, 26], [7, 26], [7, 26], [7, 26],         // 0010011xx\n  [8, 39], [8, 39],                           // 00101000x\n  [8, 40], [8, 40],                           // 00101001x\n  [8, 41], [8, 41],                           // 00101010x\n  [8, 42], [8, 42],                           // 00101011x\n  [8, 43], [8, 43],                           // 00101100x\n  [8, 44], [8, 44],                           // 00101101x\n  [7, 21], [7, 21], [7, 21], [7, 21],         // 0010111xx\n  [7, 28], [7, 28], [7, 28], [7, 28],         // 0011000xx\n  [8, 61], [8, 61],                           // 00110010x\n  [8, 62], [8, 62],                           // 00110011x\n  [8, 63], [8, 63],                           // 00110100x\n  [8, 0], [8, 0],                             // 00110101x\n  [8, 320], [8, 320],                         // 00110110x\n  [8, 384], [8, 384],                         // 00110111x\n  [5, 10], [5, 10], [5, 10], [5, 10],         // 00111xxxx\n  [5, 10], [5, 10], [5, 10], [5, 10],\n  [5, 10], [5, 10], [5, 10], [5, 10],\n  [5, 10], [5, 10], [5, 10], [5, 10],\n  [5, 11], [5, 11], [5, 11], [5, 11],         // 01000xxxx\n  [5, 11], [5, 11], [5, 11], [5, 11],\n  [5, 11], [5, 11], [5, 11], [5, 11],\n  [5, 11], [5, 11], [5, 11], [5, 11],\n  [7, 27], [7, 27], [7, 27], [7, 27],         // 0100100xx\n  [8, 59], [8, 59],                           // 01001010x\n  [8, 60], [8, 60],                           // 01001011x\n  [9, 1472],                                  // 010011000\n  [9, 1536],                                  // 010011001\n  [9, 1600],                                  // 010011010\n  [9, 1728],                                  // 010011011\n  [7, 18], [7, 18], [7, 18], [7, 18],         // 0100111xx\n  [7, 24], [7, 24], [7, 24], [7, 24],         // 0101000xx\n  [8, 49], [8, 49],                           // 01010010x\n  [8, 50], [8, 50],                           // 01010011x\n  [8, 51], [8, 51],                           // 01010100x\n  [8, 52], [8, 52],                           // 01010101x\n  [7, 25], [7, 25], [7, 25], [7, 25],         // 0101011xx\n  [8, 55], [8, 55],                           // 01011000x\n  [8, 56], [8, 56],                           // 01011001x\n  [8, 57], [8, 57],                           // 01011010x\n  [8, 58], [8, 58],                           // 01011011x\n  [6, 192], [6, 192], [6, 192], [6, 192],     // 010111xxx\n  [6, 192], [6, 192], [6, 192], [6, 192],\n  [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx\n  [6, 1664], [6, 1664], [6, 1664], [6, 1664],\n  [8, 448], [8, 448],                         // 01100100x\n  [8, 512], [8, 512],                         // 01100101x\n  [9, 704],                                   // 011001100\n  [9, 768],                                   // 011001101\n  [8, 640], [8, 640],                         // 01100111x\n  [8, 576], [8, 576],                         // 01101000x\n  [9, 832],                                   // 011010010\n  [9, 896],                                   // 011010011\n  [9, 960],                                   // 011010100\n  [9, 1024],                                  // 011010101\n  [9, 1088],                                  // 011010110\n  [9, 1152],                                  // 011010111\n  [9, 1216],                                  // 011011000\n  [9, 1280],                                  // 011011001\n  [9, 1344],                                  // 011011010\n  [9, 1408],                                  // 011011011\n  [7, 256], [7, 256], [7, 256], [7, 256],     // 0110111xx\n  [4, 2], [4, 2], [4, 2], [4, 2],             // 0111xxxxx\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 3], [4, 3], [4, 3], [4, 3],             // 1000xxxxx\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [5, 128], [5, 128], [5, 128], [5, 128],     // 10010xxxx\n  [5, 128], [5, 128], [5, 128], [5, 128],\n  [5, 128], [5, 128], [5, 128], [5, 128],\n  [5, 128], [5, 128], [5, 128], [5, 128],\n  [5, 8], [5, 8], [5, 8], [5, 8],             // 10011xxxx\n  [5, 8], [5, 8], [5, 8], [5, 8],\n  [5, 8], [5, 8], [5, 8], [5, 8],\n  [5, 8], [5, 8], [5, 8], [5, 8],\n  [5, 9], [5, 9], [5, 9], [5, 9],             // 10100xxxx\n  [5, 9], [5, 9], [5, 9], [5, 9],\n  [5, 9], [5, 9], [5, 9], [5, 9],\n  [5, 9], [5, 9], [5, 9], [5, 9],\n  [6, 16], [6, 16], [6, 16], [6, 16],         // 101010xxx\n  [6, 16], [6, 16], [6, 16], [6, 16],\n  [6, 17], [6, 17], [6, 17], [6, 17],         // 101011xxx\n  [6, 17], [6, 17], [6, 17], [6, 17],\n  [4, 4], [4, 4], [4, 4], [4, 4],             // 1011xxxxx\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 5], [4, 5], [4, 5], [4, 5],             // 1100xxxxx\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [6, 14], [6, 14], [6, 14], [6, 14],         // 110100xxx\n  [6, 14], [6, 14], [6, 14], [6, 14],\n  [6, 15], [6, 15], [6, 15], [6, 15],         // 110101xxx\n  [6, 15], [6, 15], [6, 15], [6, 15],\n  [5, 64], [5, 64], [5, 64], [5, 64],         // 11011xxxx\n  [5, 64], [5, 64], [5, 64], [5, 64],\n  [5, 64], [5, 64], [5, 64], [5, 64],\n  [5, 64], [5, 64], [5, 64], [5, 64],\n  [4, 6], [4, 6], [4, 6], [4, 6],             // 1110xxxxx\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 7], [4, 7], [4, 7], [4, 7],             // 1111xxxxx\n  [4, 7], [4, 7], [4, 7], [4, 7],\n  [4, 7], [4, 7], [4, 7], [4, 7],\n  [4, 7], [4, 7], [4, 7], [4, 7],\n  [4, 7], [4, 7], [4, 7], [4, 7],\n  [4, 7], [4, 7], [4, 7], [4, 7],\n  [4, 7], [4, 7], [4, 7], [4, 7],\n  [4, 7], [4, 7], [4, 7], [4, 7]\n];\n\n// prettier-ignore\nconst blackTable1 = [\n  [-1, -1], [-1, -1],                             // 000000000000x\n  [12, ccittEOL], [12, ccittEOL],                 // 000000000001x\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000001xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000010xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000011xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000100xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000101xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000110xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000111xx\n  [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx\n  [12, 1984], [12, 1984],                         // 000000010010x\n  [12, 2048], [12, 2048],                         // 000000010011x\n  [12, 2112], [12, 2112],                         // 000000010100x\n  [12, 2176], [12, 2176],                         // 000000010101x\n  [12, 2240], [12, 2240],                         // 000000010110x\n  [12, 2304], [12, 2304],                         // 000000010111x\n  [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx\n  [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx\n  [12, 2368], [12, 2368],                         // 000000011100x\n  [12, 2432], [12, 2432],                         // 000000011101x\n  [12, 2496], [12, 2496],                         // 000000011110x\n  [12, 2560], [12, 2560],                         // 000000011111x\n  [10, 18], [10, 18], [10, 18], [10, 18],         // 0000001000xxx\n  [10, 18], [10, 18], [10, 18], [10, 18],\n  [12, 52], [12, 52],                             // 000000100100x\n  [13, 640],                                      // 0000001001010\n  [13, 704],                                      // 0000001001011\n  [13, 768],                                      // 0000001001100\n  [13, 832],                                      // 0000001001101\n  [12, 55], [12, 55],                             // 000000100111x\n  [12, 56], [12, 56],                             // 000000101000x\n  [13, 1280],                                     // 0000001010010\n  [13, 1344],                                     // 0000001010011\n  [13, 1408],                                     // 0000001010100\n  [13, 1472],                                     // 0000001010101\n  [12, 59], [12, 59],                             // 000000101011x\n  [12, 60], [12, 60],                             // 000000101100x\n  [13, 1536],                                     // 0000001011010\n  [13, 1600],                                     // 0000001011011\n  [11, 24], [11, 24], [11, 24], [11, 24],         // 00000010111xx\n  [11, 25], [11, 25], [11, 25], [11, 25],         // 00000011000xx\n  [13, 1664],                                     // 0000001100100\n  [13, 1728],                                     // 0000001100101\n  [12, 320], [12, 320],                           // 000000110011x\n  [12, 384], [12, 384],                           // 000000110100x\n  [12, 448], [12, 448],                           // 000000110101x\n  [13, 512],                                      // 0000001101100\n  [13, 576],                                      // 0000001101101\n  [12, 53], [12, 53],                             // 000000110111x\n  [12, 54], [12, 54],                             // 000000111000x\n  [13, 896],                                      // 0000001110010\n  [13, 960],                                      // 0000001110011\n  [13, 1024],                                     // 0000001110100\n  [13, 1088],                                     // 0000001110101\n  [13, 1152],                                     // 0000001110110\n  [13, 1216],                                     // 0000001110111\n  [10, 64], [10, 64], [10, 64], [10, 64],         // 0000001111xxx\n  [10, 64], [10, 64], [10, 64], [10, 64]\n];\n\n// prettier-ignore\nconst blackTable2 = [\n  [8, 13], [8, 13], [8, 13], [8, 13],     // 00000100xxxx\n  [8, 13], [8, 13], [8, 13], [8, 13],\n  [8, 13], [8, 13], [8, 13], [8, 13],\n  [8, 13], [8, 13], [8, 13], [8, 13],\n  [11, 23], [11, 23],                     // 00000101000x\n  [12, 50],                               // 000001010010\n  [12, 51],                               // 000001010011\n  [12, 44],                               // 000001010100\n  [12, 45],                               // 000001010101\n  [12, 46],                               // 000001010110\n  [12, 47],                               // 000001010111\n  [12, 57],                               // 000001011000\n  [12, 58],                               // 000001011001\n  [12, 61],                               // 000001011010\n  [12, 256],                              // 000001011011\n  [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx\n  [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx\n  [12, 48],                               // 000001100100\n  [12, 49],                               // 000001100101\n  [12, 62],                               // 000001100110\n  [12, 63],                               // 000001100111\n  [12, 30],                               // 000001101000\n  [12, 31],                               // 000001101001\n  [12, 32],                               // 000001101010\n  [12, 33],                               // 000001101011\n  [12, 40],                               // 000001101100\n  [12, 41],                               // 000001101101\n  [11, 22], [11, 22],                     // 00000110111x\n  [8, 14], [8, 14], [8, 14], [8, 14],     // 00000111xxxx\n  [8, 14], [8, 14], [8, 14], [8, 14],\n  [8, 14], [8, 14], [8, 14], [8, 14],\n  [8, 14], [8, 14], [8, 14], [8, 14],\n  [7, 10], [7, 10], [7, 10], [7, 10],     // 0000100xxxxx\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 11], [7, 11], [7, 11], [7, 11],     // 0000101xxxxx\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [9, 15], [9, 15], [9, 15], [9, 15],     // 000011000xxx\n  [9, 15], [9, 15], [9, 15], [9, 15],\n  [12, 128],                              // 000011001000\n  [12, 192],                              // 000011001001\n  [12, 26],                               // 000011001010\n  [12, 27],                               // 000011001011\n  [12, 28],                               // 000011001100\n  [12, 29],                               // 000011001101\n  [11, 19], [11, 19],                     // 00001100111x\n  [11, 20], [11, 20],                     // 00001101000x\n  [12, 34],                               // 000011010010\n  [12, 35],                               // 000011010011\n  [12, 36],                               // 000011010100\n  [12, 37],                               // 000011010101\n  [12, 38],                               // 000011010110\n  [12, 39],                               // 000011010111\n  [11, 21], [11, 21],                     // 00001101100x\n  [12, 42],                               // 000011011010\n  [12, 43],                               // 000011011011\n  [10, 0], [10, 0], [10, 0], [10, 0],     // 0000110111xx\n  [7, 12], [7, 12], [7, 12], [7, 12],     // 0000111xxxxx\n  [7, 12], [7, 12], [7, 12], [7, 12],\n  [7, 12], [7, 12], [7, 12], [7, 12],\n  [7, 12], [7, 12], [7, 12], [7, 12],\n  [7, 12], [7, 12], [7, 12], [7, 12],\n  [7, 12], [7, 12], [7, 12], [7, 12],\n  [7, 12], [7, 12], [7, 12], [7, 12],\n  [7, 12], [7, 12], [7, 12], [7, 12]\n];\n\n// prettier-ignore\nconst blackTable3 = [\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx\n  [6, 9],                                 // 000100\n  [6, 8],                                 // 000101\n  [5, 7], [5, 7],                         // 00011x\n  [4, 6], [4, 6], [4, 6], [4, 6],         // 0010xx\n  [4, 5], [4, 5], [4, 5], [4, 5],         // 0011xx\n  [3, 1], [3, 1], [3, 1], [3, 1],         // 010xxx\n  [3, 1], [3, 1], [3, 1], [3, 1],\n  [3, 4], [3, 4], [3, 4], [3, 4],         // 011xxx\n  [3, 4], [3, 4], [3, 4], [3, 4],\n  [2, 3], [2, 3], [2, 3], [2, 3],         // 10xxxx\n  [2, 3], [2, 3], [2, 3], [2, 3],\n  [2, 3], [2, 3], [2, 3], [2, 3],\n  [2, 3], [2, 3], [2, 3], [2, 3],\n  [2, 2], [2, 2], [2, 2], [2, 2],         // 11xxxx\n  [2, 2], [2, 2], [2, 2], [2, 2],\n  [2, 2], [2, 2], [2, 2], [2, 2],\n  [2, 2], [2, 2], [2, 2], [2, 2]\n];\n\n/**\n * @param {CCITTFaxDecoderSource} source - The data which should be decoded.\n * @param {Object} [options] - Decoding options.\n */\nclass CCITTFaxDecoder {\n  constructor(source, options = {}) {\n    if (!source || typeof source.next !== \"function\") {\n      throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n    }\n    this.source = source;\n    this.eof = false;\n\n    this.encoding = options.K || 0;\n    this.eoline = options.EndOfLine || false;\n    this.byteAlign = options.EncodedByteAlign || false;\n    this.columns = options.Columns || 1728;\n    this.rows = options.Rows || 0;\n    this.eoblock = options.EndOfBlock ?? true;\n    this.black = options.BlackIs1 || false;\n\n    this.codingLine = new Uint32Array(this.columns + 1);\n    this.refLine = new Uint32Array(this.columns + 2);\n\n    this.codingLine[0] = this.columns;\n    this.codingPos = 0;\n\n    this.row = 0;\n    this.nextLine2D = this.encoding < 0;\n    this.inputBits = 0;\n    this.inputBuf = 0;\n    this.outputBits = 0;\n    this.rowsDone = false;\n\n    let code1;\n    while ((code1 = this._lookBits(12)) === 0) {\n      this._eatBits(1);\n    }\n    if (code1 === 1) {\n      this._eatBits(12);\n    }\n    if (this.encoding > 0) {\n      this.nextLine2D = !this._lookBits(1);\n      this._eatBits(1);\n    }\n  }\n\n  readNextChar() {\n    if (this.eof) {\n      return -1;\n    }\n    const refLine = this.refLine;\n    const codingLine = this.codingLine;\n    const columns = this.columns;\n\n    let refPos, blackPixels, bits, i;\n\n    if (this.outputBits === 0) {\n      if (this.rowsDone) {\n        this.eof = true;\n      }\n      if (this.eof) {\n        return -1;\n      }\n      this.err = false;\n\n      let code1, code2, code3;\n      if (this.nextLine2D) {\n        for (i = 0; codingLine[i] < columns; ++i) {\n          refLine[i] = codingLine[i];\n        }\n        refLine[i++] = columns;\n        refLine[i] = columns;\n        codingLine[0] = 0;\n        this.codingPos = 0;\n        refPos = 0;\n        blackPixels = 0;\n\n        while (codingLine[this.codingPos] < columns) {\n          code1 = this._getTwoDimCode();\n          switch (code1) {\n            case twoDimPass:\n              this._addPixels(refLine[refPos + 1], blackPixels);\n              if (refLine[refPos + 1] < columns) {\n                refPos += 2;\n              }\n              break;\n            case twoDimHoriz:\n              code1 = code2 = 0;\n              if (blackPixels) {\n                do {\n                  code1 += code3 = this._getBlackCode();\n                } while (code3 >= 64);\n                do {\n                  code2 += code3 = this._getWhiteCode();\n                } while (code3 >= 64);\n              } else {\n                do {\n                  code1 += code3 = this._getWhiteCode();\n                } while (code3 >= 64);\n                do {\n                  code2 += code3 = this._getBlackCode();\n                } while (code3 >= 64);\n              }\n              this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n              if (codingLine[this.codingPos] < columns) {\n                this._addPixels(\n                  codingLine[this.codingPos] + code2,\n                  blackPixels ^ 1\n                );\n              }\n              while (\n                refLine[refPos] <= codingLine[this.codingPos] &&\n                refLine[refPos] < columns\n              ) {\n                refPos += 2;\n              }\n              break;\n            case twoDimVertR3:\n              this._addPixels(refLine[refPos] + 3, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case twoDimVertR2:\n              this._addPixels(refLine[refPos] + 2, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case twoDimVertR1:\n              this._addPixels(refLine[refPos] + 1, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case twoDimVert0:\n              this._addPixels(refLine[refPos], blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case twoDimVertL3:\n              this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0) {\n                  --refPos;\n                } else {\n                  ++refPos;\n                }\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case twoDimVertL2:\n              this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0) {\n                  --refPos;\n                } else {\n                  ++refPos;\n                }\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case twoDimVertL1:\n              this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0) {\n                  --refPos;\n                } else {\n                  ++refPos;\n                }\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case ccittEOF:\n              this._addPixels(columns, 0);\n              this.eof = true;\n              break;\n            default:\n              info(\"bad 2d code\");\n              this._addPixels(columns, 0);\n              this.err = true;\n          }\n        }\n      } else {\n        codingLine[0] = 0;\n        this.codingPos = 0;\n        blackPixels = 0;\n        while (codingLine[this.codingPos] < columns) {\n          code1 = 0;\n          if (blackPixels) {\n            do {\n              code1 += code3 = this._getBlackCode();\n            } while (code3 >= 64);\n          } else {\n            do {\n              code1 += code3 = this._getWhiteCode();\n            } while (code3 >= 64);\n          }\n          this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n          blackPixels ^= 1;\n        }\n      }\n\n      let gotEOL = false;\n\n      if (this.byteAlign) {\n        this.inputBits &= ~7;\n      }\n\n      if (!this.eoblock && this.row === this.rows - 1) {\n        this.rowsDone = true;\n      } else {\n        code1 = this._lookBits(12);\n        if (this.eoline) {\n          while (code1 !== ccittEOF && code1 !== 1) {\n            this._eatBits(1);\n            code1 = this._lookBits(12);\n          }\n        } else {\n          while (code1 === 0) {\n            this._eatBits(1);\n            code1 = this._lookBits(12);\n          }\n        }\n        if (code1 === 1) {\n          this._eatBits(12);\n          gotEOL = true;\n        } else if (code1 === ccittEOF) {\n          this.eof = true;\n        }\n      }\n\n      if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n        this.nextLine2D = !this._lookBits(1);\n        this._eatBits(1);\n      }\n\n      if (this.eoblock && gotEOL && this.byteAlign) {\n        code1 = this._lookBits(12);\n        if (code1 === 1) {\n          this._eatBits(12);\n          if (this.encoding > 0) {\n            this._lookBits(1);\n            this._eatBits(1);\n          }\n          if (this.encoding >= 0) {\n            for (i = 0; i < 4; ++i) {\n              code1 = this._lookBits(12);\n              if (code1 !== 1) {\n                info(\"bad rtc code: \" + code1);\n              }\n              this._eatBits(12);\n              if (this.encoding > 0) {\n                this._lookBits(1);\n                this._eatBits(1);\n              }\n            }\n          }\n          this.eof = true;\n        }\n      } else if (this.err && this.eoline) {\n        while (true) {\n          code1 = this._lookBits(13);\n          if (code1 === ccittEOF) {\n            this.eof = true;\n            return -1;\n          }\n          if (code1 >> 1 === 1) {\n            break;\n          }\n          this._eatBits(1);\n        }\n        this._eatBits(12);\n        if (this.encoding > 0) {\n          this._eatBits(1);\n          this.nextLine2D = !(code1 & 1);\n        }\n      }\n\n      this.outputBits =\n        codingLine[0] > 0\n          ? codingLine[(this.codingPos = 0)]\n          : codingLine[(this.codingPos = 1)];\n      this.row++;\n    }\n\n    let c;\n    if (this.outputBits >= 8) {\n      c = this.codingPos & 1 ? 0 : 0xff;\n      this.outputBits -= 8;\n      if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n        this.codingPos++;\n        this.outputBits =\n          codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n      }\n    } else {\n      bits = 8;\n      c = 0;\n      do {\n        if (typeof this.outputBits !== \"number\") {\n          throw new FormatError(\n            'Invalid /CCITTFaxDecode data, \"outputBits\" must be a number.'\n          );\n        }\n\n        if (this.outputBits > bits) {\n          c <<= bits;\n          if (!(this.codingPos & 1)) {\n            c |= 0xff >> (8 - bits);\n          }\n          this.outputBits -= bits;\n          bits = 0;\n        } else {\n          c <<= this.outputBits;\n          if (!(this.codingPos & 1)) {\n            c |= 0xff >> (8 - this.outputBits);\n          }\n          bits -= this.outputBits;\n          this.outputBits = 0;\n          if (codingLine[this.codingPos] < columns) {\n            this.codingPos++;\n            this.outputBits =\n              codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n          } else if (bits > 0) {\n            c <<= bits;\n            bits = 0;\n          }\n        }\n      } while (bits);\n    }\n    if (this.black) {\n      c ^= 0xff;\n    }\n    return c;\n  }\n\n  /**\n   * @private\n   */\n  _addPixels(a1, blackPixels) {\n    const codingLine = this.codingLine;\n    let codingPos = this.codingPos;\n\n    if (a1 > codingLine[codingPos]) {\n      if (a1 > this.columns) {\n        info(\"row is wrong length\");\n        this.err = true;\n        a1 = this.columns;\n      }\n      if ((codingPos & 1) ^ blackPixels) {\n        ++codingPos;\n      }\n\n      codingLine[codingPos] = a1;\n    }\n    this.codingPos = codingPos;\n  }\n\n  /**\n   * @private\n   */\n  _addPixelsNeg(a1, blackPixels) {\n    const codingLine = this.codingLine;\n    let codingPos = this.codingPos;\n\n    if (a1 > codingLine[codingPos]) {\n      if (a1 > this.columns) {\n        info(\"row is wrong length\");\n        this.err = true;\n        a1 = this.columns;\n      }\n      if ((codingPos & 1) ^ blackPixels) {\n        ++codingPos;\n      }\n\n      codingLine[codingPos] = a1;\n    } else if (a1 < codingLine[codingPos]) {\n      if (a1 < 0) {\n        info(\"invalid code\");\n        this.err = true;\n        a1 = 0;\n      }\n      while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n        --codingPos;\n      }\n      codingLine[codingPos] = a1;\n    }\n\n    this.codingPos = codingPos;\n  }\n\n  /**\n   * This function returns the code found from the table.\n   * The start and end parameters set the boundaries for searching the table.\n   * The limit parameter is optional. Function returns an array with three\n   * values. The first array element indicates whether a valid code is being\n   * returned. The second array element is the actual code. The third array\n   * element indicates whether EOF was reached.\n   * @private\n   */\n  _findTableCode(start, end, table, limit) {\n    const limitValue = limit || 0;\n    for (let i = start; i <= end; ++i) {\n      let code = this._lookBits(i);\n      if (code === ccittEOF) {\n        return [true, 1, false];\n      }\n      if (i < end) {\n        code <<= end - i;\n      }\n      if (!limitValue || code >= limitValue) {\n        const p = table[code - limitValue];\n        if (p[0] === i) {\n          this._eatBits(i);\n          return [true, p[1], true];\n        }\n      }\n    }\n    return [false, 0, false];\n  }\n\n  /**\n   * @private\n   */\n  _getTwoDimCode() {\n    let code = 0;\n    let p;\n    if (this.eoblock) {\n      code = this._lookBits(7);\n      p = twoDimTable[code];\n      if (p?.[0] > 0) {\n        this._eatBits(p[0]);\n        return p[1];\n      }\n    } else {\n      const result = this._findTableCode(1, 7, twoDimTable);\n      if (result[0] && result[2]) {\n        return result[1];\n      }\n    }\n    info(\"Bad two dim code\");\n    return ccittEOF;\n  }\n\n  /**\n   * @private\n   */\n  _getWhiteCode() {\n    let code = 0;\n    let p;\n    if (this.eoblock) {\n      code = this._lookBits(12);\n      if (code === ccittEOF) {\n        return 1;\n      }\n\n      p = code >> 5 === 0 ? whiteTable1[code] : whiteTable2[code >> 3];\n\n      if (p[0] > 0) {\n        this._eatBits(p[0]);\n        return p[1];\n      }\n    } else {\n      let result = this._findTableCode(1, 9, whiteTable2);\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(11, 12, whiteTable1);\n      if (result[0]) {\n        return result[1];\n      }\n    }\n    info(\"bad white code\");\n    this._eatBits(1);\n    return 1;\n  }\n\n  /**\n   * @private\n   */\n  _getBlackCode() {\n    let code, p;\n    if (this.eoblock) {\n      code = this._lookBits(13);\n      if (code === ccittEOF) {\n        return 1;\n      }\n      if (code >> 7 === 0) {\n        p = blackTable1[code];\n      } else if (code >> 9 === 0 && code >> 7 !== 0) {\n        p = blackTable2[(code >> 1) - 64];\n      } else {\n        p = blackTable3[code >> 7];\n      }\n\n      if (p[0] > 0) {\n        this._eatBits(p[0]);\n        return p[1];\n      }\n    } else {\n      let result = this._findTableCode(2, 6, blackTable3);\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(7, 12, blackTable2, 64);\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(10, 13, blackTable1);\n      if (result[0]) {\n        return result[1];\n      }\n    }\n    info(\"bad black code\");\n    this._eatBits(1);\n    return 1;\n  }\n\n  /**\n   * @private\n   */\n  _lookBits(n) {\n    let c;\n    while (this.inputBits < n) {\n      if ((c = this.source.next()) === -1) {\n        if (this.inputBits === 0) {\n          return ccittEOF;\n        }\n        return (this.inputBuf << (n - this.inputBits)) & (0xffff >> (16 - n));\n      }\n      this.inputBuf = (this.inputBuf << 8) | c;\n      this.inputBits += 8;\n    }\n    return (this.inputBuf >> (this.inputBits - n)) & (0xffff >> (16 - n));\n  }\n\n  /**\n   * @private\n   */\n  _eatBits(n) {\n    if ((this.inputBits -= n) < 0) {\n      this.inputBits = 0;\n    }\n  }\n}\n\nexport { CCITTFaxDecoder };\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 { BaseException, shadow } from \"../shared/util.js\";\nimport { log2, readInt8, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\n\nclass Jbig2Error extends BaseException {\n  constructor(msg) {\n    super(`JBIG2 error: ${msg}`, \"Jbig2Error\");\n  }\n}\n\n// Utility data structures\nclass ContextCache {\n  getContexts(id) {\n    if (id in this) {\n      return this[id];\n    }\n    return (this[id] = new Int8Array(1 << 16));\n  }\n}\n\nclass DecodingContext {\n  constructor(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n  }\n\n  get decoder() {\n    const decoder = new ArithmeticDecoder(this.data, this.start, this.end);\n    return shadow(this, \"decoder\", decoder);\n  }\n\n  get contextCache() {\n    const cache = new ContextCache();\n    return shadow(this, \"contextCache\", cache);\n  }\n}\n\nconst MAX_INT_32 = 2 ** 31 - 1;\nconst MIN_INT_32 = -(2 ** 31);\n\n// Annex A. Arithmetic Integer Decoding Procedure\n// A.2 Procedure for decoding values\nfunction decodeInteger(contextCache, procedure, decoder) {\n  const contexts = contextCache.getContexts(procedure);\n  let prev = 1;\n\n  function readBits(length) {\n    let v = 0;\n    for (let i = 0; i < length; i++) {\n      const bit = decoder.readBit(contexts, prev);\n      prev = prev < 256 ? (prev << 1) | bit : (((prev << 1) | bit) & 511) | 256;\n      v = (v << 1) | bit;\n    }\n    return v >>> 0;\n  }\n\n  const sign = readBits(1);\n  // prettier-ignore\n  /* eslint-disable no-nested-ternary */\n  const value = readBits(1) ?\n                  (readBits(1) ?\n                    (readBits(1) ?\n                      (readBits(1) ?\n                        (readBits(1) ?\n                          (readBits(32) + 4436) :\n                        readBits(12) + 340) :\n                      readBits(8) + 84) :\n                    readBits(6) + 20) :\n                  readBits(4) + 4) :\n                readBits(2);\n  /* eslint-enable no-nested-ternary */\n  let signedValue;\n  if (sign === 0) {\n    signedValue = value;\n  } else if (value > 0) {\n    signedValue = -value;\n  }\n  // Ensure that the integer value doesn't underflow or overflow.\n  if (signedValue >= MIN_INT_32 && signedValue <= MAX_INT_32) {\n    return signedValue;\n  }\n  return null;\n}\n\n// A.3 The IAID decoding procedure\nfunction decodeIAID(contextCache, decoder, codeLength) {\n  const contexts = contextCache.getContexts(\"IAID\");\n\n  let prev = 1;\n  for (let i = 0; i < codeLength; i++) {\n    const bit = decoder.readBit(contexts, prev);\n    prev = (prev << 1) | bit;\n  }\n  if (codeLength < 31) {\n    return prev & ((1 << codeLength) - 1);\n  }\n  return prev & 0x7fffffff;\n}\n\n// 7.3 Segment types\nconst SegmentTypes = [\n  \"SymbolDictionary\",\n  null,\n  null,\n  null,\n  \"IntermediateTextRegion\",\n  null,\n  \"ImmediateTextRegion\",\n  \"ImmediateLosslessTextRegion\",\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  \"PatternDictionary\",\n  null,\n  null,\n  null,\n  \"IntermediateHalftoneRegion\",\n  null,\n  \"ImmediateHalftoneRegion\",\n  \"ImmediateLosslessHalftoneRegion\",\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  \"IntermediateGenericRegion\",\n  null,\n  \"ImmediateGenericRegion\",\n  \"ImmediateLosslessGenericRegion\",\n  \"IntermediateGenericRefinementRegion\",\n  null,\n  \"ImmediateGenericRefinementRegion\",\n  \"ImmediateLosslessGenericRefinementRegion\",\n  null,\n  null,\n  null,\n  null,\n  \"PageInformation\",\n  \"EndOfPage\",\n  \"EndOfStripe\",\n  \"EndOfFile\",\n  \"Profiles\",\n  \"Tables\",\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  \"Extension\",\n];\n\nconst CodingTemplates = [\n  [\n    { x: -1, y: -2 },\n    { x: 0, y: -2 },\n    { x: 1, y: -2 },\n    { x: -2, y: -1 },\n    { x: -1, y: -1 },\n    { x: 0, y: -1 },\n    { x: 1, y: -1 },\n    { x: 2, y: -1 },\n    { x: -4, y: 0 },\n    { x: -3, y: 0 },\n    { x: -2, y: 0 },\n    { x: -1, y: 0 },\n  ],\n  [\n    { x: -1, y: -2 },\n    { x: 0, y: -2 },\n    { x: 1, y: -2 },\n    { x: 2, y: -2 },\n    { x: -2, y: -1 },\n    { x: -1, y: -1 },\n    { x: 0, y: -1 },\n    { x: 1, y: -1 },\n    { x: 2, y: -1 },\n    { x: -3, y: 0 },\n    { x: -2, y: 0 },\n    { x: -1, y: 0 },\n  ],\n  [\n    { x: -1, y: -2 },\n    { x: 0, y: -2 },\n    { x: 1, y: -2 },\n    { x: -2, y: -1 },\n    { x: -1, y: -1 },\n    { x: 0, y: -1 },\n    { x: 1, y: -1 },\n    { x: -2, y: 0 },\n    { x: -1, y: 0 },\n  ],\n  [\n    { x: -3, y: -1 },\n    { x: -2, y: -1 },\n    { x: -1, y: -1 },\n    { x: 0, y: -1 },\n    { x: 1, y: -1 },\n    { x: -4, y: 0 },\n    { x: -3, y: 0 },\n    { x: -2, y: 0 },\n    { x: -1, y: 0 },\n  ],\n];\n\nconst RefinementTemplates = [\n  {\n    coding: [\n      { x: 0, y: -1 },\n      { x: 1, y: -1 },\n      { x: -1, y: 0 },\n    ],\n    reference: [\n      { x: 0, y: -1 },\n      { x: 1, y: -1 },\n      { x: -1, y: 0 },\n      { x: 0, y: 0 },\n      { x: 1, y: 0 },\n      { x: -1, y: 1 },\n      { x: 0, y: 1 },\n      { x: 1, y: 1 },\n    ],\n  },\n  {\n    coding: [\n      { x: -1, y: -1 },\n      { x: 0, y: -1 },\n      { x: 1, y: -1 },\n      { x: -1, y: 0 },\n    ],\n    reference: [\n      { x: 0, y: -1 },\n      { x: -1, y: 0 },\n      { x: 0, y: 0 },\n      { x: 1, y: 0 },\n      { x: 0, y: 1 },\n      { x: 1, y: 1 },\n    ],\n  },\n];\n\n// See 6.2.5.7 Decoding the bitmap.\nconst ReusedContexts = [\n  0x9b25, // 10011 0110010 0101\n  0x0795, // 0011 110010 101\n  0x00e5, // 001 11001 01\n  0x0195, // 011001 0101\n];\n\nconst RefinementReusedContexts = [\n  0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference)\n  0x0008, // '0000' + '001000'\n];\n\nfunction decodeBitmapTemplate0(width, height, decodingContext) {\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GB\");\n  const bitmap = [];\n  let contextLabel, i, j, pixel, row, row1, row2;\n\n  // ...ooooo....\n  // ..ooooooo... Context template for current pixel (X)\n  // .ooooX...... (concatenate values of 'o'-pixels to get contextLabel)\n  const OLD_PIXEL_MASK = 0x7bf7; // 01111 0111111 0111\n\n  for (i = 0; i < height; i++) {\n    row = bitmap[i] = new Uint8Array(width);\n    row1 = i < 1 ? row : bitmap[i - 1];\n    row2 = i < 2 ? row : bitmap[i - 2];\n\n    // At the beginning of each row:\n    // Fill contextLabel with pixels that are above/right of (X)\n    contextLabel =\n      (row2[0] << 13) |\n      (row2[1] << 12) |\n      (row2[2] << 11) |\n      (row1[0] << 7) |\n      (row1[1] << 6) |\n      (row1[2] << 5) |\n      (row1[3] << 4);\n\n    for (j = 0; j < width; j++) {\n      row[j] = pixel = decoder.readBit(contexts, contextLabel);\n\n      // At each pixel: Clear contextLabel pixels that are shifted\n      // out of the context, then add new ones.\n      contextLabel =\n        ((contextLabel & OLD_PIXEL_MASK) << 1) |\n        (j + 3 < width ? row2[j + 3] << 11 : 0) |\n        (j + 4 < width ? row1[j + 4] << 4 : 0) |\n        pixel;\n    }\n  }\n\n  return bitmap;\n}\n\n// 6.2 Generic Region Decoding Procedure\nfunction decodeBitmap(\n  mmr,\n  width,\n  height,\n  templateIndex,\n  prediction,\n  skip,\n  at,\n  decodingContext\n) {\n  if (mmr) {\n    const input = new Reader(\n      decodingContext.data,\n      decodingContext.start,\n      decodingContext.end\n    );\n    return decodeMMRBitmap(input, width, height, false);\n  }\n\n  // Use optimized version for the most common case\n  if (\n    templateIndex === 0 &&\n    !skip &&\n    !prediction &&\n    at.length === 4 &&\n    at[0].x === 3 &&\n    at[0].y === -1 &&\n    at[1].x === -3 &&\n    at[1].y === -1 &&\n    at[2].x === 2 &&\n    at[2].y === -2 &&\n    at[3].x === -2 &&\n    at[3].y === -2\n  ) {\n    return decodeBitmapTemplate0(width, height, decodingContext);\n  }\n\n  const useskip = !!skip;\n  const template = CodingTemplates[templateIndex].concat(at);\n\n  // Sorting is non-standard, and it is not required. But sorting increases\n  // the number of template bits that can be reused from the previous\n  // contextLabel in the main loop.\n  template.sort(function (a, b) {\n    return a.y - b.y || a.x - b.x;\n  });\n\n  const templateLength = template.length;\n  const templateX = new Int8Array(templateLength);\n  const templateY = new Int8Array(templateLength);\n  const changingTemplateEntries = [];\n  let reuseMask = 0,\n    minX = 0,\n    maxX = 0,\n    minY = 0;\n  let c, k;\n\n  for (k = 0; k < templateLength; k++) {\n    templateX[k] = template[k].x;\n    templateY[k] = template[k].y;\n    minX = Math.min(minX, template[k].x);\n    maxX = Math.max(maxX, template[k].x);\n    minY = Math.min(minY, template[k].y);\n    // Check if the template pixel appears in two consecutive context labels,\n    // so it can be reused. Otherwise, we add it to the list of changing\n    // template entries.\n    if (\n      k < templateLength - 1 &&\n      template[k].y === template[k + 1].y &&\n      template[k].x === template[k + 1].x - 1\n    ) {\n      reuseMask |= 1 << (templateLength - 1 - k);\n    } else {\n      changingTemplateEntries.push(k);\n    }\n  }\n  const changingEntriesLength = changingTemplateEntries.length;\n\n  const changingTemplateX = new Int8Array(changingEntriesLength);\n  const changingTemplateY = new Int8Array(changingEntriesLength);\n  const changingTemplateBit = new Uint16Array(changingEntriesLength);\n  for (c = 0; c < changingEntriesLength; c++) {\n    k = changingTemplateEntries[c];\n    changingTemplateX[c] = template[k].x;\n    changingTemplateY[c] = template[k].y;\n    changingTemplateBit[c] = 1 << (templateLength - 1 - k);\n  }\n\n  // Get the safe bounding box edges from the width, height, minX, maxX, minY\n  const sbb_left = -minX;\n  const sbb_top = -minY;\n  const sbb_right = width - maxX;\n\n  const pseudoPixelContext = ReusedContexts[templateIndex];\n  let row = new Uint8Array(width);\n  const bitmap = [];\n\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GB\");\n\n  let ltp = 0,\n    j,\n    i0,\n    j0,\n    contextLabel = 0,\n    bit,\n    shift;\n  for (let i = 0; i < height; i++) {\n    if (prediction) {\n      const sltp = decoder.readBit(contexts, pseudoPixelContext);\n      ltp ^= sltp;\n      if (ltp) {\n        bitmap.push(row); // duplicate previous row\n        continue;\n      }\n    }\n    row = new Uint8Array(row);\n    bitmap.push(row);\n    for (j = 0; j < width; j++) {\n      if (useskip && skip[i][j]) {\n        row[j] = 0;\n        continue;\n      }\n      // Are we in the middle of a scanline, so we can reuse contextLabel\n      // bits?\n      if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n        // If yes, we can just shift the bits that are reusable and only\n        // fetch the remaining ones.\n        contextLabel = (contextLabel << 1) & reuseMask;\n        for (k = 0; k < changingEntriesLength; k++) {\n          i0 = i + changingTemplateY[k];\n          j0 = j + changingTemplateX[k];\n          bit = bitmap[i0][j0];\n          if (bit) {\n            bit = changingTemplateBit[k];\n            contextLabel |= bit;\n          }\n        }\n      } else {\n        // compute the contextLabel from scratch\n        contextLabel = 0;\n        shift = templateLength - 1;\n        for (k = 0; k < templateLength; k++, shift--) {\n          j0 = j + templateX[k];\n          if (j0 >= 0 && j0 < width) {\n            i0 = i + templateY[k];\n            if (i0 >= 0) {\n              bit = bitmap[i0][j0];\n              if (bit) {\n                contextLabel |= bit << shift;\n              }\n            }\n          }\n        }\n      }\n      const pixel = decoder.readBit(contexts, contextLabel);\n      row[j] = pixel;\n    }\n  }\n  return bitmap;\n}\n\n// 6.3.2 Generic Refinement Region Decoding Procedure\nfunction decodeRefinement(\n  width,\n  height,\n  templateIndex,\n  referenceBitmap,\n  offsetX,\n  offsetY,\n  prediction,\n  at,\n  decodingContext\n) {\n  let codingTemplate = RefinementTemplates[templateIndex].coding;\n  if (templateIndex === 0) {\n    codingTemplate = codingTemplate.concat([at[0]]);\n  }\n  const codingTemplateLength = codingTemplate.length;\n  const codingTemplateX = new Int32Array(codingTemplateLength);\n  const codingTemplateY = new Int32Array(codingTemplateLength);\n  let k;\n  for (k = 0; k < codingTemplateLength; k++) {\n    codingTemplateX[k] = codingTemplate[k].x;\n    codingTemplateY[k] = codingTemplate[k].y;\n  }\n\n  let referenceTemplate = RefinementTemplates[templateIndex].reference;\n  if (templateIndex === 0) {\n    referenceTemplate = referenceTemplate.concat([at[1]]);\n  }\n  const referenceTemplateLength = referenceTemplate.length;\n  const referenceTemplateX = new Int32Array(referenceTemplateLength);\n  const referenceTemplateY = new Int32Array(referenceTemplateLength);\n  for (k = 0; k < referenceTemplateLength; k++) {\n    referenceTemplateX[k] = referenceTemplate[k].x;\n    referenceTemplateY[k] = referenceTemplate[k].y;\n  }\n  const referenceWidth = referenceBitmap[0].length;\n  const referenceHeight = referenceBitmap.length;\n\n  const pseudoPixelContext = RefinementReusedContexts[templateIndex];\n  const bitmap = [];\n\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GR\");\n\n  let ltp = 0;\n  for (let i = 0; i < height; i++) {\n    if (prediction) {\n      const sltp = decoder.readBit(contexts, pseudoPixelContext);\n      ltp ^= sltp;\n      if (ltp) {\n        throw new Jbig2Error(\"prediction is not supported\");\n      }\n    }\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n    for (let j = 0; j < width; j++) {\n      let i0, j0;\n      let contextLabel = 0;\n      for (k = 0; k < codingTemplateLength; k++) {\n        i0 = i + codingTemplateY[k];\n        j0 = j + codingTemplateX[k];\n        if (i0 < 0 || j0 < 0 || j0 >= width) {\n          contextLabel <<= 1; // out of bound pixel\n        } else {\n          contextLabel = (contextLabel << 1) | bitmap[i0][j0];\n        }\n      }\n      for (k = 0; k < referenceTemplateLength; k++) {\n        i0 = i + referenceTemplateY[k] - offsetY;\n        j0 = j + referenceTemplateX[k] - offsetX;\n        if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n          contextLabel <<= 1; // out of bound pixel\n        } else {\n          contextLabel = (contextLabel << 1) | referenceBitmap[i0][j0];\n        }\n      }\n      const pixel = decoder.readBit(contexts, contextLabel);\n      row[j] = pixel;\n    }\n  }\n\n  return bitmap;\n}\n\n// 6.5.5 Decoding the symbol dictionary\nfunction decodeSymbolDictionary(\n  huffman,\n  refinement,\n  symbols,\n  numberOfNewSymbols,\n  numberOfExportedSymbols,\n  huffmanTables,\n  templateIndex,\n  at,\n  refinementTemplateIndex,\n  refinementAt,\n  decodingContext,\n  huffmanInput\n) {\n  if (huffman && refinement) {\n    throw new Jbig2Error(\"symbol refinement with Huffman is not supported\");\n  }\n\n  const newSymbols = [];\n  let currentHeight = 0;\n  let symbolCodeLength = log2(symbols.length + numberOfNewSymbols);\n\n  const decoder = decodingContext.decoder;\n  const contextCache = decodingContext.contextCache;\n  let tableB1, symbolWidths;\n  if (huffman) {\n    tableB1 = getStandardTable(1); // standard table B.1\n    symbolWidths = [];\n    symbolCodeLength = Math.max(symbolCodeLength, 1); // 6.5.8.2.3\n  }\n\n  while (newSymbols.length < numberOfNewSymbols) {\n    const deltaHeight = huffman\n      ? huffmanTables.tableDeltaHeight.decode(huffmanInput)\n      : decodeInteger(contextCache, \"IADH\", decoder); // 6.5.6\n    currentHeight += deltaHeight;\n    let currentWidth = 0,\n      totalWidth = 0;\n    const firstSymbol = huffman ? symbolWidths.length : 0;\n    while (true) {\n      const deltaWidth = huffman\n        ? huffmanTables.tableDeltaWidth.decode(huffmanInput)\n        : decodeInteger(contextCache, \"IADW\", decoder); // 6.5.7\n      if (deltaWidth === null) {\n        break; // OOB\n      }\n      currentWidth += deltaWidth;\n      totalWidth += currentWidth;\n      let bitmap;\n      if (refinement) {\n        // 6.5.8.2 Refinement/aggregate-coded symbol bitmap\n        const numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n        if (numberOfInstances > 1) {\n          bitmap = decodeTextRegion(\n            huffman,\n            refinement,\n            currentWidth,\n            currentHeight,\n            0,\n            numberOfInstances,\n            1, // strip size\n            symbols.concat(newSymbols),\n            symbolCodeLength,\n            0, // transposed\n            0, // ds offset\n            1, // top left 7.4.3.1.1\n            0, // OR operator\n            huffmanTables,\n            refinementTemplateIndex,\n            refinementAt,\n            decodingContext,\n            0,\n            huffmanInput\n          );\n        } else {\n          const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n          const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n          const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n          const symbol =\n            symbolId < symbols.length\n              ? symbols[symbolId]\n              : newSymbols[symbolId - symbols.length];\n          bitmap = decodeRefinement(\n            currentWidth,\n            currentHeight,\n            refinementTemplateIndex,\n            symbol,\n            rdx,\n            rdy,\n            false,\n            refinementAt,\n            decodingContext\n          );\n        }\n        newSymbols.push(bitmap);\n      } else if (huffman) {\n        // Store only symbol width and decode a collective bitmap when the\n        // height class is done.\n        symbolWidths.push(currentWidth);\n      } else {\n        // 6.5.8.1 Direct-coded symbol bitmap\n        bitmap = decodeBitmap(\n          false,\n          currentWidth,\n          currentHeight,\n          templateIndex,\n          false,\n          null,\n          at,\n          decodingContext\n        );\n        newSymbols.push(bitmap);\n      }\n    }\n    if (huffman && !refinement) {\n      // 6.5.9 Height class collective bitmap\n      const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n      huffmanInput.byteAlign();\n      let collectiveBitmap;\n      if (bitmapSize === 0) {\n        // Uncompressed collective bitmap\n        collectiveBitmap = readUncompressedBitmap(\n          huffmanInput,\n          totalWidth,\n          currentHeight\n        );\n      } else {\n        // MMR collective bitmap\n        const originalEnd = huffmanInput.end;\n        const bitmapEnd = huffmanInput.position + bitmapSize;\n        huffmanInput.end = bitmapEnd;\n        collectiveBitmap = decodeMMRBitmap(\n          huffmanInput,\n          totalWidth,\n          currentHeight,\n          false\n        );\n        huffmanInput.end = originalEnd;\n        huffmanInput.position = bitmapEnd;\n      }\n      const numberOfSymbolsDecoded = symbolWidths.length;\n      if (firstSymbol === numberOfSymbolsDecoded - 1) {\n        // collectiveBitmap is a single symbol.\n        newSymbols.push(collectiveBitmap);\n      } else {\n        // Divide collectiveBitmap into symbols.\n        let i,\n          y,\n          xMin = 0,\n          xMax,\n          bitmapWidth,\n          symbolBitmap;\n        for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n          bitmapWidth = symbolWidths[i];\n          xMax = xMin + bitmapWidth;\n          symbolBitmap = [];\n          for (y = 0; y < currentHeight; y++) {\n            symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n          }\n          newSymbols.push(symbolBitmap);\n          xMin = xMax;\n        }\n      }\n    }\n  }\n\n  // 6.5.10 Exported symbols\n  const exportedSymbols = [],\n    flags = [];\n  let currentFlag = false,\n    i,\n    ii;\n  const totalSymbolsLength = symbols.length + numberOfNewSymbols;\n  while (flags.length < totalSymbolsLength) {\n    let runLength = huffman\n      ? tableB1.decode(huffmanInput)\n      : decodeInteger(contextCache, \"IAEX\", decoder);\n    while (runLength--) {\n      flags.push(currentFlag);\n    }\n    currentFlag = !currentFlag;\n  }\n  for (i = 0, ii = symbols.length; i < ii; i++) {\n    if (flags[i]) {\n      exportedSymbols.push(symbols[i]);\n    }\n  }\n  for (let j = 0; j < numberOfNewSymbols; i++, j++) {\n    if (flags[i]) {\n      exportedSymbols.push(newSymbols[j]);\n    }\n  }\n  return exportedSymbols;\n}\n\nfunction decodeTextRegion(\n  huffman,\n  refinement,\n  width,\n  height,\n  defaultPixelValue,\n  numberOfSymbolInstances,\n  stripSize,\n  inputSymbols,\n  symbolCodeLength,\n  transposed,\n  dsOffset,\n  referenceCorner,\n  combinationOperator,\n  huffmanTables,\n  refinementTemplateIndex,\n  refinementAt,\n  decodingContext,\n  logStripSize,\n  huffmanInput\n) {\n  if (huffman && refinement) {\n    throw new Jbig2Error(\"refinement with Huffman is not supported\");\n  }\n\n  // Prepare bitmap\n  const bitmap = [];\n  let i, row;\n  for (i = 0; i < height; i++) {\n    row = new Uint8Array(width);\n    if (defaultPixelValue) {\n      for (let j = 0; j < width; j++) {\n        row[j] = defaultPixelValue;\n      }\n    }\n    bitmap.push(row);\n  }\n\n  const decoder = decodingContext.decoder;\n  const contextCache = decodingContext.contextCache;\n\n  let stripT = huffman\n    ? -huffmanTables.tableDeltaT.decode(huffmanInput)\n    : -decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n  let firstS = 0;\n  i = 0;\n  while (i < numberOfSymbolInstances) {\n    const deltaT = huffman\n      ? huffmanTables.tableDeltaT.decode(huffmanInput)\n      : decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n    stripT += deltaT;\n\n    const deltaFirstS = huffman\n      ? huffmanTables.tableFirstS.decode(huffmanInput)\n      : decodeInteger(contextCache, \"IAFS\", decoder); // 6.4.7\n    firstS += deltaFirstS;\n    let currentS = firstS;\n    do {\n      let currentT = 0; // 6.4.9\n      if (stripSize > 1) {\n        currentT = huffman\n          ? huffmanInput.readBits(logStripSize)\n          : decodeInteger(contextCache, \"IAIT\", decoder);\n      }\n      const t = stripSize * stripT + currentT;\n      const symbolId = huffman\n        ? huffmanTables.symbolIDTable.decode(huffmanInput)\n        : decodeIAID(contextCache, decoder, symbolCodeLength);\n      const applyRefinement =\n        refinement &&\n        (huffman\n          ? huffmanInput.readBit()\n          : decodeInteger(contextCache, \"IARI\", decoder));\n      let symbolBitmap = inputSymbols[symbolId];\n      let symbolWidth = symbolBitmap[0].length;\n      let symbolHeight = symbolBitmap.length;\n      if (applyRefinement) {\n        const rdw = decodeInteger(contextCache, \"IARDW\", decoder); // 6.4.11.1\n        const rdh = decodeInteger(contextCache, \"IARDH\", decoder); // 6.4.11.2\n        const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n        const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n        symbolWidth += rdw;\n        symbolHeight += rdh;\n        symbolBitmap = decodeRefinement(\n          symbolWidth,\n          symbolHeight,\n          refinementTemplateIndex,\n          symbolBitmap,\n          (rdw >> 1) + rdx,\n          (rdh >> 1) + rdy,\n          false,\n          refinementAt,\n          decodingContext\n        );\n      }\n      const offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n      const offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n      let s2, t2, symbolRow;\n      if (transposed) {\n        // Place Symbol Bitmap from T1,S1\n        for (s2 = 0; s2 < symbolHeight; s2++) {\n          row = bitmap[offsetS + s2];\n          if (!row) {\n            continue;\n          }\n          symbolRow = symbolBitmap[s2];\n          // To ignore Parts of Symbol bitmap which goes\n          // outside bitmap region\n          const maxWidth = Math.min(width - offsetT, symbolWidth);\n          switch (combinationOperator) {\n            case 0: // OR\n              for (t2 = 0; t2 < maxWidth; t2++) {\n                row[offsetT + t2] |= symbolRow[t2];\n              }\n              break;\n            case 2: // XOR\n              for (t2 = 0; t2 < maxWidth; t2++) {\n                row[offsetT + t2] ^= symbolRow[t2];\n              }\n              break;\n            default:\n              throw new Jbig2Error(\n                `operator ${combinationOperator} is not supported`\n              );\n          }\n        }\n        currentS += symbolHeight - 1;\n      } else {\n        for (t2 = 0; t2 < symbolHeight; t2++) {\n          row = bitmap[offsetT + t2];\n          if (!row) {\n            continue;\n          }\n          symbolRow = symbolBitmap[t2];\n          switch (combinationOperator) {\n            case 0: // OR\n              for (s2 = 0; s2 < symbolWidth; s2++) {\n                row[offsetS + s2] |= symbolRow[s2];\n              }\n              break;\n            case 2: // XOR\n              for (s2 = 0; s2 < symbolWidth; s2++) {\n                row[offsetS + s2] ^= symbolRow[s2];\n              }\n              break;\n            default:\n              throw new Jbig2Error(\n                `operator ${combinationOperator} is not supported`\n              );\n          }\n        }\n        currentS += symbolWidth - 1;\n      }\n      i++;\n      const deltaS = huffman\n        ? huffmanTables.tableDeltaS.decode(huffmanInput)\n        : decodeInteger(contextCache, \"IADS\", decoder); // 6.4.8\n      if (deltaS === null) {\n        break; // OOB\n      }\n      currentS += deltaS + dsOffset;\n    } while (true);\n  }\n  return bitmap;\n}\n\nfunction decodePatternDictionary(\n  mmr,\n  patternWidth,\n  patternHeight,\n  maxPatternIndex,\n  template,\n  decodingContext\n) {\n  const at = [];\n  if (!mmr) {\n    at.push({\n      x: -patternWidth,\n      y: 0,\n    });\n    if (template === 0) {\n      at.push(\n        {\n          x: -3,\n          y: -1,\n        },\n        {\n          x: 2,\n          y: -2,\n        },\n        {\n          x: -2,\n          y: -2,\n        }\n      );\n    }\n  }\n  const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n  const collectiveBitmap = decodeBitmap(\n    mmr,\n    collectiveWidth,\n    patternHeight,\n    template,\n    false,\n    null,\n    at,\n    decodingContext\n  );\n  // Divide collective bitmap into patterns.\n  const patterns = [];\n  for (let i = 0; i <= maxPatternIndex; i++) {\n    const patternBitmap = [];\n    const xMin = patternWidth * i;\n    const xMax = xMin + patternWidth;\n    for (let y = 0; y < patternHeight; y++) {\n      patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n    }\n    patterns.push(patternBitmap);\n  }\n  return patterns;\n}\n\nfunction decodeHalftoneRegion(\n  mmr,\n  patterns,\n  template,\n  regionWidth,\n  regionHeight,\n  defaultPixelValue,\n  enableSkip,\n  combinationOperator,\n  gridWidth,\n  gridHeight,\n  gridOffsetX,\n  gridOffsetY,\n  gridVectorX,\n  gridVectorY,\n  decodingContext\n) {\n  const skip = null;\n  if (enableSkip) {\n    throw new Jbig2Error(\"skip is not supported\");\n  }\n  if (combinationOperator !== 0) {\n    throw new Jbig2Error(\n      `operator \"${combinationOperator}\" is not supported in halftone region`\n    );\n  }\n\n  // Prepare bitmap.\n  const regionBitmap = [];\n  let i, j, row;\n  for (i = 0; i < regionHeight; i++) {\n    row = new Uint8Array(regionWidth);\n    if (defaultPixelValue) {\n      for (j = 0; j < regionWidth; j++) {\n        row[j] = defaultPixelValue;\n      }\n    }\n    regionBitmap.push(row);\n  }\n\n  const numberOfPatterns = patterns.length;\n  const pattern0 = patterns[0];\n  const patternWidth = pattern0[0].length,\n    patternHeight = pattern0.length;\n  const bitsPerValue = log2(numberOfPatterns);\n  const at = [];\n  if (!mmr) {\n    at.push({\n      x: template <= 1 ? 3 : 2,\n      y: -1,\n    });\n    if (template === 0) {\n      at.push(\n        {\n          x: -3,\n          y: -1,\n        },\n        {\n          x: 2,\n          y: -2,\n        },\n        {\n          x: -2,\n          y: -2,\n        }\n      );\n    }\n  }\n  // Annex C. Gray-scale Image Decoding Procedure.\n  const grayScaleBitPlanes = [];\n  let mmrInput, bitmap;\n  if (mmr) {\n    // MMR bit planes are in one continuous stream. Only EOFB codes indicate\n    // the end of each bitmap, so EOFBs must be decoded.\n    mmrInput = new Reader(\n      decodingContext.data,\n      decodingContext.start,\n      decodingContext.end\n    );\n  }\n  for (i = bitsPerValue - 1; i >= 0; i--) {\n    if (mmr) {\n      bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n    } else {\n      bitmap = decodeBitmap(\n        false,\n        gridWidth,\n        gridHeight,\n        template,\n        false,\n        skip,\n        at,\n        decodingContext\n      );\n    }\n    grayScaleBitPlanes[i] = bitmap;\n  }\n  // 6.6.5.2 Rendering the patterns.\n  let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n  for (mg = 0; mg < gridHeight; mg++) {\n    for (ng = 0; ng < gridWidth; ng++) {\n      bit = 0;\n      patternIndex = 0;\n      for (j = bitsPerValue - 1; j >= 0; j--) {\n        bit ^= grayScaleBitPlanes[j][mg][ng]; // Gray decoding\n        patternIndex |= bit << j;\n      }\n      patternBitmap = patterns[patternIndex];\n      x = (gridOffsetX + mg * gridVectorY + ng * gridVectorX) >> 8;\n      y = (gridOffsetY + mg * gridVectorX - ng * gridVectorY) >> 8;\n      // Draw patternBitmap at (x, y).\n      if (\n        x >= 0 &&\n        x + patternWidth <= regionWidth &&\n        y >= 0 &&\n        y + patternHeight <= regionHeight\n      ) {\n        for (i = 0; i < patternHeight; i++) {\n          regionRow = regionBitmap[y + i];\n          patternRow = patternBitmap[i];\n          for (j = 0; j < patternWidth; j++) {\n            regionRow[x + j] |= patternRow[j];\n          }\n        }\n      } else {\n        let regionX, regionY;\n        for (i = 0; i < patternHeight; i++) {\n          regionY = y + i;\n          if (regionY < 0 || regionY >= regionHeight) {\n            continue;\n          }\n          regionRow = regionBitmap[regionY];\n          patternRow = patternBitmap[i];\n          for (j = 0; j < patternWidth; j++) {\n            regionX = x + j;\n            if (regionX >= 0 && regionX < regionWidth) {\n              regionRow[regionX] |= patternRow[j];\n            }\n          }\n        }\n      }\n    }\n  }\n  return regionBitmap;\n}\n\nfunction readSegmentHeader(data, start) {\n  const segmentHeader = {};\n  segmentHeader.number = readUint32(data, start);\n  const flags = data[start + 4];\n  const segmentType = flags & 0x3f;\n  if (!SegmentTypes[segmentType]) {\n    throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n  }\n  segmentHeader.type = segmentType;\n  segmentHeader.typeName = SegmentTypes[segmentType];\n  segmentHeader.deferredNonRetain = !!(flags & 0x80);\n\n  const pageAssociationFieldSize = !!(flags & 0x40);\n  const referredFlags = data[start + 5];\n  let referredToCount = (referredFlags >> 5) & 7;\n  const retainBits = [referredFlags & 31];\n  let position = start + 6;\n  if (referredFlags === 7) {\n    referredToCount = readUint32(data, position - 1) & 0x1fffffff;\n    position += 3;\n    let bytes = (referredToCount + 7) >> 3;\n    retainBits[0] = data[position++];\n    while (--bytes > 0) {\n      retainBits.push(data[position++]);\n    }\n  } else if (referredFlags === 5 || referredFlags === 6) {\n    throw new Jbig2Error(\"invalid referred-to flags\");\n  }\n\n  segmentHeader.retainBits = retainBits;\n\n  let referredToSegmentNumberSize = 4;\n  if (segmentHeader.number <= 256) {\n    referredToSegmentNumberSize = 1;\n  } else if (segmentHeader.number <= 65536) {\n    referredToSegmentNumberSize = 2;\n  }\n  const referredTo = [];\n  let i, ii;\n  for (i = 0; i < referredToCount; i++) {\n    let number;\n    if (referredToSegmentNumberSize === 1) {\n      number = data[position];\n    } else if (referredToSegmentNumberSize === 2) {\n      number = readUint16(data, position);\n    } else {\n      number = readUint32(data, position);\n    }\n    referredTo.push(number);\n    position += referredToSegmentNumberSize;\n  }\n  segmentHeader.referredTo = referredTo;\n  if (!pageAssociationFieldSize) {\n    segmentHeader.pageAssociation = data[position++];\n  } else {\n    segmentHeader.pageAssociation = readUint32(data, position);\n    position += 4;\n  }\n  segmentHeader.length = readUint32(data, position);\n  position += 4;\n\n  if (segmentHeader.length === 0xffffffff) {\n    // 7.2.7 Segment data length, unknown segment length\n    if (segmentType === 38) {\n      // ImmediateGenericRegion\n      const genericRegionInfo = readRegionSegmentInformation(data, position);\n      const genericRegionSegmentFlags =\n        data[position + RegionSegmentInformationFieldLength];\n      const genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n      // searching for the segment end\n      const searchPatternLength = 6;\n      const searchPattern = new Uint8Array(searchPatternLength);\n      if (!genericRegionMmr) {\n        searchPattern[0] = 0xff;\n        searchPattern[1] = 0xac;\n      }\n      searchPattern[2] = (genericRegionInfo.height >>> 24) & 0xff;\n      searchPattern[3] = (genericRegionInfo.height >> 16) & 0xff;\n      searchPattern[4] = (genericRegionInfo.height >> 8) & 0xff;\n      searchPattern[5] = genericRegionInfo.height & 0xff;\n      for (i = position, ii = data.length; i < ii; i++) {\n        let j = 0;\n        while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n          j++;\n        }\n        if (j === searchPatternLength) {\n          segmentHeader.length = i + searchPatternLength;\n          break;\n        }\n      }\n      if (segmentHeader.length === 0xffffffff) {\n        throw new Jbig2Error(\"segment end was not found\");\n      }\n    } else {\n      throw new Jbig2Error(\"invalid unknown segment length\");\n    }\n  }\n  segmentHeader.headerEnd = position;\n  return segmentHeader;\n}\n\nfunction readSegments(header, data, start, end) {\n  const segments = [];\n  let position = start;\n  while (position < end) {\n    const segmentHeader = readSegmentHeader(data, position);\n    position = segmentHeader.headerEnd;\n    const segment = {\n      header: segmentHeader,\n      data,\n    };\n    if (!header.randomAccess) {\n      segment.start = position;\n      position += segmentHeader.length;\n      segment.end = position;\n    }\n    segments.push(segment);\n    if (segmentHeader.type === 51) {\n      break; // end of file is found\n    }\n  }\n  if (header.randomAccess) {\n    for (let i = 0, ii = segments.length; i < ii; i++) {\n      segments[i].start = position;\n      position += segments[i].header.length;\n      segments[i].end = position;\n    }\n  }\n  return segments;\n}\n\n// 7.4.1 Region segment information field\nfunction readRegionSegmentInformation(data, start) {\n  return {\n    width: readUint32(data, start),\n    height: readUint32(data, start + 4),\n    x: readUint32(data, start + 8),\n    y: readUint32(data, start + 12),\n    combinationOperator: data[start + 16] & 7,\n  };\n}\nconst RegionSegmentInformationFieldLength = 17;\n\nfunction processSegment(segment, visitor) {\n  const header = segment.header;\n\n  const data = segment.data,\n    end = segment.end;\n  let position = segment.start;\n  let args, at, i, atLength;\n  switch (header.type) {\n    case 0: // SymbolDictionary\n      // 7.4.2 Symbol dictionary segment syntax\n      const dictionary = {};\n      const dictionaryFlags = readUint16(data, position); // 7.4.2.1.1\n      dictionary.huffman = !!(dictionaryFlags & 1);\n      dictionary.refinement = !!(dictionaryFlags & 2);\n      dictionary.huffmanDHSelector = (dictionaryFlags >> 2) & 3;\n      dictionary.huffmanDWSelector = (dictionaryFlags >> 4) & 3;\n      dictionary.bitmapSizeSelector = (dictionaryFlags >> 6) & 1;\n      dictionary.aggregationInstancesSelector = (dictionaryFlags >> 7) & 1;\n      dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n      dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n      dictionary.template = (dictionaryFlags >> 10) & 3;\n      dictionary.refinementTemplate = (dictionaryFlags >> 12) & 1;\n      position += 2;\n      if (!dictionary.huffman) {\n        atLength = dictionary.template === 0 ? 4 : 1;\n        at = [];\n        for (i = 0; i < atLength; i++) {\n          at.push({\n            x: readInt8(data, position),\n            y: readInt8(data, position + 1),\n          });\n          position += 2;\n        }\n        dictionary.at = at;\n      }\n      if (dictionary.refinement && !dictionary.refinementTemplate) {\n        at = [];\n        for (i = 0; i < 2; i++) {\n          at.push({\n            x: readInt8(data, position),\n            y: readInt8(data, position + 1),\n          });\n          position += 2;\n        }\n        dictionary.refinementAt = at;\n      }\n      dictionary.numberOfExportedSymbols = readUint32(data, position);\n      position += 4;\n      dictionary.numberOfNewSymbols = readUint32(data, position);\n      position += 4;\n      args = [\n        dictionary,\n        header.number,\n        header.referredTo,\n        data,\n        position,\n        end,\n      ];\n      break;\n    case 6: // ImmediateTextRegion\n    case 7: // ImmediateLosslessTextRegion\n      const textRegion = {};\n      textRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const textRegionSegmentFlags = readUint16(data, position);\n      position += 2;\n      textRegion.huffman = !!(textRegionSegmentFlags & 1);\n      textRegion.refinement = !!(textRegionSegmentFlags & 2);\n      textRegion.logStripSize = (textRegionSegmentFlags >> 2) & 3;\n      textRegion.stripSize = 1 << textRegion.logStripSize;\n      textRegion.referenceCorner = (textRegionSegmentFlags >> 4) & 3;\n      textRegion.transposed = !!(textRegionSegmentFlags & 64);\n      textRegion.combinationOperator = (textRegionSegmentFlags >> 7) & 3;\n      textRegion.defaultPixelValue = (textRegionSegmentFlags >> 9) & 1;\n      textRegion.dsOffset = (textRegionSegmentFlags << 17) >> 27;\n      textRegion.refinementTemplate = (textRegionSegmentFlags >> 15) & 1;\n      if (textRegion.huffman) {\n        const textRegionHuffmanFlags = readUint16(data, position);\n        position += 2;\n        textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n        textRegion.huffmanDS = (textRegionHuffmanFlags >> 2) & 3;\n        textRegion.huffmanDT = (textRegionHuffmanFlags >> 4) & 3;\n        textRegion.huffmanRefinementDW = (textRegionHuffmanFlags >> 6) & 3;\n        textRegion.huffmanRefinementDH = (textRegionHuffmanFlags >> 8) & 3;\n        textRegion.huffmanRefinementDX = (textRegionHuffmanFlags >> 10) & 3;\n        textRegion.huffmanRefinementDY = (textRegionHuffmanFlags >> 12) & 3;\n        textRegion.huffmanRefinementSizeSelector = !!(\n          textRegionHuffmanFlags & 0x4000\n        );\n      }\n      if (textRegion.refinement && !textRegion.refinementTemplate) {\n        at = [];\n        for (i = 0; i < 2; i++) {\n          at.push({\n            x: readInt8(data, position),\n            y: readInt8(data, position + 1),\n          });\n          position += 2;\n        }\n        textRegion.refinementAt = at;\n      }\n      textRegion.numberOfSymbolInstances = readUint32(data, position);\n      position += 4;\n      args = [textRegion, header.referredTo, data, position, end];\n      break;\n    case 16: // PatternDictionary\n      // 7.4.4. Pattern dictionary segment syntax\n      const patternDictionary = {};\n      const patternDictionaryFlags = data[position++];\n      patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n      patternDictionary.template = (patternDictionaryFlags >> 1) & 3;\n      patternDictionary.patternWidth = data[position++];\n      patternDictionary.patternHeight = data[position++];\n      patternDictionary.maxPatternIndex = readUint32(data, position);\n      position += 4;\n      args = [patternDictionary, header.number, data, position, end];\n      break;\n    case 22: // ImmediateHalftoneRegion\n    case 23: // ImmediateLosslessHalftoneRegion\n      // 7.4.5 Halftone region segment syntax\n      const halftoneRegion = {};\n      halftoneRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const halftoneRegionFlags = data[position++];\n      halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n      halftoneRegion.template = (halftoneRegionFlags >> 1) & 3;\n      halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n      halftoneRegion.combinationOperator = (halftoneRegionFlags >> 4) & 7;\n      halftoneRegion.defaultPixelValue = (halftoneRegionFlags >> 7) & 1;\n      halftoneRegion.gridWidth = readUint32(data, position);\n      position += 4;\n      halftoneRegion.gridHeight = readUint32(data, position);\n      position += 4;\n      halftoneRegion.gridOffsetX = readUint32(data, position) & 0xffffffff;\n      position += 4;\n      halftoneRegion.gridOffsetY = readUint32(data, position) & 0xffffffff;\n      position += 4;\n      halftoneRegion.gridVectorX = readUint16(data, position);\n      position += 2;\n      halftoneRegion.gridVectorY = readUint16(data, position);\n      position += 2;\n      args = [halftoneRegion, header.referredTo, data, position, end];\n      break;\n    case 38: // ImmediateGenericRegion\n    case 39: // ImmediateLosslessGenericRegion\n      const genericRegion = {};\n      genericRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const genericRegionSegmentFlags = data[position++];\n      genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n      genericRegion.template = (genericRegionSegmentFlags >> 1) & 3;\n      genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n      if (!genericRegion.mmr) {\n        atLength = genericRegion.template === 0 ? 4 : 1;\n        at = [];\n        for (i = 0; i < atLength; i++) {\n          at.push({\n            x: readInt8(data, position),\n            y: readInt8(data, position + 1),\n          });\n          position += 2;\n        }\n        genericRegion.at = at;\n      }\n      args = [genericRegion, data, position, end];\n      break;\n    case 48: // PageInformation\n      const pageInfo = {\n        width: readUint32(data, position),\n        height: readUint32(data, position + 4),\n        resolutionX: readUint32(data, position + 8),\n        resolutionY: readUint32(data, position + 12),\n      };\n      if (pageInfo.height === 0xffffffff) {\n        delete pageInfo.height;\n      }\n      const pageSegmentFlags = data[position + 16];\n      readUint16(data, position + 17); // pageStripingInformation\n      pageInfo.lossless = !!(pageSegmentFlags & 1);\n      pageInfo.refinement = !!(pageSegmentFlags & 2);\n      pageInfo.defaultPixelValue = (pageSegmentFlags >> 2) & 1;\n      pageInfo.combinationOperator = (pageSegmentFlags >> 3) & 3;\n      pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n      pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n      args = [pageInfo];\n      break;\n    case 49: // EndOfPage\n      break;\n    case 50: // EndOfStripe\n      break;\n    case 51: // EndOfFile\n      break;\n    case 53: // Tables\n      args = [header.number, data, position, end];\n      break;\n    case 62: // 7.4.15 defines 2 extension types which\n      // are comments and can be ignored.\n      break;\n    default:\n      throw new Jbig2Error(\n        `segment type ${header.typeName}(${header.type}) is not implemented`\n      );\n  }\n  const callbackName = \"on\" + header.typeName;\n  if (callbackName in visitor) {\n    // eslint-disable-next-line prefer-spread\n    visitor[callbackName].apply(visitor, args);\n  }\n}\n\nfunction processSegments(segments, visitor) {\n  for (let i = 0, ii = segments.length; i < ii; i++) {\n    processSegment(segments[i], visitor);\n  }\n}\n\nfunction parseJbig2Chunks(chunks) {\n  const visitor = new SimpleSegmentVisitor();\n  for (let i = 0, ii = chunks.length; i < ii; i++) {\n    const chunk = chunks[i];\n    const segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n    processSegments(segments, visitor);\n  }\n  return visitor.buffer;\n}\n\nfunction parseJbig2(data) {\n  if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"IMAGE_DECODERS\")) {\n    throw new Error(\"Not implemented: parseJbig2\");\n  }\n  const end = data.length;\n  let position = 0;\n\n  if (\n    data[position] !== 0x97 ||\n    data[position + 1] !== 0x4a ||\n    data[position + 2] !== 0x42 ||\n    data[position + 3] !== 0x32 ||\n    data[position + 4] !== 0x0d ||\n    data[position + 5] !== 0x0a ||\n    data[position + 6] !== 0x1a ||\n    data[position + 7] !== 0x0a\n  ) {\n    throw new Jbig2Error(\"parseJbig2 - invalid header.\");\n  }\n\n  const header = Object.create(null);\n  position += 8;\n  const flags = data[position++];\n  header.randomAccess = !(flags & 1);\n  if (!(flags & 2)) {\n    header.numberOfPages = readUint32(data, position);\n    position += 4;\n  }\n\n  const segments = readSegments(header, data, position, end);\n  const visitor = new SimpleSegmentVisitor();\n  processSegments(segments, visitor);\n\n  const { width, height } = visitor.currentPageInfo;\n  const bitPacked = visitor.buffer;\n  const imgData = new Uint8ClampedArray(width * height);\n  let q = 0,\n    k = 0;\n  for (let i = 0; i < height; i++) {\n    let mask = 0,\n      buffer;\n    for (let j = 0; j < width; j++) {\n      if (!mask) {\n        mask = 128;\n        buffer = bitPacked[k++];\n      }\n      imgData[q++] = buffer & mask ? 0 : 255;\n      mask >>= 1;\n    }\n  }\n\n  return { imgData, width, height };\n}\n\nclass SimpleSegmentVisitor {\n  onPageInformation(info) {\n    this.currentPageInfo = info;\n    const rowSize = (info.width + 7) >> 3;\n    const buffer = new Uint8ClampedArray(rowSize * info.height);\n    // The contents of ArrayBuffers are initialized to 0.\n    // Fill the buffer with 0xFF only if info.defaultPixelValue is set\n    if (info.defaultPixelValue) {\n      buffer.fill(0xff);\n    }\n    this.buffer = buffer;\n  }\n\n  drawBitmap(regionInfo, bitmap) {\n    const pageInfo = this.currentPageInfo;\n    const width = regionInfo.width,\n      height = regionInfo.height;\n    const rowSize = (pageInfo.width + 7) >> 3;\n    const combinationOperator = pageInfo.combinationOperatorOverride\n      ? regionInfo.combinationOperator\n      : pageInfo.combinationOperator;\n    const buffer = this.buffer;\n    const mask0 = 128 >> (regionInfo.x & 7);\n    let offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n    let i, j, mask, offset;\n    switch (combinationOperator) {\n      case 0: // OR\n        for (i = 0; i < height; i++) {\n          mask = mask0;\n          offset = offset0;\n          for (j = 0; j < width; j++) {\n            if (bitmap[i][j]) {\n              buffer[offset] |= mask;\n            }\n            mask >>= 1;\n            if (!mask) {\n              mask = 128;\n              offset++;\n            }\n          }\n          offset0 += rowSize;\n        }\n        break;\n      case 2: // XOR\n        for (i = 0; i < height; i++) {\n          mask = mask0;\n          offset = offset0;\n          for (j = 0; j < width; j++) {\n            if (bitmap[i][j]) {\n              buffer[offset] ^= mask;\n            }\n            mask >>= 1;\n            if (!mask) {\n              mask = 128;\n              offset++;\n            }\n          }\n          offset0 += rowSize;\n        }\n        break;\n      default:\n        throw new Jbig2Error(\n          `operator ${combinationOperator} is not supported`\n        );\n    }\n  }\n\n  onImmediateGenericRegion(region, data, start, end) {\n    const regionInfo = region.info;\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeBitmap(\n      region.mmr,\n      regionInfo.width,\n      regionInfo.height,\n      region.template,\n      region.prediction,\n      null,\n      region.at,\n      decodingContext\n    );\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessGenericRegion() {\n    this.onImmediateGenericRegion(...arguments);\n  }\n\n  onSymbolDictionary(\n    dictionary,\n    currentSegment,\n    referredSegments,\n    data,\n    start,\n    end\n  ) {\n    let huffmanTables, huffmanInput;\n    if (dictionary.huffman) {\n      huffmanTables = getSymbolDictionaryHuffmanTables(\n        dictionary,\n        referredSegments,\n        this.customTables\n      );\n      huffmanInput = new Reader(data, start, end);\n    }\n\n    // Combines exported symbols from all referred segments\n    let symbols = this.symbols;\n    if (!symbols) {\n      this.symbols = symbols = {};\n    }\n\n    const inputSymbols = [];\n    for (const referredSegment of referredSegments) {\n      const referredSymbols = symbols[referredSegment];\n      // referredSymbols is undefined when we have a reference to a Tables\n      // segment instead of a SymbolDictionary.\n      if (referredSymbols) {\n        inputSymbols.push(...referredSymbols);\n      }\n    }\n\n    const decodingContext = new DecodingContext(data, start, end);\n    symbols[currentSegment] = decodeSymbolDictionary(\n      dictionary.huffman,\n      dictionary.refinement,\n      inputSymbols,\n      dictionary.numberOfNewSymbols,\n      dictionary.numberOfExportedSymbols,\n      huffmanTables,\n      dictionary.template,\n      dictionary.at,\n      dictionary.refinementTemplate,\n      dictionary.refinementAt,\n      decodingContext,\n      huffmanInput\n    );\n  }\n\n  onImmediateTextRegion(region, referredSegments, data, start, end) {\n    const regionInfo = region.info;\n    let huffmanTables, huffmanInput;\n\n    // Combines exported symbols from all referred segments\n    const symbols = this.symbols;\n    const inputSymbols = [];\n    for (const referredSegment of referredSegments) {\n      const referredSymbols = symbols[referredSegment];\n      // referredSymbols is undefined when we have a reference to a Tables\n      // segment instead of a SymbolDictionary.\n      if (referredSymbols) {\n        inputSymbols.push(...referredSymbols);\n      }\n    }\n    const symbolCodeLength = log2(inputSymbols.length);\n    if (region.huffman) {\n      huffmanInput = new Reader(data, start, end);\n      huffmanTables = getTextRegionHuffmanTables(\n        region,\n        referredSegments,\n        this.customTables,\n        inputSymbols.length,\n        huffmanInput\n      );\n    }\n\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeTextRegion(\n      region.huffman,\n      region.refinement,\n      regionInfo.width,\n      regionInfo.height,\n      region.defaultPixelValue,\n      region.numberOfSymbolInstances,\n      region.stripSize,\n      inputSymbols,\n      symbolCodeLength,\n      region.transposed,\n      region.dsOffset,\n      region.referenceCorner,\n      region.combinationOperator,\n      huffmanTables,\n      region.refinementTemplate,\n      region.refinementAt,\n      decodingContext,\n      region.logStripSize,\n      huffmanInput\n    );\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessTextRegion() {\n    this.onImmediateTextRegion(...arguments);\n  }\n\n  onPatternDictionary(dictionary, currentSegment, data, start, end) {\n    let patterns = this.patterns;\n    if (!patterns) {\n      this.patterns = patterns = {};\n    }\n    const decodingContext = new DecodingContext(data, start, end);\n    patterns[currentSegment] = decodePatternDictionary(\n      dictionary.mmr,\n      dictionary.patternWidth,\n      dictionary.patternHeight,\n      dictionary.maxPatternIndex,\n      dictionary.template,\n      decodingContext\n    );\n  }\n\n  onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n    // HalftoneRegion refers to exactly one PatternDictionary.\n    const patterns = this.patterns[referredSegments[0]];\n    const regionInfo = region.info;\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeHalftoneRegion(\n      region.mmr,\n      patterns,\n      region.template,\n      regionInfo.width,\n      regionInfo.height,\n      region.defaultPixelValue,\n      region.enableSkip,\n      region.combinationOperator,\n      region.gridWidth,\n      region.gridHeight,\n      region.gridOffsetX,\n      region.gridOffsetY,\n      region.gridVectorX,\n      region.gridVectorY,\n      decodingContext\n    );\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessHalftoneRegion() {\n    this.onImmediateHalftoneRegion(...arguments);\n  }\n\n  onTables(currentSegment, data, start, end) {\n    let customTables = this.customTables;\n    if (!customTables) {\n      this.customTables = customTables = {};\n    }\n    customTables[currentSegment] = decodeTablesSegment(data, start, end);\n  }\n}\n\nclass HuffmanLine {\n  constructor(lineData) {\n    if (lineData.length === 2) {\n      // OOB line.\n      this.isOOB = true;\n      this.rangeLow = 0;\n      this.prefixLength = lineData[0];\n      this.rangeLength = 0;\n      this.prefixCode = lineData[1];\n      this.isLowerRange = false;\n    } else {\n      // Normal, upper range or lower range line.\n      // Upper range lines are processed like normal lines.\n      this.isOOB = false;\n      this.rangeLow = lineData[0];\n      this.prefixLength = lineData[1];\n      this.rangeLength = lineData[2];\n      this.prefixCode = lineData[3];\n      this.isLowerRange = lineData[4] === \"lower\";\n    }\n  }\n}\n\nclass HuffmanTreeNode {\n  constructor(line) {\n    this.children = [];\n    if (line) {\n      // Leaf node\n      this.isLeaf = true;\n      this.rangeLength = line.rangeLength;\n      this.rangeLow = line.rangeLow;\n      this.isLowerRange = line.isLowerRange;\n      this.isOOB = line.isOOB;\n    } else {\n      // Intermediate or root node\n      this.isLeaf = false;\n    }\n  }\n\n  buildTree(line, shift) {\n    const bit = (line.prefixCode >> shift) & 1;\n    if (shift <= 0) {\n      // Create a leaf node.\n      this.children[bit] = new HuffmanTreeNode(line);\n    } else {\n      // Create an intermediate node and continue recursively.\n      let node = this.children[bit];\n      if (!node) {\n        this.children[bit] = node = new HuffmanTreeNode(null);\n      }\n      node.buildTree(line, shift - 1);\n    }\n  }\n\n  decodeNode(reader) {\n    if (this.isLeaf) {\n      if (this.isOOB) {\n        return null;\n      }\n      const htOffset = reader.readBits(this.rangeLength);\n      return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n    }\n    const node = this.children[reader.readBit()];\n    if (!node) {\n      throw new Jbig2Error(\"invalid Huffman data\");\n    }\n    return node.decodeNode(reader);\n  }\n}\n\nclass HuffmanTable {\n  constructor(lines, prefixCodesDone) {\n    if (!prefixCodesDone) {\n      this.assignPrefixCodes(lines);\n    }\n    // Create Huffman tree.\n    this.rootNode = new HuffmanTreeNode(null);\n    for (let i = 0, ii = lines.length; i < ii; i++) {\n      const line = lines[i];\n      if (line.prefixLength > 0) {\n        this.rootNode.buildTree(line, line.prefixLength - 1);\n      }\n    }\n  }\n\n  decode(reader) {\n    return this.rootNode.decodeNode(reader);\n  }\n\n  assignPrefixCodes(lines) {\n    // Annex B.3 Assigning the prefix codes.\n    const linesLength = lines.length;\n    let prefixLengthMax = 0;\n    for (let i = 0; i < linesLength; i++) {\n      prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n    }\n\n    const histogram = new Uint32Array(prefixLengthMax + 1);\n    for (let i = 0; i < linesLength; i++) {\n      histogram[lines[i].prefixLength]++;\n    }\n    let currentLength = 1,\n      firstCode = 0,\n      currentCode,\n      currentTemp,\n      line;\n    histogram[0] = 0;\n\n    while (currentLength <= prefixLengthMax) {\n      firstCode = (firstCode + histogram[currentLength - 1]) << 1;\n      currentCode = firstCode;\n      currentTemp = 0;\n      while (currentTemp < linesLength) {\n        line = lines[currentTemp];\n        if (line.prefixLength === currentLength) {\n          line.prefixCode = currentCode;\n          currentCode++;\n        }\n        currentTemp++;\n      }\n      currentLength++;\n    }\n  }\n}\n\nfunction decodeTablesSegment(data, start, end) {\n  // Decodes a Tables segment, i.e., a custom Huffman table.\n  // Annex B.2 Code table structure.\n  const flags = data[start];\n  const lowestValue = readUint32(data, start + 1) & 0xffffffff;\n  const highestValue = readUint32(data, start + 5) & 0xffffffff;\n  const reader = new Reader(data, start + 9, end);\n\n  const prefixSizeBits = ((flags >> 1) & 7) + 1;\n  const rangeSizeBits = ((flags >> 4) & 7) + 1;\n  const lines = [];\n  let prefixLength,\n    rangeLength,\n    currentRangeLow = lowestValue;\n\n  // Normal table lines\n  do {\n    prefixLength = reader.readBits(prefixSizeBits);\n    rangeLength = reader.readBits(rangeSizeBits);\n    lines.push(\n      new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0])\n    );\n    currentRangeLow += 1 << rangeLength;\n  } while (currentRangeLow < highestValue);\n\n  // Lower range table line\n  prefixLength = reader.readBits(prefixSizeBits);\n  lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n\n  // Upper range table line\n  prefixLength = reader.readBits(prefixSizeBits);\n  lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n  if (flags & 1) {\n    // Out-of-band table line\n    prefixLength = reader.readBits(prefixSizeBits);\n    lines.push(new HuffmanLine([prefixLength, 0]));\n  }\n\n  return new HuffmanTable(lines, false);\n}\n\nconst standardTablesCache = {};\n\nfunction getStandardTable(number) {\n  // Annex B.5 Standard Huffman tables.\n  let table = standardTablesCache[number];\n  if (table) {\n    return table;\n  }\n  let lines;\n  switch (number) {\n    case 1:\n      lines = [\n        [0, 1, 4, 0x0],\n        [16, 2, 8, 0x2],\n        [272, 3, 16, 0x6],\n        [65808, 3, 32, 0x7], // upper\n      ];\n      break;\n    case 2:\n      lines = [\n        [0, 1, 0, 0x0],\n        [1, 2, 0, 0x2],\n        [2, 3, 0, 0x6],\n        [3, 4, 3, 0xe],\n        [11, 5, 6, 0x1e],\n        [75, 6, 32, 0x3e], // upper\n        [6, 0x3f], // OOB\n      ];\n      break;\n    case 3:\n      lines = [\n        [-256, 8, 8, 0xfe],\n        [0, 1, 0, 0x0],\n        [1, 2, 0, 0x2],\n        [2, 3, 0, 0x6],\n        [3, 4, 3, 0xe],\n        [11, 5, 6, 0x1e],\n        [-257, 8, 32, 0xff, \"lower\"],\n        [75, 7, 32, 0x7e], // upper\n        [6, 0x3e], // OOB\n      ];\n      break;\n    case 4:\n      lines = [\n        [1, 1, 0, 0x0],\n        [2, 2, 0, 0x2],\n        [3, 3, 0, 0x6],\n        [4, 4, 3, 0xe],\n        [12, 5, 6, 0x1e],\n        [76, 5, 32, 0x1f], // upper\n      ];\n      break;\n    case 5:\n      lines = [\n        [-255, 7, 8, 0x7e],\n        [1, 1, 0, 0x0],\n        [2, 2, 0, 0x2],\n        [3, 3, 0, 0x6],\n        [4, 4, 3, 0xe],\n        [12, 5, 6, 0x1e],\n        [-256, 7, 32, 0x7f, \"lower\"],\n        [76, 6, 32, 0x3e], // upper\n      ];\n      break;\n    case 6:\n      lines = [\n        [-2048, 5, 10, 0x1c],\n        [-1024, 4, 9, 0x8],\n        [-512, 4, 8, 0x9],\n        [-256, 4, 7, 0xa],\n        [-128, 5, 6, 0x1d],\n        [-64, 5, 5, 0x1e],\n        [-32, 4, 5, 0xb],\n        [0, 2, 7, 0x0],\n        [128, 3, 7, 0x2],\n        [256, 3, 8, 0x3],\n        [512, 4, 9, 0xc],\n        [1024, 4, 10, 0xd],\n        [-2049, 6, 32, 0x3e, \"lower\"],\n        [2048, 6, 32, 0x3f], // upper\n      ];\n      break;\n    case 7:\n      lines = [\n        [-1024, 4, 9, 0x8],\n        [-512, 3, 8, 0x0],\n        [-256, 4, 7, 0x9],\n        [-128, 5, 6, 0x1a],\n        [-64, 5, 5, 0x1b],\n        [-32, 4, 5, 0xa],\n        [0, 4, 5, 0xb],\n        [32, 5, 5, 0x1c],\n        [64, 5, 6, 0x1d],\n        [128, 4, 7, 0xc],\n        [256, 3, 8, 0x1],\n        [512, 3, 9, 0x2],\n        [1024, 3, 10, 0x3],\n        [-1025, 5, 32, 0x1e, \"lower\"],\n        [2048, 5, 32, 0x1f], // upper\n      ];\n      break;\n    case 8:\n      lines = [\n        [-15, 8, 3, 0xfc],\n        [-7, 9, 1, 0x1fc],\n        [-5, 8, 1, 0xfd],\n        [-3, 9, 0, 0x1fd],\n        [-2, 7, 0, 0x7c],\n        [-1, 4, 0, 0xa],\n        [0, 2, 1, 0x0],\n        [2, 5, 0, 0x1a],\n        [3, 6, 0, 0x3a],\n        [4, 3, 4, 0x4],\n        [20, 6, 1, 0x3b],\n        [22, 4, 4, 0xb],\n        [38, 4, 5, 0xc],\n        [70, 5, 6, 0x1b],\n        [134, 5, 7, 0x1c],\n        [262, 6, 7, 0x3c],\n        [390, 7, 8, 0x7d],\n        [646, 6, 10, 0x3d],\n        [-16, 9, 32, 0x1fe, \"lower\"],\n        [1670, 9, 32, 0x1ff], // upper\n        [2, 0x1], // OOB\n      ];\n      break;\n    case 9:\n      lines = [\n        [-31, 8, 4, 0xfc],\n        [-15, 9, 2, 0x1fc],\n        [-11, 8, 2, 0xfd],\n        [-7, 9, 1, 0x1fd],\n        [-5, 7, 1, 0x7c],\n        [-3, 4, 1, 0xa],\n        [-1, 3, 1, 0x2],\n        [1, 3, 1, 0x3],\n        [3, 5, 1, 0x1a],\n        [5, 6, 1, 0x3a],\n        [7, 3, 5, 0x4],\n        [39, 6, 2, 0x3b],\n        [43, 4, 5, 0xb],\n        [75, 4, 6, 0xc],\n        [139, 5, 7, 0x1b],\n        [267, 5, 8, 0x1c],\n        [523, 6, 8, 0x3c],\n        [779, 7, 9, 0x7d],\n        [1291, 6, 11, 0x3d],\n        [-32, 9, 32, 0x1fe, \"lower\"],\n        [3339, 9, 32, 0x1ff], // upper\n        [2, 0x0], // OOB\n      ];\n      break;\n    case 10:\n      lines = [\n        [-21, 7, 4, 0x7a],\n        [-5, 8, 0, 0xfc],\n        [-4, 7, 0, 0x7b],\n        [-3, 5, 0, 0x18],\n        [-2, 2, 2, 0x0],\n        [2, 5, 0, 0x19],\n        [3, 6, 0, 0x36],\n        [4, 7, 0, 0x7c],\n        [5, 8, 0, 0xfd],\n        [6, 2, 6, 0x1],\n        [70, 5, 5, 0x1a],\n        [102, 6, 5, 0x37],\n        [134, 6, 6, 0x38],\n        [198, 6, 7, 0x39],\n        [326, 6, 8, 0x3a],\n        [582, 6, 9, 0x3b],\n        [1094, 6, 10, 0x3c],\n        [2118, 7, 11, 0x7d],\n        [-22, 8, 32, 0xfe, \"lower\"],\n        [4166, 8, 32, 0xff], // upper\n        [2, 0x2], // OOB\n      ];\n      break;\n    case 11:\n      lines = [\n        [1, 1, 0, 0x0],\n        [2, 2, 1, 0x2],\n        [4, 4, 0, 0xc],\n        [5, 4, 1, 0xd],\n        [7, 5, 1, 0x1c],\n        [9, 5, 2, 0x1d],\n        [13, 6, 2, 0x3c],\n        [17, 7, 2, 0x7a],\n        [21, 7, 3, 0x7b],\n        [29, 7, 4, 0x7c],\n        [45, 7, 5, 0x7d],\n        [77, 7, 6, 0x7e],\n        [141, 7, 32, 0x7f], // upper\n      ];\n      break;\n    case 12:\n      lines = [\n        [1, 1, 0, 0x0],\n        [2, 2, 0, 0x2],\n        [3, 3, 1, 0x6],\n        [5, 5, 0, 0x1c],\n        [6, 5, 1, 0x1d],\n        [8, 6, 1, 0x3c],\n        [10, 7, 0, 0x7a],\n        [11, 7, 1, 0x7b],\n        [13, 7, 2, 0x7c],\n        [17, 7, 3, 0x7d],\n        [25, 7, 4, 0x7e],\n        [41, 8, 5, 0xfe],\n        [73, 8, 32, 0xff], // upper\n      ];\n      break;\n    case 13:\n      lines = [\n        [1, 1, 0, 0x0],\n        [2, 3, 0, 0x4],\n        [3, 4, 0, 0xc],\n        [4, 5, 0, 0x1c],\n        [5, 4, 1, 0xd],\n        [7, 3, 3, 0x5],\n        [15, 6, 1, 0x3a],\n        [17, 6, 2, 0x3b],\n        [21, 6, 3, 0x3c],\n        [29, 6, 4, 0x3d],\n        [45, 6, 5, 0x3e],\n        [77, 7, 6, 0x7e],\n        [141, 7, 32, 0x7f], // upper\n      ];\n      break;\n    case 14:\n      lines = [\n        [-2, 3, 0, 0x4],\n        [-1, 3, 0, 0x5],\n        [0, 1, 0, 0x0],\n        [1, 3, 0, 0x6],\n        [2, 3, 0, 0x7],\n      ];\n      break;\n    case 15:\n      lines = [\n        [-24, 7, 4, 0x7c],\n        [-8, 6, 2, 0x3c],\n        [-4, 5, 1, 0x1c],\n        [-2, 4, 0, 0xc],\n        [-1, 3, 0, 0x4],\n        [0, 1, 0, 0x0],\n        [1, 3, 0, 0x5],\n        [2, 4, 0, 0xd],\n        [3, 5, 1, 0x1d],\n        [5, 6, 2, 0x3d],\n        [9, 7, 4, 0x7d],\n        [-25, 7, 32, 0x7e, \"lower\"],\n        [25, 7, 32, 0x7f], // upper\n      ];\n      break;\n    default:\n      throw new Jbig2Error(`standard table B.${number} does not exist`);\n  }\n\n  for (let i = 0, ii = lines.length; i < ii; i++) {\n    lines[i] = new HuffmanLine(lines[i]);\n  }\n  table = new HuffmanTable(lines, true);\n  standardTablesCache[number] = table;\n  return table;\n}\n\nclass Reader {\n  constructor(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n    this.position = start;\n    this.shift = -1;\n    this.currentByte = 0;\n  }\n\n  readBit() {\n    if (this.shift < 0) {\n      if (this.position >= this.end) {\n        throw new Jbig2Error(\"end of data while reading bit\");\n      }\n      this.currentByte = this.data[this.position++];\n      this.shift = 7;\n    }\n    const bit = (this.currentByte >> this.shift) & 1;\n    this.shift--;\n    return bit;\n  }\n\n  readBits(numBits) {\n    let result = 0,\n      i;\n    for (i = numBits - 1; i >= 0; i--) {\n      result |= this.readBit() << i;\n    }\n    return result;\n  }\n\n  byteAlign() {\n    this.shift = -1;\n  }\n\n  next() {\n    if (this.position >= this.end) {\n      return -1;\n    }\n    return this.data[this.position++];\n  }\n}\n\nfunction getCustomHuffmanTable(index, referredTo, customTables) {\n  // Returns a Tables segment that has been earlier decoded.\n  // See 7.4.2.1.6 (symbol dictionary) or 7.4.3.1.6 (text region).\n  let currentIndex = 0;\n  for (let i = 0, ii = referredTo.length; i < ii; i++) {\n    const table = customTables[referredTo[i]];\n    if (table) {\n      if (index === currentIndex) {\n        return table;\n      }\n      currentIndex++;\n    }\n  }\n  throw new Jbig2Error(\"can't find custom Huffman table\");\n}\n\nfunction getTextRegionHuffmanTables(\n  textRegion,\n  referredTo,\n  customTables,\n  numberOfSymbols,\n  reader\n) {\n  // 7.4.3.1.7 Symbol ID Huffman table decoding\n\n  // Read code lengths for RUNCODEs 0...34.\n  const codes = [];\n  for (let i = 0; i <= 34; i++) {\n    const codeLength = reader.readBits(4);\n    codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n  }\n  // Assign Huffman codes for RUNCODEs.\n  const runCodesTable = new HuffmanTable(codes, false);\n\n  // Read a Huffman code using the assignment above.\n  // Interpret the RUNCODE codes and the additional bits (if any).\n  codes.length = 0;\n  for (let i = 0; i < numberOfSymbols; ) {\n    const codeLength = runCodesTable.decode(reader);\n    if (codeLength >= 32) {\n      let repeatedLength, numberOfRepeats, j;\n      switch (codeLength) {\n        case 32:\n          if (i === 0) {\n            throw new Jbig2Error(\"no previous value in symbol ID table\");\n          }\n          numberOfRepeats = reader.readBits(2) + 3;\n          repeatedLength = codes[i - 1].prefixLength;\n          break;\n        case 33:\n          numberOfRepeats = reader.readBits(3) + 3;\n          repeatedLength = 0;\n          break;\n        case 34:\n          numberOfRepeats = reader.readBits(7) + 11;\n          repeatedLength = 0;\n          break;\n        default:\n          throw new Jbig2Error(\"invalid code length in symbol ID table\");\n      }\n      for (j = 0; j < numberOfRepeats; j++) {\n        codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n        i++;\n      }\n    } else {\n      codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n      i++;\n    }\n  }\n  reader.byteAlign();\n  const symbolIDTable = new HuffmanTable(codes, false);\n\n  // 7.4.3.1.6 Text region segment Huffman table selection\n\n  let customIndex = 0,\n    tableFirstS,\n    tableDeltaS,\n    tableDeltaT;\n\n  switch (textRegion.huffmanFS) {\n    case 0:\n    case 1:\n      tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n      break;\n    case 3:\n      tableFirstS = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman FS selector\");\n  }\n\n  switch (textRegion.huffmanDS) {\n    case 0:\n    case 1:\n    case 2:\n      tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n      break;\n    case 3:\n      tableDeltaS = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman DS selector\");\n  }\n\n  switch (textRegion.huffmanDT) {\n    case 0:\n    case 1:\n    case 2:\n      tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n      break;\n    case 3:\n      tableDeltaT = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman DT selector\");\n  }\n\n  if (textRegion.refinement) {\n    // Load tables RDW, RDH, RDX and RDY.\n    throw new Jbig2Error(\"refinement with Huffman is not supported\");\n  }\n\n  return {\n    symbolIDTable,\n    tableFirstS,\n    tableDeltaS,\n    tableDeltaT,\n  };\n}\n\nfunction getSymbolDictionaryHuffmanTables(\n  dictionary,\n  referredTo,\n  customTables\n) {\n  // 7.4.2.1.6 Symbol dictionary segment Huffman table selection\n\n  let customIndex = 0,\n    tableDeltaHeight,\n    tableDeltaWidth;\n  switch (dictionary.huffmanDHSelector) {\n    case 0:\n    case 1:\n      tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n      break;\n    case 3:\n      tableDeltaHeight = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman DH selector\");\n  }\n\n  switch (dictionary.huffmanDWSelector) {\n    case 0:\n    case 1:\n      tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n      break;\n    case 3:\n      tableDeltaWidth = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman DW selector\");\n  }\n\n  let tableBitmapSize, tableAggregateInstances;\n  if (dictionary.bitmapSizeSelector) {\n    tableBitmapSize = getCustomHuffmanTable(\n      customIndex,\n      referredTo,\n      customTables\n    );\n    customIndex++;\n  } else {\n    tableBitmapSize = getStandardTable(1);\n  }\n\n  if (dictionary.aggregationInstancesSelector) {\n    tableAggregateInstances = getCustomHuffmanTable(\n      customIndex,\n      referredTo,\n      customTables\n    );\n  } else {\n    tableAggregateInstances = getStandardTable(1);\n  }\n\n  return {\n    tableDeltaHeight,\n    tableDeltaWidth,\n    tableBitmapSize,\n    tableAggregateInstances,\n  };\n}\n\nfunction readUncompressedBitmap(reader, width, height) {\n  const bitmap = [];\n  for (let y = 0; y < height; y++) {\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n    for (let x = 0; x < width; x++) {\n      row[x] = reader.readBit();\n    }\n    reader.byteAlign();\n  }\n  return bitmap;\n}\n\nfunction decodeMMRBitmap(input, width, height, endOfBlock) {\n  // MMR is the same compression algorithm as the PDF filter\n  // CCITTFaxDecode with /K -1.\n  const params = {\n    K: -1,\n    Columns: width,\n    Rows: height,\n    BlackIs1: true,\n    EndOfBlock: endOfBlock,\n  };\n  const decoder = new CCITTFaxDecoder(input, params);\n  const bitmap = [];\n  let currentByte,\n    eof = false;\n\n  for (let y = 0; y < height; y++) {\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n    let shift = -1;\n    for (let x = 0; x < width; x++) {\n      if (shift < 0) {\n        currentByte = decoder.readNextChar();\n        if (currentByte === -1) {\n          // Set the rest of the bits to zero.\n          currentByte = 0;\n          eof = true;\n        }\n        shift = 7;\n      }\n      row[x] = (currentByte >> shift) & 1;\n      shift--;\n    }\n  }\n\n  if (endOfBlock && !eof) {\n    // Read until EOFB has been consumed.\n    const lookForEOFLimit = 5;\n    for (let i = 0; i < lookForEOFLimit; i++) {\n      if (decoder.readNextChar() === -1) {\n        break;\n      }\n    }\n  }\n\n  return bitmap;\n}\n\nclass Jbig2Image {\n  parseChunks(chunks) {\n    return parseJbig2Chunks(chunks);\n  }\n\n  parse(data) {\n    if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"IMAGE_DECODERS\")) {\n      throw new Error(\"Not implemented: Jbig2Image.parse\");\n    }\n    const { imgData, width, height } = parseJbig2(data);\n    this.width = width;\n    this.height = height;\n    return imgData;\n  }\n}\n\nexport { Jbig2Image };\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 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 { assert, BaseException, warn } from \"../shared/util.js\";\nimport { grayToRGBA } from \"../shared/image_utils.js\";\nimport { readUint16 } from \"./core_utils.js\";\n\nclass JpegError extends BaseException {\n  constructor(msg) {\n    super(`JPEG error: ${msg}`, \"JpegError\");\n  }\n}\n\nclass DNLMarkerError extends BaseException {\n  constructor(message, scanLines) {\n    super(message, \"DNLMarkerError\");\n    this.scanLines = scanLines;\n  }\n}\n\nclass EOIMarkerError extends BaseException {\n  constructor(msg) {\n    super(msg, \"EOIMarkerError\");\n  }\n}\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\n *\n * - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n *   (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n * - The JFIF specification can be found in the JPEG File Interchange Format\n *   (www.w3.org/Graphics/JPEG/jfif3.pdf)\n * - The Adobe Application-Specific JPEG markers in the\n *   Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n *   (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\n// prettier-ignore\nconst dctZigZag = new Uint8Array([\n   0,\n   1,  8,\n  16,  9,  2,\n   3, 10, 17, 24,\n  32, 25, 18, 11, 4,\n   5, 12, 19, 26, 33, 40,\n  48, 41, 34, 27, 20, 13,  6,\n   7, 14, 21, 28, 35, 42, 49, 56,\n  57, 50, 43, 36, 29, 22, 15,\n  23, 30, 37, 44, 51, 58,\n  59, 52, 45, 38, 31,\n  39, 46, 53, 60,\n  61, 54, 47,\n  55, 62,\n  63\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896; // sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n  let k = 0,\n    i,\n    j,\n    length = 16;\n  while (length > 0 && !codeLengths[length - 1]) {\n    length--;\n  }\n  const code = [{ children: [], index: 0 }];\n  let p = code[0],\n    q;\n  for (i = 0; i < length; i++) {\n    for (j = 0; j < codeLengths[i]; j++) {\n      p = code.pop();\n      p.children[p.index] = values[k];\n      while (p.index > 0) {\n        p = code.pop();\n      }\n      p.index++;\n      code.push(p);\n      while (code.length <= i) {\n        code.push((q = { children: [], index: 0 }));\n        p.children[p.index] = q.children;\n        p = q;\n      }\n      k++;\n    }\n    if (i + 1 < length) {\n      // p here points to last code\n      code.push((q = { children: [], index: 0 }));\n      p.children[p.index] = q.children;\n      p = q;\n    }\n  }\n  return code[0].children;\n}\n\nfunction getBlockBufferOffset(component, row, col) {\n  return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(\n  data,\n  offset,\n  frame,\n  components,\n  resetInterval,\n  spectralStart,\n  spectralEnd,\n  successivePrev,\n  successive,\n  parseDNLMarker = false\n) {\n  const mcusPerLine = frame.mcusPerLine;\n  const progressive = frame.progressive;\n\n  const startOffset = offset;\n  let bitsData = 0,\n    bitsCount = 0;\n\n  function readBit() {\n    if (bitsCount > 0) {\n      bitsCount--;\n      return (bitsData >> bitsCount) & 1;\n    }\n    bitsData = data[offset++];\n    if (bitsData === 0xff) {\n      const nextByte = data[offset++];\n      if (nextByte) {\n        if (nextByte === /* DNL = */ 0xdc && parseDNLMarker) {\n          offset += 2; // Skip marker length.\n\n          const scanLines = readUint16(data, offset);\n          offset += 2;\n          if (scanLines > 0 && scanLines !== frame.scanLines) {\n            throw new DNLMarkerError(\n              \"Found DNL marker (0xFFDC) while parsing scan data\",\n              scanLines\n            );\n          }\n        } else if (nextByte === /* EOI = */ 0xd9) {\n          if (parseDNLMarker) {\n            // NOTE: only 8-bit JPEG images are supported in this decoder.\n            const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n            // Heuristic to attempt to handle corrupt JPEG images with too\n            // large `scanLines` parameter, by falling back to the currently\n            // parsed number of scanLines when it's at least (approximately)\n            // one \"half\" order of magnitude smaller than expected (fixes\n            // issue10880.pdf, issue10989.pdf, issue15492.pdf).\n            if (\n              maybeScanLines > 0 &&\n              Math.round(frame.scanLines / maybeScanLines) >= 5\n            ) {\n              throw new DNLMarkerError(\n                \"Found EOI marker (0xFFD9) while parsing scan data, \" +\n                  \"possibly caused by incorrect `scanLines` parameter\",\n                maybeScanLines\n              );\n            }\n          }\n          throw new EOIMarkerError(\n            \"Found EOI marker (0xFFD9) while parsing scan data\"\n          );\n        }\n        throw new JpegError(\n          `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`\n        );\n      }\n      // unstuff 0\n    }\n    bitsCount = 7;\n    return bitsData >>> 7;\n  }\n\n  function decodeHuffman(tree) {\n    let node = tree;\n    while (true) {\n      node = node[readBit()];\n      switch (typeof node) {\n        case \"number\":\n          return node;\n        case \"object\":\n          continue;\n      }\n      throw new JpegError(\"invalid huffman sequence\");\n    }\n  }\n\n  function receive(length) {\n    let n = 0;\n    while (length > 0) {\n      n = (n << 1) | readBit();\n      length--;\n    }\n    return n;\n  }\n\n  function receiveAndExtend(length) {\n    if (length === 1) {\n      return readBit() === 1 ? 1 : -1;\n    }\n    const n = receive(length);\n    if (n >= 1 << (length - 1)) {\n      return n;\n    }\n    return n + (-1 << length) + 1;\n  }\n\n  function decodeBaseline(component, blockOffset) {\n    const t = decodeHuffman(component.huffmanTableDC);\n    const diff = t === 0 ? 0 : receiveAndExtend(t);\n    component.blockData[blockOffset] = component.pred += diff;\n    let k = 1;\n    while (k < 64) {\n      const rs = decodeHuffman(component.huffmanTableAC);\n      const s = rs & 15,\n        r = rs >> 4;\n      if (s === 0) {\n        if (r < 15) {\n          break;\n        }\n        k += 16;\n        continue;\n      }\n      k += r;\n      const z = dctZigZag[k];\n      component.blockData[blockOffset + z] = receiveAndExtend(s);\n      k++;\n    }\n  }\n\n  function decodeDCFirst(component, blockOffset) {\n    const t = decodeHuffman(component.huffmanTableDC);\n    const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n    component.blockData[blockOffset] = component.pred += diff;\n  }\n\n  function decodeDCSuccessive(component, blockOffset) {\n    component.blockData[blockOffset] |= readBit() << successive;\n  }\n\n  let eobrun = 0;\n  function decodeACFirst(component, blockOffset) {\n    if (eobrun > 0) {\n      eobrun--;\n      return;\n    }\n    let k = spectralStart;\n    const e = spectralEnd;\n    while (k <= e) {\n      const rs = decodeHuffman(component.huffmanTableAC);\n      const s = rs & 15,\n        r = rs >> 4;\n      if (s === 0) {\n        if (r < 15) {\n          eobrun = receive(r) + (1 << r) - 1;\n          break;\n        }\n        k += 16;\n        continue;\n      }\n      k += r;\n      const z = dctZigZag[k];\n      component.blockData[blockOffset + z] =\n        receiveAndExtend(s) * (1 << successive);\n      k++;\n    }\n  }\n\n  let successiveACState = 0,\n    successiveACNextValue;\n  function decodeACSuccessive(component, blockOffset) {\n    let k = spectralStart;\n    const e = spectralEnd;\n    let r = 0;\n    let s;\n    let rs;\n    while (k <= e) {\n      const offsetZ = blockOffset + dctZigZag[k];\n      const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n      switch (successiveACState) {\n        case 0: // initial state\n          rs = decodeHuffman(component.huffmanTableAC);\n          s = rs & 15;\n          r = rs >> 4;\n          if (s === 0) {\n            if (r < 15) {\n              eobrun = receive(r) + (1 << r);\n              successiveACState = 4;\n            } else {\n              r = 16;\n              successiveACState = 1;\n            }\n          } else {\n            if (s !== 1) {\n              throw new JpegError(\"invalid ACn encoding\");\n            }\n            successiveACNextValue = receiveAndExtend(s);\n            successiveACState = r ? 2 : 3;\n          }\n          continue;\n        case 1: // skipping r zero items\n        case 2:\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          } else {\n            r--;\n            if (r === 0) {\n              successiveACState = successiveACState === 2 ? 3 : 0;\n            }\n          }\n          break;\n        case 3: // set value for a zero item\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          } else {\n            component.blockData[offsetZ] = successiveACNextValue << successive;\n            successiveACState = 0;\n          }\n          break;\n        case 4: // eob\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          }\n          break;\n      }\n      k++;\n    }\n    if (successiveACState === 4) {\n      eobrun--;\n      if (eobrun === 0) {\n        successiveACState = 0;\n      }\n    }\n  }\n\n  let blockRow = 0;\n  function decodeMcu(component, decode, mcu, row, col) {\n    const mcuRow = (mcu / mcusPerLine) | 0;\n    const mcuCol = mcu % mcusPerLine;\n    blockRow = mcuRow * component.v + row;\n    const blockCol = mcuCol * component.h + col;\n    const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n    decode(component, blockOffset);\n  }\n\n  function decodeBlock(component, decode, mcu) {\n    blockRow = (mcu / component.blocksPerLine) | 0;\n    const blockCol = mcu % component.blocksPerLine;\n    const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n    decode(component, blockOffset);\n  }\n\n  const componentsLength = components.length;\n  let component, i, j, k, n;\n  let decodeFn;\n  if (progressive) {\n    if (spectralStart === 0) {\n      decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n    } else {\n      decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n    }\n  } else {\n    decodeFn = decodeBaseline;\n  }\n\n  let mcu = 0,\n    fileMarker;\n  const mcuExpected =\n    componentsLength === 1\n      ? components[0].blocksPerLine * components[0].blocksPerColumn\n      : mcusPerLine * frame.mcusPerColumn;\n\n  let h, v;\n  while (mcu <= mcuExpected) {\n    // reset interval stuff\n    const mcuToRead = resetInterval\n      ? Math.min(mcuExpected - mcu, resetInterval)\n      : mcuExpected;\n\n    // The `mcuToRead === 0` case should only occur when all of the expected\n    // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but\n    // some corrupt JPEG images contain more data than intended and we thus\n    // want to skip over any extra RSTx markers below (fixes issue11794.pdf).\n    if (mcuToRead > 0) {\n      for (i = 0; i < componentsLength; i++) {\n        components[i].pred = 0;\n      }\n      eobrun = 0;\n\n      if (componentsLength === 1) {\n        component = components[0];\n        for (n = 0; n < mcuToRead; n++) {\n          decodeBlock(component, decodeFn, mcu);\n          mcu++;\n        }\n      } else {\n        for (n = 0; n < mcuToRead; n++) {\n          for (i = 0; i < componentsLength; i++) {\n            component = components[i];\n            h = component.h;\n            v = component.v;\n            for (j = 0; j < v; j++) {\n              for (k = 0; k < h; k++) {\n                decodeMcu(component, decodeFn, mcu, j, k);\n              }\n            }\n          }\n          mcu++;\n        }\n      }\n    }\n\n    // find marker\n    bitsCount = 0;\n    fileMarker = findNextFileMarker(data, offset);\n    if (!fileMarker) {\n      break; // Reached the end of the image data without finding any marker.\n    }\n    if (fileMarker.invalid) {\n      // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip\n      // past those to attempt to find a valid marker (fixes issue4090.pdf).\n      const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n      warn(\n        `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`\n      );\n      offset = fileMarker.offset;\n    }\n    if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n      // RSTx\n      offset += 2;\n    } else {\n      break;\n    }\n  }\n\n  return offset - startOffset;\n}\n\n// A port of poppler's IDCT method which in turn is taken from:\n//   Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n//   'Practical Fast 1-D DCT Algorithms with 11 Multiplications',\n//   IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n//   988-991.\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n  const qt = component.quantizationTable,\n    blockData = component.blockData;\n  let v0, v1, v2, v3, v4, v5, v6, v7;\n  let p0, p1, p2, p3, p4, p5, p6, p7;\n  let t;\n\n  if (!qt) {\n    throw new JpegError(\"missing required Quantization Table.\");\n  }\n\n  // inverse DCT on rows\n  for (let row = 0; row < 64; row += 8) {\n    // gather block data\n    p0 = blockData[blockBufferOffset + row];\n    p1 = blockData[blockBufferOffset + row + 1];\n    p2 = blockData[blockBufferOffset + row + 2];\n    p3 = blockData[blockBufferOffset + row + 3];\n    p4 = blockData[blockBufferOffset + row + 4];\n    p5 = blockData[blockBufferOffset + row + 5];\n    p6 = blockData[blockBufferOffset + row + 6];\n    p7 = blockData[blockBufferOffset + row + 7];\n\n    // dequant p0\n    p0 *= qt[row];\n\n    // check for all-zero AC coefficients\n    if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n      t = (dctSqrt2 * p0 + 512) >> 10;\n      p[row] = t;\n      p[row + 1] = t;\n      p[row + 2] = t;\n      p[row + 3] = t;\n      p[row + 4] = t;\n      p[row + 5] = t;\n      p[row + 6] = t;\n      p[row + 7] = t;\n      continue;\n    }\n    // dequant p1 ... p7\n    p1 *= qt[row + 1];\n    p2 *= qt[row + 2];\n    p3 *= qt[row + 3];\n    p4 *= qt[row + 4];\n    p5 *= qt[row + 5];\n    p6 *= qt[row + 6];\n    p7 *= qt[row + 7];\n\n    // stage 4\n    v0 = (dctSqrt2 * p0 + 128) >> 8;\n    v1 = (dctSqrt2 * p4 + 128) >> 8;\n    v2 = p2;\n    v3 = p6;\n    v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8;\n    v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8;\n    v5 = p3 << 4;\n    v6 = p5 << 4;\n\n    // stage 3\n    v0 = (v0 + v1 + 1) >> 1;\n    v1 = v0 - v1;\n    t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n    v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n    v3 = t;\n    v4 = (v4 + v6 + 1) >> 1;\n    v6 = v4 - v6;\n    v7 = (v7 + v5 + 1) >> 1;\n    v5 = v7 - v5;\n\n    // stage 2\n    v0 = (v0 + v3 + 1) >> 1;\n    v3 = v0 - v3;\n    v1 = (v1 + v2 + 1) >> 1;\n    v2 = v1 - v2;\n    t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n    v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n    v7 = t;\n    t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n    v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n    v6 = t;\n\n    // stage 1\n    p[row] = v0 + v7;\n    p[row + 7] = v0 - v7;\n    p[row + 1] = v1 + v6;\n    p[row + 6] = v1 - v6;\n    p[row + 2] = v2 + v5;\n    p[row + 5] = v2 - v5;\n    p[row + 3] = v3 + v4;\n    p[row + 4] = v3 - v4;\n  }\n\n  // inverse DCT on columns\n  for (let col = 0; col < 8; ++col) {\n    p0 = p[col];\n    p1 = p[col + 8];\n    p2 = p[col + 16];\n    p3 = p[col + 24];\n    p4 = p[col + 32];\n    p5 = p[col + 40];\n    p6 = p[col + 48];\n    p7 = p[col + 56];\n\n    // check for all-zero AC coefficients\n    if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n      t = (dctSqrt2 * p0 + 8192) >> 14;\n      // Convert to 8-bit.\n      if (t < -2040) {\n        t = 0;\n      } else if (t >= 2024) {\n        t = 255;\n      } else {\n        t = (t + 2056) >> 4;\n      }\n      blockData[blockBufferOffset + col] = t;\n      blockData[blockBufferOffset + col + 8] = t;\n      blockData[blockBufferOffset + col + 16] = t;\n      blockData[blockBufferOffset + col + 24] = t;\n      blockData[blockBufferOffset + col + 32] = t;\n      blockData[blockBufferOffset + col + 40] = t;\n      blockData[blockBufferOffset + col + 48] = t;\n      blockData[blockBufferOffset + col + 56] = t;\n      continue;\n    }\n\n    // stage 4\n    v0 = (dctSqrt2 * p0 + 2048) >> 12;\n    v1 = (dctSqrt2 * p4 + 2048) >> 12;\n    v2 = p2;\n    v3 = p6;\n    v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12;\n    v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12;\n    v5 = p3;\n    v6 = p5;\n\n    // stage 3\n    // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n    // converting to UInt8 range later.\n    v0 = ((v0 + v1 + 1) >> 1) + 4112;\n    v1 = v0 - v1;\n    t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n    v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n    v3 = t;\n    v4 = (v4 + v6 + 1) >> 1;\n    v6 = v4 - v6;\n    v7 = (v7 + v5 + 1) >> 1;\n    v5 = v7 - v5;\n\n    // stage 2\n    v0 = (v0 + v3 + 1) >> 1;\n    v3 = v0 - v3;\n    v1 = (v1 + v2 + 1) >> 1;\n    v2 = v1 - v2;\n    t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n    v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n    v7 = t;\n    t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n    v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n    v6 = t;\n\n    // stage 1\n    p0 = v0 + v7;\n    p7 = v0 - v7;\n    p1 = v1 + v6;\n    p6 = v1 - v6;\n    p2 = v2 + v5;\n    p5 = v2 - v5;\n    p3 = v3 + v4;\n    p4 = v3 - v4;\n\n    // Convert to 8-bit integers.\n    if (p0 < 16) {\n      p0 = 0;\n    } else if (p0 >= 4080) {\n      p0 = 255;\n    } else {\n      p0 >>= 4;\n    }\n    if (p1 < 16) {\n      p1 = 0;\n    } else if (p1 >= 4080) {\n      p1 = 255;\n    } else {\n      p1 >>= 4;\n    }\n    if (p2 < 16) {\n      p2 = 0;\n    } else if (p2 >= 4080) {\n      p2 = 255;\n    } else {\n      p2 >>= 4;\n    }\n    if (p3 < 16) {\n      p3 = 0;\n    } else if (p3 >= 4080) {\n      p3 = 255;\n    } else {\n      p3 >>= 4;\n    }\n    if (p4 < 16) {\n      p4 = 0;\n    } else if (p4 >= 4080) {\n      p4 = 255;\n    } else {\n      p4 >>= 4;\n    }\n    if (p5 < 16) {\n      p5 = 0;\n    } else if (p5 >= 4080) {\n      p5 = 255;\n    } else {\n      p5 >>= 4;\n    }\n    if (p6 < 16) {\n      p6 = 0;\n    } else if (p6 >= 4080) {\n      p6 = 255;\n    } else {\n      p6 >>= 4;\n    }\n    if (p7 < 16) {\n      p7 = 0;\n    } else if (p7 >= 4080) {\n      p7 = 255;\n    } else {\n      p7 >>= 4;\n    }\n\n    // store block data\n    blockData[blockBufferOffset + col] = p0;\n    blockData[blockBufferOffset + col + 8] = p1;\n    blockData[blockBufferOffset + col + 16] = p2;\n    blockData[blockBufferOffset + col + 24] = p3;\n    blockData[blockBufferOffset + col + 32] = p4;\n    blockData[blockBufferOffset + col + 40] = p5;\n    blockData[blockBufferOffset + col + 48] = p6;\n    blockData[blockBufferOffset + col + 56] = p7;\n  }\n}\n\nfunction buildComponentData(frame, component) {\n  const blocksPerLine = component.blocksPerLine;\n  const blocksPerColumn = component.blocksPerColumn;\n  const computationBuffer = new Int16Array(64);\n\n  for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n    for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n      const offset = getBlockBufferOffset(component, blockRow, blockCol);\n      quantizeAndInverse(component, offset, computationBuffer);\n    }\n  }\n  return component.blockData;\n}\n\nfunction findNextFileMarker(data, currentPos, startPos = currentPos) {\n  const maxPos = data.length - 1;\n  let newPos = startPos < currentPos ? startPos : currentPos;\n\n  if (currentPos >= maxPos) {\n    return null; // Don't attempt to read non-existent data and just return.\n  }\n  const currentMarker = readUint16(data, currentPos);\n  if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n    return {\n      invalid: null,\n      marker: currentMarker,\n      offset: currentPos,\n    };\n  }\n  let newMarker = readUint16(data, newPos);\n  while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n    if (++newPos >= maxPos) {\n      return null; // Don't attempt to read non-existent data and just return.\n    }\n    newMarker = readUint16(data, newPos);\n  }\n  return {\n    invalid: currentMarker.toString(16),\n    marker: newMarker,\n    offset: newPos,\n  };\n}\n\nclass JpegImage {\n  constructor({ decodeTransform = null, colorTransform = -1 } = {}) {\n    this._decodeTransform = decodeTransform;\n    this._colorTransform = colorTransform;\n  }\n\n  parse(data, { dnlScanLines = null } = {}) {\n    function readDataBlock() {\n      const length = readUint16(data, offset);\n      offset += 2;\n      let endOffset = offset + length - 2;\n\n      const fileMarker = findNextFileMarker(data, endOffset, offset);\n      if (fileMarker?.invalid) {\n        warn(\n          \"readDataBlock - incorrect length, current marker is: \" +\n            fileMarker.invalid\n        );\n        endOffset = fileMarker.offset;\n      }\n\n      const array = data.subarray(offset, endOffset);\n      offset += array.length;\n      return array;\n    }\n\n    function prepareComponents(frame) {\n      const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n      const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n      for (const component of frame.components) {\n        const blocksPerLine = Math.ceil(\n          (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n        );\n        const blocksPerColumn = Math.ceil(\n          (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n        );\n        const blocksPerLineForMcu = mcusPerLine * component.h;\n        const blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n        const blocksBufferSize =\n          64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n        component.blockData = new Int16Array(blocksBufferSize);\n        component.blocksPerLine = blocksPerLine;\n        component.blocksPerColumn = blocksPerColumn;\n      }\n      frame.mcusPerLine = mcusPerLine;\n      frame.mcusPerColumn = mcusPerColumn;\n    }\n\n    let offset = 0;\n    let jfif = null;\n    let adobe = null;\n    let frame, resetInterval;\n    let numSOSMarkers = 0;\n    const quantizationTables = [];\n    const huffmanTablesAC = [],\n      huffmanTablesDC = [];\n\n    let fileMarker = readUint16(data, offset);\n    offset += 2;\n    if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n      throw new JpegError(\"SOI not found\");\n    }\n    fileMarker = readUint16(data, offset);\n    offset += 2;\n\n    markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n      let i, j, l;\n      switch (fileMarker) {\n        case 0xffe0: // APP0 (Application Specific)\n        case 0xffe1: // APP1\n        case 0xffe2: // APP2\n        case 0xffe3: // APP3\n        case 0xffe4: // APP4\n        case 0xffe5: // APP5\n        case 0xffe6: // APP6\n        case 0xffe7: // APP7\n        case 0xffe8: // APP8\n        case 0xffe9: // APP9\n        case 0xffea: // APP10\n        case 0xffeb: // APP11\n        case 0xffec: // APP12\n        case 0xffed: // APP13\n        case 0xffee: // APP14\n        case 0xffef: // APP15\n        case 0xfffe: // COM (Comment)\n          const appData = readDataBlock();\n\n          if (fileMarker === 0xffe0) {\n            // 'JFIF\\x00'\n            if (\n              appData[0] === 0x4a &&\n              appData[1] === 0x46 &&\n              appData[2] === 0x49 &&\n              appData[3] === 0x46 &&\n              appData[4] === 0\n            ) {\n              jfif = {\n                version: { major: appData[5], minor: appData[6] },\n                densityUnits: appData[7],\n                xDensity: (appData[8] << 8) | appData[9],\n                yDensity: (appData[10] << 8) | appData[11],\n                thumbWidth: appData[12],\n                thumbHeight: appData[13],\n                thumbData: appData.subarray(\n                  14,\n                  14 + 3 * appData[12] * appData[13]\n                ),\n              };\n            }\n          }\n          // TODO APP1 - Exif\n          if (fileMarker === 0xffee) {\n            // 'Adobe'\n            if (\n              appData[0] === 0x41 &&\n              appData[1] === 0x64 &&\n              appData[2] === 0x6f &&\n              appData[3] === 0x62 &&\n              appData[4] === 0x65\n            ) {\n              adobe = {\n                version: (appData[5] << 8) | appData[6],\n                flags0: (appData[7] << 8) | appData[8],\n                flags1: (appData[9] << 8) | appData[10],\n                transformCode: appData[11],\n              };\n            }\n          }\n          break;\n\n        case 0xffdb: // DQT (Define Quantization Tables)\n          const quantizationTablesLength = readUint16(data, offset);\n          offset += 2;\n          const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n          let z;\n          while (offset < quantizationTablesEnd) {\n            const quantizationTableSpec = data[offset++];\n            const tableData = new Uint16Array(64);\n            if (quantizationTableSpec >> 4 === 0) {\n              // 8 bit values\n              for (j = 0; j < 64; j++) {\n                z = dctZigZag[j];\n                tableData[z] = data[offset++];\n              }\n            } else if (quantizationTableSpec >> 4 === 1) {\n              // 16 bit values\n              for (j = 0; j < 64; j++) {\n                z = dctZigZag[j];\n                tableData[z] = readUint16(data, offset);\n                offset += 2;\n              }\n            } else {\n              throw new JpegError(\"DQT - invalid table spec\");\n            }\n            quantizationTables[quantizationTableSpec & 15] = tableData;\n          }\n          break;\n\n        case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n        case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n        case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n          if (frame) {\n            throw new JpegError(\"Only single frame JPEGs supported\");\n          }\n          offset += 2; // Skip marker length.\n\n          frame = {};\n          frame.extended = fileMarker === 0xffc1;\n          frame.progressive = fileMarker === 0xffc2;\n          frame.precision = data[offset++];\n          const sofScanLines = readUint16(data, offset);\n          offset += 2;\n          frame.scanLines = dnlScanLines || sofScanLines;\n          frame.samplesPerLine = readUint16(data, offset);\n          offset += 2;\n          frame.components = [];\n          frame.componentIds = {};\n          const componentsCount = data[offset++];\n          let maxH = 0,\n            maxV = 0;\n          for (i = 0; i < componentsCount; i++) {\n            const componentId = data[offset];\n            const h = data[offset + 1] >> 4;\n            const v = data[offset + 1] & 15;\n            if (maxH < h) {\n              maxH = h;\n            }\n            if (maxV < v) {\n              maxV = v;\n            }\n            const qId = data[offset + 2];\n            l = frame.components.push({\n              h,\n              v,\n              quantizationId: qId,\n              quantizationTable: null, // See comment below.\n            });\n            frame.componentIds[componentId] = l - 1;\n            offset += 3;\n          }\n          frame.maxH = maxH;\n          frame.maxV = maxV;\n          prepareComponents(frame);\n          break;\n\n        case 0xffc4: // DHT (Define Huffman Tables)\n          const huffmanLength = readUint16(data, offset);\n          offset += 2;\n          for (i = 2; i < huffmanLength; ) {\n            const huffmanTableSpec = data[offset++];\n            const codeLengths = new Uint8Array(16);\n            let codeLengthSum = 0;\n            for (j = 0; j < 16; j++, offset++) {\n              codeLengthSum += codeLengths[j] = data[offset];\n            }\n            const huffmanValues = new Uint8Array(codeLengthSum);\n            for (j = 0; j < codeLengthSum; j++, offset++) {\n              huffmanValues[j] = data[offset];\n            }\n            i += 17 + codeLengthSum;\n\n            (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n              huffmanTableSpec & 15\n            ] = buildHuffmanTable(codeLengths, huffmanValues);\n          }\n          break;\n\n        case 0xffdd: // DRI (Define Restart Interval)\n          offset += 2; // Skip marker length.\n\n          resetInterval = readUint16(data, offset);\n          offset += 2;\n          break;\n\n        case 0xffda: // SOS (Start of Scan)\n          // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n          // of the first scan segment and may only occur once in an image.\n          // Furthermore, to prevent an infinite loop, do *not* attempt to\n          // parse DNL markers during re-parsing of the JPEG scan data.\n          const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n\n          offset += 2; // Skip marker length.\n\n          const selectorsCount = data[offset++],\n            components = [];\n          for (i = 0; i < selectorsCount; i++) {\n            const index = data[offset++];\n            const componentIndex = frame.componentIds[index];\n            const component = frame.components[componentIndex];\n            component.index = index;\n            const tableSpec = data[offset++];\n            component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n            component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n            components.push(component);\n          }\n          const spectralStart = data[offset++],\n            spectralEnd = data[offset++],\n            successiveApproximation = data[offset++];\n          try {\n            const processed = decodeScan(\n              data,\n              offset,\n              frame,\n              components,\n              resetInterval,\n              spectralStart,\n              spectralEnd,\n              successiveApproximation >> 4,\n              successiveApproximation & 15,\n              parseDNLMarker\n            );\n            offset += processed;\n          } catch (ex) {\n            if (ex instanceof DNLMarkerError) {\n              warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n              return this.parse(data, { dnlScanLines: ex.scanLines });\n            } else if (ex instanceof EOIMarkerError) {\n              warn(`${ex.message} -- ignoring the rest of the image data.`);\n              break markerLoop;\n            }\n            throw ex;\n          }\n          break;\n\n        case 0xffdc: // DNL (Define Number of Lines)\n          // Ignore the marker, since it's being handled in `decodeScan`.\n          offset += 4;\n          break;\n\n        case 0xffff: // Fill bytes\n          if (data[offset] !== 0xff) {\n            // Avoid skipping a valid marker.\n            offset--;\n          }\n          break;\n\n        default:\n          // Could be incorrect encoding -- the last 0xFF byte of the previous\n          // block could have been eaten by the encoder, hence we fallback to\n          // `startPos = offset - 3` when looking for the next valid marker.\n          const nextFileMarker = findNextFileMarker(\n            data,\n            /* currentPos = */ offset - 2,\n            /* startPos = */ offset - 3\n          );\n          if (nextFileMarker?.invalid) {\n            warn(\n              \"JpegImage.parse - unexpected data, current marker is: \" +\n                nextFileMarker.invalid\n            );\n            offset = nextFileMarker.offset;\n            break;\n          }\n          if (!nextFileMarker || offset >= data.length - 1) {\n            warn(\n              \"JpegImage.parse - reached the end of the image data \" +\n                \"without finding an EOI marker (0xFFD9).\"\n            );\n            break markerLoop;\n          }\n          throw new JpegError(\n            \"JpegImage.parse - unknown marker: \" + fileMarker.toString(16)\n          );\n      }\n      fileMarker = readUint16(data, offset);\n      offset += 2;\n    }\n\n    if (!frame) {\n      throw new JpegError(\"JpegImage.parse - no frame data found.\");\n    }\n    this.width = frame.samplesPerLine;\n    this.height = frame.scanLines;\n    this.jfif = jfif;\n    this.adobe = adobe;\n    this.components = [];\n    for (const component of frame.components) {\n      // Prevent errors when DQT markers are placed after SOF{n} markers,\n      // by assigning the `quantizationTable` entry after the entire image\n      // has been parsed (fixes issue7406.pdf).\n      const quantizationTable = quantizationTables[component.quantizationId];\n      if (quantizationTable) {\n        component.quantizationTable = quantizationTable;\n      }\n\n      this.components.push({\n        index: component.index,\n        output: buildComponentData(frame, component),\n        scaleX: component.h / frame.maxH,\n        scaleY: component.v / frame.maxV,\n        blocksPerLine: component.blocksPerLine,\n        blocksPerColumn: component.blocksPerColumn,\n      });\n    }\n    this.numComponents = this.components.length;\n    return undefined;\n  }\n\n  _getLinearizedBlockData(width, height, isSourcePDF = false) {\n    const scaleX = this.width / width,\n      scaleY = this.height / height;\n\n    let component, componentScaleX, componentScaleY, blocksPerScanline;\n    let x, y, i, j, k;\n    let index;\n    let offset = 0;\n    let output;\n    const numComponents = this.components.length;\n    const dataLength = width * height * numComponents;\n    const data = new Uint8ClampedArray(dataLength);\n    const xScaleBlockOffset = new Uint32Array(width);\n    const mask3LSB = 0xfffffff8; // used to clear the 3 LSBs\n    let lastComponentScaleX;\n\n    for (i = 0; i < numComponents; i++) {\n      component = this.components[i];\n      componentScaleX = component.scaleX * scaleX;\n      componentScaleY = component.scaleY * scaleY;\n      offset = i;\n      output = component.output;\n      blocksPerScanline = (component.blocksPerLine + 1) << 3;\n      // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the\n      // component data, that's only necessary when `componentScaleX` changes.\n      if (componentScaleX !== lastComponentScaleX) {\n        for (x = 0; x < width; x++) {\n          j = 0 | (x * componentScaleX);\n          xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7);\n        }\n        lastComponentScaleX = componentScaleX;\n      }\n      // linearize the blocks of the component\n      for (y = 0; y < height; y++) {\n        j = 0 | (y * componentScaleY);\n        index = (blocksPerScanline * (j & mask3LSB)) | ((j & 7) << 3);\n        for (x = 0; x < width; x++) {\n          data[offset] = output[index + xScaleBlockOffset[x]];\n          offset += numComponents;\n        }\n      }\n    }\n\n    // decodeTransform contains pairs of multiplier (-256..256) and additive\n    let transform = this._decodeTransform;\n\n    // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n    // (this can be observed by extracting the raw image data).\n    // Since the conversion algorithms (see below) were written primarily for\n    // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n    // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n    //\n    // Unfortunately it's not (always) possible to tell, from the image data\n    // alone, if it needs to be inverted. Thus in an attempt to provide better\n    // out-of-box behaviour when `JpegImage` is used standalone, default to\n    // inverting JPEG (CMYK) images if and only if the image data does *not*\n    // come from a PDF file and no `decodeTransform` was passed by the user.\n    if (!isSourcePDF && numComponents === 4 && !transform) {\n      transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n    }\n\n    if (transform) {\n      for (i = 0; i < dataLength; ) {\n        for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n          data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1];\n        }\n      }\n    }\n    return data;\n  }\n\n  get _isColorConversionNeeded() {\n    if (this.adobe) {\n      // The adobe transform marker overrides any previous setting.\n      return !!this.adobe.transformCode;\n    }\n    if (this.numComponents === 3) {\n      if (this._colorTransform === 0) {\n        // If the Adobe transform marker is not present and the image\n        // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n        // then the colours should *not* be transformed.\n        return false;\n      } else if (\n        this.components[0].index === /* \"R\" = */ 0x52 &&\n        this.components[1].index === /* \"G\" = */ 0x47 &&\n        this.components[2].index === /* \"B\" = */ 0x42\n      ) {\n        // If the three components are indexed as RGB in ASCII\n        // then the colours should *not* be transformed.\n        return false;\n      }\n      return true;\n    }\n    // `this.numComponents !== 3`\n    if (this._colorTransform === 1) {\n      // If the Adobe transform marker is not present and the image\n      // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n      // then the colours should be transformed.\n      return true;\n    }\n    return false;\n  }\n\n  _convertYccToRgb(data) {\n    let Y, Cb, Cr;\n    for (let i = 0, length = data.length; i < length; i += 3) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      data[i] = Y - 179.456 + 1.402 * Cr;\n      data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n      data[i + 2] = Y - 226.816 + 1.772 * Cb;\n    }\n    return data;\n  }\n\n  _convertYccToRgba(data, out) {\n    for (let i = 0, j = 0, length = data.length; i < length; i += 3, j += 4) {\n      const Y = data[i];\n      const Cb = data[i + 1];\n      const Cr = data[i + 2];\n      out[j] = Y - 179.456 + 1.402 * Cr;\n      out[j + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n      out[j + 2] = Y - 226.816 + 1.772 * Cb;\n      out[j + 3] = 255;\n    }\n    return out;\n  }\n\n  _convertYcckToRgb(data) {\n    let Y, Cb, Cr, k;\n    let offset = 0;\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      k = data[i + 3];\n\n      data[offset++] =\n        -122.67195406894 +\n        Cb *\n          (-6.60635669420364e-5 * Cb +\n            0.000437130475926232 * Cr -\n            5.4080610064599e-5 * Y +\n            0.00048449797120281 * k -\n            0.154362151871126) +\n        Cr *\n          (-0.000957964378445773 * Cr +\n            0.000817076911346625 * Y -\n            0.00477271405408747 * k +\n            1.53380253221734) +\n        Y *\n          (0.000961250184130688 * Y -\n            0.00266257332283933 * k +\n            0.48357088451265) +\n        k * (-0.000336197177618394 * k + 0.484791561490776);\n\n      data[offset++] =\n        107.268039397724 +\n        Cb *\n          (2.19927104525741e-5 * Cb -\n            0.000640992018297945 * Cr +\n            0.000659397001245577 * Y +\n            0.000426105652938837 * k -\n            0.176491792462875) +\n        Cr *\n          (-0.000778269941513683 * Cr +\n            0.00130872261408275 * Y +\n            0.000770482631801132 * k -\n            0.151051492775562) +\n        Y *\n          (0.00126935368114843 * Y -\n            0.00265090189010898 * k +\n            0.25802910206845) +\n        k * (-0.000318913117588328 * k - 0.213742400323665);\n\n      data[offset++] =\n        -20.810012546947 +\n        Cb *\n          (-0.000570115196973677 * Cb -\n            2.63409051004589e-5 * Cr +\n            0.0020741088115012 * Y -\n            0.00288260236853442 * k +\n            0.814272968359295) +\n        Cr *\n          (-1.53496057440975e-5 * Cr -\n            0.000132689043961446 * Y +\n            0.000560833691242812 * k -\n            0.195152027534049) +\n        Y *\n          (0.00174418132927582 * Y -\n            0.00255243321439347 * k +\n            0.116935020465145) +\n        k * (-0.000343531996510555 * k + 0.24165260232407);\n    }\n    // Ensure that only the converted RGB data is returned.\n    return data.subarray(0, offset);\n  }\n\n  _convertYcckToRgba(data) {\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      const Y = data[i];\n      const Cb = data[i + 1];\n      const Cr = data[i + 2];\n      const k = data[i + 3];\n\n      data[i] =\n        -122.67195406894 +\n        Cb *\n          (-6.60635669420364e-5 * Cb +\n            0.000437130475926232 * Cr -\n            5.4080610064599e-5 * Y +\n            0.00048449797120281 * k -\n            0.154362151871126) +\n        Cr *\n          (-0.000957964378445773 * Cr +\n            0.000817076911346625 * Y -\n            0.00477271405408747 * k +\n            1.53380253221734) +\n        Y *\n          (0.000961250184130688 * Y -\n            0.00266257332283933 * k +\n            0.48357088451265) +\n        k * (-0.000336197177618394 * k + 0.484791561490776);\n\n      data[i + 1] =\n        107.268039397724 +\n        Cb *\n          (2.19927104525741e-5 * Cb -\n            0.000640992018297945 * Cr +\n            0.000659397001245577 * Y +\n            0.000426105652938837 * k -\n            0.176491792462875) +\n        Cr *\n          (-0.000778269941513683 * Cr +\n            0.00130872261408275 * Y +\n            0.000770482631801132 * k -\n            0.151051492775562) +\n        Y *\n          (0.00126935368114843 * Y -\n            0.00265090189010898 * k +\n            0.25802910206845) +\n        k * (-0.000318913117588328 * k - 0.213742400323665);\n\n      data[i + 2] =\n        -20.810012546947 +\n        Cb *\n          (-0.000570115196973677 * Cb -\n            2.63409051004589e-5 * Cr +\n            0.0020741088115012 * Y -\n            0.00288260236853442 * k +\n            0.814272968359295) +\n        Cr *\n          (-1.53496057440975e-5 * Cr -\n            0.000132689043961446 * Y +\n            0.000560833691242812 * k -\n            0.195152027534049) +\n        Y *\n          (0.00174418132927582 * Y -\n            0.00255243321439347 * k +\n            0.116935020465145) +\n        k * (-0.000343531996510555 * k + 0.24165260232407);\n      data[i + 3] = 255;\n    }\n    return data;\n  }\n\n  _convertYcckToCmyk(data) {\n    let Y, Cb, Cr;\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      data[i] = 434.456 - Y - 1.402 * Cr;\n      data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n      data[i + 2] = 481.816 - Y - 1.772 * Cb;\n      // K in data[i + 3] is unchanged\n    }\n    return data;\n  }\n\n  _convertCmykToRgb(data) {\n    let c, m, y, k;\n    let offset = 0;\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      c = data[i];\n      m = data[i + 1];\n      y = data[i + 2];\n      k = data[i + 3];\n\n      data[offset++] =\n        255 +\n        c *\n          (-0.00006747147073602441 * c +\n            0.0008379262121013727 * m +\n            0.0002894718188643294 * y +\n            0.003264231057537806 * k -\n            1.1185611867203937) +\n        m *\n          (0.000026374107616089405 * m -\n            0.00008626949158638572 * y -\n            0.0002748769067499491 * k -\n            0.02155688794978967) +\n        y *\n          (-0.00003878099212869363 * y -\n            0.0003267808279485286 * k +\n            0.0686742238595345) -\n        k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n      data[offset++] =\n        255 +\n        c *\n          (0.00013596372813588848 * c +\n            0.000924537132573585 * m +\n            0.00010567359618683593 * y +\n            0.0004791864687436512 * k -\n            0.3109689587515875) +\n        m *\n          (-0.00023545346108370344 * m +\n            0.0002702845253534714 * y +\n            0.0020200308977307156 * k -\n            0.7488052167015494) +\n        y *\n          (0.00006834815998235662 * y +\n            0.00015168452363460973 * k -\n            0.09751927774728933) -\n        k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n      data[offset++] =\n        255 +\n        c *\n          (0.000013598650411385307 * c +\n            0.00012423956175490851 * m +\n            0.0004751985097583589 * y -\n            0.0000036729317476630422 * k -\n            0.05562186980264034) +\n        m *\n          (0.00016141380598724676 * m +\n            0.0009692239130725186 * y +\n            0.0007782692450036253 * k -\n            0.44015232367526463) +\n        y *\n          (5.068882914068769e-7 * y +\n            0.0017778369011375071 * k -\n            0.7591454649749609) -\n        k * (0.0003435319965105553 * k + 0.7063770186160144);\n    }\n    // Ensure that only the converted RGB data is returned.\n    return data.subarray(0, offset);\n  }\n\n  _convertCmykToRgba(data) {\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      const c = data[i];\n      const m = data[i + 1];\n      const y = data[i + 2];\n      const k = data[i + 3];\n\n      data[i] =\n        255 +\n        c *\n          (-0.00006747147073602441 * c +\n            0.0008379262121013727 * m +\n            0.0002894718188643294 * y +\n            0.003264231057537806 * k -\n            1.1185611867203937) +\n        m *\n          (0.000026374107616089405 * m -\n            0.00008626949158638572 * y -\n            0.0002748769067499491 * k -\n            0.02155688794978967) +\n        y *\n          (-0.00003878099212869363 * y -\n            0.0003267808279485286 * k +\n            0.0686742238595345) -\n        k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n      data[i + 1] =\n        255 +\n        c *\n          (0.00013596372813588848 * c +\n            0.000924537132573585 * m +\n            0.00010567359618683593 * y +\n            0.0004791864687436512 * k -\n            0.3109689587515875) +\n        m *\n          (-0.00023545346108370344 * m +\n            0.0002702845253534714 * y +\n            0.0020200308977307156 * k -\n            0.7488052167015494) +\n        y *\n          (0.00006834815998235662 * y +\n            0.00015168452363460973 * k -\n            0.09751927774728933) -\n        k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n      data[i + 2] =\n        255 +\n        c *\n          (0.000013598650411385307 * c +\n            0.00012423956175490851 * m +\n            0.0004751985097583589 * y -\n            0.0000036729317476630422 * k -\n            0.05562186980264034) +\n        m *\n          (0.00016141380598724676 * m +\n            0.0009692239130725186 * y +\n            0.0007782692450036253 * k -\n            0.44015232367526463) +\n        y *\n          (5.068882914068769e-7 * y +\n            0.0017778369011375071 * k -\n            0.7591454649749609) -\n        k * (0.0003435319965105553 * k + 0.7063770186160144);\n      data[i + 3] = 255;\n    }\n    return data;\n  }\n\n  getData({\n    width,\n    height,\n    forceRGBA = false,\n    forceRGB = false,\n    isSourcePDF = false,\n  }) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        isSourcePDF === true,\n        'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.'\n      );\n    }\n    if (this.numComponents > 4) {\n      throw new JpegError(\"Unsupported color mode\");\n    }\n    // Type of data: Uint8ClampedArray(width * height * numComponents)\n    const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n    if (this.numComponents === 1 && (forceRGBA || forceRGB)) {\n      const len = data.length * (forceRGBA ? 4 : 3);\n      const rgbaData = new Uint8ClampedArray(len);\n      let offset = 0;\n      if (forceRGBA) {\n        grayToRGBA(data, new Uint32Array(rgbaData.buffer));\n      } else {\n        for (const grayColor of data) {\n          rgbaData[offset++] = grayColor;\n          rgbaData[offset++] = grayColor;\n          rgbaData[offset++] = grayColor;\n        }\n      }\n      return rgbaData;\n    } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n      if (forceRGBA) {\n        const rgbaData = new Uint8ClampedArray((data.length / 3) * 4);\n        return this._convertYccToRgba(data, rgbaData);\n      }\n      return this._convertYccToRgb(data);\n    } else if (this.numComponents === 4) {\n      if (this._isColorConversionNeeded) {\n        if (forceRGBA) {\n          return this._convertYcckToRgba(data);\n        }\n        if (forceRGB) {\n          return this._convertYcckToRgb(data);\n        }\n        return this._convertYcckToCmyk(data);\n      } else if (forceRGBA) {\n        return this._convertCmykToRgba(data);\n      } else if (forceRGB) {\n        return this._convertCmykToRgb(data);\n      }\n    }\n    return data;\n  }\n}\n\nexport { JpegImage };\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 { BaseException, info, unreachable, warn } from \"../shared/util.js\";\nimport { log2, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\n\nclass JpxError extends BaseException {\n  constructor(msg) {\n    super(`JPX error: ${msg}`, \"JpxError\");\n  }\n}\n\n// Table E.1\nconst SubbandsGainLog2 = {\n  LL: 0,\n  LH: 1,\n  HL: 1,\n  HH: 2,\n};\n\nclass JpxImage {\n  constructor() {\n    this.failOnCorruptedImage = false;\n  }\n\n  parse(data) {\n    const head = readUint16(data, 0);\n    // No box header, immediate start of codestream (SOC)\n    if (head === 0xff4f) {\n      this.parseCodestream(data, 0, data.length);\n      return;\n    }\n\n    const length = data.length;\n    let position = 0;\n    while (position < length) {\n      let headerSize = 8;\n      let lbox = readUint32(data, position);\n      const tbox = readUint32(data, position + 4);\n      position += headerSize;\n      if (lbox === 1) {\n        // XLBox: read UInt64 according to spec.\n        // JavaScript's int precision of 53 bit should be sufficient here.\n        lbox =\n          readUint32(data, position) * 4294967296 +\n          readUint32(data, position + 4);\n        position += 8;\n        headerSize += 8;\n      }\n      if (lbox === 0) {\n        lbox = length - position + headerSize;\n      }\n      if (lbox < headerSize) {\n        throw new JpxError(\"Invalid box field size\");\n      }\n      const dataLength = lbox - headerSize;\n      let jumpDataLength = true;\n      switch (tbox) {\n        case 0x6a703268: // 'jp2h'\n          jumpDataLength = false; // parsing child boxes\n          break;\n        case 0x636f6c72: // 'colr'\n          // Colorspaces are not used, the CS from the PDF is used.\n          const method = data[position];\n          if (method === 1) {\n            // enumerated colorspace\n            const colorspace = readUint32(data, position + 3);\n            switch (colorspace) {\n              case 16: // this indicates a sRGB colorspace\n              case 17: // this indicates a grayscale colorspace\n              case 18: // this indicates a YUV colorspace\n                break;\n              default:\n                warn(\"Unknown colorspace \" + colorspace);\n                break;\n            }\n          } else if (method === 2) {\n            info(\"ICC profile not supported\");\n          }\n          break;\n        case 0x6a703263: // 'jp2c'\n          this.parseCodestream(data, position, position + dataLength);\n          break;\n        case 0x6a502020: // 'jP\\024\\024'\n          if (readUint32(data, position) !== 0x0d0a870a) {\n            warn(\"Invalid JP2 signature\");\n          }\n          break;\n        // The following header types are valid but currently not used:\n        case 0x6a501a1a: // 'jP\\032\\032'\n        case 0x66747970: // 'ftyp'\n        case 0x72726571: // 'rreq'\n        case 0x72657320: // 'res '\n        case 0x69686472: // 'ihdr'\n          break;\n        default:\n          const headerType = String.fromCharCode(\n            (tbox >> 24) & 0xff,\n            (tbox >> 16) & 0xff,\n            (tbox >> 8) & 0xff,\n            tbox & 0xff\n          );\n          warn(`Unsupported header type ${tbox} (${headerType}).`);\n          break;\n      }\n      if (jumpDataLength) {\n        position += dataLength;\n      }\n    }\n  }\n\n  parseImageProperties(stream) {\n    let newByte = stream.getByte();\n    while (newByte >= 0) {\n      const oldByte = newByte;\n      newByte = stream.getByte();\n      const code = (oldByte << 8) | newByte;\n      // Image and tile size (SIZ)\n      if (code === 0xff51) {\n        stream.skip(4);\n        const Xsiz = stream.getInt32() >>> 0; // Byte 4\n        const Ysiz = stream.getInt32() >>> 0; // Byte 8\n        const XOsiz = stream.getInt32() >>> 0; // Byte 12\n        const YOsiz = stream.getInt32() >>> 0; // Byte 16\n        stream.skip(16);\n        const Csiz = stream.getUint16(); // Byte 36\n        this.width = Xsiz - XOsiz;\n        this.height = Ysiz - YOsiz;\n        this.componentsCount = Csiz;\n        // Results are always returned as `Uint8ClampedArray`s.\n        this.bitsPerComponent = 8;\n        return;\n      }\n    }\n    throw new JpxError(\"No size marker found in JPX stream\");\n  }\n\n  parseCodestream(data, start, end) {\n    const context = {};\n    let doNotRecover = false;\n    try {\n      let position = start;\n      while (position + 1 < end) {\n        const code = readUint16(data, position);\n        position += 2;\n\n        let length = 0,\n          j,\n          sqcd,\n          spqcds,\n          spqcdSize,\n          scalarExpounded,\n          tile;\n        switch (code) {\n          case 0xff4f: // Start of codestream (SOC)\n            context.mainHeader = true;\n            break;\n          case 0xffd9: // End of codestream (EOC)\n            break;\n          case 0xff51: // Image and tile size (SIZ)\n            length = readUint16(data, position);\n            const siz = {};\n            siz.Xsiz = readUint32(data, position + 4);\n            siz.Ysiz = readUint32(data, position + 8);\n            siz.XOsiz = readUint32(data, position + 12);\n            siz.YOsiz = readUint32(data, position + 16);\n            siz.XTsiz = readUint32(data, position + 20);\n            siz.YTsiz = readUint32(data, position + 24);\n            siz.XTOsiz = readUint32(data, position + 28);\n            siz.YTOsiz = readUint32(data, position + 32);\n            const componentsCount = readUint16(data, position + 36);\n            siz.Csiz = componentsCount;\n            const components = [];\n            j = position + 38;\n            for (let i = 0; i < componentsCount; i++) {\n              const component = {\n                precision: (data[j] & 0x7f) + 1,\n                isSigned: !!(data[j] & 0x80),\n                XRsiz: data[j + 1],\n                YRsiz: data[j + 2],\n              };\n              j += 3;\n              calculateComponentDimensions(component, siz);\n              components.push(component);\n            }\n            context.SIZ = siz;\n            context.components = components;\n            calculateTileGrids(context, components);\n            context.QCC = [];\n            context.COC = [];\n            break;\n          case 0xff5c: // Quantization default (QCD)\n            length = readUint16(data, position);\n            const qcd = {};\n            j = position + 2;\n            sqcd = data[j++];\n            switch (sqcd & 0x1f) {\n              case 0:\n                spqcdSize = 8;\n                scalarExpounded = true;\n                break;\n              case 1:\n                spqcdSize = 16;\n                scalarExpounded = false;\n                break;\n              case 2:\n                spqcdSize = 16;\n                scalarExpounded = true;\n                break;\n              default:\n                throw new Error(\"Invalid SQcd value \" + sqcd);\n            }\n            qcd.noQuantization = spqcdSize === 8;\n            qcd.scalarExpounded = scalarExpounded;\n            qcd.guardBits = sqcd >> 5;\n            spqcds = [];\n            while (j < length + position) {\n              const spqcd = {};\n              if (spqcdSize === 8) {\n                spqcd.epsilon = data[j++] >> 3;\n                spqcd.mu = 0;\n              } else {\n                spqcd.epsilon = data[j] >> 3;\n                spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n                j += 2;\n              }\n              spqcds.push(spqcd);\n            }\n            qcd.SPqcds = spqcds;\n            if (context.mainHeader) {\n              context.QCD = qcd;\n            } else {\n              context.currentTile.QCD = qcd;\n              context.currentTile.QCC = [];\n            }\n            break;\n          case 0xff5d: // Quantization component (QCC)\n            length = readUint16(data, position);\n            const qcc = {};\n            j = position + 2;\n            let cqcc;\n            if (context.SIZ.Csiz < 257) {\n              cqcc = data[j++];\n            } else {\n              cqcc = readUint16(data, j);\n              j += 2;\n            }\n            sqcd = data[j++];\n            switch (sqcd & 0x1f) {\n              case 0:\n                spqcdSize = 8;\n                scalarExpounded = true;\n                break;\n              case 1:\n                spqcdSize = 16;\n                scalarExpounded = false;\n                break;\n              case 2:\n                spqcdSize = 16;\n                scalarExpounded = true;\n                break;\n              default:\n                throw new Error(\"Invalid SQcd value \" + sqcd);\n            }\n            qcc.noQuantization = spqcdSize === 8;\n            qcc.scalarExpounded = scalarExpounded;\n            qcc.guardBits = sqcd >> 5;\n            spqcds = [];\n            while (j < length + position) {\n              const spqcd = {};\n              if (spqcdSize === 8) {\n                spqcd.epsilon = data[j++] >> 3;\n                spqcd.mu = 0;\n              } else {\n                spqcd.epsilon = data[j] >> 3;\n                spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n                j += 2;\n              }\n              spqcds.push(spqcd);\n            }\n            qcc.SPqcds = spqcds;\n            if (context.mainHeader) {\n              context.QCC[cqcc] = qcc;\n            } else {\n              context.currentTile.QCC[cqcc] = qcc;\n            }\n            break;\n          case 0xff52: // Coding style default (COD)\n            length = readUint16(data, position);\n            const cod = {};\n            j = position + 2;\n            const scod = data[j++];\n            cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n            cod.sopMarkerUsed = !!(scod & 2);\n            cod.ephMarkerUsed = !!(scod & 4);\n            cod.progressionOrder = data[j++];\n            cod.layersCount = readUint16(data, j);\n            j += 2;\n            cod.multipleComponentTransform = data[j++];\n\n            cod.decompositionLevelsCount = data[j++];\n            cod.xcb = (data[j++] & 0xf) + 2;\n            cod.ycb = (data[j++] & 0xf) + 2;\n            const blockStyle = data[j++];\n            cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n            cod.resetContextProbabilities = !!(blockStyle & 2);\n            cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n            cod.verticallyStripe = !!(blockStyle & 8);\n            cod.predictableTermination = !!(blockStyle & 16);\n            cod.segmentationSymbolUsed = !!(blockStyle & 32);\n            cod.reversibleTransformation = data[j++];\n            if (cod.entropyCoderWithCustomPrecincts) {\n              const precinctsSizes = [];\n              while (j < length + position) {\n                const precinctsSize = data[j++];\n                precinctsSizes.push({\n                  PPx: precinctsSize & 0xf,\n                  PPy: precinctsSize >> 4,\n                });\n              }\n              cod.precinctsSizes = precinctsSizes;\n            }\n            const unsupported = [];\n            if (cod.selectiveArithmeticCodingBypass) {\n              unsupported.push(\"selectiveArithmeticCodingBypass\");\n            }\n            if (cod.terminationOnEachCodingPass) {\n              unsupported.push(\"terminationOnEachCodingPass\");\n            }\n            if (cod.verticallyStripe) {\n              unsupported.push(\"verticallyStripe\");\n            }\n            if (cod.predictableTermination) {\n              unsupported.push(\"predictableTermination\");\n            }\n            if (unsupported.length > 0) {\n              doNotRecover = true;\n              warn(`JPX: Unsupported COD options (${unsupported.join(\", \")}).`);\n            }\n            if (context.mainHeader) {\n              context.COD = cod;\n            } else {\n              context.currentTile.COD = cod;\n              context.currentTile.COC = [];\n            }\n            break;\n          case 0xff90: // Start of tile-part (SOT)\n            length = readUint16(data, position);\n            tile = {};\n            tile.index = readUint16(data, position + 2);\n            tile.length = readUint32(data, position + 4);\n            tile.dataEnd = tile.length + position - 2;\n            tile.partIndex = data[position + 8];\n            tile.partsCount = data[position + 9];\n\n            context.mainHeader = false;\n            if (tile.partIndex === 0) {\n              // reset component specific settings\n              tile.COD = context.COD;\n              tile.COC = context.COC.slice(0); // clone of the global COC\n              tile.QCD = context.QCD;\n              tile.QCC = context.QCC.slice(0); // clone of the global COC\n            }\n            context.currentTile = tile;\n            break;\n          case 0xff93: // Start of data (SOD)\n            tile = context.currentTile;\n            if (tile.partIndex === 0) {\n              initializeTile(context, tile.index);\n              buildPackets(context);\n            }\n\n            // moving to the end of the data\n            length = tile.dataEnd - position;\n            parseTilePackets(context, data, position, length);\n            break;\n          case 0xff53: // Coding style component (COC)\n            warn(\"JPX: Codestream code 0xFF53 (COC) is not implemented.\");\n          /* falls through */\n          case 0xff55: // Tile-part lengths, main header (TLM)\n          case 0xff57: // Packet length, main header (PLM)\n          case 0xff58: // Packet length, tile-part header (PLT)\n          case 0xff64: // Comment (COM)\n            length = readUint16(data, position);\n            // skipping content\n            break;\n          default:\n            throw new Error(\"Unknown codestream code: \" + code.toString(16));\n        }\n        position += length;\n      }\n    } catch (e) {\n      if (doNotRecover || this.failOnCorruptedImage) {\n        throw new JpxError(e.message);\n      } else {\n        warn(`JPX: Trying to recover from: \"${e.message}\".`);\n      }\n    }\n    this.tiles = transformComponents(context);\n    this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n    this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n    this.componentsCount = context.SIZ.Csiz;\n  }\n}\n\nfunction calculateComponentDimensions(component, siz) {\n  // Section B.2 Component mapping\n  component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n  component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n  component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n  component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n  component.width = component.x1 - component.x0;\n  component.height = component.y1 - component.y0;\n}\nfunction calculateTileGrids(context, components) {\n  const siz = context.SIZ;\n  // Section B.3 Division into tile and tile-components\n  const tiles = [];\n  let tile;\n  const numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n  const numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n  for (let q = 0; q < numYtiles; q++) {\n    for (let p = 0; p < numXtiles; p++) {\n      tile = {};\n      tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n      tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n      tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n      tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n      tile.width = tile.tx1 - tile.tx0;\n      tile.height = tile.ty1 - tile.ty0;\n      tile.components = [];\n      tiles.push(tile);\n    }\n  }\n  context.tiles = tiles;\n\n  const componentsCount = siz.Csiz;\n  for (let i = 0, ii = componentsCount; i < ii; i++) {\n    const component = components[i];\n    for (let j = 0, jj = tiles.length; j < jj; j++) {\n      const tileComponent = {};\n      tile = tiles[j];\n      tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n      tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n      tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n      tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n      tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n      tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n      tile.components[i] = tileComponent;\n    }\n  }\n}\nfunction getBlocksDimensions(context, component, r) {\n  const codOrCoc = component.codingStyleParameters;\n  const result = {};\n  if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n    result.PPx = 15;\n    result.PPy = 15;\n  } else {\n    result.PPx = codOrCoc.precinctsSizes[r].PPx;\n    result.PPy = codOrCoc.precinctsSizes[r].PPy;\n  }\n  // calculate codeblock size as described in section B.7\n  result.xcb_ =\n    r > 0\n      ? Math.min(codOrCoc.xcb, result.PPx - 1)\n      : Math.min(codOrCoc.xcb, result.PPx);\n  result.ycb_ =\n    r > 0\n      ? Math.min(codOrCoc.ycb, result.PPy - 1)\n      : Math.min(codOrCoc.ycb, result.PPy);\n  return result;\n}\nfunction buildPrecincts(context, resolution, dimensions) {\n  // Section B.6 Division resolution to precincts\n  const precinctWidth = 1 << dimensions.PPx;\n  const precinctHeight = 1 << dimensions.PPy;\n  // Jasper introduces codeblock groups for mapping each subband codeblocks\n  // to precincts. Precinct partition divides a resolution according to width\n  // and height parameters. The subband that belongs to the resolution level\n  // has a different size than the level, unless it is the zero resolution.\n\n  // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding:\n  // The precinct partitioning for a particular subband is derived from a\n  // partitioning of its parent LL band (i.e., the LL band at the next higher\n  // resolution level)... The LL band associated with each resolution level is\n  // divided into precincts... Each of the resulting precinct regions is then\n  // mapped into its child subbands (if any) at the next lower resolution\n  // level. This is accomplished by using the coordinate transformation\n  // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the\n  // coordinates of a point in the LL band and child subband, respectively.\n  const isZeroRes = resolution.resLevel === 0;\n  const precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1));\n  const precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1));\n  const numprecinctswide =\n    resolution.trx1 > resolution.trx0\n      ? Math.ceil(resolution.trx1 / precinctWidth) -\n        Math.floor(resolution.trx0 / precinctWidth)\n      : 0;\n  const numprecinctshigh =\n    resolution.try1 > resolution.try0\n      ? Math.ceil(resolution.try1 / precinctHeight) -\n        Math.floor(resolution.try0 / precinctHeight)\n      : 0;\n  const numprecincts = numprecinctswide * numprecinctshigh;\n\n  resolution.precinctParameters = {\n    precinctWidth,\n    precinctHeight,\n    numprecinctswide,\n    numprecinctshigh,\n    numprecincts,\n    precinctWidthInSubband,\n    precinctHeightInSubband,\n  };\n}\nfunction buildCodeblocks(context, subband, dimensions) {\n  // Section B.7 Division sub-band into code-blocks\n  const xcb_ = dimensions.xcb_;\n  const ycb_ = dimensions.ycb_;\n  const codeblockWidth = 1 << xcb_;\n  const codeblockHeight = 1 << ycb_;\n  const cbx0 = subband.tbx0 >> xcb_;\n  const cby0 = subband.tby0 >> ycb_;\n  const cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_;\n  const cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_;\n  const precinctParameters = subband.resolution.precinctParameters;\n  const codeblocks = [];\n  const precincts = [];\n  let i, j, codeblock, precinctNumber;\n  for (j = cby0; j < cby1; j++) {\n    for (i = cbx0; i < cbx1; i++) {\n      codeblock = {\n        cbx: i,\n        cby: j,\n        tbx0: codeblockWidth * i,\n        tby0: codeblockHeight * j,\n        tbx1: codeblockWidth * (i + 1),\n        tby1: codeblockHeight * (j + 1),\n      };\n\n      codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n      codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n      codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n      codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n\n      // Calculate precinct number for this codeblock, codeblock position\n      // should be relative to its subband, use actual dimension and position\n      // See comment about codeblock group width and height\n      const pi = Math.floor(\n        (codeblock.tbx0_ - subband.tbx0) /\n          precinctParameters.precinctWidthInSubband\n      );\n      const pj = Math.floor(\n        (codeblock.tby0_ - subband.tby0) /\n          precinctParameters.precinctHeightInSubband\n      );\n      precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n\n      codeblock.precinctNumber = precinctNumber;\n      codeblock.subbandType = subband.type;\n      codeblock.Lblock = 3;\n\n      if (\n        codeblock.tbx1_ <= codeblock.tbx0_ ||\n        codeblock.tby1_ <= codeblock.tby0_\n      ) {\n        continue;\n      }\n      codeblocks.push(codeblock);\n      // building precinct for the sub-band\n      let precinct = precincts[precinctNumber];\n      if (precinct !== undefined) {\n        if (i < precinct.cbxMin) {\n          precinct.cbxMin = i;\n        } else if (i > precinct.cbxMax) {\n          precinct.cbxMax = i;\n        }\n        if (j < precinct.cbyMin) {\n          precinct.cbxMin = j;\n        } else if (j > precinct.cbyMax) {\n          precinct.cbyMax = j;\n        }\n      } else {\n        precincts[precinctNumber] = precinct = {\n          cbxMin: i,\n          cbyMin: j,\n          cbxMax: i,\n          cbyMax: j,\n        };\n      }\n      codeblock.precinct = precinct;\n    }\n  }\n  subband.codeblockParameters = {\n    codeblockWidth: xcb_,\n    codeblockHeight: ycb_,\n    numcodeblockwide: cbx1 - cbx0 + 1,\n    numcodeblockhigh: cby1 - cby0 + 1,\n  };\n  subband.codeblocks = codeblocks;\n  subband.precincts = precincts;\n}\nfunction createPacket(resolution, precinctNumber, layerNumber) {\n  const precinctCodeblocks = [];\n  // Section B.10.8 Order of info in packet\n  const subbands = resolution.subbands;\n  // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence\n  for (let i = 0, ii = subbands.length; i < ii; i++) {\n    const subband = subbands[i];\n    const codeblocks = subband.codeblocks;\n    for (let j = 0, jj = codeblocks.length; j < jj; j++) {\n      const codeblock = codeblocks[j];\n      if (codeblock.precinctNumber !== precinctNumber) {\n        continue;\n      }\n      precinctCodeblocks.push(codeblock);\n    }\n  }\n  return {\n    layerNumber,\n    codeblocks: precinctCodeblocks,\n  };\n}\nfunction LayerResolutionComponentPositionIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let maxDecompositionLevelsCount = 0;\n  for (let q = 0; q < componentsCount; q++) {\n    maxDecompositionLevelsCount = Math.max(\n      maxDecompositionLevelsCount,\n      tile.components[q].codingStyleParameters.decompositionLevelsCount\n    );\n  }\n\n  let l = 0,\n    r = 0,\n    i = 0,\n    k = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    // Section B.12.1.1 Layer-resolution-component-position\n    for (; l < layersCount; l++) {\n      for (; r <= maxDecompositionLevelsCount; r++) {\n        for (; i < componentsCount; i++) {\n          const component = tile.components[i];\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n          for (; k < numprecincts; ) {\n            const packet = createPacket(resolution, k, l);\n            k++;\n            return packet;\n          }\n          k = 0;\n        }\n        i = 0;\n      }\n      r = 0;\n    }\n    throw new JpxError(\"Out of packets\");\n  };\n}\nfunction ResolutionLayerComponentPositionIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let maxDecompositionLevelsCount = 0;\n  for (let q = 0; q < componentsCount; q++) {\n    maxDecompositionLevelsCount = Math.max(\n      maxDecompositionLevelsCount,\n      tile.components[q].codingStyleParameters.decompositionLevelsCount\n    );\n  }\n\n  let r = 0,\n    l = 0,\n    i = 0,\n    k = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    // Section B.12.1.2 Resolution-layer-component-position\n    for (; r <= maxDecompositionLevelsCount; r++) {\n      for (; l < layersCount; l++) {\n        for (; i < componentsCount; i++) {\n          const component = tile.components[i];\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n          for (; k < numprecincts; ) {\n            const packet = createPacket(resolution, k, l);\n            k++;\n            return packet;\n          }\n          k = 0;\n        }\n        i = 0;\n      }\n      l = 0;\n    }\n    throw new JpxError(\"Out of packets\");\n  };\n}\nfunction ResolutionPositionComponentLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let l, r, c, p;\n  let maxDecompositionLevelsCount = 0;\n  for (c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    maxDecompositionLevelsCount = Math.max(\n      maxDecompositionLevelsCount,\n      component.codingStyleParameters.decompositionLevelsCount\n    );\n  }\n  const maxNumPrecinctsInLevel = new Int32Array(\n    maxDecompositionLevelsCount + 1\n  );\n  for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n    let maxNumPrecincts = 0;\n    for (c = 0; c < componentsCount; ++c) {\n      const resolutions = tile.components[c].resolutions;\n      if (r < resolutions.length) {\n        maxNumPrecincts = Math.max(\n          maxNumPrecincts,\n          resolutions[r].precinctParameters.numprecincts\n        );\n      }\n    }\n    maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n  }\n  l = 0;\n  r = 0;\n  c = 0;\n  p = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    // Section B.12.1.3 Resolution-position-component-layer\n    for (; r <= maxDecompositionLevelsCount; r++) {\n      for (; p < maxNumPrecinctsInLevel[r]; p++) {\n        for (; c < componentsCount; c++) {\n          const component = tile.components[c];\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n          if (p >= numprecincts) {\n            continue;\n          }\n          for (; l < layersCount; ) {\n            const packet = createPacket(resolution, p, l);\n            l++;\n            return packet;\n          }\n          l = 0;\n        }\n        c = 0;\n      }\n      p = 0;\n    }\n    throw new JpxError(\"Out of packets\");\n  };\n}\nfunction PositionComponentResolutionLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  const precinctsSizes = getPrecinctSizesInImageScale(tile);\n  const precinctsIterationSizes = precinctsSizes;\n  let l = 0,\n    r = 0,\n    c = 0,\n    px = 0,\n    py = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    // Section B.12.1.4 Position-component-resolution-layer\n    for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n      for (; px < precinctsIterationSizes.maxNumWide; px++) {\n        for (; c < componentsCount; c++) {\n          const component = tile.components[c];\n          const decompositionLevelsCount =\n            component.codingStyleParameters.decompositionLevelsCount;\n          for (; r <= decompositionLevelsCount; r++) {\n            const resolution = component.resolutions[r];\n            const sizeInImageScale =\n              precinctsSizes.components[c].resolutions[r];\n            const k = getPrecinctIndexIfExist(\n              px,\n              py,\n              sizeInImageScale,\n              precinctsIterationSizes,\n              resolution\n            );\n            if (k === null) {\n              continue;\n            }\n            for (; l < layersCount; ) {\n              const packet = createPacket(resolution, k, l);\n              l++;\n              return packet;\n            }\n            l = 0;\n          }\n          r = 0;\n        }\n        c = 0;\n      }\n      px = 0;\n    }\n    throw new JpxError(\"Out of packets\");\n  };\n}\nfunction ComponentPositionResolutionLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  const precinctsSizes = getPrecinctSizesInImageScale(tile);\n  let l = 0,\n    r = 0,\n    c = 0,\n    px = 0,\n    py = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    // Section B.12.1.5 Component-position-resolution-layer\n    for (; c < componentsCount; ++c) {\n      const component = tile.components[c];\n      const precinctsIterationSizes = precinctsSizes.components[c];\n      const decompositionLevelsCount =\n        component.codingStyleParameters.decompositionLevelsCount;\n      for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n        for (; px < precinctsIterationSizes.maxNumWide; px++) {\n          for (; r <= decompositionLevelsCount; r++) {\n            const resolution = component.resolutions[r];\n            const sizeInImageScale = precinctsIterationSizes.resolutions[r];\n            const k = getPrecinctIndexIfExist(\n              px,\n              py,\n              sizeInImageScale,\n              precinctsIterationSizes,\n              resolution\n            );\n            if (k === null) {\n              continue;\n            }\n            for (; l < layersCount; ) {\n              const packet = createPacket(resolution, k, l);\n              l++;\n              return packet;\n            }\n            l = 0;\n          }\n          r = 0;\n        }\n        px = 0;\n      }\n      py = 0;\n    }\n    throw new JpxError(\"Out of packets\");\n  };\n}\nfunction getPrecinctIndexIfExist(\n  pxIndex,\n  pyIndex,\n  sizeInImageScale,\n  precinctIterationSizes,\n  resolution\n) {\n  const posX = pxIndex * precinctIterationSizes.minWidth;\n  const posY = pyIndex * precinctIterationSizes.minHeight;\n  if (\n    posX % sizeInImageScale.width !== 0 ||\n    posY % sizeInImageScale.height !== 0\n  ) {\n    return null;\n  }\n  const startPrecinctRowIndex =\n    (posY / sizeInImageScale.width) *\n    resolution.precinctParameters.numprecinctswide;\n  return posX / sizeInImageScale.height + startPrecinctRowIndex;\n}\nfunction getPrecinctSizesInImageScale(tile) {\n  const componentsCount = tile.components.length;\n  let minWidth = Number.MAX_VALUE;\n  let minHeight = Number.MAX_VALUE;\n  let maxNumWide = 0;\n  let maxNumHigh = 0;\n  const sizePerComponent = new Array(componentsCount);\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const decompositionLevelsCount =\n      component.codingStyleParameters.decompositionLevelsCount;\n    const sizePerResolution = new Array(decompositionLevelsCount + 1);\n    let minWidthCurrentComponent = Number.MAX_VALUE;\n    let minHeightCurrentComponent = Number.MAX_VALUE;\n    let maxNumWideCurrentComponent = 0;\n    let maxNumHighCurrentComponent = 0;\n    let scale = 1;\n    for (let r = decompositionLevelsCount; r >= 0; --r) {\n      const resolution = component.resolutions[r];\n      const widthCurrentResolution =\n        scale * resolution.precinctParameters.precinctWidth;\n      const heightCurrentResolution =\n        scale * resolution.precinctParameters.precinctHeight;\n      minWidthCurrentComponent = Math.min(\n        minWidthCurrentComponent,\n        widthCurrentResolution\n      );\n      minHeightCurrentComponent = Math.min(\n        minHeightCurrentComponent,\n        heightCurrentResolution\n      );\n      maxNumWideCurrentComponent = Math.max(\n        maxNumWideCurrentComponent,\n        resolution.precinctParameters.numprecinctswide\n      );\n      maxNumHighCurrentComponent = Math.max(\n        maxNumHighCurrentComponent,\n        resolution.precinctParameters.numprecinctshigh\n      );\n      sizePerResolution[r] = {\n        width: widthCurrentResolution,\n        height: heightCurrentResolution,\n      };\n      scale <<= 1;\n    }\n    minWidth = Math.min(minWidth, minWidthCurrentComponent);\n    minHeight = Math.min(minHeight, minHeightCurrentComponent);\n    maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n    maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n    sizePerComponent[c] = {\n      resolutions: sizePerResolution,\n      minWidth: minWidthCurrentComponent,\n      minHeight: minHeightCurrentComponent,\n      maxNumWide: maxNumWideCurrentComponent,\n      maxNumHigh: maxNumHighCurrentComponent,\n    };\n  }\n  return {\n    components: sizePerComponent,\n    minWidth,\n    minHeight,\n    maxNumWide,\n    maxNumHigh,\n  };\n}\nfunction buildPackets(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const componentsCount = siz.Csiz;\n  // Creating resolutions and sub-bands for each component\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const decompositionLevelsCount =\n      component.codingStyleParameters.decompositionLevelsCount;\n    // Section B.5 Resolution levels and sub-bands\n    const resolutions = [];\n    const subbands = [];\n    for (let r = 0; r <= decompositionLevelsCount; r++) {\n      const blocksDimensions = getBlocksDimensions(context, component, r);\n      const resolution = {};\n      const scale = 1 << (decompositionLevelsCount - r);\n      resolution.trx0 = Math.ceil(component.tcx0 / scale);\n      resolution.try0 = Math.ceil(component.tcy0 / scale);\n      resolution.trx1 = Math.ceil(component.tcx1 / scale);\n      resolution.try1 = Math.ceil(component.tcy1 / scale);\n      resolution.resLevel = r;\n      buildPrecincts(context, resolution, blocksDimensions);\n      resolutions.push(resolution);\n\n      let subband;\n      if (r === 0) {\n        // one sub-band (LL) with last decomposition\n        subband = {};\n        subband.type = \"LL\";\n        subband.tbx0 = Math.ceil(component.tcx0 / scale);\n        subband.tby0 = Math.ceil(component.tcy0 / scale);\n        subband.tbx1 = Math.ceil(component.tcx1 / scale);\n        subband.tby1 = Math.ceil(component.tcy1 / scale);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolution.subbands = [subband];\n      } else {\n        const bscale = 1 << (decompositionLevelsCount - r + 1);\n        const resolutionSubbands = [];\n        // three sub-bands (HL, LH and HH) with rest of decompositions\n        subband = {};\n        subband.type = \"HL\";\n        subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n        subband.tby0 = Math.ceil(component.tcy0 / bscale);\n        subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n        subband.tby1 = Math.ceil(component.tcy1 / bscale);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolutionSubbands.push(subband);\n\n        subband = {};\n        subband.type = \"LH\";\n        subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n        subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n        subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n        subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolutionSubbands.push(subband);\n\n        subband = {};\n        subband.type = \"HH\";\n        subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n        subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n        subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n        subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolutionSubbands.push(subband);\n\n        resolution.subbands = resolutionSubbands;\n      }\n    }\n    component.resolutions = resolutions;\n    component.subbands = subbands;\n  }\n  // Generate the packets sequence\n  const progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n  switch (progressionOrder) {\n    case 0:\n      tile.packetsIterator = new LayerResolutionComponentPositionIterator(\n        context\n      );\n      break;\n    case 1:\n      tile.packetsIterator = new ResolutionLayerComponentPositionIterator(\n        context\n      );\n      break;\n    case 2:\n      tile.packetsIterator = new ResolutionPositionComponentLayerIterator(\n        context\n      );\n      break;\n    case 3:\n      tile.packetsIterator = new PositionComponentResolutionLayerIterator(\n        context\n      );\n      break;\n    case 4:\n      tile.packetsIterator = new ComponentPositionResolutionLayerIterator(\n        context\n      );\n      break;\n    default:\n      throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n  }\n}\nfunction parseTilePackets(context, data, offset, dataLength) {\n  let position = 0;\n  let buffer,\n    bufferSize = 0,\n    skipNextBit = false;\n  function readBits(count) {\n    while (bufferSize < count) {\n      const b = data[offset + position];\n      position++;\n      if (skipNextBit) {\n        buffer = (buffer << 7) | b;\n        bufferSize += 7;\n        skipNextBit = false;\n      } else {\n        buffer = (buffer << 8) | b;\n        bufferSize += 8;\n      }\n      if (b === 0xff) {\n        skipNextBit = true;\n      }\n    }\n    bufferSize -= count;\n    return (buffer >>> bufferSize) & ((1 << count) - 1);\n  }\n  function skipMarkerIfEqual(value) {\n    if (\n      data[offset + position - 1] === 0xff &&\n      data[offset + position] === value\n    ) {\n      skipBytes(1);\n      return true;\n    } else if (\n      data[offset + position] === 0xff &&\n      data[offset + position + 1] === value\n    ) {\n      skipBytes(2);\n      return true;\n    }\n    return false;\n  }\n  function skipBytes(count) {\n    position += count;\n  }\n  function alignToByte() {\n    bufferSize = 0;\n    if (skipNextBit) {\n      position++;\n      skipNextBit = false;\n    }\n  }\n  function readCodingpasses() {\n    if (readBits(1) === 0) {\n      return 1;\n    }\n    if (readBits(1) === 0) {\n      return 2;\n    }\n    let value = readBits(2);\n    if (value < 3) {\n      return value + 3;\n    }\n    value = readBits(5);\n    if (value < 31) {\n      return value + 6;\n    }\n    value = readBits(7);\n    return value + 37;\n  }\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const sopMarkerUsed = context.COD.sopMarkerUsed;\n  const ephMarkerUsed = context.COD.ephMarkerUsed;\n  const packetsIterator = tile.packetsIterator;\n  while (position < dataLength) {\n    alignToByte();\n    if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n      // Skip also marker segment length and packet sequence ID\n      skipBytes(4);\n    }\n    const packet = packetsIterator.nextPacket();\n    if (!readBits(1)) {\n      continue;\n    }\n    const layerNumber = packet.layerNumber,\n      queue = [];\n    let codeblock;\n    for (let i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n      codeblock = packet.codeblocks[i];\n      let precinct = codeblock.precinct;\n      const codeblockColumn = codeblock.cbx - precinct.cbxMin;\n      const codeblockRow = codeblock.cby - precinct.cbyMin;\n      let codeblockIncluded = false;\n      let firstTimeInclusion = false;\n      let valueReady, zeroBitPlanesTree;\n      if (codeblock.included !== undefined) {\n        codeblockIncluded = !!readBits(1);\n      } else {\n        // reading inclusion tree\n        precinct = codeblock.precinct;\n        let inclusionTree;\n        if (precinct.inclusionTree !== undefined) {\n          inclusionTree = precinct.inclusionTree;\n        } else {\n          // building inclusion and zero bit-planes trees\n          const width = precinct.cbxMax - precinct.cbxMin + 1;\n          const height = precinct.cbyMax - precinct.cbyMin + 1;\n          inclusionTree = new InclusionTree(width, height, layerNumber);\n          zeroBitPlanesTree = new TagTree(width, height);\n          precinct.inclusionTree = inclusionTree;\n          precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n          for (let l = 0; l < layerNumber; l++) {\n            if (readBits(1) !== 0) {\n              throw new JpxError(\"Invalid tag tree\");\n            }\n          }\n        }\n\n        if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n          while (true) {\n            if (readBits(1)) {\n              valueReady = !inclusionTree.nextLevel();\n              if (valueReady) {\n                codeblock.included = true;\n                codeblockIncluded = firstTimeInclusion = true;\n                break;\n              }\n            } else {\n              inclusionTree.incrementValue(layerNumber);\n              break;\n            }\n          }\n        }\n      }\n      if (!codeblockIncluded) {\n        continue;\n      }\n      if (firstTimeInclusion) {\n        zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n        zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n        while (true) {\n          if (readBits(1)) {\n            valueReady = !zeroBitPlanesTree.nextLevel();\n            if (valueReady) {\n              break;\n            }\n          } else {\n            zeroBitPlanesTree.incrementValue();\n          }\n        }\n        codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n      }\n      const codingpasses = readCodingpasses();\n      while (readBits(1)) {\n        codeblock.Lblock++;\n      }\n      const codingpassesLog2 = log2(codingpasses);\n      // rounding down log2\n      const bits =\n        (codingpasses < 1 << codingpassesLog2\n          ? codingpassesLog2 - 1\n          : codingpassesLog2) + codeblock.Lblock;\n      const codedDataLength = readBits(bits);\n      queue.push({\n        codeblock,\n        codingpasses,\n        dataLength: codedDataLength,\n      });\n    }\n    alignToByte();\n    if (ephMarkerUsed) {\n      skipMarkerIfEqual(0x92);\n    }\n    while (queue.length > 0) {\n      const packetItem = queue.shift();\n      codeblock = packetItem.codeblock;\n      if (codeblock.data === undefined) {\n        codeblock.data = [];\n      }\n      codeblock.data.push({\n        data,\n        start: offset + position,\n        end: offset + position + packetItem.dataLength,\n        codingpasses: packetItem.codingpasses,\n      });\n      position += packetItem.dataLength;\n    }\n  }\n  return position;\n}\nfunction copyCoefficients(\n  coefficients,\n  levelWidth,\n  levelHeight,\n  subband,\n  delta,\n  mb,\n  reversible,\n  segmentationSymbolUsed,\n  resetContextProbabilities\n) {\n  const x0 = subband.tbx0;\n  const y0 = subband.tby0;\n  const width = subband.tbx1 - subband.tbx0;\n  const codeblocks = subband.codeblocks;\n  const right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n  const bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n  for (let i = 0, ii = codeblocks.length; i < ii; ++i) {\n    const codeblock = codeblocks[i];\n    const blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n    const blockHeight = codeblock.tby1_ - codeblock.tby0_;\n    if (blockWidth === 0 || blockHeight === 0) {\n      continue;\n    }\n    if (codeblock.data === undefined) {\n      continue;\n    }\n\n    const bitModel = new BitModel(\n      blockWidth,\n      blockHeight,\n      codeblock.subbandType,\n      codeblock.zeroBitPlanes,\n      mb\n    );\n    let currentCodingpassType = 2; // first bit plane starts from cleanup\n\n    // collect data\n    const data = codeblock.data;\n    let totalLength = 0,\n      codingpasses = 0;\n    let j, jj, dataItem;\n    for (j = 0, jj = data.length; j < jj; j++) {\n      dataItem = data[j];\n      totalLength += dataItem.end - dataItem.start;\n      codingpasses += dataItem.codingpasses;\n    }\n    const encodedData = new Uint8Array(totalLength);\n    let position = 0;\n    for (j = 0, jj = data.length; j < jj; j++) {\n      dataItem = data[j];\n      const chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n      encodedData.set(chunk, position);\n      position += chunk.length;\n    }\n    // decoding the item\n    const decoder = new ArithmeticDecoder(encodedData, 0, totalLength);\n    bitModel.setDecoder(decoder);\n\n    for (j = 0; j < codingpasses; j++) {\n      switch (currentCodingpassType) {\n        case 0:\n          bitModel.runSignificancePropagationPass();\n          break;\n        case 1:\n          bitModel.runMagnitudeRefinementPass();\n          break;\n        case 2:\n          bitModel.runCleanupPass();\n          if (segmentationSymbolUsed) {\n            bitModel.checkSegmentationSymbol();\n          }\n          break;\n      }\n\n      if (resetContextProbabilities) {\n        bitModel.reset();\n      }\n\n      currentCodingpassType = (currentCodingpassType + 1) % 3;\n    }\n\n    let offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n    const sign = bitModel.coefficentsSign;\n    const magnitude = bitModel.coefficentsMagnitude;\n    const bitsDecoded = bitModel.bitsDecoded;\n    const magnitudeCorrection = reversible ? 0 : 0.5;\n    let k, n, nb;\n    position = 0;\n    // Do the interleaving of Section F.3.3 here, so we do not need\n    // to copy later. LL level is not interleaved, just copied.\n    const interleave = subband.type !== \"LL\";\n    for (j = 0; j < blockHeight; j++) {\n      const row = (offset / width) | 0; // row in the non-interleaved subband\n      const levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n      for (k = 0; k < blockWidth; k++) {\n        n = magnitude[position];\n        if (n !== 0) {\n          n = (n + magnitudeCorrection) * delta;\n          if (sign[position] !== 0) {\n            n = -n;\n          }\n          nb = bitsDecoded[position];\n          const pos = interleave ? levelOffset + (offset << 1) : offset;\n          coefficients[pos] = reversible && nb >= mb ? n : n * (1 << (mb - nb));\n        }\n        offset++;\n        position++;\n      }\n      offset += width - blockWidth;\n    }\n  }\n}\nfunction transformTile(context, tile, c) {\n  const component = tile.components[c];\n  const codingStyleParameters = component.codingStyleParameters;\n  const quantizationParameters = component.quantizationParameters;\n  const decompositionLevelsCount =\n    codingStyleParameters.decompositionLevelsCount;\n  const spqcds = quantizationParameters.SPqcds;\n  const scalarExpounded = quantizationParameters.scalarExpounded;\n  const guardBits = quantizationParameters.guardBits;\n  const segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n  const resetContextProbabilities =\n    codingStyleParameters.resetContextProbabilities;\n  const precision = context.components[c].precision;\n\n  const reversible = codingStyleParameters.reversibleTransformation;\n  const transform = reversible\n    ? new ReversibleTransform()\n    : new IrreversibleTransform();\n\n  const subbandCoefficients = [];\n  let b = 0;\n  for (let i = 0; i <= decompositionLevelsCount; i++) {\n    const resolution = component.resolutions[i];\n\n    const width = resolution.trx1 - resolution.trx0;\n    const height = resolution.try1 - resolution.try0;\n    // Allocate space for the whole sublevel.\n    const coefficients = new Float32Array(width * height);\n\n    for (let j = 0, jj = resolution.subbands.length; j < jj; j++) {\n      let mu, epsilon;\n      if (!scalarExpounded) {\n        // formula E-5\n        mu = spqcds[0].mu;\n        epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n      } else {\n        mu = spqcds[b].mu;\n        epsilon = spqcds[b].epsilon;\n        b++;\n      }\n\n      const subband = resolution.subbands[j];\n      const gainLog2 = SubbandsGainLog2[subband.type];\n\n      // calculate quantization coefficient (Section E.1.1.1)\n      const delta = reversible\n        ? 1\n        : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n      const mb = guardBits + epsilon - 1;\n\n      // In the first resolution level, copyCoefficients will fill the\n      // whole array with coefficients. In the succeeding passes,\n      // copyCoefficients will consecutively fill in the values that belong\n      // to the interleaved positions of the HL, LH, and HH coefficients.\n      // The LL coefficients will then be interleaved in Transform.iterate().\n      copyCoefficients(\n        coefficients,\n        width,\n        height,\n        subband,\n        delta,\n        mb,\n        reversible,\n        segmentationSymbolUsed,\n        resetContextProbabilities\n      );\n    }\n    subbandCoefficients.push({\n      width,\n      height,\n      items: coefficients,\n    });\n  }\n\n  const result = transform.calculate(\n    subbandCoefficients,\n    component.tcx0,\n    component.tcy0\n  );\n  return {\n    left: component.tcx0,\n    top: component.tcy0,\n    width: result.width,\n    height: result.height,\n    items: result.items,\n  };\n}\nfunction transformComponents(context) {\n  const siz = context.SIZ;\n  const components = context.components;\n  const componentsCount = siz.Csiz;\n  const resultImages = [];\n  for (let i = 0, ii = context.tiles.length; i < ii; i++) {\n    const tile = context.tiles[i];\n    const transformedTiles = [];\n    for (let c = 0; c < componentsCount; c++) {\n      transformedTiles[c] = transformTile(context, tile, c);\n    }\n    const tile0 = transformedTiles[0];\n    const out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n    const result = {\n      left: tile0.left,\n      top: tile0.top,\n      width: tile0.width,\n      height: tile0.height,\n      items: out,\n    };\n\n    // Section G.2.2 Inverse multi component transform\n    let shift, offset;\n    let pos = 0,\n      j,\n      jj,\n      y0,\n      y1,\n      y2;\n    if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n      const fourComponents = componentsCount === 4;\n      const y0items = transformedTiles[0].items;\n      const y1items = transformedTiles[1].items;\n      const y2items = transformedTiles[2].items;\n      const y3items = fourComponents ? transformedTiles[3].items : null;\n\n      // HACK: The multiple component transform formulas below assume that\n      // all components have the same precision. With this in mind, we\n      // compute shift and offset only once.\n      shift = components[0].precision - 8;\n      offset = (128 << shift) + 0.5;\n\n      const component0 = tile.components[0];\n      const alpha01 = componentsCount - 3;\n      jj = y0items.length;\n      if (!component0.codingStyleParameters.reversibleTransformation) {\n        // inverse irreversible multiple component transform\n        for (j = 0; j < jj; j++, pos += alpha01) {\n          y0 = y0items[j] + offset;\n          y1 = y1items[j];\n          y2 = y2items[j];\n          out[pos++] = (y0 + 1.402 * y2) >> shift;\n          out[pos++] = (y0 - 0.34413 * y1 - 0.71414 * y2) >> shift;\n          out[pos++] = (y0 + 1.772 * y1) >> shift;\n        }\n      } else {\n        // inverse reversible multiple component transform\n        for (j = 0; j < jj; j++, pos += alpha01) {\n          y0 = y0items[j] + offset;\n          y1 = y1items[j];\n          y2 = y2items[j];\n          const g = y0 - ((y2 + y1) >> 2);\n\n          out[pos++] = (g + y2) >> shift;\n          out[pos++] = g >> shift;\n          out[pos++] = (g + y1) >> shift;\n        }\n      }\n      if (fourComponents) {\n        for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n          out[pos] = (y3items[j] + offset) >> shift;\n        }\n      }\n    } else {\n      // no multi-component transform\n      for (let c = 0; c < componentsCount; c++) {\n        const items = transformedTiles[c].items;\n        shift = components[c].precision - 8;\n        offset = (128 << shift) + 0.5;\n        for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n          out[pos] = (items[j] + offset) >> shift;\n          pos += componentsCount;\n        }\n      }\n    }\n    resultImages.push(result);\n  }\n  return resultImages;\n}\nfunction initializeTile(context, tileIndex) {\n  const siz = context.SIZ;\n  const componentsCount = siz.Csiz;\n  const tile = context.tiles[tileIndex];\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const qcdOrQcc =\n      context.currentTile.QCC[c] !== undefined\n        ? context.currentTile.QCC[c]\n        : context.currentTile.QCD;\n    component.quantizationParameters = qcdOrQcc;\n    const codOrCoc =\n      context.currentTile.COC[c] !== undefined\n        ? context.currentTile.COC[c]\n        : context.currentTile.COD;\n    component.codingStyleParameters = codOrCoc;\n  }\n  tile.codingStyleDefaultParameters = context.currentTile.COD;\n}\n\n// Section B.10.2 Tag trees\nclass TagTree {\n  constructor(width, height) {\n    const levelsLength = log2(Math.max(width, height)) + 1;\n    this.levels = [];\n    for (let i = 0; i < levelsLength; i++) {\n      const level = {\n        width,\n        height,\n        items: [],\n      };\n      this.levels.push(level);\n      width = Math.ceil(width / 2);\n      height = Math.ceil(height / 2);\n    }\n  }\n\n  reset(i, j) {\n    let currentLevel = 0,\n      value = 0,\n      level;\n    while (currentLevel < this.levels.length) {\n      level = this.levels[currentLevel];\n      const index = i + j * level.width;\n      if (level.items[index] !== undefined) {\n        value = level.items[index];\n        break;\n      }\n      level.index = index;\n      i >>= 1;\n      j >>= 1;\n      currentLevel++;\n    }\n    currentLevel--;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    this.currentLevel = currentLevel;\n    delete this.value;\n  }\n\n  incrementValue() {\n    const level = this.levels[this.currentLevel];\n    level.items[level.index]++;\n  }\n\n  nextLevel() {\n    let currentLevel = this.currentLevel;\n    let level = this.levels[currentLevel];\n    const value = level.items[level.index];\n    currentLevel--;\n    if (currentLevel < 0) {\n      this.value = value;\n      return false;\n    }\n\n    this.currentLevel = currentLevel;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    return true;\n  }\n}\n\nclass InclusionTree {\n  constructor(width, height, defaultValue) {\n    const levelsLength = log2(Math.max(width, height)) + 1;\n    this.levels = [];\n    for (let i = 0; i < levelsLength; i++) {\n      const items = new Uint8Array(width * height);\n      for (let j = 0, jj = items.length; j < jj; j++) {\n        items[j] = defaultValue;\n      }\n\n      const level = {\n        width,\n        height,\n        items,\n      };\n      this.levels.push(level);\n\n      width = Math.ceil(width / 2);\n      height = Math.ceil(height / 2);\n    }\n  }\n\n  reset(i, j, stopValue) {\n    let currentLevel = 0;\n    while (currentLevel < this.levels.length) {\n      const level = this.levels[currentLevel];\n      const index = i + j * level.width;\n      level.index = index;\n      const value = level.items[index];\n\n      if (value === 0xff) {\n        break;\n      }\n\n      if (value > stopValue) {\n        this.currentLevel = currentLevel;\n        // already know about this one, propagating the value to top levels\n        this.propagateValues();\n        return false;\n      }\n\n      i >>= 1;\n      j >>= 1;\n      currentLevel++;\n    }\n    this.currentLevel = currentLevel - 1;\n    return true;\n  }\n\n  incrementValue(stopValue) {\n    const level = this.levels[this.currentLevel];\n    level.items[level.index] = stopValue + 1;\n    this.propagateValues();\n  }\n\n  propagateValues() {\n    let levelIndex = this.currentLevel;\n    let level = this.levels[levelIndex];\n    const currentValue = level.items[level.index];\n    while (--levelIndex >= 0) {\n      level = this.levels[levelIndex];\n      level.items[level.index] = currentValue;\n    }\n  }\n\n  nextLevel() {\n    let currentLevel = this.currentLevel;\n    let level = this.levels[currentLevel];\n    const value = level.items[level.index];\n    level.items[level.index] = 0xff;\n    currentLevel--;\n    if (currentLevel < 0) {\n      return false;\n    }\n\n    this.currentLevel = currentLevel;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    return true;\n  }\n}\n\n// Section D. Coefficient bit modeling\nclass BitModel {\n  static UNIFORM_CONTEXT = 17;\n\n  static RUNLENGTH_CONTEXT = 18;\n\n  // Table D-1\n  // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4),\n  // vv - sum of Vi (0..2), and hh - sum of Hi (0..2)\n  static LLAndLHContextsLabel = new Uint8Array([\n    0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4,\n    7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6,\n    8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8,\n  ]);\n\n  static HLContextLabel = new Uint8Array([\n    0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8,\n    8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3,\n    4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8,\n  ]);\n\n  static HHContextLabel = new Uint8Array([\n    0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5,\n    5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8,\n    8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8,\n  ]);\n\n  constructor(width, height, subband, zeroBitPlanes, mb) {\n    this.width = width;\n    this.height = height;\n\n    let contextLabelTable;\n    if (subband === \"HH\") {\n      contextLabelTable = BitModel.HHContextLabel;\n    } else if (subband === \"HL\") {\n      contextLabelTable = BitModel.HLContextLabel;\n    } else {\n      contextLabelTable = BitModel.LLAndLHContextsLabel;\n    }\n    this.contextLabelTable = contextLabelTable;\n\n    const coefficientCount = width * height;\n\n    // coefficients outside the encoding region treated as insignificant\n    // add border state cells for significanceState\n    this.neighborsSignificance = new Uint8Array(coefficientCount);\n    this.coefficentsSign = new Uint8Array(coefficientCount);\n    let coefficentsMagnitude;\n    if (mb > 14) {\n      coefficentsMagnitude = new Uint32Array(coefficientCount);\n    } else if (mb > 6) {\n      coefficentsMagnitude = new Uint16Array(coefficientCount);\n    } else {\n      coefficentsMagnitude = new Uint8Array(coefficientCount);\n    }\n    this.coefficentsMagnitude = coefficentsMagnitude;\n    this.processingFlags = new Uint8Array(coefficientCount);\n\n    const bitsDecoded = new Uint8Array(coefficientCount);\n    if (zeroBitPlanes !== 0) {\n      for (let i = 0; i < coefficientCount; i++) {\n        bitsDecoded[i] = zeroBitPlanes;\n      }\n    }\n    this.bitsDecoded = bitsDecoded;\n\n    this.reset();\n  }\n\n  setDecoder(decoder) {\n    this.decoder = decoder;\n  }\n\n  reset() {\n    // We have 17 contexts that are accessed via context labels,\n    // plus the uniform and runlength context.\n    this.contexts = new Int8Array(19);\n\n    // Contexts are packed into 1 byte:\n    // highest 7 bits carry the index, lowest bit carries mps\n    this.contexts[0] = (4 << 1) | 0;\n    this.contexts[BitModel.UNIFORM_CONTEXT] = (46 << 1) | 0;\n    this.contexts[BitModel.RUNLENGTH_CONTEXT] = (3 << 1) | 0;\n  }\n\n  setNeighborsSignificance(row, column, index) {\n    const neighborsSignificance = this.neighborsSignificance;\n    const width = this.width,\n      height = this.height;\n    const left = column > 0;\n    const right = column + 1 < width;\n    let i;\n\n    if (row > 0) {\n      i = index - width;\n      if (left) {\n        neighborsSignificance[i - 1] += 0x10;\n      }\n      if (right) {\n        neighborsSignificance[i + 1] += 0x10;\n      }\n      neighborsSignificance[i] += 0x04;\n    }\n\n    if (row + 1 < height) {\n      i = index + width;\n      if (left) {\n        neighborsSignificance[i - 1] += 0x10;\n      }\n      if (right) {\n        neighborsSignificance[i + 1] += 0x10;\n      }\n      neighborsSignificance[i] += 0x04;\n    }\n\n    if (left) {\n      neighborsSignificance[index - 1] += 0x01;\n    }\n    if (right) {\n      neighborsSignificance[index + 1] += 0x01;\n    }\n    neighborsSignificance[index] |= 0x80;\n  }\n\n  runSignificancePropagationPass() {\n    const decoder = this.decoder;\n    const width = this.width,\n      height = this.height;\n    const coefficentsMagnitude = this.coefficentsMagnitude;\n    const coefficentsSign = this.coefficentsSign;\n    const neighborsSignificance = this.neighborsSignificance;\n    const processingFlags = this.processingFlags;\n    const contexts = this.contexts;\n    const labels = this.contextLabelTable;\n    const bitsDecoded = this.bitsDecoded;\n    const processedInverseMask = ~1;\n    const processedMask = 1;\n    const firstMagnitudeBitMask = 2;\n\n    for (let i0 = 0; i0 < height; i0 += 4) {\n      for (let j = 0; j < width; j++) {\n        let index = i0 * width + j;\n        for (let i1 = 0; i1 < 4; i1++, index += width) {\n          const i = i0 + i1;\n          if (i >= height) {\n            break;\n          }\n          // clear processed flag first\n          processingFlags[index] &= processedInverseMask;\n\n          if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n            continue;\n          }\n\n          const contextLabel = labels[neighborsSignificance[index]];\n          const decision = decoder.readBit(contexts, contextLabel);\n          if (decision) {\n            const sign = this.decodeSignBit(i, j, index);\n            coefficentsSign[index] = sign;\n            coefficentsMagnitude[index] = 1;\n            this.setNeighborsSignificance(i, j, index);\n            processingFlags[index] |= firstMagnitudeBitMask;\n          }\n          bitsDecoded[index]++;\n          processingFlags[index] |= processedMask;\n        }\n      }\n    }\n  }\n\n  decodeSignBit(row, column, index) {\n    const width = this.width,\n      height = this.height;\n    const coefficentsMagnitude = this.coefficentsMagnitude;\n    const coefficentsSign = this.coefficentsSign;\n    let contribution, sign0, sign1, significance1;\n    let contextLabel, decoded;\n\n    // calculate horizontal contribution\n    significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n    if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n      sign1 = coefficentsSign[index + 1];\n      if (significance1) {\n        sign0 = coefficentsSign[index - 1];\n        contribution = 1 - sign1 - sign0;\n      } else {\n        contribution = 1 - sign1 - sign1;\n      }\n    } else if (significance1) {\n      sign0 = coefficentsSign[index - 1];\n      contribution = 1 - sign0 - sign0;\n    } else {\n      contribution = 0;\n    }\n    const horizontalContribution = 3 * contribution;\n\n    // calculate vertical contribution and combine with the horizontal\n    significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n    if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n      sign1 = coefficentsSign[index + width];\n      if (significance1) {\n        sign0 = coefficentsSign[index - width];\n        contribution = 1 - sign1 - sign0 + horizontalContribution;\n      } else {\n        contribution = 1 - sign1 - sign1 + horizontalContribution;\n      }\n    } else if (significance1) {\n      sign0 = coefficentsSign[index - width];\n      contribution = 1 - sign0 - sign0 + horizontalContribution;\n    } else {\n      contribution = horizontalContribution;\n    }\n\n    if (contribution >= 0) {\n      contextLabel = 9 + contribution;\n      decoded = this.decoder.readBit(this.contexts, contextLabel);\n    } else {\n      contextLabel = 9 - contribution;\n      decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n    }\n    return decoded;\n  }\n\n  runMagnitudeRefinementPass() {\n    const decoder = this.decoder;\n    const width = this.width,\n      height = this.height;\n    const coefficentsMagnitude = this.coefficentsMagnitude;\n    const neighborsSignificance = this.neighborsSignificance;\n    const contexts = this.contexts;\n    const bitsDecoded = this.bitsDecoded;\n    const processingFlags = this.processingFlags;\n    const processedMask = 1;\n    const firstMagnitudeBitMask = 2;\n    const length = width * height;\n    const width4 = width * 4;\n\n    for (let index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n      indexNext = Math.min(length, index0 + width4);\n      for (let j = 0; j < width; j++) {\n        for (let index = index0 + j; index < indexNext; index += width) {\n          // significant but not those that have just become\n          if (\n            !coefficentsMagnitude[index] ||\n            (processingFlags[index] & processedMask) !== 0\n          ) {\n            continue;\n          }\n\n          let contextLabel = 16;\n          if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n            processingFlags[index] ^= firstMagnitudeBitMask;\n            // first refinement\n            const significance = neighborsSignificance[index] & 127;\n            contextLabel = significance === 0 ? 15 : 14;\n          }\n\n          const bit = decoder.readBit(contexts, contextLabel);\n          coefficentsMagnitude[index] =\n            (coefficentsMagnitude[index] << 1) | bit;\n          bitsDecoded[index]++;\n          processingFlags[index] |= processedMask;\n        }\n      }\n    }\n  }\n\n  runCleanupPass() {\n    const decoder = this.decoder;\n    const width = this.width,\n      height = this.height;\n    const neighborsSignificance = this.neighborsSignificance;\n    const coefficentsMagnitude = this.coefficentsMagnitude;\n    const coefficentsSign = this.coefficentsSign;\n    const contexts = this.contexts;\n    const labels = this.contextLabelTable;\n    const bitsDecoded = this.bitsDecoded;\n    const processingFlags = this.processingFlags;\n    const processedMask = 1;\n    const firstMagnitudeBitMask = 2;\n    const oneRowDown = width;\n    const twoRowsDown = width * 2;\n    const threeRowsDown = width * 3;\n    let iNext;\n    for (let i0 = 0; i0 < height; i0 = iNext) {\n      iNext = Math.min(i0 + 4, height);\n      const indexBase = i0 * width;\n      const checkAllEmpty = i0 + 3 < height;\n      for (let j = 0; j < width; j++) {\n        const index0 = indexBase + j;\n        // using the property: labels[neighborsSignificance[index]] === 0\n        // when neighborsSignificance[index] === 0\n        const allEmpty =\n          checkAllEmpty &&\n          processingFlags[index0] === 0 &&\n          processingFlags[index0 + oneRowDown] === 0 &&\n          processingFlags[index0 + twoRowsDown] === 0 &&\n          processingFlags[index0 + threeRowsDown] === 0 &&\n          neighborsSignificance[index0] === 0 &&\n          neighborsSignificance[index0 + oneRowDown] === 0 &&\n          neighborsSignificance[index0 + twoRowsDown] === 0 &&\n          neighborsSignificance[index0 + threeRowsDown] === 0;\n        let i1 = 0,\n          index = index0;\n        let i = i0,\n          sign;\n        if (allEmpty) {\n          const hasSignificantCoefficent = decoder.readBit(\n            contexts,\n            BitModel.RUNLENGTH_CONTEXT\n          );\n          if (!hasSignificantCoefficent) {\n            bitsDecoded[index0]++;\n            bitsDecoded[index0 + oneRowDown]++;\n            bitsDecoded[index0 + twoRowsDown]++;\n            bitsDecoded[index0 + threeRowsDown]++;\n            continue; // next column\n          }\n          i1 =\n            (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 1) |\n            decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT);\n          if (i1 !== 0) {\n            i = i0 + i1;\n            index += i1 * width;\n          }\n\n          sign = this.decodeSignBit(i, j, index);\n          coefficentsSign[index] = sign;\n          coefficentsMagnitude[index] = 1;\n          this.setNeighborsSignificance(i, j, index);\n          processingFlags[index] |= firstMagnitudeBitMask;\n\n          index = index0;\n          for (let i2 = i0; i2 <= i; i2++, index += width) {\n            bitsDecoded[index]++;\n          }\n\n          i1++;\n        }\n        for (i = i0 + i1; i < iNext; i++, index += width) {\n          if (\n            coefficentsMagnitude[index] ||\n            (processingFlags[index] & processedMask) !== 0\n          ) {\n            continue;\n          }\n\n          const contextLabel = labels[neighborsSignificance[index]];\n          const decision = decoder.readBit(contexts, contextLabel);\n          if (decision === 1) {\n            sign = this.decodeSignBit(i, j, index);\n            coefficentsSign[index] = sign;\n            coefficentsMagnitude[index] = 1;\n            this.setNeighborsSignificance(i, j, index);\n            processingFlags[index] |= firstMagnitudeBitMask;\n          }\n          bitsDecoded[index]++;\n        }\n      }\n    }\n  }\n\n  checkSegmentationSymbol() {\n    const decoder = this.decoder;\n    const contexts = this.contexts;\n    const symbol =\n      (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 3) |\n      (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 2) |\n      (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 1) |\n      decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT);\n    if (symbol !== 0xa) {\n      throw new JpxError(\"Invalid segmentation symbol\");\n    }\n  }\n}\n\n// Section F, Discrete wavelet transformation\nclass Transform {\n  constructor() {\n    if (this.constructor === Transform) {\n      unreachable(\"Cannot initialize Transform.\");\n    }\n  }\n\n  calculate(subbands, u0, v0) {\n    let ll = subbands[0];\n    for (let i = 1, ii = subbands.length; i < ii; i++) {\n      ll = this.iterate(ll, subbands[i], u0, v0);\n    }\n    return ll;\n  }\n\n  extend(buffer, offset, size) {\n    // Section F.3.7 extending... using max extension of 4\n    let i1 = offset - 1,\n      j1 = offset + 1;\n    let i2 = offset + size - 2,\n      j2 = offset + size;\n    buffer[i1--] = buffer[j1++];\n    buffer[j2++] = buffer[i2--];\n    buffer[i1--] = buffer[j1++];\n    buffer[j2++] = buffer[i2--];\n    buffer[i1--] = buffer[j1++];\n    buffer[j2++] = buffer[i2--];\n    buffer[i1] = buffer[j1];\n    buffer[j2] = buffer[i2];\n  }\n\n  filter(x, offset, length) {\n    unreachable(\"Abstract method `filter` called\");\n  }\n\n  iterate(ll, hl_lh_hh, u0, v0) {\n    const llWidth = ll.width,\n      llHeight = ll.height;\n    let llItems = ll.items;\n    const width = hl_lh_hh.width;\n    const height = hl_lh_hh.height;\n    const items = hl_lh_hh.items;\n    let i, j, k, l, u, v;\n\n    // Interleave LL according to Section F.3.3\n    for (k = 0, i = 0; i < llHeight; i++) {\n      l = i * 2 * width;\n      for (j = 0; j < llWidth; j++, k++, l += 2) {\n        items[l] = llItems[k];\n      }\n    }\n    // The LL band is not needed anymore.\n    llItems = ll.items = null;\n\n    const bufferPadding = 4;\n    const rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n    // Section F.3.4 HOR_SR\n    if (width === 1) {\n      // if width = 1, when u0 even keep items as is, when odd divide by 2\n      if ((u0 & 1) !== 0) {\n        for (v = 0, k = 0; v < height; v++, k += width) {\n          items[k] *= 0.5;\n        }\n      }\n    } else {\n      for (v = 0, k = 0; v < height; v++, k += width) {\n        rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n\n        this.extend(rowBuffer, bufferPadding, width);\n        this.filter(rowBuffer, bufferPadding, width);\n\n        items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n      }\n    }\n\n    // Accesses to the items array can take long, because it may not fit into\n    // CPU cache and has to be fetched from main memory. Since subsequent\n    // accesses to the items array are not local when reading columns, we\n    // have a cache miss every time. To reduce cache misses, get up to\n    // 'numBuffers' items at a time and store them into the individual\n    // buffers. The colBuffers should be small enough to fit into CPU cache.\n    let numBuffers = 16;\n    const colBuffers = [];\n    for (i = 0; i < numBuffers; i++) {\n      colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n    }\n    let b,\n      currentBuffer = 0;\n    ll = bufferPadding + height;\n\n    // Section F.3.5 VER_SR\n    if (height === 1) {\n      // if height = 1, when v0 even keep items as is, when odd divide by 2\n      if ((v0 & 1) !== 0) {\n        for (u = 0; u < width; u++) {\n          items[u] *= 0.5;\n        }\n      }\n    } else {\n      for (u = 0; u < width; u++) {\n        // if we ran out of buffers, copy several image columns at once\n        if (currentBuffer === 0) {\n          numBuffers = Math.min(width - u, numBuffers);\n          for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n            for (b = 0; b < numBuffers; b++) {\n              colBuffers[b][l] = items[k + b];\n            }\n          }\n          currentBuffer = numBuffers;\n        }\n\n        currentBuffer--;\n        const buffer = colBuffers[currentBuffer];\n        this.extend(buffer, bufferPadding, height);\n        this.filter(buffer, bufferPadding, height);\n\n        // If this is last buffer in this group of buffers, flush all buffers.\n        if (currentBuffer === 0) {\n          k = u - numBuffers + 1;\n          for (l = bufferPadding; l < ll; k += width, l++) {\n            for (b = 0; b < numBuffers; b++) {\n              items[k + b] = colBuffers[b][l];\n            }\n          }\n        }\n      }\n    }\n\n    return { width, height, items };\n  }\n}\n\n// Section 3.8.2 Irreversible 9-7 filter\nclass IrreversibleTransform extends Transform {\n  filter(x, offset, length) {\n    const len = length >> 1;\n    offset |= 0;\n    let j, n, current, next;\n\n    const alpha = -1.586134342059924;\n    const beta = -0.052980118572961;\n    const gamma = 0.882911075530934;\n    const delta = 0.443506852043971;\n    const K = 1.230174104914001;\n    const K_ = 1 / K;\n\n    // step 1 is combined with step 3\n\n    // step 2\n    j = offset - 3;\n    for (n = len + 4; n--; j += 2) {\n      x[j] *= K_;\n    }\n\n    // step 1 & 3\n    j = offset - 2;\n    current = delta * x[j - 1];\n    for (n = len + 3; n--; j += 2) {\n      next = delta * x[j + 1];\n      x[j] = K * x[j] - current - next;\n      if (n--) {\n        j += 2;\n        current = delta * x[j + 1];\n        x[j] = K * x[j] - current - next;\n      } else {\n        break;\n      }\n    }\n\n    // step 4\n    j = offset - 1;\n    current = gamma * x[j - 1];\n    for (n = len + 2; n--; j += 2) {\n      next = gamma * x[j + 1];\n      x[j] -= current + next;\n      if (n--) {\n        j += 2;\n        current = gamma * x[j + 1];\n        x[j] -= current + next;\n      } else {\n        break;\n      }\n    }\n\n    // step 5\n    j = offset;\n    current = beta * x[j - 1];\n    for (n = len + 1; n--; j += 2) {\n      next = beta * x[j + 1];\n      x[j] -= current + next;\n      if (n--) {\n        j += 2;\n        current = beta * x[j + 1];\n        x[j] -= current + next;\n      } else {\n        break;\n      }\n    }\n\n    // step 6\n    if (len !== 0) {\n      j = offset + 1;\n      current = alpha * x[j - 1];\n      for (n = len; n--; j += 2) {\n        next = alpha * x[j + 1];\n        x[j] -= current + next;\n        if (n--) {\n          j += 2;\n          current = alpha * x[j + 1];\n          x[j] -= current + next;\n        } else {\n          break;\n        }\n      }\n    }\n  }\n}\n\n// Section 3.8.1 Reversible 5-3 filter\nclass ReversibleTransform extends Transform {\n  filter(x, offset, length) {\n    const len = length >> 1;\n    offset |= 0;\n    let j, n;\n\n    for (j = offset, n = len + 1; n--; j += 2) {\n      x[j] -= (x[j - 1] + x[j + 1] + 2) >> 2;\n    }\n\n    for (j = offset + 1, n = len; n--; j += 2) {\n      x[j] += (x[j - 1] + x[j + 1]) >> 1;\n    }\n  }\n}\n\nexport { JpxImage };\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 { getVerbosityLevel, setVerbosityLevel } from \"./shared/util.js\";\nimport { Jbig2Image } from \"./core/jbig2.js\";\nimport { JpegImage } from \"./core/jpg.js\";\nimport { JpxImage } from \"./core/jpx.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  getVerbosityLevel,\n  Jbig2Image,\n  JpegImage,\n  JpxImage,\n  setVerbosityLevel,\n};\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","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","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","isNullOrUndefined","V","P","func","getIteratorDirect","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","Array","$documentAll","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","USE_SYMBOL_AS_UID","$Symbol","record","ITERATOR_INSTEAD_OF_RECORD","step","getMethod","kind","innerResult","innerError","create","defineBuiltIns","IteratorPrototype","createIterResultObject","ITERATOR_HELPER","WRAP_FOR_VALID_ITERATOR","setInternalState","createIteratorProxyPrototype","IS_ITERATOR","nextHandler","returnMethod","inner","WrapForValidIteratorPrototype","IteratorHelperPrototype","IteratorProxy","Iterator","counter","createIteratorProxy","callWithSafeIterationClosing","mapper","map","IS_PURE","ITERATOR","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","toPropertyKey","$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","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","SyntaxError","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","filter","setMethodAcceptSetLike","INCORRECT","from","validateArgumentsLength","$URLSearchParams","URLSearchParams","URLSearchParamsPrototype","append","$delete","params","$value","entries","v","dindex","found","entriesLength","entry","getAll","$has","values","count","isNodeJS","nw","electron","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","MAX_IMAGE_SIZE_TO_CACHE","LINE_FACTOR","LINE_DESCENT_FACTOR","BASELINE_FACTOR","RenderingIntentFlag","ANY","DISPLAY","PRINT","SAVE","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","AnnotationEditorPrefix","AnnotationEditorType","NONE","FREETEXT","HIGHLIGHT","STAMP","INK","AnnotationEditorParamsType","RESIZE","CREATE","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","UNDERLINE","SQUIGGLY","STRIKEOUT","CARET","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","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","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotation","endAnnotation","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","setVerbosityLevel","level","Number","isInteger","getVerbosityLevel","info","msg","console","log","warn","unreachable","assert","cond","_isValidProtocol","url","protocol","createValidAbsoluteUrl","baseUrl","addDefaultProtocol","startsWith","dots","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","shadow","prop","nonSerializable","BaseException","BaseExceptionClosure","PasswordException","code","UnknownErrorException","details","InvalidPDFException","MissingPDFException","UnexpectedResponseException","status","FormatError","AbortException","bytesToString","bytes","MAX_ARGUMENT_COUNT","fromCharCode","strBuf","chunkEnd","chunk","subarray","stringToBytes","str","charCodeAt","string32","objectSize","objectFromMap","isLittleEndian","buffer8","view32","isEvalSupported","FeatureTest","isOffscreenCanvasSupported","OffscreenCanvas","platform","isMac","isCSSRoundSupported","CSS","supports","hexNumbers","padStart","Util","makeHexColor","r","g","scaleMinMax","minMax","m1","m2","applyTransform","p","m","xt","yt","applyInverseTransform","d","getAxialAlignedBoundingBox","p1","p2","p3","p4","inverseTransform","singularValueDecompose2dScale","transpose","c","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","bezierBoundingBox","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","abs","j","mt","jlen","PDFStringTranslateTable","stringToPDFString","encoding","decoder","TextDecoder","fatal","decoded","decode","replaceAll","ex","ii","charCode","charAt","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayBuffer","isArrayEqual","arr1","arr2","getModificationDate","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","PromiseCapability","settled","promise","Promise","resolve","reject","reason","NormalizeRegex","NormalizationMap","normalizeUnicode","Map","_","getUuid","crypto","randomUUID","buf","getRandomValues","AnnotationPrefix","CIRCULAR_REF","EOF","CmdCache","NameCache","RefCache","clearPrimitiveCaches","Name","Cmd","cmd","nonSerializableClosure","Dict","xref","_map","objId","suppressEncryption","__nonSerializable__","assignXref","newXref","key1","key2","key3","Ref","fetch","getAsync","fetchAsync","getArray","getRaw","getKeys","getRawValues","callback","empty","emptyDict","merge","_ref","dictArray","mergeSubDicts","mergedDict","properties","dict","subDict","clear","num","gen","fromString","ref","parseInt","RefSet","parent","_set","put","delete","RefSetCache","putAlias","aliasRef","isName","isCmd","isDict","isRefsEqual","v1","v2","BaseStream","isEmpty","isDataLoaded","getByte","getBytes","peekByte","peekedByte","pos","peekBytes","getUint16","b0","b1","getInt32","b2","b3","getByteRange","begin","end","getString","skip","reset","moveStart","makeSubStream","start","getBaseStreams","PDF_VERSION_REGEXP","getLookupTableFactory","initializer","lookup","MissingDataException","ParserEOFException","XRefEntryException","XRefParseException","arrayBuffersToBytes","arr","dataLength","getInheritableProperty","stopWhenFound","visited","ROMAN_NUMBER_MAP","toRomanNumerals","lowerCase","romanBuf","romanStr","log2","readInt8","readUint16","readUint32","isWhiteSpace","ch","parseXFAPath","positionPattern","component","escapePDFName","char","substring","escapeString","_collectJS","parents","element","js","collectActions","eventType","actions","additionalActionsDicts","additionalActions","action","actionDict","Action","XMLEntities","encodeToXmlString","codePointAt","entity","toUpperCase","validateFontName","fontFamily","mustWarn","re","RegExp","ident","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontWeight","italicAngle","weight","angle","parseFloat","isNaN","recoverJsURL","URL_OPEN_METHODS","regex","jsUrl","newWindow","numberToString","roundedValue","round","toFixed","getNewAnnotationsMap","annotationStorage","newAnnotationsByPage","annotations","pageIndex","isAscii","stringToUTF16HexString","stringToUTF16String","bigEndian","getRotationMatrix","rotation","width","height","QeTable","qe","nmps","nlps","switchFlag","ArithmeticDecoder","bp","dataEnd","chigh","clow","byteIn","ct","readBit","contexts","cx_index","cx_mps","qeTableIcx","qeIcx","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","CCITTFaxDecoder","eof","eoline","EndOfLine","byteAlign","EncodedByteAlign","columns","Columns","rows","Rows","eoblock","EndOfBlock","black","BlackIs1","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","code1","_lookBits","_eatBits","readNextChar","refPos","blackPixels","bits","err","code2","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","_findTableCode","table","limit","limitValue","Jbig2Error","ContextCache","getContexts","DecodingContext","contextCache","cache","MAX_INT_32","MIN_INT_32","decodeInteger","procedure","prev","readBits","bit","sign","signedValue","decodeIAID","codeLength","SegmentTypes","CodingTemplates","y","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","decodingContext","contextLabel","pixel","row1","row2","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","at","Reader","decodeMMRBitmap","useskip","template","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","i0","j0","shift","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","currentWidth","totalWidth","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","bitmapSize","tableBitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","position","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","flags","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","offsetT","offsetS","s2","symbolRow","maxWidth","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patterns","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","header","segments","segment","randomAccess","processSegment","visitor","args","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","chunks","SimpleSegmentVisitor","parseJbig2","numberOfPages","currentPageInfo","bitPacked","imgData","q","mask","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSegment","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onPatternDictionary","onImmediateHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","decodeTablesSegment","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","line","children","isLeaf","buildTree","node","decodeNode","reader","htOffset","HuffmanTable","lines","prefixCodesDone","assignPrefixCodes","rootNode","linesLength","prefixLengthMax","histogram","currentLength","firstCode","currentCode","currentTemp","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","standardTablesCache","currentByte","numBits","getCustomHuffmanTable","currentIndex","numberOfSymbols","codes","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","lookForEOFLimit","Jbig2Image","parseChunks","parse","convertToRGBA","convertBlackAndWhiteToRGBA","convertRGBToRGBA","srcPos","dest","nonBlackColor","inverseDecode","zeroMapping","oneMapping","widthInSource","widthRemainder","srcLength","destPos","elem","_ref2","len32","src32","s1","s3","jj","grayToRGBA","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","codeLengths","pop","getBlockBufferOffset","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","tree","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","s","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","h","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","partialMsg","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","buildComponentData","computationBuffer","currentPos","startPos","maxPos","newPos","currentMarker","newMarker","JpegImage","decodeTransform","colorTransform","_decodeTransform","_colorTransform","dnlScanLines","readDataBlock","endOffset","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","l","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentsCount","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","processed","nextFileMarker","output","scaleX","scaleY","numComponents","_getLinearizedBlockData","isSourcePDF","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_isColorConversionNeeded","_convertYccToRgb","Y","Cb","Cr","_convertYccToRgba","out","_convertYcckToRgb","_convertYcckToRgba","_convertYcckToCmyk","_convertCmykToRgb","_convertCmykToRgba","getData","forceRGBA","forceRGB","rgbaData","grayColor","JpxError","SubbandsGainLog2","LL","LH","HL","HH","JpxImage","failOnCorruptedImage","head","parseCodestream","headerSize","lbox","tbox","jumpDataLength","colorspace","headerType","parseImageProperties","stream","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","bitsPerComponent","context","doNotRecover","sqcd","spqcds","spqcdSize","scalarExpounded","tile","mainHeader","siz","XTsiz","YTsiz","XTOsiz","YTOsiz","isSigned","XRsiz","YRsiz","calculateComponentDimensions","SIZ","calculateTileGrids","QCC","COC","qcd","noQuantization","guardBits","spqcd","epsilon","mu","SPqcds","QCD","currentTile","qcc","cqcc","cod","scod","entropyCoderWithCustomPrecincts","sopMarkerUsed","ephMarkerUsed","progressionOrder","layersCount","multipleComponentTransform","decompositionLevelsCount","xcb","ycb","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","segmentationSymbolUsed","reversibleTransformation","precinctsSizes","precinctsSize","PPx","PPy","unsupported","COD","partIndex","partsCount","initializeTile","buildPackets","parseTilePackets","tiles","transformComponents","numXtiles","numYtiles","tx0","ty0","tx1","ty1","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","xcb_","ycb_","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","codeblock","precinctNumber","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","codingStyleDefaultParameters","maxDecompositionLevelsCount","nextPacket","JpxImage_nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","px","py","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","posX","minWidth","posY","minHeight","startPrecinctRowIndex","MAX_VALUE","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","scale","widthCurrentResolution","heightCurrentResolution","blocksDimensions","bscale","resolutionSubbands","packetsIterator","bufferSize","skipNextBit","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","queue","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","valueReady","zeroBitPlanesTree","included","inclusionTree","InclusionTree","TagTree","nextLevel","incrementValue","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","right","bottom","blockWidth","blockHeight","bitModel","BitModel","currentCodingpassType","totalLength","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","nb","interleave","levelOffset","transformTile","quantizationParameters","ReversibleTransform","IrreversibleTransform","subbandCoefficients","gainLog2","items","calculate","left","top","resultImages","transformedTiles","tile0","fourComponents","y0items","y1items","y2items","y3items","component0","alpha01","qcdOrQcc","levelsLength","levels","currentLevel","defaultValue","stopValue","propagateValues","levelIndex","currentValue","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","horizontalContribution","width4","index0","indexNext","significance","oneRowDown","twoRowsDown","threeRowsDown","iNext","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","extend","j1","j2","hl_lh_hh","llWidth","llHeight","llItems","u","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","alpha","beta","gamma","K_","pdfjsVersion","pdfjsBuild"],"sourceRoot":""}