Welcome to mirror list, hosted at ThFree Co, Russian Federation.

pdf.worker.js.map « build « pdfjs « js - github.com/nextcloud/files_pdfviewer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 64d64be4f1eeb4d3927d6a5fec0247d52611fbf8 (plain)
1
{"version":3,"sources":["webpack://pdfjs-dist/build/pdf.worker/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf.worker/webpack/bootstrap","webpack://pdfjs-dist/build/pdf.worker/src/pdf.worker.js","webpack://pdfjs-dist/build/pdf.worker/src/core/worker.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/@babel/runtime/regenerator/index.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/webpack/buildin/module.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/util.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/global-this.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.global-this.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/export.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/global.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/descriptors.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/fails.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/create-property-descriptor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-indexed-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/indexed-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/classof-raw.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/require-object-coercible.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-primitive.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/has.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/ie8-dom-define.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/document-create-element.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-define-property.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/an-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/redefine.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/set-global.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/inspect-source.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/shared-store.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/internal-state.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/native-weak-map.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/shared-key.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/shared.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-pure.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/uid.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/hidden-keys.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/own-keys.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/get-built-in.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/path.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-keys-internal.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-includes.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-length.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-integer.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-absolute-index.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/enum-bug-keys.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-forced.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/string/starts-with.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.string.starts-with.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/not-a-regexp.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-regexp.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/well-known-symbol.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/native-symbol.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/entry-unbind.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/function-bind-context.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/a-function.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/string/ends-with.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.string.ends-with.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/string/includes.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.string.includes.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/array/includes.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.array.includes.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/add-to-unscopables.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-create.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-define-properties.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-keys.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/html.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-method-uses-to-length.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/array/from.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.string.iterator.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/string-multibyte.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/define-iterator.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/create-iterator-constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterators-core.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/set-to-string-tag.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterators.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/a-possible-prototype.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.array.from.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-from.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/create-property.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/get-iterator-method.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/classof.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-string-tag-support.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/object/assign.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.object.assign.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-assign.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/math/log2.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.math.log2.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/number/is-nan.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.number.is-nan.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/number/is-integer.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.number.is-integer.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-integer.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/typed-array/slice.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.typed-array.slice.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-buffer-view-core.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-buffer-native.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/species-constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/promise/index.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.object.to-string.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-to-string.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/dom-iterables.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.array.iterator.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/native-promise-constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/redefine-all.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/set-species.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/an-instance.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterate.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/task.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-is-ios.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-user-agent.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/microtask.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/promise-resolve.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/new-promise-capability.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/host-report-errors.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/perform.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-v8-version.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.all-settled.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.finally.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/web/url.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/web.url.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/native-url.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/web.url-search-params.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/get-iterator.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/web.url.to-json.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/web-streams-polyfill/dist/ponyfill.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/map/index.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.map.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/collection.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/internal-metadata.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/freezing.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/inherit-if-required.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/collection-strong.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/set/index.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.set.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/weak-map/index.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.weak-map.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/collection-weak.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-iteration.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-species-create.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-array.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/weak-set/index.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.weak-set.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/string/code-point-at.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.string.code-point-at.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/string/from-code-point.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.string.from-code-point.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/symbol/index.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.array.concat.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-method-has-species-support.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/define-well-known-symbol.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.async-iterator.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.description.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.has-instance.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.iterator.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.match.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.match-all.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.replace.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.search.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.species.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.split.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.to-primitive.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.symbol.unscopables.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.math.to-string-tag.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.json.to-string-tag.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/string/pad-start.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.string.pad-start.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/string-pad.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/string-repeat.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/string-pad-webkit-bug.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/string/pad-end.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.string.pad-end.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/object/values.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.object.values.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-to-array.js","webpack://pdfjs-dist/build/pdf.worker/src/core/primitives.js","webpack://pdfjs-dist/build/pdf.worker/src/core/pdf_manager.js","webpack://pdfjs-dist/build/pdf.worker/src/core/chunked_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/core_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/document.js","webpack://pdfjs-dist/build/pdf.worker/src/core/obj.js","webpack://pdfjs-dist/build/pdf.worker/src/core/parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ccitt_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ccitt.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jbig2_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jbig2.js","webpack://pdfjs-dist/build/pdf.worker/src/core/arithmetic_decoder.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpeg_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpg.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpx_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpx.js","webpack://pdfjs-dist/build/pdf.worker/src/core/crypto.js","webpack://pdfjs-dist/build/pdf.worker/src/core/colorspace.js","webpack://pdfjs-dist/build/pdf.worker/src/core/image_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/annotation.js","webpack://pdfjs-dist/build/pdf.worker/src/core/operator_list.js","webpack://pdfjs-dist/build/pdf.worker/src/core/evaluator.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cmap.js","webpack://pdfjs-dist/build/pdf.worker/src/core/fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cff_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/charsets.js","webpack://pdfjs-dist/build/pdf.worker/src/core/encodings.js","webpack://pdfjs-dist/build/pdf.worker/src/core/glyphlist.js","webpack://pdfjs-dist/build/pdf.worker/src/core/standard_fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/unicode.js","webpack://pdfjs-dist/build/pdf.worker/src/core/font_renderer.js","webpack://pdfjs-dist/build/pdf.worker/src/core/type1_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/pattern.js","webpack://pdfjs-dist/build/pdf.worker/src/core/bidi.js","webpack://pdfjs-dist/build/pdf.worker/src/core/metrics.js","webpack://pdfjs-dist/build/pdf.worker/src/core/function.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ps_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/murmurhash3.js","webpack://pdfjs-dist/build/pdf.worker/src/core/image.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf.worker/src/core/worker_stream.js"],"names":["pdfjsVersion","pdfjsBuild","WorkerTask","finish","terminate","ensureNotTerminated","WorkerMessageHandler","setup","testMessageProcessed","handler","supportTransfers","data","setVerbosityLevel","createDocumentHandler","terminated","cancelXHRs","WorkerTasks","verbosity","apiVersion","docParams","workerVersion","enumerableProperties","docId","docBaseUrl","workerHandlerName","task","i","pdfManager","numPages","fingerprint","pdfManagerCapability","source","newPdfManager","cachedChunks","pdfStream","fullRequest","disableAutoFetch","msgHandler","password","length","rangeChunkSize","loaded","flushChunks","pdfFile","arraysToBytes","warn","readPromise","readChunk","arrayByteLength","total","Math","reject","pdfInfo","ex","startWorkerTask","finishWorkerTask","pdfManagerReady","loadDocument","onFailure","evaluatorOptions","maxImageSize","disableFontFace","ignoreErrors","isEvalSupported","fontExtraProperties","getPdfManager","stream","rotate","ref","userUnit","view","Ref","catalog","page","pageIndex","start","VerbosityLevel","Date","sink","intent","renderInteractiveForms","info","operatorListInfo","featureId","UNSUPPORTED_FEATURES","normalizeWhitespace","combineTextItems","waitOn","cleanupPromise","setupDoc","initializeFromPort","maybePort","isMessagePort","module","require","runtime","Op","Object","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","protoGenerator","outerFn","generator","context","tryLocsList","makeInvokeMethod","exports","type","arg","fn","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","prototype","ctor","genFun","__await","record","tryCatch","result","value","invoke","resolve","previousPromise","callInvokeWithMethodAndArg","defineIteratorMethods","AsyncIterator","PromiseImpl","iter","wrap","state","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","done","entry","tryLoc","locs","keys","key","next","iteratorMethod","iterable","isNaN","Context","constructor","reset","name","stop","rootEntry","rootRecord","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","complete","resetTryEntry","thrown","delegateYield","iterator","resultName","nextLoc","regeneratorRuntime","Function","enumerable","get","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","PermissionFlag","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationStateModelType","MARKED","REVIEW","AnnotationMarkedState","UNMARKED","AnnotationReviewState","ACCEPTED","REJECTED","CANCELLED","COMPLETED","NONE","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","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","FontType","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","unknown","forms","javaScript","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontGetPath","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","Number","console","unreachable","base","other","url","absoluteUrl","baseUrl","_isValidProtocol","configurable","writable","BaseException","NullCharactersRegExp","str","assert","bytes","MAX_ARGUMENT_COUNT","String","strBuf","chunkEnd","chunk","arr","resultLength","pos","item","stringToBytes","itemLength","buffer8","view32","IsLittleEndianCached","shadow","isLittleEndian","IsEvalSupportedCached","rgbBuf","m1","m2","xt","p","m","yt","d","p1","Util","p2","r","p3","p4","v","transpose","a","b","c","first","second","sx","sy","rect","orderedX","rect1","rect2","orderedY","PDFStringTranslateTable","code","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","element","capability","isSettled","createObjectURL","digits","forceDataSchema","URL","blob","buffer","ii","b1","b2","b3","d1","d2","d3","d4","globalThis","hasDOM","userAgent","navigator","isIE","Buffer","Element","div","document","OriginalDOMTokenListAdd","DOMTokenList","OriginalDOMTokenListRemove","token","force","arguments","OriginalPushState","window","OriginalReplaceState","args","Array","Uint8Array","isReadableStreamSupported","controller","isNodeJS","process","$","global","getOwnPropertyDescriptor","f","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","options","TARGET","target","GLOBAL","STATIC","stat","FORCED","targetProperty","sourceProperty","descriptor","noTargetGet","forced","undefined","sham","check","it","self","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","O","P","error","call","fails","defineProperty","exec","nativePropertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","V","bitmap","IndexedObject","requireObjectCoercible","classof","split","toString","slice","TypeError","isObject","input","PREFERRED_STRING","val","valueOf","hasOwnProperty","createElement","EXISTS","definePropertyModule","object","anObject","nativeDefineProperty","Attributes","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","unsafe","simple","join","store","functionToString","SHARED","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","set","getterFor","TYPE","wmget","wmhas","wmset","metadata","STATE","test","shared","uid","IS_PURE","push","version","mode","copyright","id","postfix","random","ownKeys","getOwnPropertyDescriptorModule","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","getOwnPropertySymbols","concat","path","aFunction","variable","namespace","internalObjectKeys","enumBugKeys","getOwnPropertyNames","indexOf","names","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","index","includes","toInteger","min","argument","ceil","floor","max","integer","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","entryUnbind","notARegExp","correctIsRegExpLogic","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","proto","searchString","that","search","isRegExp","wellKnownSymbol","MATCH","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","Symbol","createWellKnownSymbol","withoutSetter","METHOD_NAME","regexp","e","bind","CONSTRUCTOR","METHOD","apply","nativeEndsWith","endsWith","endPosition","len","end","$includes","addToUnscopables","arrayMethodUsesToLength","USES_TO_LENGTH","ACCESSORS","create","UNSCOPABLES","ArrayPrototype","defineProperties","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","src","contentWindow","open","F","NullProtoObject","domain","ActiveXObject","Properties","objectKeys","cache","thrower","argument0","argument1","from","charAt","defineIterator","STRING_ITERATOR","setInternalState","iterated","point","CONVERT_TO_STRING","S","position","size","charCodeAt","codeAt","createIteratorConstructor","getPrototypeOf","setPrototypeOf","setToStringTag","Iterators","IteratorsCore","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","entries","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","PrototypeOfArrayIteratorPrototype","arrayIterator","toObject","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","TAG","aPossiblePrototype","CORRECT_SETTER","setter","__proto__","checkCorrectnessOfIteration","INCORRECT_ITERATION","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","arrayLike","C","argumentsLength","mapfn","mapping","step","returnMethod","propertyKey","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","assign","nativeAssign","A","B","symbol","alphabet","forEach","chr","T","j","log2","log","LN2","x","number","isInteger","isFinite","ArrayBufferViewCore","speciesConstructor","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","$slice","Int8Array","list","NATIVE_ARRAY_BUFFER","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","isPrototypeOf","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","isView","klass","isTypedArray","ARRAY","TypedArrayConstructor","property","exportTypedArrayStaticMethod","ArrayBuffer","DataView","SPECIES","defaultConstructor","Promise","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ARRAY_ITERATOR","kind","Arguments","NativePromise","redefineAll","setSpecies","anInstance","iterate","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","V8_VERSION","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newPromiseCapability","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","GLOBAL_CORE_JS_PROMISE","PromiseRejectionEvent","promise","FakePromise","then","all","isThenable","notify","isReject","notified","chain","reactions","ok","reaction","fail","exited","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","event","initEvent","IS_UNHANDLED","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","fetch","$promiseResolve","counter","remaining","alreadyCalled","race","CONSTRUCTOR_NAME","Constructor","Result","stopped","AS_ENTRIES","IS_ITERATOR","boundFunction","iterFn","IS_IOS","location","setImmediate","clear","clearImmediate","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","defer","channel","port","run","runner","listener","post","postMessage","protocol","host","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","flush","head","last","toggle","node","createTextNode","observe","characterData","promiseCapability","PromiseCapability","$$resolve","$$reject","versions","v8","match","allSettled","status","NON_GENERIC","real","onFinally","isFunction","USE_NATIVE_URL","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","URLSearchParams","getInternalSearchParamsState","getState","getInternalURLState","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","EOF","parseHost","codePoints","parseIPv6","isSpecial","percentEncode","C0ControlPercentEncodeSet","parseIPv4","parts","partsLength","numbers","part","radix","ipv4","pop","parseInt","address","pieceIndex","compress","pointer","numbersSeen","ipv4Piece","swaps","swap","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","unshift","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","username","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","seenAt","seenBracket","seenPasswordToken","bufferCodePoints","failure","query","fragment","codePoint","encodedCodePoints","shift","URLConstructor","urlString","baseState","searchParams","searchParamsState","updateSearchParams","updateURL","href","serializeURL","origin","getOrigin","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","pathname","getPathname","getSearch","getSearchParams","hash","getHash","URLPrototype","output","accessorDescriptor","getter","toJSON","nativeCreateObjectURL","nativeRevokeObjectURL","revokeObjectURL","sort","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","encode","inputLength","n","bias","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","q","t","qMinusT","baseMinusT","encoded","labels","label","getIterator","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","RegExp","percentDecode","sequence","deserialize","find","replacer","serialize","parseSearchParams","attributes","attribute","validateArgumentsLength","passed","required","URLSearchParamsIterator","Iterator","params","URLSearchParamsConstructor","init","entryIterator","entryNext","URLSearchParamsPrototype","append","splice","getAll","found","entriesIndex","sliceIndex","callback","body","headers","factory","SymbolPolyfill","description","noop","NumberIsNaN","rethrowAssertionErrorRejection","typeIsObject","createArrayFromList","elements","ArrayBufferCopy","dest","destOffset","srcOffset","IsFiniteNonNegativeNumber","IsNonNegativeNumber","Infinity","Call","CreateAlgorithmFromUnderlyingMethod","underlyingObject","methodName","algoArgCount","extraArgs","PromiseCall","fullArgs","promiseResolvedWith","InvokeOrNoop","promiseRejectedWith","TransferArrayBuffer","IsDetachedBuffer","ValidateAndNormalizeHighWaterMark","highWaterMark","MakeSizeAlgorithmFromSizeFunction","originalPromise","originalPromiseThen","originalPromiseResolve","originalPromiseReject","newPromise","PerformPromiseThen","uponPromise","uponFulfillment","uponRejection","transformPromiseWith","fulfillmentHandler","rejectionHandler","setPromiseIsHandledToTrue","QUEUE_MAX_ARRAY_SIZE","SimpleQueue","_cursor","_size","_front","_elements","_next","_back","oldBack","newBack","oldFront","newFront","oldCursor","newCursor","peek","front","cursor","ReadableStreamCreateReadResult","forAuthorCode","obj","ReadableStreamReaderGenericInitialize","reader","_forAuthorCode","_ownerReadableStream","_reader","_state","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","_storedError","ReadableStreamReaderGenericCancel","ReadableStreamCancel","ReadableStreamReaderGenericRelease","defaultReaderClosedPromiseReject","defaultReaderClosedPromiseResetToRejected","readerLockException","_closedPromise","_closedPromise_resolve","_closedPromise_reject","defaultReaderClosedPromiseResolve","CancelSteps","PullSteps","AcquireReadableStreamDefaultReader","ReadableStreamDefaultReader","ReadableStreamAddReadRequest","readRequest","_resolve","_reject","_readRequests","ReadableStreamFulfillReadRequest","ReadableStreamGetNumReadRequests","ReadableStreamHasDefaultReader","IsReadableStreamDefaultReader","IsReadableStream","IsReadableStreamLocked","defaultReaderBrandCheckException","cancel","read","ReadableStreamDefaultReaderRead","releaseLock","_disturbed","_readableStreamController","_a","AsyncIteratorPrototype","asyncIterator","ReadableStreamAsyncIteratorPrototype","IsReadableStreamAsyncIterator","streamAsyncIteratorBrandCheckException","_asyncIteratorReader","return","_preventCancel","AcquireReadableStreamAsyncIterator","preventCancel","Boolean","DequeueValue","container","pair","_queue","_queueTotalSize","EnqueueValueWithSize","PeekQueueValue","ResetQueue","AbortSteps","ErrorSteps","WritableStream","underlyingSink","strategy","InitializeWritableStream","sizeAlgorithm","SetUpWritableStreamDefaultControllerFromUnderlyingSink","IsWritableStream","streamBrandCheckException","IsWritableStreamLocked","abort","WritableStreamAbort","WritableStreamCloseQueuedOrInFlight","WritableStreamClose","getWriter","AcquireWritableStreamDefaultWriter","WritableStreamDefaultWriter","CreateWritableStream","startAlgorithm","writeAlgorithm","closeAlgorithm","abortAlgorithm","WritableStreamDefaultController","SetUpWritableStreamDefaultController","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","_promise","wasAlreadyErroring","_reason","_wasAlreadyErroring","WritableStreamStartErroring","closeRequest","writer","defaultWriterReadyPromiseResolve","WritableStreamDefaultControllerClose","WritableStreamAddWriteRequest","writeRequest","WritableStreamDealWithRejection","WritableStreamFinishErroring","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","_started","storedError","WritableStreamRejectCloseAndClosedPromiseIfNeeded","abortRequest","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamFinishInFlightClose","defaultWriterClosedPromiseResolve","WritableStreamFinishInFlightCloseWithError","WritableStreamMarkCloseRequestInFlight","WritableStreamMarkFirstWriteRequestInFlight","defaultWriterClosedPromiseReject","WritableStreamUpdateBackpressure","backpressure","defaultWriterReadyPromiseReset","_ownerWritableStream","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterGetDesiredSize","_readyPromise","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterEnsureClosedPromiseRejected","_closedPromiseState","defaultWriterClosedPromiseResetToRejected","_readyPromiseState","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamDefaultControllerWrite","IsWritableStreamDefaultController","_controlledWritableStream","WritableStreamDefaultControllerError","_abortAlgorithm","WritableStreamDefaultControllerClearAlgorithms","_strategySizeAlgorithm","_strategyHWM","_writeAlgorithm","_closeAlgorithm","WritableStreamDefaultControllerGetBackpressure","startResult","startPromise","WritableStreamDefaultControllerAdvanceQueueIfNeeded","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","writeRecord","enqueueE","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","sinkClosePromise","sinkWritePromise","desiredSize","_readyPromise_resolve","_readyPromise_reject","isAbortSignal","aborted","NativeDOMException","DOMException","isDOMExceptionConstructor","createDOMExceptionPolyfill","message","Error","captureStackTrace","DOMException$1","ReadableStreamPipeTo","preventClose","preventAbort","signal","shuttingDown","currentWrite","actions","shutdownWithAction","map","action","pipeLoop","resolveLoop","rejectLoop","pipeStep","isOrBecomesErrored","shutdown","isOrBecomesClosed","destClosed_1","waitForWritesToFinish","oldCurrentWrite","originalIsError","originalError","doTheRest","finalize","newError","isError","removeEventListener","ReadableStreamDefaultController","IsReadableStreamDefaultController","defaultControllerBrandCheckException","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamDefaultControllerCanCloseOrEnqueue","ReadableStreamDefaultControllerClose","enqueue","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","_cancelAlgorithm","ReadableStreamDefaultControllerClearAlgorithms","_controlledReadableStream","_closeRequested","ReadableStreamClose","ReadableStreamDefaultControllerCallPullIfNeeded","pendingPromise","shouldPull","ReadableStreamDefaultControllerShouldCallPull","_pulling","_pullAgain","pullPromise","_pullAlgorithm","ReadableStreamError","ReadableStreamDefaultControllerHasBackpressure","SetUpReadableStreamDefaultController","pullAlgorithm","cancelAlgorithm","SetUpReadableStreamDefaultControllerFromUnderlyingSource","underlyingSource","ReadableStreamTee","cloneForBranch2","reading","canceled1","canceled2","reason1","reason2","branch1","branch2","resolveCancelPromise","cancelPromise","value1","value2","cancel1Algorithm","compositeReason","cancelResult","cancel2Algorithm","CreateReadableStream","NumberIsInteger","ReadableStreamBYOBRequest","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","_view","respond","bytesWritten","_associatedReadableByteStreamController","ReadableByteStreamControllerRespond","respondWithNewView","ReadableByteStreamControllerRespondWithNewView","ReadableByteStreamController","IsReadableByteStreamController","byteStreamControllerBrandCheckException","_byobRequest","_pendingPullIntos","firstDescriptor","byteOffset","bytesFilled","byteLength","byobRequest","SetUpReadableStreamBYOBRequest","ReadableByteStreamControllerGetDesiredSize","_controlledReadableByteStream","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","ReadableByteStreamControllerError","ReadableByteStreamControllerClearAlgorithms","ReadableByteStreamControllerHandleQueueDrain","viewE","autoAllocateChunkSize","_autoAllocateChunkSize","bufferE","pullIntoDescriptor","elementSize","readerType","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerClearPendingPullIntos","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableByteStreamControllerCommitPullIntoDescriptor","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerPullInto","BYTES_PER_ELEMENT","ReadableStreamAddReadIntoRequest","emptyView","ReadableByteStreamControllerRespondInClosedState","ReadableStreamHasBYOBReader","ReadableStreamGetNumReadIntoRequests","ReadableByteStreamControllerRespondInReadableState","remainderSize","remainder","ReadableByteStreamControllerRespondInternal","firstPendingPullInto","transferredBuffer","transferredView","SetUpReadableByteStreamController","SetUpReadableByteStreamControllerFromUnderlyingSource","underlyingByteSource","request","AcquireReadableStreamBYOBReader","ReadableStreamBYOBReader","readIntoRequest","_readIntoRequests","IsReadableStreamBYOBReader","byobReaderBrandCheckException","ReadableStreamBYOBReaderRead","ReadableStream","InitializeReadableStream","typeString","streamBrandCheckException$1","getReader","pipeThrough","_b","readable","_c","pipeTo","tee","branches","sourceCancelPromise","ByteLengthQueuingStrategy","CountQueuingStrategy","TransformStream","transformer","writableStrategy","readableStrategy","writableSizeFunction","writableHighWaterMark","readableSizeFunction","readableHighWaterMark","writableType","writableSizeAlgorithm","readableType","readableSizeAlgorithm","startPromise_resolve","InitializeTransformStream","SetUpTransformStreamDefaultControllerFromTransformer","_transformStreamController","IsTransformStream","streamBrandCheckException$2","_readable","_writable","TransformStreamDefaultSinkWriteAlgorithm","TransformStreamDefaultSinkAbortAlgorithm","TransformStreamDefaultSinkCloseAlgorithm","TransformStreamDefaultSourcePullAlgorithm","TransformStreamErrorWritableAndUnblockWrite","_backpressureChangePromise","_backpressureChangePromise_resolve","TransformStreamSetBackpressure","TransformStreamError","TransformStreamDefaultControllerClearAlgorithms","TransformStreamDefaultController","IsTransformStreamDefaultController","defaultControllerBrandCheckException$1","readableController","_controlledTransformStream","TransformStreamDefaultControllerEnqueue","TransformStreamDefaultControllerError","TransformStreamDefaultControllerTerminate","SetUpTransformStreamDefaultController","transformAlgorithm","flushAlgorithm","_transformAlgorithm","_flushAlgorithm","transformResultE","transformMethod","TransformStreamDefaultControllerPerformTransform","transformPromise","backpressureChangePromise","flushPromise","Map","collection","collectionStrong","InternalMetadataModule","inheritIfRequired","common","IS_MAP","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","nativeMethod","add","getConstructor","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","setStrong","FREEZING","METADATA","isExtensible","setMetadata","objectID","weakData","fastKey","getWeakData","onFreeze","meta","preventExtensions","Wrapper","NewTarget","NewTargetPrototype","internalStateGetterFor","define","getEntry","previous","removed","prev","callbackfn","ITERATOR_NAME","getInternalCollectionState","Set","collectionWeak","enforceIternalState","IS_IE11","InternalWeakMap","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","frozen","ArrayIterationModule","$has","findIndex","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","arraySpeciesCreate","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","filter","some","every","isArray","originalArray","WeakSet","codePointAt","fromCodePoint","nativeFromCodePoint","INCORRECT_LENGTH","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","array","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","foo","nativeObjectCreate","getOwnPropertyNamesExternal","wrappedWellKnownSymbolModule","defineWellKnownSymbol","$forEach","SYMBOL","TO_PRIMITIVE","$stringify","nativeGetOwnPropertyNames","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","isSymbol","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","stringify","space","$replacer","windowNames","getWindowNames","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","JSON","$padStart","WEBKIT_BUG","padStart","repeat","IS_END","fillString","stringLength","fillStr","intMaxLength","fillLen","stringFiller","count","$padEnd","padEnd","$values","TO_ENTRIES","Name","nameCache","nameValue","Cmd","cmdCache","cmdValue","Dict","nonSerializable","assignXref","key2","key3","getArray","getRaw","getKeys","mergedDict","dictArray","dict","isDict","refCache","gen","refValue","RefSet","put","remove","RefSetCache","putAlias","isName","v1","v2","ensureDoc","ensureXRef","ensureCatalog","getPage","fontFallback","manuallyTriggered","cleanup","requestRange","sendProgressiveData","updatePassword","createValidAbsoluteUrl","chunks","onReceiveData","begin","beginChunk","endChunk","curChunk","onReceiveProgressiveData","ensureByte","ensureRange","nextEmptyChunk","numChunks","hasChunk","b0","getBytes","forceClamped","strEnd","subarray","peekedByte","peekBytes","getByteRange","skip","makeSubStream","ChunkedStreamSubstream","missingChunks","subStream","sendRequest","rangeReader","chunkData","_requestChunks","requestId","chunksNeeded","isEmptyObj","chunksToRequest","groupedChunksToRequest","groupedChunk","ranges","requestRanges","range","groupChunks","groupedChunks","prevChunk","onProgress","isProgressive","loadedRequests","requestIds","lastChunk","onError","getBeginChunk","getEndChunk","lookup","initializer","stopWhenFound","LOOP_LIMIT","loopCount","ROMAN_NUMBER_MAP","lowerCase","romanBuf","romanStr","offset","ch","DEFAULT_USER_UNIT","LETTER_SIZE_MEDIABOX","annotation","idCounters","createObjId","getDocId","_getInheritableProperty","_getBoundingBox","box","xref","streams","isStream","loadResources","objectLoader","getOperatorList","contentStreamPromise","resourcesPromise","partialEvaluator","idFactory","fontCache","builtInCMapCache","globalImageCache","pdfFunctionFactory","dataPromises","pageListPromise","opList","transparency","resources","operatorList","annotations","pageOpList","opListPromises","isAnnotationRenderable","extractTextContent","getAnnotationsData","annotationsData","isNum","cropBox","isArrayEqual","parsedAnnotations","annotationPromises","PDF_HEADER_SIGNATURE","STARTXREF_SIGNATURE","ENDOBJ_SIGNATURE","FINGERPRINT_FIRST_BYTES","EMPTY_FINGERPRINT","PDF_HEADER_VERSION_REGEXP","limit","backwards","signatureLength","signature","scanBytes","scanLength","signatureEnd","isArrayBuffer","parse","fields","MAX_PDF_VERSION_LENGTH","_getLinearizationPage","linearization","pageDict","Linearization","err","startXRef","startXRefLength","isWhiteSpace","num","DocumentInfoValidators","Title","Author","Subject","Keywords","Creator","Producer","CreationDate","ModDate","Trapped","docInfo","PDFFormatVersion","IsLinearized","IsAcroFormPresent","IsXFAPresent","IsCollectionPresent","infoDict","stringToPDFString","customValue","isString","isBool","idArray","calculateMD5","fingerprintBuf","hex","isRef","root","items","processed","blackColor","outlineDict","Catalog","destDict","resultObj","title","flags","color","rgbColor","ColorSpace","outlineItem","unsafeUrl","newWindow","bold","italic","encrypt","permissions","getDestination","fetchDestination","pageLabels","prefix","numberTree","nums","currentLabel","currentIndex","labelDict","s","st","toRomanNumerals","LIMIT","A_UPPER_CASE","A_LOWER_CASE","baseCharCode","letterIndex","character","charBuf","jj","promises","translatedFonts","translatedFont","getPageDict","nodesToVisit","visitedNodes","pageKidsCountCache","currentPageIndex","currentNode","objId","kids","getPageIndex","isRefsEqual","parentRef","kidPromises","kid","streamRef","suppressEncryption","subtype","stringToUTF8String","bytesToString","pagesObj","dests","pageLayout","pageMode","ViewerPreferencesValidators","HideToolbar","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","NonFullScreenPageMode","Direction","ViewArea","ViewClip","PrintArea","PrintClip","PrintScaling","Duplex","PickTrayByPDFSize","PrintPageRange","NumCopies","prefs","prefValue","isValid","openAction","attachments","nameTree","fs","jsDict","js","appendIfJavaScriptDict","actionType","actionName","addDefaultProtocolToUrl","urlDict","remoteDest","namedAction","jsAction","URL_OPEN_METHODS","regex","jsUrl","tryConvertUrlEncoding","XRef","streamTypes","fontTypes","setStartXRef","trailerDict","ids","fileId","processXRefTable","entryNum","streamPos","parser","parserBuf1","parserBuf2","isCmd","readXRefTable","tableState","processXRefStream","streamParameters","byteWidths","entryRanges","readXRefStream","streamState","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","indexObjects","TAB","LF","CR","SPACE","PERCENT","what","dataLength","skipped","objRegExp","endobjRegExp","nestedObjRegExp","CHECK_CONTENT_LENGTH","trailerBytes","startxrefBytes","objBytes","xrefBytes","trailers","xrefStms","readToken","skipUntil","uncompressed","contentLength","startPos","endPos","checkPos","tokenStr","objToken","xrefTagOffset","lexer","allowStreams","recoveryMode","rootDict","readXRef","startXRefParsedCache","xrefEntry","fetchIfRef","cacheEntry","fetchUncompressed","obj1","obj2","obj3","fetchCompressed","tableOffset","getCatalogObj","kidsOrEntries","MAX_LEVELS","l","limits","tmp","currentKey","mm","FileSpec","filename","pickPlatformItem","fileObj","ObjectLoader","dictKeys","rawValue","mayHaveChildren","nodesToRevisit","pendingRequests","baseStreams","foundMissingData","addChildren","MAX_LENGTH_TO_CACHE","MAX_ADLER32_LENGTH","bytesLength","cipherTransform","getObj","buf1","isEOF","findDefaultInlineStreamEnd","I","NUL","maybeEIPos","followingBytes","endOffset","findDCTDecodeInlineStreamEnd","foundEOI","markerLength","findASCII85DecodeInlineStreamEnd","TILDE","tildePos","maybeEI","findASCIIHexDecodeInlineStreamEnd","inlineStreamSkipEI","makeInlineImage","dictLength","filterName","filterZero","imageStream","imageBytes","initialStreamPos","dictBytes","cacheKey","computeAdler32","_findStreamLength","SCAN_BLOCK_LENGTH","makeStream","ENDSTREAM_SIGNATURE","actualLength","MAX_TRUNCATION","TRUNCATED_SIGNATURE","maybeLength","lastByte","filterArray","paramsArray","makeFilter","xrefStreamStats","earlyChange","specialChars","knownCommands","eNotation","divideBy","sign","baseValue","powerValue","powerValueSign","currentDigit","numParen","charBuffered","toHexDigit","previousCh","x2","_hexStringWarn","MAX_HEX_STRING_NUM_WARN","isFirstHex","firstDigit","secondDigit","comment","knownCommandFound","possibleCommand","allowZeroValue","linDict","hints","hintsLength","hint","getInt","getHints","objectNumberFirst","endFirst","mainXRefEntriesOffset","pageFirst","Stream","arrayBuffer","getByte","getUint16","getInt32","peekByte","moveStart","StringStream","DecodeStream","emptyBuffer","maybeMinBufferLength","ensureBuffer","requested","buffer2","bufEnd","getBaseStreams","StreamsSequenceStream","bufferLength","newLength","FlateStream","codeLenCodeMap","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","cmf","flg","codeSize","codeBuf","codes","table","maxLen","codeLen","codeVal","lengths","code2","hdr","blockLen","block","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","codeLengths","bitsLength","bitsOffset","repeatLength","code1","dist","PredictorStream","predictor","colors","bits","columns","rowBytes","rawBytes","inbuf","outbuf","inbits","outbits","bytesPerPixel","sum","compArray","bitMask","kk","pixBytes","prevRow","up","upLeft","left","pa","pb","pc","DecryptStream","hasMoreData","decrypt","Ascii85Stream","TILDA_CHAR","Z_LOWER_CHAR","AsciiHexStream","UPSTREAM_BLOCK_SIZE","maxDecodeLength","RunLengthStream","repeatHeader","LZWStream","maxLzwDictionarySize","lzwState","codeLength","nextCode","dictionaryValues","dictionaryLengths","dictionaryPrevCodes","currentSequence","currentSequenceLength","bitsCached","cachedData","blockSize","estimatedDecodedSize","decodedSizeDelta","prevCode","decodedLength","currentBufferLength","hasPrev","NullStream","CCITTFaxStream","K","EndOfLine","EncodedByteAlign","Columns","Rows","EndOfBlock","BlackIs1","CCITTFaxDecoder","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","eoblock","readNextChar","refLine","codingLine","refPos","blackPixels","code3","gotEOL","_addPixels","codingPos","a1","_addPixelsNeg","_findTableCode","limitValue","_getTwoDimCode","_getWhiteCode","_getBlackCode","_lookBits","_eatBits","Jbig2Stream","jbig2Image","globalsStream","globals","Jbig2Image","ContextCache","getContexts","DecodingContext","decoder","contexts","contextCache","bit","readBits","SegmentTypes","CodingTemplates","y","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodingContext","OLD_PIXEL_MASK","row","row1","row2","contextLabel","pixel","decodeMMRBitmap","templateIndex","at","decodeBitmapTemplate0","useskip","template","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","sbb_left","sbb_top","sbb_right","width","pseudoPixelContext","ltp","sltp","i0","j0","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceBitmap","referenceHeight","huffman","newSymbols","currentHeight","symbolCodeLength","symbols","tableB1","getStandardTable","symbolWidths","deltaHeight","huffmanTables","decodeInteger","currentWidth","totalWidth","firstSymbol","deltaWidth","numberOfInstances","decodeTextRegion","symbolId","decodeIAID","rdx","rdy","decodeRefinement","decodeBitmap","bitmapSize","huffmanInput","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","currentFlag","totalSymbolsLength","runLength","stripT","firstS","deltaT","deltaFirstS","currentS","currentT","stripSize","applyRefinement","refinement","inputSymbols","symbolWidth","symbolHeight","rdw","rdh","offsetT","offsetS","s2","symbolRow","maxWidth","t2","deltaS","collectiveWidth","patterns","patternBitmap","patternWidth","combinationOperator","regionBitmap","numberOfPatterns","pattern0","patternHeight","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","gridOffsetX","gridOffsetY","regionRow","patternRow","regionX","regionY","segmentHeader","readUint32","segmentType","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","readUint16","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","genericRegionMmr","searchPatternLength","searchPattern","segments","readSegmentHeader","header","height","RegionSegmentInformationFieldLength","dictionary","dictionaryFlags","atLength","readInt8","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","callbackName","visitor","processSegment","readSegments","processSegments","bitPacked","imgData","mask","SimpleSegmentVisitor","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","onSymbolDictionary","getSymbolDictionaryHuffmanTables","referredSegments","referredSymbols","decodeSymbolDictionary","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onPatternDictionary","decodePatternDictionary","onImmediateHalftoneRegion","decodeHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","customTables","decodeTablesSegment","lineData","line","HuffmanTreeNode","buildTree","decodeNode","htOffset","lines","HuffmanTable","decode","assignPrefixCodes","linesLength","prefixLengthMax","histogram","currentLength","firstCode","currentCode","currentTemp","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","prefixLength","rangeLength","standardTablesCache","Reader","readBit","numBits","byteAlign","runCodesTable","repeatedLength","numberOfRepeats","symbolIDTable","customIndex","tableFirstS","getCustomHuffmanTable","tableDeltaS","tableDeltaT","tableDeltaHeight","tableDeltaWidth","tableBitmapSize","tableAggregateInstances","eof","currentByte","endOfBlock","lookForEOFLimit","parseChunks","parseJbig2Chunks","parseJbig2","QeTable","qe","nmps","nlps","switchFlag","bp","cx_index","cx_mps","qeTableIcx","qeIcx","JpegStream","jpegOptions","decodeTransform","colorTransform","decodeArr","bitsPerComponent","decodeArrLength","transformNeeded","maxValue","jpegImage","forceRGB","isSourcePDF","JpegImage","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","children","parseDNLMarker","mcusPerLine","frame","progressive","startOffset","bitsData","bitsCount","nextByte","scanLines","maybeScanLines","blockRow","receive","decodeHuffman","component","diff","receiveAndExtend","rs","z","blockOffset","eobrun","successiveACState","offsetZ","successiveACNextValue","mcuRow","mcu","mcuCol","blockCol","getBlockBufferOffset","componentsLength","components","spectralStart","decodeFn","successivePrev","mcuExpected","mcuToRead","resetInterval","decodeBlock","h","decodeMcu","fileMarker","findNextFileMarker","partialMsg","qt","blockData","p0","blockBufferOffset","p5","p6","p7","v0","v3","v4","v7","v5","v6","col","blocksPerLine","blocksPerColumn","computationBuffer","quantizeAndInverse","maxPos","newPos","currentPos","currentMarker","invalid","marker","newMarker","dnlScanLines","mcusPerColumn","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","appData","readDataBlock","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","sofScanLines","componentsCount","maxH","maxV","componentId","qId","quantizationId","quantizationTable","prepareComponents","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","buildHuffmanTable","selectorsCount","componentIndex","tableSpec","spectralEnd","successiveApproximation","decodeScan","nextFileMarker","buildComponentData","scaleX","scaleY","_getLinearizedBlockData","numComponents","xScaleBlockOffset","mask3LSB","componentScaleX","componentScaleY","blocksPerScanline","lastComponentScaleX","_convertYccToRgb","Y","Cb","Cr","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","getData","rgbData","grayColor","JpxStream","jpxImage","tileCount","tileComponents","tileWidth","tileHeight","tileLeft","tileTop","srcPosition","dataPosition","imgRowSize","tileRowSize","JpxImage","SubbandsGainLog2","LL","LH","HL","HH","headerSize","lbox","tbox","jumpDataLength","colorspace","headerType","parseImageProperties","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","parseCodestream","doNotRecover","siz","precision","isSigned","XRsiz","YRsiz","calculateComponentDimensions","calculateTileGrids","qcd","sqcd","spqcdSize","scalarExpounded","spqcds","spqcd","qcc","cqcc","cod","scod","blockStyle","precinctsSizes","precinctsSize","PPx","PPy","unsupported","tile","initializeTile","buildPackets","parseTilePackets","transformComponents","tiles","numXtiles","numYtiles","tileComponent","codOrCoc","precinctWidth","dimensions","precinctHeight","isZeroRes","resolution","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","numprecinctshigh","numprecincts","xcb_","ycb_","codeblockWidth","codeblockHeight","cbx0","subband","cby0","cbx1","cby1","precinctParameters","codeblocks","precincts","codeblock","cbx","cby","tbx0","tby0","tbx1","tby1","pi","pj","precinctNumber","precinct","cbxMin","cbyMin","cbxMax","cbyMax","numcodeblockwide","numcodeblockhigh","precinctCodeblocks","subbands","layerNumber","tileIndex","layersCount","maxDecompositionLevelsCount","packet","createPacket","maxNumPrecinctsInLevel","maxNumPrecincts","resolutions","getPrecinctSizesInImageScale","precinctsIterationSizes","px","py","decompositionLevelsCount","sizeInImageScale","getPrecinctIndexIfExist","posX","pxIndex","precinctIterationSizes","posY","pyIndex","startPrecinctRowIndex","minWidth","minHeight","maxNumWide","maxNumHigh","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","scale","widthCurrentResolution","heightCurrentResolution","blocksDimensions","getBlocksDimensions","buildPrecincts","buildCodeblocks","bscale","resolutionSubbands","progressionOrder","bufferSize","skipNextBit","skipBytes","sopMarkerUsed","ephMarkerUsed","packetsIterator","alignToByte","skipMarkerIfEqual","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","inclusionTree","zeroBitPlanesTree","valueReady","codingpasses","readCodingpasses","codingpassesLog2","codedDataLength","packetItem","x0","y0","right","bottom","blockWidth","blockHeight","bitModel","currentCodingpassType","totalLength","dataItem","encodedData","magnitude","bitsDecoded","magnitudeCorrection","reversible","interleave","levelOffset","nb","coefficients","mb","codingStyleParameters","quantizationParameters","guardBits","segmentationSymbolUsed","subbandCoefficients","mu","epsilon","gainLog2","copyCoefficients","top","resultImages","transformedTiles","transformTile","tile0","out","fourComponents","y0items","y1items","y2items","y3items","component0","alpha01","y1","y2","g","qcdOrQcc","TagTree","levelsLength","level","currentLevel","incrementValue","nextLevel","InclusionTree","stopValue","propagateValues","levelIndex","BitModel","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","coefficentsMagnitude","zeroBitPlanes","setDecoder","setNeighborsSignificance","neighborsSignificance","column","runSignificancePropagationPass","coefficentsSign","processingFlags","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","significance1","sign1","sign0","contribution","horizontalContribution","decoded","runMagnitudeRefinementPass","width4","index0","indexNext","significance","runCleanupPass","oneRowDown","twoRowsDown","threeRowsDown","iNext","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","checkSegmentationSymbol","Transform","ll","j1","j2","llWidth","llHeight","llItems","hl_lh_hh","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","u","IrreversibleTransform","alpha","beta","gamma","K_","current","ReversibleTransform","ARCFourCipher","keyLength","encryptBlock","tmp2","h0","h1","h2","h3","paddedLength","padded","w","rotateArg","Word64","highInteger","lowInteger","and","word","xor","or","shiftRight","places","shiftLeft","rotateRight","high","low","not","lowAdd","highAdd","copyTo","calculateSHA256","rotr","h4","h5","h6","h7","littleSigmaPrime","littleSigma","t1","sigmaPrime","sigma","maj","calculateSHA512","mode384","tmp1","tmp3","calculateSHA384","NullCipher","decryptBlock","_expandKey","_decrypt","s0","s1","s3","_encrypt","_decryptBlock2","sourceLength","iv","plain","outputLength","lastBlock","psLen","cipher","rcon","t3","t4","PDF17","array1","array2","checkOwnerPassword","hashData","ownerValidationSalt","compareByteArrays","checkUserPassword","getOwnerKey","ownerKeySalt","getUserKey","PDF20","arrayLength","userBytes","k1","concatArrays","calculatePDF20Hash","CipherTransform","createStream","decryptString","CipherTransformFactory","defaultPasswordBytes","passwordLength","revision","pdfAlgorithm","hashDataSize","ownerPassword","keyLengthInBytes","encryptionKey","checkData","derivedKey","userPassword","identityName","algorithm","cfDict","streamCryptoName","handlerDict","encryptMetadata","fileIdBytes","utf8StringToString","passwordBytes","prepareKeyData","uBytes","userValidationSalt","userKeySalt","ownerEncryption","userEncryption","perms","createEncryptionKey20","decodedPassword","decodeUserPassword","cf","cryptFilter","cfm","buildObjectKey","createCipherTransform","buildCipherConstructor","cipherConstructor","COMPONENTS","xRatio","w1","yRatio","newIndex","xScaled","w1Scanline","oldIndex","getRgb","rgb","getRgbItem","getRgbBuffer","getOutputLength","isPassthrough","isDefaultDecode","fillRgb","originalWidth","numComponentColors","needsResizing","originalHeight","allColors","bpc","colorMap","destPos","comps","rgbPos","resizeRgbImage","IR","whitePoint","blackPoint","matrix","basePatternCS","baseIndexedCS","hiVal","numComps","alt","tintFn","res","cs","colorSpaces","resCS","altIR","altCS","tmpBuf","baseNumComps","usesZeroToOneRange","baseBuf","scaled","tinted","outputDelta","lookupPos","decodeMap","DeviceCmykCS","convertToRgb","CalGrayCS","AG","L","CalRGBCS","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","LMS","sourceWhitePoint","D65X","D65Y","D65Z","adjustToRange","decodeL","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","XYZ_In","matrixProduct","LMS_Flat","convertToFlat","LMS_D65","convertToD65","AGR","BGG","CGB","X","Z","XYZ","normalizeWhitePointToFlat","XYZ_Black","compensateBlackPoint","XYZ_D65","normalizeWhitePointToD65","SRGB","sRGBTransferFunction","XW","YW","ZW","XB","YB","ZB","LabCS","low2","Ls","as","bs","maxVal","M","N","fn_g","getByName","getByRef","shouldCache","pageIndexSet","GlobalImageCache","addPageIndex","setData","onlyData","parameters","fieldType","quadPoints","quadPointsLists","annotationFlags","borderStyle","contents","hasAppearance","modificationDate","_hasFlag","_isViewable","_isPrintable","setContents","setModificationDate","setFlags","hasFlag","setRectangle","setColor","setBorderStyle","dictType","setAppearance","appearanceStates","normalAppearanceState","appearanceDict","bbox","getTransformMatrix","setWidth","maxHeight","setStyle","setDashArray","dashArray","allZeros","validNumber","setHorizontalCornerRadius","setVerticalCornerRadius","rawIRT","rt","setCreationDate","_constructFieldName","fieldName","loopDict","hasFieldFlag","alignment","maximumLength","renderForms","_processCheckBox","customAppearance","exportValueOptionsDict","exportValues","hasCorrectOptionCount","_processRadioButton","fieldParent","fieldParentValue","_processPushButton","option","isOptionArray","exportValue","displayValue","DEFAULT_ICON_SIZE","getQuadPoints","parentItem","parentSubtype","rawParent","parentFlags","rawVertices","originalInkLists","QueueOptimizer","pattern","checkFn","iterateFn","processFn","iFirstPIMXO","iFirstSave","argsArray","imageMask","fnArray","InitialState","addState","MIN_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_WIDTH","IMAGE_PADDING","curr","iFirstTransform","iFirstPIIXO","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","dataOffset","MIN_IMAGES_IN_MASKS_BLOCK","MAX_IMAGES_IN_MASKS_BLOCK","MAX_SAME_IMAGES_IN_MASKS_BLOCK","handlePaintSolidColorImageMask","isSameImage","firstPIMXOArg0","firstTransformArg0","firstTransformArg3","iTransform","iPIMXO","transformArgs","positions","images","maskParams","iFirstPIXO","firstPIXOArg0","MIN_IMAGES_IN_BLOCK","MAX_IMAGES_IN_BLOCK","iFirstSetFont","firstSetFontArg0","firstSetFontArg1","MIN_CHARS_IN_BLOCK","MAX_CHARS_IN_BLOCK","iFirstBeginText","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","iFirst","iEndText","iCurr","_optimize","NullOptimizer","OperatorList","CHUNK_SIZE","CHUNK_SIZE_ABOUT","streamSink","addOp","addDependency","addDependencies","addOpList","getIR","transfers","PartialEvaluator","DefaultPartialEvaluatorOptions","readableStream","pump","TIME_SLOT_DURATION_MS","CHECK_TIME_EVERY","TimeSlotManager","parsingArray","maybeBM","normalizeBlendMode","deferred","TILING_PATTERN","SHADING_PATTERN","clone","newOptions","newEvaluator","hasBlendModes","nodes","graphicStates","graphicStatesKeys","graphicState","bm","xObjects","xObjectsKeys","xObject","xResources","xobj","group","groupOptions","isolated","knockout","groupSubtype","colorSpace","initialState","isInline","image","imageRef","bitStrideLength","imgArray","imageIsFromDecodeStream","inverseDecode","localImageCache","softMask","SMALL_IMAGE_DIMENSIONS","imageObj","cacheGlobally","imgPromise","handleSMask","smaskContent","smaskOptions","backdrop","transferObj","isPDFFunction","transferFn","transferMap","stateManager","handleTilingType","tilingOpList","resourcesArray","patternDict","patternResources","handleSetFont","fontArgs","fontName","translated","loadedName","extraProperties","handleText","glyphs","isAddToPathSet","ensureStateFont","gStateObj","gStateKeys","gState","loadFont","errorFont","fontRef","fontRes","fontCapability","preEvaluatedFont","fontRefIsRef","fontID","fontAliases","aliasFontRef","Font","translatedPromise","xrefFontStats","fontFile3","fontType","getFontType","buildPath","parsingText","lastIndex","opArgs","parseColorSpace","patternName","typeNum","shading","Pattern","xobjs","preprocessor","timeSlotManager","promiseBody","operation","localImage","resolveXObject","globalImage","fontSize","combinedGlyphs","arrLength","arrItem","shadingRes","patternIR","dictName","extGState","closePendingRestoreOPS","getTextContent","seenStyles","WhitespaceRegexp","textContent","styles","textContentItem","initialized","vertical","lastAdvanceWidth","lastAdvanceHeight","textAdvanceScale","spaceWidth","fakeSpaceMin","fakeMultiSpaceMin","fakeMultiSpaceMax","textRunBreakAllowed","SPACE_FACTOR","MULTI_SPACE_FACTOR","MULTI_SPACE_FACTOR_MAX","emptyXObjectCache","textState","fontFamily","ascent","descent","tsm","glyphHeight","trm","scaleLineX","scaleCtmX","textChunk","bidiResult","bidi","replaceWhitespace","dir","ensureTextContentItem","glyph","glyphWidth","glyphUnicode","NormalizedUnicodes","reverseIfRtl","charSpacing","wordSpacing","addFakeSpaces","tx","ty","w0","fakeSpaces","runBidiTransform","enqueueChunk","fontNameArg","fontSizeArg","flushTextContentItem","isSameTextLine","advance","buildTextContentItem","breakTextRun","currentState","xObjStateManager","sinkWrapper","enqueueInvoked","gStateFont","extractDataStructures","toUnicode","baseDict","toUnicodePromise","cidSystemInfo","registry","ordering","supplement","cidToGidMap","cidToGidBytes","differences","baseEncodingName","encoding","diffEncoding","getEncoding","isSymbolicFont","FontFlags","isNonsymbolicFont","readToUnicode","builtToUnicode","_buildSimpleFontToUnicode","forceGlyphs","glyphName","glyphsUnicodeMap","codeStr","unicode","getUnicodeForGlyph","baseEncoding","buildToUnicode","ucs2CMapName","fetchBuiltInCMap","useCMap","cMap","cid","ucs2","ucs2CMap","cmapObj","cmap","w2","readCidToGidMap","glyphsData","glyphID","extractWidths","glyphsWidths","defaultWidth","glyphsVMetrics","widths","vmetrics","defaultVMetrics","vmetric","firstChar","parseFloat","baseFontName","metrics","isMonospace","firstWidth","isSerifFont","fontNameWoStyle","getBaseFontMetrics","monospace","stdFontMap","lookupName","Metrics","glyphWidths","buildCharCodeToWidth","charCode","widthsByGlyphName","preEvaluateFont","composite","df","diffLength","diffBuf","diffEntry","lastChar","uint8array","translateFont","maxCharIndex","newProperties","baseFont","fontNameStr","baseFontStr","fontFile","length1","length2","length3","fixedPitch","fontMatrix","xHeight","capHeight","italicAngle","isType3Font","cidEncoding","cMapPromise","accent","send","fallback","loadType3Data","type3Options","evaluator","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcKeys","charProcOperatorList","glyphStream","parentOperatorList","dummyOperatorList","StateManager","old","TextState","setTextLineMatrix","translateTextMatrix","translateTextLineMatrix","calcTextLineMatrixAdvance","txDiff","tyDiff","denominator","calcRenderMatrix","carriageReturn","EvalState","EvaluatorPreprocessor","getOPMap","numArgs","variableArgs","MAX_INVALID_PATH_OPS","cmd","opSpec","argsLength","nonProcessedArgs","preprocessCommand","BUILT_IN_CMAPS","MAX_MAP_RANGE","builtInCMap","addCodespaceRange","mapCidRange","dstLow","mapBfRange","mapBfRangeToArray","mapOne","contains","charCodeOf","readCharCode","codespaceRanges","nn","codespaceRange","BinaryCMapReader","MAX_NUM_SIZE","MAX_ENCODED_NUM_SIZE","BinaryCMapStream","readByte","readNumber","readSigned","readHex","readHexNumber","stack","sp","readHexSigned","readString","dataSize","ucs2DataSize","subitemsCount","addHex","hexToInt","incHex","hexToStr","extend","CMapFactory","expectString","strToInt","dst","expectInt","parseWMode","parseCMapName","embeddedUseCMap","parseCodespaceRange","parseBfChar","parseCidChar","parseBfRange","parseCidRange","extendCMap","useCodespaceRanges","cMapData","compressionType","parseCMap","createBuiltInCMap","parsedCMap","PRIVATE_USE_AREAS","PDF_GLYPH_SPACE_UNITS","SEAC_ANALYSIS_ENABLED","EXPORT_DATA_PROPERTIES","EXPORT_DATA_EXTRA_PROPERTIES","FixedPitch","Serif","Symbolic","Script","Nonsymbolic","Italic","AllCap","SmallCap","ForceBold","MacStandardGlyphOrdering","builtInEncoding","Glyph","ToUnicodeMap","amend","IdentityToUnicodeMap","OpenTypeFileBuilder","maxPower2","searchRange","rangeShift","entrySize","OTF_HEADER_SIZE","OTF_TABLE_ENTRY_SIZE","toArray","sfnt","tables","tablesNames","numTables","tableOffsets","writeData","string32","writeInt16","tableName","checksum","quad","writeInt32","addTable","fallbackName","getFontFileType","cff","adjustWidths","ID","isTrueTypeFile","isTrueTypeCollectionFile","fileType","isOpenTypeFile","isType1File","isCFFFile","fileSubtype","toFontChar","newMap","privateUseAreaIndex","nextAvailableFontCharCode","privateUseOffetEnd","originalCharCode","glyphId","charCodeToGlyphId","hasGlyph","fontCharCode","codeIndices","getRanges","string16","bmpLength","trailingRangesCount","segCount","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","contiguous","startCode","format314","format31012","header31012","os2","selection","usWinAscent","override","unitsPerEm","yMax","yMin","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","getUnicodeRangeFor","typoAscent","typoDescent","winAscent","winDescent","angle","strings","stringsUnicode","strBufUnicode","platforms","encodings","languages","namesRecordCount","nameTable","strOffset","strs","nameRecord","mimetype","renderer","FontRendererFactory","exportData","exportDataProperties","fallbackToSystemFont","nonStdFontMap","isStandardFont","GlyphMapForStandardFonts","SupplementalGlyphMapForArialBlack","SupplementalGlyphMapForCalibri","isIdentityUnicode","buildToFontChar","unicodeCharCode","checkAndRepair","VALID_TABLES","readTableEntry","previousPosition","ttf","entrySelector","ttcTag","ttc","majorVersion","minorVersion","numFonts","offsetTable","readTrueTypeCollectionHeader","potentialHeader","readOpenTypeHeader","potentialTables","readTables","readNameTable","nameEntry","platformId","encodingId","mappings","hasShortCmap","canBreak","useTable","potentialTable","format","segIndex","offsetsCount","rangeOffset","offsetIndex","offsets","entryCount","numOfMetrics","numOfSidebearings","numGlyphs","numMissing","glyphProfile","sizeOfInstructions","sourceEnd","glyf","contoursCount","signedInt16","writeSignedInt16","flagsCount","endPoint","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","flag","xLength","yLength","xyLength","glyphDataLength","int32","indexToLocFormat","int16","numGlyphsPlusOne","locaLength","itemSize","itemDecode","itemEncode","numGlyphsOut","dupFirstEntry","locaDataSize","locaData","loca","oldGlyfData","oldGlyfDataLength","newGlyfData","writeOffset","missingGlyphs","sanitizeGlyph","maxSizeOfInstructions","simpleGlyph","firstEntryLength","valid","glyphNames","glyphNameIndexes","customNames","propertiesObj","FORMAT_0_HEADER_LENGTH","numRecords","stringsStart","records","NAME_RECORD_LENGTH","platform","language","nameIndex","TTOpsStackDeltas","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","ttContext","inFDEF","ifLevel","inELSE","op","funcId","newStackLength","stackTop","stackDelta","foldTTTable","functionsDefined","functionsUsed","functionsStackDeltas","hintsValid","sanitizeTTProgram","checkInvalidFunctions","cvt","cvtData","ttcData","readTrueTypeCollectionData","isTrueType","isComposite","cffFile","maxFunctionDefs","maxZones","sanitizeTTPrograms","sanitizeMetrics","sanitizeHead","isGlyphLocationsLong","glyphsInfo","sanitizeGlyphLocations","metricsOverride","readPostScriptTable","createPostTable","isCidToGidMapEmpty","cmapTable","readCmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","cmapMappingsLength","StandardEncoding","standardGlyphName","recoverGlyphName","unicodeOrCharCode","MacRomanEncoding","glyphZeroId","newMapping","adjustMapping","createCmapTable","validateOS2Table","createOS2Table","compiler","createNameTable","namePrototype","builder","convert","adjustToUnicode","charCodes","seacs","charset","seacMap","seac","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","getCharCodes","baseFontCharCode","createCharCode","accentFontCharCode","safeString16","charstrings","cffWidths","hmtx","charstring","possibleSpaceReplacements","charcode","charToGlyph","widthCode","isInFont","mapSpecialUnicodeValues","operatorListId","fontChar","charsToGlyphs","charsCache","charsCacheKey","chars","isSpace","ErrorFont","Type1Font","streamBytesLength","streamBytes","EEXEC_SIGNATURE","streamStartPos","headerBytes","headerBytesLength","findBlock","suggestedLength","eexecBytes","PFB_HEADER_SIZE","headerBlockLength","eexecBlockLength","pfbHeader","pfbHeaderPresent","headerBlock","getHeaderBlock","headerBlockParser","eexecBlock","getEexecBlock","eexecBlockParser","type2Charstrings","subrs","getCharset","getGlyphMapping","charstringsLen","type1FontGlyphMapping","hasGlyphId","getSeacs","getType2Charstrings","type1Charstrings","getType2Subrs","type1Subrs","type2Subrs","topDict","charsetArray","CFFStandardStrings","charStringsIndex","privateDict","field","subrIndex","CFFFont","charsets","MAX_SUBR_NESTING","NUM_STANDARD_CFF_STRINGS","CFFParser","CharstringValidationData","stackClearing","stem","resetStack","undefStack","CharstringValidationData12","stackFn","topDictIndex","stringIndex","globalSubrIndex","topDictParsed","charStringOffset","charStringIndex","fontBBox","fdArrayIndex","dictRaw","fontDict","charStringsAndSeacs","charStrings","localSubrIndex","fdSelect","fdArray","parseHeader","hdrSize","offSize","parseDict","parseFloatOperand","operands","parseOperand","parseIndex","cffIndex","offsetSize","offsetStart","offsetEnd","parseNameIndex","parseStringIndex","createDict","cffDict","parseCharString","stackSize","validationCommand","subrsIndex","subrNumber","parseCharStrings","callDepth","firstStackClearing","hasVStems","localSubrToUse","privateDictToUse","fdIndex","nominalWidth","emptyPrivateDictionary","parentDict","parsePrivateDict","privateOffset","privateDictEnd","dictData","subrsOffset","relativeOffset","parseCharsets","CFFCharsetPredefinedTypes","raw","parseEncoding","predefined","supplementsCount","sid","dataStart","glyphsCount","rangesCount","gid","dataEnd","readSupplement","parseFDSelect","CFF","duplicateFirstGlyph","glyphZero","CFFHeader","CFFStrings","getSID","CFFIndex","CFFDict","setByKey","valueLength","setByName","hasName","removeByName","keyToNameMap","nameToKeyMap","defaults","types","opcodes","order","layout","CFFTopDict","CFFPrivateDict","ISO_ADOBE","EXPERT","EXPERT_SUBSET","CFFCharset","CFFEncoding","CFFFDSelect","getFDIndex","glyphIndex","CFFOffsetTracker","isTracking","track","setEntryLocation","offset1","offset2","offset3","offset4","CFFCompiler","compile","subDict","compiled","topDictTracker","fontDictTrackers","encodeNumber","encodeFloat","nibbles","encodeInteger","compileHeader","compileNameIndex","sanitizedName","compileTopDicts","dicts","fontDictTracker","fontDictData","trackers","compilePrivateDicts","privateDictTracker","privateDictData","compileDict","offsetTracker","compileStringIndex","compileGlobalSubrIndex","compileCharStrings","compileCharset","numGlyphsLessNotDef","charsetIndex","numCharsets","warned","compileEncoding","compileFDSelect","lastFD","currentFD","numRanges","compileTypedArray","compileIndex","objects","lastOffset","ISOAdobeCharset","ExpertCharset","ExpertSubsetCharset","ExpertEncoding","MacExpertEncoding","WinAnsiEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","getLookupTableFactory","getGlyphsUnicode","AE","AEacute","AEmacron","AEsmall","Aacute","Aacutesmall","Abreve","Abreveacute","Abrevecyrillic","Abrevedotbelow","Abrevegrave","Abrevehookabove","Abrevetilde","Acaron","Acircle","Acircumflex","Acircumflexacute","Acircumflexdotbelow","Acircumflexgrave","Acircumflexhookabove","Acircumflexsmall","Acircumflextilde","Acute","Acutesmall","Acyrillic","Adblgrave","Adieresis","Adieresiscyrillic","Adieresismacron","Adieresissmall","Adotbelow","Adotmacron","Agrave","Agravesmall","Ahookabove","Aiecyrillic","Ainvertedbreve","Alpha","Alphatonos","Amacron","Amonospace","Aogonek","Aring","Aringacute","Aringbelow","Aringsmall","Asmall","Atilde","Atildesmall","Aybarmenian","Bcircle","Bdotaccent","Bdotbelow","Becyrillic","Benarmenian","Beta","Bhook","Blinebelow","Bmonospace","Brevesmall","Bsmall","Btopbar","Caarmenian","Cacute","Caron","Caronsmall","Ccaron","Ccedilla","Ccedillaacute","Ccedillasmall","Ccircle","Ccircumflex","Cdot","Cdotaccent","Cedillasmall","Chaarmenian","Cheabkhasiancyrillic","Checyrillic","Chedescenderabkhasiancyrillic","Chedescendercyrillic","Chedieresiscyrillic","Cheharmenian","Chekhakassiancyrillic","Cheverticalstrokecyrillic","Chi","Chook","Circumflexsmall","Cmonospace","Coarmenian","Csmall","D","DZ","DZcaron","Daarmenian","Dafrican","Dcaron","Dcedilla","Dcircle","Dcircumflexbelow","Dcroat","Ddotaccent","Ddotbelow","Decyrillic","Deicoptic","Delta","Deltagreek","Dhook","Dieresis","DieresisAcute","DieresisGrave","Dieresissmall","Digammagreek","Djecyrillic","Dlinebelow","Dmonospace","Dotaccentsmall","Dslash","Dsmall","Dtopbar","Dz","Dzcaron","Dzeabkhasiancyrillic","Dzecyrillic","Dzhecyrillic","Eacute","Eacutesmall","Ebreve","Ecaron","Ecedillabreve","Echarmenian","Ecircle","Ecircumflex","Ecircumflexacute","Ecircumflexbelow","Ecircumflexdotbelow","Ecircumflexgrave","Ecircumflexhookabove","Ecircumflexsmall","Ecircumflextilde","Ecyrillic","Edblgrave","Edieresis","Edieresissmall","Edot","Edotaccent","Edotbelow","Efcyrillic","Egrave","Egravesmall","Eharmenian","Ehookabove","Eightroman","Einvertedbreve","Eiotifiedcyrillic","Elcyrillic","Elevenroman","Emacron","Emacronacute","Emacrongrave","Emcyrillic","Emonospace","Encyrillic","Endescendercyrillic","Eng","Enghecyrillic","Enhookcyrillic","Eogonek","Eopen","Epsilon","Epsilontonos","Ercyrillic","Ereversed","Ereversedcyrillic","Escyrillic","Esdescendercyrillic","Esh","Esmall","Eta","Etarmenian","Etatonos","Eth","Ethsmall","Etilde","Etildebelow","Euro","Ezh","Ezhcaron","Ezhreversed","Fcircle","Fdotaccent","Feharmenian","Feicoptic","Fhook","Fitacyrillic","Fiveroman","Fmonospace","Fourroman","Fsmall","G","GBsquare","Gacute","Gamma","Gammaafrican","Gangiacoptic","Gbreve","Gcaron","Gcedilla","Gcircle","Gcircumflex","Gcommaaccent","Gdot","Gdotaccent","Gecyrillic","Ghadarmenian","Ghemiddlehookcyrillic","Ghestrokecyrillic","Gheupturncyrillic","Ghook","Gimarmenian","Gjecyrillic","Gmacron","Gmonospace","Grave","Gravesmall","Gsmall","Gsmallhook","Gstroke","H","H18533","H18543","H18551","H22073","HPsquare","Haabkhasiancyrillic","Hadescendercyrillic","Hardsigncyrillic","Hbar","Hbrevebelow","Hcedilla","Hcircle","Hcircumflex","Hdieresis","Hdotaccent","Hdotbelow","Hmonospace","Hoarmenian","Horicoptic","Hsmall","Hungarumlaut","Hungarumlautsmall","Hzsquare","IAcyrillic","IJ","IUcyrillic","Iacute","Iacutesmall","Ibreve","Icaron","Icircle","Icircumflex","Icircumflexsmall","Icyrillic","Idblgrave","Idieresis","Idieresisacute","Idieresiscyrillic","Idieresissmall","Idot","Idotaccent","Idotbelow","Iebrevecyrillic","Iecyrillic","Ifraktur","Igrave","Igravesmall","Ihookabove","Iicyrillic","Iinvertedbreve","Iishortcyrillic","Imacron","Imacroncyrillic","Imonospace","Iniarmenian","Iocyrillic","Iogonek","Iota","Iotaafrican","Iotadieresis","Iotatonos","Ismall","Istroke","Itilde","Itildebelow","Izhitsacyrillic","Izhitsadblgravecyrillic","J","Jaarmenian","Jcircle","Jcircumflex","Jecyrillic","Jheharmenian","Jmonospace","Jsmall","KBsquare","KKsquare","Kabashkircyrillic","Kacute","Kacyrillic","Kadescendercyrillic","Kahookcyrillic","Kappa","Kastrokecyrillic","Kaverticalstrokecyrillic","Kcaron","Kcedilla","Kcircle","Kcommaaccent","Kdotbelow","Keharmenian","Kenarmenian","Khacyrillic","Kheicoptic","Khook","Kjecyrillic","Klinebelow","Kmonospace","Koppacyrillic","Koppagreek","Ksicyrillic","Ksmall","LJ","Lacute","Lambda","Lcaron","Lcedilla","Lcircle","Lcircumflexbelow","Lcommaaccent","Ldot","Ldotaccent","Ldotbelow","Ldotbelowmacron","Liwnarmenian","Lj","Ljecyrillic","Llinebelow","Lmonospace","Lslash","Lslashsmall","Lsmall","MBsquare","Macron","Macronsmall","Macute","Mcircle","Mdotaccent","Mdotbelow","Menarmenian","Mmonospace","Msmall","Mturned","Mu","NJ","Nacute","Ncaron","Ncedilla","Ncircle","Ncircumflexbelow","Ncommaaccent","Ndotaccent","Ndotbelow","Nhookleft","Nineroman","Nj","Njecyrillic","Nlinebelow","Nmonospace","Nowarmenian","Nsmall","Ntilde","Ntildesmall","Nu","OE","OEsmall","Oacute","Oacutesmall","Obarredcyrillic","Obarreddieresiscyrillic","Obreve","Ocaron","Ocenteredtilde","Ocircle","Ocircumflex","Ocircumflexacute","Ocircumflexdotbelow","Ocircumflexgrave","Ocircumflexhookabove","Ocircumflexsmall","Ocircumflextilde","Ocyrillic","Odblacute","Odblgrave","Odieresis","Odieresiscyrillic","Odieresissmall","Odotbelow","Ogoneksmall","Ograve","Ogravesmall","Oharmenian","Ohm","Ohookabove","Ohorn","Ohornacute","Ohorndotbelow","Ohorngrave","Ohornhookabove","Ohorntilde","Ohungarumlaut","Oi","Oinvertedbreve","Omacron","Omacronacute","Omacrongrave","Omega","Omegacyrillic","Omegagreek","Omegaroundcyrillic","Omegatitlocyrillic","Omegatonos","Omicron","Omicrontonos","Omonospace","Oneroman","Oogonek","Oogonekmacron","Oopen","Oslash","Oslashacute","Oslashsmall","Osmall","Ostrokeacute","Otcyrillic","Otilde","Otildeacute","Otildedieresis","Otildesmall","Pacute","Pcircle","Pdotaccent","Pecyrillic","Peharmenian","Pemiddlehookcyrillic","Phi","Phook","Pi","Piwrarmenian","Pmonospace","Psi","Psicyrillic","Psmall","Q","Qcircle","Qmonospace","Qsmall","R","Raarmenian","Racute","Rcaron","Rcedilla","Rcircle","Rcommaaccent","Rdblgrave","Rdotaccent","Rdotbelow","Rdotbelowmacron","Reharmenian","Rfraktur","Rho","Ringsmall","Rinvertedbreve","Rlinebelow","Rmonospace","Rsmall","Rsmallinverted","Rsmallinvertedsuperior","SF010000","SF020000","SF030000","SF040000","SF050000","SF060000","SF070000","SF080000","SF090000","SF100000","SF110000","SF190000","SF200000","SF210000","SF220000","SF230000","SF240000","SF250000","SF260000","SF270000","SF280000","SF360000","SF370000","SF380000","SF390000","SF400000","SF410000","SF420000","SF430000","SF440000","SF450000","SF460000","SF470000","SF480000","SF490000","SF500000","SF510000","SF520000","SF530000","SF540000","Sacute","Sacutedotaccent","Sampigreek","Scaron","Scarondotaccent","Scaronsmall","Scedilla","Schwa","Schwacyrillic","Schwadieresiscyrillic","Scircle","Scircumflex","Scommaaccent","Sdotaccent","Sdotbelow","Sdotbelowdotaccent","Seharmenian","Sevenroman","Shaarmenian","Shacyrillic","Shchacyrillic","Sheicoptic","Shhacyrillic","Shimacoptic","Sigma","Sixroman","Smonospace","Softsigncyrillic","Ssmall","Stigmagreek","Tau","Tbar","Tcaron","Tcedilla","Tcircle","Tcircumflexbelow","Tcommaaccent","Tdotaccent","Tdotbelow","Tecyrillic","Tedescendercyrillic","Tenroman","Tetsecyrillic","Theta","Thook","Thorn","Thornsmall","Threeroman","Tildesmall","Tiwnarmenian","Tlinebelow","Tmonospace","Toarmenian","Tonefive","Tonesix","Tonetwo","Tretroflexhook","Tsecyrillic","Tshecyrillic","Tsmall","Twelveroman","Tworoman","U","Uacute","Uacutesmall","Ubreve","Ucaron","Ucircle","Ucircumflex","Ucircumflexbelow","Ucircumflexsmall","Ucyrillic","Udblacute","Udblgrave","Udieresis","Udieresisacute","Udieresisbelow","Udieresiscaron","Udieresiscyrillic","Udieresisgrave","Udieresismacron","Udieresissmall","Udotbelow","Ugrave","Ugravesmall","Uhookabove","Uhorn","Uhornacute","Uhorndotbelow","Uhorngrave","Uhornhookabove","Uhorntilde","Uhungarumlaut","Uhungarumlautcyrillic","Uinvertedbreve","Ukcyrillic","Umacron","Umacroncyrillic","Umacrondieresis","Umonospace","Uogonek","Upsilon","Upsilon1","Upsilonacutehooksymbolgreek","Upsilonafrican","Upsilondieresis","Upsilondieresishooksymbolgreek","Upsilonhooksymbol","Upsilontonos","Uring","Ushortcyrillic","Usmall","Ustraightcyrillic","Ustraightstrokecyrillic","Utilde","Utildeacute","Utildebelow","Vcircle","Vdotbelow","Vecyrillic","Vewarmenian","Vhook","Vmonospace","Voarmenian","Vsmall","Vtilde","W","Wacute","Wcircle","Wcircumflex","Wdieresis","Wdotaccent","Wdotbelow","Wgrave","Wmonospace","Wsmall","Xcircle","Xdieresis","Xdotaccent","Xeharmenian","Xi","Xmonospace","Xsmall","Yacute","Yacutesmall","Yatcyrillic","Ycircle","Ycircumflex","Ydieresis","Ydieresissmall","Ydotaccent","Ydotbelow","Yericyrillic","Yerudieresiscyrillic","Ygrave","Yhook","Yhookabove","Yiarmenian","Yicyrillic","Yiwnarmenian","Ymonospace","Ysmall","Ytilde","Yusbigcyrillic","Yusbigiotifiedcyrillic","Yuslittlecyrillic","Yuslittleiotifiedcyrillic","Zaarmenian","Zacute","Zcaron","Zcaronsmall","Zcircle","Zcircumflex","Zdot","Zdotaccent","Zdotbelow","Zecyrillic","Zedescendercyrillic","Zedieresiscyrillic","Zeta","Zhearmenian","Zhebrevecyrillic","Zhecyrillic","Zhedescendercyrillic","Zhedieresiscyrillic","Zlinebelow","Zmonospace","Zsmall","Zstroke","aabengali","aacute","aadeva","aagujarati","aagurmukhi","aamatragurmukhi","aarusquare","aavowelsignbengali","aavowelsigndeva","aavowelsigngujarati","abbreviationmarkarmenian","abbreviationsigndeva","abengali","abopomofo","abreve","abreveacute","abrevecyrillic","abrevedotbelow","abrevegrave","abrevehookabove","abrevetilde","acaron","acircle","acircumflex","acircumflexacute","acircumflexdotbelow","acircumflexgrave","acircumflexhookabove","acircumflextilde","acute","acutebelowcmb","acutecmb","acutecomb","acutedeva","acutelowmod","acutetonecmb","acyrillic","adblgrave","addakgurmukhi","adeva","adieresis","adieresiscyrillic","adieresismacron","adotbelow","adotmacron","ae","aeacute","aekorean","aemacron","afii00208","afii08941","afii10017","afii10018","afii10019","afii10020","afii10021","afii10022","afii10023","afii10024","afii10025","afii10026","afii10027","afii10028","afii10029","afii10030","afii10031","afii10032","afii10033","afii10034","afii10035","afii10036","afii10037","afii10038","afii10039","afii10040","afii10041","afii10042","afii10043","afii10044","afii10045","afii10046","afii10047","afii10048","afii10049","afii10050","afii10051","afii10052","afii10053","afii10054","afii10055","afii10056","afii10057","afii10058","afii10059","afii10060","afii10061","afii10062","afii10063","afii10064","afii10065","afii10066","afii10067","afii10068","afii10069","afii10070","afii10071","afii10072","afii10073","afii10074","afii10075","afii10076","afii10077","afii10078","afii10079","afii10080","afii10081","afii10082","afii10083","afii10084","afii10085","afii10086","afii10087","afii10088","afii10089","afii10090","afii10091","afii10092","afii10093","afii10094","afii10095","afii10096","afii10097","afii10098","afii10099","afii10100","afii10101","afii10102","afii10103","afii10104","afii10105","afii10106","afii10107","afii10108","afii10109","afii10110","afii10145","afii10146","afii10147","afii10148","afii10192","afii10193","afii10194","afii10195","afii10196","afii10831","afii10832","afii10846","afii299","afii300","afii301","afii57381","afii57388","afii57392","afii57393","afii57394","afii57395","afii57396","afii57397","afii57398","afii57399","afii57400","afii57401","afii57403","afii57407","afii57409","afii57410","afii57411","afii57412","afii57413","afii57414","afii57415","afii57416","afii57417","afii57418","afii57419","afii57420","afii57421","afii57422","afii57423","afii57424","afii57425","afii57426","afii57427","afii57428","afii57429","afii57430","afii57431","afii57432","afii57433","afii57434","afii57440","afii57441","afii57442","afii57443","afii57444","afii57445","afii57446","afii57448","afii57449","afii57450","afii57451","afii57452","afii57453","afii57454","afii57455","afii57456","afii57457","afii57458","afii57470","afii57505","afii57506","afii57507","afii57508","afii57509","afii57511","afii57512","afii57513","afii57514","afii57519","afii57534","afii57636","afii57645","afii57658","afii57664","afii57665","afii57666","afii57667","afii57668","afii57669","afii57670","afii57671","afii57672","afii57673","afii57674","afii57675","afii57676","afii57677","afii57678","afii57679","afii57680","afii57681","afii57682","afii57683","afii57684","afii57685","afii57686","afii57687","afii57688","afii57689","afii57690","afii57694","afii57695","afii57700","afii57705","afii57716","afii57717","afii57718","afii57723","afii57793","afii57794","afii57795","afii57796","afii57797","afii57798","afii57799","afii57800","afii57801","afii57802","afii57803","afii57804","afii57806","afii57807","afii57839","afii57841","afii57842","afii57929","afii61248","afii61289","afii61352","afii61573","afii61574","afii61575","afii61664","afii63167","afii64937","agrave","agujarati","agurmukhi","ahiragana","ahookabove","aibengali","aibopomofo","aideva","aiecyrillic","aigujarati","aigurmukhi","aimatragurmukhi","ainarabic","ainfinalarabic","aininitialarabic","ainmedialarabic","ainvertedbreve","aivowelsignbengali","aivowelsigndeva","aivowelsigngujarati","akatakana","akatakanahalfwidth","akorean","alef","alefarabic","alefdageshhebrew","aleffinalarabic","alefhamzaabovearabic","alefhamzaabovefinalarabic","alefhamzabelowarabic","alefhamzabelowfinalarabic","alefhebrew","aleflamedhebrew","alefmaddaabovearabic","alefmaddaabovefinalarabic","alefmaksuraarabic","alefmaksurafinalarabic","alefmaksurainitialarabic","alefmaksuramedialarabic","alefpatahhebrew","alefqamatshebrew","aleph","allequal","alphatonos","amacron","amonospace","ampersand","ampersandmonospace","ampersandsmall","amsquare","anbopomofo","angbopomofo","angbracketleft","angbracketright","angkhankhuthai","anglebracketleft","anglebracketleftvertical","anglebracketright","anglebracketrightvertical","angleleft","angleright","angstrom","anoteleia","anudattadeva","anusvarabengali","anusvaradeva","anusvaragujarati","aogonek","apaatosquare","aparen","apostrophearmenian","apostrophemod","apple","approaches","approxequal","approxequalorimage","approximatelyequal","araeaekorean","araeakorean","arc","arighthalfring","aring","aringacute","aringbelow","arrowboth","arrowdashdown","arrowdashleft","arrowdashright","arrowdashup","arrowdblboth","arrowdbldown","arrowdblleft","arrowdblright","arrowdblup","arrowdown","arrowdownleft","arrowdownright","arrowdownwhite","arrowheaddownmod","arrowheadleftmod","arrowheadrightmod","arrowheadupmod","arrowhorizex","arrowleft","arrowleftdbl","arrowleftdblstroke","arrowleftoverright","arrowleftwhite","arrowright","arrowrightdblstroke","arrowrightheavy","arrowrightoverleft","arrowrightwhite","arrowtableft","arrowtabright","arrowup","arrowupdn","arrowupdnbse","arrowupdownbase","arrowupleft","arrowupleftofdown","arrowupright","arrowupwhite","arrowvertex","asciicircum","asciicircummonospace","asciitilde","asciitildemonospace","ascript","ascriptturned","asmallhiragana","asmallkatakana","asmallkatakanahalfwidth","asterisk","asteriskaltonearabic","asteriskarabic","asteriskmath","asteriskmonospace","asterisksmall","asterism","asuperior","asymptoticallyequal","atilde","atmonospace","atsmall","aturned","aubengali","aubopomofo","audeva","augujarati","augurmukhi","aulengthmarkbengali","aumatragurmukhi","auvowelsignbengali","auvowelsigndeva","auvowelsigngujarati","avagrahadeva","aybarmenian","ayin","ayinaltonehebrew","ayinhebrew","babengali","backslash","backslashmonospace","badeva","bagujarati","bagurmukhi","bahiragana","bahtthai","bakatakana","bar","barmonospace","bbopomofo","bcircle","bdotaccent","bdotbelow","beamedsixteenthnotes","because","becyrillic","beharabic","behfinalarabic","behinitialarabic","behiragana","behmedialarabic","behmeeminitialarabic","behmeemisolatedarabic","behnoonfinalarabic","bekatakana","benarmenian","bet","betasymbolgreek","betdagesh","betdageshhebrew","bethebrew","betrafehebrew","bhabengali","bhadeva","bhagujarati","bhagurmukhi","bhook","bihiragana","bikatakana","bilabialclick","bindigurmukhi","birusquare","blackcircle","blackdiamond","blackdownpointingtriangle","blackleftpointingpointer","blackleftpointingtriangle","blacklenticularbracketleft","blacklenticularbracketleftvertical","blacklenticularbracketright","blacklenticularbracketrightvertical","blacklowerlefttriangle","blacklowerrighttriangle","blackrectangle","blackrightpointingpointer","blackrightpointingtriangle","blacksmallsquare","blacksmilingface","blacksquare","blackstar","blackupperlefttriangle","blackupperrighttriangle","blackuppointingsmalltriangle","blackuppointingtriangle","blank","blinebelow","bmonospace","bobaimaithai","bohiragana","bokatakana","bparen","bqsquare","braceex","braceleft","braceleftbt","braceleftmid","braceleftmonospace","braceleftsmall","bracelefttp","braceleftvertical","braceright","bracerightbt","bracerightmid","bracerightmonospace","bracerightsmall","bracerighttp","bracerightvertical","bracketleft","bracketleftbt","bracketleftex","bracketleftmonospace","bracketlefttp","bracketright","bracketrightbt","bracketrightex","bracketrightmonospace","bracketrighttp","breve","brevebelowcmb","brevecmb","breveinvertedbelowcmb","breveinvertedcmb","breveinverteddoublecmb","bridgebelowcmb","bridgeinvertedbelowcmb","brokenbar","bstroke","bsuperior","btopbar","buhiragana","bukatakana","bullet","bulletinverse","bulletoperator","bullseye","caarmenian","cabengali","cacute","cadeva","cagujarati","cagurmukhi","calsquare","candrabindubengali","candrabinducmb","candrabindudeva","candrabindugujarati","capslock","careof","caron","caronbelowcmb","caroncmb","carriagereturn","cbopomofo","ccaron","ccedilla","ccedillaacute","ccircle","ccircumflex","ccurl","cdot","cdotaccent","cdsquare","cedilla","cedillacmb","cent","centigrade","centinferior","centmonospace","centoldstyle","centsuperior","chaarmenian","chabengali","chadeva","chagujarati","chagurmukhi","chbopomofo","cheabkhasiancyrillic","checkmark","checyrillic","chedescenderabkhasiancyrillic","chedescendercyrillic","chedieresiscyrillic","cheharmenian","chekhakassiancyrillic","cheverticalstrokecyrillic","chi","chieuchacirclekorean","chieuchaparenkorean","chieuchcirclekorean","chieuchkorean","chieuchparenkorean","chochangthai","chochanthai","chochingthai","chochoethai","chook","cieucacirclekorean","cieucaparenkorean","cieuccirclekorean","cieuckorean","cieucparenkorean","cieucuparenkorean","circle","circlecopyrt","circlemultiply","circleot","circleplus","circlepostalmark","circlewithlefthalfblack","circlewithrighthalfblack","circumflex","circumflexbelowcmb","circumflexcmb","clickalveolar","clickdental","clicklateral","clickretroflex","club","clubsuitblack","clubsuitwhite","cmcubedsquare","cmonospace","cmsquaredsquare","coarmenian","colon","colonmonetary","colonmonospace","colonsign","colonsmall","colontriangularhalfmod","colontriangularmod","comma","commaabovecmb","commaaboverightcmb","commaaccent","commaarabic","commaarmenian","commainferior","commamonospace","commareversedabovecmb","commareversedmod","commasmall","commasuperior","commaturnedabovecmb","commaturnedmod","compass","congruent","contourintegral","control","controlACK","controlBEL","controlBS","controlCAN","controlCR","controlDC1","controlDC2","controlDC3","controlDC4","controlDEL","controlDLE","controlEM","controlENQ","controlEOT","controlESC","controlETB","controlETX","controlFF","controlFS","controlGS","controlHT","controlLF","controlNAK","controlNULL","controlRS","controlSI","controlSO","controlSOT","controlSTX","controlSUB","controlSYN","controlUS","controlVT","copyrightsans","copyrightserif","cornerbracketleft","cornerbracketlefthalfwidth","cornerbracketleftvertical","cornerbracketright","cornerbracketrighthalfwidth","cornerbracketrightvertical","corporationsquare","cosquare","coverkgsquare","cparen","cruzeiro","cstretched","curlyand","curlyor","currency","cyrBreve","cyrFlex","cyrbreve","cyrflex","daarmenian","dabengali","dadarabic","dadeva","dadfinalarabic","dadinitialarabic","dadmedialarabic","dagesh","dageshhebrew","dagger","daggerdbl","dagujarati","dagurmukhi","dahiragana","dakatakana","dalarabic","dalet","daletdagesh","daletdageshhebrew","dalethebrew","dalfinalarabic","dammaarabic","dammalowarabic","dammatanaltonearabic","dammatanarabic","danda","dargahebrew","dargalefthebrew","dasiapneumatacyrilliccmb","dblGrave","dblanglebracketleft","dblanglebracketleftvertical","dblanglebracketright","dblanglebracketrightvertical","dblarchinvertedbelowcmb","dblarrowleft","dblarrowright","dbldanda","dblgrave","dblgravecmb","dblintegral","dbllowline","dbllowlinecmb","dbloverlinecmb","dblprimemod","dblverticalbar","dblverticallineabovecmb","dbopomofo","dbsquare","dcaron","dcedilla","dcircle","dcircumflexbelow","dcroat","ddabengali","ddadeva","ddagujarati","ddagurmukhi","ddalarabic","ddalfinalarabic","dddhadeva","ddhabengali","ddhadeva","ddhagujarati","ddhagurmukhi","ddotaccent","ddotbelow","decimalseparatorarabic","decimalseparatorpersian","decyrillic","degree","dehihebrew","dehiragana","deicoptic","dekatakana","deleteleft","deleteright","deltaturned","denominatorminusonenumeratorbengali","dezh","dhabengali","dhadeva","dhagujarati","dhagurmukhi","dhook","dialytikatonos","dialytikatonoscmb","diamond","diamondsuitwhite","dieresis","dieresisacute","dieresisbelowcmb","dieresiscmb","dieresisgrave","dieresistonos","dihiragana","dikatakana","dittomark","divide","divides","divisionslash","djecyrillic","dkshade","dlinebelow","dlsquare","dmacron","dmonospace","dnblock","dochadathai","dodekthai","dohiragana","dokatakana","dollar","dollarinferior","dollarmonospace","dollaroldstyle","dollarsmall","dollarsuperior","dong","dorusquare","dotaccent","dotaccentcmb","dotbelowcmb","dotbelowcomb","dotkatakana","dotlessi","dotlessj","dotlessjstrokehook","dotmath","dottedcircle","doubleyodpatah","doubleyodpatahhebrew","downtackbelowcmb","downtackmod","dparen","dsuperior","dtail","dtopbar","duhiragana","dukatakana","dz","dzaltone","dzcaron","dzcurl","dzeabkhasiancyrillic","dzecyrillic","dzhecyrillic","eacute","earth","ebengali","ebopomofo","ebreve","ecandradeva","ecandragujarati","ecandravowelsigndeva","ecandravowelsigngujarati","ecaron","ecedillabreve","echarmenian","echyiwnarmenian","ecircle","ecircumflex","ecircumflexacute","ecircumflexbelow","ecircumflexdotbelow","ecircumflexgrave","ecircumflexhookabove","ecircumflextilde","ecyrillic","edblgrave","edeva","edieresis","edot","edotaccent","edotbelow","eegurmukhi","eematragurmukhi","efcyrillic","egrave","egujarati","eharmenian","ehbopomofo","ehiragana","ehookabove","eibopomofo","eight","eightarabic","eightbengali","eightcircle","eightcircleinversesansserif","eightdeva","eighteencircle","eighteenparen","eighteenperiod","eightgujarati","eightgurmukhi","eighthackarabic","eighthangzhou","eighthnotebeamed","eightideographicparen","eightinferior","eightmonospace","eightoldstyle","eightparen","eightperiod","eightpersian","eightroman","eightsuperior","eightthai","einvertedbreve","eiotifiedcyrillic","ekatakana","ekatakanahalfwidth","ekonkargurmukhi","ekorean","elcyrillic","elevencircle","elevenparen","elevenperiod","elevenroman","ellipsis","ellipsisvertical","emacron","emacronacute","emacrongrave","emcyrillic","emdash","emdashvertical","emonospace","emphasismarkarmenian","emptyset","enbopomofo","encyrillic","endash","endashvertical","endescendercyrillic","eng","engbopomofo","enghecyrillic","enhookcyrillic","enspace","eogonek","eokorean","eopen","eopenclosed","eopenreversed","eopenreversedclosed","eopenreversedhook","eparen","epsilontonos","equal","equalmonospace","equalsmall","equalsuperior","equivalence","erbopomofo","ercyrillic","ereversed","ereversedcyrillic","escyrillic","esdescendercyrillic","esh","eshcurl","eshortdeva","eshortvowelsigndeva","eshreversedloop","eshsquatreversed","esmallhiragana","esmallkatakana","esmallkatakanahalfwidth","estimated","esuperior","eta","etarmenian","etatonos","eth","etilde","etildebelow","etnahtafoukhhebrew","etnahtafoukhlefthebrew","etnahtahebrew","etnahtalefthebrew","eturned","eukorean","euro","evowelsignbengali","evowelsigndeva","evowelsigngujarati","exclam","exclamarmenian","exclamdbl","exclamdown","exclamdownsmall","exclammonospace","exclamsmall","existential","ezh","ezhcaron","ezhcurl","ezhreversed","ezhtail","fadeva","fagurmukhi","fahrenheit","fathaarabic","fathalowarabic","fathatanarabic","fbopomofo","fcircle","fdotaccent","feharabic","feharmenian","fehfinalarabic","fehinitialarabic","fehmedialarabic","feicoptic","female","ff","f_f","ffi","ffl","fi","fifteencircle","fifteenparen","fifteenperiod","figuredash","filledbox","filledrect","finalkaf","finalkafdagesh","finalkafdageshhebrew","finalkafhebrew","finalmem","finalmemhebrew","finalnun","finalnunhebrew","finalpe","finalpehebrew","finaltsadi","finaltsadihebrew","firsttonechinese","fisheye","fitacyrillic","five","fivearabic","fivebengali","fivecircle","fivecircleinversesansserif","fivedeva","fiveeighths","fivegujarati","fivegurmukhi","fivehackarabic","fivehangzhou","fiveideographicparen","fiveinferior","fivemonospace","fiveoldstyle","fiveparen","fiveperiod","fivepersian","fiveroman","fivesuperior","fivethai","fl","florin","fmonospace","fmsquare","fofanthai","fofathai","fongmanthai","forall","four","fourarabic","fourbengali","fourcircle","fourcircleinversesansserif","fourdeva","fourgujarati","fourgurmukhi","fourhackarabic","fourhangzhou","fourideographicparen","fourinferior","fourmonospace","fournumeratorbengali","fouroldstyle","fourparen","fourperiod","fourpersian","fourroman","foursuperior","fourteencircle","fourteenparen","fourteenperiod","fourthai","fourthtonechinese","fparen","fraction","franc","gabengali","gacute","gadeva","gafarabic","gaffinalarabic","gafinitialarabic","gafmedialarabic","gagujarati","gagurmukhi","gahiragana","gakatakana","gammalatinsmall","gammasuperior","gangiacoptic","gbopomofo","gbreve","gcaron","gcedilla","gcircle","gcircumflex","gcommaaccent","gdot","gdotaccent","gecyrillic","gehiragana","gekatakana","geometricallyequal","gereshaccenthebrew","gereshhebrew","gereshmuqdamhebrew","germandbls","gershayimaccenthebrew","gershayimhebrew","getamark","ghabengali","ghadarmenian","ghadeva","ghagujarati","ghagurmukhi","ghainarabic","ghainfinalarabic","ghaininitialarabic","ghainmedialarabic","ghemiddlehookcyrillic","ghestrokecyrillic","gheupturncyrillic","ghhadeva","ghhagurmukhi","ghook","ghzsquare","gihiragana","gikatakana","gimarmenian","gimel","gimeldagesh","gimeldageshhebrew","gimelhebrew","gjecyrillic","glottalinvertedstroke","glottalstop","glottalstopinverted","glottalstopmod","glottalstopreversed","glottalstopreversedmod","glottalstopreversedsuperior","glottalstopstroke","glottalstopstrokereversed","gmacron","gmonospace","gohiragana","gokatakana","gparen","gpasquare","gradient","grave","gravebelowcmb","gravecmb","gravecomb","gravedeva","gravelowmod","gravemonospace","gravetonecmb","greater","greaterequal","greaterequalorless","greatermonospace","greaterorequivalent","greaterorless","greateroverequal","greatersmall","gscript","gstroke","guhiragana","guillemotleft","guillemotright","guilsinglleft","guilsinglright","gukatakana","guramusquare","gysquare","haabkhasiancyrillic","haaltonearabic","habengali","hadescendercyrillic","hadeva","hagujarati","hagurmukhi","haharabic","hahfinalarabic","hahinitialarabic","hahiragana","hahmedialarabic","haitusquare","hakatakana","hakatakanahalfwidth","halantgurmukhi","hamzaarabic","hamzalowarabic","hangulfiller","hardsigncyrillic","harpoonleftbarbup","harpoonrightbarbup","hasquare","hatafpatah","hatafpatah16","hatafpatah23","hatafpatah2f","hatafpatahhebrew","hatafpatahnarrowhebrew","hatafpatahquarterhebrew","hatafpatahwidehebrew","hatafqamats","hatafqamats1b","hatafqamats28","hatafqamats34","hatafqamatshebrew","hatafqamatsnarrowhebrew","hatafqamatsquarterhebrew","hatafqamatswidehebrew","hatafsegol","hatafsegol17","hatafsegol24","hatafsegol30","hatafsegolhebrew","hatafsegolnarrowhebrew","hatafsegolquarterhebrew","hatafsegolwidehebrew","hbar","hbopomofo","hbrevebelow","hcedilla","hcircle","hcircumflex","hdieresis","hdotaccent","hdotbelow","he","heart","heartsuitblack","heartsuitwhite","hedagesh","hedageshhebrew","hehaltonearabic","heharabic","hehebrew","hehfinalaltonearabic","hehfinalalttwoarabic","hehfinalarabic","hehhamzaabovefinalarabic","hehhamzaaboveisolatedarabic","hehinitialaltonearabic","hehinitialarabic","hehiragana","hehmedialaltonearabic","hehmedialarabic","heiseierasquare","hekatakana","hekatakanahalfwidth","hekutaarusquare","henghook","herutusquare","het","hethebrew","hhook","hhooksuperior","hieuhacirclekorean","hieuhaparenkorean","hieuhcirclekorean","hieuhkorean","hieuhparenkorean","hihiragana","hikatakana","hikatakanahalfwidth","hiriq","hiriq14","hiriq21","hiriq2d","hiriqhebrew","hiriqnarrowhebrew","hiriqquarterhebrew","hiriqwidehebrew","hlinebelow","hmonospace","hoarmenian","hohipthai","hohiragana","hokatakana","hokatakanahalfwidth","holam","holam19","holam26","holam32","holamhebrew","holamnarrowhebrew","holamquarterhebrew","holamwidehebrew","honokhukthai","hookabovecomb","hookcmb","hookpalatalizedbelowcmb","hookretroflexbelowcmb","hoonsquare","horicoptic","horizontalbar","horncmb","hotsprings","house","hparen","hsuperior","hturned","huhiragana","huiitosquare","hukatakana","hukatakanahalfwidth","hungarumlaut","hungarumlautcmb","hv","hyphen","hypheninferior","hyphenmonospace","hyphensmall","hyphensuperior","hyphentwo","iacute","iacyrillic","ibengali","ibopomofo","ibreve","icaron","icircle","icircumflex","icyrillic","idblgrave","ideographearthcircle","ideographfirecircle","ideographicallianceparen","ideographiccallparen","ideographiccentrecircle","ideographicclose","ideographiccomma","ideographiccommaleft","ideographiccongratulationparen","ideographiccorrectcircle","ideographicearthparen","ideographicenterpriseparen","ideographicexcellentcircle","ideographicfestivalparen","ideographicfinancialcircle","ideographicfinancialparen","ideographicfireparen","ideographichaveparen","ideographichighcircle","ideographiciterationmark","ideographiclaborcircle","ideographiclaborparen","ideographicleftcircle","ideographiclowcircle","ideographicmedicinecircle","ideographicmetalparen","ideographicmoonparen","ideographicnameparen","ideographicperiod","ideographicprintcircle","ideographicreachparen","ideographicrepresentparen","ideographicresourceparen","ideographicrightcircle","ideographicsecretcircle","ideographicselfparen","ideographicsocietyparen","ideographicspace","ideographicspecialparen","ideographicstockparen","ideographicstudyparen","ideographicsunparen","ideographicsuperviseparen","ideographicwaterparen","ideographicwoodparen","ideographiczero","ideographmetalcircle","ideographmooncircle","ideographnamecircle","ideographsuncircle","ideographwatercircle","ideographwoodcircle","ideva","idieresis","idieresisacute","idieresiscyrillic","idotbelow","iebrevecyrillic","iecyrillic","ieungacirclekorean","ieungaparenkorean","ieungcirclekorean","ieungkorean","ieungparenkorean","igrave","igujarati","igurmukhi","ihiragana","ihookabove","iibengali","iicyrillic","iideva","iigujarati","iigurmukhi","iimatragurmukhi","iinvertedbreve","iishortcyrillic","iivowelsignbengali","iivowelsigndeva","iivowelsigngujarati","ij","ikatakana","ikatakanahalfwidth","ikorean","ilde","iluyhebrew","imacron","imacroncyrillic","imageorapproximatelyequal","imatragurmukhi","imonospace","increment","infinity","iniarmenian","integral","integralbottom","integralbt","integralex","integraltop","integraltp","intersection","intisquare","invbullet","invcircle","invsmileface","iocyrillic","iogonek","iota","iotadieresis","iotadieresistonos","iotalatin","iotatonos","iparen","irigurmukhi","ismallhiragana","ismallkatakana","ismallkatakanahalfwidth","issharbengali","istroke","isuperior","iterationhiragana","iterationkatakana","itilde","itildebelow","iubopomofo","iucyrillic","ivowelsignbengali","ivowelsigndeva","ivowelsigngujarati","izhitsacyrillic","izhitsadblgravecyrillic","jaarmenian","jabengali","jadeva","jagujarati","jagurmukhi","jbopomofo","jcaron","jcircle","jcircumflex","jcrossedtail","jdotlessstroke","jecyrillic","jeemarabic","jeemfinalarabic","jeeminitialarabic","jeemmedialarabic","jeharabic","jehfinalarabic","jhabengali","jhadeva","jhagujarati","jhagurmukhi","jheharmenian","jis","jmonospace","jparen","jsuperior","kabashkircyrillic","kabengali","kacute","kacyrillic","kadescendercyrillic","kadeva","kaf","kafarabic","kafdagesh","kafdageshhebrew","kaffinalarabic","kafhebrew","kafinitialarabic","kafmedialarabic","kafrafehebrew","kagujarati","kagurmukhi","kahiragana","kahookcyrillic","kakatakana","kakatakanahalfwidth","kappa","kappasymbolgreek","kapyeounmieumkorean","kapyeounphieuphkorean","kapyeounpieupkorean","kapyeounssangpieupkorean","karoriisquare","kashidaautoarabic","kashidaautonosidebearingarabic","kasmallkatakana","kasquare","kasraarabic","kasratanarabic","kastrokecyrillic","katahiraprolongmarkhalfwidth","kaverticalstrokecyrillic","kbopomofo","kcalsquare","kcaron","kcedilla","kcircle","kcommaaccent","kdotbelow","keharmenian","kehiragana","kekatakana","kekatakanahalfwidth","kenarmenian","kesmallkatakana","kgreenlandic","khabengali","khacyrillic","khadeva","khagujarati","khagurmukhi","khaharabic","khahfinalarabic","khahinitialarabic","khahmedialarabic","kheicoptic","khhadeva","khhagurmukhi","khieukhacirclekorean","khieukhaparenkorean","khieukhcirclekorean","khieukhkorean","khieukhparenkorean","khokhaithai","khokhonthai","khokhuatthai","khokhwaithai","khomutthai","khook","khorakhangthai","khzsquare","kihiragana","kikatakana","kikatakanahalfwidth","kiroguramusquare","kiromeetorusquare","kirosquare","kiyeokacirclekorean","kiyeokaparenkorean","kiyeokcirclekorean","kiyeokkorean","kiyeokparenkorean","kiyeoksioskorean","kjecyrillic","klinebelow","klsquare","kmcubedsquare","kmonospace","kmsquaredsquare","kohiragana","kohmsquare","kokaithai","kokatakana","kokatakanahalfwidth","kooposquare","koppacyrillic","koreanstandardsymbol","koroniscmb","kparen","kpasquare","ksicyrillic","ktsquare","kturned","kuhiragana","kukatakana","kukatakanahalfwidth","kvsquare","kwsquare","labengali","lacute","ladeva","lagujarati","lagurmukhi","lakkhangyaothai","lamaleffinalarabic","lamalefhamzaabovefinalarabic","lamalefhamzaaboveisolatedarabic","lamalefhamzabelowfinalarabic","lamalefhamzabelowisolatedarabic","lamalefisolatedarabic","lamalefmaddaabovefinalarabic","lamalefmaddaaboveisolatedarabic","lamarabic","lambda","lambdastroke","lamed","lameddagesh","lameddageshhebrew","lamedhebrew","lamfinalarabic","lamhahinitialarabic","laminitialarabic","lamjeeminitialarabic","lamkhahinitialarabic","lamlamhehisolatedarabic","lammedialarabic","lammeemhahinitialarabic","lammeeminitialarabic","largecircle","lbar","lbelt","lbopomofo","lcaron","lcedilla","lcircle","lcircumflexbelow","lcommaaccent","ldot","ldotaccent","ldotbelow","ldotbelowmacron","leftangleabovecmb","lefttackbelowcmb","less","lessequal","lessequalorgreater","lessmonospace","lessorequivalent","lessorgreater","lessoverequal","lesssmall","lezh","lfblock","lhookretroflex","lira","liwnarmenian","lj","ljecyrillic","lladeva","llagujarati","llinebelow","llladeva","llvocalicbengali","llvocalicdeva","llvocalicvowelsignbengali","llvocalicvowelsigndeva","lmiddletilde","lmonospace","lmsquare","lochulathai","logicaland","logicalnot","logicalnotreversed","logicalor","lolingthai","longs","lowlinecenterline","lowlinecmb","lowlinedashed","lozenge","lparen","lslash","lsquare","lsuperior","ltshade","luthai","lvocalicbengali","lvocalicdeva","lvocalicvowelsignbengali","lvocalicvowelsigndeva","lxsquare","mabengali","macron","macronbelowcmb","macroncmb","macronlowmod","macronmonospace","macute","madeva","magujarati","magurmukhi","mahapakhhebrew","mahapakhlefthebrew","mahiragana","maichattawalowleftthai","maichattawalowrightthai","maichattawathai","maichattawaupperleftthai","maieklowleftthai","maieklowrightthai","maiekthai","maiekupperleftthai","maihanakatleftthai","maihanakatthai","maitaikhuleftthai","maitaikhuthai","maitholowleftthai","maitholowrightthai","maithothai","maithoupperleftthai","maitrilowleftthai","maitrilowrightthai","maitrithai","maitriupperleftthai","maiyamokthai","makatakana","makatakanahalfwidth","male","mansyonsquare","maqafhebrew","mars","masoracirclehebrew","masquare","mbopomofo","mbsquare","mcircle","mcubedsquare","mdotaccent","mdotbelow","meemarabic","meemfinalarabic","meeminitialarabic","meemmedialarabic","meemmeeminitialarabic","meemmeemisolatedarabic","meetorusquare","mehiragana","meizierasquare","mekatakana","mekatakanahalfwidth","mem","memdagesh","memdageshhebrew","memhebrew","menarmenian","merkhahebrew","merkhakefulahebrew","merkhakefulalefthebrew","merkhalefthebrew","mhook","mhzsquare","middledotkatakanahalfwidth","middot","mieumacirclekorean","mieumaparenkorean","mieumcirclekorean","mieumkorean","mieumpansioskorean","mieumparenkorean","mieumpieupkorean","mieumsioskorean","mihiragana","mikatakana","mikatakanahalfwidth","minus","minusbelowcmb","minuscircle","minusmod","minusplus","minute","miribaarusquare","mirisquare","mlonglegturned","mlsquare","mmcubedsquare","mmonospace","mmsquaredsquare","mohiragana","mohmsquare","mokatakana","mokatakanahalfwidth","molsquare","momathai","moverssquare","moverssquaredsquare","mparen","mpasquare","mssquare","msuperior","mturned","mu1","muasquare","muchgreater","muchless","mufsquare","mugreek","mugsquare","muhiragana","mukatakana","mukatakanahalfwidth","mulsquare","multiply","mumsquare","munahhebrew","munahlefthebrew","musicalnote","musicalnotedbl","musicflatsign","musicsharpsign","mussquare","muvsquare","muwsquare","mvmegasquare","mvsquare","mwmegasquare","mwsquare","nabengali","nabla","nacute","nadeva","nagujarati","nagurmukhi","nahiragana","nakatakana","nakatakanahalfwidth","napostrophe","nasquare","nbopomofo","nbspace","ncaron","ncedilla","ncircle","ncircumflexbelow","ncommaaccent","ndotaccent","ndotbelow","nehiragana","nekatakana","nekatakanahalfwidth","newsheqelsign","nfsquare","ngabengali","ngadeva","ngagujarati","ngagurmukhi","ngonguthai","nhiragana","nhookleft","nhookretroflex","nieunacirclekorean","nieunaparenkorean","nieuncieuckorean","nieuncirclekorean","nieunhieuhkorean","nieunkorean","nieunpansioskorean","nieunparenkorean","nieunsioskorean","nieuntikeutkorean","nihiragana","nikatakana","nikatakanahalfwidth","nikhahitleftthai","nikhahitthai","nine","ninearabic","ninebengali","ninecircle","ninecircleinversesansserif","ninedeva","ninegujarati","ninegurmukhi","ninehackarabic","ninehangzhou","nineideographicparen","nineinferior","ninemonospace","nineoldstyle","nineparen","nineperiod","ninepersian","nineroman","ninesuperior","nineteencircle","nineteenparen","nineteenperiod","ninethai","nj","njecyrillic","nkatakana","nkatakanahalfwidth","nlegrightlong","nlinebelow","nmonospace","nmsquare","nnabengali","nnadeva","nnagujarati","nnagurmukhi","nnnadeva","nohiragana","nokatakana","nokatakanahalfwidth","nonbreakingspace","nonenthai","nonuthai","noonarabic","noonfinalarabic","noonghunnaarabic","noonghunnafinalarabic","nooninitialarabic","noonjeeminitialarabic","noonjeemisolatedarabic","noonmedialarabic","noonmeeminitialarabic","noonmeemisolatedarabic","noonnoonfinalarabic","notcontains","notelement","notelementof","notequal","notgreater","notgreaternorequal","notgreaternorless","notidentical","notless","notlessnorequal","notparallel","notprecedes","notsubset","notsucceeds","notsuperset","nowarmenian","nparen","nssquare","nsuperior","ntilde","nu","nuhiragana","nukatakana","nukatakanahalfwidth","nuktabengali","nuktadeva","nuktagujarati","nuktagurmukhi","numbersign","numbersignmonospace","numbersignsmall","numeralsigngreek","numeralsignlowergreek","numero","nun","nundagesh","nundageshhebrew","nunhebrew","nvsquare","nwsquare","nyabengali","nyadeva","nyagujarati","nyagurmukhi","o","oacute","oangthai","obarred","obarredcyrillic","obarreddieresiscyrillic","obengali","obopomofo","obreve","ocandradeva","ocandragujarati","ocandravowelsigndeva","ocandravowelsigngujarati","ocaron","ocircle","ocircumflex","ocircumflexacute","ocircumflexdotbelow","ocircumflexgrave","ocircumflexhookabove","ocircumflextilde","ocyrillic","odblacute","odblgrave","odeva","odieresis","odieresiscyrillic","odotbelow","oe","oekorean","ogonek","ogonekcmb","ograve","ogujarati","oharmenian","ohiragana","ohookabove","ohorn","ohornacute","ohorndotbelow","ohorngrave","ohornhookabove","ohorntilde","ohungarumlaut","oi","oinvertedbreve","okatakana","okatakanahalfwidth","okorean","olehebrew","omacron","omacronacute","omacrongrave","omdeva","omega","omega1","omegacyrillic","omegalatinclosed","omegaroundcyrillic","omegatitlocyrillic","omegatonos","omgujarati","omicron","omicrontonos","omonospace","one","onearabic","onebengali","onecircle","onecircleinversesansserif","onedeva","onedotenleader","oneeighth","onefitted","onegujarati","onegurmukhi","onehackarabic","onehalf","onehangzhou","oneideographicparen","oneinferior","onemonospace","onenumeratorbengali","oneoldstyle","oneparen","oneperiod","onepersian","onequarter","oneroman","onesuperior","onethai","onethird","oogonek","oogonekmacron","oogurmukhi","oomatragurmukhi","oopen","oparen","openbullet","ordfeminine","ordmasculine","orthogonal","oshortdeva","oshortvowelsigndeva","oslash","oslashacute","osmallhiragana","osmallkatakana","osmallkatakanahalfwidth","ostrokeacute","osuperior","otcyrillic","otilde","otildeacute","otildedieresis","oubopomofo","overline","overlinecenterline","overlinecmb","overlinedashed","overlinedblwavy","overlinewavy","overscore","ovowelsignbengali","ovowelsigndeva","ovowelsigngujarati","paampssquare","paasentosquare","pabengali","pacute","padeva","pagedown","pageup","pagujarati","pagurmukhi","pahiragana","paiyannoithai","pakatakana","palatalizationcyrilliccmb","palochkacyrillic","pansioskorean","paragraph","parallel","parenleft","parenleftaltonearabic","parenleftbt","parenleftex","parenleftinferior","parenleftmonospace","parenleftsmall","parenleftsuperior","parenlefttp","parenleftvertical","parenright","parenrightaltonearabic","parenrightbt","parenrightex","parenrightinferior","parenrightmonospace","parenrightsmall","parenrightsuperior","parenrighttp","parenrightvertical","partialdiff","paseqhebrew","pashtahebrew","pasquare","patah","patah11","patah1d","patah2a","patahhebrew","patahnarrowhebrew","patahquarterhebrew","patahwidehebrew","pazerhebrew","pbopomofo","pcircle","pdotaccent","pe","pecyrillic","pedagesh","pedageshhebrew","peezisquare","pefinaldageshhebrew","peharabic","peharmenian","pehebrew","pehfinalarabic","pehinitialarabic","pehiragana","pehmedialarabic","pekatakana","pemiddlehookcyrillic","perafehebrew","percent","percentarabic","percentmonospace","percentsmall","period","periodarmenian","periodcentered","periodhalfwidth","periodinferior","periodmonospace","periodsmall","periodsuperior","perispomenigreekcmb","perpendicular","perthousand","peseta","pfsquare","phabengali","phadeva","phagujarati","phagurmukhi","phi","phi1","phieuphacirclekorean","phieuphaparenkorean","phieuphcirclekorean","phieuphkorean","phieuphparenkorean","philatin","phinthuthai","phisymbolgreek","phook","phophanthai","phophungthai","phosamphaothai","pieupacirclekorean","pieupaparenkorean","pieupcieuckorean","pieupcirclekorean","pieupkiyeokkorean","pieupkorean","pieupparenkorean","pieupsioskiyeokkorean","pieupsioskorean","pieupsiostikeutkorean","pieupthieuthkorean","pieuptikeutkorean","pihiragana","pikatakana","pisymbolgreek","piwrarmenian","plusbelowcmb","pluscircle","plusminus","plusmod","plusmonospace","plussmall","plussuperior","pmonospace","pmsquare","pohiragana","pointingindexdownwhite","pointingindexleftwhite","pointingindexrightwhite","pointingindexupwhite","pokatakana","poplathai","postalmark","postalmarkface","pparen","precedes","prescription","primemod","primereversed","product","projective","prolongedkana","propellor","propersubset","propersuperset","proportion","proportional","psi","psicyrillic","psilipneumatacyrilliccmb","pssquare","puhiragana","pukatakana","pvsquare","pwsquare","qadeva","qadmahebrew","qafarabic","qaffinalarabic","qafinitialarabic","qafmedialarabic","qamats","qamats10","qamats1a","qamats1c","qamats27","qamats29","qamats33","qamatsde","qamatshebrew","qamatsnarrowhebrew","qamatsqatanhebrew","qamatsqatannarrowhebrew","qamatsqatanquarterhebrew","qamatsqatanwidehebrew","qamatsquarterhebrew","qamatswidehebrew","qarneyparahebrew","qbopomofo","qcircle","qhook","qmonospace","qof","qofdagesh","qofdageshhebrew","qofhebrew","qparen","quarternote","qubuts","qubuts18","qubuts25","qubuts31","qubutshebrew","qubutsnarrowhebrew","qubutsquarterhebrew","qubutswidehebrew","question","questionarabic","questionarmenian","questiondown","questiondownsmall","questiongreek","questionmonospace","questionsmall","quotedbl","quotedblbase","quotedblleft","quotedblmonospace","quotedblprime","quotedblprimereversed","quotedblright","quoteleft","quoteleftreversed","quotereversed","quoteright","quoterightn","quotesinglbase","quotesingle","quotesinglemonospace","raarmenian","rabengali","racute","radeva","radical","radicalex","radoverssquare","radoverssquaredsquare","radsquare","rafe","rafehebrew","ragujarati","ragurmukhi","rahiragana","rakatakana","rakatakanahalfwidth","ralowerdiagonalbengali","ramiddlediagonalbengali","ramshorn","ratio","rbopomofo","rcaron","rcedilla","rcircle","rcommaaccent","rdblgrave","rdotaccent","rdotbelow","rdotbelowmacron","referencemark","reflexsubset","reflexsuperset","registered","registersans","registerserif","reharabic","reharmenian","rehfinalarabic","rehiragana","rekatakana","rekatakanahalfwidth","resh","reshdageshhebrew","reshhebrew","reversedtilde","reviahebrew","reviamugrashhebrew","revlogicalnot","rfishhook","rfishhookreversed","rhabengali","rhadeva","rho","rhook","rhookturned","rhookturnedsuperior","rhosymbolgreek","rhotichookmod","rieulacirclekorean","rieulaparenkorean","rieulcirclekorean","rieulhieuhkorean","rieulkiyeokkorean","rieulkiyeoksioskorean","rieulkorean","rieulmieumkorean","rieulpansioskorean","rieulparenkorean","rieulphieuphkorean","rieulpieupkorean","rieulpieupsioskorean","rieulsioskorean","rieulthieuthkorean","rieultikeutkorean","rieulyeorinhieuhkorean","rightangle","righttackbelowcmb","righttriangle","rihiragana","rikatakana","rikatakanahalfwidth","ring","ringbelowcmb","ringcmb","ringhalfleft","ringhalfleftarmenian","ringhalfleftbelowcmb","ringhalfleftcentered","ringhalfright","ringhalfrightbelowcmb","ringhalfrightcentered","rinvertedbreve","rittorusquare","rlinebelow","rlongleg","rlonglegturned","rmonospace","rohiragana","rokatakana","rokatakanahalfwidth","roruathai","rparen","rrabengali","rradeva","rragurmukhi","rreharabic","rrehfinalarabic","rrvocalicbengali","rrvocalicdeva","rrvocalicgujarati","rrvocalicvowelsignbengali","rrvocalicvowelsigndeva","rrvocalicvowelsigngujarati","rsuperior","rtblock","rturned","rturnedsuperior","ruhiragana","rukatakana","rukatakanahalfwidth","rupeemarkbengali","rupeesignbengali","rupiah","ruthai","rvocalicbengali","rvocalicdeva","rvocalicgujarati","rvocalicvowelsignbengali","rvocalicvowelsigndeva","rvocalicvowelsigngujarati","sabengali","sacute","sacutedotaccent","sadarabic","sadeva","sadfinalarabic","sadinitialarabic","sadmedialarabic","sagujarati","sagurmukhi","sahiragana","sakatakana","sakatakanahalfwidth","sallallahoualayhewasallamarabic","samekh","samekhdagesh","samekhdageshhebrew","samekhhebrew","saraaathai","saraaethai","saraaimaimalaithai","saraaimaimuanthai","saraamthai","saraathai","saraethai","saraiileftthai","saraiithai","saraileftthai","saraithai","saraothai","saraueeleftthai","saraueethai","saraueleftthai","sarauethai","sarauthai","sarauuthai","sbopomofo","scaron","scarondotaccent","scedilla","schwa","schwacyrillic","schwadieresiscyrillic","schwahook","scircle","scircumflex","scommaaccent","sdotaccent","sdotbelow","sdotbelowdotaccent","seagullbelowcmb","secondtonechinese","section","seenarabic","seenfinalarabic","seeninitialarabic","seenmedialarabic","segol","segol13","segol1f","segol2c","segolhebrew","segolnarrowhebrew","segolquarterhebrew","segoltahebrew","segolwidehebrew","seharmenian","sehiragana","sekatakana","sekatakanahalfwidth","semicolon","semicolonarabic","semicolonmonospace","semicolonsmall","semivoicedmarkkana","semivoicedmarkkanahalfwidth","sentisquare","sentosquare","seven","sevenarabic","sevenbengali","sevencircle","sevencircleinversesansserif","sevendeva","seveneighths","sevengujarati","sevengurmukhi","sevenhackarabic","sevenhangzhou","sevenideographicparen","seveninferior","sevenmonospace","sevenoldstyle","sevenparen","sevenperiod","sevenpersian","sevenroman","sevensuperior","seventeencircle","seventeenparen","seventeenperiod","seventhai","sfthyphen","shaarmenian","shabengali","shacyrillic","shaddaarabic","shaddadammaarabic","shaddadammatanarabic","shaddafathaarabic","shaddakasraarabic","shaddakasratanarabic","shade","shadedark","shadelight","shademedium","shadeva","shagujarati","shagurmukhi","shalshelethebrew","shbopomofo","shchacyrillic","sheenarabic","sheenfinalarabic","sheeninitialarabic","sheenmedialarabic","sheicoptic","sheqel","sheqelhebrew","sheva","sheva115","sheva15","sheva22","sheva2e","shevahebrew","shevanarrowhebrew","shevaquarterhebrew","shevawidehebrew","shhacyrillic","shimacoptic","shin","shindagesh","shindageshhebrew","shindageshshindot","shindageshshindothebrew","shindageshsindot","shindageshsindothebrew","shindothebrew","shinhebrew","shinshindot","shinshindothebrew","shinsindot","shinsindothebrew","shook","sigma1","sigmafinal","sigmalunatesymbolgreek","sihiragana","sikatakana","sikatakanahalfwidth","siluqhebrew","siluqlefthebrew","similar","sindothebrew","siosacirclekorean","siosaparenkorean","sioscieuckorean","sioscirclekorean","sioskiyeokkorean","sioskorean","siosnieunkorean","siosparenkorean","siospieupkorean","siostikeutkorean","six","sixarabic","sixbengali","sixcircle","sixcircleinversesansserif","sixdeva","sixgujarati","sixgurmukhi","sixhackarabic","sixhangzhou","sixideographicparen","sixinferior","sixmonospace","sixoldstyle","sixparen","sixperiod","sixpersian","sixroman","sixsuperior","sixteencircle","sixteencurrencydenominatorbengali","sixteenparen","sixteenperiod","sixthai","slash","slashmonospace","slong","slongdotaccent","smileface","smonospace","sofpasuqhebrew","softhyphen","softsigncyrillic","sohiragana","sokatakana","sokatakanahalfwidth","soliduslongoverlaycmb","solidusshortoverlaycmb","sorusithai","sosalathai","sosothai","sosuathai","spacehackarabic","spade","spadesuitblack","spadesuitwhite","sparen","squarebelowcmb","squarecc","squarecm","squarediagonalcrosshatchfill","squarehorizontalfill","squarekg","squarekm","squarekmcapital","squareln","squarelog","squaremg","squaremil","squaremm","squaremsquared","squareorthogonalcrosshatchfill","squareupperlefttolowerrightfill","squareupperrighttolowerleftfill","squareverticalfill","squarewhitewithsmallblack","srsquare","ssabengali","ssadeva","ssagujarati","ssangcieuckorean","ssanghieuhkorean","ssangieungkorean","ssangkiyeokkorean","ssangnieunkorean","ssangpieupkorean","ssangsioskorean","ssangtikeutkorean","ssuperior","sterling","sterlingmonospace","strokelongoverlaycmb","strokeshortoverlaycmb","subset","subsetnotequal","subsetorequal","succeeds","suchthat","suhiragana","sukatakana","sukatakanahalfwidth","sukunarabic","summation","sun","superset","supersetnotequal","supersetorequal","svsquare","syouwaerasquare","tabengali","tackdown","tackleft","tadeva","tagujarati","tagurmukhi","taharabic","tahfinalarabic","tahinitialarabic","tahiragana","tahmedialarabic","taisyouerasquare","takatakana","takatakanahalfwidth","tatweelarabic","tau","tav","tavdages","tavdagesh","tavdageshhebrew","tavhebrew","tbar","tbopomofo","tcaron","tccurl","tcedilla","tcheharabic","tchehfinalarabic","tchehinitialarabic","tchehmedialarabic","tcircle","tcircumflexbelow","tcommaaccent","tdieresis","tdotaccent","tdotbelow","tecyrillic","tedescendercyrillic","teharabic","tehfinalarabic","tehhahinitialarabic","tehhahisolatedarabic","tehinitialarabic","tehiragana","tehjeeminitialarabic","tehjeemisolatedarabic","tehmarbutaarabic","tehmarbutafinalarabic","tehmedialarabic","tehmeeminitialarabic","tehmeemisolatedarabic","tehnoonfinalarabic","tekatakana","tekatakanahalfwidth","telephone","telephoneblack","telishagedolahebrew","telishaqetanahebrew","tencircle","tenideographicparen","tenparen","tenperiod","tenroman","tesh","tet","tetdagesh","tetdageshhebrew","tethebrew","tetsecyrillic","tevirhebrew","tevirlefthebrew","thabengali","thadeva","thagujarati","thagurmukhi","thalarabic","thalfinalarabic","thanthakhatlowleftthai","thanthakhatlowrightthai","thanthakhatthai","thanthakhatupperleftthai","theharabic","thehfinalarabic","thehinitialarabic","thehmedialarabic","thereexists","therefore","theta","theta1","thetasymbolgreek","thieuthacirclekorean","thieuthaparenkorean","thieuthcirclekorean","thieuthkorean","thieuthparenkorean","thirteencircle","thirteenparen","thirteenperiod","thonangmonthothai","thook","thophuthaothai","thorn","thothahanthai","thothanthai","thothongthai","thothungthai","thousandcyrillic","thousandsseparatorarabic","thousandsseparatorpersian","three","threearabic","threebengali","threecircle","threecircleinversesansserif","threedeva","threeeighths","threegujarati","threegurmukhi","threehackarabic","threehangzhou","threeideographicparen","threeinferior","threemonospace","threenumeratorbengali","threeoldstyle","threeparen","threeperiod","threepersian","threequarters","threequartersemdash","threeroman","threesuperior","threethai","thzsquare","tihiragana","tikatakana","tikatakanahalfwidth","tikeutacirclekorean","tikeutaparenkorean","tikeutcirclekorean","tikeutkorean","tikeutparenkorean","tilde","tildebelowcmb","tildecmb","tildecomb","tildedoublecmb","tildeoperator","tildeoverlaycmb","tildeverticalcmb","timescircle","tipehahebrew","tipehalefthebrew","tippigurmukhi","titlocyrilliccmb","tiwnarmenian","tlinebelow","tmonospace","toarmenian","tohiragana","tokatakana","tokatakanahalfwidth","tonebarextrahighmod","tonebarextralowmod","tonebarhighmod","tonebarlowmod","tonebarmidmod","tonefive","tonesix","tonetwo","tonos","tonsquare","topatakthai","tortoiseshellbracketleft","tortoiseshellbracketleftsmall","tortoiseshellbracketleftvertical","tortoiseshellbracketright","tortoiseshellbracketrightsmall","tortoiseshellbracketrightvertical","totaothai","tpalatalhook","tparen","trademark","trademarksans","trademarkserif","tretroflexhook","triagdn","triaglf","triagrt","triagup","ts","tsadi","tsadidagesh","tsadidageshhebrew","tsadihebrew","tsecyrillic","tsere","tsere12","tsere1e","tsere2b","tserehebrew","tserenarrowhebrew","tserequarterhebrew","tserewidehebrew","tshecyrillic","tsuperior","ttabengali","ttadeva","ttagujarati","ttagurmukhi","tteharabic","ttehfinalarabic","ttehinitialarabic","ttehmedialarabic","tthabengali","tthadeva","tthagujarati","tthagurmukhi","tturned","tuhiragana","tukatakana","tukatakanahalfwidth","tusmallhiragana","tusmallkatakana","tusmallkatakanahalfwidth","twelvecircle","twelveparen","twelveperiod","twelveroman","twentycircle","twentyhangzhou","twentyparen","twentyperiod","two","twoarabic","twobengali","twocircle","twocircleinversesansserif","twodeva","twodotenleader","twodotleader","twodotleadervertical","twogujarati","twogurmukhi","twohackarabic","twohangzhou","twoideographicparen","twoinferior","twomonospace","twonumeratorbengali","twooldstyle","twoparen","twoperiod","twopersian","tworoman","twostroke","twosuperior","twothai","twothirds","uacute","ubar","ubengali","ubopomofo","ubreve","ucaron","ucircle","ucircumflex","ucircumflexbelow","ucyrillic","udattadeva","udblacute","udblgrave","udeva","udieresis","udieresisacute","udieresisbelow","udieresiscaron","udieresiscyrillic","udieresisgrave","udieresismacron","udotbelow","ugrave","ugujarati","ugurmukhi","uhiragana","uhookabove","uhorn","uhornacute","uhorndotbelow","uhorngrave","uhornhookabove","uhorntilde","uhungarumlaut","uhungarumlautcyrillic","uinvertedbreve","ukatakana","ukatakanahalfwidth","ukcyrillic","ukorean","umacron","umacroncyrillic","umacrondieresis","umatragurmukhi","umonospace","underscore","underscoredbl","underscoremonospace","underscorevertical","underscorewavy","union","universal","uogonek","uparen","upblock","upperdothebrew","upsilon","upsilondieresis","upsilondieresistonos","upsilonlatin","upsilontonos","uptackbelowcmb","uptackmod","uragurmukhi","uring","ushortcyrillic","usmallhiragana","usmallkatakana","usmallkatakanahalfwidth","ustraightcyrillic","ustraightstrokecyrillic","utilde","utildeacute","utildebelow","uubengali","uudeva","uugujarati","uugurmukhi","uumatragurmukhi","uuvowelsignbengali","uuvowelsigndeva","uuvowelsigngujarati","uvowelsignbengali","uvowelsigndeva","uvowelsigngujarati","vadeva","vagujarati","vagurmukhi","vakatakana","vav","vavdagesh","vavdagesh65","vavdageshhebrew","vavhebrew","vavholam","vavholamhebrew","vavvavhebrew","vavyodhebrew","vcircle","vdotbelow","vecyrillic","veharabic","vehfinalarabic","vehinitialarabic","vehmedialarabic","vekatakana","venus","verticalbar","verticallineabovecmb","verticallinebelowcmb","verticallinelowmod","verticallinemod","vewarmenian","vhook","vikatakana","viramabengali","viramadeva","viramagujarati","visargabengali","visargadeva","visargagujarati","vmonospace","voarmenian","voicediterationhiragana","voicediterationkatakana","voicedmarkkana","voicedmarkkanahalfwidth","vokatakana","vparen","vtilde","vturned","vuhiragana","vukatakana","wacute","waekorean","wahiragana","wakatakana","wakatakanahalfwidth","wakorean","wasmallhiragana","wasmallkatakana","wattosquare","wavedash","wavyunderscorevertical","wawarabic","wawfinalarabic","wawhamzaabovearabic","wawhamzaabovefinalarabic","wbsquare","wcircle","wcircumflex","wdieresis","wdotaccent","wdotbelow","wehiragana","weierstrass","wekatakana","wekorean","weokorean","wgrave","whitebullet","whitecircle","whitecircleinverse","whitecornerbracketleft","whitecornerbracketleftvertical","whitecornerbracketright","whitecornerbracketrightvertical","whitediamond","whitediamondcontainingblacksmalldiamond","whitedownpointingsmalltriangle","whitedownpointingtriangle","whiteleftpointingsmalltriangle","whiteleftpointingtriangle","whitelenticularbracketleft","whitelenticularbracketright","whiterightpointingsmalltriangle","whiterightpointingtriangle","whitesmallsquare","whitesmilingface","whitesquare","whitestar","whitetelephone","whitetortoiseshellbracketleft","whitetortoiseshellbracketright","whiteuppointingsmalltriangle","whiteuppointingtriangle","wihiragana","wikatakana","wikorean","wmonospace","wohiragana","wokatakana","wokatakanahalfwidth","won","wonmonospace","wowaenthai","wparen","wring","wsuperior","wturned","wynn","xabovecmb","xbopomofo","xcircle","xdieresis","xdotaccent","xeharmenian","xi","xmonospace","xparen","xsuperior","yaadosquare","yabengali","yacute","yadeva","yaekorean","yagujarati","yagurmukhi","yahiragana","yakatakana","yakatakanahalfwidth","yakorean","yamakkanthai","yasmallhiragana","yasmallkatakana","yasmallkatakanahalfwidth","yatcyrillic","ycircle","ycircumflex","ydieresis","ydotaccent","ydotbelow","yeharabic","yehbarreearabic","yehbarreefinalarabic","yehfinalarabic","yehhamzaabovearabic","yehhamzaabovefinalarabic","yehhamzaaboveinitialarabic","yehhamzaabovemedialarabic","yehinitialarabic","yehmedialarabic","yehmeeminitialarabic","yehmeemisolatedarabic","yehnoonfinalarabic","yehthreedotsbelowarabic","yekorean","yen","yenmonospace","yeokorean","yeorinhieuhkorean","yerahbenyomohebrew","yerahbenyomolefthebrew","yericyrillic","yerudieresiscyrillic","yesieungkorean","yesieungpansioskorean","yesieungsioskorean","yetivhebrew","ygrave","yhook","yhookabove","yiarmenian","yicyrillic","yikorean","yinyang","yiwnarmenian","ymonospace","yod","yoddagesh","yoddageshhebrew","yodhebrew","yodyodhebrew","yodyodpatahhebrew","yohiragana","yoikorean","yokatakana","yokatakanahalfwidth","yokorean","yosmallhiragana","yosmallkatakana","yosmallkatakanahalfwidth","yotgreek","yoyaekorean","yoyakorean","yoyakthai","yoyingthai","yparen","ypogegrammeni","ypogegrammenigreekcmb","yr","yring","ysuperior","ytilde","yturned","yuhiragana","yuikorean","yukatakana","yukatakanahalfwidth","yukorean","yusbigcyrillic","yusbigiotifiedcyrillic","yuslittlecyrillic","yuslittleiotifiedcyrillic","yusmallhiragana","yusmallkatakana","yusmallkatakanahalfwidth","yuyekorean","yuyeokorean","yyabengali","yyadeva","zaarmenian","zacute","zadeva","zagurmukhi","zaharabic","zahfinalarabic","zahinitialarabic","zahiragana","zahmedialarabic","zainarabic","zainfinalarabic","zakatakana","zaqefgadolhebrew","zaqefqatanhebrew","zarqahebrew","zayin","zayindagesh","zayindageshhebrew","zayinhebrew","zbopomofo","zcaron","zcircle","zcircumflex","zcurl","zdot","zdotaccent","zdotbelow","zecyrillic","zedescendercyrillic","zedieresiscyrillic","zehiragana","zekatakana","zero","zeroarabic","zerobengali","zerodeva","zerogujarati","zerogurmukhi","zerohackarabic","zeroinferior","zeromonospace","zerooldstyle","zeropersian","zerosuperior","zerothai","zerowidthjoiner","zerowidthnonjoiner","zerowidthspace","zeta","zhbopomofo","zhearmenian","zhebrevecyrillic","zhecyrillic","zhedescendercyrillic","zhedieresiscyrillic","zihiragana","zikatakana","zinorhebrew","zlinebelow","zmonospace","zohiragana","zokatakana","zparen","zretroflexhook","zstroke","zuhiragana","zukatakana","angbracketleftbig","angbracketleftBig","angbracketleftbigg","angbracketleftBigg","angbracketrightBig","angbracketrightbig","angbracketrightBigg","angbracketrightbigg","arrowhookleft","arrowhookright","arrowlefttophalf","arrowleftbothalf","arrownortheast","arrownorthwest","arrowrighttophalf","arrowrightbothalf","arrowsoutheast","arrowsouthwest","backslashbig","backslashBig","backslashBigg","backslashbigg","bardbl","bracehtipdownleft","bracehtipdownright","bracehtipupleft","bracehtipupright","braceleftBig","braceleftbig","braceleftbigg","braceleftBigg","bracerightBig","bracerightbig","bracerightbigg","bracerightBigg","bracketleftbig","bracketleftBig","bracketleftbigg","bracketleftBigg","bracketrightBig","bracketrightbig","bracketrightbigg","bracketrightBigg","ceilingleftbig","ceilingleftBig","ceilingleftBigg","ceilingleftbigg","ceilingrightbig","ceilingrightBig","ceilingrightbigg","ceilingrightBigg","circledotdisplay","circledottext","circlemultiplydisplay","circlemultiplytext","circleplusdisplay","circleplustext","contintegraldisplay","contintegraltext","coproductdisplay","coproducttext","floorleftBig","floorleftbig","floorleftbigg","floorleftBigg","floorrightbig","floorrightBig","floorrightBigg","floorrightbigg","hatwide","hatwider","hatwidest","intercal","integraldisplay","integraltext","intersectiondisplay","intersectiontext","logicalanddisplay","logicalandtext","logicalordisplay","logicalortext","parenleftBig","parenleftbig","parenleftBigg","parenleftbigg","parenrightBig","parenrightbig","parenrightBigg","parenrightbigg","prime","productdisplay","producttext","radicalbig","radicalBig","radicalBigg","radicalbigg","radicalbt","radicaltp","radicalvertex","slashbig","slashBig","slashBigg","slashbigg","summationdisplay","summationtext","tildewide","tildewider","tildewidest","uniondisplay","unionmultidisplay","unionmultitext","unionsqdisplay","unionsqtext","uniontext","vextenddouble","vextendsingle","getDingbatsGlyphsUnicode","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","getStdFontMap","getNonStdFontMap","getSerifFonts","getSymbolsFonts","getGlyphMapForStandardFonts","getSupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForCalibri","getSpecialPUASymbols","nameLen","hexStr","substring","toUpperCase","UnicodeRanges","isRTLRangeFor","getNormalizedUnicodes","charsLength","numSubrs","getUshort","getLong","idOffset","groups","idDelta","gsubrs","isCFFCIDFont","cmds","numberOfContours","arg1","arg2","scale01","scale10","subglyph","compileGlyf","endPtsOfContours","instructionLength","numberOfPoints","points","startPoint","contour","quadraticCurveTo","stems","stackClean","xa","ya","xb","yb","bezierCurveTo","subrCode","getSubroutineBias","y3","achar","bchar","lookupCmap","compileCharString","NOOP","getPathJs","compileGlyph","hasBuiltPath","compileGlyphImpl","cffInfo","glyphNameMap","parseCmap","parseCff","parseGlyfTable","HINTING_ENABLED","Type1CharString","COMMAND_MAP","hstem","vstem","vmoveto","rlineto","hlineto","vlineto","rrcurveto","callsubr","flex","drop","endchar","rmoveto","hmoveto","vhcurveto","hvcurveto","dy","wx","sbx","sby","num2","num1","flexArgs","executeCommand","stackLength","howManyArgs","Type1Parser","EEXEC_ENCRYPT_KEY","CHAR_STRS_ENCRYPT_KEY","discardNumber","c1","c2","decrypted","digit1","isHexDigit","digit2","isBinary","decryptAscii","readNumberArray","readInt","readBoolean","nextChar","getToken","readCharStrings","lenIV","extractFontProgram","privateData","program","blueArray","charString","charStringObject","lsb","extractFontHeader","encodingArg","ShadingType","FUNCTION_BASED","AXIAL","RADIAL","FREE_FORM_MESH","LATTICE_FORM_MESH","COONS_PATCH_MESH","TENSOR_PATCH_MESH","getPattern","Shadings","t0","domainArr","extendStart","extendEnd","extendArr","x1","r1","r2","distance","fnObj","NUMBER_OF_SAMPLES","colorStops","cssColor","background","RadialAxial","coordsArr","shadingType","r0","csNumComps","MeshStreamReader","align","readFlag","readCoordinate","bitsPerCoordinate","yi","readComponents","ci","coords","mesh","operators","ps","verticesLeft","coord","verticesPerRow","MIN_SPLIT_PATCH_CHUNKS_AMOUNT","MAX_SPLIT_PATCH_CHUNKS_AMOUNT","TRIANGLE_DENSITY","getB","lut","t_","buildB","figure","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","splitYBy","figureCoords","figureColors","cl","cr","c0","c3","bRow","bCol","newColor","tmp4","maxY","coordsPacked","xy","colorsPacked","figures","decodeContext","bitsPerFlag","colorFn","patchMesh","decodeType4Shading","decodeType5Shading","decodeType6Shading","decodeType7Shading","updateBounds","buildFigureFromPatch","packData","Mesh","Dummy","xstep","ystep","paintType","tilingType","baseTypes","arabicTypes","isLTR","strLength","createBidiText","numBidi","charType","startLevel","levels","isOdd","sor","eor","lastType","findUnequal","before","after","setValues","isEven","highestLevel","lowestOddLevel","reverseValues","getMetrics","createFromArray","PDFFunction","CONSTRUCT_SAMPLED","CONSTRUCT_INTERPOLATED","CONSTRUCT_STICHED","CONSTRUCT_POSTSCRIPT","getSampleArray","sampleMul","strBytes","strIdx","typeFn","fromIR","parseArray","constructSampled","toNumberArray","inputSize","outputSize","toMultiArray","bps","samples","constructSampledFromIR","ymin","cubeVertices","cubeN","cubeVertex","domain_2i","domain_2i_1","interpolate","size_i","e0","n0","n1","rj","constructInterpolated","constructInterpolatedFromIR","constructStiched","fnRefs","fns","bounds","constructStichedFromIR","dmin","dmax","rmin","rmax","constructPostScript","constructPostScriptFromIR","numOutputs","numInputs","MAX_CACHE_SIZE","cache_available","cachedValue","stackIndex","bound","fnDict","PostScriptStack","MAX_STACK_SIZE","copy","roll","PostScriptEvaluator","execute","operator","PostScriptCompiler","AstNode","AstArgument","AstLiteral","AstBinaryOperation","AstMin","AstVariable","AstVariableDefinition","ExpressionBuilderVisitor","visitArgument","visitVariable","visitLiteral","literal","visitBinaryOperation","visitVariableDefinition","definition","visitMin","instructions","lastRegister","buildAddOperation","buildMulOperation","buildSubOperation","ast1","ast2","tmpVar","buildMinOperation","statementBuilder","instruction","expr","accept","expect","PostScriptTokenTypes","conditionLocation","jumpLocation","endOfTrue","LBRACE","RBRACE","NUMBER","OPERATOR","IF","IFELSE","PostScriptToken","opCache","opValue","SEED","MASK_HIGH","MASK_LOW","seed","update","blockCounts","tailLength","dataUint32","k2","C1","C2","C1_LOW","C2_LOW","hex1","hex2","PDFImage","addend","isMask","isIndexed","maskDict","imageData","smaskData","maskData","computedLength","haveFullData","decodeBuffer","decodeAddends","decodeCoefficients","decodeAndClamp","getComponents","bufferPos","rowComps","loop1End","loop2End","buf","remainingBits","fillOpacity","sw","sh","alphaBuf","resizeImageMask","opacity","imageOffset","maskOffset","rgbaBuf","undoPreblend","matte","matteRgb","matteR","matteG","matteB","createImageData","forceRGBA","drawWidth","drawHeight","newArray","imageLength","actualHeight","maybeUndoPreblend","fillGrayBuffer","getImageBytes","CallbackKind","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","callbackId","wrapReason","cbSourceName","cbTargetName","comObj","sourceName","targetName","on","ah","sendWithPromise","sendWithStream","streamId","startCapability","startCall","pullCall","cancelCall","isClosed","pull","pullCapability","cancelCapability","_createStreamSink","lastDesiredSize","sinkCapability","onPull","onCancel","isCancelled","success","_processStreamMessage","_postMessage","getRangeReader","cancelAllRequests","readers"],"mappings":"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","file":"pdf.worker.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf.worker\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf.worker\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf.worker\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __w_pdfjs_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__w_pdfjs_require__.m = modules;\n\n \t// expose the module cache\n \t__w_pdfjs_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__w_pdfjs_require__.d = function(exports, name, getter) {\n \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__w_pdfjs_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__w_pdfjs_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__w_pdfjs_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__w_pdfjs_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__w_pdfjs_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\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 { WorkerMessageHandler } from \"./core/worker.js\";\n\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsVersion = PDFJSDev.eval(\"BUNDLE_VERSION\");\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsBuild = PDFJSDev.eval(\"BUNDLE_BUILD\");\n\nexport { WorkerMessageHandler };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AbortException,\n  arrayByteLength,\n  arraysToBytes,\n  createPromiseCapability,\n  getVerbosityLevel,\n  info,\n  InvalidPDFException,\n  MissingPDFException,\n  PasswordException,\n  setVerbosityLevel,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  UNSUPPORTED_FEATURES,\n  VerbosityLevel,\n  warn,\n} from \"../shared/util.js\";\nimport { clearPrimitiveCaches, Ref } from \"./primitives.js\";\nimport { LocalPdfManager, NetworkPdfManager } from \"./pdf_manager.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { PDFWorkerStream } from \"./worker_stream.js\";\nimport { XRefParseException } from \"./core_utils.js\";\n\nvar WorkerTask = (function WorkerTaskClosure() {\n  // eslint-disable-next-line no-shadow\n  function WorkerTask(name) {\n    this.name = name;\n    this.terminated = false;\n    this._capability = createPromiseCapability();\n  }\n\n  WorkerTask.prototype = {\n    get finished() {\n      return this._capability.promise;\n    },\n\n    finish() {\n      this._capability.resolve();\n    },\n\n    terminate() {\n      this.terminated = true;\n    },\n\n    ensureNotTerminated() {\n      if (this.terminated) {\n        throw new Error(\"Worker task was terminated\");\n      }\n    },\n  };\n\n  return WorkerTask;\n})();\n\nvar WorkerMessageHandler = {\n  setup(handler, port) {\n    var testMessageProcessed = false;\n    handler.on(\"test\", function wphSetupTest(data) {\n      if (testMessageProcessed) {\n        return; // we already processed 'test' message once\n      }\n      testMessageProcessed = true;\n\n      // check if Uint8Array can be sent to worker\n      if (!(data instanceof Uint8Array)) {\n        handler.send(\"test\", null);\n        return;\n      }\n      // making sure postMessage transfers are working\n      const supportTransfers = data[0] === 255;\n      handler.postMessageTransfers = supportTransfers;\n\n      handler.send(\"test\", { supportTransfers });\n    });\n\n    handler.on(\"configure\", function wphConfigure(data) {\n      setVerbosityLevel(data.verbosity);\n    });\n\n    handler.on(\"GetDocRequest\", function wphSetupDoc(data) {\n      return WorkerMessageHandler.createDocumentHandler(data, port);\n    });\n  },\n  createDocumentHandler(docParams, port) {\n    // This context is actually holds references on pdfManager and handler,\n    // until the latter is destroyed.\n    var pdfManager;\n    var terminated = false;\n    var cancelXHRs = null;\n    var WorkerTasks = [];\n    const verbosity = getVerbosityLevel();\n\n    const apiVersion = docParams.apiVersion;\n    const workerVersion =\n      typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n        ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n        : null;\n    if (apiVersion !== workerVersion) {\n      throw new Error(\n        `The API version \"${apiVersion}\" does not match ` +\n          `the Worker version \"${workerVersion}\".`\n      );\n    }\n\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n      // Fail early, and predictably, rather than having (some) fonts fail to\n      // load/render with slightly cryptic error messages in environments where\n      // the `Array.prototype` has been *incorrectly* extended.\n      //\n      // PLEASE NOTE: We do *not* want to slow down font parsing by adding\n      //              `hasOwnProperty` checks all over the code-base.\n      const enumerableProperties = [];\n      for (const property in []) {\n        enumerableProperties.push(property);\n      }\n      if (enumerableProperties.length) {\n        throw new Error(\n          \"The `Array.prototype` contains unexpected enumerable properties: \" +\n            enumerableProperties.join(\", \") +\n            \"; thus breaking e.g. `for...in` iteration of `Array`s.\"\n        );\n      }\n\n      // Ensure that (primarily) Node.js users won't accidentally attempt to use\n      // a non-translated/non-polyfilled build of the library, since that would\n      // quickly fail anyway because of missing functionality (such as e.g.\n      // `ReadableStream` and `Promise.allSettled`).\n      if (\n        (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"SKIP_BABEL\")) &&\n        (typeof ReadableStream === \"undefined\" ||\n          typeof Promise.allSettled === \"undefined\")\n      ) {\n        throw new Error(\n          \"The browser/environment lacks native support for critical \" +\n            \"functionality used by the PDF.js library (e.g. \" +\n            \"`ReadableStream` and/or `Promise.allSettled`); \" +\n            \"please use an ES5-compatible build instead.\"\n        );\n      }\n    }\n\n    var docId = docParams.docId;\n    var docBaseUrl = docParams.docBaseUrl;\n    var workerHandlerName = docParams.docId + \"_worker\";\n    var handler = new MessageHandler(workerHandlerName, docId, port);\n\n    // Ensure that postMessage transfers are always correctly enabled/disabled,\n    // to prevent \"DataCloneError\" in browsers without transfers support.\n    handler.postMessageTransfers = docParams.postMessageTransfers;\n\n    function ensureNotTerminated() {\n      if (terminated) {\n        throw new Error(\"Worker was terminated\");\n      }\n    }\n\n    function startWorkerTask(task) {\n      WorkerTasks.push(task);\n    }\n\n    function finishWorkerTask(task) {\n      task.finish();\n      var i = WorkerTasks.indexOf(task);\n      WorkerTasks.splice(i, 1);\n    }\n\n    async function loadDocument(recoveryMode) {\n      await pdfManager.ensureDoc(\"checkHeader\");\n      await pdfManager.ensureDoc(\"parseStartXRef\");\n      await pdfManager.ensureDoc(\"parse\", [recoveryMode]);\n\n      if (!recoveryMode) {\n        // Check that at least the first page can be successfully loaded,\n        // since otherwise the XRef table is definitely not valid.\n        await pdfManager.ensureDoc(\"checkFirstPage\");\n      }\n\n      const [numPages, fingerprint] = await Promise.all([\n        pdfManager.ensureDoc(\"numPages\"),\n        pdfManager.ensureDoc(\"fingerprint\"),\n      ]);\n      return { numPages, fingerprint };\n    }\n\n    function getPdfManager(data, evaluatorOptions) {\n      var pdfManagerCapability = createPromiseCapability();\n      let newPdfManager;\n\n      var source = data.source;\n      if (source.data) {\n        try {\n          newPdfManager = new LocalPdfManager(\n            docId,\n            source.data,\n            source.password,\n            evaluatorOptions,\n            docBaseUrl\n          );\n          pdfManagerCapability.resolve(newPdfManager);\n        } catch (ex) {\n          pdfManagerCapability.reject(ex);\n        }\n        return pdfManagerCapability.promise;\n      }\n\n      var pdfStream,\n        cachedChunks = [];\n      try {\n        pdfStream = new PDFWorkerStream(handler);\n      } catch (ex) {\n        pdfManagerCapability.reject(ex);\n        return pdfManagerCapability.promise;\n      }\n\n      var fullRequest = pdfStream.getFullReader();\n      fullRequest.headersReady\n        .then(function () {\n          if (!fullRequest.isRangeSupported) {\n            return;\n          }\n\n          // We don't need auto-fetch when streaming is enabled.\n          var disableAutoFetch =\n            source.disableAutoFetch || fullRequest.isStreamingSupported;\n          newPdfManager = new NetworkPdfManager(\n            docId,\n            pdfStream,\n            {\n              msgHandler: handler,\n              password: source.password,\n              length: fullRequest.contentLength,\n              disableAutoFetch,\n              rangeChunkSize: source.rangeChunkSize,\n            },\n            evaluatorOptions,\n            docBaseUrl\n          );\n          // There may be a chance that `newPdfManager` is not initialized for\n          // the first few runs of `readchunk` block of code. Be sure to send\n          // all cached chunks, if any, to chunked_stream via pdf_manager.\n          for (let i = 0; i < cachedChunks.length; i++) {\n            newPdfManager.sendProgressiveData(cachedChunks[i]);\n          }\n\n          cachedChunks = [];\n          pdfManagerCapability.resolve(newPdfManager);\n          cancelXHRs = null;\n        })\n        .catch(function (reason) {\n          pdfManagerCapability.reject(reason);\n          cancelXHRs = null;\n        });\n\n      var loaded = 0;\n      var flushChunks = function () {\n        var pdfFile = arraysToBytes(cachedChunks);\n        if (source.length && pdfFile.length !== source.length) {\n          warn(\"reported HTTP length is different from actual\");\n        }\n        // the data is array, instantiating directly from it\n        try {\n          newPdfManager = new LocalPdfManager(\n            docId,\n            pdfFile,\n            source.password,\n            evaluatorOptions,\n            docBaseUrl\n          );\n          pdfManagerCapability.resolve(newPdfManager);\n        } catch (ex) {\n          pdfManagerCapability.reject(ex);\n        }\n        cachedChunks = [];\n      };\n      var readPromise = new Promise(function (resolve, reject) {\n        var readChunk = function ({ value, done }) {\n          try {\n            ensureNotTerminated();\n            if (done) {\n              if (!newPdfManager) {\n                flushChunks();\n              }\n              cancelXHRs = null;\n              return;\n            }\n\n            loaded += arrayByteLength(value);\n            if (!fullRequest.isStreamingSupported) {\n              handler.send(\"DocProgress\", {\n                loaded,\n                total: Math.max(loaded, fullRequest.contentLength || 0),\n              });\n            }\n\n            if (newPdfManager) {\n              newPdfManager.sendProgressiveData(value);\n            } else {\n              cachedChunks.push(value);\n            }\n\n            fullRequest.read().then(readChunk, reject);\n          } catch (e) {\n            reject(e);\n          }\n        };\n        fullRequest.read().then(readChunk, reject);\n      });\n      readPromise.catch(function (e) {\n        pdfManagerCapability.reject(e);\n        cancelXHRs = null;\n      });\n\n      cancelXHRs = function (reason) {\n        pdfStream.cancelAllRequests(reason);\n      };\n\n      return pdfManagerCapability.promise;\n    }\n\n    function setupDoc(data) {\n      function onSuccess(doc) {\n        ensureNotTerminated();\n        handler.send(\"GetDoc\", { pdfInfo: doc });\n      }\n\n      function onFailure(ex) {\n        ensureNotTerminated();\n\n        if (ex instanceof PasswordException) {\n          var task = new WorkerTask(`PasswordException: response ${ex.code}`);\n          startWorkerTask(task);\n\n          handler\n            .sendWithPromise(\"PasswordRequest\", ex)\n            .then(function ({ password }) {\n              finishWorkerTask(task);\n              pdfManager.updatePassword(password);\n              pdfManagerReady();\n            })\n            .catch(function () {\n              finishWorkerTask(task);\n              handler.send(\"DocException\", ex);\n            });\n        } else if (\n          ex instanceof InvalidPDFException ||\n          ex instanceof MissingPDFException ||\n          ex instanceof UnexpectedResponseException ||\n          ex instanceof UnknownErrorException\n        ) {\n          handler.send(\"DocException\", ex);\n        } else {\n          handler.send(\n            \"DocException\",\n            new UnknownErrorException(ex.message, ex.toString())\n          );\n        }\n      }\n\n      function pdfManagerReady() {\n        ensureNotTerminated();\n\n        loadDocument(false).then(\n          onSuccess,\n          function loadFailure(ex) {\n            ensureNotTerminated();\n\n            // Try again with recoveryMode == true\n            if (!(ex instanceof XRefParseException)) {\n              onFailure(ex);\n              return;\n            }\n            pdfManager.requestLoadedStream();\n            pdfManager.onLoadedStream().then(function () {\n              ensureNotTerminated();\n\n              loadDocument(true).then(onSuccess, onFailure);\n            });\n          },\n          onFailure\n        );\n      }\n\n      ensureNotTerminated();\n\n      var evaluatorOptions = {\n        maxImageSize: data.maxImageSize,\n        disableFontFace: data.disableFontFace,\n        ignoreErrors: data.ignoreErrors,\n        isEvalSupported: data.isEvalSupported,\n        fontExtraProperties: data.fontExtraProperties,\n      };\n\n      getPdfManager(data, evaluatorOptions)\n        .then(function (newPdfManager) {\n          if (terminated) {\n            // We were in a process of setting up the manager, but it got\n            // terminated in the middle.\n            newPdfManager.terminate(\n              new AbortException(\"Worker was terminated.\")\n            );\n            throw new Error(\"Worker was terminated\");\n          }\n          pdfManager = newPdfManager;\n\n          pdfManager.onLoadedStream().then(function (stream) {\n            handler.send(\"DataLoaded\", { length: stream.bytes.byteLength });\n          });\n        })\n        .then(pdfManagerReady, onFailure);\n    }\n\n    handler.on(\"GetPage\", function wphSetupGetPage(data) {\n      return pdfManager.getPage(data.pageIndex).then(function (page) {\n        return Promise.all([\n          pdfManager.ensure(page, \"rotate\"),\n          pdfManager.ensure(page, \"ref\"),\n          pdfManager.ensure(page, \"userUnit\"),\n          pdfManager.ensure(page, \"view\"),\n        ]).then(function ([rotate, ref, userUnit, view]) {\n          return {\n            rotate,\n            ref,\n            userUnit,\n            view,\n          };\n        });\n      });\n    });\n\n    handler.on(\"GetPageIndex\", function wphSetupGetPageIndex(data) {\n      var ref = Ref.get(data.ref.num, data.ref.gen);\n      var catalog = pdfManager.pdfDocument.catalog;\n      return catalog.getPageIndex(ref);\n    });\n\n    handler.on(\"GetDestinations\", function wphSetupGetDestinations(data) {\n      return pdfManager.ensureCatalog(\"destinations\");\n    });\n\n    handler.on(\"GetDestination\", function wphSetupGetDestination(data) {\n      return pdfManager.ensureCatalog(\"getDestination\", [data.id]);\n    });\n\n    handler.on(\"GetPageLabels\", function wphSetupGetPageLabels(data) {\n      return pdfManager.ensureCatalog(\"pageLabels\");\n    });\n\n    handler.on(\"GetPageLayout\", function wphSetupGetPageLayout(data) {\n      return pdfManager.ensureCatalog(\"pageLayout\");\n    });\n\n    handler.on(\"GetPageMode\", function wphSetupGetPageMode(data) {\n      return pdfManager.ensureCatalog(\"pageMode\");\n    });\n\n    handler.on(\"GetViewerPreferences\", function (data) {\n      return pdfManager.ensureCatalog(\"viewerPreferences\");\n    });\n\n    handler.on(\"GetOpenAction\", function (data) {\n      return pdfManager.ensureCatalog(\"openAction\");\n    });\n\n    handler.on(\"GetAttachments\", function wphSetupGetAttachments(data) {\n      return pdfManager.ensureCatalog(\"attachments\");\n    });\n\n    handler.on(\"GetJavaScript\", function wphSetupGetJavaScript(data) {\n      return pdfManager.ensureCatalog(\"javaScript\");\n    });\n\n    handler.on(\"GetOutline\", function wphSetupGetOutline(data) {\n      return pdfManager.ensureCatalog(\"documentOutline\");\n    });\n\n    handler.on(\"GetPermissions\", function (data) {\n      return pdfManager.ensureCatalog(\"permissions\");\n    });\n\n    handler.on(\"GetMetadata\", function wphSetupGetMetadata(data) {\n      return Promise.all([\n        pdfManager.ensureDoc(\"documentInfo\"),\n        pdfManager.ensureCatalog(\"metadata\"),\n      ]);\n    });\n\n    handler.on(\"GetData\", function wphSetupGetData(data) {\n      pdfManager.requestLoadedStream();\n      return pdfManager.onLoadedStream().then(function (stream) {\n        return stream.bytes;\n      });\n    });\n\n    handler.on(\"GetStats\", function wphSetupGetStats(data) {\n      return pdfManager.pdfDocument.xref.stats;\n    });\n\n    handler.on(\"GetAnnotations\", function ({ pageIndex, intent }) {\n      return pdfManager.getPage(pageIndex).then(function (page) {\n        return page.getAnnotationsData(intent);\n      });\n    });\n\n    handler.on(\n      \"GetOperatorList\",\n      function wphSetupRenderPage(data, sink) {\n        var pageIndex = data.pageIndex;\n        pdfManager.getPage(pageIndex).then(function (page) {\n          var task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);\n          startWorkerTask(task);\n\n          // NOTE: Keep this condition in sync with the `info` helper function.\n          const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n          // Pre compile the pdf page and fetch the fonts/images.\n          page\n            .getOperatorList({\n              handler,\n              sink,\n              task,\n              intent: data.intent,\n              renderInteractiveForms: data.renderInteractiveForms,\n            })\n            .then(\n              function (operatorListInfo) {\n                finishWorkerTask(task);\n\n                if (start) {\n                  info(\n                    `page=${pageIndex + 1} - getOperatorList: time=` +\n                      `${Date.now() - start}ms, len=${operatorListInfo.length}`\n                  );\n                }\n                sink.close();\n              },\n              function (reason) {\n                finishWorkerTask(task);\n                if (task.terminated) {\n                  return; // ignoring errors from the terminated thread\n                }\n                // For compatibility with older behavior, generating unknown\n                // unsupported feature notification on errors.\n                handler.send(\"UnsupportedFeature\", {\n                  featureId: UNSUPPORTED_FEATURES.errorOperatorList,\n                });\n\n                sink.error(reason);\n\n                // TODO: Should `reason` be re-thrown here (currently that\n                //       casues \"Uncaught exception: ...\" messages in the\n                //       console)?\n              }\n            );\n        });\n      },\n      this\n    );\n\n    handler.on(\"GetTextContent\", function wphExtractText(data, sink) {\n      var pageIndex = data.pageIndex;\n      sink.onPull = function (desiredSize) {};\n      sink.onCancel = function (reason) {};\n\n      pdfManager.getPage(pageIndex).then(function (page) {\n        var task = new WorkerTask(\"GetTextContent: page \" + pageIndex);\n        startWorkerTask(task);\n\n        // NOTE: Keep this condition in sync with the `info` helper function.\n        const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n        page\n          .extractTextContent({\n            handler,\n            task,\n            sink,\n            normalizeWhitespace: data.normalizeWhitespace,\n            combineTextItems: data.combineTextItems,\n          })\n          .then(\n            function () {\n              finishWorkerTask(task);\n\n              if (start) {\n                info(\n                  `page=${pageIndex + 1} - getTextContent: time=` +\n                    `${Date.now() - start}ms`\n                );\n              }\n              sink.close();\n            },\n            function (reason) {\n              finishWorkerTask(task);\n              if (task.terminated) {\n                return; // ignoring errors from the terminated thread\n              }\n              sink.error(reason);\n\n              // TODO: Should `reason` be re-thrown here (currently that casues\n              //       \"Uncaught exception: ...\" messages in the console)?\n            }\n          );\n      });\n    });\n\n    handler.on(\"FontFallback\", function (data) {\n      return pdfManager.fontFallback(data.id, handler);\n    });\n\n    handler.on(\"Cleanup\", function wphCleanup(data) {\n      return pdfManager.cleanup(/* manuallyTriggered = */ true);\n    });\n\n    handler.on(\"Terminate\", function wphTerminate(data) {\n      terminated = true;\n\n      const waitOn = [];\n      if (pdfManager) {\n        pdfManager.terminate(new AbortException(\"Worker was terminated.\"));\n\n        const cleanupPromise = pdfManager.cleanup();\n        waitOn.push(cleanupPromise);\n\n        pdfManager = null;\n      } else {\n        clearPrimitiveCaches();\n      }\n      if (cancelXHRs) {\n        cancelXHRs(new AbortException(\"Worker was terminated.\"));\n      }\n\n      WorkerTasks.forEach(function (task) {\n        waitOn.push(task.finished);\n        task.terminate();\n      });\n\n      return Promise.all(waitOn).then(function () {\n        // Notice that even if we destroying handler, resolved response promise\n        // must be sent back.\n        handler.destroy();\n        handler = null;\n      });\n    });\n\n    handler.on(\"Ready\", function wphReady(data) {\n      setupDoc(docParams);\n      docParams = null; // we don't need docParams anymore -- saving memory.\n    });\n    return workerHandlerName;\n  },\n  initializeFromPort(port) {\n    var handler = new MessageHandler(\"worker\", \"main\", port);\n    WorkerMessageHandler.setup(handler, port);\n    handler.send(\"ready\", null);\n  },\n};\n\nfunction isMessagePort(maybePort) {\n  return (\n    typeof maybePort.postMessage === \"function\" && \"onmessage\" in maybePort\n  );\n}\n\n// Worker thread (and not Node.js)?\nif (\n  typeof window === \"undefined\" &&\n  !isNodeJS &&\n  typeof self !== \"undefined\" &&\n  isMessagePort(self)\n) {\n  WorkerMessageHandler.initializeFromPort(self);\n}\n\nexport { WorkerTask, WorkerMessageHandler };\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  exports.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  exports.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  exports.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  exports.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return PromiseImpl.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return PromiseImpl.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new PromiseImpl(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  exports.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList),\n      PromiseImpl\n    );\n\n    return exports.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        // Note: [\"return\"] must be used for ES3 parsing compatibility.\n        if (delegate.iterator[\"return\"]) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  exports.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  exports.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n\n  // Regardless of whether this script is executing as a CommonJS module\n  // or not, return the runtime object so that we can declare the variable\n  // regeneratorRuntime in the outer scope, which allows this module to be\n  // injected easily by `bin/regenerator --include-runtime script.js`.\n  return exports;\n\n}(\n  // If this script is executing as a CommonJS module, use module.exports\n  // as the regeneratorRuntime namespace. Otherwise create a new empty\n  // object. Either way, the resulting object will be used to initialize\n  // the regeneratorRuntime variable at the top of this file.\n  typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  // This module should not be running in strict mode, so the above\n  // assignment should always work unless something is misconfigured. Just\n  // in case runtime.js accidentally runs in strict mode, we can escape\n  // strict mode using a global Function call. This could conceivably fail\n  // if a Content Security Policy forbids using Function, but in that case\n  // the proper solution is to fix the accidental strict mode problem. If\n  // you've misconfigured your bundler to force strict mode and applied a\n  // CSP to forbid Function, and you're not willing to fix either of those\n  // problems, please detail your unique predicament in a GitHub issue.\n  Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\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/* eslint no-var: error */\n\nimport \"./compatibility.js\";\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n  PRINT: 0x04,\n  MODIFY_CONTENTS: 0x08,\n  COPY: 0x10,\n  MODIFY_ANNOTATIONS: 0x20,\n  FILL_INTERACTIVE_FORMS: 0x100,\n  COPY_FOR_ACCESSIBILITY: 0x200,\n  ASSEMBLE: 0x400,\n  PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n  FILL: 0,\n  STROKE: 1,\n  FILL_STROKE: 2,\n  INVISIBLE: 3,\n  FILL_ADD_TO_PATH: 4,\n  STROKE_ADD_TO_PATH: 5,\n  FILL_STROKE_ADD_TO_PATH: 6,\n  ADD_TO_PATH: 7,\n  FILL_STROKE_MASK: 3,\n  ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n  TEXT: 1,\n  LINK: 2,\n  FREETEXT: 3,\n  LINE: 4,\n  SQUARE: 5,\n  CIRCLE: 6,\n  POLYGON: 7,\n  POLYLINE: 8,\n  HIGHLIGHT: 9,\n  UNDERLINE: 10,\n  SQUIGGLY: 11,\n  STRIKEOUT: 12,\n  STAMP: 13,\n  CARET: 14,\n  INK: 15,\n  POPUP: 16,\n  FILEATTACHMENT: 17,\n  SOUND: 18,\n  MOVIE: 19,\n  WIDGET: 20,\n  SCREEN: 21,\n  PRINTERMARK: 22,\n  TRAPNET: 23,\n  WATERMARK: 24,\n  THREED: 25,\n  REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n  MARKED: \"Marked\",\n  REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n  MARKED: \"Marked\",\n  UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n  ACCEPTED: \"Accepted\",\n  REJECTED: \"Rejected\",\n  CANCELLED: \"Cancelled\",\n  COMPLETED: \"Completed\",\n  NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n  GROUP: \"Group\",\n  REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n  INVISIBLE: 0x01,\n  HIDDEN: 0x02,\n  PRINT: 0x04,\n  NOZOOM: 0x08,\n  NOROTATE: 0x10,\n  NOVIEW: 0x20,\n  READONLY: 0x40,\n  LOCKED: 0x80,\n  TOGGLENOVIEW: 0x100,\n  LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n  READONLY: 0x0000001,\n  REQUIRED: 0x0000002,\n  NOEXPORT: 0x0000004,\n  MULTILINE: 0x0001000,\n  PASSWORD: 0x0002000,\n  NOTOGGLETOOFF: 0x0004000,\n  RADIO: 0x0008000,\n  PUSHBUTTON: 0x0010000,\n  COMBO: 0x0020000,\n  EDIT: 0x0040000,\n  SORT: 0x0080000,\n  FILESELECT: 0x0100000,\n  MULTISELECT: 0x0200000,\n  DONOTSPELLCHECK: 0x0400000,\n  DONOTSCROLL: 0x0800000,\n  COMB: 0x1000000,\n  RICHTEXT: 0x2000000,\n  RADIOSINUNISON: 0x2000000,\n  COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5,\n};\n\nconst StreamType = {\n  UNKNOWN: \"UNKNOWN\",\n  FLATE: \"FLATE\",\n  LZW: \"LZW\",\n  DCT: \"DCT\",\n  JPX: \"JPX\",\n  JBIG: \"JBIG\",\n  A85: \"A85\",\n  AHX: \"AHX\",\n  CCF: \"CCF\",\n  RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n  UNKNOWN: \"UNKNOWN\",\n  TYPE1: \"TYPE1\",\n  TYPE1C: \"TYPE1C\",\n  CIDFONTTYPE0: \"CIDFONTTYPE0\",\n  CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n  TRUETYPE: \"TRUETYPE\",\n  CIDFONTTYPE2: \"CIDFONTTYPE2\",\n  TYPE3: \"TYPE3\",\n  OPENTYPE: \"OPENTYPE\",\n  TYPE0: \"TYPE0\",\n  MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5,\n};\n\nconst CMapCompressionType = {\n  NONE: 0,\n  BINARY: 1,\n  STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n  // Intentionally start from 1 so it is easy to spot bad operators that will be\n  // 0's.\n  dependency: 1,\n  setLineWidth: 2,\n  setLineCap: 3,\n  setLineJoin: 4,\n  setMiterLimit: 5,\n  setDash: 6,\n  setRenderingIntent: 7,\n  setFlatness: 8,\n  setGState: 9,\n  save: 10,\n  restore: 11,\n  transform: 12,\n  moveTo: 13,\n  lineTo: 14,\n  curveTo: 15,\n  curveTo2: 16,\n  curveTo3: 17,\n  closePath: 18,\n  rectangle: 19,\n  stroke: 20,\n  closeStroke: 21,\n  fill: 22,\n  eoFill: 23,\n  fillStroke: 24,\n  eoFillStroke: 25,\n  closeFillStroke: 26,\n  closeEOFillStroke: 27,\n  endPath: 28,\n  clip: 29,\n  eoClip: 30,\n  beginText: 31,\n  endText: 32,\n  setCharSpacing: 33,\n  setWordSpacing: 34,\n  setHScale: 35,\n  setLeading: 36,\n  setFont: 37,\n  setTextRenderingMode: 38,\n  setTextRise: 39,\n  moveText: 40,\n  setLeadingMoveText: 41,\n  setTextMatrix: 42,\n  nextLine: 43,\n  showText: 44,\n  showSpacedText: 45,\n  nextLineShowText: 46,\n  nextLineSetSpacingShowText: 47,\n  setCharWidth: 48,\n  setCharWidthAndBounds: 49,\n  setStrokeColorSpace: 50,\n  setFillColorSpace: 51,\n  setStrokeColor: 52,\n  setStrokeColorN: 53,\n  setFillColor: 54,\n  setFillColorN: 55,\n  setStrokeGray: 56,\n  setFillGray: 57,\n  setStrokeRGBColor: 58,\n  setFillRGBColor: 59,\n  setStrokeCMYKColor: 60,\n  setFillCMYKColor: 61,\n  shadingFill: 62,\n  beginInlineImage: 63,\n  beginImageData: 64,\n  endInlineImage: 65,\n  paintXObject: 66,\n  markPoint: 67,\n  markPointProps: 68,\n  beginMarkedContent: 69,\n  beginMarkedContentProps: 70,\n  endMarkedContent: 71,\n  beginCompat: 72,\n  endCompat: 73,\n  paintFormXObjectBegin: 74,\n  paintFormXObjectEnd: 75,\n  beginGroup: 76,\n  endGroup: 77,\n  beginAnnotations: 78,\n  endAnnotations: 79,\n  beginAnnotation: 80,\n  endAnnotation: 81,\n  paintJpegXObject: 82,\n  paintImageMaskXObject: 83,\n  paintImageMaskXObjectGroup: 84,\n  paintImageXObject: 85,\n  paintInlineImageXObject: 86,\n  paintInlineImageXObjectGroup: 87,\n  paintImageXObjectRepeat: 88,\n  paintImageMaskXObjectRepeat: 89,\n  paintSolidColorImageMask: 90,\n  constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n  /** @deprecated unused */\n  unknown: \"unknown\",\n  forms: \"forms\",\n  javaScript: \"javaScript\",\n  smask: \"smask\",\n  shadingPattern: \"shadingPattern\",\n  /** @deprecated unused */\n  font: \"font\",\n  errorTilingPattern: \"errorTilingPattern\",\n  errorExtGState: \"errorExtGState\",\n  errorXObject: \"errorXObject\",\n  errorFontLoadType3: \"errorFontLoadType3\",\n  errorFontState: \"errorFontState\",\n  errorFontMissing: \"errorFontMissing\",\n  errorFontTranslate: \"errorFontTranslate\",\n  errorColorSpace: \"errorColorSpace\",\n  errorOperatorList: \"errorOperatorList\",\n  errorFontToUnicode: \"errorFontToUnicode\",\n  errorFontLoadNative: \"errorFontLoadNative\",\n  errorFontGetPath: \"errorFontGetPath\",\n};\n\nconst PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\n\nfunction getVerbosityLevel() {\n  return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    console.log(`Info: ${msg}`);\n  }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    console.log(`Warning: ${msg}`);\n  }\n}\n\nfunction unreachable(msg) {\n  throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n  if (!cond) {\n    unreachable(msg);\n  }\n}\n\n// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.\nfunction isSameOrigin(baseUrl, otherUrl) {\n  let base;\n  try {\n    base = new URL(baseUrl);\n    if (!base.origin || base.origin === \"null\") {\n      return false; // non-HTTP url\n    }\n  } catch (e) {\n    return false;\n  }\n\n  const other = new URL(otherUrl, base);\n  return base.origin === other.origin;\n}\n\n// Checks if URLs use one of the whitelisted protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n  if (!url) {\n    return false;\n  }\n  switch (url.protocol) {\n    case \"http:\":\n    case \"https:\":\n    case \"ftp:\":\n    case \"mailto:\":\n    case \"tel:\":\n      return true;\n    default:\n      return false;\n  }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} baseUrl - An absolute URL.\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl) {\n  if (!url) {\n    return null;\n  }\n  try {\n    const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n    if (_isValidProtocol(absoluteUrl)) {\n      return absoluteUrl;\n    }\n  } catch (ex) {\n    /* `new URL()` will throw on incorrect data. */\n  }\n  return null;\n}\n\nfunction shadow(obj, prop, value) {\n  Object.defineProperty(obj, prop, {\n    value,\n    enumerable: true,\n    configurable: true,\n    writable: false,\n  });\n  return value;\n}\n\nconst BaseException = (function BaseExceptionClosure() {\n  // eslint-disable-next-line no-shadow\n  function BaseException(message) {\n    if (this.constructor === BaseException) {\n      unreachable(\"Cannot initialize BaseException.\");\n    }\n    this.message = message;\n    this.name = this.constructor.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);\n    this.code = code;\n  }\n}\n\nclass UnknownErrorException extends BaseException {\n  constructor(msg, details) {\n    super(msg);\n    this.details = details;\n  }\n}\n\nclass InvalidPDFException extends BaseException {}\n\nclass MissingPDFException extends BaseException {}\n\nclass UnexpectedResponseException extends BaseException {\n  constructor(msg, status) {\n    super(msg);\n    this.status = status;\n  }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {}\n\nconst NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n  if (typeof str !== \"string\") {\n    warn(\"The argument for removeNullCharacters must be a string.\");\n    return str;\n  }\n  return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n  assert(\n    bytes !== null && typeof bytes === \"object\" && bytes.length !== undefined,\n    \"Invalid argument for bytesToString\"\n  );\n  const length = bytes.length;\n  const MAX_ARGUMENT_COUNT = 8192;\n  if (length < MAX_ARGUMENT_COUNT) {\n    return String.fromCharCode.apply(null, bytes);\n  }\n  const strBuf = [];\n  for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n    const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n    const chunk = bytes.subarray(i, chunkEnd);\n    strBuf.push(String.fromCharCode.apply(null, chunk));\n  }\n  return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n  assert(typeof str === \"string\", \"Invalid argument for stringToBytes\");\n  const length = str.length;\n  const bytes = new Uint8Array(length);\n  for (let i = 0; i < length; ++i) {\n    bytes[i] = str.charCodeAt(i) & 0xff;\n  }\n  return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\nfunction arrayByteLength(arr) {\n  if (arr.length !== undefined) {\n    return arr.length;\n  }\n  assert(arr.byteLength !== undefined, \"arrayByteLength - invalid argument.\");\n  return arr.byteLength;\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array} arr - the array of the arrays (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n  const length = arr.length;\n  // Shortcut: if first and only item is Uint8Array, return it.\n  if (length === 1 && arr[0] instanceof Uint8Array) {\n    return arr[0];\n  }\n  let resultLength = 0;\n  for (let i = 0; i < length; i++) {\n    resultLength += arrayByteLength(arr[i]);\n  }\n  let pos = 0;\n  const data = new Uint8Array(resultLength);\n  for (let i = 0; i < length; i++) {\n    let item = arr[i];\n    if (!(item instanceof Uint8Array)) {\n      if (typeof item === \"string\") {\n        item = stringToBytes(item);\n      } else {\n        item = new Uint8Array(item);\n      }\n    }\n    const itemLength = item.byteLength;\n    data.set(item, pos);\n    pos += itemLength;\n  }\n  return data;\n}\n\nfunction string32(value) {\n  return String.fromCharCode(\n    (value >> 24) & 0xff,\n    (value >> 16) & 0xff,\n    (value >> 8) & 0xff,\n    value & 0xff\n  );\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n  const buffer8 = new Uint8Array(4);\n  buffer8[0] = 1;\n  const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n  return view32[0] === 1;\n}\nconst IsLittleEndianCached = {\n  get value() {\n    return shadow(this, \"value\", isLittleEndian());\n  },\n};\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n  try {\n    new Function(\"\"); // eslint-disable-line no-new, no-new-func\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\nconst IsEvalSupportedCached = {\n  get value() {\n    return shadow(this, \"value\", isEvalSupported());\n  },\n};\n\nconst rgbBuf = [\"rgb(\", 0, \",\", 0, \",\", 0, \")\"];\n\nclass Util {\n  // makeCssRgb() can be called thousands of times. Using ´rgbBuf` avoids\n  // creating many intermediate strings.\n  static makeCssRgb(r, g, b) {\n    rgbBuf[1] = r;\n    rgbBuf[3] = g;\n    rgbBuf[5] = b;\n    return rgbBuf.join(\"\");\n  }\n\n  // Concatenates two transformation matrices together and returns the result.\n  static transform(m1, m2) {\n    return [\n      m1[0] * m2[0] + m1[2] * m2[1],\n      m1[1] * m2[0] + m1[3] * m2[1],\n      m1[0] * m2[2] + m1[2] * m2[3],\n      m1[1] * m2[2] + m1[3] * m2[3],\n      m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n      m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n    ];\n  }\n\n  // For 2d affine transforms\n  static applyTransform(p, m) {\n    const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n    const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n    return [xt, yt];\n  }\n\n  static applyInverseTransform(p, m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n    const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n    return [xt, yt];\n  }\n\n  // Applies the transform to the rectangle and finds the minimum axially\n  // aligned bounding box.\n  static getAxialAlignedBoundingBox(r, m) {\n    const p1 = Util.applyTransform(r, m);\n    const p2 = Util.applyTransform(r.slice(2, 4), m);\n    const p3 = Util.applyTransform([r[0], r[3]], m);\n    const p4 = Util.applyTransform([r[2], r[1]], m);\n    return [\n      Math.min(p1[0], p2[0], p3[0], p4[0]),\n      Math.min(p1[1], p2[1], p3[1], p4[1]),\n      Math.max(p1[0], p2[0], p3[0], p4[0]),\n      Math.max(p1[1], p2[1], p3[1], p4[1]),\n    ];\n  }\n\n  static inverseTransform(m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    return [\n      m[3] / d,\n      -m[1] / d,\n      -m[2] / d,\n      m[0] / d,\n      (m[2] * m[5] - m[4] * m[3]) / d,\n      (m[4] * m[1] - m[5] * m[0]) / d,\n    ];\n  }\n\n  // Apply a generic 3d matrix M on a 3-vector v:\n  //   | a b c |   | X |\n  //   | d e f | x | Y |\n  //   | g h i |   | Z |\n  // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n  // with v as [X,Y,Z]\n  static apply3dTransform(m, v) {\n    return [\n      m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n      m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n      m[6] * v[0] + m[7] * v[1] + m[8] * v[2],\n    ];\n  }\n\n  // This calculation uses Singular Value Decomposition.\n  // The SVD can be represented with formula A = USV. We are interested in the\n  // matrix S here because it represents the scale values.\n  static singularValueDecompose2dScale(m) {\n    const transpose = [m[0], m[2], m[1], m[3]];\n\n    // Multiply matrix m with its transpose.\n    const a = m[0] * transpose[0] + m[1] * transpose[2];\n    const b = m[0] * transpose[1] + m[1] * transpose[3];\n    const c = m[2] * transpose[0] + m[3] * transpose[2];\n    const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n    // Solve the second degree polynomial to get roots.\n    const first = (a + d) / 2;\n    const second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n    const sx = first + second || 1;\n    const sy = first - second || 1;\n\n    // Scale values are the square roots of the eigenvalues.\n    return [Math.sqrt(sx), Math.sqrt(sy)];\n  }\n\n  // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n  // For coordinate systems whose origin lies in the bottom-left, this\n  // means normalization to (BL,TR) ordering. For systems with origin in the\n  // top-left, this means (TL,BR) ordering.\n  static normalizeRect(rect) {\n    const r = rect.slice(0); // clone rect\n    if (rect[0] > rect[2]) {\n      r[0] = rect[2];\n      r[2] = rect[0];\n    }\n    if (rect[1] > rect[3]) {\n      r[1] = rect[3];\n      r[3] = rect[1];\n    }\n    return r;\n  }\n\n  // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n  // intersection of rect1 and rect2. If no intersection, returns 'false'\n  // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n  static intersect(rect1, rect2) {\n    function compare(a, b) {\n      return a - b;\n    }\n\n    // Order points along the axes\n    const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);\n    const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);\n    const result = [];\n\n    rect1 = Util.normalizeRect(rect1);\n    rect2 = Util.normalizeRect(rect2);\n\n    // X: first and second points belong to different rectangles?\n    if (\n      (orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||\n      (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])\n    ) {\n      // Intersection must be between second and third points\n      result[0] = orderedX[1];\n      result[2] = orderedX[2];\n    } else {\n      return null;\n    }\n\n    // Y: first and second points belong to different rectangles?\n    if (\n      (orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||\n      (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])\n    ) {\n      // Intersection must be between second and third points\n      result[1] = orderedY[1];\n      result[3] = orderedY[2];\n    } else {\n      return null;\n    }\n\n    return result;\n  }\n}\n\n// prettier-ignore\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,\n  0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 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, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,\n  0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,\n  0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,\n  0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC\n];\n\nfunction stringToPDFString(str) {\n  const length = str.length,\n    strBuf = [];\n  if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n    // UTF16BE BOM\n    for (let i = 2; i < length; i += 2) {\n      strBuf.push(\n        String.fromCharCode((str.charCodeAt(i) << 8) | str.charCodeAt(i + 1))\n      );\n    }\n  } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n    // UTF16LE BOM\n    for (let i = 2; i < length; i += 2) {\n      strBuf.push(\n        String.fromCharCode((str.charCodeAt(i + 1) << 8) | str.charCodeAt(i))\n      );\n    }\n  } else {\n    for (let i = 0; i < length; ++i) {\n      const code = PDFStringTranslateTable[str.charCodeAt(i)];\n      strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n    }\n  }\n  return strBuf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n  for (const key in obj) {\n    return false;\n  }\n  return true;\n}\n\nfunction isBool(v) {\n  return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n  return typeof v === \"number\";\n}\n\nfunction isString(v) {\n  return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n  return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n  if (arr1.length !== arr2.length) {\n    return false;\n  }\n  return arr1.every(function (element, index) {\n    return element === arr2[index];\n  });\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n  const capability = Object.create(null);\n  let isSettled = false;\n\n  Object.defineProperty(capability, \"settled\", {\n    get() {\n      return isSettled;\n    },\n  });\n  capability.promise = new Promise(function (resolve, reject) {\n    capability.resolve = function (data) {\n      isSettled = true;\n      resolve(data);\n    };\n    capability.reject = function (reason) {\n      isSettled = true;\n      reject(reason);\n    };\n  });\n  return capability;\n}\n\nconst createObjectURL = (function createObjectURLClosure() {\n  // Blob/createObjectURL is not available, falling back to data schema.\n  const digits =\n    \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n  // eslint-disable-next-line no-shadow\n  return function createObjectURL(data, contentType, forceDataSchema = false) {\n    if (!forceDataSchema && URL.createObjectURL) {\n      const blob = new Blob([data], { type: contentType });\n      return URL.createObjectURL(blob);\n    }\n\n    let buffer = `data:${contentType};base64,`;\n    for (let i = 0, ii = data.length; i < ii; i += 3) {\n      const b1 = data[i] & 0xff;\n      const b2 = data[i + 1] & 0xff;\n      const b3 = data[i + 2] & 0xff;\n      const d1 = b1 >> 2,\n        d2 = ((b1 & 3) << 4) | (b2 >> 4);\n      const d3 = i + 1 < ii ? ((b2 & 0xf) << 2) | (b3 >> 6) : 64;\n      const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n      buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n    }\n    return buffer;\n  };\n})();\n\nexport {\n  BaseException,\n  FONT_IDENTITY_MATRIX,\n  IDENTITY_MATRIX,\n  OPS,\n  VerbosityLevel,\n  UNSUPPORTED_FEATURES,\n  AnnotationBorderStyleType,\n  AnnotationFieldFlag,\n  AnnotationFlag,\n  AnnotationMarkedState,\n  AnnotationReplyType,\n  AnnotationReviewState,\n  AnnotationStateModelType,\n  AnnotationType,\n  FontType,\n  ImageKind,\n  CMapCompressionType,\n  AbortException,\n  InvalidPDFException,\n  MissingPDFException,\n  PasswordException,\n  PasswordResponses,\n  PermissionFlag,\n  StreamType,\n  TextRenderingMode,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  Util,\n  FormatError,\n  arrayByteLength,\n  arraysToBytes,\n  assert,\n  bytesToString,\n  createPromiseCapability,\n  createObjectURL,\n  getVerbosityLevel,\n  info,\n  isArrayBuffer,\n  isArrayEqual,\n  isBool,\n  isEmptyObj,\n  isNum,\n  isString,\n  isSameOrigin,\n  createValidAbsoluteUrl,\n  IsLittleEndianCached,\n  IsEvalSupportedCached,\n  removeNullCharacters,\n  setVerbosityLevel,\n  shadow,\n  string32,\n  stringToBytes,\n  stringToPDFString,\n  stringToUTF8String,\n  utf8StringToString,\n  warn,\n  unreachable,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint no-var: error */\n\nimport { isNodeJS } from \"./is_node.js\";\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n  (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"SKIP_BABEL\")) &&\n  (typeof globalThis === \"undefined\" || !globalThis._pdfjsCompatibilityChecked)\n) {\n  // Provides support for globalThis in legacy browsers.\n  // Support: IE11/Edge, Opera\n  if (typeof globalThis === \"undefined\" || globalThis.Math !== Math) {\n    // eslint-disable-next-line no-global-assign\n    globalThis = require(\"core-js/es/global-this\");\n  }\n  globalThis._pdfjsCompatibilityChecked = true;\n\n  const hasDOM = typeof window === \"object\" && typeof document === \"object\";\n  const userAgent =\n    (typeof navigator !== \"undefined\" && navigator.userAgent) || \"\";\n  const isIE = /Trident/.test(userAgent);\n\n  // Support: Node.js\n  (function checkNodeBtoa() {\n    if (globalThis.btoa || !isNodeJS) {\n      return;\n    }\n    globalThis.btoa = function (chars) {\n      // eslint-disable-next-line no-undef\n      return Buffer.from(chars, \"binary\").toString(\"base64\");\n    };\n  })();\n\n  // Support: Node.js\n  (function checkNodeAtob() {\n    if (globalThis.atob || !isNodeJS) {\n      return;\n    }\n    globalThis.atob = function (input) {\n      // eslint-disable-next-line no-undef\n      return Buffer.from(input, \"base64\").toString(\"binary\");\n    };\n  })();\n\n  // Provides support for ChildNode.remove in legacy browsers.\n  // Support: IE.\n  (function checkChildNodeRemove() {\n    if (!hasDOM) {\n      return;\n    }\n    if (typeof Element.prototype.remove !== \"undefined\") {\n      return;\n    }\n    Element.prototype.remove = function () {\n      if (this.parentNode) {\n        // eslint-disable-next-line mozilla/avoid-removeChild\n        this.parentNode.removeChild(this);\n      }\n    };\n  })();\n\n  // Provides support for DOMTokenList.prototype.{add, remove}, with more than\n  // one parameter, in legacy browsers.\n  // Support: IE\n  (function checkDOMTokenListAddRemove() {\n    if (!hasDOM || isNodeJS) {\n      return;\n    }\n    const div = document.createElement(\"div\");\n    div.classList.add(\"testOne\", \"testTwo\");\n\n    if (\n      div.classList.contains(\"testOne\") === true &&\n      div.classList.contains(\"testTwo\") === true\n    ) {\n      return;\n    }\n    const OriginalDOMTokenListAdd = DOMTokenList.prototype.add;\n    const OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;\n\n    DOMTokenList.prototype.add = function (...tokens) {\n      for (const token of tokens) {\n        OriginalDOMTokenListAdd.call(this, token);\n      }\n    };\n    DOMTokenList.prototype.remove = function (...tokens) {\n      for (const token of tokens) {\n        OriginalDOMTokenListRemove.call(this, token);\n      }\n    };\n  })();\n\n  // Provides support for DOMTokenList.prototype.toggle, with the optional\n  // \"force\" parameter, in legacy browsers.\n  // Support: IE\n  (function checkDOMTokenListToggle() {\n    if (!hasDOM || isNodeJS) {\n      return;\n    }\n    const div = document.createElement(\"div\");\n    if (div.classList.toggle(\"test\", 0) === false) {\n      return;\n    }\n\n    DOMTokenList.prototype.toggle = function (token) {\n      const force =\n        arguments.length > 1 ? !!arguments[1] : !this.contains(token);\n      return this[force ? \"add\" : \"remove\"](token), force;\n    };\n  })();\n\n  // Provides support for window.history.{pushState, replaceState}, with the\n  // `url` parameter set to `undefined`, without breaking the document URL.\n  // Support: IE\n  (function checkWindowHistoryPushStateReplaceState() {\n    if (!hasDOM || !isIE) {\n      return;\n    }\n    const OriginalPushState = window.history.pushState;\n    const OriginalReplaceState = window.history.replaceState;\n\n    window.history.pushState = function (state, title, url) {\n      const args = url === undefined ? [state, title] : [state, title, url];\n      OriginalPushState.apply(this, args);\n    };\n    window.history.replaceState = function (state, title, url) {\n      const args = url === undefined ? [state, title] : [state, title, url];\n      OriginalReplaceState.apply(this, args);\n    };\n  })();\n\n  // Provides support for String.prototype.startsWith in legacy browsers.\n  // Support: IE, Chrome<41\n  (function checkStringStartsWith() {\n    if (String.prototype.startsWith) {\n      return;\n    }\n    require(\"core-js/es/string/starts-with.js\");\n  })();\n\n  // Provides support for String.prototype.endsWith in legacy browsers.\n  // Support: IE, Chrome<41\n  (function checkStringEndsWith() {\n    if (String.prototype.endsWith) {\n      return;\n    }\n    require(\"core-js/es/string/ends-with.js\");\n  })();\n\n  // Provides support for String.prototype.includes in legacy browsers.\n  // Support: IE, Chrome<41\n  (function checkStringIncludes() {\n    if (String.prototype.includes) {\n      return;\n    }\n    require(\"core-js/es/string/includes.js\");\n  })();\n\n  // Provides support for Array.prototype.includes in legacy browsers.\n  // Support: IE, Chrome<47\n  (function checkArrayIncludes() {\n    if (Array.prototype.includes) {\n      return;\n    }\n    require(\"core-js/es/array/includes.js\");\n  })();\n\n  // Provides support for Array.from in legacy browsers.\n  // Support: IE\n  (function checkArrayFrom() {\n    if (Array.from) {\n      return;\n    }\n    require(\"core-js/es/array/from.js\");\n  })();\n\n  // Provides support for Object.assign in legacy browsers.\n  // Support: IE\n  (function checkObjectAssign() {\n    if (Object.assign) {\n      return;\n    }\n    require(\"core-js/es/object/assign.js\");\n  })();\n\n  // Provides support for Math.log2 in legacy browsers.\n  // Support: IE, Chrome<38\n  (function checkMathLog2() {\n    if (Math.log2) {\n      return;\n    }\n    Math.log2 = require(\"core-js/es/math/log2.js\");\n  })();\n\n  // Provides support for Number.isNaN in legacy browsers.\n  // Support: IE.\n  (function checkNumberIsNaN() {\n    if (Number.isNaN) {\n      return;\n    }\n    Number.isNaN = require(\"core-js/es/number/is-nan.js\");\n  })();\n\n  // Provides support for Number.isInteger in legacy browsers.\n  // Support: IE, Chrome<34\n  (function checkNumberIsInteger() {\n    if (Number.isInteger) {\n      return;\n    }\n    Number.isInteger = require(\"core-js/es/number/is-integer.js\");\n  })();\n\n  // Provides support for TypedArray.prototype.slice in legacy browsers.\n  // Support: IE\n  (function checkTypedArraySlice() {\n    if (Uint8Array.prototype.slice) {\n      return;\n    }\n    require(\"core-js/es/typed-array/slice\");\n  })();\n\n  // Support: IE, Safari<11, Chrome<63\n  (function checkPromise() {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n      // The current image decoders are synchronous, hence `Promise` shouldn't\n      // need to be polyfilled for the IMAGE_DECODERS build target.\n      return;\n    }\n    if (globalThis.Promise && globalThis.Promise.allSettled) {\n      return;\n    }\n    globalThis.Promise = require(\"core-js/es/promise/index.js\");\n  })();\n\n  // Support: IE\n  (function checkURL() {\n    if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")) {\n      // Prevent \"require is not a function\" errors in development mode,\n      // since the `URL` constructor should be available in modern browers.\n      return;\n    } else if (!PDFJSDev.test(\"GENERIC\")) {\n      // The `URL` constructor is assumed to be available in the extension\n      // builds.\n      return;\n    } else if (PDFJSDev.test(\"IMAGE_DECODERS\")) {\n      // The current image decoders don't use the `URL` constructor, so it\n      // doesn't need to be polyfilled for the IMAGE_DECODERS build target.\n      return;\n    }\n    globalThis.URL = require(\"core-js/web/url.js\");\n  })();\n\n  // Support: IE, Node.js\n  (function checkReadableStream() {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n      // The current image decoders are synchronous, hence `ReadableStream`\n      // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n      return;\n    }\n    let isReadableStreamSupported = false;\n\n    if (typeof ReadableStream !== \"undefined\") {\n      // MS Edge may say it has ReadableStream but they are not up to spec yet.\n      try {\n        // eslint-disable-next-line no-new\n        new ReadableStream({\n          start(controller) {\n            controller.close();\n          },\n        });\n        isReadableStreamSupported = true;\n      } catch (e) {\n        // The ReadableStream constructor cannot be used.\n      }\n    }\n    if (isReadableStreamSupported) {\n      return;\n    }\n    globalThis.ReadableStream = require(\"web-streams-polyfill/dist/ponyfill.js\").ReadableStream;\n  })();\n\n  // We want to support Map iteration, but it doesn't seem possible to easily\n  // test for that specifically; hence using a similarly unsupported property.\n  // Support: IE11\n  (function checkMapEntries() {\n    if (globalThis.Map && globalThis.Map.prototype.entries) {\n      return;\n    }\n    globalThis.Map = require(\"core-js/es/map/index.js\");\n  })();\n\n  // We want to support Set iteration, but it doesn't seem possible to easily\n  // test for that specifically; hence using a similarly unsupported property.\n  // Support: IE11\n  (function checkSetEntries() {\n    if (globalThis.Set && globalThis.Set.prototype.entries) {\n      return;\n    }\n    globalThis.Set = require(\"core-js/es/set/index.js\");\n  })();\n\n  // Support: IE<11, Safari<8, Chrome<36\n  (function checkWeakMap() {\n    if (globalThis.WeakMap) {\n      return;\n    }\n    globalThis.WeakMap = require(\"core-js/es/weak-map/index.js\");\n  })();\n\n  // Support: IE11\n  (function checkWeakSet() {\n    if (globalThis.WeakSet) {\n      return;\n    }\n    globalThis.WeakSet = require(\"core-js/es/weak-set/index.js\");\n  })();\n\n  // Provides support for String.codePointAt in legacy browsers.\n  // Support: IE11.\n  (function checkStringCodePointAt() {\n    if (String.prototype.codePointAt) {\n      return;\n    }\n    require(\"core-js/es/string/code-point-at.js\");\n  })();\n\n  // Provides support for String.fromCodePoint in legacy browsers.\n  // Support: IE11.\n  (function checkStringFromCodePoint() {\n    if (String.fromCodePoint) {\n      return;\n    }\n    String.fromCodePoint = require(\"core-js/es/string/from-code-point.js\");\n  })();\n\n  // Support: IE\n  (function checkSymbol() {\n    if (globalThis.Symbol) {\n      return;\n    }\n    require(\"core-js/es/symbol/index.js\");\n  })();\n\n  // Provides support for String.prototype.padStart in legacy browsers.\n  // Support: IE, Chrome<57\n  (function checkStringPadStart() {\n    if (String.prototype.padStart) {\n      return;\n    }\n    require(\"core-js/es/string/pad-start.js\");\n  })();\n\n  // Provides support for String.prototype.padEnd in legacy browsers.\n  // Support: IE, Chrome<57\n  (function checkStringPadEnd() {\n    if (String.prototype.padEnd) {\n      return;\n    }\n    require(\"core-js/es/string/pad-end.js\");\n  })();\n\n  // Provides support for Object.values in legacy browsers.\n  // Support: IE, Chrome<54\n  (function checkObjectValues() {\n    if (Object.values) {\n      return;\n    }\n    Object.values = require(\"core-js/es/object/values.js\");\n  })();\n}\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://electronjs.org/docs/api/process#processversionselectron\nconst isNodeJS =\n  typeof process === \"object\" &&\n  process + \"\" === \"[object process]\" &&\n  !process.versions.nw &&\n  !process.versions.electron;\n\nexport { isNodeJS };\n","require('../modules/es.global-this');\n\nmodule.exports = require('../internals/global');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://github.com/tc39/proposal-global\n$({ global: true }, {\n  globalThis: global\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target      - name of the target object\n  options.global      - target is the global object\n  options.stat        - export as static methods of target\n  options.proto       - export as prototype methods of target\n  options.real        - real prototype method for the `pure` version\n  options.forced      - export even if the native feature is available\n  options.bind        - bind methods to the target, required for the `pure` version\n  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n  options.sham        - add a flag to not completely full polyfills\n  options.enumerable  - export as enumerable property\n  options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || setGlobal(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.noTargetGet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty === typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    // extend global\n    redefine(target, key, sourceProperty, options);\n  }\n};\n","var check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line no-undef\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  // eslint-disable-next-line no-new-func\n  Function('return this')();\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return nativeGetOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.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\n  return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n  if (!isObject(input)) return input;\n  var fn, val;\n  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return nativeDefineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it)) {\n    throw TypeError(String(it) + ' is not an object');\n  } return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n  var unsafe = options ? !!options.unsafe : false;\n  var simple = options ? !!options.enumerable : false;\n  var noTargetGet = options ? !!options.noTargetGet : false;\n  if (typeof value == 'function') {\n    if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n    enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n  }\n  if (O === global) {\n    if (simple) O[key] = value;\n    else setGlobal(key, value);\n    return;\n  } else if (!unsafe) {\n    delete O[key];\n  } else if (!noTargetGet && O[key]) {\n    simple = true;\n  }\n  if (simple) O[key] = value;\n  else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n  return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n  try {\n    createNonEnumerableProperty(global, key, value);\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n  store.inspectSource = function (it) {\n    return functionToString.call(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP) {\n  var store = new WeakMap();\n  var wmget = store.get;\n  var wmhas = store.has;\n  var wmset = store.set;\n  set = function (it, metadata) {\n    wmset.call(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget.call(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas.call(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return objectHas(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return objectHas(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.6.5',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","module.exports = {};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n  }\n};\n","var getBuiltIn = require('../internals/get-built-in');\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\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 ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n  return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\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) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~indexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\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 = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\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.github.io/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\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 = toInteger(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","exports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\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    : typeof detection == 'function' ? 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","require('../../modules/es.string.starts-with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'startsWith');\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n  var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n  return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n  startsWith: function startsWith(searchString /* , position = 0 */) {\n    var that = String(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    var search = String(searchString);\n    return nativeStartsWith\n      ? nativeStartsWith.call(that, search, index)\n      : that.slice(index, index + search.length) === search;\n  }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n  if (isRegExp(it)) {\n    throw TypeError(\"The method doesn't accept regular expressions\");\n  } return it;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!has(WellKnownSymbolsStore, name)) {\n    if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n    else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  // Chrome 38 Symbol has incorrect toString conversion\n  // eslint-disable-next-line no-undef\n  return !String(Symbol());\n});\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n  // eslint-disable-next-line no-undef\n  && !Symbol.sham\n  // eslint-disable-next-line no-undef\n  && typeof Symbol.iterator == 'symbol';\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n  var regexp = /./;\n  try {\n    '/./'[METHOD_NAME](regexp);\n  } catch (e) {\n    try {\n      regexp[MATCH] = false;\n      return '/./'[METHOD_NAME](regexp);\n    } catch (f) { /* empty */ }\n  } return false;\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\n\nvar call = Function.call;\n\nmodule.exports = function (CONSTRUCTOR, METHOD, length) {\n  return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 0: return function () {\n      return fn.call(that);\n    };\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","module.exports = function (it) {\n  if (typeof it != 'function') {\n    throw TypeError(String(it) + ' is not a function');\n  } return it;\n};\n","require('../../modules/es.string.ends-with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'endsWith');\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeEndsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n  var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n  return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n  endsWith: function endsWith(searchString /* , endPosition = @length */) {\n    var that = String(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n    var len = toLength(that.length);\n    var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n    var search = String(searchString);\n    return nativeEndsWith\n      ? nativeEndsWith.call(that, search, end)\n      : that.slice(end - search.length, end) === search;\n  }\n});\n","require('../../modules/es.string.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n  includes: function includes(searchString /* , position = 0 */) {\n    return !!~String(requireObjectCoercible(this))\n      .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","require('../../modules/es.array.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    /* global ActiveXObject */\n    activeXDocument = document.domain && new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\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.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\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++], Properties[key]);\n  return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n  if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n  if (!options) options = {};\n  var method = [][METHOD_NAME];\n  var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n  var argument0 = has(options, 0) ? options[0] : thrower;\n  var argument1 = has(options, 1) ? options[1] : undefined;\n\n  return cache[METHOD_NAME] = !!method && !fails(function () {\n    if (ACCESSORS && !DESCRIPTORS) return true;\n    var O = { length: -1 };\n\n    if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n    else O[1] = 1;\n\n    method.call(O, argument0, argument1);\n  });\n};\n","require('../../modules/es.string.iterator');\nrequire('../../modules/es.array.from');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.from;\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: String(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return { value: undefined, done: true };\n  point = charAt(string, index);\n  state.index += point.length;\n  return { value: point, done: false };\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = String(requireObjectCoercible($this));\n    var position = toInteger(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = S.charCodeAt(position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING ? S.charAt(position) : first\n        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    } return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n          createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    INCORRECT_VALUES_NAME = true;\n    defaultIterator = function values() { return nativeIterator.call(this); };\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n  }\n  Iterators[NAME] = defaultIterator;\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        redefine(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\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\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\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\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n  createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var has = require('../internals/has');\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 ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectPrototype : null;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return Object(requireObjectCoercible(argument));\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n  if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n    defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n","module.exports = {};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n    setter.call(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.call(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it) && it !== null) {\n    throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n  } return it;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n  Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n  from: from\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n  var O = toObject(arrayLike);\n  var C = typeof this == 'function' ? this : Array;\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var index = 0;\n  var length, result, step, iterator, next, value;\n  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n  // if the target is not iterable or it's an array with the default iterator - use a simple case\n  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n    iterator = iteratorMethod.call(O);\n    next = iterator.next;\n    result = new C();\n    for (;!(step = next.call(iterator)).done; index++) {\n      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n      createProperty(result, index, value);\n    }\n  } else {\n    length = toLength(O.length);\n    result = new C(length);\n    for (;length > index; index++) {\n      value = mapping ? mapfn(O[index], index) : O[index];\n      createProperty(result, index, value);\n    }\n  }\n  result.length = index;\n  return result;\n};\n","var anObject = require('../internals/an-object');\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  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (error) {\n    var returnMethod = iterator['return'];\n    if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n    throw error;\n  }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPrimitive(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\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' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line no-throw-literal\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n  assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n  // should have correct order of operations (Edge bug)\n  if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n    enumerable: true,\n    get: function () {\n      defineProperty(this, 'b', {\n        value: 3,\n        enumerable: false\n      });\n    }\n  }), { b: 2 })).b !== 1) return true;\n  // should work with symbols and should have deterministic property order (V8 bug)\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var symbol = Symbol();\n  var alphabet = 'abcdefghijklmnopqrst';\n  A[symbol] = 7;\n  alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n  return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var argumentsLength = arguments.length;\n  var index = 1;\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  var propertyIsEnumerable = propertyIsEnumerableModule.f;\n  while (argumentsLength > index) {\n    var S = IndexedObject(arguments[index++]);\n    var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n    }\n  } return T;\n} : nativeAssign;\n","require('../../modules/es.math.log2');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.log2;\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.github.io/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n  log2: function log2(x) {\n    return log(x) / LN2;\n  }\n});\n","require('../../modules/es.number.is-nan');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isNaN;\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.github.io/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n  isNaN: function isNaN(number) {\n    // eslint-disable-next-line no-self-compare\n    return number != number;\n  }\n});\n","require('../../modules/es.number.is-integer');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isInteger;\n","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\n// `Number.isInteger` method\n// https://tc39.github.io/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n  isInteger: isInteger\n});\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `Number.isInteger` method implementation\n// https://tc39.github.io/ecma262/#sec-number.isinteger\nmodule.exports = function isInteger(it) {\n  return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","require('../../modules/es.typed-array.slice');\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line no-undef\n  new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n  var list = $slice.call(aTypedArray(this), start, end);\n  var C = speciesConstructor(this, this.constructor);\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n}, FORCED);\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\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');\n\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 isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\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_REQIRED = false;\nvar NAME;\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 isView = function isView(it) {\n  var klass = classof(it);\n  return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n  return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (setPrototypeOf) {\n    if (isPrototypeOf.call(TypedArray, C)) return C;\n  } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n      return C;\n    }\n  } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n      delete TypedArrayConstructor.prototype[KEY];\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    redefine(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\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 && has(TypedArrayConstructor, KEY)) {\n        delete TypedArrayConstructor[KEY];\n      }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[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      redefine(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow\n  TypedArray = function TypedArray() {\n    throw 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 && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQIRED = true;\n  defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n    return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\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_REQIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportTypedArrayMethod: exportTypedArrayMethod,\n  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.finally');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n  redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n  return '[object ' + classof(this) + ']';\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  if (CollectionPrototype) {\n    // some Chrome versions have non-configurable methods on DOMTokenList\n    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n      createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n    } catch (error) {\n      CollectionPrototype[ITERATOR] = ArrayValues;\n    }\n    if (!CollectionPrototype[TO_STRING_TAG]) {\n      createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n    }\n    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n      // some Chrome versions have non-configurable methods on DOMTokenList\n      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n        createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n      } catch (error) {\n        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n      }\n    }\n  }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n  CSSRuleList: 0,\n  CSSStyleDeclaration: 0,\n  CSSValueList: 0,\n  ClientRectList: 0,\n  DOMRectList: 0,\n  DOMStringList: 0,\n  DOMTokenList: 1,\n  DataTransferItemList: 0,\n  FileList: 0,\n  HTMLAllCollection: 0,\n  HTMLCollection: 0,\n  HTMLFormElement: 0,\n  HTMLSelectElement: 0,\n  MediaList: 0,\n  MimeTypeArray: 0,\n  NamedNodeMap: 0,\n  NodeList: 1,\n  PaintRequestList: 0,\n  Plugin: 0,\n  PluginArray: 0,\n  SVGLengthList: 0,\n  SVGNumberList: 0,\n  SVGPathSegList: 0,\n  SVGPointList: 0,\n  SVGStringList: 0,\n  SVGTransformList: 0,\n  SourceBufferList: 0,\n  StyleSheetList: 0,\n  TextTrackCueList: 0,\n  TextTrackList: 0,\n  TouchList: 0\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var kind = state.kind;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = undefined;\n    return { value: undefined, done: true };\n  }\n  if (kind == 'keys') return { value: index, done: false };\n  if (kind == 'values') return { value: target[index], done: false };\n  return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n  var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n  if (!GLOBAL_CORE_JS_PROMISE) {\n    // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n    // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n    // We can't detect it synchronously, so just check versions\n    if (V8_VERSION === 66) return true;\n    // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n    if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n  }\n  // We need Promise#finally in the pure version for preventing prototype pollution\n  if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n  // We can't use @@species feature detection in V8 since it causes\n  // deoptimization and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n  // Detect correctness of subclassing with @@species support\n  var promise = PromiseConstructor.resolve(1);\n  var FakePromise = function (exec) {\n    exec(function () { /* empty */ }, function () { /* empty */ });\n  };\n  var constructor = promise.constructor = {};\n  constructor[SPECIES] = FakePromise;\n  return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n  if (state.notified) return;\n  state.notified = true;\n  var chain = state.reactions;\n  microtask(function () {\n    var value = state.value;\n    var ok = state.state == FULFILLED;\n    var index = 0;\n    // variable length - can't use forEach\n    while (chain.length > index) {\n      var reaction = chain[index++];\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n      try {\n        if (handler) {\n          if (!ok) {\n            if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n            state.rejection = HANDLED;\n          }\n          if (handler === true) result = value;\n          else {\n            if (domain) domain.enter();\n            result = handler(value); // can throw\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (error) {\n        if (domain && !exited) domain.exit();\n        reject(error);\n      }\n    }\n    state.reactions = [];\n    state.notified = false;\n    if (isReject && !state.rejection) onUnhandled(promise, state);\n  });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n  var event, handler;\n  if (DISPATCH_EVENT) {\n    event = document.createEvent('Event');\n    event.promise = promise;\n    event.reason = reason;\n    event.initEvent(name, false, true);\n    global.dispatchEvent(event);\n  } else event = { promise: promise, reason: reason };\n  if (handler = global['on' + name]) handler(event);\n  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n  task.call(global, function () {\n    var value = state.value;\n    var IS_UNHANDLED = isUnhandled(state);\n    var result;\n    if (IS_UNHANDLED) {\n      result = perform(function () {\n        if (IS_NODE) {\n          process.emit('unhandledRejection', value, promise);\n        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n      if (result.error) throw result.value;\n    }\n  });\n};\n\nvar isUnhandled = function (state) {\n  return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n  task.call(global, function () {\n    if (IS_NODE) {\n      process.emit('rejectionHandled', promise);\n    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n  });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n  return function (value) {\n    fn(promise, state, value, unwrap);\n  };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  state.value = value;\n  state.state = REJECTED;\n  notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  try {\n    if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n    var then = isThenable(value);\n    if (then) {\n      microtask(function () {\n        var wrapper = { done: false };\n        try {\n          then.call(value,\n            bind(internalResolve, promise, wrapper, state),\n            bind(internalReject, promise, wrapper, state)\n          );\n        } catch (error) {\n          internalReject(promise, wrapper, error, state);\n        }\n      });\n    } else {\n      state.value = value;\n      state.state = FULFILLED;\n      notify(promise, state, false);\n    }\n  } catch (error) {\n    internalReject(promise, { done: false }, error, state);\n  }\n};\n\n// constructor polyfill\nif (FORCED) {\n  // 25.4.3.1 Promise(executor)\n  PromiseConstructor = function Promise(executor) {\n    anInstance(this, PromiseConstructor, PROMISE);\n    aFunction(executor);\n    Internal.call(this);\n    var state = getInternalState(this);\n    try {\n      executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n    } catch (error) {\n      internalReject(this, state, error);\n    }\n  };\n  // eslint-disable-next-line no-unused-vars\n  Internal = function Promise(executor) {\n    setInternalState(this, {\n      type: PROMISE,\n      done: false,\n      notified: false,\n      parent: false,\n      reactions: [],\n      rejection: false,\n      state: PENDING,\n      value: undefined\n    });\n  };\n  Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n    // `Promise.prototype.then` method\n    // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n    then: function then(onFulfilled, onRejected) {\n      var state = getInternalPromiseState(this);\n      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = IS_NODE ? process.domain : undefined;\n      state.parent = true;\n      state.reactions.push(reaction);\n      if (state.state != PENDING) notify(this, state, false);\n      return reaction.promise;\n    },\n    // `Promise.prototype.catch` method\n    // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    var state = getInternalState(promise);\n    this.promise = promise;\n    this.resolve = bind(internalResolve, promise, state);\n    this.reject = bind(internalReject, promise, state);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === PromiseConstructor || C === PromiseWrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n\n  if (!IS_PURE && typeof NativePromise == 'function') {\n    nativeThen = NativePromise.prototype.then;\n\n    // wrap native Promise#then for native async functions\n    redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n      var that = this;\n      return new PromiseConstructor(function (resolve, reject) {\n        nativeThen.call(that, resolve, reject);\n      }).then(onFulfilled, onRejected);\n    // https://github.com/zloirock/core-js/issues/640\n    }, { unsafe: true });\n\n    // wrap fetch result\n    if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n      // eslint-disable-next-line no-unused-vars\n      fetch: function fetch(input /* , init */) {\n        return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n      }\n    });\n  }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n  Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n  // `Promise.reject` method\n  // https://tc39.github.io/ecma262/#sec-promise.reject\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    capability.reject.call(undefined, r);\n    return capability.promise;\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n  // `Promise.resolve` method\n  // https://tc39.github.io/ecma262/#sec-promise.resolve\n  resolve: function resolve(x) {\n    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n  // `Promise.all` method\n  // https://tc39.github.io/ecma262/#sec-promise.all\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        $promiseResolve.call(C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  },\n  // `Promise.race` method\n  // https://tc39.github.io/ecma262/#sec-promise.race\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      iterate(iterable, function (promise) {\n        $promiseResolve.call(C, promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) redefine(target, key, src[key], options);\n  return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n  var defineProperty = definePropertyModule.f;\n\n  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n    defineProperty(Constructor, SPECIES, {\n      configurable: true,\n      get: function () { return this; }\n    });\n  }\n};\n","module.exports = function (it, Constructor, name) {\n  if (!(it instanceof Constructor)) {\n    throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n  } return it;\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n  var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n  var iterator, iterFn, index, length, result, next, step;\n\n  if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = toLength(iterable.length); length > index; index++) {\n        result = AS_ENTRIES\n          ? boundFunction(anObject(step = iterable[index])[0], step[1])\n          : boundFunction(iterable[index]);\n        if (result && result instanceof Result) return result;\n      } return new Result(false);\n    }\n    iterator = iterFn.call(iterable);\n  }\n\n  next = iterator.next;\n  while (!(step = next.call(iterator)).done) {\n    result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n    if (typeof result == 'object' && result && result instanceof Result) return result;\n  } return new Result(false);\n};\n\niterate.stop = function (result) {\n  return new Result(true, result);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n  // eslint-disable-next-line no-prototype-builtins\n  if (queue.hasOwnProperty(id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar runner = function (id) {\n  return function () {\n    run(id);\n  };\n};\n\nvar listener = function (event) {\n  run(event.data);\n};\n\nvar post = function (id) {\n  // old engines have not location.origin\n  global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n  set = function setImmediate(fn) {\n    var args = [];\n    var i = 1;\n    while (arguments.length > i) args.push(arguments[i++]);\n    queue[++counter] = function () {\n      // eslint-disable-next-line no-new-func\n      (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clear = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (classof(process) == 'process') {\n    defer = function (id) {\n      process.nextTick(runner(id));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(runner(id));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  // except iOS - https://github.com/zloirock/core-js/issues/624\n  } else if (MessageChannel && !IS_IOS) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = bind(port.postMessage, port, 1);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (\n    global.addEventListener &&\n    typeof postMessage == 'function' &&\n    !global.importScripts &&\n    !fails(post) &&\n    location.protocol !== 'file:'\n  ) {\n    defer = post;\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in createElement('script')) {\n    defer = function (id) {\n      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(runner(id), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: set,\n  clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n  flush = function () {\n    var parent, fn;\n    if (IS_NODE && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (error) {\n        if (head) notify();\n        else last = undefined;\n        throw error;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // Node.js\n  if (IS_NODE) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n  } else if (MutationObserver && !IS_IOS) {\n    toggle = true;\n    node = document.createTextNode('');\n    new MutationObserver(flush).observe(node, { characterData: true });\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    promise = Promise.resolve(undefined);\n    then = promise.then;\n    notify = function () {\n      then.call(promise, flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    notify = function () {\n      // strange IE + webpack dev server bug - use .call(global)\n      macrotask.call(global, flush);\n    };\n  }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n  var task = { fn: fn, next: undefined };\n  if (last) last.next = task;\n  if (!head) {\n    head = task;\n    notify();\n  } last = task;\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aFunction(resolve);\n  this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n  var console = global.console;\n  if (console && console.error) {\n    arguments.length === 1 ? console.error(a) : console.error(a, b);\n  }\n};\n","module.exports = function (exec) {\n  try {\n    return { error: false, value: exec() };\n  } catch (error) {\n    return { error: true, value: error };\n  }\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  version = match[0] + match[1];\n} else if (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 && +version;\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n  allSettled: function allSettled(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aFunction(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        promiseResolve.call(C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'fulfilled', value: value };\n          --remaining || resolve(values);\n        }, function (e) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'rejected', reason: e };\n          --remaining || resolve(values);\n        });\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n  NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n  'finally': function (onFinally) {\n    var C = speciesConstructor(this, getBuiltIn('Promise'));\n    var isFunction = typeof onFinally == 'function';\n    return this.then(\n      isFunction ? function (x) {\n        return promiseResolve(C, onFinally()).then(function () { return x; });\n      } : onFinally,\n      isFunction ? function (e) {\n        return promiseResolve(C, onFinally()).then(function () { throw e; });\n      } : onFinally\n    );\n  }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n  redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","require('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\nvar path = require('../internals/path');\n\nmodule.exports = path.URL;\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n  var result, codePoints, index;\n  if (input.charAt(0) == '[') {\n    if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n    result = parseIPv6(input.slice(1, -1));\n    if (!result) return INVALID_HOST;\n    url.host = result;\n  // opaque host\n  } else if (!isSpecial(url)) {\n    if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n    result = '';\n    codePoints = arrayFrom(input);\n    for (index = 0; index < codePoints.length; index++) {\n      result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n    }\n    url.host = result;\n  } else {\n    input = toASCII(input);\n    if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n    result = parseIPv4(input);\n    if (result === null) return INVALID_HOST;\n    url.host = result;\n  }\n};\n\nvar parseIPv4 = function (input) {\n  var parts = input.split('.');\n  var partsLength, numbers, index, part, radix, number, ipv4;\n  if (parts.length && parts[parts.length - 1] == '') {\n    parts.pop();\n  }\n  partsLength = parts.length;\n  if (partsLength > 4) return input;\n  numbers = [];\n  for (index = 0; index < partsLength; index++) {\n    part = parts[index];\n    if (part == '') return input;\n    radix = 10;\n    if (part.length > 1 && part.charAt(0) == '0') {\n      radix = HEX_START.test(part) ? 16 : 8;\n      part = part.slice(radix == 8 ? 1 : 2);\n    }\n    if (part === '') {\n      number = 0;\n    } else {\n      if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n      number = parseInt(part, radix);\n    }\n    numbers.push(number);\n  }\n  for (index = 0; index < partsLength; index++) {\n    number = numbers[index];\n    if (index == partsLength - 1) {\n      if (number >= pow(256, 5 - partsLength)) return null;\n    } else if (number > 255) return null;\n  }\n  ipv4 = numbers.pop();\n  for (index = 0; index < numbers.length; index++) {\n    ipv4 += numbers[index] * pow(256, 3 - index);\n  }\n  return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n  var address = [0, 0, 0, 0, 0, 0, 0, 0];\n  var pieceIndex = 0;\n  var compress = null;\n  var pointer = 0;\n  var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n  var char = function () {\n    return input.charAt(pointer);\n  };\n\n  if (char() == ':') {\n    if (input.charAt(1) != ':') return;\n    pointer += 2;\n    pieceIndex++;\n    compress = pieceIndex;\n  }\n  while (char()) {\n    if (pieceIndex == 8) return;\n    if (char() == ':') {\n      if (compress !== null) return;\n      pointer++;\n      pieceIndex++;\n      compress = pieceIndex;\n      continue;\n    }\n    value = length = 0;\n    while (length < 4 && HEX.test(char())) {\n      value = value * 16 + parseInt(char(), 16);\n      pointer++;\n      length++;\n    }\n    if (char() == '.') {\n      if (length == 0) return;\n      pointer -= length;\n      if (pieceIndex > 6) return;\n      numbersSeen = 0;\n      while (char()) {\n        ipv4Piece = null;\n        if (numbersSeen > 0) {\n          if (char() == '.' && numbersSeen < 4) pointer++;\n          else return;\n        }\n        if (!DIGIT.test(char())) return;\n        while (DIGIT.test(char())) {\n          number = parseInt(char(), 10);\n          if (ipv4Piece === null) ipv4Piece = number;\n          else if (ipv4Piece == 0) return;\n          else ipv4Piece = ipv4Piece * 10 + number;\n          if (ipv4Piece > 255) return;\n          pointer++;\n        }\n        address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n        numbersSeen++;\n        if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n      }\n      if (numbersSeen != 4) return;\n      break;\n    } else if (char() == ':') {\n      pointer++;\n      if (!char()) return;\n    } else if (char()) return;\n    address[pieceIndex++] = value;\n  }\n  if (compress !== null) {\n    swaps = pieceIndex - compress;\n    pieceIndex = 7;\n    while (pieceIndex != 0 && swaps > 0) {\n      swap = address[pieceIndex];\n      address[pieceIndex--] = address[compress + swaps - 1];\n      address[compress + --swaps] = swap;\n    }\n  } else if (pieceIndex != 8) return;\n  return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n  var maxIndex = null;\n  var maxLength = 1;\n  var currStart = null;\n  var currLength = 0;\n  var index = 0;\n  for (; index < 8; index++) {\n    if (ipv6[index] !== 0) {\n      if (currLength > maxLength) {\n        maxIndex = currStart;\n        maxLength = currLength;\n      }\n      currStart = null;\n      currLength = 0;\n    } else {\n      if (currStart === null) currStart = index;\n      ++currLength;\n    }\n  }\n  if (currLength > maxLength) {\n    maxIndex = currStart;\n    maxLength = currLength;\n  }\n  return maxIndex;\n};\n\nvar serializeHost = function (host) {\n  var result, index, compress, ignore0;\n  // ipv4\n  if (typeof host == 'number') {\n    result = [];\n    for (index = 0; index < 4; index++) {\n      result.unshift(host % 256);\n      host = floor(host / 256);\n    } return result.join('.');\n  // ipv6\n  } else if (typeof host == 'object') {\n    result = '';\n    compress = findLongestZeroSequence(host);\n    for (index = 0; index < 8; index++) {\n      if (ignore0 && host[index] === 0) continue;\n      if (ignore0) ignore0 = false;\n      if (compress === index) {\n        result += index ? ':' : '::';\n        ignore0 = true;\n      } else {\n        result += host[index].toString(16);\n        if (index < 7) result += ':';\n      }\n    }\n    return '[' + result + ']';\n  } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n  ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n  '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n  var code = codeAt(char, 0);\n  return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n  ftp: 21,\n  file: null,\n  http: 80,\n  https: 443,\n  ws: 80,\n  wss: 443\n};\n\nvar isSpecial = function (url) {\n  return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n  return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n  return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n  var second;\n  return string.length == 2 && ALPHA.test(string.charAt(0))\n    && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n  var third;\n  return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n    string.length == 2 ||\n    ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n  );\n};\n\nvar shortenURLsPath = function (url) {\n  var path = url.path;\n  var pathSize = path.length;\n  if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n    path.pop();\n  }\n};\n\nvar isSingleDot = function (segment) {\n  return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n  segment = segment.toLowerCase();\n  return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n  var state = stateOverride || SCHEME_START;\n  var pointer = 0;\n  var buffer = '';\n  var seenAt = false;\n  var seenBracket = false;\n  var seenPasswordToken = false;\n  var codePoints, char, bufferCodePoints, failure;\n\n  if (!stateOverride) {\n    url.scheme = '';\n    url.username = '';\n    url.password = '';\n    url.host = null;\n    url.port = null;\n    url.path = [];\n    url.query = null;\n    url.fragment = null;\n    url.cannotBeABaseURL = false;\n    input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n  }\n\n  input = input.replace(TAB_AND_NEW_LINE, '');\n\n  codePoints = arrayFrom(input);\n\n  while (pointer <= codePoints.length) {\n    char = codePoints[pointer];\n    switch (state) {\n      case SCHEME_START:\n        if (char && ALPHA.test(char)) {\n          buffer += char.toLowerCase();\n          state = SCHEME;\n        } else if (!stateOverride) {\n          state = NO_SCHEME;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case SCHEME:\n        if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n          buffer += char.toLowerCase();\n        } else if (char == ':') {\n          if (stateOverride && (\n            (isSpecial(url) != has(specialSchemes, buffer)) ||\n            (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n            (url.scheme == 'file' && !url.host)\n          )) return;\n          url.scheme = buffer;\n          if (stateOverride) {\n            if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n            return;\n          }\n          buffer = '';\n          if (url.scheme == 'file') {\n            state = FILE;\n          } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n            state = SPECIAL_RELATIVE_OR_AUTHORITY;\n          } else if (isSpecial(url)) {\n            state = SPECIAL_AUTHORITY_SLASHES;\n          } else if (codePoints[pointer + 1] == '/') {\n            state = PATH_OR_AUTHORITY;\n            pointer++;\n          } else {\n            url.cannotBeABaseURL = true;\n            url.path.push('');\n            state = CANNOT_BE_A_BASE_URL_PATH;\n          }\n        } else if (!stateOverride) {\n          buffer = '';\n          state = NO_SCHEME;\n          pointer = 0;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case NO_SCHEME:\n        if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n        if (base.cannotBeABaseURL && char == '#') {\n          url.scheme = base.scheme;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          url.cannotBeABaseURL = true;\n          state = FRAGMENT;\n          break;\n        }\n        state = base.scheme == 'file' ? FILE : RELATIVE;\n        continue;\n\n      case SPECIAL_RELATIVE_OR_AUTHORITY:\n        if (char == '/' && codePoints[pointer + 1] == '/') {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n          pointer++;\n        } else {\n          state = RELATIVE;\n          continue;\n        } break;\n\n      case PATH_OR_AUTHORITY:\n        if (char == '/') {\n          state = AUTHORITY;\n          break;\n        } else {\n          state = PATH;\n          continue;\n        }\n\n      case RELATIVE:\n        url.scheme = base.scheme;\n        if (char == EOF) {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n        } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n          state = RELATIVE_SLASH;\n        } else if (char == '?') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          state = FRAGMENT;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.path.pop();\n          state = PATH;\n          continue;\n        } break;\n\n      case RELATIVE_SLASH:\n        if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        } else if (char == '/') {\n          state = AUTHORITY;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          state = PATH;\n          continue;\n        } break;\n\n      case SPECIAL_AUTHORITY_SLASHES:\n        state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n        pointer++;\n        break;\n\n      case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n        if (char != '/' && char != '\\\\') {\n          state = AUTHORITY;\n          continue;\n        } break;\n\n      case AUTHORITY:\n        if (char == '@') {\n          if (seenAt) buffer = '%40' + buffer;\n          seenAt = true;\n          bufferCodePoints = arrayFrom(buffer);\n          for (var i = 0; i < bufferCodePoints.length; i++) {\n            var codePoint = bufferCodePoints[i];\n            if (codePoint == ':' && !seenPasswordToken) {\n              seenPasswordToken = true;\n              continue;\n            }\n            var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n            if (seenPasswordToken) url.password += encodedCodePoints;\n            else url.username += encodedCodePoints;\n          }\n          buffer = '';\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (seenAt && buffer == '') return INVALID_AUTHORITY;\n          pointer -= arrayFrom(buffer).length + 1;\n          buffer = '';\n          state = HOST;\n        } else buffer += char;\n        break;\n\n      case HOST:\n      case HOSTNAME:\n        if (stateOverride && url.scheme == 'file') {\n          state = FILE_HOST;\n          continue;\n        } else if (char == ':' && !seenBracket) {\n          if (buffer == '') return INVALID_HOST;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PORT;\n          if (stateOverride == HOSTNAME) return;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (isSpecial(url) && buffer == '') return INVALID_HOST;\n          if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PATH_START;\n          if (stateOverride) return;\n          continue;\n        } else {\n          if (char == '[') seenBracket = true;\n          else if (char == ']') seenBracket = false;\n          buffer += char;\n        } break;\n\n      case PORT:\n        if (DIGIT.test(char)) {\n          buffer += char;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          stateOverride\n        ) {\n          if (buffer != '') {\n            var port = parseInt(buffer, 10);\n            if (port > 0xFFFF) return INVALID_PORT;\n            url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n            buffer = '';\n          }\n          if (stateOverride) return;\n          state = PATH_START;\n          continue;\n        } else return INVALID_PORT;\n        break;\n\n      case FILE:\n        url.scheme = 'file';\n        if (char == '/' || char == '\\\\') state = FILE_SLASH;\n        else if (base && base.scheme == 'file') {\n          if (char == EOF) {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n          } else if (char == '?') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n            url.fragment = '';\n            state = FRAGMENT;\n          } else {\n            if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n              url.host = base.host;\n              url.path = base.path.slice();\n              shortenURLsPath(url);\n            }\n            state = PATH;\n            continue;\n          }\n        } else {\n          state = PATH;\n          continue;\n        } break;\n\n      case FILE_SLASH:\n        if (char == '/' || char == '\\\\') {\n          state = FILE_HOST;\n          break;\n        }\n        if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n          if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n          else url.host = base.host;\n        }\n        state = PATH;\n        continue;\n\n      case FILE_HOST:\n        if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n          if (!stateOverride && isWindowsDriveLetter(buffer)) {\n            state = PATH;\n          } else if (buffer == '') {\n            url.host = '';\n            if (stateOverride) return;\n            state = PATH_START;\n          } else {\n            failure = parseHost(url, buffer);\n            if (failure) return failure;\n            if (url.host == 'localhost') url.host = '';\n            if (stateOverride) return;\n            buffer = '';\n            state = PATH_START;\n          } continue;\n        } else buffer += char;\n        break;\n\n      case PATH_START:\n        if (isSpecial(url)) {\n          state = PATH;\n          if (char != '/' && char != '\\\\') continue;\n        } else if (!stateOverride && char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          state = PATH;\n          if (char != '/') continue;\n        } break;\n\n      case PATH:\n        if (\n          char == EOF || char == '/' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          (!stateOverride && (char == '?' || char == '#'))\n        ) {\n          if (isDoubleDot(buffer)) {\n            shortenURLsPath(url);\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else if (isSingleDot(buffer)) {\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else {\n            if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n              if (url.host) url.host = '';\n              buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n            }\n            url.path.push(buffer);\n          }\n          buffer = '';\n          if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n            while (url.path.length > 1 && url.path[0] === '') {\n              url.path.shift();\n            }\n          }\n          if (char == '?') {\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          }\n        } else {\n          buffer += percentEncode(char, pathPercentEncodeSet);\n        } break;\n\n      case CANNOT_BE_A_BASE_URL_PATH:\n        if (char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case QUERY:\n        if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          if (char == \"'\" && isSpecial(url)) url.query += '%27';\n          else if (char == '#') url.query += '%23';\n          else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case FRAGMENT:\n        if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n        break;\n    }\n\n    pointer++;\n  }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n  var that = anInstance(this, URLConstructor, 'URL');\n  var base = arguments.length > 1 ? arguments[1] : undefined;\n  var urlString = String(url);\n  var state = setInternalState(that, { type: 'URL' });\n  var baseState, failure;\n  if (base !== undefined) {\n    if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n    else {\n      failure = parseURL(baseState = {}, String(base));\n      if (failure) throw TypeError(failure);\n    }\n  }\n  failure = parseURL(state, urlString, null, baseState);\n  if (failure) throw TypeError(failure);\n  var searchParams = state.searchParams = new URLSearchParams();\n  var searchParamsState = getInternalSearchParamsState(searchParams);\n  searchParamsState.updateSearchParams(state.query);\n  searchParamsState.updateURL = function () {\n    state.query = String(searchParams) || null;\n  };\n  if (!DESCRIPTORS) {\n    that.href = serializeURL.call(that);\n    that.origin = getOrigin.call(that);\n    that.protocol = getProtocol.call(that);\n    that.username = getUsername.call(that);\n    that.password = getPassword.call(that);\n    that.host = getHost.call(that);\n    that.hostname = getHostname.call(that);\n    that.port = getPort.call(that);\n    that.pathname = getPathname.call(that);\n    that.search = getSearch.call(that);\n    that.searchParams = getSearchParams.call(that);\n    that.hash = getHash.call(that);\n  }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var username = url.username;\n  var password = url.password;\n  var host = url.host;\n  var port = url.port;\n  var path = url.path;\n  var query = url.query;\n  var fragment = url.fragment;\n  var output = scheme + ':';\n  if (host !== null) {\n    output += '//';\n    if (includesCredentials(url)) {\n      output += username + (password ? ':' + password : '') + '@';\n    }\n    output += serializeHost(host);\n    if (port !== null) output += ':' + port;\n  } else if (scheme == 'file') output += '//';\n  output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n  if (query !== null) output += '?' + query;\n  if (fragment !== null) output += '#' + fragment;\n  return output;\n};\n\nvar getOrigin = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var port = url.port;\n  if (scheme == 'blob') try {\n    return new URL(scheme.path[0]).origin;\n  } catch (error) {\n    return 'null';\n  }\n  if (scheme == 'file' || !isSpecial(url)) return 'null';\n  return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n  return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n  return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n  return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n  var url = getInternalURLState(this);\n  var host = url.host;\n  var port = url.port;\n  return host === null ? ''\n    : port === null ? serializeHost(host)\n    : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n  var host = getInternalURLState(this).host;\n  return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n  var port = getInternalURLState(this).port;\n  return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n  var url = getInternalURLState(this);\n  var path = url.path;\n  return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n  var query = getInternalURLState(this).query;\n  return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n  return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n  var fragment = getInternalURLState(this).fragment;\n  return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n  return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n  defineProperties(URLPrototype, {\n    // `URL.prototype.href` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-href\n    href: accessorDescriptor(serializeURL, function (href) {\n      var url = getInternalURLState(this);\n      var urlString = String(href);\n      var failure = parseURL(url, urlString);\n      if (failure) throw TypeError(failure);\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.origin` getter\n    // https://url.spec.whatwg.org/#dom-url-origin\n    origin: accessorDescriptor(getOrigin),\n    // `URL.prototype.protocol` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-protocol\n    protocol: accessorDescriptor(getProtocol, function (protocol) {\n      var url = getInternalURLState(this);\n      parseURL(url, String(protocol) + ':', SCHEME_START);\n    }),\n    // `URL.prototype.username` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-username\n    username: accessorDescriptor(getUsername, function (username) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(username));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.username = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.password` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-password\n    password: accessorDescriptor(getPassword, function (password) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(password));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.password = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.host` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-host\n    host: accessorDescriptor(getHost, function (host) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(host), HOST);\n    }),\n    // `URL.prototype.hostname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hostname\n    hostname: accessorDescriptor(getHostname, function (hostname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(hostname), HOSTNAME);\n    }),\n    // `URL.prototype.port` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-port\n    port: accessorDescriptor(getPort, function (port) {\n      var url = getInternalURLState(this);\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      port = String(port);\n      if (port == '') url.port = null;\n      else parseURL(url, port, PORT);\n    }),\n    // `URL.prototype.pathname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-pathname\n    pathname: accessorDescriptor(getPathname, function (pathname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      url.path = [];\n      parseURL(url, pathname + '', PATH_START);\n    }),\n    // `URL.prototype.search` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-search\n    search: accessorDescriptor(getSearch, function (search) {\n      var url = getInternalURLState(this);\n      search = String(search);\n      if (search == '') {\n        url.query = null;\n      } else {\n        if ('?' == search.charAt(0)) search = search.slice(1);\n        url.query = '';\n        parseURL(url, search, QUERY);\n      }\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.searchParams` getter\n    // https://url.spec.whatwg.org/#dom-url-searchparams\n    searchParams: accessorDescriptor(getSearchParams),\n    // `URL.prototype.hash` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hash\n    hash: accessorDescriptor(getHash, function (hash) {\n      var url = getInternalURLState(this);\n      hash = String(hash);\n      if (hash == '') {\n        url.fragment = null;\n        return;\n      }\n      if ('#' == hash.charAt(0)) hash = hash.slice(1);\n      url.fragment = '';\n      parseURL(url, hash, FRAGMENT);\n    })\n  });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n  var nativeCreateObjectURL = NativeURL.createObjectURL;\n  var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n  // `URL.createObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n  // eslint-disable-next-line no-unused-vars\n  if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n    return nativeCreateObjectURL.apply(NativeURL, arguments);\n  });\n  // `URL.revokeObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n  // eslint-disable-next-line no-unused-vars\n  if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n    return nativeRevokeObjectURL.apply(NativeURL, arguments);\n  });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n  URL: URLConstructor\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n  var url = new URL('b?a=1&b=2&c=3', 'http://a');\n  var searchParams = url.searchParams;\n  var result = '';\n  url.pathname = 'c%20d';\n  searchParams.forEach(function (value, key) {\n    searchParams['delete']('b');\n    result += key + value;\n  });\n  return (IS_PURE && !url.toJSON)\n    || !searchParams.sort\n    || url.href !== 'http://a/c%20d?a=1&c=3'\n    || searchParams.get('c') !== '3'\n    || String(new URLSearchParams('?a=1')) !== 'a=1'\n    || !searchParams[ITERATOR]\n    // throws in Edge\n    || new URL('https://a@b').username !== 'a'\n    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n    // not punycoded in Edge\n    || new URL('http://тест').host !== 'xn--e1aybc'\n    // not escaped in Chrome 62-\n    || new URL('http://a#б').hash !== '#%D0%B1'\n    // fails in Chrome 66-\n    || result !== 'a1c3'\n    // throws in Safari\n    || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n  var output = [];\n  var counter = 0;\n  var length = string.length;\n  while (counter < length) {\n    var value = string.charCodeAt(counter++);\n    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n      // It's a high surrogate, and there is a next character.\n      var extra = string.charCodeAt(counter++);\n      if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n        output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n      } else {\n        // It's an unmatched surrogate; only append this code unit, in case the\n        // next code unit is the high surrogate of a surrogate pair.\n        output.push(value);\n        counter--;\n      }\n    } else {\n      output.push(value);\n    }\n  }\n  return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n  //  0..25 map to ASCII a..z or A..Z\n  // 26..35 map to ASCII 0..9\n  return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n  var k = 0;\n  delta = firstTime ? floor(delta / damp) : delta >> 1;\n  delta += floor(delta / numPoints);\n  for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n    delta = floor(delta / baseMinusTMin);\n  }\n  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line  max-statements\nvar encode = function (input) {\n  var output = [];\n\n  // Convert the input in UCS-2 to an array of Unicode code points.\n  input = ucs2decode(input);\n\n  // Cache the length.\n  var inputLength = input.length;\n\n  // Initialize the state.\n  var n = initialN;\n  var delta = 0;\n  var bias = initialBias;\n  var i, currentValue;\n\n  // Handle the basic code points.\n  for (i = 0; i < input.length; i++) {\n    currentValue = input[i];\n    if (currentValue < 0x80) {\n      output.push(stringFromCharCode(currentValue));\n    }\n  }\n\n  var basicLength = output.length; // number of basic code points.\n  var handledCPCount = basicLength; // number of code points that have been handled;\n\n  // Finish the basic string with a delimiter unless it's empty.\n  if (basicLength) {\n    output.push(delimiter);\n  }\n\n  // Main encoding loop:\n  while (handledCPCount < inputLength) {\n    // All non-basic code points < n have been handled already. Find the next larger one:\n    var m = maxInt;\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue >= n && currentValue < m) {\n        m = currentValue;\n      }\n    }\n\n    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n    var handledCPCountPlusOne = handledCPCount + 1;\n    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n      throw RangeError(OVERFLOW_ERROR);\n    }\n\n    delta += (m - n) * handledCPCountPlusOne;\n    n = m;\n\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue < n && ++delta > maxInt) {\n        throw RangeError(OVERFLOW_ERROR);\n      }\n      if (currentValue == n) {\n        // Represent delta as a generalized variable-length integer.\n        var q = delta;\n        for (var k = base; /* no condition */; k += base) {\n          var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n          if (q < t) break;\n          var qMinusT = q - t;\n          var baseMinusT = base - t;\n          output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n          q = floor(qMinusT / baseMinusT);\n        }\n\n        output.push(stringFromCharCode(digitToBasic(q)));\n        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n        delta = 0;\n        ++handledCPCount;\n      }\n    }\n\n    ++delta;\n    ++n;\n  }\n  return output.join('');\n};\n\nmodule.exports = function (input) {\n  var encoded = [];\n  var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n  var i, label;\n  for (i = 0; i < labels.length; i++) {\n    label = labels[i];\n    encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n  }\n  return encoded.join('.');\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n  return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n  try {\n    return decodeURIComponent(sequence);\n  } catch (error) {\n    return sequence;\n  }\n};\n\nvar deserialize = function (it) {\n  var result = it.replace(plus, ' ');\n  var bytes = 4;\n  try {\n    return decodeURIComponent(result);\n  } catch (error) {\n    while (bytes) {\n      result = result.replace(percentSequence(bytes--), percentDecode);\n    }\n    return result;\n  }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n  '!': '%21',\n  \"'\": '%27',\n  '(': '%28',\n  ')': '%29',\n  '~': '%7E',\n  '%20': '+'\n};\n\nvar replacer = function (match) {\n  return replace[match];\n};\n\nvar serialize = function (it) {\n  return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n  if (query) {\n    var attributes = query.split('&');\n    var index = 0;\n    var attribute, entry;\n    while (index < attributes.length) {\n      attribute = attributes[index++];\n      if (attribute.length) {\n        entry = attribute.split('=');\n        result.push({\n          key: deserialize(entry.shift()),\n          value: deserialize(entry.join('='))\n        });\n      }\n    }\n  }\n};\n\nvar updateSearchParams = function (query) {\n  this.entries.length = 0;\n  parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n  if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n  setInternalState(this, {\n    type: URL_SEARCH_PARAMS_ITERATOR,\n    iterator: getIterator(getInternalParamsState(params).entries),\n    kind: kind\n  });\n}, 'Iterator', function next() {\n  var state = getInternalIteratorState(this);\n  var kind = state.kind;\n  var step = state.iterator.next();\n  var entry = step.value;\n  if (!step.done) {\n    step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n  } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n  anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n  var init = arguments.length > 0 ? arguments[0] : undefined;\n  var that = this;\n  var entries = [];\n  var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n  setInternalState(that, {\n    type: URL_SEARCH_PARAMS,\n    entries: entries,\n    updateURL: function () { /* empty */ },\n    updateSearchParams: updateSearchParams\n  });\n\n  if (init !== undefined) {\n    if (isObject(init)) {\n      iteratorMethod = getIteratorMethod(init);\n      if (typeof iteratorMethod === 'function') {\n        iterator = iteratorMethod.call(init);\n        next = iterator.next;\n        while (!(step = next.call(iterator)).done) {\n          entryIterator = getIterator(anObject(step.value));\n          entryNext = entryIterator.next;\n          if (\n            (first = entryNext.call(entryIterator)).done ||\n            (second = entryNext.call(entryIterator)).done ||\n            !entryNext.call(entryIterator).done\n          ) throw TypeError('Expected sequence with length 2');\n          entries.push({ key: first.value + '', value: second.value + '' });\n        }\n      } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n    } else {\n      parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n    }\n  }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n  // `URLSearchParams.prototype.appent` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n  append: function append(name, value) {\n    validateArgumentsLength(arguments.length, 2);\n    var state = getInternalParamsState(this);\n    state.entries.push({ key: name + '', value: value + '' });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.delete` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n  'delete': function (name) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index].key === key) entries.splice(index, 1);\n      else index++;\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.get` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n  get: function get(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) return entries[index].value;\n    }\n    return null;\n  },\n  // `URLSearchParams.prototype.getAll` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n  getAll: function getAll(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var result = [];\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) result.push(entries[index].value);\n    }\n    return result;\n  },\n  // `URLSearchParams.prototype.has` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n  has: function has(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index++].key === key) return true;\n    }\n    return false;\n  },\n  // `URLSearchParams.prototype.set` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n  set: function set(name, value) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var found = false;\n    var key = name + '';\n    var val = value + '';\n    var index = 0;\n    var entry;\n    for (; index < entries.length; index++) {\n      entry = entries[index];\n      if (entry.key === key) {\n        if (found) entries.splice(index--, 1);\n        else {\n          found = true;\n          entry.value = val;\n        }\n      }\n    }\n    if (!found) entries.push({ key: key, value: val });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.sort` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n  sort: function sort() {\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    // Array#sort is not stable in some engines\n    var slice = entries.slice();\n    var entry, entriesIndex, sliceIndex;\n    entries.length = 0;\n    for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n      entry = slice[sliceIndex];\n      for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n        if (entries[entriesIndex].key > entry.key) {\n          entries.splice(entriesIndex, 0, entry);\n          break;\n        }\n      }\n      if (entriesIndex === sliceIndex) entries.push(entry);\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.forEach` method\n  forEach: function forEach(callback /* , thisArg */) {\n    var entries = getInternalParamsState(this).entries;\n    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n    var index = 0;\n    var entry;\n    while (index < entries.length) {\n      entry = entries[index++];\n      boundFunction(entry.value, entry.key, this);\n    }\n  },\n  // `URLSearchParams.prototype.keys` method\n  keys: function keys() {\n    return new URLSearchParamsIterator(this, 'keys');\n  },\n  // `URLSearchParams.prototype.values` method\n  values: function values() {\n    return new URLSearchParamsIterator(this, 'values');\n  },\n  // `URLSearchParams.prototype.entries` method\n  entries: function entries() {\n    return new URLSearchParamsIterator(this, 'entries');\n  }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n  var entries = getInternalParamsState(this).entries;\n  var result = [];\n  var index = 0;\n  var entry;\n  while (index < entries.length) {\n    entry = entries[index++];\n    result.push(serialize(entry.key) + '=' + serialize(entry.value));\n  } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n  URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n  $({ global: true, enumerable: true, forced: true }, {\n    fetch: function fetch(input /* , init */) {\n      var args = [input];\n      var init, body, headers;\n      if (arguments.length > 1) {\n        init = arguments[1];\n        if (isObject(init)) {\n          body = init.body;\n          if (classof(body) === URL_SEARCH_PARAMS) {\n            headers = init.headers ? new Headers(init.headers) : new Headers();\n            if (!headers.has('content-type')) {\n              headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n            }\n            init = create(init, {\n              body: createPropertyDescriptor(0, String(body)),\n              headers: createPropertyDescriptor(0, headers)\n            });\n          }\n        }\n        args.push(init);\n      } return $fetch.apply(this, args);\n    }\n  });\n}\n\nmodule.exports = {\n  URLSearchParams: URLSearchParamsConstructor,\n  getState: getInternalParamsState\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n  var iteratorMethod = getIteratorMethod(it);\n  if (typeof iteratorMethod != 'function') {\n    throw TypeError(String(it) + ' is not iterable');\n  } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n  toJSON: function toJSON() {\n    return URL.prototype.toString.call(this);\n  }\n});\n","/**\n * web-streams-polyfill v2.1.1\n */\n(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    typeof define === 'function' && define.amd ? define(['exports'], factory) :\n    (global = global || self, factory(global.WebStreamsPolyfill = {}));\n}(this, (function (exports) { 'use strict';\n\n    /// <reference lib=\"es2015.symbol\" />\n    var SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\n        Symbol :\n        function (description) { return \"Symbol(\" + description + \")\"; };\n\n    /// <reference lib=\"dom\" />\n    function noop() {\n        // do nothing\n    }\n\n    /// <reference lib=\"es2015.core\" />\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n    var NumberIsNaN = Number.isNaN || function (x) {\n        // eslint-disable-next-line no-self-compare\n        return x !== x;\n    };\n\n    var rethrowAssertionErrorRejection =  noop;\n\n    function typeIsObject(x) {\n        return (typeof x === 'object' && x !== null) || typeof x === 'function';\n    }\n    function createArrayFromList(elements) {\n        // We use arrays to represent lists, so this is basically a no-op.\n        // Do a slice though just in case we happen to depend on the unique-ness.\n        return elements.slice();\n    }\n    function ArrayBufferCopy(dest, destOffset, src, srcOffset, n) {\n        new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n    }\n    function IsFiniteNonNegativeNumber(v) {\n        if (IsNonNegativeNumber(v) === false) {\n            return false;\n        }\n        if (v === Infinity) {\n            return false;\n        }\n        return true;\n    }\n    function IsNonNegativeNumber(v) {\n        if (typeof v !== 'number') {\n            return false;\n        }\n        if (NumberIsNaN(v)) {\n            return false;\n        }\n        if (v < 0) {\n            return false;\n        }\n        return true;\n    }\n    function Call(F, V, args) {\n        if (typeof F !== 'function') {\n            throw new TypeError('Argument is not a function');\n        }\n        return Function.prototype.apply.call(F, V, args);\n    }\n    function CreateAlgorithmFromUnderlyingMethod(underlyingObject, methodName, algoArgCount, extraArgs) {\n        var method = underlyingObject[methodName];\n        if (method !== undefined) {\n            if (typeof method !== 'function') {\n                throw new TypeError(method + \" is not a method\");\n            }\n            switch (algoArgCount) {\n                case 0: {\n                    return function () {\n                        return PromiseCall(method, underlyingObject, extraArgs);\n                    };\n                }\n                case 1: {\n                    return function (arg) {\n                        var fullArgs = [arg].concat(extraArgs);\n                        return PromiseCall(method, underlyingObject, fullArgs);\n                    };\n                }\n            }\n        }\n        return function () { return promiseResolvedWith(undefined); };\n    }\n    function InvokeOrNoop(O, P, args) {\n        var method = O[P];\n        if (method === undefined) {\n            return undefined;\n        }\n        return Call(method, O, args);\n    }\n    function PromiseCall(F, V, args) {\n        try {\n            return promiseResolvedWith(Call(F, V, args));\n        }\n        catch (value) {\n            return promiseRejectedWith(value);\n        }\n    }\n    // Not implemented correctly\n    function TransferArrayBuffer(O) {\n        return O;\n    }\n    // Not implemented correctly\n    function IsDetachedBuffer(O) {\n        return false;\n    }\n    function ValidateAndNormalizeHighWaterMark(highWaterMark) {\n        highWaterMark = Number(highWaterMark);\n        if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n            throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\n        }\n        return highWaterMark;\n    }\n    function MakeSizeAlgorithmFromSizeFunction(size) {\n        if (size === undefined) {\n            return function () { return 1; };\n        }\n        if (typeof size !== 'function') {\n            throw new TypeError('size property of a queuing strategy must be a function');\n        }\n        return function (chunk) { return size(chunk); };\n    }\n    var originalPromise = Promise;\n    var originalPromiseThen = Promise.prototype.then;\n    var originalPromiseResolve = Promise.resolve.bind(originalPromise);\n    var originalPromiseReject = Promise.reject.bind(originalPromise);\n    function newPromise(executor) {\n        return new originalPromise(executor);\n    }\n    function promiseResolvedWith(value) {\n        return originalPromiseResolve(value);\n    }\n    function promiseRejectedWith(reason) {\n        return originalPromiseReject(reason);\n    }\n    function PerformPromiseThen(promise, onFulfilled, onRejected) {\n        // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n        // approximation.\n        return originalPromiseThen.call(promise, onFulfilled, onRejected);\n    }\n    function uponPromise(promise, onFulfilled, onRejected) {\n        PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n    }\n    function uponFulfillment(promise, onFulfilled) {\n        uponPromise(promise, onFulfilled);\n    }\n    function uponRejection(promise, onRejected) {\n        uponPromise(promise, undefined, onRejected);\n    }\n    function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n        return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n    }\n    function setPromiseIsHandledToTrue(promise) {\n        PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n    }\n\n    // Original from Chromium\n    // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n    var QUEUE_MAX_ARRAY_SIZE = 16384;\n    /**\n     * Simple queue structure.\n     *\n     * Avoids scalability issues with using a packed array directly by using\n     * multiple arrays in a linked list and keeping the array size bounded.\n     */\n    var SimpleQueue = /** @class */ (function () {\n        function SimpleQueue() {\n            this._cursor = 0;\n            this._size = 0;\n            // _front and _back are always defined.\n            this._front = {\n                _elements: [],\n                _next: undefined\n            };\n            this._back = this._front;\n            // The cursor is used to avoid calling Array.shift().\n            // It contains the index of the front element of the array inside the\n            // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n            this._cursor = 0;\n            // When there is only one node, size === elements.length - cursor.\n            this._size = 0;\n        }\n        Object.defineProperty(SimpleQueue.prototype, \"length\", {\n            get: function () {\n                return this._size;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        // For exception safety, this method is structured in order:\n        // 1. Read state\n        // 2. Calculate required state mutations\n        // 3. Perform state mutations\n        SimpleQueue.prototype.push = function (element) {\n            var oldBack = this._back;\n            var newBack = oldBack;\n            if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n                newBack = {\n                    _elements: [],\n                    _next: undefined\n                };\n            }\n            // push() is the mutation most likely to throw an exception, so it\n            // goes first.\n            oldBack._elements.push(element);\n            if (newBack !== oldBack) {\n                this._back = newBack;\n                oldBack._next = newBack;\n            }\n            ++this._size;\n        };\n        // Like push(), shift() follows the read -> calculate -> mutate pattern for\n        // exception safety.\n        SimpleQueue.prototype.shift = function () { // must not be called on an empty queue\n            var oldFront = this._front;\n            var newFront = oldFront;\n            var oldCursor = this._cursor;\n            var newCursor = oldCursor + 1;\n            var elements = oldFront._elements;\n            var element = elements[oldCursor];\n            if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n                newFront = oldFront._next;\n                newCursor = 0;\n            }\n            // No mutations before this point.\n            --this._size;\n            this._cursor = newCursor;\n            if (oldFront !== newFront) {\n                this._front = newFront;\n            }\n            // Permit shifted element to be garbage collected.\n            elements[oldCursor] = undefined;\n            return element;\n        };\n        // The tricky thing about forEach() is that it can be called\n        // re-entrantly. The queue may be mutated inside the callback. It is easy to\n        // see that push() within the callback has no negative effects since the end\n        // of the queue is checked for on every iteration. If shift() is called\n        // repeatedly within the callback then the next iteration may return an\n        // element that has been removed. In this case the callback will be called\n        // with undefined values until we either \"catch up\" with elements that still\n        // exist or reach the back of the queue.\n        SimpleQueue.prototype.forEach = function (callback) {\n            var i = this._cursor;\n            var node = this._front;\n            var elements = node._elements;\n            while (i !== elements.length || node._next !== undefined) {\n                if (i === elements.length) {\n                    node = node._next;\n                    elements = node._elements;\n                    i = 0;\n                    if (elements.length === 0) {\n                        break;\n                    }\n                }\n                callback(elements[i]);\n                ++i;\n            }\n        };\n        // Return the element that would be returned if shift() was called now,\n        // without modifying the queue.\n        SimpleQueue.prototype.peek = function () { // must not be called on an empty queue\n            var front = this._front;\n            var cursor = this._cursor;\n            return front._elements[cursor];\n        };\n        return SimpleQueue;\n    }());\n\n    function ReadableStreamCreateReadResult(value, done, forAuthorCode) {\n        var prototype = null;\n        if (forAuthorCode === true) {\n            prototype = Object.prototype;\n        }\n        var obj = Object.create(prototype);\n        obj.value = value;\n        obj.done = done;\n        return obj;\n    }\n    function ReadableStreamReaderGenericInitialize(reader, stream) {\n        reader._forAuthorCode = true;\n        reader._ownerReadableStream = stream;\n        stream._reader = reader;\n        if (stream._state === 'readable') {\n            defaultReaderClosedPromiseInitialize(reader);\n        }\n        else if (stream._state === 'closed') {\n            defaultReaderClosedPromiseInitializeAsResolved(reader);\n        }\n        else {\n            defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n        }\n    }\n    // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n    // check.\n    function ReadableStreamReaderGenericCancel(reader, reason) {\n        var stream = reader._ownerReadableStream;\n        return ReadableStreamCancel(stream, reason);\n    }\n    function ReadableStreamReaderGenericRelease(reader) {\n        if (reader._ownerReadableStream._state === 'readable') {\n            defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n        }\n        else {\n            defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n        }\n        reader._ownerReadableStream._reader = undefined;\n        reader._ownerReadableStream = undefined;\n    }\n    // Helper functions for the readers.\n    function readerLockException(name) {\n        return new TypeError('Cannot ' + name + ' a stream using a released reader');\n    }\n    // Helper functions for the ReadableStreamDefaultReader.\n    function defaultReaderClosedPromiseInitialize(reader) {\n        reader._closedPromise = newPromise(function (resolve, reject) {\n            reader._closedPromise_resolve = resolve;\n            reader._closedPromise_reject = reject;\n        });\n    }\n    function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n        defaultReaderClosedPromiseInitialize(reader);\n        defaultReaderClosedPromiseReject(reader, reason);\n    }\n    function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n        defaultReaderClosedPromiseInitialize(reader);\n        defaultReaderClosedPromiseResolve(reader);\n    }\n    function defaultReaderClosedPromiseReject(reader, reason) {\n        setPromiseIsHandledToTrue(reader._closedPromise);\n        reader._closedPromise_reject(reason);\n        reader._closedPromise_resolve = undefined;\n        reader._closedPromise_reject = undefined;\n    }\n    function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n        defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n    }\n    function defaultReaderClosedPromiseResolve(reader) {\n        reader._closedPromise_resolve(undefined);\n        reader._closedPromise_resolve = undefined;\n        reader._closedPromise_reject = undefined;\n    }\n\n    var CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n    var PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamDefaultReader(stream, forAuthorCode) {\n        if (forAuthorCode === void 0) { forAuthorCode = false; }\n        var reader = new ReadableStreamDefaultReader(stream);\n        reader._forAuthorCode = forAuthorCode;\n        return reader;\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamAddReadRequest(stream) {\n        var promise = newPromise(function (resolve, reject) {\n            var readRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._reader._readRequests.push(readRequest);\n        });\n        return promise;\n    }\n    function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n        var reader = stream._reader;\n        var readRequest = reader._readRequests.shift();\n        readRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode));\n    }\n    function ReadableStreamGetNumReadRequests(stream) {\n        return stream._reader._readRequests.length;\n    }\n    function ReadableStreamHasDefaultReader(stream) {\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return false;\n        }\n        if (!IsReadableStreamDefaultReader(reader)) {\n            return false;\n        }\n        return true;\n    }\n    var ReadableStreamDefaultReader = /** @class */ (function () {\n        function ReadableStreamDefaultReader(stream) {\n            if (IsReadableStream(stream) === false) {\n                throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\n            }\n            if (IsReadableStreamLocked(stream) === true) {\n                throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n            }\n            ReadableStreamReaderGenericInitialize(this, stream);\n            this._readRequests = new SimpleQueue();\n        }\n        Object.defineProperty(ReadableStreamDefaultReader.prototype, \"closed\", {\n            get: function () {\n                if (!IsReadableStreamDefaultReader(this)) {\n                    return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n                }\n                return this._closedPromise;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        ReadableStreamDefaultReader.prototype.cancel = function (reason) {\n            if (!IsReadableStreamDefaultReader(this)) {\n                return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('cancel'));\n            }\n            return ReadableStreamReaderGenericCancel(this, reason);\n        };\n        ReadableStreamDefaultReader.prototype.read = function () {\n            if (!IsReadableStreamDefaultReader(this)) {\n                return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('read from'));\n            }\n            return ReadableStreamDefaultReaderRead(this);\n        };\n        ReadableStreamDefaultReader.prototype.releaseLock = function () {\n            if (!IsReadableStreamDefaultReader(this)) {\n                throw defaultReaderBrandCheckException('releaseLock');\n            }\n            if (this._ownerReadableStream === undefined) {\n                return;\n            }\n            if (this._readRequests.length > 0) {\n                throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n            }\n            ReadableStreamReaderGenericRelease(this);\n        };\n        return ReadableStreamDefaultReader;\n    }());\n    // Abstract operations for the readers.\n    function IsReadableStreamDefaultReader(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n            return false;\n        }\n        return true;\n    }\n    function ReadableStreamDefaultReaderRead(reader) {\n        var stream = reader._ownerReadableStream;\n        stream._disturbed = true;\n        if (stream._state === 'closed') {\n            return promiseResolvedWith(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode));\n        }\n        if (stream._state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        return stream._readableStreamController[PullSteps]();\n    }\n    // Helper functions for the ReadableStreamDefaultReader.\n    function defaultReaderBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamDefaultReader.prototype.\" + name + \" can only be used on a ReadableStreamDefaultReader\");\n    }\n\n    /// <reference lib=\"es2018.asynciterable\" />\n    var _a;\n    var AsyncIteratorPrototype;\n    if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n        // We're running inside a ES2018+ environment, but we're compiling to an older syntax.\n        // We cannot access %AsyncIteratorPrototype% without non-ES2018 syntax, but we can re-create it.\n        AsyncIteratorPrototype = (_a = {},\n            // 25.1.3.1 %AsyncIteratorPrototype% [ @@asyncIterator ] ( )\n            // https://tc39.github.io/ecma262/#sec-asynciteratorprototype-asynciterator\n            _a[SymbolPolyfill.asyncIterator] = function () {\n                return this;\n            },\n            _a);\n        Object.defineProperty(AsyncIteratorPrototype, SymbolPolyfill.asyncIterator, { enumerable: false });\n    }\n\n    /// <reference lib=\"es2018.asynciterable\" />\n    var ReadableStreamAsyncIteratorPrototype = {\n        next: function () {\n            if (IsReadableStreamAsyncIterator(this) === false) {\n                return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n            }\n            var reader = this._asyncIteratorReader;\n            if (reader._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('iterate'));\n            }\n            return transformPromiseWith(ReadableStreamDefaultReaderRead(reader), function (result) {\n                var done = result.done;\n                if (done) {\n                    ReadableStreamReaderGenericRelease(reader);\n                }\n                var value = result.value;\n                return ReadableStreamCreateReadResult(value, done, true);\n            });\n        },\n        return: function (value) {\n            if (IsReadableStreamAsyncIterator(this) === false) {\n                return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n            }\n            var reader = this._asyncIteratorReader;\n            if (reader._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('finish iterating'));\n            }\n            if (reader._readRequests.length > 0) {\n                return promiseRejectedWith(new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'));\n            }\n            if (this._preventCancel === false) {\n                var result = ReadableStreamReaderGenericCancel(reader, value);\n                ReadableStreamReaderGenericRelease(reader);\n                return transformPromiseWith(result, function () { return ReadableStreamCreateReadResult(value, true, true); });\n            }\n            ReadableStreamReaderGenericRelease(reader);\n            return promiseResolvedWith(ReadableStreamCreateReadResult(value, true, true));\n        }\n    };\n    if (AsyncIteratorPrototype !== undefined) {\n        Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n    }\n    Object.defineProperty(ReadableStreamAsyncIteratorPrototype, 'next', { enumerable: false });\n    Object.defineProperty(ReadableStreamAsyncIteratorPrototype, 'return', { enumerable: false });\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n        if (preventCancel === void 0) { preventCancel = false; }\n        var reader = AcquireReadableStreamDefaultReader(stream);\n        var iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n        iterator._asyncIteratorReader = reader;\n        iterator._preventCancel = Boolean(preventCancel);\n        return iterator;\n    }\n    function IsReadableStreamAsyncIterator(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorReader')) {\n            return false;\n        }\n        return true;\n    }\n    // Helper functions for the ReadableStream.\n    function streamAsyncIteratorBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamAsyncIterator.\" + name + \" can only be used on a ReadableSteamAsyncIterator\");\n    }\n\n    function DequeueValue(container) {\n        var pair = container._queue.shift();\n        container._queueTotalSize -= pair.size;\n        if (container._queueTotalSize < 0) {\n            container._queueTotalSize = 0;\n        }\n        return pair.value;\n    }\n    function EnqueueValueWithSize(container, value, size) {\n        size = Number(size);\n        if (!IsFiniteNonNegativeNumber(size)) {\n            throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n        }\n        container._queue.push({ value: value, size: size });\n        container._queueTotalSize += size;\n    }\n    function PeekQueueValue(container) {\n        var pair = container._queue.peek();\n        return pair.value;\n    }\n    function ResetQueue(container) {\n        container._queue = new SimpleQueue();\n        container._queueTotalSize = 0;\n    }\n\n    var AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n    var ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n    var WritableStream = /** @class */ (function () {\n        function WritableStream(underlyingSink, strategy) {\n            if (underlyingSink === void 0) { underlyingSink = {}; }\n            if (strategy === void 0) { strategy = {}; }\n            InitializeWritableStream(this);\n            var size = strategy.size;\n            var highWaterMark = strategy.highWaterMark;\n            var type = underlyingSink.type;\n            if (type !== undefined) {\n                throw new RangeError('Invalid type is specified');\n            }\n            var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size);\n            if (highWaterMark === undefined) {\n                highWaterMark = 1;\n            }\n            highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);\n            SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n        }\n        Object.defineProperty(WritableStream.prototype, \"locked\", {\n            get: function () {\n                if (IsWritableStream(this) === false) {\n                    throw streamBrandCheckException('locked');\n                }\n                return IsWritableStreamLocked(this);\n            },\n            enumerable: true,\n            configurable: true\n        });\n        WritableStream.prototype.abort = function (reason) {\n            if (IsWritableStream(this) === false) {\n                return promiseRejectedWith(streamBrandCheckException('abort'));\n            }\n            if (IsWritableStreamLocked(this) === true) {\n                return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n            }\n            return WritableStreamAbort(this, reason);\n        };\n        WritableStream.prototype.close = function () {\n            if (IsWritableStream(this) === false) {\n                return promiseRejectedWith(streamBrandCheckException('close'));\n            }\n            if (IsWritableStreamLocked(this) === true) {\n                return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n            }\n            if (WritableStreamCloseQueuedOrInFlight(this) === true) {\n                return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n            }\n            return WritableStreamClose(this);\n        };\n        WritableStream.prototype.getWriter = function () {\n            if (IsWritableStream(this) === false) {\n                throw streamBrandCheckException('getWriter');\n            }\n            return AcquireWritableStreamDefaultWriter(this);\n        };\n        return WritableStream;\n    }());\n    // Abstract operations for the WritableStream.\n    function AcquireWritableStreamDefaultWriter(stream) {\n        return new WritableStreamDefaultWriter(stream);\n    }\n    // Throws if and only if startAlgorithm throws.\n    function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n        if (highWaterMark === void 0) { highWaterMark = 1; }\n        if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n        var stream = Object.create(WritableStream.prototype);\n        InitializeWritableStream(stream);\n        var controller = Object.create(WritableStreamDefaultController.prototype);\n        SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n        return stream;\n    }\n    function InitializeWritableStream(stream) {\n        stream._state = 'writable';\n        // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n        // 'erroring' or 'errored'. May be set to an undefined value.\n        stream._storedError = undefined;\n        stream._writer = undefined;\n        // Initialize to undefined first because the constructor of the controller checks this\n        // variable to validate the caller.\n        stream._writableStreamController = undefined;\n        // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n        // producer without waiting for the queued writes to finish.\n        stream._writeRequests = new SimpleQueue();\n        // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n        // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n        stream._inFlightWriteRequest = undefined;\n        // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n        // has been detached.\n        stream._closeRequest = undefined;\n        // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n        // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n        stream._inFlightCloseRequest = undefined;\n        // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n        stream._pendingAbortRequest = undefined;\n        // The backpressure signal set by the controller.\n        stream._backpressure = false;\n    }\n    function IsWritableStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n            return false;\n        }\n        return true;\n    }\n    function IsWritableStreamLocked(stream) {\n        if (stream._writer === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamAbort(stream, reason) {\n        var state = stream._state;\n        if (state === 'closed' || state === 'errored') {\n            return promiseResolvedWith(undefined);\n        }\n        if (stream._pendingAbortRequest !== undefined) {\n            return stream._pendingAbortRequest._promise;\n        }\n        var wasAlreadyErroring = false;\n        if (state === 'erroring') {\n            wasAlreadyErroring = true;\n            // reason will not be used, so don't keep a reference to it.\n            reason = undefined;\n        }\n        var promise = newPromise(function (resolve, reject) {\n            stream._pendingAbortRequest = {\n                _promise: undefined,\n                _resolve: resolve,\n                _reject: reject,\n                _reason: reason,\n                _wasAlreadyErroring: wasAlreadyErroring\n            };\n        });\n        stream._pendingAbortRequest._promise = promise;\n        if (wasAlreadyErroring === false) {\n            WritableStreamStartErroring(stream, reason);\n        }\n        return promise;\n    }\n    function WritableStreamClose(stream) {\n        var state = stream._state;\n        if (state === 'closed' || state === 'errored') {\n            return promiseRejectedWith(new TypeError(\"The stream (in \" + state + \" state) is not in the writable state and cannot be closed\"));\n        }\n        var promise = newPromise(function (resolve, reject) {\n            var closeRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._closeRequest = closeRequest;\n        });\n        var writer = stream._writer;\n        if (writer !== undefined && stream._backpressure === true && state === 'writable') {\n            defaultWriterReadyPromiseResolve(writer);\n        }\n        WritableStreamDefaultControllerClose(stream._writableStreamController);\n        return promise;\n    }\n    // WritableStream API exposed for controllers.\n    function WritableStreamAddWriteRequest(stream) {\n        var promise = newPromise(function (resolve, reject) {\n            var writeRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._writeRequests.push(writeRequest);\n        });\n        return promise;\n    }\n    function WritableStreamDealWithRejection(stream, error) {\n        var state = stream._state;\n        if (state === 'writable') {\n            WritableStreamStartErroring(stream, error);\n            return;\n        }\n        WritableStreamFinishErroring(stream);\n    }\n    function WritableStreamStartErroring(stream, reason) {\n        var controller = stream._writableStreamController;\n        stream._state = 'erroring';\n        stream._storedError = reason;\n        var writer = stream._writer;\n        if (writer !== undefined) {\n            WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n        }\n        if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n            WritableStreamFinishErroring(stream);\n        }\n    }\n    function WritableStreamFinishErroring(stream) {\n        stream._state = 'errored';\n        stream._writableStreamController[ErrorSteps]();\n        var storedError = stream._storedError;\n        stream._writeRequests.forEach(function (writeRequest) {\n            writeRequest._reject(storedError);\n        });\n        stream._writeRequests = new SimpleQueue();\n        if (stream._pendingAbortRequest === undefined) {\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return;\n        }\n        var abortRequest = stream._pendingAbortRequest;\n        stream._pendingAbortRequest = undefined;\n        if (abortRequest._wasAlreadyErroring === true) {\n            abortRequest._reject(storedError);\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return;\n        }\n        var promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n        uponPromise(promise, function () {\n            abortRequest._resolve();\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n        }, function (reason) {\n            abortRequest._reject(reason);\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n        });\n    }\n    function WritableStreamFinishInFlightWrite(stream) {\n        stream._inFlightWriteRequest._resolve(undefined);\n        stream._inFlightWriteRequest = undefined;\n    }\n    function WritableStreamFinishInFlightWriteWithError(stream, error) {\n        stream._inFlightWriteRequest._reject(error);\n        stream._inFlightWriteRequest = undefined;\n        WritableStreamDealWithRejection(stream, error);\n    }\n    function WritableStreamFinishInFlightClose(stream) {\n        stream._inFlightCloseRequest._resolve(undefined);\n        stream._inFlightCloseRequest = undefined;\n        var state = stream._state;\n        if (state === 'erroring') {\n            // The error was too late to do anything, so it is ignored.\n            stream._storedError = undefined;\n            if (stream._pendingAbortRequest !== undefined) {\n                stream._pendingAbortRequest._resolve();\n                stream._pendingAbortRequest = undefined;\n            }\n        }\n        stream._state = 'closed';\n        var writer = stream._writer;\n        if (writer !== undefined) {\n            defaultWriterClosedPromiseResolve(writer);\n        }\n    }\n    function WritableStreamFinishInFlightCloseWithError(stream, error) {\n        stream._inFlightCloseRequest._reject(error);\n        stream._inFlightCloseRequest = undefined;\n        // Never execute sink abort() after sink close().\n        if (stream._pendingAbortRequest !== undefined) {\n            stream._pendingAbortRequest._reject(error);\n            stream._pendingAbortRequest = undefined;\n        }\n        WritableStreamDealWithRejection(stream, error);\n    }\n    // TODO(ricea): Fix alphabetical order.\n    function WritableStreamCloseQueuedOrInFlight(stream) {\n        if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamHasOperationMarkedInFlight(stream) {\n        if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamMarkCloseRequestInFlight(stream) {\n        stream._inFlightCloseRequest = stream._closeRequest;\n        stream._closeRequest = undefined;\n    }\n    function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n        stream._inFlightWriteRequest = stream._writeRequests.shift();\n    }\n    function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n        if (stream._closeRequest !== undefined) {\n            stream._closeRequest._reject(stream._storedError);\n            stream._closeRequest = undefined;\n        }\n        var writer = stream._writer;\n        if (writer !== undefined) {\n            defaultWriterClosedPromiseReject(writer, stream._storedError);\n        }\n    }\n    function WritableStreamUpdateBackpressure(stream, backpressure) {\n        var writer = stream._writer;\n        if (writer !== undefined && backpressure !== stream._backpressure) {\n            if (backpressure === true) {\n                defaultWriterReadyPromiseReset(writer);\n            }\n            else {\n                defaultWriterReadyPromiseResolve(writer);\n            }\n        }\n        stream._backpressure = backpressure;\n    }\n    var WritableStreamDefaultWriter = /** @class */ (function () {\n        function WritableStreamDefaultWriter(stream) {\n            if (IsWritableStream(stream) === false) {\n                throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\n            }\n            if (IsWritableStreamLocked(stream) === true) {\n                throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n            }\n            this._ownerWritableStream = stream;\n            stream._writer = this;\n            var state = stream._state;\n            if (state === 'writable') {\n                if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\n                    defaultWriterReadyPromiseInitialize(this);\n                }\n                else {\n                    defaultWriterReadyPromiseInitializeAsResolved(this);\n                }\n                defaultWriterClosedPromiseInitialize(this);\n            }\n            else if (state === 'erroring') {\n                defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n                defaultWriterClosedPromiseInitialize(this);\n            }\n            else if (state === 'closed') {\n                defaultWriterReadyPromiseInitializeAsResolved(this);\n                defaultWriterClosedPromiseInitializeAsResolved(this);\n            }\n            else {\n                var storedError = stream._storedError;\n                defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n                defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n            }\n        }\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, \"closed\", {\n            get: function () {\n                if (IsWritableStreamDefaultWriter(this) === false) {\n                    return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n                }\n                return this._closedPromise;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, \"desiredSize\", {\n            get: function () {\n                if (IsWritableStreamDefaultWriter(this) === false) {\n                    throw defaultWriterBrandCheckException('desiredSize');\n                }\n                if (this._ownerWritableStream === undefined) {\n                    throw defaultWriterLockException('desiredSize');\n                }\n                return WritableStreamDefaultWriterGetDesiredSize(this);\n            },\n            enumerable: true,\n            configurable: true\n        });\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, \"ready\", {\n            get: function () {\n                if (IsWritableStreamDefaultWriter(this) === false) {\n                    return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n                }\n                return this._readyPromise;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        WritableStreamDefaultWriter.prototype.abort = function (reason) {\n            if (IsWritableStreamDefaultWriter(this) === false) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n            }\n            if (this._ownerWritableStream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('abort'));\n            }\n            return WritableStreamDefaultWriterAbort(this, reason);\n        };\n        WritableStreamDefaultWriter.prototype.close = function () {\n            if (IsWritableStreamDefaultWriter(this) === false) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n            }\n            var stream = this._ownerWritableStream;\n            if (stream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('close'));\n            }\n            if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\n                return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n            }\n            return WritableStreamDefaultWriterClose(this);\n        };\n        WritableStreamDefaultWriter.prototype.releaseLock = function () {\n            if (IsWritableStreamDefaultWriter(this) === false) {\n                throw defaultWriterBrandCheckException('releaseLock');\n            }\n            var stream = this._ownerWritableStream;\n            if (stream === undefined) {\n                return;\n            }\n            WritableStreamDefaultWriterRelease(this);\n        };\n        WritableStreamDefaultWriter.prototype.write = function (chunk) {\n            if (IsWritableStreamDefaultWriter(this) === false) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n            }\n            if (this._ownerWritableStream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('write to'));\n            }\n            return WritableStreamDefaultWriterWrite(this, chunk);\n        };\n        return WritableStreamDefaultWriter;\n    }());\n    // Abstract operations for the WritableStreamDefaultWriter.\n    function IsWritableStreamDefaultWriter(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n            return false;\n        }\n        return true;\n    }\n    // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n    function WritableStreamDefaultWriterAbort(writer, reason) {\n        var stream = writer._ownerWritableStream;\n        return WritableStreamAbort(stream, reason);\n    }\n    function WritableStreamDefaultWriterClose(writer) {\n        var stream = writer._ownerWritableStream;\n        return WritableStreamClose(stream);\n    }\n    function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n        var stream = writer._ownerWritableStream;\n        var state = stream._state;\n        if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n            return promiseResolvedWith(undefined);\n        }\n        if (state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        return WritableStreamDefaultWriterClose(writer);\n    }\n    function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n        if (writer._closedPromiseState === 'pending') {\n            defaultWriterClosedPromiseReject(writer, error);\n        }\n        else {\n            defaultWriterClosedPromiseResetToRejected(writer, error);\n        }\n    }\n    function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n        if (writer._readyPromiseState === 'pending') {\n            defaultWriterReadyPromiseReject(writer, error);\n        }\n        else {\n            defaultWriterReadyPromiseResetToRejected(writer, error);\n        }\n    }\n    function WritableStreamDefaultWriterGetDesiredSize(writer) {\n        var stream = writer._ownerWritableStream;\n        var state = stream._state;\n        if (state === 'errored' || state === 'erroring') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n    }\n    function WritableStreamDefaultWriterRelease(writer) {\n        var stream = writer._ownerWritableStream;\n        var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\n        WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n        // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n        // rejected until afterwards. This means that simply testing state will not work.\n        WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n        stream._writer = undefined;\n        writer._ownerWritableStream = undefined;\n    }\n    function WritableStreamDefaultWriterWrite(writer, chunk) {\n        var stream = writer._ownerWritableStream;\n        var controller = stream._writableStreamController;\n        var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n        if (stream !== writer._ownerWritableStream) {\n            return promiseRejectedWith(defaultWriterLockException('write to'));\n        }\n        var state = stream._state;\n        if (state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n            return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n        }\n        if (state === 'erroring') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        var promise = WritableStreamAddWriteRequest(stream);\n        WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n        return promise;\n    }\n    var WritableStreamDefaultController = /** @class */ (function () {\n        /** @internal */\n        function WritableStreamDefaultController() {\n            throw new TypeError('WritableStreamDefaultController cannot be constructed explicitly');\n        }\n        WritableStreamDefaultController.prototype.error = function (e) {\n            if (IsWritableStreamDefaultController(this) === false) {\n                throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\n            }\n            var state = this._controlledWritableStream._state;\n            if (state !== 'writable') {\n                // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n                // just treat it as a no-op.\n                return;\n            }\n            WritableStreamDefaultControllerError(this, e);\n        };\n        /** @internal */\n        WritableStreamDefaultController.prototype[AbortSteps] = function (reason) {\n            var result = this._abortAlgorithm(reason);\n            WritableStreamDefaultControllerClearAlgorithms(this);\n            return result;\n        };\n        /** @internal */\n        WritableStreamDefaultController.prototype[ErrorSteps] = function () {\n            ResetQueue(this);\n        };\n        return WritableStreamDefaultController;\n    }());\n    // Abstract operations implementing interface required by the WritableStream.\n    function IsWritableStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n            return false;\n        }\n        return true;\n    }\n    function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n        controller._controlledWritableStream = stream;\n        stream._writableStreamController = controller;\n        // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n        controller._queue = undefined;\n        controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._started = false;\n        controller._strategySizeAlgorithm = sizeAlgorithm;\n        controller._strategyHWM = highWaterMark;\n        controller._writeAlgorithm = writeAlgorithm;\n        controller._closeAlgorithm = closeAlgorithm;\n        controller._abortAlgorithm = abortAlgorithm;\n        var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n        WritableStreamUpdateBackpressure(stream, backpressure);\n        var startResult = startAlgorithm();\n        var startPromise = promiseResolvedWith(startResult);\n        uponPromise(startPromise, function () {\n            controller._started = true;\n            WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n        }, function (r) {\n            controller._started = true;\n            WritableStreamDealWithRejection(stream, r);\n        });\n    }\n    function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n        var controller = Object.create(WritableStreamDefaultController.prototype);\n        function startAlgorithm() {\n            return InvokeOrNoop(underlyingSink, 'start', [controller]);\n        }\n        var writeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'write', 1, [controller]);\n        var closeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'close', 0, []);\n        var abortAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'abort', 1, []);\n        SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n    }\n    // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n    function WritableStreamDefaultControllerClearAlgorithms(controller) {\n        controller._writeAlgorithm = undefined;\n        controller._closeAlgorithm = undefined;\n        controller._abortAlgorithm = undefined;\n        controller._strategySizeAlgorithm = undefined;\n    }\n    function WritableStreamDefaultControllerClose(controller) {\n        EnqueueValueWithSize(controller, 'close', 0);\n        WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }\n    function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n        try {\n            return controller._strategySizeAlgorithm(chunk);\n        }\n        catch (chunkSizeE) {\n            WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n            return 1;\n        }\n    }\n    function WritableStreamDefaultControllerGetDesiredSize(controller) {\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n        var writeRecord = { chunk: chunk };\n        try {\n            EnqueueValueWithSize(controller, writeRecord, chunkSize);\n        }\n        catch (enqueueE) {\n            WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n            return;\n        }\n        var stream = controller._controlledWritableStream;\n        if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\n            var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n            WritableStreamUpdateBackpressure(stream, backpressure);\n        }\n        WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }\n    // Abstract operations for the WritableStreamDefaultController.\n    function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n        var stream = controller._controlledWritableStream;\n        if (controller._started === false) {\n            return;\n        }\n        if (stream._inFlightWriteRequest !== undefined) {\n            return;\n        }\n        var state = stream._state;\n        if (state === 'erroring') {\n            WritableStreamFinishErroring(stream);\n            return;\n        }\n        if (controller._queue.length === 0) {\n            return;\n        }\n        var writeRecord = PeekQueueValue(controller);\n        if (writeRecord === 'close') {\n            WritableStreamDefaultControllerProcessClose(controller);\n        }\n        else {\n            WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n        }\n    }\n    function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n        if (controller._controlledWritableStream._state === 'writable') {\n            WritableStreamDefaultControllerError(controller, error);\n        }\n    }\n    function WritableStreamDefaultControllerProcessClose(controller) {\n        var stream = controller._controlledWritableStream;\n        WritableStreamMarkCloseRequestInFlight(stream);\n        DequeueValue(controller);\n        var sinkClosePromise = controller._closeAlgorithm();\n        WritableStreamDefaultControllerClearAlgorithms(controller);\n        uponPromise(sinkClosePromise, function () {\n            WritableStreamFinishInFlightClose(stream);\n        }, function (reason) {\n            WritableStreamFinishInFlightCloseWithError(stream, reason);\n        });\n    }\n    function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n        var stream = controller._controlledWritableStream;\n        WritableStreamMarkFirstWriteRequestInFlight(stream);\n        var sinkWritePromise = controller._writeAlgorithm(chunk);\n        uponPromise(sinkWritePromise, function () {\n            WritableStreamFinishInFlightWrite(stream);\n            var state = stream._state;\n            DequeueValue(controller);\n            if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\n                var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n                WritableStreamUpdateBackpressure(stream, backpressure);\n            }\n            WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n        }, function (reason) {\n            if (stream._state === 'writable') {\n                WritableStreamDefaultControllerClearAlgorithms(controller);\n            }\n            WritableStreamFinishInFlightWriteWithError(stream, reason);\n        });\n    }\n    function WritableStreamDefaultControllerGetBackpressure(controller) {\n        var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n        return desiredSize <= 0;\n    }\n    // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n    function WritableStreamDefaultControllerError(controller, error) {\n        var stream = controller._controlledWritableStream;\n        WritableStreamDefaultControllerClearAlgorithms(controller);\n        WritableStreamStartErroring(stream, error);\n    }\n    // Helper functions for the WritableStream.\n    function streamBrandCheckException(name) {\n        return new TypeError(\"WritableStream.prototype.\" + name + \" can only be used on a WritableStream\");\n    }\n    // Helper functions for the WritableStreamDefaultWriter.\n    function defaultWriterBrandCheckException(name) {\n        return new TypeError(\"WritableStreamDefaultWriter.prototype.\" + name + \" can only be used on a WritableStreamDefaultWriter\");\n    }\n    function defaultWriterLockException(name) {\n        return new TypeError('Cannot ' + name + ' a stream using a released writer');\n    }\n    function defaultWriterClosedPromiseInitialize(writer) {\n        writer._closedPromise = newPromise(function (resolve, reject) {\n            writer._closedPromise_resolve = resolve;\n            writer._closedPromise_reject = reject;\n            writer._closedPromiseState = 'pending';\n        });\n    }\n    function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n        defaultWriterClosedPromiseInitialize(writer);\n        defaultWriterClosedPromiseReject(writer, reason);\n    }\n    function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n        defaultWriterClosedPromiseInitialize(writer);\n        defaultWriterClosedPromiseResolve(writer);\n    }\n    function defaultWriterClosedPromiseReject(writer, reason) {\n        setPromiseIsHandledToTrue(writer._closedPromise);\n        writer._closedPromise_reject(reason);\n        writer._closedPromise_resolve = undefined;\n        writer._closedPromise_reject = undefined;\n        writer._closedPromiseState = 'rejected';\n    }\n    function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n        defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n    }\n    function defaultWriterClosedPromiseResolve(writer) {\n        writer._closedPromise_resolve(undefined);\n        writer._closedPromise_resolve = undefined;\n        writer._closedPromise_reject = undefined;\n        writer._closedPromiseState = 'resolved';\n    }\n    function defaultWriterReadyPromiseInitialize(writer) {\n        writer._readyPromise = newPromise(function (resolve, reject) {\n            writer._readyPromise_resolve = resolve;\n            writer._readyPromise_reject = reject;\n        });\n        writer._readyPromiseState = 'pending';\n    }\n    function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n        defaultWriterReadyPromiseInitialize(writer);\n        defaultWriterReadyPromiseReject(writer, reason);\n    }\n    function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n        defaultWriterReadyPromiseInitialize(writer);\n        defaultWriterReadyPromiseResolve(writer);\n    }\n    function defaultWriterReadyPromiseReject(writer, reason) {\n        setPromiseIsHandledToTrue(writer._readyPromise);\n        writer._readyPromise_reject(reason);\n        writer._readyPromise_resolve = undefined;\n        writer._readyPromise_reject = undefined;\n        writer._readyPromiseState = 'rejected';\n    }\n    function defaultWriterReadyPromiseReset(writer) {\n        defaultWriterReadyPromiseInitialize(writer);\n    }\n    function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n        defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n    }\n    function defaultWriterReadyPromiseResolve(writer) {\n        writer._readyPromise_resolve(undefined);\n        writer._readyPromise_resolve = undefined;\n        writer._readyPromise_reject = undefined;\n        writer._readyPromiseState = 'fulfilled';\n    }\n\n    function isAbortSignal(value) {\n        if (typeof value !== 'object' || value === null) {\n            return false;\n        }\n        try {\n            return typeof value.aborted === 'boolean';\n        }\n        catch (_a) {\n            // AbortSignal.prototype.aborted throws if its brand check fails\n            return false;\n        }\n    }\n\n    /// <reference lib=\"dom\" />\n    var NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n\n    /// <reference types=\"node\" />\n    function isDOMExceptionConstructor(ctor) {\n        if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n            return false;\n        }\n        try {\n            new ctor();\n            return true;\n        }\n        catch (_a) {\n            return false;\n        }\n    }\n    function createDOMExceptionPolyfill() {\n        var ctor = function DOMException(message, name) {\n            this.message = message || '';\n            this.name = name || 'Error';\n            if (Error.captureStackTrace) {\n                Error.captureStackTrace(this, this.constructor);\n            }\n        };\n        ctor.prototype = Object.create(Error.prototype);\n        Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n        return ctor;\n    }\n    var DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n\n    function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n        var reader = AcquireReadableStreamDefaultReader(source);\n        var writer = AcquireWritableStreamDefaultWriter(dest);\n        source._disturbed = true;\n        var shuttingDown = false;\n        // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n        var currentWrite = promiseResolvedWith(undefined);\n        return newPromise(function (resolve, reject) {\n            var abortAlgorithm;\n            if (signal !== undefined) {\n                abortAlgorithm = function () {\n                    var error = new DOMException$1('Aborted', 'AbortError');\n                    var actions = [];\n                    if (preventAbort === false) {\n                        actions.push(function () {\n                            if (dest._state === 'writable') {\n                                return WritableStreamAbort(dest, error);\n                            }\n                            return promiseResolvedWith(undefined);\n                        });\n                    }\n                    if (preventCancel === false) {\n                        actions.push(function () {\n                            if (source._state === 'readable') {\n                                return ReadableStreamCancel(source, error);\n                            }\n                            return promiseResolvedWith(undefined);\n                        });\n                    }\n                    shutdownWithAction(function () { return Promise.all(actions.map(function (action) { return action(); })); }, true, error);\n                };\n                if (signal.aborted === true) {\n                    abortAlgorithm();\n                    return;\n                }\n                signal.addEventListener('abort', abortAlgorithm);\n            }\n            // Using reader and writer, read all chunks from this and write them to dest\n            // - Backpressure must be enforced\n            // - Shutdown must stop all activity\n            function pipeLoop() {\n                return newPromise(function (resolveLoop, rejectLoop) {\n                    function next(done) {\n                        if (done) {\n                            resolveLoop();\n                        }\n                        else {\n                            // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n                            // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n                            PerformPromiseThen(pipeStep(), next, rejectLoop);\n                        }\n                    }\n                    next(false);\n                });\n            }\n            function pipeStep() {\n                if (shuttingDown === true) {\n                    return promiseResolvedWith(true);\n                }\n                return PerformPromiseThen(writer._readyPromise, function () {\n                    return PerformPromiseThen(ReadableStreamDefaultReaderRead(reader), function (result) {\n                        if (result.done === true) {\n                            return true;\n                        }\n                        currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, result.value), undefined, noop);\n                        return false;\n                    });\n                });\n            }\n            // Errors must be propagated forward\n            isOrBecomesErrored(source, reader._closedPromise, function (storedError) {\n                if (preventAbort === false) {\n                    shutdownWithAction(function () { return WritableStreamAbort(dest, storedError); }, true, storedError);\n                }\n                else {\n                    shutdown(true, storedError);\n                }\n            });\n            // Errors must be propagated backward\n            isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n                if (preventCancel === false) {\n                    shutdownWithAction(function () { return ReadableStreamCancel(source, storedError); }, true, storedError);\n                }\n                else {\n                    shutdown(true, storedError);\n                }\n            });\n            // Closing must be propagated forward\n            isOrBecomesClosed(source, reader._closedPromise, function () {\n                if (preventClose === false) {\n                    shutdownWithAction(function () { return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); });\n                }\n                else {\n                    shutdown();\n                }\n            });\n            // Closing must be propagated backward\n            if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {\n                var destClosed_1 = new TypeError('the destination writable stream closed before all data could be piped to it');\n                if (preventCancel === false) {\n                    shutdownWithAction(function () { return ReadableStreamCancel(source, destClosed_1); }, true, destClosed_1);\n                }\n                else {\n                    shutdown(true, destClosed_1);\n                }\n            }\n            setPromiseIsHandledToTrue(pipeLoop());\n            function waitForWritesToFinish() {\n                // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n                // for that too.\n                var oldCurrentWrite = currentWrite;\n                return PerformPromiseThen(currentWrite, function () { return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; });\n            }\n            function isOrBecomesErrored(stream, promise, action) {\n                if (stream._state === 'errored') {\n                    action(stream._storedError);\n                }\n                else {\n                    uponRejection(promise, action);\n                }\n            }\n            function isOrBecomesClosed(stream, promise, action) {\n                if (stream._state === 'closed') {\n                    action();\n                }\n                else {\n                    uponFulfillment(promise, action);\n                }\n            }\n            function shutdownWithAction(action, originalIsError, originalError) {\n                if (shuttingDown === true) {\n                    return;\n                }\n                shuttingDown = true;\n                if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n                    uponFulfillment(waitForWritesToFinish(), doTheRest);\n                }\n                else {\n                    doTheRest();\n                }\n                function doTheRest() {\n                    uponPromise(action(), function () { return finalize(originalIsError, originalError); }, function (newError) { return finalize(true, newError); });\n                }\n            }\n            function shutdown(isError, error) {\n                if (shuttingDown === true) {\n                    return;\n                }\n                shuttingDown = true;\n                if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n                    uponFulfillment(waitForWritesToFinish(), function () { return finalize(isError, error); });\n                }\n                else {\n                    finalize(isError, error);\n                }\n            }\n            function finalize(isError, error) {\n                WritableStreamDefaultWriterRelease(writer);\n                ReadableStreamReaderGenericRelease(reader);\n                if (signal !== undefined) {\n                    signal.removeEventListener('abort', abortAlgorithm);\n                }\n                if (isError) {\n                    reject(error);\n                }\n                else {\n                    resolve(undefined);\n                }\n            }\n        });\n    }\n\n    var ReadableStreamDefaultController = /** @class */ (function () {\n        /** @internal */\n        function ReadableStreamDefaultController() {\n            throw new TypeError();\n        }\n        Object.defineProperty(ReadableStreamDefaultController.prototype, \"desiredSize\", {\n            get: function () {\n                if (IsReadableStreamDefaultController(this) === false) {\n                    throw defaultControllerBrandCheckException('desiredSize');\n                }\n                return ReadableStreamDefaultControllerGetDesiredSize(this);\n            },\n            enumerable: true,\n            configurable: true\n        });\n        ReadableStreamDefaultController.prototype.close = function () {\n            if (IsReadableStreamDefaultController(this) === false) {\n                throw defaultControllerBrandCheckException('close');\n            }\n            if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) {\n                throw new TypeError('The stream is not in a state that permits close');\n            }\n            ReadableStreamDefaultControllerClose(this);\n        };\n        ReadableStreamDefaultController.prototype.enqueue = function (chunk) {\n            if (IsReadableStreamDefaultController(this) === false) {\n                throw defaultControllerBrandCheckException('enqueue');\n            }\n            if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) {\n                throw new TypeError('The stream is not in a state that permits enqueue');\n            }\n            return ReadableStreamDefaultControllerEnqueue(this, chunk);\n        };\n        ReadableStreamDefaultController.prototype.error = function (e) {\n            if (IsReadableStreamDefaultController(this) === false) {\n                throw defaultControllerBrandCheckException('error');\n            }\n            ReadableStreamDefaultControllerError(this, e);\n        };\n        /** @internal */\n        ReadableStreamDefaultController.prototype[CancelSteps] = function (reason) {\n            ResetQueue(this);\n            var result = this._cancelAlgorithm(reason);\n            ReadableStreamDefaultControllerClearAlgorithms(this);\n            return result;\n        };\n        /** @internal */\n        ReadableStreamDefaultController.prototype[PullSteps] = function () {\n            var stream = this._controlledReadableStream;\n            if (this._queue.length > 0) {\n                var chunk = DequeueValue(this);\n                if (this._closeRequested === true && this._queue.length === 0) {\n                    ReadableStreamDefaultControllerClearAlgorithms(this);\n                    ReadableStreamClose(stream);\n                }\n                else {\n                    ReadableStreamDefaultControllerCallPullIfNeeded(this);\n                }\n                return promiseResolvedWith(ReadableStreamCreateReadResult(chunk, false, stream._reader._forAuthorCode));\n            }\n            var pendingPromise = ReadableStreamAddReadRequest(stream);\n            ReadableStreamDefaultControllerCallPullIfNeeded(this);\n            return pendingPromise;\n        };\n        return ReadableStreamDefaultController;\n    }());\n    // Abstract operations for the ReadableStreamDefaultController.\n    function IsReadableStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n            return false;\n        }\n        return true;\n    }\n    function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n        var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n        if (shouldPull === false) {\n            return;\n        }\n        if (controller._pulling === true) {\n            controller._pullAgain = true;\n            return;\n        }\n        controller._pulling = true;\n        var pullPromise = controller._pullAlgorithm();\n        uponPromise(pullPromise, function () {\n            controller._pulling = false;\n            if (controller._pullAgain === true) {\n                controller._pullAgain = false;\n                ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n            }\n        }, function (e) {\n            ReadableStreamDefaultControllerError(controller, e);\n        });\n    }\n    function ReadableStreamDefaultControllerShouldCallPull(controller) {\n        var stream = controller._controlledReadableStream;\n        if (ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) === false) {\n            return false;\n        }\n        if (controller._started === false) {\n            return false;\n        }\n        if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n            return true;\n        }\n        var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n        if (desiredSize > 0) {\n            return true;\n        }\n        return false;\n    }\n    function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n        controller._pullAlgorithm = undefined;\n        controller._cancelAlgorithm = undefined;\n        controller._strategySizeAlgorithm = undefined;\n    }\n    // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n    function ReadableStreamDefaultControllerClose(controller) {\n        var stream = controller._controlledReadableStream;\n        controller._closeRequested = true;\n        if (controller._queue.length === 0) {\n            ReadableStreamDefaultControllerClearAlgorithms(controller);\n            ReadableStreamClose(stream);\n        }\n    }\n    function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n        var stream = controller._controlledReadableStream;\n        if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n            ReadableStreamFulfillReadRequest(stream, chunk, false);\n        }\n        else {\n            var chunkSize = void 0;\n            try {\n                chunkSize = controller._strategySizeAlgorithm(chunk);\n            }\n            catch (chunkSizeE) {\n                ReadableStreamDefaultControllerError(controller, chunkSizeE);\n                throw chunkSizeE;\n            }\n            try {\n                EnqueueValueWithSize(controller, chunk, chunkSize);\n            }\n            catch (enqueueE) {\n                ReadableStreamDefaultControllerError(controller, enqueueE);\n                throw enqueueE;\n            }\n        }\n        ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n    }\n    function ReadableStreamDefaultControllerError(controller, e) {\n        var stream = controller._controlledReadableStream;\n        if (stream._state !== 'readable') {\n            return;\n        }\n        ResetQueue(controller);\n        ReadableStreamDefaultControllerClearAlgorithms(controller);\n        ReadableStreamError(stream, e);\n    }\n    function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n        var stream = controller._controlledReadableStream;\n        var state = stream._state;\n        if (state === 'errored') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    // This is used in the implementation of TransformStream.\n    function ReadableStreamDefaultControllerHasBackpressure(controller) {\n        if (ReadableStreamDefaultControllerShouldCallPull(controller) === true) {\n            return false;\n        }\n        return true;\n    }\n    function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n        var state = controller._controlledReadableStream._state;\n        if (controller._closeRequested === false && state === 'readable') {\n            return true;\n        }\n        return false;\n    }\n    function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n        controller._controlledReadableStream = stream;\n        controller._queue = undefined;\n        controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._started = false;\n        controller._closeRequested = false;\n        controller._pullAgain = false;\n        controller._pulling = false;\n        controller._strategySizeAlgorithm = sizeAlgorithm;\n        controller._strategyHWM = highWaterMark;\n        controller._pullAlgorithm = pullAlgorithm;\n        controller._cancelAlgorithm = cancelAlgorithm;\n        stream._readableStreamController = controller;\n        var startResult = startAlgorithm();\n        uponPromise(promiseResolvedWith(startResult), function () {\n            controller._started = true;\n            ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n        }, function (r) {\n            ReadableStreamDefaultControllerError(controller, r);\n        });\n    }\n    function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n        var controller = Object.create(ReadableStreamDefaultController.prototype);\n        function startAlgorithm() {\n            return InvokeOrNoop(underlyingSource, 'start', [controller]);\n        }\n        var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'pull', 0, [controller]);\n        var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'cancel', 1, []);\n        SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n    }\n    // Helper functions for the ReadableStreamDefaultController.\n    function defaultControllerBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamDefaultController.prototype.\" + name + \" can only be used on a ReadableStreamDefaultController\");\n    }\n\n    function ReadableStreamTee(stream, cloneForBranch2) {\n        var reader = AcquireReadableStreamDefaultReader(stream);\n        var reading = false;\n        var canceled1 = false;\n        var canceled2 = false;\n        var reason1;\n        var reason2;\n        var branch1;\n        var branch2;\n        var resolveCancelPromise;\n        var cancelPromise = newPromise(function (resolve) {\n            resolveCancelPromise = resolve;\n        });\n        function pullAlgorithm() {\n            if (reading === true) {\n                return promiseResolvedWith(undefined);\n            }\n            reading = true;\n            var readPromise = transformPromiseWith(ReadableStreamDefaultReaderRead(reader), function (result) {\n                reading = false;\n                var done = result.done;\n                if (done === true) {\n                    if (canceled1 === false) {\n                        ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n                    }\n                    if (canceled2 === false) {\n                        ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n                    }\n                    return;\n                }\n                var value = result.value;\n                var value1 = value;\n                var value2 = value;\n                // There is no way to access the cloning code right now in the reference implementation.\n                // If we add one then we'll need an implementation for serializable objects.\n                // if (canceled2 === false && cloneForBranch2 === true) {\n                //   value2 = StructuredDeserialize(StructuredSerialize(value2));\n                // }\n                if (canceled1 === false) {\n                    ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, value1);\n                }\n                if (canceled2 === false) {\n                    ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, value2);\n                }\n            });\n            setPromiseIsHandledToTrue(readPromise);\n            return promiseResolvedWith(undefined);\n        }\n        function cancel1Algorithm(reason) {\n            canceled1 = true;\n            reason1 = reason;\n            if (canceled2 === true) {\n                var compositeReason = createArrayFromList([reason1, reason2]);\n                var cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function cancel2Algorithm(reason) {\n            canceled2 = true;\n            reason2 = reason;\n            if (canceled1 === true) {\n                var compositeReason = createArrayFromList([reason1, reason2]);\n                var cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function startAlgorithm() { }\n        branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n        branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n        uponRejection(reader._closedPromise, function (r) {\n            ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n            ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n        });\n        return [branch1, branch2];\n    }\n\n    /// <reference lib=\"es2015.core\" />\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger#Polyfill\n    var NumberIsInteger = Number.isInteger || function (value) {\n        return typeof value === 'number' &&\n            isFinite(value) &&\n            Math.floor(value) === value;\n    };\n\n    var ReadableStreamBYOBRequest = /** @class */ (function () {\n        /** @internal */\n        function ReadableStreamBYOBRequest() {\n            throw new TypeError('ReadableStreamBYOBRequest cannot be used directly');\n        }\n        Object.defineProperty(ReadableStreamBYOBRequest.prototype, \"view\", {\n            get: function () {\n                if (IsReadableStreamBYOBRequest(this) === false) {\n                    throw byobRequestBrandCheckException('view');\n                }\n                return this._view;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        ReadableStreamBYOBRequest.prototype.respond = function (bytesWritten) {\n            if (IsReadableStreamBYOBRequest(this) === false) {\n                throw byobRequestBrandCheckException('respond');\n            }\n            if (this._associatedReadableByteStreamController === undefined) {\n                throw new TypeError('This BYOB request has been invalidated');\n            }\n            if (IsDetachedBuffer(this._view.buffer) === true) ;\n            ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n        };\n        ReadableStreamBYOBRequest.prototype.respondWithNewView = function (view) {\n            if (IsReadableStreamBYOBRequest(this) === false) {\n                throw byobRequestBrandCheckException('respond');\n            }\n            if (this._associatedReadableByteStreamController === undefined) {\n                throw new TypeError('This BYOB request has been invalidated');\n            }\n            if (!ArrayBuffer.isView(view)) {\n                throw new TypeError('You can only respond with array buffer views');\n            }\n            if (IsDetachedBuffer(view.buffer) === true) ;\n            ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n        };\n        return ReadableStreamBYOBRequest;\n    }());\n    var ReadableByteStreamController = /** @class */ (function () {\n        /** @internal */\n        function ReadableByteStreamController() {\n            throw new TypeError('ReadableByteStreamController constructor cannot be used directly');\n        }\n        Object.defineProperty(ReadableByteStreamController.prototype, \"byobRequest\", {\n            get: function () {\n                if (IsReadableByteStreamController(this) === false) {\n                    throw byteStreamControllerBrandCheckException('byobRequest');\n                }\n                if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {\n                    var firstDescriptor = this._pendingPullIntos.peek();\n                    var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n                    var byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n                    SetUpReadableStreamBYOBRequest(byobRequest, this, view);\n                    this._byobRequest = byobRequest;\n                }\n                return this._byobRequest;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        Object.defineProperty(ReadableByteStreamController.prototype, \"desiredSize\", {\n            get: function () {\n                if (IsReadableByteStreamController(this) === false) {\n                    throw byteStreamControllerBrandCheckException('desiredSize');\n                }\n                return ReadableByteStreamControllerGetDesiredSize(this);\n            },\n            enumerable: true,\n            configurable: true\n        });\n        ReadableByteStreamController.prototype.close = function () {\n            if (IsReadableByteStreamController(this) === false) {\n                throw byteStreamControllerBrandCheckException('close');\n            }\n            if (this._closeRequested === true) {\n                throw new TypeError('The stream has already been closed; do not close it again!');\n            }\n            var state = this._controlledReadableByteStream._state;\n            if (state !== 'readable') {\n                throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be closed\");\n            }\n            ReadableByteStreamControllerClose(this);\n        };\n        ReadableByteStreamController.prototype.enqueue = function (chunk) {\n            if (IsReadableByteStreamController(this) === false) {\n                throw byteStreamControllerBrandCheckException('enqueue');\n            }\n            if (this._closeRequested === true) {\n                throw new TypeError('stream is closed or draining');\n            }\n            var state = this._controlledReadableByteStream._state;\n            if (state !== 'readable') {\n                throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be enqueued to\");\n            }\n            if (!ArrayBuffer.isView(chunk)) {\n                throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\n            }\n            if (IsDetachedBuffer(chunk.buffer) === true) ;\n            ReadableByteStreamControllerEnqueue(this, chunk);\n        };\n        ReadableByteStreamController.prototype.error = function (e) {\n            if (IsReadableByteStreamController(this) === false) {\n                throw byteStreamControllerBrandCheckException('error');\n            }\n            ReadableByteStreamControllerError(this, e);\n        };\n        /** @internal */\n        ReadableByteStreamController.prototype[CancelSteps] = function (reason) {\n            if (this._pendingPullIntos.length > 0) {\n                var firstDescriptor = this._pendingPullIntos.peek();\n                firstDescriptor.bytesFilled = 0;\n            }\n            ResetQueue(this);\n            var result = this._cancelAlgorithm(reason);\n            ReadableByteStreamControllerClearAlgorithms(this);\n            return result;\n        };\n        /** @internal */\n        ReadableByteStreamController.prototype[PullSteps] = function () {\n            var stream = this._controlledReadableByteStream;\n            if (this._queueTotalSize > 0) {\n                var entry = this._queue.shift();\n                this._queueTotalSize -= entry.byteLength;\n                ReadableByteStreamControllerHandleQueueDrain(this);\n                var view = void 0;\n                try {\n                    view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n                }\n                catch (viewE) {\n                    return promiseRejectedWith(viewE);\n                }\n                return promiseResolvedWith(ReadableStreamCreateReadResult(view, false, stream._reader._forAuthorCode));\n            }\n            var autoAllocateChunkSize = this._autoAllocateChunkSize;\n            if (autoAllocateChunkSize !== undefined) {\n                var buffer = void 0;\n                try {\n                    buffer = new ArrayBuffer(autoAllocateChunkSize);\n                }\n                catch (bufferE) {\n                    return promiseRejectedWith(bufferE);\n                }\n                var pullIntoDescriptor = {\n                    buffer: buffer,\n                    byteOffset: 0,\n                    byteLength: autoAllocateChunkSize,\n                    bytesFilled: 0,\n                    elementSize: 1,\n                    ctor: Uint8Array,\n                    readerType: 'default'\n                };\n                this._pendingPullIntos.push(pullIntoDescriptor);\n            }\n            var promise = ReadableStreamAddReadRequest(stream);\n            ReadableByteStreamControllerCallPullIfNeeded(this);\n            return promise;\n        };\n        return ReadableByteStreamController;\n    }());\n    // Abstract operations for the ReadableByteStreamController.\n    function IsReadableByteStreamController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n            return false;\n        }\n        return true;\n    }\n    function IsReadableStreamBYOBRequest(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n            return false;\n        }\n        return true;\n    }\n    function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n        var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n        if (shouldPull === false) {\n            return;\n        }\n        if (controller._pulling === true) {\n            controller._pullAgain = true;\n            return;\n        }\n        controller._pulling = true;\n        // TODO: Test controller argument\n        var pullPromise = controller._pullAlgorithm();\n        uponPromise(pullPromise, function () {\n            controller._pulling = false;\n            if (controller._pullAgain === true) {\n                controller._pullAgain = false;\n                ReadableByteStreamControllerCallPullIfNeeded(controller);\n            }\n        }, function (e) {\n            ReadableByteStreamControllerError(controller, e);\n        });\n    }\n    function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n        ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n        controller._pendingPullIntos = new SimpleQueue();\n    }\n    function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n        var done = false;\n        if (stream._state === 'closed') {\n            done = true;\n        }\n        var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n        if (pullIntoDescriptor.readerType === 'default') {\n            ReadableStreamFulfillReadRequest(stream, filledView, done);\n        }\n        else {\n            ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n        }\n    }\n    function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n        var bytesFilled = pullIntoDescriptor.bytesFilled;\n        var elementSize = pullIntoDescriptor.elementSize;\n        return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n    }\n    function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n        controller._queue.push({ buffer: buffer, byteOffset: byteOffset, byteLength: byteLength });\n        controller._queueTotalSize += byteLength;\n    }\n    function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n        var elementSize = pullIntoDescriptor.elementSize;\n        var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n        var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n        var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n        var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n        var totalBytesToCopyRemaining = maxBytesToCopy;\n        var ready = false;\n        if (maxAlignedBytes > currentAlignedBytes) {\n            totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n            ready = true;\n        }\n        var queue = controller._queue;\n        while (totalBytesToCopyRemaining > 0) {\n            var headOfQueue = queue.peek();\n            var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n            var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n            ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n            if (headOfQueue.byteLength === bytesToCopy) {\n                queue.shift();\n            }\n            else {\n                headOfQueue.byteOffset += bytesToCopy;\n                headOfQueue.byteLength -= bytesToCopy;\n            }\n            controller._queueTotalSize -= bytesToCopy;\n            ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n            totalBytesToCopyRemaining -= bytesToCopy;\n        }\n        return ready;\n    }\n    function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n        ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n        pullIntoDescriptor.bytesFilled += size;\n    }\n    function ReadableByteStreamControllerHandleQueueDrain(controller) {\n        if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\n            ReadableByteStreamControllerClearAlgorithms(controller);\n            ReadableStreamClose(controller._controlledReadableByteStream);\n        }\n        else {\n            ReadableByteStreamControllerCallPullIfNeeded(controller);\n        }\n    }\n    function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n        if (controller._byobRequest === undefined) {\n            return;\n        }\n        controller._byobRequest._associatedReadableByteStreamController = undefined;\n        controller._byobRequest._view = undefined;\n        controller._byobRequest = undefined;\n    }\n    function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n        while (controller._pendingPullIntos.length > 0) {\n            if (controller._queueTotalSize === 0) {\n                return;\n            }\n            var pullIntoDescriptor = controller._pendingPullIntos.peek();\n            if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n                ReadableByteStreamControllerShiftPendingPullInto(controller);\n                ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n            }\n        }\n    }\n    function ReadableByteStreamControllerPullInto(controller, view) {\n        var stream = controller._controlledReadableByteStream;\n        var elementSize = 1;\n        if (view.constructor !== DataView) {\n            elementSize = view.constructor.BYTES_PER_ELEMENT;\n        }\n        var ctor = view.constructor;\n        var buffer = TransferArrayBuffer(view.buffer);\n        var pullIntoDescriptor = {\n            buffer: buffer,\n            byteOffset: view.byteOffset,\n            byteLength: view.byteLength,\n            bytesFilled: 0,\n            elementSize: elementSize,\n            ctor: ctor,\n            readerType: 'byob'\n        };\n        if (controller._pendingPullIntos.length > 0) {\n            controller._pendingPullIntos.push(pullIntoDescriptor);\n            // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n            // - No change happens on desiredSize\n            // - The source has already been notified of that there's at least 1 pending read(view)\n            return ReadableStreamAddReadIntoRequest(stream);\n        }\n        if (stream._state === 'closed') {\n            var emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n            return promiseResolvedWith(ReadableStreamCreateReadResult(emptyView, true, stream._reader._forAuthorCode));\n        }\n        if (controller._queueTotalSize > 0) {\n            if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n                var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n                ReadableByteStreamControllerHandleQueueDrain(controller);\n                return promiseResolvedWith(ReadableStreamCreateReadResult(filledView, false, stream._reader._forAuthorCode));\n            }\n            if (controller._closeRequested === true) {\n                var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n                ReadableByteStreamControllerError(controller, e);\n                return promiseRejectedWith(e);\n            }\n        }\n        controller._pendingPullIntos.push(pullIntoDescriptor);\n        var promise = ReadableStreamAddReadIntoRequest(stream);\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n        return promise;\n    }\n    function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n        firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n        var stream = controller._controlledReadableByteStream;\n        if (ReadableStreamHasBYOBReader(stream) === true) {\n            while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n                var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n                ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n            }\n        }\n    }\n    function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n        if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\n            throw new RangeError('bytesWritten out of range');\n        }\n        ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n        if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n            // TODO: Figure out whether we should detach the buffer or not here.\n            return;\n        }\n        ReadableByteStreamControllerShiftPendingPullInto(controller);\n        var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n        if (remainderSize > 0) {\n            var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n            var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\n            ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n        }\n        pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n        pullIntoDescriptor.bytesFilled -= remainderSize;\n        ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n        ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n    }\n    function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n        var firstDescriptor = controller._pendingPullIntos.peek();\n        var stream = controller._controlledReadableByteStream;\n        if (stream._state === 'closed') {\n            if (bytesWritten !== 0) {\n                throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n            }\n            ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n        }\n        else {\n            ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n        }\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n    function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n        var descriptor = controller._pendingPullIntos.shift();\n        ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n        return descriptor;\n    }\n    function ReadableByteStreamControllerShouldCallPull(controller) {\n        var stream = controller._controlledReadableByteStream;\n        if (stream._state !== 'readable') {\n            return false;\n        }\n        if (controller._closeRequested === true) {\n            return false;\n        }\n        if (controller._started === false) {\n            return false;\n        }\n        if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n            return true;\n        }\n        if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n            return true;\n        }\n        var desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n        if (desiredSize > 0) {\n            return true;\n        }\n        return false;\n    }\n    function ReadableByteStreamControllerClearAlgorithms(controller) {\n        controller._pullAlgorithm = undefined;\n        controller._cancelAlgorithm = undefined;\n    }\n    // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n    function ReadableByteStreamControllerClose(controller) {\n        var stream = controller._controlledReadableByteStream;\n        if (controller._queueTotalSize > 0) {\n            controller._closeRequested = true;\n            return;\n        }\n        if (controller._pendingPullIntos.length > 0) {\n            var firstPendingPullInto = controller._pendingPullIntos.peek();\n            if (firstPendingPullInto.bytesFilled > 0) {\n                var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n                ReadableByteStreamControllerError(controller, e);\n                throw e;\n            }\n        }\n        ReadableByteStreamControllerClearAlgorithms(controller);\n        ReadableStreamClose(stream);\n    }\n    function ReadableByteStreamControllerEnqueue(controller, chunk) {\n        var stream = controller._controlledReadableByteStream;\n        var buffer = chunk.buffer;\n        var byteOffset = chunk.byteOffset;\n        var byteLength = chunk.byteLength;\n        var transferredBuffer = TransferArrayBuffer(buffer);\n        if (ReadableStreamHasDefaultReader(stream) === true) {\n            if (ReadableStreamGetNumReadRequests(stream) === 0) {\n                ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n            }\n            else {\n                var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n                ReadableStreamFulfillReadRequest(stream, transferredView, false);\n            }\n        }\n        else if (ReadableStreamHasBYOBReader(stream) === true) {\n            // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n            ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n            ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n        }\n        else {\n            ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n        }\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n    function ReadableByteStreamControllerError(controller, e) {\n        var stream = controller._controlledReadableByteStream;\n        if (stream._state !== 'readable') {\n            return;\n        }\n        ReadableByteStreamControllerClearPendingPullIntos(controller);\n        ResetQueue(controller);\n        ReadableByteStreamControllerClearAlgorithms(controller);\n        ReadableStreamError(stream, e);\n    }\n    function ReadableByteStreamControllerGetDesiredSize(controller) {\n        var stream = controller._controlledReadableByteStream;\n        var state = stream._state;\n        if (state === 'errored') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n        bytesWritten = Number(bytesWritten);\n        if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n            throw new RangeError('bytesWritten must be a finite');\n        }\n        ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n    }\n    function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n        var firstDescriptor = controller._pendingPullIntos.peek();\n        if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n            throw new RangeError('The region specified by view does not match byobRequest');\n        }\n        if (firstDescriptor.byteLength !== view.byteLength) {\n            throw new RangeError('The buffer of view has different capacity than byobRequest');\n        }\n        firstDescriptor.buffer = view.buffer;\n        ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n    }\n    function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n        controller._controlledReadableByteStream = stream;\n        controller._pullAgain = false;\n        controller._pulling = false;\n        controller._byobRequest = undefined;\n        // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n        controller._queue = controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._closeRequested = false;\n        controller._started = false;\n        controller._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\n        controller._pullAlgorithm = pullAlgorithm;\n        controller._cancelAlgorithm = cancelAlgorithm;\n        controller._autoAllocateChunkSize = autoAllocateChunkSize;\n        controller._pendingPullIntos = new SimpleQueue();\n        stream._readableStreamController = controller;\n        var startResult = startAlgorithm();\n        uponPromise(promiseResolvedWith(startResult), function () {\n            controller._started = true;\n            ReadableByteStreamControllerCallPullIfNeeded(controller);\n        }, function (r) {\n            ReadableByteStreamControllerError(controller, r);\n        });\n    }\n    function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n        var controller = Object.create(ReadableByteStreamController.prototype);\n        function startAlgorithm() {\n            return InvokeOrNoop(underlyingByteSource, 'start', [controller]);\n        }\n        var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'pull', 0, [controller]);\n        var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'cancel', 1, []);\n        var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n        if (autoAllocateChunkSize !== undefined) {\n            autoAllocateChunkSize = Number(autoAllocateChunkSize);\n            if (NumberIsInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\n                throw new RangeError('autoAllocateChunkSize must be a positive integer');\n            }\n        }\n        SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n    }\n    function SetUpReadableStreamBYOBRequest(request, controller, view) {\n        request._associatedReadableByteStreamController = controller;\n        request._view = view;\n    }\n    // Helper functions for the ReadableStreamBYOBRequest.\n    function byobRequestBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamBYOBRequest.prototype.\" + name + \" can only be used on a ReadableStreamBYOBRequest\");\n    }\n    // Helper functions for the ReadableByteStreamController.\n    function byteStreamControllerBrandCheckException(name) {\n        return new TypeError(\"ReadableByteStreamController.prototype.\" + name + \" can only be used on a ReadableByteStreamController\");\n    }\n\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamBYOBReader(stream, forAuthorCode) {\n        if (forAuthorCode === void 0) { forAuthorCode = false; }\n        var reader = new ReadableStreamBYOBReader(stream);\n        reader._forAuthorCode = forAuthorCode;\n        return reader;\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamAddReadIntoRequest(stream) {\n        var promise = newPromise(function (resolve, reject) {\n            var readIntoRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._reader._readIntoRequests.push(readIntoRequest);\n        });\n        return promise;\n    }\n    function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n        var reader = stream._reader;\n        var readIntoRequest = reader._readIntoRequests.shift();\n        readIntoRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode));\n    }\n    function ReadableStreamGetNumReadIntoRequests(stream) {\n        return stream._reader._readIntoRequests.length;\n    }\n    function ReadableStreamHasBYOBReader(stream) {\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return false;\n        }\n        if (!IsReadableStreamBYOBReader(reader)) {\n            return false;\n        }\n        return true;\n    }\n    var ReadableStreamBYOBReader = /** @class */ (function () {\n        function ReadableStreamBYOBReader(stream) {\n            if (!IsReadableStream(stream)) {\n                throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' +\n                    'byte source');\n            }\n            if (IsReadableByteStreamController(stream._readableStreamController) === false) {\n                throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n                    'source');\n            }\n            if (IsReadableStreamLocked(stream)) {\n                throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n            }\n            ReadableStreamReaderGenericInitialize(this, stream);\n            this._readIntoRequests = new SimpleQueue();\n        }\n        Object.defineProperty(ReadableStreamBYOBReader.prototype, \"closed\", {\n            get: function () {\n                if (!IsReadableStreamBYOBReader(this)) {\n                    return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n                }\n                return this._closedPromise;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        ReadableStreamBYOBReader.prototype.cancel = function (reason) {\n            if (!IsReadableStreamBYOBReader(this)) {\n                return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('cancel'));\n            }\n            return ReadableStreamReaderGenericCancel(this, reason);\n        };\n        ReadableStreamBYOBReader.prototype.read = function (view) {\n            if (!IsReadableStreamBYOBReader(this)) {\n                return promiseRejectedWith(byobReaderBrandCheckException('read'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('read from'));\n            }\n            if (!ArrayBuffer.isView(view)) {\n                return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n            }\n            if (IsDetachedBuffer(view.buffer) === true) ;\n            if (view.byteLength === 0) {\n                return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n            }\n            return ReadableStreamBYOBReaderRead(this, view);\n        };\n        ReadableStreamBYOBReader.prototype.releaseLock = function () {\n            if (!IsReadableStreamBYOBReader(this)) {\n                throw byobReaderBrandCheckException('releaseLock');\n            }\n            if (this._ownerReadableStream === undefined) {\n                return;\n            }\n            if (this._readIntoRequests.length > 0) {\n                throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n            }\n            ReadableStreamReaderGenericRelease(this);\n        };\n        return ReadableStreamBYOBReader;\n    }());\n    // Abstract operations for the readers.\n    function IsReadableStreamBYOBReader(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n            return false;\n        }\n        return true;\n    }\n    function ReadableStreamBYOBReaderRead(reader, view) {\n        var stream = reader._ownerReadableStream;\n        stream._disturbed = true;\n        if (stream._state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        // Controllers must implement this.\n        return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n    }\n    // Helper functions for the ReadableStreamBYOBReader.\n    function byobReaderBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamBYOBReader.prototype.\" + name + \" can only be used on a ReadableStreamBYOBReader\");\n    }\n\n    var ReadableStream = /** @class */ (function () {\n        function ReadableStream(underlyingSource, strategy) {\n            if (underlyingSource === void 0) { underlyingSource = {}; }\n            if (strategy === void 0) { strategy = {}; }\n            InitializeReadableStream(this);\n            var size = strategy.size;\n            var highWaterMark = strategy.highWaterMark;\n            var type = underlyingSource.type;\n            var typeString = String(type);\n            if (typeString === 'bytes') {\n                if (size !== undefined) {\n                    throw new RangeError('The strategy for a byte stream cannot have a size function');\n                }\n                if (highWaterMark === undefined) {\n                    highWaterMark = 0;\n                }\n                highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);\n                SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n            }\n            else if (type === undefined) {\n                var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size);\n                if (highWaterMark === undefined) {\n                    highWaterMark = 1;\n                }\n                highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);\n                SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n            }\n            else {\n                throw new RangeError('Invalid type is specified');\n            }\n        }\n        Object.defineProperty(ReadableStream.prototype, \"locked\", {\n            get: function () {\n                if (IsReadableStream(this) === false) {\n                    throw streamBrandCheckException$1('locked');\n                }\n                return IsReadableStreamLocked(this);\n            },\n            enumerable: true,\n            configurable: true\n        });\n        ReadableStream.prototype.cancel = function (reason) {\n            if (IsReadableStream(this) === false) {\n                return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n            }\n            if (IsReadableStreamLocked(this) === true) {\n                return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n            }\n            return ReadableStreamCancel(this, reason);\n        };\n        ReadableStream.prototype.getReader = function (_a) {\n            var mode = (_a === void 0 ? {} : _a).mode;\n            if (IsReadableStream(this) === false) {\n                throw streamBrandCheckException$1('getReader');\n            }\n            if (mode === undefined) {\n                return AcquireReadableStreamDefaultReader(this, true);\n            }\n            mode = String(mode);\n            if (mode === 'byob') {\n                return AcquireReadableStreamBYOBReader(this, true);\n            }\n            throw new RangeError('Invalid mode is specified');\n        };\n        ReadableStream.prototype.pipeThrough = function (_a, _b) {\n            var writable = _a.writable, readable = _a.readable;\n            var _c = _b === void 0 ? {} : _b, preventClose = _c.preventClose, preventAbort = _c.preventAbort, preventCancel = _c.preventCancel, signal = _c.signal;\n            if (IsReadableStream(this) === false) {\n                throw streamBrandCheckException$1('pipeThrough');\n            }\n            if (IsWritableStream(writable) === false) {\n                throw new TypeError('writable argument to pipeThrough must be a WritableStream');\n            }\n            if (IsReadableStream(readable) === false) {\n                throw new TypeError('readable argument to pipeThrough must be a ReadableStream');\n            }\n            preventClose = Boolean(preventClose);\n            preventAbort = Boolean(preventAbort);\n            preventCancel = Boolean(preventCancel);\n            if (signal !== undefined && !isAbortSignal(signal)) {\n                throw new TypeError('ReadableStream.prototype.pipeThrough\\'s signal option must be an AbortSignal');\n            }\n            if (IsReadableStreamLocked(this) === true) {\n                throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n            }\n            if (IsWritableStreamLocked(writable) === true) {\n                throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n            }\n            var promise = ReadableStreamPipeTo(this, writable, preventClose, preventAbort, preventCancel, signal);\n            setPromiseIsHandledToTrue(promise);\n            return readable;\n        };\n        ReadableStream.prototype.pipeTo = function (dest, _a) {\n            var _b = _a === void 0 ? {} : _a, preventClose = _b.preventClose, preventAbort = _b.preventAbort, preventCancel = _b.preventCancel, signal = _b.signal;\n            if (IsReadableStream(this) === false) {\n                return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n            }\n            if (IsWritableStream(dest) === false) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\n            }\n            preventClose = Boolean(preventClose);\n            preventAbort = Boolean(preventAbort);\n            preventCancel = Boolean(preventCancel);\n            if (signal !== undefined && !isAbortSignal(signal)) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo\\'s signal option must be an AbortSignal'));\n            }\n            if (IsReadableStreamLocked(this) === true) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n            }\n            if (IsWritableStreamLocked(dest) === true) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n            }\n            return ReadableStreamPipeTo(this, dest, preventClose, preventAbort, preventCancel, signal);\n        };\n        ReadableStream.prototype.tee = function () {\n            if (IsReadableStream(this) === false) {\n                throw streamBrandCheckException$1('tee');\n            }\n            var branches = ReadableStreamTee(this);\n            return createArrayFromList(branches);\n        };\n        ReadableStream.prototype.getIterator = function (_a) {\n            var _b = (_a === void 0 ? {} : _a).preventCancel, preventCancel = _b === void 0 ? false : _b;\n            if (IsReadableStream(this) === false) {\n                throw streamBrandCheckException$1('getIterator');\n            }\n            return AcquireReadableStreamAsyncIterator(this, preventCancel);\n        };\n        return ReadableStream;\n    }());\n    if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n        Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\n            value: ReadableStream.prototype.getIterator,\n            enumerable: false,\n            writable: true,\n            configurable: true\n        });\n    }\n    // Abstract operations for the ReadableStream.\n    // Throws if and only if startAlgorithm throws.\n    function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n        if (highWaterMark === void 0) { highWaterMark = 1; }\n        if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n        var stream = Object.create(ReadableStream.prototype);\n        InitializeReadableStream(stream);\n        var controller = Object.create(ReadableStreamDefaultController.prototype);\n        SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n        return stream;\n    }\n    function InitializeReadableStream(stream) {\n        stream._state = 'readable';\n        stream._reader = undefined;\n        stream._storedError = undefined;\n        stream._disturbed = false;\n    }\n    function IsReadableStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n            return false;\n        }\n        return true;\n    }\n    function IsReadableStreamLocked(stream) {\n        if (stream._reader === undefined) {\n            return false;\n        }\n        return true;\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamCancel(stream, reason) {\n        stream._disturbed = true;\n        if (stream._state === 'closed') {\n            return promiseResolvedWith(undefined);\n        }\n        if (stream._state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        ReadableStreamClose(stream);\n        var sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n        return transformPromiseWith(sourceCancelPromise, noop);\n    }\n    function ReadableStreamClose(stream) {\n        stream._state = 'closed';\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return;\n        }\n        if (IsReadableStreamDefaultReader(reader)) {\n            reader._readRequests.forEach(function (readRequest) {\n                readRequest._resolve(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode));\n            });\n            reader._readRequests = new SimpleQueue();\n        }\n        defaultReaderClosedPromiseResolve(reader);\n    }\n    function ReadableStreamError(stream, e) {\n        stream._state = 'errored';\n        stream._storedError = e;\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return;\n        }\n        if (IsReadableStreamDefaultReader(reader)) {\n            reader._readRequests.forEach(function (readRequest) {\n                readRequest._reject(e);\n            });\n            reader._readRequests = new SimpleQueue();\n        }\n        else {\n            reader._readIntoRequests.forEach(function (readIntoRequest) {\n                readIntoRequest._reject(e);\n            });\n            reader._readIntoRequests = new SimpleQueue();\n        }\n        defaultReaderClosedPromiseReject(reader, e);\n    }\n    // Helper functions for the ReadableStream.\n    function streamBrandCheckException$1(name) {\n        return new TypeError(\"ReadableStream.prototype.\" + name + \" can only be used on a ReadableStream\");\n    }\n\n    var ByteLengthQueuingStrategy = /** @class */ (function () {\n        function ByteLengthQueuingStrategy(_a) {\n            var highWaterMark = _a.highWaterMark;\n            this.highWaterMark = highWaterMark;\n        }\n        ByteLengthQueuingStrategy.prototype.size = function (chunk) {\n            return chunk.byteLength;\n        };\n        return ByteLengthQueuingStrategy;\n    }());\n\n    var CountQueuingStrategy = /** @class */ (function () {\n        function CountQueuingStrategy(_a) {\n            var highWaterMark = _a.highWaterMark;\n            this.highWaterMark = highWaterMark;\n        }\n        CountQueuingStrategy.prototype.size = function () {\n            return 1;\n        };\n        return CountQueuingStrategy;\n    }());\n\n    // Class TransformStream\n    var TransformStream = /** @class */ (function () {\n        function TransformStream(transformer, writableStrategy, readableStrategy) {\n            if (transformer === void 0) { transformer = {}; }\n            if (writableStrategy === void 0) { writableStrategy = {}; }\n            if (readableStrategy === void 0) { readableStrategy = {}; }\n            var writableSizeFunction = writableStrategy.size;\n            var writableHighWaterMark = writableStrategy.highWaterMark;\n            var readableSizeFunction = readableStrategy.size;\n            var readableHighWaterMark = readableStrategy.highWaterMark;\n            var writableType = transformer.writableType;\n            if (writableType !== undefined) {\n                throw new RangeError('Invalid writable type specified');\n            }\n            var writableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(writableSizeFunction);\n            if (writableHighWaterMark === undefined) {\n                writableHighWaterMark = 1;\n            }\n            writableHighWaterMark = ValidateAndNormalizeHighWaterMark(writableHighWaterMark);\n            var readableType = transformer.readableType;\n            if (readableType !== undefined) {\n                throw new RangeError('Invalid readable type specified');\n            }\n            var readableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(readableSizeFunction);\n            if (readableHighWaterMark === undefined) {\n                readableHighWaterMark = 0;\n            }\n            readableHighWaterMark = ValidateAndNormalizeHighWaterMark(readableHighWaterMark);\n            var startPromise_resolve;\n            var startPromise = newPromise(function (resolve) {\n                startPromise_resolve = resolve;\n            });\n            InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n            SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n            var startResult = InvokeOrNoop(transformer, 'start', [this._transformStreamController]);\n            startPromise_resolve(startResult);\n        }\n        Object.defineProperty(TransformStream.prototype, \"readable\", {\n            get: function () {\n                if (IsTransformStream(this) === false) {\n                    throw streamBrandCheckException$2('readable');\n                }\n                return this._readable;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        Object.defineProperty(TransformStream.prototype, \"writable\", {\n            get: function () {\n                if (IsTransformStream(this) === false) {\n                    throw streamBrandCheckException$2('writable');\n                }\n                return this._writable;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        return TransformStream;\n    }());\n    function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n        function startAlgorithm() {\n            return startPromise;\n        }\n        function writeAlgorithm(chunk) {\n            return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n        }\n        function abortAlgorithm(reason) {\n            return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n        }\n        function closeAlgorithm() {\n            return TransformStreamDefaultSinkCloseAlgorithm(stream);\n        }\n        stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n        function pullAlgorithm() {\n            return TransformStreamDefaultSourcePullAlgorithm(stream);\n        }\n        function cancelAlgorithm(reason) {\n            TransformStreamErrorWritableAndUnblockWrite(stream, reason);\n            return promiseResolvedWith(undefined);\n        }\n        stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n        // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n        stream._backpressure = undefined;\n        stream._backpressureChangePromise = undefined;\n        stream._backpressureChangePromise_resolve = undefined;\n        TransformStreamSetBackpressure(stream, true);\n        // Used by IsWritableStream() which is called by SetUpTransformStreamDefaultController().\n        stream._transformStreamController = undefined;\n    }\n    function IsTransformStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n            return false;\n        }\n        return true;\n    }\n    // This is a no-op if both sides are already errored.\n    function TransformStreamError(stream, e) {\n        ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n        TransformStreamErrorWritableAndUnblockWrite(stream, e);\n    }\n    function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n        TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n        WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n        if (stream._backpressure === true) {\n            // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n            // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n            // _backpressure is set.\n            TransformStreamSetBackpressure(stream, false);\n        }\n    }\n    function TransformStreamSetBackpressure(stream, backpressure) {\n        // Passes also when called during construction.\n        if (stream._backpressureChangePromise !== undefined) {\n            stream._backpressureChangePromise_resolve();\n        }\n        stream._backpressureChangePromise = newPromise(function (resolve) {\n            stream._backpressureChangePromise_resolve = resolve;\n        });\n        stream._backpressure = backpressure;\n    }\n    var TransformStreamDefaultController = /** @class */ (function () {\n        /** @internal */\n        function TransformStreamDefaultController() {\n            throw new TypeError('TransformStreamDefaultController instances cannot be created directly');\n        }\n        Object.defineProperty(TransformStreamDefaultController.prototype, \"desiredSize\", {\n            get: function () {\n                if (IsTransformStreamDefaultController(this) === false) {\n                    throw defaultControllerBrandCheckException$1('desiredSize');\n                }\n                var readableController = this._controlledTransformStream._readable._readableStreamController;\n                return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n            },\n            enumerable: true,\n            configurable: true\n        });\n        TransformStreamDefaultController.prototype.enqueue = function (chunk) {\n            if (IsTransformStreamDefaultController(this) === false) {\n                throw defaultControllerBrandCheckException$1('enqueue');\n            }\n            TransformStreamDefaultControllerEnqueue(this, chunk);\n        };\n        TransformStreamDefaultController.prototype.error = function (reason) {\n            if (IsTransformStreamDefaultController(this) === false) {\n                throw defaultControllerBrandCheckException$1('error');\n            }\n            TransformStreamDefaultControllerError(this, reason);\n        };\n        TransformStreamDefaultController.prototype.terminate = function () {\n            if (IsTransformStreamDefaultController(this) === false) {\n                throw defaultControllerBrandCheckException$1('terminate');\n            }\n            TransformStreamDefaultControllerTerminate(this);\n        };\n        return TransformStreamDefaultController;\n    }());\n    // Transform Stream Default Controller Abstract Operations\n    function IsTransformStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n            return false;\n        }\n        return true;\n    }\n    function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\n        controller._controlledTransformStream = stream;\n        stream._transformStreamController = controller;\n        controller._transformAlgorithm = transformAlgorithm;\n        controller._flushAlgorithm = flushAlgorithm;\n    }\n    function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n        var controller = Object.create(TransformStreamDefaultController.prototype);\n        var transformAlgorithm = function (chunk) {\n            try {\n                TransformStreamDefaultControllerEnqueue(controller, chunk);\n                return promiseResolvedWith(undefined);\n            }\n            catch (transformResultE) {\n                return promiseRejectedWith(transformResultE);\n            }\n        };\n        var transformMethod = transformer.transform;\n        if (transformMethod !== undefined) {\n            if (typeof transformMethod !== 'function') {\n                throw new TypeError('transform is not a method');\n            }\n            transformAlgorithm = function (chunk) { return PromiseCall(transformMethod, transformer, [chunk, controller]); };\n        }\n        var flushAlgorithm = CreateAlgorithmFromUnderlyingMethod(transformer, 'flush', 0, [controller]);\n        SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\n    }\n    function TransformStreamDefaultControllerClearAlgorithms(controller) {\n        controller._transformAlgorithm = undefined;\n        controller._flushAlgorithm = undefined;\n    }\n    function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n        var stream = controller._controlledTransformStream;\n        var readableController = stream._readable._readableStreamController;\n        if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === false) {\n            throw new TypeError('Readable side is not in a state that permits enqueue');\n        }\n        // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n        // accept TransformStreamDefaultControllerEnqueue() calls.\n        try {\n            ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n        }\n        catch (e) {\n            // This happens when readableStrategy.size() throws.\n            TransformStreamErrorWritableAndUnblockWrite(stream, e);\n            throw stream._readable._storedError;\n        }\n        var backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n        if (backpressure !== stream._backpressure) {\n            TransformStreamSetBackpressure(stream, true);\n        }\n    }\n    function TransformStreamDefaultControllerError(controller, e) {\n        TransformStreamError(controller._controlledTransformStream, e);\n    }\n    function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n        var transformPromise = controller._transformAlgorithm(chunk);\n        return transformPromiseWith(transformPromise, undefined, function (r) {\n            TransformStreamError(controller._controlledTransformStream, r);\n            throw r;\n        });\n    }\n    function TransformStreamDefaultControllerTerminate(controller) {\n        var stream = controller._controlledTransformStream;\n        var readableController = stream._readable._readableStreamController;\n        if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) {\n            ReadableStreamDefaultControllerClose(readableController);\n        }\n        var error = new TypeError('TransformStream terminated');\n        TransformStreamErrorWritableAndUnblockWrite(stream, error);\n    }\n    // TransformStreamDefaultSink Algorithms\n    function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n        var controller = stream._transformStreamController;\n        if (stream._backpressure === true) {\n            var backpressureChangePromise = stream._backpressureChangePromise;\n            return transformPromiseWith(backpressureChangePromise, function () {\n                var writable = stream._writable;\n                var state = writable._state;\n                if (state === 'erroring') {\n                    throw writable._storedError;\n                }\n                return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n            });\n        }\n        return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n    }\n    function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n        // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\n        // errored.\n        TransformStreamError(stream, reason);\n        return promiseResolvedWith(undefined);\n    }\n    function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n        // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n        var readable = stream._readable;\n        var controller = stream._transformStreamController;\n        var flushPromise = controller._flushAlgorithm();\n        TransformStreamDefaultControllerClearAlgorithms(controller);\n        // Return a promise that is fulfilled with undefined on success.\n        return transformPromiseWith(flushPromise, function () {\n            if (readable._state === 'errored') {\n                throw readable._storedError;\n            }\n            var readableController = readable._readableStreamController;\n            if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) {\n                ReadableStreamDefaultControllerClose(readableController);\n            }\n        }, function (r) {\n            TransformStreamError(stream, r);\n            throw readable._storedError;\n        });\n    }\n    // TransformStreamDefaultSource Algorithms\n    function TransformStreamDefaultSourcePullAlgorithm(stream) {\n        // Invariant. Enforced by the promises returned by start() and pull().\n        TransformStreamSetBackpressure(stream, false);\n        // Prevent the next pull() call until there is backpressure.\n        return stream._backpressureChangePromise;\n    }\n    // Helper functions for the TransformStreamDefaultController.\n    function defaultControllerBrandCheckException$1(name) {\n        return new TypeError(\"TransformStreamDefaultController.prototype.\" + name + \" can only be used on a TransformStreamDefaultController\");\n    }\n    // Helper functions for the TransformStream.\n    function streamBrandCheckException$2(name) {\n        return new TypeError(\"TransformStream.prototype.\" + name + \" can only be used on a TransformStream\");\n    }\n\n    exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n    exports.CountQueuingStrategy = CountQueuingStrategy;\n    exports.ReadableStream = ReadableStream;\n    exports.TransformStream = TransformStream;\n    exports.WritableStream = WritableStream;\n\n    Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=ponyfill.js.map\n","require('../../modules/es.map');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.github.io/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n  return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n  var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n  var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var NativeConstructor = global[CONSTRUCTOR_NAME];\n  var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n  var Constructor = NativeConstructor;\n  var exported = {};\n\n  var fixMethod = function (KEY) {\n    var nativeMethod = NativePrototype[KEY];\n    redefine(NativePrototype, KEY,\n      KEY == 'add' ? function add(value) {\n        nativeMethod.call(this, value === 0 ? 0 : value);\n        return this;\n      } : KEY == 'delete' ? function (key) {\n        return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n      } : KEY == 'get' ? function get(key) {\n        return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n      } : KEY == 'has' ? function has(key) {\n        return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n      } : function set(key, value) {\n        nativeMethod.call(this, key === 0 ? 0 : key, value);\n        return this;\n      }\n    );\n  };\n\n  // eslint-disable-next-line max-len\n  if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n    new NativeConstructor().entries().next();\n  })))) {\n    // create collection constructor\n    Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n    InternalMetadataModule.REQUIRED = true;\n  } else if (isForced(CONSTRUCTOR_NAME, true)) {\n    var instance = new Constructor();\n    // early implementations not supports chaining\n    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n    // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n    // most early implementations doesn't supports iterables, most modern - not close it correctly\n    // eslint-disable-next-line no-new\n    var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n    // for early implementations -0 and +0 not the same\n    var BUGGY_ZERO = !IS_WEAK && fails(function () {\n      // V8 ~ Chromium 42- fails only with 5+ elements\n      var $instance = new NativeConstructor();\n      var index = 5;\n      while (index--) $instance[ADDER](index, index);\n      return !$instance.has(-0);\n    });\n\n    if (!ACCEPT_ITERABLES) {\n      Constructor = wrapper(function (dummy, iterable) {\n        anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n        var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n        if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n        return that;\n      });\n      Constructor.prototype = NativePrototype;\n      NativePrototype.constructor = Constructor;\n    }\n\n    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n      fixMethod('delete');\n      fixMethod('has');\n      IS_MAP && fixMethod('get');\n    }\n\n    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n    // weak collections should not contains .clear method\n    if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n  }\n\n  exported[CONSTRUCTOR_NAME] = Constructor;\n  $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n  setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n  if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n  return Constructor;\n};\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\n\nvar setMetadata = function (it) {\n  defineProperty(it, METADATA, { value: {\n    objectID: 'O' + ++id, // object ID\n    weakData: {}          // weak collections IDs\n  } });\n};\n\nvar fastKey = function (it, create) {\n  // return a primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!has(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMetadata(it);\n  // return object ID\n  } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n  if (!has(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMetadata(it);\n  // return the store of weak collections IDs\n  } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n  return it;\n};\n\nvar meta = module.exports = {\n  REQUIRED: false,\n  fastKey: fastKey,\n  getWeakData: getWeakData,\n  onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  return Object.isExtensible(Object.preventExtensions({}));\n});\n","var 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    typeof (NewTarget = dummy.constructor) == 'function' &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, CONSTRUCTOR_NAME);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        index: create(null),\n        first: undefined,\n        last: undefined,\n        size: 0\n      });\n      if (!DESCRIPTORS) that.size = 0;\n      if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n    });\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var entry = getEntry(that, key);\n      var previous, index;\n      // change existing entry\n      if (entry) {\n        entry.value = value;\n      // create new entry\n      } else {\n        state.last = entry = {\n          index: index = fastKey(key, true),\n          key: key,\n          value: value,\n          previous: previous = state.last,\n          next: undefined,\n          removed: false\n        };\n        if (!state.first) state.first = entry;\n        if (previous) previous.next = entry;\n        if (DESCRIPTORS) state.size++;\n        else that.size++;\n        // add to index\n        if (index !== 'F') state.index[index] = entry;\n      } return that;\n    };\n\n    var getEntry = function (that, key) {\n      var state = getInternalState(that);\n      // fast case\n      var index = fastKey(key);\n      var entry;\n      if (index !== 'F') return state.index[index];\n      // frozen object case\n      for (entry = state.first; entry; entry = entry.next) {\n        if (entry.key == key) return entry;\n      }\n    };\n\n    redefineAll(C.prototype, {\n      // 23.1.3.1 Map.prototype.clear()\n      // 23.2.3.2 Set.prototype.clear()\n      clear: function clear() {\n        var that = this;\n        var state = getInternalState(that);\n        var data = state.index;\n        var entry = state.first;\n        while (entry) {\n          entry.removed = true;\n          if (entry.previous) entry.previous = entry.previous.next = undefined;\n          delete data[entry.index];\n          entry = entry.next;\n        }\n        state.first = state.last = undefined;\n        if (DESCRIPTORS) state.size = 0;\n        else that.size = 0;\n      },\n      // 23.1.3.3 Map.prototype.delete(key)\n      // 23.2.3.4 Set.prototype.delete(value)\n      'delete': function (key) {\n        var that = this;\n        var state = getInternalState(that);\n        var entry = getEntry(that, key);\n        if (entry) {\n          var next = entry.next;\n          var prev = entry.previous;\n          delete state.index[entry.index];\n          entry.removed = true;\n          if (prev) prev.next = next;\n          if (next) next.previous = prev;\n          if (state.first == entry) state.first = next;\n          if (state.last == entry) state.last = prev;\n          if (DESCRIPTORS) state.size--;\n          else that.size--;\n        } return !!entry;\n      },\n      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n      forEach: function forEach(callbackfn /* , that = undefined */) {\n        var state = getInternalState(this);\n        var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n        var entry;\n        while (entry = entry ? entry.next : state.first) {\n          boundFunction(entry.value, entry.key, this);\n          // revert to the last existing entry\n          while (entry && entry.removed) entry = entry.previous;\n        }\n      },\n      // 23.1.3.7 Map.prototype.has(key)\n      // 23.2.3.7 Set.prototype.has(value)\n      has: function has(key) {\n        return !!getEntry(this, key);\n      }\n    });\n\n    redefineAll(C.prototype, IS_MAP ? {\n      // 23.1.3.6 Map.prototype.get(key)\n      get: function get(key) {\n        var entry = getEntry(this, key);\n        return entry && entry.value;\n      },\n      // 23.1.3.9 Map.prototype.set(key, value)\n      set: function set(key, value) {\n        return define(this, key === 0 ? 0 : key, value);\n      }\n    } : {\n      // 23.2.3.1 Set.prototype.add(value)\n      add: function add(value) {\n        return define(this, value = value === 0 ? 0 : value, value);\n      }\n    });\n    if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n      get: function () {\n        return getInternalState(this).size;\n      }\n    });\n    return C;\n  },\n  setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n    var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n    var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n    var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n    // add .keys, .values, .entries, [@@iterator]\n    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n    defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n      setInternalState(this, {\n        type: ITERATOR_NAME,\n        target: iterated,\n        state: getInternalCollectionState(iterated),\n        kind: kind,\n        last: undefined\n      });\n    }, function () {\n      var state = getInternalIteratorState(this);\n      var kind = state.kind;\n      var entry = state.last;\n      // revert to the last existing entry\n      while (entry && entry.removed) entry = entry.previous;\n      // get next entry\n      if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n        // or finish the iteration\n        state.target = undefined;\n        return { value: undefined, done: true };\n      }\n      // return step by kind\n      if (kind == 'keys') return { value: entry.key, done: false };\n      if (kind == 'values') return { value: entry.value, done: false };\n      return { value: [entry.key, entry.value], done: false };\n    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n    // add [@@species], 23.1.2.2, 23.2.2.2\n    setSpecies(CONSTRUCTOR_NAME);\n  }\n};\n","require('../../modules/es.set');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Set;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.github.io/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n  return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.weak-map');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakMap;\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n  return function WeakMap() {\n    return init(this, arguments.length ? arguments[0] : undefined);\n  };\n};\n\n// `WeakMap` constructor\n// https://tc39.github.io/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n  InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n  InternalMetadataModule.REQUIRED = true;\n  var WeakMapPrototype = $WeakMap.prototype;\n  var nativeDelete = WeakMapPrototype['delete'];\n  var nativeHas = WeakMapPrototype.has;\n  var nativeGet = WeakMapPrototype.get;\n  var nativeSet = WeakMapPrototype.set;\n  redefineAll(WeakMapPrototype, {\n    'delete': function (key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceIternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeDelete.call(this, key) || state.frozen['delete'](key);\n      } return nativeDelete.call(this, key);\n    },\n    has: function has(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceIternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas.call(this, key) || state.frozen.has(key);\n      } return nativeHas.call(this, key);\n    },\n    get: function get(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceIternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n      } return nativeGet.call(this, key);\n    },\n    set: function set(key, value) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceIternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n      } else nativeSet.call(this, key, value);\n      return this;\n    }\n  });\n}\n","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n  return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n  this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n  return find(store.entries, function (it) {\n    return it[0] === key;\n  });\n};\n\nUncaughtFrozenStore.prototype = {\n  get: function (key) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) return entry[1];\n  },\n  has: function (key) {\n    return !!findUncaughtFrozen(this, key);\n  },\n  set: function (key, value) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) entry[1] = value;\n    else this.entries.push([key, value]);\n  },\n  'delete': function (key) {\n    var index = findIndex(this.entries, function (it) {\n      return it[0] === key;\n    });\n    if (~index) this.entries.splice(index, 1);\n    return !!~index;\n  }\n};\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, CONSTRUCTOR_NAME);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        id: id++,\n        frozen: undefined\n      });\n      if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n    });\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var data = getWeakData(anObject(key), true);\n      if (data === true) uncaughtFrozenStore(state).set(key, value);\n      else data[state.id] = value;\n      return that;\n    };\n\n    redefineAll(C.prototype, {\n      // 23.3.3.2 WeakMap.prototype.delete(key)\n      // 23.4.3.3 WeakSet.prototype.delete(value)\n      'delete': function (key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n        return data && $has(data, state.id) && delete data[state.id];\n      },\n      // 23.3.3.4 WeakMap.prototype.has(key)\n      // 23.4.3.4 WeakSet.prototype.has(value)\n      has: function has(key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state).has(key);\n        return data && $has(data, state.id);\n      }\n    });\n\n    redefineAll(C.prototype, IS_MAP ? {\n      // 23.3.3.3 WeakMap.prototype.get(key)\n      get: function get(key) {\n        var state = getInternalState(this);\n        if (isObject(key)) {\n          var data = getWeakData(key);\n          if (data === true) return uncaughtFrozenStore(state).get(key);\n          return data ? data[state.id] : undefined;\n        }\n      },\n      // 23.3.3.5 WeakMap.prototype.set(key, value)\n      set: function set(key, value) {\n        return define(this, key, value);\n      }\n    } : {\n      // 23.4.3.1 WeakSet.prototype.add(value)\n      add: function add(value) {\n        return define(this, value, true);\n      }\n    });\n\n    return C;\n  }\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that, specificCreate) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var boundFunction = bind(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var create = specificCreate || arraySpeciesCreate;\n    var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) target[index] = result; // map\n        else if (result) switch (TYPE) {\n          case 3: return true;              // some\n          case 5: return value;             // find\n          case 6: return index;             // findIndex\n          case 2: push.call(target, value); // filter\n        } else if (IS_EVERY) return false;  // every\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n  return classof(arg) == 'Array';\n};\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.weak-set');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakSet;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.github.io/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n  return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","require('../../modules/es.string.code-point-at');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'codePointAt');\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n  codePointAt: function codePointAt(pos) {\n    return codeAt(this, pos);\n  }\n});\n","require('../../modules/es.string.from-code-point');\nvar path = require('../../internals/path');\n\nmodule.exports = path.String.fromCodePoint;\n","var $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar fromCharCode = String.fromCharCode;\nvar nativeFromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.github.io/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n    var elements = [];\n    var length = arguments.length;\n    var i = 0;\n    var code;\n    while (length > i) {\n      code = +arguments[i++];\n      if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n      elements.push(code < 0x10000\n        ? fromCharCode(code)\n        : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)\n      );\n    } return elements.join('');\n  }\n});\n","require('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.json.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n  var array = [];\n  array[IS_CONCAT_SPREADABLE] = false;\n  return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n  if (!isObject(O)) return false;\n  var spreadable = O[IS_CONCAT_SPREADABLE];\n  return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  concat: function concat(arg) { // eslint-disable-line no-unused-vars\n    var O = toObject(this);\n    var A = arraySpeciesCreate(O, 0);\n    var n = 0;\n    var i, k, length, len, E;\n    for (i = -1, length = arguments.length; i < length; i++) {\n      E = i === -1 ? O : arguments[i];\n      if (isConcatSpreadable(E)) {\n        len = toLength(E.length);\n        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n      } else {\n        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        createProperty(A, n++, E);\n      }\n    }\n    A.length = n;\n    return A;\n  }\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n  // We can't use this feature detection in V8 since it causes\n  // deoptimization and serious performance degradation\n  // https://github.com/zloirock/core-js/issues/677\n  return V8_VERSION >= 51 || !fails(function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[SPECIES] = function () {\n      return { foo: 1 };\n    };\n    return array[METHOD_NAME](Boolean).foo !== 1;\n  });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n  return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (O, P, Attributes) {\n  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n  nativeDefineProperty(O, P, Attributes);\n  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n  }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n  var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n  setInternalState(symbol, {\n    type: SYMBOL,\n    tag: tag,\n    description: description\n  });\n  if (!DESCRIPTORS) symbol.description = description;\n  return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n  anObject(O);\n  var key = toPrimitive(P, true);\n  anObject(Attributes);\n  if (has(AllSymbols, key)) {\n    if (!Attributes.enumerable) {\n      if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n      O[HIDDEN][key] = true;\n    } else {\n      if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n    } return setSymbolDescriptor(O, key, Attributes);\n  } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n  anObject(O);\n  var properties = toIndexedObject(Properties);\n  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n  $forEach(keys, function (key) {\n    if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n  });\n  return O;\n};\n\nvar $create = function create(O, Properties) {\n  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n  var P = toPrimitive(V, true);\n  var enumerable = nativePropertyIsEnumerable.call(this, P);\n  if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n  return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n  var it = toIndexedObject(O);\n  var key = toPrimitive(P, true);\n  if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n  var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n  if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n    descriptor.enumerable = true;\n  }\n  return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n  var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n  });\n  return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n      result.push(AllSymbols[key]);\n    }\n  });\n  return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n    var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n    var tag = uid(description);\n    var setter = function (value) {\n      if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n    };\n    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n    return wrap(tag, description);\n  };\n\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return getInternalState(this).tag;\n  });\n\n  redefine($Symbol, 'withoutSetter', function (description) {\n    return wrap(uid(description), description);\n  });\n\n  propertyIsEnumerableModule.f = $propertyIsEnumerable;\n  definePropertyModule.f = $defineProperty;\n  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n  wrappedWellKnownSymbolModule.f = function (name) {\n    return wrap(wellKnownSymbol(name), name);\n  };\n\n  if (DESCRIPTORS) {\n    // https://github.com/tc39/proposal-Symbol-description\n    nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n      configurable: true,\n      get: function description() {\n        return getInternalState(this).description;\n      }\n    });\n    if (!IS_PURE) {\n      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n    }\n  }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n  Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n  defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Symbol.for` method\n  // https://tc39.github.io/ecma262/#sec-symbol.for\n  'for': function (key) {\n    var string = String(key);\n    if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n    var symbol = $Symbol(string);\n    StringToSymbolRegistry[string] = symbol;\n    SymbolToStringRegistry[symbol] = string;\n    return symbol;\n  },\n  // `Symbol.keyFor` method\n  // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n    if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n  },\n  useSetter: function () { USE_SETTER = true; },\n  useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n  // `Object.create` method\n  // https://tc39.github.io/ecma262/#sec-object.create\n  create: $create,\n  // `Object.defineProperty` method\n  // https://tc39.github.io/ecma262/#sec-object.defineproperty\n  defineProperty: $defineProperty,\n  // `Object.defineProperties` method\n  // https://tc39.github.io/ecma262/#sec-object.defineproperties\n  defineProperties: $defineProperties,\n  // `Object.getOwnPropertyDescriptor` method\n  // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Object.getOwnPropertyNames` method\n  // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // `Object.getOwnPropertySymbols` method\n  // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n    return getOwnPropertySymbolsModule.f(toObject(it));\n  }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n  var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n    var symbol = $Symbol();\n    // MS Edge converts symbol values to JSON as {}\n    return $stringify([symbol]) != '[null]'\n      // WebKit converts symbol values to JSON as null\n      || $stringify({ a: symbol }) != '{}'\n      // V8 throws on boxed symbols\n      || $stringify(Object(symbol)) != '{}';\n  });\n\n  $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n    // eslint-disable-next-line no-unused-vars\n    stringify: function stringify(it, replacer, space) {\n      var args = [it];\n      var index = 1;\n      var $replacer;\n      while (arguments.length > index) args.push(arguments[index++]);\n      $replacer = replacer;\n      if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n      if (!isArray(replacer)) replacer = function (key, value) {\n        if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n        if (!isSymbol(value)) return value;\n      };\n      args[1] = replacer;\n      return $stringify.apply(null, args);\n    }\n  });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n  createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return nativeGetOwnPropertyNames(it);\n  } catch (error) {\n    return windowNames.slice();\n  }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]'\n    ? getWindowNames(it)\n    : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n  var Symbol = path.Symbol || (path.Symbol = {});\n  if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n    value: wrappedWellKnownSymbolModule.f(NAME)\n  });\n};\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n  // Safari 12 bug\n  NativeSymbol().description !== undefined\n)) {\n  var EmptyStringDescriptionStore = {};\n  // wrap Symbol constructor for correct work with undefined description\n  var SymbolWrapper = function Symbol() {\n    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n    var result = this instanceof SymbolWrapper\n      ? new NativeSymbol(description)\n      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n      : description === undefined ? NativeSymbol() : NativeSymbol(description);\n    if (description === '') EmptyStringDescriptionStore[result] = true;\n    return result;\n  };\n  copyConstructorProperties(SymbolWrapper, NativeSymbol);\n  var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n  symbolPrototype.constructor = SymbolWrapper;\n\n  var symbolToString = symbolPrototype.toString;\n  var native = String(NativeSymbol('test')) == 'Symbol(test)';\n  var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n  defineProperty(symbolPrototype, 'description', {\n    configurable: true,\n    get: function description() {\n      var symbol = isObject(this) ? this.valueOf() : this;\n      var string = symbolToString.call(symbol);\n      if (has(EmptyStringDescriptionStore, symbol)) return '';\n      var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n      return desc === '' ? undefined : desc;\n    }\n  });\n\n  $({ global: true, forced: true }, {\n    Symbol: SymbolWrapper\n  });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","require('../../modules/es.string.pad-start');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'padStart');\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n  padStart: function padStart(maxLength /* , fillString = ' ' */) {\n    return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n  return function ($this, maxLength, fillString) {\n    var S = String(requireObjectCoercible($this));\n    var stringLength = S.length;\n    var fillStr = fillString === undefined ? ' ' : String(fillString);\n    var intMaxLength = toLength(maxLength);\n    var fillLen, stringFiller;\n    if (intMaxLength <= stringLength || fillStr == '') return S;\n    fillLen = intMaxLength - stringLength;\n    stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n    if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n    return IS_END ? S + stringFiller : stringFiller + S;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.padStart` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n  start: createMethod(false),\n  // `String.prototype.padEnd` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.padend\n  end: createMethod(true)\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n  var str = String(requireObjectCoercible(this));\n  var result = '';\n  var n = toInteger(count);\n  if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n  return result;\n};\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line unicorn/no-unsafe-regex\nmodule.exports = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","require('../../modules/es.string.pad-end');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'padEnd');\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n    return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","require('../../modules/es.object.values');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.values;\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n  values: function values(O) {\n    return $values(O);\n  }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n  return function (it) {\n    var O = toIndexedObject(it);\n    var keys = objectKeys(O);\n    var length = keys.length;\n    var i = 0;\n    var result = [];\n    var key;\n    while (length > i) {\n      key = keys[i++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n        result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n      }\n    }\n    return result;\n  };\n};\n\nmodule.exports = {\n  // `Object.entries` method\n  // https://tc39.github.io/ecma262/#sec-object.entries\n  entries: createMethod(true),\n  // `Object.values` method\n  // https://tc39.github.io/ecma262/#sec-object.values\n  values: createMethod(false)\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/* uses XRef */\n\nimport { assert, unreachable } from \"../shared/util.js\";\n\nvar EOF = {};\n\nvar Name = (function NameClosure() {\n  let nameCache = Object.create(null);\n\n  // eslint-disable-next-line no-shadow\n  function Name(name) {\n    this.name = name;\n  }\n\n  Name.prototype = {};\n\n  Name.get = function Name_get(name) {\n    var nameValue = nameCache[name];\n    // eslint-disable-next-line no-restricted-syntax\n    return nameValue ? nameValue : (nameCache[name] = new Name(name));\n  };\n\n  Name._clearCache = function () {\n    nameCache = Object.create(null);\n  };\n\n  return Name;\n})();\n\nvar Cmd = (function CmdClosure() {\n  let cmdCache = Object.create(null);\n\n  // eslint-disable-next-line no-shadow\n  function Cmd(cmd) {\n    this.cmd = cmd;\n  }\n\n  Cmd.prototype = {};\n\n  Cmd.get = function Cmd_get(cmd) {\n    var cmdValue = cmdCache[cmd];\n    // eslint-disable-next-line no-restricted-syntax\n    return cmdValue ? cmdValue : (cmdCache[cmd] = new Cmd(cmd));\n  };\n\n  Cmd._clearCache = function () {\n    cmdCache = Object.create(null);\n  };\n\n  return Cmd;\n})();\n\nvar Dict = (function DictClosure() {\n  var nonSerializable = function nonSerializableClosure() {\n    return nonSerializable; // creating closure on some variable\n  };\n\n  // xref is optional\n  // eslint-disable-next-line no-shadow\n  function Dict(xref) {\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  Dict.prototype = {\n    assignXref: function Dict_assignXref(newXref) {\n      this.xref = newXref;\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        value = this._map[key2];\n        if (value === undefined && key3 !== undefined) {\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        value = this._map[key2];\n        if (value === undefined && key3 !== undefined) {\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.get(key1, key2, key3);\n      if (!Array.isArray(value) || !this.xref) {\n        return value;\n      }\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)) {\n          continue;\n        }\n        value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n      }\n      return value;\n    },\n\n    // no dereferencing\n    getRaw: function Dict_getRaw(key) {\n      return this._map[key];\n    },\n\n    getKeys: function Dict_getKeys() {\n      return Object.keys(this._map);\n    },\n\n    set: function Dict_set(key, value) {\n      if (\n        (typeof PDFJSDev === \"undefined\" ||\n          PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n        value === undefined\n      ) {\n        unreachable('Dict.set: The \"value\" cannot be undefined.');\n      }\n      this._map[key] = value;\n    },\n\n    has: function Dict_has(key) {\n      return this._map[key] !== undefined;\n    },\n\n    forEach: function Dict_forEach(callback) {\n      for (var key in this._map) {\n        callback(key, this.get(key));\n      }\n    },\n  };\n\n  Dict.empty = new Dict(null);\n\n  Dict.merge = function (xref, dictArray) {\n    const mergedDict = new Dict(xref);\n\n    for (let i = 0, ii = dictArray.length; i < ii; i++) {\n      const dict = dictArray[i];\n      if (!isDict(dict)) {\n        continue;\n      }\n      for (const keyName in dict._map) {\n        if (mergedDict._map[keyName] !== undefined) {\n          continue;\n        }\n        mergedDict._map[keyName] = dict._map[keyName];\n      }\n    }\n    return mergedDict;\n  };\n\n  return Dict;\n})();\n\nvar Ref = (function RefClosure() {\n  let refCache = Object.create(null);\n\n  // eslint-disable-next-line no-shadow\n  function Ref(num, gen) {\n    this.num = num;\n    this.gen = gen;\n  }\n\n  Ref.prototype = {\n    toString: function Ref_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\n  Ref.get = function (num, gen) {\n    const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n    const refValue = refCache[key];\n    // eslint-disable-next-line no-restricted-syntax\n    return refValue ? refValue : (refCache[key] = new Ref(num, gen));\n  };\n\n  Ref._clearCache = function () {\n    refCache = Object.create(null);\n  };\n\n  return Ref;\n})();\n\n// The reference is identified by number and generation.\n// This structure stores only one instance of the reference.\nvar RefSet = (function RefSetClosure() {\n  // eslint-disable-next-line no-shadow\n  function RefSet() {\n    this.dict = Object.create(null);\n  }\n\n  RefSet.prototype = {\n    has: function RefSet_has(ref) {\n      return ref.toString() in this.dict;\n    },\n\n    put: function RefSet_put(ref) {\n      this.dict[ref.toString()] = true;\n    },\n\n    remove: function RefSet_remove(ref) {\n      delete this.dict[ref.toString()];\n    },\n  };\n\n  return RefSet;\n})();\n\nvar RefSetCache = (function RefSetCacheClosure() {\n  // eslint-disable-next-line no-shadow\n  function RefSetCache() {\n    this.dict = Object.create(null);\n  }\n\n  RefSetCache.prototype = {\n    get size() {\n      return Object.keys(this.dict).length;\n    },\n\n    get: function RefSetCache_get(ref) {\n      return this.dict[ref.toString()];\n    },\n\n    has: function RefSetCache_has(ref) {\n      return ref.toString() in this.dict;\n    },\n\n    put: function RefSetCache_put(ref, obj) {\n      this.dict[ref.toString()] = obj;\n    },\n\n    putAlias: function RefSetCache_putAlias(ref, aliasRef) {\n      this.dict[ref.toString()] = this.get(aliasRef);\n    },\n\n    forEach: function RefSetCache_forEach(callback) {\n      for (const i in this.dict) {\n        callback(this.dict[i]);\n      }\n    },\n\n    clear: function RefSetCache_clear() {\n      this.dict = Object.create(null);\n    },\n  };\n\n  return RefSetCache;\n})();\n\nfunction isEOF(v) {\n  return v === EOF;\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 isRef(v) {\n  return v instanceof Ref;\n}\n\nfunction isRefsEqual(v1, v2) {\n  if (\n    typeof PDFJSDev === \"undefined\" ||\n    PDFJSDev.test(\"!PRODUCTION || TESTING\")\n  ) {\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\nfunction isStream(v) {\n  return typeof v === \"object\" && v !== null && v.getBytes !== undefined;\n}\n\nfunction clearPrimitiveCaches() {\n  Cmd._clearCache();\n  Name._clearCache();\n  Ref._clearCache();\n}\n\nexport {\n  EOF,\n  clearPrimitiveCaches,\n  Cmd,\n  Dict,\n  Name,\n  Ref,\n  RefSet,\n  RefSetCache,\n  isEOF,\n  isCmd,\n  isDict,\n  isName,\n  isRef,\n  isRefsEqual,\n  isStream,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  createValidAbsoluteUrl,\n  shadow,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport { ChunkedStreamManager } from \"./chunked_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { PDFDocument } from \"./document.js\";\nimport { Stream } from \"./stream.js\";\n\nclass BasePdfManager {\n  constructor() {\n    if (this.constructor === BasePdfManager) {\n      unreachable(\"Cannot initialize BasePdfManager.\");\n    }\n  }\n\n  get docId() {\n    return this._docId;\n  }\n\n  get password() {\n    return this._password;\n  }\n\n  get docBaseUrl() {\n    let docBaseUrl = null;\n    if (this._docBaseUrl) {\n      const absoluteUrl = createValidAbsoluteUrl(this._docBaseUrl);\n      if (absoluteUrl) {\n        docBaseUrl = absoluteUrl.href;\n      } else {\n        warn(`Invalid absolute docBaseUrl: \"${this._docBaseUrl}\".`);\n      }\n    }\n    return shadow(this, \"docBaseUrl\", docBaseUrl);\n  }\n\n  onLoadedStream() {\n    unreachable(\"Abstract method `onLoadedStream` called\");\n  }\n\n  ensureDoc(prop, args) {\n    return this.ensure(this.pdfDocument, prop, args);\n  }\n\n  ensureXRef(prop, args) {\n    return this.ensure(this.pdfDocument.xref, prop, args);\n  }\n\n  ensureCatalog(prop, args) {\n    return this.ensure(this.pdfDocument.catalog, prop, args);\n  }\n\n  getPage(pageIndex) {\n    return this.pdfDocument.getPage(pageIndex);\n  }\n\n  fontFallback(id, handler) {\n    return this.pdfDocument.fontFallback(id, handler);\n  }\n\n  cleanup(manuallyTriggered = false) {\n    return this.pdfDocument.cleanup(manuallyTriggered);\n  }\n\n  async ensure(obj, prop, args) {\n    unreachable(\"Abstract method `ensure` called\");\n  }\n\n  requestRange(begin, end) {\n    unreachable(\"Abstract method `requestRange` called\");\n  }\n\n  requestLoadedStream() {\n    unreachable(\"Abstract method `requestLoadedStream` called\");\n  }\n\n  sendProgressiveData(chunk) {\n    unreachable(\"Abstract method `sendProgressiveData` called\");\n  }\n\n  updatePassword(password) {\n    this._password = password;\n  }\n\n  terminate(reason) {\n    unreachable(\"Abstract method `terminate` called\");\n  }\n}\n\nclass LocalPdfManager extends BasePdfManager {\n  constructor(docId, data, password, evaluatorOptions, docBaseUrl) {\n    super();\n\n    this._docId = docId;\n    this._password = password;\n    this._docBaseUrl = docBaseUrl;\n    this.evaluatorOptions = evaluatorOptions;\n\n    const stream = new Stream(data);\n    this.pdfDocument = new PDFDocument(this, stream);\n    this._loadedStreamPromise = Promise.resolve(stream);\n  }\n\n  async ensure(obj, prop, args) {\n    const value = obj[prop];\n    if (typeof value === \"function\") {\n      return value.apply(obj, args);\n    }\n    return value;\n  }\n\n  requestRange(begin, end) {\n    return Promise.resolve();\n  }\n\n  requestLoadedStream() {}\n\n  onLoadedStream() {\n    return this._loadedStreamPromise;\n  }\n\n  terminate(reason) {}\n}\n\nclass NetworkPdfManager extends BasePdfManager {\n  constructor(docId, pdfNetworkStream, args, evaluatorOptions, docBaseUrl) {\n    super();\n\n    this._docId = docId;\n    this._password = args.password;\n    this._docBaseUrl = docBaseUrl;\n    this.msgHandler = args.msgHandler;\n    this.evaluatorOptions = evaluatorOptions;\n\n    this.streamManager = new ChunkedStreamManager(pdfNetworkStream, {\n      msgHandler: args.msgHandler,\n      length: args.length,\n      disableAutoFetch: args.disableAutoFetch,\n      rangeChunkSize: args.rangeChunkSize,\n    });\n    this.pdfDocument = new PDFDocument(this, this.streamManager.getStream());\n  }\n\n  async ensure(obj, prop, args) {\n    try {\n      const value = obj[prop];\n      if (typeof value === \"function\") {\n        return value.apply(obj, args);\n      }\n      return value;\n    } catch (ex) {\n      if (!(ex instanceof MissingDataException)) {\n        throw ex;\n      }\n      await this.requestRange(ex.begin, ex.end);\n      return this.ensure(obj, prop, args);\n    }\n  }\n\n  requestRange(begin, end) {\n    return this.streamManager.requestRange(begin, end);\n  }\n\n  requestLoadedStream() {\n    this.streamManager.requestAllChunks();\n  }\n\n  sendProgressiveData(chunk) {\n    this.streamManager.onReceiveData({ chunk });\n  }\n\n  onLoadedStream() {\n    return this.streamManager.onLoadedStream();\n  }\n\n  terminate(reason) {\n    this.streamManager.abort(reason);\n  }\n}\n\nexport { LocalPdfManager, NetworkPdfManager };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint no-var: error */\n\nimport {\n  arrayByteLength,\n  arraysToBytes,\n  createPromiseCapability,\n  isEmptyObj,\n} from \"../shared/util.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\nclass ChunkedStream {\n  constructor(length, chunkSize, manager) {\n    this.bytes = new Uint8Array(length);\n    this.start = 0;\n    this.pos = 0;\n    this.end = length;\n    this.chunkSize = chunkSize;\n    this.loadedChunks = [];\n    this.numChunksLoaded = 0;\n    this.numChunks = Math.ceil(length / chunkSize);\n    this.manager = manager;\n    this.progressiveDataLength = 0;\n    this.lastSuccessfulEnsureByteChunk = -1; // Single-entry cache\n  }\n\n  // If a particular stream does not implement one or more of these methods,\n  // an error should be thrown.\n  getMissingChunks() {\n    const chunks = [];\n    for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n      if (!this.loadedChunks[chunk]) {\n        chunks.push(chunk);\n      }\n    }\n    return chunks;\n  }\n\n  getBaseStreams() {\n    return [this];\n  }\n\n  allChunksLoaded() {\n    return this.numChunksLoaded === this.numChunks;\n  }\n\n  onReceiveData(begin, chunk) {\n    const chunkSize = this.chunkSize;\n    if (begin % chunkSize !== 0) {\n      throw new Error(`Bad begin offset: ${begin}`);\n    }\n\n    // Using `this.length` is inaccurate here since `this.start` can be moved\n    // (see the `moveStart` method).\n    const end = begin + chunk.byteLength;\n    if (end % chunkSize !== 0 && end !== this.bytes.length) {\n      throw new Error(`Bad end offset: ${end}`);\n    }\n\n    this.bytes.set(new Uint8Array(chunk), begin);\n    const beginChunk = Math.floor(begin / chunkSize);\n    const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      if (!this.loadedChunks[curChunk]) {\n        this.loadedChunks[curChunk] = true;\n        ++this.numChunksLoaded;\n      }\n    }\n  }\n\n  onReceiveProgressiveData(data) {\n    let position = this.progressiveDataLength;\n    const beginChunk = Math.floor(position / this.chunkSize);\n\n    this.bytes.set(new Uint8Array(data), position);\n    position += data.byteLength;\n    this.progressiveDataLength = position;\n    const endChunk =\n      position >= this.end\n        ? this.numChunks\n        : Math.floor(position / this.chunkSize);\n\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      if (!this.loadedChunks[curChunk]) {\n        this.loadedChunks[curChunk] = true;\n        ++this.numChunksLoaded;\n      }\n    }\n  }\n\n  ensureByte(pos) {\n    if (pos < this.progressiveDataLength) {\n      return;\n    }\n\n    const chunk = Math.floor(pos / this.chunkSize);\n    if (chunk === this.lastSuccessfulEnsureByteChunk) {\n      return;\n    }\n\n    if (!this.loadedChunks[chunk]) {\n      throw new MissingDataException(pos, pos + 1);\n    }\n    this.lastSuccessfulEnsureByteChunk = chunk;\n  }\n\n  ensureRange(begin, end) {\n    if (begin >= end) {\n      return;\n    }\n    if (end <= this.progressiveDataLength) {\n      return;\n    }\n\n    const chunkSize = this.chunkSize;\n    const beginChunk = Math.floor(begin / chunkSize);\n    const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n    for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n      if (!this.loadedChunks[chunk]) {\n        throw new MissingDataException(begin, end);\n      }\n    }\n  }\n\n  nextEmptyChunk(beginChunk) {\n    const numChunks = this.numChunks;\n    for (let i = 0; i < numChunks; ++i) {\n      const chunk = (beginChunk + i) % numChunks; // Wrap around to beginning.\n      if (!this.loadedChunks[chunk]) {\n        return chunk;\n      }\n    }\n    return null;\n  }\n\n  hasChunk(chunk) {\n    return !!this.loadedChunks[chunk];\n  }\n\n  get length() {\n    return this.end - this.start;\n  }\n\n  get isEmpty() {\n    return this.length === 0;\n  }\n\n  getByte() {\n    const pos = this.pos;\n    if (pos >= this.end) {\n      return -1;\n    }\n    if (pos >= this.progressiveDataLength) {\n      this.ensureByte(pos);\n    }\n    return this.bytes[this.pos++];\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  // Returns subarray of original buffer, should only be read.\n  getBytes(length, forceClamped = false) {\n    const bytes = this.bytes;\n    const pos = this.pos;\n    const strEnd = this.end;\n\n    if (!length) {\n      if (strEnd > this.progressiveDataLength) {\n        this.ensureRange(pos, strEnd);\n      }\n      const subarray = bytes.subarray(pos, strEnd);\n      // `this.bytes` is always a `Uint8Array` here.\n      return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n    }\n\n    let end = pos + length;\n    if (end > strEnd) {\n      end = strEnd;\n    }\n    if (end > this.progressiveDataLength) {\n      this.ensureRange(pos, end);\n    }\n\n    this.pos = end;\n    const subarray = bytes.subarray(pos, end);\n    // `this.bytes` is always a `Uint8Array` here.\n    return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\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, forceClamped = false) {\n    const bytes = this.getBytes(length, forceClamped);\n    this.pos -= bytes.length;\n    return bytes;\n  }\n\n  getByteRange(begin, end) {\n    if (begin < 0) {\n      begin = 0;\n    }\n    if (end > this.end) {\n      end = this.end;\n    }\n    if (end > this.progressiveDataLength) {\n      this.ensureRange(begin, end);\n    }\n    return this.bytes.subarray(begin, end);\n  }\n\n  skip(n) {\n    if (!n) {\n      n = 1;\n    }\n    this.pos += n;\n  }\n\n  reset() {\n    this.pos = this.start;\n  }\n\n  moveStart() {\n    this.start = this.pos;\n  }\n\n  makeSubStream(start, length, dict) {\n    if (length) {\n      if (start + length > this.progressiveDataLength) {\n        this.ensureRange(start, start + length);\n      }\n    } else {\n      // When the `length` is undefined you do *not*, under any circumstances,\n      // want to fallback on calling `this.ensureRange(start, this.end)` since\n      // that would force the *entire* PDF file to be loaded, thus completely\n      // breaking the whole purpose of using streaming and/or range requests.\n      //\n      // However, not doing any checking here could very easily lead to wasted\n      // time/resources during e.g. parsing, since `MissingDataException`s will\n      // require data to be re-parsed, which we attempt to minimize by at least\n      // checking that the *beginning* of the data is available here.\n      if (start >= this.progressiveDataLength) {\n        this.ensureByte(start);\n      }\n    }\n\n    function ChunkedStreamSubstream() {}\n    ChunkedStreamSubstream.prototype = Object.create(this);\n    ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n      const chunkSize = this.chunkSize;\n      const beginChunk = Math.floor(this.start / chunkSize);\n      const endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n      const missingChunks = [];\n      for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!this.loadedChunks[chunk]) {\n          missingChunks.push(chunk);\n        }\n      }\n      return missingChunks;\n    };\n    ChunkedStreamSubstream.prototype.allChunksLoaded = function () {\n      if (this.numChunksLoaded === this.numChunks) {\n        return true;\n      }\n      return this.getMissingChunks().length === 0;\n    };\n\n    const subStream = new ChunkedStreamSubstream();\n    subStream.pos = subStream.start = start;\n    subStream.end = start + length || this.end;\n    subStream.dict = dict;\n    return subStream;\n  }\n}\n\nclass ChunkedStreamManager {\n  constructor(pdfNetworkStream, args) {\n    this.length = args.length;\n    this.chunkSize = args.rangeChunkSize;\n    this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n    this.pdfNetworkStream = pdfNetworkStream;\n    this.disableAutoFetch = args.disableAutoFetch;\n    this.msgHandler = args.msgHandler;\n\n    this.currRequestId = 0;\n\n    this.chunksNeededByRequest = Object.create(null);\n    this.requestsByChunk = Object.create(null);\n    this.promisesByRequest = Object.create(null);\n    this.progressiveDataLength = 0;\n    this.aborted = false;\n\n    this._loadedStreamCapability = createPromiseCapability();\n  }\n\n  onLoadedStream() {\n    return this._loadedStreamCapability.promise;\n  }\n\n  sendRequest(begin, end) {\n    const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n    if (!rangeReader.isStreamingSupported) {\n      rangeReader.onProgress = this.onProgress.bind(this);\n    }\n\n    let chunks = [],\n      loaded = 0;\n    const promise = new Promise((resolve, reject) => {\n      const readChunk = chunk => {\n        try {\n          if (!chunk.done) {\n            const data = chunk.value;\n            chunks.push(data);\n            loaded += arrayByteLength(data);\n            if (rangeReader.isStreamingSupported) {\n              this.onProgress({ loaded });\n            }\n            rangeReader.read().then(readChunk, reject);\n            return;\n          }\n          const chunkData = arraysToBytes(chunks);\n          chunks = null;\n          resolve(chunkData);\n        } catch (e) {\n          reject(e);\n        }\n      };\n      rangeReader.read().then(readChunk, reject);\n    });\n    promise.then(data => {\n      if (this.aborted) {\n        return; // Ignoring any data after abort.\n      }\n      this.onReceiveData({ chunk: data, begin });\n    });\n    // TODO check errors\n  }\n\n  /**\n   * Get all the chunks that are not yet loaded and group them into\n   * contiguous ranges to load in as few requests as possible.\n   */\n  requestAllChunks() {\n    const missingChunks = this.stream.getMissingChunks();\n    this._requestChunks(missingChunks);\n    return this._loadedStreamCapability.promise;\n  }\n\n  _requestChunks(chunks) {\n    const requestId = this.currRequestId++;\n\n    const chunksNeeded = Object.create(null);\n    this.chunksNeededByRequest[requestId] = chunksNeeded;\n    for (const chunk of chunks) {\n      if (!this.stream.hasChunk(chunk)) {\n        chunksNeeded[chunk] = true;\n      }\n    }\n\n    if (isEmptyObj(chunksNeeded)) {\n      return Promise.resolve();\n    }\n\n    const capability = createPromiseCapability();\n    this.promisesByRequest[requestId] = capability;\n\n    const chunksToRequest = [];\n    for (let chunk in chunksNeeded) {\n      chunk = chunk | 0;\n      if (!(chunk in this.requestsByChunk)) {\n        this.requestsByChunk[chunk] = [];\n        chunksToRequest.push(chunk);\n      }\n      this.requestsByChunk[chunk].push(requestId);\n    }\n\n    if (!chunksToRequest.length) {\n      return capability.promise;\n    }\n\n    const groupedChunksToRequest = this.groupChunks(chunksToRequest);\n    for (const groupedChunk of groupedChunksToRequest) {\n      const begin = groupedChunk.beginChunk * this.chunkSize;\n      const end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length);\n      this.sendRequest(begin, end);\n    }\n\n    return capability.promise;\n  }\n\n  getStream() {\n    return this.stream;\n  }\n\n  /**\n   * Loads any chunks in the requested range that are not yet loaded.\n   */\n  requestRange(begin, end) {\n    end = Math.min(end, this.length);\n\n    const beginChunk = this.getBeginChunk(begin);\n    const endChunk = this.getEndChunk(end);\n\n    const chunks = [];\n    for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n      chunks.push(chunk);\n    }\n    return this._requestChunks(chunks);\n  }\n\n  requestRanges(ranges = []) {\n    const chunksToRequest = [];\n    for (const range of ranges) {\n      const beginChunk = this.getBeginChunk(range.begin);\n      const endChunk = this.getEndChunk(range.end);\n      for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!chunksToRequest.includes(chunk)) {\n          chunksToRequest.push(chunk);\n        }\n      }\n    }\n\n    chunksToRequest.sort(function (a, b) {\n      return a - b;\n    });\n    return this._requestChunks(chunksToRequest);\n  }\n\n  /**\n   * Groups a sorted array of chunks into as few contiguous larger\n   * chunks as possible.\n   */\n  groupChunks(chunks) {\n    const groupedChunks = [];\n    let beginChunk = -1;\n    let prevChunk = -1;\n\n    for (let i = 0, ii = chunks.length; i < ii; ++i) {\n      const chunk = chunks[i];\n      if (beginChunk < 0) {\n        beginChunk = chunk;\n      }\n\n      if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n        groupedChunks.push({ beginChunk, endChunk: prevChunk + 1 });\n        beginChunk = chunk;\n      }\n      if (i + 1 === chunks.length) {\n        groupedChunks.push({ beginChunk, endChunk: chunk + 1 });\n      }\n\n      prevChunk = chunk;\n    }\n    return groupedChunks;\n  }\n\n  onProgress(args) {\n    this.msgHandler.send(\"DocProgress\", {\n      loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded,\n      total: this.length,\n    });\n  }\n\n  onReceiveData(args) {\n    const chunk = args.chunk;\n    const isProgressive = args.begin === undefined;\n    const begin = isProgressive ? this.progressiveDataLength : args.begin;\n    const end = begin + chunk.byteLength;\n\n    const beginChunk = Math.floor(begin / this.chunkSize);\n    const endChunk =\n      end < this.length\n        ? Math.floor(end / this.chunkSize)\n        : Math.ceil(end / this.chunkSize);\n\n    if (isProgressive) {\n      this.stream.onReceiveProgressiveData(chunk);\n      this.progressiveDataLength = end;\n    } else {\n      this.stream.onReceiveData(begin, chunk);\n    }\n\n    if (this.stream.allChunksLoaded()) {\n      this._loadedStreamCapability.resolve(this.stream);\n    }\n\n    const loadedRequests = [];\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      // The server might return more chunks than requested.\n      const requestIds = this.requestsByChunk[curChunk] || [];\n      delete this.requestsByChunk[curChunk];\n\n      for (const requestId of requestIds) {\n        const chunksNeeded = this.chunksNeededByRequest[requestId];\n        if (curChunk in chunksNeeded) {\n          delete chunksNeeded[curChunk];\n        }\n\n        if (!isEmptyObj(chunksNeeded)) {\n          continue;\n        }\n        loadedRequests.push(requestId);\n      }\n    }\n\n    // If there are no pending requests, automatically fetch the next\n    // unfetched chunk of the PDF file.\n    if (!this.disableAutoFetch && isEmptyObj(this.requestsByChunk)) {\n      let nextEmptyChunk;\n      if (this.stream.numChunksLoaded === 1) {\n        // This is a special optimization so that after fetching the first\n        // chunk, rather than fetching the second chunk, we fetch the last\n        // chunk.\n        const lastChunk = this.stream.numChunks - 1;\n        if (!this.stream.hasChunk(lastChunk)) {\n          nextEmptyChunk = lastChunk;\n        }\n      } else {\n        nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n      }\n      if (Number.isInteger(nextEmptyChunk)) {\n        this._requestChunks([nextEmptyChunk]);\n      }\n    }\n\n    for (const requestId of loadedRequests) {\n      const capability = this.promisesByRequest[requestId];\n      delete this.promisesByRequest[requestId];\n      capability.resolve();\n    }\n\n    this.msgHandler.send(\"DocProgress\", {\n      loaded: this.stream.numChunksLoaded * this.chunkSize,\n      total: this.length,\n    });\n  }\n\n  onError(err) {\n    this._loadedStreamCapability.reject(err);\n  }\n\n  getBeginChunk(begin) {\n    return Math.floor(begin / this.chunkSize);\n  }\n\n  getEndChunk(end) {\n    return Math.floor((end - 1) / this.chunkSize) + 1;\n  }\n\n  abort(reason) {\n    this.aborted = true;\n    if (this.pdfNetworkStream) {\n      this.pdfNetworkStream.cancelAllRequests(reason);\n    }\n    for (const requestId in this.promisesByRequest) {\n      this.promisesByRequest[requestId].reject(reason);\n    }\n  }\n}\n\nexport { ChunkedStream, ChunkedStreamManager };\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/* eslint no-var: error */\n\nimport { assert, BaseException, warn } from \"../shared/util.js\";\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})`);\n    this.begin = begin;\n    this.end = end;\n  }\n}\n\nclass XRefEntryException extends BaseException {}\n\nclass XRefParseException extends BaseException {}\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. To avoid infinite loops, the traversal is stopped when\n * the loop limit is reached.\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  const LOOP_LIMIT = 100;\n  let loopCount = 0;\n  let values;\n\n  while (dict) {\n    const value = getArray ? dict.getArray(key) : dict.get(key);\n    if (value !== undefined) {\n      if (stopWhenFound) {\n        return value;\n      }\n      if (!values) {\n        values = [];\n      }\n      values.push(value);\n    }\n    if (++loopCount > LOOP_LIMIT) {\n      warn(`getInheritableProperty: maximum loop count exceeded for \"${key}\"`);\n      break;\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]);\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\nexport {\n  getLookupTableFactory,\n  MissingDataException,\n  XRefEntryException,\n  XRefParseException,\n  getInheritableProperty,\n  toRomanNumerals,\n  log2,\n  readInt8,\n  readUint16,\n  readUint32,\n  isWhiteSpace,\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/* eslint no-var: error */\n\nimport {\n  assert,\n  FormatError,\n  info,\n  InvalidPDFException,\n  isArrayBuffer,\n  isArrayEqual,\n  isBool,\n  isNum,\n  isString,\n  OPS,\n  shadow,\n  stringToBytes,\n  stringToPDFString,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport { Catalog, ObjectLoader, XRef } from \"./obj.js\";\nimport {\n  clearPrimitiveCaches,\n  Dict,\n  isDict,\n  isName,\n  isStream,\n  Ref,\n} from \"./primitives.js\";\nimport {\n  getInheritableProperty,\n  isWhiteSpace,\n  MissingDataException,\n  XRefEntryException,\n  XRefParseException,\n} from \"./core_utils.js\";\nimport { NullStream, Stream, StreamsSequenceStream } from \"./stream.js\";\nimport { AnnotationFactory } from \"./annotation.js\";\nimport { calculateMD5 } from \"./crypto.js\";\nimport { Linearization } from \"./parser.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PartialEvaluator } from \"./evaluator.js\";\nimport { PDFFunctionFactory } from \"./function.js\";\n\nconst DEFAULT_USER_UNIT = 1.0;\nconst LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nfunction isAnnotationRenderable(annotation, intent) {\n  return (\n    (intent === \"display\" && annotation.viewable) ||\n    (intent === \"print\" && annotation.printable)\n  );\n}\n\nclass Page {\n  constructor({\n    pdfManager,\n    xref,\n    pageIndex,\n    pageDict,\n    ref,\n    fontCache,\n    builtInCMapCache,\n    globalImageCache,\n    pdfFunctionFactory,\n  }) {\n    this.pdfManager = pdfManager;\n    this.pageIndex = pageIndex;\n    this.pageDict = pageDict;\n    this.xref = xref;\n    this.ref = ref;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.globalImageCache = globalImageCache;\n    this.pdfFunctionFactory = pdfFunctionFactory;\n    this.evaluatorOptions = pdfManager.evaluatorOptions;\n    this.resourcesPromise = null;\n\n    const idCounters = {\n      obj: 0,\n    };\n    this.idFactory = {\n      createObjId() {\n        return `p${pageIndex}_${++idCounters.obj}`;\n      },\n      getDocId() {\n        return `g_${pdfManager.docId}`;\n      },\n    };\n  }\n\n  /**\n   * @private\n   */\n  _getInheritableProperty(key, getArray = false) {\n    const value = getInheritableProperty({\n      dict: this.pageDict,\n      key,\n      getArray,\n      stopWhenFound: false,\n    });\n    if (!Array.isArray(value)) {\n      return value;\n    }\n    if (value.length === 1 || !isDict(value[0])) {\n      return value[0];\n    }\n    return Dict.merge(this.xref, value);\n  }\n\n  get content() {\n    return this.pageDict.get(\"Contents\");\n  }\n\n  get resources() {\n    // For robustness: The spec states that a \\Resources entry has to be\n    // present, but can be empty. Some documents still omit it; in this case\n    // we return an empty dictionary.\n    return shadow(\n      this,\n      \"resources\",\n      this._getInheritableProperty(\"Resources\") || Dict.empty\n    );\n  }\n\n  _getBoundingBox(name) {\n    const box = this._getInheritableProperty(name, /* getArray = */ true);\n\n    if (Array.isArray(box) && box.length === 4) {\n      if (box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n        return box;\n      }\n      warn(`Empty /${name} entry.`);\n    }\n    return null;\n  }\n\n  get mediaBox() {\n    // Reset invalid media box to letter size.\n    return shadow(\n      this,\n      \"mediaBox\",\n      this._getBoundingBox(\"MediaBox\") || LETTER_SIZE_MEDIABOX\n    );\n  }\n\n  get cropBox() {\n    // Reset invalid crop box to media box.\n    return shadow(\n      this,\n      \"cropBox\",\n      this._getBoundingBox(\"CropBox\") || this.mediaBox\n    );\n  }\n\n  get userUnit() {\n    let obj = this.pageDict.get(\"UserUnit\");\n    if (!isNum(obj) || obj <= 0) {\n      obj = DEFAULT_USER_UNIT;\n    }\n    return shadow(this, \"userUnit\", obj);\n  }\n\n  get view() {\n    // From the spec, 6th ed., p.963:\n    // \"The crop, bleed, trim, and art boxes should not ordinarily\n    // extend beyond the boundaries of the media box. If they do, they are\n    // effectively reduced to their intersection with the media box.\"\n    const { cropBox, mediaBox } = this;\n    let view;\n    if (cropBox === mediaBox || isArrayEqual(cropBox, mediaBox)) {\n      view = mediaBox;\n    } else {\n      const box = Util.intersect(cropBox, mediaBox);\n      if (box && box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n        view = box;\n      } else {\n        warn(\"Empty /CropBox and /MediaBox intersection.\");\n      }\n    }\n    return shadow(this, \"view\", view || mediaBox);\n  }\n\n  get rotate() {\n    let rotate = this._getInheritableProperty(\"Rotate\") || 0;\n\n    // Normalize rotation so it's a multiple of 90 and between 0 and 270.\n    if (rotate % 90 !== 0) {\n      rotate = 0;\n    } else if (rotate >= 360) {\n      rotate = rotate % 360;\n    } else if (rotate < 0) {\n      // The spec doesn't cover negatives. Assume it's counterclockwise\n      // rotation. The following is the other implementation of modulo.\n      rotate = ((rotate % 360) + 360) % 360;\n    }\n    return shadow(this, \"rotate\", rotate);\n  }\n\n  getContentStream() {\n    const content = this.content;\n    let stream;\n\n    if (Array.isArray(content)) {\n      // Fetching the individual streams from the array.\n      const xref = this.xref;\n      const streams = [];\n      for (const subStream of content) {\n        streams.push(xref.fetchIfRef(subStream));\n      }\n      stream = new StreamsSequenceStream(streams);\n    } else if (isStream(content)) {\n      stream = content;\n    } else {\n      // Replace non-existent page content with empty content.\n      stream = new NullStream();\n    }\n    return stream;\n  }\n\n  loadResources(keys) {\n    if (!this.resourcesPromise) {\n      // TODO: add async `_getInheritableProperty` and remove this.\n      this.resourcesPromise = this.pdfManager.ensure(this, \"resources\");\n    }\n    return this.resourcesPromise.then(() => {\n      const objectLoader = new ObjectLoader(this.resources, keys, this.xref);\n      return objectLoader.load();\n    });\n  }\n\n  getOperatorList({ handler, sink, task, intent, renderInteractiveForms }) {\n    const contentStreamPromise = this.pdfManager.ensure(\n      this,\n      \"getContentStream\"\n    );\n    const resourcesPromise = this.loadResources([\n      \"ExtGState\",\n      \"ColorSpace\",\n      \"Pattern\",\n      \"Shading\",\n      \"XObject\",\n      \"Font\",\n    ]);\n\n    const partialEvaluator = new PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: this.pageIndex,\n      idFactory: this.idFactory,\n      fontCache: this.fontCache,\n      builtInCMapCache: this.builtInCMapCache,\n      globalImageCache: this.globalImageCache,\n      options: this.evaluatorOptions,\n      pdfFunctionFactory: this.pdfFunctionFactory,\n    });\n\n    const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n    const pageListPromise = dataPromises.then(([contentStream]) => {\n      const opList = new OperatorList(intent, sink, this.pageIndex);\n\n      handler.send(\"StartRenderPage\", {\n        transparency: partialEvaluator.hasBlendModes(this.resources),\n        pageIndex: this.pageIndex,\n        intent,\n      });\n\n      return partialEvaluator\n        .getOperatorList({\n          stream: contentStream,\n          task,\n          resources: this.resources,\n          operatorList: opList,\n        })\n        .then(function () {\n          return opList;\n        });\n    });\n\n    // Fetch the page's annotations and add their operator lists to the\n    // page's operator list to render them.\n    return Promise.all([pageListPromise, this._parsedAnnotations]).then(\n      function ([pageOpList, annotations]) {\n        if (annotations.length === 0) {\n          pageOpList.flush(true);\n          return { length: pageOpList.totalLength };\n        }\n\n        // Collect the operator list promises for the annotations. Each promise\n        // is resolved with the complete operator list for a single annotation.\n        const opListPromises = [];\n        for (const annotation of annotations) {\n          if (isAnnotationRenderable(annotation, intent)) {\n            opListPromises.push(\n              annotation\n                .getOperatorList(partialEvaluator, task, renderInteractiveForms)\n                .catch(function (reason) {\n                  warn(\n                    \"getOperatorList - ignoring annotation data during \" +\n                      `\"${task.name}\" task: \"${reason}\".`\n                  );\n                  return null;\n                })\n            );\n          }\n        }\n\n        return Promise.all(opListPromises).then(function (opLists) {\n          pageOpList.addOp(OPS.beginAnnotations, []);\n          for (const opList of opLists) {\n            pageOpList.addOpList(opList);\n          }\n          pageOpList.addOp(OPS.endAnnotations, []);\n          pageOpList.flush(true);\n          return { length: pageOpList.totalLength };\n        });\n      }\n    );\n  }\n\n  extractTextContent({\n    handler,\n    task,\n    normalizeWhitespace,\n    sink,\n    combineTextItems,\n  }) {\n    const contentStreamPromise = this.pdfManager.ensure(\n      this,\n      \"getContentStream\"\n    );\n    const resourcesPromise = this.loadResources([\n      \"ExtGState\",\n      \"XObject\",\n      \"Font\",\n    ]);\n\n    const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n    return dataPromises.then(([contentStream]) => {\n      const partialEvaluator = new PartialEvaluator({\n        xref: this.xref,\n        handler,\n        pageIndex: this.pageIndex,\n        idFactory: this.idFactory,\n        fontCache: this.fontCache,\n        builtInCMapCache: this.builtInCMapCache,\n        globalImageCache: this.globalImageCache,\n        options: this.evaluatorOptions,\n        pdfFunctionFactory: this.pdfFunctionFactory,\n      });\n\n      return partialEvaluator.getTextContent({\n        stream: contentStream,\n        task,\n        resources: this.resources,\n        normalizeWhitespace,\n        combineTextItems,\n        sink,\n      });\n    });\n  }\n\n  getAnnotationsData(intent) {\n    return this._parsedAnnotations.then(function (annotations) {\n      const annotationsData = [];\n      for (let i = 0, ii = annotations.length; i < ii; i++) {\n        if (!intent || isAnnotationRenderable(annotations[i], intent)) {\n          annotationsData.push(annotations[i].data);\n        }\n      }\n      return annotationsData;\n    });\n  }\n\n  get annotations() {\n    return shadow(\n      this,\n      \"annotations\",\n      this._getInheritableProperty(\"Annots\") || []\n    );\n  }\n\n  get _parsedAnnotations() {\n    const parsedAnnotations = this.pdfManager\n      .ensure(this, \"annotations\")\n      .then(() => {\n        const annotationPromises = [];\n        for (const annotationRef of this.annotations) {\n          annotationPromises.push(\n            AnnotationFactory.create(\n              this.xref,\n              annotationRef,\n              this.pdfManager,\n              this.idFactory\n            ).catch(function (reason) {\n              warn(`_parsedAnnotations: \"${reason}\".`);\n              return null;\n            })\n          );\n        }\n\n        return Promise.all(annotationPromises).then(function (annotations) {\n          return annotations.filter(annotation => !!annotation);\n        });\n      });\n\n    return shadow(this, \"_parsedAnnotations\", parsedAnnotations);\n  }\n}\n\nconst PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]);\n// prettier-ignore\nconst STARTXREF_SIGNATURE = new Uint8Array([\n  0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66]);\nconst ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]);\n\nconst FINGERPRINT_FIRST_BYTES = 1024;\nconst EMPTY_FINGERPRINT =\n  \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";\n\nconst PDF_HEADER_VERSION_REGEXP = /^[1-9]\\.[0-9]$/;\n\nfunction find(stream, signature, limit = 1024, backwards = false) {\n  if (\n    typeof PDFJSDev === \"undefined\" ||\n    PDFJSDev.test(\"!PRODUCTION || TESTING\")\n  ) {\n    assert(limit > 0, 'The \"limit\" must be a positive integer.');\n  }\n  const signatureLength = signature.length;\n\n  const scanBytes = stream.peekBytes(limit);\n  const scanLength = scanBytes.length - signatureLength;\n\n  if (scanLength <= 0) {\n    return false;\n  }\n  if (backwards) {\n    const signatureEnd = signatureLength - 1;\n\n    let pos = scanBytes.length - 1;\n    while (pos >= signatureEnd) {\n      let j = 0;\n      while (\n        j < signatureLength &&\n        scanBytes[pos - j] === signature[signatureEnd - j]\n      ) {\n        j++;\n      }\n      if (j >= signatureLength) {\n        // `signature` found.\n        stream.pos += pos - signatureEnd;\n        return true;\n      }\n      pos--;\n    }\n  } else {\n    // forwards\n    let pos = 0;\n    while (pos <= scanLength) {\n      let j = 0;\n      while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n        j++;\n      }\n      if (j >= signatureLength) {\n        // `signature` found.\n        stream.pos += pos;\n        return true;\n      }\n      pos++;\n    }\n  }\n  return false;\n}\n\n/**\n * The `PDFDocument` class holds all the (worker-thread) data of the PDF file.\n */\nclass PDFDocument {\n  constructor(pdfManager, arg) {\n    let stream;\n    if (isStream(arg)) {\n      stream = arg;\n    } else if (isArrayBuffer(arg)) {\n      stream = new Stream(arg);\n    } else {\n      throw new Error(\"PDFDocument: Unknown argument type\");\n    }\n    if (stream.length <= 0) {\n      throw new InvalidPDFException(\n        \"The PDF file is empty, i.e. its size is zero bytes.\"\n      );\n    }\n\n    this.pdfManager = pdfManager;\n    this.stream = stream;\n    this.xref = new XRef(stream, pdfManager);\n\n    this.pdfFunctionFactory = new PDFFunctionFactory({\n      xref: this.xref,\n      isEvalSupported: pdfManager.evaluatorOptions.isEvalSupported,\n    });\n    this._pagePromises = [];\n  }\n\n  parse(recoveryMode) {\n    this.setup(recoveryMode);\n\n    const version = this.catalog.catDict.get(\"Version\");\n    if (isName(version)) {\n      this.pdfFormatVersion = version.name;\n    }\n\n    // Check if AcroForms are present in the document.\n    try {\n      this.acroForm = this.catalog.catDict.get(\"AcroForm\");\n      if (this.acroForm) {\n        this.xfa = this.acroForm.get(\"XFA\");\n        const fields = this.acroForm.get(\"Fields\");\n        if ((!Array.isArray(fields) || fields.length === 0) && !this.xfa) {\n          this.acroForm = null; // No fields and no XFA, so it's not a form.\n        }\n      }\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      info(\"Cannot fetch AcroForm entry; assuming no AcroForms are present\");\n      this.acroForm = null;\n    }\n\n    // Check if a Collection dictionary is present in the document.\n    try {\n      const collection = this.catalog.catDict.get(\"Collection\");\n      if (isDict(collection) && collection.getKeys().length > 0) {\n        this.collection = collection;\n      }\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      info(\"Cannot fetch Collection dictionary.\");\n    }\n  }\n\n  get linearization() {\n    let linearization = null;\n    try {\n      linearization = Linearization.create(this.stream);\n    } catch (err) {\n      if (err instanceof MissingDataException) {\n        throw err;\n      }\n      info(err);\n    }\n    return shadow(this, \"linearization\", linearization);\n  }\n\n  get startXRef() {\n    const stream = this.stream;\n    let startXRef = 0;\n\n    if (this.linearization) {\n      // Find the end of the first object.\n      stream.reset();\n      if (find(stream, ENDOBJ_SIGNATURE)) {\n        startXRef = stream.pos + 6 - stream.start;\n      }\n    } else {\n      // Find `startxref` by checking backwards from the end of the file.\n      const step = 1024;\n      const startXRefLength = STARTXREF_SIGNATURE.length;\n      let found = false,\n        pos = stream.end;\n\n      while (!found && pos > 0) {\n        pos -= step - startXRefLength;\n        if (pos < 0) {\n          pos = 0;\n        }\n        stream.pos = pos;\n        found = find(stream, STARTXREF_SIGNATURE, step, true);\n      }\n\n      if (found) {\n        stream.skip(9);\n        let ch;\n        do {\n          ch = stream.getByte();\n        } while (isWhiteSpace(ch));\n        let str = \"\";\n        while (ch >= /* Space = */ 0x20 && ch <= /* '9' = */ 0x39) {\n          str += String.fromCharCode(ch);\n          ch = stream.getByte();\n        }\n        startXRef = parseInt(str, 10);\n        if (isNaN(startXRef)) {\n          startXRef = 0;\n        }\n      }\n    }\n    return shadow(this, \"startXRef\", startXRef);\n  }\n\n  // Find the header, get the PDF format version and setup the\n  // stream to start from the header.\n  checkHeader() {\n    const stream = this.stream;\n    stream.reset();\n\n    if (!find(stream, PDF_HEADER_SIGNATURE)) {\n      // May not be a PDF file, but don't throw an error and let\n      // parsing continue.\n      return;\n    }\n    stream.moveStart();\n\n    // Read the PDF format version.\n    const MAX_PDF_VERSION_LENGTH = 12;\n    let version = \"\",\n      ch;\n    while ((ch = stream.getByte()) > /* Space = */ 0x20) {\n      if (version.length >= MAX_PDF_VERSION_LENGTH) {\n        break;\n      }\n      version += String.fromCharCode(ch);\n    }\n    if (!this.pdfFormatVersion) {\n      // Remove the \"%PDF-\" prefix.\n      this.pdfFormatVersion = version.substring(5);\n    }\n  }\n\n  parseStartXRef() {\n    this.xref.setStartXRef(this.startXRef);\n  }\n\n  setup(recoveryMode) {\n    this.xref.parse(recoveryMode);\n    this.catalog = new Catalog(this.pdfManager, this.xref);\n  }\n\n  get numPages() {\n    const linearization = this.linearization;\n    const num = linearization ? linearization.numPages : this.catalog.numPages;\n    return shadow(this, \"numPages\", num);\n  }\n\n  get documentInfo() {\n    const DocumentInfoValidators = {\n      Title: isString,\n      Author: isString,\n      Subject: isString,\n      Keywords: isString,\n      Creator: isString,\n      Producer: isString,\n      CreationDate: isString,\n      ModDate: isString,\n      Trapped: isName,\n    };\n\n    let version = this.pdfFormatVersion;\n    if (\n      typeof version !== \"string\" ||\n      !PDF_HEADER_VERSION_REGEXP.test(version)\n    ) {\n      warn(`Invalid PDF header version number: ${version}`);\n      version = null;\n    }\n\n    const docInfo = {\n      PDFFormatVersion: version,\n      IsLinearized: !!this.linearization,\n      IsAcroFormPresent: !!this.acroForm,\n      IsXFAPresent: !!this.xfa,\n      IsCollectionPresent: !!this.collection,\n    };\n\n    let infoDict;\n    try {\n      infoDict = this.xref.trailer.get(\"Info\");\n    } catch (err) {\n      if (err instanceof MissingDataException) {\n        throw err;\n      }\n      info(\"The document information dictionary is invalid.\");\n    }\n\n    if (isDict(infoDict)) {\n      // Fill the document info with valid entries from the specification,\n      // as well as any existing well-formed custom entries.\n      for (const key of infoDict.getKeys()) {\n        const value = infoDict.get(key);\n\n        if (DocumentInfoValidators[key]) {\n          // Make sure the (standard) value conforms to the specification.\n          if (DocumentInfoValidators[key](value)) {\n            docInfo[key] =\n              typeof value !== \"string\" ? value : stringToPDFString(value);\n          } else {\n            info(`Bad value in document info for \"${key}\".`);\n          }\n        } else if (typeof key === \"string\") {\n          // For custom values, only accept white-listed types to prevent\n          // errors that would occur when trying to send non-serializable\n          // objects to the main-thread (for example `Dict` or `Stream`).\n          let customValue;\n          if (isString(value)) {\n            customValue = stringToPDFString(value);\n          } else if (isName(value) || isNum(value) || isBool(value)) {\n            customValue = value;\n          } else {\n            info(`Unsupported value in document info for (custom) \"${key}\".`);\n            continue;\n          }\n\n          if (!docInfo.Custom) {\n            docInfo.Custom = Object.create(null);\n          }\n          docInfo.Custom[key] = customValue;\n        }\n      }\n    }\n    return shadow(this, \"documentInfo\", docInfo);\n  }\n\n  get fingerprint() {\n    let hash;\n    const idArray = this.xref.trailer.get(\"ID\");\n    if (\n      Array.isArray(idArray) &&\n      idArray[0] &&\n      isString(idArray[0]) &&\n      idArray[0] !== EMPTY_FINGERPRINT\n    ) {\n      hash = stringToBytes(idArray[0]);\n    } else {\n      hash = calculateMD5(\n        this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES),\n        0,\n        FINGERPRINT_FIRST_BYTES\n      );\n    }\n\n    const fingerprintBuf = [];\n    for (let i = 0, ii = hash.length; i < ii; i++) {\n      const hex = hash[i].toString(16);\n      fingerprintBuf.push(hex.padStart(2, \"0\"));\n    }\n    return shadow(this, \"fingerprint\", fingerprintBuf.join(\"\"));\n  }\n\n  _getLinearizationPage(pageIndex) {\n    const { catalog, linearization } = this;\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        linearization && linearization.pageFirst === pageIndex,\n        \"_getLinearizationPage - invalid pageIndex argument.\"\n      );\n    }\n\n    const ref = Ref.get(linearization.objectNumberFirst, 0);\n    return this.xref\n      .fetchAsync(ref)\n      .then(obj => {\n        // Ensure that the object that was found is actually a Page dictionary.\n        if (\n          isDict(obj, \"Page\") ||\n          (isDict(obj) && !obj.has(\"Type\") && obj.has(\"Contents\"))\n        ) {\n          if (ref && !catalog.pageKidsCountCache.has(ref)) {\n            catalog.pageKidsCountCache.put(ref, 1); // Cache the Page reference.\n          }\n          return [obj, ref];\n        }\n        throw new FormatError(\n          \"The Linearization dictionary doesn't point \" +\n            \"to a valid Page dictionary.\"\n        );\n      })\n      .catch(reason => {\n        info(reason);\n        return catalog.getPageDict(pageIndex);\n      });\n  }\n\n  getPage(pageIndex) {\n    if (this._pagePromises[pageIndex] !== undefined) {\n      return this._pagePromises[pageIndex];\n    }\n    const { catalog, linearization } = this;\n\n    const promise =\n      linearization && linearization.pageFirst === pageIndex\n        ? this._getLinearizationPage(pageIndex)\n        : catalog.getPageDict(pageIndex);\n\n    return (this._pagePromises[pageIndex] = promise.then(([pageDict, ref]) => {\n      return new Page({\n        pdfManager: this.pdfManager,\n        xref: this.xref,\n        pageIndex,\n        pageDict,\n        ref,\n        fontCache: catalog.fontCache,\n        builtInCMapCache: catalog.builtInCMapCache,\n        globalImageCache: catalog.globalImageCache,\n        pdfFunctionFactory: this.pdfFunctionFactory,\n      });\n    }));\n  }\n\n  checkFirstPage() {\n    return this.getPage(0).catch(async reason => {\n      if (reason instanceof XRefEntryException) {\n        // Clear out the various caches to ensure that we haven't stored any\n        // inconsistent and/or incorrect state, since that could easily break\n        // subsequent `this.getPage` calls.\n        this._pagePromises.length = 0;\n        await this.cleanup();\n\n        throw new XRefParseException();\n      }\n    });\n  }\n\n  fontFallback(id, handler) {\n    return this.catalog.fontFallback(id, handler);\n  }\n\n  async cleanup(manuallyTriggered = false) {\n    return this.catalog\n      ? this.catalog.cleanup(manuallyTriggered)\n      : clearPrimitiveCaches();\n  }\n}\n\nexport { Page, PDFDocument };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  bytesToString,\n  createPromiseCapability,\n  createValidAbsoluteUrl,\n  FormatError,\n  info,\n  InvalidPDFException,\n  isBool,\n  isNum,\n  isString,\n  PermissionFlag,\n  shadow,\n  stringToPDFString,\n  stringToUTF8String,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  clearPrimitiveCaches,\n  Cmd,\n  Dict,\n  isCmd,\n  isDict,\n  isName,\n  isRef,\n  isRefsEqual,\n  isStream,\n  Ref,\n  RefSet,\n  RefSetCache,\n} from \"./primitives.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport {\n  MissingDataException,\n  toRomanNumerals,\n  XRefEntryException,\n  XRefParseException,\n} from \"./core_utils.js\";\nimport { CipherTransformFactory } from \"./crypto.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { GlobalImageCache } from \"./image_utils.js\";\n\nfunction fetchDestination(dest) {\n  return isDict(dest) ? dest.get(\"D\") : dest;\n}\n\nclass Catalog {\n  constructor(pdfManager, xref) {\n    this.pdfManager = pdfManager;\n    this.xref = xref;\n\n    this.catDict = xref.getCatalogObj();\n    if (!isDict(this.catDict)) {\n      throw new FormatError(\"Catalog object is not a dictionary.\");\n    }\n\n    this.fontCache = new RefSetCache();\n    this.builtInCMapCache = new Map();\n    this.globalImageCache = new GlobalImageCache();\n    this.pageKidsCountCache = new RefSetCache();\n  }\n\n  get metadata() {\n    const streamRef = this.catDict.getRaw(\"Metadata\");\n    if (!isRef(streamRef)) {\n      return shadow(this, \"metadata\", null);\n    }\n\n    const suppressEncryption = !(\n      this.xref.encrypt && this.xref.encrypt.encryptMetadata\n    );\n    const stream = this.xref.fetch(streamRef, suppressEncryption);\n    let metadata;\n\n    if (stream && isDict(stream.dict)) {\n      const type = stream.dict.get(\"Type\");\n      const subtype = stream.dict.get(\"Subtype\");\n\n      if (isName(type, \"Metadata\") && isName(subtype, \"XML\")) {\n        // XXX: This should examine the charset the XML document defines,\n        // however since there are currently no real means to decode\n        // arbitrary charsets, let's just hope that the author of the PDF\n        // was reasonable enough to stick with the XML default charset,\n        // which is UTF-8.\n        try {\n          metadata = stringToUTF8String(bytesToString(stream.getBytes()));\n        } catch (e) {\n          if (e instanceof MissingDataException) {\n            throw e;\n          }\n          info(\"Skipping invalid metadata.\");\n        }\n      }\n    }\n    return shadow(this, \"metadata\", metadata);\n  }\n\n  get toplevelPagesDict() {\n    const pagesObj = this.catDict.get(\"Pages\");\n    if (!isDict(pagesObj)) {\n      throw new FormatError(\"Invalid top-level pages dictionary.\");\n    }\n    return shadow(this, \"toplevelPagesDict\", pagesObj);\n  }\n\n  get documentOutline() {\n    let obj = null;\n    try {\n      obj = this._readDocumentOutline();\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable to read document outline.\");\n    }\n    return shadow(this, \"documentOutline\", obj);\n  }\n\n  /**\n   * @private\n   */\n  _readDocumentOutline() {\n    let obj = this.catDict.get(\"Outlines\");\n    if (!isDict(obj)) {\n      return null;\n    }\n    obj = obj.getRaw(\"First\");\n    if (!isRef(obj)) {\n      return null;\n    }\n\n    const root = { items: [] };\n    const queue = [{ obj, parent: root }];\n    // To avoid recursion, keep track of the already processed items.\n    const processed = new RefSet();\n    processed.put(obj);\n    const xref = this.xref,\n      blackColor = new Uint8ClampedArray(3);\n\n    while (queue.length > 0) {\n      const i = queue.shift();\n      const outlineDict = xref.fetchIfRef(i.obj);\n      if (outlineDict === null) {\n        continue;\n      }\n      if (!outlineDict.has(\"Title\")) {\n        throw new FormatError(\"Invalid outline item encountered.\");\n      }\n\n      const data = { url: null, dest: null };\n      Catalog.parseDestDictionary({\n        destDict: outlineDict,\n        resultObj: data,\n        docBaseUrl: this.pdfManager.docBaseUrl,\n      });\n      const title = outlineDict.get(\"Title\");\n      const flags = outlineDict.get(\"F\") || 0;\n      const color = outlineDict.getArray(\"C\");\n      const count = outlineDict.get(\"Count\");\n      let rgbColor = blackColor;\n\n      // We only need to parse the color when it's valid, and non-default.\n      if (\n        Array.isArray(color) &&\n        color.length === 3 &&\n        (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)\n      ) {\n        rgbColor = ColorSpace.singletons.rgb.getRgb(color, 0);\n      }\n\n      const outlineItem = {\n        dest: data.dest,\n        url: data.url,\n        unsafeUrl: data.unsafeUrl,\n        newWindow: data.newWindow,\n        title: stringToPDFString(title),\n        color: rgbColor,\n        count: Number.isInteger(count) ? count : undefined,\n        bold: !!(flags & 2),\n        italic: !!(flags & 1),\n        items: [],\n      };\n\n      i.parent.items.push(outlineItem);\n      obj = outlineDict.getRaw(\"First\");\n      if (isRef(obj) && !processed.has(obj)) {\n        queue.push({ obj, parent: outlineItem });\n        processed.put(obj);\n      }\n      obj = outlineDict.getRaw(\"Next\");\n      if (isRef(obj) && !processed.has(obj)) {\n        queue.push({ obj, parent: i.parent });\n        processed.put(obj);\n      }\n    }\n    return root.items.length > 0 ? root.items : null;\n  }\n\n  get permissions() {\n    let permissions = null;\n    try {\n      permissions = this._readPermissions();\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable to read permissions.\");\n    }\n    return shadow(this, \"permissions\", permissions);\n  }\n\n  /**\n   * @private\n   */\n  _readPermissions() {\n    const encrypt = this.xref.trailer.get(\"Encrypt\");\n    if (!isDict(encrypt)) {\n      return null;\n    }\n\n    let flags = encrypt.get(\"P\");\n    if (!isNum(flags)) {\n      return null;\n    }\n\n    // PDF integer objects are represented internally in signed 2's complement\n    // form. Therefore, convert the signed decimal integer to a signed 2's\n    // complement binary integer so we can use regular bitwise operations on it.\n    flags += 2 ** 32;\n\n    const permissions = [];\n    for (const key in PermissionFlag) {\n      const value = PermissionFlag[key];\n      if (flags & value) {\n        permissions.push(value);\n      }\n    }\n    return permissions;\n  }\n\n  get numPages() {\n    const obj = this.toplevelPagesDict.get(\"Count\");\n    if (!Number.isInteger(obj)) {\n      throw new FormatError(\n        \"Page count in top-level pages dictionary is not an integer.\"\n      );\n    }\n    return shadow(this, \"numPages\", obj);\n  }\n\n  get destinations() {\n    const obj = this._readDests(),\n      dests = Object.create(null);\n    if (obj instanceof NameTree) {\n      const names = obj.getAll();\n      for (const name in names) {\n        dests[name] = fetchDestination(names[name]);\n      }\n    } else if (obj instanceof Dict) {\n      obj.forEach(function (key, value) {\n        if (value) {\n          dests[key] = fetchDestination(value);\n        }\n      });\n    }\n    return shadow(this, \"destinations\", dests);\n  }\n\n  getDestination(destinationId) {\n    const obj = this._readDests();\n    if (obj instanceof NameTree || obj instanceof Dict) {\n      return fetchDestination(obj.get(destinationId) || null);\n    }\n    return null;\n  }\n\n  /**\n   * @private\n   */\n  _readDests() {\n    const obj = this.catDict.get(\"Names\");\n    if (obj && obj.has(\"Dests\")) {\n      return new NameTree(obj.getRaw(\"Dests\"), this.xref);\n    } else if (this.catDict.has(\"Dests\")) {\n      // Simple destination dictionary.\n      return this.catDict.get(\"Dests\");\n    }\n    return undefined;\n  }\n\n  get pageLabels() {\n    let obj = null;\n    try {\n      obj = this._readPageLabels();\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable to read page labels.\");\n    }\n    return shadow(this, \"pageLabels\", obj);\n  }\n\n  /**\n   * @private\n   */\n  _readPageLabels() {\n    const obj = this.catDict.getRaw(\"PageLabels\");\n    if (!obj) {\n      return null;\n    }\n\n    const pageLabels = new Array(this.numPages);\n    let style = null,\n      prefix = \"\";\n\n    const numberTree = new NumberTree(obj, this.xref);\n    const nums = numberTree.getAll();\n    let currentLabel = \"\",\n      currentIndex = 1;\n\n    for (let i = 0, ii = this.numPages; i < ii; i++) {\n      if (i in nums) {\n        const labelDict = nums[i];\n        if (!isDict(labelDict)) {\n          throw new FormatError(\"PageLabel is not a dictionary.\");\n        }\n\n        if (\n          labelDict.has(\"Type\") &&\n          !isName(labelDict.get(\"Type\"), \"PageLabel\")\n        ) {\n          throw new FormatError(\"Invalid type in PageLabel dictionary.\");\n        }\n\n        if (labelDict.has(\"S\")) {\n          const s = labelDict.get(\"S\");\n          if (!isName(s)) {\n            throw new FormatError(\"Invalid style in PageLabel dictionary.\");\n          }\n          style = s.name;\n        } else {\n          style = null;\n        }\n\n        if (labelDict.has(\"P\")) {\n          const p = labelDict.get(\"P\");\n          if (!isString(p)) {\n            throw new FormatError(\"Invalid prefix in PageLabel dictionary.\");\n          }\n          prefix = stringToPDFString(p);\n        } else {\n          prefix = \"\";\n        }\n\n        if (labelDict.has(\"St\")) {\n          const st = labelDict.get(\"St\");\n          if (!(Number.isInteger(st) && st >= 1)) {\n            throw new FormatError(\"Invalid start in PageLabel dictionary.\");\n          }\n          currentIndex = st;\n        } else {\n          currentIndex = 1;\n        }\n      }\n\n      switch (style) {\n        case \"D\":\n          currentLabel = currentIndex;\n          break;\n        case \"R\":\n        case \"r\":\n          currentLabel = toRomanNumerals(currentIndex, style === \"r\");\n          break;\n        case \"A\":\n        case \"a\":\n          const LIMIT = 26; // Use only the characters A-Z, or a-z.\n          const A_UPPER_CASE = 0x41,\n            A_LOWER_CASE = 0x61;\n\n          const baseCharCode = style === \"a\" ? A_LOWER_CASE : A_UPPER_CASE;\n          const letterIndex = currentIndex - 1;\n          const character = String.fromCharCode(\n            baseCharCode + (letterIndex % LIMIT)\n          );\n          const charBuf = [];\n          for (let j = 0, jj = (letterIndex / LIMIT) | 0; j <= jj; j++) {\n            charBuf.push(character);\n          }\n          currentLabel = charBuf.join(\"\");\n          break;\n        default:\n          if (style) {\n            throw new FormatError(\n              `Invalid style \"${style}\" in PageLabel dictionary.`\n            );\n          }\n          currentLabel = \"\";\n      }\n\n      pageLabels[i] = prefix + currentLabel;\n      currentIndex++;\n    }\n    return pageLabels;\n  }\n\n  get pageLayout() {\n    const obj = this.catDict.get(\"PageLayout\");\n    // Purposely use a non-standard default value, rather than 'SinglePage', to\n    // allow differentiating between `undefined` and /SinglePage since that does\n    // affect the Scroll mode (continuous/non-continuous) used in Adobe Reader.\n    let pageLayout = \"\";\n\n    if (isName(obj)) {\n      switch (obj.name) {\n        case \"SinglePage\":\n        case \"OneColumn\":\n        case \"TwoColumnLeft\":\n        case \"TwoColumnRight\":\n        case \"TwoPageLeft\":\n        case \"TwoPageRight\":\n          pageLayout = obj.name;\n      }\n    }\n    return shadow(this, \"pageLayout\", pageLayout);\n  }\n\n  get pageMode() {\n    const obj = this.catDict.get(\"PageMode\");\n    let pageMode = \"UseNone\"; // Default value.\n\n    if (isName(obj)) {\n      switch (obj.name) {\n        case \"UseNone\":\n        case \"UseOutlines\":\n        case \"UseThumbs\":\n        case \"FullScreen\":\n        case \"UseOC\":\n        case \"UseAttachments\":\n          pageMode = obj.name;\n      }\n    }\n    return shadow(this, \"pageMode\", pageMode);\n  }\n\n  get viewerPreferences() {\n    const ViewerPreferencesValidators = {\n      HideToolbar: isBool,\n      HideMenubar: isBool,\n      HideWindowUI: isBool,\n      FitWindow: isBool,\n      CenterWindow: isBool,\n      DisplayDocTitle: isBool,\n      NonFullScreenPageMode: isName,\n      Direction: isName,\n      ViewArea: isName,\n      ViewClip: isName,\n      PrintArea: isName,\n      PrintClip: isName,\n      PrintScaling: isName,\n      Duplex: isName,\n      PickTrayByPDFSize: isBool,\n      PrintPageRange: Array.isArray,\n      NumCopies: Number.isInteger,\n    };\n\n    const obj = this.catDict.get(\"ViewerPreferences\");\n    let prefs = null;\n\n    if (isDict(obj)) {\n      for (const key in ViewerPreferencesValidators) {\n        if (!obj.has(key)) {\n          continue;\n        }\n        const value = obj.get(key);\n        // Make sure the (standard) value conforms to the specification.\n        if (!ViewerPreferencesValidators[key](value)) {\n          info(`Bad value in ViewerPreferences for \"${key}\".`);\n          continue;\n        }\n        let prefValue;\n\n        switch (key) {\n          case \"NonFullScreenPageMode\":\n            switch (value.name) {\n              case \"UseNone\":\n              case \"UseOutlines\":\n              case \"UseThumbs\":\n              case \"UseOC\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"UseNone\";\n            }\n            break;\n          case \"Direction\":\n            switch (value.name) {\n              case \"L2R\":\n              case \"R2L\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"L2R\";\n            }\n            break;\n          case \"ViewArea\":\n          case \"ViewClip\":\n          case \"PrintArea\":\n          case \"PrintClip\":\n            switch (value.name) {\n              case \"MediaBox\":\n              case \"CropBox\":\n              case \"BleedBox\":\n              case \"TrimBox\":\n              case \"ArtBox\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"CropBox\";\n            }\n            break;\n          case \"PrintScaling\":\n            switch (value.name) {\n              case \"None\":\n              case \"AppDefault\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"AppDefault\";\n            }\n            break;\n          case \"Duplex\":\n            switch (value.name) {\n              case \"Simplex\":\n              case \"DuplexFlipShortEdge\":\n              case \"DuplexFlipLongEdge\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"None\";\n            }\n            break;\n          case \"PrintPageRange\":\n            const length = value.length;\n            if (length % 2 !== 0) {\n              // The number of elements must be even.\n              break;\n            }\n            const isValid = value.every((page, i, arr) => {\n              return (\n                Number.isInteger(page) &&\n                page > 0 &&\n                (i === 0 || page >= arr[i - 1]) &&\n                page <= this.numPages\n              );\n            });\n            if (isValid) {\n              prefValue = value;\n            }\n            break;\n          case \"NumCopies\":\n            if (value > 0) {\n              prefValue = value;\n            }\n            break;\n          default:\n            if (typeof value !== \"boolean\") {\n              throw new FormatError(\n                `viewerPreferences - expected a boolean value for: ${key}`\n              );\n            }\n            prefValue = value;\n        }\n\n        if (prefValue !== undefined) {\n          if (!prefs) {\n            prefs = Object.create(null);\n          }\n          prefs[key] = prefValue;\n        } else {\n          info(`Bad value in ViewerPreferences for \"${key}\".`);\n        }\n      }\n    }\n    return shadow(this, \"viewerPreferences\", prefs);\n  }\n\n  /**\n   * NOTE: \"JavaScript\" actions are, for now, handled by `get javaScript` below.\n   */\n  get openAction() {\n    const obj = this.catDict.get(\"OpenAction\");\n    let openAction = null;\n\n    if (isDict(obj)) {\n      // Convert the OpenAction dictionary into a format that works with\n      // `parseDestDictionary`, to avoid having to re-implement those checks.\n      const destDict = new Dict(this.xref);\n      destDict.set(\"A\", obj);\n\n      const resultObj = { url: null, dest: null, action: null };\n      Catalog.parseDestDictionary({ destDict, resultObj });\n\n      if (Array.isArray(resultObj.dest)) {\n        if (!openAction) {\n          openAction = Object.create(null);\n        }\n        openAction.dest = resultObj.dest;\n      } else if (resultObj.action) {\n        if (!openAction) {\n          openAction = Object.create(null);\n        }\n        openAction.action = resultObj.action;\n      }\n    } else if (Array.isArray(obj)) {\n      if (!openAction) {\n        openAction = Object.create(null);\n      }\n      openAction.dest = obj;\n    }\n    return shadow(this, \"openAction\", openAction);\n  }\n\n  get attachments() {\n    const obj = this.catDict.get(\"Names\");\n    let attachments = null;\n\n    if (obj && obj.has(\"EmbeddedFiles\")) {\n      const nameTree = new NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n      const names = nameTree.getAll();\n      for (const name in names) {\n        const fs = new FileSpec(names[name], this.xref);\n        if (!attachments) {\n          attachments = Object.create(null);\n        }\n        attachments[stringToPDFString(name)] = fs.serializable;\n      }\n    }\n    return shadow(this, \"attachments\", attachments);\n  }\n\n  get javaScript() {\n    const obj = this.catDict.get(\"Names\");\n\n    let javaScript = null;\n    function appendIfJavaScriptDict(jsDict) {\n      const type = jsDict.get(\"S\");\n      if (!isName(type, \"JavaScript\")) {\n        return;\n      }\n\n      let js = jsDict.get(\"JS\");\n      if (isStream(js)) {\n        js = bytesToString(js.getBytes());\n      } else if (!isString(js)) {\n        return;\n      }\n\n      if (!javaScript) {\n        javaScript = [];\n      }\n      javaScript.push(stringToPDFString(js));\n    }\n\n    if (obj && obj.has(\"JavaScript\")) {\n      const nameTree = new NameTree(obj.getRaw(\"JavaScript\"), this.xref);\n      const names = nameTree.getAll();\n      for (const name in names) {\n        // We don't use most JavaScript in PDF documents. This code is\n        // defensive so we don't cause errors on document load.\n        const jsDict = names[name];\n        if (isDict(jsDict)) {\n          appendIfJavaScriptDict(jsDict);\n        }\n      }\n    }\n\n    // Append OpenAction \"JavaScript\" actions to the JavaScript array.\n    const openAction = this.catDict.get(\"OpenAction\");\n    if (isDict(openAction) && isName(openAction.get(\"S\"), \"JavaScript\")) {\n      appendIfJavaScriptDict(openAction);\n    }\n\n    return shadow(this, \"javaScript\", javaScript);\n  }\n\n  fontFallback(id, handler) {\n    const promises = [];\n    this.fontCache.forEach(function (promise) {\n      promises.push(promise);\n    });\n\n    return Promise.all(promises).then(translatedFonts => {\n      for (const translatedFont of translatedFonts) {\n        if (translatedFont.loadedName === id) {\n          translatedFont.fallback(handler);\n          return;\n        }\n      }\n    });\n  }\n\n  cleanup(manuallyTriggered = false) {\n    clearPrimitiveCaches();\n    this.globalImageCache.clear(/* onlyData = */ manuallyTriggered);\n    this.pageKidsCountCache.clear();\n\n    const promises = [];\n    this.fontCache.forEach(function (promise) {\n      promises.push(promise);\n    });\n\n    return Promise.all(promises).then(translatedFonts => {\n      for (const { dict } of translatedFonts) {\n        delete dict.translated;\n      }\n      this.fontCache.clear();\n      this.builtInCMapCache.clear();\n    });\n  }\n\n  getPageDict(pageIndex) {\n    const capability = createPromiseCapability();\n    const nodesToVisit = [this.catDict.getRaw(\"Pages\")];\n    const visitedNodes = new RefSet();\n    const xref = this.xref,\n      pageKidsCountCache = this.pageKidsCountCache;\n    let count,\n      currentPageIndex = 0;\n\n    function next() {\n      while (nodesToVisit.length) {\n        const currentNode = nodesToVisit.pop();\n\n        if (isRef(currentNode)) {\n          count = pageKidsCountCache.get(currentNode);\n          // Skip nodes where the page can't be.\n          if (count > 0 && currentPageIndex + count < pageIndex) {\n            currentPageIndex += count;\n            continue;\n          }\n          // Prevent circular references in the /Pages tree.\n          if (visitedNodes.has(currentNode)) {\n            capability.reject(\n              new FormatError(\"Pages tree contains circular reference.\")\n            );\n            return;\n          }\n          visitedNodes.put(currentNode);\n\n          xref.fetchAsync(currentNode).then(function (obj) {\n            if (isDict(obj, \"Page\") || (isDict(obj) && !obj.has(\"Kids\"))) {\n              if (pageIndex === currentPageIndex) {\n                // Cache the Page reference, since it can *greatly* improve\n                // performance by reducing redundant lookups in long documents\n                // where all nodes are found at *one* level of the tree.\n                if (currentNode && !pageKidsCountCache.has(currentNode)) {\n                  pageKidsCountCache.put(currentNode, 1);\n                }\n                capability.resolve([obj, currentNode]);\n              } else {\n                currentPageIndex++;\n                next();\n              }\n              return;\n            }\n            nodesToVisit.push(obj);\n            next();\n          }, capability.reject);\n          return;\n        }\n\n        // Must be a child page dictionary.\n        if (!isDict(currentNode)) {\n          capability.reject(\n            new FormatError(\n              \"Page dictionary kid reference points to wrong type of object.\"\n            )\n          );\n          return;\n        }\n\n        count = currentNode.get(\"Count\");\n        if (Number.isInteger(count) && count >= 0) {\n          // Cache the Kids count, since it can reduce redundant lookups in\n          // documents where all nodes are found at *one* level of the tree.\n          const objId = currentNode.objId;\n          if (objId && !pageKidsCountCache.has(objId)) {\n            pageKidsCountCache.put(objId, count);\n          }\n          // Skip nodes where the page can't be.\n          if (currentPageIndex + count <= pageIndex) {\n            currentPageIndex += count;\n            continue;\n          }\n        }\n\n        const kids = currentNode.get(\"Kids\");\n        if (!Array.isArray(kids)) {\n          // Prevent errors in corrupt PDF documents that violate the\n          // specification by *inlining* Page dicts directly in the Kids\n          // array, rather than using indirect objects (fixes issue9540.pdf).\n          if (\n            isName(currentNode.get(\"Type\"), \"Page\") ||\n            (!currentNode.has(\"Type\") && currentNode.has(\"Contents\"))\n          ) {\n            if (currentPageIndex === pageIndex) {\n              capability.resolve([currentNode, null]);\n              return;\n            }\n            currentPageIndex++;\n            continue;\n          }\n\n          capability.reject(\n            new FormatError(\"Page dictionary kids object is not an array.\")\n          );\n          return;\n        }\n\n        // Always check all `Kids` nodes, to avoid getting stuck in an empty\n        // node further down in the tree (see issue5644.pdf, issue8088.pdf),\n        // and to ensure that we actually find the correct `Page` dict.\n        for (let last = kids.length - 1; last >= 0; last--) {\n          nodesToVisit.push(kids[last]);\n        }\n      }\n      capability.reject(new Error(`Page index ${pageIndex} not found.`));\n    }\n    next();\n    return capability.promise;\n  }\n\n  getPageIndex(pageRef) {\n    // The page tree nodes have the count of all the leaves below them. To get\n    // how many pages are before we just have to walk up the tree and keep\n    // adding the count of siblings to the left of the node.\n    const xref = this.xref;\n\n    function pagesBeforeRef(kidRef) {\n      let total = 0,\n        parentRef;\n\n      return xref\n        .fetchAsync(kidRef)\n        .then(function (node) {\n          if (\n            isRefsEqual(kidRef, pageRef) &&\n            !isDict(node, \"Page\") &&\n            !(isDict(node) && !node.has(\"Type\") && node.has(\"Contents\"))\n          ) {\n            throw new FormatError(\n              \"The reference does not point to a /Page dictionary.\"\n            );\n          }\n          if (!node) {\n            return null;\n          }\n          if (!isDict(node)) {\n            throw new FormatError(\"Node must be a dictionary.\");\n          }\n          parentRef = node.getRaw(\"Parent\");\n          return node.getAsync(\"Parent\");\n        })\n        .then(function (parent) {\n          if (!parent) {\n            return null;\n          }\n          if (!isDict(parent)) {\n            throw new FormatError(\"Parent must be a dictionary.\");\n          }\n          return parent.getAsync(\"Kids\");\n        })\n        .then(function (kids) {\n          if (!kids) {\n            return null;\n          }\n\n          const kidPromises = [];\n          let found = false;\n          for (let i = 0, ii = kids.length; i < ii; i++) {\n            const kid = kids[i];\n            if (!isRef(kid)) {\n              throw new FormatError(\"Kid must be a reference.\");\n            }\n            if (isRefsEqual(kid, kidRef)) {\n              found = true;\n              break;\n            }\n            kidPromises.push(\n              xref.fetchAsync(kid).then(function (obj) {\n                if (!isDict(obj)) {\n                  throw new FormatError(\"Kid node must be a dictionary.\");\n                }\n                if (obj.has(\"Count\")) {\n                  total += obj.get(\"Count\");\n                } else {\n                  // Page leaf node.\n                  total++;\n                }\n              })\n            );\n          }\n          if (!found) {\n            throw new FormatError(\"Kid reference not found in parent's kids.\");\n          }\n          return Promise.all(kidPromises).then(function () {\n            return [total, parentRef];\n          });\n        });\n    }\n\n    let total = 0;\n    function next(ref) {\n      return pagesBeforeRef(ref).then(function (args) {\n        if (!args) {\n          return total;\n        }\n        const [count, parentRef] = args;\n        total += count;\n        return next(parentRef);\n      });\n    }\n\n    return next(pageRef);\n  }\n\n  /**\n   * @typedef ParseDestDictionaryParameters\n   * @property {Dict} destDict - The dictionary containing the destination.\n   * @property {Object} resultObj - The object where the parsed destination\n   *   properties will be placed.\n   * @property {string} [docBaseUrl] - The document base URL that is used when\n   *   attempting to recover valid absolute URLs from relative ones.\n   */\n\n  /**\n   * Helper function used to parse the contents of destination dictionaries.\n   * @param {ParseDestDictionaryParameters} params\n   */\n  static parseDestDictionary(params) {\n    // Lets URLs beginning with 'www.' default to using the 'http://' protocol.\n    function addDefaultProtocolToUrl(url) {\n      return url.startsWith(\"www.\") ? `http://${url}` : url;\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 Bugzilla 1122280.\n    function tryConvertUrlEncoding(url) {\n      try {\n        return stringToUTF8String(url);\n      } catch (e) {\n        return url;\n      }\n    }\n\n    const destDict = params.destDict;\n    if (!isDict(destDict)) {\n      warn(\"parseDestDictionary: `destDict` must be a dictionary.\");\n      return;\n    }\n    const resultObj = params.resultObj;\n    if (typeof resultObj !== \"object\") {\n      warn(\"parseDestDictionary: `resultObj` must be an object.\");\n      return;\n    }\n    const docBaseUrl = params.docBaseUrl || null;\n\n    let action = destDict.get(\"A\"),\n      url,\n      dest;\n    if (!isDict(action) && destDict.has(\"Dest\")) {\n      // A /Dest entry should *only* contain a Name or an Array, but some bad\n      // PDF generators ignore that and treat it as an /A entry.\n      action = destDict.get(\"Dest\");\n    }\n\n    if (isDict(action)) {\n      const actionType = action.get(\"S\");\n      if (!isName(actionType)) {\n        warn(\"parseDestDictionary: Invalid type in Action dictionary.\");\n        return;\n      }\n      const actionName = actionType.name;\n\n      switch (actionName) {\n        case \"URI\":\n          url = action.get(\"URI\");\n          if (isName(url)) {\n            // Some bad PDFs do not put parentheses around relative URLs.\n            url = \"/\" + url.name;\n          } else if (isString(url)) {\n            url = addDefaultProtocolToUrl(url);\n          }\n          // TODO: pdf spec mentions urls can be relative to a Base\n          // entry in the dictionary.\n          break;\n\n        case \"GoTo\":\n          dest = action.get(\"D\");\n          break;\n\n        case \"Launch\":\n        // We neither want, nor can, support arbitrary 'Launch' actions.\n        // However, in practice they are mostly used for linking to other PDF\n        // files, which we thus attempt to support (utilizing `docBaseUrl`).\n        /* falls through */\n\n        case \"GoToR\":\n          const urlDict = action.get(\"F\");\n          if (isDict(urlDict)) {\n            // We assume that we found a FileSpec dictionary\n            // and fetch the URL without checking any further.\n            url = urlDict.get(\"F\") || null;\n          } else if (isString(urlDict)) {\n            url = urlDict;\n          }\n\n          // NOTE: the destination is relative to the *remote* document.\n          let remoteDest = action.get(\"D\");\n          if (remoteDest) {\n            if (isName(remoteDest)) {\n              remoteDest = remoteDest.name;\n            }\n            if (isString(url)) {\n              const baseUrl = url.split(\"#\")[0];\n              if (isString(remoteDest)) {\n                url = baseUrl + \"#\" + remoteDest;\n              } else if (Array.isArray(remoteDest)) {\n                url = baseUrl + \"#\" + JSON.stringify(remoteDest);\n              }\n            }\n          }\n          // The 'NewWindow' property, equal to `LinkTarget.BLANK`.\n          const newWindow = action.get(\"NewWindow\");\n          if (isBool(newWindow)) {\n            resultObj.newWindow = newWindow;\n          }\n          break;\n\n        case \"Named\":\n          const namedAction = action.get(\"N\");\n          if (isName(namedAction)) {\n            resultObj.action = namedAction.name;\n          }\n          break;\n\n        case \"JavaScript\":\n          const jsAction = action.get(\"JS\");\n          let js;\n\n          if (isStream(jsAction)) {\n            js = bytesToString(jsAction.getBytes());\n          } else if (isString(jsAction)) {\n            js = jsAction;\n          }\n\n          if (js) {\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            const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\"];\n            const regex = new RegExp(\n              \"^\\\\s*(\" +\n                URL_OPEN_METHODS.join(\"|\").split(\".\").join(\"\\\\.\") +\n                \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n              \"i\"\n            );\n\n            const jsUrl = regex.exec(stringToPDFString(js));\n            if (jsUrl && jsUrl[2]) {\n              url = jsUrl[2];\n\n              if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n                resultObj.newWindow = true;\n              }\n              break;\n            }\n          }\n        /* falls through */\n        default:\n          warn(`parseDestDictionary: unsupported action type \"${actionName}\".`);\n          break;\n      }\n    } else if (destDict.has(\"Dest\")) {\n      // Simple destination.\n      dest = destDict.get(\"Dest\");\n    }\n\n    if (isString(url)) {\n      url = tryConvertUrlEncoding(url);\n      const absoluteUrl = createValidAbsoluteUrl(url, docBaseUrl);\n      if (absoluteUrl) {\n        resultObj.url = absoluteUrl.href;\n      }\n      resultObj.unsafeUrl = url;\n    }\n    if (dest) {\n      if (isName(dest)) {\n        dest = dest.name;\n      }\n      if (isString(dest) || Array.isArray(dest)) {\n        resultObj.dest = dest;\n      }\n    }\n  }\n}\n\nvar XRef = (function XRefClosure() {\n  // eslint-disable-next-line no-shadow\n  function XRef(stream, pdfManager) {\n    this.stream = stream;\n    this.pdfManager = pdfManager;\n    this.entries = [];\n    this.xrefstms = Object.create(null);\n    this._cacheMap = new Map(); // Prepare the XRef cache.\n    this.stats = {\n      streamTypes: Object.create(null),\n      fontTypes: Object.create(null),\n    };\n  }\n\n  XRef.prototype = {\n    setStartXRef: function XRef_setStartXRef(startXRef) {\n      // Store the starting positions of xref tables as we process them\n      // so we can recover from missing data errors\n      this.startXRefQueue = [startXRef];\n    },\n\n    parse: function XRef_parse(recoveryMode) {\n      var trailerDict;\n      if (!recoveryMode) {\n        trailerDict = this.readXRef();\n      } else {\n        warn(\"Indexing all PDF objects\");\n        trailerDict = this.indexObjects();\n      }\n      trailerDict.assignXref(this);\n      this.trailer = trailerDict;\n\n      let encrypt;\n      try {\n        encrypt = trailerDict.get(\"Encrypt\");\n      } catch (ex) {\n        if (ex instanceof MissingDataException) {\n          throw ex;\n        }\n        warn(`XRef.parse - Invalid \"Encrypt\" reference: \"${ex}\".`);\n      }\n      if (isDict(encrypt)) {\n        var ids = trailerDict.get(\"ID\");\n        var fileId = ids && ids.length ? ids[0] : \"\";\n        // The 'Encrypt' dictionary itself should not be encrypted, and by\n        // setting `suppressEncryption` we can prevent an infinite loop inside\n        // of `XRef_fetchUncompressed` if the dictionary contains indirect\n        // objects (fixes issue7665.pdf).\n        encrypt.suppressEncryption = true;\n        this.encrypt = new CipherTransformFactory(\n          encrypt,\n          fileId,\n          this.pdfManager.password\n        );\n      }\n\n      // Get the root dictionary (catalog) object, and do some basic validation.\n      let root;\n      try {\n        root = trailerDict.get(\"Root\");\n      } catch (ex) {\n        if (ex instanceof MissingDataException) {\n          throw ex;\n        }\n        warn(`XRef.parse - Invalid \"Root\" reference: \"${ex}\".`);\n      }\n      if (isDict(root) && root.has(\"Pages\")) {\n        this.root = root;\n      } else {\n        if (!recoveryMode) {\n          throw new XRefParseException();\n        }\n        throw new FormatError(\"Invalid root reference\");\n      }\n    },\n\n    processXRefTable: function XRef_processXRefTable(parser) {\n      if (!(\"tableState\" in this)) {\n        // Stores state of the table as we process it so we can resume\n        // from middle of table in case of missing data error\n        this.tableState = {\n          entryNum: 0,\n          streamPos: parser.lexer.stream.pos,\n          parserBuf1: parser.buf1,\n          parserBuf2: parser.buf2,\n        };\n      }\n\n      var obj = this.readXRefTable(parser);\n\n      // Sanity check\n      if (!isCmd(obj, \"trailer\")) {\n        throw new FormatError(\n          \"Invalid XRef table: could not find trailer dictionary\"\n        );\n      }\n      // Read trailer dictionary, e.g.\n      // trailer\n      //    << /Size 22\n      //      /Root 20R\n      //      /Info 10R\n      //      /ID [ <81b14aafa313db63dbd6f981e49f94f4> ]\n      //    >>\n      // The parser goes through the entire stream << ... >> and provides\n      // a getter interface for the key-value table\n      var dict = parser.getObj();\n\n      // The pdflib PDF generator can generate a nested trailer dictionary\n      if (!isDict(dict) && dict.dict) {\n        dict = dict.dict;\n      }\n      if (!isDict(dict)) {\n        throw new FormatError(\n          \"Invalid XRef table: could not parse trailer dictionary\"\n        );\n      }\n      delete this.tableState;\n\n      return dict;\n    },\n\n    readXRefTable: function XRef_readXRefTable(parser) {\n      // Example of cross-reference table:\n      // xref\n      // 0 1                    <-- subsection header (first obj #, obj count)\n      // 0000000000 65535 f     <-- actual object (offset, generation #, f/n)\n      // 23 2                   <-- subsection header ... and so on ...\n      // 0000025518 00002 n\n      // 0000025635 00000 n\n      // trailer\n      // ...\n\n      var stream = parser.lexer.stream;\n      var tableState = this.tableState;\n      stream.pos = tableState.streamPos;\n      parser.buf1 = tableState.parserBuf1;\n      parser.buf2 = tableState.parserBuf2;\n\n      // Outer loop is over subsection headers\n      var obj;\n\n      while (true) {\n        if (!(\"firstEntryNum\" in tableState) || !(\"entryCount\" in tableState)) {\n          if (isCmd((obj = parser.getObj()), \"trailer\")) {\n            break;\n          }\n          tableState.firstEntryNum = obj;\n          tableState.entryCount = parser.getObj();\n        }\n\n        var first = tableState.firstEntryNum;\n        var count = tableState.entryCount;\n        if (!Number.isInteger(first) || !Number.isInteger(count)) {\n          throw new FormatError(\n            \"Invalid XRef table: wrong types in subsection header\"\n          );\n        }\n        // Inner loop is over objects themselves\n        for (var i = tableState.entryNum; i < count; i++) {\n          tableState.streamPos = stream.pos;\n          tableState.entryNum = i;\n          tableState.parserBuf1 = parser.buf1;\n          tableState.parserBuf2 = parser.buf2;\n\n          var entry = {};\n          entry.offset = parser.getObj();\n          entry.gen = parser.getObj();\n          var type = parser.getObj();\n\n          if (type instanceof Cmd) {\n            switch (type.cmd) {\n              case \"f\":\n                entry.free = true;\n                break;\n              case \"n\":\n                entry.uncompressed = true;\n                break;\n            }\n          }\n\n          // Validate entry obj\n          if (\n            !Number.isInteger(entry.offset) ||\n            !Number.isInteger(entry.gen) ||\n            !(entry.free || entry.uncompressed)\n          ) {\n            throw new FormatError(\n              `Invalid entry in XRef subsection: ${first}, ${count}`\n            );\n          }\n\n          // The first xref table entry, i.e. obj 0, should be free. Attempting\n          // to adjust an incorrect first obj # (fixes issue 3248 and 7229).\n          if (i === 0 && entry.free && first === 1) {\n            first = 0;\n          }\n\n          if (!this.entries[i + first]) {\n            this.entries[i + first] = entry;\n          }\n        }\n\n        tableState.entryNum = 0;\n        tableState.streamPos = stream.pos;\n        tableState.parserBuf1 = parser.buf1;\n        tableState.parserBuf2 = parser.buf2;\n        delete tableState.firstEntryNum;\n        delete tableState.entryCount;\n      }\n\n      // Sanity check: as per spec, first object must be free\n      if (this.entries[0] && !this.entries[0].free) {\n        throw new FormatError(\"Invalid XRef table: unexpected first object\");\n      }\n      return obj;\n    },\n\n    processXRefStream: function XRef_processXRefStream(stream) {\n      if (!(\"streamState\" in this)) {\n        // Stores state of the stream as we process it so we can resume\n        // from middle of stream in case of missing data error\n        var streamParameters = stream.dict;\n        var byteWidths = streamParameters.get(\"W\");\n        var range = streamParameters.get(\"Index\");\n        if (!range) {\n          range = [0, streamParameters.get(\"Size\")];\n        }\n\n        this.streamState = {\n          entryRanges: range,\n          byteWidths,\n          entryNum: 0,\n          streamPos: stream.pos,\n        };\n      }\n      this.readXRefStream(stream);\n      delete this.streamState;\n\n      return stream.dict;\n    },\n\n    readXRefStream: function XRef_readXRefStream(stream) {\n      var i, j;\n      var streamState = this.streamState;\n      stream.pos = streamState.streamPos;\n\n      var byteWidths = streamState.byteWidths;\n      var typeFieldWidth = byteWidths[0];\n      var offsetFieldWidth = byteWidths[1];\n      var generationFieldWidth = byteWidths[2];\n\n      var entryRanges = streamState.entryRanges;\n      while (entryRanges.length > 0) {\n        var first = entryRanges[0];\n        var n = entryRanges[1];\n\n        if (!Number.isInteger(first) || !Number.isInteger(n)) {\n          throw new FormatError(`Invalid XRef range fields: ${first}, ${n}`);\n        }\n        if (\n          !Number.isInteger(typeFieldWidth) ||\n          !Number.isInteger(offsetFieldWidth) ||\n          !Number.isInteger(generationFieldWidth)\n        ) {\n          throw new FormatError(\n            `Invalid XRef entry fields length: ${first}, ${n}`\n          );\n        }\n        for (i = streamState.entryNum; i < n; ++i) {\n          streamState.entryNum = i;\n          streamState.streamPos = stream.pos;\n\n          var type = 0,\n            offset = 0,\n            generation = 0;\n          for (j = 0; j < typeFieldWidth; ++j) {\n            type = (type << 8) | stream.getByte();\n          }\n          // if type field is absent, its default value is 1\n          if (typeFieldWidth === 0) {\n            type = 1;\n          }\n          for (j = 0; j < offsetFieldWidth; ++j) {\n            offset = (offset << 8) | stream.getByte();\n          }\n          for (j = 0; j < generationFieldWidth; ++j) {\n            generation = (generation << 8) | stream.getByte();\n          }\n          var entry = {};\n          entry.offset = offset;\n          entry.gen = generation;\n          switch (type) {\n            case 0:\n              entry.free = true;\n              break;\n            case 1:\n              entry.uncompressed = true;\n              break;\n            case 2:\n              break;\n            default:\n              throw new FormatError(`Invalid XRef entry type: ${type}`);\n          }\n          if (!this.entries[first + i]) {\n            this.entries[first + i] = entry;\n          }\n        }\n\n        streamState.entryNum = 0;\n        streamState.streamPos = stream.pos;\n        entryRanges.splice(0, 2);\n      }\n    },\n\n    indexObjects: function XRef_indexObjects() {\n      // Simple scan through the PDF content to find objects,\n      // trailers and XRef streams.\n      var TAB = 0x9,\n        LF = 0xa,\n        CR = 0xd,\n        SPACE = 0x20;\n      var PERCENT = 0x25,\n        LT = 0x3c;\n\n      function readToken(data, offset) {\n        var token = \"\",\n          ch = data[offset];\n        while (ch !== LF && ch !== CR && ch !== LT) {\n          if (++offset >= data.length) {\n            break;\n          }\n          token += String.fromCharCode(ch);\n          ch = data[offset];\n        }\n        return token;\n      }\n      function skipUntil(data, offset, what) {\n        var length = what.length,\n          dataLength = data.length;\n        var skipped = 0;\n        // finding byte sequence\n        while (offset < dataLength) {\n          var i = 0;\n          while (i < length && data[offset + i] === what[i]) {\n            ++i;\n          }\n          if (i >= length) {\n            break; // sequence found\n          }\n          offset++;\n          skipped++;\n        }\n        return skipped;\n      }\n      var objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n      const endobjRegExp = /\\bendobj[\\b\\s]$/;\n      const nestedObjRegExp = /\\s+(\\d+\\s+\\d+\\s+obj[\\b\\s<])$/;\n      const CHECK_CONTENT_LENGTH = 25;\n\n      var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n      // prettier-ignore\n      var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114,\n                                           101, 102]);\n      const objBytes = new Uint8Array([111, 98, 106]);\n      var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n\n      // Clear out any existing entries, since they may be bogus.\n      this.entries.length = 0;\n\n      var stream = this.stream;\n      stream.pos = 0;\n      var buffer = stream.getBytes();\n      var position = stream.start,\n        length = buffer.length;\n      var trailers = [],\n        xrefStms = [];\n      while (position < length) {\n        var ch = buffer[position];\n        if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n          ++position;\n          continue;\n        }\n        if (ch === PERCENT) {\n          // %-comment\n          do {\n            ++position;\n            if (position >= length) {\n              break;\n            }\n            ch = buffer[position];\n          } while (ch !== LF && ch !== CR);\n          continue;\n        }\n        var token = readToken(buffer, position);\n        var m;\n        if (\n          token.startsWith(\"xref\") &&\n          (token.length === 4 || /\\s/.test(token[4]))\n        ) {\n          position += skipUntil(buffer, position, trailerBytes);\n          trailers.push(position);\n          position += skipUntil(buffer, position, startxrefBytes);\n        } else if ((m = objRegExp.exec(token))) {\n          const num = m[1] | 0,\n            gen = m[2] | 0;\n          if (!this.entries[num] || this.entries[num].gen === gen) {\n            this.entries[num] = {\n              offset: position - stream.start,\n              gen,\n              uncompressed: true,\n            };\n          }\n          let contentLength,\n            startPos = position + token.length;\n\n          // Find the next \"obj\" string, rather than \"endobj\", to ensure that\n          // we won't skip over a new 'obj' operator in corrupt files where\n          // 'endobj' operators are missing (fixes issue9105_reduced.pdf).\n          while (startPos < buffer.length) {\n            const endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4;\n            contentLength = endPos - position;\n\n            const checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos);\n            const tokenStr = bytesToString(buffer.subarray(checkPos, endPos));\n\n            // Check if the current object ends with an 'endobj' operator.\n            if (endobjRegExp.test(tokenStr)) {\n              break;\n            } else {\n              // Check if an \"obj\" occurrence is actually a new object,\n              // i.e. the current object is missing the 'endobj' operator.\n              const objToken = nestedObjRegExp.exec(tokenStr);\n\n              if (objToken && objToken[1]) {\n                warn(\n                  'indexObjects: Found new \"obj\" inside of another \"obj\", ' +\n                    'caused by missing \"endobj\" -- trying to recover.'\n                );\n                contentLength -= objToken[1].length;\n                break;\n              }\n            }\n            startPos = endPos;\n          }\n          const content = buffer.subarray(position, position + contentLength);\n\n          // checking XRef stream suspect\n          // (it shall have '/XRef' and next char is not a letter)\n          var xrefTagOffset = skipUntil(content, 0, xrefBytes);\n          if (\n            xrefTagOffset < contentLength &&\n            content[xrefTagOffset + 5] < 64\n          ) {\n            xrefStms.push(position - stream.start);\n            this.xrefstms[position - stream.start] = 1; // Avoid recursion\n          }\n\n          position += contentLength;\n        } else if (\n          token.startsWith(\"trailer\") &&\n          (token.length === 7 || /\\s/.test(token[7]))\n        ) {\n          trailers.push(position);\n          position += skipUntil(buffer, position, startxrefBytes);\n        } else {\n          position += token.length + 1;\n        }\n      }\n      // reading XRef streams\n      var i, ii;\n      for (i = 0, ii = xrefStms.length; i < ii; ++i) {\n        this.startXRefQueue.push(xrefStms[i]);\n        this.readXRef(/* recoveryMode */ true);\n      }\n      // finding main trailer\n      let trailerDict;\n      for (i = 0, ii = trailers.length; i < ii; ++i) {\n        stream.pos = trailers[i];\n        const parser = new Parser({\n          lexer: new Lexer(stream),\n          xref: this,\n          allowStreams: true,\n          recoveryMode: true,\n        });\n        var obj = parser.getObj();\n        if (!isCmd(obj, \"trailer\")) {\n          continue;\n        }\n        // read the trailer dictionary\n        const dict = parser.getObj();\n        if (!isDict(dict)) {\n          continue;\n        }\n        // Do some basic validation of the trailer/root dictionary candidate.\n        let rootDict;\n        try {\n          rootDict = dict.get(\"Root\");\n        } catch (ex) {\n          if (ex instanceof MissingDataException) {\n            throw ex;\n          }\n          continue;\n        }\n        if (!isDict(rootDict) || !rootDict.has(\"Pages\")) {\n          continue;\n        }\n        // taking the first one with 'ID'\n        if (dict.has(\"ID\")) {\n          return dict;\n        }\n        // The current dictionary is a candidate, but continue searching.\n        trailerDict = dict;\n      }\n      // No trailer with 'ID', taking last one (if exists).\n      if (trailerDict) {\n        return trailerDict;\n      }\n      // nothing helps\n      throw new InvalidPDFException(\"Invalid PDF structure.\");\n    },\n\n    readXRef: function XRef_readXRef(recoveryMode) {\n      var stream = this.stream;\n      // Keep track of already parsed XRef tables, to prevent an infinite loop\n      // when parsing corrupt PDF files where e.g. the /Prev entries create a\n      // circular dependency between tables (fixes bug1393476.pdf).\n      const startXRefParsedCache = Object.create(null);\n\n      try {\n        while (this.startXRefQueue.length) {\n          var startXRef = this.startXRefQueue[0];\n\n          if (startXRefParsedCache[startXRef]) {\n            warn(\"readXRef - skipping XRef table since it was already parsed.\");\n            this.startXRefQueue.shift();\n            continue;\n          }\n          startXRefParsedCache[startXRef] = true;\n\n          stream.pos = startXRef + stream.start;\n\n          const parser = new Parser({\n            lexer: new Lexer(stream),\n            xref: this,\n            allowStreams: true,\n          });\n          var obj = parser.getObj();\n          var dict;\n\n          // Get dictionary\n          if (isCmd(obj, \"xref\")) {\n            // Parse end-of-file XRef\n            dict = this.processXRefTable(parser);\n            if (!this.topDict) {\n              this.topDict = dict;\n            }\n\n            // Recursively get other XRefs 'XRefStm', if any\n            obj = dict.get(\"XRefStm\");\n            if (Number.isInteger(obj)) {\n              var pos = obj;\n              // ignore previously loaded xref streams\n              // (possible infinite recursion)\n              if (!(pos in this.xrefstms)) {\n                this.xrefstms[pos] = 1;\n                this.startXRefQueue.push(pos);\n              }\n            }\n          } else if (Number.isInteger(obj)) {\n            // Parse in-stream XRef\n            if (\n              !Number.isInteger(parser.getObj()) ||\n              !isCmd(parser.getObj(), \"obj\") ||\n              !isStream((obj = parser.getObj()))\n            ) {\n              throw new FormatError(\"Invalid XRef stream\");\n            }\n            dict = this.processXRefStream(obj);\n            if (!this.topDict) {\n              this.topDict = dict;\n            }\n            if (!dict) {\n              throw new FormatError(\"Failed to read XRef stream\");\n            }\n          } else {\n            throw new FormatError(\"Invalid XRef stream header\");\n          }\n\n          // Recursively get previous dictionary, if any\n          obj = dict.get(\"Prev\");\n          if (Number.isInteger(obj)) {\n            this.startXRefQueue.push(obj);\n          } else if (isRef(obj)) {\n            // The spec says Prev must not be a reference, i.e. \"/Prev NNN\"\n            // This is a fallback for non-compliant PDFs, i.e. \"/Prev NNN 0 R\"\n            this.startXRefQueue.push(obj.num);\n          }\n\n          this.startXRefQueue.shift();\n        }\n\n        return this.topDict;\n      } catch (e) {\n        if (e instanceof MissingDataException) {\n          throw e;\n        }\n        info(\"(while reading XRef): \" + e);\n      }\n\n      if (recoveryMode) {\n        return undefined;\n      }\n      throw new XRefParseException();\n    },\n\n    getEntry: function XRef_getEntry(i) {\n      var xrefEntry = this.entries[i];\n      if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n        return xrefEntry;\n      }\n      return null;\n    },\n\n    fetchIfRef: function XRef_fetchIfRef(obj, suppressEncryption) {\n      if (obj instanceof Ref) {\n        return this.fetch(obj, suppressEncryption);\n      }\n      return obj;\n    },\n\n    fetch: function XRef_fetch(ref, suppressEncryption) {\n      if (!(ref instanceof Ref)) {\n        throw new Error(\"ref object is not a reference\");\n      }\n      const num = ref.num;\n\n      // The XRef cache is populated with objects which are obtained through\n      // `Parser.getObj`, and indirectly via `Lexer.getObj`. Neither of these\n      // methods should ever return `undefined` (note the `assert` calls below).\n      const cacheEntry = this._cacheMap.get(num);\n      if (cacheEntry !== undefined) {\n        // In documents with Object Streams, it's possible that cached `Dict`s\n        // have not been assigned an `objId` yet (see e.g. issue3115r.pdf).\n        if (cacheEntry instanceof Dict && !cacheEntry.objId) {\n          cacheEntry.objId = ref.toString();\n        }\n        return cacheEntry;\n      }\n      let xrefEntry = this.getEntry(num);\n\n      if (xrefEntry === null) {\n        // The referenced entry can be free.\n        this._cacheMap.set(num, xrefEntry);\n        return xrefEntry;\n      }\n\n      if (xrefEntry.uncompressed) {\n        xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n      } else {\n        xrefEntry = this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n      }\n      if (isDict(xrefEntry)) {\n        xrefEntry.objId = ref.toString();\n      } else if (isStream(xrefEntry)) {\n        xrefEntry.dict.objId = ref.toString();\n      }\n      return xrefEntry;\n    },\n\n    fetchUncompressed(ref, xrefEntry, suppressEncryption = false) {\n      var gen = ref.gen;\n      var num = ref.num;\n      if (xrefEntry.gen !== gen) {\n        throw new XRefEntryException(`Inconsistent generation in XRef: ${ref}`);\n      }\n      var stream = this.stream.makeSubStream(\n        xrefEntry.offset + this.stream.start\n      );\n      const parser = new Parser({\n        lexer: new Lexer(stream),\n        xref: this,\n        allowStreams: true,\n      });\n      var obj1 = parser.getObj();\n      var obj2 = parser.getObj();\n      var obj3 = parser.getObj();\n\n      if (obj1 !== num || obj2 !== gen || !(obj3 instanceof Cmd)) {\n        throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n      }\n      if (obj3.cmd !== \"obj\") {\n        // some bad PDFs use \"obj1234\" and really mean 1234\n        if (obj3.cmd.startsWith(\"obj\")) {\n          num = parseInt(obj3.cmd.substring(3), 10);\n          if (!Number.isNaN(num)) {\n            return num;\n          }\n        }\n        throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n      }\n      if (this.encrypt && !suppressEncryption) {\n        xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n      } else {\n        xrefEntry = parser.getObj();\n      }\n      if (!isStream(xrefEntry)) {\n        if (\n          typeof PDFJSDev === \"undefined\" ||\n          PDFJSDev.test(\"!PRODUCTION || TESTING\")\n        ) {\n          assert(\n            xrefEntry !== undefined,\n            'fetchUncompressed: The \"xrefEntry\" cannot be undefined.'\n          );\n        }\n        this._cacheMap.set(num, xrefEntry);\n      }\n      return xrefEntry;\n    },\n\n    fetchCompressed(ref, xrefEntry, suppressEncryption = false) {\n      const tableOffset = xrefEntry.offset;\n      const stream = this.fetch(Ref.get(tableOffset, 0));\n      if (!isStream(stream)) {\n        throw new FormatError(\"bad ObjStm stream\");\n      }\n      const first = stream.dict.get(\"First\");\n      const n = stream.dict.get(\"N\");\n      if (!Number.isInteger(first) || !Number.isInteger(n)) {\n        throw new FormatError(\n          \"invalid first and n parameters for ObjStm stream\"\n        );\n      }\n      const parser = new Parser({\n        lexer: new Lexer(stream),\n        xref: this,\n        allowStreams: true,\n      });\n      const nums = new Array(n);\n      // read the object numbers to populate cache\n      for (let i = 0; i < n; ++i) {\n        const num = parser.getObj();\n        if (!Number.isInteger(num)) {\n          throw new FormatError(\n            `invalid object number in the ObjStm stream: ${num}`\n          );\n        }\n        const offset = parser.getObj();\n        if (!Number.isInteger(offset)) {\n          throw new FormatError(\n            `invalid object offset in the ObjStm stream: ${offset}`\n          );\n        }\n        nums[i] = num;\n      }\n      const entries = new Array(n);\n      // read stream objects for cache\n      for (let i = 0; i < n; ++i) {\n        const obj = parser.getObj();\n        entries[i] = obj;\n        // The ObjStm should not contain 'endobj'. If it's present, skip over it\n        // to support corrupt PDFs (fixes issue 5241, bug 898610, bug 1037816).\n        if (parser.buf1 instanceof Cmd && parser.buf1.cmd === \"endobj\") {\n          parser.shift();\n        }\n        if (isStream(obj)) {\n          continue;\n        }\n        const num = nums[i],\n          entry = this.entries[num];\n        if (entry && entry.offset === tableOffset && entry.gen === i) {\n          if (\n            typeof PDFJSDev === \"undefined\" ||\n            PDFJSDev.test(\"!PRODUCTION || TESTING\")\n          ) {\n            assert(\n              obj !== undefined,\n              'fetchCompressed: The \"obj\" cannot be undefined.'\n            );\n          }\n          this._cacheMap.set(num, obj);\n        }\n      }\n      xrefEntry = entries[xrefEntry.gen];\n      if (xrefEntry === undefined) {\n        throw new XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);\n      }\n      return xrefEntry;\n    },\n\n    async fetchIfRefAsync(obj, suppressEncryption) {\n      if (obj instanceof Ref) {\n        return this.fetchAsync(obj, suppressEncryption);\n      }\n      return obj;\n    },\n\n    async fetchAsync(ref, suppressEncryption) {\n      try {\n        return this.fetch(ref, suppressEncryption);\n      } catch (ex) {\n        if (!(ex instanceof MissingDataException)) {\n          throw ex;\n        }\n        await this.pdfManager.requestRange(ex.begin, ex.end);\n        return this.fetchAsync(ref, suppressEncryption);\n      }\n    },\n\n    getCatalogObj: function XRef_getCatalogObj() {\n      return this.root;\n    },\n  };\n\n  return XRef;\n})();\n\n/**\n * A NameTree/NumberTree is like a Dict but has some advantageous properties,\n * see the specification (7.9.6 and 7.9.7) for additional details.\n * TODO: implement all the Dict functions and make this more efficient.\n */\nclass NameOrNumberTree {\n  constructor(root, xref, type) {\n    if (this.constructor === NameOrNumberTree) {\n      unreachable(\"Cannot initialize NameOrNumberTree.\");\n    }\n    this.root = root;\n    this.xref = xref;\n    this._type = type;\n  }\n\n  getAll() {\n    const dict = Object.create(null);\n    if (!this.root) {\n      return dict;\n    }\n    const xref = this.xref;\n    // Reading Name/Number tree.\n    const processed = new RefSet();\n    processed.put(this.root);\n    const queue = [this.root];\n    while (queue.length > 0) {\n      const obj = xref.fetchIfRef(queue.shift());\n      if (!isDict(obj)) {\n        continue;\n      }\n      if (obj.has(\"Kids\")) {\n        const kids = obj.get(\"Kids\");\n        for (let i = 0, ii = kids.length; i < ii; i++) {\n          const kid = kids[i];\n          if (processed.has(kid)) {\n            throw new FormatError(`Duplicate entry in \"${this._type}\" tree.`);\n          }\n          queue.push(kid);\n          processed.put(kid);\n        }\n        continue;\n      }\n      const entries = obj.get(this._type);\n      if (Array.isArray(entries)) {\n        for (let i = 0, ii = entries.length; i < ii; i += 2) {\n          dict[xref.fetchIfRef(entries[i])] = xref.fetchIfRef(entries[i + 1]);\n        }\n      }\n    }\n    return dict;\n  }\n\n  get(key) {\n    if (!this.root) {\n      return null;\n    }\n    const xref = this.xref;\n    let kidsOrEntries = xref.fetchIfRef(this.root);\n    let loopCount = 0;\n    const MAX_LEVELS = 10;\n\n    // Perform a binary search to quickly find the entry that\n    // contains the key we are looking for.\n    while (kidsOrEntries.has(\"Kids\")) {\n      if (++loopCount > MAX_LEVELS) {\n        warn(`Search depth limit reached for \"${this._type}\" tree.`);\n        return null;\n      }\n\n      const kids = kidsOrEntries.get(\"Kids\");\n      if (!Array.isArray(kids)) {\n        return null;\n      }\n\n      let l = 0,\n        r = kids.length - 1;\n      while (l <= r) {\n        const m = (l + r) >> 1;\n        const kid = xref.fetchIfRef(kids[m]);\n        const limits = kid.get(\"Limits\");\n\n        if (key < xref.fetchIfRef(limits[0])) {\n          r = m - 1;\n        } else if (key > xref.fetchIfRef(limits[1])) {\n          l = m + 1;\n        } else {\n          kidsOrEntries = xref.fetchIfRef(kids[m]);\n          break;\n        }\n      }\n      if (l > r) {\n        return null;\n      }\n    }\n\n    // If we get here, then we have found the right entry. Now go through the\n    // entries in the dictionary until we find the key we're looking for.\n    const entries = kidsOrEntries.get(this._type);\n    if (Array.isArray(entries)) {\n      // Perform a binary search to reduce the lookup time.\n      let l = 0,\n        r = entries.length - 2;\n      while (l <= r) {\n        // Check only even indices (0, 2, 4, ...) because the\n        // odd indices contain the actual data.\n        const tmp = (l + r) >> 1,\n          m = tmp + (tmp & 1);\n        const currentKey = xref.fetchIfRef(entries[m]);\n        if (key < currentKey) {\n          r = m - 2;\n        } else if (key > currentKey) {\n          l = m + 2;\n        } else {\n          return xref.fetchIfRef(entries[m + 1]);\n        }\n      }\n\n      // Fallback to an exhaustive search, in an attempt to handle corrupt\n      // PDF files where keys are not correctly ordered (fixes issue 10272).\n      info(\n        `Falling back to an exhaustive search, for key \"${key}\", ` +\n          `in \"${this._type}\" tree.`\n      );\n      for (let m = 0, mm = entries.length; m < mm; m += 2) {\n        const currentKey = xref.fetchIfRef(entries[m]);\n        if (currentKey === key) {\n          warn(\n            `The \"${key}\" key was found at an incorrect, ` +\n              `i.e. out-of-order, position in \"${this._type}\" tree.`\n          );\n          return xref.fetchIfRef(entries[m + 1]);\n        }\n      }\n    }\n    return null;\n  }\n}\n\nclass NameTree extends NameOrNumberTree {\n  constructor(root, xref) {\n    super(root, xref, \"Names\");\n  }\n}\n\nclass NumberTree extends NameOrNumberTree {\n  constructor(root, xref) {\n    super(root, xref, \"Nums\");\n  }\n}\n\n/**\n * \"A PDF file can refer to the contents of another file by using a File\n * Specification (PDF 1.1)\", see the spec (7.11) for more details.\n * NOTE: Only embedded files are supported (as part of the attachments support)\n * TODO: support the 'URL' file system (with caching if !/V), portable\n * collections attributes and related files (/RF)\n */\nvar FileSpec = (function FileSpecClosure() {\n  // eslint-disable-next-line no-shadow\n  function FileSpec(root, xref) {\n    if (!root || !isDict(root)) {\n      return;\n    }\n    this.xref = xref;\n    this.root = root;\n    if (root.has(\"FS\")) {\n      this.fs = root.get(\"FS\");\n    }\n    this.description = root.has(\"Desc\")\n      ? stringToPDFString(root.get(\"Desc\"))\n      : \"\";\n    if (root.has(\"RF\")) {\n      warn(\"Related file specifications are not supported\");\n    }\n    this.contentAvailable = true;\n    if (!root.has(\"EF\")) {\n      this.contentAvailable = false;\n      warn(\"Non-embedded file specifications are not supported\");\n    }\n  }\n\n  function pickPlatformItem(dict) {\n    // Look for the filename in this order:\n    // UF, F, Unix, Mac, DOS\n    if (dict.has(\"UF\")) {\n      return dict.get(\"UF\");\n    } else if (dict.has(\"F\")) {\n      return dict.get(\"F\");\n    } else if (dict.has(\"Unix\")) {\n      return dict.get(\"Unix\");\n    } else if (dict.has(\"Mac\")) {\n      return dict.get(\"Mac\");\n    } else if (dict.has(\"DOS\")) {\n      return dict.get(\"DOS\");\n    }\n    return null;\n  }\n\n  FileSpec.prototype = {\n    get filename() {\n      if (!this._filename && this.root) {\n        var filename = pickPlatformItem(this.root) || \"unnamed\";\n        this._filename = stringToPDFString(filename)\n          .replace(/\\\\\\\\/g, \"\\\\\")\n          .replace(/\\\\\\//g, \"/\")\n          .replace(/\\\\/g, \"/\");\n      }\n      return this._filename;\n    },\n    get content() {\n      if (!this.contentAvailable) {\n        return null;\n      }\n      if (!this.contentRef && this.root) {\n        this.contentRef = pickPlatformItem(this.root.get(\"EF\"));\n      }\n      var content = null;\n      if (this.contentRef) {\n        var xref = this.xref;\n        var fileObj = xref.fetchIfRef(this.contentRef);\n        if (fileObj && isStream(fileObj)) {\n          content = fileObj.getBytes();\n        } else {\n          warn(\n            \"Embedded file specification points to non-existing/invalid \" +\n              \"content\"\n          );\n        }\n      } else {\n        warn(\"Embedded file specification does not have a content\");\n      }\n      return content;\n    },\n    get serializable() {\n      return {\n        filename: this.filename,\n        content: this.content,\n      };\n    },\n  };\n  return FileSpec;\n})();\n\n/**\n * A helper for loading missing data in `Dict` graphs. It traverses the graph\n * depth first and queues up any objects that have missing data. Once it has\n * has traversed as many objects that are available it attempts to bundle the\n * missing data requests and then resume from the nodes that weren't ready.\n *\n * NOTE: It provides protection from circular references by keeping track of\n * loaded references. However, you must be careful not to load any graphs\n * that have references to the catalog or other pages since that will cause the\n * entire PDF document object graph to be traversed.\n */\nconst ObjectLoader = (function () {\n  function mayHaveChildren(value) {\n    return (\n      value instanceof Ref ||\n      value instanceof Dict ||\n      Array.isArray(value) ||\n      isStream(value)\n    );\n  }\n\n  function addChildren(node, nodesToVisit) {\n    if (node instanceof Dict || isStream(node)) {\n      const dict = node instanceof Dict ? node : node.dict;\n      const dictKeys = dict.getKeys();\n      for (let i = 0, ii = dictKeys.length; i < ii; i++) {\n        const rawValue = dict.getRaw(dictKeys[i]);\n        if (mayHaveChildren(rawValue)) {\n          nodesToVisit.push(rawValue);\n        }\n      }\n    } else if (Array.isArray(node)) {\n      for (let i = 0, ii = node.length; i < ii; i++) {\n        const value = node[i];\n        if (mayHaveChildren(value)) {\n          nodesToVisit.push(value);\n        }\n      }\n    }\n  }\n\n  // eslint-disable-next-line no-shadow\n  function ObjectLoader(dict, keys, xref) {\n    this.dict = dict;\n    this.keys = keys;\n    this.xref = xref;\n    this.refSet = null;\n  }\n\n  ObjectLoader.prototype = {\n    async load() {\n      // Don't walk the graph if all the data is already loaded; note that only\n      // `ChunkedStream` instances have a `allChunksLoaded` method.\n      if (\n        !this.xref.stream.allChunksLoaded ||\n        this.xref.stream.allChunksLoaded()\n      ) {\n        return undefined;\n      }\n\n      const { keys, dict } = this;\n      this.refSet = new RefSet();\n      // Setup the initial nodes to visit.\n      const nodesToVisit = [];\n      for (let i = 0, ii = keys.length; i < ii; i++) {\n        const rawValue = dict.getRaw(keys[i]);\n        // Skip nodes that are guaranteed to be empty.\n        if (rawValue !== undefined) {\n          nodesToVisit.push(rawValue);\n        }\n      }\n      return this._walk(nodesToVisit);\n    },\n\n    async _walk(nodesToVisit) {\n      const nodesToRevisit = [];\n      const pendingRequests = [];\n      // DFS walk of the object graph.\n      while (nodesToVisit.length) {\n        let currentNode = nodesToVisit.pop();\n\n        // Only references or chunked streams can cause missing data exceptions.\n        if (currentNode instanceof Ref) {\n          // Skip nodes that have already been visited.\n          if (this.refSet.has(currentNode)) {\n            continue;\n          }\n          try {\n            this.refSet.put(currentNode);\n            currentNode = this.xref.fetch(currentNode);\n          } catch (ex) {\n            if (!(ex instanceof MissingDataException)) {\n              throw ex;\n            }\n            nodesToRevisit.push(currentNode);\n            pendingRequests.push({ begin: ex.begin, end: ex.end });\n          }\n        }\n        if (currentNode && currentNode.getBaseStreams) {\n          const baseStreams = currentNode.getBaseStreams();\n          let foundMissingData = false;\n          for (let i = 0, ii = baseStreams.length; i < ii; i++) {\n            const stream = baseStreams[i];\n            if (stream.allChunksLoaded && !stream.allChunksLoaded()) {\n              foundMissingData = true;\n              pendingRequests.push({ begin: stream.start, end: stream.end });\n            }\n          }\n          if (foundMissingData) {\n            nodesToRevisit.push(currentNode);\n          }\n        }\n\n        addChildren(currentNode, nodesToVisit);\n      }\n\n      if (pendingRequests.length) {\n        await this.xref.stream.manager.requestRanges(pendingRequests);\n\n        for (let i = 0, ii = nodesToRevisit.length; i < ii; i++) {\n          const node = nodesToRevisit[i];\n          // Remove any reference nodes from the current `RefSet` so they\n          // aren't skipped when we revist them.\n          if (node instanceof Ref) {\n            this.refSet.remove(node);\n          }\n        }\n        return this._walk(nodesToRevisit);\n      }\n      // Everything is loaded.\n      this.refSet = null;\n      return undefined;\n    },\n  };\n\n  return ObjectLoader;\n})();\n\nexport { Catalog, ObjectLoader, XRef, FileSpec };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint no-var: error */\n\nimport {\n  Ascii85Stream,\n  AsciiHexStream,\n  FlateStream,\n  LZWStream,\n  NullStream,\n  PredictorStream,\n  RunLengthStream,\n} from \"./stream.js\";\nimport {\n  assert,\n  bytesToString,\n  FormatError,\n  info,\n  isNum,\n  StreamType,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  Cmd,\n  Dict,\n  EOF,\n  isCmd,\n  isDict,\n  isEOF,\n  isName,\n  Name,\n  Ref,\n} from \"./primitives.js\";\nimport { isWhiteSpace, MissingDataException } from \"./core_utils.js\";\nimport { CCITTFaxStream } from \"./ccitt_stream.js\";\nimport { Jbig2Stream } from \"./jbig2_stream.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxStream } from \"./jpx_stream.js\";\n\nconst MAX_LENGTH_TO_CACHE = 1000;\nconst MAX_ADLER32_LENGTH = 5552;\n\nfunction computeAdler32(bytes) {\n  const bytesLength = bytes.length;\n  if (\n    typeof PDFJSDev === \"undefined\" ||\n    PDFJSDev.test(\"!PRODUCTION || TESTING\")\n  ) {\n    assert(\n      bytesLength < MAX_ADLER32_LENGTH,\n      'computeAdler32: Unsupported \"bytes\" length.'\n    );\n  }\n  let a = 1,\n    b = 0;\n  for (let i = 0; i < bytesLength; ++i) {\n    // No modulo required in the loop if `bytesLength < 5552`.\n    a += bytes[i] & 0xff;\n    b += a;\n  }\n  return (b % 65521 << 16) | a % 65521;\n}\n\nclass Parser {\n  constructor({ lexer, xref, allowStreams = false, recoveryMode = false }) {\n    this.lexer = lexer;\n    this.xref = xref;\n    this.allowStreams = allowStreams;\n    this.recoveryMode = recoveryMode;\n\n    this.imageCache = Object.create(null);\n    this.refill();\n  }\n\n  refill() {\n    this.buf1 = this.lexer.getObj();\n    this.buf2 = this.lexer.getObj();\n  }\n\n  shift() {\n    if (this.buf2 instanceof Cmd && this.buf2.cmd === \"ID\") {\n      this.buf1 = this.buf2;\n      this.buf2 = null;\n    } else {\n      this.buf1 = this.buf2;\n      this.buf2 = this.lexer.getObj();\n    }\n  }\n\n  tryShift() {\n    try {\n      this.shift();\n      return true;\n    } catch (e) {\n      if (e instanceof MissingDataException) {\n        throw e;\n      }\n      // Upon failure, the caller should reset this.lexer.pos to a known good\n      // state and call this.shift() twice to reset the buffers.\n      return false;\n    }\n  }\n\n  getObj(cipherTransform = null) {\n    const buf1 = this.buf1;\n    this.shift();\n\n    if (buf1 instanceof Cmd) {\n      switch (buf1.cmd) {\n        case \"BI\": // inline image\n          return this.makeInlineImage(cipherTransform);\n        case \"[\": // array\n          const array = [];\n          while (!isCmd(this.buf1, \"]\") && !isEOF(this.buf1)) {\n            array.push(this.getObj(cipherTransform));\n          }\n          if (isEOF(this.buf1)) {\n            if (!this.recoveryMode) {\n              throw new FormatError(\"End of file inside array\");\n            }\n            return array;\n          }\n          this.shift();\n          return array;\n        case \"<<\": // dictionary or stream\n          const dict = new Dict(this.xref);\n          while (!isCmd(this.buf1, \">>\") && !isEOF(this.buf1)) {\n            if (!isName(this.buf1)) {\n              info(\"Malformed dictionary: key must be a name object\");\n              this.shift();\n              continue;\n            }\n\n            const key = this.buf1.name;\n            this.shift();\n            if (isEOF(this.buf1)) {\n              break;\n            }\n            dict.set(key, this.getObj(cipherTransform));\n          }\n          if (isEOF(this.buf1)) {\n            if (!this.recoveryMode) {\n              throw new FormatError(\"End of file inside dictionary\");\n            }\n            return dict;\n          }\n\n          // Stream objects are not allowed inside content streams or\n          // object streams.\n          if (isCmd(this.buf2, \"stream\")) {\n            return this.allowStreams\n              ? this.makeStream(dict, cipherTransform)\n              : dict;\n          }\n          this.shift();\n          return dict;\n        default:\n          // simple object\n          return buf1;\n      }\n    }\n\n    if (Number.isInteger(buf1)) {\n      // indirect reference or integer\n      if (Number.isInteger(this.buf1) && isCmd(this.buf2, \"R\")) {\n        const ref = Ref.get(buf1, this.buf1);\n        this.shift();\n        this.shift();\n        return ref;\n      }\n      return buf1;\n    }\n\n    if (typeof buf1 === \"string\") {\n      if (cipherTransform) {\n        return cipherTransform.decryptString(buf1);\n      }\n      return buf1;\n    }\n\n    // simple object\n    return buf1;\n  }\n\n  /**\n   * Find the end of the stream by searching for the /EI\\s/.\n   * @returns {number} The inline stream length.\n   */\n  findDefaultInlineStreamEnd(stream) {\n    const E = 0x45,\n      I = 0x49,\n      SPACE = 0x20,\n      LF = 0xa,\n      CR = 0xd;\n    const n = 10,\n      NUL = 0x0;\n    const startPos = stream.pos;\n    let state = 0,\n      ch,\n      maybeEIPos;\n    while ((ch = stream.getByte()) !== -1) {\n      if (state === 0) {\n        state = ch === E ? 1 : 0;\n      } else if (state === 1) {\n        state = ch === I ? 2 : 0;\n      } else {\n        assert(state === 2, \"findDefaultInlineStreamEnd - invalid state.\");\n        if (ch === SPACE || ch === LF || ch === CR) {\n          maybeEIPos = stream.pos;\n          // Let's check that the next `n` bytes are ASCII... just to be sure.\n          const followingBytes = stream.peekBytes(n);\n          for (let i = 0, ii = followingBytes.length; i < ii; i++) {\n            ch = followingBytes[i];\n            if (ch === NUL && followingBytes[i + 1] !== NUL) {\n              // NUL bytes are not supposed to occur *outside* of inline\n              // images, but some PDF generators violate that assumption,\n              // thus breaking the EI detection heuristics used below.\n              //\n              // However, we can't unconditionally treat NUL bytes as \"ASCII\",\n              // since that *could* result in inline images being truncated.\n              //\n              // To attempt to address this, we'll still treat any *sequence*\n              // of NUL bytes as non-ASCII, but for a *single* NUL byte we'll\n              // continue checking the `followingBytes` (fixes issue8823.pdf).\n              continue;\n            }\n            if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) {\n              // Not a LF, CR, SPACE or any visible ASCII character, i.e.\n              // it's binary stuff. Resetting the state.\n              state = 0;\n              break;\n            }\n          }\n          if (state === 2) {\n            break; // Finished!\n          }\n        } else {\n          state = 0;\n        }\n      }\n    }\n\n    if (ch === -1) {\n      warn(\n        \"findDefaultInlineStreamEnd: \" +\n          \"Reached the end of the stream without finding a valid EI marker\"\n      );\n      if (maybeEIPos) {\n        warn('... trying to recover by using the last \"EI\" occurrence.');\n        stream.skip(-(stream.pos - maybeEIPos)); // Reset the stream position.\n      }\n    }\n\n    let endOffset = 4;\n    stream.skip(-endOffset); // Set the stream position to just before \"EI\".\n    ch = stream.peekByte();\n    stream.skip(endOffset); // ... and remember to reset the stream position.\n\n    // Ensure that we don't accidentally truncate the inline image, when the\n    // data is immediately followed by the \"EI\" marker (fixes issue10388.pdf).\n    if (!isWhiteSpace(ch)) {\n      endOffset--;\n    }\n    return stream.pos - endOffset - startPos;\n  }\n\n  /**\n   * Find the EOI (end-of-image) marker 0xFFD9 of the stream.\n   * @returns {number} The inline stream length.\n   */\n  findDCTDecodeInlineStreamEnd(stream) {\n    const startPos = stream.pos;\n    let foundEOI = false,\n      b,\n      markerLength;\n    while ((b = stream.getByte()) !== -1) {\n      if (b !== 0xff) {\n        // Not a valid marker.\n        continue;\n      }\n      switch (stream.getByte()) {\n        case 0x00: // Byte stuffing.\n          // 0xFF00 appears to be a very common byte sequence in JPEG images.\n          break;\n\n        case 0xff: // Fill byte.\n          // Avoid skipping a valid marker, resetting the stream position.\n          stream.skip(-1);\n          break;\n\n        case 0xd9: // EOI\n          foundEOI = true;\n          break;\n\n        case 0xc0: // SOF0\n        case 0xc1: // SOF1\n        case 0xc2: // SOF2\n        case 0xc3: // SOF3\n        /* falls through */\n        case 0xc5: // SOF5\n        case 0xc6: // SOF6\n        case 0xc7: // SOF7\n        /* falls through */\n        case 0xc9: // SOF9\n        case 0xca: // SOF10\n        case 0xcb: // SOF11\n        /* falls through */\n        case 0xcd: // SOF13\n        case 0xce: // SOF14\n        case 0xcf: // SOF15\n        /* falls through */\n        case 0xc4: // DHT\n        case 0xcc: // DAC\n        /* falls through */\n        case 0xda: // SOS\n        case 0xdb: // DQT\n        case 0xdc: // DNL\n        case 0xdd: // DRI\n        case 0xde: // DHP\n        case 0xdf: // EXP\n        /* falls through */\n        case 0xe0: // APP0\n        case 0xe1: // APP1\n        case 0xe2: // APP2\n        case 0xe3: // APP3\n        case 0xe4: // APP4\n        case 0xe5: // APP5\n        case 0xe6: // APP6\n        case 0xe7: // APP7\n        case 0xe8: // APP8\n        case 0xe9: // APP9\n        case 0xea: // APP10\n        case 0xeb: // APP11\n        case 0xec: // APP12\n        case 0xed: // APP13\n        case 0xee: // APP14\n        case 0xef: // APP15\n        /* falls through */\n        case 0xfe: // COM\n          // The marker should be followed by the length of the segment.\n          markerLength = stream.getUint16();\n          if (markerLength > 2) {\n            // |markerLength| contains the byte length of the marker segment,\n            // including its own length (2 bytes) and excluding the marker.\n            stream.skip(markerLength - 2); // Jump to the next marker.\n          } else {\n            // The marker length is invalid, resetting the stream position.\n            stream.skip(-2);\n          }\n          break;\n      }\n      if (foundEOI) {\n        break;\n      }\n    }\n    const length = stream.pos - startPos;\n    if (b === -1) {\n      warn(\n        \"Inline DCTDecode image stream: \" +\n          \"EOI marker not found, searching for /EI/ instead.\"\n      );\n      stream.skip(-length); // Reset the stream position.\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n\n  /**\n   * Find the EOD (end-of-data) marker '~>' (i.e. TILDE + GT) of the stream.\n   * @returns {number} The inline stream length.\n   */\n  findASCII85DecodeInlineStreamEnd(stream) {\n    const TILDE = 0x7e,\n      GT = 0x3e;\n    const startPos = stream.pos;\n    let ch;\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === TILDE) {\n        const tildePos = stream.pos;\n\n        ch = stream.peekByte();\n        // Handle corrupt PDF documents which contains whitespace \"inside\" of\n        // the EOD marker (fixes issue10614.pdf).\n        while (isWhiteSpace(ch)) {\n          stream.skip();\n          ch = stream.peekByte();\n        }\n        if (ch === GT) {\n          stream.skip();\n          break;\n        }\n        // Handle corrupt PDF documents which contains truncated EOD markers,\n        // where the '>' character is missing (fixes issue11385.pdf).\n        if (stream.pos > tildePos) {\n          const maybeEI = stream.peekBytes(2);\n          if (maybeEI[0] === /* E = */ 0x45 && maybeEI[1] === /* I = */ 0x49) {\n            break;\n          }\n        }\n      }\n    }\n    const length = stream.pos - startPos;\n    if (ch === -1) {\n      warn(\n        \"Inline ASCII85Decode image stream: \" +\n          \"EOD marker not found, searching for /EI/ instead.\"\n      );\n      stream.skip(-length); // Reset the stream position.\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n\n  /**\n   * Find the EOD (end-of-data) marker '>' (i.e. GT) of the stream.\n   * @returns {number} The inline stream length.\n   */\n  findASCIIHexDecodeInlineStreamEnd(stream) {\n    const GT = 0x3e;\n    const startPos = stream.pos;\n    let ch;\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === GT) {\n        break;\n      }\n    }\n    const length = stream.pos - startPos;\n    if (ch === -1) {\n      warn(\n        \"Inline ASCIIHexDecode image stream: \" +\n          \"EOD marker not found, searching for /EI/ instead.\"\n      );\n      stream.skip(-length); // Reset the stream position.\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n\n  /**\n   * Skip over the /EI/ for streams where we search for an EOD marker.\n   */\n  inlineStreamSkipEI(stream) {\n    const E = 0x45,\n      I = 0x49;\n    let state = 0,\n      ch;\n    while ((ch = stream.getByte()) !== -1) {\n      if (state === 0) {\n        state = ch === E ? 1 : 0;\n      } else if (state === 1) {\n        state = ch === I ? 2 : 0;\n      } else if (state === 2) {\n        break;\n      }\n    }\n  }\n\n  makeInlineImage(cipherTransform) {\n    const lexer = this.lexer;\n    const stream = lexer.stream;\n\n    // Parse dictionary.\n    const dict = new Dict(this.xref);\n    let dictLength;\n    while (!isCmd(this.buf1, \"ID\") && !isEOF(this.buf1)) {\n      if (!isName(this.buf1)) {\n        throw new FormatError(\"Dictionary key must be a name object\");\n      }\n      const key = this.buf1.name;\n      this.shift();\n      if (isEOF(this.buf1)) {\n        break;\n      }\n      dict.set(key, this.getObj(cipherTransform));\n    }\n    if (lexer.beginInlineImagePos !== -1) {\n      dictLength = stream.pos - lexer.beginInlineImagePos;\n    }\n\n    // Extract the name of the first (i.e. the current) image filter.\n    const filter = dict.get(\"Filter\", \"F\");\n    let filterName;\n    if (isName(filter)) {\n      filterName = filter.name;\n    } else if (Array.isArray(filter)) {\n      const filterZero = this.xref.fetchIfRef(filter[0]);\n      if (isName(filterZero)) {\n        filterName = filterZero.name;\n      }\n    }\n\n    // Parse image stream.\n    const startPos = stream.pos;\n    let length;\n    if (filterName === \"DCTDecode\" || filterName === \"DCT\") {\n      length = this.findDCTDecodeInlineStreamEnd(stream);\n    } else if (filterName === \"ASCII85Decode\" || filterName === \"A85\") {\n      length = this.findASCII85DecodeInlineStreamEnd(stream);\n    } else if (filterName === \"ASCIIHexDecode\" || filterName === \"AHx\") {\n      length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n    } else {\n      length = this.findDefaultInlineStreamEnd(stream);\n    }\n    let imageStream = stream.makeSubStream(startPos, length, dict);\n\n    // Cache all images below the MAX_LENGTH_TO_CACHE threshold by their\n    // adler32 checksum.\n    let cacheKey;\n    if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) {\n      const imageBytes = imageStream.getBytes();\n      imageStream.reset();\n\n      const initialStreamPos = stream.pos;\n      // Set the stream position to the beginning of the dictionary data...\n      stream.pos = lexer.beginInlineImagePos;\n      // ... and fetch the bytes of the *entire* dictionary.\n      const dictBytes = stream.getBytes(dictLength);\n      // Finally, don't forget to reset the stream position.\n      stream.pos = initialStreamPos;\n\n      cacheKey = computeAdler32(imageBytes) + \"_\" + computeAdler32(dictBytes);\n\n      const cacheEntry = this.imageCache[cacheKey];\n      if (cacheEntry !== undefined) {\n        this.buf2 = Cmd.get(\"EI\");\n        this.shift();\n\n        cacheEntry.reset();\n        return cacheEntry;\n      }\n    }\n\n    if (cipherTransform) {\n      imageStream = cipherTransform.createStream(imageStream, length);\n    }\n\n    imageStream = this.filter(imageStream, dict, length);\n    imageStream.dict = dict;\n    if (cacheKey !== undefined) {\n      imageStream.cacheKey = `inline_${length}_${cacheKey}`;\n      this.imageCache[cacheKey] = imageStream;\n    }\n\n    this.buf2 = Cmd.get(\"EI\");\n    this.shift();\n\n    return imageStream;\n  }\n\n  _findStreamLength(startPos, signature) {\n    const { stream } = this.lexer;\n    stream.pos = startPos;\n\n    const SCAN_BLOCK_LENGTH = 2048;\n    const signatureLength = signature.length;\n\n    while (stream.pos < stream.end) {\n      const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n      const scanLength = scanBytes.length - signatureLength;\n\n      if (scanLength <= 0) {\n        break;\n      }\n      let pos = 0;\n      while (pos < scanLength) {\n        let j = 0;\n        while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n          j++;\n        }\n        if (j >= signatureLength) {\n          // `signature` found.\n          stream.pos += pos;\n          return stream.pos - startPos;\n        }\n        pos++;\n      }\n      stream.pos += scanLength;\n    }\n    return -1;\n  }\n\n  makeStream(dict, cipherTransform) {\n    const lexer = this.lexer;\n    let stream = lexer.stream;\n\n    // Get the stream's start position.\n    lexer.skipToNextLine();\n    const startPos = stream.pos - 1;\n\n    // Get the length.\n    let length = dict.get(\"Length\");\n    if (!Number.isInteger(length)) {\n      info(`Bad length \"${length}\" in stream`);\n      length = 0;\n    }\n\n    // Skip over the stream data.\n    stream.pos = startPos + length;\n    lexer.nextChar();\n\n    // Shift '>>' and check whether the new object marks the end of the stream.\n    if (this.tryShift() && isCmd(this.buf2, \"endstream\")) {\n      this.shift(); // 'stream'\n    } else {\n      // Bad stream length, scanning for endstream command.\n      // prettier-ignore\n      const ENDSTREAM_SIGNATURE = new Uint8Array([\n        0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D]);\n      let actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n      if (actualLength < 0) {\n        // Only allow limited truncation of the endstream signature,\n        // to prevent false positives.\n        const MAX_TRUNCATION = 1;\n        // Check if the PDF generator included truncated endstream commands,\n        // such as e.g. \"endstrea\" (fixes issue10004.pdf).\n        for (let i = 1; i <= MAX_TRUNCATION; i++) {\n          const end = ENDSTREAM_SIGNATURE.length - i;\n          const TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n\n          const maybeLength = this._findStreamLength(\n            startPos,\n            TRUNCATED_SIGNATURE\n          );\n          if (maybeLength >= 0) {\n            // Ensure that the byte immediately following the truncated\n            // endstream command is a space, to prevent false positives.\n            const lastByte = stream.peekBytes(end + 1)[end];\n            if (!isWhiteSpace(lastByte)) {\n              break;\n            }\n            info(\n              `Found \"${bytesToString(TRUNCATED_SIGNATURE)}\" when ` +\n                \"searching for endstream command.\"\n            );\n            actualLength = maybeLength;\n            break;\n          }\n        }\n\n        if (actualLength < 0) {\n          throw new FormatError(\"Missing endstream command.\");\n        }\n      }\n      length = actualLength;\n\n      lexer.nextChar();\n      this.shift();\n      this.shift();\n    }\n    this.shift(); // 'endstream'\n\n    stream = stream.makeSubStream(startPos, length, dict);\n    if (cipherTransform) {\n      stream = cipherTransform.createStream(stream, length);\n    }\n    stream = this.filter(stream, dict, length);\n    stream.dict = dict;\n    return stream;\n  }\n\n  filter(stream, dict, length) {\n    let filter = dict.get(\"Filter\", \"F\");\n    let params = dict.get(\"DecodeParms\", \"DP\");\n\n    if (isName(filter)) {\n      if (Array.isArray(params)) {\n        warn(\n          \"/DecodeParms should not contain an Array, \" +\n            \"when /Filter contains a Name.\"\n        );\n      }\n      return this.makeFilter(stream, filter.name, length, params);\n    }\n\n    let maybeLength = length;\n    if (Array.isArray(filter)) {\n      const filterArray = filter;\n      const paramsArray = params;\n      for (let i = 0, ii = filterArray.length; i < ii; ++i) {\n        filter = this.xref.fetchIfRef(filterArray[i]);\n        if (!isName(filter)) {\n          throw new FormatError(`Bad filter name \"${filter}\"`);\n        }\n\n        params = null;\n        if (Array.isArray(paramsArray) && i in paramsArray) {\n          params = this.xref.fetchIfRef(paramsArray[i]);\n        }\n        stream = this.makeFilter(stream, filter.name, maybeLength, params);\n        // After the first stream the `length` variable is invalid.\n        maybeLength = null;\n      }\n    }\n    return stream;\n  }\n\n  makeFilter(stream, name, maybeLength, params) {\n    // Since the 'Length' entry in the stream dictionary can be completely\n    // wrong, e.g. zero for non-empty streams, only skip parsing the stream\n    // when we can be absolutely certain that it actually is empty.\n    if (maybeLength === 0) {\n      warn(`Empty \"${name}\" stream.`);\n      return new NullStream();\n    }\n\n    try {\n      const xrefStreamStats = this.xref.stats.streamTypes;\n      if (name === \"FlateDecode\" || name === \"Fl\") {\n        xrefStreamStats[StreamType.FLATE] = true;\n        if (params) {\n          return new PredictorStream(\n            new FlateStream(stream, maybeLength),\n            maybeLength,\n            params\n          );\n        }\n        return new FlateStream(stream, maybeLength);\n      }\n      if (name === \"LZWDecode\" || name === \"LZW\") {\n        xrefStreamStats[StreamType.LZW] = true;\n        let earlyChange = 1;\n        if (params) {\n          if (params.has(\"EarlyChange\")) {\n            earlyChange = params.get(\"EarlyChange\");\n          }\n          return new PredictorStream(\n            new LZWStream(stream, maybeLength, earlyChange),\n            maybeLength,\n            params\n          );\n        }\n        return new LZWStream(stream, maybeLength, earlyChange);\n      }\n      if (name === \"DCTDecode\" || name === \"DCT\") {\n        xrefStreamStats[StreamType.DCT] = true;\n        return new JpegStream(stream, maybeLength, stream.dict, params);\n      }\n      if (name === \"JPXDecode\" || name === \"JPX\") {\n        xrefStreamStats[StreamType.JPX] = true;\n        return new JpxStream(stream, maybeLength, stream.dict, params);\n      }\n      if (name === \"ASCII85Decode\" || name === \"A85\") {\n        xrefStreamStats[StreamType.A85] = true;\n        return new Ascii85Stream(stream, maybeLength);\n      }\n      if (name === \"ASCIIHexDecode\" || name === \"AHx\") {\n        xrefStreamStats[StreamType.AHX] = true;\n        return new AsciiHexStream(stream, maybeLength);\n      }\n      if (name === \"CCITTFaxDecode\" || name === \"CCF\") {\n        xrefStreamStats[StreamType.CCF] = true;\n        return new CCITTFaxStream(stream, maybeLength, params);\n      }\n      if (name === \"RunLengthDecode\" || name === \"RL\") {\n        xrefStreamStats[StreamType.RLX] = true;\n        return new RunLengthStream(stream, maybeLength);\n      }\n      if (name === \"JBIG2Decode\") {\n        xrefStreamStats[StreamType.JBIG] = true;\n        return new Jbig2Stream(stream, maybeLength, stream.dict, params);\n      }\n      warn(`Filter \"${name}\" is not supported.`);\n      return stream;\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(`Invalid stream: \"${ex}\"`);\n      return new NullStream();\n    }\n  }\n}\n\n// A '1' in this array means the character is white space. A '1' or\n// '2' means the character ends a name or command.\n// prettier-ignore\nconst specialChars = [\n  1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, // 0x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x\n  1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, // 2x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, // 3x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 4x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 5x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 7x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ax\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // bx\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // cx\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // dx\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ex\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  // fx\n];\n\nfunction toHexDigit(ch) {\n  if (ch >= /* '0' = */ 0x30 && ch /* '9' = */ <= 0x39) {\n    return ch & 0x0f;\n  }\n  if (\n    (ch >= /* 'A' = */ 0x41 && ch <= /* 'F' = */ 0x46) ||\n    (ch >= /* 'a' = */ 0x61 && ch <= /* 'f' = */ 0x66)\n  ) {\n    return (ch & 0x0f) + 9;\n  }\n  return -1;\n}\n\nclass Lexer {\n  constructor(stream, knownCommands = null) {\n    this.stream = stream;\n    this.nextChar();\n\n    // While lexing, we build up many strings one char at a time. Using += for\n    // this can result in lots of garbage strings. It's better to build an\n    // array of single-char strings and then join() them together at the end.\n    // And reusing a single array (i.e. |this.strBuf|) over and over for this\n    // purpose uses less memory than using a new array for each string.\n    this.strBuf = [];\n\n    // The PDFs might have \"glued\" commands with other commands, operands or\n    // literals, e.g. \"q1\". The knownCommands is a dictionary of the valid\n    // commands and their prefixes. The prefixes are built the following way:\n    // if there a command that is a prefix of the other valid command or\n    // literal (e.g. 'f' and 'false') the following prefixes must be included,\n    // 'fa', 'fal', 'fals'. The prefixes are not needed, if the command has no\n    // other commands or literals as a prefix. The knowCommands is optional.\n    this.knownCommands = knownCommands;\n\n    this._hexStringNumWarn = 0;\n    this.beginInlineImagePos = -1;\n  }\n\n  nextChar() {\n    return (this.currentChar = this.stream.getByte());\n  }\n\n  peekChar() {\n    return this.stream.peekByte();\n  }\n\n  getNumber() {\n    let ch = this.currentChar;\n    let eNotation = false;\n    let divideBy = 0; // Different from 0 if it's a floating point value.\n    let sign = 0;\n\n    if (ch === /* '-' = */ 0x2d) {\n      sign = -1;\n      ch = this.nextChar();\n\n      if (ch === /* '-' = */ 0x2d) {\n        // Ignore double negative (this is consistent with Adobe Reader).\n        ch = this.nextChar();\n      }\n    } else if (ch === /* '+' = */ 0x2b) {\n      sign = 1;\n      ch = this.nextChar();\n    }\n    if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n      // Ignore line-breaks (this is consistent with Adobe Reader).\n      do {\n        ch = this.nextChar();\n      } while (ch === 0x0a || ch === 0x0d);\n    }\n    if (ch === /* '.' = */ 0x2e) {\n      divideBy = 10;\n      ch = this.nextChar();\n    }\n    if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n      if (\n        divideBy === 10 &&\n        sign === 0 &&\n        (isWhiteSpace(ch) || ch === /* EOF = */ -1)\n      ) {\n        // This is consistent with Adobe Reader (fixes issue9252.pdf).\n        warn(\"Lexer.getNumber - treating a single decimal point as zero.\");\n        return 0;\n      }\n      throw new FormatError(\n        `Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`\n      );\n    }\n\n    sign = sign || 1;\n    let baseValue = ch - 0x30; // '0'\n    let powerValue = 0;\n    let powerValueSign = 1;\n\n    while ((ch = this.nextChar()) >= 0) {\n      if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n        const currentDigit = ch - 0x30; // '0'\n        if (eNotation) {\n          // We are after an 'e' or 'E'.\n          powerValue = powerValue * 10 + currentDigit;\n        } else {\n          if (divideBy !== 0) {\n            // We are after a point.\n            divideBy *= 10;\n          }\n          baseValue = baseValue * 10 + currentDigit;\n        }\n      } else if (ch === /* '.' = */ 0x2e) {\n        if (divideBy === 0) {\n          divideBy = 1;\n        } else {\n          // A number can have only one dot.\n          break;\n        }\n      } else if (ch === /* '-' = */ 0x2d) {\n        // Ignore minus signs in the middle of numbers to match\n        // Adobe's behavior.\n        warn(\"Badly formatted number: minus sign in the middle\");\n      } else if (ch === /* 'E' = */ 0x45 || ch === /* 'e' = */ 0x65) {\n        // 'E' can be either a scientific notation or the beginning of a new\n        // operator.\n        ch = this.peekChar();\n        if (ch === /* '+' = */ 0x2b || ch === /* '-' = */ 0x2d) {\n          powerValueSign = ch === 0x2d ? -1 : 1;\n          this.nextChar(); // Consume the sign character.\n        } else if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n          // The 'E' must be the beginning of a new operator.\n          break;\n        }\n        eNotation = true;\n      } else {\n        // The last character doesn't belong to us.\n        break;\n      }\n    }\n\n    if (divideBy !== 0) {\n      baseValue /= divideBy;\n    }\n    if (eNotation) {\n      baseValue *= 10 ** (powerValueSign * powerValue);\n    }\n    return sign * baseValue;\n  }\n\n  getString() {\n    let numParen = 1;\n    let done = false;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n\n    let ch = this.nextChar();\n    while (true) {\n      let charBuffered = false;\n      switch (ch | 0) {\n        case -1:\n          warn(\"Unterminated string\");\n          done = true;\n          break;\n        case 0x28: // '('\n          ++numParen;\n          strBuf.push(\"(\");\n          break;\n        case 0x29: // ')'\n          if (--numParen === 0) {\n            this.nextChar(); // consume strings ')'\n            done = true;\n          } else {\n            strBuf.push(\")\");\n          }\n          break;\n        case 0x5c: // '\\\\'\n          ch = this.nextChar();\n          switch (ch) {\n            case -1:\n              warn(\"Unterminated string\");\n              done = true;\n              break;\n            case 0x6e: // 'n'\n              strBuf.push(\"\\n\");\n              break;\n            case 0x72: // 'r'\n              strBuf.push(\"\\r\");\n              break;\n            case 0x74: // 't'\n              strBuf.push(\"\\t\");\n              break;\n            case 0x62: // 'b'\n              strBuf.push(\"\\b\");\n              break;\n            case 0x66: // 'f'\n              strBuf.push(\"\\f\");\n              break;\n            case 0x5c: // '\\'\n            case 0x28: // '('\n            case 0x29: // ')'\n              strBuf.push(String.fromCharCode(ch));\n              break;\n            case 0x30: // '0'\n            case 0x31: // '1'\n            case 0x32: // '2'\n            case 0x33: // '3'\n            case 0x34: // '4'\n            case 0x35: // '5'\n            case 0x36: // '6'\n            case 0x37: // '7'\n              let x = ch & 0x0f;\n              ch = this.nextChar();\n              charBuffered = true;\n              if (ch >= /* '0' = */ 0x30 && ch <= /* '7' = */ 0x37) {\n                x = (x << 3) + (ch & 0x0f);\n                ch = this.nextChar();\n                if (ch >= /* '0' = */ 0x30 && ch /* '7' = */ <= 0x37) {\n                  charBuffered = false;\n                  x = (x << 3) + (ch & 0x0f);\n                }\n              }\n              strBuf.push(String.fromCharCode(x));\n              break;\n            case 0x0d: // CR\n              if (this.peekChar() === /* LF = */ 0x0a) {\n                this.nextChar();\n              }\n              break;\n            case 0x0a: // LF\n              break;\n            default:\n              strBuf.push(String.fromCharCode(ch));\n              break;\n          }\n          break;\n        default:\n          strBuf.push(String.fromCharCode(ch));\n          break;\n      }\n      if (done) {\n        break;\n      }\n      if (!charBuffered) {\n        ch = this.nextChar();\n      }\n    }\n    return strBuf.join(\"\");\n  }\n\n  getName() {\n    let ch, previousCh;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n\n    while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n      if (ch === /* '#' = */ 0x23) {\n        ch = this.nextChar();\n        if (specialChars[ch]) {\n          warn(\n            \"Lexer_getName: \" +\n              \"NUMBER SIGN (#) should be followed by a hexadecimal number.\"\n          );\n          strBuf.push(\"#\");\n          break;\n        }\n        const x = toHexDigit(ch);\n        if (x !== -1) {\n          previousCh = ch;\n          ch = this.nextChar();\n          const x2 = toHexDigit(ch);\n          if (x2 === -1) {\n            warn(\n              `Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` +\n                \"in hexadecimal number.\"\n            );\n            strBuf.push(\"#\", String.fromCharCode(previousCh));\n            if (specialChars[ch]) {\n              break;\n            }\n            strBuf.push(String.fromCharCode(ch));\n            continue;\n          }\n          strBuf.push(String.fromCharCode((x << 4) | x2));\n        } else {\n          strBuf.push(\"#\", String.fromCharCode(ch));\n        }\n      } else {\n        strBuf.push(String.fromCharCode(ch));\n      }\n    }\n    if (strBuf.length > 127) {\n      warn(`Name token is longer than allowed by the spec: ${strBuf.length}`);\n    }\n    return Name.get(strBuf.join(\"\"));\n  }\n\n  /**\n   * @private\n   */\n  _hexStringWarn(ch) {\n    const MAX_HEX_STRING_NUM_WARN = 5;\n\n    if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) {\n      warn(\"getHexString - ignoring additional invalid characters.\");\n      return;\n    }\n    if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) {\n      // Limit the number of warning messages printed for a `this.getHexString`\n      // invocation, since corrupt PDF documents may otherwise spam the console\n      // enough to affect general performance negatively.\n      return;\n    }\n    warn(`getHexString - ignoring invalid character: ${ch}`);\n  }\n\n  getHexString() {\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    let ch = this.currentChar;\n    let isFirstHex = true;\n    let firstDigit, secondDigit;\n    this._hexStringNumWarn = 0;\n\n    while (true) {\n      if (ch < 0) {\n        warn(\"Unterminated hex string\");\n        break;\n      } else if (ch === /* '>' = */ 0x3e) {\n        this.nextChar();\n        break;\n      } else if (specialChars[ch] === 1) {\n        ch = this.nextChar();\n        continue;\n      } else {\n        if (isFirstHex) {\n          firstDigit = toHexDigit(ch);\n          if (firstDigit === -1) {\n            this._hexStringWarn(ch);\n            ch = this.nextChar();\n            continue;\n          }\n        } else {\n          secondDigit = toHexDigit(ch);\n          if (secondDigit === -1) {\n            this._hexStringWarn(ch);\n            ch = this.nextChar();\n            continue;\n          }\n          strBuf.push(String.fromCharCode((firstDigit << 4) | secondDigit));\n        }\n        isFirstHex = !isFirstHex;\n        ch = this.nextChar();\n      }\n    }\n    return strBuf.join(\"\");\n  }\n\n  getObj() {\n    // Skip whitespace and comments.\n    let comment = false;\n    let ch = this.currentChar;\n    while (true) {\n      if (ch < 0) {\n        return EOF;\n      }\n      if (comment) {\n        if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n          comment = false;\n        }\n      } else if (ch === /* '%' = */ 0x25) {\n        comment = true;\n      } else if (specialChars[ch] !== 1) {\n        break;\n      }\n      ch = this.nextChar();\n    }\n\n    // Start reading a token.\n    switch (ch | 0) {\n      case 0x30: // '0'\n      case 0x31: // '1'\n      case 0x32: // '2'\n      case 0x33: // '3'\n      case 0x34: // '4'\n      case 0x35: // '5'\n      case 0x36: // '6'\n      case 0x37: // '7'\n      case 0x38: // '8'\n      case 0x39: // '9'\n      case 0x2b: // '+'\n      case 0x2d: // '-'\n      case 0x2e: // '.'\n        return this.getNumber();\n      case 0x28: // '('\n        return this.getString();\n      case 0x2f: // '/'\n        return this.getName();\n      // array punctuation\n      case 0x5b: // '['\n        this.nextChar();\n        return Cmd.get(\"[\");\n      case 0x5d: // ']'\n        this.nextChar();\n        return Cmd.get(\"]\");\n      // hex string or dict punctuation\n      case 0x3c: // '<'\n        ch = this.nextChar();\n        if (ch === 0x3c) {\n          // dict punctuation\n          this.nextChar();\n          return Cmd.get(\"<<\");\n        }\n        return this.getHexString();\n      // dict punctuation\n      case 0x3e: // '>'\n        ch = this.nextChar();\n        if (ch === 0x3e) {\n          this.nextChar();\n          return Cmd.get(\">>\");\n        }\n        return Cmd.get(\">\");\n      case 0x7b: // '{'\n        this.nextChar();\n        return Cmd.get(\"{\");\n      case 0x7d: // '}'\n        this.nextChar();\n        return Cmd.get(\"}\");\n      case 0x29: // ')'\n        // Consume the current character in order to avoid permanently hanging\n        // the worker thread if `Lexer.getObject` is called from within a loop\n        // containing try-catch statements, since we would otherwise attempt\n        // to parse the *same* character over and over (fixes issue8061.pdf).\n        this.nextChar();\n        throw new FormatError(`Illegal character: ${ch}`);\n    }\n\n    // Start reading a command.\n    let str = String.fromCharCode(ch);\n    const knownCommands = this.knownCommands;\n    let knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n    while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n      // Stop if a known command is found and next character does not make\n      // the string a command.\n      const possibleCommand = str + String.fromCharCode(ch);\n      if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n        break;\n      }\n      if (str.length === 128) {\n        throw new FormatError(`Command token too long: ${str.length}`);\n      }\n      str = possibleCommand;\n      knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n    }\n    if (str === \"true\") {\n      return true;\n    }\n    if (str === \"false\") {\n      return false;\n    }\n    if (str === \"null\") {\n      return null;\n    }\n\n    if (str === \"BI\") {\n      // Keep track of the current stream position, since it's needed in order\n      // to correctly cache inline images; see `Parser.makeInlineImage`.\n      this.beginInlineImagePos = this.stream.pos;\n    }\n\n    return Cmd.get(str);\n  }\n\n  skipToNextLine() {\n    let ch = this.currentChar;\n    while (ch >= 0) {\n      if (ch === /* CR = */ 0x0d) {\n        ch = this.nextChar();\n        if (ch === /* LF = */ 0x0a) {\n          this.nextChar();\n        }\n        break;\n      } else if (ch === /* LF = */ 0x0a) {\n        this.nextChar();\n        break;\n      }\n      ch = this.nextChar();\n    }\n  }\n}\n\nclass Linearization {\n  static create(stream) {\n    function getInt(linDict, name, allowZeroValue = false) {\n      const obj = linDict.get(name);\n      if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n        return obj;\n      }\n      throw new Error(\n        `The \"${name}\" parameter in the linearization ` +\n          \"dictionary is invalid.\"\n      );\n    }\n\n    function getHints(linDict) {\n      const hints = linDict.get(\"H\");\n      let hintsLength;\n\n      if (\n        Array.isArray(hints) &&\n        ((hintsLength = hints.length) === 2 || hintsLength === 4)\n      ) {\n        for (let index = 0; index < hintsLength; index++) {\n          const hint = hints[index];\n          if (!(Number.isInteger(hint) && hint > 0)) {\n            throw new Error(\n              `Hint (${index}) in the linearization dictionary is invalid.`\n            );\n          }\n        }\n        return hints;\n      }\n      throw new Error(\"Hint array in the linearization dictionary is invalid.\");\n    }\n\n    const parser = new Parser({\n      lexer: new Lexer(stream),\n      xref: null,\n    });\n    const obj1 = parser.getObj();\n    const obj2 = parser.getObj();\n    const obj3 = parser.getObj();\n    const linDict = parser.getObj();\n    let obj, length;\n    if (\n      !(\n        Number.isInteger(obj1) &&\n        Number.isInteger(obj2) &&\n        isCmd(obj3, \"obj\") &&\n        isDict(linDict) &&\n        isNum((obj = linDict.get(\"Linearized\"))) &&\n        obj > 0\n      )\n    ) {\n      return null; // No valid linearization dictionary found.\n    } else if ((length = getInt(linDict, \"L\")) !== stream.length) {\n      throw new Error(\n        'The \"L\" parameter in the linearization dictionary ' +\n          \"does not equal the stream length.\"\n      );\n    }\n    return {\n      length,\n      hints: getHints(linDict),\n      objectNumberFirst: getInt(linDict, \"O\"),\n      endFirst: getInt(linDict, \"E\"),\n      numPages: getInt(linDict, \"N\"),\n      mainXRefEntriesOffset: getInt(linDict, \"T\"),\n      pageFirst: linDict.has(\"P\")\n        ? getInt(linDict, \"P\", /* allowZeroValue = */ true)\n        : 0,\n    };\n  }\n}\n\nexport { Lexer, Linearization, Parser };\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 flate 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, stringToBytes, unreachable } from \"../shared/util.js\";\nimport { isDict } from \"./primitives.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nvar Stream = (function StreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function Stream(arrayBuffer, start, length, dict) {\n    this.bytes =\n      arrayBuffer instanceof Uint8Array\n        ? arrayBuffer\n        : new Uint8Array(arrayBuffer);\n    this.start = start || 0;\n    this.pos = this.start;\n    this.end = start + length || this.bytes.length;\n    this.dict = dict;\n  }\n\n  // required methods for a stream. if a particular stream does not\n  // implement these, an error should be thrown\n  Stream.prototype = {\n    get length() {\n      return this.end - this.start;\n    },\n    get isEmpty() {\n      return this.length === 0;\n    },\n    getByte: function Stream_getByte() {\n      if (this.pos >= this.end) {\n        return -1;\n      }\n      return this.bytes[this.pos++];\n    },\n    getUint16: function Stream_getUint16() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n      if (b0 === -1 || b1 === -1) {\n        return -1;\n      }\n      return (b0 << 8) + b1;\n    },\n    getInt32: function Stream_getInt32() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n      var b2 = this.getByte();\n      var b3 = this.getByte();\n      return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n    },\n    // Returns subarray of original buffer, should only be read.\n    getBytes(length, forceClamped = false) {\n      var bytes = this.bytes;\n      var pos = this.pos;\n      var strEnd = this.end;\n\n      if (!length) {\n        const subarray = bytes.subarray(pos, strEnd);\n        // `this.bytes` is always a `Uint8Array` here.\n        return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n      }\n      var end = pos + length;\n      if (end > strEnd) {\n        end = strEnd;\n      }\n      this.pos = end;\n      const subarray = bytes.subarray(pos, end);\n      // `this.bytes` is always a `Uint8Array` here.\n      return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n    },\n    peekByte: function Stream_peekByte() {\n      var peekedByte = this.getByte();\n      if (peekedByte !== -1) {\n        this.pos--;\n      }\n      return peekedByte;\n    },\n    peekBytes(length, forceClamped = false) {\n      var bytes = this.getBytes(length, forceClamped);\n      this.pos -= bytes.length;\n      return bytes;\n    },\n\n    getByteRange(begin, end) {\n      if (begin < 0) {\n        begin = 0;\n      }\n      if (end > this.end) {\n        end = this.end;\n      }\n      return this.bytes.subarray(begin, end);\n    },\n\n    skip: function Stream_skip(n) {\n      if (!n) {\n        n = 1;\n      }\n      this.pos += n;\n    },\n    reset: function Stream_reset() {\n      this.pos = this.start;\n    },\n    moveStart: function Stream_moveStart() {\n      this.start = this.pos;\n    },\n    makeSubStream: function Stream_makeSubStream(start, length, dict) {\n      return new Stream(this.bytes.buffer, start, length, dict);\n    },\n  };\n\n  return Stream;\n})();\n\nvar StringStream = (function StringStreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function StringStream(str) {\n    const bytes = stringToBytes(str);\n    Stream.call(this, bytes);\n  }\n\n  StringStream.prototype = Stream.prototype;\n\n  return StringStream;\n})();\n\n// super class for the decoding streams\nvar DecodeStream = (function DecodeStreamClosure() {\n  // Lots of DecodeStreams are created whose buffers are never used.  For these\n  // we share a single empty buffer. This is (a) space-efficient and (b) avoids\n  // having special cases that would be required if we used |null| for an empty\n  // buffer.\n  var emptyBuffer = new Uint8Array(0);\n\n  // eslint-disable-next-line no-shadow\n  function DecodeStream(maybeMinBufferLength) {\n    this._rawMinBufferLength = maybeMinBufferLength || 0;\n\n    this.pos = 0;\n    this.bufferLength = 0;\n    this.eof = false;\n    this.buffer = emptyBuffer;\n    this.minBufferLength = 512;\n    if (maybeMinBufferLength) {\n      // Compute the first power of two that is as big as maybeMinBufferLength.\n      while (this.minBufferLength < maybeMinBufferLength) {\n        this.minBufferLength *= 2;\n      }\n    }\n  }\n\n  DecodeStream.prototype = {\n    get isEmpty() {\n      while (!this.eof && this.bufferLength === 0) {\n        this.readBlock();\n      }\n      return this.bufferLength === 0;\n    },\n    ensureBuffer: function DecodeStream_ensureBuffer(requested) {\n      var buffer = this.buffer;\n      if (requested <= buffer.byteLength) {\n        return buffer;\n      }\n      var size = this.minBufferLength;\n      while (size < requested) {\n        size *= 2;\n      }\n      var buffer2 = new Uint8Array(size);\n      buffer2.set(buffer);\n      return (this.buffer = buffer2);\n    },\n    getByte: function DecodeStream_getByte() {\n      var pos = this.pos;\n      while (this.bufferLength <= pos) {\n        if (this.eof) {\n          return -1;\n        }\n        this.readBlock();\n      }\n      return this.buffer[this.pos++];\n    },\n    getUint16: function DecodeStream_getUint16() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n      if (b0 === -1 || b1 === -1) {\n        return -1;\n      }\n      return (b0 << 8) + b1;\n    },\n    getInt32: function DecodeStream_getInt32() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n      var b2 = this.getByte();\n      var b3 = this.getByte();\n      return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n    },\n    getBytes(length, forceClamped = false) {\n      var end,\n        pos = this.pos;\n\n      if (length) {\n        this.ensureBuffer(pos + length);\n        end = pos + length;\n\n        while (!this.eof && this.bufferLength < end) {\n          this.readBlock();\n        }\n        var bufEnd = this.bufferLength;\n        if (end > bufEnd) {\n          end = bufEnd;\n        }\n      } else {\n        while (!this.eof) {\n          this.readBlock();\n        }\n        end = this.bufferLength;\n      }\n\n      this.pos = end;\n      const subarray = this.buffer.subarray(pos, end);\n      // `this.buffer` is either a `Uint8Array` or `Uint8ClampedArray` here.\n      return forceClamped && !(subarray instanceof Uint8ClampedArray)\n        ? new Uint8ClampedArray(subarray)\n        : subarray;\n    },\n    peekByte: function DecodeStream_peekByte() {\n      var peekedByte = this.getByte();\n      if (peekedByte !== -1) {\n        this.pos--;\n      }\n      return peekedByte;\n    },\n    peekBytes(length, forceClamped = false) {\n      var bytes = this.getBytes(length, forceClamped);\n      this.pos -= bytes.length;\n      return bytes;\n    },\n    makeSubStream: function DecodeStream_makeSubStream(start, length, dict) {\n      var end = start + length;\n      while (this.bufferLength <= end && !this.eof) {\n        this.readBlock();\n      }\n      return new Stream(this.buffer, start, length, dict);\n    },\n\n    getByteRange(begin, end) {\n      unreachable(\"Should not call DecodeStream.getByteRange\");\n    },\n\n    skip: function DecodeStream_skip(n) {\n      if (!n) {\n        n = 1;\n      }\n      this.pos += n;\n    },\n    reset: function DecodeStream_reset() {\n      this.pos = 0;\n    },\n    getBaseStreams: function DecodeStream_getBaseStreams() {\n      if (this.str && this.str.getBaseStreams) {\n        return this.str.getBaseStreams();\n      }\n      return [];\n    },\n  };\n\n  return DecodeStream;\n})();\n\nvar StreamsSequenceStream = (function StreamsSequenceStreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function StreamsSequenceStream(streams) {\n    this.streams = streams;\n\n    let maybeLength = 0;\n    for (let i = 0, ii = streams.length; i < ii; i++) {\n      const stream = streams[i];\n      if (stream instanceof DecodeStream) {\n        maybeLength += stream._rawMinBufferLength;\n      } else {\n        maybeLength += stream.length;\n      }\n    }\n    DecodeStream.call(this, maybeLength);\n  }\n\n  StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype);\n\n  StreamsSequenceStream.prototype.readBlock = function streamSequenceStreamReadBlock() {\n    var streams = this.streams;\n    if (streams.length === 0) {\n      this.eof = true;\n      return;\n    }\n    var stream = streams.shift();\n    var chunk = stream.getBytes();\n    var bufferLength = this.bufferLength;\n    var newLength = bufferLength + chunk.length;\n    var buffer = this.ensureBuffer(newLength);\n    buffer.set(chunk, bufferLength);\n    this.bufferLength = newLength;\n  };\n\n  StreamsSequenceStream.prototype.getBaseStreams = function StreamsSequenceStream_getBaseStreams() {\n    var baseStreams = [];\n    for (var i = 0, ii = this.streams.length; i < ii; i++) {\n      var stream = this.streams[i];\n      if (stream.getBaseStreams) {\n        baseStreams.push(...stream.getBaseStreams());\n      }\n    }\n    return baseStreams;\n  };\n\n  return StreamsSequenceStream;\n})();\n\nvar FlateStream = (function FlateStreamClosure() {\n  // prettier-ignore\n  var codeLenCodeMap = new Int32Array([\n    16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15\n  ]);\n\n  // prettier-ignore\n  var lengthDecode = new Int32Array([\n    0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a,\n    0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f,\n    0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073,\n    0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102\n  ]);\n\n  // prettier-ignore\n  var distDecode = new Int32Array([\n    0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d,\n    0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1,\n    0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01,\n    0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001\n  ]);\n\n  // prettier-ignore\n  var fixedLitCodeTab = [new Int32Array([\n    0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0,\n    0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0,\n    0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0,\n    0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0,\n    0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8,\n    0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8,\n    0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8,\n    0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8,\n    0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4,\n    0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4,\n    0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4,\n    0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4,\n    0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc,\n    0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec,\n    0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc,\n    0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc,\n    0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2,\n    0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2,\n    0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2,\n    0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2,\n    0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca,\n    0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea,\n    0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da,\n    0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa,\n    0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6,\n    0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6,\n    0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6,\n    0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6,\n    0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce,\n    0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee,\n    0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de,\n    0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe,\n    0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1,\n    0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1,\n    0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1,\n    0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1,\n    0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9,\n    0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9,\n    0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9,\n    0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9,\n    0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5,\n    0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5,\n    0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5,\n    0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5,\n    0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd,\n    0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed,\n    0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd,\n    0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd,\n    0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3,\n    0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3,\n    0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3,\n    0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3,\n    0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb,\n    0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb,\n    0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db,\n    0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb,\n    0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7,\n    0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7,\n    0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7,\n    0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7,\n    0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf,\n    0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef,\n    0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df,\n    0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff\n  ]), 9];\n\n  // prettier-ignore\n  var fixedDistCodeTab = [new Int32Array([\n    0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c,\n    0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000,\n    0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d,\n    0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000\n  ]), 5];\n\n  // eslint-disable-next-line no-shadow\n  function FlateStream(str, maybeLength) {\n    this.str = str;\n    this.dict = str.dict;\n\n    var cmf = str.getByte();\n    var flg = str.getByte();\n    if (cmf === -1 || flg === -1) {\n      throw new FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);\n    }\n    if ((cmf & 0x0f) !== 0x08) {\n      throw new FormatError(\n        `Unknown compression method in flate stream: ${cmf}, ${flg}`\n      );\n    }\n    if (((cmf << 8) + flg) % 31 !== 0) {\n      throw new FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n    }\n    if (flg & 0x20) {\n      throw new FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n    }\n\n    this.codeSize = 0;\n    this.codeBuf = 0;\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  FlateStream.prototype = Object.create(DecodeStream.prototype);\n\n  FlateStream.prototype.getBits = function FlateStream_getBits(bits) {\n    var str = this.str;\n    var codeSize = this.codeSize;\n    var codeBuf = this.codeBuf;\n\n    var b;\n    while (codeSize < bits) {\n      if ((b = str.getByte()) === -1) {\n        throw new FormatError(\"Bad encoding in flate stream\");\n      }\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n    b = codeBuf & ((1 << bits) - 1);\n    this.codeBuf = codeBuf >> bits;\n    this.codeSize = codeSize -= bits;\n\n    return b;\n  };\n\n  FlateStream.prototype.getCode = function FlateStream_getCode(table) {\n    var str = this.str;\n    var codes = table[0];\n    var maxLen = table[1];\n    var codeSize = this.codeSize;\n    var codeBuf = this.codeBuf;\n\n    var b;\n    while (codeSize < maxLen) {\n      if ((b = str.getByte()) === -1) {\n        // premature end of stream. code might however still be valid.\n        // codeSize < codeLen check below guards against incomplete codeVal.\n        break;\n      }\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n    var code = codes[codeBuf & ((1 << maxLen) - 1)];\n    var codeLen = code >> 16;\n    var codeVal = code & 0xffff;\n    if (codeLen < 1 || codeSize < codeLen) {\n      throw new FormatError(\"Bad encoding in flate stream\");\n    }\n    this.codeBuf = codeBuf >> codeLen;\n    this.codeSize = codeSize - codeLen;\n    return codeVal;\n  };\n\n  FlateStream.prototype.generateHuffmanTable = function flateStreamGenerateHuffmanTable(\n    lengths\n  ) {\n    var n = lengths.length;\n\n    // find max code length\n    var maxLen = 0;\n    var i;\n    for (i = 0; i < n; ++i) {\n      if (lengths[i] > maxLen) {\n        maxLen = lengths[i];\n      }\n    }\n\n    // build the table\n    var size = 1 << maxLen;\n    var codes = new Int32Array(size);\n    for (\n      var len = 1, code = 0, skip = 2;\n      len <= maxLen;\n      ++len, code <<= 1, skip <<= 1\n    ) {\n      for (var val = 0; val < n; ++val) {\n        if (lengths[val] === len) {\n          // bit-reverse the code\n          var code2 = 0;\n          var t = code;\n          for (i = 0; i < len; ++i) {\n            code2 = (code2 << 1) | (t & 1);\n            t >>= 1;\n          }\n\n          // fill the table entries\n          for (i = code2; i < size; i += skip) {\n            codes[i] = (len << 16) | val;\n          }\n          ++code;\n        }\n      }\n    }\n\n    return [codes, maxLen];\n  };\n\n  FlateStream.prototype.readBlock = function FlateStream_readBlock() {\n    var buffer, len;\n    var str = this.str;\n    // read block header\n    var hdr = this.getBits(3);\n    if (hdr & 1) {\n      this.eof = true;\n    }\n    hdr >>= 1;\n\n    if (hdr === 0) {\n      // uncompressed block\n      var b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new FormatError(\"Bad block header in flate stream\");\n      }\n      var blockLen = b;\n      if ((b = str.getByte()) === -1) {\n        throw new FormatError(\"Bad block header in flate stream\");\n      }\n      blockLen |= b << 8;\n      if ((b = str.getByte()) === -1) {\n        throw new FormatError(\"Bad block header in flate stream\");\n      }\n      var check = b;\n      if ((b = str.getByte()) === -1) {\n        throw new FormatError(\"Bad block header in flate stream\");\n      }\n      check |= b << 8;\n      if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n        // Ignoring error for bad \"empty\" block (see issue 1277)\n        throw new FormatError(\"Bad uncompressed block length in flate stream\");\n      }\n\n      this.codeBuf = 0;\n      this.codeSize = 0;\n\n      const bufferLength = this.bufferLength,\n        end = bufferLength + blockLen;\n      buffer = this.ensureBuffer(end);\n      this.bufferLength = end;\n\n      if (blockLen === 0) {\n        if (str.peekByte() === -1) {\n          this.eof = true;\n        }\n      } else {\n        const block = str.getBytes(blockLen);\n        buffer.set(block, bufferLength);\n        if (block.length < blockLen) {\n          this.eof = true;\n        }\n      }\n      return;\n    }\n\n    var litCodeTable;\n    var distCodeTable;\n    if (hdr === 1) {\n      // compressed block, fixed codes\n      litCodeTable = fixedLitCodeTab;\n      distCodeTable = fixedDistCodeTab;\n    } else if (hdr === 2) {\n      // compressed block, dynamic codes\n      var numLitCodes = this.getBits(5) + 257;\n      var numDistCodes = this.getBits(5) + 1;\n      var numCodeLenCodes = this.getBits(4) + 4;\n\n      // build the code lengths code table\n      var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n\n      var i;\n      for (i = 0; i < numCodeLenCodes; ++i) {\n        codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n      }\n      var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n\n      // build the literal and distance code tables\n      len = 0;\n      i = 0;\n      var codes = numLitCodes + numDistCodes;\n      var codeLengths = new Uint8Array(codes);\n      var bitsLength, bitsOffset, what;\n      while (i < codes) {\n        var code = this.getCode(codeLenCodeTab);\n        if (code === 16) {\n          bitsLength = 2;\n          bitsOffset = 3;\n          what = len;\n        } else if (code === 17) {\n          bitsLength = 3;\n          bitsOffset = 3;\n          what = len = 0;\n        } else if (code === 18) {\n          bitsLength = 7;\n          bitsOffset = 11;\n          what = len = 0;\n        } else {\n          codeLengths[i++] = len = code;\n          continue;\n        }\n\n        var repeatLength = this.getBits(bitsLength) + bitsOffset;\n        while (repeatLength-- > 0) {\n          codeLengths[i++] = what;\n        }\n      }\n\n      litCodeTable = this.generateHuffmanTable(\n        codeLengths.subarray(0, numLitCodes)\n      );\n      distCodeTable = this.generateHuffmanTable(\n        codeLengths.subarray(numLitCodes, codes)\n      );\n    } else {\n      throw new FormatError(\"Unknown block type in flate stream\");\n    }\n\n    buffer = this.buffer;\n    var limit = buffer ? buffer.length : 0;\n    var pos = this.bufferLength;\n    while (true) {\n      var code1 = this.getCode(litCodeTable);\n      if (code1 < 256) {\n        if (pos + 1 >= limit) {\n          buffer = this.ensureBuffer(pos + 1);\n          limit = buffer.length;\n        }\n        buffer[pos++] = code1;\n        continue;\n      }\n      if (code1 === 256) {\n        this.bufferLength = pos;\n        return;\n      }\n      code1 -= 257;\n      code1 = lengthDecode[code1];\n      var code2 = code1 >> 16;\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n      len = (code1 & 0xffff) + code2;\n      code1 = this.getCode(distCodeTable);\n      code1 = distDecode[code1];\n      code2 = code1 >> 16;\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n      var dist = (code1 & 0xffff) + code2;\n      if (pos + len >= limit) {\n        buffer = this.ensureBuffer(pos + len);\n        limit = buffer.length;\n      }\n      for (var k = 0; k < len; ++k, ++pos) {\n        buffer[pos] = buffer[pos - dist];\n      }\n    }\n  };\n\n  return FlateStream;\n})();\n\nvar PredictorStream = (function PredictorStreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function PredictorStream(str, maybeLength, params) {\n    if (!isDict(params)) {\n      return str; // no prediction\n    }\n    var predictor = (this.predictor = params.get(\"Predictor\") || 1);\n\n    if (predictor <= 1) {\n      return str; // no prediction\n    }\n    if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n      throw new FormatError(`Unsupported predictor: ${predictor}`);\n    }\n\n    if (predictor === 2) {\n      this.readBlock = this.readBlockTiff;\n    } else {\n      this.readBlock = this.readBlockPng;\n    }\n\n    this.str = str;\n    this.dict = str.dict;\n\n    var colors = (this.colors = params.get(\"Colors\") || 1);\n    var bits = (this.bits = params.get(\"BitsPerComponent\") || 8);\n    var columns = (this.columns = params.get(\"Columns\") || 1);\n\n    this.pixBytes = (colors * bits + 7) >> 3;\n    this.rowBytes = (columns * colors * bits + 7) >> 3;\n\n    DecodeStream.call(this, maybeLength);\n    return this;\n  }\n\n  PredictorStream.prototype = Object.create(DecodeStream.prototype);\n\n  PredictorStream.prototype.readBlockTiff = function predictorStreamReadBlockTiff() {\n    var rowBytes = this.rowBytes;\n\n    var bufferLength = this.bufferLength;\n    var buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n    var bits = this.bits;\n    var colors = this.colors;\n\n    var rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n    if (this.eof) {\n      return;\n    }\n\n    var inbuf = 0,\n      outbuf = 0;\n    var inbits = 0,\n      outbits = 0;\n    var pos = bufferLength;\n    var i;\n\n    if (bits === 1 && colors === 1) {\n      // Optimized version of the loop in the \"else\"-branch\n      // for 1 bit-per-component and 1 color TIFF images.\n      for (i = 0; i < rowBytes; ++i) {\n        var c = rawBytes[i] ^ inbuf;\n        c ^= c >> 1;\n        c ^= c >> 2;\n        c ^= c >> 4;\n        inbuf = (c & 1) << 7;\n        buffer[pos++] = c;\n      }\n    } else if (bits === 8) {\n      for (i = 0; i < colors; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n      for (; i < rowBytes; ++i) {\n        buffer[pos] = buffer[pos - colors] + rawBytes[i];\n        pos++;\n      }\n    } else if (bits === 16) {\n      var bytesPerPixel = colors * 2;\n      for (i = 0; i < bytesPerPixel; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n      for (; i < rowBytes; i += 2) {\n        var sum =\n          ((rawBytes[i] & 0xff) << 8) +\n          (rawBytes[i + 1] & 0xff) +\n          ((buffer[pos - bytesPerPixel] & 0xff) << 8) +\n          (buffer[pos - bytesPerPixel + 1] & 0xff);\n        buffer[pos++] = (sum >> 8) & 0xff;\n        buffer[pos++] = sum & 0xff;\n      }\n    } else {\n      var compArray = new Uint8Array(colors + 1);\n      var bitMask = (1 << bits) - 1;\n      var j = 0,\n        k = bufferLength;\n      var columns = this.columns;\n      for (i = 0; i < columns; ++i) {\n        for (var kk = 0; kk < colors; ++kk) {\n          if (inbits < bits) {\n            inbuf = (inbuf << 8) | (rawBytes[j++] & 0xff);\n            inbits += 8;\n          }\n          compArray[kk] =\n            (compArray[kk] + (inbuf >> (inbits - bits))) & bitMask;\n          inbits -= bits;\n          outbuf = (outbuf << bits) | compArray[kk];\n          outbits += bits;\n          if (outbits >= 8) {\n            buffer[k++] = (outbuf >> (outbits - 8)) & 0xff;\n            outbits -= 8;\n          }\n        }\n      }\n      if (outbits > 0) {\n        buffer[k++] =\n          (outbuf << (8 - outbits)) + (inbuf & ((1 << (8 - outbits)) - 1));\n      }\n    }\n    this.bufferLength += rowBytes;\n  };\n\n  PredictorStream.prototype.readBlockPng = function predictorStreamReadBlockPng() {\n    var rowBytes = this.rowBytes;\n    var pixBytes = this.pixBytes;\n\n    var predictor = this.str.getByte();\n    var rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n    if (this.eof) {\n      return;\n    }\n\n    var bufferLength = this.bufferLength;\n    var buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n    var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n    if (prevRow.length === 0) {\n      prevRow = new Uint8Array(rowBytes);\n    }\n\n    var i,\n      j = bufferLength,\n      up,\n      c;\n    switch (predictor) {\n      case 0:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n        break;\n      case 1:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n        for (; i < rowBytes; ++i) {\n          buffer[j] = (buffer[j - pixBytes] + rawBytes[i]) & 0xff;\n          j++;\n        }\n        break;\n      case 2:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = (prevRow[i] + rawBytes[i]) & 0xff;\n        }\n        break;\n      case 3:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n        }\n        for (; i < rowBytes; ++i) {\n          buffer[j] =\n            (((prevRow[i] + buffer[j - pixBytes]) >> 1) + rawBytes[i]) & 0xff;\n          j++;\n        }\n        break;\n      case 4:\n        // we need to save the up left pixels values. the simplest way\n        // is to create a new buffer\n        for (i = 0; i < pixBytes; ++i) {\n          up = prevRow[i];\n          c = rawBytes[i];\n          buffer[j++] = up + c;\n        }\n        for (; i < rowBytes; ++i) {\n          up = prevRow[i];\n          var upLeft = prevRow[i - pixBytes];\n          var left = buffer[j - pixBytes];\n          var p = left + up - upLeft;\n\n          var pa = p - left;\n          if (pa < 0) {\n            pa = -pa;\n          }\n          var pb = p - up;\n          if (pb < 0) {\n            pb = -pb;\n          }\n          var pc = p - upLeft;\n          if (pc < 0) {\n            pc = -pc;\n          }\n\n          c = rawBytes[i];\n          if (pa <= pb && pa <= pc) {\n            buffer[j++] = left + c;\n          } else if (pb <= pc) {\n            buffer[j++] = up + c;\n          } else {\n            buffer[j++] = upLeft + c;\n          }\n        }\n        break;\n      default:\n        throw new FormatError(`Unsupported predictor: ${predictor}`);\n    }\n    this.bufferLength += rowBytes;\n  };\n\n  return PredictorStream;\n})();\n\nvar DecryptStream = (function DecryptStreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function DecryptStream(str, maybeLength, decrypt) {\n    this.str = str;\n    this.dict = str.dict;\n    this.decrypt = decrypt;\n    this.nextChunk = null;\n    this.initialized = false;\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  var chunkSize = 512;\n\n  DecryptStream.prototype = Object.create(DecodeStream.prototype);\n\n  DecryptStream.prototype.readBlock = function DecryptStream_readBlock() {\n    var chunk;\n    if (this.initialized) {\n      chunk = this.nextChunk;\n    } else {\n      chunk = this.str.getBytes(chunkSize);\n      this.initialized = true;\n    }\n    if (!chunk || chunk.length === 0) {\n      this.eof = true;\n      return;\n    }\n    this.nextChunk = this.str.getBytes(chunkSize);\n    var hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n\n    var decrypt = this.decrypt;\n    chunk = decrypt(chunk, !hasMoreData);\n\n    var bufferLength = this.bufferLength;\n    var i,\n      n = chunk.length;\n    var buffer = this.ensureBuffer(bufferLength + n);\n    for (i = 0; i < n; i++) {\n      buffer[bufferLength++] = chunk[i];\n    }\n    this.bufferLength = bufferLength;\n  };\n\n  return DecryptStream;\n})();\n\nvar Ascii85Stream = (function Ascii85StreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function Ascii85Stream(str, maybeLength) {\n    this.str = str;\n    this.dict = str.dict;\n    this.input = new Uint8Array(5);\n\n    // Most streams increase in size when decoded, but Ascii85 streams\n    // typically shrink by ~20%.\n    if (maybeLength) {\n      maybeLength = 0.8 * maybeLength;\n    }\n    DecodeStream.call(this, maybeLength);\n  }\n\n  Ascii85Stream.prototype = Object.create(DecodeStream.prototype);\n\n  Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() {\n    var TILDA_CHAR = 0x7e; // '~'\n    var Z_LOWER_CHAR = 0x7a; // 'z'\n    var EOF = -1;\n\n    var str = this.str;\n\n    var c = str.getByte();\n    while (isWhiteSpace(c)) {\n      c = str.getByte();\n    }\n\n    if (c === EOF || c === TILDA_CHAR) {\n      this.eof = true;\n      return;\n    }\n\n    var bufferLength = this.bufferLength,\n      buffer;\n    var i;\n\n    // special code for z\n    if (c === Z_LOWER_CHAR) {\n      buffer = this.ensureBuffer(bufferLength + 4);\n      for (i = 0; i < 4; ++i) {\n        buffer[bufferLength + i] = 0;\n      }\n      this.bufferLength += 4;\n    } else {\n      var input = this.input;\n      input[0] = c;\n      for (i = 1; i < 5; ++i) {\n        c = str.getByte();\n        while (isWhiteSpace(c)) {\n          c = str.getByte();\n        }\n\n        input[i] = c;\n\n        if (c === EOF || c === TILDA_CHAR) {\n          break;\n        }\n      }\n      buffer = this.ensureBuffer(bufferLength + i - 1);\n      this.bufferLength += i - 1;\n\n      // partial ending;\n      if (i < 5) {\n        for (; i < 5; ++i) {\n          input[i] = 0x21 + 84;\n        }\n        this.eof = true;\n      }\n      var t = 0;\n      for (i = 0; i < 5; ++i) {\n        t = t * 85 + (input[i] - 0x21);\n      }\n\n      for (i = 3; i >= 0; --i) {\n        buffer[bufferLength + i] = t & 0xff;\n        t >>= 8;\n      }\n    }\n  };\n\n  return Ascii85Stream;\n})();\n\nvar AsciiHexStream = (function AsciiHexStreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function AsciiHexStream(str, maybeLength) {\n    this.str = str;\n    this.dict = str.dict;\n\n    this.firstDigit = -1;\n\n    // Most streams increase in size when decoded, but AsciiHex streams shrink\n    // by 50%.\n    if (maybeLength) {\n      maybeLength = 0.5 * maybeLength;\n    }\n    DecodeStream.call(this, maybeLength);\n  }\n\n  AsciiHexStream.prototype = Object.create(DecodeStream.prototype);\n\n  AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() {\n    var UPSTREAM_BLOCK_SIZE = 8000;\n    var bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n    if (!bytes.length) {\n      this.eof = true;\n      return;\n    }\n\n    var maxDecodeLength = (bytes.length + 1) >> 1;\n    var buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n    var bufferLength = this.bufferLength;\n\n    var firstDigit = this.firstDigit;\n    for (var i = 0, ii = bytes.length; i < ii; i++) {\n      var ch = bytes[i],\n        digit;\n      if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n        digit = ch & 0x0f;\n      } else if (\n        (ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x46) ||\n        (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x66)\n      ) {\n        digit = (ch & 0x0f) + 9;\n      } else if (ch === /* '>' = */ 0x3e) {\n        this.eof = true;\n        break;\n      } else {\n        // Probably whitespace, ignoring.\n        continue;\n      }\n      if (firstDigit < 0) {\n        firstDigit = digit;\n      } else {\n        buffer[bufferLength++] = (firstDigit << 4) | digit;\n        firstDigit = -1;\n      }\n    }\n    if (firstDigit >= 0 && this.eof) {\n      // incomplete byte\n      buffer[bufferLength++] = firstDigit << 4;\n      firstDigit = -1;\n    }\n    this.firstDigit = firstDigit;\n    this.bufferLength = bufferLength;\n  };\n\n  return AsciiHexStream;\n})();\n\nvar RunLengthStream = (function RunLengthStreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function RunLengthStream(str, maybeLength) {\n    this.str = str;\n    this.dict = str.dict;\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  RunLengthStream.prototype = Object.create(DecodeStream.prototype);\n\n  RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() {\n    // The repeatHeader has following format. The first byte defines type of run\n    // and amount of bytes to repeat/copy: n = 0 through 127 - copy next n bytes\n    // (in addition to the second byte from the header), n = 129 through 255 -\n    // duplicate the second byte from the header (257 - n) times, n = 128 - end.\n    var repeatHeader = this.str.getBytes(2);\n    if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n      this.eof = true;\n      return;\n    }\n\n    var buffer;\n    var bufferLength = this.bufferLength;\n    var n = repeatHeader[0];\n    if (n < 128) {\n      // copy n bytes\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n      buffer[bufferLength++] = repeatHeader[1];\n      if (n > 0) {\n        var source = this.str.getBytes(n);\n        buffer.set(source, bufferLength);\n        bufferLength += n;\n      }\n    } else {\n      n = 257 - n;\n      var b = repeatHeader[1];\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n      for (var i = 0; i < n; i++) {\n        buffer[bufferLength++] = b;\n      }\n    }\n    this.bufferLength = bufferLength;\n  };\n\n  return RunLengthStream;\n})();\n\nvar LZWStream = (function LZWStreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function LZWStream(str, maybeLength, earlyChange) {\n    this.str = str;\n    this.dict = str.dict;\n    this.cachedData = 0;\n    this.bitsCached = 0;\n\n    var maxLzwDictionarySize = 4096;\n    var lzwState = {\n      earlyChange,\n      codeLength: 9,\n      nextCode: 258,\n      dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n      dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n      dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n      currentSequence: new Uint8Array(maxLzwDictionarySize),\n      currentSequenceLength: 0,\n    };\n    for (var i = 0; i < 256; ++i) {\n      lzwState.dictionaryValues[i] = i;\n      lzwState.dictionaryLengths[i] = 1;\n    }\n    this.lzwState = lzwState;\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  LZWStream.prototype = Object.create(DecodeStream.prototype);\n\n  LZWStream.prototype.readBits = function LZWStream_readBits(n) {\n    var bitsCached = this.bitsCached;\n    var cachedData = this.cachedData;\n    while (bitsCached < n) {\n      var c = this.str.getByte();\n      if (c === -1) {\n        this.eof = true;\n        return null;\n      }\n      cachedData = (cachedData << 8) | c;\n      bitsCached += 8;\n    }\n    this.bitsCached = bitsCached -= n;\n    this.cachedData = cachedData;\n    this.lastCode = null;\n    return (cachedData >>> bitsCached) & ((1 << n) - 1);\n  };\n\n  LZWStream.prototype.readBlock = function LZWStream_readBlock() {\n    var blockSize = 512;\n    var estimatedDecodedSize = blockSize * 2,\n      decodedSizeDelta = blockSize;\n    var i, j, q;\n\n    var lzwState = this.lzwState;\n    if (!lzwState) {\n      return; // eof was found\n    }\n\n    var earlyChange = lzwState.earlyChange;\n    var nextCode = lzwState.nextCode;\n    var dictionaryValues = lzwState.dictionaryValues;\n    var dictionaryLengths = lzwState.dictionaryLengths;\n    var dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n    var codeLength = lzwState.codeLength;\n    var prevCode = lzwState.prevCode;\n    var currentSequence = lzwState.currentSequence;\n    var currentSequenceLength = lzwState.currentSequenceLength;\n\n    var decodedLength = 0;\n    var currentBufferLength = this.bufferLength;\n    var buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n    for (i = 0; i < blockSize; i++) {\n      var code = this.readBits(codeLength);\n      var hasPrev = currentSequenceLength > 0;\n      if (code < 256) {\n        currentSequence[0] = code;\n        currentSequenceLength = 1;\n      } else if (code >= 258) {\n        if (code < nextCode) {\n          currentSequenceLength = dictionaryLengths[code];\n          for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n            currentSequence[j] = dictionaryValues[q];\n            q = dictionaryPrevCodes[q];\n          }\n        } else {\n          currentSequence[currentSequenceLength++] = currentSequence[0];\n        }\n      } else if (code === 256) {\n        codeLength = 9;\n        nextCode = 258;\n        currentSequenceLength = 0;\n        continue;\n      } else {\n        this.eof = true;\n        delete this.lzwState;\n        break;\n      }\n\n      if (hasPrev) {\n        dictionaryPrevCodes[nextCode] = prevCode;\n        dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n        dictionaryValues[nextCode] = currentSequence[0];\n        nextCode++;\n        codeLength =\n          (nextCode + earlyChange) & (nextCode + earlyChange - 1)\n            ? codeLength\n            : Math.min(\n                Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1,\n                12\n              ) | 0;\n      }\n      prevCode = code;\n\n      decodedLength += currentSequenceLength;\n      if (estimatedDecodedSize < decodedLength) {\n        do {\n          estimatedDecodedSize += decodedSizeDelta;\n        } while (estimatedDecodedSize < decodedLength);\n        buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n      }\n      for (j = 0; j < currentSequenceLength; j++) {\n        buffer[currentBufferLength++] = currentSequence[j];\n      }\n    }\n    lzwState.nextCode = nextCode;\n    lzwState.codeLength = codeLength;\n    lzwState.prevCode = prevCode;\n    lzwState.currentSequenceLength = currentSequenceLength;\n\n    this.bufferLength = currentBufferLength;\n  };\n\n  return LZWStream;\n})();\n\nvar NullStream = (function NullStreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function NullStream() {\n    Stream.call(this, new Uint8Array(0));\n  }\n\n  NullStream.prototype = Stream.prototype;\n\n  return NullStream;\n})();\n\nexport {\n  Ascii85Stream,\n  AsciiHexStream,\n  DecryptStream,\n  DecodeStream,\n  FlateStream,\n  NullStream,\n  PredictorStream,\n  RunLengthStream,\n  Stream,\n  StreamsSequenceStream,\n  StringStream,\n  LZWStream,\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 { Dict, isDict } from \"./primitives.js\";\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\nimport { DecodeStream } from \"./stream.js\";\n\nvar CCITTFaxStream = (function CCITTFaxStreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function CCITTFaxStream(str, maybeLength, params) {\n    this.str = str;\n    this.dict = str.dict;\n\n    if (!isDict(params)) {\n      params = Dict.empty;\n    }\n\n    const source = {\n      next() {\n        return str.getByte();\n      },\n    };\n    this.ccittFaxDecoder = new CCITTFaxDecoder(source, {\n      K: params.get(\"K\"),\n      EndOfLine: params.get(\"EndOfLine\"),\n      EncodedByteAlign: params.get(\"EncodedByteAlign\"),\n      Columns: params.get(\"Columns\"),\n      Rows: params.get(\"Rows\"),\n      EndOfBlock: params.get(\"EndOfBlock\"),\n      BlackIs1: params.get(\"BlackIs1\"),\n    });\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  CCITTFaxStream.prototype = Object.create(DecodeStream.prototype);\n\n  CCITTFaxStream.prototype.readBlock = function () {\n    while (!this.eof) {\n      const c = this.ccittFaxDecoder.readNextChar();\n      if (c === -1) {\n        this.eof = true;\n        return;\n      }\n      this.ensureBuffer(this.bufferLength + 1);\n      this.buffer[this.bufferLength++] = c;\n    }\n  };\n\n  return CCITTFaxStream;\n})();\n\nexport { CCITTFaxStream };\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\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\nimport { info } from \"../shared/util.js\";\n\nconst CCITTFaxDecoder = (function CCITTFaxDecoder() {\n  const ccittEOL = -2;\n  const ccittEOF = -1;\n  const twoDimPass = 0;\n  const twoDimHoriz = 1;\n  const twoDimVert0 = 2;\n  const twoDimVertR1 = 3;\n  const twoDimVertL1 = 4;\n  const twoDimVertR2 = 5;\n  const twoDimVertL2 = 6;\n  const twoDimVertR3 = 7;\n  const twoDimVertL3 = 8;\n\n  // prettier-ignore\n  const 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\n  const 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\n  const 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\n  const 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\n  const 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\n  const 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   */\n  // eslint-disable-next-line no-shadow\n  function CCITTFaxDecoder(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    let eoblock = options.EndOfBlock;\n    if (eoblock === null || eoblock === undefined) {\n      eoblock = true;\n    }\n    this.eoblock = eoblock;\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  CCITTFaxDecoder.prototype = {\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(\n                  codingLine[this.codingPos] + code1,\n                  blackPixels\n                );\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        if (codingLine[0] > 0) {\n          this.outputBits = codingLine[(this.codingPos = 0)];\n        } else {\n          this.outputBits = codingLine[(this.codingPos = 1)];\n        }\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 (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 && 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        if (code >> 5 === 0) {\n          p = whiteTable1[code];\n        } else {\n          p = whiteTable2[code >> 3];\n        }\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\n  return CCITTFaxDecoder;\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 { isDict, isStream } from \"./primitives.js\";\nimport { DecodeStream } from \"./stream.js\";\nimport { Jbig2Image } from \"./jbig2.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JBIG2's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nconst Jbig2Stream = (function Jbig2StreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function Jbig2Stream(stream, maybeLength, dict, params) {\n    this.stream = stream;\n    this.maybeLength = maybeLength;\n    this.dict = dict;\n    this.params = params;\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  Jbig2Stream.prototype = Object.create(DecodeStream.prototype);\n\n  Object.defineProperty(Jbig2Stream.prototype, \"bytes\", {\n    get() {\n      // If `this.maybeLength` is null, we'll get the entire stream.\n      return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n    },\n    configurable: true,\n  });\n\n  Jbig2Stream.prototype.ensureBuffer = function (requested) {\n    // No-op, since `this.readBlock` will always parse the entire image and\n    // directly insert all of its data into `this.buffer`.\n  };\n\n  Jbig2Stream.prototype.readBlock = function () {\n    if (this.eof) {\n      return;\n    }\n    const jbig2Image = new Jbig2Image();\n\n    const chunks = [];\n    if (isDict(this.params)) {\n      const globalsStream = this.params.get(\"JBIG2Globals\");\n      if (isStream(globalsStream)) {\n        const globals = globalsStream.getBytes();\n        chunks.push({ data: globals, start: 0, end: globals.length });\n      }\n    }\n    chunks.push({ data: this.bytes, start: 0, end: this.bytes.length });\n    const data = jbig2Image.parseChunks(chunks);\n    const dataLength = data.length;\n\n    // JBIG2 had black as 1 and white as 0, inverting the colors\n    for (let i = 0; i < dataLength; i++) {\n      data[i] ^= 0xff;\n    }\n    this.buffer = data;\n    this.bufferLength = dataLength;\n    this.eof = true;\n  };\n\n  return Jbig2Stream;\n})();\n\nexport { Jbig2Stream };\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}`);\n  }\n}\n\nvar Jbig2Image = (function Jbig2ImageClosure() {\n  // Utility data structures\n  function ContextCache() {}\n\n  ContextCache.prototype = {\n    getContexts(id) {\n      if (id in this) {\n        return this[id];\n      }\n      return (this[id] = new Int8Array(1 << 16));\n    },\n  };\n\n  function DecodingContext(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n  }\n\n  DecodingContext.prototype = {\n    get decoder() {\n      var decoder = new ArithmeticDecoder(this.data, this.start, this.end);\n      return shadow(this, \"decoder\", decoder);\n    },\n    get contextCache() {\n      var cache = new ContextCache();\n      return shadow(this, \"contextCache\", cache);\n    },\n  };\n\n  // Annex A. Arithmetic Integer Decoding Procedure\n  // A.2 Procedure for decoding values\n  function decodeInteger(contextCache, procedure, decoder) {\n    var contexts = contextCache.getContexts(procedure);\n    var prev = 1;\n\n    function readBits(length) {\n      var v = 0;\n      for (var i = 0; i < length; i++) {\n        var bit = decoder.readBit(contexts, prev);\n        prev =\n          prev < 256 ? (prev << 1) | bit : (((prev << 1) | bit) & 511) | 256;\n        v = (v << 1) | bit;\n      }\n      return v >>> 0;\n    }\n\n    var sign = readBits(1);\n    // prettier-ignore\n    /* eslint-disable no-nested-ternary */\n    var 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    if (sign === 0) {\n      return value;\n    } else if (value > 0) {\n      return -value;\n    }\n    return null;\n  }\n\n  // A.3 The IAID decoding procedure\n  function decodeIAID(contextCache, decoder, codeLength) {\n    var contexts = contextCache.getContexts(\"IAID\");\n\n    var prev = 1;\n    for (var i = 0; i < codeLength; i++) {\n      var 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\n  var 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\n  var 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\n  var 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.\n  var ReusedContexts = [\n    0x9b25, // 10011 0110010 0101\n    0x0795, // 0011 110010 101\n    0x00e5, // 001 11001 01\n    0x0195, // 011001 0101\n  ];\n\n  var RefinementReusedContexts = [\n    0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference)\n    0x0008, // '0000' + '001000'\n  ];\n\n  function decodeBitmapTemplate0(width, height, decodingContext) {\n    var decoder = decodingContext.decoder;\n    var contexts = decodingContext.contextCache.getContexts(\"GB\");\n    var contextLabel,\n      i,\n      j,\n      pixel,\n      row,\n      row1,\n      row2,\n      bitmap = [];\n\n    // ...ooooo....\n    // ..ooooooo... Context template for current pixel (X)\n    // .ooooX...... (concatenate values of 'o'-pixels to get contextLabel)\n    var 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\n  function 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    var useskip = !!skip;\n    var 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    var templateLength = template.length;\n    var templateX = new Int8Array(templateLength);\n    var templateY = new Int8Array(templateLength);\n    var changingTemplateEntries = [];\n    var reuseMask = 0,\n      minX = 0,\n      maxX = 0,\n      minY = 0;\n    var 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    var changingEntriesLength = changingTemplateEntries.length;\n\n    var changingTemplateX = new Int8Array(changingEntriesLength);\n    var changingTemplateY = new Int8Array(changingEntriesLength);\n    var 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    var sbb_left = -minX;\n    var sbb_top = -minY;\n    var sbb_right = width - maxX;\n\n    var pseudoPixelContext = ReusedContexts[templateIndex];\n    var row = new Uint8Array(width);\n    var bitmap = [];\n\n    var decoder = decodingContext.decoder;\n    var contexts = decodingContext.contextCache.getContexts(\"GB\");\n\n    var ltp = 0,\n      j,\n      i0,\n      j0,\n      contextLabel = 0,\n      bit,\n      shift;\n    for (var i = 0; i < height; i++) {\n      if (prediction) {\n        var 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        var 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\n  function decodeRefinement(\n    width,\n    height,\n    templateIndex,\n    referenceBitmap,\n    offsetX,\n    offsetY,\n    prediction,\n    at,\n    decodingContext\n  ) {\n    var codingTemplate = RefinementTemplates[templateIndex].coding;\n    if (templateIndex === 0) {\n      codingTemplate = codingTemplate.concat([at[0]]);\n    }\n    var codingTemplateLength = codingTemplate.length;\n    var codingTemplateX = new Int32Array(codingTemplateLength);\n    var codingTemplateY = new Int32Array(codingTemplateLength);\n    var k;\n    for (k = 0; k < codingTemplateLength; k++) {\n      codingTemplateX[k] = codingTemplate[k].x;\n      codingTemplateY[k] = codingTemplate[k].y;\n    }\n\n    var referenceTemplate = RefinementTemplates[templateIndex].reference;\n    if (templateIndex === 0) {\n      referenceTemplate = referenceTemplate.concat([at[1]]);\n    }\n    var referenceTemplateLength = referenceTemplate.length;\n    var referenceTemplateX = new Int32Array(referenceTemplateLength);\n    var 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    var referenceWidth = referenceBitmap[0].length;\n    var referenceHeight = referenceBitmap.length;\n\n    var pseudoPixelContext = RefinementReusedContexts[templateIndex];\n    var bitmap = [];\n\n    var decoder = decodingContext.decoder;\n    var contexts = decodingContext.contextCache.getContexts(\"GR\");\n\n    var ltp = 0;\n    for (var i = 0; i < height; i++) {\n      if (prediction) {\n        var sltp = decoder.readBit(contexts, pseudoPixelContext);\n        ltp ^= sltp;\n        if (ltp) {\n          throw new Jbig2Error(\"prediction is not supported\");\n        }\n      }\n      var row = new Uint8Array(width);\n      bitmap.push(row);\n      for (var j = 0; j < width; j++) {\n        var i0, j0;\n        var 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 (\n            i0 < 0 ||\n            i0 >= referenceHeight ||\n            j0 < 0 ||\n            j0 >= referenceWidth\n          ) {\n            contextLabel <<= 1; // out of bound pixel\n          } else {\n            contextLabel = (contextLabel << 1) | referenceBitmap[i0][j0];\n          }\n        }\n        var 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\n  function 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    var newSymbols = [];\n    var currentHeight = 0;\n    var symbolCodeLength = log2(symbols.length + numberOfNewSymbols);\n\n    var decoder = decodingContext.decoder;\n    var 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      var 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        var 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        var bitmap;\n        if (refinement) {\n          // 6.5.8.2 Refinement/aggregate-coded symbol bitmap\n          var 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            var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n            var rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n            var rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n            var 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    var exportedSymbols = [];\n    var flags = [],\n      currentFlag = false;\n    var totalSymbolsLength = symbols.length + numberOfNewSymbols;\n    while (flags.length < totalSymbolsLength) {\n      var 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 (var i = 0, ii = symbols.length; i < ii; i++) {\n      if (flags[i]) {\n        exportedSymbols.push(symbols[i]);\n      }\n    }\n    for (var j = 0; j < numberOfNewSymbols; i++, j++) {\n      if (flags[i]) {\n        exportedSymbols.push(newSymbols[j]);\n      }\n    }\n    return exportedSymbols;\n  }\n\n  function 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    var bitmap = [];\n    var i, row;\n    for (i = 0; i < height; i++) {\n      row = new Uint8Array(width);\n      if (defaultPixelValue) {\n        for (var j = 0; j < width; j++) {\n          row[j] = defaultPixelValue;\n        }\n      }\n      bitmap.push(row);\n    }\n\n    var decoder = decodingContext.decoder;\n    var contextCache = decodingContext.contextCache;\n\n    var stripT = huffman\n      ? -huffmanTables.tableDeltaT.decode(huffmanInput)\n      : -decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n    var firstS = 0;\n    i = 0;\n    while (i < numberOfSymbolInstances) {\n      var deltaT = huffman\n        ? huffmanTables.tableDeltaT.decode(huffmanInput)\n        : decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n      stripT += deltaT;\n\n      var deltaFirstS = huffman\n        ? huffmanTables.tableFirstS.decode(huffmanInput)\n        : decodeInteger(contextCache, \"IAFS\", decoder); // 6.4.7\n      firstS += deltaFirstS;\n      var 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        var t = stripSize * stripT + currentT;\n        var symbolId = huffman\n          ? huffmanTables.symbolIDTable.decode(huffmanInput)\n          : decodeIAID(contextCache, decoder, symbolCodeLength);\n        var applyRefinement =\n          refinement &&\n          (huffman\n            ? huffmanInput.readBit()\n            : decodeInteger(contextCache, \"IARI\", decoder));\n        var symbolBitmap = inputSymbols[symbolId];\n        var symbolWidth = symbolBitmap[0].length;\n        var symbolHeight = symbolBitmap.length;\n        if (applyRefinement) {\n          var rdw = decodeInteger(contextCache, \"IARDW\", decoder); // 6.4.11.1\n          var rdh = decodeInteger(contextCache, \"IARDH\", decoder); // 6.4.11.2\n          var rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n          var 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        var offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n        var offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n        var 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            var 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        var 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\n  function 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          x: -3,\n          y: -1,\n        });\n        at.push({\n          x: 2,\n          y: -2,\n        });\n        at.push({\n          x: -2,\n          y: -2,\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\n  function 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 \" +\n          combinationOperator +\n          \" 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          x: -3,\n          y: -1,\n        });\n        at.push({\n          x: 2,\n          y: -2,\n        });\n        at.push({\n          x: -2,\n          y: -2,\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] ^ bit; // 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\n  function readSegmentHeader(data, start) {\n    var segmentHeader = {};\n    segmentHeader.number = readUint32(data, start);\n    var flags = data[start + 4];\n    var 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    var pageAssociationFieldSize = !!(flags & 0x40);\n    var referredFlags = data[start + 5];\n    var referredToCount = (referredFlags >> 5) & 7;\n    var retainBits = [referredFlags & 31];\n    var position = start + 6;\n    if (referredFlags === 7) {\n      referredToCount = readUint32(data, position - 1) & 0x1fffffff;\n      position += 3;\n      var 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    var referredTo = [];\n    var 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        var genericRegionInfo = readRegionSegmentInformation(data, position);\n        var genericRegionSegmentFlags =\n          data[position + RegionSegmentInformationFieldLength];\n        var genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n        // searching for the segment end\n        var searchPatternLength = 6;\n        var 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          var 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\n  function readSegments(header, data, start, end) {\n    var segments = [];\n    var position = start;\n    while (position < end) {\n      var segmentHeader = readSegmentHeader(data, position);\n      position = segmentHeader.headerEnd;\n      var 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 (var 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\n  function 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  }\n  var RegionSegmentInformationFieldLength = 17;\n\n  function processSegment(segment, visitor) {\n    var header = segment.header;\n\n    var data = segment.data,\n      position = segment.start,\n      end = segment.end;\n    var args, at, i, atLength;\n    switch (header.type) {\n      case 0: // SymbolDictionary\n        // 7.4.2 Symbol dictionary segment syntax\n        var dictionary = {};\n        var 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        var textRegion = {};\n        textRegion.info = readRegionSegmentInformation(data, position);\n        position += RegionSegmentInformationFieldLength;\n        var 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          var 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        var genericRegion = {};\n        genericRegion.info = readRegionSegmentInformation(data, position);\n        position += RegionSegmentInformationFieldLength;\n        var 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        var 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        var 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})` +\n            \" is not implemented\"\n        );\n    }\n    var callbackName = \"on\" + header.typeName;\n    if (callbackName in visitor) {\n      visitor[callbackName].apply(visitor, args);\n    }\n  }\n\n  function processSegments(segments, visitor) {\n    for (var i = 0, ii = segments.length; i < ii; i++) {\n      processSegment(segments[i], visitor);\n    }\n  }\n\n  function parseJbig2Chunks(chunks) {\n    var visitor = new SimpleSegmentVisitor();\n    for (var i = 0, ii = chunks.length; i < ii; i++) {\n      var chunk = chunks[i];\n      var segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n      processSegments(segments, visitor);\n    }\n    return visitor.buffer;\n  }\n\n  function parseJbig2(data) {\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\n  function SimpleSegmentVisitor() {}\n\n  SimpleSegmentVisitor.prototype = {\n    onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) {\n      this.currentPageInfo = info;\n      var rowSize = (info.width + 7) >> 3;\n      var 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        for (var i = 0, ii = buffer.length; i < ii; i++) {\n          buffer[i] = 0xff;\n        }\n      }\n      this.buffer = buffer;\n    },\n    drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) {\n      var pageInfo = this.currentPageInfo;\n      var width = regionInfo.width,\n        height = regionInfo.height;\n      var rowSize = (pageInfo.width + 7) >> 3;\n      var combinationOperator = pageInfo.combinationOperatorOverride\n        ? regionInfo.combinationOperator\n        : pageInfo.combinationOperator;\n      var buffer = this.buffer;\n      var mask0 = 128 >> (regionInfo.x & 7);\n      var offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n      var 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    onImmediateGenericRegion: function SimpleSegmentVisitor_onImmediateGenericRegion(\n      region,\n      data,\n      start,\n      end\n    ) {\n      var regionInfo = region.info;\n      var decodingContext = new DecodingContext(data, start, end);\n      var 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    onImmediateLosslessGenericRegion: function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() {\n      this.onImmediateGenericRegion.apply(this, arguments);\n    },\n    onSymbolDictionary: function SimpleSegmentVisitor_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      var symbols = this.symbols;\n      if (!symbols) {\n        this.symbols = symbols = {};\n      }\n\n      var inputSymbols = [];\n      for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n        const referredSymbols = symbols[referredSegments[i]];\n        // referredSymbols is undefined when we have a reference to a Tables\n        // segment instead of a SymbolDictionary.\n        if (referredSymbols) {\n          inputSymbols = inputSymbols.concat(referredSymbols);\n        }\n      }\n\n      var 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    onImmediateTextRegion: function SimpleSegmentVisitor_onImmediateTextRegion(\n      region,\n      referredSegments,\n      data,\n      start,\n      end\n    ) {\n      var regionInfo = region.info;\n      let huffmanTables, huffmanInput;\n\n      // Combines exported symbols from all referred segments\n      var symbols = this.symbols;\n      var inputSymbols = [];\n      for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n        const referredSymbols = symbols[referredSegments[i]];\n        // referredSymbols is undefined when we have a reference to a Tables\n        // segment instead of a SymbolDictionary.\n        if (referredSymbols) {\n          inputSymbols = inputSymbols.concat(referredSymbols);\n        }\n      }\n      var 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      var decodingContext = new DecodingContext(data, start, end);\n      var 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    onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() {\n      this.onImmediateTextRegion.apply(this, arguments);\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    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    onImmediateLosslessHalftoneRegion() {\n      this.onImmediateHalftoneRegion.apply(this, arguments);\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\n  function HuffmanLine(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  function HuffmanTreeNode(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  HuffmanTreeNode.prototype = {\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    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\n  function HuffmanTable(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  HuffmanTable.prototype = {\n    decode(reader) {\n      return this.rootNode.decodeNode(reader);\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\n  function 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(\n      new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"])\n    );\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\n  const standardTablesCache = {};\n\n  function 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\n  function Reader(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  Reader.prototype = {\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\n  function 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\n  function 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\n  function 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\n  function 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\n  function 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\n  // eslint-disable-next-line no-shadow\n  function Jbig2Image() {}\n\n  Jbig2Image.prototype = {\n    parseChunks(chunks) {\n      return parseJbig2Chunks(chunks);\n    },\n\n    parse(data) {\n      const { imgData, width, height } = parseJbig2(data);\n      this.width = width;\n      this.height = height;\n      return imgData;\n    },\n  };\n\n  return Jbig2Image;\n})();\n\nexport { Jbig2Image };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint no-var: error */\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\nimport { DecodeStream } from \"./stream.js\";\nimport { isDict } from \"./primitives.js\";\nimport { JpegImage } from \"./jpg.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG's we use a library to decode these images and the stream behaves\n * like all the other DecodeStreams.\n */\nconst JpegStream = (function JpegStreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function JpegStream(stream, maybeLength, dict, params) {\n    // Some images may contain 'junk' before the SOI (start-of-image) marker.\n    // Note: this seems to mainly affect inline images.\n    let ch;\n    while ((ch = stream.getByte()) !== -1) {\n      // Find the first byte of the SOI marker (0xFFD8).\n      if (ch === 0xff) {\n        stream.skip(-1); // Reset the stream position to the SOI.\n        break;\n      }\n    }\n    this.stream = stream;\n    this.maybeLength = maybeLength;\n    this.dict = dict;\n    this.params = params;\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  JpegStream.prototype = Object.create(DecodeStream.prototype);\n\n  Object.defineProperty(JpegStream.prototype, \"bytes\", {\n    get: function JpegStream_bytes() {\n      // If `this.maybeLength` is null, we'll get the entire stream.\n      return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n    },\n    configurable: true,\n  });\n\n  JpegStream.prototype.ensureBuffer = function (requested) {\n    // No-op, since `this.readBlock` will always parse the entire image and\n    // directly insert all of its data into `this.buffer`.\n  };\n\n  JpegStream.prototype.readBlock = function () {\n    if (this.eof) {\n      return;\n    }\n    const jpegOptions = {\n      decodeTransform: undefined,\n      colorTransform: undefined,\n    };\n\n    // Checking if values need to be transformed before conversion.\n    const decodeArr = this.dict.getArray(\"Decode\", \"D\");\n    if (this.forceRGB && Array.isArray(decodeArr)) {\n      const bitsPerComponent = this.dict.get(\"BitsPerComponent\") || 8;\n      const decodeArrLength = decodeArr.length;\n      const transform = new Int32Array(decodeArrLength);\n      let transformNeeded = false;\n      const maxValue = (1 << bitsPerComponent) - 1;\n      for (let i = 0; i < decodeArrLength; i += 2) {\n        transform[i] = ((decodeArr[i + 1] - decodeArr[i]) * 256) | 0;\n        transform[i + 1] = (decodeArr[i] * maxValue) | 0;\n        if (transform[i] !== 256 || transform[i + 1] !== 0) {\n          transformNeeded = true;\n        }\n      }\n      if (transformNeeded) {\n        jpegOptions.decodeTransform = transform;\n      }\n    }\n    // Fetching the 'ColorTransform' entry, if it exists.\n    if (isDict(this.params)) {\n      const colorTransform = this.params.get(\"ColorTransform\");\n      if (Number.isInteger(colorTransform)) {\n        jpegOptions.colorTransform = colorTransform;\n      }\n    }\n    const jpegImage = new JpegImage(jpegOptions);\n\n    jpegImage.parse(this.bytes);\n    const data = jpegImage.getData({\n      width: this.drawWidth,\n      height: this.drawHeight,\n      forceRGB: this.forceRGB,\n      isSourcePDF: true,\n    });\n    this.buffer = data;\n    this.bufferLength = data.length;\n    this.eof = true;\n  };\n\n  return JpegStream;\n})();\n\nexport { JpegStream };\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 { readUint16 } from \"./core_utils.js\";\n\nclass JpegError extends BaseException {\n  constructor(msg) {\n    super(`JPEG error: ${msg}`);\n  }\n}\n\nclass DNLMarkerError extends BaseException {\n  constructor(message, scanLines) {\n    super(message);\n    this.scanLines = scanLines;\n  }\n}\n\nclass EOIMarkerError extends BaseException {}\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\nvar JpegImage = (function JpegImageClosure() {\n  // prettier-ignore\n  var 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\n  var dctCos1 = 4017; // cos(pi/16)\n  var dctSin1 = 799; // sin(pi/16)\n  var dctCos3 = 3406; // cos(3*pi/16)\n  var dctSin3 = 2276; // sin(3*pi/16)\n  var dctCos6 = 1567; // cos(6*pi/16)\n  var dctSin6 = 3784; // sin(6*pi/16)\n  var dctSqrt2 = 5793; // sqrt(2)\n  var dctSqrt1d2 = 2896; // sqrt(2) / 2\n\n  // eslint-disable-next-line no-shadow\n  function JpegImage({ decodeTransform = null, colorTransform = -1 } = {}) {\n    this._decodeTransform = decodeTransform;\n    this._colorTransform = colorTransform;\n  }\n\n  function buildHuffmanTable(codeLengths, values) {\n    var k = 0,\n      code = [],\n      i,\n      j,\n      length = 16;\n    while (length > 0 && !codeLengths[length - 1]) {\n      length--;\n    }\n    code.push({ children: [], index: 0 });\n    var 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\n  function getBlockBufferOffset(component, row, col) {\n    return 64 * ((component.blocksPerLine + 1) * row + col);\n  }\n\n  function decodeScan(\n    data,\n    offset,\n    frame,\n    components,\n    resetInterval,\n    spectralStart,\n    spectralEnd,\n    successivePrev,\n    successive,\n    parseDNLMarker = false\n  ) {\n    var mcusPerLine = frame.mcusPerLine;\n    var 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        var 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 * 8;\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 one order of\n              // magnitude smaller than expected (fixes issue10880.pdf).\n              if (maybeScanLines > 0 && maybeScanLines < frame.scanLines / 10) {\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      var 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      var 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      var 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      var t = decodeHuffman(component.huffmanTableDC);\n      var diff = t === 0 ? 0 : receiveAndExtend(t);\n      component.blockData[blockOffset] = component.pred += diff;\n      var k = 1;\n      while (k < 64) {\n        var rs = decodeHuffman(component.huffmanTableAC);\n        var 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        var z = dctZigZag[k];\n        component.blockData[blockOffset + z] = receiveAndExtend(s);\n        k++;\n      }\n    }\n\n    function decodeDCFirst(component, blockOffset) {\n      var t = decodeHuffman(component.huffmanTableDC);\n      var 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    var eobrun = 0;\n    function decodeACFirst(component, blockOffset) {\n      if (eobrun > 0) {\n        eobrun--;\n        return;\n      }\n      var k = spectralStart,\n        e = spectralEnd;\n      while (k <= e) {\n        var rs = decodeHuffman(component.huffmanTableAC);\n        var 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        var z = dctZigZag[k];\n        component.blockData[blockOffset + z] =\n          receiveAndExtend(s) * (1 << successive);\n        k++;\n      }\n    }\n\n    var successiveACState = 0,\n      successiveACNextValue;\n    function decodeACSuccessive(component, blockOffset) {\n      var k = spectralStart;\n      var e = spectralEnd;\n      var r = 0;\n      var s;\n      var 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] =\n                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      var mcuRow = (mcu / mcusPerLine) | 0;\n      var mcuCol = mcu % mcusPerLine;\n      blockRow = mcuRow * component.v + row;\n      var 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      var blockCol = mcu % component.blocksPerLine;\n      const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n      decode(component, blockOffset);\n    }\n\n    var componentsLength = components.length;\n    var component, i, j, k, n;\n    var 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    var mcu = 0,\n      fileMarker;\n    var mcuExpected;\n    if (componentsLength === 1) {\n      mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n    } else {\n      mcuExpected = mcusPerLine * frame.mcusPerColumn;\n    }\n\n    var h, v;\n    while (mcu <= mcuExpected) {\n      // reset interval stuff\n      var 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.\n  function quantizeAndInverse(component, blockBufferOffset, p) {\n    var qt = component.quantizationTable,\n      blockData = component.blockData;\n    var v0, v1, v2, v3, v4, v5, v6, v7;\n    var p0, p1, p2, p3, p4, p5, p6, p7;\n    var t;\n\n    if (!qt) {\n      throw new JpegError(\"missing required Quantization Table.\");\n    }\n\n    // inverse DCT on rows\n    for (var 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 (var 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\n  function buildComponentData(frame, component) {\n    var blocksPerLine = component.blocksPerLine;\n    var blocksPerColumn = component.blocksPerColumn;\n    var computationBuffer = new Int16Array(64);\n\n    for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n      for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n        var offset = getBlockBufferOffset(component, blockRow, blockCol);\n        quantizeAndInverse(component, offset, computationBuffer);\n      }\n    }\n    return component.blockData;\n  }\n\n  function findNextFileMarker(data, currentPos, startPos = currentPos) {\n    const maxPos = data.length - 1;\n    var 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    var currentMarker = readUint16(data, currentPos);\n    if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n      return {\n        invalid: null,\n        marker: currentMarker,\n        offset: currentPos,\n      };\n    }\n    var 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\n  JpegImage.prototype = {\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        var fileMarker = findNextFileMarker(data, endOffset, offset);\n        if (fileMarker && fileMarker.invalid) {\n          warn(\n            \"readDataBlock - incorrect length, current marker is: \" +\n              fileMarker.invalid\n          );\n          endOffset = fileMarker.offset;\n        }\n\n        var array = data.subarray(offset, endOffset);\n        offset += array.length;\n        return array;\n      }\n\n      function prepareComponents(frame) {\n        var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n        var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n        for (var i = 0; i < frame.components.length; i++) {\n          component = frame.components[i];\n          var blocksPerLine = Math.ceil(\n            (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n          );\n          var blocksPerColumn = Math.ceil(\n            (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n          );\n          var blocksPerLineForMcu = mcusPerLine * component.h;\n          var blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n          var 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      var offset = 0;\n      var jfif = null;\n      var adobe = null;\n      var frame, resetInterval;\n      let numSOSMarkers = 0;\n      var quantizationTables = [];\n      var 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        var 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            var 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            var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n            var z;\n            while (offset < quantizationTablesEnd) {\n              var quantizationTableSpec = data[offset++];\n              var 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            var componentsCount = data[offset++],\n              componentId;\n            var maxH = 0,\n              maxV = 0;\n            for (i = 0; i < componentsCount; i++) {\n              componentId = data[offset];\n              var h = data[offset + 1] >> 4;\n              var v = data[offset + 1] & 15;\n              if (maxH < h) {\n                maxH = h;\n              }\n              if (maxV < v) {\n                maxV = v;\n              }\n              var 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              var huffmanTableSpec = data[offset++];\n              var codeLengths = new Uint8Array(16);\n              var codeLengthSum = 0;\n              for (j = 0; j < 16; j++, offset++) {\n                codeLengthSum += codeLengths[j] = data[offset];\n              }\n              var 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            var selectorsCount = data[offset++];\n            var components = [],\n              component;\n            for (i = 0; i < selectorsCount; i++) {\n              var componentIndex = frame.componentIds[data[offset++]];\n              component = frame.components[componentIndex];\n              var tableSpec = data[offset++];\n              component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n              component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n              components.push(component);\n            }\n            var spectralStart = data[offset++];\n            var spectralEnd = data[offset++];\n            var successiveApproximation = data[offset++];\n            try {\n              var 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 && 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 (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      this.width = frame.samplesPerLine;\n      this.height = frame.scanLines;\n      this.jfif = jfif;\n      this.adobe = adobe;\n      this.components = [];\n      for (i = 0; i < frame.components.length; i++) {\n        component = frame.components[i];\n\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        var quantizationTable = quantizationTables[component.quantizationId];\n        if (quantizationTable) {\n          component.quantizationTable = quantizationTable;\n        }\n\n        this.components.push({\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      var scaleX = this.width / width,\n        scaleY = this.height / height;\n\n      var component, componentScaleX, componentScaleY, blocksPerScanline;\n      var x, y, i, j, k;\n      var index;\n      var offset = 0;\n      var output;\n      var numComponents = this.components.length;\n      var dataLength = width * height * numComponents;\n      var data = new Uint8ClampedArray(dataLength);\n      var xScaleBlockOffset = new Uint32Array(width);\n      var 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        // prettier-ignore\n        transform = new Int32Array([\n          -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        }\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: function convertYccToRgb(data) {\n      var Y, Cb, Cr;\n      for (var 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    _convertYcckToRgb: function convertYcckToRgb(data) {\n      var Y, Cb, Cr, k;\n      var offset = 0;\n      for (var 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    _convertYcckToCmyk: function convertYcckToCmyk(data) {\n      var Y, Cb, Cr;\n      for (var 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: function convertCmykToRgb(data) {\n      var c, m, y, k;\n      var offset = 0;\n      for (var 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.00031891311758832814 * 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    getData({ width, height, forceRGB = false, isSourcePDF = false }) {\n      if (\n        typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"!PRODUCTION || TESTING\")\n      ) {\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      var data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n      if (this.numComponents === 1 && forceRGB) {\n        var dataLength = data.length;\n        var rgbData = new Uint8ClampedArray(dataLength * 3);\n        var offset = 0;\n        for (var i = 0; i < dataLength; i++) {\n          var grayColor = data[i];\n          rgbData[offset++] = grayColor;\n          rgbData[offset++] = grayColor;\n          rgbData[offset++] = grayColor;\n        }\n        return rgbData;\n      } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n        return this._convertYccToRgb(data);\n      } else if (this.numComponents === 4) {\n        if (this._isColorConversionNeeded) {\n          if (forceRGB) {\n            return this._convertYcckToRgb(data);\n          }\n          return this._convertYcckToCmyk(data);\n        } else if (forceRGB) {\n          return this._convertCmykToRgb(data);\n        }\n      }\n      return data;\n    },\n  };\n\n  return JpegImage;\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 { DecodeStream } from \"./stream.js\";\nimport { JpxImage } from \"./jpx.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG 2000's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nconst JpxStream = (function JpxStreamClosure() {\n  // eslint-disable-next-line no-shadow\n  function JpxStream(stream, maybeLength, dict, params) {\n    this.stream = stream;\n    this.maybeLength = maybeLength;\n    this.dict = dict;\n    this.params = params;\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  JpxStream.prototype = Object.create(DecodeStream.prototype);\n\n  Object.defineProperty(JpxStream.prototype, \"bytes\", {\n    get: function JpxStream_bytes() {\n      // If `this.maybeLength` is null, we'll get the entire stream.\n      return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n    },\n    configurable: true,\n  });\n\n  JpxStream.prototype.ensureBuffer = function (requested) {\n    // No-op, since `this.readBlock` will always parse the entire image and\n    // directly insert all of its data into `this.buffer`.\n  };\n\n  JpxStream.prototype.readBlock = function () {\n    if (this.eof) {\n      return;\n    }\n    const jpxImage = new JpxImage();\n    jpxImage.parse(this.bytes);\n\n    const width = jpxImage.width;\n    const height = jpxImage.height;\n    const componentsCount = jpxImage.componentsCount;\n    const tileCount = jpxImage.tiles.length;\n    if (tileCount === 1) {\n      this.buffer = jpxImage.tiles[0].items;\n    } else {\n      const data = new Uint8ClampedArray(width * height * componentsCount);\n\n      for (let k = 0; k < tileCount; k++) {\n        const tileComponents = jpxImage.tiles[k];\n        const tileWidth = tileComponents.width;\n        const tileHeight = tileComponents.height;\n        const tileLeft = tileComponents.left;\n        const tileTop = tileComponents.top;\n\n        const src = tileComponents.items;\n        let srcPosition = 0;\n        let dataPosition = (width * tileTop + tileLeft) * componentsCount;\n        const imgRowSize = width * componentsCount;\n        const tileRowSize = tileWidth * componentsCount;\n\n        for (let j = 0; j < tileHeight; j++) {\n          const rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n          data.set(rowBytes, dataPosition);\n          srcPosition += tileRowSize;\n          dataPosition += imgRowSize;\n        }\n      }\n      this.buffer = data;\n    }\n    this.bufferLength = this.buffer.length;\n    this.eof = true;\n  };\n\n  return JpxStream;\n})();\n\nexport { JpxStream };\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, 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}`);\n  }\n}\n\nvar JpxImage = (function JpxImageClosure() {\n  // Table E.1\n  var SubbandsGainLog2 = {\n    LL: 0,\n    LH: 1,\n    HL: 1,\n    HH: 2,\n  };\n\n  // eslint-disable-next-line no-shadow\n  function JpxImage() {\n    this.failOnCorruptedImage = false;\n  }\n  JpxImage.prototype = {\n    parse: function JpxImage_parse(data) {\n      var 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      var position = 0,\n        length = data.length;\n      while (position < length) {\n        var headerSize = 8;\n        var lbox = readUint32(data, position);\n        var 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        var dataLength = lbox - headerSize;\n        var 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            var method = data[position];\n            if (method === 1) {\n              // enumerated colorspace\n              var 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            var 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    parseImageProperties: function JpxImage_parseImageProperties(stream) {\n      var newByte = stream.getByte();\n      while (newByte >= 0) {\n        var oldByte = newByte;\n        newByte = stream.getByte();\n        var code = (oldByte << 8) | newByte;\n        // Image and tile size (SIZ)\n        if (code === 0xff51) {\n          stream.skip(4);\n          var Xsiz = stream.getInt32() >>> 0; // Byte 4\n          var Ysiz = stream.getInt32() >>> 0; // Byte 8\n          var XOsiz = stream.getInt32() >>> 0; // Byte 12\n          var YOsiz = stream.getInt32() >>> 0; // Byte 16\n          stream.skip(16);\n          var 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    parseCodestream: function JpxImage_parseCodestream(data, start, end) {\n      var context = {};\n      var doNotRecover = false;\n      try {\n        var position = start;\n        while (position + 1 < end) {\n          var code = readUint16(data, position);\n          position += 2;\n\n          var 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              var 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              var componentsCount = readUint16(data, position + 36);\n              siz.Csiz = componentsCount;\n              var components = [];\n              j = position + 38;\n              for (var i = 0; i < componentsCount; i++) {\n                var 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              var 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                var 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              var qcc = {};\n              j = position + 2;\n              var 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                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              var cod = {};\n              j = position + 2;\n              var 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              var 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                var precinctsSizes = [];\n                while (j < length + position) {\n                  var precinctsSize = data[j++];\n                  precinctsSizes.push({\n                    PPx: precinctsSize & 0xf,\n                    PPy: precinctsSize >> 4,\n                  });\n                }\n                cod.precinctsSizes = precinctsSizes;\n              }\n              var unsupported = [];\n              if (cod.selectiveArithmeticCodingBypass) {\n                unsupported.push(\"selectiveArithmeticCodingBypass\");\n              }\n              if (cod.resetContextProbabilities) {\n                unsupported.push(\"resetContextProbabilities\");\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                throw new Error(\n                  \"Unsupported COD options (\" + unsupported.join(\", \") + \")\"\n                );\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 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            case 0xff53: // Coding style component (COC)\n              throw new Error(\n                \"Codestream code 0xFF53 (COC) is not implemented\"\n              );\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  function 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  }\n  function calculateTileGrids(context, components) {\n    var siz = context.SIZ;\n    // Section B.3 Division into tile and tile-components\n    var tile,\n      tiles = [];\n    var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n    var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n    for (var q = 0; q < numYtiles; q++) {\n      for (var 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    var componentsCount = siz.Csiz;\n    for (var i = 0, ii = componentsCount; i < ii; i++) {\n      var component = components[i];\n      for (var j = 0, jj = tiles.length; j < jj; j++) {\n        var 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  }\n  function getBlocksDimensions(context, component, r) {\n    var codOrCoc = component.codingStyleParameters;\n    var 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  }\n  function buildPrecincts(context, resolution, dimensions) {\n    // Section B.6 Division resolution to precincts\n    var precinctWidth = 1 << dimensions.PPx;\n    var 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    var isZeroRes = resolution.resLevel === 0;\n    var precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1));\n    var precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1));\n    var numprecinctswide =\n      resolution.trx1 > resolution.trx0\n        ? Math.ceil(resolution.trx1 / precinctWidth) -\n          Math.floor(resolution.trx0 / precinctWidth)\n        : 0;\n    var numprecinctshigh =\n      resolution.try1 > resolution.try0\n        ? Math.ceil(resolution.try1 / precinctHeight) -\n          Math.floor(resolution.try0 / precinctHeight)\n        : 0;\n    var numprecincts = numprecinctswide * numprecinctshigh;\n\n    resolution.precinctParameters = {\n      precinctWidth,\n      precinctHeight,\n      numprecinctswide,\n      numprecinctshigh,\n      numprecincts,\n      precinctWidthInSubband,\n      precinctHeightInSubband,\n    };\n  }\n  function buildCodeblocks(context, subband, dimensions) {\n    // Section B.7 Division sub-band into code-blocks\n    var xcb_ = dimensions.xcb_;\n    var ycb_ = dimensions.ycb_;\n    var codeblockWidth = 1 << xcb_;\n    var codeblockHeight = 1 << ycb_;\n    var cbx0 = subband.tbx0 >> xcb_;\n    var cby0 = subband.tby0 >> ycb_;\n    var cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_;\n    var cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_;\n    var precinctParameters = subband.resolution.precinctParameters;\n    var codeblocks = [];\n    var precincts = [];\n    var 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        var pi = Math.floor(\n          (codeblock.tbx0_ - subband.tbx0) /\n            precinctParameters.precinctWidthInSubband\n        );\n        var 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        var 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  }\n  function createPacket(resolution, precinctNumber, layerNumber) {\n    var precinctCodeblocks = [];\n    // Section B.10.8 Order of info in packet\n    var subbands = resolution.subbands;\n    // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence\n    for (var i = 0, ii = subbands.length; i < ii; i++) {\n      var subband = subbands[i];\n      var codeblocks = subband.codeblocks;\n      for (var j = 0, jj = codeblocks.length; j < jj; j++) {\n        var 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  }\n  function LayerResolutionComponentPositionIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var maxDecompositionLevelsCount = 0;\n    for (var q = 0; q < componentsCount; q++) {\n      maxDecompositionLevelsCount = Math.max(\n        maxDecompositionLevelsCount,\n        tile.components[q].codingStyleParameters.decompositionLevelsCount\n      );\n    }\n\n    var 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            var component = tile.components[i];\n            if (r > component.codingStyleParameters.decompositionLevelsCount) {\n              continue;\n            }\n\n            var resolution = component.resolutions[r];\n            var numprecincts = resolution.precinctParameters.numprecincts;\n            for (; k < numprecincts; ) {\n              var 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  }\n  function ResolutionLayerComponentPositionIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var maxDecompositionLevelsCount = 0;\n    for (var q = 0; q < componentsCount; q++) {\n      maxDecompositionLevelsCount = Math.max(\n        maxDecompositionLevelsCount,\n        tile.components[q].codingStyleParameters.decompositionLevelsCount\n      );\n    }\n\n    var 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            var component = tile.components[i];\n            if (r > component.codingStyleParameters.decompositionLevelsCount) {\n              continue;\n            }\n\n            var resolution = component.resolutions[r];\n            var numprecincts = resolution.precinctParameters.numprecincts;\n            for (; k < numprecincts; ) {\n              var 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  }\n  function ResolutionPositionComponentLayerIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var l, r, c, p;\n    var 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    var maxNumPrecinctsInLevel = new Int32Array(\n      maxDecompositionLevelsCount + 1\n    );\n    for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n      var maxNumPrecincts = 0;\n      for (c = 0; c < componentsCount; ++c) {\n        var 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            var resolution = component.resolutions[r];\n            var numprecincts = resolution.precinctParameters.numprecincts;\n            if (p >= numprecincts) {\n              continue;\n            }\n            for (; l < layersCount; ) {\n              var 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  }\n  function PositionComponentResolutionLayerIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var precinctsSizes = getPrecinctSizesInImageScale(tile);\n    var precinctsIterationSizes = precinctsSizes;\n    var 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            var component = tile.components[c];\n            var decompositionLevelsCount =\n              component.codingStyleParameters.decompositionLevelsCount;\n            for (; r <= decompositionLevelsCount; r++) {\n              var resolution = component.resolutions[r];\n              var sizeInImageScale =\n                precinctsSizes.components[c].resolutions[r];\n              var 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                var 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  }\n  function ComponentPositionResolutionLayerIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var precinctsSizes = getPrecinctSizesInImageScale(tile);\n    var 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        var component = tile.components[c];\n        var precinctsIterationSizes = precinctsSizes.components[c];\n        var decompositionLevelsCount =\n          component.codingStyleParameters.decompositionLevelsCount;\n        for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n          for (; px < precinctsIterationSizes.maxNumWide; px++) {\n            for (; r <= decompositionLevelsCount; r++) {\n              var resolution = component.resolutions[r];\n              var sizeInImageScale = precinctsIterationSizes.resolutions[r];\n              var 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                var 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  }\n  function getPrecinctIndexIfExist(\n    pxIndex,\n    pyIndex,\n    sizeInImageScale,\n    precinctIterationSizes,\n    resolution\n  ) {\n    var posX = pxIndex * precinctIterationSizes.minWidth;\n    var posY = pyIndex * precinctIterationSizes.minHeight;\n    if (\n      posX % sizeInImageScale.width !== 0 ||\n      posY % sizeInImageScale.height !== 0\n    ) {\n      return null;\n    }\n    var startPrecinctRowIndex =\n      (posY / sizeInImageScale.width) *\n      resolution.precinctParameters.numprecinctswide;\n    return posX / sizeInImageScale.height + startPrecinctRowIndex;\n  }\n  function getPrecinctSizesInImageScale(tile) {\n    var componentsCount = tile.components.length;\n    var minWidth = Number.MAX_VALUE;\n    var minHeight = Number.MAX_VALUE;\n    var maxNumWide = 0;\n    var maxNumHigh = 0;\n    var sizePerComponent = new Array(componentsCount);\n    for (var c = 0; c < componentsCount; c++) {\n      var component = tile.components[c];\n      var decompositionLevelsCount =\n        component.codingStyleParameters.decompositionLevelsCount;\n      var sizePerResolution = new Array(decompositionLevelsCount + 1);\n      var minWidthCurrentComponent = Number.MAX_VALUE;\n      var minHeightCurrentComponent = Number.MAX_VALUE;\n      var maxNumWideCurrentComponent = 0;\n      var maxNumHighCurrentComponent = 0;\n      var scale = 1;\n      for (var r = decompositionLevelsCount; r >= 0; --r) {\n        var resolution = component.resolutions[r];\n        var widthCurrentResolution =\n          scale * resolution.precinctParameters.precinctWidth;\n        var 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  }\n  function buildPackets(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var componentsCount = siz.Csiz;\n    // Creating resolutions and sub-bands for each component\n    for (var c = 0; c < componentsCount; c++) {\n      var component = tile.components[c];\n      var decompositionLevelsCount =\n        component.codingStyleParameters.decompositionLevelsCount;\n      // Section B.5 Resolution levels and sub-bands\n      var resolutions = [];\n      var subbands = [];\n      for (var r = 0; r <= decompositionLevelsCount; r++) {\n        var blocksDimensions = getBlocksDimensions(context, component, r);\n        var resolution = {};\n        var 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        var 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          var bscale = 1 << (decompositionLevelsCount - r + 1);\n          var 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    var 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  }\n  function parseTilePackets(context, data, offset, dataLength) {\n    var position = 0;\n    var buffer,\n      bufferSize = 0,\n      skipNextBit = false;\n    function readBits(count) {\n      while (bufferSize < count) {\n        var 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      var 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    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var sopMarkerUsed = context.COD.sopMarkerUsed;\n    var ephMarkerUsed = context.COD.ephMarkerUsed;\n    var 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      var packet = packetsIterator.nextPacket();\n      if (!readBits(1)) {\n        continue;\n      }\n      var layerNumber = packet.layerNumber;\n      var queue = [],\n        codeblock;\n      for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n        codeblock = packet.codeblocks[i];\n        var precinct = codeblock.precinct;\n        var codeblockColumn = codeblock.cbx - precinct.cbxMin;\n        var codeblockRow = codeblock.cby - precinct.cbyMin;\n        var codeblockIncluded = false;\n        var firstTimeInclusion = false;\n        var valueReady;\n        if (codeblock.included !== undefined) {\n          codeblockIncluded = !!readBits(1);\n        } else {\n          // reading inclusion tree\n          precinct = codeblock.precinct;\n          var inclusionTree, zeroBitPlanesTree;\n          if (precinct.inclusionTree !== undefined) {\n            inclusionTree = precinct.inclusionTree;\n          } else {\n            // building inclusion and zero bit-planes trees\n            var width = precinct.cbxMax - precinct.cbxMin + 1;\n            var 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          }\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        var codingpasses = readCodingpasses();\n        while (readBits(1)) {\n          codeblock.Lblock++;\n        }\n        var codingpassesLog2 = log2(codingpasses);\n        // rounding down log2\n        var bits =\n          (codingpasses < 1 << codingpassesLog2\n            ? codingpassesLog2 - 1\n            : codingpassesLog2) + codeblock.Lblock;\n        var 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        var 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  }\n  function copyCoefficients(\n    coefficients,\n    levelWidth,\n    levelHeight,\n    subband,\n    delta,\n    mb,\n    reversible,\n    segmentationSymbolUsed\n  ) {\n    var x0 = subband.tbx0;\n    var y0 = subband.tby0;\n    var width = subband.tbx1 - subband.tbx0;\n    var codeblocks = subband.codeblocks;\n    var right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n    var bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n    for (var i = 0, ii = codeblocks.length; i < ii; ++i) {\n      var codeblock = codeblocks[i];\n      var blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n      var blockHeight = codeblock.tby1_ - codeblock.tby0_;\n      if (blockWidth === 0 || blockHeight === 0) {\n        continue;\n      }\n      if (codeblock.data === undefined) {\n        continue;\n      }\n\n      var bitModel, currentCodingpassType;\n      bitModel = new BitModel(\n        blockWidth,\n        blockHeight,\n        codeblock.subbandType,\n        codeblock.zeroBitPlanes,\n        mb\n      );\n      currentCodingpassType = 2; // first bit plane starts from cleanup\n\n      // collect data\n      var data = codeblock.data,\n        totalLength = 0,\n        codingpasses = 0;\n      var 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      var encodedData = new Uint8Array(totalLength);\n      var position = 0;\n      for (j = 0, jj = data.length; j < jj; j++) {\n        dataItem = data[j];\n        var chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n        encodedData.set(chunk, position);\n        position += chunk.length;\n      }\n      // decoding the item\n      var 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        currentCodingpassType = (currentCodingpassType + 1) % 3;\n      }\n\n      var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n      var sign = bitModel.coefficentsSign;\n      var magnitude = bitModel.coefficentsMagnitude;\n      var bitsDecoded = bitModel.bitsDecoded;\n      var magnitudeCorrection = reversible ? 0 : 0.5;\n      var 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      var interleave = subband.type !== \"LL\";\n      for (j = 0; j < blockHeight; j++) {\n        var row = (offset / width) | 0; // row in the non-interleaved subband\n        var 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            var pos = interleave ? levelOffset + (offset << 1) : offset;\n            if (reversible && nb >= mb) {\n              coefficients[pos] = n;\n            } else {\n              coefficients[pos] = n * (1 << (mb - nb));\n            }\n          }\n          offset++;\n          position++;\n        }\n        offset += width - blockWidth;\n      }\n    }\n  }\n  function transformTile(context, tile, c) {\n    var component = tile.components[c];\n    var codingStyleParameters = component.codingStyleParameters;\n    var quantizationParameters = component.quantizationParameters;\n    var decompositionLevelsCount =\n      codingStyleParameters.decompositionLevelsCount;\n    var spqcds = quantizationParameters.SPqcds;\n    var scalarExpounded = quantizationParameters.scalarExpounded;\n    var guardBits = quantizationParameters.guardBits;\n    var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n    var precision = context.components[c].precision;\n\n    var reversible = codingStyleParameters.reversibleTransformation;\n    var transform = reversible\n      ? new ReversibleTransform()\n      : new IrreversibleTransform();\n\n    var subbandCoefficients = [];\n    var b = 0;\n    for (var i = 0; i <= decompositionLevelsCount; i++) {\n      var resolution = component.resolutions[i];\n\n      var width = resolution.trx1 - resolution.trx0;\n      var height = resolution.try1 - resolution.try0;\n      // Allocate space for the whole sublevel.\n      var coefficients = new Float32Array(width * height);\n\n      for (var j = 0, jj = resolution.subbands.length; j < jj; j++) {\n        var 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        var subband = resolution.subbands[j];\n        var gainLog2 = SubbandsGainLog2[subband.type];\n\n        // calculate quantization coefficient (Section E.1.1.1)\n        var delta = reversible\n          ? 1\n          : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n        var 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        );\n      }\n      subbandCoefficients.push({\n        width,\n        height,\n        items: coefficients,\n      });\n    }\n\n    var 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  }\n  function transformComponents(context) {\n    var siz = context.SIZ;\n    var components = context.components;\n    var componentsCount = siz.Csiz;\n    var resultImages = [];\n    for (var i = 0, ii = context.tiles.length; i < ii; i++) {\n      var tile = context.tiles[i];\n      var transformedTiles = [];\n      var c;\n      for (c = 0; c < componentsCount; c++) {\n        transformedTiles[c] = transformTile(context, tile, c);\n      }\n      var tile0 = transformedTiles[0];\n      var out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n      var 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      var shift, offset;\n      var pos = 0,\n        j,\n        jj,\n        y0,\n        y1,\n        y2;\n      if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n        var fourComponents = componentsCount === 4;\n        var y0items = transformedTiles[0].items;\n        var y1items = transformedTiles[1].items;\n        var y2items = transformedTiles[2].items;\n        var 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        var component0 = tile.components[0];\n        var 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 (c = 0; c < componentsCount; c++) {\n          var 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  }\n  function initializeTile(context, tileIndex) {\n    var siz = context.SIZ;\n    var componentsCount = siz.Csiz;\n    var tile = context.tiles[tileIndex];\n    for (var c = 0; c < componentsCount; c++) {\n      var component = tile.components[c];\n      var qcdOrQcc =\n        context.currentTile.QCC[c] !== undefined\n          ? context.currentTile.QCC[c]\n          : context.currentTile.QCD;\n      component.quantizationParameters = qcdOrQcc;\n      var 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\n  var TagTree = (function TagTreeClosure() {\n    // eslint-disable-next-line no-shadow\n    function TagTree(width, height) {\n      var levelsLength = log2(Math.max(width, height)) + 1;\n      this.levels = [];\n      for (var i = 0; i < levelsLength; i++) {\n        var 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    TagTree.prototype = {\n      reset: function TagTree_reset(i, j) {\n        var currentLevel = 0,\n          value = 0,\n          level;\n        while (currentLevel < this.levels.length) {\n          level = this.levels[currentLevel];\n          var 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      incrementValue: function TagTree_incrementValue() {\n        var level = this.levels[this.currentLevel];\n        level.items[level.index]++;\n      },\n      nextLevel: function TagTree_nextLevel() {\n        var currentLevel = this.currentLevel;\n        var level = this.levels[currentLevel];\n        var 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    return TagTree;\n  })();\n\n  var InclusionTree = (function InclusionTreeClosure() {\n    // eslint-disable-next-line no-shadow\n    function InclusionTree(width, height, defaultValue) {\n      var levelsLength = log2(Math.max(width, height)) + 1;\n      this.levels = [];\n      for (var i = 0; i < levelsLength; i++) {\n        var items = new Uint8Array(width * height);\n        for (var j = 0, jj = items.length; j < jj; j++) {\n          items[j] = defaultValue;\n        }\n\n        var 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    InclusionTree.prototype = {\n      reset: function InclusionTree_reset(i, j, stopValue) {\n        var currentLevel = 0;\n        while (currentLevel < this.levels.length) {\n          var level = this.levels[currentLevel];\n          var index = i + j * level.width;\n          level.index = index;\n          var 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      incrementValue: function InclusionTree_incrementValue(stopValue) {\n        var level = this.levels[this.currentLevel];\n        level.items[level.index] = stopValue + 1;\n        this.propagateValues();\n      },\n      propagateValues: function InclusionTree_propagateValues() {\n        var levelIndex = this.currentLevel;\n        var level = this.levels[levelIndex];\n        var currentValue = level.items[level.index];\n        while (--levelIndex >= 0) {\n          level = this.levels[levelIndex];\n          level.items[level.index] = currentValue;\n        }\n      },\n      nextLevel: function InclusionTree_nextLevel() {\n        var currentLevel = this.currentLevel;\n        var level = this.levels[currentLevel];\n        var 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    return InclusionTree;\n  })();\n\n  // Section D. Coefficient bit modeling\n  var BitModel = (function BitModelClosure() {\n    var UNIFORM_CONTEXT = 17;\n    var RUNLENGTH_CONTEXT = 18;\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    // prettier-ignore\n    var 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    // prettier-ignore\n    var 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    // prettier-ignore\n    var 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    // eslint-disable-next-line no-shadow\n    function BitModel(width, height, subband, zeroBitPlanes, mb) {\n      this.width = width;\n      this.height = height;\n\n      let contextLabelTable;\n      if (subband === \"HH\") {\n        contextLabelTable = HHContextLabel;\n      } else if (subband === \"HL\") {\n        contextLabelTable = HLContextLabel;\n      } else {\n        contextLabelTable = LLAndLHContextsLabel;\n      }\n      this.contextLabelTable = contextLabelTable;\n\n      var 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      var bitsDecoded = new Uint8Array(coefficientCount);\n      if (zeroBitPlanes !== 0) {\n        for (var i = 0; i < coefficientCount; i++) {\n          bitsDecoded[i] = zeroBitPlanes;\n        }\n      }\n      this.bitsDecoded = bitsDecoded;\n\n      this.reset();\n    }\n\n    BitModel.prototype = {\n      setDecoder: function BitModel_setDecoder(decoder) {\n        this.decoder = decoder;\n      },\n      reset: function BitModel_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[UNIFORM_CONTEXT] = (46 << 1) | 0;\n        this.contexts[RUNLENGTH_CONTEXT] = (3 << 1) | 0;\n      },\n      setNeighborsSignificance: function BitModel_setNeighborsSignificance(\n        row,\n        column,\n        index\n      ) {\n        var neighborsSignificance = this.neighborsSignificance;\n        var width = this.width,\n          height = this.height;\n        var left = column > 0;\n        var right = column + 1 < width;\n        var 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      runSignificancePropagationPass: function BitModel_runSignificancePropagationPass() {\n        var decoder = this.decoder;\n        var width = this.width,\n          height = this.height;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var coefficentsSign = this.coefficentsSign;\n        var neighborsSignificance = this.neighborsSignificance;\n        var processingFlags = this.processingFlags;\n        var contexts = this.contexts;\n        var labels = this.contextLabelTable;\n        var bitsDecoded = this.bitsDecoded;\n        var processedInverseMask = ~1;\n        var processedMask = 1;\n        var firstMagnitudeBitMask = 2;\n\n        for (var i0 = 0; i0 < height; i0 += 4) {\n          for (var j = 0; j < width; j++) {\n            var index = i0 * width + j;\n            for (var i1 = 0; i1 < 4; i1++, index += width) {\n              var i = i0 + i1;\n              if (i >= height) {\n                break;\n              }\n              // clear processed flag first\n              processingFlags[index] &= processedInverseMask;\n\n              if (\n                coefficentsMagnitude[index] ||\n                !neighborsSignificance[index]\n              ) {\n                continue;\n              }\n\n              var contextLabel = labels[neighborsSignificance[index]];\n              var decision = decoder.readBit(contexts, contextLabel);\n              if (decision) {\n                var 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      decodeSignBit: function BitModel_decodeSignBit(row, column, index) {\n        var width = this.width,\n          height = this.height;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var coefficentsSign = this.coefficentsSign;\n        var contribution, sign0, sign1, significance1;\n        var 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        var 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      runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() {\n        var decoder = this.decoder;\n        var width = this.width,\n          height = this.height;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var neighborsSignificance = this.neighborsSignificance;\n        var contexts = this.contexts;\n        var bitsDecoded = this.bitsDecoded;\n        var processingFlags = this.processingFlags;\n        var processedMask = 1;\n        var firstMagnitudeBitMask = 2;\n        var length = width * height;\n        var width4 = width * 4;\n\n        for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n          indexNext = Math.min(length, index0 + width4);\n          for (var j = 0; j < width; j++) {\n            for (var 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              var contextLabel = 16;\n              if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n                processingFlags[index] ^= firstMagnitudeBitMask;\n                // first refinement\n                var significance = neighborsSignificance[index] & 127;\n                contextLabel = significance === 0 ? 15 : 14;\n              }\n\n              var 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      runCleanupPass: function BitModel_runCleanupPass() {\n        var decoder = this.decoder;\n        var width = this.width,\n          height = this.height;\n        var neighborsSignificance = this.neighborsSignificance;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var coefficentsSign = this.coefficentsSign;\n        var contexts = this.contexts;\n        var labels = this.contextLabelTable;\n        var bitsDecoded = this.bitsDecoded;\n        var processingFlags = this.processingFlags;\n        var processedMask = 1;\n        var firstMagnitudeBitMask = 2;\n        var oneRowDown = width;\n        var twoRowsDown = width * 2;\n        var threeRowsDown = width * 3;\n        var iNext;\n        for (var i0 = 0; i0 < height; i0 = iNext) {\n          iNext = Math.min(i0 + 4, height);\n          var indexBase = i0 * width;\n          var checkAllEmpty = i0 + 3 < height;\n          for (var j = 0; j < width; j++) {\n            var index0 = indexBase + j;\n            // using the property: labels[neighborsSignificance[index]] === 0\n            // when neighborsSignificance[index] === 0\n            var 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            var i1 = 0,\n              index = index0;\n            var i = i0,\n              sign;\n            if (allEmpty) {\n              var hasSignificantCoefficent = decoder.readBit(\n                contexts,\n                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, UNIFORM_CONTEXT) << 1) |\n                decoder.readBit(contexts, 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 (var 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              var contextLabel = labels[neighborsSignificance[index]];\n              var 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      checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() {\n        var decoder = this.decoder;\n        var contexts = this.contexts;\n        var symbol =\n          (decoder.readBit(contexts, UNIFORM_CONTEXT) << 3) |\n          (decoder.readBit(contexts, UNIFORM_CONTEXT) << 2) |\n          (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n          decoder.readBit(contexts, UNIFORM_CONTEXT);\n        if (symbol !== 0xa) {\n          throw new JpxError(\"Invalid segmentation symbol\");\n        }\n      },\n    };\n\n    return BitModel;\n  })();\n\n  // Section F, Discrete wavelet transformation\n  var Transform = (function TransformClosure() {\n    // eslint-disable-next-line no-shadow\n    function Transform() {}\n\n    Transform.prototype.calculate = function transformCalculate(\n      subbands,\n      u0,\n      v0\n    ) {\n      var ll = subbands[0];\n      for (var i = 1, ii = subbands.length; i < ii; i++) {\n        ll = this.iterate(ll, subbands[i], u0, v0);\n      }\n      return ll;\n    };\n    Transform.prototype.extend = function extend(buffer, offset, size) {\n      // Section F.3.7 extending... using max extension of 4\n      var i1 = offset - 1,\n        j1 = offset + 1;\n      var 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    Transform.prototype.iterate = function Transform_iterate(\n      ll,\n      hl_lh_hh,\n      u0,\n      v0\n    ) {\n      var llWidth = ll.width,\n        llHeight = ll.height,\n        llItems = ll.items;\n      var width = hl_lh_hh.width;\n      var height = hl_lh_hh.height;\n      var items = hl_lh_hh.items;\n      var 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      var bufferPadding = 4;\n      var 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(\n            rowBuffer.subarray(bufferPadding, bufferPadding + width),\n            k\n          );\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      var numBuffers = 16;\n      var colBuffers = [];\n      for (i = 0; i < numBuffers; i++) {\n        colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n      }\n      var 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          var 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 {\n        width,\n        height,\n        items,\n      };\n    };\n    return Transform;\n  })();\n\n  // Section 3.8.2 Irreversible 9-7 filter\n  var IrreversibleTransform = (function IrreversibleTransformClosure() {\n    // eslint-disable-next-line no-shadow\n    function IrreversibleTransform() {\n      Transform.call(this);\n    }\n\n    IrreversibleTransform.prototype = Object.create(Transform.prototype);\n    IrreversibleTransform.prototype.filter = function irreversibleTransformFilter(\n      x,\n      offset,\n      length\n    ) {\n      var len = length >> 1;\n      offset = offset | 0;\n      var j, n, current, next;\n\n      var alpha = -1.586134342059924;\n      var beta = -0.052980118572961;\n      var gamma = 0.882911075530934;\n      var delta = 0.443506852043971;\n      var K = 1.230174104914001;\n      var 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    return IrreversibleTransform;\n  })();\n\n  // Section 3.8.1 Reversible 5-3 filter\n  var ReversibleTransform = (function ReversibleTransformClosure() {\n    // eslint-disable-next-line no-shadow\n    function ReversibleTransform() {\n      Transform.call(this);\n    }\n\n    ReversibleTransform.prototype = Object.create(Transform.prototype);\n    ReversibleTransform.prototype.filter = function reversibleTransformFilter(\n      x,\n      offset,\n      length\n    ) {\n      var len = length >> 1;\n      offset = offset | 0;\n      var 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    return ReversibleTransform;\n  })();\n\n  return JpxImage;\n})();\n\nexport { JpxImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  bytesToString,\n  FormatError,\n  PasswordException,\n  PasswordResponses,\n  stringToBytes,\n  unreachable,\n  utf8StringToString,\n  warn,\n} from \"../shared/util.js\";\nimport { isDict, isName, Name } from \"./primitives.js\";\nimport { DecryptStream } from \"./stream.js\";\n\nvar ARCFourCipher = (function ARCFourCipherClosure() {\n  // eslint-disable-next-line no-shadow\n  function ARCFourCipher(key) {\n    this.a = 0;\n    this.b = 0;\n    var s = new Uint8Array(256);\n    var i,\n      j = 0,\n      tmp,\n      keyLength = key.length;\n    for (i = 0; i < 256; ++i) {\n      s[i] = i;\n    }\n    for (i = 0; i < 256; ++i) {\n      tmp = s[i];\n      j = (j + tmp + key[i % keyLength]) & 0xff;\n      s[i] = s[j];\n      s[j] = tmp;\n    }\n    this.s = s;\n  }\n\n  ARCFourCipher.prototype = {\n    encryptBlock: function ARCFourCipher_encryptBlock(data) {\n      var i,\n        n = data.length,\n        tmp,\n        tmp2;\n      var a = this.a,\n        b = this.b,\n        s = this.s;\n      var output = new Uint8Array(n);\n      for (i = 0; i < n; ++i) {\n        a = (a + 1) & 0xff;\n        tmp = s[a];\n        b = (b + tmp) & 0xff;\n        tmp2 = s[b];\n        s[a] = tmp2;\n        s[b] = tmp;\n        output[i] = data[i] ^ s[(tmp + tmp2) & 0xff];\n      }\n      this.a = a;\n      this.b = b;\n      return output;\n    },\n  };\n  ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock;\n\n  return ARCFourCipher;\n})();\n\nvar calculateMD5 = (function calculateMD5Closure() {\n  // prettier-ignore\n  var r = new Uint8Array([\n    7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,\n    5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20,\n    4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23,\n    6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]);\n\n  // prettier-ignore\n  var k = new Int32Array([\n    -680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426,\n    -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162,\n    1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632,\n    643717713, -373897302, -701558691, 38016083, -660478335, -405537848,\n    568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784,\n    1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556,\n    -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222,\n    -722521979, 76029189, -640364487, -421815835, 530742520, -995338651,\n    -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606,\n    -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649,\n    -145523070, -1120210379, 718787259, -343485551]);\n\n  function hash(data, offset, length) {\n    var h0 = 1732584193,\n      h1 = -271733879,\n      h2 = -1732584194,\n      h3 = 271733878;\n    // pre-processing\n    var paddedLength = (length + 72) & ~63; // data + 9 extra bytes\n    var padded = new Uint8Array(paddedLength);\n    var i, j, n;\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n    padded[i++] = 0x80;\n    n = paddedLength - 8;\n    while (i < n) {\n      padded[i++] = 0;\n    }\n    padded[i++] = (length << 3) & 0xff;\n    padded[i++] = (length >> 5) & 0xff;\n    padded[i++] = (length >> 13) & 0xff;\n    padded[i++] = (length >> 21) & 0xff;\n    padded[i++] = (length >>> 29) & 0xff;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    var w = new Int32Array(16);\n    for (i = 0; i < paddedLength; ) {\n      for (j = 0; j < 16; ++j, i += 4) {\n        w[j] =\n          padded[i] |\n          (padded[i + 1] << 8) |\n          (padded[i + 2] << 16) |\n          (padded[i + 3] << 24);\n      }\n      var a = h0,\n        b = h1,\n        c = h2,\n        d = h3,\n        f,\n        g;\n      for (j = 0; j < 64; ++j) {\n        if (j < 16) {\n          f = (b & c) | (~b & d);\n          g = j;\n        } else if (j < 32) {\n          f = (d & b) | (~d & c);\n          g = (5 * j + 1) & 15;\n        } else if (j < 48) {\n          f = b ^ c ^ d;\n          g = (3 * j + 5) & 15;\n        } else {\n          f = c ^ (b | ~d);\n          g = (7 * j) & 15;\n        }\n        var tmp = d,\n          rotateArg = (a + f + k[j] + w[g]) | 0,\n          rotate = r[j];\n        d = c;\n        c = b;\n        b = (b + ((rotateArg << rotate) | (rotateArg >>> (32 - rotate)))) | 0;\n        a = tmp;\n      }\n      h0 = (h0 + a) | 0;\n      h1 = (h1 + b) | 0;\n      h2 = (h2 + c) | 0;\n      h3 = (h3 + d) | 0;\n    }\n    // prettier-ignore\n    return new Uint8Array([\n      h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >>> 24) & 0xFF,\n      h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >>> 24) & 0xFF,\n      h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >>> 24) & 0xFF,\n      h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >>> 24) & 0xFF\n    ]);\n  }\n\n  return hash;\n})();\nvar Word64 = (function Word64Closure() {\n  // eslint-disable-next-line no-shadow\n  function Word64(highInteger, lowInteger) {\n    this.high = highInteger | 0;\n    this.low = lowInteger | 0;\n  }\n  Word64.prototype = {\n    and: function Word64_and(word) {\n      this.high &= word.high;\n      this.low &= word.low;\n    },\n    xor: function Word64_xor(word) {\n      this.high ^= word.high;\n      this.low ^= word.low;\n    },\n\n    or: function Word64_or(word) {\n      this.high |= word.high;\n      this.low |= word.low;\n    },\n\n    shiftRight: function Word64_shiftRight(places) {\n      if (places >= 32) {\n        this.low = (this.high >>> (places - 32)) | 0;\n        this.high = 0;\n      } else {\n        this.low = (this.low >>> places) | (this.high << (32 - places));\n        this.high = (this.high >>> places) | 0;\n      }\n    },\n\n    shiftLeft: function Word64_shiftLeft(places) {\n      if (places >= 32) {\n        this.high = this.low << (places - 32);\n        this.low = 0;\n      } else {\n        this.high = (this.high << places) | (this.low >>> (32 - places));\n        this.low = this.low << places;\n      }\n    },\n\n    rotateRight: function Word64_rotateRight(places) {\n      var low, high;\n      if (places & 32) {\n        high = this.low;\n        low = this.high;\n      } else {\n        low = this.low;\n        high = this.high;\n      }\n      places &= 31;\n      this.low = (low >>> places) | (high << (32 - places));\n      this.high = (high >>> places) | (low << (32 - places));\n    },\n\n    not: function Word64_not() {\n      this.high = ~this.high;\n      this.low = ~this.low;\n    },\n\n    add: function Word64_add(word) {\n      var lowAdd = (this.low >>> 0) + (word.low >>> 0);\n      var highAdd = (this.high >>> 0) + (word.high >>> 0);\n      if (lowAdd > 0xffffffff) {\n        highAdd += 1;\n      }\n      this.low = lowAdd | 0;\n      this.high = highAdd | 0;\n    },\n\n    copyTo: function Word64_copyTo(bytes, offset) {\n      bytes[offset] = (this.high >>> 24) & 0xff;\n      bytes[offset + 1] = (this.high >> 16) & 0xff;\n      bytes[offset + 2] = (this.high >> 8) & 0xff;\n      bytes[offset + 3] = this.high & 0xff;\n      bytes[offset + 4] = (this.low >>> 24) & 0xff;\n      bytes[offset + 5] = (this.low >> 16) & 0xff;\n      bytes[offset + 6] = (this.low >> 8) & 0xff;\n      bytes[offset + 7] = this.low & 0xff;\n    },\n\n    assign: function Word64_assign(word) {\n      this.high = word.high;\n      this.low = word.low;\n    },\n  };\n  return Word64;\n})();\n\nvar calculateSHA256 = (function calculateSHA256Closure() {\n  function rotr(x, n) {\n    return (x >>> n) | (x << (32 - n));\n  }\n\n  function ch(x, y, z) {\n    return (x & y) ^ (~x & z);\n  }\n\n  function maj(x, y, z) {\n    return (x & y) ^ (x & z) ^ (y & z);\n  }\n\n  function sigma(x) {\n    return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n  }\n\n  function sigmaPrime(x) {\n    return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n  }\n\n  function littleSigma(x) {\n    return rotr(x, 7) ^ rotr(x, 18) ^ (x >>> 3);\n  }\n\n  function littleSigmaPrime(x) {\n    return rotr(x, 17) ^ rotr(x, 19) ^ (x >>> 10);\n  }\n\n  // prettier-ignore\n  var k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n           0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n           0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n           0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n           0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n           0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n           0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n           0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n           0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n           0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n           0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n           0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n           0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n           0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n           0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n           0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\n  function hash(data, offset, length) {\n    // initial hash values\n    var h0 = 0x6a09e667,\n      h1 = 0xbb67ae85,\n      h2 = 0x3c6ef372,\n      h3 = 0xa54ff53a,\n      h4 = 0x510e527f,\n      h5 = 0x9b05688c,\n      h6 = 0x1f83d9ab,\n      h7 = 0x5be0cd19;\n    // pre-processing\n    var paddedLength = Math.ceil((length + 9) / 64) * 64;\n    var padded = new Uint8Array(paddedLength);\n    var i, j, n;\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n    padded[i++] = 0x80;\n    n = paddedLength - 8;\n    while (i < n) {\n      padded[i++] = 0;\n    }\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = (length >>> 29) & 0xff;\n    padded[i++] = (length >> 21) & 0xff;\n    padded[i++] = (length >> 13) & 0xff;\n    padded[i++] = (length >> 5) & 0xff;\n    padded[i++] = (length << 3) & 0xff;\n    var w = new Uint32Array(64);\n    // for each 512 bit block\n    for (i = 0; i < paddedLength; ) {\n      for (j = 0; j < 16; ++j) {\n        w[j] =\n          (padded[i] << 24) |\n          (padded[i + 1] << 16) |\n          (padded[i + 2] << 8) |\n          padded[i + 3];\n        i += 4;\n      }\n\n      for (j = 16; j < 64; ++j) {\n        w[j] =\n          (littleSigmaPrime(w[j - 2]) +\n            w[j - 7] +\n            littleSigma(w[j - 15]) +\n            w[j - 16]) |\n          0;\n      }\n      var a = h0,\n        b = h1,\n        c = h2,\n        d = h3,\n        e = h4,\n        f = h5,\n        g = h6,\n        h = h7,\n        t1,\n        t2;\n      for (j = 0; j < 64; ++j) {\n        t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n        t2 = sigma(a) + maj(a, b, c);\n        h = g;\n        g = f;\n        f = e;\n        e = (d + t1) | 0;\n        d = c;\n        c = b;\n        b = a;\n        a = (t1 + t2) | 0;\n      }\n      h0 = (h0 + a) | 0;\n      h1 = (h1 + b) | 0;\n      h2 = (h2 + c) | 0;\n      h3 = (h3 + d) | 0;\n      h4 = (h4 + e) | 0;\n      h5 = (h5 + f) | 0;\n      h6 = (h6 + g) | 0;\n      h7 = (h7 + h) | 0;\n    }\n    // prettier-ignore\n    return new Uint8Array([\n      (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, (h0) & 0xFF,\n      (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, (h1) & 0xFF,\n      (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, (h2) & 0xFF,\n      (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, (h3) & 0xFF,\n      (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, (h4) & 0xFF,\n      (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, (h5) & 0xFF,\n      (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, (h6) & 0xFF,\n      (h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, (h7) & 0xFF\n    ]);\n  }\n\n  return hash;\n})();\n\nvar calculateSHA512 = (function calculateSHA512Closure() {\n  function ch(result, x, y, z, tmp) {\n    result.assign(x);\n    result.and(y);\n    tmp.assign(x);\n    tmp.not();\n    tmp.and(z);\n    result.xor(tmp);\n  }\n\n  function maj(result, x, y, z, tmp) {\n    result.assign(x);\n    result.and(y);\n    tmp.assign(x);\n    tmp.and(z);\n    result.xor(tmp);\n    tmp.assign(y);\n    tmp.and(z);\n    result.xor(tmp);\n  }\n\n  function sigma(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(28);\n    tmp.assign(x);\n    tmp.rotateRight(34);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.rotateRight(39);\n    result.xor(tmp);\n  }\n\n  function sigmaPrime(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(14);\n    tmp.assign(x);\n    tmp.rotateRight(18);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.rotateRight(41);\n    result.xor(tmp);\n  }\n\n  function littleSigma(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(1);\n    tmp.assign(x);\n    tmp.rotateRight(8);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.shiftRight(7);\n    result.xor(tmp);\n  }\n\n  function littleSigmaPrime(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(19);\n    tmp.assign(x);\n    tmp.rotateRight(61);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.shiftRight(6);\n    result.xor(tmp);\n  }\n\n  // prettier-ignore\n  var k = [\n    new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd),\n    new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc),\n    new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019),\n    new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118),\n    new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe),\n    new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2),\n    new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1),\n    new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694),\n    new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3),\n    new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65),\n    new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483),\n    new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5),\n    new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210),\n    new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4),\n    new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725),\n    new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70),\n    new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926),\n    new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df),\n    new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8),\n    new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b),\n    new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001),\n    new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30),\n    new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910),\n    new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8),\n    new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53),\n    new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8),\n    new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb),\n    new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3),\n    new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60),\n    new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec),\n    new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9),\n    new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b),\n    new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207),\n    new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178),\n    new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6),\n    new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b),\n    new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493),\n    new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c),\n    new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a),\n    new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n  function hash(data, offset, length, mode384) {\n    mode384 = !!mode384;\n    // initial hash values\n    var h0, h1, h2, h3, h4, h5, h6, h7;\n    if (!mode384) {\n      h0 = new Word64(0x6a09e667, 0xf3bcc908);\n      h1 = new Word64(0xbb67ae85, 0x84caa73b);\n      h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n      h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n      h4 = new Word64(0x510e527f, 0xade682d1);\n      h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n      h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n      h7 = new Word64(0x5be0cd19, 0x137e2179);\n    } else {\n      // SHA384 is exactly the same\n      // except with different starting values and a trimmed result\n      h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n      h1 = new Word64(0x629a292a, 0x367cd507);\n      h2 = new Word64(0x9159015a, 0x3070dd17);\n      h3 = new Word64(0x152fecd8, 0xf70e5939);\n      h4 = new Word64(0x67332667, 0xffc00b31);\n      h5 = new Word64(0x8eb44a87, 0x68581511);\n      h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n      h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n    }\n\n    // pre-processing\n    var paddedLength = Math.ceil((length + 17) / 128) * 128;\n    var padded = new Uint8Array(paddedLength);\n    var i, j, n;\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n    padded[i++] = 0x80;\n    n = paddedLength - 16;\n    while (i < n) {\n      padded[i++] = 0;\n    }\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = (length >>> 29) & 0xff;\n    padded[i++] = (length >> 21) & 0xff;\n    padded[i++] = (length >> 13) & 0xff;\n    padded[i++] = (length >> 5) & 0xff;\n    padded[i++] = (length << 3) & 0xff;\n\n    var w = new Array(80);\n    for (i = 0; i < 80; i++) {\n      w[i] = new Word64(0, 0);\n    }\n    var a = new Word64(0, 0),\n      b = new Word64(0, 0),\n      c = new Word64(0, 0);\n    var d = new Word64(0, 0),\n      e = new Word64(0, 0),\n      f = new Word64(0, 0);\n    var g = new Word64(0, 0),\n      h = new Word64(0, 0);\n    var t1 = new Word64(0, 0),\n      t2 = new Word64(0, 0);\n    var tmp1 = new Word64(0, 0),\n      tmp2 = new Word64(0, 0),\n      tmp3;\n\n    // for each 1024 bit block\n    for (i = 0; i < paddedLength; ) {\n      for (j = 0; j < 16; ++j) {\n        w[j].high =\n          (padded[i] << 24) |\n          (padded[i + 1] << 16) |\n          (padded[i + 2] << 8) |\n          padded[i + 3];\n        w[j].low =\n          (padded[i + 4] << 24) |\n          (padded[i + 5] << 16) |\n          (padded[i + 6] << 8) |\n          padded[i + 7];\n        i += 8;\n      }\n      for (j = 16; j < 80; ++j) {\n        tmp3 = w[j];\n        littleSigmaPrime(tmp3, w[j - 2], tmp2);\n        tmp3.add(w[j - 7]);\n        littleSigma(tmp1, w[j - 15], tmp2);\n        tmp3.add(tmp1);\n        tmp3.add(w[j - 16]);\n      }\n\n      a.assign(h0);\n      b.assign(h1);\n      c.assign(h2);\n      d.assign(h3);\n      e.assign(h4);\n      f.assign(h5);\n      g.assign(h6);\n      h.assign(h7);\n      for (j = 0; j < 80; ++j) {\n        t1.assign(h);\n        sigmaPrime(tmp1, e, tmp2);\n        t1.add(tmp1);\n        ch(tmp1, e, f, g, tmp2);\n        t1.add(tmp1);\n        t1.add(k[j]);\n        t1.add(w[j]);\n\n        sigma(t2, a, tmp2);\n        maj(tmp1, a, b, c, tmp2);\n        t2.add(tmp1);\n\n        tmp3 = h;\n        h = g;\n        g = f;\n        f = e;\n        d.add(t1);\n        e = d;\n        d = c;\n        c = b;\n        b = a;\n        tmp3.assign(t1);\n        tmp3.add(t2);\n        a = tmp3;\n      }\n      h0.add(a);\n      h1.add(b);\n      h2.add(c);\n      h3.add(d);\n      h4.add(e);\n      h5.add(f);\n      h6.add(g);\n      h7.add(h);\n    }\n\n    var result;\n    if (!mode384) {\n      result = new Uint8Array(64);\n      h0.copyTo(result, 0);\n      h1.copyTo(result, 8);\n      h2.copyTo(result, 16);\n      h3.copyTo(result, 24);\n      h4.copyTo(result, 32);\n      h5.copyTo(result, 40);\n      h6.copyTo(result, 48);\n      h7.copyTo(result, 56);\n    } else {\n      result = new Uint8Array(48);\n      h0.copyTo(result, 0);\n      h1.copyTo(result, 8);\n      h2.copyTo(result, 16);\n      h3.copyTo(result, 24);\n      h4.copyTo(result, 32);\n      h5.copyTo(result, 40);\n    }\n    return result;\n  }\n\n  return hash;\n})();\nvar calculateSHA384 = (function calculateSHA384Closure() {\n  function hash(data, offset, length) {\n    return calculateSHA512(data, offset, length, true);\n  }\n\n  return hash;\n})();\nvar NullCipher = (function NullCipherClosure() {\n  // eslint-disable-next-line no-shadow\n  function NullCipher() {}\n\n  NullCipher.prototype = {\n    decryptBlock: function NullCipher_decryptBlock(data) {\n      return data;\n    },\n  };\n\n  return NullCipher;\n})();\n\nclass AESBaseCipher {\n  constructor() {\n    if (this.constructor === AESBaseCipher) {\n      unreachable(\"Cannot initialize AESBaseCipher.\");\n    }\n\n    // prettier-ignore\n    this._s = new Uint8Array([\n      0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b,\n      0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,\n      0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26,\n      0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,\n      0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2,\n      0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,\n      0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed,\n      0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,\n      0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f,\n      0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,\n      0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec,\n      0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,\n      0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14,\n      0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,\n      0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d,\n      0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,\n      0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f,\n      0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,\n      0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11,\n      0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,\n      0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f,\n      0xb0, 0x54, 0xbb, 0x16,\n    ]);\n\n    // prettier-ignore\n    this._inv_s = new Uint8Array([\n      0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e,\n      0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,\n      0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32,\n      0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,\n      0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49,\n      0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16,\n      0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50,\n      0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,\n      0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05,\n      0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,\n      0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41,\n      0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,\n      0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8,\n      0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89,\n      0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b,\n      0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,\n      0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59,\n      0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d,\n      0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d,\n      0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,\n      0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63,\n      0x55, 0x21, 0x0c, 0x7d,\n    ]);\n\n    // prettier-ignore\n    this._mix = new Uint32Array([\n      0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927,\n      0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45,\n      0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb,\n      0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381,\n      0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf,\n      0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66,\n      0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28,\n      0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012,\n      0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec,\n      0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e,\n      0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd,\n      0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7,\n      0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89,\n      0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b,\n      0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815,\n      0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f,\n      0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa,\n      0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8,\n      0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36,\n      0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c,\n      0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742,\n      0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea,\n      0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4,\n      0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e,\n      0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360,\n      0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502,\n      0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87,\n      0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd,\n      0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3,\n      0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621,\n      0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f,\n      0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55,\n      0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26,\n      0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844,\n      0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba,\n      0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480,\n      0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce,\n      0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67,\n      0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929,\n      0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713,\n      0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed,\n      0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f,\n      0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3,\n    ]);\n\n    this._mixCol = new Uint8Array(256);\n    for (let i = 0; i < 256; i++) {\n      if (i < 128) {\n        this._mixCol[i] = i << 1;\n      } else {\n        this._mixCol[i] = (i << 1) ^ 0x1b;\n      }\n    }\n\n    this.buffer = new Uint8Array(16);\n    this.bufferPosition = 0;\n  }\n\n  _expandKey(cipherKey) {\n    unreachable(\"Cannot call `_expandKey` on the base class\");\n  }\n\n  _decrypt(input, key) {\n    let t, u, v;\n    const state = new Uint8Array(16);\n    state.set(input);\n\n    // AddRoundKey\n    for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n      state[j] ^= key[k];\n    }\n    for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n      // InvShiftRows\n      t = state[13];\n      state[13] = state[9];\n      state[9] = state[5];\n      state[5] = state[1];\n      state[1] = t;\n      t = state[14];\n      u = state[10];\n      state[14] = state[6];\n      state[10] = state[2];\n      state[6] = t;\n      state[2] = u;\n      t = state[15];\n      u = state[11];\n      v = state[7];\n      state[15] = state[3];\n      state[11] = t;\n      state[7] = u;\n      state[3] = v;\n      // InvSubBytes\n      for (let j = 0; j < 16; ++j) {\n        state[j] = this._inv_s[state[j]];\n      }\n      // AddRoundKey\n      for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n        state[j] ^= key[k];\n      }\n      // InvMixColumns\n      for (let j = 0; j < 16; j += 4) {\n        const s0 = this._mix[state[j]];\n        const s1 = this._mix[state[j + 1]];\n        const s2 = this._mix[state[j + 2]];\n        const s3 = this._mix[state[j + 3]];\n        t =\n          s0 ^\n          (s1 >>> 8) ^\n          (s1 << 24) ^\n          (s2 >>> 16) ^\n          (s2 << 16) ^\n          (s3 >>> 24) ^\n          (s3 << 8);\n        state[j] = (t >>> 24) & 0xff;\n        state[j + 1] = (t >> 16) & 0xff;\n        state[j + 2] = (t >> 8) & 0xff;\n        state[j + 3] = t & 0xff;\n      }\n    }\n    // InvShiftRows\n    t = state[13];\n    state[13] = state[9];\n    state[9] = state[5];\n    state[5] = state[1];\n    state[1] = t;\n    t = state[14];\n    u = state[10];\n    state[14] = state[6];\n    state[10] = state[2];\n    state[6] = t;\n    state[2] = u;\n    t = state[15];\n    u = state[11];\n    v = state[7];\n    state[15] = state[3];\n    state[11] = t;\n    state[7] = u;\n    state[3] = v;\n    for (let j = 0; j < 16; ++j) {\n      // InvSubBytes\n      state[j] = this._inv_s[state[j]];\n      // AddRoundKey\n      state[j] ^= key[j];\n    }\n    return state;\n  }\n\n  _encrypt(input, key) {\n    const s = this._s;\n\n    let t, u, v;\n    const state = new Uint8Array(16);\n    state.set(input);\n\n    for (let j = 0; j < 16; ++j) {\n      // AddRoundKey\n      state[j] ^= key[j];\n    }\n\n    for (let i = 1; i < this._cyclesOfRepetition; i++) {\n      // SubBytes\n      for (let j = 0; j < 16; ++j) {\n        state[j] = s[state[j]];\n      }\n      // ShiftRows\n      v = state[1];\n      state[1] = state[5];\n      state[5] = state[9];\n      state[9] = state[13];\n      state[13] = v;\n      v = state[2];\n      u = state[6];\n      state[2] = state[10];\n      state[6] = state[14];\n      state[10] = v;\n      state[14] = u;\n      v = state[3];\n      u = state[7];\n      t = state[11];\n      state[3] = state[15];\n      state[7] = v;\n      state[11] = u;\n      state[15] = t;\n      // MixColumns\n      for (let j = 0; j < 16; j += 4) {\n        const s0 = state[j + 0];\n        const s1 = state[j + 1];\n        const s2 = state[j + 2];\n        const s3 = state[j + 3];\n        t = s0 ^ s1 ^ s2 ^ s3;\n        state[j + 0] ^= t ^ this._mixCol[s0 ^ s1];\n        state[j + 1] ^= t ^ this._mixCol[s1 ^ s2];\n        state[j + 2] ^= t ^ this._mixCol[s2 ^ s3];\n        state[j + 3] ^= t ^ this._mixCol[s3 ^ s0];\n      }\n      // AddRoundKey\n      for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n        state[j] ^= key[k];\n      }\n    }\n\n    // SubBytes\n    for (let j = 0; j < 16; ++j) {\n      state[j] = s[state[j]];\n    }\n    // ShiftRows\n    v = state[1];\n    state[1] = state[5];\n    state[5] = state[9];\n    state[9] = state[13];\n    state[13] = v;\n    v = state[2];\n    u = state[6];\n    state[2] = state[10];\n    state[6] = state[14];\n    state[10] = v;\n    state[14] = u;\n    v = state[3];\n    u = state[7];\n    t = state[11];\n    state[3] = state[15];\n    state[7] = v;\n    state[11] = u;\n    state[15] = t;\n    // AddRoundKey\n    for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n      state[j] ^= key[k];\n    }\n    return state;\n  }\n\n  _decryptBlock2(data, finalize) {\n    const sourceLength = data.length;\n    let buffer = this.buffer,\n      bufferLength = this.bufferPosition;\n    const result = [];\n    let iv = this.iv;\n\n    for (let i = 0; i < sourceLength; ++i) {\n      buffer[bufferLength] = data[i];\n      ++bufferLength;\n      if (bufferLength < 16) {\n        continue;\n      }\n      // buffer is full, decrypting\n      const plain = this._decrypt(buffer, this._key);\n      // xor-ing the IV vector to get plain text\n      for (let j = 0; j < 16; ++j) {\n        plain[j] ^= iv[j];\n      }\n      iv = buffer;\n      result.push(plain);\n      buffer = new Uint8Array(16);\n      bufferLength = 0;\n    }\n    // saving incomplete buffer\n    this.buffer = buffer;\n    this.bufferLength = bufferLength;\n    this.iv = iv;\n    if (result.length === 0) {\n      return new Uint8Array(0);\n    }\n    // combining plain text blocks into one\n    let outputLength = 16 * result.length;\n    if (finalize) {\n      // undo a padding that is described in RFC 2898\n      const lastBlock = result[result.length - 1];\n      let psLen = lastBlock[15];\n      if (psLen <= 16) {\n        for (let i = 15, ii = 16 - psLen; i >= ii; --i) {\n          if (lastBlock[i] !== psLen) {\n            // Invalid padding, assume that the block has no padding.\n            psLen = 0;\n            break;\n          }\n        }\n        outputLength -= psLen;\n        result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n      }\n    }\n    const output = new Uint8Array(outputLength);\n    for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n      output.set(result[i], j);\n    }\n    return output;\n  }\n\n  decryptBlock(data, finalize, iv = null) {\n    const sourceLength = data.length;\n    const buffer = this.buffer;\n    let bufferLength = this.bufferPosition;\n    // If an IV is not supplied, wait for IV values. They are at the start\n    // of the stream.\n    if (iv) {\n      this.iv = iv;\n    } else {\n      for (\n        let i = 0;\n        bufferLength < 16 && i < sourceLength;\n        ++i, ++bufferLength\n      ) {\n        buffer[bufferLength] = data[i];\n      }\n      if (bufferLength < 16) {\n        // Need more data.\n        this.bufferLength = bufferLength;\n        return new Uint8Array(0);\n      }\n      this.iv = buffer;\n      data = data.subarray(16);\n    }\n    this.buffer = new Uint8Array(16);\n    this.bufferLength = 0;\n    // starting decryption\n    this.decryptBlock = this._decryptBlock2;\n    return this.decryptBlock(data, finalize);\n  }\n\n  encrypt(data, iv) {\n    const sourceLength = data.length;\n    let buffer = this.buffer,\n      bufferLength = this.bufferPosition;\n    const result = [];\n\n    if (!iv) {\n      iv = new Uint8Array(16);\n    }\n    for (let i = 0; i < sourceLength; ++i) {\n      buffer[bufferLength] = data[i];\n      ++bufferLength;\n      if (bufferLength < 16) {\n        continue;\n      }\n      for (let j = 0; j < 16; ++j) {\n        buffer[j] ^= iv[j];\n      }\n\n      // buffer is full, encrypting\n      const cipher = this._encrypt(buffer, this._key);\n      iv = cipher;\n      result.push(cipher);\n      buffer = new Uint8Array(16);\n      bufferLength = 0;\n    }\n    // saving incomplete buffer\n    this.buffer = buffer;\n    this.bufferLength = bufferLength;\n    this.iv = iv;\n    if (result.length === 0) {\n      return new Uint8Array(0);\n    }\n    // combining plain text blocks into one\n    const outputLength = 16 * result.length;\n    const output = new Uint8Array(outputLength);\n    for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n      output.set(result[i], j);\n    }\n    return output;\n  }\n}\n\nclass AES128Cipher extends AESBaseCipher {\n  constructor(key) {\n    super();\n\n    this._cyclesOfRepetition = 10;\n    this._keySize = 160; // bits\n\n    // prettier-ignore\n    this._rcon = new Uint8Array([\n      0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n      0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n      0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n      0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n      0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,\n      0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6,\n      0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72,\n      0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc,\n      0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10,\n      0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e,\n      0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5,\n      0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94,\n      0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02,\n      0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d,\n      0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d,\n      0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f,\n      0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb,\n      0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n      0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n      0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n      0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n      0x74, 0xe8, 0xcb, 0x8d,\n    ]);\n\n    this._key = this._expandKey(key);\n  }\n\n  _expandKey(cipherKey) {\n    const b = 176;\n    const s = this._s;\n    const rcon = this._rcon;\n\n    const result = new Uint8Array(b);\n    result.set(cipherKey);\n\n    for (let j = 16, i = 1; j < b; ++i) {\n      // RotWord\n      let t1 = result[j - 3];\n      let t2 = result[j - 2];\n      let t3 = result[j - 1];\n      let t4 = result[j - 4];\n      // SubWord\n      t1 = s[t1];\n      t2 = s[t2];\n      t3 = s[t3];\n      t4 = s[t4];\n      // Rcon\n      t1 = t1 ^ rcon[i];\n      for (let n = 0; n < 4; ++n) {\n        result[j] = t1 ^= result[j - 16];\n        j++;\n        result[j] = t2 ^= result[j - 16];\n        j++;\n        result[j] = t3 ^= result[j - 16];\n        j++;\n        result[j] = t4 ^= result[j - 16];\n        j++;\n      }\n    }\n    return result;\n  }\n}\n\nclass AES256Cipher extends AESBaseCipher {\n  constructor(key) {\n    super();\n\n    this._cyclesOfRepetition = 14;\n    this._keySize = 224; // bits\n\n    this._key = this._expandKey(key);\n  }\n\n  _expandKey(cipherKey) {\n    const b = 240;\n    const s = this._s;\n\n    const result = new Uint8Array(b);\n    result.set(cipherKey);\n\n    let r = 1;\n    let t1, t2, t3, t4;\n    for (let j = 32, i = 1; j < b; ++i) {\n      if (j % 32 === 16) {\n        t1 = s[t1];\n        t2 = s[t2];\n        t3 = s[t3];\n        t4 = s[t4];\n      } else if (j % 32 === 0) {\n        // RotWord\n        t1 = result[j - 3];\n        t2 = result[j - 2];\n        t3 = result[j - 1];\n        t4 = result[j - 4];\n        // SubWord\n        t1 = s[t1];\n        t2 = s[t2];\n        t3 = s[t3];\n        t4 = s[t4];\n        // Rcon\n        t1 = t1 ^ r;\n        if ((r <<= 1) >= 256) {\n          r = (r ^ 0x1b) & 0xff;\n        }\n      }\n\n      for (let n = 0; n < 4; ++n) {\n        result[j] = t1 ^= result[j - 32];\n        j++;\n        result[j] = t2 ^= result[j - 32];\n        j++;\n        result[j] = t3 ^= result[j - 32];\n        j++;\n        result[j] = t4 ^= result[j - 32];\n        j++;\n      }\n    }\n    return result;\n  }\n}\n\nvar PDF17 = (function PDF17Closure() {\n  function compareByteArrays(array1, array2) {\n    if (array1.length !== array2.length) {\n      return false;\n    }\n    for (var i = 0; i < array1.length; i++) {\n      if (array1[i] !== array2[i]) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  // eslint-disable-next-line no-shadow\n  function PDF17() {}\n\n  PDF17.prototype = {\n    checkOwnerPassword: function PDF17_checkOwnerPassword(\n      password,\n      ownerValidationSalt,\n      userBytes,\n      ownerPassword\n    ) {\n      var hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerValidationSalt, password.length);\n      hashData.set(userBytes, password.length + ownerValidationSalt.length);\n      var result = calculateSHA256(hashData, 0, hashData.length);\n      return compareByteArrays(result, ownerPassword);\n    },\n    checkUserPassword: function PDF17_checkUserPassword(\n      password,\n      userValidationSalt,\n      userPassword\n    ) {\n      var hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userValidationSalt, password.length);\n      var result = calculateSHA256(hashData, 0, hashData.length);\n      return compareByteArrays(result, userPassword);\n    },\n    getOwnerKey: function PDF17_getOwnerKey(\n      password,\n      ownerKeySalt,\n      userBytes,\n      ownerEncryption\n    ) {\n      var hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerKeySalt, password.length);\n      hashData.set(userBytes, password.length + ownerKeySalt.length);\n      var key = calculateSHA256(hashData, 0, hashData.length);\n      var cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n    },\n    getUserKey: function PDF17_getUserKey(\n      password,\n      userKeySalt,\n      userEncryption\n    ) {\n      var hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userKeySalt, password.length);\n      // `key` is the decryption key for the UE string.\n      var key = calculateSHA256(hashData, 0, hashData.length);\n      var cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n    },\n  };\n  return PDF17;\n})();\n\nvar PDF20 = (function PDF20Closure() {\n  function concatArrays(array1, array2) {\n    var t = new Uint8Array(array1.length + array2.length);\n    t.set(array1, 0);\n    t.set(array2, array1.length);\n    return t;\n  }\n\n  function calculatePDF20Hash(password, input, userBytes) {\n    // This refers to Algorithm 2.B as defined in ISO 32000-2.\n    var k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n    var e = [0];\n    var i = 0;\n    while (i < 64 || e[e.length - 1] > i - 32) {\n      var arrayLength = password.length + k.length + userBytes.length;\n\n      var k1 = new Uint8Array(arrayLength * 64);\n      var array = concatArrays(password, k);\n      array = concatArrays(array, userBytes);\n      for (var j = 0, pos = 0; j < 64; j++, pos += arrayLength) {\n        k1.set(array, pos);\n      }\n      // AES128 CBC NO PADDING with first 16 bytes of k as the key\n      // and the second 16 as the iv.\n      var cipher = new AES128Cipher(k.subarray(0, 16));\n      e = cipher.encrypt(k1, k.subarray(16, 32));\n      // Now we have to take the first 16 bytes of an unsigned big endian\n      // integer and compute the remainder modulo 3. That is a fairly large\n      // number and JavaScript isn't going to handle that well, so we're using\n      // a trick that allows us to perform modulo math byte by byte.\n      var remainder = 0;\n      for (var z = 0; z < 16; z++) {\n        remainder *= 256 % 3;\n        remainder %= 3;\n        remainder += (e[z] >>> 0) % 3;\n        remainder %= 3;\n      }\n      if (remainder === 0) {\n        k = calculateSHA256(e, 0, e.length);\n      } else if (remainder === 1) {\n        k = calculateSHA384(e, 0, e.length);\n      } else if (remainder === 2) {\n        k = calculateSHA512(e, 0, e.length);\n      }\n      i++;\n    }\n    return k.subarray(0, 32);\n  }\n\n  // eslint-disable-next-line no-shadow\n  function PDF20() {}\n\n  function compareByteArrays(array1, array2) {\n    if (array1.length !== array2.length) {\n      return false;\n    }\n    for (var i = 0; i < array1.length; i++) {\n      if (array1[i] !== array2[i]) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  PDF20.prototype = {\n    hash: function PDF20_hash(password, concatBytes, userBytes) {\n      return calculatePDF20Hash(password, concatBytes, userBytes);\n    },\n    checkOwnerPassword: function PDF20_checkOwnerPassword(\n      password,\n      ownerValidationSalt,\n      userBytes,\n      ownerPassword\n    ) {\n      var hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerValidationSalt, password.length);\n      hashData.set(userBytes, password.length + ownerValidationSalt.length);\n      var result = calculatePDF20Hash(password, hashData, userBytes);\n      return compareByteArrays(result, ownerPassword);\n    },\n    checkUserPassword: function PDF20_checkUserPassword(\n      password,\n      userValidationSalt,\n      userPassword\n    ) {\n      var hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userValidationSalt, password.length);\n      var result = calculatePDF20Hash(password, hashData, []);\n      return compareByteArrays(result, userPassword);\n    },\n    getOwnerKey: function PDF20_getOwnerKey(\n      password,\n      ownerKeySalt,\n      userBytes,\n      ownerEncryption\n    ) {\n      var hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerKeySalt, password.length);\n      hashData.set(userBytes, password.length + ownerKeySalt.length);\n      var key = calculatePDF20Hash(password, hashData, userBytes);\n      var cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n    },\n    getUserKey: function PDF20_getUserKey(\n      password,\n      userKeySalt,\n      userEncryption\n    ) {\n      var hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userKeySalt, password.length);\n      // `key` is the decryption key for the UE string.\n      var key = calculatePDF20Hash(password, hashData, []);\n      var cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n    },\n  };\n  return PDF20;\n})();\n\nvar CipherTransform = (function CipherTransformClosure() {\n  // eslint-disable-next-line no-shadow\n  function CipherTransform(stringCipherConstructor, streamCipherConstructor) {\n    this.StringCipherConstructor = stringCipherConstructor;\n    this.StreamCipherConstructor = streamCipherConstructor;\n  }\n\n  CipherTransform.prototype = {\n    createStream: function CipherTransform_createStream(stream, length) {\n      var cipher = new this.StreamCipherConstructor();\n      return new DecryptStream(\n        stream,\n        length,\n        function cipherTransformDecryptStream(data, finalize) {\n          return cipher.decryptBlock(data, finalize);\n        }\n      );\n    },\n    decryptString: function CipherTransform_decryptString(s) {\n      var cipher = new this.StringCipherConstructor();\n      var data = stringToBytes(s);\n      data = cipher.decryptBlock(data, true);\n      return bytesToString(data);\n    },\n  };\n  return CipherTransform;\n})();\n\nvar CipherTransformFactory = (function CipherTransformFactoryClosure() {\n  // prettier-ignore\n  var defaultPasswordBytes = new Uint8Array([\n    0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41,\n    0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08,\n    0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80,\n    0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]);\n\n  function createEncryptionKey20(\n    revision,\n    password,\n    ownerPassword,\n    ownerValidationSalt,\n    ownerKeySalt,\n    uBytes,\n    userPassword,\n    userValidationSalt,\n    userKeySalt,\n    ownerEncryption,\n    userEncryption,\n    perms\n  ) {\n    if (password) {\n      var passwordLength = Math.min(127, password.length);\n      password = password.subarray(0, passwordLength);\n    } else {\n      password = [];\n    }\n    var pdfAlgorithm;\n    if (revision === 6) {\n      pdfAlgorithm = new PDF20();\n    } else {\n      pdfAlgorithm = new PDF17();\n    }\n\n    if (\n      pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)\n    ) {\n      return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n    } else if (\n      password.length &&\n      pdfAlgorithm.checkOwnerPassword(\n        password,\n        ownerValidationSalt,\n        uBytes,\n        ownerPassword\n      )\n    ) {\n      return pdfAlgorithm.getOwnerKey(\n        password,\n        ownerKeySalt,\n        uBytes,\n        ownerEncryption\n      );\n    }\n\n    return null;\n  }\n\n  function prepareKeyData(\n    fileId,\n    password,\n    ownerPassword,\n    userPassword,\n    flags,\n    revision,\n    keyLength,\n    encryptMetadata\n  ) {\n    var hashDataSize = 40 + ownerPassword.length + fileId.length;\n    var hashData = new Uint8Array(hashDataSize),\n      i = 0,\n      j,\n      n;\n    if (password) {\n      n = Math.min(32, password.length);\n      for (; i < n; ++i) {\n        hashData[i] = password[i];\n      }\n    }\n    j = 0;\n    while (i < 32) {\n      hashData[i++] = defaultPasswordBytes[j++];\n    }\n    // as now the padded password in the hashData[0..i]\n    for (j = 0, n = ownerPassword.length; j < n; ++j) {\n      hashData[i++] = ownerPassword[j];\n    }\n    hashData[i++] = flags & 0xff;\n    hashData[i++] = (flags >> 8) & 0xff;\n    hashData[i++] = (flags >> 16) & 0xff;\n    hashData[i++] = (flags >>> 24) & 0xff;\n    for (j = 0, n = fileId.length; j < n; ++j) {\n      hashData[i++] = fileId[j];\n    }\n    if (revision >= 4 && !encryptMetadata) {\n      hashData[i++] = 0xff;\n      hashData[i++] = 0xff;\n      hashData[i++] = 0xff;\n      hashData[i++] = 0xff;\n    }\n    var hash = calculateMD5(hashData, 0, i);\n    var keyLengthInBytes = keyLength >> 3;\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, keyLengthInBytes);\n      }\n    }\n    var encryptionKey = hash.subarray(0, keyLengthInBytes);\n    var cipher, checkData;\n\n    if (revision >= 3) {\n      for (i = 0; i < 32; ++i) {\n        hashData[i] = defaultPasswordBytes[i];\n      }\n      for (j = 0, n = fileId.length; j < n; ++j) {\n        hashData[i++] = fileId[j];\n      }\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n      n = encryptionKey.length;\n      var derivedKey = new Uint8Array(n),\n        k;\n      for (j = 1; j <= 19; ++j) {\n        for (k = 0; k < n; ++k) {\n          derivedKey[k] = encryptionKey[k] ^ j;\n        }\n        cipher = new ARCFourCipher(derivedKey);\n        checkData = cipher.encryptBlock(checkData);\n      }\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] !== checkData[j]) {\n          return null;\n        }\n      }\n    } else {\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(defaultPasswordBytes);\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] !== checkData[j]) {\n          return null;\n        }\n      }\n    }\n    return encryptionKey;\n  }\n\n  function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n    var hashData = new Uint8Array(32),\n      i = 0,\n      j,\n      n;\n    n = Math.min(32, password.length);\n    for (; i < n; ++i) {\n      hashData[i] = password[i];\n    }\n    j = 0;\n    while (i < 32) {\n      hashData[i++] = defaultPasswordBytes[j++];\n    }\n    var hash = calculateMD5(hashData, 0, i);\n    var keyLengthInBytes = keyLength >> 3;\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, hash.length);\n      }\n    }\n\n    var cipher, userPassword;\n    if (revision >= 3) {\n      userPassword = ownerPassword;\n      var derivedKey = new Uint8Array(keyLengthInBytes),\n        k;\n      for (j = 19; j >= 0; j--) {\n        for (k = 0; k < keyLengthInBytes; ++k) {\n          derivedKey[k] = hash[k] ^ j;\n        }\n        cipher = new ARCFourCipher(derivedKey);\n        userPassword = cipher.encryptBlock(userPassword);\n      }\n    } else {\n      cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n      userPassword = cipher.encryptBlock(ownerPassword);\n    }\n    return userPassword;\n  }\n\n  var identityName = Name.get(\"Identity\");\n\n  // eslint-disable-next-line no-shadow\n  function CipherTransformFactory(dict, fileId, password) {\n    var filter = dict.get(\"Filter\");\n    if (!isName(filter, \"Standard\")) {\n      throw new FormatError(\"unknown encryption method\");\n    }\n    this.dict = dict;\n    var algorithm = dict.get(\"V\");\n    if (\n      !Number.isInteger(algorithm) ||\n      (algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5)\n    ) {\n      throw new FormatError(\"unsupported encryption algorithm\");\n    }\n    this.algorithm = algorithm;\n    var keyLength = dict.get(\"Length\");\n    if (!keyLength) {\n      // Spec asks to rely on encryption dictionary's Length entry, however\n      // some PDFs don't have it. Trying to recover.\n      if (algorithm <= 3) {\n        // For 1 and 2 it's fixed to 40-bit, for 3 40-bit is a minimal value.\n        keyLength = 40;\n      } else {\n        // Trying to find default handler -- it usually has Length.\n        var cfDict = dict.get(\"CF\");\n        var streamCryptoName = dict.get(\"StmF\");\n        if (isDict(cfDict) && isName(streamCryptoName)) {\n          cfDict.suppressEncryption = true; // See comment below.\n          var handlerDict = cfDict.get(streamCryptoName.name);\n          keyLength = (handlerDict && handlerDict.get(\"Length\")) || 128;\n          if (keyLength < 40) {\n            // Sometimes it's incorrect value of bits, generators specify bytes.\n            keyLength <<= 3;\n          }\n        }\n      }\n    }\n    if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n      throw new FormatError(\"invalid key length\");\n    }\n\n    // prepare keys\n    var ownerPassword = stringToBytes(dict.get(\"O\")).subarray(0, 32);\n    var userPassword = stringToBytes(dict.get(\"U\")).subarray(0, 32);\n    var flags = dict.get(\"P\");\n    var revision = dict.get(\"R\");\n    // meaningful when V is 4 or 5\n    var encryptMetadata =\n      (algorithm === 4 || algorithm === 5) &&\n      dict.get(\"EncryptMetadata\") !== false;\n    this.encryptMetadata = encryptMetadata;\n\n    var fileIdBytes = stringToBytes(fileId);\n    var passwordBytes;\n    if (password) {\n      if (revision === 6) {\n        try {\n          password = utf8StringToString(password);\n        } catch (ex) {\n          warn(\n            \"CipherTransformFactory: \" +\n              \"Unable to convert UTF8 encoded password.\"\n          );\n        }\n      }\n      passwordBytes = stringToBytes(password);\n    }\n\n    var encryptionKey;\n    if (algorithm !== 5) {\n      encryptionKey = prepareKeyData(\n        fileIdBytes,\n        passwordBytes,\n        ownerPassword,\n        userPassword,\n        flags,\n        revision,\n        keyLength,\n        encryptMetadata\n      );\n    } else {\n      var ownerValidationSalt = stringToBytes(dict.get(\"O\")).subarray(32, 40);\n      var ownerKeySalt = stringToBytes(dict.get(\"O\")).subarray(40, 48);\n      var uBytes = stringToBytes(dict.get(\"U\")).subarray(0, 48);\n      var userValidationSalt = stringToBytes(dict.get(\"U\")).subarray(32, 40);\n      var userKeySalt = stringToBytes(dict.get(\"U\")).subarray(40, 48);\n      var ownerEncryption = stringToBytes(dict.get(\"OE\"));\n      var userEncryption = stringToBytes(dict.get(\"UE\"));\n      var perms = stringToBytes(dict.get(\"Perms\"));\n      encryptionKey = createEncryptionKey20(\n        revision,\n        passwordBytes,\n        ownerPassword,\n        ownerValidationSalt,\n        ownerKeySalt,\n        uBytes,\n        userPassword,\n        userValidationSalt,\n        userKeySalt,\n        ownerEncryption,\n        userEncryption,\n        perms\n      );\n    }\n    if (!encryptionKey && !password) {\n      throw new PasswordException(\n        \"No password given\",\n        PasswordResponses.NEED_PASSWORD\n      );\n    } else if (!encryptionKey && password) {\n      // Attempting use the password as an owner password\n      var decodedPassword = decodeUserPassword(\n        passwordBytes,\n        ownerPassword,\n        revision,\n        keyLength\n      );\n      encryptionKey = prepareKeyData(\n        fileIdBytes,\n        decodedPassword,\n        ownerPassword,\n        userPassword,\n        flags,\n        revision,\n        keyLength,\n        encryptMetadata\n      );\n    }\n\n    if (!encryptionKey) {\n      throw new PasswordException(\n        \"Incorrect Password\",\n        PasswordResponses.INCORRECT_PASSWORD\n      );\n    }\n\n    this.encryptionKey = encryptionKey;\n\n    if (algorithm >= 4) {\n      var cf = dict.get(\"CF\");\n      if (isDict(cf)) {\n        // The 'CF' dictionary itself should not be encrypted, and by setting\n        // `suppressEncryption` we can prevent an infinite loop inside of\n        // `XRef_fetchUncompressed` if the dictionary contains indirect objects\n        // (fixes issue7665.pdf).\n        cf.suppressEncryption = true;\n      }\n      this.cf = cf;\n      this.stmf = dict.get(\"StmF\") || identityName;\n      this.strf = dict.get(\"StrF\") || identityName;\n      this.eff = dict.get(\"EFF\") || this.stmf;\n    }\n  }\n\n  function buildObjectKey(num, gen, encryptionKey, isAes) {\n    var key = new Uint8Array(encryptionKey.length + 9),\n      i,\n      n;\n    for (i = 0, n = encryptionKey.length; i < n; ++i) {\n      key[i] = encryptionKey[i];\n    }\n    key[i++] = num & 0xff;\n    key[i++] = (num >> 8) & 0xff;\n    key[i++] = (num >> 16) & 0xff;\n    key[i++] = gen & 0xff;\n    key[i++] = (gen >> 8) & 0xff;\n    if (isAes) {\n      key[i++] = 0x73;\n      key[i++] = 0x41;\n      key[i++] = 0x6c;\n      key[i++] = 0x54;\n    }\n    var hash = calculateMD5(key, 0, i);\n    return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n  }\n\n  function buildCipherConstructor(cf, name, num, gen, key) {\n    if (!isName(name)) {\n      throw new FormatError(\"Invalid crypt filter name.\");\n    }\n    var cryptFilter = cf.get(name.name);\n    var cfm;\n    if (cryptFilter !== null && cryptFilter !== undefined) {\n      cfm = cryptFilter.get(\"CFM\");\n    }\n    if (!cfm || cfm.name === \"None\") {\n      return function cipherTransformFactoryBuildCipherConstructorNone() {\n        return new NullCipher();\n      };\n    }\n    if (cfm.name === \"V2\") {\n      return function cipherTransformFactoryBuildCipherConstructorV2() {\n        return new ARCFourCipher(buildObjectKey(num, gen, key, false));\n      };\n    }\n    if (cfm.name === \"AESV2\") {\n      return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n        return new AES128Cipher(buildObjectKey(num, gen, key, true));\n      };\n    }\n    if (cfm.name === \"AESV3\") {\n      return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n        return new AES256Cipher(key);\n      };\n    }\n    throw new FormatError(\"Unknown crypto method\");\n  }\n\n  CipherTransformFactory.prototype = {\n    createCipherTransform: function CipherTransformFactory_createCipherTransform(\n      num,\n      gen\n    ) {\n      if (this.algorithm === 4 || this.algorithm === 5) {\n        return new CipherTransform(\n          buildCipherConstructor(\n            this.cf,\n            this.stmf,\n            num,\n            gen,\n            this.encryptionKey\n          ),\n          buildCipherConstructor(\n            this.cf,\n            this.strf,\n            num,\n            gen,\n            this.encryptionKey\n          )\n        );\n      }\n      // algorithms 1 and 2\n      var key = buildObjectKey(num, gen, this.encryptionKey, false);\n      var cipherConstructor = function buildCipherCipherConstructor() {\n        return new ARCFourCipher(key);\n      };\n      return new CipherTransform(cipherConstructor, cipherConstructor);\n    },\n  };\n\n  return CipherTransformFactory;\n})();\n\nexport {\n  AES128Cipher,\n  AES256Cipher,\n  ARCFourCipher,\n  CipherTransformFactory,\n  PDF17,\n  PDF20,\n  calculateMD5,\n  calculateSHA256,\n  calculateSHA384,\n  calculateSHA512,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  FormatError,\n  info,\n  isString,\n  shadow,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport { isDict, isName, isStream } from \"./primitives.js\";\n\n/**\n * Resizes an RGB image with 3 components.\n * @param {TypedArray} src - The source buffer.\n * @param {TypedArray} dest - The destination buffer.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @param {number} alpha01 - Size reserved for the alpha channel.\n */\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n  const COMPONENTS = 3;\n  alpha01 = alpha01 !== 1 ? 0 : alpha01;\n  const xRatio = w1 / w2;\n  const yRatio = h1 / h2;\n  let newIndex = 0,\n    oldIndex;\n  const xScaled = new Uint16Array(w2);\n  const w1Scanline = w1 * COMPONENTS;\n\n  for (let i = 0; i < w2; i++) {\n    xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n  }\n  for (let i = 0; i < h2; i++) {\n    const py = Math.floor(i * yRatio) * w1Scanline;\n    for (let j = 0; j < w2; j++) {\n      oldIndex = py + xScaled[j];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      newIndex += alpha01;\n    }\n  }\n}\n\nclass ColorSpace {\n  constructor(name, numComps) {\n    if (this.constructor === ColorSpace) {\n      unreachable(\"Cannot initialize ColorSpace.\");\n    }\n    this.name = name;\n    this.numComps = numComps;\n  }\n\n  /**\n   * Converts the color value to the RGB color. The color components are\n   * located in the src array starting from the srcOffset. Returns the array\n   * of the rgb components, each value ranging from [0,255].\n   */\n  getRgb(src, srcOffset) {\n    const rgb = new Uint8ClampedArray(3);\n    this.getRgbItem(src, srcOffset, rgb, 0);\n    return rgb;\n  }\n\n  /**\n   * Converts the color value to the RGB color, similar to the getRgb method.\n   * The result placed into the dest array starting from the destOffset.\n   */\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    unreachable(\"Should not call ColorSpace.getRgbItem\");\n  }\n\n  /**\n   * Converts the specified number of the color values to the RGB colors.\n   * The colors are located in the src array starting from the srcOffset.\n   * The result is placed into the dest array starting from the destOffset.\n   * The src array items shall be in [0,2^bits) range, the dest array items\n   * will be in [0,255] range. alpha01 indicates how many alpha components\n   * there are in the dest array; it will be either 0 (RGB array) or 1 (RGBA\n   * array).\n   */\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    unreachable(\"Should not call ColorSpace.getRgbBuffer\");\n  }\n\n  /**\n   * Determines the number of bytes required to store the result of the\n   * conversion done by the getRgbBuffer method. As in getRgbBuffer,\n   * |alpha01| is either 0 (RGB output) or 1 (RGBA output).\n   */\n  getOutputLength(inputLength, alpha01) {\n    unreachable(\"Should not call ColorSpace.getOutputLength\");\n  }\n\n  /**\n   * Returns true if source data will be equal the result/output data.\n   */\n  isPassthrough(bits) {\n    return false;\n  }\n\n  /**\n   * Refer to the static `ColorSpace.isDefaultDecode` method below.\n   */\n  isDefaultDecode(decodeMap, bpc) {\n    return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n  }\n\n  /**\n   * Fills in the RGB colors in the destination buffer.  alpha01 indicates\n   * how many alpha components there are in the dest array; it will be either\n   * 0 (RGB array) or 1 (RGBA array).\n   */\n  fillRgb(\n    dest,\n    originalWidth,\n    originalHeight,\n    width,\n    height,\n    actualHeight,\n    bpc,\n    comps,\n    alpha01\n  ) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'ColorSpace.fillRgb: Unsupported \"dest\" type.'\n      );\n    }\n    const count = originalWidth * originalHeight;\n    let rgbBuf = null;\n    const numComponentColors = 1 << bpc;\n    const needsResizing = originalHeight !== height || originalWidth !== width;\n\n    if (this.isPassthrough(bpc)) {\n      rgbBuf = comps;\n    } else if (\n      this.numComps === 1 &&\n      count > numComponentColors &&\n      this.name !== \"DeviceGray\" &&\n      this.name !== \"DeviceRGB\"\n    ) {\n      // Optimization: create a color map when there is just one component and\n      // we are converting more colors than the size of the color map. We\n      // don't build the map if the colorspace is gray or rgb since those\n      // methods are faster than building a map. This mainly offers big speed\n      // ups for indexed and alternate colorspaces.\n      //\n      // TODO it may be worth while to cache the color map. While running\n      // testing I never hit a cache so I will leave that out for now (perhaps\n      // we are reparsing colorspaces too much?).\n      const allColors =\n        bpc <= 8\n          ? new Uint8Array(numComponentColors)\n          : new Uint16Array(numComponentColors);\n      for (let i = 0; i < numComponentColors; i++) {\n        allColors[i] = i;\n      }\n      const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n      this.getRgbBuffer(\n        allColors,\n        0,\n        numComponentColors,\n        colorMap,\n        0,\n        bpc,\n        /* alpha01 = */ 0\n      );\n\n      if (!needsResizing) {\n        // Fill in the RGB values directly into |dest|.\n        let destPos = 0;\n        for (let i = 0; i < count; ++i) {\n          const key = comps[i] * 3;\n          dest[destPos++] = colorMap[key];\n          dest[destPos++] = colorMap[key + 1];\n          dest[destPos++] = colorMap[key + 2];\n          destPos += alpha01;\n        }\n      } else {\n        rgbBuf = new Uint8Array(count * 3);\n        let rgbPos = 0;\n        for (let i = 0; i < count; ++i) {\n          const key = comps[i] * 3;\n          rgbBuf[rgbPos++] = colorMap[key];\n          rgbBuf[rgbPos++] = colorMap[key + 1];\n          rgbBuf[rgbPos++] = colorMap[key + 2];\n        }\n      }\n    } else {\n      if (!needsResizing) {\n        // Fill in the RGB values directly into |dest|.\n        this.getRgbBuffer(\n          comps,\n          0,\n          width * actualHeight,\n          dest,\n          0,\n          bpc,\n          alpha01\n        );\n      } else {\n        rgbBuf = new Uint8ClampedArray(count * 3);\n        this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, /* alpha01 = */ 0);\n      }\n    }\n\n    if (rgbBuf) {\n      if (needsResizing) {\n        resizeRgbImage(\n          rgbBuf,\n          dest,\n          originalWidth,\n          originalHeight,\n          width,\n          height,\n          alpha01\n        );\n      } else {\n        let destPos = 0,\n          rgbPos = 0;\n        for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n          dest[destPos++] = rgbBuf[rgbPos++];\n          dest[destPos++] = rgbBuf[rgbPos++];\n          dest[destPos++] = rgbBuf[rgbPos++];\n          destPos += alpha01;\n        }\n      }\n    }\n  }\n\n  /**\n   * True if the colorspace has components in the default range of [0, 1].\n   * This should be true for all colorspaces except for lab color spaces\n   * which are [0,100], [-128, 127], [-128, 127].\n   */\n  get usesZeroToOneRange() {\n    return shadow(this, \"usesZeroToOneRange\", true);\n  }\n\n  static parse(cs, xref, res, pdfFunctionFactory) {\n    const IR = this.parseToIR(cs, xref, res, pdfFunctionFactory);\n    return this.fromIR(IR);\n  }\n\n  static fromIR(IR) {\n    const name = Array.isArray(IR) ? IR[0] : IR;\n    let whitePoint, blackPoint, gamma;\n\n    switch (name) {\n      case \"DeviceGrayCS\":\n        return this.singletons.gray;\n      case \"DeviceRgbCS\":\n        return this.singletons.rgb;\n      case \"DeviceCmykCS\":\n        return this.singletons.cmyk;\n      case \"CalGrayCS\":\n        whitePoint = IR[1];\n        blackPoint = IR[2];\n        gamma = IR[3];\n        return new CalGrayCS(whitePoint, blackPoint, gamma);\n      case \"CalRGBCS\":\n        whitePoint = IR[1];\n        blackPoint = IR[2];\n        gamma = IR[3];\n        const matrix = IR[4];\n        return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n      case \"PatternCS\":\n        let basePatternCS = IR[1];\n        if (basePatternCS) {\n          basePatternCS = this.fromIR(basePatternCS);\n        }\n        return new PatternCS(basePatternCS);\n      case \"IndexedCS\":\n        const baseIndexedCS = IR[1];\n        const hiVal = IR[2];\n        const lookup = IR[3];\n        return new IndexedCS(this.fromIR(baseIndexedCS), hiVal, lookup);\n      case \"AlternateCS\":\n        const numComps = IR[1];\n        const alt = IR[2];\n        const tintFn = IR[3];\n        return new AlternateCS(numComps, this.fromIR(alt), tintFn);\n      case \"LabCS\":\n        whitePoint = IR[1];\n        blackPoint = IR[2];\n        const range = IR[3];\n        return new LabCS(whitePoint, blackPoint, range);\n      default:\n        throw new FormatError(`Unknown colorspace name: ${name}`);\n    }\n  }\n\n  static parseToIR(cs, xref, res = null, pdfFunctionFactory) {\n    cs = xref.fetchIfRef(cs);\n    if (isName(cs)) {\n      switch (cs.name) {\n        case \"DeviceGray\":\n        case \"G\":\n          return \"DeviceGrayCS\";\n        case \"DeviceRGB\":\n        case \"RGB\":\n          return \"DeviceRgbCS\";\n        case \"DeviceCMYK\":\n        case \"CMYK\":\n          return \"DeviceCmykCS\";\n        case \"Pattern\":\n          return [\"PatternCS\", null];\n        default:\n          if (isDict(res)) {\n            const colorSpaces = res.get(\"ColorSpace\");\n            if (isDict(colorSpaces)) {\n              const resCS = colorSpaces.get(cs.name);\n              if (resCS) {\n                if (isName(resCS)) {\n                  return this.parseToIR(resCS, xref, res, pdfFunctionFactory);\n                }\n                cs = resCS;\n                break;\n              }\n            }\n          }\n          throw new FormatError(`unrecognized colorspace ${cs.name}`);\n      }\n    }\n    if (Array.isArray(cs)) {\n      const mode = xref.fetchIfRef(cs[0]).name;\n      let numComps, params, alt, whitePoint, blackPoint, gamma;\n\n      switch (mode) {\n        case \"DeviceGray\":\n        case \"G\":\n          return \"DeviceGrayCS\";\n        case \"DeviceRGB\":\n        case \"RGB\":\n          return \"DeviceRgbCS\";\n        case \"DeviceCMYK\":\n        case \"CMYK\":\n          return \"DeviceCmykCS\";\n        case \"CalGray\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          gamma = params.get(\"Gamma\");\n          return [\"CalGrayCS\", whitePoint, blackPoint, gamma];\n        case \"CalRGB\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          gamma = params.getArray(\"Gamma\");\n          const matrix = params.getArray(\"Matrix\");\n          return [\"CalRGBCS\", whitePoint, blackPoint, gamma, matrix];\n        case \"ICCBased\":\n          const stream = xref.fetchIfRef(cs[1]);\n          const dict = stream.dict;\n          numComps = dict.get(\"N\");\n          alt = dict.get(\"Alternate\");\n          if (alt) {\n            const altIR = this.parseToIR(alt, xref, res, pdfFunctionFactory);\n            // Parse the /Alternate CS to ensure that the number of components\n            // are correct, and also (indirectly) that it is not a PatternCS.\n            const altCS = this.fromIR(altIR, pdfFunctionFactory);\n            if (altCS.numComps === numComps) {\n              return altIR;\n            }\n            warn(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n          }\n          if (numComps === 1) {\n            return \"DeviceGrayCS\";\n          } else if (numComps === 3) {\n            return \"DeviceRgbCS\";\n          } else if (numComps === 4) {\n            return \"DeviceCmykCS\";\n          }\n          break;\n        case \"Pattern\":\n          let basePatternCS = cs[1] || null;\n          if (basePatternCS) {\n            basePatternCS = this.parseToIR(\n              basePatternCS,\n              xref,\n              res,\n              pdfFunctionFactory\n            );\n          }\n          return [\"PatternCS\", basePatternCS];\n        case \"Indexed\":\n        case \"I\":\n          const baseIndexedCS = this.parseToIR(\n            cs[1],\n            xref,\n            res,\n            pdfFunctionFactory\n          );\n          const hiVal = xref.fetchIfRef(cs[2]) + 1;\n          let lookup = xref.fetchIfRef(cs[3]);\n          if (isStream(lookup)) {\n            lookup = lookup.getBytes();\n          }\n          return [\"IndexedCS\", baseIndexedCS, hiVal, lookup];\n        case \"Separation\":\n        case \"DeviceN\":\n          const name = xref.fetchIfRef(cs[1]);\n          numComps = Array.isArray(name) ? name.length : 1;\n          alt = this.parseToIR(cs[2], xref, res, pdfFunctionFactory);\n          const tintFn = pdfFunctionFactory.create(xref.fetchIfRef(cs[3]));\n          return [\"AlternateCS\", numComps, alt, tintFn];\n        case \"Lab\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          const range = params.getArray(\"Range\");\n          return [\"LabCS\", whitePoint, blackPoint, range];\n        default:\n          throw new FormatError(`unimplemented color space object \"${mode}\"`);\n      }\n    }\n    throw new FormatError(`unrecognized color space object: \"${cs}\"`);\n  }\n\n  /**\n   * Checks if a decode map matches the default decode map for a color space.\n   * This handles the general decode maps where there are two values per\n   * component, e.g. [0, 1, 0, 1, 0, 1] for a RGB color.\n   * This does not handle Lab, Indexed, or Pattern decode maps since they are\n   * slightly different.\n   * @param {Array} decode - Decode map (usually from an image).\n   * @param {number} numComps - Number of components the color space has.\n   */\n  static isDefaultDecode(decode, numComps) {\n    if (!Array.isArray(decode)) {\n      return true;\n    }\n    if (numComps * 2 !== decode.length) {\n      warn(\"The decode map is not the correct length\");\n      return true;\n    }\n    for (let i = 0, ii = decode.length; i < ii; i += 2) {\n      if (decode[i] !== 0 || decode[i + 1] !== 1) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  static get singletons() {\n    return shadow(this, \"singletons\", {\n      get gray() {\n        return shadow(this, \"gray\", new DeviceGrayCS());\n      },\n      get rgb() {\n        return shadow(this, \"rgb\", new DeviceRgbCS());\n      },\n      get cmyk() {\n        return shadow(this, \"cmyk\", new DeviceCmykCS());\n      },\n    });\n  }\n}\n\n/**\n * Alternate color space handles both Separation and DeviceN color spaces.  A\n * Separation color space is actually just a DeviceN with one color component.\n * Both color spaces use a tinting function to convert colors to a base color\n * space.\n *\n * The default color is `new Float32Array(new Array(numComps).fill(1))`.\n */\nclass AlternateCS extends ColorSpace {\n  constructor(numComps, base, tintFn) {\n    super(\"Alternate\", numComps);\n    this.base = base;\n    this.tintFn = tintFn;\n    this.tmpBuf = new Float32Array(base.numComps);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'AlternateCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    const tmpBuf = this.tmpBuf;\n    this.tintFn(src, srcOffset, tmpBuf, 0);\n    this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'AlternateCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    const tintFn = this.tintFn;\n    const base = this.base;\n    const scale = 1 / ((1 << bits) - 1);\n    const baseNumComps = base.numComps;\n    const usesZeroToOneRange = base.usesZeroToOneRange;\n    const isPassthrough =\n      (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n    let pos = isPassthrough ? destOffset : 0;\n    const baseBuf = isPassthrough\n      ? dest\n      : new Uint8ClampedArray(baseNumComps * count);\n    const numComps = this.numComps;\n\n    const scaled = new Float32Array(numComps);\n    const tinted = new Float32Array(baseNumComps);\n    let i, j;\n\n    for (i = 0; i < count; i++) {\n      for (j = 0; j < numComps; j++) {\n        scaled[j] = src[srcOffset++] * scale;\n      }\n      tintFn(scaled, 0, tinted, 0);\n      if (usesZeroToOneRange) {\n        for (j = 0; j < baseNumComps; j++) {\n          baseBuf[pos++] = tinted[j] * 255;\n        }\n      } else {\n        base.getRgbItem(tinted, 0, baseBuf, pos);\n        pos += baseNumComps;\n      }\n    }\n\n    if (!isPassthrough) {\n      base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return this.base.getOutputLength(\n      (inputLength * this.base.numComps) / this.numComps,\n      alpha01\n    );\n  }\n}\n\nclass PatternCS extends ColorSpace {\n  constructor(baseCS) {\n    super(\"Pattern\", null);\n    this.base = baseCS;\n  }\n\n  isDefaultDecode(decodeMap, bpc) {\n    unreachable(\"Should not call PatternCS.isDefaultDecode\");\n  }\n}\n\n/**\n * The default color is `new Uint8Array([0])`.\n */\nclass IndexedCS extends ColorSpace {\n  constructor(base, highVal, lookup) {\n    super(\"Indexed\", 1);\n    this.base = base;\n    this.highVal = highVal;\n\n    const baseNumComps = base.numComps;\n    const length = baseNumComps * highVal;\n\n    if (isStream(lookup)) {\n      this.lookup = new Uint8Array(length);\n      const bytes = lookup.getBytes(length);\n      this.lookup.set(bytes);\n    } else if (isString(lookup)) {\n      this.lookup = new Uint8Array(length);\n      for (let i = 0; i < length; ++i) {\n        this.lookup[i] = lookup.charCodeAt(i);\n      }\n    } else if (lookup instanceof Uint8Array) {\n      this.lookup = lookup;\n    } else {\n      throw new FormatError(`Unrecognized lookup table: ${lookup}`);\n    }\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'IndexedCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    const numComps = this.base.numComps;\n    const start = src[srcOffset] * numComps;\n    this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'IndexedCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    const base = this.base;\n    const numComps = base.numComps;\n    const outputDelta = base.getOutputLength(numComps, alpha01);\n    const lookup = this.lookup;\n\n    for (let i = 0; i < count; ++i) {\n      const lookupPos = src[srcOffset++] * numComps;\n      base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n      destOffset += outputDelta;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n  }\n\n  isDefaultDecode(decodeMap, bpc) {\n    if (!Array.isArray(decodeMap)) {\n      return true;\n    }\n    if (decodeMap.length !== 2) {\n      warn(\"Decode map length is not correct\");\n      return true;\n    }\n    if (!Number.isInteger(bpc) || bpc < 1) {\n      warn(\"Bits per component is not correct\");\n      return true;\n    }\n    return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n  }\n}\n\n/**\n * The default color is `new Float32Array([0])`.\n */\nclass DeviceGrayCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceGray\", 1);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceGrayCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    const c = src[srcOffset] * 255;\n    dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    const scale = 255 / ((1 << bits) - 1);\n    let j = srcOffset,\n      q = destOffset;\n    for (let i = 0; i < count; ++i) {\n      const c = scale * src[j++];\n      dest[q++] = c;\n      dest[q++] = c;\n      dest[q++] = c;\n      q += alpha01;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01);\n  }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass DeviceRgbCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceRGB\", 3);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceRgbCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    dest[destOffset] = src[srcOffset] * 255;\n    dest[destOffset + 1] = src[srcOffset + 1] * 255;\n    dest[destOffset + 2] = src[srcOffset + 2] * 255;\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceRgbCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    if (bits === 8 && alpha01 === 0) {\n      dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n      return;\n    }\n    const scale = 255 / ((1 << bits) - 1);\n    let j = srcOffset,\n      q = destOffset;\n    for (let i = 0; i < count; ++i) {\n      dest[q++] = scale * src[j++];\n      dest[q++] = scale * src[j++];\n      dest[q++] = scale * src[j++];\n      q += alpha01;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return ((inputLength * (3 + alpha01)) / 3) | 0;\n  }\n\n  isPassthrough(bits) {\n    return bits === 8;\n  }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0, 1])`.\n */\nconst DeviceCmykCS = (function DeviceCmykCSClosure() {\n  // The coefficients below was found using numerical analysis: the method of\n  // steepest descent for the sum((f_i - color_value_i)^2) for r/g/b colors,\n  // where color_value is the tabular value from the table of sampled RGB colors\n  // from CMYK US Web Coated (SWOP) colorspace, and f_i is the corresponding\n  // CMYK color conversion using the estimation below:\n  //   f(A, B,.. N) = Acc+Bcm+Ccy+Dck+c+Fmm+Gmy+Hmk+Im+Jyy+Kyk+Ly+Mkk+Nk+255\n  function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n    const c = src[srcOffset] * srcScale;\n    const m = src[srcOffset + 1] * srcScale;\n    const y = src[srcOffset + 2] * srcScale;\n    const k = src[srcOffset + 3] * srcScale;\n\n    dest[destOffset] =\n      255 +\n      c *\n        (-4.387332384609988 * c +\n          54.48615194189176 * m +\n          18.82290502165302 * y +\n          212.25662451639585 * k +\n          -285.2331026137004) +\n      m *\n        (1.7149763477362134 * m -\n          5.6096736904047315 * y +\n          -17.873870861415444 * k -\n          5.497006427196366) +\n      y *\n        (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) +\n      k * (-21.86122147463605 * k - 189.48180835922747);\n\n    dest[destOffset + 1] =\n      255 +\n      c *\n        (8.841041422036149 * c +\n          60.118027045597366 * m +\n          6.871425592049007 * y +\n          31.159100130055922 * k +\n          -79.2970844816548) +\n      m *\n        (-15.310361306967817 * m +\n          17.575251261109482 * y +\n          131.35250912493976 * k -\n          190.9453302588951) +\n      y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) +\n      k * (-20.737325471181034 * k - 187.80453709719578);\n\n    dest[destOffset + 2] =\n      255 +\n      c *\n        (0.8842522430003296 * c +\n          8.078677503112928 * m +\n          30.89978309703729 * y -\n          0.23883238689178934 * k +\n          -14.183576799673286) +\n      m *\n        (10.49593273432072 * m +\n          63.02378494754052 * y +\n          50.606957656360734 * k -\n          112.23884253719248) +\n      y *\n        (0.03296041114873217 * y +\n          115.60384449646641 * k +\n          -193.58209356861505) +\n      k * (-22.33816807309886 * k - 180.12613974708367);\n  }\n\n  // eslint-disable-next-line no-shadow\n  class DeviceCmykCS extends ColorSpace {\n    constructor() {\n      super(\"DeviceCMYK\", 4);\n    }\n\n    getRgbItem(src, srcOffset, dest, destOffset) {\n      if (\n        typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"!PRODUCTION || TESTING\")\n      ) {\n        assert(\n          dest instanceof Uint8ClampedArray,\n          'DeviceCmykCS.getRgbItem: Unsupported \"dest\" type.'\n        );\n      }\n      convertToRgb(src, srcOffset, 1, dest, destOffset);\n    }\n\n    getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      if (\n        typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"!PRODUCTION || TESTING\")\n      ) {\n        assert(\n          dest instanceof Uint8ClampedArray,\n          'DeviceCmykCS.getRgbBuffer: Unsupported \"dest\" type.'\n        );\n      }\n      const scale = 1 / ((1 << bits) - 1);\n      for (let i = 0; i < count; i++) {\n        convertToRgb(src, srcOffset, scale, dest, destOffset);\n        srcOffset += 4;\n        destOffset += 3 + alpha01;\n      }\n    }\n\n    getOutputLength(inputLength, alpha01) {\n      return ((inputLength / 4) * (3 + alpha01)) | 0;\n    }\n  }\n  return DeviceCmykCS;\n})();\n\n/**\n * CalGrayCS: Based on \"PDF Reference, Sixth Ed\", p.245\n *\n * The default color is `new Float32Array([0])`.\n */\nconst CalGrayCS = (function CalGrayCSClosure() {\n  function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n    // A represents a gray component of a calibrated gray space.\n    // A <---> AG in the spec\n    const A = src[srcOffset] * scale;\n    const AG = A ** cs.G;\n\n    // Computes L as per spec. ( = cs.YW * AG )\n    // Except if other than default BlackPoint values are used.\n    const L = cs.YW * AG;\n    // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html, Ch 4.\n    // Convert values to rgb range [0, 255].\n    const val = Math.max(295.8 * L ** 0.333333333333333333 - 40.8, 0);\n    dest[destOffset] = val;\n    dest[destOffset + 1] = val;\n    dest[destOffset + 2] = val;\n  }\n\n  // eslint-disable-next-line no-shadow\n  class CalGrayCS extends ColorSpace {\n    constructor(whitePoint, blackPoint, gamma) {\n      super(\"CalGray\", 1);\n\n      if (!whitePoint) {\n        throw new FormatError(\n          \"WhitePoint missing - required for color space CalGray\"\n        );\n      }\n      blackPoint = blackPoint || [0, 0, 0];\n      gamma = gamma || 1;\n\n      // Translate arguments to spec variables.\n      this.XW = whitePoint[0];\n      this.YW = whitePoint[1];\n      this.ZW = whitePoint[2];\n\n      this.XB = blackPoint[0];\n      this.YB = blackPoint[1];\n      this.ZB = blackPoint[2];\n\n      this.G = gamma;\n\n      // Validate variables as per spec.\n      if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n        throw new FormatError(\n          `Invalid WhitePoint components for ${this.name}` +\n            \", no fallback available\"\n        );\n      }\n\n      if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n        info(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n        this.XB = this.YB = this.ZB = 0;\n      }\n\n      if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n        warn(\n          `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` +\n            `ZB: ${this.ZB}, only default values are supported.`\n        );\n      }\n\n      if (this.G < 1) {\n        info(\n          `Invalid Gamma: ${this.G} for ${this.name}, ` +\n            \"falling back to default.\"\n        );\n        this.G = 1;\n      }\n    }\n\n    getRgbItem(src, srcOffset, dest, destOffset) {\n      if (\n        typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"!PRODUCTION || TESTING\")\n      ) {\n        assert(\n          dest instanceof Uint8ClampedArray,\n          'CalGrayCS.getRgbItem: Unsupported \"dest\" type.'\n        );\n      }\n      convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n    }\n\n    getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      if (\n        typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"!PRODUCTION || TESTING\")\n      ) {\n        assert(\n          dest instanceof Uint8ClampedArray,\n          'CalGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n        );\n      }\n      const scale = 1 / ((1 << bits) - 1);\n\n      for (let i = 0; i < count; ++i) {\n        convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n        srcOffset += 1;\n        destOffset += 3 + alpha01;\n      }\n    }\n\n    getOutputLength(inputLength, alpha01) {\n      return inputLength * (3 + alpha01);\n    }\n  }\n  return CalGrayCS;\n})();\n\n/**\n * CalRGBCS: Based on \"PDF Reference, Sixth Ed\", p.247\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nconst CalRGBCS = (function CalRGBCSClosure() {\n  // See http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html for these\n  // matrices.\n  // prettier-ignore\n  const BRADFORD_SCALE_MATRIX = new Float32Array([\n    0.8951, 0.2664, -0.1614,\n    -0.7502, 1.7135, 0.0367,\n    0.0389, -0.0685, 1.0296]);\n\n  // prettier-ignore\n  const BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([\n    0.9869929, -0.1470543, 0.1599627,\n    0.4323053, 0.5183603, 0.0492912,\n    -0.0085287, 0.0400428, 0.9684867]);\n\n  // See http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html.\n  // prettier-ignore\n  const SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([\n    3.2404542, -1.5371385, -0.4985314,\n    -0.9692660, 1.8760108, 0.0415560,\n    0.0556434, -0.2040259, 1.0572252]);\n\n  const FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n\n  const tempNormalizeMatrix = new Float32Array(3);\n  const tempConvertMatrix1 = new Float32Array(3);\n  const tempConvertMatrix2 = new Float32Array(3);\n\n  const DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n  function matrixProduct(a, b, result) {\n    result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n    result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n    result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n  }\n\n  function convertToFlat(sourceWhitePoint, LMS, result) {\n    result[0] = (LMS[0] * 1) / sourceWhitePoint[0];\n    result[1] = (LMS[1] * 1) / sourceWhitePoint[1];\n    result[2] = (LMS[2] * 1) / sourceWhitePoint[2];\n  }\n\n  function convertToD65(sourceWhitePoint, LMS, result) {\n    const D65X = 0.95047;\n    const D65Y = 1;\n    const D65Z = 1.08883;\n\n    result[0] = (LMS[0] * D65X) / sourceWhitePoint[0];\n    result[1] = (LMS[1] * D65Y) / sourceWhitePoint[1];\n    result[2] = (LMS[2] * D65Z) / sourceWhitePoint[2];\n  }\n\n  function sRGBTransferFunction(color) {\n    // See http://en.wikipedia.org/wiki/SRGB.\n    if (color <= 0.0031308) {\n      return adjustToRange(0, 1, 12.92 * color);\n    }\n    return adjustToRange(0, 1, (1 + 0.055) * color ** (1 / 2.4) - 0.055);\n  }\n\n  function adjustToRange(min, max, value) {\n    return Math.max(min, Math.min(max, value));\n  }\n\n  function decodeL(L) {\n    if (L < 0) {\n      return -decodeL(-L);\n    }\n    if (L > 8.0) {\n      return ((L + 16) / 116) ** 3;\n    }\n    return L * DECODE_L_CONSTANT;\n  }\n\n  function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n    // In case the blackPoint is already the default blackPoint then there is\n    // no need to do compensation.\n    if (\n      sourceBlackPoint[0] === 0 &&\n      sourceBlackPoint[1] === 0 &&\n      sourceBlackPoint[2] === 0\n    ) {\n      result[0] = XYZ_Flat[0];\n      result[1] = XYZ_Flat[1];\n      result[2] = XYZ_Flat[2];\n      return;\n    }\n\n    // For the blackPoint calculation details, please see\n    // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n    // AdobeBPC.pdf.\n    // The destination blackPoint is the default blackPoint [0, 0, 0].\n    const zeroDecodeL = decodeL(0);\n\n    const X_DST = zeroDecodeL;\n    const X_SRC = decodeL(sourceBlackPoint[0]);\n\n    const Y_DST = zeroDecodeL;\n    const Y_SRC = decodeL(sourceBlackPoint[1]);\n\n    const Z_DST = zeroDecodeL;\n    const Z_SRC = decodeL(sourceBlackPoint[2]);\n\n    const X_Scale = (1 - X_DST) / (1 - X_SRC);\n    const X_Offset = 1 - X_Scale;\n\n    const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n    const Y_Offset = 1 - Y_Scale;\n\n    const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n    const Z_Offset = 1 - Z_Scale;\n\n    result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n    result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n    result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n  }\n\n  function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n    // In case the whitePoint is already flat then there is no need to do\n    // normalization.\n    if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n      result[0] = XYZ_In[0];\n      result[1] = XYZ_In[1];\n      result[2] = XYZ_In[2];\n      return;\n    }\n\n    const LMS = result;\n    matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n    const LMS_Flat = tempNormalizeMatrix;\n    convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n\n    matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n  }\n\n  function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n    const LMS = result;\n    matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n    const LMS_D65 = tempNormalizeMatrix;\n    convertToD65(sourceWhitePoint, LMS, LMS_D65);\n\n    matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n  }\n\n  function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n    // A, B and C represent a red, green and blue components of a calibrated\n    // rgb space.\n    const A = adjustToRange(0, 1, src[srcOffset] * scale);\n    const B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n    const C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n\n    // A <---> AGR in the spec\n    // B <---> BGG in the spec\n    // C <---> CGB in the spec\n    const AGR = A ** cs.GR;\n    const BGG = B ** cs.GG;\n    const CGB = C ** cs.GB;\n\n    // Computes intermediate variables L, M, N as per spec.\n    // To decode X, Y, Z values map L, M, N directly to them.\n    const X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n    const Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n    const Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n\n    // The following calculations are based on this document:\n    // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n    // AdobeBPC.pdf.\n    const XYZ = tempConvertMatrix1;\n    XYZ[0] = X;\n    XYZ[1] = Y;\n    XYZ[2] = Z;\n    const XYZ_Flat = tempConvertMatrix2;\n\n    normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n\n    const XYZ_Black = tempConvertMatrix1;\n    compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n\n    const XYZ_D65 = tempConvertMatrix2;\n    normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n\n    const SRGB = tempConvertMatrix1;\n    matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n\n    // Convert the values to rgb range [0, 255].\n    dest[destOffset] = sRGBTransferFunction(SRGB[0]) * 255;\n    dest[destOffset + 1] = sRGBTransferFunction(SRGB[1]) * 255;\n    dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255;\n  }\n\n  // eslint-disable-next-line no-shadow\n  class CalRGBCS extends ColorSpace {\n    constructor(whitePoint, blackPoint, gamma, matrix) {\n      super(\"CalRGB\", 3);\n\n      if (!whitePoint) {\n        throw new FormatError(\n          \"WhitePoint missing - required for color space CalRGB\"\n        );\n      }\n      blackPoint = blackPoint || new Float32Array(3);\n      gamma = gamma || new Float32Array([1, 1, 1]);\n      matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n\n      // Translate arguments to spec variables.\n      const XW = whitePoint[0];\n      const YW = whitePoint[1];\n      const ZW = whitePoint[2];\n      this.whitePoint = whitePoint;\n\n      const XB = blackPoint[0];\n      const YB = blackPoint[1];\n      const ZB = blackPoint[2];\n      this.blackPoint = blackPoint;\n\n      this.GR = gamma[0];\n      this.GG = gamma[1];\n      this.GB = gamma[2];\n\n      this.MXA = matrix[0];\n      this.MYA = matrix[1];\n      this.MZA = matrix[2];\n      this.MXB = matrix[3];\n      this.MYB = matrix[4];\n      this.MZB = matrix[5];\n      this.MXC = matrix[6];\n      this.MYC = matrix[7];\n      this.MZC = matrix[8];\n\n      // Validate variables as per spec.\n      if (XW < 0 || ZW < 0 || YW !== 1) {\n        throw new FormatError(\n          `Invalid WhitePoint components for ${this.name}` +\n            \", no fallback available\"\n        );\n      }\n\n      if (XB < 0 || YB < 0 || ZB < 0) {\n        info(\n          `Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` +\n            \"falling back to default.\"\n        );\n        this.blackPoint = new Float32Array(3);\n      }\n\n      if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n        info(\n          `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` +\n            `${this.name}, falling back to default.`\n        );\n        this.GR = this.GG = this.GB = 1;\n      }\n    }\n\n    getRgbItem(src, srcOffset, dest, destOffset) {\n      if (\n        typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"!PRODUCTION || TESTING\")\n      ) {\n        assert(\n          dest instanceof Uint8ClampedArray,\n          'CalRGBCS.getRgbItem: Unsupported \"dest\" type.'\n        );\n      }\n      convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n    }\n\n    getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      if (\n        typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"!PRODUCTION || TESTING\")\n      ) {\n        assert(\n          dest instanceof Uint8ClampedArray,\n          'CalRGBCS.getRgbBuffer: Unsupported \"dest\" type.'\n        );\n      }\n      const scale = 1 / ((1 << bits) - 1);\n\n      for (let i = 0; i < count; ++i) {\n        convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n        srcOffset += 3;\n        destOffset += 3 + alpha01;\n      }\n    }\n\n    getOutputLength(inputLength, alpha01) {\n      return ((inputLength * (3 + alpha01)) / 3) | 0;\n    }\n  }\n  return CalRGBCS;\n})();\n\n/**\n * LabCS: Based on \"PDF Reference, Sixth Ed\", p.250\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nconst LabCS = (function LabCSClosure() {\n  // Function g(x) from spec\n  function fn_g(x) {\n    let result;\n    if (x >= 6 / 29) {\n      result = x * x * x;\n    } else {\n      result = (108 / 841) * (x - 4 / 29);\n    }\n    return result;\n  }\n\n  function decode(value, high1, low2, high2) {\n    return low2 + (value * (high2 - low2)) / high1;\n  }\n\n  // If decoding is needed maxVal should be 2^bits per component - 1.\n  function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n    // XXX: Lab input is in the range of [0, 100], [amin, amax], [bmin, bmax]\n    // not the usual [0, 1]. If a command like setFillColor is used the src\n    // values will already be within the correct range. However, if we are\n    // converting an image we have to map the values to the correct range given\n    // above.\n    // Ls,as,bs <---> L*,a*,b* in the spec\n    let Ls = src[srcOffset];\n    let as = src[srcOffset + 1];\n    let bs = src[srcOffset + 2];\n    if (maxVal !== false) {\n      Ls = decode(Ls, maxVal, 0, 100);\n      as = decode(as, maxVal, cs.amin, cs.amax);\n      bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n    }\n\n    // Adjust limits of 'as' and 'bs'\n    if (as > cs.amax) {\n      as = cs.amax;\n    } else if (as < cs.amin) {\n      as = cs.amin;\n    }\n    if (bs > cs.bmax) {\n      bs = cs.bmax;\n    } else if (bs < cs.bmin) {\n      bs = cs.bmin;\n    }\n\n    // Computes intermediate variables X,Y,Z as per spec\n    const M = (Ls + 16) / 116;\n    const L = M + as / 500;\n    const N = M - bs / 200;\n\n    const X = cs.XW * fn_g(L);\n    const Y = cs.YW * fn_g(M);\n    const Z = cs.ZW * fn_g(N);\n\n    let r, g, b;\n    // Using different conversions for D50 and D65 white points,\n    // per http://www.color.org/srgb.pdf\n    if (cs.ZW < 1) {\n      // Assuming D50 (X=0.9642, Y=1.00, Z=0.8249)\n      r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n      g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n      b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n    } else {\n      // Assuming D65 (X=0.9505, Y=1.00, Z=1.0888)\n      r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n      g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n      b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n    }\n    // Convert the color values to the [0,255] range (clamping is automatic).\n    dest[destOffset] = Math.sqrt(r) * 255;\n    dest[destOffset + 1] = Math.sqrt(g) * 255;\n    dest[destOffset + 2] = Math.sqrt(b) * 255;\n  }\n\n  // eslint-disable-next-line no-shadow\n  class LabCS extends ColorSpace {\n    constructor(whitePoint, blackPoint, range) {\n      super(\"Lab\", 3);\n\n      if (!whitePoint) {\n        throw new FormatError(\n          \"WhitePoint missing - required for color space Lab\"\n        );\n      }\n      blackPoint = blackPoint || [0, 0, 0];\n      range = range || [-100, 100, -100, 100];\n\n      // Translate args to spec variables\n      this.XW = whitePoint[0];\n      this.YW = whitePoint[1];\n      this.ZW = whitePoint[2];\n      this.amin = range[0];\n      this.amax = range[1];\n      this.bmin = range[2];\n      this.bmax = range[3];\n\n      // These are here just for completeness - the spec doesn't offer any\n      // formulas that use BlackPoint in Lab\n      this.XB = blackPoint[0];\n      this.YB = blackPoint[1];\n      this.ZB = blackPoint[2];\n\n      // Validate vars as per spec\n      if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n        throw new FormatError(\n          \"Invalid WhitePoint components, no fallback available\"\n        );\n      }\n\n      if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n        info(\"Invalid BlackPoint, falling back to default\");\n        this.XB = this.YB = this.ZB = 0;\n      }\n\n      if (this.amin > this.amax || this.bmin > this.bmax) {\n        info(\"Invalid Range, falling back to defaults\");\n        this.amin = -100;\n        this.amax = 100;\n        this.bmin = -100;\n        this.bmax = 100;\n      }\n    }\n\n    getRgbItem(src, srcOffset, dest, destOffset) {\n      if (\n        typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"!PRODUCTION || TESTING\")\n      ) {\n        assert(\n          dest instanceof Uint8ClampedArray,\n          'LabCS.getRgbItem: Unsupported \"dest\" type.'\n        );\n      }\n      convertToRgb(this, src, srcOffset, false, dest, destOffset);\n    }\n\n    getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      if (\n        typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"!PRODUCTION || TESTING\")\n      ) {\n        assert(\n          dest instanceof Uint8ClampedArray,\n          'LabCS.getRgbBuffer: Unsupported \"dest\" type.'\n        );\n      }\n      const maxVal = (1 << bits) - 1;\n      for (let i = 0; i < count; i++) {\n        convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n        srcOffset += 3;\n        destOffset += 3 + alpha01;\n      }\n    }\n\n    getOutputLength(inputLength, alpha01) {\n      return ((inputLength * (3 + alpha01)) / 3) | 0;\n    }\n\n    isDefaultDecode(decodeMap, bpc) {\n      // XXX: Decoding is handled with the lab conversion because of the strange\n      // ranges that are used.\n      return true;\n    }\n\n    get usesZeroToOneRange() {\n      return shadow(this, \"usesZeroToOneRange\", false);\n    }\n  }\n  return LabCS;\n})();\n\nexport { ColorSpace };\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/* eslint no-var: error */\n\nimport { assert, info, shadow } from \"../shared/util.js\";\nimport { RefSetCache } from \"./primitives.js\";\n\nclass LocalImageCache {\n  constructor() {\n    this._nameRefMap = new Map();\n    this._imageMap = new Map();\n    this._imageCache = new RefSetCache();\n  }\n\n  getByName(name) {\n    const ref = this._nameRefMap.get(name);\n    if (ref) {\n      return this.getByRef(ref);\n    }\n    return this._imageMap.get(name) || null;\n  }\n\n  getByRef(ref) {\n    return this._imageCache.get(ref) || null;\n  }\n\n  set(name, ref = null, data) {\n    if (!name) {\n      throw new Error('LocalImageCache.set - expected \"name\" argument.');\n    }\n    if (ref) {\n      if (this._imageCache.has(ref)) {\n        return;\n      }\n      this._nameRefMap.set(name, ref);\n      this._imageCache.put(ref, data);\n      return;\n    }\n    // name\n    if (this._imageMap.has(name)) {\n      return;\n    }\n    this._imageMap.set(name, data);\n  }\n}\n\nclass GlobalImageCache {\n  static get NUM_PAGES_THRESHOLD() {\n    return shadow(this, \"NUM_PAGES_THRESHOLD\", 2);\n  }\n\n  static get MAX_IMAGES_TO_CACHE() {\n    return shadow(this, \"MAX_IMAGES_TO_CACHE\", 10);\n  }\n\n  constructor() {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        GlobalImageCache.NUM_PAGES_THRESHOLD > 1,\n        \"GlobalImageCache - invalid NUM_PAGES_THRESHOLD constant.\"\n      );\n    }\n    this._refCache = new RefSetCache();\n    this._imageCache = new RefSetCache();\n  }\n\n  shouldCache(ref, pageIndex) {\n    const pageIndexSet = this._refCache.get(ref);\n    const numPages = pageIndexSet\n      ? pageIndexSet.size + (pageIndexSet.has(pageIndex) ? 0 : 1)\n      : 1;\n\n    if (numPages < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n      return false;\n    }\n    if (\n      !this._imageCache.has(ref) &&\n      this._imageCache.size >= GlobalImageCache.MAX_IMAGES_TO_CACHE\n    ) {\n      return false;\n    }\n    return true;\n  }\n\n  addPageIndex(ref, pageIndex) {\n    let pageIndexSet = this._refCache.get(ref);\n    if (!pageIndexSet) {\n      pageIndexSet = new Set();\n      this._refCache.put(ref, pageIndexSet);\n    }\n    pageIndexSet.add(pageIndex);\n  }\n\n  getData(ref, pageIndex) {\n    if (!this._refCache.has(ref)) {\n      return null;\n    }\n    const pageIndexSet = this._refCache.get(ref);\n\n    if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n      return null;\n    }\n    if (!this._imageCache.has(ref)) {\n      return null;\n    }\n    // Ensure that we keep track of all pages containing the image reference.\n    pageIndexSet.add(pageIndex);\n\n    return this._imageCache.get(ref);\n  }\n\n  setData(ref, data) {\n    if (!this._refCache.has(ref)) {\n      throw new Error(\n        'GlobalImageCache.setData - expected \"addPageIndex\" to have been called.'\n      );\n    }\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n    if (this._imageCache.size >= GlobalImageCache.MAX_IMAGES_TO_CACHE) {\n      info(\n        \"GlobalImageCache.setData - ignoring image above MAX_IMAGES_TO_CACHE.\"\n      );\n      return;\n    }\n    this._imageCache.put(ref, data);\n  }\n\n  clear(onlyData = false) {\n    if (!onlyData) {\n      this._refCache.clear();\n    }\n    this._imageCache.clear();\n  }\n}\n\nexport { LocalImageCache, GlobalImageCache };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint no-var: error */\n\nimport {\n  AnnotationBorderStyleType,\n  AnnotationFieldFlag,\n  AnnotationFlag,\n  AnnotationReplyType,\n  AnnotationType,\n  assert,\n  isString,\n  OPS,\n  stringToBytes,\n  stringToPDFString,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport { Catalog, FileSpec, ObjectLoader } from \"./obj.js\";\nimport { Dict, isDict, isName, isRef, isStream } from \"./primitives.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { getInheritableProperty } from \"./core_utils.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { Stream } from \"./stream.js\";\n\nclass AnnotationFactory {\n  /**\n   * Create an `Annotation` object of the correct type for the given reference\n   * to an annotation dictionary. This yields a promise that is resolved when\n   * the `Annotation` object is constructed.\n   *\n   * @param {XRef} xref\n   * @param {Object} ref\n   * @param {PDFManager} pdfManager\n   * @param {Object} idFactory\n   * @returns {Promise} A promise that is resolved with an {Annotation}\n   *   instance.\n   */\n  static create(xref, ref, pdfManager, idFactory) {\n    return pdfManager.ensure(this, \"_create\", [\n      xref,\n      ref,\n      pdfManager,\n      idFactory,\n    ]);\n  }\n\n  /**\n   * @private\n   */\n  static _create(xref, ref, pdfManager, idFactory) {\n    const dict = xref.fetchIfRef(ref);\n    if (!isDict(dict)) {\n      return undefined;\n    }\n    const id = isRef(ref) ? ref.toString() : `annot_${idFactory.createObjId()}`;\n\n    // Determine the annotation's subtype.\n    let subtype = dict.get(\"Subtype\");\n    subtype = isName(subtype) ? subtype.name : null;\n\n    // Return the right annotation object based on the subtype and field type.\n    const parameters = {\n      xref,\n      dict,\n      subtype,\n      id,\n      pdfManager,\n    };\n\n    switch (subtype) {\n      case \"Link\":\n        return new LinkAnnotation(parameters);\n\n      case \"Text\":\n        return new TextAnnotation(parameters);\n\n      case \"Widget\":\n        let fieldType = getInheritableProperty({ dict, key: \"FT\" });\n        fieldType = isName(fieldType) ? fieldType.name : null;\n\n        switch (fieldType) {\n          case \"Tx\":\n            return new TextWidgetAnnotation(parameters);\n          case \"Btn\":\n            return new ButtonWidgetAnnotation(parameters);\n          case \"Ch\":\n            return new ChoiceWidgetAnnotation(parameters);\n        }\n        warn(\n          'Unimplemented widget field type \"' +\n            fieldType +\n            '\", ' +\n            \"falling back to base field type.\"\n        );\n        return new WidgetAnnotation(parameters);\n\n      case \"Popup\":\n        return new PopupAnnotation(parameters);\n\n      case \"FreeText\":\n        return new FreeTextAnnotation(parameters);\n\n      case \"Line\":\n        return new LineAnnotation(parameters);\n\n      case \"Square\":\n        return new SquareAnnotation(parameters);\n\n      case \"Circle\":\n        return new CircleAnnotation(parameters);\n\n      case \"PolyLine\":\n        return new PolylineAnnotation(parameters);\n\n      case \"Polygon\":\n        return new PolygonAnnotation(parameters);\n\n      case \"Caret\":\n        return new CaretAnnotation(parameters);\n\n      case \"Ink\":\n        return new InkAnnotation(parameters);\n\n      case \"Highlight\":\n        return new HighlightAnnotation(parameters);\n\n      case \"Underline\":\n        return new UnderlineAnnotation(parameters);\n\n      case \"Squiggly\":\n        return new SquigglyAnnotation(parameters);\n\n      case \"StrikeOut\":\n        return new StrikeOutAnnotation(parameters);\n\n      case \"Stamp\":\n        return new StampAnnotation(parameters);\n\n      case \"FileAttachment\":\n        return new FileAttachmentAnnotation(parameters);\n\n      default:\n        if (!subtype) {\n          warn(\"Annotation is missing the required /Subtype.\");\n        } else {\n          warn(\n            'Unimplemented annotation type \"' +\n              subtype +\n              '\", ' +\n              \"falling back to base annotation.\"\n          );\n        }\n        return new Annotation(parameters);\n    }\n  }\n}\n\nfunction getQuadPoints(dict, rect) {\n  if (!dict.has(\"QuadPoints\")) {\n    return null;\n  }\n\n  // The region is described as a number of quadrilaterals.\n  // Each quadrilateral must consist of eight coordinates.\n  const quadPoints = dict.getArray(\"QuadPoints\");\n  if (!Array.isArray(quadPoints) || quadPoints.length % 8 > 0) {\n    return null;\n  }\n\n  const quadPointsLists = [];\n  for (let i = 0, ii = quadPoints.length / 8; i < ii; i++) {\n    // Each series of eight numbers represents the coordinates for one\n    // quadrilateral in the order [x1, y1, x2, y2, x3, y3, x4, y4].\n    // Convert this to an array of objects with x and y coordinates.\n    quadPointsLists.push([]);\n    for (let j = i * 8, jj = i * 8 + 8; j < jj; j += 2) {\n      const x = quadPoints[j];\n      const y = quadPoints[j + 1];\n\n      // The quadpoints should be ignored if any coordinate in the array\n      // lies outside the region specified by the rectangle.\n      if (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3]) {\n        return null;\n      }\n      quadPointsLists[i].push({ x, y });\n    }\n  }\n  return quadPointsLists;\n}\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n  // 12.5.5: Algorithm: Appearance streams\n  const [minX, minY, maxX, maxY] = Util.getAxialAlignedBoundingBox(\n    bbox,\n    matrix\n  );\n  if (minX === maxX || minY === maxY) {\n    // From real-life file, bbox was [0, 0, 0, 0]. In this case,\n    // just apply the transform for rect\n    return [1, 0, 0, 1, rect[0], rect[1]];\n  }\n\n  const xRatio = (rect[2] - rect[0]) / (maxX - minX);\n  const yRatio = (rect[3] - rect[1]) / (maxY - minY);\n  return [\n    xRatio,\n    0,\n    0,\n    yRatio,\n    rect[0] - minX * xRatio,\n    rect[1] - minY * yRatio,\n  ];\n}\n\nclass Annotation {\n  constructor(params) {\n    const dict = params.dict;\n\n    this.setContents(dict.get(\"Contents\"));\n    this.setModificationDate(dict.get(\"M\"));\n    this.setFlags(dict.get(\"F\"));\n    this.setRectangle(dict.getArray(\"Rect\"));\n    this.setColor(dict.getArray(\"C\"));\n    this.setBorderStyle(dict);\n    this.setAppearance(dict);\n\n    // Expose public properties using a data object.\n    this.data = {\n      annotationFlags: this.flags,\n      borderStyle: this.borderStyle,\n      color: this.color,\n      contents: this.contents,\n      hasAppearance: !!this.appearance,\n      id: params.id,\n      modificationDate: this.modificationDate,\n      rect: this.rectangle,\n      subtype: params.subtype,\n    };\n  }\n\n  /**\n   * @private\n   */\n  _hasFlag(flags, flag) {\n    return !!(flags & flag);\n  }\n\n  /**\n   * @private\n   */\n  _isViewable(flags) {\n    return (\n      !this._hasFlag(flags, AnnotationFlag.INVISIBLE) &&\n      !this._hasFlag(flags, AnnotationFlag.HIDDEN) &&\n      !this._hasFlag(flags, AnnotationFlag.NOVIEW)\n    );\n  }\n\n  /**\n   * @private\n   */\n  _isPrintable(flags) {\n    return (\n      this._hasFlag(flags, AnnotationFlag.PRINT) &&\n      !this._hasFlag(flags, AnnotationFlag.INVISIBLE) &&\n      !this._hasFlag(flags, AnnotationFlag.HIDDEN)\n    );\n  }\n\n  /**\n   * @type {boolean}\n   */\n  get viewable() {\n    if (this.flags === 0) {\n      return true;\n    }\n    return this._isViewable(this.flags);\n  }\n\n  /**\n   * @type {boolean}\n   */\n  get printable() {\n    if (this.flags === 0) {\n      return false;\n    }\n    return this._isPrintable(this.flags);\n  }\n\n  /**\n   * Set the contents.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {string} contents - Text to display for the annotation or, if the\n   *                            type of annotation does not display text, a\n   *                            description of the annotation's contents\n   */\n  setContents(contents) {\n    this.contents = stringToPDFString(contents || \"\");\n  }\n\n  /**\n   * Set the modification date.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {string} modificationDate - PDF date string that indicates when the\n   *                                    annotation was last modified\n   */\n  setModificationDate(modificationDate) {\n    this.modificationDate = isString(modificationDate)\n      ? modificationDate\n      : null;\n  }\n\n  /**\n   * Set the flags.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {number} flags - Unsigned 32-bit integer specifying annotation\n   *                         characteristics\n   * @see {@link shared/util.js}\n   */\n  setFlags(flags) {\n    this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n  }\n\n  /**\n   * Check if a provided flag is set.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {number} flag - Hexadecimal representation for an annotation\n   *                        characteristic\n   * @returns {boolean}\n   * @see {@link shared/util.js}\n   */\n  hasFlag(flag) {\n    return this._hasFlag(this.flags, flag);\n  }\n\n  /**\n   * Set the rectangle.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {Array} rectangle - The rectangle array with exactly four entries\n   */\n  setRectangle(rectangle) {\n    if (Array.isArray(rectangle) && rectangle.length === 4) {\n      this.rectangle = Util.normalizeRect(rectangle);\n    } else {\n      this.rectangle = [0, 0, 0, 0];\n    }\n  }\n\n  /**\n   * Set the color and take care of color space conversion.\n   * The default value is black, in RGB color space.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {Array} color - The color array containing either 0\n   *                        (transparent), 1 (grayscale), 3 (RGB) or\n   *                        4 (CMYK) elements\n   */\n  setColor(color) {\n    const rgbColor = new Uint8ClampedArray(3);\n    if (!Array.isArray(color)) {\n      this.color = rgbColor;\n      return;\n    }\n\n    switch (color.length) {\n      case 0: // Transparent, which we indicate with a null value\n        this.color = null;\n        break;\n\n      case 1: // Convert grayscale to RGB\n        ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n        this.color = rgbColor;\n        break;\n\n      case 3: // Convert RGB percentages to RGB\n        ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n        this.color = rgbColor;\n        break;\n\n      case 4: // Convert CMYK to RGB\n        ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n        this.color = rgbColor;\n        break;\n\n      default:\n        this.color = rgbColor;\n        break;\n    }\n  }\n\n  /**\n   * Set the border style (as AnnotationBorderStyle object).\n   *\n   * @public\n   * @memberof Annotation\n   * @param {Dict} borderStyle - The border style dictionary\n   */\n  setBorderStyle(borderStyle) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(this.rectangle, \"setRectangle must have been called previously.\");\n    }\n\n    this.borderStyle = new AnnotationBorderStyle();\n    if (!isDict(borderStyle)) {\n      return;\n    }\n    if (borderStyle.has(\"BS\")) {\n      const dict = borderStyle.get(\"BS\");\n      const dictType = dict.get(\"Type\");\n\n      if (!dictType || isName(dictType, \"Border\")) {\n        this.borderStyle.setWidth(dict.get(\"W\"), this.rectangle);\n        this.borderStyle.setStyle(dict.get(\"S\"));\n        this.borderStyle.setDashArray(dict.getArray(\"D\"));\n      }\n    } else if (borderStyle.has(\"Border\")) {\n      const array = borderStyle.getArray(\"Border\");\n      if (Array.isArray(array) && array.length >= 3) {\n        this.borderStyle.setHorizontalCornerRadius(array[0]);\n        this.borderStyle.setVerticalCornerRadius(array[1]);\n        this.borderStyle.setWidth(array[2], this.rectangle);\n\n        if (array.length === 4) {\n          // Dash array available\n          this.borderStyle.setDashArray(array[3]);\n        }\n      }\n    } else {\n      // There are no border entries in the dictionary. According to the\n      // specification, we should draw a solid border of width 1 in that\n      // case, but Adobe Reader did not implement that part of the\n      // specification and instead draws no border at all, so we do the same.\n      // See also https://github.com/mozilla/pdf.js/issues/6179.\n      this.borderStyle.setWidth(0);\n    }\n  }\n\n  /**\n   * Set the (normal) appearance.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {Dict} dict - The annotation's data dictionary\n   */\n  setAppearance(dict) {\n    this.appearance = null;\n\n    const appearanceStates = dict.get(\"AP\");\n    if (!isDict(appearanceStates)) {\n      return;\n    }\n\n    // In case the normal appearance is a stream, then it is used directly.\n    const normalAppearanceState = appearanceStates.get(\"N\");\n    if (isStream(normalAppearanceState)) {\n      this.appearance = normalAppearanceState;\n      return;\n    }\n    if (!isDict(normalAppearanceState)) {\n      return;\n    }\n\n    // In case the normal appearance is a dictionary, the `AS` entry provides\n    // the key of the stream in this dictionary.\n    const as = dict.get(\"AS\");\n    if (!isName(as) || !normalAppearanceState.has(as.name)) {\n      return;\n    }\n    this.appearance = normalAppearanceState.get(as.name);\n  }\n\n  loadResources(keys) {\n    return this.appearance.dict.getAsync(\"Resources\").then(resources => {\n      if (!resources) {\n        return undefined;\n      }\n\n      const objectLoader = new ObjectLoader(resources, keys, resources.xref);\n      return objectLoader.load().then(function () {\n        return resources;\n      });\n    });\n  }\n\n  getOperatorList(evaluator, task, renderForms) {\n    if (!this.appearance) {\n      return Promise.resolve(new OperatorList());\n    }\n\n    const data = this.data;\n    const appearanceDict = this.appearance.dict;\n    const resourcesPromise = this.loadResources([\n      \"ExtGState\",\n      \"ColorSpace\",\n      \"Pattern\",\n      \"Shading\",\n      \"XObject\",\n      \"Font\",\n    ]);\n    const bbox = appearanceDict.getArray(\"BBox\") || [0, 0, 1, 1];\n    const matrix = appearanceDict.getArray(\"Matrix\") || [1, 0, 0, 1, 0, 0];\n    const transform = getTransformMatrix(data.rect, bbox, matrix);\n\n    return resourcesPromise.then(resources => {\n      const opList = new OperatorList();\n      opList.addOp(OPS.beginAnnotation, [data.rect, transform, matrix]);\n      return evaluator\n        .getOperatorList({\n          stream: this.appearance,\n          task,\n          resources,\n          operatorList: opList,\n        })\n        .then(() => {\n          opList.addOp(OPS.endAnnotation, []);\n          this.appearance.reset();\n          return opList;\n        });\n    });\n  }\n}\n\n/**\n * Contains all data regarding an annotation's border style.\n */\nclass AnnotationBorderStyle {\n  constructor() {\n    this.width = 1;\n    this.style = AnnotationBorderStyleType.SOLID;\n    this.dashArray = [3];\n    this.horizontalCornerRadius = 0;\n    this.verticalCornerRadius = 0;\n  }\n\n  /**\n   * Set the width.\n   *\n   * @public\n   * @memberof AnnotationBorderStyle\n   * @param {number} width - The width.\n   * @param {Array} rect - The annotation `Rect` entry.\n   */\n  setWidth(width, rect = [0, 0, 0, 0]) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        Array.isArray(rect) && rect.length === 4,\n        \"A valid `rect` parameter must be provided.\"\n      );\n    }\n\n    // Some corrupt PDF generators may provide the width as a `Name`,\n    // rather than as a number (fixes issue 10385).\n    if (isName(width)) {\n      this.width = 0; // This is consistent with the behaviour in Adobe Reader.\n      return;\n    }\n    if (Number.isInteger(width)) {\n      if (width > 0) {\n        const maxWidth = (rect[2] - rect[0]) / 2;\n        const maxHeight = (rect[3] - rect[1]) / 2;\n\n        // Ignore large `width`s, since they lead to the Annotation overflowing\n        // the size set by the `Rect` entry thus causing the `annotationLayer`\n        // to render it over the surrounding document (fixes bug1552113.pdf).\n        if (\n          maxWidth > 0 &&\n          maxHeight > 0 &&\n          (width > maxWidth || width > maxHeight)\n        ) {\n          warn(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);\n          width = 1;\n        }\n      }\n      this.width = width;\n    }\n  }\n\n  /**\n   * Set the style.\n   *\n   * @public\n   * @memberof AnnotationBorderStyle\n   * @param {Name} style - The annotation style.\n   * @see {@link shared/util.js}\n   */\n  setStyle(style) {\n    if (!isName(style)) {\n      return;\n    }\n    switch (style.name) {\n      case \"S\":\n        this.style = AnnotationBorderStyleType.SOLID;\n        break;\n\n      case \"D\":\n        this.style = AnnotationBorderStyleType.DASHED;\n        break;\n\n      case \"B\":\n        this.style = AnnotationBorderStyleType.BEVELED;\n        break;\n\n      case \"I\":\n        this.style = AnnotationBorderStyleType.INSET;\n        break;\n\n      case \"U\":\n        this.style = AnnotationBorderStyleType.UNDERLINE;\n        break;\n\n      default:\n        break;\n    }\n  }\n\n  /**\n   * Set the dash array.\n   *\n   * @public\n   * @memberof AnnotationBorderStyle\n   * @param {Array} dashArray - The dash array with at least one element\n   */\n  setDashArray(dashArray) {\n    // We validate the dash array, but we do not use it because CSS does not\n    // allow us to change spacing of dashes. For more information, visit\n    // http://www.w3.org/TR/css3-background/#the-border-style.\n    if (Array.isArray(dashArray) && dashArray.length > 0) {\n      // According to the PDF specification: the elements in `dashArray`\n      // shall be numbers that are nonnegative and not all equal to zero.\n      let isValid = true;\n      let allZeros = true;\n      for (const element of dashArray) {\n        const validNumber = +element >= 0;\n        if (!validNumber) {\n          isValid = false;\n          break;\n        } else if (element > 0) {\n          allZeros = false;\n        }\n      }\n      if (isValid && !allZeros) {\n        this.dashArray = dashArray;\n      } else {\n        this.width = 0; // Adobe behavior when the array is invalid.\n      }\n    } else if (dashArray) {\n      this.width = 0; // Adobe behavior when the array is invalid.\n    }\n  }\n\n  /**\n   * Set the horizontal corner radius (from a Border dictionary).\n   *\n   * @public\n   * @memberof AnnotationBorderStyle\n   * @param {number} radius - The horizontal corner radius.\n   */\n  setHorizontalCornerRadius(radius) {\n    if (Number.isInteger(radius)) {\n      this.horizontalCornerRadius = radius;\n    }\n  }\n\n  /**\n   * Set the vertical corner radius (from a Border dictionary).\n   *\n   * @public\n   * @memberof AnnotationBorderStyle\n   * @param {number} radius - The vertical corner radius.\n   */\n  setVerticalCornerRadius(radius) {\n    if (Number.isInteger(radius)) {\n      this.verticalCornerRadius = radius;\n    }\n  }\n}\n\nclass MarkupAnnotation extends Annotation {\n  constructor(parameters) {\n    super(parameters);\n\n    const dict = parameters.dict;\n\n    if (dict.has(\"IRT\")) {\n      const rawIRT = dict.getRaw(\"IRT\");\n      this.data.inReplyTo = isRef(rawIRT) ? rawIRT.toString() : null;\n\n      const rt = dict.get(\"RT\");\n      this.data.replyType = isName(rt) ? rt.name : AnnotationReplyType.REPLY;\n    }\n\n    if (this.data.replyType === AnnotationReplyType.GROUP) {\n      // Subordinate annotations in a group should inherit\n      // the group attributes from the primary annotation.\n      const parent = dict.get(\"IRT\");\n\n      this.data.title = stringToPDFString(parent.get(\"T\") || \"\");\n\n      this.setContents(parent.get(\"Contents\"));\n      this.data.contents = this.contents;\n\n      if (!parent.has(\"CreationDate\")) {\n        this.data.creationDate = null;\n      } else {\n        this.setCreationDate(parent.get(\"CreationDate\"));\n        this.data.creationDate = this.creationDate;\n      }\n\n      if (!parent.has(\"M\")) {\n        this.data.modificationDate = null;\n      } else {\n        this.setModificationDate(parent.get(\"M\"));\n        this.data.modificationDate = this.modificationDate;\n      }\n\n      this.data.hasPopup = parent.has(\"Popup\");\n\n      if (!parent.has(\"C\")) {\n        // Fall back to the default background color.\n        this.data.color = null;\n      } else {\n        this.setColor(parent.getArray(\"C\"));\n        this.data.color = this.color;\n      }\n    } else {\n      this.data.title = stringToPDFString(dict.get(\"T\") || \"\");\n\n      this.setCreationDate(dict.get(\"CreationDate\"));\n      this.data.creationDate = this.creationDate;\n\n      this.data.hasPopup = dict.has(\"Popup\");\n\n      if (!dict.has(\"C\")) {\n        // Fall back to the default background color.\n        this.data.color = null;\n      }\n    }\n  }\n\n  /**\n   * Set the creation date.\n   *\n   * @public\n   * @memberof MarkupAnnotation\n   * @param {string} creationDate - PDF date string that indicates when the\n   *                                annotation was originally created\n   */\n  setCreationDate(creationDate) {\n    this.creationDate = isString(creationDate) ? creationDate : null;\n  }\n}\n\nclass WidgetAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n\n    const dict = params.dict;\n    const data = this.data;\n\n    data.annotationType = AnnotationType.WIDGET;\n    data.fieldName = this._constructFieldName(dict);\n    data.fieldValue = getInheritableProperty({\n      dict,\n      key: \"V\",\n      getArray: true,\n    });\n    data.alternativeText = stringToPDFString(dict.get(\"TU\") || \"\");\n    data.defaultAppearance = getInheritableProperty({ dict, key: \"DA\" }) || \"\";\n    const fieldType = getInheritableProperty({ dict, key: \"FT\" });\n    data.fieldType = isName(fieldType) ? fieldType.name : null;\n    this.fieldResources =\n      getInheritableProperty({ dict, key: \"DR\" }) || Dict.empty;\n\n    data.fieldFlags = getInheritableProperty({ dict, key: \"Ff\" });\n    if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n      data.fieldFlags = 0;\n    }\n\n    data.readOnly = this.hasFieldFlag(AnnotationFieldFlag.READONLY);\n\n    // Hide signatures because we cannot validate them, and unset the fieldValue\n    // since it's (most likely) a `Dict` which is non-serializable and will thus\n    // cause errors when sending annotations to the main-thread (issue 10347).\n    if (data.fieldType === \"Sig\") {\n      data.fieldValue = null;\n      this.setFlags(AnnotationFlag.HIDDEN);\n    }\n  }\n\n  /**\n   * Construct the (fully qualified) field name from the (partial) field\n   * names of the field and its ancestors.\n   *\n   * @private\n   * @memberof WidgetAnnotation\n   * @param {Dict} dict - Complete widget annotation dictionary\n   * @returns {string}\n   */\n  _constructFieldName(dict) {\n    // Both the `Parent` and `T` fields are optional. While at least one of\n    // them should be provided, bad PDF generators may fail to do so.\n    if (!dict.has(\"T\") && !dict.has(\"Parent\")) {\n      warn(\"Unknown field name, falling back to empty field name.\");\n      return \"\";\n    }\n\n    // If no parent exists, the partial and fully qualified names are equal.\n    if (!dict.has(\"Parent\")) {\n      return stringToPDFString(dict.get(\"T\"));\n    }\n\n    // Form the fully qualified field name by appending the partial name to\n    // the parent's fully qualified name, separated by a period.\n    const fieldName = [];\n    if (dict.has(\"T\")) {\n      fieldName.unshift(stringToPDFString(dict.get(\"T\")));\n    }\n\n    let loopDict = dict;\n    while (loopDict.has(\"Parent\")) {\n      loopDict = loopDict.get(\"Parent\");\n      if (!isDict(loopDict)) {\n        // Even though it is not allowed according to the PDF specification,\n        // bad PDF generators may provide a `Parent` entry that is not a\n        // dictionary, but `null` for example (issue 8143).\n        break;\n      }\n\n      if (loopDict.has(\"T\")) {\n        fieldName.unshift(stringToPDFString(loopDict.get(\"T\")));\n      }\n    }\n    return fieldName.join(\".\");\n  }\n\n  /**\n   * Check if a provided field flag is set.\n   *\n   * @public\n   * @memberof WidgetAnnotation\n   * @param {number} flag - Hexadecimal representation for an annotation\n   *                        field characteristic\n   * @returns {boolean}\n   * @see {@link shared/util.js}\n   */\n  hasFieldFlag(flag) {\n    return !!(this.data.fieldFlags & flag);\n  }\n\n  getOperatorList(evaluator, task, renderForms) {\n    // Do not render form elements on the canvas when interactive forms are\n    // enabled. The display layer is responsible for rendering them instead.\n    if (renderForms) {\n      return Promise.resolve(new OperatorList());\n    }\n    return super.getOperatorList(evaluator, task, renderForms);\n  }\n}\n\nclass TextWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n\n    const dict = params.dict;\n\n    // The field value is always a string.\n    this.data.fieldValue = stringToPDFString(this.data.fieldValue || \"\");\n\n    // Determine the alignment of text in the field.\n    let alignment = getInheritableProperty({ dict, key: \"Q\" });\n    if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n      alignment = null;\n    }\n    this.data.textAlignment = alignment;\n\n    // Determine the maximum length of text in the field.\n    let maximumLength = getInheritableProperty({ dict, key: \"MaxLen\" });\n    if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n      maximumLength = null;\n    }\n    this.data.maxLen = maximumLength;\n\n    // Process field flags for the display layer.\n    this.data.multiLine = this.hasFieldFlag(AnnotationFieldFlag.MULTILINE);\n    this.data.comb =\n      this.hasFieldFlag(AnnotationFieldFlag.COMB) &&\n      !this.hasFieldFlag(AnnotationFieldFlag.MULTILINE) &&\n      !this.hasFieldFlag(AnnotationFieldFlag.PASSWORD) &&\n      !this.hasFieldFlag(AnnotationFieldFlag.FILESELECT) &&\n      this.data.maxLen !== null;\n  }\n\n  getOperatorList(evaluator, task, renderForms) {\n    if (renderForms || this.appearance) {\n      return super.getOperatorList(evaluator, task, renderForms);\n    }\n\n    const operatorList = new OperatorList();\n\n    // Even if there is an appearance stream, ignore it. This is the\n    // behaviour used by Adobe Reader.\n    if (!this.data.defaultAppearance) {\n      return Promise.resolve(operatorList);\n    }\n\n    const stream = new Stream(stringToBytes(this.data.defaultAppearance));\n    return evaluator\n      .getOperatorList({\n        stream,\n        task,\n        resources: this.fieldResources,\n        operatorList,\n      })\n      .then(function () {\n        return operatorList;\n      });\n  }\n}\n\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n\n    this.data.checkBox =\n      !this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n      !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n    this.data.radioButton =\n      this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n      !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n    this.data.pushButton = this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n\n    if (this.data.checkBox) {\n      this._processCheckBox(params);\n    } else if (this.data.radioButton) {\n      this._processRadioButton(params);\n    } else if (this.data.pushButton) {\n      this._processPushButton(params);\n    } else {\n      warn(\"Invalid field flags for button widget annotation\");\n    }\n  }\n\n  _processCheckBox(params) {\n    if (isName(this.data.fieldValue)) {\n      this.data.fieldValue = this.data.fieldValue.name;\n    }\n\n    const customAppearance = params.dict.get(\"AP\");\n    if (!isDict(customAppearance)) {\n      return;\n    }\n\n    const exportValueOptionsDict = customAppearance.get(\"D\");\n    if (!isDict(exportValueOptionsDict)) {\n      return;\n    }\n\n    const exportValues = exportValueOptionsDict.getKeys();\n    const hasCorrectOptionCount = exportValues.length === 2;\n    if (!hasCorrectOptionCount) {\n      return;\n    }\n\n    this.data.exportValue =\n      exportValues[0] === \"Off\" ? exportValues[1] : exportValues[0];\n  }\n\n  _processRadioButton(params) {\n    this.data.fieldValue = this.data.buttonValue = null;\n\n    // The parent field's `V` entry holds a `Name` object with the appearance\n    // state of whichever child field is currently in the \"on\" state.\n    const fieldParent = params.dict.get(\"Parent\");\n    if (isDict(fieldParent) && fieldParent.has(\"V\")) {\n      const fieldParentValue = fieldParent.get(\"V\");\n      if (isName(fieldParentValue)) {\n        this.data.fieldValue = fieldParentValue.name;\n      }\n    }\n\n    // The button's value corresponds to its appearance state.\n    const appearanceStates = params.dict.get(\"AP\");\n    if (!isDict(appearanceStates)) {\n      return;\n    }\n    const normalAppearanceState = appearanceStates.get(\"N\");\n    if (!isDict(normalAppearanceState)) {\n      return;\n    }\n    for (const key of normalAppearanceState.getKeys()) {\n      if (key !== \"Off\") {\n        this.data.buttonValue = key;\n        break;\n      }\n    }\n  }\n\n  _processPushButton(params) {\n    if (!params.dict.has(\"A\")) {\n      warn(\"Push buttons without action dictionaries are not supported\");\n      return;\n    }\n\n    Catalog.parseDestDictionary({\n      destDict: params.dict,\n      resultObj: this.data,\n      docBaseUrl: params.pdfManager.docBaseUrl,\n    });\n  }\n}\n\nclass ChoiceWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n\n    // Determine the options. The options array may consist of strings or\n    // arrays. If the array consists of arrays, then the first element of\n    // each array is the export value and the second element of each array is\n    // the display value. If the array consists of strings, then these\n    // represent both the export and display value. In this case, we convert\n    // it to an array of arrays as well for convenience in the display layer.\n    // Note that the specification does not state that the `Opt` field is\n    // inheritable, but in practice PDF generators do make annotations\n    // inherit the options from a parent annotation (issue 8094).\n    this.data.options = [];\n\n    const options = getInheritableProperty({ dict: params.dict, key: \"Opt\" });\n    if (Array.isArray(options)) {\n      const xref = params.xref;\n      for (let i = 0, ii = options.length; i < ii; i++) {\n        const option = xref.fetchIfRef(options[i]);\n        const isOptionArray = Array.isArray(option);\n\n        this.data.options[i] = {\n          exportValue: isOptionArray ? xref.fetchIfRef(option[0]) : option,\n          displayValue: stringToPDFString(\n            isOptionArray ? xref.fetchIfRef(option[1]) : option\n          ),\n        };\n      }\n    }\n\n    // Determine the field value. In this case, it may be a string or an\n    // array of strings. For convenience in the display layer, convert the\n    // string to an array of one string as well.\n    if (!Array.isArray(this.data.fieldValue)) {\n      this.data.fieldValue = [this.data.fieldValue];\n    }\n\n    // Process field flags for the display layer.\n    this.data.combo = this.hasFieldFlag(AnnotationFieldFlag.COMBO);\n    this.data.multiSelect = this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT);\n  }\n}\n\nclass TextAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    const DEFAULT_ICON_SIZE = 22; // px\n\n    super(parameters);\n\n    const dict = parameters.dict;\n    this.data.annotationType = AnnotationType.TEXT;\n\n    if (this.data.hasAppearance) {\n      this.data.name = \"NoIcon\";\n    } else {\n      this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n      this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n      this.data.name = dict.has(\"Name\") ? dict.get(\"Name\").name : \"Note\";\n    }\n\n    if (dict.has(\"State\")) {\n      this.data.state = dict.get(\"State\") || null;\n      this.data.stateModel = dict.get(\"StateModel\") || null;\n    } else {\n      this.data.state = null;\n      this.data.stateModel = null;\n    }\n  }\n}\n\nclass LinkAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n\n    this.data.annotationType = AnnotationType.LINK;\n\n    const quadPoints = getQuadPoints(params.dict, this.rectangle);\n    if (quadPoints) {\n      this.data.quadPoints = quadPoints;\n    }\n\n    Catalog.parseDestDictionary({\n      destDict: params.dict,\n      resultObj: this.data,\n      docBaseUrl: params.pdfManager.docBaseUrl,\n    });\n  }\n}\n\nclass PopupAnnotation extends Annotation {\n  constructor(parameters) {\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.POPUP;\n\n    let parentItem = parameters.dict.get(\"Parent\");\n    if (!parentItem) {\n      warn(\"Popup annotation has a missing or invalid parent annotation.\");\n      return;\n    }\n\n    const parentSubtype = parentItem.get(\"Subtype\");\n    this.data.parentType = isName(parentSubtype) ? parentSubtype.name : null;\n    const rawParent = parameters.dict.getRaw(\"Parent\");\n    this.data.parentId = isRef(rawParent) ? rawParent.toString() : null;\n\n    const rt = parentItem.get(\"RT\");\n    if (isName(rt, AnnotationReplyType.GROUP)) {\n      // Subordinate annotations in a group should inherit\n      // the group attributes from the primary annotation.\n      parentItem = parentItem.get(\"IRT\");\n    }\n\n    if (!parentItem.has(\"M\")) {\n      this.data.modificationDate = null;\n    } else {\n      this.setModificationDate(parentItem.get(\"M\"));\n      this.data.modificationDate = this.modificationDate;\n    }\n\n    if (!parentItem.has(\"C\")) {\n      // Fall back to the default background color.\n      this.data.color = null;\n    } else {\n      this.setColor(parentItem.getArray(\"C\"));\n      this.data.color = this.color;\n    }\n\n    // If the Popup annotation is not viewable, but the parent annotation is,\n    // that is most likely a bug. Fallback to inherit the flags from the parent\n    // annotation (this is consistent with the behaviour in Adobe Reader).\n    if (!this.viewable) {\n      const parentFlags = parentItem.get(\"F\");\n      if (this._isViewable(parentFlags)) {\n        this.setFlags(parentFlags);\n      }\n    }\n\n    this.data.title = stringToPDFString(parentItem.get(\"T\") || \"\");\n    this.data.contents = stringToPDFString(parentItem.get(\"Contents\") || \"\");\n  }\n}\n\nclass FreeTextAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.FREETEXT;\n  }\n}\n\nclass LineAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.LINE;\n\n    this.data.lineCoordinates = Util.normalizeRect(\n      parameters.dict.getArray(\"L\")\n    );\n  }\n}\n\nclass SquareAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.SQUARE;\n  }\n}\n\nclass CircleAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.CIRCLE;\n  }\n}\n\nclass PolylineAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.POLYLINE;\n\n    // The vertices array is an array of numbers representing the alternating\n    // horizontal and vertical coordinates, respectively, of each vertex.\n    // Convert this to an array of objects with x and y coordinates.\n    const rawVertices = parameters.dict.getArray(\"Vertices\");\n    this.data.vertices = [];\n    for (let i = 0, ii = rawVertices.length; i < ii; i += 2) {\n      this.data.vertices.push({\n        x: rawVertices[i],\n        y: rawVertices[i + 1],\n      });\n    }\n  }\n}\n\nclass PolygonAnnotation extends PolylineAnnotation {\n  constructor(parameters) {\n    // Polygons are specific forms of polylines, so reuse their logic.\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.POLYGON;\n  }\n}\n\nclass CaretAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.CARET;\n  }\n}\n\nclass InkAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.INK;\n\n    const xref = parameters.xref;\n    const originalInkLists = parameters.dict.getArray(\"InkList\");\n    this.data.inkLists = [];\n    for (let i = 0, ii = originalInkLists.length; i < ii; ++i) {\n      // The raw ink lists array contains arrays of numbers representing\n      // the alternating horizontal and vertical coordinates, respectively,\n      // of each vertex. Convert this to an array of objects with x and y\n      // coordinates.\n      this.data.inkLists.push([]);\n      for (let j = 0, jj = originalInkLists[i].length; j < jj; j += 2) {\n        this.data.inkLists[i].push({\n          x: xref.fetchIfRef(originalInkLists[i][j]),\n          y: xref.fetchIfRef(originalInkLists[i][j + 1]),\n        });\n      }\n    }\n  }\n}\n\nclass HighlightAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.HIGHLIGHT;\n\n    const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n    if (quadPoints) {\n      this.data.quadPoints = quadPoints;\n    }\n  }\n}\n\nclass UnderlineAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.UNDERLINE;\n\n    const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n    if (quadPoints) {\n      this.data.quadPoints = quadPoints;\n    }\n  }\n}\n\nclass SquigglyAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.SQUIGGLY;\n\n    const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n    if (quadPoints) {\n      this.data.quadPoints = quadPoints;\n    }\n  }\n}\n\nclass StrikeOutAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.STRIKEOUT;\n\n    const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n    if (quadPoints) {\n      this.data.quadPoints = quadPoints;\n    }\n  }\n}\n\nclass StampAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n\n    this.data.annotationType = AnnotationType.STAMP;\n  }\n}\n\nclass FileAttachmentAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n\n    const file = new FileSpec(parameters.dict.get(\"FS\"), parameters.xref);\n\n    this.data.annotationType = AnnotationType.FILEATTACHMENT;\n    this.data.file = file.serializable;\n  }\n}\n\nexport {\n  Annotation,\n  AnnotationBorderStyle,\n  AnnotationFactory,\n  MarkupAnnotation,\n  getQuadPoints,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, ImageKind, OPS, warn } from \"../shared/util.js\";\n\nvar QueueOptimizer = (function QueueOptimizerClosure() {\n  function addState(parentState, pattern, checkFn, iterateFn, processFn) {\n    var state = parentState;\n    for (var i = 0, ii = pattern.length - 1; i < ii; i++) {\n      var item = pattern[i];\n      state = state[item] || (state[item] = []);\n    }\n    state[pattern[pattern.length - 1]] = {\n      checkFn,\n      iterateFn,\n      processFn,\n    };\n  }\n\n  function handlePaintSolidColorImageMask(\n    iFirstSave,\n    count,\n    fnArray,\n    argsArray\n  ) {\n    // Handles special case of mainly LaTeX documents which use image masks to\n    // draw lines with the current fill style.\n    // 'count' groups of (save, transform, paintImageMaskXObject, restore)+\n    // have been found at iFirstSave.\n    var iFirstPIMXO = iFirstSave + 2;\n    for (var i = 0; i < count; i++) {\n      var arg = argsArray[iFirstPIMXO + 4 * i];\n      var imageMask = arg.length === 1 && arg[0];\n      if (\n        imageMask &&\n        imageMask.width === 1 &&\n        imageMask.height === 1 &&\n        (!imageMask.data.length ||\n          (imageMask.data.length === 1 && imageMask.data[0] === 0))\n      ) {\n        fnArray[iFirstPIMXO + 4 * i] = OPS.paintSolidColorImageMask;\n        continue;\n      }\n      break;\n    }\n    return count - i;\n  }\n\n  var InitialState = [];\n\n  // This replaces (save, transform, paintInlineImageXObject, restore)+\n  // sequences with one |paintInlineImageXObjectGroup| operation.\n  addState(\n    InitialState,\n    [OPS.save, OPS.transform, OPS.paintInlineImageXObject, OPS.restore],\n    null,\n    function iterateInlineImageGroup(context, i) {\n      var fnArray = context.fnArray;\n      var iFirstSave = context.iCurr - 3;\n      var pos = (i - iFirstSave) % 4;\n      switch (pos) {\n        case 0:\n          return fnArray[i] === OPS.save;\n        case 1:\n          return fnArray[i] === OPS.transform;\n        case 2:\n          return fnArray[i] === OPS.paintInlineImageXObject;\n        case 3:\n          return fnArray[i] === OPS.restore;\n      }\n      throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);\n    },\n    function foundInlineImageGroup(context, i) {\n      var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n      var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n      var MAX_WIDTH = 1000;\n      var IMAGE_PADDING = 1;\n\n      var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n      var curr = context.iCurr;\n      var iFirstSave = curr - 3;\n      var iFirstTransform = curr - 2;\n      var iFirstPIIXO = curr - 1;\n\n      var count = Math.min(\n        Math.floor((i - iFirstSave) / 4),\n        MAX_IMAGES_IN_INLINE_IMAGES_BLOCK\n      );\n      if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n        return i - ((i - iFirstSave) % 4);\n      }\n\n      // assuming that heights of those image is too small (~1 pixel)\n      // packing as much as possible by lines\n      var maxX = 0;\n      var map = [],\n        maxLineHeight = 0;\n      var currentX = IMAGE_PADDING,\n        currentY = IMAGE_PADDING;\n      var q;\n      for (q = 0; q < count; q++) {\n        var transform = argsArray[iFirstTransform + (q << 2)];\n        var img = argsArray[iFirstPIIXO + (q << 2)][0];\n        if (currentX + img.width > MAX_WIDTH) {\n          // starting new line\n          maxX = Math.max(maxX, currentX);\n          currentY += maxLineHeight + 2 * IMAGE_PADDING;\n          currentX = 0;\n          maxLineHeight = 0;\n        }\n        map.push({\n          transform,\n          x: currentX,\n          y: currentY,\n          w: img.width,\n          h: img.height,\n        });\n        currentX += img.width + 2 * IMAGE_PADDING;\n        maxLineHeight = Math.max(maxLineHeight, img.height);\n      }\n      var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n      var imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n      var imgData = new Uint8ClampedArray(imgWidth * imgHeight * 4);\n      var imgRowSize = imgWidth << 2;\n      for (q = 0; q < count; q++) {\n        var data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n        // Copy image by lines and extends pixels into padding.\n        var rowSize = map[q].w << 2;\n        var dataOffset = 0;\n        var offset = (map[q].x + map[q].y * imgWidth) << 2;\n        imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n        for (var k = 0, kk = map[q].h; k < kk; k++) {\n          imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n          dataOffset += rowSize;\n          offset += imgRowSize;\n        }\n        imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n        while (offset >= 0) {\n          data[offset - 4] = data[offset];\n          data[offset - 3] = data[offset + 1];\n          data[offset - 2] = data[offset + 2];\n          data[offset - 1] = data[offset + 3];\n          data[offset + rowSize] = data[offset + rowSize - 4];\n          data[offset + rowSize + 1] = data[offset + rowSize - 3];\n          data[offset + rowSize + 2] = data[offset + rowSize - 2];\n          data[offset + rowSize + 3] = data[offset + rowSize - 1];\n          offset -= imgRowSize;\n        }\n      }\n\n      // Replace queue items.\n      fnArray.splice(iFirstSave, count * 4, OPS.paintInlineImageXObjectGroup);\n      argsArray.splice(iFirstSave, count * 4, [\n        {\n          width: imgWidth,\n          height: imgHeight,\n          kind: ImageKind.RGBA_32BPP,\n          data: imgData,\n        },\n        map,\n      ]);\n\n      return iFirstSave + 1;\n    }\n  );\n\n  // This replaces (save, transform, paintImageMaskXObject, restore)+\n  // sequences with one |paintImageMaskXObjectGroup| or one\n  // |paintImageMaskXObjectRepeat| operation.\n  addState(\n    InitialState,\n    [OPS.save, OPS.transform, OPS.paintImageMaskXObject, OPS.restore],\n    null,\n    function iterateImageMaskGroup(context, i) {\n      var fnArray = context.fnArray;\n      var iFirstSave = context.iCurr - 3;\n      var pos = (i - iFirstSave) % 4;\n      switch (pos) {\n        case 0:\n          return fnArray[i] === OPS.save;\n        case 1:\n          return fnArray[i] === OPS.transform;\n        case 2:\n          return fnArray[i] === OPS.paintImageMaskXObject;\n        case 3:\n          return fnArray[i] === OPS.restore;\n      }\n      throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);\n    },\n    function foundImageMaskGroup(context, i) {\n      var MIN_IMAGES_IN_MASKS_BLOCK = 10;\n      var MAX_IMAGES_IN_MASKS_BLOCK = 100;\n      var MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n\n      var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n      var curr = context.iCurr;\n      var iFirstSave = curr - 3;\n      var iFirstTransform = curr - 2;\n      var iFirstPIMXO = curr - 1;\n\n      // At this point, i is the index of the first op past the last valid\n      // quartet.\n      var count = Math.floor((i - iFirstSave) / 4);\n      count = handlePaintSolidColorImageMask(\n        iFirstSave,\n        count,\n        fnArray,\n        argsArray\n      );\n      if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n        return i - ((i - iFirstSave) % 4);\n      }\n\n      var q;\n      var isSameImage = false;\n      var iTransform, transformArgs;\n      var firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n      if (\n        argsArray[iFirstTransform][1] === 0 &&\n        argsArray[iFirstTransform][2] === 0\n      ) {\n        isSameImage = true;\n        var firstTransformArg0 = argsArray[iFirstTransform][0];\n        var firstTransformArg3 = argsArray[iFirstTransform][3];\n        iTransform = iFirstTransform + 4;\n        var iPIMXO = iFirstPIMXO + 4;\n        for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n          transformArgs = argsArray[iTransform];\n          if (\n            argsArray[iPIMXO][0] !== firstPIMXOArg0 ||\n            transformArgs[0] !== firstTransformArg0 ||\n            transformArgs[1] !== 0 ||\n            transformArgs[2] !== 0 ||\n            transformArgs[3] !== firstTransformArg3\n          ) {\n            if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n              isSameImage = false;\n            } else {\n              count = q;\n            }\n            break; // different image or transform\n          }\n        }\n      }\n\n      if (isSameImage) {\n        count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n        var positions = new Float32Array(count * 2);\n        iTransform = iFirstTransform;\n        for (q = 0; q < count; q++, iTransform += 4) {\n          transformArgs = argsArray[iTransform];\n          positions[q << 1] = transformArgs[4];\n          positions[(q << 1) + 1] = transformArgs[5];\n        }\n\n        // Replace queue items.\n        fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectRepeat);\n        argsArray.splice(iFirstSave, count * 4, [\n          firstPIMXOArg0,\n          firstTransformArg0,\n          firstTransformArg3,\n          positions,\n        ]);\n      } else {\n        count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n        var images = [];\n        for (q = 0; q < count; q++) {\n          transformArgs = argsArray[iFirstTransform + (q << 2)];\n          var maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n          images.push({\n            data: maskParams.data,\n            width: maskParams.width,\n            height: maskParams.height,\n            transform: transformArgs,\n          });\n        }\n\n        // Replace queue items.\n        fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectGroup);\n        argsArray.splice(iFirstSave, count * 4, [images]);\n      }\n\n      return iFirstSave + 1;\n    }\n  );\n\n  // This replaces (save, transform, paintImageXObject, restore)+ sequences\n  // with one paintImageXObjectRepeat operation, if the |transform| and\n  // |paintImageXObjectRepeat| ops are appropriate.\n  addState(\n    InitialState,\n    [OPS.save, OPS.transform, OPS.paintImageXObject, OPS.restore],\n    function (context) {\n      var argsArray = context.argsArray;\n      var iFirstTransform = context.iCurr - 2;\n      return (\n        argsArray[iFirstTransform][1] === 0 &&\n        argsArray[iFirstTransform][2] === 0\n      );\n    },\n    function iterateImageGroup(context, i) {\n      var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n      var iFirstSave = context.iCurr - 3;\n      var pos = (i - iFirstSave) % 4;\n      switch (pos) {\n        case 0:\n          return fnArray[i] === OPS.save;\n        case 1:\n          if (fnArray[i] !== OPS.transform) {\n            return false;\n          }\n          var iFirstTransform = context.iCurr - 2;\n          var firstTransformArg0 = argsArray[iFirstTransform][0];\n          var firstTransformArg3 = argsArray[iFirstTransform][3];\n          if (\n            argsArray[i][0] !== firstTransformArg0 ||\n            argsArray[i][1] !== 0 ||\n            argsArray[i][2] !== 0 ||\n            argsArray[i][3] !== firstTransformArg3\n          ) {\n            return false; // transforms don't match\n          }\n          return true;\n        case 2:\n          if (fnArray[i] !== OPS.paintImageXObject) {\n            return false;\n          }\n          var iFirstPIXO = context.iCurr - 1;\n          var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n          if (argsArray[i][0] !== firstPIXOArg0) {\n            return false; // images don't match\n          }\n          return true;\n        case 3:\n          return fnArray[i] === OPS.restore;\n      }\n      throw new Error(`iterateImageGroup - invalid pos: ${pos}`);\n    },\n    function (context, i) {\n      var MIN_IMAGES_IN_BLOCK = 3;\n      var MAX_IMAGES_IN_BLOCK = 1000;\n\n      var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n      var curr = context.iCurr;\n      var iFirstSave = curr - 3;\n      var iFirstTransform = curr - 2;\n      var iFirstPIXO = curr - 1;\n      var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n      var firstTransformArg0 = argsArray[iFirstTransform][0];\n      var firstTransformArg3 = argsArray[iFirstTransform][3];\n\n      // At this point, i is the index of the first op past the last valid\n      // quartet.\n      var count = Math.min(\n        Math.floor((i - iFirstSave) / 4),\n        MAX_IMAGES_IN_BLOCK\n      );\n      if (count < MIN_IMAGES_IN_BLOCK) {\n        return i - ((i - iFirstSave) % 4);\n      }\n\n      // Extract the (x,y) positions from all of the matching transforms.\n      var positions = new Float32Array(count * 2);\n      var iTransform = iFirstTransform;\n      for (var q = 0; q < count; q++, iTransform += 4) {\n        var transformArgs = argsArray[iTransform];\n        positions[q << 1] = transformArgs[4];\n        positions[(q << 1) + 1] = transformArgs[5];\n      }\n\n      // Replace queue items.\n      var args = [\n        firstPIXOArg0,\n        firstTransformArg0,\n        firstTransformArg3,\n        positions,\n      ];\n      fnArray.splice(iFirstSave, count * 4, OPS.paintImageXObjectRepeat);\n      argsArray.splice(iFirstSave, count * 4, args);\n\n      return iFirstSave + 1;\n    }\n  );\n\n  // This replaces (beginText, setFont, setTextMatrix, showText, endText)+\n  // sequences with (beginText, setFont, (setTextMatrix, showText)+, endText)+\n  // sequences, if the font for each one is the same.\n  addState(\n    InitialState,\n    [OPS.beginText, OPS.setFont, OPS.setTextMatrix, OPS.showText, OPS.endText],\n    null,\n    function iterateShowTextGroup(context, i) {\n      var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n      var iFirstSave = context.iCurr - 4;\n      var pos = (i - iFirstSave) % 5;\n      switch (pos) {\n        case 0:\n          return fnArray[i] === OPS.beginText;\n        case 1:\n          return fnArray[i] === OPS.setFont;\n        case 2:\n          return fnArray[i] === OPS.setTextMatrix;\n        case 3:\n          if (fnArray[i] !== OPS.showText) {\n            return false;\n          }\n          var iFirstSetFont = context.iCurr - 3;\n          var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n          var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n          if (\n            argsArray[i][0] !== firstSetFontArg0 ||\n            argsArray[i][1] !== firstSetFontArg1\n          ) {\n            return false; // fonts don't match\n          }\n          return true;\n        case 4:\n          return fnArray[i] === OPS.endText;\n      }\n      throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);\n    },\n    function (context, i) {\n      var MIN_CHARS_IN_BLOCK = 3;\n      var MAX_CHARS_IN_BLOCK = 1000;\n\n      var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n      var curr = context.iCurr;\n      var iFirstBeginText = curr - 4;\n      var iFirstSetFont = curr - 3;\n      var iFirstSetTextMatrix = curr - 2;\n      var iFirstShowText = curr - 1;\n      var iFirstEndText = curr;\n      var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n      var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n      // At this point, i is the index of the first op past the last valid\n      // quintet.\n      var count = Math.min(\n        Math.floor((i - iFirstBeginText) / 5),\n        MAX_CHARS_IN_BLOCK\n      );\n      if (count < MIN_CHARS_IN_BLOCK) {\n        return i - ((i - iFirstBeginText) % 5);\n      }\n\n      // If the preceding quintet is (<something>, setFont, setTextMatrix,\n      // showText, endText), include that as well. (E.g. <something> might be\n      // |dependency|.)\n      var iFirst = iFirstBeginText;\n      if (\n        iFirstBeginText >= 4 &&\n        fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] &&\n        fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] &&\n        fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] &&\n        fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] &&\n        argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 &&\n        argsArray[iFirstBeginText - 4][1] === firstSetFontArg1\n      ) {\n        count++;\n        iFirst -= 5;\n      }\n\n      // Remove (endText, beginText, setFont) trios.\n      var iEndText = iFirst + 4;\n      for (var q = 1; q < count; q++) {\n        fnArray.splice(iEndText, 3);\n        argsArray.splice(iEndText, 3);\n        iEndText += 2;\n      }\n\n      return iEndText + 1;\n    }\n  );\n\n  // eslint-disable-next-line no-shadow\n  function QueueOptimizer(queue) {\n    this.queue = queue;\n    this.state = null;\n    this.context = {\n      iCurr: 0,\n      fnArray: queue.fnArray,\n      argsArray: queue.argsArray,\n    };\n    this.match = null;\n    this.lastProcessed = 0;\n  }\n\n  QueueOptimizer.prototype = {\n    _optimize() {\n      // Process new fnArray item(s) chunk.\n      const fnArray = this.queue.fnArray;\n      let i = this.lastProcessed,\n        ii = fnArray.length;\n      let state = this.state;\n      let match = this.match;\n      if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n        // Micro-optimization for the common case: last item is not\n        // optimizable, just skipping it.\n        this.lastProcessed = ii;\n        return;\n      }\n\n      const context = this.context;\n      while (i < ii) {\n        if (match) {\n          // Already find a block of potentially optimizable items, iterating...\n          const iterate = (0, match.iterateFn)(context, i);\n          if (iterate) {\n            i++;\n            continue;\n          }\n          // Found last items for the block, processing...\n          i = (0, match.processFn)(context, i + 1);\n          ii = fnArray.length;\n          match = null;\n          state = null;\n          if (i >= ii) {\n            break;\n          }\n        }\n        // Find the potentially optimizable items.\n        state = (state || InitialState)[fnArray[i]];\n        if (!state || Array.isArray(state)) {\n          i++;\n          continue;\n        }\n        // Found a start of the block based on addState rules.\n        context.iCurr = i;\n        i++;\n        if (state.checkFn && !(0, state.checkFn)(context)) {\n          // Check failed, continue search...\n          state = null;\n          continue;\n        }\n        match = state;\n        state = null;\n      }\n      this.state = state;\n      this.match = match;\n      this.lastProcessed = i;\n    },\n\n    push(fn, args) {\n      this.queue.fnArray.push(fn);\n      this.queue.argsArray.push(args);\n      this._optimize();\n    },\n\n    flush() {\n      while (this.match) {\n        const length = this.queue.fnArray.length;\n        this.lastProcessed = (0, this.match.processFn)(this.context, length);\n        this.match = null;\n        this.state = null;\n        // Repeat optimization until all chunks are exhausted.\n        this._optimize();\n      }\n    },\n\n    reset() {\n      this.state = null;\n      this.match = null;\n      this.lastProcessed = 0;\n    },\n  };\n  return QueueOptimizer;\n})();\n\nvar NullOptimizer = (function NullOptimizerClosure() {\n  // eslint-disable-next-line no-shadow\n  function NullOptimizer(queue) {\n    this.queue = queue;\n  }\n\n  NullOptimizer.prototype = {\n    push(fn, args) {\n      this.queue.fnArray.push(fn);\n      this.queue.argsArray.push(args);\n    },\n\n    flush() {},\n\n    reset() {},\n  };\n\n  return NullOptimizer;\n})();\n\nvar OperatorList = (function OperatorListClosure() {\n  var CHUNK_SIZE = 1000;\n  var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5; // close to chunk size\n\n  // eslint-disable-next-line no-shadow\n  function OperatorList(intent, streamSink, pageIndex) {\n    this._streamSink = streamSink;\n    this.fnArray = [];\n    this.argsArray = [];\n    if (streamSink && intent !== \"oplist\") {\n      this.optimizer = new QueueOptimizer(this);\n    } else {\n      this.optimizer = new NullOptimizer(this);\n    }\n    this.dependencies = Object.create(null);\n    this._totalLength = 0;\n    this.pageIndex = pageIndex;\n    this.intent = intent;\n    this.weight = 0;\n    this._resolved = streamSink ? null : Promise.resolve();\n  }\n\n  OperatorList.prototype = {\n    get length() {\n      return this.argsArray.length;\n    },\n\n    get ready() {\n      return this._resolved || this._streamSink.ready;\n    },\n\n    /**\n     * @type {number} The total length of the entire operator list, since\n     *                `this.length === 0` after flushing.\n     */\n    get totalLength() {\n      return this._totalLength + this.length;\n    },\n\n    addOp(fn, args) {\n      this.optimizer.push(fn, args);\n      this.weight++;\n      if (this._streamSink) {\n        if (this.weight >= CHUNK_SIZE) {\n          this.flush();\n        } else if (\n          this.weight >= CHUNK_SIZE_ABOUT &&\n          (fn === OPS.restore || fn === OPS.endText)\n        ) {\n          // heuristic to flush on boundary of restore or endText\n          this.flush();\n        }\n      }\n    },\n\n    addDependency(dependency) {\n      if (dependency in this.dependencies) {\n        return;\n      }\n      this.dependencies[dependency] = true;\n      this.addOp(OPS.dependency, [dependency]);\n    },\n\n    addDependencies(dependencies) {\n      for (var key in dependencies) {\n        this.addDependency(key);\n      }\n    },\n\n    addOpList(opList) {\n      if (!(opList instanceof OperatorList)) {\n        warn('addOpList - ignoring invalid \"opList\" parameter.');\n        return;\n      }\n      Object.assign(this.dependencies, opList.dependencies);\n      for (var i = 0, ii = opList.length; i < ii; i++) {\n        this.addOp(opList.fnArray[i], opList.argsArray[i]);\n      }\n    },\n\n    getIR() {\n      return {\n        fnArray: this.fnArray,\n        argsArray: this.argsArray,\n        length: this.length,\n      };\n    },\n\n    get _transfers() {\n      const transfers = [];\n      const { fnArray, argsArray, length } = this;\n      for (let i = 0; i < length; i++) {\n        switch (fnArray[i]) {\n          case OPS.paintInlineImageXObject:\n          case OPS.paintInlineImageXObjectGroup:\n          case OPS.paintImageMaskXObject:\n            const arg = argsArray[i][0]; // first param in imgData\n\n            if (\n              typeof PDFJSDev === \"undefined\" ||\n              PDFJSDev.test(\"!PRODUCTION || TESTING\")\n            ) {\n              assert(\n                arg.data instanceof Uint8ClampedArray,\n                'OperatorList._transfers: Unsupported \"arg.data\" type.'\n              );\n            }\n            if (!arg.cached) {\n              transfers.push(arg.data.buffer);\n            }\n            break;\n        }\n      }\n      return transfers;\n    },\n\n    flush(lastChunk = false) {\n      this.optimizer.flush();\n      const length = this.length;\n      this._totalLength += length;\n\n      this._streamSink.enqueue(\n        {\n          fnArray: this.fnArray,\n          argsArray: this.argsArray,\n          lastChunk,\n          length,\n        },\n        1,\n        this._transfers\n      );\n\n      this.dependencies = Object.create(null);\n      this.fnArray.length = 0;\n      this.argsArray.length = 0;\n      this.weight = 0;\n      this.optimizer.reset();\n    },\n  };\n\n  return OperatorList;\n})();\n\nexport { OperatorList };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AbortException,\n  assert,\n  CMapCompressionType,\n  createPromiseCapability,\n  FONT_IDENTITY_MATRIX,\n  FormatError,\n  IDENTITY_MATRIX,\n  info,\n  isArrayEqual,\n  isNum,\n  isString,\n  OPS,\n  stringToPDFString,\n  TextRenderingMode,\n  UNSUPPORTED_FEATURES,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport { CMapFactory, IdentityCMap } from \"./cmap.js\";\nimport {\n  Cmd,\n  Dict,\n  EOF,\n  isDict,\n  isName,\n  isRef,\n  isStream,\n  Name,\n  Ref,\n} from \"./primitives.js\";\nimport {\n  ErrorFont,\n  Font,\n  FontFlags,\n  getFontType,\n  IdentityToUnicodeMap,\n  ToUnicodeMap,\n} from \"./fonts.js\";\nimport {\n  getEncoding,\n  MacRomanEncoding,\n  StandardEncoding,\n  SymbolSetEncoding,\n  WinAnsiEncoding,\n  ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport { getLookupTableFactory, MissingDataException } from \"./core_utils.js\";\nimport {\n  getNormalizedUnicodes,\n  getUnicodeForGlyph,\n  reverseIfRtl,\n} from \"./unicode.js\";\nimport {\n  getSerifFonts,\n  getStdFontMap,\n  getSymbolsFonts,\n} from \"./standard_fonts.js\";\nimport { getTilingPatternIR, Pattern } from \"./pattern.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport { bidi } from \"./bidi.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./stream.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { getMetrics } from \"./metrics.js\";\nimport { isPDFFunction } from \"./function.js\";\nimport { LocalImageCache } from \"./image_utils.js\";\nimport { MurmurHash3_64 } from \"./murmurhash3.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PDFImage } from \"./image.js\";\n\nvar PartialEvaluator = (function PartialEvaluatorClosure() {\n  const DefaultPartialEvaluatorOptions = {\n    maxImageSize: -1,\n    disableFontFace: false,\n    ignoreErrors: false,\n    isEvalSupported: true,\n    fontExtraProperties: false,\n  };\n\n  // eslint-disable-next-line no-shadow\n  function PartialEvaluator({\n    xref,\n    handler,\n    pageIndex,\n    idFactory,\n    fontCache,\n    builtInCMapCache,\n    globalImageCache,\n    options = null,\n    pdfFunctionFactory,\n  }) {\n    this.xref = xref;\n    this.handler = handler;\n    this.pageIndex = pageIndex;\n    this.idFactory = idFactory;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.globalImageCache = globalImageCache;\n    this.options = options || DefaultPartialEvaluatorOptions;\n    this.pdfFunctionFactory = pdfFunctionFactory;\n    this.parsingType3Font = false;\n\n    this.fetchBuiltInCMap = async name => {\n      if (this.builtInCMapCache.has(name)) {\n        return this.builtInCMapCache.get(name);\n      }\n      const readableStream = this.handler.sendWithStream(\"FetchBuiltInCMap\", {\n        name,\n      });\n      const reader = readableStream.getReader();\n\n      const data = await new Promise(function (resolve, reject) {\n        function pump() {\n          reader.read().then(function ({ value, done }) {\n            if (done) {\n              return;\n            }\n            resolve(value);\n            pump();\n          }, reject);\n        }\n        pump();\n      });\n\n      if (data.compressionType !== CMapCompressionType.NONE) {\n        // Given the size of uncompressed CMaps, only cache compressed ones.\n        this.builtInCMapCache.set(name, data);\n      }\n      return data;\n    };\n  }\n\n  // Trying to minimize Date.now() usage and check every 100 time\n  var TIME_SLOT_DURATION_MS = 20;\n  var CHECK_TIME_EVERY = 100;\n  function TimeSlotManager() {\n    this.reset();\n  }\n  TimeSlotManager.prototype = {\n    check: function TimeSlotManager_check() {\n      if (++this.checked < CHECK_TIME_EVERY) {\n        return false;\n      }\n      this.checked = 0;\n      return this.endTime <= Date.now();\n    },\n    reset: function TimeSlotManager_reset() {\n      this.endTime = Date.now() + TIME_SLOT_DURATION_MS;\n      this.checked = 0;\n    },\n  };\n\n  // Convert PDF blend mode names to HTML5 blend mode names.\n  function normalizeBlendMode(value, parsingArray = false) {\n    if (Array.isArray(value)) {\n      // Use the first *supported* BM value in the Array (fixes issue11279.pdf).\n      for (let i = 0, ii = value.length; i < ii; i++) {\n        const maybeBM = normalizeBlendMode(value[i], /* parsingArray = */ true);\n        if (maybeBM) {\n          return maybeBM;\n        }\n      }\n      warn(`Unsupported blend mode Array: ${value}`);\n      return \"source-over\";\n    }\n\n    if (!isName(value)) {\n      if (parsingArray) {\n        return null;\n      }\n      return \"source-over\";\n    }\n    switch (value.name) {\n      case \"Normal\":\n      case \"Compatible\":\n        return \"source-over\";\n      case \"Multiply\":\n        return \"multiply\";\n      case \"Screen\":\n        return \"screen\";\n      case \"Overlay\":\n        return \"overlay\";\n      case \"Darken\":\n        return \"darken\";\n      case \"Lighten\":\n        return \"lighten\";\n      case \"ColorDodge\":\n        return \"color-dodge\";\n      case \"ColorBurn\":\n        return \"color-burn\";\n      case \"HardLight\":\n        return \"hard-light\";\n      case \"SoftLight\":\n        return \"soft-light\";\n      case \"Difference\":\n        return \"difference\";\n      case \"Exclusion\":\n        return \"exclusion\";\n      case \"Hue\":\n        return \"hue\";\n      case \"Saturation\":\n        return \"saturation\";\n      case \"Color\":\n        return \"color\";\n      case \"Luminosity\":\n        return \"luminosity\";\n    }\n    if (parsingArray) {\n      return null;\n    }\n    warn(`Unsupported blend mode: ${value.name}`);\n    return \"source-over\";\n  }\n\n  var deferred = Promise.resolve();\n\n  var TILING_PATTERN = 1,\n    SHADING_PATTERN = 2;\n\n  PartialEvaluator.prototype = {\n    clone(newOptions = DefaultPartialEvaluatorOptions) {\n      var newEvaluator = Object.create(this);\n      newEvaluator.options = newOptions;\n      return newEvaluator;\n    },\n\n    hasBlendModes: function PartialEvaluator_hasBlendModes(resources) {\n      if (!(resources instanceof Dict)) {\n        return false;\n      }\n\n      var processed = Object.create(null);\n      if (resources.objId) {\n        processed[resources.objId] = true;\n      }\n\n      var nodes = [resources],\n        xref = this.xref;\n      while (nodes.length) {\n        var node = nodes.shift();\n        // First check the current resources for blend modes.\n        var graphicStates = node.get(\"ExtGState\");\n        if (graphicStates instanceof Dict) {\n          var graphicStatesKeys = graphicStates.getKeys();\n          for (let i = 0, ii = graphicStatesKeys.length; i < ii; i++) {\n            const key = graphicStatesKeys[i];\n\n            let graphicState = graphicStates.getRaw(key);\n            if (graphicState instanceof Ref) {\n              if (processed[graphicState.toString()]) {\n                continue; // The ExtGState has already been processed.\n              }\n              try {\n                graphicState = xref.fetch(graphicState);\n              } catch (ex) {\n                if (ex instanceof MissingDataException) {\n                  throw ex;\n                }\n                if (this.options.ignoreErrors) {\n                  if (graphicState instanceof Ref) {\n                    // Avoid parsing a corrupt ExtGState more than once.\n                    processed[graphicState.toString()] = true;\n                  }\n                  // Error(s) in the ExtGState -- sending unsupported feature\n                  // notification and allow parsing/rendering to continue.\n                  this.handler.send(\"UnsupportedFeature\", {\n                    featureId: UNSUPPORTED_FEATURES.errorExtGState,\n                  });\n                  warn(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n                  continue;\n                }\n                throw ex;\n              }\n            }\n            if (!(graphicState instanceof Dict)) {\n              continue;\n            }\n            if (graphicState.objId) {\n              processed[graphicState.objId] = true;\n            }\n\n            const bm = graphicState.get(\"BM\");\n            if (bm instanceof Name) {\n              if (bm.name !== \"Normal\") {\n                return true;\n              }\n              continue;\n            }\n            if (bm !== undefined && Array.isArray(bm)) {\n              for (let j = 0, jj = bm.length; j < jj; j++) {\n                if (bm[j] instanceof Name && bm[j].name !== \"Normal\") {\n                  return true;\n                }\n              }\n            }\n          }\n        }\n        // Descend into the XObjects to look for more resources and blend modes.\n        var xObjects = node.get(\"XObject\");\n        if (!(xObjects instanceof Dict)) {\n          continue;\n        }\n        var xObjectsKeys = xObjects.getKeys();\n        for (let i = 0, ii = xObjectsKeys.length; i < ii; i++) {\n          const key = xObjectsKeys[i];\n\n          var xObject = xObjects.getRaw(key);\n          if (xObject instanceof Ref) {\n            if (processed[xObject.toString()]) {\n              // The XObject has already been processed, and by avoiding a\n              // redundant `xref.fetch` we can *significantly* reduce the load\n              // time for badly generated PDF files (fixes issue6961.pdf).\n              continue;\n            }\n            try {\n              xObject = xref.fetch(xObject);\n            } catch (ex) {\n              if (ex instanceof MissingDataException) {\n                throw ex;\n              }\n              if (this.options.ignoreErrors) {\n                if (xObject instanceof Ref) {\n                  // Avoid parsing a corrupt XObject more than once.\n                  processed[xObject.toString()] = true;\n                }\n                // Error(s) in the XObject -- sending unsupported feature\n                // notification and allow parsing/rendering to continue.\n                this.handler.send(\"UnsupportedFeature\", {\n                  featureId: UNSUPPORTED_FEATURES.errorXObject,\n                });\n                warn(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n                continue;\n              }\n              throw ex;\n            }\n          }\n          if (!isStream(xObject)) {\n            continue;\n          }\n          if (xObject.dict.objId) {\n            if (processed[xObject.dict.objId]) {\n              continue; // Stream has objId and was processed already.\n            }\n            processed[xObject.dict.objId] = true;\n          }\n          var xResources = xObject.dict.get(\"Resources\");\n          // Checking objId to detect an infinite loop.\n          if (\n            xResources instanceof Dict &&\n            (!xResources.objId || !processed[xResources.objId])\n          ) {\n            nodes.push(xResources);\n            if (xResources.objId) {\n              processed[xResources.objId] = true;\n            }\n          }\n        }\n      }\n      return false;\n    },\n\n    async buildFormXObject(\n      resources,\n      xobj,\n      smask,\n      operatorList,\n      task,\n      initialState\n    ) {\n      var dict = xobj.dict;\n      var matrix = dict.getArray(\"Matrix\");\n      var bbox = dict.getArray(\"BBox\");\n      if (Array.isArray(bbox) && bbox.length === 4) {\n        bbox = Util.normalizeRect(bbox);\n      } else {\n        bbox = null;\n      }\n      var group = dict.get(\"Group\");\n      if (group) {\n        var groupOptions = {\n          matrix,\n          bbox,\n          smask,\n          isolated: false,\n          knockout: false,\n        };\n\n        var groupSubtype = group.get(\"S\");\n        var colorSpace = null;\n        if (isName(groupSubtype, \"Transparency\")) {\n          groupOptions.isolated = group.get(\"I\") || false;\n          groupOptions.knockout = group.get(\"K\") || false;\n          if (group.has(\"CS\")) {\n            colorSpace = await this.parseColorSpace({\n              cs: group.get(\"CS\"),\n              resources,\n            });\n          }\n        }\n\n        if (smask && smask.backdrop) {\n          colorSpace = colorSpace || ColorSpace.singletons.rgb;\n          smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n        }\n\n        operatorList.addOp(OPS.beginGroup, [groupOptions]);\n      }\n\n      operatorList.addOp(OPS.paintFormXObjectBegin, [matrix, bbox]);\n\n      return this.getOperatorList({\n        stream: xobj,\n        task,\n        resources: dict.get(\"Resources\") || resources,\n        operatorList,\n        initialState,\n      }).then(function () {\n        operatorList.addOp(OPS.paintFormXObjectEnd, []);\n\n        if (group) {\n          operatorList.addOp(OPS.endGroup, [groupOptions]);\n        }\n      });\n    },\n\n    async buildPaintImageXObject({\n      resources,\n      image,\n      isInline = false,\n      operatorList,\n      cacheKey,\n      localImageCache,\n    }) {\n      var dict = image.dict;\n      const imageRef = dict.objId;\n      var w = dict.get(\"Width\", \"W\");\n      var h = dict.get(\"Height\", \"H\");\n\n      if (!(w && isNum(w)) || !(h && isNum(h))) {\n        warn(\"Image dimensions are missing, or not numbers.\");\n        return undefined;\n      }\n      var maxImageSize = this.options.maxImageSize;\n      if (maxImageSize !== -1 && w * h > maxImageSize) {\n        warn(\"Image exceeded maximum allowed size and was removed.\");\n        return undefined;\n      }\n\n      var imageMask = dict.get(\"ImageMask\", \"IM\") || false;\n      var imgData, args;\n      if (imageMask) {\n        // This depends on a tmpCanvas being filled with the\n        // current fillStyle, such that processing the pixel\n        // data can't be done here. Instead of creating a\n        // complete PDFImage, only read the information needed\n        // for later.\n\n        var width = dict.get(\"Width\", \"W\");\n        var height = dict.get(\"Height\", \"H\");\n        var bitStrideLength = (width + 7) >> 3;\n        var imgArray = image.getBytes(\n          bitStrideLength * height,\n          /* forceClamped = */ true\n        );\n        var decode = dict.getArray(\"Decode\", \"D\");\n\n        imgData = PDFImage.createMask({\n          imgArray,\n          width,\n          height,\n          imageIsFromDecodeStream: image instanceof DecodeStream,\n          inverseDecode: !!decode && decode[0] > 0,\n        });\n        imgData.cached = !!cacheKey;\n        args = [imgData];\n\n        operatorList.addOp(OPS.paintImageMaskXObject, args);\n        if (cacheKey) {\n          localImageCache.set(cacheKey, imageRef, {\n            fn: OPS.paintImageMaskXObject,\n            args,\n          });\n        }\n        return undefined;\n      }\n\n      var softMask = dict.get(\"SMask\", \"SM\") || false;\n      var mask = dict.get(\"Mask\") || false;\n\n      var SMALL_IMAGE_DIMENSIONS = 200;\n      // Inlining small images into the queue as RGB data\n      if (isInline && !softMask && !mask && w + h < SMALL_IMAGE_DIMENSIONS) {\n        const imageObj = new PDFImage({\n          xref: this.xref,\n          res: resources,\n          image,\n          isInline,\n          pdfFunctionFactory: this.pdfFunctionFactory,\n        });\n        // We force the use of RGBA_32BPP images here, because we can't handle\n        // any other kind.\n        imgData = imageObj.createImageData(/* forceRGBA = */ true);\n        operatorList.addOp(OPS.paintInlineImageXObject, [imgData]);\n        return undefined;\n      }\n\n      // If there is no imageMask, create the PDFImage and a lot\n      // of image processing can be done here.\n      let objId = `img_${this.idFactory.createObjId()}`,\n        cacheGlobally = false;\n\n      if (this.parsingType3Font) {\n        objId = `${this.idFactory.getDocId()}_type3res_${objId}`;\n      } else if (imageRef) {\n        cacheGlobally = this.globalImageCache.shouldCache(\n          imageRef,\n          this.pageIndex\n        );\n\n        if (cacheGlobally) {\n          objId = `${this.idFactory.getDocId()}_${objId}`;\n        }\n      }\n\n      // Ensure that the dependency is added before the image is decoded.\n      operatorList.addDependency(objId);\n      args = [objId, w, h];\n\n      const imgPromise = PDFImage.buildImage({\n        xref: this.xref,\n        res: resources,\n        image,\n        isInline,\n        pdfFunctionFactory: this.pdfFunctionFactory,\n      })\n        .then(imageObj => {\n          imgData = imageObj.createImageData(/* forceRGBA = */ false);\n\n          if (this.parsingType3Font) {\n            return this.handler.sendWithPromise(\n              \"commonobj\",\n              [objId, \"FontType3Res\", imgData],\n              [imgData.data.buffer]\n            );\n          } else if (cacheGlobally) {\n            this.handler.send(\n              \"commonobj\",\n              [objId, \"Image\", imgData],\n              [imgData.data.buffer]\n            );\n            return undefined;\n          }\n          this.handler.send(\n            \"obj\",\n            [objId, this.pageIndex, \"Image\", imgData],\n            [imgData.data.buffer]\n          );\n          return undefined;\n        })\n        .catch(reason => {\n          warn(\"Unable to decode image: \" + reason);\n\n          if (this.parsingType3Font) {\n            return this.handler.sendWithPromise(\"commonobj\", [\n              objId,\n              \"FontType3Res\",\n              null,\n            ]);\n          } else if (cacheGlobally) {\n            this.handler.send(\"commonobj\", [objId, \"Image\", null]);\n            return undefined;\n          }\n          this.handler.send(\"obj\", [objId, this.pageIndex, \"Image\", null]);\n          return undefined;\n        });\n\n      if (this.parsingType3Font) {\n        // In the very rare case where a Type3 image resource is being parsed,\n        // wait for the image to be both decoded *and* sent to simplify the\n        // rendering code on the main-thread (see issue10717.pdf).\n        await imgPromise;\n      }\n\n      operatorList.addOp(OPS.paintImageXObject, args);\n      if (cacheKey) {\n        localImageCache.set(cacheKey, imageRef, {\n          fn: OPS.paintImageXObject,\n          args,\n        });\n\n        if (imageRef) {\n          assert(!isInline, \"Cannot cache an inline image globally.\");\n          this.globalImageCache.addPageIndex(imageRef, this.pageIndex);\n\n          if (cacheGlobally) {\n            this.globalImageCache.setData(imageRef, {\n              objId,\n              fn: OPS.paintImageXObject,\n              args,\n            });\n          }\n        }\n      }\n      return undefined;\n    },\n\n    handleSMask: function PartialEvaluator_handleSmask(\n      smask,\n      resources,\n      operatorList,\n      task,\n      stateManager\n    ) {\n      var smaskContent = smask.get(\"G\");\n      var smaskOptions = {\n        subtype: smask.get(\"S\").name,\n        backdrop: smask.get(\"BC\"),\n      };\n\n      // The SMask might have a alpha/luminosity value transfer function --\n      // we will build a map of integer values in range 0..255 to be fast.\n      var transferObj = smask.get(\"TR\");\n      if (isPDFFunction(transferObj)) {\n        const transferFn = this.pdfFunctionFactory.create(transferObj);\n        var transferMap = new Uint8Array(256);\n        var tmp = new Float32Array(1);\n        for (var i = 0; i < 256; i++) {\n          tmp[0] = i / 255;\n          transferFn(tmp, 0, tmp, 0);\n          transferMap[i] = (tmp[0] * 255) | 0;\n        }\n        smaskOptions.transferMap = transferMap;\n      }\n\n      return this.buildFormXObject(\n        resources,\n        smaskContent,\n        smaskOptions,\n        operatorList,\n        task,\n        stateManager.state.clone()\n      );\n    },\n\n    handleTilingType(\n      fn,\n      args,\n      resources,\n      pattern,\n      patternDict,\n      operatorList,\n      task\n    ) {\n      // Create an IR of the pattern code.\n      const tilingOpList = new OperatorList();\n      // Merge the available resources, to prevent issues when the patternDict\n      // is missing some /Resources entries (fixes issue6541.pdf).\n      const resourcesArray = [patternDict.get(\"Resources\"), resources];\n      const patternResources = Dict.merge(this.xref, resourcesArray);\n\n      return this.getOperatorList({\n        stream: pattern,\n        task,\n        resources: patternResources,\n        operatorList: tilingOpList,\n      })\n        .then(function () {\n          return getTilingPatternIR(\n            {\n              fnArray: tilingOpList.fnArray,\n              argsArray: tilingOpList.argsArray,\n            },\n            patternDict,\n            args\n          );\n        })\n        .then(\n          function (tilingPatternIR) {\n            // Add the dependencies to the parent operator list so they are\n            // resolved before the sub operator list is executed synchronously.\n            operatorList.addDependencies(tilingOpList.dependencies);\n            operatorList.addOp(fn, tilingPatternIR);\n          },\n          reason => {\n            if (reason instanceof AbortException) {\n              return;\n            }\n            if (this.options.ignoreErrors) {\n              // Error(s) in the TilingPattern -- sending unsupported feature\n              // notification and allow rendering to continue.\n              this.handler.send(\"UnsupportedFeature\", {\n                featureId: UNSUPPORTED_FEATURES.errorTilingPattern,\n              });\n              warn(`handleTilingType - ignoring pattern: \"${reason}\".`);\n              return;\n            }\n            throw reason;\n          }\n        );\n    },\n\n    handleSetFont: function PartialEvaluator_handleSetFont(\n      resources,\n      fontArgs,\n      fontRef,\n      operatorList,\n      task,\n      state\n    ) {\n      // TODO(mack): Not needed?\n      var fontName;\n      if (fontArgs) {\n        fontArgs = fontArgs.slice();\n        fontName = fontArgs[0].name;\n      }\n\n      return this.loadFont(fontName, fontRef, resources)\n        .then(translated => {\n          if (!translated.font.isType3Font) {\n            return translated;\n          }\n          return translated\n            .loadType3Data(this, resources, operatorList, task)\n            .then(function () {\n              return translated;\n            })\n            .catch(reason => {\n              // Error in the font data -- sending unsupported feature\n              // notification.\n              this.handler.send(\"UnsupportedFeature\", {\n                featureId: UNSUPPORTED_FEATURES.errorFontLoadType3,\n              });\n              return new TranslatedFont({\n                loadedName: \"g_font_error\",\n                font: new ErrorFont(`Type3 font load error: ${reason}`),\n                dict: translated.font,\n                extraProperties: this.options.fontExtraProperties,\n              });\n            });\n        })\n        .then(translated => {\n          state.font = translated.font;\n          translated.send(this.handler);\n          return translated.loadedName;\n        });\n    },\n\n    handleText(chars, state) {\n      const font = state.font;\n      const glyphs = font.charsToGlyphs(chars);\n\n      if (font.data) {\n        const isAddToPathSet = !!(\n          state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG\n        );\n        if (\n          isAddToPathSet ||\n          state.fillColorSpace.name === \"Pattern\" ||\n          font.disableFontFace ||\n          this.options.disableFontFace\n        ) {\n          PartialEvaluator.buildFontPaths(font, glyphs, this.handler);\n        }\n      }\n      return glyphs;\n    },\n\n    ensureStateFont(state) {\n      if (state.font) {\n        return;\n      }\n      const reason = new FormatError(\n        \"Missing setFont (Tf) operator before text rendering operator.\"\n      );\n\n      if (this.options.ignoreErrors) {\n        // Missing setFont operator before text rendering operator -- sending\n        // unsupported feature notification and allow rendering to continue.\n        this.handler.send(\"UnsupportedFeature\", {\n          featureId: UNSUPPORTED_FEATURES.errorFontState,\n        });\n        warn(`ensureStateFont: \"${reason}\".`);\n        return;\n      }\n      throw reason;\n    },\n\n    setGState: function PartialEvaluator_setGState(\n      resources,\n      gState,\n      operatorList,\n      task,\n      stateManager\n    ) {\n      // This array holds the converted/processed state data.\n      var gStateObj = [];\n      var gStateKeys = gState.getKeys();\n      var promise = Promise.resolve();\n      for (var i = 0, ii = gStateKeys.length; i < ii; i++) {\n        const key = gStateKeys[i];\n        const value = gState.get(key);\n        switch (key) {\n          case \"Type\":\n            break;\n          case \"LW\":\n          case \"LC\":\n          case \"LJ\":\n          case \"ML\":\n          case \"D\":\n          case \"RI\":\n          case \"FL\":\n          case \"CA\":\n          case \"ca\":\n            gStateObj.push([key, value]);\n            break;\n          case \"Font\":\n            promise = promise.then(() => {\n              return this.handleSetFont(\n                resources,\n                null,\n                value[0],\n                operatorList,\n                task,\n                stateManager.state\n              ).then(function (loadedName) {\n                operatorList.addDependency(loadedName);\n                gStateObj.push([key, [loadedName, value[1]]]);\n              });\n            });\n            break;\n          case \"BM\":\n            gStateObj.push([key, normalizeBlendMode(value)]);\n            break;\n          case \"SMask\":\n            if (isName(value, \"None\")) {\n              gStateObj.push([key, false]);\n              break;\n            }\n            if (isDict(value)) {\n              promise = promise.then(() => {\n                return this.handleSMask(\n                  value,\n                  resources,\n                  operatorList,\n                  task,\n                  stateManager\n                );\n              });\n              gStateObj.push([key, true]);\n            } else {\n              warn(\"Unsupported SMask type\");\n            }\n\n            break;\n          // Only generate info log messages for the following since\n          // they are unlikely to have a big impact on the rendering.\n          case \"OP\":\n          case \"op\":\n          case \"OPM\":\n          case \"BG\":\n          case \"BG2\":\n          case \"UCR\":\n          case \"UCR2\":\n          case \"TR\":\n          case \"TR2\":\n          case \"HT\":\n          case \"SM\":\n          case \"SA\":\n          case \"AIS\":\n          case \"TK\":\n            // TODO implement these operators.\n            info(\"graphic state operator \" + key);\n            break;\n          default:\n            info(\"Unknown graphic state operator \" + key);\n            break;\n        }\n      }\n      return promise.then(function () {\n        if (gStateObj.length > 0) {\n          operatorList.addOp(OPS.setGState, [gStateObj]);\n        }\n      });\n    },\n\n    loadFont: function PartialEvaluator_loadFont(fontName, font, resources) {\n      const errorFont = () => {\n        return Promise.resolve(\n          new TranslatedFont({\n            loadedName: \"g_font_error\",\n            font: new ErrorFont(`Font \"${fontName}\" is not available.`),\n            dict: font,\n            extraProperties: this.options.fontExtraProperties,\n          })\n        );\n      };\n\n      var fontRef,\n        xref = this.xref;\n      if (font) {\n        // Loading by ref.\n        if (!isRef(font)) {\n          throw new FormatError('The \"font\" object should be a reference.');\n        }\n        fontRef = font;\n      } else {\n        // Loading by name.\n        var fontRes = resources.get(\"Font\");\n        if (fontRes) {\n          fontRef = fontRes.getRaw(fontName);\n        }\n      }\n      if (!fontRef) {\n        const partialMsg = `Font \"${\n          fontName || (font && font.toString())\n        }\" is not available`;\n\n        if (!this.options.ignoreErrors && !this.parsingType3Font) {\n          warn(`${partialMsg}.`);\n          return errorFont();\n        }\n        // Font not found -- sending unsupported feature notification.\n        this.handler.send(\"UnsupportedFeature\", {\n          featureId: UNSUPPORTED_FEATURES.errorFontMissing,\n        });\n        warn(`${partialMsg} -- attempting to fallback to a default font.`);\n\n        // Falling back to a default font to avoid completely broken rendering,\n        // but note that there're no guarantees that things will look \"correct\".\n        fontRef = PartialEvaluator.getFallbackFontDict();\n      }\n\n      if (this.fontCache.has(fontRef)) {\n        return this.fontCache.get(fontRef);\n      }\n\n      font = xref.fetchIfRef(fontRef);\n      if (!isDict(font)) {\n        return errorFont();\n      }\n\n      // We are holding `font.translated` references just for `fontRef`s that\n      // are not actually `Ref`s, but rather `Dict`s. See explanation below.\n      if (font.translated) {\n        return font.translated;\n      }\n\n      var fontCapability = createPromiseCapability();\n\n      var preEvaluatedFont = this.preEvaluateFont(font);\n      const { descriptor, hash } = preEvaluatedFont;\n\n      var fontRefIsRef = isRef(fontRef),\n        fontID;\n      if (fontRefIsRef) {\n        fontID = fontRef.toString();\n      }\n\n      if (hash && isDict(descriptor)) {\n        if (!descriptor.fontAliases) {\n          descriptor.fontAliases = Object.create(null);\n        }\n        var fontAliases = descriptor.fontAliases;\n\n        if (fontAliases[hash]) {\n          var aliasFontRef = fontAliases[hash].aliasRef;\n          if (\n            fontRefIsRef &&\n            aliasFontRef &&\n            this.fontCache.has(aliasFontRef)\n          ) {\n            this.fontCache.putAlias(fontRef, aliasFontRef);\n            return this.fontCache.get(fontRef);\n          }\n        } else {\n          fontAliases[hash] = {\n            fontID: Font.getFontID(),\n          };\n        }\n\n        if (fontRefIsRef) {\n          fontAliases[hash].aliasRef = fontRef;\n        }\n        fontID = fontAliases[hash].fontID;\n      }\n\n      // Workaround for bad PDF generators that reference fonts incorrectly,\n      // where `fontRef` is a `Dict` rather than a `Ref` (fixes bug946506.pdf).\n      // In this case we should not put the font into `this.fontCache` (which is\n      // a `RefSetCache`), since it's not meaningful to use a `Dict` as a key.\n      //\n      // However, if we don't cache the font it's not possible to remove it\n      // when `cleanup` is triggered from the API, which causes issues on\n      // subsequent rendering operations (see issue7403.pdf).\n      // A simple workaround would be to just not hold `font.translated`\n      // references in this case, but this would force us to unnecessarily load\n      // the same fonts over and over.\n      //\n      // Instead, we cheat a bit by attempting to use a modified `fontID` as a\n      // key in `this.fontCache`, to allow the font to be cached.\n      // NOTE: This works because `RefSetCache` calls `toString()` on provided\n      //       keys. Also, since `fontRef` is used when getting cached fonts,\n      //       we'll not accidentally match fonts cached with the `fontID`.\n      if (fontRefIsRef) {\n        this.fontCache.put(fontRef, fontCapability.promise);\n      } else {\n        if (!fontID) {\n          fontID = this.idFactory.createObjId();\n        }\n        this.fontCache.put(`id_${fontID}`, fontCapability.promise);\n      }\n      assert(fontID, 'The \"fontID\" must be defined.');\n\n      // Keep track of each font we translated so the caller can\n      // load them asynchronously before calling display on a page.\n      font.loadedName = `${this.idFactory.getDocId()}_f${fontID}`;\n\n      font.translated = fontCapability.promise;\n\n      // TODO move promises into translate font\n      var translatedPromise;\n      try {\n        translatedPromise = this.translateFont(preEvaluatedFont);\n      } catch (e) {\n        translatedPromise = Promise.reject(e);\n      }\n\n      translatedPromise\n        .then(translatedFont => {\n          if (translatedFont.fontType !== undefined) {\n            var xrefFontStats = xref.stats.fontTypes;\n            xrefFontStats[translatedFont.fontType] = true;\n          }\n\n          fontCapability.resolve(\n            new TranslatedFont({\n              loadedName: font.loadedName,\n              font: translatedFont,\n              dict: font,\n              extraProperties: this.options.fontExtraProperties,\n            })\n          );\n        })\n        .catch(reason => {\n          // TODO fontCapability.reject?\n          // Error in the font data -- sending unsupported feature notification.\n          this.handler.send(\"UnsupportedFeature\", {\n            featureId: UNSUPPORTED_FEATURES.errorFontTranslate,\n          });\n\n          try {\n            // error, but it's still nice to have font type reported\n            var fontFile3 = descriptor && descriptor.get(\"FontFile3\");\n            var subtype = fontFile3 && fontFile3.get(\"Subtype\");\n            var fontType = getFontType(\n              preEvaluatedFont.type,\n              subtype && subtype.name\n            );\n            var xrefFontStats = xref.stats.fontTypes;\n            xrefFontStats[fontType] = true;\n          } catch (ex) {}\n\n          fontCapability.resolve(\n            new TranslatedFont({\n              loadedName: font.loadedName,\n              font: new ErrorFont(\n                reason instanceof Error ? reason.message : reason\n              ),\n              dict: font,\n              extraProperties: this.options.fontExtraProperties,\n            })\n          );\n        });\n      return fontCapability.promise;\n    },\n\n    buildPath(operatorList, fn, args, parsingText = false) {\n      var lastIndex = operatorList.length - 1;\n      if (!args) {\n        args = [];\n      }\n      if (\n        lastIndex < 0 ||\n        operatorList.fnArray[lastIndex] !== OPS.constructPath\n      ) {\n        // Handle corrupt PDF documents that contains path operators inside of\n        // text objects, which may shift subsequent text, by enclosing the path\n        // operator in save/restore operators (fixes issue10542_reduced.pdf).\n        //\n        // Note that this will effectively disable the optimization in the\n        // `else` branch below, but given that this type of corruption is\n        // *extremely* rare that shouldn't really matter much in practice.\n        if (parsingText) {\n          warn(`Encountered path operator \"${fn}\" inside of a text object.`);\n          operatorList.addOp(OPS.save, null);\n        }\n\n        operatorList.addOp(OPS.constructPath, [[fn], args]);\n\n        if (parsingText) {\n          operatorList.addOp(OPS.restore, null);\n        }\n      } else {\n        var opArgs = operatorList.argsArray[lastIndex];\n        opArgs[0].push(fn);\n        Array.prototype.push.apply(opArgs[1], args);\n      }\n    },\n\n    parseColorSpace({ cs, resources }) {\n      return new Promise(resolve => {\n        resolve(\n          ColorSpace.parse(cs, this.xref, resources, this.pdfFunctionFactory)\n        );\n      }).catch(reason => {\n        if (reason instanceof AbortException) {\n          return null;\n        }\n        if (this.options.ignoreErrors) {\n          // Error(s) in the ColorSpace -- sending unsupported feature\n          // notification and allow rendering to continue.\n          this.handler.send(\"UnsupportedFeature\", {\n            featureId: UNSUPPORTED_FEATURES.errorColorSpace,\n          });\n          warn(`parseColorSpace - ignoring ColorSpace: \"${reason}\".`);\n          return null;\n        }\n        throw reason;\n      });\n    },\n\n    async handleColorN(operatorList, fn, args, cs, patterns, resources, task) {\n      // compile tiling patterns\n      var patternName = args[args.length - 1];\n      // SCN/scn applies patterns along with normal colors\n      var pattern;\n      if (isName(patternName) && (pattern = patterns.get(patternName.name))) {\n        var dict = isStream(pattern) ? pattern.dict : pattern;\n        var typeNum = dict.get(\"PatternType\");\n\n        if (typeNum === TILING_PATTERN) {\n          var color = cs.base ? cs.base.getRgb(args, 0) : null;\n          return this.handleTilingType(\n            fn,\n            color,\n            resources,\n            pattern,\n            dict,\n            operatorList,\n            task\n          );\n        } else if (typeNum === SHADING_PATTERN) {\n          var shading = dict.get(\"Shading\");\n          var matrix = dict.getArray(\"Matrix\");\n          pattern = Pattern.parseShading(\n            shading,\n            matrix,\n            this.xref,\n            resources,\n            this.handler,\n            this.pdfFunctionFactory\n          );\n          operatorList.addOp(fn, pattern.getIR());\n          return undefined;\n        }\n        throw new FormatError(`Unknown PatternType: ${typeNum}`);\n      }\n      throw new FormatError(`Unknown PatternName: ${patternName}`);\n    },\n\n    getOperatorList({\n      stream,\n      task,\n      resources,\n      operatorList,\n      initialState = null,\n    }) {\n      // Ensure that `resources`/`initialState` is correctly initialized,\n      // even if the provided parameter is e.g. `null`.\n      resources = resources || Dict.empty;\n      initialState = initialState || new EvalState();\n\n      if (!operatorList) {\n        throw new Error('getOperatorList: missing \"operatorList\" parameter');\n      }\n\n      var self = this;\n      var xref = this.xref;\n      let parsingText = false;\n      const localImageCache = new LocalImageCache();\n\n      var xobjs = resources.get(\"XObject\") || Dict.empty;\n      var patterns = resources.get(\"Pattern\") || Dict.empty;\n      var stateManager = new StateManager(initialState);\n      var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n      var timeSlotManager = new TimeSlotManager();\n\n      function closePendingRestoreOPS(argument) {\n        for (var i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n          operatorList.addOp(OPS.restore, []);\n        }\n      }\n\n      return new Promise(function promiseBody(resolve, reject) {\n        const next = function (promise) {\n          Promise.all([promise, operatorList.ready]).then(function () {\n            try {\n              promiseBody(resolve, reject);\n            } catch (ex) {\n              reject(ex);\n            }\n          }, reject);\n        };\n        task.ensureNotTerminated();\n        timeSlotManager.reset();\n        var stop,\n          operation = {},\n          i,\n          ii,\n          cs;\n        while (!(stop = timeSlotManager.check())) {\n          // The arguments parsed by read() are used beyond this loop, so we\n          // cannot reuse the same array on each iteration. Therefore we pass\n          // in |null| as the initial value (see the comment on\n          // EvaluatorPreprocessor_read() for why).\n          operation.args = null;\n          if (!preprocessor.read(operation)) {\n            break;\n          }\n          var args = operation.args;\n          var fn = operation.fn;\n\n          switch (fn | 0) {\n            case OPS.paintXObject:\n              // eagerly compile XForm objects\n              var name = args[0].name;\n              if (name) {\n                const localImage = localImageCache.getByName(name);\n                if (localImage) {\n                  operatorList.addOp(localImage.fn, localImage.args);\n                  args = null;\n                  continue;\n                }\n              }\n\n              next(\n                new Promise(function (resolveXObject, rejectXObject) {\n                  if (!name) {\n                    throw new FormatError(\n                      \"XObject must be referred to by name.\"\n                    );\n                  }\n\n                  let xobj = xobjs.getRaw(name);\n                  if (xobj instanceof Ref) {\n                    const localImage = localImageCache.getByRef(xobj);\n                    if (localImage) {\n                      operatorList.addOp(localImage.fn, localImage.args);\n\n                      resolveXObject();\n                      return;\n                    }\n\n                    const globalImage = self.globalImageCache.getData(\n                      xobj,\n                      self.pageIndex\n                    );\n                    if (globalImage) {\n                      operatorList.addDependency(globalImage.objId);\n                      operatorList.addOp(globalImage.fn, globalImage.args);\n\n                      resolveXObject();\n                      return;\n                    }\n\n                    xobj = xref.fetch(xobj);\n                  }\n\n                  if (!xobj) {\n                    operatorList.addOp(fn, args);\n                    resolveXObject();\n                    return;\n                  }\n                  if (!isStream(xobj)) {\n                    throw new FormatError(\"XObject should be a stream\");\n                  }\n\n                  const type = xobj.dict.get(\"Subtype\");\n                  if (!isName(type)) {\n                    throw new FormatError(\"XObject should have a Name subtype\");\n                  }\n\n                  if (type.name === \"Form\") {\n                    stateManager.save();\n                    self\n                      .buildFormXObject(\n                        resources,\n                        xobj,\n                        null,\n                        operatorList,\n                        task,\n                        stateManager.state.clone()\n                      )\n                      .then(function () {\n                        stateManager.restore();\n                        resolveXObject();\n                      }, rejectXObject);\n                    return;\n                  } else if (type.name === \"Image\") {\n                    self\n                      .buildPaintImageXObject({\n                        resources,\n                        image: xobj,\n                        operatorList,\n                        cacheKey: name,\n                        localImageCache,\n                      })\n                      .then(resolveXObject, rejectXObject);\n                    return;\n                  } else if (type.name === \"PS\") {\n                    // PostScript XObjects are unused when viewing documents.\n                    // See section 4.7.1 of Adobe's PDF reference.\n                    info(\"Ignored XObject subtype PS\");\n                  } else {\n                    throw new FormatError(\n                      `Unhandled XObject subtype ${type.name}`\n                    );\n                  }\n                  resolveXObject();\n                }).catch(function (reason) {\n                  if (reason instanceof AbortException) {\n                    return;\n                  }\n                  if (self.options.ignoreErrors) {\n                    // Error(s) in the XObject -- sending unsupported feature\n                    // notification and allow rendering to continue.\n                    self.handler.send(\"UnsupportedFeature\", {\n                      featureId: UNSUPPORTED_FEATURES.errorXObject,\n                    });\n                    warn(`getOperatorList - ignoring XObject: \"${reason}\".`);\n                    return;\n                  }\n                  throw reason;\n                })\n              );\n              return;\n            case OPS.setFont:\n              var fontSize = args[1];\n              // eagerly collect all fonts\n              next(\n                self\n                  .handleSetFont(\n                    resources,\n                    args,\n                    null,\n                    operatorList,\n                    task,\n                    stateManager.state\n                  )\n                  .then(function (loadedName) {\n                    operatorList.addDependency(loadedName);\n                    operatorList.addOp(OPS.setFont, [loadedName, fontSize]);\n                  })\n              );\n              return;\n            case OPS.beginText:\n              parsingText = true;\n              break;\n            case OPS.endText:\n              parsingText = false;\n              break;\n            case OPS.endInlineImage:\n              var cacheKey = args[0].cacheKey;\n              if (cacheKey) {\n                const localImage = localImageCache.getByName(cacheKey);\n                if (localImage) {\n                  operatorList.addOp(localImage.fn, localImage.args);\n                  args = null;\n                  continue;\n                }\n              }\n              next(\n                self.buildPaintImageXObject({\n                  resources,\n                  image: args[0],\n                  isInline: true,\n                  operatorList,\n                  cacheKey,\n                  localImageCache,\n                })\n              );\n              return;\n            case OPS.showText:\n              if (!stateManager.state.font) {\n                self.ensureStateFont(stateManager.state);\n                continue;\n              }\n              args[0] = self.handleText(args[0], stateManager.state);\n              break;\n            case OPS.showSpacedText:\n              if (!stateManager.state.font) {\n                self.ensureStateFont(stateManager.state);\n                continue;\n              }\n              var arr = args[0];\n              var combinedGlyphs = [];\n              var arrLength = arr.length;\n              var state = stateManager.state;\n              for (i = 0; i < arrLength; ++i) {\n                var arrItem = arr[i];\n                if (isString(arrItem)) {\n                  Array.prototype.push.apply(\n                    combinedGlyphs,\n                    self.handleText(arrItem, state)\n                  );\n                } else if (isNum(arrItem)) {\n                  combinedGlyphs.push(arrItem);\n                }\n              }\n              args[0] = combinedGlyphs;\n              fn = OPS.showText;\n              break;\n            case OPS.nextLineShowText:\n              if (!stateManager.state.font) {\n                self.ensureStateFont(stateManager.state);\n                continue;\n              }\n              operatorList.addOp(OPS.nextLine);\n              args[0] = self.handleText(args[0], stateManager.state);\n              fn = OPS.showText;\n              break;\n            case OPS.nextLineSetSpacingShowText:\n              if (!stateManager.state.font) {\n                self.ensureStateFont(stateManager.state);\n                continue;\n              }\n              operatorList.addOp(OPS.nextLine);\n              operatorList.addOp(OPS.setWordSpacing, [args.shift()]);\n              operatorList.addOp(OPS.setCharSpacing, [args.shift()]);\n              args[0] = self.handleText(args[0], stateManager.state);\n              fn = OPS.showText;\n              break;\n            case OPS.setTextRenderingMode:\n              stateManager.state.textRenderingMode = args[0];\n              break;\n\n            case OPS.setFillColorSpace:\n              next(\n                self\n                  .parseColorSpace({\n                    cs: args[0],\n                    resources,\n                  })\n                  .then(function (colorSpace) {\n                    if (colorSpace) {\n                      stateManager.state.fillColorSpace = colorSpace;\n                    }\n                  })\n              );\n              return;\n            case OPS.setStrokeColorSpace:\n              next(\n                self\n                  .parseColorSpace({\n                    cs: args[0],\n                    resources,\n                  })\n                  .then(function (colorSpace) {\n                    if (colorSpace) {\n                      stateManager.state.strokeColorSpace = colorSpace;\n                    }\n                  })\n              );\n              return;\n            case OPS.setFillColor:\n              cs = stateManager.state.fillColorSpace;\n              args = cs.getRgb(args, 0);\n              fn = OPS.setFillRGBColor;\n              break;\n            case OPS.setStrokeColor:\n              cs = stateManager.state.strokeColorSpace;\n              args = cs.getRgb(args, 0);\n              fn = OPS.setStrokeRGBColor;\n              break;\n            case OPS.setFillGray:\n              stateManager.state.fillColorSpace = ColorSpace.singletons.gray;\n              args = ColorSpace.singletons.gray.getRgb(args, 0);\n              fn = OPS.setFillRGBColor;\n              break;\n            case OPS.setStrokeGray:\n              stateManager.state.strokeColorSpace = ColorSpace.singletons.gray;\n              args = ColorSpace.singletons.gray.getRgb(args, 0);\n              fn = OPS.setStrokeRGBColor;\n              break;\n            case OPS.setFillCMYKColor:\n              stateManager.state.fillColorSpace = ColorSpace.singletons.cmyk;\n              args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n              fn = OPS.setFillRGBColor;\n              break;\n            case OPS.setStrokeCMYKColor:\n              stateManager.state.strokeColorSpace = ColorSpace.singletons.cmyk;\n              args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n              fn = OPS.setStrokeRGBColor;\n              break;\n            case OPS.setFillRGBColor:\n              stateManager.state.fillColorSpace = ColorSpace.singletons.rgb;\n              args = ColorSpace.singletons.rgb.getRgb(args, 0);\n              break;\n            case OPS.setStrokeRGBColor:\n              stateManager.state.strokeColorSpace = ColorSpace.singletons.rgb;\n              args = ColorSpace.singletons.rgb.getRgb(args, 0);\n              break;\n            case OPS.setFillColorN:\n              cs = stateManager.state.fillColorSpace;\n              if (cs.name === \"Pattern\") {\n                next(\n                  self.handleColorN(\n                    operatorList,\n                    OPS.setFillColorN,\n                    args,\n                    cs,\n                    patterns,\n                    resources,\n                    task\n                  )\n                );\n                return;\n              }\n              args = cs.getRgb(args, 0);\n              fn = OPS.setFillRGBColor;\n              break;\n            case OPS.setStrokeColorN:\n              cs = stateManager.state.strokeColorSpace;\n              if (cs.name === \"Pattern\") {\n                next(\n                  self.handleColorN(\n                    operatorList,\n                    OPS.setStrokeColorN,\n                    args,\n                    cs,\n                    patterns,\n                    resources,\n                    task\n                  )\n                );\n                return;\n              }\n              args = cs.getRgb(args, 0);\n              fn = OPS.setStrokeRGBColor;\n              break;\n\n            case OPS.shadingFill:\n              var shadingRes = resources.get(\"Shading\");\n              if (!shadingRes) {\n                throw new FormatError(\"No shading resource found\");\n              }\n\n              var shading = shadingRes.get(args[0].name);\n              if (!shading) {\n                throw new FormatError(\"No shading object found\");\n              }\n\n              var shadingFill = Pattern.parseShading(\n                shading,\n                null,\n                xref,\n                resources,\n                self.handler,\n                self.pdfFunctionFactory\n              );\n              var patternIR = shadingFill.getIR();\n              args = [patternIR];\n              fn = OPS.shadingFill;\n              break;\n            case OPS.setGState:\n              var dictName = args[0];\n              var extGState = resources.get(\"ExtGState\");\n\n              if (!isDict(extGState) || !extGState.has(dictName.name)) {\n                break;\n              }\n\n              var gState = extGState.get(dictName.name);\n              next(\n                self.setGState(\n                  resources,\n                  gState,\n                  operatorList,\n                  task,\n                  stateManager\n                )\n              );\n              return;\n            case OPS.moveTo:\n            case OPS.lineTo:\n            case OPS.curveTo:\n            case OPS.curveTo2:\n            case OPS.curveTo3:\n            case OPS.closePath:\n            case OPS.rectangle:\n              self.buildPath(operatorList, fn, args, parsingText);\n              continue;\n            case OPS.markPoint:\n            case OPS.markPointProps:\n            case OPS.beginMarkedContent:\n            case OPS.beginMarkedContentProps:\n            case OPS.endMarkedContent:\n            case OPS.beginCompat:\n            case OPS.endCompat:\n              // Ignore operators where the corresponding handlers are known to\n              // be no-op in CanvasGraphics (display/canvas.js). This prevents\n              // serialization errors and is also a bit more efficient.\n              // We could also try to serialize all objects in a general way,\n              // e.g. as done in https://github.com/mozilla/pdf.js/pull/6266,\n              // but doing so is meaningless without knowing the semantics.\n              continue;\n            default:\n              // Note: Ignore the operator if it has `Dict` arguments, since\n              // those are non-serializable, otherwise postMessage will throw\n              // \"An object could not be cloned.\".\n              if (args !== null) {\n                for (i = 0, ii = args.length; i < ii; i++) {\n                  if (args[i] instanceof Dict) {\n                    break;\n                  }\n                }\n                if (i < ii) {\n                  warn(\"getOperatorList - ignoring operator: \" + fn);\n                  continue;\n                }\n              }\n          }\n          operatorList.addOp(fn, args);\n        }\n        if (stop) {\n          next(deferred);\n          return;\n        }\n        // Some PDFs don't close all restores inside object/form.\n        // Closing those for them.\n        closePendingRestoreOPS();\n        resolve();\n      }).catch(reason => {\n        if (reason instanceof AbortException) {\n          return;\n        }\n        if (this.options.ignoreErrors) {\n          // Error(s) in the OperatorList -- sending unsupported feature\n          // notification and allow rendering to continue.\n          this.handler.send(\"UnsupportedFeature\", {\n            featureId: UNSUPPORTED_FEATURES.errorOperatorList,\n          });\n          warn(\n            `getOperatorList - ignoring errors during \"${task.name}\" ` +\n              `task: \"${reason}\".`\n          );\n\n          closePendingRestoreOPS();\n          return;\n        }\n        throw reason;\n      });\n    },\n\n    getTextContent({\n      stream,\n      task,\n      resources,\n      stateManager = null,\n      normalizeWhitespace = false,\n      combineTextItems = false,\n      sink,\n      seenStyles = Object.create(null),\n    }) {\n      // Ensure that `resources`/`stateManager` is correctly initialized,\n      // even if the provided parameter is e.g. `null`.\n      resources = resources || Dict.empty;\n      stateManager = stateManager || new StateManager(new TextState());\n\n      var WhitespaceRegexp = /\\s/g;\n\n      var textContent = {\n        items: [],\n        styles: Object.create(null),\n      };\n      var textContentItem = {\n        initialized: false,\n        str: [],\n        width: 0,\n        height: 0,\n        vertical: false,\n        lastAdvanceWidth: 0,\n        lastAdvanceHeight: 0,\n        textAdvanceScale: 0,\n        spaceWidth: 0,\n        fakeSpaceMin: Infinity,\n        fakeMultiSpaceMin: Infinity,\n        fakeMultiSpaceMax: -0,\n        textRunBreakAllowed: false,\n        transform: null,\n        fontName: null,\n      };\n      var SPACE_FACTOR = 0.3;\n      var MULTI_SPACE_FACTOR = 1.5;\n      var MULTI_SPACE_FACTOR_MAX = 4;\n\n      var self = this;\n      var xref = this.xref;\n\n      // The xobj is parsed iff it's needed, e.g. if there is a `DO` cmd.\n      var xobjs = null;\n      const emptyXObjectCache = new LocalImageCache();\n\n      var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n\n      var textState;\n\n      function ensureTextContentItem() {\n        if (textContentItem.initialized) {\n          return textContentItem;\n        }\n        var font = textState.font;\n        if (!(font.loadedName in seenStyles)) {\n          seenStyles[font.loadedName] = true;\n          textContent.styles[font.loadedName] = {\n            fontFamily: font.fallbackName,\n            ascent: font.ascent,\n            descent: font.descent,\n            vertical: font.vertical,\n          };\n        }\n        textContentItem.fontName = font.loadedName;\n\n        // 9.4.4 Text Space Details\n        var tsm = [\n          textState.fontSize * textState.textHScale,\n          0,\n          0,\n          textState.fontSize,\n          0,\n          textState.textRise,\n        ];\n\n        if (\n          font.isType3Font &&\n          textState.fontSize <= 1 &&\n          !isArrayEqual(textState.fontMatrix, FONT_IDENTITY_MATRIX)\n        ) {\n          const glyphHeight = font.bbox[3] - font.bbox[1];\n          if (glyphHeight > 0) {\n            tsm[3] *= glyphHeight * textState.fontMatrix[3];\n          }\n        }\n\n        var trm = Util.transform(\n          textState.ctm,\n          Util.transform(textState.textMatrix, tsm)\n        );\n        textContentItem.transform = trm;\n        if (!font.vertical) {\n          textContentItem.width = 0;\n          textContentItem.height = Math.sqrt(trm[2] * trm[2] + trm[3] * trm[3]);\n          textContentItem.vertical = false;\n        } else {\n          textContentItem.width = Math.sqrt(trm[0] * trm[0] + trm[1] * trm[1]);\n          textContentItem.height = 0;\n          textContentItem.vertical = true;\n        }\n\n        var a = textState.textLineMatrix[0];\n        var b = textState.textLineMatrix[1];\n        var scaleLineX = Math.sqrt(a * a + b * b);\n        a = textState.ctm[0];\n        b = textState.ctm[1];\n        var scaleCtmX = Math.sqrt(a * a + b * b);\n        textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n        textContentItem.lastAdvanceWidth = 0;\n        textContentItem.lastAdvanceHeight = 0;\n\n        var spaceWidth = (font.spaceWidth / 1000) * textState.fontSize;\n        if (spaceWidth) {\n          textContentItem.spaceWidth = spaceWidth;\n          textContentItem.fakeSpaceMin = spaceWidth * SPACE_FACTOR;\n          textContentItem.fakeMultiSpaceMin = spaceWidth * MULTI_SPACE_FACTOR;\n          textContentItem.fakeMultiSpaceMax =\n            spaceWidth * MULTI_SPACE_FACTOR_MAX;\n          // It's okay for monospace fonts to fake as much space as needed.\n          textContentItem.textRunBreakAllowed = !font.isMonospace;\n        } else {\n          textContentItem.spaceWidth = 0;\n          textContentItem.fakeSpaceMin = Infinity;\n          textContentItem.fakeMultiSpaceMin = Infinity;\n          textContentItem.fakeMultiSpaceMax = 0;\n          textContentItem.textRunBreakAllowed = false;\n        }\n\n        textContentItem.initialized = true;\n        return textContentItem;\n      }\n\n      function replaceWhitespace(str) {\n        // Replaces all whitespaces with standard spaces (0x20), to avoid\n        // alignment issues between the textLayer and the canvas if the text\n        // contains e.g. tabs (fixes issue6612.pdf).\n        var i = 0,\n          ii = str.length,\n          code;\n        while (i < ii && (code = str.charCodeAt(i)) >= 0x20 && code <= 0x7f) {\n          i++;\n        }\n        return i < ii ? str.replace(WhitespaceRegexp, \" \") : str;\n      }\n\n      function runBidiTransform(textChunk) {\n        var str = textChunk.str.join(\"\");\n        var bidiResult = bidi(str, -1, textChunk.vertical);\n        return {\n          str: normalizeWhitespace\n            ? replaceWhitespace(bidiResult.str)\n            : bidiResult.str,\n          dir: bidiResult.dir,\n          width: textChunk.width,\n          height: textChunk.height,\n          transform: textChunk.transform,\n          fontName: textChunk.fontName,\n        };\n      }\n\n      function handleSetFont(fontName, fontRef) {\n        return self\n          .loadFont(fontName, fontRef, resources)\n          .then(function (translated) {\n            textState.font = translated.font;\n            textState.fontMatrix =\n              translated.font.fontMatrix || FONT_IDENTITY_MATRIX;\n          });\n      }\n\n      function buildTextContentItem(chars) {\n        var font = textState.font;\n        var textChunk = ensureTextContentItem();\n        var width = 0;\n        var height = 0;\n        var glyphs = font.charsToGlyphs(chars);\n        for (var i = 0; i < glyphs.length; i++) {\n          var glyph = glyphs[i];\n          var glyphWidth = null;\n          if (font.vertical && glyph.vmetric) {\n            glyphWidth = glyph.vmetric[0];\n          } else {\n            glyphWidth = glyph.width;\n          }\n\n          var glyphUnicode = glyph.unicode;\n          var NormalizedUnicodes = getNormalizedUnicodes();\n          if (NormalizedUnicodes[glyphUnicode] !== undefined) {\n            glyphUnicode = NormalizedUnicodes[glyphUnicode];\n          }\n          glyphUnicode = reverseIfRtl(glyphUnicode);\n\n          var charSpacing = textState.charSpacing;\n          if (glyph.isSpace) {\n            var wordSpacing = textState.wordSpacing;\n            charSpacing += wordSpacing;\n            if (wordSpacing > 0) {\n              addFakeSpaces(wordSpacing, textChunk.str);\n            }\n          }\n\n          var tx = 0;\n          var ty = 0;\n          if (!font.vertical) {\n            var w0 = glyphWidth * textState.fontMatrix[0];\n            tx = (w0 * textState.fontSize + charSpacing) * textState.textHScale;\n            width += tx;\n          } else {\n            var w1 = glyphWidth * textState.fontMatrix[0];\n            ty = w1 * textState.fontSize + charSpacing;\n            height += ty;\n          }\n          textState.translateTextMatrix(tx, ty);\n\n          textChunk.str.push(glyphUnicode);\n        }\n\n        if (!font.vertical) {\n          textChunk.lastAdvanceWidth = width;\n          textChunk.width += width;\n        } else {\n          textChunk.lastAdvanceHeight = height;\n          textChunk.height += Math.abs(height);\n        }\n\n        return textChunk;\n      }\n\n      function addFakeSpaces(width, strBuf) {\n        if (width < textContentItem.fakeSpaceMin) {\n          return;\n        }\n        if (width < textContentItem.fakeMultiSpaceMin) {\n          strBuf.push(\" \");\n          return;\n        }\n        var fakeSpaces = Math.round(width / textContentItem.spaceWidth);\n        while (fakeSpaces-- > 0) {\n          strBuf.push(\" \");\n        }\n      }\n\n      function flushTextContentItem() {\n        if (!textContentItem.initialized) {\n          return;\n        }\n\n        // Do final text scaling.\n        if (!textContentItem.vertical) {\n          textContentItem.width *= textContentItem.textAdvanceScale;\n        } else {\n          textContentItem.height *= textContentItem.textAdvanceScale;\n        }\n        textContent.items.push(runBidiTransform(textContentItem));\n\n        textContentItem.initialized = false;\n        textContentItem.str.length = 0;\n      }\n\n      function enqueueChunk() {\n        const length = textContent.items.length;\n        if (length > 0) {\n          sink.enqueue(textContent, length);\n          textContent.items = [];\n          textContent.styles = Object.create(null);\n        }\n      }\n\n      var timeSlotManager = new TimeSlotManager();\n\n      return new Promise(function promiseBody(resolve, reject) {\n        const next = function (promise) {\n          enqueueChunk();\n          Promise.all([promise, sink.ready]).then(function () {\n            try {\n              promiseBody(resolve, reject);\n            } catch (ex) {\n              reject(ex);\n            }\n          }, reject);\n        };\n        task.ensureNotTerminated();\n        timeSlotManager.reset();\n        var stop,\n          operation = {},\n          args = [];\n        while (!(stop = timeSlotManager.check())) {\n          // The arguments parsed by read() are not used beyond this loop, so\n          // we can reuse the same array on every iteration, thus avoiding\n          // unnecessary allocations.\n          args.length = 0;\n          operation.args = args;\n          if (!preprocessor.read(operation)) {\n            break;\n          }\n          textState = stateManager.state;\n          var fn = operation.fn;\n          args = operation.args;\n          var advance, diff;\n\n          switch (fn | 0) {\n            case OPS.setFont:\n              // Optimization to ignore multiple identical Tf commands.\n              var fontNameArg = args[0].name,\n                fontSizeArg = args[1];\n              if (\n                textState.font &&\n                fontNameArg === textState.fontName &&\n                fontSizeArg === textState.fontSize\n              ) {\n                break;\n              }\n\n              flushTextContentItem();\n              textState.fontName = fontNameArg;\n              textState.fontSize = fontSizeArg;\n              next(handleSetFont(fontNameArg, null));\n              return;\n            case OPS.setTextRise:\n              flushTextContentItem();\n              textState.textRise = args[0];\n              break;\n            case OPS.setHScale:\n              flushTextContentItem();\n              textState.textHScale = args[0] / 100;\n              break;\n            case OPS.setLeading:\n              flushTextContentItem();\n              textState.leading = args[0];\n              break;\n            case OPS.moveText:\n              // Optimization to treat same line movement as advance\n              var isSameTextLine = !textState.font\n                ? false\n                : (textState.font.vertical ? args[0] : args[1]) === 0;\n              advance = args[0] - args[1];\n              if (\n                combineTextItems &&\n                isSameTextLine &&\n                textContentItem.initialized &&\n                advance > 0 &&\n                advance <= textContentItem.fakeMultiSpaceMax\n              ) {\n                textState.translateTextLineMatrix(args[0], args[1]);\n                textContentItem.width +=\n                  args[0] - textContentItem.lastAdvanceWidth;\n                textContentItem.height +=\n                  args[1] - textContentItem.lastAdvanceHeight;\n                diff =\n                  args[0] -\n                  textContentItem.lastAdvanceWidth -\n                  (args[1] - textContentItem.lastAdvanceHeight);\n                addFakeSpaces(diff, textContentItem.str);\n                break;\n              }\n\n              flushTextContentItem();\n              textState.translateTextLineMatrix(args[0], args[1]);\n              textState.textMatrix = textState.textLineMatrix.slice();\n              break;\n            case OPS.setLeadingMoveText:\n              flushTextContentItem();\n              textState.leading = -args[1];\n              textState.translateTextLineMatrix(args[0], args[1]);\n              textState.textMatrix = textState.textLineMatrix.slice();\n              break;\n            case OPS.nextLine:\n              flushTextContentItem();\n              textState.carriageReturn();\n              break;\n            case OPS.setTextMatrix:\n              // Optimization to treat same line movement as advance.\n              advance = textState.calcTextLineMatrixAdvance(\n                args[0],\n                args[1],\n                args[2],\n                args[3],\n                args[4],\n                args[5]\n              );\n              if (\n                combineTextItems &&\n                advance !== null &&\n                textContentItem.initialized &&\n                advance.value > 0 &&\n                advance.value <= textContentItem.fakeMultiSpaceMax\n              ) {\n                textState.translateTextLineMatrix(\n                  advance.width,\n                  advance.height\n                );\n                textContentItem.width +=\n                  advance.width - textContentItem.lastAdvanceWidth;\n                textContentItem.height +=\n                  advance.height - textContentItem.lastAdvanceHeight;\n                diff =\n                  advance.width -\n                  textContentItem.lastAdvanceWidth -\n                  (advance.height - textContentItem.lastAdvanceHeight);\n                addFakeSpaces(diff, textContentItem.str);\n                break;\n              }\n\n              flushTextContentItem();\n              textState.setTextMatrix(\n                args[0],\n                args[1],\n                args[2],\n                args[3],\n                args[4],\n                args[5]\n              );\n              textState.setTextLineMatrix(\n                args[0],\n                args[1],\n                args[2],\n                args[3],\n                args[4],\n                args[5]\n              );\n              break;\n            case OPS.setCharSpacing:\n              textState.charSpacing = args[0];\n              break;\n            case OPS.setWordSpacing:\n              textState.wordSpacing = args[0];\n              break;\n            case OPS.beginText:\n              flushTextContentItem();\n              textState.textMatrix = IDENTITY_MATRIX.slice();\n              textState.textLineMatrix = IDENTITY_MATRIX.slice();\n              break;\n            case OPS.showSpacedText:\n              if (!stateManager.state.font) {\n                self.ensureStateFont(stateManager.state);\n                continue;\n              }\n              var items = args[0];\n              var offset;\n              for (var j = 0, jj = items.length; j < jj; j++) {\n                if (typeof items[j] === \"string\") {\n                  buildTextContentItem(items[j]);\n                } else if (isNum(items[j])) {\n                  ensureTextContentItem();\n\n                  // PDF Specification 5.3.2 states:\n                  // The number is expressed in thousandths of a unit of text\n                  // space.\n                  // This amount is subtracted from the current horizontal or\n                  // vertical coordinate, depending on the writing mode.\n                  // In the default coordinate system, a positive adjustment\n                  // has the effect of moving the next glyph painted either to\n                  // the left or down by the given amount.\n                  advance = (items[j] * textState.fontSize) / 1000;\n                  var breakTextRun = false;\n                  if (textState.font.vertical) {\n                    offset = advance;\n                    textState.translateTextMatrix(0, offset);\n                    breakTextRun =\n                      textContentItem.textRunBreakAllowed &&\n                      advance > textContentItem.fakeMultiSpaceMax;\n                    if (!breakTextRun) {\n                      // Value needs to be added to height to paint down.\n                      textContentItem.height += offset;\n                    }\n                  } else {\n                    advance = -advance;\n                    offset = advance * textState.textHScale;\n                    textState.translateTextMatrix(offset, 0);\n                    breakTextRun =\n                      textContentItem.textRunBreakAllowed &&\n                      advance > textContentItem.fakeMultiSpaceMax;\n                    if (!breakTextRun) {\n                      // Value needs to be subtracted from width to paint left.\n                      textContentItem.width += offset;\n                    }\n                  }\n                  if (breakTextRun) {\n                    flushTextContentItem();\n                  } else if (advance > 0) {\n                    addFakeSpaces(advance, textContentItem.str);\n                  }\n                }\n              }\n              break;\n            case OPS.showText:\n              if (!stateManager.state.font) {\n                self.ensureStateFont(stateManager.state);\n                continue;\n              }\n              buildTextContentItem(args[0]);\n              break;\n            case OPS.nextLineShowText:\n              if (!stateManager.state.font) {\n                self.ensureStateFont(stateManager.state);\n                continue;\n              }\n              flushTextContentItem();\n              textState.carriageReturn();\n              buildTextContentItem(args[0]);\n              break;\n            case OPS.nextLineSetSpacingShowText:\n              if (!stateManager.state.font) {\n                self.ensureStateFont(stateManager.state);\n                continue;\n              }\n              flushTextContentItem();\n              textState.wordSpacing = args[0];\n              textState.charSpacing = args[1];\n              textState.carriageReturn();\n              buildTextContentItem(args[2]);\n              break;\n            case OPS.paintXObject:\n              flushTextContentItem();\n              if (!xobjs) {\n                xobjs = resources.get(\"XObject\") || Dict.empty;\n              }\n\n              var name = args[0].name;\n              if (name && emptyXObjectCache.getByName(name)) {\n                break;\n              }\n\n              next(\n                new Promise(function (resolveXObject, rejectXObject) {\n                  if (!name) {\n                    throw new FormatError(\n                      \"XObject must be referred to by name.\"\n                    );\n                  }\n\n                  let xobj = xobjs.getRaw(name);\n                  if (xobj instanceof Ref) {\n                    if (emptyXObjectCache.getByRef(xobj)) {\n                      resolveXObject();\n                      return;\n                    }\n\n                    xobj = xref.fetch(xobj);\n                  }\n\n                  if (!xobj) {\n                    resolveXObject();\n                    return;\n                  }\n                  if (!isStream(xobj)) {\n                    throw new FormatError(\"XObject should be a stream\");\n                  }\n\n                  const type = xobj.dict.get(\"Subtype\");\n                  if (!isName(type)) {\n                    throw new FormatError(\"XObject should have a Name subtype\");\n                  }\n\n                  if (type.name !== \"Form\") {\n                    emptyXObjectCache.set(name, xobj.dict.objId, true);\n\n                    resolveXObject();\n                    return;\n                  }\n\n                  // Use a new `StateManager` to prevent incorrect positioning\n                  // of textItems *after* the Form XObject, since errors in the\n                  // data can otherwise prevent `restore` operators from\n                  // executing.\n                  // NOTE: Only an issue when `options.ignoreErrors === true`.\n                  const currentState = stateManager.state.clone();\n                  const xObjStateManager = new StateManager(currentState);\n\n                  const matrix = xobj.dict.getArray(\"Matrix\");\n                  if (Array.isArray(matrix) && matrix.length === 6) {\n                    xObjStateManager.transform(matrix);\n                  }\n\n                  // Enqueue the `textContent` chunk before parsing the /Form\n                  // XObject.\n                  enqueueChunk();\n                  const sinkWrapper = {\n                    enqueueInvoked: false,\n\n                    enqueue(chunk, size) {\n                      this.enqueueInvoked = true;\n                      sink.enqueue(chunk, size);\n                    },\n\n                    get desiredSize() {\n                      return sink.desiredSize;\n                    },\n\n                    get ready() {\n                      return sink.ready;\n                    },\n                  };\n\n                  self\n                    .getTextContent({\n                      stream: xobj,\n                      task,\n                      resources: xobj.dict.get(\"Resources\") || resources,\n                      stateManager: xObjStateManager,\n                      normalizeWhitespace,\n                      combineTextItems,\n                      sink: sinkWrapper,\n                      seenStyles,\n                    })\n                    .then(function () {\n                      if (!sinkWrapper.enqueueInvoked) {\n                        emptyXObjectCache.set(name, xobj.dict.objId, true);\n                      }\n                      resolveXObject();\n                    }, rejectXObject);\n                }).catch(function (reason) {\n                  if (reason instanceof AbortException) {\n                    return;\n                  }\n                  if (self.options.ignoreErrors) {\n                    // Error(s) in the XObject -- allow text-extraction to\n                    // continue.\n                    warn(`getTextContent - ignoring XObject: \"${reason}\".`);\n                    return;\n                  }\n                  throw reason;\n                })\n              );\n              return;\n            case OPS.setGState:\n              flushTextContentItem();\n              var dictName = args[0];\n              var extGState = resources.get(\"ExtGState\");\n\n              if (!isDict(extGState) || !isName(dictName)) {\n                break;\n              }\n              var gState = extGState.get(dictName.name);\n              if (!isDict(gState)) {\n                break;\n              }\n              var gStateFont = gState.get(\"Font\");\n              if (gStateFont) {\n                textState.fontName = null;\n                textState.fontSize = gStateFont[1];\n                next(handleSetFont(null, gStateFont[0]));\n                return;\n              }\n              break;\n          } // switch\n          if (textContent.items.length >= sink.desiredSize) {\n            // Wait for ready, if we reach highWaterMark.\n            stop = true;\n            break;\n          }\n        } // while\n        if (stop) {\n          next(deferred);\n          return;\n        }\n        flushTextContentItem();\n        enqueueChunk();\n        resolve();\n      }).catch(reason => {\n        if (reason instanceof AbortException) {\n          return;\n        }\n        if (this.options.ignoreErrors) {\n          // Error(s) in the TextContent -- allow text-extraction to continue.\n          warn(\n            `getTextContent - ignoring errors during \"${task.name}\" ` +\n              `task: \"${reason}\".`\n          );\n\n          flushTextContentItem();\n          enqueueChunk();\n          return;\n        }\n        throw reason;\n      });\n    },\n\n    extractDataStructures: function PartialEvaluator_extractDataStructures(\n      dict,\n      baseDict,\n      properties\n    ) {\n      const xref = this.xref;\n      let cidToGidBytes;\n      // 9.10.2\n      var toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n      var toUnicodePromise = toUnicode\n        ? this.readToUnicode(toUnicode)\n        : Promise.resolve(undefined);\n\n      if (properties.composite) {\n        // CIDSystemInfo helps to match CID to glyphs\n        var cidSystemInfo = dict.get(\"CIDSystemInfo\");\n        if (isDict(cidSystemInfo)) {\n          properties.cidSystemInfo = {\n            registry: stringToPDFString(cidSystemInfo.get(\"Registry\")),\n            ordering: stringToPDFString(cidSystemInfo.get(\"Ordering\")),\n            supplement: cidSystemInfo.get(\"Supplement\"),\n          };\n        }\n\n        var cidToGidMap = dict.get(\"CIDToGIDMap\");\n        if (isStream(cidToGidMap)) {\n          cidToGidBytes = cidToGidMap.getBytes();\n        }\n      }\n\n      // Based on 9.6.6 of the spec the encoding can come from multiple places\n      // and depends on the font type. The base encoding and differences are\n      // read here, but the encoding that is actually used is chosen during\n      // glyph mapping in the font.\n      // TODO: Loading the built in encoding in the font would allow the\n      // differences to be merged in here not require us to hold on to it.\n      var differences = [];\n      var baseEncodingName = null;\n      var encoding;\n      if (dict.has(\"Encoding\")) {\n        encoding = dict.get(\"Encoding\");\n        if (isDict(encoding)) {\n          baseEncodingName = encoding.get(\"BaseEncoding\");\n          baseEncodingName = isName(baseEncodingName)\n            ? baseEncodingName.name\n            : null;\n          // Load the differences between the base and original\n          if (encoding.has(\"Differences\")) {\n            var diffEncoding = encoding.get(\"Differences\");\n            var index = 0;\n            for (var j = 0, jj = diffEncoding.length; j < jj; j++) {\n              var data = xref.fetchIfRef(diffEncoding[j]);\n              if (isNum(data)) {\n                index = data;\n              } else if (isName(data)) {\n                differences[index++] = data.name;\n              } else {\n                throw new FormatError(\n                  `Invalid entry in 'Differences' array: ${data}`\n                );\n              }\n            }\n          }\n        } else if (isName(encoding)) {\n          baseEncodingName = encoding.name;\n        } else {\n          throw new FormatError(\"Encoding is not a Name nor a Dict\");\n        }\n        // According to table 114 if the encoding is a named encoding it must be\n        // one of these predefined encodings.\n        if (\n          baseEncodingName !== \"MacRomanEncoding\" &&\n          baseEncodingName !== \"MacExpertEncoding\" &&\n          baseEncodingName !== \"WinAnsiEncoding\"\n        ) {\n          baseEncodingName = null;\n        }\n      }\n\n      if (baseEncodingName) {\n        properties.defaultEncoding = getEncoding(baseEncodingName).slice();\n      } else {\n        var isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n        var isNonsymbolicFont = !!(properties.flags & FontFlags.Nonsymbolic);\n        // According to \"Table 114\" in section \"9.6.6.1 General\" (under\n        // \"9.6.6 Character Encoding\") of the PDF specification, a Nonsymbolic\n        // font should use the `StandardEncoding` if no encoding is specified.\n        encoding = StandardEncoding;\n        if (properties.type === \"TrueType\" && !isNonsymbolicFont) {\n          encoding = WinAnsiEncoding;\n        }\n        // The Symbolic attribute can be misused for regular fonts\n        // Heuristic: we have to check if the font is a standard one also\n        if (isSymbolicFont) {\n          encoding = MacRomanEncoding;\n          if (!properties.file) {\n            if (/Symbol/i.test(properties.name)) {\n              encoding = SymbolSetEncoding;\n            } else if (/Dingbats|Wingdings/i.test(properties.name)) {\n              encoding = ZapfDingbatsEncoding;\n            }\n          }\n        }\n        properties.defaultEncoding = encoding;\n      }\n\n      properties.differences = differences;\n      properties.baseEncodingName = baseEncodingName;\n      properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n      properties.dict = dict;\n      return toUnicodePromise\n        .then(readToUnicode => {\n          properties.toUnicode = readToUnicode;\n          return this.buildToUnicode(properties);\n        })\n        .then(builtToUnicode => {\n          properties.toUnicode = builtToUnicode;\n          if (cidToGidBytes) {\n            properties.cidToGidMap = this.readCidToGidMap(\n              cidToGidBytes,\n              builtToUnicode\n            );\n          }\n          return properties;\n        });\n    },\n\n    /**\n     * @returns {ToUnicodeMap}\n     * @private\n     */\n    _buildSimpleFontToUnicode(properties, forceGlyphs = false) {\n      assert(!properties.composite, \"Must be a simple font.\");\n\n      const toUnicode = [];\n      const encoding = properties.defaultEncoding.slice();\n      const baseEncodingName = properties.baseEncodingName;\n      // Merge in the differences array.\n      const differences = properties.differences;\n      for (const charcode in differences) {\n        const glyphName = differences[charcode];\n        if (glyphName === \".notdef\") {\n          // Skip .notdef to prevent rendering errors, e.g. boxes appearing\n          // where there should be spaces (fixes issue5256.pdf).\n          continue;\n        }\n        encoding[charcode] = glyphName;\n      }\n      const glyphsUnicodeMap = getGlyphsUnicode();\n      for (const charcode in encoding) {\n        // a) Map the character code to a character name.\n        let glyphName = encoding[charcode];\n        // b) Look up the character name in the Adobe Glyph List (see the\n        //    Bibliography) to obtain the corresponding Unicode value.\n        if (glyphName === \"\") {\n          continue;\n        } else if (glyphsUnicodeMap[glyphName] === undefined) {\n          // (undocumented) c) Few heuristics to recognize unknown glyphs\n          // NOTE: Adobe Reader does not do this step, but OSX Preview does\n          let code = 0;\n          switch (glyphName[0]) {\n            case \"G\": // Gxx glyph\n              if (glyphName.length === 3) {\n                code = parseInt(glyphName.substring(1), 16);\n              }\n              break;\n            case \"g\": // g00xx glyph\n              if (glyphName.length === 5) {\n                code = parseInt(glyphName.substring(1), 16);\n              }\n              break;\n            case \"C\": // Cdd{d} glyph\n            case \"c\": // cdd{d} glyph\n              if (glyphName.length >= 3 && glyphName.length <= 4) {\n                const codeStr = glyphName.substring(1);\n\n                if (forceGlyphs) {\n                  code = parseInt(codeStr, 16);\n                  break;\n                }\n                // Normally the Cdd{d}/cdd{d} glyphName format will contain\n                // regular, i.e. base 10, charCodes (see issue4550.pdf)...\n                code = +codeStr;\n\n                // ... however some PDF generators violate that assumption by\n                // containing glyph, i.e. base 16, codes instead.\n                // In that case we need to re-parse the *entire* encoding to\n                // prevent broken text-selection (fixes issue9655_reduced.pdf).\n                if (\n                  Number.isNaN(code) &&\n                  Number.isInteger(parseInt(codeStr, 16))\n                ) {\n                  return this._buildSimpleFontToUnicode(\n                    properties,\n                    /* forceGlyphs */ true\n                  );\n                }\n              }\n              break;\n            default:\n              // 'uniXXXX'/'uXXXX{XX}' glyphs\n              const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n              if (unicode !== -1) {\n                code = unicode;\n              }\n          }\n          if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {\n            // If `baseEncodingName` is one the predefined encodings, and `code`\n            // equals `charcode`, using the glyph defined in the baseEncoding\n            // seems to yield a better `toUnicode` mapping (fixes issue 5070).\n            if (baseEncodingName && code === +charcode) {\n              const baseEncoding = getEncoding(baseEncodingName);\n              if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n                toUnicode[charcode] = String.fromCharCode(\n                  glyphsUnicodeMap[glyphName]\n                );\n                continue;\n              }\n            }\n            toUnicode[charcode] = String.fromCodePoint(code);\n          }\n          continue;\n        }\n        toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n      }\n      return new ToUnicodeMap(toUnicode);\n    },\n\n    /**\n     * Builds a char code to unicode map based on section 9.10 of the spec.\n     * @param {Object} properties Font properties object.\n     * @returns {Promise} A Promise that is resolved with a\n     *   {ToUnicodeMap|IdentityToUnicodeMap} object.\n     */\n    buildToUnicode(properties) {\n      properties.hasIncludedToUnicodeMap =\n        !!properties.toUnicode && properties.toUnicode.length > 0;\n\n      // Section 9.10.2 Mapping Character Codes to Unicode Values\n      if (properties.hasIncludedToUnicodeMap) {\n        // Some fonts contain incomplete ToUnicode data, causing issues with\n        // text-extraction. For simple fonts, containing encoding information,\n        // use a fallback ToUnicode map to improve this (fixes issue8229.pdf).\n        if (!properties.composite && properties.hasEncoding) {\n          properties.fallbackToUnicode = this._buildSimpleFontToUnicode(\n            properties\n          );\n        }\n\n        return Promise.resolve(properties.toUnicode);\n      }\n\n      // According to the spec if the font is a simple font we should only map\n      // to unicode if the base encoding is MacRoman, MacExpert, or WinAnsi or\n      // the differences array only contains adobe standard or symbol set names,\n      // in pratice it seems better to always try to create a toUnicode map\n      // based of the default encoding.\n      if (!properties.composite /* is simple font */) {\n        return Promise.resolve(this._buildSimpleFontToUnicode(properties));\n      }\n\n      // If the font is a composite font that uses one of the predefined CMaps\n      // listed in Table 118 (except Identity–H and Identity–V) or whose\n      // descendant CIDFont uses the Adobe-GB1, Adobe-CNS1, Adobe-Japan1, or\n      // Adobe-Korea1 character collection:\n      if (\n        properties.composite &&\n        ((properties.cMap.builtInCMap &&\n          !(properties.cMap instanceof IdentityCMap)) ||\n          (properties.cidSystemInfo.registry === \"Adobe\" &&\n            (properties.cidSystemInfo.ordering === \"GB1\" ||\n              properties.cidSystemInfo.ordering === \"CNS1\" ||\n              properties.cidSystemInfo.ordering === \"Japan1\" ||\n              properties.cidSystemInfo.ordering === \"Korea1\")))\n      ) {\n        // Then:\n        // a) Map the character code to a character identifier (CID) according\n        // to the font’s CMap.\n        // b) Obtain the registry and ordering of the character collection used\n        // by the font’s CMap (for example, Adobe and Japan1) from its\n        // CIDSystemInfo dictionary.\n        const registry = properties.cidSystemInfo.registry;\n        const ordering = properties.cidSystemInfo.ordering;\n        // c) Construct a second CMap name by concatenating the registry and\n        // ordering obtained in step (b) in the format registry–ordering–UCS2\n        // (for example, Adobe–Japan1–UCS2).\n        const ucs2CMapName = Name.get(registry + \"-\" + ordering + \"-UCS2\");\n        // d) Obtain the CMap with the name constructed in step (c) (available\n        // from the ASN Web site; see the Bibliography).\n        return CMapFactory.create({\n          encoding: ucs2CMapName,\n          fetchBuiltInCMap: this.fetchBuiltInCMap,\n          useCMap: null,\n        }).then(function (ucs2CMap) {\n          const cMap = properties.cMap;\n          const toUnicode = [];\n          cMap.forEach(function (charcode, cid) {\n            if (cid > 0xffff) {\n              throw new FormatError(\"Max size of CID is 65,535\");\n            }\n            // e) Map the CID obtained in step (a) according to the CMap\n            // obtained in step (d), producing a Unicode value.\n            const ucs2 = ucs2CMap.lookup(cid);\n            if (ucs2) {\n              toUnicode[charcode] = String.fromCharCode(\n                (ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1)\n              );\n            }\n          });\n          return new ToUnicodeMap(toUnicode);\n        });\n      }\n\n      // The viewer's choice, just use an identity map.\n      return Promise.resolve(\n        new IdentityToUnicodeMap(properties.firstChar, properties.lastChar)\n      );\n    },\n\n    readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) {\n      var cmapObj = toUnicode;\n      if (isName(cmapObj)) {\n        return CMapFactory.create({\n          encoding: cmapObj,\n          fetchBuiltInCMap: this.fetchBuiltInCMap,\n          useCMap: null,\n        }).then(function (cmap) {\n          if (cmap instanceof IdentityCMap) {\n            return new IdentityToUnicodeMap(0, 0xffff);\n          }\n          return new ToUnicodeMap(cmap.getMap());\n        });\n      } else if (isStream(cmapObj)) {\n        return CMapFactory.create({\n          encoding: cmapObj,\n          fetchBuiltInCMap: this.fetchBuiltInCMap,\n          useCMap: null,\n        }).then(\n          function (cmap) {\n            if (cmap instanceof IdentityCMap) {\n              return new IdentityToUnicodeMap(0, 0xffff);\n            }\n            var map = new Array(cmap.length);\n            // Convert UTF-16BE\n            // NOTE: cmap can be a sparse array, so use forEach instead of\n            // `for(;;)` to iterate over all keys.\n            cmap.forEach(function (charCode, token) {\n              var str = [];\n              for (var k = 0; k < token.length; k += 2) {\n                var w1 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n                if ((w1 & 0xf800) !== 0xd800) {\n                  // w1 < 0xD800 || w1 > 0xDFFF\n                  str.push(w1);\n                  continue;\n                }\n                k += 2;\n                var w2 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n                str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n              }\n              map[charCode] = String.fromCodePoint.apply(String, str);\n            });\n            return new ToUnicodeMap(map);\n          },\n          reason => {\n            if (reason instanceof AbortException) {\n              return null;\n            }\n            if (this.options.ignoreErrors) {\n              // Error in the ToUnicode data -- sending unsupported feature\n              // notification and allow font parsing to continue.\n              this.handler.send(\"UnsupportedFeature\", {\n                featureId: UNSUPPORTED_FEATURES.errorFontToUnicode,\n              });\n              warn(`readToUnicode - ignoring ToUnicode data: \"${reason}\".`);\n              return null;\n            }\n            throw reason;\n          }\n        );\n      }\n      return Promise.resolve(null);\n    },\n\n    readCidToGidMap(glyphsData, toUnicode) {\n      // Extract the encoding from the CIDToGIDMap\n\n      // Set encoding 0 to later verify the font has an encoding\n      var result = [];\n      for (var j = 0, jj = glyphsData.length; j < jj; j++) {\n        var glyphID = (glyphsData[j++] << 8) | glyphsData[j];\n        const code = j >> 1;\n        if (glyphID === 0 && !toUnicode.has(code)) {\n          continue;\n        }\n        result[code] = glyphID;\n      }\n      return result;\n    },\n\n    extractWidths: function PartialEvaluator_extractWidths(\n      dict,\n      descriptor,\n      properties\n    ) {\n      var xref = this.xref;\n      var glyphsWidths = [];\n      var defaultWidth = 0;\n      var glyphsVMetrics = [];\n      var defaultVMetrics;\n      var i, ii, j, jj, start, code, widths;\n      if (properties.composite) {\n        defaultWidth = dict.has(\"DW\") ? dict.get(\"DW\") : 1000;\n\n        widths = dict.get(\"W\");\n        if (widths) {\n          for (i = 0, ii = widths.length; i < ii; i++) {\n            start = xref.fetchIfRef(widths[i++]);\n            code = xref.fetchIfRef(widths[i]);\n            if (Array.isArray(code)) {\n              for (j = 0, jj = code.length; j < jj; j++) {\n                glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n              }\n            } else {\n              var width = xref.fetchIfRef(widths[++i]);\n              for (j = start; j <= code; j++) {\n                glyphsWidths[j] = width;\n              }\n            }\n          }\n        }\n\n        if (properties.vertical) {\n          var vmetrics = dict.getArray(\"DW2\") || [880, -1000];\n          defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n          vmetrics = dict.get(\"W2\");\n          if (vmetrics) {\n            for (i = 0, ii = vmetrics.length; i < ii; i++) {\n              start = xref.fetchIfRef(vmetrics[i++]);\n              code = xref.fetchIfRef(vmetrics[i]);\n              if (Array.isArray(code)) {\n                for (j = 0, jj = code.length; j < jj; j++) {\n                  glyphsVMetrics[start++] = [\n                    xref.fetchIfRef(code[j++]),\n                    xref.fetchIfRef(code[j++]),\n                    xref.fetchIfRef(code[j]),\n                  ];\n                }\n              } else {\n                var vmetric = [\n                  xref.fetchIfRef(vmetrics[++i]),\n                  xref.fetchIfRef(vmetrics[++i]),\n                  xref.fetchIfRef(vmetrics[++i]),\n                ];\n                for (j = start; j <= code; j++) {\n                  glyphsVMetrics[j] = vmetric;\n                }\n              }\n            }\n          }\n        }\n      } else {\n        var firstChar = properties.firstChar;\n        widths = dict.get(\"Widths\");\n        if (widths) {\n          j = firstChar;\n          for (i = 0, ii = widths.length; i < ii; i++) {\n            glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n          }\n          defaultWidth = parseFloat(descriptor.get(\"MissingWidth\")) || 0;\n        } else {\n          // Trying get the BaseFont metrics (see comment above).\n          var baseFontName = dict.get(\"BaseFont\");\n          if (isName(baseFontName)) {\n            var metrics = this.getBaseFontMetrics(baseFontName.name);\n\n            glyphsWidths = this.buildCharCodeToWidth(\n              metrics.widths,\n              properties\n            );\n            defaultWidth = metrics.defaultWidth;\n          }\n        }\n      }\n\n      // Heuristic: detection of monospace font by checking all non-zero widths\n      var isMonospace = true;\n      var firstWidth = defaultWidth;\n      for (var glyph in glyphsWidths) {\n        var glyphWidth = glyphsWidths[glyph];\n        if (!glyphWidth) {\n          continue;\n        }\n        if (!firstWidth) {\n          firstWidth = glyphWidth;\n          continue;\n        }\n        if (firstWidth !== glyphWidth) {\n          isMonospace = false;\n          break;\n        }\n      }\n      if (isMonospace) {\n        properties.flags |= FontFlags.FixedPitch;\n      }\n\n      properties.defaultWidth = defaultWidth;\n      properties.widths = glyphsWidths;\n      properties.defaultVMetrics = defaultVMetrics;\n      properties.vmetrics = glyphsVMetrics;\n    },\n\n    isSerifFont: function PartialEvaluator_isSerifFont(baseFontName) {\n      // Simulating descriptor flags attribute\n      var fontNameWoStyle = baseFontName.split(\"-\")[0];\n      return (\n        fontNameWoStyle in getSerifFonts() ||\n        fontNameWoStyle.search(/serif/gi) !== -1\n      );\n    },\n\n    getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) {\n      var defaultWidth = 0;\n      var widths = [];\n      var monospace = false;\n      var stdFontMap = getStdFontMap();\n      var lookupName = stdFontMap[name] || name;\n      var Metrics = getMetrics();\n\n      if (!(lookupName in Metrics)) {\n        // Use default fonts for looking up font metrics if the passed\n        // font is not a base font\n        if (this.isSerifFont(name)) {\n          lookupName = \"Times-Roman\";\n        } else {\n          lookupName = \"Helvetica\";\n        }\n      }\n      var glyphWidths = Metrics[lookupName];\n\n      if (isNum(glyphWidths)) {\n        defaultWidth = glyphWidths;\n        monospace = true;\n      } else {\n        widths = glyphWidths(); // expand lazy widths array\n      }\n\n      return {\n        defaultWidth,\n        monospace,\n        widths,\n      };\n    },\n\n    buildCharCodeToWidth: function PartialEvaluator_bulildCharCodeToWidth(\n      widthsByGlyphName,\n      properties\n    ) {\n      var widths = Object.create(null);\n      var differences = properties.differences;\n      var encoding = properties.defaultEncoding;\n      for (var charCode = 0; charCode < 256; charCode++) {\n        if (\n          charCode in differences &&\n          widthsByGlyphName[differences[charCode]]\n        ) {\n          widths[charCode] = widthsByGlyphName[differences[charCode]];\n          continue;\n        }\n        if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n          widths[charCode] = widthsByGlyphName[encoding[charCode]];\n          continue;\n        }\n      }\n      return widths;\n    },\n\n    preEvaluateFont: function PartialEvaluator_preEvaluateFont(dict) {\n      var baseDict = dict;\n      var type = dict.get(\"Subtype\");\n      if (!isName(type)) {\n        throw new FormatError(\"invalid font Subtype\");\n      }\n\n      var composite = false;\n      var uint8array;\n      if (type.name === \"Type0\") {\n        // If font is a composite\n        //  - get the descendant font\n        //  - set the type according to the descendant font\n        //  - get the FontDescriptor from the descendant font\n        var df = dict.get(\"DescendantFonts\");\n        if (!df) {\n          throw new FormatError(\"Descendant fonts are not specified\");\n        }\n        dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n\n        type = dict.get(\"Subtype\");\n        if (!isName(type)) {\n          throw new FormatError(\"invalid font Subtype\");\n        }\n        composite = true;\n      }\n\n      var descriptor = dict.get(\"FontDescriptor\");\n      if (descriptor) {\n        var hash = new MurmurHash3_64();\n        var encoding = baseDict.getRaw(\"Encoding\");\n        if (isName(encoding)) {\n          hash.update(encoding.name);\n        } else if (isRef(encoding)) {\n          hash.update(encoding.toString());\n        } else if (isDict(encoding)) {\n          var keys = encoding.getKeys();\n          for (var i = 0, ii = keys.length; i < ii; i++) {\n            var entry = encoding.getRaw(keys[i]);\n            if (isName(entry)) {\n              hash.update(entry.name);\n            } else if (isRef(entry)) {\n              hash.update(entry.toString());\n            } else if (Array.isArray(entry)) {\n              // 'Differences' array (fixes bug1157493.pdf).\n              var diffLength = entry.length,\n                diffBuf = new Array(diffLength);\n\n              for (var j = 0; j < diffLength; j++) {\n                var diffEntry = entry[j];\n                if (isName(diffEntry)) {\n                  diffBuf[j] = diffEntry.name;\n                } else if (isNum(diffEntry) || isRef(diffEntry)) {\n                  diffBuf[j] = diffEntry.toString();\n                }\n              }\n              hash.update(diffBuf.join());\n            }\n          }\n        }\n\n        const firstChar = dict.get(\"FirstChar\") || 0;\n        const lastChar = dict.get(\"LastChar\") || (composite ? 0xffff : 0xff);\n        hash.update(`${firstChar}-${lastChar}`);\n\n        var toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n        if (isStream(toUnicode)) {\n          var stream = toUnicode.str || toUnicode;\n          uint8array = stream.buffer\n            ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength)\n            : new Uint8Array(\n                stream.bytes.buffer,\n                stream.start,\n                stream.end - stream.start\n              );\n          hash.update(uint8array);\n        } else if (isName(toUnicode)) {\n          hash.update(toUnicode.name);\n        }\n\n        var widths = dict.get(\"Widths\") || baseDict.get(\"Widths\");\n        if (widths) {\n          uint8array = new Uint8Array(new Uint32Array(widths).buffer);\n          hash.update(uint8array);\n        }\n      }\n\n      return {\n        descriptor,\n        dict,\n        baseDict,\n        composite,\n        type: type.name,\n        hash: hash ? hash.hexdigest() : \"\",\n      };\n    },\n\n    translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) {\n      var baseDict = preEvaluatedFont.baseDict;\n      var dict = preEvaluatedFont.dict;\n      var composite = preEvaluatedFont.composite;\n      var descriptor = preEvaluatedFont.descriptor;\n      var type = preEvaluatedFont.type;\n      var maxCharIndex = composite ? 0xffff : 0xff;\n      var properties;\n      const firstChar = dict.get(\"FirstChar\") || 0;\n      const lastChar = dict.get(\"LastChar\") || maxCharIndex;\n\n      if (!descriptor) {\n        if (type === \"Type3\") {\n          // FontDescriptor is only required for Type3 fonts when the document\n          // is a tagged pdf. Create a barbebones one to get by.\n          descriptor = new Dict(null);\n          descriptor.set(\"FontName\", Name.get(type));\n          descriptor.set(\"FontBBox\", dict.getArray(\"FontBBox\") || [0, 0, 0, 0]);\n        } else {\n          // Before PDF 1.5 if the font was one of the base 14 fonts, having a\n          // FontDescriptor was not required.\n          // This case is here for compatibility.\n          var baseFontName = dict.get(\"BaseFont\");\n          if (!isName(baseFontName)) {\n            throw new FormatError(\"Base font is not specified\");\n          }\n\n          // Using base font name as a font name.\n          baseFontName = baseFontName.name.replace(/[,_]/g, \"-\");\n          var metrics = this.getBaseFontMetrics(baseFontName);\n\n          // Simulating descriptor flags attribute\n          var fontNameWoStyle = baseFontName.split(\"-\")[0];\n          var flags =\n            (this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) |\n            (metrics.monospace ? FontFlags.FixedPitch : 0) |\n            (getSymbolsFonts()[fontNameWoStyle]\n              ? FontFlags.Symbolic\n              : FontFlags.Nonsymbolic);\n\n          properties = {\n            type,\n            name: baseFontName,\n            widths: metrics.widths,\n            defaultWidth: metrics.defaultWidth,\n            flags,\n            firstChar,\n            lastChar,\n          };\n          const widths = dict.get(\"Widths\");\n          return this.extractDataStructures(dict, dict, properties).then(\n            newProperties => {\n              if (widths) {\n                const glyphWidths = [];\n                let j = firstChar;\n                for (let i = 0, ii = widths.length; i < ii; i++) {\n                  glyphWidths[j++] = this.xref.fetchIfRef(widths[i]);\n                }\n                newProperties.widths = glyphWidths;\n              } else {\n                newProperties.widths = this.buildCharCodeToWidth(\n                  metrics.widths,\n                  newProperties\n                );\n              }\n              return new Font(baseFontName, null, newProperties);\n            }\n          );\n        }\n      }\n\n      // According to the spec if 'FontDescriptor' is declared, 'FirstChar',\n      // 'LastChar' and 'Widths' should exist too, but some PDF encoders seem\n      // to ignore this rule when a variant of a standard font is used.\n      // TODO Fill the width array depending on which of the base font this is\n      // a variant.\n\n      var fontName = descriptor.get(\"FontName\");\n      var baseFont = dict.get(\"BaseFont\");\n      // Some bad PDFs have a string as the font name.\n      if (isString(fontName)) {\n        fontName = Name.get(fontName);\n      }\n      if (isString(baseFont)) {\n        baseFont = Name.get(baseFont);\n      }\n\n      if (type !== \"Type3\") {\n        var fontNameStr = fontName && fontName.name;\n        var baseFontStr = baseFont && baseFont.name;\n        if (fontNameStr !== baseFontStr) {\n          info(\n            `The FontDescriptor\\'s FontName is \"${fontNameStr}\" but ` +\n              `should be the same as the Font\\'s BaseFont \"${baseFontStr}\".`\n          );\n          // Workaround for cases where e.g. fontNameStr = 'Arial' and\n          // baseFontStr = 'Arial,Bold' (needed when no font file is embedded).\n          if (\n            fontNameStr &&\n            baseFontStr &&\n            baseFontStr.startsWith(fontNameStr)\n          ) {\n            fontName = baseFont;\n          }\n        }\n      }\n      fontName = fontName || baseFont;\n\n      if (!isName(fontName)) {\n        throw new FormatError(\"invalid font name\");\n      }\n\n      var fontFile = descriptor.get(\"FontFile\", \"FontFile2\", \"FontFile3\");\n      if (fontFile) {\n        if (fontFile.dict) {\n          var subtype = fontFile.dict.get(\"Subtype\");\n          if (subtype) {\n            subtype = subtype.name;\n          }\n          var length1 = fontFile.dict.get(\"Length1\");\n          var length2 = fontFile.dict.get(\"Length2\");\n          var length3 = fontFile.dict.get(\"Length3\");\n        }\n      }\n\n      properties = {\n        type,\n        name: fontName.name,\n        subtype,\n        file: fontFile,\n        length1,\n        length2,\n        length3,\n        loadedName: baseDict.loadedName,\n        composite,\n        fixedPitch: false,\n        fontMatrix: dict.getArray(\"FontMatrix\") || FONT_IDENTITY_MATRIX,\n        firstChar: firstChar || 0,\n        lastChar: lastChar || maxCharIndex,\n        bbox: descriptor.getArray(\"FontBBox\"),\n        ascent: descriptor.get(\"Ascent\"),\n        descent: descriptor.get(\"Descent\"),\n        xHeight: descriptor.get(\"XHeight\"),\n        capHeight: descriptor.get(\"CapHeight\"),\n        flags: descriptor.get(\"Flags\"),\n        italicAngle: descriptor.get(\"ItalicAngle\"),\n        isType3Font: false,\n      };\n\n      var cMapPromise;\n      if (composite) {\n        var cidEncoding = baseDict.get(\"Encoding\");\n        if (isName(cidEncoding)) {\n          properties.cidEncoding = cidEncoding.name;\n        }\n        cMapPromise = CMapFactory.create({\n          encoding: cidEncoding,\n          fetchBuiltInCMap: this.fetchBuiltInCMap,\n          useCMap: null,\n        }).then(function (cMap) {\n          properties.cMap = cMap;\n          properties.vertical = properties.cMap.vertical;\n        });\n      } else {\n        cMapPromise = Promise.resolve(undefined);\n      }\n\n      return cMapPromise\n        .then(() => {\n          return this.extractDataStructures(dict, baseDict, properties);\n        })\n        .then(newProperties => {\n          this.extractWidths(dict, descriptor, newProperties);\n\n          if (type === \"Type3\") {\n            newProperties.isType3Font = true;\n          }\n          return new Font(fontName.name, fontFile, newProperties);\n        });\n    },\n  };\n\n  PartialEvaluator.buildFontPaths = function (font, glyphs, handler) {\n    function buildPath(fontChar) {\n      if (font.renderer.hasBuiltPath(fontChar)) {\n        return;\n      }\n      handler.send(\"commonobj\", [\n        `${font.loadedName}_path_${fontChar}`,\n        \"FontPath\",\n        font.renderer.getPathJs(fontChar),\n      ]);\n    }\n\n    for (const glyph of glyphs) {\n      buildPath(glyph.fontChar);\n\n      // If the glyph has an accent we need to build a path for its\n      // fontChar too, otherwise CanvasGraphics_paintChar will fail.\n      const accent = glyph.accent;\n      if (accent && accent.fontChar) {\n        buildPath(accent.fontChar);\n      }\n    }\n  };\n\n  // TODO: Change this to a `static` getter, using shadowing, once\n  //       `PartialEvaluator` is converted to a proper class.\n  PartialEvaluator.getFallbackFontDict = function () {\n    if (this._fallbackFontDict) {\n      return this._fallbackFontDict;\n    }\n    const dict = new Dict();\n    dict.set(\"BaseFont\", Name.get(\"PDFJS-FallbackFont\"));\n    dict.set(\"Type\", Name.get(\"FallbackType\"));\n    dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n    dict.set(\"Encoding\", Name.get(\"WinAnsiEncoding\"));\n\n    return (this._fallbackFontDict = dict);\n  };\n\n  return PartialEvaluator;\n})();\n\nclass TranslatedFont {\n  constructor({ loadedName, font, dict, extraProperties = false }) {\n    this.loadedName = loadedName;\n    this.font = font;\n    this.dict = dict;\n    this._extraProperties = extraProperties;\n    this.type3Loaded = null;\n    this.sent = false;\n  }\n\n  send(handler) {\n    if (this.sent) {\n      return;\n    }\n    this.sent = true;\n\n    handler.send(\"commonobj\", [\n      this.loadedName,\n      \"Font\",\n      this.font.exportData(this._extraProperties),\n    ]);\n  }\n\n  fallback(handler) {\n    if (!this.font.data) {\n      return;\n    }\n    // When font loading failed, fall back to the built-in font renderer.\n    this.font.disableFontFace = true;\n    // An arbitrary number of text rendering operators could have been\n    // encountered between the point in time when the 'Font' message was sent\n    // to the main-thread, and the point in time when the 'FontFallback'\n    // message was received on the worker-thread.\n    // To ensure that all 'FontPath's are available on the main-thread, when\n    // font loading failed, attempt to resend *all* previously parsed glyphs.\n    const glyphs = this.font.glyphCacheValues;\n    PartialEvaluator.buildFontPaths(this.font, glyphs, handler);\n  }\n\n  loadType3Data(evaluator, resources, parentOperatorList, task) {\n    if (!this.font.isType3Font) {\n      throw new Error(\"Must be a Type3 font.\");\n    }\n\n    if (this.type3Loaded) {\n      return this.type3Loaded;\n    }\n    // When parsing Type3 glyphs, always ignore them if there are errors.\n    // Compared to the parsing of e.g. an entire page, it doesn't really\n    // make sense to only be able to render a Type3 glyph partially.\n    //\n    // Also, ensure that any Type3 image resources (which should be very rare\n    // in practice) are completely decoded on the worker-thread, to simplify\n    // the rendering code on the main-thread (see issue10717.pdf).\n    var type3Options = Object.create(evaluator.options);\n    type3Options.ignoreErrors = false;\n    var type3Evaluator = evaluator.clone(type3Options);\n    type3Evaluator.parsingType3Font = true;\n\n    var translatedFont = this.font;\n    var loadCharProcsPromise = Promise.resolve();\n    var charProcs = this.dict.get(\"CharProcs\");\n    var fontResources = this.dict.get(\"Resources\") || resources;\n    var charProcKeys = charProcs.getKeys();\n    var charProcOperatorList = Object.create(null);\n\n    for (var i = 0, n = charProcKeys.length; i < n; ++i) {\n      const key = charProcKeys[i];\n      loadCharProcsPromise = loadCharProcsPromise.then(function () {\n        var glyphStream = charProcs.get(key);\n        var operatorList = new OperatorList();\n        return type3Evaluator\n          .getOperatorList({\n            stream: glyphStream,\n            task,\n            resources: fontResources,\n            operatorList,\n          })\n          .then(function () {\n            charProcOperatorList[key] = operatorList.getIR();\n\n            // Add the dependencies to the parent operator list so they are\n            // resolved before sub operator list is executed synchronously.\n            parentOperatorList.addDependencies(operatorList.dependencies);\n          })\n          .catch(function (reason) {\n            warn(`Type3 font resource \"${key}\" is not available.`);\n            const dummyOperatorList = new OperatorList();\n            charProcOperatorList[key] = dummyOperatorList.getIR();\n          });\n      });\n    }\n    this.type3Loaded = loadCharProcsPromise.then(function () {\n      translatedFont.charProcOperatorList = charProcOperatorList;\n    });\n    return this.type3Loaded;\n  }\n}\n\nvar StateManager = (function StateManagerClosure() {\n  // eslint-disable-next-line no-shadow\n  function StateManager(initialState) {\n    this.state = initialState;\n    this.stateStack = [];\n  }\n  StateManager.prototype = {\n    save() {\n      var old = this.state;\n      this.stateStack.push(this.state);\n      this.state = old.clone();\n    },\n    restore() {\n      var prev = this.stateStack.pop();\n      if (prev) {\n        this.state = prev;\n      }\n    },\n    transform(args) {\n      this.state.ctm = Util.transform(this.state.ctm, args);\n    },\n  };\n  return StateManager;\n})();\n\nvar TextState = (function TextStateClosure() {\n  // eslint-disable-next-line no-shadow\n  function TextState() {\n    this.ctm = new Float32Array(IDENTITY_MATRIX);\n    this.fontName = null;\n    this.fontSize = 0;\n    this.font = null;\n    this.fontMatrix = FONT_IDENTITY_MATRIX;\n    this.textMatrix = IDENTITY_MATRIX.slice();\n    this.textLineMatrix = IDENTITY_MATRIX.slice();\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.leading = 0;\n    this.textHScale = 1;\n    this.textRise = 0;\n  }\n\n  TextState.prototype = {\n    setTextMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n      var m = this.textMatrix;\n      m[0] = a;\n      m[1] = b;\n      m[2] = c;\n      m[3] = d;\n      m[4] = e;\n      m[5] = f;\n    },\n    setTextLineMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n      var m = this.textLineMatrix;\n      m[0] = a;\n      m[1] = b;\n      m[2] = c;\n      m[3] = d;\n      m[4] = e;\n      m[5] = f;\n    },\n    translateTextMatrix: function TextState_translateTextMatrix(x, y) {\n      var m = this.textMatrix;\n      m[4] = m[0] * x + m[2] * y + m[4];\n      m[5] = m[1] * x + m[3] * y + m[5];\n    },\n    translateTextLineMatrix: function TextState_translateTextMatrix(x, y) {\n      var m = this.textLineMatrix;\n      m[4] = m[0] * x + m[2] * y + m[4];\n      m[5] = m[1] * x + m[3] * y + m[5];\n    },\n    calcTextLineMatrixAdvance: function TextState_calcTextLineMatrixAdvance(\n      a,\n      b,\n      c,\n      d,\n      e,\n      f\n    ) {\n      var font = this.font;\n      if (!font) {\n        return null;\n      }\n      var m = this.textLineMatrix;\n      if (!(a === m[0] && b === m[1] && c === m[2] && d === m[3])) {\n        return null;\n      }\n      var txDiff = e - m[4],\n        tyDiff = f - m[5];\n      if ((font.vertical && txDiff !== 0) || (!font.vertical && tyDiff !== 0)) {\n        return null;\n      }\n      var tx,\n        ty,\n        denominator = a * d - b * c;\n      if (font.vertical) {\n        tx = (-tyDiff * c) / denominator;\n        ty = (tyDiff * a) / denominator;\n      } else {\n        tx = (txDiff * d) / denominator;\n        ty = (-txDiff * b) / denominator;\n      }\n      return { width: tx, height: ty, value: font.vertical ? ty : tx };\n    },\n    calcRenderMatrix: function TextState_calcRendeMatrix(ctm) {\n      // 9.4.4 Text Space Details\n      var tsm = [\n        this.fontSize * this.textHScale,\n        0,\n        0,\n        this.fontSize,\n        0,\n        this.textRise,\n      ];\n      return Util.transform(ctm, Util.transform(this.textMatrix, tsm));\n    },\n    carriageReturn: function TextState_carriageReturn() {\n      this.translateTextLineMatrix(0, -this.leading);\n      this.textMatrix = this.textLineMatrix.slice();\n    },\n    clone: function TextState_clone() {\n      var clone = Object.create(this);\n      clone.textMatrix = this.textMatrix.slice();\n      clone.textLineMatrix = this.textLineMatrix.slice();\n      clone.fontMatrix = this.fontMatrix.slice();\n      return clone;\n    },\n  };\n  return TextState;\n})();\n\nvar EvalState = (function EvalStateClosure() {\n  // eslint-disable-next-line no-shadow\n  function EvalState() {\n    this.ctm = new Float32Array(IDENTITY_MATRIX);\n    this.font = null;\n    this.textRenderingMode = TextRenderingMode.FILL;\n    this.fillColorSpace = ColorSpace.singletons.gray;\n    this.strokeColorSpace = ColorSpace.singletons.gray;\n  }\n  EvalState.prototype = {\n    clone: function CanvasExtraState_clone() {\n      return Object.create(this);\n    },\n  };\n  return EvalState;\n})();\n\nvar EvaluatorPreprocessor = (function EvaluatorPreprocessorClosure() {\n  // Specifies properties for each command\n  //\n  // If variableArgs === true: [0, `numArgs`] expected\n  // If variableArgs === false: exactly `numArgs` expected\n  var getOPMap = getLookupTableFactory(function (t) {\n    // Graphic state\n    t.w = { id: OPS.setLineWidth, numArgs: 1, variableArgs: false };\n    t.J = { id: OPS.setLineCap, numArgs: 1, variableArgs: false };\n    t.j = { id: OPS.setLineJoin, numArgs: 1, variableArgs: false };\n    t.M = { id: OPS.setMiterLimit, numArgs: 1, variableArgs: false };\n    t.d = { id: OPS.setDash, numArgs: 2, variableArgs: false };\n    t.ri = { id: OPS.setRenderingIntent, numArgs: 1, variableArgs: false };\n    t.i = { id: OPS.setFlatness, numArgs: 1, variableArgs: false };\n    t.gs = { id: OPS.setGState, numArgs: 1, variableArgs: false };\n    t.q = { id: OPS.save, numArgs: 0, variableArgs: false };\n    t.Q = { id: OPS.restore, numArgs: 0, variableArgs: false };\n    t.cm = { id: OPS.transform, numArgs: 6, variableArgs: false };\n\n    // Path\n    t.m = { id: OPS.moveTo, numArgs: 2, variableArgs: false };\n    t.l = { id: OPS.lineTo, numArgs: 2, variableArgs: false };\n    t.c = { id: OPS.curveTo, numArgs: 6, variableArgs: false };\n    t.v = { id: OPS.curveTo2, numArgs: 4, variableArgs: false };\n    t.y = { id: OPS.curveTo3, numArgs: 4, variableArgs: false };\n    t.h = { id: OPS.closePath, numArgs: 0, variableArgs: false };\n    t.re = { id: OPS.rectangle, numArgs: 4, variableArgs: false };\n    t.S = { id: OPS.stroke, numArgs: 0, variableArgs: false };\n    t.s = { id: OPS.closeStroke, numArgs: 0, variableArgs: false };\n    t.f = { id: OPS.fill, numArgs: 0, variableArgs: false };\n    t.F = { id: OPS.fill, numArgs: 0, variableArgs: false };\n    t[\"f*\"] = { id: OPS.eoFill, numArgs: 0, variableArgs: false };\n    t.B = { id: OPS.fillStroke, numArgs: 0, variableArgs: false };\n    t[\"B*\"] = { id: OPS.eoFillStroke, numArgs: 0, variableArgs: false };\n    t.b = { id: OPS.closeFillStroke, numArgs: 0, variableArgs: false };\n    t[\"b*\"] = { id: OPS.closeEOFillStroke, numArgs: 0, variableArgs: false };\n    t.n = { id: OPS.endPath, numArgs: 0, variableArgs: false };\n\n    // Clipping\n    t.W = { id: OPS.clip, numArgs: 0, variableArgs: false };\n    t[\"W*\"] = { id: OPS.eoClip, numArgs: 0, variableArgs: false };\n\n    // Text\n    t.BT = { id: OPS.beginText, numArgs: 0, variableArgs: false };\n    t.ET = { id: OPS.endText, numArgs: 0, variableArgs: false };\n    t.Tc = { id: OPS.setCharSpacing, numArgs: 1, variableArgs: false };\n    t.Tw = { id: OPS.setWordSpacing, numArgs: 1, variableArgs: false };\n    t.Tz = { id: OPS.setHScale, numArgs: 1, variableArgs: false };\n    t.TL = { id: OPS.setLeading, numArgs: 1, variableArgs: false };\n    t.Tf = { id: OPS.setFont, numArgs: 2, variableArgs: false };\n    t.Tr = { id: OPS.setTextRenderingMode, numArgs: 1, variableArgs: false };\n    t.Ts = { id: OPS.setTextRise, numArgs: 1, variableArgs: false };\n    t.Td = { id: OPS.moveText, numArgs: 2, variableArgs: false };\n    t.TD = { id: OPS.setLeadingMoveText, numArgs: 2, variableArgs: false };\n    t.Tm = { id: OPS.setTextMatrix, numArgs: 6, variableArgs: false };\n    t[\"T*\"] = { id: OPS.nextLine, numArgs: 0, variableArgs: false };\n    t.Tj = { id: OPS.showText, numArgs: 1, variableArgs: false };\n    t.TJ = { id: OPS.showSpacedText, numArgs: 1, variableArgs: false };\n    t[\"'\"] = { id: OPS.nextLineShowText, numArgs: 1, variableArgs: false };\n    t['\"'] = {\n      id: OPS.nextLineSetSpacingShowText,\n      numArgs: 3,\n      variableArgs: false,\n    };\n\n    // Type3 fonts\n    t.d0 = { id: OPS.setCharWidth, numArgs: 2, variableArgs: false };\n    t.d1 = {\n      id: OPS.setCharWidthAndBounds,\n      numArgs: 6,\n      variableArgs: false,\n    };\n\n    // Color\n    t.CS = { id: OPS.setStrokeColorSpace, numArgs: 1, variableArgs: false };\n    t.cs = { id: OPS.setFillColorSpace, numArgs: 1, variableArgs: false };\n    t.SC = { id: OPS.setStrokeColor, numArgs: 4, variableArgs: true };\n    t.SCN = { id: OPS.setStrokeColorN, numArgs: 33, variableArgs: true };\n    t.sc = { id: OPS.setFillColor, numArgs: 4, variableArgs: true };\n    t.scn = { id: OPS.setFillColorN, numArgs: 33, variableArgs: true };\n    t.G = { id: OPS.setStrokeGray, numArgs: 1, variableArgs: false };\n    t.g = { id: OPS.setFillGray, numArgs: 1, variableArgs: false };\n    t.RG = { id: OPS.setStrokeRGBColor, numArgs: 3, variableArgs: false };\n    t.rg = { id: OPS.setFillRGBColor, numArgs: 3, variableArgs: false };\n    t.K = { id: OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: false };\n    t.k = { id: OPS.setFillCMYKColor, numArgs: 4, variableArgs: false };\n\n    // Shading\n    t.sh = { id: OPS.shadingFill, numArgs: 1, variableArgs: false };\n\n    // Images\n    t.BI = { id: OPS.beginInlineImage, numArgs: 0, variableArgs: false };\n    t.ID = { id: OPS.beginImageData, numArgs: 0, variableArgs: false };\n    t.EI = { id: OPS.endInlineImage, numArgs: 1, variableArgs: false };\n\n    // XObjects\n    t.Do = { id: OPS.paintXObject, numArgs: 1, variableArgs: false };\n    t.MP = { id: OPS.markPoint, numArgs: 1, variableArgs: false };\n    t.DP = { id: OPS.markPointProps, numArgs: 2, variableArgs: false };\n    t.BMC = { id: OPS.beginMarkedContent, numArgs: 1, variableArgs: false };\n    t.BDC = {\n      id: OPS.beginMarkedContentProps,\n      numArgs: 2,\n      variableArgs: false,\n    };\n    t.EMC = { id: OPS.endMarkedContent, numArgs: 0, variableArgs: false };\n\n    // Compatibility\n    t.BX = { id: OPS.beginCompat, numArgs: 0, variableArgs: false };\n    t.EX = { id: OPS.endCompat, numArgs: 0, variableArgs: false };\n\n    // (reserved partial commands for the lexer)\n    t.BM = null;\n    t.BD = null;\n    t.true = null;\n    t.fa = null;\n    t.fal = null;\n    t.fals = null;\n    t.false = null;\n    t.nu = null;\n    t.nul = null;\n    t.null = null;\n  });\n\n  const MAX_INVALID_PATH_OPS = 20;\n\n  // eslint-disable-next-line no-shadow\n  function EvaluatorPreprocessor(stream, xref, stateManager) {\n    this.opMap = getOPMap();\n    // TODO(mduan): pass array of knownCommands rather than this.opMap\n    // dictionary\n    this.parser = new Parser({\n      lexer: new Lexer(stream, this.opMap),\n      xref,\n    });\n    this.stateManager = stateManager;\n    this.nonProcessedArgs = [];\n    this._numInvalidPathOPS = 0;\n  }\n\n  EvaluatorPreprocessor.prototype = {\n    get savedStatesDepth() {\n      return this.stateManager.stateStack.length;\n    },\n\n    // |operation| is an object with two fields:\n    //\n    // - |fn| is an out param.\n    //\n    // - |args| is an inout param. On entry, it should have one of two values.\n    //\n    //   - An empty array. This indicates that the caller is providing the\n    //     array in which the args will be stored in. The caller should use\n    //     this value if it can reuse a single array for each call to read().\n    //\n    //   - |null|. This indicates that the caller needs this function to create\n    //     the array in which any args are stored in. If there are zero args,\n    //     this function will leave |operation.args| as |null| (thus avoiding\n    //     allocations that would occur if we used an empty array to represent\n    //     zero arguments). Otherwise, it will replace |null| with a new array\n    //     containing the arguments. The caller should use this value if it\n    //     cannot reuse an array for each call to read().\n    //\n    // These two modes are present because this function is very hot and so\n    // avoiding allocations where possible is worthwhile.\n    //\n    read: function EvaluatorPreprocessor_read(operation) {\n      var args = operation.args;\n      while (true) {\n        var obj = this.parser.getObj();\n        if (obj instanceof Cmd) {\n          var cmd = obj.cmd;\n          // Check that the command is valid\n          var opSpec = this.opMap[cmd];\n          if (!opSpec) {\n            warn(`Unknown command \"${cmd}\".`);\n            continue;\n          }\n\n          var fn = opSpec.id;\n          var numArgs = opSpec.numArgs;\n          var argsLength = args !== null ? args.length : 0;\n\n          if (!opSpec.variableArgs) {\n            // Postscript commands can be nested, e.g. /F2 /GS2 gs 5.711 Tf\n            if (argsLength !== numArgs) {\n              var nonProcessedArgs = this.nonProcessedArgs;\n              while (argsLength > numArgs) {\n                nonProcessedArgs.push(args.shift());\n                argsLength--;\n              }\n              while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n                if (args === null) {\n                  args = [];\n                }\n                args.unshift(nonProcessedArgs.pop());\n                argsLength++;\n              }\n            }\n\n            if (argsLength < numArgs) {\n              const partialMsg =\n                `command ${cmd}: expected ${numArgs} args, ` +\n                `but received ${argsLength} args.`;\n\n              // Incomplete path operators, in particular, can result in fairly\n              // chaotic rendering artifacts. Hence the following heuristics is\n              // used to error, rather than just warn, once a number of invalid\n              // path operators have been encountered (fixes bug1443140.pdf).\n              if (\n                fn >= OPS.moveTo &&\n                fn <= OPS.endPath && // Path operator\n                ++this._numInvalidPathOPS > MAX_INVALID_PATH_OPS\n              ) {\n                throw new FormatError(`Invalid ${partialMsg}`);\n              }\n              // If we receive too few arguments, it's not possible to execute\n              // the command, hence we skip the command.\n              warn(`Skipping ${partialMsg}`);\n              if (args !== null) {\n                args.length = 0;\n              }\n              continue;\n            }\n          } else if (argsLength > numArgs) {\n            info(\n              `Command ${cmd}: expected [0, ${numArgs}] args, ` +\n                `but received ${argsLength} args.`\n            );\n          }\n\n          // TODO figure out how to type-check vararg functions\n          this.preprocessCommand(fn, args);\n\n          operation.fn = fn;\n          operation.args = args;\n          return true;\n        }\n        if (obj === EOF) {\n          return false; // no more commands\n        }\n        // argument\n        if (obj !== null) {\n          if (args === null) {\n            args = [];\n          }\n          args.push(obj);\n          if (args.length > 33) {\n            throw new FormatError(\"Too many arguments\");\n          }\n        }\n      }\n    },\n\n    preprocessCommand: function EvaluatorPreprocessor_preprocessCommand(\n      fn,\n      args\n    ) {\n      switch (fn | 0) {\n        case OPS.save:\n          this.stateManager.save();\n          break;\n        case OPS.restore:\n          this.stateManager.restore();\n          break;\n        case OPS.transform:\n          this.stateManager.transform(args);\n          break;\n      }\n    },\n  };\n  return EvaluatorPreprocessor;\n})();\n\nexport { PartialEvaluator };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  CMapCompressionType,\n  FormatError,\n  isString,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport { isCmd, isEOF, isName, isStream } from \"./primitives.js\";\nimport { Lexer } from \"./parser.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\n\nvar BUILT_IN_CMAPS = [\n  // << Start unicode maps.\n  \"Adobe-GB1-UCS2\",\n  \"Adobe-CNS1-UCS2\",\n  \"Adobe-Japan1-UCS2\",\n  \"Adobe-Korea1-UCS2\",\n  // >> End unicode maps.\n  \"78-EUC-H\",\n  \"78-EUC-V\",\n  \"78-H\",\n  \"78-RKSJ-H\",\n  \"78-RKSJ-V\",\n  \"78-V\",\n  \"78ms-RKSJ-H\",\n  \"78ms-RKSJ-V\",\n  \"83pv-RKSJ-H\",\n  \"90ms-RKSJ-H\",\n  \"90ms-RKSJ-V\",\n  \"90msp-RKSJ-H\",\n  \"90msp-RKSJ-V\",\n  \"90pv-RKSJ-H\",\n  \"90pv-RKSJ-V\",\n  \"Add-H\",\n  \"Add-RKSJ-H\",\n  \"Add-RKSJ-V\",\n  \"Add-V\",\n  \"Adobe-CNS1-0\",\n  \"Adobe-CNS1-1\",\n  \"Adobe-CNS1-2\",\n  \"Adobe-CNS1-3\",\n  \"Adobe-CNS1-4\",\n  \"Adobe-CNS1-5\",\n  \"Adobe-CNS1-6\",\n  \"Adobe-GB1-0\",\n  \"Adobe-GB1-1\",\n  \"Adobe-GB1-2\",\n  \"Adobe-GB1-3\",\n  \"Adobe-GB1-4\",\n  \"Adobe-GB1-5\",\n  \"Adobe-Japan1-0\",\n  \"Adobe-Japan1-1\",\n  \"Adobe-Japan1-2\",\n  \"Adobe-Japan1-3\",\n  \"Adobe-Japan1-4\",\n  \"Adobe-Japan1-5\",\n  \"Adobe-Japan1-6\",\n  \"Adobe-Korea1-0\",\n  \"Adobe-Korea1-1\",\n  \"Adobe-Korea1-2\",\n  \"B5-H\",\n  \"B5-V\",\n  \"B5pc-H\",\n  \"B5pc-V\",\n  \"CNS-EUC-H\",\n  \"CNS-EUC-V\",\n  \"CNS1-H\",\n  \"CNS1-V\",\n  \"CNS2-H\",\n  \"CNS2-V\",\n  \"ETHK-B5-H\",\n  \"ETHK-B5-V\",\n  \"ETen-B5-H\",\n  \"ETen-B5-V\",\n  \"ETenms-B5-H\",\n  \"ETenms-B5-V\",\n  \"EUC-H\",\n  \"EUC-V\",\n  \"Ext-H\",\n  \"Ext-RKSJ-H\",\n  \"Ext-RKSJ-V\",\n  \"Ext-V\",\n  \"GB-EUC-H\",\n  \"GB-EUC-V\",\n  \"GB-H\",\n  \"GB-V\",\n  \"GBK-EUC-H\",\n  \"GBK-EUC-V\",\n  \"GBK2K-H\",\n  \"GBK2K-V\",\n  \"GBKp-EUC-H\",\n  \"GBKp-EUC-V\",\n  \"GBT-EUC-H\",\n  \"GBT-EUC-V\",\n  \"GBT-H\",\n  \"GBT-V\",\n  \"GBTpc-EUC-H\",\n  \"GBTpc-EUC-V\",\n  \"GBpc-EUC-H\",\n  \"GBpc-EUC-V\",\n  \"H\",\n  \"HKdla-B5-H\",\n  \"HKdla-B5-V\",\n  \"HKdlb-B5-H\",\n  \"HKdlb-B5-V\",\n  \"HKgccs-B5-H\",\n  \"HKgccs-B5-V\",\n  \"HKm314-B5-H\",\n  \"HKm314-B5-V\",\n  \"HKm471-B5-H\",\n  \"HKm471-B5-V\",\n  \"HKscs-B5-H\",\n  \"HKscs-B5-V\",\n  \"Hankaku\",\n  \"Hiragana\",\n  \"KSC-EUC-H\",\n  \"KSC-EUC-V\",\n  \"KSC-H\",\n  \"KSC-Johab-H\",\n  \"KSC-Johab-V\",\n  \"KSC-V\",\n  \"KSCms-UHC-H\",\n  \"KSCms-UHC-HW-H\",\n  \"KSCms-UHC-HW-V\",\n  \"KSCms-UHC-V\",\n  \"KSCpc-EUC-H\",\n  \"KSCpc-EUC-V\",\n  \"Katakana\",\n  \"NWP-H\",\n  \"NWP-V\",\n  \"RKSJ-H\",\n  \"RKSJ-V\",\n  \"Roman\",\n  \"UniCNS-UCS2-H\",\n  \"UniCNS-UCS2-V\",\n  \"UniCNS-UTF16-H\",\n  \"UniCNS-UTF16-V\",\n  \"UniCNS-UTF32-H\",\n  \"UniCNS-UTF32-V\",\n  \"UniCNS-UTF8-H\",\n  \"UniCNS-UTF8-V\",\n  \"UniGB-UCS2-H\",\n  \"UniGB-UCS2-V\",\n  \"UniGB-UTF16-H\",\n  \"UniGB-UTF16-V\",\n  \"UniGB-UTF32-H\",\n  \"UniGB-UTF32-V\",\n  \"UniGB-UTF8-H\",\n  \"UniGB-UTF8-V\",\n  \"UniJIS-UCS2-H\",\n  \"UniJIS-UCS2-HW-H\",\n  \"UniJIS-UCS2-HW-V\",\n  \"UniJIS-UCS2-V\",\n  \"UniJIS-UTF16-H\",\n  \"UniJIS-UTF16-V\",\n  \"UniJIS-UTF32-H\",\n  \"UniJIS-UTF32-V\",\n  \"UniJIS-UTF8-H\",\n  \"UniJIS-UTF8-V\",\n  \"UniJIS2004-UTF16-H\",\n  \"UniJIS2004-UTF16-V\",\n  \"UniJIS2004-UTF32-H\",\n  \"UniJIS2004-UTF32-V\",\n  \"UniJIS2004-UTF8-H\",\n  \"UniJIS2004-UTF8-V\",\n  \"UniJISPro-UCS2-HW-V\",\n  \"UniJISPro-UCS2-V\",\n  \"UniJISPro-UTF8-V\",\n  \"UniJISX0213-UTF32-H\",\n  \"UniJISX0213-UTF32-V\",\n  \"UniJISX02132004-UTF32-H\",\n  \"UniJISX02132004-UTF32-V\",\n  \"UniKS-UCS2-H\",\n  \"UniKS-UCS2-V\",\n  \"UniKS-UTF16-H\",\n  \"UniKS-UTF16-V\",\n  \"UniKS-UTF32-H\",\n  \"UniKS-UTF32-V\",\n  \"UniKS-UTF8-H\",\n  \"UniKS-UTF8-V\",\n  \"V\",\n  \"WP-Symbol\",\n];\n\n// Heuristic to avoid hanging the worker-thread for CMap data with ridiculously\n// large ranges, such as e.g. 0xFFFFFFFF (fixes issue11922_reduced.pdf).\nconst MAX_MAP_RANGE = 2 ** 24 - 1; // = 0xFFFFFF\n\n// CMap, not to be confused with TrueType's cmap.\nclass CMap {\n  constructor(builtInCMap = false) {\n    // Codespace ranges are stored as follows:\n    // [[1BytePairs], [2BytePairs], [3BytePairs], [4BytePairs]]\n    // where nBytePairs are ranges e.g. [low1, high1, low2, high2, ...]\n    this.codespaceRanges = [[], [], [], []];\n    this.numCodespaceRanges = 0;\n    // Map entries have one of two forms.\n    // - cid chars are 16-bit unsigned integers, stored as integers.\n    // - bf chars are variable-length byte sequences, stored as strings, with\n    //   one byte per character.\n    this._map = [];\n    this.name = \"\";\n    this.vertical = false;\n    this.useCMap = null;\n    this.builtInCMap = builtInCMap;\n  }\n\n  addCodespaceRange(n, low, high) {\n    this.codespaceRanges[n - 1].push(low, high);\n    this.numCodespaceRanges++;\n  }\n\n  mapCidRange(low, high, dstLow) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapCidRange - ignoring data above MAX_MAP_RANGE.\");\n    }\n    while (low <= high) {\n      this._map[low++] = dstLow++;\n    }\n  }\n\n  mapBfRange(low, high, dstLow) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapBfRange - ignoring data above MAX_MAP_RANGE.\");\n    }\n    var lastByte = dstLow.length - 1;\n    while (low <= high) {\n      this._map[low++] = dstLow;\n      // Only the last byte has to be incremented.\n      dstLow =\n        dstLow.substring(0, lastByte) +\n        String.fromCharCode(dstLow.charCodeAt(lastByte) + 1);\n    }\n  }\n\n  mapBfRangeToArray(low, high, array) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.\");\n    }\n    const ii = array.length;\n    let i = 0;\n    while (low <= high && i < ii) {\n      this._map[low] = array[i++];\n      ++low;\n    }\n  }\n\n  // This is used for both bf and cid chars.\n  mapOne(src, dst) {\n    this._map[src] = dst;\n  }\n\n  lookup(code) {\n    return this._map[code];\n  }\n\n  contains(code) {\n    return this._map[code] !== undefined;\n  }\n\n  forEach(callback) {\n    // Most maps have fewer than 65536 entries, and for those we use normal\n    // array iteration. But really sparse tables are possible -- e.g. with\n    // indices in the *billions*. For such tables we use for..in, which isn't\n    // ideal because it stringifies the indices for all present elements, but\n    // it does avoid iterating over every undefined entry.\n    const map = this._map;\n    const length = map.length;\n    if (length <= 0x10000) {\n      for (let i = 0; i < length; i++) {\n        if (map[i] !== undefined) {\n          callback(i, map[i]);\n        }\n      }\n    } else {\n      for (const i in map) {\n        callback(i, map[i]);\n      }\n    }\n  }\n\n  charCodeOf(value) {\n    // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n    // are both very sparse and very large (see issue8372.pdf).\n    const map = this._map;\n    if (map.length <= 0x10000) {\n      return map.indexOf(value);\n    }\n    for (const charCode in map) {\n      if (map[charCode] === value) {\n        return charCode | 0;\n      }\n    }\n    return -1;\n  }\n\n  getMap() {\n    return this._map;\n  }\n\n  readCharCode(str, offset, out) {\n    let c = 0;\n    const codespaceRanges = this.codespaceRanges;\n    // 9.7.6.2 CMap Mapping\n    // The code length is at most 4.\n    for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n      c = ((c << 8) | str.charCodeAt(offset + n)) >>> 0;\n      // Check each codespace range to see if it falls within.\n      const codespaceRange = codespaceRanges[n];\n      for (let k = 0, kk = codespaceRange.length; k < kk; ) {\n        const low = codespaceRange[k++];\n        const high = codespaceRange[k++];\n        if (c >= low && c <= high) {\n          out.charcode = c;\n          out.length = n + 1;\n          return;\n        }\n      }\n    }\n    out.charcode = 0;\n    out.length = 1;\n  }\n\n  get length() {\n    return this._map.length;\n  }\n\n  get isIdentityCMap() {\n    if (!(this.name === \"Identity-H\" || this.name === \"Identity-V\")) {\n      return false;\n    }\n    if (this._map.length !== 0x10000) {\n      return false;\n    }\n    for (let i = 0; i < 0x10000; i++) {\n      if (this._map[i] !== i) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\n\n// A special case of CMap, where the _map array implicitly has a length of\n// 65536 and each element is equal to its index.\nclass IdentityCMap extends CMap {\n  constructor(vertical, n) {\n    super();\n\n    this.vertical = vertical;\n    this.addCodespaceRange(n, 0, 0xffff);\n  }\n\n  mapCidRange(low, high, dstLow) {\n    unreachable(\"should not call mapCidRange\");\n  }\n\n  mapBfRange(low, high, dstLow) {\n    unreachable(\"should not call mapBfRange\");\n  }\n\n  mapBfRangeToArray(low, high, array) {\n    unreachable(\"should not call mapBfRangeToArray\");\n  }\n\n  mapOne(src, dst) {\n    unreachable(\"should not call mapCidOne\");\n  }\n\n  lookup(code) {\n    return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n  }\n\n  contains(code) {\n    return Number.isInteger(code) && code <= 0xffff;\n  }\n\n  forEach(callback) {\n    for (let i = 0; i <= 0xffff; i++) {\n      callback(i, i);\n    }\n  }\n\n  charCodeOf(value) {\n    return Number.isInteger(value) && value <= 0xffff ? value : -1;\n  }\n\n  getMap() {\n    // Sometimes identity maps must be instantiated, but it's rare.\n    const map = new Array(0x10000);\n    for (let i = 0; i <= 0xffff; i++) {\n      map[i] = i;\n    }\n    return map;\n  }\n\n  get length() {\n    return 0x10000;\n  }\n\n  // eslint-disable-next-line getter-return\n  get isIdentityCMap() {\n    unreachable(\"should not access .isIdentityCMap\");\n  }\n}\n\nvar BinaryCMapReader = (function BinaryCMapReaderClosure() {\n  function hexToInt(a, size) {\n    var n = 0;\n    for (var i = 0; i <= size; i++) {\n      n = (n << 8) | a[i];\n    }\n    return n >>> 0;\n  }\n\n  function hexToStr(a, size) {\n    // This code is hot. Special-case some common values to avoid creating an\n    // object with subarray().\n    if (size === 1) {\n      return String.fromCharCode(a[0], a[1]);\n    }\n    if (size === 3) {\n      return String.fromCharCode(a[0], a[1], a[2], a[3]);\n    }\n    return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n  }\n\n  function addHex(a, b, size) {\n    var c = 0;\n    for (var i = size; i >= 0; i--) {\n      c += a[i] + b[i];\n      a[i] = c & 255;\n      c >>= 8;\n    }\n  }\n\n  function incHex(a, size) {\n    var c = 1;\n    for (var i = size; i >= 0 && c > 0; i--) {\n      c += a[i];\n      a[i] = c & 255;\n      c >>= 8;\n    }\n  }\n\n  var MAX_NUM_SIZE = 16;\n  var MAX_ENCODED_NUM_SIZE = 19; // ceil(MAX_NUM_SIZE * 7 / 8)\n\n  function BinaryCMapStream(data) {\n    this.buffer = data;\n    this.pos = 0;\n    this.end = data.length;\n    this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n  }\n\n  BinaryCMapStream.prototype = {\n    readByte() {\n      if (this.pos >= this.end) {\n        return -1;\n      }\n      return this.buffer[this.pos++];\n    },\n    readNumber() {\n      var n = 0;\n      var last;\n      do {\n        var b = this.readByte();\n        if (b < 0) {\n          throw new FormatError(\"unexpected EOF in bcmap\");\n        }\n        last = !(b & 0x80);\n        n = (n << 7) | (b & 0x7f);\n      } while (!last);\n      return n;\n    },\n    readSigned() {\n      var n = this.readNumber();\n      return n & 1 ? ~(n >>> 1) : n >>> 1;\n    },\n    readHex(num, size) {\n      num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n      this.pos += size + 1;\n    },\n    readHexNumber(num, size) {\n      var last;\n      var stack = this.tmpBuf,\n        sp = 0;\n      do {\n        var b = this.readByte();\n        if (b < 0) {\n          throw new FormatError(\"unexpected EOF in bcmap\");\n        }\n        last = !(b & 0x80);\n        stack[sp++] = b & 0x7f;\n      } while (!last);\n      var i = size,\n        buffer = 0,\n        bufferSize = 0;\n      while (i >= 0) {\n        while (bufferSize < 8 && stack.length > 0) {\n          buffer = (stack[--sp] << bufferSize) | buffer;\n          bufferSize += 7;\n        }\n        num[i] = buffer & 255;\n        i--;\n        buffer >>= 8;\n        bufferSize -= 8;\n      }\n    },\n    readHexSigned(num, size) {\n      this.readHexNumber(num, size);\n      var sign = num[size] & 1 ? 255 : 0;\n      var c = 0;\n      for (var i = 0; i <= size; i++) {\n        c = ((c & 1) << 8) | num[i];\n        num[i] = (c >> 1) ^ sign;\n      }\n    },\n    readString() {\n      var len = this.readNumber();\n      var s = \"\";\n      for (var i = 0; i < len; i++) {\n        s += String.fromCharCode(this.readNumber());\n      }\n      return s;\n    },\n  };\n\n  function processBinaryCMap(data, cMap, extend) {\n    return new Promise(function (resolve, reject) {\n      var stream = new BinaryCMapStream(data);\n      var header = stream.readByte();\n      cMap.vertical = !!(header & 1);\n\n      var useCMap = null;\n      var start = new Uint8Array(MAX_NUM_SIZE);\n      var end = new Uint8Array(MAX_NUM_SIZE);\n      var char = new Uint8Array(MAX_NUM_SIZE);\n      var charCode = new Uint8Array(MAX_NUM_SIZE);\n      var tmp = new Uint8Array(MAX_NUM_SIZE);\n      var code;\n\n      var b;\n      while ((b = stream.readByte()) >= 0) {\n        var type = b >> 5;\n        if (type === 7) {\n          // metadata, e.g. comment or usecmap\n          switch (b & 0x1f) {\n            case 0:\n              stream.readString(); // skipping comment\n              break;\n            case 1:\n              useCMap = stream.readString();\n              break;\n          }\n          continue;\n        }\n        var sequence = !!(b & 0x10);\n        var dataSize = b & 15;\n\n        if (dataSize + 1 > MAX_NUM_SIZE) {\n          throw new Error(\"processBinaryCMap: Invalid dataSize.\");\n        }\n\n        var ucs2DataSize = 1;\n        var subitemsCount = stream.readNumber();\n        var i;\n        switch (type) {\n          case 0: // codespacerange\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            cMap.addCodespaceRange(\n              dataSize + 1,\n              hexToInt(start, dataSize),\n              hexToInt(end, dataSize)\n            );\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n              stream.readHexNumber(start, dataSize);\n              addHex(start, end, dataSize);\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              cMap.addCodespaceRange(\n                dataSize + 1,\n                hexToInt(start, dataSize),\n                hexToInt(end, dataSize)\n              );\n            }\n            break;\n          case 1: // notdefrange\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            stream.readNumber(); // code\n            // undefined range, skipping\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n              stream.readHexNumber(start, dataSize);\n              addHex(start, end, dataSize);\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              stream.readNumber(); // code\n              // nop\n            }\n            break;\n          case 2: // cidchar\n            stream.readHex(char, dataSize);\n            code = stream.readNumber();\n            cMap.mapOne(hexToInt(char, dataSize), code);\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(char, dataSize);\n              if (!sequence) {\n                stream.readHexNumber(tmp, dataSize);\n                addHex(char, tmp, dataSize);\n              }\n              code = stream.readSigned() + (code + 1);\n              cMap.mapOne(hexToInt(char, dataSize), code);\n            }\n            break;\n          case 3: // cidrange\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            code = stream.readNumber();\n            cMap.mapCidRange(\n              hexToInt(start, dataSize),\n              hexToInt(end, dataSize),\n              code\n            );\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n              if (!sequence) {\n                stream.readHexNumber(start, dataSize);\n                addHex(start, end, dataSize);\n              } else {\n                start.set(end);\n              }\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              code = stream.readNumber();\n              cMap.mapCidRange(\n                hexToInt(start, dataSize),\n                hexToInt(end, dataSize),\n                code\n              );\n            }\n            break;\n          case 4: // bfchar\n            stream.readHex(char, ucs2DataSize);\n            stream.readHex(charCode, dataSize);\n            cMap.mapOne(\n              hexToInt(char, ucs2DataSize),\n              hexToStr(charCode, dataSize)\n            );\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(char, ucs2DataSize);\n              if (!sequence) {\n                stream.readHexNumber(tmp, ucs2DataSize);\n                addHex(char, tmp, ucs2DataSize);\n              }\n              incHex(charCode, dataSize);\n              stream.readHexSigned(tmp, dataSize);\n              addHex(charCode, tmp, dataSize);\n              cMap.mapOne(\n                hexToInt(char, ucs2DataSize),\n                hexToStr(charCode, dataSize)\n              );\n            }\n            break;\n          case 5: // bfrange\n            stream.readHex(start, ucs2DataSize);\n            stream.readHexNumber(end, ucs2DataSize);\n            addHex(end, start, ucs2DataSize);\n            stream.readHex(charCode, dataSize);\n            cMap.mapBfRange(\n              hexToInt(start, ucs2DataSize),\n              hexToInt(end, ucs2DataSize),\n              hexToStr(charCode, dataSize)\n            );\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(end, ucs2DataSize);\n              if (!sequence) {\n                stream.readHexNumber(start, ucs2DataSize);\n                addHex(start, end, ucs2DataSize);\n              } else {\n                start.set(end);\n              }\n              stream.readHexNumber(end, ucs2DataSize);\n              addHex(end, start, ucs2DataSize);\n              stream.readHex(charCode, dataSize);\n              cMap.mapBfRange(\n                hexToInt(start, ucs2DataSize),\n                hexToInt(end, ucs2DataSize),\n                hexToStr(charCode, dataSize)\n              );\n            }\n            break;\n          default:\n            reject(new Error(\"processBinaryCMap: Unknown type: \" + type));\n            return;\n        }\n      }\n\n      if (useCMap) {\n        resolve(extend(useCMap));\n        return;\n      }\n      resolve(cMap);\n    });\n  }\n\n  // eslint-disable-next-line no-shadow\n  function BinaryCMapReader() {}\n\n  BinaryCMapReader.prototype = {\n    process: processBinaryCMap,\n  };\n\n  return BinaryCMapReader;\n})();\n\nvar CMapFactory = (function CMapFactoryClosure() {\n  function strToInt(str) {\n    var a = 0;\n    for (var i = 0; i < str.length; i++) {\n      a = (a << 8) | str.charCodeAt(i);\n    }\n    return a >>> 0;\n  }\n\n  function expectString(obj) {\n    if (!isString(obj)) {\n      throw new FormatError(\"Malformed CMap: expected string.\");\n    }\n  }\n\n  function expectInt(obj) {\n    if (!Number.isInteger(obj)) {\n      throw new FormatError(\"Malformed CMap: expected int.\");\n    }\n  }\n\n  function parseBfChar(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n      if (isEOF(obj)) {\n        break;\n      }\n      if (isCmd(obj, \"endbfchar\")) {\n        return;\n      }\n      expectString(obj);\n      var src = strToInt(obj);\n      obj = lexer.getObj();\n      // TODO are /dstName used?\n      expectString(obj);\n      var dst = obj;\n      cMap.mapOne(src, dst);\n    }\n  }\n\n  function parseBfRange(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n      if (isEOF(obj)) {\n        break;\n      }\n      if (isCmd(obj, \"endbfrange\")) {\n        return;\n      }\n      expectString(obj);\n      var low = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      var high = strToInt(obj);\n      obj = lexer.getObj();\n      if (Number.isInteger(obj) || isString(obj)) {\n        var dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n        cMap.mapBfRange(low, high, dstLow);\n      } else if (isCmd(obj, \"[\")) {\n        obj = lexer.getObj();\n        var array = [];\n        while (!isCmd(obj, \"]\") && !isEOF(obj)) {\n          array.push(obj);\n          obj = lexer.getObj();\n        }\n        cMap.mapBfRangeToArray(low, high, array);\n      } else {\n        break;\n      }\n    }\n    throw new FormatError(\"Invalid bf range.\");\n  }\n\n  function parseCidChar(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n      if (isEOF(obj)) {\n        break;\n      }\n      if (isCmd(obj, \"endcidchar\")) {\n        return;\n      }\n      expectString(obj);\n      var src = strToInt(obj);\n      obj = lexer.getObj();\n      expectInt(obj);\n      var dst = obj;\n      cMap.mapOne(src, dst);\n    }\n  }\n\n  function parseCidRange(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n      if (isEOF(obj)) {\n        break;\n      }\n      if (isCmd(obj, \"endcidrange\")) {\n        return;\n      }\n      expectString(obj);\n      var low = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      var high = strToInt(obj);\n      obj = lexer.getObj();\n      expectInt(obj);\n      var dstLow = obj;\n      cMap.mapCidRange(low, high, dstLow);\n    }\n  }\n\n  function parseCodespaceRange(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n      if (isEOF(obj)) {\n        break;\n      }\n      if (isCmd(obj, \"endcodespacerange\")) {\n        return;\n      }\n      if (!isString(obj)) {\n        break;\n      }\n      var low = strToInt(obj);\n      obj = lexer.getObj();\n      if (!isString(obj)) {\n        break;\n      }\n      var high = strToInt(obj);\n      cMap.addCodespaceRange(obj.length, low, high);\n    }\n    throw new FormatError(\"Invalid codespace range.\");\n  }\n\n  function parseWMode(cMap, lexer) {\n    var obj = lexer.getObj();\n    if (Number.isInteger(obj)) {\n      cMap.vertical = !!obj;\n    }\n  }\n\n  function parseCMapName(cMap, lexer) {\n    var obj = lexer.getObj();\n    if (isName(obj) && isString(obj.name)) {\n      cMap.name = obj.name;\n    }\n  }\n\n  function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n    var previous;\n    var embeddedUseCMap;\n    objLoop: while (true) {\n      try {\n        var obj = lexer.getObj();\n        if (isEOF(obj)) {\n          break;\n        } else if (isName(obj)) {\n          if (obj.name === \"WMode\") {\n            parseWMode(cMap, lexer);\n          } else if (obj.name === \"CMapName\") {\n            parseCMapName(cMap, lexer);\n          }\n          previous = obj;\n        } else if (isCmd(obj)) {\n          switch (obj.cmd) {\n            case \"endcmap\":\n              break objLoop;\n            case \"usecmap\":\n              if (isName(previous)) {\n                embeddedUseCMap = previous.name;\n              }\n              break;\n            case \"begincodespacerange\":\n              parseCodespaceRange(cMap, lexer);\n              break;\n            case \"beginbfchar\":\n              parseBfChar(cMap, lexer);\n              break;\n            case \"begincidchar\":\n              parseCidChar(cMap, lexer);\n              break;\n            case \"beginbfrange\":\n              parseBfRange(cMap, lexer);\n              break;\n            case \"begincidrange\":\n              parseCidRange(cMap, lexer);\n              break;\n          }\n        }\n      } catch (ex) {\n        if (ex instanceof MissingDataException) {\n          throw ex;\n        }\n        warn(\"Invalid cMap data: \" + ex);\n        continue;\n      }\n    }\n\n    if (!useCMap && embeddedUseCMap) {\n      // Load the useCMap definition from the file only if there wasn't one\n      // specified.\n      useCMap = embeddedUseCMap;\n    }\n    if (useCMap) {\n      return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n    }\n    return Promise.resolve(cMap);\n  }\n\n  function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n    return createBuiltInCMap(useCMap, fetchBuiltInCMap).then(function (\n      newCMap\n    ) {\n      cMap.useCMap = newCMap;\n      // If there aren't any code space ranges defined clone all the parent ones\n      // into this cMap.\n      if (cMap.numCodespaceRanges === 0) {\n        var useCodespaceRanges = cMap.useCMap.codespaceRanges;\n        for (var i = 0; i < useCodespaceRanges.length; i++) {\n          cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n        }\n        cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n      }\n      // Merge the map into the current one, making sure not to override\n      // any previously defined entries.\n      cMap.useCMap.forEach(function (key, value) {\n        if (!cMap.contains(key)) {\n          cMap.mapOne(key, cMap.useCMap.lookup(key));\n        }\n      });\n\n      return cMap;\n    });\n  }\n\n  function createBuiltInCMap(name, fetchBuiltInCMap) {\n    if (name === \"Identity-H\") {\n      return Promise.resolve(new IdentityCMap(false, 2));\n    } else if (name === \"Identity-V\") {\n      return Promise.resolve(new IdentityCMap(true, 2));\n    }\n    if (!BUILT_IN_CMAPS.includes(name)) {\n      return Promise.reject(new Error(\"Unknown CMap name: \" + name));\n    }\n    if (!fetchBuiltInCMap) {\n      return Promise.reject(\n        new Error(\"Built-in CMap parameters are not provided.\")\n      );\n    }\n\n    return fetchBuiltInCMap(name).then(function (data) {\n      var cMapData = data.cMapData,\n        compressionType = data.compressionType;\n      var cMap = new CMap(true);\n\n      if (compressionType === CMapCompressionType.BINARY) {\n        return new BinaryCMapReader().process(cMapData, cMap, function (\n          useCMap\n        ) {\n          return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n        });\n      }\n      if (compressionType === CMapCompressionType.NONE) {\n        var lexer = new Lexer(new Stream(cMapData));\n        return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n      }\n      return Promise.reject(\n        new Error(\n          \"TODO: Only BINARY/NONE CMap compression is currently supported.\"\n        )\n      );\n    });\n  }\n\n  return {\n    async create(params) {\n      var encoding = params.encoding;\n      var fetchBuiltInCMap = params.fetchBuiltInCMap;\n      var useCMap = params.useCMap;\n\n      if (isName(encoding)) {\n        return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n      } else if (isStream(encoding)) {\n        var cMap = new CMap();\n        var lexer = new Lexer(encoding);\n        return parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap).then(function (\n          parsedCMap\n        ) {\n          if (parsedCMap.isIdentityCMap) {\n            return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n          }\n          return parsedCMap;\n        });\n      }\n      throw new Error(\"Encoding required.\");\n    },\n  };\n})();\n\nexport { CMap, IdentityCMap, CMapFactory };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  bytesToString,\n  FONT_IDENTITY_MATRIX,\n  FontType,\n  FormatError,\n  info,\n  isNum,\n  shadow,\n  string32,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  CFF,\n  CFFCharset,\n  CFFCompiler,\n  CFFHeader,\n  CFFIndex,\n  CFFParser,\n  CFFPrivateDict,\n  CFFStandardStrings,\n  CFFStrings,\n  CFFTopDict,\n} from \"./cff_parser.js\";\nimport { getDingbatsGlyphsUnicode, getGlyphsUnicode } from \"./glyphlist.js\";\nimport {\n  getEncoding,\n  MacRomanEncoding,\n  StandardEncoding,\n  SymbolSetEncoding,\n  ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport {\n  getGlyphMapForStandardFonts,\n  getNonStdFontMap,\n  getStdFontMap,\n  getSupplementalGlyphMapForArialBlack,\n  getSupplementalGlyphMapForCalibri,\n} from \"./standard_fonts.js\";\nimport {\n  getUnicodeForGlyph,\n  getUnicodeRangeFor,\n  mapSpecialUnicodeValues,\n} from \"./unicode.js\";\nimport {\n  isWhiteSpace,\n  MissingDataException,\n  readUint32,\n} from \"./core_utils.js\";\nimport { FontRendererFactory } from \"./font_renderer.js\";\nimport { IdentityCMap } from \"./cmap.js\";\nimport { Stream } from \"./stream.js\";\nimport { Type1Parser } from \"./type1_parser.js\";\n\n// Unicode Private Use Areas:\nconst PRIVATE_USE_AREAS = [\n  [0xe000, 0xf8ff], // BMP (0)\n  [0x100000, 0x10fffd], // PUP (16)\n];\n\n// PDF Glyph Space Units are one Thousandth of a TextSpace Unit\n// except for Type 3 fonts\nvar PDF_GLYPH_SPACE_UNITS = 1000;\n\n// Accented characters have issues on Windows and Linux. When this flag is\n// enabled glyphs that use seac and seac style endchar operators are truncated\n// and we instead just store the glyph id's of the base glyph and its accent to\n// be drawn individually.\n// Linux (freetype) requires that when a seac style endchar is used\n// that the charset must be a predefined one, however we build a\n// custom one. Windows just refuses to draw glyphs with seac operators.\nvar SEAC_ANALYSIS_ENABLED = true;\n\nconst EXPORT_DATA_PROPERTIES = [\n  \"ascent\",\n  \"bbox\",\n  \"black\",\n  \"bold\",\n  \"charProcOperatorList\",\n  \"composite\",\n  \"data\",\n  \"defaultVMetrics\",\n  \"defaultWidth\",\n  \"descent\",\n  \"fallbackName\",\n  \"fontMatrix\",\n  \"fontType\",\n  \"isMonospace\",\n  \"isSerifFont\",\n  \"isType3Font\",\n  \"italic\",\n  \"loadedName\",\n  \"mimetype\",\n  \"missingFile\",\n  \"name\",\n  \"remeasure\",\n  \"subtype\",\n  \"type\",\n  \"vertical\",\n];\n\nconst EXPORT_DATA_EXTRA_PROPERTIES = [\n  \"cMap\",\n  \"defaultEncoding\",\n  \"differences\",\n  \"isSymbolicFont\",\n  \"seacMap\",\n  \"toFontChar\",\n  \"toUnicode\",\n  \"vmetrics\",\n  \"widths\",\n];\n\nvar FontFlags = {\n  FixedPitch: 1,\n  Serif: 2,\n  Symbolic: 4,\n  Script: 8,\n  Nonsymbolic: 32,\n  Italic: 64,\n  AllCap: 65536,\n  SmallCap: 131072,\n  ForceBold: 262144,\n};\n\n// prettier-ignore\nvar MacStandardGlyphOrdering = [\n  \".notdef\", \".null\", \"nonmarkingreturn\", \"space\", \"exclam\", \"quotedbl\",\n  \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\",\n  \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\",\n  \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n  \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\",\n  \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\",\n  \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\",\n  \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\",\n  \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\",\n  \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\",\n  \"asciitilde\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\",\n  \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\",\n  \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n  \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\",\n  \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\",\n  \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\",\n  \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\",\n  \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\",\n  \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\",\n  \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\",\n  \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\",\n  \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\",\n  \"nonbreakingspace\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\",\n  \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\",\n  \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\",\n  \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\",\n  \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\",\n  \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\",\n  \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\",\n  \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\",\n  \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\",\n  \"Lslash\", \"lslash\", \"Scaron\", \"scaron\", \"Zcaron\", \"zcaron\", \"brokenbar\",\n  \"Eth\", \"eth\", \"Yacute\", \"yacute\", \"Thorn\", \"thorn\", \"minus\", \"multiply\",\n  \"onesuperior\", \"twosuperior\", \"threesuperior\", \"onehalf\", \"onequarter\",\n  \"threequarters\", \"franc\", \"Gbreve\", \"gbreve\", \"Idotaccent\", \"Scedilla\",\n  \"scedilla\", \"Cacute\", \"cacute\", \"Ccaron\", \"ccaron\", \"dcroat\"];\n\nfunction adjustWidths(properties) {\n  if (!properties.fontMatrix) {\n    return;\n  }\n  if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) {\n    return;\n  }\n  // adjusting width to fontMatrix scale\n  var scale = 0.001 / properties.fontMatrix[0];\n  var glyphsWidths = properties.widths;\n  for (var glyph in glyphsWidths) {\n    glyphsWidths[glyph] *= scale;\n  }\n  properties.defaultWidth *= scale;\n}\n\nfunction adjustToUnicode(properties, builtInEncoding) {\n  if (properties.hasIncludedToUnicodeMap) {\n    return; // The font dictionary has a `ToUnicode` entry.\n  }\n  if (properties.hasEncoding) {\n    return; // The font dictionary has an `Encoding` entry.\n  }\n  if (builtInEncoding === properties.defaultEncoding) {\n    return; // No point in trying to adjust `toUnicode` if the encodings match.\n  }\n  if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n    return;\n  }\n  var toUnicode = [],\n    glyphsUnicodeMap = getGlyphsUnicode();\n  for (var charCode in builtInEncoding) {\n    var glyphName = builtInEncoding[charCode];\n    var unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n    if (unicode !== -1) {\n      toUnicode[charCode] = String.fromCharCode(unicode);\n    }\n  }\n  properties.toUnicode.amend(toUnicode);\n}\n\nfunction getFontType(type, subtype) {\n  switch (type) {\n    case \"Type1\":\n      return subtype === \"Type1C\" ? FontType.TYPE1C : FontType.TYPE1;\n    case \"CIDFontType0\":\n      return subtype === \"CIDFontType0C\"\n        ? FontType.CIDFONTTYPE0C\n        : FontType.CIDFONTTYPE0;\n    case \"OpenType\":\n      return FontType.OPENTYPE;\n    case \"TrueType\":\n      return FontType.TRUETYPE;\n    case \"CIDFontType2\":\n      return FontType.CIDFONTTYPE2;\n    case \"MMType1\":\n      return FontType.MMTYPE1;\n    case \"Type0\":\n      return FontType.TYPE0;\n    default:\n      return FontType.UNKNOWN;\n  }\n}\n\n// Some bad PDF generators, e.g. Scribus PDF, include glyph names\n// in a 'uniXXXX' format -- attempting to recover proper ones.\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n  if (glyphsUnicodeMap[name] !== undefined) {\n    return name;\n  }\n  // The glyph name is non-standard, trying to recover.\n  var unicode = getUnicodeForGlyph(name, glyphsUnicodeMap);\n  if (unicode !== -1) {\n    for (var key in glyphsUnicodeMap) {\n      if (glyphsUnicodeMap[key] === unicode) {\n        return key;\n      }\n    }\n  }\n  info(\"Unable to recover a standard glyph name for: \" + name);\n  return name;\n}\n\nvar Glyph = (function GlyphClosure() {\n  // eslint-disable-next-line no-shadow\n  function Glyph(\n    fontChar,\n    unicode,\n    accent,\n    width,\n    vmetric,\n    operatorListId,\n    isSpace,\n    isInFont\n  ) {\n    this.fontChar = fontChar;\n    this.unicode = unicode;\n    this.accent = accent;\n    this.width = width;\n    this.vmetric = vmetric;\n    this.operatorListId = operatorListId;\n    this.isSpace = isSpace;\n    this.isInFont = isInFont;\n  }\n\n  Glyph.prototype.matchesForCache = function (\n    fontChar,\n    unicode,\n    accent,\n    width,\n    vmetric,\n    operatorListId,\n    isSpace,\n    isInFont\n  ) {\n    return (\n      this.fontChar === fontChar &&\n      this.unicode === unicode &&\n      this.accent === accent &&\n      this.width === width &&\n      this.vmetric === vmetric &&\n      this.operatorListId === operatorListId &&\n      this.isSpace === isSpace &&\n      this.isInFont === isInFont\n    );\n  };\n\n  return Glyph;\n})();\n\nvar ToUnicodeMap = (function ToUnicodeMapClosure() {\n  // eslint-disable-next-line no-shadow\n  function ToUnicodeMap(cmap = []) {\n    // The elements of this._map can be integers or strings, depending on how\n    // `cmap` was created.\n    this._map = cmap;\n  }\n\n  ToUnicodeMap.prototype = {\n    get length() {\n      return this._map.length;\n    },\n\n    forEach(callback) {\n      for (var charCode in this._map) {\n        callback(charCode, this._map[charCode].charCodeAt(0));\n      }\n    },\n\n    has(i) {\n      return this._map[i] !== undefined;\n    },\n\n    get(i) {\n      return this._map[i];\n    },\n\n    charCodeOf(value) {\n      // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n      // are both very sparse and very large (see issue8372.pdf).\n      const map = this._map;\n      if (map.length <= 0x10000) {\n        return map.indexOf(value);\n      }\n      for (const charCode in map) {\n        if (map[charCode] === value) {\n          return charCode | 0;\n        }\n      }\n      return -1;\n    },\n\n    amend(map) {\n      for (var charCode in map) {\n        this._map[charCode] = map[charCode];\n      }\n    },\n  };\n\n  return ToUnicodeMap;\n})();\n\nvar IdentityToUnicodeMap = (function IdentityToUnicodeMapClosure() {\n  // eslint-disable-next-line no-shadow\n  function IdentityToUnicodeMap(firstChar, lastChar) {\n    this.firstChar = firstChar;\n    this.lastChar = lastChar;\n  }\n\n  IdentityToUnicodeMap.prototype = {\n    get length() {\n      return this.lastChar + 1 - this.firstChar;\n    },\n\n    forEach(callback) {\n      for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n        callback(i, i);\n      }\n    },\n\n    has(i) {\n      return this.firstChar <= i && i <= this.lastChar;\n    },\n\n    get(i) {\n      if (this.firstChar <= i && i <= this.lastChar) {\n        return String.fromCharCode(i);\n      }\n      return undefined;\n    },\n\n    charCodeOf(v) {\n      return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar\n        ? v\n        : -1;\n    },\n\n    amend(map) {\n      unreachable(\"Should not call amend()\");\n    },\n  };\n\n  return IdentityToUnicodeMap;\n})();\n\nvar OpenTypeFileBuilder = (function OpenTypeFileBuilderClosure() {\n  function writeInt16(dest, offset, num) {\n    dest[offset] = (num >> 8) & 0xff;\n    dest[offset + 1] = num & 0xff;\n  }\n\n  function writeInt32(dest, offset, num) {\n    dest[offset] = (num >> 24) & 0xff;\n    dest[offset + 1] = (num >> 16) & 0xff;\n    dest[offset + 2] = (num >> 8) & 0xff;\n    dest[offset + 3] = num & 0xff;\n  }\n\n  function writeData(dest, offset, data) {\n    var i, ii;\n    if (data instanceof Uint8Array) {\n      dest.set(data, offset);\n    } else if (typeof data === \"string\") {\n      for (i = 0, ii = data.length; i < ii; i++) {\n        dest[offset++] = data.charCodeAt(i) & 0xff;\n      }\n    } else {\n      // treating everything else as array\n      for (i = 0, ii = data.length; i < ii; i++) {\n        dest[offset++] = data[i] & 0xff;\n      }\n    }\n  }\n\n  // eslint-disable-next-line no-shadow\n  function OpenTypeFileBuilder(sfnt) {\n    this.sfnt = sfnt;\n    this.tables = Object.create(null);\n  }\n\n  OpenTypeFileBuilder.getSearchParams = function OpenTypeFileBuilder_getSearchParams(\n    entriesCount,\n    entrySize\n  ) {\n    var maxPower2 = 1,\n      log2 = 0;\n    while ((maxPower2 ^ entriesCount) > maxPower2) {\n      maxPower2 <<= 1;\n      log2++;\n    }\n    var searchRange = maxPower2 * entrySize;\n    return {\n      range: searchRange,\n      entry: log2,\n      rangeShift: entrySize * entriesCount - searchRange,\n    };\n  };\n\n  var OTF_HEADER_SIZE = 12;\n  var OTF_TABLE_ENTRY_SIZE = 16;\n\n  OpenTypeFileBuilder.prototype = {\n    toArray: function OpenTypeFileBuilder_toArray() {\n      var sfnt = this.sfnt;\n\n      // Tables needs to be written by ascendant alphabetic order\n      var tables = this.tables;\n      var tablesNames = Object.keys(tables);\n      tablesNames.sort();\n      var numTables = tablesNames.length;\n\n      var i, j, jj, table, tableName;\n      // layout the tables data\n      var offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n      var tableOffsets = [offset];\n      for (i = 0; i < numTables; i++) {\n        table = tables[tablesNames[i]];\n        var paddedLength = ((table.length + 3) & ~3) >>> 0;\n        offset += paddedLength;\n        tableOffsets.push(offset);\n      }\n\n      var file = new Uint8Array(offset);\n      // write the table data first (mostly for checksum)\n      for (i = 0; i < numTables; i++) {\n        table = tables[tablesNames[i]];\n        writeData(file, tableOffsets[i], table);\n      }\n\n      // sfnt version (4 bytes)\n      if (sfnt === \"true\") {\n        // Windows hates the Mac TrueType sfnt version number\n        sfnt = string32(0x00010000);\n      }\n      file[0] = sfnt.charCodeAt(0) & 0xff;\n      file[1] = sfnt.charCodeAt(1) & 0xff;\n      file[2] = sfnt.charCodeAt(2) & 0xff;\n      file[3] = sfnt.charCodeAt(3) & 0xff;\n\n      // numTables (2 bytes)\n      writeInt16(file, 4, numTables);\n\n      var searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n\n      // searchRange (2 bytes)\n      writeInt16(file, 6, searchParams.range);\n      // entrySelector (2 bytes)\n      writeInt16(file, 8, searchParams.entry);\n      // rangeShift (2 bytes)\n      writeInt16(file, 10, searchParams.rangeShift);\n\n      offset = OTF_HEADER_SIZE;\n      // writing table entries\n      for (i = 0; i < numTables; i++) {\n        tableName = tablesNames[i];\n        file[offset] = tableName.charCodeAt(0) & 0xff;\n        file[offset + 1] = tableName.charCodeAt(1) & 0xff;\n        file[offset + 2] = tableName.charCodeAt(2) & 0xff;\n        file[offset + 3] = tableName.charCodeAt(3) & 0xff;\n\n        // checksum\n        var checksum = 0;\n        for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n          var quad = readUint32(file, j);\n          checksum = (checksum + quad) >>> 0;\n        }\n        writeInt32(file, offset + 4, checksum);\n\n        // offset\n        writeInt32(file, offset + 8, tableOffsets[i]);\n        // length\n        writeInt32(file, offset + 12, tables[tableName].length);\n\n        offset += OTF_TABLE_ENTRY_SIZE;\n      }\n      return file;\n    },\n\n    addTable: function OpenTypeFileBuilder_addTable(tag, data) {\n      if (tag in this.tables) {\n        throw new Error(\"Table \" + tag + \" already exists\");\n      }\n      this.tables[tag] = data;\n    },\n  };\n\n  return OpenTypeFileBuilder;\n})();\n\n/**\n * 'Font' is the class the outside world should use, it encapsulate all the font\n * decoding logics whatever type it is (assuming the font type is supported).\n *\n * For example to read a Type1 font and to attach it to the document:\n *   var type1Font = new Font(\"MyFontName\", binaryFile, propertiesObject);\n *   type1Font.bind();\n */\nvar Font = (function FontClosure() {\n  // eslint-disable-next-line no-shadow\n  function Font(name, file, properties) {\n    var charCode;\n\n    this.name = name;\n    this.loadedName = properties.loadedName;\n    this.isType3Font = properties.isType3Font;\n    this.missingFile = false;\n\n    this.glyphCache = Object.create(null);\n\n    this.isSerifFont = !!(properties.flags & FontFlags.Serif);\n    this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n    this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n\n    var type = properties.type;\n    var subtype = properties.subtype;\n    this.type = type;\n    this.subtype = subtype;\n\n    let fallbackName = \"sans-serif\";\n    if (this.isMonospace) {\n      fallbackName = \"monospace\";\n    } else if (this.isSerifFont) {\n      fallbackName = \"serif\";\n    }\n    this.fallbackName = fallbackName;\n\n    this.differences = properties.differences;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.composite = properties.composite;\n    this.cMap = properties.cMap;\n    this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n    this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n    this.fontMatrix = properties.fontMatrix;\n    this.bbox = properties.bbox;\n    this.defaultEncoding = properties.defaultEncoding;\n\n    this.toUnicode = properties.toUnicode;\n    this.fallbackToUnicode = properties.fallbackToUnicode || new ToUnicodeMap();\n\n    this.toFontChar = [];\n\n    if (properties.type === \"Type3\") {\n      for (charCode = 0; charCode < 256; charCode++) {\n        this.toFontChar[charCode] =\n          this.differences[charCode] || properties.defaultEncoding[charCode];\n      }\n      this.fontType = FontType.TYPE3;\n      return;\n    }\n\n    this.cidEncoding = properties.cidEncoding;\n    this.vertical = !!properties.vertical;\n    if (this.vertical) {\n      this.vmetrics = properties.vmetrics;\n      this.defaultVMetrics = properties.defaultVMetrics;\n    }\n\n    if (!file || file.isEmpty) {\n      if (file) {\n        // Some bad PDF generators will include empty font files,\n        // attempting to recover by assuming that no file exists.\n        warn('Font file is empty in \"' + name + '\" (' + this.loadedName + \")\");\n      }\n      this.fallbackToSystemFont();\n      return;\n    }\n\n    // Parse the font file to determine the correct type/subtype, rather than\n    // relying on the (often incorrect) data in the font dictionary; (see e.g.\n    //  issue6782.pdf, issue7598.pdf, and issue9949.pdf).\n    [type, subtype] = getFontFileType(file, properties);\n\n    if (type !== this.type || subtype !== this.subtype) {\n      info(\n        \"Inconsistent font file Type/SubType, expected: \" +\n          `${this.type}/${this.subtype} but found: ${type}/${subtype}.`\n      );\n    }\n\n    try {\n      var data;\n      switch (type) {\n        case \"MMType1\":\n          info(\"MMType1 font (\" + name + \"), falling back to Type1.\");\n        /* falls through */\n        case \"Type1\":\n        case \"CIDFontType0\":\n          this.mimetype = \"font/opentype\";\n\n          var cff =\n            subtype === \"Type1C\" || subtype === \"CIDFontType0C\"\n              ? new CFFFont(file, properties)\n              : new Type1Font(name, file, properties);\n\n          adjustWidths(properties);\n\n          // Wrap the CFF data inside an OTF font file\n          data = this.convert(name, cff, properties);\n          break;\n\n        case \"OpenType\":\n        case \"TrueType\":\n        case \"CIDFontType2\":\n          this.mimetype = \"font/opentype\";\n\n          // Repair the TrueType file. It is can be damaged in the point of\n          // view of the sanitizer\n          data = this.checkAndRepair(name, file, properties);\n          if (this.isOpenType) {\n            adjustWidths(properties);\n\n            type = \"OpenType\";\n          }\n          break;\n\n        default:\n          throw new FormatError(`Font ${type} is not supported`);\n      }\n    } catch (e) {\n      warn(e);\n      this.fallbackToSystemFont();\n      return;\n    }\n\n    this.data = data;\n    this.fontType = getFontType(type, subtype);\n\n    // Transfer some properties again that could change during font conversion\n    this.fontMatrix = properties.fontMatrix;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.toUnicode = properties.toUnicode;\n    this.seacMap = properties.seacMap;\n  }\n\n  Font.getFontID = (function () {\n    var ID = 1;\n    return function Font_getFontID() {\n      return String(ID++);\n    };\n  })();\n\n  function int16(b0, b1) {\n    return (b0 << 8) + b1;\n  }\n\n  function writeSignedInt16(bytes, index, value) {\n    bytes[index + 1] = value;\n    bytes[index] = value >>> 8;\n  }\n\n  function signedInt16(b0, b1) {\n    var value = (b0 << 8) + b1;\n    return value & (1 << 15) ? value - 0x10000 : value;\n  }\n\n  function int32(b0, b1, b2, b3) {\n    return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n  }\n\n  function string16(value) {\n    return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n  }\n\n  function safeString16(value) {\n    // clamp value to the 16-bit int range\n    if (value > 0x7fff) {\n      value = 0x7fff;\n    } else if (value < -0x8000) {\n      value = -0x8000;\n    }\n    return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n  }\n\n  function isTrueTypeFile(file) {\n    var header = file.peekBytes(4);\n    return (\n      readUint32(header, 0) === 0x00010000 || bytesToString(header) === \"true\"\n    );\n  }\n\n  function isTrueTypeCollectionFile(file) {\n    const header = file.peekBytes(4);\n    return bytesToString(header) === \"ttcf\";\n  }\n\n  function isOpenTypeFile(file) {\n    var header = file.peekBytes(4);\n    return bytesToString(header) === \"OTTO\";\n  }\n\n  function isType1File(file) {\n    var header = file.peekBytes(2);\n    // All Type1 font programs must begin with the comment '%!' (0x25 + 0x21).\n    if (header[0] === 0x25 && header[1] === 0x21) {\n      return true;\n    }\n    // ... obviously some fonts violate that part of the specification,\n    // please refer to the comment in |Type1Font| below (pfb file header).\n    if (header[0] === 0x80 && header[1] === 0x01) {\n      return true;\n    }\n    return false;\n  }\n\n  /**\n   * Compared to other font formats, the header in CFF files is not constant\n   * but contains version numbers. To reduce the possibility of misclassifying\n   * font files as CFF, it's recommended to check for other font formats first.\n   */\n  function isCFFFile(file) {\n    const header = file.peekBytes(4);\n    if (\n      /* major version, [1, 255] */ header[0] >= 1 &&\n      /* minor version, [0, 255]; header[1] */\n      /* header size, [0, 255]; header[2] */\n      /* offset(0) size, [1, 4] */ header[3] >= 1 &&\n      header[3] <= 4\n    ) {\n      return true;\n    }\n    return false;\n  }\n\n  function getFontFileType(file, { type, subtype, composite }) {\n    let fileType, fileSubtype;\n\n    if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n      if (composite) {\n        fileType = \"CIDFontType2\";\n      } else {\n        fileType = \"TrueType\";\n      }\n    } else if (isOpenTypeFile(file)) {\n      if (composite) {\n        fileType = \"CIDFontType2\";\n      } else {\n        fileType = \"OpenType\";\n      }\n    } else if (isType1File(file)) {\n      if (composite) {\n        fileType = \"CIDFontType0\";\n      } else {\n        fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n      }\n    } else if (isCFFFile(file)) {\n      if (composite) {\n        fileType = \"CIDFontType0\";\n        fileSubtype = \"CIDFontType0C\";\n      } else {\n        fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n        fileSubtype = \"Type1C\";\n      }\n    } else {\n      warn(\"getFontFileType: Unable to detect correct font file Type/Subtype.\");\n      fileType = type;\n      fileSubtype = subtype;\n    }\n\n    return [fileType, fileSubtype];\n  }\n\n  function buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n    var toFontChar = [],\n      unicode;\n    for (var i = 0, ii = encoding.length; i < ii; i++) {\n      unicode = getUnicodeForGlyph(encoding[i], glyphsUnicodeMap);\n      if (unicode !== -1) {\n        toFontChar[i] = unicode;\n      }\n    }\n    for (var charCode in differences) {\n      unicode = getUnicodeForGlyph(differences[charCode], glyphsUnicodeMap);\n      if (unicode !== -1) {\n        toFontChar[+charCode] = unicode;\n      }\n    }\n    return toFontChar;\n  }\n\n  /**\n   * Rebuilds the char code to glyph ID map by moving all char codes to the\n   * private use area. This is done to avoid issues with various problematic\n   * unicode areas where either a glyph won't be drawn or is deformed by a\n   * shaper.\n   * @returns {Object} Two properties:\n   * 'toFontChar' - maps original char codes(the value that will be read\n   * from commands such as show text) to the char codes that will be used in the\n   * font that we build\n   * 'charCodeToGlyphId' - maps the new font char codes to glyph ids\n   */\n  function adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId) {\n    var newMap = Object.create(null);\n    var toFontChar = [];\n    var privateUseAreaIndex = 0;\n    var nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n    var privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n    for (var originalCharCode in charCodeToGlyphId) {\n      originalCharCode |= 0;\n      var glyphId = charCodeToGlyphId[originalCharCode];\n      // For missing glyphs don't create the mappings so the glyph isn't\n      // drawn.\n      if (!hasGlyph(glyphId)) {\n        continue;\n      }\n      if (nextAvailableFontCharCode > privateUseOffetEnd) {\n        privateUseAreaIndex++;\n        if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n          warn(\"Ran out of space in font private use area.\");\n          break;\n        }\n        nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n        privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n      }\n      var fontCharCode = nextAvailableFontCharCode++;\n      if (glyphId === 0) {\n        glyphId = newGlyphZeroId;\n      }\n\n      newMap[fontCharCode] = glyphId;\n      toFontChar[originalCharCode] = fontCharCode;\n    }\n    return {\n      toFontChar,\n      charCodeToGlyphId: newMap,\n      nextAvailableFontCharCode,\n    };\n  }\n\n  function getRanges(glyphs, numGlyphs) {\n    // Array.sort() sorts by characters, not numerically, so convert to an\n    // array of characters.\n    var codes = [];\n    for (var charCode in glyphs) {\n      // Remove an invalid glyph ID mappings to make OTS happy.\n      if (glyphs[charCode] >= numGlyphs) {\n        continue;\n      }\n      codes.push({ fontCharCode: charCode | 0, glyphId: glyphs[charCode] });\n    }\n    // Some fonts have zero glyphs and are used only for text selection, but\n    // there needs to be at least one to build a valid cmap table.\n    if (codes.length === 0) {\n      codes.push({ fontCharCode: 0, glyphId: 0 });\n    }\n    codes.sort(function fontGetRangesSort(a, b) {\n      return a.fontCharCode - b.fontCharCode;\n    });\n\n    // Split the sorted codes into ranges.\n    var ranges = [];\n    var length = codes.length;\n    for (var n = 0; n < length; ) {\n      var start = codes[n].fontCharCode;\n      var codeIndices = [codes[n].glyphId];\n      ++n;\n      var end = start;\n      while (n < length && end + 1 === codes[n].fontCharCode) {\n        codeIndices.push(codes[n].glyphId);\n        ++end;\n        ++n;\n        if (end === 0xffff) {\n          break;\n        }\n      }\n      ranges.push([start, end, codeIndices]);\n    }\n\n    return ranges;\n  }\n\n  function createCmapTable(glyphs, numGlyphs) {\n    var ranges = getRanges(glyphs, numGlyphs);\n    var numTables = ranges[ranges.length - 1][1] > 0xffff ? 2 : 1;\n    var cmap =\n      \"\\x00\\x00\" + // version\n      string16(numTables) + // numTables\n      \"\\x00\\x03\" + // platformID\n      \"\\x00\\x01\" + // encodingID\n      string32(4 + numTables * 8); // start of the table record\n\n    var i, ii, j, jj;\n    for (i = ranges.length - 1; i >= 0; --i) {\n      if (ranges[i][0] <= 0xffff) {\n        break;\n      }\n    }\n    var bmpLength = i + 1;\n\n    if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) {\n      ranges[i][1] = 0xfffe;\n    }\n    var trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0;\n    var segCount = bmpLength + trailingRangesCount;\n    var searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n\n    // Fill up the 4 parallel arrays describing the segments.\n    var startCount = \"\";\n    var endCount = \"\";\n    var idDeltas = \"\";\n    var idRangeOffsets = \"\";\n    var glyphsIds = \"\";\n    var bias = 0;\n\n    var range, start, end, codes;\n    for (i = 0, ii = bmpLength; i < ii; i++) {\n      range = ranges[i];\n      start = range[0];\n      end = range[1];\n      startCount += string16(start);\n      endCount += string16(end);\n      codes = range[2];\n      var contiguous = true;\n      for (j = 1, jj = codes.length; j < jj; ++j) {\n        if (codes[j] !== codes[j - 1] + 1) {\n          contiguous = false;\n          break;\n        }\n      }\n      if (!contiguous) {\n        var offset = (segCount - i) * 2 + bias * 2;\n        bias += end - start + 1;\n\n        idDeltas += string16(0);\n        idRangeOffsets += string16(offset);\n\n        for (j = 0, jj = codes.length; j < jj; ++j) {\n          glyphsIds += string16(codes[j]);\n        }\n      } else {\n        var startCode = codes[0];\n\n        idDeltas += string16((startCode - start) & 0xffff);\n        idRangeOffsets += string16(0);\n      }\n    }\n\n    if (trailingRangesCount > 0) {\n      endCount += \"\\xFF\\xFF\";\n      startCount += \"\\xFF\\xFF\";\n      idDeltas += \"\\x00\\x01\";\n      idRangeOffsets += \"\\x00\\x00\";\n    }\n\n    var format314 =\n      \"\\x00\\x00\" + // language\n      string16(2 * segCount) +\n      string16(searchParams.range) +\n      string16(searchParams.entry) +\n      string16(searchParams.rangeShift) +\n      endCount +\n      \"\\x00\\x00\" +\n      startCount +\n      idDeltas +\n      idRangeOffsets +\n      glyphsIds;\n\n    var format31012 = \"\";\n    var header31012 = \"\";\n    if (numTables > 1) {\n      cmap +=\n        \"\\x00\\x03\" + // platformID\n        \"\\x00\\x0A\" + // encodingID\n        string32(4 + numTables * 8 + 4 + format314.length); // start of the table record\n      format31012 = \"\";\n      for (i = 0, ii = ranges.length; i < ii; i++) {\n        range = ranges[i];\n        start = range[0];\n        codes = range[2];\n        var code = codes[0];\n        for (j = 1, jj = codes.length; j < jj; ++j) {\n          if (codes[j] !== codes[j - 1] + 1) {\n            end = range[0] + j - 1;\n            format31012 +=\n              string32(start) + // startCharCode\n              string32(end) + // endCharCode\n              string32(code); // startGlyphID\n            start = end + 1;\n            code = codes[j];\n          }\n        }\n        format31012 +=\n          string32(start) + // startCharCode\n          string32(range[1]) + // endCharCode\n          string32(code); // startGlyphID\n      }\n      header31012 =\n        \"\\x00\\x0C\" + // format\n        \"\\x00\\x00\" + // reserved\n        string32(format31012.length + 16) + // length\n        \"\\x00\\x00\\x00\\x00\" + // language\n        string32(format31012.length / 12); // nGroups\n    }\n\n    return (\n      cmap +\n      \"\\x00\\x04\" + // format\n      string16(format314.length + 4) + // length\n      format314 +\n      header31012 +\n      format31012\n    );\n  }\n\n  function validateOS2Table(os2, file) {\n    file.pos = (file.start || 0) + os2.offset;\n    var version = file.getUint16();\n    // TODO verify all OS/2 tables fields, but currently we validate only those\n    // that give us issues\n    file.skip(60); // skipping type, misc sizes, panose, unicode ranges\n    var selection = file.getUint16();\n    if (version < 4 && selection & 0x0300) {\n      return false;\n    }\n    var firstChar = file.getUint16();\n    var lastChar = file.getUint16();\n    if (firstChar > lastChar) {\n      return false;\n    }\n    file.skip(6); // skipping sTypoAscender/Descender/LineGap\n    var usWinAscent = file.getUint16();\n    if (usWinAscent === 0) {\n      // makes font unreadable by windows\n      return false;\n    }\n\n    // OS/2 appears to be valid, resetting some fields\n    os2.data[8] = os2.data[9] = 0; // IE rejects fonts if fsType != 0\n    return true;\n  }\n\n  function createOS2Table(properties, charstrings, override) {\n    override = override || {\n      unitsPerEm: 0,\n      yMax: 0,\n      yMin: 0,\n      ascent: 0,\n      descent: 0,\n    };\n\n    var ulUnicodeRange1 = 0;\n    var ulUnicodeRange2 = 0;\n    var ulUnicodeRange3 = 0;\n    var ulUnicodeRange4 = 0;\n\n    var firstCharIndex = null;\n    var lastCharIndex = 0;\n\n    if (charstrings) {\n      for (var code in charstrings) {\n        code |= 0;\n        if (firstCharIndex > code || !firstCharIndex) {\n          firstCharIndex = code;\n        }\n        if (lastCharIndex < code) {\n          lastCharIndex = code;\n        }\n\n        var position = getUnicodeRangeFor(code);\n        if (position < 32) {\n          ulUnicodeRange1 |= 1 << position;\n        } else if (position < 64) {\n          ulUnicodeRange2 |= 1 << (position - 32);\n        } else if (position < 96) {\n          ulUnicodeRange3 |= 1 << (position - 64);\n        } else if (position < 123) {\n          ulUnicodeRange4 |= 1 << (position - 96);\n        } else {\n          throw new FormatError(\n            \"Unicode ranges Bits > 123 are reserved for internal usage\"\n          );\n        }\n      }\n      if (lastCharIndex > 0xffff) {\n        // OS2 only supports a 16 bit int. The spec says if supplementary\n        // characters are used the field should just be set to 0xFFFF.\n        lastCharIndex = 0xffff;\n      }\n    } else {\n      // TODO\n      firstCharIndex = 0;\n      lastCharIndex = 255;\n    }\n\n    var bbox = properties.bbox || [0, 0, 0, 0];\n    var unitsPerEm =\n      override.unitsPerEm ||\n      1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n    // if the font units differ to the PDF glyph space units\n    // then scale up the values\n    var scale = properties.ascentScaled\n      ? 1.0\n      : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n\n    var typoAscent =\n      override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n    var typoDescent =\n      override.descent || Math.round(scale * (properties.descent || bbox[1]));\n    if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n      typoDescent = -typoDescent; // fixing incorrect descent\n    }\n    var winAscent = override.yMax || typoAscent;\n    var winDescent = -override.yMin || -typoDescent;\n\n    return (\n      \"\\x00\\x03\" + // version\n      \"\\x02\\x24\" + // xAvgCharWidth\n      \"\\x01\\xF4\" + // usWeightClass\n      \"\\x00\\x05\" + // usWidthClass\n      \"\\x00\\x00\" + // fstype (0 to let the font loads via font-face on IE)\n      \"\\x02\\x8A\" + // ySubscriptXSize\n      \"\\x02\\xBB\" + // ySubscriptYSize\n      \"\\x00\\x00\" + // ySubscriptXOffset\n      \"\\x00\\x8C\" + // ySubscriptYOffset\n      \"\\x02\\x8A\" + // ySuperScriptXSize\n      \"\\x02\\xBB\" + // ySuperScriptYSize\n      \"\\x00\\x00\" + // ySuperScriptXOffset\n      \"\\x01\\xDF\" + // ySuperScriptYOffset\n      \"\\x00\\x31\" + // yStrikeOutSize\n      \"\\x01\\x02\" + // yStrikeOutPosition\n      \"\\x00\\x00\" + // sFamilyClass\n      \"\\x00\\x00\\x06\" +\n      String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) +\n      \"\\x00\\x00\\x00\\x00\\x00\\x00\" + // Panose\n      string32(ulUnicodeRange1) + // ulUnicodeRange1 (Bits 0-31)\n      string32(ulUnicodeRange2) + // ulUnicodeRange2 (Bits 32-63)\n      string32(ulUnicodeRange3) + // ulUnicodeRange3 (Bits 64-95)\n      string32(ulUnicodeRange4) + // ulUnicodeRange4 (Bits 96-127)\n      \"\\x2A\\x32\\x31\\x2A\" + // achVendID\n      string16(properties.italicAngle ? 1 : 0) + // fsSelection\n      string16(firstCharIndex || properties.firstChar) + // usFirstCharIndex\n      string16(lastCharIndex || properties.lastChar) + // usLastCharIndex\n      string16(typoAscent) + // sTypoAscender\n      string16(typoDescent) + // sTypoDescender\n      \"\\x00\\x64\" + // sTypoLineGap (7%-10% of the unitsPerEM value)\n      string16(winAscent) + // usWinAscent\n      string16(winDescent) + // usWinDescent\n      \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange1 (Bits 0-31)\n      \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange2 (Bits 32-63)\n      string16(properties.xHeight) + // sxHeight\n      string16(properties.capHeight) + // sCapHeight\n      string16(0) + // usDefaultChar\n      string16(firstCharIndex || properties.firstChar) + // usBreakChar\n      \"\\x00\\x03\"\n    ); // usMaxContext\n  }\n\n  function createPostTable(properties) {\n    var angle = Math.floor(properties.italicAngle * 2 ** 16);\n    return (\n      \"\\x00\\x03\\x00\\x00\" + // Version number\n      string32(angle) + // italicAngle\n      \"\\x00\\x00\" + // underlinePosition\n      \"\\x00\\x00\" + // underlineThickness\n      string32(properties.fixedPitch) + // isFixedPitch\n      \"\\x00\\x00\\x00\\x00\" + // minMemType42\n      \"\\x00\\x00\\x00\\x00\" + // maxMemType42\n      \"\\x00\\x00\\x00\\x00\" + // minMemType1\n      \"\\x00\\x00\\x00\\x00\"\n    ); // maxMemType1\n  }\n\n  function createNameTable(name, proto) {\n    if (!proto) {\n      proto = [[], []]; // no strings and unicode strings\n    }\n\n    var strings = [\n      proto[0][0] || \"Original licence\", // 0.Copyright\n      proto[0][1] || name, // 1.Font family\n      proto[0][2] || \"Unknown\", // 2.Font subfamily (font weight)\n      proto[0][3] || \"uniqueID\", // 3.Unique ID\n      proto[0][4] || name, // 4.Full font name\n      proto[0][5] || \"Version 0.11\", // 5.Version\n      proto[0][6] || \"\", // 6.Postscript name\n      proto[0][7] || \"Unknown\", // 7.Trademark\n      proto[0][8] || \"Unknown\", // 8.Manufacturer\n      proto[0][9] || \"Unknown\", // 9.Designer\n    ];\n\n    // Mac want 1-byte per character strings while Windows want\n    // 2-bytes per character, so duplicate the names table\n    var stringsUnicode = [];\n    var i, ii, j, jj, str;\n    for (i = 0, ii = strings.length; i < ii; i++) {\n      str = proto[1][i] || strings[i];\n\n      var strBufUnicode = [];\n      for (j = 0, jj = str.length; j < jj; j++) {\n        strBufUnicode.push(string16(str.charCodeAt(j)));\n      }\n      stringsUnicode.push(strBufUnicode.join(\"\"));\n    }\n\n    var names = [strings, stringsUnicode];\n    var platforms = [\"\\x00\\x01\", \"\\x00\\x03\"];\n    var encodings = [\"\\x00\\x00\", \"\\x00\\x01\"];\n    var languages = [\"\\x00\\x00\", \"\\x04\\x09\"];\n\n    var namesRecordCount = strings.length * platforms.length;\n    var nameTable =\n      \"\\x00\\x00\" + // format\n      string16(namesRecordCount) + // Number of names Record\n      string16(namesRecordCount * 12 + 6); // Storage\n\n    // Build the name records field\n    var strOffset = 0;\n    for (i = 0, ii = platforms.length; i < ii; i++) {\n      var strs = names[i];\n      for (j = 0, jj = strs.length; j < jj; j++) {\n        str = strs[j];\n        var nameRecord =\n          platforms[i] + // platform ID\n          encodings[i] + // encoding ID\n          languages[i] + // language ID\n          string16(j) + // name ID\n          string16(str.length) +\n          string16(strOffset);\n        nameTable += nameRecord;\n        strOffset += str.length;\n      }\n    }\n\n    nameTable += strings.join(\"\") + stringsUnicode.join(\"\");\n    return nameTable;\n  }\n\n  Font.prototype = {\n    name: null,\n    font: null,\n    mimetype: null,\n    disableFontFace: false,\n\n    get renderer() {\n      var renderer = FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n      return shadow(this, \"renderer\", renderer);\n    },\n\n    exportData(extraProperties = false) {\n      const exportDataProperties = extraProperties\n        ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES]\n        : EXPORT_DATA_PROPERTIES;\n\n      const data = Object.create(null);\n      let property, value;\n      for (property of exportDataProperties) {\n        value = this[property];\n        // Ignore properties that haven't been explicitly set.\n        if (value !== undefined) {\n          data[property] = value;\n        }\n      }\n      return data;\n    },\n\n    fallbackToSystemFont: function Font_fallbackToSystemFont() {\n      this.missingFile = true;\n      // The file data is not specified. Trying to fix the font name\n      // to be used with the canvas.font.\n      var name = this.name;\n      var type = this.type;\n      var subtype = this.subtype;\n      let fontName = name.replace(/[,_]/g, \"-\").replace(/\\s/g, \"\");\n      var stdFontMap = getStdFontMap(),\n        nonStdFontMap = getNonStdFontMap();\n      var isStandardFont =\n        !!stdFontMap[fontName] ||\n        !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]);\n      fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n\n      this.bold = fontName.search(/bold/gi) !== -1;\n      this.italic =\n        fontName.search(/oblique/gi) !== -1 ||\n        fontName.search(/italic/gi) !== -1;\n\n      // Use 'name' instead of 'fontName' here because the original\n      // name ArialBlack for example will be replaced by Helvetica.\n      this.black = name.search(/Black/g) !== -1;\n\n      // if at least one width is present, remeasure all chars when exists\n      this.remeasure = Object.keys(this.widths).length > 0;\n      if (\n        isStandardFont &&\n        type === \"CIDFontType2\" &&\n        this.cidEncoding.startsWith(\"Identity-\")\n      ) {\n        const GlyphMapForStandardFonts = getGlyphMapForStandardFonts();\n        // Standard fonts might be embedded as CID font without glyph mapping.\n        // Building one based on GlyphMapForStandardFonts.\n        const map = [];\n        for (const charCode in GlyphMapForStandardFonts) {\n          map[+charCode] = GlyphMapForStandardFonts[charCode];\n        }\n        if (/Arial-?Black/i.test(name)) {\n          var SupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack();\n          for (const charCode in SupplementalGlyphMapForArialBlack) {\n            map[+charCode] = SupplementalGlyphMapForArialBlack[charCode];\n          }\n        } else if (/Calibri/i.test(name)) {\n          const SupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri();\n          for (const charCode in SupplementalGlyphMapForCalibri) {\n            map[+charCode] = SupplementalGlyphMapForCalibri[charCode];\n          }\n        }\n\n        var isIdentityUnicode = this.toUnicode instanceof IdentityToUnicodeMap;\n        if (!isIdentityUnicode) {\n          this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n            map[+charCode] = unicodeCharCode;\n          });\n        }\n        this.toFontChar = map;\n        this.toUnicode = new ToUnicodeMap(map);\n      } else if (/Symbol/i.test(fontName)) {\n        this.toFontChar = buildToFontChar(\n          SymbolSetEncoding,\n          getGlyphsUnicode(),\n          this.differences\n        );\n      } else if (/Dingbats/i.test(fontName)) {\n        if (/Wingdings/i.test(name)) {\n          warn(\"Non-embedded Wingdings font, falling back to ZapfDingbats.\");\n        }\n        this.toFontChar = buildToFontChar(\n          ZapfDingbatsEncoding,\n          getDingbatsGlyphsUnicode(),\n          this.differences\n        );\n      } else if (isStandardFont) {\n        this.toFontChar = buildToFontChar(\n          this.defaultEncoding,\n          getGlyphsUnicode(),\n          this.differences\n        );\n      } else {\n        const glyphsUnicodeMap = getGlyphsUnicode();\n        const map = [];\n        this.toUnicode.forEach((charCode, unicodeCharCode) => {\n          if (!this.composite) {\n            var glyphName =\n              this.differences[charCode] || this.defaultEncoding[charCode];\n            const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n            if (unicode !== -1) {\n              unicodeCharCode = unicode;\n            }\n          }\n          map[+charCode] = unicodeCharCode;\n        });\n\n        // Attempt to improve the glyph mapping for (some) composite fonts that\n        // appear to lack meaningful ToUnicode data.\n        if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) {\n          if (/Verdana/i.test(name)) {\n            // Fixes issue11242_reduced.pdf\n            const GlyphMapForStandardFonts = getGlyphMapForStandardFonts();\n            for (const charCode in GlyphMapForStandardFonts) {\n              map[+charCode] = GlyphMapForStandardFonts[charCode];\n            }\n          }\n        }\n        this.toFontChar = map;\n      }\n      this.loadedName = fontName.split(\"-\")[0];\n      this.fontType = getFontType(type, subtype);\n    },\n\n    checkAndRepair: function Font_checkAndRepair(name, font, properties) {\n      const VALID_TABLES = [\n        \"OS/2\",\n        \"cmap\",\n        \"head\",\n        \"hhea\",\n        \"hmtx\",\n        \"maxp\",\n        \"name\",\n        \"post\",\n        \"loca\",\n        \"glyf\",\n        \"fpgm\",\n        \"prep\",\n        \"cvt \",\n        \"CFF \",\n      ];\n\n      function readTables(file, numTables) {\n        const tables = Object.create(null);\n        tables[\"OS/2\"] = null;\n        tables.cmap = null;\n        tables.head = null;\n        tables.hhea = null;\n        tables.hmtx = null;\n        tables.maxp = null;\n        tables.name = null;\n        tables.post = null;\n\n        for (let i = 0; i < numTables; i++) {\n          const table = readTableEntry(file);\n          if (!VALID_TABLES.includes(table.tag)) {\n            continue; // skipping table if it's not a required or optional table\n          }\n          if (table.length === 0) {\n            continue; // skipping empty tables\n          }\n          tables[table.tag] = table;\n        }\n        return tables;\n      }\n\n      function readTableEntry(file) {\n        var tag = bytesToString(file.getBytes(4));\n\n        var checksum = file.getInt32() >>> 0;\n        var offset = file.getInt32() >>> 0;\n        var length = file.getInt32() >>> 0;\n\n        // Read the table associated data\n        var previousPosition = file.pos;\n        file.pos = file.start ? file.start : 0;\n        file.skip(offset);\n        var data = file.getBytes(length);\n        file.pos = previousPosition;\n\n        if (tag === \"head\") {\n          // clearing checksum adjustment\n          data[8] = data[9] = data[10] = data[11] = 0;\n          data[17] |= 0x20; // Set font optimized for cleartype flag.\n        }\n\n        return {\n          tag,\n          checksum,\n          length,\n          offset,\n          data,\n        };\n      }\n\n      function readOpenTypeHeader(ttf) {\n        return {\n          version: bytesToString(ttf.getBytes(4)),\n          numTables: ttf.getUint16(),\n          searchRange: ttf.getUint16(),\n          entrySelector: ttf.getUint16(),\n          rangeShift: ttf.getUint16(),\n        };\n      }\n\n      function readTrueTypeCollectionHeader(ttc) {\n        const ttcTag = bytesToString(ttc.getBytes(4));\n        assert(ttcTag === \"ttcf\", \"Must be a TrueType Collection font.\");\n\n        const majorVersion = ttc.getUint16();\n        const minorVersion = ttc.getUint16();\n        const numFonts = ttc.getInt32() >>> 0;\n        const offsetTable = [];\n        for (let i = 0; i < numFonts; i++) {\n          offsetTable.push(ttc.getInt32() >>> 0);\n        }\n\n        const header = {\n          ttcTag,\n          majorVersion,\n          minorVersion,\n          numFonts,\n          offsetTable,\n        };\n        switch (majorVersion) {\n          case 1:\n            return header;\n          case 2:\n            header.dsigTag = ttc.getInt32() >>> 0;\n            header.dsigLength = ttc.getInt32() >>> 0;\n            header.dsigOffset = ttc.getInt32() >>> 0;\n            return header;\n        }\n        throw new FormatError(\n          `Invalid TrueType Collection majorVersion: ${majorVersion}.`\n        );\n      }\n\n      function readTrueTypeCollectionData(ttc, fontName) {\n        const { numFonts, offsetTable } = readTrueTypeCollectionHeader(ttc);\n\n        for (let i = 0; i < numFonts; i++) {\n          ttc.pos = (ttc.start || 0) + offsetTable[i];\n          const potentialHeader = readOpenTypeHeader(ttc);\n          const potentialTables = readTables(ttc, potentialHeader.numTables);\n\n          if (!potentialTables.name) {\n            throw new FormatError(\n              'TrueType Collection font must contain a \"name\" table.'\n            );\n          }\n          const nameTable = readNameTable(potentialTables.name);\n\n          for (let j = 0, jj = nameTable.length; j < jj; j++) {\n            for (let k = 0, kk = nameTable[j].length; k < kk; k++) {\n              const nameEntry = nameTable[j][k];\n              if (nameEntry && nameEntry.replace(/\\s/g, \"\") === fontName) {\n                return {\n                  header: potentialHeader,\n                  tables: potentialTables,\n                };\n              }\n            }\n          }\n        }\n        throw new FormatError(\n          `TrueType Collection does not contain \"${fontName}\" font.`\n        );\n      }\n\n      /**\n       * Read the appropriate subtable from the cmap according to 9.6.6.4 from\n       * PDF spec\n       */\n      function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {\n        if (!cmap) {\n          warn(\"No cmap table available.\");\n          return {\n            platformId: -1,\n            encodingId: -1,\n            mappings: [],\n            hasShortCmap: false,\n          };\n        }\n        var segment;\n        var start = (file.start ? file.start : 0) + cmap.offset;\n        file.pos = start;\n\n        file.skip(2); // version\n        var numTables = file.getUint16();\n\n        var potentialTable;\n        var canBreak = false;\n        // There's an order of preference in terms of which cmap subtable to\n        // use:\n        // - non-symbolic fonts the preference is a 3,1 table then a 1,0 table\n        // - symbolic fonts the preference is a 3,0 table then a 1,0 table\n        // The following takes advantage of the fact that the tables are sorted\n        // to work.\n        for (var i = 0; i < numTables; i++) {\n          var platformId = file.getUint16();\n          var encodingId = file.getUint16();\n          var offset = file.getInt32() >>> 0;\n          var useTable = false;\n\n          // Sometimes there are multiple of the same type of table. Default\n          // to choosing the first table and skip the rest.\n          if (\n            potentialTable &&\n            potentialTable.platformId === platformId &&\n            potentialTable.encodingId === encodingId\n          ) {\n            continue;\n          }\n\n          if (platformId === 0 && encodingId === 0) {\n            useTable = true;\n            // Continue the loop since there still may be a higher priority\n            // table.\n          } else if (platformId === 1 && encodingId === 0) {\n            useTable = true;\n            // Continue the loop since there still may be a higher priority\n            // table.\n          } else if (\n            platformId === 3 &&\n            encodingId === 1 &&\n            (hasEncoding || !potentialTable)\n          ) {\n            useTable = true;\n            if (!isSymbolicFont) {\n              canBreak = true;\n            }\n          } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n            useTable = true;\n            canBreak = true;\n          }\n\n          if (useTable) {\n            potentialTable = {\n              platformId,\n              encodingId,\n              offset,\n            };\n          }\n          if (canBreak) {\n            break;\n          }\n        }\n\n        if (potentialTable) {\n          file.pos = start + potentialTable.offset;\n        }\n        if (!potentialTable || file.peekByte() === -1) {\n          warn(\"Could not find a preferred cmap table.\");\n          return {\n            platformId: -1,\n            encodingId: -1,\n            mappings: [],\n            hasShortCmap: false,\n          };\n        }\n\n        var format = file.getUint16();\n        file.skip(2 + 2); // length + language\n\n        var hasShortCmap = false;\n        var mappings = [];\n        var j, glyphId;\n\n        // TODO(mack): refactor this cmap subtable reading logic out\n        if (format === 0) {\n          for (j = 0; j < 256; j++) {\n            var index = file.getByte();\n            if (!index) {\n              continue;\n            }\n            mappings.push({\n              charCode: j,\n              glyphId: index,\n            });\n          }\n          hasShortCmap = true;\n        } else if (format === 4) {\n          // re-creating the table in format 4 since the encoding\n          // might be changed\n          var segCount = file.getUint16() >> 1;\n          file.skip(6); // skipping range fields\n          var segIndex,\n            segments = [];\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segments.push({ end: file.getUint16() });\n          }\n          file.skip(2);\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segments[segIndex].start = file.getUint16();\n          }\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segments[segIndex].delta = file.getUint16();\n          }\n\n          var offsetsCount = 0;\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segment = segments[segIndex];\n            var rangeOffset = file.getUint16();\n            if (!rangeOffset) {\n              segment.offsetIndex = -1;\n              continue;\n            }\n\n            var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n            segment.offsetIndex = offsetIndex;\n            offsetsCount = Math.max(\n              offsetsCount,\n              offsetIndex + segment.end - segment.start + 1\n            );\n          }\n\n          var offsets = [];\n          for (j = 0; j < offsetsCount; j++) {\n            offsets.push(file.getUint16());\n          }\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segment = segments[segIndex];\n            start = segment.start;\n            var end = segment.end;\n            var delta = segment.delta;\n            offsetIndex = segment.offsetIndex;\n\n            for (j = start; j <= end; j++) {\n              if (j === 0xffff) {\n                continue;\n              }\n\n              glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n              glyphId = (glyphId + delta) & 0xffff;\n              mappings.push({\n                charCode: j,\n                glyphId,\n              });\n            }\n          }\n        } else if (format === 6) {\n          // Format 6 is a 2-bytes dense mapping, which means the font data\n          // lives glue together even if they are pretty far in the unicode\n          // table. (This looks weird, so I can have missed something), this\n          // works on Linux but seems to fails on Mac so let's rewrite the\n          // cmap table to a 3-1-4 style\n          var firstCode = file.getUint16();\n          var entryCount = file.getUint16();\n\n          for (j = 0; j < entryCount; j++) {\n            glyphId = file.getUint16();\n            var charCode = firstCode + j;\n\n            mappings.push({\n              charCode,\n              glyphId,\n            });\n          }\n        } else {\n          warn(\"cmap table has unsupported format: \" + format);\n          return {\n            platformId: -1,\n            encodingId: -1,\n            mappings: [],\n            hasShortCmap: false,\n          };\n        }\n\n        // removing duplicate entries\n        mappings.sort(function (a, b) {\n          return a.charCode - b.charCode;\n        });\n        for (i = 1; i < mappings.length; i++) {\n          if (mappings[i - 1].charCode === mappings[i].charCode) {\n            mappings.splice(i, 1);\n            i--;\n          }\n        }\n\n        return {\n          platformId: potentialTable.platformId,\n          encodingId: potentialTable.encodingId,\n          mappings,\n          hasShortCmap,\n        };\n      }\n\n      function sanitizeMetrics(\n        file,\n        header,\n        metrics,\n        numGlyphs,\n        dupFirstEntry\n      ) {\n        if (!header) {\n          if (metrics) {\n            metrics.data = null;\n          }\n          return;\n        }\n\n        file.pos = (file.start ? file.start : 0) + header.offset;\n        file.pos += 4; // version\n        file.pos += 2; // ascent\n        file.pos += 2; // descent\n        file.pos += 2; // linegap\n        file.pos += 2; // adv_width_max\n        file.pos += 2; // min_sb1\n        file.pos += 2; // min_sb2\n        file.pos += 2; // max_extent\n        file.pos += 2; // caret_slope_rise\n        file.pos += 2; // caret_slope_run\n        file.pos += 2; // caret_offset\n        file.pos += 8; // reserved\n        file.pos += 2; // format\n        var numOfMetrics = file.getUint16();\n\n        if (numOfMetrics > numGlyphs) {\n          info(\n            \"The numOfMetrics (\" +\n              numOfMetrics +\n              \") should not be \" +\n              \"greater than the numGlyphs (\" +\n              numGlyphs +\n              \")\"\n          );\n          // Reduce numOfMetrics if it is greater than numGlyphs\n          numOfMetrics = numGlyphs;\n          header.data[34] = (numOfMetrics & 0xff00) >> 8;\n          header.data[35] = numOfMetrics & 0x00ff;\n        }\n\n        var numOfSidebearings = numGlyphs - numOfMetrics;\n        var numMissing =\n          numOfSidebearings - ((metrics.length - numOfMetrics * 4) >> 1);\n\n        if (numMissing > 0) {\n          // For each missing glyph, we set both the width and lsb to 0 (zero).\n          // Since we need to add two properties for each glyph, this explains\n          // the use of |numMissing * 2| when initializing the typed array.\n          var entries = new Uint8Array(metrics.length + numMissing * 2);\n          entries.set(metrics.data);\n          if (dupFirstEntry) {\n            // Set the sidebearing value of the duplicated glyph.\n            entries[metrics.length] = metrics.data[2];\n            entries[metrics.length + 1] = metrics.data[3];\n          }\n          metrics.data = entries;\n        }\n      }\n\n      function sanitizeGlyph(\n        source,\n        sourceStart,\n        sourceEnd,\n        dest,\n        destStart,\n        hintsValid\n      ) {\n        var glyphProfile = {\n          length: 0,\n          sizeOfInstructions: 0,\n        };\n        if (sourceEnd - sourceStart <= 12) {\n          // glyph with data less than 12 is invalid one\n          return glyphProfile;\n        }\n        var glyf = source.subarray(sourceStart, sourceEnd);\n        var contoursCount = signedInt16(glyf[0], glyf[1]);\n        if (contoursCount < 0) {\n          // OTS doesn't like contour count to be less than -1.\n          contoursCount = -1;\n          writeSignedInt16(glyf, 0, contoursCount);\n          // complex glyph, writing as is\n          dest.set(glyf, destStart);\n          glyphProfile.length = glyf.length;\n          return glyphProfile;\n        }\n\n        var i,\n          j = 10,\n          flagsCount = 0;\n        for (i = 0; i < contoursCount; i++) {\n          var endPoint = (glyf[j] << 8) | glyf[j + 1];\n          flagsCount = endPoint + 1;\n          j += 2;\n        }\n        // skipping instructions\n        var instructionsStart = j;\n        var instructionsLength = (glyf[j] << 8) | glyf[j + 1];\n        glyphProfile.sizeOfInstructions = instructionsLength;\n        j += 2 + instructionsLength;\n        var instructionsEnd = j;\n        // validating flags\n        var coordinatesLength = 0;\n        for (i = 0; i < flagsCount; i++) {\n          var flag = glyf[j++];\n          if (flag & 0xc0) {\n            // reserved flags must be zero, cleaning up\n            glyf[j - 1] = flag & 0x3f;\n          }\n          let xLength = 2;\n          if (flag & 2) {\n            xLength = 1;\n          } else if (flag & 16) {\n            xLength = 0;\n          }\n          let yLength = 2;\n          if (flag & 4) {\n            yLength = 1;\n          } else if (flag & 32) {\n            yLength = 0;\n          }\n          const xyLength = xLength + yLength;\n          coordinatesLength += xyLength;\n          if (flag & 8) {\n            var repeat = glyf[j++];\n            i += repeat;\n            coordinatesLength += repeat * xyLength;\n          }\n        }\n        // glyph without coordinates will be rejected\n        if (coordinatesLength === 0) {\n          return glyphProfile;\n        }\n        var glyphDataLength = j + coordinatesLength;\n        if (glyphDataLength > glyf.length) {\n          // not enough data for coordinates\n          return glyphProfile;\n        }\n        if (!hintsValid && instructionsLength > 0) {\n          dest.set(glyf.subarray(0, instructionsStart), destStart);\n          dest.set([0, 0], destStart + instructionsStart);\n          dest.set(\n            glyf.subarray(instructionsEnd, glyphDataLength),\n            destStart + instructionsStart + 2\n          );\n          glyphDataLength -= instructionsLength;\n          if (glyf.length - glyphDataLength > 3) {\n            glyphDataLength = (glyphDataLength + 3) & ~3;\n          }\n          glyphProfile.length = glyphDataLength;\n          return glyphProfile;\n        }\n        if (glyf.length - glyphDataLength > 3) {\n          // truncating and aligning to 4 bytes the long glyph data\n          glyphDataLength = (glyphDataLength + 3) & ~3;\n          dest.set(glyf.subarray(0, glyphDataLength), destStart);\n          glyphProfile.length = glyphDataLength;\n          return glyphProfile;\n        }\n        // glyph data is fine\n        dest.set(glyf, destStart);\n        glyphProfile.length = glyf.length;\n        return glyphProfile;\n      }\n\n      function sanitizeHead(head, numGlyphs, locaLength) {\n        var data = head.data;\n\n        // Validate version:\n        // Should always be 0x00010000\n        var version = int32(data[0], data[1], data[2], data[3]);\n        if (version >> 16 !== 1) {\n          info(\"Attempting to fix invalid version in head table: \" + version);\n          data[0] = 0;\n          data[1] = 1;\n          data[2] = 0;\n          data[3] = 0;\n        }\n\n        var indexToLocFormat = int16(data[50], data[51]);\n        if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n          info(\n            \"Attempting to fix invalid indexToLocFormat in head table: \" +\n              indexToLocFormat\n          );\n\n          // The value of indexToLocFormat should be 0 if the loca table\n          // consists of short offsets, and should be 1 if the loca table\n          // consists of long offsets.\n          //\n          // The number of entries in the loca table should be numGlyphs + 1.\n          //\n          // Using this information, we can work backwards to deduce if the\n          // size of each offset in the loca table, and thus figure out the\n          // appropriate value for indexToLocFormat.\n\n          var numGlyphsPlusOne = numGlyphs + 1;\n          if (locaLength === numGlyphsPlusOne << 1) {\n            // 0x0000 indicates the loca table consists of short offsets\n            data[50] = 0;\n            data[51] = 0;\n          } else if (locaLength === numGlyphsPlusOne << 2) {\n            // 0x0001 indicates the loca table consists of long offsets\n            data[50] = 0;\n            data[51] = 1;\n          } else {\n            throw new FormatError(\n              \"Could not fix indexToLocFormat: \" + indexToLocFormat\n            );\n          }\n        }\n      }\n\n      function sanitizeGlyphLocations(\n        loca,\n        glyf,\n        numGlyphs,\n        isGlyphLocationsLong,\n        hintsValid,\n        dupFirstEntry,\n        maxSizeOfInstructions\n      ) {\n        var itemSize, itemDecode, itemEncode;\n        if (isGlyphLocationsLong) {\n          itemSize = 4;\n          itemDecode = function fontItemDecodeLong(data, offset) {\n            return (\n              (data[offset] << 24) |\n              (data[offset + 1] << 16) |\n              (data[offset + 2] << 8) |\n              data[offset + 3]\n            );\n          };\n          itemEncode = function fontItemEncodeLong(data, offset, value) {\n            data[offset] = (value >>> 24) & 0xff;\n            data[offset + 1] = (value >> 16) & 0xff;\n            data[offset + 2] = (value >> 8) & 0xff;\n            data[offset + 3] = value & 0xff;\n          };\n        } else {\n          itemSize = 2;\n          itemDecode = function fontItemDecode(data, offset) {\n            return (data[offset] << 9) | (data[offset + 1] << 1);\n          };\n          itemEncode = function fontItemEncode(data, offset, value) {\n            data[offset] = (value >> 9) & 0xff;\n            data[offset + 1] = (value >> 1) & 0xff;\n          };\n        }\n        // The first glyph is duplicated.\n        var numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n        var locaDataSize = itemSize * (1 + numGlyphsOut);\n        // Resize loca table to account for duplicated glyph.\n        var locaData = new Uint8Array(locaDataSize);\n        locaData.set(loca.data.subarray(0, locaDataSize));\n        loca.data = locaData;\n        // removing the invalid glyphs\n        var oldGlyfData = glyf.data;\n        var oldGlyfDataLength = oldGlyfData.length;\n        var newGlyfData = new Uint8Array(oldGlyfDataLength);\n        var startOffset = itemDecode(locaData, 0);\n        var writeOffset = 0;\n        var missingGlyphs = Object.create(null);\n        itemEncode(locaData, 0, writeOffset);\n        var i, j;\n        for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n          var endOffset = itemDecode(locaData, j);\n          // The spec says the offsets should be in ascending order, however\n          // some fonts use the offset of 0 to mark a glyph as missing.\n          if (endOffset === 0) {\n            endOffset = startOffset;\n          }\n          if (\n            endOffset > oldGlyfDataLength &&\n            ((oldGlyfDataLength + 3) & ~3) === endOffset\n          ) {\n            // Aspose breaks fonts by aligning the glyphs to the qword, but not\n            // the glyf table size, which makes last glyph out of range.\n            endOffset = oldGlyfDataLength;\n          }\n          if (endOffset > oldGlyfDataLength) {\n            // glyph end offset points outside glyf data, rejecting the glyph\n            startOffset = endOffset;\n          }\n\n          var glyphProfile = sanitizeGlyph(\n            oldGlyfData,\n            startOffset,\n            endOffset,\n            newGlyfData,\n            writeOffset,\n            hintsValid\n          );\n          var newLength = glyphProfile.length;\n          if (newLength === 0) {\n            missingGlyphs[i] = true;\n          }\n          if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n            maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n          }\n          writeOffset += newLength;\n          itemEncode(locaData, j, writeOffset);\n          startOffset = endOffset;\n        }\n\n        if (writeOffset === 0) {\n          // glyf table cannot be empty -- redoing the glyf and loca tables\n          // to have single glyph with one point\n          var simpleGlyph = new Uint8Array([\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            49,\n            0,\n          ]);\n          for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n            itemEncode(locaData, j, simpleGlyph.length);\n          }\n          glyf.data = simpleGlyph;\n        } else if (dupFirstEntry) {\n          // Browsers will not display a glyph at position 0. Typically glyph 0\n          // is notdef, but a number of fonts put a valid glyph there so it must\n          // be duplicated and appended.\n          var firstEntryLength = itemDecode(locaData, itemSize);\n          if (newGlyfData.length > firstEntryLength + writeOffset) {\n            glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n          } else {\n            glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n            glyf.data.set(newGlyfData.subarray(0, writeOffset));\n          }\n          glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n          itemEncode(\n            loca.data,\n            locaData.length - itemSize,\n            writeOffset + firstEntryLength\n          );\n        } else {\n          glyf.data = newGlyfData.subarray(0, writeOffset);\n        }\n        return {\n          missingGlyphs,\n          maxSizeOfInstructions,\n        };\n      }\n\n      function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) {\n        var start = (font.start ? font.start : 0) + post.offset;\n        font.pos = start;\n\n        var length = post.length,\n          end = start + length;\n        var version = font.getInt32();\n        // skip rest to the tables\n        font.skip(28);\n\n        var glyphNames;\n        var valid = true;\n        var i;\n\n        switch (version) {\n          case 0x00010000:\n            glyphNames = MacStandardGlyphOrdering;\n            break;\n          case 0x00020000:\n            var numGlyphs = font.getUint16();\n            if (numGlyphs !== maxpNumGlyphs) {\n              valid = false;\n              break;\n            }\n            var glyphNameIndexes = [];\n            for (i = 0; i < numGlyphs; ++i) {\n              var index = font.getUint16();\n              if (index >= 32768) {\n                valid = false;\n                break;\n              }\n              glyphNameIndexes.push(index);\n            }\n            if (!valid) {\n              break;\n            }\n            var customNames = [];\n            var strBuf = [];\n            while (font.pos < end) {\n              var stringLength = font.getByte();\n              strBuf.length = stringLength;\n              for (i = 0; i < stringLength; ++i) {\n                strBuf[i] = String.fromCharCode(font.getByte());\n              }\n              customNames.push(strBuf.join(\"\"));\n            }\n            glyphNames = [];\n            for (i = 0; i < numGlyphs; ++i) {\n              var j = glyphNameIndexes[i];\n              if (j < 258) {\n                glyphNames.push(MacStandardGlyphOrdering[j]);\n                continue;\n              }\n              glyphNames.push(customNames[j - 258]);\n            }\n            break;\n          case 0x00030000:\n            break;\n          default:\n            warn(\"Unknown/unsupported post table version \" + version);\n            valid = false;\n            if (propertiesObj.defaultEncoding) {\n              glyphNames = propertiesObj.defaultEncoding;\n            }\n            break;\n        }\n        propertiesObj.glyphNames = glyphNames;\n        return valid;\n      }\n\n      function readNameTable(nameTable) {\n        var start = (font.start ? font.start : 0) + nameTable.offset;\n        font.pos = start;\n\n        var names = [[], []];\n        var length = nameTable.length,\n          end = start + length;\n        var format = font.getUint16();\n        var FORMAT_0_HEADER_LENGTH = 6;\n        if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n          // unsupported name table format or table \"too\" small\n          return names;\n        }\n        var numRecords = font.getUint16();\n        var stringsStart = font.getUint16();\n        var records = [];\n        var NAME_RECORD_LENGTH = 12;\n        var i, ii;\n\n        for (\n          i = 0;\n          i < numRecords && font.pos + NAME_RECORD_LENGTH <= end;\n          i++\n        ) {\n          var r = {\n            platform: font.getUint16(),\n            encoding: font.getUint16(),\n            language: font.getUint16(),\n            name: font.getUint16(),\n            length: font.getUint16(),\n            offset: font.getUint16(),\n          };\n          // using only Macintosh and Windows platform/encoding names\n          if (\n            (r.platform === 1 && r.encoding === 0 && r.language === 0) ||\n            (r.platform === 3 && r.encoding === 1 && r.language === 0x409)\n          ) {\n            records.push(r);\n          }\n        }\n        for (i = 0, ii = records.length; i < ii; i++) {\n          var record = records[i];\n          if (record.length <= 0) {\n            continue; // Nothing to process, ignoring.\n          }\n          var pos = start + stringsStart + record.offset;\n          if (pos + record.length > end) {\n            continue; // outside of name table, ignoring\n          }\n          font.pos = pos;\n          var nameIndex = record.name;\n          if (record.encoding) {\n            // unicode\n            var str = \"\";\n            for (var j = 0, jj = record.length; j < jj; j += 2) {\n              str += String.fromCharCode(font.getUint16());\n            }\n            names[1][nameIndex] = str;\n          } else {\n            names[0][nameIndex] = bytesToString(font.getBytes(record.length));\n          }\n        }\n        return names;\n      }\n\n      // prettier-ignore\n      var TTOpsStackDeltas = [\n        0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5,\n        -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1,\n        1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1,\n        0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2,\n        0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1,\n        -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1,\n        -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n        -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1,\n        -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n      // 0xC0-DF == -1 and 0xE0-FF == -2\n\n      function sanitizeTTProgram(table, ttContext) {\n        var data = table.data;\n        var i = 0,\n          j,\n          n,\n          b,\n          funcId,\n          pc,\n          lastEndf = 0,\n          lastDeff = 0;\n        var stack = [];\n        var callstack = [];\n        var functionsCalled = [];\n        var tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n        var inFDEF = false,\n          ifLevel = 0,\n          inELSE = 0;\n        for (var ii = data.length; i < ii; ) {\n          var op = data[i++];\n          // The TrueType instruction set docs can be found at\n          // https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html\n          if (op === 0x40) {\n            // NPUSHB - pushes n bytes\n            n = data[i++];\n            if (inFDEF || inELSE) {\n              i += n;\n            } else {\n              for (j = 0; j < n; j++) {\n                stack.push(data[i++]);\n              }\n            }\n          } else if (op === 0x41) {\n            // NPUSHW - pushes n words\n            n = data[i++];\n            if (inFDEF || inELSE) {\n              i += n * 2;\n            } else {\n              for (j = 0; j < n; j++) {\n                b = data[i++];\n                stack.push((b << 8) | data[i++]);\n              }\n            }\n          } else if ((op & 0xf8) === 0xb0) {\n            // PUSHB - pushes bytes\n            n = op - 0xb0 + 1;\n            if (inFDEF || inELSE) {\n              i += n;\n            } else {\n              for (j = 0; j < n; j++) {\n                stack.push(data[i++]);\n              }\n            }\n          } else if ((op & 0xf8) === 0xb8) {\n            // PUSHW - pushes words\n            n = op - 0xb8 + 1;\n            if (inFDEF || inELSE) {\n              i += n * 2;\n            } else {\n              for (j = 0; j < n; j++) {\n                b = data[i++];\n                stack.push((b << 8) | data[i++]);\n              }\n            }\n          } else if (op === 0x2b && !tooComplexToFollowFunctions) {\n            // CALL\n            if (!inFDEF && !inELSE) {\n              // collecting information about which functions are used\n              funcId = stack[stack.length - 1];\n              if (isNaN(funcId)) {\n                info(\"TT: CALL empty stack (or invalid entry).\");\n              } else {\n                ttContext.functionsUsed[funcId] = true;\n                if (funcId in ttContext.functionsStackDeltas) {\n                  const newStackLength =\n                    stack.length + ttContext.functionsStackDeltas[funcId];\n                  if (newStackLength < 0) {\n                    warn(\"TT: CALL invalid functions stack delta.\");\n                    ttContext.hintsValid = false;\n                    return;\n                  }\n                  stack.length = newStackLength;\n                } else if (\n                  funcId in ttContext.functionsDefined &&\n                  !functionsCalled.includes(funcId)\n                ) {\n                  callstack.push({ data, i, stackTop: stack.length - 1 });\n                  functionsCalled.push(funcId);\n                  pc = ttContext.functionsDefined[funcId];\n                  if (!pc) {\n                    warn(\"TT: CALL non-existent function\");\n                    ttContext.hintsValid = false;\n                    return;\n                  }\n                  data = pc.data;\n                  i = pc.i;\n                }\n              }\n            }\n          } else if (op === 0x2c && !tooComplexToFollowFunctions) {\n            // FDEF\n            if (inFDEF || inELSE) {\n              warn(\"TT: nested FDEFs not allowed\");\n              tooComplexToFollowFunctions = true;\n            }\n            inFDEF = true;\n            // collecting information about which functions are defined\n            lastDeff = i;\n            funcId = stack.pop();\n            ttContext.functionsDefined[funcId] = { data, i };\n          } else if (op === 0x2d) {\n            // ENDF - end of function\n            if (inFDEF) {\n              inFDEF = false;\n              lastEndf = i;\n            } else {\n              pc = callstack.pop();\n              if (!pc) {\n                warn(\"TT: ENDF bad stack\");\n                ttContext.hintsValid = false;\n                return;\n              }\n              funcId = functionsCalled.pop();\n              data = pc.data;\n              i = pc.i;\n              ttContext.functionsStackDeltas[funcId] =\n                stack.length - pc.stackTop;\n            }\n          } else if (op === 0x89) {\n            // IDEF - instruction definition\n            if (inFDEF || inELSE) {\n              warn(\"TT: nested IDEFs not allowed\");\n              tooComplexToFollowFunctions = true;\n            }\n            inFDEF = true;\n            // recording it as a function to track ENDF\n            lastDeff = i;\n          } else if (op === 0x58) {\n            // IF\n            ++ifLevel;\n          } else if (op === 0x1b) {\n            // ELSE\n            inELSE = ifLevel;\n          } else if (op === 0x59) {\n            // EIF\n            if (inELSE === ifLevel) {\n              inELSE = 0;\n            }\n            --ifLevel;\n          } else if (op === 0x1c) {\n            // JMPR\n            if (!inFDEF && !inELSE) {\n              var offset = stack[stack.length - 1];\n              // only jumping forward to prevent infinite loop\n              if (offset > 0) {\n                i += offset - 1;\n              }\n            }\n          }\n          // Adjusting stack not extactly, but just enough to get function id\n          if (!inFDEF && !inELSE) {\n            let stackDelta = 0;\n            if (op <= 0x8e) {\n              stackDelta = TTOpsStackDeltas[op];\n            } else if (op >= 0xc0 && op <= 0xdf) {\n              stackDelta = -1;\n            } else if (op >= 0xe0) {\n              stackDelta = -2;\n            }\n            if (op >= 0x71 && op <= 0x75) {\n              n = stack.pop();\n              if (!isNaN(n)) {\n                stackDelta = -n * 2;\n              }\n            }\n            while (stackDelta < 0 && stack.length > 0) {\n              stack.pop();\n              stackDelta++;\n            }\n            while (stackDelta > 0) {\n              stack.push(NaN); // pushing any number into stack\n              stackDelta--;\n            }\n          }\n        }\n        ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n        var content = [data];\n        if (i > data.length) {\n          content.push(new Uint8Array(i - data.length));\n        }\n        if (lastDeff > lastEndf) {\n          warn(\"TT: complementing a missing function tail\");\n          // new function definition started, but not finished\n          // complete function by [CLEAR, ENDF]\n          content.push(new Uint8Array([0x22, 0x2d]));\n        }\n        foldTTTable(table, content);\n      }\n\n      function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n        if (ttContext.tooComplexToFollowFunctions) {\n          return;\n        }\n        if (ttContext.functionsDefined.length > maxFunctionDefs) {\n          warn(\"TT: more functions defined than expected\");\n          ttContext.hintsValid = false;\n          return;\n        }\n        for (var j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n          if (j > maxFunctionDefs) {\n            warn(\"TT: invalid function id: \" + j);\n            ttContext.hintsValid = false;\n            return;\n          }\n          if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n            warn(\"TT: undefined function: \" + j);\n            ttContext.hintsValid = false;\n            return;\n          }\n        }\n      }\n\n      function foldTTTable(table, content) {\n        if (content.length > 1) {\n          // concatenating the content items\n          var newLength = 0;\n          var j, jj;\n          for (j = 0, jj = content.length; j < jj; j++) {\n            newLength += content[j].length;\n          }\n          newLength = (newLength + 3) & ~3;\n          var result = new Uint8Array(newLength);\n          var pos = 0;\n          for (j = 0, jj = content.length; j < jj; j++) {\n            result.set(content[j], pos);\n            pos += content[j].length;\n          }\n          table.data = result;\n          table.length = newLength;\n        }\n      }\n\n      function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n        var ttContext = {\n          functionsDefined: [],\n          functionsUsed: [],\n          functionsStackDeltas: [],\n          tooComplexToFollowFunctions: false,\n          hintsValid: true,\n        };\n        if (fpgm) {\n          sanitizeTTProgram(fpgm, ttContext);\n        }\n        if (prep) {\n          sanitizeTTProgram(prep, ttContext);\n        }\n        if (fpgm) {\n          checkInvalidFunctions(ttContext, maxFunctionDefs);\n        }\n        if (cvt && cvt.length & 1) {\n          var cvtData = new Uint8Array(cvt.length + 1);\n          cvtData.set(cvt.data);\n          cvt.data = cvtData;\n        }\n        return ttContext.hintsValid;\n      }\n\n      // The following steps modify the original font data, making copy\n      font = new Stream(new Uint8Array(font.getBytes()));\n\n      let header, tables;\n      if (isTrueTypeCollectionFile(font)) {\n        const ttcData = readTrueTypeCollectionData(font, this.name);\n        header = ttcData.header;\n        tables = ttcData.tables;\n      } else {\n        header = readOpenTypeHeader(font);\n        tables = readTables(font, header.numTables);\n      }\n      let cff, cffFile;\n\n      var isTrueType = !tables[\"CFF \"];\n      if (!isTrueType) {\n        const isComposite =\n          properties.composite &&\n          ((properties.cidToGidMap || []).length > 0 ||\n            !(properties.cMap instanceof IdentityCMap));\n        // OpenType font (skip composite fonts with non-default glyph mapping).\n        if (\n          (header.version === \"OTTO\" && !isComposite) ||\n          !tables.head ||\n          !tables.hhea ||\n          !tables.maxp ||\n          !tables.post\n        ) {\n          // No major tables: throwing everything at `CFFFont`.\n          cffFile = new Stream(tables[\"CFF \"].data);\n          cff = new CFFFont(cffFile, properties);\n\n          adjustWidths(properties);\n\n          return this.convert(name, cff, properties);\n        }\n\n        delete tables.glyf;\n        delete tables.loca;\n        delete tables.fpgm;\n        delete tables.prep;\n        delete tables[\"cvt \"];\n        this.isOpenType = true;\n      } else {\n        if (!tables.loca) {\n          throw new FormatError('Required \"loca\" table is not found');\n        }\n        if (!tables.glyf) {\n          warn('Required \"glyf\" table is not found -- trying to recover.');\n          // Note: We use `sanitizeGlyphLocations` to add dummy glyf data below.\n          tables.glyf = {\n            tag: \"glyf\",\n            data: new Uint8Array(0),\n          };\n        }\n        this.isOpenType = false;\n      }\n\n      if (!tables.maxp) {\n        throw new FormatError('Required \"maxp\" table is not found');\n      }\n\n      font.pos = (font.start || 0) + tables.maxp.offset;\n      var version = font.getInt32();\n      const numGlyphs = font.getUint16();\n      // Glyph 0 is duplicated and appended.\n      let numGlyphsOut = numGlyphs + 1;\n      let dupFirstEntry = true;\n      if (numGlyphsOut > 0xffff) {\n        dupFirstEntry = false;\n        numGlyphsOut = numGlyphs;\n        warn(\"Not enough space in glyfs to duplicate first glyph.\");\n      }\n      var maxFunctionDefs = 0;\n      var maxSizeOfInstructions = 0;\n      if (version >= 0x00010000 && tables.maxp.length >= 22) {\n        // maxZones can be invalid\n        font.pos += 8;\n        var maxZones = font.getUint16();\n        if (maxZones > 2) {\n          // reset to 2 if font has invalid maxZones\n          tables.maxp.data[14] = 0;\n          tables.maxp.data[15] = 2;\n        }\n        font.pos += 4;\n        maxFunctionDefs = font.getUint16();\n        font.pos += 4;\n        maxSizeOfInstructions = font.getUint16();\n      }\n\n      tables.maxp.data[4] = numGlyphsOut >> 8;\n      tables.maxp.data[5] = numGlyphsOut & 255;\n\n      var hintsValid = sanitizeTTPrograms(\n        tables.fpgm,\n        tables.prep,\n        tables[\"cvt \"],\n        maxFunctionDefs\n      );\n      if (!hintsValid) {\n        delete tables.fpgm;\n        delete tables.prep;\n        delete tables[\"cvt \"];\n      }\n\n      // Ensure the hmtx table contains the advance width and\n      // sidebearings information for numGlyphs in the maxp table\n      sanitizeMetrics(\n        font,\n        tables.hhea,\n        tables.hmtx,\n        numGlyphsOut,\n        dupFirstEntry\n      );\n\n      if (!tables.head) {\n        throw new FormatError('Required \"head\" table is not found');\n      }\n\n      sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n\n      var missingGlyphs = Object.create(null);\n      if (isTrueType) {\n        var isGlyphLocationsLong = int16(\n          tables.head.data[50],\n          tables.head.data[51]\n        );\n        var glyphsInfo = sanitizeGlyphLocations(\n          tables.loca,\n          tables.glyf,\n          numGlyphs,\n          isGlyphLocationsLong,\n          hintsValid,\n          dupFirstEntry,\n          maxSizeOfInstructions\n        );\n        missingGlyphs = glyphsInfo.missingGlyphs;\n\n        // Some fonts have incorrect maxSizeOfInstructions values, so we use\n        // the computed value instead.\n        if (version >= 0x00010000 && tables.maxp.length >= 22) {\n          tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n          tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n        }\n      }\n      if (!tables.hhea) {\n        throw new FormatError('Required \"hhea\" table is not found');\n      }\n\n      // Sanitizer reduces the glyph advanceWidth to the maxAdvanceWidth\n      // Sometimes it's 0. That needs to be fixed\n      if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {\n        tables.hhea.data[10] = 0xff;\n        tables.hhea.data[11] = 0xff;\n      }\n\n      // Extract some more font properties from the OpenType head and\n      // hhea tables; yMin and descent value are always negative.\n      var metricsOverride = {\n        unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),\n        yMax: int16(tables.head.data[42], tables.head.data[43]),\n        yMin: signedInt16(tables.head.data[38], tables.head.data[39]),\n        ascent: int16(tables.hhea.data[4], tables.hhea.data[5]),\n        descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7]),\n      };\n\n      // PDF FontDescriptor metrics lie -- using data from actual font.\n      this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n      this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n\n      // The 'post' table has glyphs names.\n      if (tables.post) {\n        readPostScriptTable(tables.post, properties, numGlyphs);\n      }\n\n      // The original 'post' table is not needed, replace it.\n      tables.post = {\n        tag: \"post\",\n        data: createPostTable(properties),\n      };\n\n      const charCodeToGlyphId = [];\n\n      // Helper function to try to skip mapping of empty glyphs.\n      function hasGlyph(glyphId) {\n        return !missingGlyphs[glyphId];\n      }\n\n      if (properties.composite) {\n        var cidToGidMap = properties.cidToGidMap || [];\n        var isCidToGidMapEmpty = cidToGidMap.length === 0;\n\n        properties.cMap.forEach(function (charCode, cid) {\n          if (cid > 0xffff) {\n            throw new FormatError(\"Max size of CID is 65,535\");\n          }\n          var glyphId = -1;\n          if (isCidToGidMapEmpty) {\n            glyphId = cid;\n          } else if (cidToGidMap[cid] !== undefined) {\n            glyphId = cidToGidMap[cid];\n          }\n\n          if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n            charCodeToGlyphId[charCode] = glyphId;\n          }\n        });\n      } else {\n        // Most of the following logic in this code branch is based on the\n        // 9.6.6.4 of the PDF spec.\n        var cmapTable = readCmapTable(\n          tables.cmap,\n          font,\n          this.isSymbolicFont,\n          properties.hasEncoding\n        );\n        var cmapPlatformId = cmapTable.platformId;\n        var cmapEncodingId = cmapTable.encodingId;\n        var cmapMappings = cmapTable.mappings;\n        var cmapMappingsLength = cmapMappings.length;\n\n        // The spec seems to imply that if the font is symbolic the encoding\n        // should be ignored, this doesn't appear to work for 'preistabelle.pdf'\n        // where the the font is symbolic and it has an encoding.\n        if (\n          (properties.hasEncoding &&\n            ((cmapPlatformId === 3 && cmapEncodingId === 1) ||\n              (cmapPlatformId === 1 && cmapEncodingId === 0))) ||\n          (cmapPlatformId === -1 &&\n          cmapEncodingId === -1 && // Temporary hack\n            !!getEncoding(properties.baseEncodingName))\n        ) {\n          // Temporary hack\n          // When no preferred cmap table was found and |baseEncodingName| is\n          // one of the predefined encodings, we seem to obtain a better\n          // |charCodeToGlyphId| map from the code below (fixes bug 1057544).\n          // TODO: Note that this is a hack which should be removed as soon as\n          //       we have proper support for more exotic cmap tables.\n\n          var baseEncoding = [];\n          if (\n            properties.baseEncodingName === \"MacRomanEncoding\" ||\n            properties.baseEncodingName === \"WinAnsiEncoding\"\n          ) {\n            baseEncoding = getEncoding(properties.baseEncodingName);\n          }\n          var glyphsUnicodeMap = getGlyphsUnicode();\n          for (let charCode = 0; charCode < 256; charCode++) {\n            var glyphName, standardGlyphName;\n            if (this.differences && charCode in this.differences) {\n              glyphName = this.differences[charCode];\n            } else if (\n              charCode in baseEncoding &&\n              baseEncoding[charCode] !== \"\"\n            ) {\n              glyphName = baseEncoding[charCode];\n            } else {\n              glyphName = StandardEncoding[charCode];\n            }\n            if (!glyphName) {\n              continue;\n            }\n            // Ensure that non-standard glyph names are resolved to valid ones.\n            standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n\n            var unicodeOrCharCode;\n            if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n              unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n            } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n              // TODO: the encoding needs to be updated with mac os table.\n              unicodeOrCharCode = MacRomanEncoding.indexOf(standardGlyphName);\n            }\n\n            var found = false;\n            for (let i = 0; i < cmapMappingsLength; ++i) {\n              if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n                continue;\n              }\n              charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n              found = true;\n              break;\n            }\n            if (!found && properties.glyphNames) {\n              // Try to map using the post table.\n              var glyphId = properties.glyphNames.indexOf(glyphName);\n              // The post table ought to use the same kind of glyph names as the\n              // `differences` array, but check the standard ones as a fallback.\n              if (glyphId === -1 && standardGlyphName !== glyphName) {\n                glyphId = properties.glyphNames.indexOf(standardGlyphName);\n              }\n              if (glyphId > 0 && hasGlyph(glyphId)) {\n                charCodeToGlyphId[charCode] = glyphId;\n              }\n            }\n          }\n        } else if (cmapPlatformId === 0 && cmapEncodingId === 0) {\n          // Default Unicode semantics, use the charcodes as is.\n          for (let i = 0; i < cmapMappingsLength; ++i) {\n            charCodeToGlyphId[cmapMappings[i].charCode] =\n              cmapMappings[i].glyphId;\n          }\n        } else {\n          // When there is only a (1, 0) cmap table, the char code is a single\n          // byte and it is used directly as the char code.\n\n          // When a (3, 0) cmap table is present, it is used instead but the\n          // spec has special rules for char codes in the range of 0xF000 to\n          // 0xF0FF and it says the (3, 0) table should map the values from\n          // the (1, 0) table by prepending 0xF0 to the char codes. To reverse\n          // this, the upper bits of the char code are cleared, but only for the\n          // special range since some PDFs have char codes outside of this range\n          // (e.g. 0x2013) which when masked would overwrite other values in the\n          // cmap.\n          for (let i = 0; i < cmapMappingsLength; ++i) {\n            let charCode = cmapMappings[i].charCode;\n            if (\n              cmapPlatformId === 3 &&\n              charCode >= 0xf000 &&\n              charCode <= 0xf0ff\n            ) {\n              charCode &= 0xff;\n            }\n            charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n          }\n        }\n      }\n\n      if (charCodeToGlyphId.length === 0) {\n        // defines at least one glyph\n        charCodeToGlyphId[0] = 0;\n      }\n\n      // Typically glyph 0 is duplicated and the mapping must be updated, but if\n      // there isn't enough room to duplicate, the glyph id is left the same. In\n      // this case, glyph 0 may not work correctly, but that is better than\n      // having the whole font fail.\n      let glyphZeroId = numGlyphsOut - 1;\n      if (!dupFirstEntry) {\n        glyphZeroId = 0;\n      }\n\n      // Converting glyphs and ids into font's cmap table\n      var newMapping = adjustMapping(charCodeToGlyphId, hasGlyph, glyphZeroId);\n      this.toFontChar = newMapping.toFontChar;\n      tables.cmap = {\n        tag: \"cmap\",\n        data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphsOut),\n      };\n\n      if (!tables[\"OS/2\"] || !validateOS2Table(tables[\"OS/2\"], font)) {\n        tables[\"OS/2\"] = {\n          tag: \"OS/2\",\n          data: createOS2Table(\n            properties,\n            newMapping.charCodeToGlyphId,\n            metricsOverride\n          ),\n        };\n      }\n\n      if (!isTrueType) {\n        try {\n          // Trying to repair CFF file\n          cffFile = new Stream(tables[\"CFF \"].data);\n          var parser = new CFFParser(\n            cffFile,\n            properties,\n            SEAC_ANALYSIS_ENABLED\n          );\n          cff = parser.parse();\n          cff.duplicateFirstGlyph();\n          var compiler = new CFFCompiler(cff);\n          tables[\"CFF \"].data = compiler.compile();\n        } catch (e) {\n          warn(\"Failed to compile font \" + properties.loadedName);\n        }\n      }\n\n      // Re-creating 'name' table\n      if (!tables.name) {\n        tables.name = {\n          tag: \"name\",\n          data: createNameTable(this.name),\n        };\n      } else {\n        // ... using existing 'name' table as prototype\n        var namePrototype = readNameTable(tables.name);\n        tables.name.data = createNameTable(name, namePrototype);\n      }\n\n      var builder = new OpenTypeFileBuilder(header.version);\n      for (var tableTag in tables) {\n        builder.addTable(tableTag, tables[tableTag].data);\n      }\n      return builder.toArray();\n    },\n\n    convert: function Font_convert(fontName, font, properties) {\n      // TODO: Check the charstring widths to determine this.\n      properties.fixedPitch = false;\n\n      if (properties.builtInEncoding) {\n        // For Type1 fonts that do not include either `ToUnicode` or `Encoding`\n        // data, attempt to use the `builtInEncoding` to improve text selection.\n        adjustToUnicode(properties, properties.builtInEncoding);\n      }\n\n      // Type 1 fonts have a notdef inserted at the beginning, so glyph 0\n      // becomes glyph 1. In a CFF font glyph 0 is appended to the end of the\n      // char strings.\n      let glyphZeroId = 1;\n      if (font instanceof CFFFont) {\n        glyphZeroId = font.numGlyphs - 1;\n      }\n      var mapping = font.getGlyphMapping(properties);\n      var newMapping = adjustMapping(\n        mapping,\n        font.hasGlyphId.bind(font),\n        glyphZeroId\n      );\n      this.toFontChar = newMapping.toFontChar;\n      var numGlyphs = font.numGlyphs;\n\n      function getCharCodes(charCodeToGlyphId, glyphId) {\n        var charCodes = null;\n        for (var charCode in charCodeToGlyphId) {\n          if (glyphId === charCodeToGlyphId[charCode]) {\n            if (!charCodes) {\n              charCodes = [];\n            }\n            charCodes.push(charCode | 0);\n          }\n        }\n        return charCodes;\n      }\n\n      function createCharCode(charCodeToGlyphId, glyphId) {\n        for (var charCode in charCodeToGlyphId) {\n          if (glyphId === charCodeToGlyphId[charCode]) {\n            return charCode | 0;\n          }\n        }\n        newMapping.charCodeToGlyphId[\n          newMapping.nextAvailableFontCharCode\n        ] = glyphId;\n        return newMapping.nextAvailableFontCharCode++;\n      }\n\n      var seacs = font.seacs;\n      if (SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n        var matrix = properties.fontMatrix || FONT_IDENTITY_MATRIX;\n        var charset = font.getCharset();\n        var seacMap = Object.create(null);\n        for (var glyphId in seacs) {\n          glyphId |= 0;\n          var seac = seacs[glyphId];\n          var baseGlyphName = StandardEncoding[seac[2]];\n          var accentGlyphName = StandardEncoding[seac[3]];\n          var baseGlyphId = charset.indexOf(baseGlyphName);\n          var accentGlyphId = charset.indexOf(accentGlyphName);\n          if (baseGlyphId < 0 || accentGlyphId < 0) {\n            continue;\n          }\n          var accentOffset = {\n            x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n            y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5],\n          };\n\n          var charCodes = getCharCodes(mapping, glyphId);\n          if (!charCodes) {\n            // There's no point in mapping it if the char code was never mapped\n            // to begin with.\n            continue;\n          }\n          for (let i = 0, ii = charCodes.length; i < ii; i++) {\n            var charCode = charCodes[i];\n            // Find a fontCharCode that maps to the base and accent glyphs.\n            // If one doesn't exists, create it.\n            var charCodeToGlyphId = newMapping.charCodeToGlyphId;\n            var baseFontCharCode = createCharCode(\n              charCodeToGlyphId,\n              baseGlyphId\n            );\n            var accentFontCharCode = createCharCode(\n              charCodeToGlyphId,\n              accentGlyphId\n            );\n            seacMap[charCode] = {\n              baseFontCharCode,\n              accentFontCharCode,\n              accentOffset,\n            };\n          }\n        }\n        properties.seacMap = seacMap;\n      }\n\n      var unitsPerEm = 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n      var builder = new OpenTypeFileBuilder(\"\\x4F\\x54\\x54\\x4F\");\n      // PostScript Font Program\n      builder.addTable(\"CFF \", font.data);\n      // OS/2 and Windows Specific metrics\n      builder.addTable(\n        \"OS/2\",\n        createOS2Table(properties, newMapping.charCodeToGlyphId)\n      );\n      // Character to glyphs mapping\n      builder.addTable(\n        \"cmap\",\n        createCmapTable(newMapping.charCodeToGlyphId, numGlyphs)\n      );\n      // Font header\n      builder.addTable(\n        \"head\",\n        \"\\x00\\x01\\x00\\x00\" + // Version number\n        \"\\x00\\x00\\x10\\x00\" + // fontRevision\n        \"\\x00\\x00\\x00\\x00\" + // checksumAdjustement\n        \"\\x5F\\x0F\\x3C\\xF5\" + // magicNumber\n        \"\\x00\\x00\" + // Flags\n        safeString16(unitsPerEm) + // unitsPerEM\n        \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // creation date\n        \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // modifification date\n        \"\\x00\\x00\" + // xMin\n        safeString16(properties.descent) + // yMin\n        \"\\x0F\\xFF\" + // xMax\n        safeString16(properties.ascent) + // yMax\n        string16(properties.italicAngle ? 2 : 0) + // macStyle\n        \"\\x00\\x11\" + // lowestRecPPEM\n        \"\\x00\\x00\" + // fontDirectionHint\n        \"\\x00\\x00\" + // indexToLocFormat\n          \"\\x00\\x00\"\n      ); // glyphDataFormat\n\n      // Horizontal header\n      builder.addTable(\n        \"hhea\",\n        \"\\x00\\x01\\x00\\x00\" + // Version number\n        safeString16(properties.ascent) + // Typographic Ascent\n        safeString16(properties.descent) + // Typographic Descent\n        \"\\x00\\x00\" + // Line Gap\n        \"\\xFF\\xFF\" + // advanceWidthMax\n        \"\\x00\\x00\" + // minLeftSidebearing\n        \"\\x00\\x00\" + // minRightSidebearing\n        \"\\x00\\x00\" + // xMaxExtent\n        safeString16(properties.capHeight) + // caretSlopeRise\n        safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + // caretSlopeRun\n        \"\\x00\\x00\" + // caretOffset\n        \"\\x00\\x00\" + // -reserved-\n        \"\\x00\\x00\" + // -reserved-\n        \"\\x00\\x00\" + // -reserved-\n        \"\\x00\\x00\" + // -reserved-\n        \"\\x00\\x00\" + // metricDataFormat\n          string16(numGlyphs)\n      ); // Number of HMetrics\n\n      // Horizontal metrics\n      builder.addTable(\n        \"hmtx\",\n        (function fontFieldsHmtx() {\n          var charstrings = font.charstrings;\n          var cffWidths = font.cff ? font.cff.widths : null;\n          var hmtx = \"\\x00\\x00\\x00\\x00\"; // Fake .notdef\n          for (let i = 1, ii = numGlyphs; i < ii; i++) {\n            var width = 0;\n            if (charstrings) {\n              var charstring = charstrings[i - 1];\n              width = \"width\" in charstring ? charstring.width : 0;\n            } else if (cffWidths) {\n              width = Math.ceil(cffWidths[i] || 0);\n            }\n            hmtx += string16(width) + string16(0);\n          }\n          return hmtx;\n        })()\n      );\n\n      // Maximum profile\n      builder.addTable(\n        \"maxp\",\n        \"\\x00\\x00\\x50\\x00\" + string16(numGlyphs) // Version number\n      ); // Num of glyphs\n\n      // Naming tables\n      builder.addTable(\"name\", createNameTable(fontName));\n\n      // PostScript information\n      builder.addTable(\"post\", createPostTable(properties));\n\n      return builder.toArray();\n    },\n\n    get spaceWidth() {\n      // trying to estimate space character width\n      var possibleSpaceReplacements = [\"space\", \"minus\", \"one\", \"i\", \"I\"];\n      var width;\n      for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n        var glyphName = possibleSpaceReplacements[i];\n        // if possible, getting width by glyph name\n        if (glyphName in this.widths) {\n          width = this.widths[glyphName];\n          break;\n        }\n        var glyphsUnicodeMap = getGlyphsUnicode();\n        var glyphUnicode = glyphsUnicodeMap[glyphName];\n        // finding the charcode via unicodeToCID map\n        var charcode = 0;\n        if (this.composite && this.cMap.contains(glyphUnicode)) {\n          charcode = this.cMap.lookup(glyphUnicode);\n        }\n        // ... via toUnicode map\n        if (!charcode && this.toUnicode) {\n          charcode = this.toUnicode.charCodeOf(glyphUnicode);\n        }\n        // setting it to unicode if negative or undefined\n        if (charcode <= 0) {\n          charcode = glyphUnicode;\n        }\n        // trying to get width via charcode\n        width = this.widths[charcode];\n        if (width) {\n          break; // the non-zero width found\n        }\n      }\n      width = width || this.defaultWidth;\n      return shadow(this, \"spaceWidth\", width);\n    },\n\n    charToGlyph: function Font_charToGlyph(charcode, isSpace) {\n      var fontCharCode, width, operatorListId;\n\n      var widthCode = charcode;\n      if (this.cMap && this.cMap.contains(charcode)) {\n        widthCode = this.cMap.lookup(charcode);\n      }\n      width = this.widths[widthCode];\n      width = isNum(width) ? width : this.defaultWidth;\n      var vmetric = this.vmetrics && this.vmetrics[widthCode];\n\n      let unicode =\n        this.toUnicode.get(charcode) ||\n        this.fallbackToUnicode.get(charcode) ||\n        charcode;\n      if (typeof unicode === \"number\") {\n        unicode = String.fromCharCode(unicode);\n      }\n\n      var isInFont = charcode in this.toFontChar;\n      // First try the toFontChar map, if it's not there then try falling\n      // back to the char code.\n      fontCharCode = this.toFontChar[charcode] || charcode;\n      if (this.missingFile) {\n        const glyphName =\n          this.differences[charcode] || this.defaultEncoding[charcode];\n        if (\n          (glyphName === \".notdef\" || glyphName === \"\") &&\n          this.type === \"Type1\"\n        ) {\n          // .notdef glyphs should be invisible in non-embedded Type1 fonts, so\n          // replace them with spaces.\n          fontCharCode = 0x20;\n        }\n        fontCharCode = mapSpecialUnicodeValues(fontCharCode);\n      }\n\n      if (this.isType3Font) {\n        // Font char code in this case is actually a glyph name.\n        operatorListId = fontCharCode;\n      }\n\n      var accent = null;\n      if (this.seacMap && this.seacMap[charcode]) {\n        isInFont = true;\n        var seac = this.seacMap[charcode];\n        fontCharCode = seac.baseFontCharCode;\n        accent = {\n          fontChar: String.fromCodePoint(seac.accentFontCharCode),\n          offset: seac.accentOffset,\n        };\n      }\n\n      let fontChar = \"\";\n      if (typeof fontCharCode === \"number\") {\n        if (fontCharCode <= 0x10ffff) {\n          fontChar = String.fromCodePoint(fontCharCode);\n        } else {\n          warn(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);\n        }\n      }\n\n      var glyph = this.glyphCache[charcode];\n      if (\n        !glyph ||\n        !glyph.matchesForCache(\n          fontChar,\n          unicode,\n          accent,\n          width,\n          vmetric,\n          operatorListId,\n          isSpace,\n          isInFont\n        )\n      ) {\n        glyph = new Glyph(\n          fontChar,\n          unicode,\n          accent,\n          width,\n          vmetric,\n          operatorListId,\n          isSpace,\n          isInFont\n        );\n        this.glyphCache[charcode] = glyph;\n      }\n      return glyph;\n    },\n\n    charsToGlyphs: function Font_charsToGlyphs(chars) {\n      var charsCache = this.charsCache;\n      var glyphs, glyph, charcode;\n\n      // if we translated this string before, just grab it from the cache\n      if (charsCache) {\n        glyphs = charsCache[chars];\n        if (glyphs) {\n          return glyphs;\n        }\n      }\n\n      // lazily create the translation cache\n      if (!charsCache) {\n        charsCache = this.charsCache = Object.create(null);\n      }\n\n      glyphs = [];\n      var charsCacheKey = chars;\n      var i = 0,\n        ii;\n\n      if (this.cMap) {\n        // composite fonts have multi-byte strings convert the string from\n        // single-byte to multi-byte\n        var c = Object.create(null);\n        while (i < chars.length) {\n          this.cMap.readCharCode(chars, i, c);\n          charcode = c.charcode;\n          var length = c.length;\n          i += length;\n          // Space is char with code 0x20 and length 1 in multiple-byte codes.\n          var isSpace = length === 1 && chars.charCodeAt(i - 1) === 0x20;\n          glyph = this.charToGlyph(charcode, isSpace);\n          glyphs.push(glyph);\n        }\n      } else {\n        for (i = 0, ii = chars.length; i < ii; ++i) {\n          charcode = chars.charCodeAt(i);\n          glyph = this.charToGlyph(charcode, charcode === 0x20);\n          glyphs.push(glyph);\n        }\n      }\n\n      // Enter the translated string into the cache\n      return (charsCache[charsCacheKey] = glyphs);\n    },\n\n    get glyphCacheValues() {\n      return Object.values(this.glyphCache);\n    },\n  };\n\n  return Font;\n})();\n\nvar ErrorFont = (function ErrorFontClosure() {\n  // eslint-disable-next-line no-shadow\n  function ErrorFont(error) {\n    this.error = error;\n    this.loadedName = \"g_font_error\";\n    this.missingFile = true;\n  }\n\n  ErrorFont.prototype = {\n    charsToGlyphs: function ErrorFont_charsToGlyphs() {\n      return [];\n    },\n    exportData(extraProperties = false) {\n      return { error: this.error };\n    },\n  };\n\n  return ErrorFont;\n})();\n\n/**\n * Shared logic for building a char code to glyph id mapping for Type1 and\n * simple CFF fonts. See section 9.6.6.2 of the spec.\n * @param {Object} properties Font properties object.\n * @param {Object} builtInEncoding The encoding contained within the actual font\n * data.\n * @param {Array} glyphNames Array of glyph names where the index is the\n * glyph ID.\n * @returns {Object} A char code to glyph ID map.\n */\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n  var charCodeToGlyphId = Object.create(null);\n  var glyphId, charCode, baseEncoding;\n  var isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n\n  if (properties.baseEncodingName) {\n    // If a valid base encoding name was used, the mapping is initialized with\n    // that.\n    baseEncoding = getEncoding(properties.baseEncodingName);\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0; // notdef\n      }\n    }\n  } else if (isSymbolicFont) {\n    // For a symbolic font the encoding should be the fonts built-in encoding.\n    for (charCode in builtInEncoding) {\n      charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n    }\n  } else {\n    // For non-symbolic fonts that don't have a base encoding the standard\n    // encoding should be used.\n    baseEncoding = StandardEncoding;\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0; // notdef\n      }\n    }\n  }\n\n  // Lastly, merge in the differences.\n  var differences = properties.differences,\n    glyphsUnicodeMap;\n  if (differences) {\n    for (charCode in differences) {\n      var glyphName = differences[charCode];\n      glyphId = glyphNames.indexOf(glyphName);\n\n      if (glyphId === -1) {\n        if (!glyphsUnicodeMap) {\n          glyphsUnicodeMap = getGlyphsUnicode();\n        }\n        var standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n        if (standardGlyphName !== glyphName) {\n          glyphId = glyphNames.indexOf(standardGlyphName);\n        }\n      }\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0; // notdef\n      }\n    }\n  }\n  return charCodeToGlyphId;\n}\n\n// Type1Font is also a CIDFontType0.\nvar Type1Font = (function Type1FontClosure() {\n  function findBlock(streamBytes, signature, startIndex) {\n    var streamBytesLength = streamBytes.length;\n    var signatureLength = signature.length;\n    var scanLength = streamBytesLength - signatureLength;\n\n    var i = startIndex,\n      j,\n      found = false;\n    while (i < scanLength) {\n      j = 0;\n      while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n        j++;\n      }\n      if (j >= signatureLength) {\n        // `signature` found, skip over whitespace.\n        i += j;\n        while (i < streamBytesLength && isWhiteSpace(streamBytes[i])) {\n          i++;\n        }\n        found = true;\n        break;\n      }\n      i++;\n    }\n    return {\n      found,\n      length: i,\n    };\n  }\n\n  function getHeaderBlock(stream, suggestedLength) {\n    var EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n\n    var streamStartPos = stream.pos; // Save the initial stream position.\n    var headerBytes, headerBytesLength, block;\n    try {\n      headerBytes = stream.getBytes(suggestedLength);\n      headerBytesLength = headerBytes.length;\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      // Ignore errors if the `suggestedLength` is huge enough that a Uint8Array\n      // cannot hold the result of `getBytes`, and fallback to simply checking\n      // the entire stream (fixes issue3928.pdf).\n    }\n\n    if (headerBytesLength === suggestedLength) {\n      // Most of the time `suggestedLength` is correct, so to speed things up we\n      // initially only check the last few bytes to see if the header was found.\n      // Otherwise we (potentially) check the entire stream to prevent errors in\n      // `Type1Parser` (fixes issue5686.pdf).\n      block = findBlock(\n        headerBytes,\n        EEXEC_SIGNATURE,\n        suggestedLength - 2 * EEXEC_SIGNATURE.length\n      );\n\n      if (block.found && block.length === suggestedLength) {\n        return {\n          stream: new Stream(headerBytes),\n          length: suggestedLength,\n        };\n      }\n    }\n    warn('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n    stream.pos = streamStartPos; // Reset the stream position.\n\n    var SCAN_BLOCK_LENGTH = 2048;\n    var actualLength;\n    while (true) {\n      var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n      block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n\n      if (block.length === 0) {\n        break;\n      }\n      stream.pos += block.length; // Update the stream position.\n\n      if (block.found) {\n        actualLength = stream.pos - streamStartPos;\n        break;\n      }\n    }\n    stream.pos = streamStartPos; // Reset the stream position.\n\n    if (actualLength) {\n      return {\n        stream: new Stream(stream.getBytes(actualLength)),\n        length: actualLength,\n      };\n    }\n    warn('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n    return {\n      stream: new Stream(stream.getBytes(suggestedLength)),\n      length: suggestedLength,\n    };\n  }\n\n  function getEexecBlock(stream, suggestedLength) {\n    // We should ideally parse the eexec block to ensure that `suggestedLength`\n    // is correct, so we don't truncate the block data if it's too small.\n    // However, this would also require checking if the fixed-content portion\n    // exists (using the 'Length3' property), and ensuring that it's valid.\n    //\n    // Given that `suggestedLength` almost always is correct, all the validation\n    // would require a great deal of unnecessary parsing for most fonts.\n    // To save time, we always fetch the entire stream instead, which also avoid\n    // issues if `suggestedLength` is huge (see comment in `getHeaderBlock`).\n    //\n    // NOTE: This means that the function can include the fixed-content portion\n    // in the returned eexec block. In practice this does *not* seem to matter,\n    // since `Type1Parser_extractFontProgram` will skip over any non-commands.\n    var eexecBytes = stream.getBytes();\n    return {\n      stream: new Stream(eexecBytes),\n      length: eexecBytes.length,\n    };\n  }\n\n  // eslint-disable-next-line no-shadow\n  function Type1Font(name, file, properties) {\n    // Some bad generators embed pfb file as is, we have to strip 6-byte header.\n    // Also, length1 and length2 might be off by 6 bytes as well.\n    // http://www.math.ubc.ca/~cass/piscript/type1.pdf\n    var PFB_HEADER_SIZE = 6;\n    var headerBlockLength = properties.length1;\n    var eexecBlockLength = properties.length2;\n    var pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n    var pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n    if (pfbHeaderPresent) {\n      file.skip(PFB_HEADER_SIZE);\n      headerBlockLength =\n        (pfbHeader[5] << 24) |\n        (pfbHeader[4] << 16) |\n        (pfbHeader[3] << 8) |\n        pfbHeader[2];\n    }\n\n    // Get the data block containing glyphs and subrs information\n    var headerBlock = getHeaderBlock(file, headerBlockLength);\n    var headerBlockParser = new Type1Parser(\n      headerBlock.stream,\n      false,\n      SEAC_ANALYSIS_ENABLED\n    );\n    headerBlockParser.extractFontHeader(properties);\n\n    if (pfbHeaderPresent) {\n      pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n      eexecBlockLength =\n        (pfbHeader[5] << 24) |\n        (pfbHeader[4] << 16) |\n        (pfbHeader[3] << 8) |\n        pfbHeader[2];\n    }\n\n    // Decrypt the data blocks and retrieve it's content\n    var eexecBlock = getEexecBlock(file, eexecBlockLength);\n    var eexecBlockParser = new Type1Parser(\n      eexecBlock.stream,\n      true,\n      SEAC_ANALYSIS_ENABLED\n    );\n    var data = eexecBlockParser.extractFontProgram(properties);\n    for (const key in data.properties) {\n      properties[key] = data.properties[key];\n    }\n\n    var charstrings = data.charstrings;\n    var type2Charstrings = this.getType2Charstrings(charstrings);\n    var subrs = this.getType2Subrs(data.subrs);\n\n    this.charstrings = charstrings;\n    this.data = this.wrap(\n      name,\n      type2Charstrings,\n      this.charstrings,\n      subrs,\n      properties\n    );\n    this.seacs = this.getSeacs(data.charstrings);\n  }\n\n  Type1Font.prototype = {\n    get numGlyphs() {\n      return this.charstrings.length + 1;\n    },\n\n    getCharset: function Type1Font_getCharset() {\n      var charset = [\".notdef\"];\n      var charstrings = this.charstrings;\n      for (var glyphId = 0; glyphId < charstrings.length; glyphId++) {\n        charset.push(charstrings[glyphId].glyphName);\n      }\n      return charset;\n    },\n\n    getGlyphMapping: function Type1Font_getGlyphMapping(properties) {\n      var charstrings = this.charstrings;\n\n      if (properties.composite) {\n        const charCodeToGlyphId = Object.create(null);\n        // Map CIDs directly to GIDs.\n        for (\n          let glyphId = 0, charstringsLen = charstrings.length;\n          glyphId < charstringsLen;\n          glyphId++\n        ) {\n          const charCode = properties.cMap.charCodeOf(glyphId);\n          // Add 1 because glyph 0 is duplicated.\n          charCodeToGlyphId[charCode] = glyphId + 1;\n        }\n        return charCodeToGlyphId;\n      }\n\n      var glyphNames = [\".notdef\"],\n        glyphId;\n      for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n        glyphNames.push(charstrings[glyphId].glyphName);\n      }\n      var encoding = properties.builtInEncoding;\n      if (encoding) {\n        var builtInEncoding = Object.create(null);\n        for (var charCode in encoding) {\n          glyphId = glyphNames.indexOf(encoding[charCode]);\n          if (glyphId >= 0) {\n            builtInEncoding[charCode] = glyphId;\n          }\n        }\n      }\n\n      return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n    },\n\n    hasGlyphId: function Type1Font_hasGlyphID(id) {\n      if (id < 0 || id >= this.numGlyphs) {\n        return false;\n      }\n      if (id === 0) {\n        // notdef is always defined.\n        return true;\n      }\n      var glyph = this.charstrings[id - 1];\n      return glyph.charstring.length > 0;\n    },\n\n    getSeacs: function Type1Font_getSeacs(charstrings) {\n      var i, ii;\n      var seacMap = [];\n      for (i = 0, ii = charstrings.length; i < ii; i++) {\n        var charstring = charstrings[i];\n        if (charstring.seac) {\n          // Offset by 1 for .notdef\n          seacMap[i + 1] = charstring.seac;\n        }\n      }\n      return seacMap;\n    },\n\n    getType2Charstrings: function Type1Font_getType2Charstrings(\n      type1Charstrings\n    ) {\n      var type2Charstrings = [];\n      for (var i = 0, ii = type1Charstrings.length; i < ii; i++) {\n        type2Charstrings.push(type1Charstrings[i].charstring);\n      }\n      return type2Charstrings;\n    },\n\n    getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) {\n      var bias = 0;\n      var count = type1Subrs.length;\n      if (count < 1133) {\n        bias = 107;\n      } else if (count < 33769) {\n        bias = 1131;\n      } else {\n        bias = 32768;\n      }\n\n      // Add a bunch of empty subrs to deal with the Type2 bias\n      var type2Subrs = [];\n      var i;\n      for (i = 0; i < bias; i++) {\n        type2Subrs.push([0x0b]);\n      }\n\n      for (i = 0; i < count; i++) {\n        type2Subrs.push(type1Subrs[i]);\n      }\n\n      return type2Subrs;\n    },\n\n    wrap: function Type1Font_wrap(\n      name,\n      glyphs,\n      charstrings,\n      subrs,\n      properties\n    ) {\n      var cff = new CFF();\n      cff.header = new CFFHeader(1, 0, 4, 4);\n\n      cff.names = [name];\n\n      var topDict = new CFFTopDict();\n      // CFF strings IDs 0...390 are predefined names, so refering\n      // to entries in our own String INDEX starts at SID 391.\n      topDict.setByName(\"version\", 391);\n      topDict.setByName(\"Notice\", 392);\n      topDict.setByName(\"FullName\", 393);\n      topDict.setByName(\"FamilyName\", 394);\n      topDict.setByName(\"Weight\", 395);\n      topDict.setByName(\"Encoding\", null); // placeholder\n      topDict.setByName(\"FontMatrix\", properties.fontMatrix);\n      topDict.setByName(\"FontBBox\", properties.bbox);\n      topDict.setByName(\"charset\", null); // placeholder\n      topDict.setByName(\"CharStrings\", null); // placeholder\n      topDict.setByName(\"Private\", null); // placeholder\n      cff.topDict = topDict;\n\n      var strings = new CFFStrings();\n      strings.add(\"Version 0.11\"); // Version\n      strings.add(\"See original notice\"); // Notice\n      strings.add(name); // FullName\n      strings.add(name); // FamilyName\n      strings.add(\"Medium\"); // Weight\n      cff.strings = strings;\n\n      cff.globalSubrIndex = new CFFIndex();\n\n      var count = glyphs.length;\n      var charsetArray = [\".notdef\"];\n      var i, ii;\n      for (i = 0; i < count; i++) {\n        const glyphName = charstrings[i].glyphName;\n        const index = CFFStandardStrings.indexOf(glyphName);\n        if (index === -1) {\n          strings.add(glyphName);\n        }\n        charsetArray.push(glyphName);\n      }\n      cff.charset = new CFFCharset(false, 0, charsetArray);\n\n      var charStringsIndex = new CFFIndex();\n      charStringsIndex.add([0x8b, 0x0e]); // .notdef\n      for (i = 0; i < count; i++) {\n        charStringsIndex.add(glyphs[i]);\n      }\n      cff.charStrings = charStringsIndex;\n\n      var privateDict = new CFFPrivateDict();\n      privateDict.setByName(\"Subrs\", null); // placeholder\n      var fields = [\n        \"BlueValues\",\n        \"OtherBlues\",\n        \"FamilyBlues\",\n        \"FamilyOtherBlues\",\n        \"StemSnapH\",\n        \"StemSnapV\",\n        \"BlueShift\",\n        \"BlueFuzz\",\n        \"BlueScale\",\n        \"LanguageGroup\",\n        \"ExpansionFactor\",\n        \"ForceBold\",\n        \"StdHW\",\n        \"StdVW\",\n      ];\n      for (i = 0, ii = fields.length; i < ii; i++) {\n        var field = fields[i];\n        if (!(field in properties.privateData)) {\n          continue;\n        }\n        var value = properties.privateData[field];\n        if (Array.isArray(value)) {\n          // All of the private dictionary array data in CFF must be stored as\n          // \"delta-encoded\" numbers.\n          for (var j = value.length - 1; j > 0; j--) {\n            value[j] -= value[j - 1]; // ... difference from previous value\n          }\n        }\n        privateDict.setByName(field, value);\n      }\n      cff.topDict.privateDict = privateDict;\n\n      var subrIndex = new CFFIndex();\n      for (i = 0, ii = subrs.length; i < ii; i++) {\n        subrIndex.add(subrs[i]);\n      }\n      privateDict.subrsIndex = subrIndex;\n\n      var compiler = new CFFCompiler(cff);\n      return compiler.compile();\n    },\n  };\n\n  return Type1Font;\n})();\n\nvar CFFFont = (function CFFFontClosure() {\n  // eslint-disable-next-line no-shadow\n  function CFFFont(file, properties) {\n    this.properties = properties;\n\n    var parser = new CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n    this.cff = parser.parse();\n    this.cff.duplicateFirstGlyph();\n    var compiler = new CFFCompiler(this.cff);\n    this.seacs = this.cff.seacs;\n    try {\n      this.data = compiler.compile();\n    } catch (e) {\n      warn(\"Failed to compile font \" + properties.loadedName);\n      // There may have just been an issue with the compiler, set the data\n      // anyway and hope the font loaded.\n      this.data = file;\n    }\n  }\n\n  CFFFont.prototype = {\n    get numGlyphs() {\n      return this.cff.charStrings.count;\n    },\n    getCharset: function CFFFont_getCharset() {\n      return this.cff.charset.charset;\n    },\n    getGlyphMapping: function CFFFont_getGlyphMapping() {\n      var cff = this.cff;\n      var properties = this.properties;\n      var charsets = cff.charset.charset;\n      var charCodeToGlyphId;\n      var glyphId;\n\n      if (properties.composite) {\n        charCodeToGlyphId = Object.create(null);\n        let charCode;\n        if (cff.isCIDFont) {\n          // If the font is actually a CID font then we should use the charset\n          // to map CIDs to GIDs.\n          for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n            var cid = charsets[glyphId];\n            charCode = properties.cMap.charCodeOf(cid);\n            charCodeToGlyphId[charCode] = glyphId;\n          }\n        } else {\n          // If it is NOT actually a CID font then CIDs should be mapped\n          // directly to GIDs.\n          for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n            charCode = properties.cMap.charCodeOf(glyphId);\n            charCodeToGlyphId[charCode] = glyphId;\n          }\n        }\n        return charCodeToGlyphId;\n      }\n\n      var encoding = cff.encoding ? cff.encoding.encoding : null;\n      charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n      return charCodeToGlyphId;\n    },\n    hasGlyphId: function CFFFont_hasGlyphID(id) {\n      return this.cff.hasGlyphId(id);\n    },\n  };\n\n  return CFFFont;\n})();\n\nexport {\n  SEAC_ANALYSIS_ENABLED,\n  ErrorFont,\n  Font,\n  FontFlags,\n  ToUnicodeMap,\n  IdentityToUnicodeMap,\n  getFontType,\n};\n","/* Copyright 2016 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  bytesToString,\n  FormatError,\n  info,\n  stringToBytes,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  ExpertCharset,\n  ExpertSubsetCharset,\n  ISOAdobeCharset,\n} from \"./charsets.js\";\nimport { ExpertEncoding, StandardEncoding } from \"./encodings.js\";\n\n// Maximum subroutine call depth of type 2 chartrings. Matches OTS.\nvar MAX_SUBR_NESTING = 10;\n\n/**\n * The CFF class takes a Type1 file and wrap it into a\n * 'Compact Font Format' which itself embed Type2 charstrings.\n */\n// prettier-ignore\nvar CFFStandardStrings = [\n  \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n  \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n  \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n  \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n  \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\",\n  \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\",\n  \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\",\n  \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\",\n  \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\",\n  \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n  \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n  \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n  \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n  \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\",\n  \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\",\n  \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\",\n  \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\",\n  \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\",\n  \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\",\n  \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\",\n  \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\",\n  \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\",\n  \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\",\n  \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\",\n  \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\",\n  \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\",\n  \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\",\n  \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\",\n  \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\",\n  \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\",\n  \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\",\n  \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\",\n  \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\",\n  \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n  \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\",\n  \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\",\n  \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\",\n  \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\",\n  \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\",\n  \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n  \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\",\n  \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n  \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n  \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n  \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n  \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n  \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n  \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\",\n  \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\",\n  \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\",\n  \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\",\n  \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n  \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\",\n  \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\",\n  \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\",\n  \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\",\n  \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\",\n  \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\",\n  \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\",\n  \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\",\n  \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\",\n  \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\",\n  \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\",\n  \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\",\n  \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"\n];\n\nconst NUM_STANDARD_CFF_STRINGS = 391;\n\nvar CFFParser = (function CFFParserClosure() {\n  var CharstringValidationData = [\n    null,\n    { id: \"hstem\", min: 2, stackClearing: true, stem: true },\n    null,\n    { id: \"vstem\", min: 2, stackClearing: true, stem: true },\n    { id: \"vmoveto\", min: 1, stackClearing: true },\n    { id: \"rlineto\", min: 2, resetStack: true },\n    { id: \"hlineto\", min: 1, resetStack: true },\n    { id: \"vlineto\", min: 1, resetStack: true },\n    { id: \"rrcurveto\", min: 6, resetStack: true },\n    null,\n    { id: \"callsubr\", min: 1, undefStack: true },\n    { id: \"return\", min: 0, undefStack: true },\n    null, // 12\n    null,\n    { id: \"endchar\", min: 0, stackClearing: true },\n    null,\n    null,\n    null,\n    { id: \"hstemhm\", min: 2, stackClearing: true, stem: true },\n    { id: \"hintmask\", min: 0, stackClearing: true },\n    { id: \"cntrmask\", min: 0, stackClearing: true },\n    { id: \"rmoveto\", min: 2, stackClearing: true },\n    { id: \"hmoveto\", min: 1, stackClearing: true },\n    { id: \"vstemhm\", min: 2, stackClearing: true, stem: true },\n    { id: \"rcurveline\", min: 8, resetStack: true },\n    { id: \"rlinecurve\", min: 8, resetStack: true },\n    { id: \"vvcurveto\", min: 4, resetStack: true },\n    { id: \"hhcurveto\", min: 4, resetStack: true },\n    null, // shortint\n    { id: \"callgsubr\", min: 1, undefStack: true },\n    { id: \"vhcurveto\", min: 4, resetStack: true },\n    { id: \"hvcurveto\", min: 4, resetStack: true },\n  ];\n  var CharstringValidationData12 = [\n    null,\n    null,\n    null,\n    { id: \"and\", min: 2, stackDelta: -1 },\n    { id: \"or\", min: 2, stackDelta: -1 },\n    { id: \"not\", min: 1, stackDelta: 0 },\n    null,\n    null,\n    null,\n    { id: \"abs\", min: 1, stackDelta: 0 },\n    {\n      id: \"add\",\n      min: 2,\n      stackDelta: -1,\n      stackFn: function stack_div(stack, index) {\n        stack[index - 2] = stack[index - 2] + stack[index - 1];\n      },\n    },\n    {\n      id: \"sub\",\n      min: 2,\n      stackDelta: -1,\n      stackFn: function stack_div(stack, index) {\n        stack[index - 2] = stack[index - 2] - stack[index - 1];\n      },\n    },\n    {\n      id: \"div\",\n      min: 2,\n      stackDelta: -1,\n      stackFn: function stack_div(stack, index) {\n        stack[index - 2] = stack[index - 2] / stack[index - 1];\n      },\n    },\n    null,\n    {\n      id: \"neg\",\n      min: 1,\n      stackDelta: 0,\n      stackFn: function stack_div(stack, index) {\n        stack[index - 1] = -stack[index - 1];\n      },\n    },\n    { id: \"eq\", min: 2, stackDelta: -1 },\n    null,\n    null,\n    { id: \"drop\", min: 1, stackDelta: -1 },\n    null,\n    { id: \"put\", min: 2, stackDelta: -2 },\n    { id: \"get\", min: 1, stackDelta: 0 },\n    { id: \"ifelse\", min: 4, stackDelta: -3 },\n    { id: \"random\", min: 0, stackDelta: 1 },\n    {\n      id: \"mul\",\n      min: 2,\n      stackDelta: -1,\n      stackFn: function stack_div(stack, index) {\n        stack[index - 2] = stack[index - 2] * stack[index - 1];\n      },\n    },\n    null,\n    { id: \"sqrt\", min: 1, stackDelta: 0 },\n    { id: \"dup\", min: 1, stackDelta: 1 },\n    { id: \"exch\", min: 2, stackDelta: 0 },\n    { id: \"index\", min: 2, stackDelta: 0 },\n    { id: \"roll\", min: 3, stackDelta: -2 },\n    null,\n    null,\n    null,\n    { id: \"hflex\", min: 7, resetStack: true },\n    { id: \"flex\", min: 13, resetStack: true },\n    { id: \"hflex1\", min: 9, resetStack: true },\n    { id: \"flex1\", min: 11, resetStack: true },\n  ];\n\n  // eslint-disable-next-line no-shadow\n  function CFFParser(file, properties, seacAnalysisEnabled) {\n    this.bytes = file.getBytes();\n    this.properties = properties;\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n  }\n  CFFParser.prototype = {\n    parse: function CFFParser_parse() {\n      var properties = this.properties;\n      var cff = new CFF();\n      this.cff = cff;\n\n      // The first five sections must be in order, all the others are reached\n      // via offsets contained in one of the below.\n      var header = this.parseHeader();\n      var nameIndex = this.parseIndex(header.endPos);\n      var topDictIndex = this.parseIndex(nameIndex.endPos);\n      var stringIndex = this.parseIndex(topDictIndex.endPos);\n      var globalSubrIndex = this.parseIndex(stringIndex.endPos);\n\n      var topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n      var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n\n      cff.header = header.obj;\n      cff.names = this.parseNameIndex(nameIndex.obj);\n      cff.strings = this.parseStringIndex(stringIndex.obj);\n      cff.topDict = topDict;\n      cff.globalSubrIndex = globalSubrIndex.obj;\n\n      this.parsePrivateDict(cff.topDict);\n\n      cff.isCIDFont = topDict.hasName(\"ROS\");\n\n      var charStringOffset = topDict.getByName(\"CharStrings\");\n      var charStringIndex = this.parseIndex(charStringOffset).obj;\n\n      var fontMatrix = topDict.getByName(\"FontMatrix\");\n      if (fontMatrix) {\n        properties.fontMatrix = fontMatrix;\n      }\n\n      var fontBBox = topDict.getByName(\"FontBBox\");\n      if (fontBBox) {\n        // adjusting ascent/descent\n        properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n        properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n        properties.ascentScaled = true;\n      }\n\n      var charset, encoding;\n      if (cff.isCIDFont) {\n        var fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n        for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n          var dictRaw = fdArrayIndex.get(i);\n          var fontDict = this.createDict(\n            CFFTopDict,\n            this.parseDict(dictRaw),\n            cff.strings\n          );\n          this.parsePrivateDict(fontDict);\n          cff.fdArray.push(fontDict);\n        }\n        // cid fonts don't have an encoding\n        encoding = null;\n        charset = this.parseCharsets(\n          topDict.getByName(\"charset\"),\n          charStringIndex.count,\n          cff.strings,\n          true\n        );\n        cff.fdSelect = this.parseFDSelect(\n          topDict.getByName(\"FDSelect\"),\n          charStringIndex.count\n        );\n      } else {\n        charset = this.parseCharsets(\n          topDict.getByName(\"charset\"),\n          charStringIndex.count,\n          cff.strings,\n          false\n        );\n        encoding = this.parseEncoding(\n          topDict.getByName(\"Encoding\"),\n          properties,\n          cff.strings,\n          charset.charset\n        );\n      }\n\n      cff.charset = charset;\n      cff.encoding = encoding;\n\n      var charStringsAndSeacs = this.parseCharStrings({\n        charStrings: charStringIndex,\n        localSubrIndex: topDict.privateDict.subrsIndex,\n        globalSubrIndex: globalSubrIndex.obj,\n        fdSelect: cff.fdSelect,\n        fdArray: cff.fdArray,\n        privateDict: topDict.privateDict,\n      });\n      cff.charStrings = charStringsAndSeacs.charStrings;\n      cff.seacs = charStringsAndSeacs.seacs;\n      cff.widths = charStringsAndSeacs.widths;\n\n      return cff;\n    },\n    parseHeader: function CFFParser_parseHeader() {\n      var bytes = this.bytes;\n      var bytesLength = bytes.length;\n      var offset = 0;\n\n      // Prevent an infinite loop, by checking that the offset is within the\n      // bounds of the bytes array. Necessary in empty, or invalid, font files.\n      while (offset < bytesLength && bytes[offset] !== 1) {\n        ++offset;\n      }\n      if (offset >= bytesLength) {\n        throw new FormatError(\"Invalid CFF header\");\n      }\n      if (offset !== 0) {\n        info(\"cff data is shifted\");\n        bytes = bytes.subarray(offset);\n        this.bytes = bytes;\n      }\n      var major = bytes[0];\n      var minor = bytes[1];\n      var hdrSize = bytes[2];\n      var offSize = bytes[3];\n      var header = new CFFHeader(major, minor, hdrSize, offSize);\n      return { obj: header, endPos: hdrSize };\n    },\n    parseDict: function CFFParser_parseDict(dict) {\n      var pos = 0;\n\n      function parseOperand() {\n        var value = dict[pos++];\n        if (value === 30) {\n          return parseFloatOperand();\n        } else if (value === 28) {\n          value = dict[pos++];\n          value = ((value << 24) | (dict[pos++] << 16)) >> 16;\n          return value;\n        } else if (value === 29) {\n          value = dict[pos++];\n          value = (value << 8) | dict[pos++];\n          value = (value << 8) | dict[pos++];\n          value = (value << 8) | dict[pos++];\n          return value;\n        } else if (value >= 32 && value <= 246) {\n          return value - 139;\n        } else if (value >= 247 && value <= 250) {\n          return (value - 247) * 256 + dict[pos++] + 108;\n        } else if (value >= 251 && value <= 254) {\n          return -((value - 251) * 256) - dict[pos++] - 108;\n        }\n        warn('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n        return NaN;\n      }\n\n      function parseFloatOperand() {\n        var str = \"\";\n        var eof = 15;\n        // prettier-ignore\n        const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\",\n                        \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n        var length = dict.length;\n        while (pos < length) {\n          var b = dict[pos++];\n          var b1 = b >> 4;\n          var b2 = b & 15;\n\n          if (b1 === eof) {\n            break;\n          }\n          str += lookup[b1];\n\n          if (b2 === eof) {\n            break;\n          }\n          str += lookup[b2];\n        }\n        return parseFloat(str);\n      }\n\n      var operands = [];\n      var entries = [];\n\n      pos = 0;\n      var end = dict.length;\n      while (pos < end) {\n        var b = dict[pos];\n        if (b <= 21) {\n          if (b === 12) {\n            b = (b << 8) | dict[++pos];\n          }\n          entries.push([b, operands]);\n          operands = [];\n          ++pos;\n        } else {\n          operands.push(parseOperand());\n        }\n      }\n      return entries;\n    },\n    parseIndex: function CFFParser_parseIndex(pos) {\n      var cffIndex = new CFFIndex();\n      var bytes = this.bytes;\n      var count = (bytes[pos++] << 8) | bytes[pos++];\n      var offsets = [];\n      var end = pos;\n      var i, ii;\n\n      if (count !== 0) {\n        var offsetSize = bytes[pos++];\n        // add 1 for offset to determine size of last object\n        var startPos = pos + (count + 1) * offsetSize - 1;\n\n        for (i = 0, ii = count + 1; i < ii; ++i) {\n          var offset = 0;\n          for (var j = 0; j < offsetSize; ++j) {\n            offset <<= 8;\n            offset += bytes[pos++];\n          }\n          offsets.push(startPos + offset);\n        }\n        end = offsets[count];\n      }\n      for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n        var offsetStart = offsets[i];\n        var offsetEnd = offsets[i + 1];\n        cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n      }\n      return { obj: cffIndex, endPos: end };\n    },\n    parseNameIndex: function CFFParser_parseNameIndex(index) {\n      var names = [];\n      for (var i = 0, ii = index.count; i < ii; ++i) {\n        var name = index.get(i);\n        names.push(bytesToString(name));\n      }\n      return names;\n    },\n    parseStringIndex: function CFFParser_parseStringIndex(index) {\n      var strings = new CFFStrings();\n      for (var i = 0, ii = index.count; i < ii; ++i) {\n        var data = index.get(i);\n        strings.add(bytesToString(data));\n      }\n      return strings;\n    },\n    createDict: function CFFParser_createDict(Type, dict, strings) {\n      var cffDict = new Type(strings);\n      for (var i = 0, ii = dict.length; i < ii; ++i) {\n        var pair = dict[i];\n        var key = pair[0];\n        var value = pair[1];\n        cffDict.setByKey(key, value);\n      }\n      return cffDict;\n    },\n    parseCharString: function CFFParser_parseCharString(\n      state,\n      data,\n      localSubrIndex,\n      globalSubrIndex\n    ) {\n      if (!data || state.callDepth > MAX_SUBR_NESTING) {\n        return false;\n      }\n      var stackSize = state.stackSize;\n      var stack = state.stack;\n\n      var length = data.length;\n\n      for (var j = 0; j < length; ) {\n        var value = data[j++];\n        var validationCommand = null;\n        if (value === 12) {\n          var q = data[j++];\n          if (q === 0) {\n            // The CFF specification state that the 'dotsection' command\n            // (12, 0) is deprecated and treated as a no-op, but all Type2\n            // charstrings processors should support them. Unfortunately\n            // the font sanitizer don't. As a workaround the sequence (12, 0)\n            // is replaced by a useless (0, hmoveto).\n            data[j - 2] = 139;\n            data[j - 1] = 22;\n            stackSize = 0;\n          } else {\n            validationCommand = CharstringValidationData12[q];\n          }\n        } else if (value === 28) {\n          // number (16 bit)\n          stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16)) >> 16;\n          j += 2;\n          stackSize++;\n        } else if (value === 14) {\n          if (stackSize >= 4) {\n            stackSize -= 4;\n            if (this.seacAnalysisEnabled) {\n              state.seac = stack.slice(stackSize, stackSize + 4);\n              return false;\n            }\n          }\n          validationCommand = CharstringValidationData[value];\n        } else if (value >= 32 && value <= 246) {\n          // number\n          stack[stackSize] = value - 139;\n          stackSize++;\n        } else if (value >= 247 && value <= 254) {\n          // number (+1 bytes)\n          stack[stackSize] =\n            value < 251\n              ? ((value - 247) << 8) + data[j] + 108\n              : -((value - 251) << 8) - data[j] - 108;\n          j++;\n          stackSize++;\n        } else if (value === 255) {\n          // number (32 bit)\n          stack[stackSize] =\n            ((data[j] << 24) |\n              (data[j + 1] << 16) |\n              (data[j + 2] << 8) |\n              data[j + 3]) /\n            65536;\n          j += 4;\n          stackSize++;\n        } else if (value === 19 || value === 20) {\n          state.hints += stackSize >> 1;\n          // skipping right amount of hints flag data\n          j += (state.hints + 7) >> 3;\n          stackSize %= 2;\n          validationCommand = CharstringValidationData[value];\n        } else if (value === 10 || value === 29) {\n          var subrsIndex;\n          if (value === 10) {\n            subrsIndex = localSubrIndex;\n          } else {\n            subrsIndex = globalSubrIndex;\n          }\n          if (!subrsIndex) {\n            validationCommand = CharstringValidationData[value];\n            warn(\"Missing subrsIndex for \" + validationCommand.id);\n            return false;\n          }\n          var bias = 32768;\n          if (subrsIndex.count < 1240) {\n            bias = 107;\n          } else if (subrsIndex.count < 33900) {\n            bias = 1131;\n          }\n          var subrNumber = stack[--stackSize] + bias;\n          if (\n            subrNumber < 0 ||\n            subrNumber >= subrsIndex.count ||\n            isNaN(subrNumber)\n          ) {\n            validationCommand = CharstringValidationData[value];\n            warn(\"Out of bounds subrIndex for \" + validationCommand.id);\n            return false;\n          }\n          state.stackSize = stackSize;\n          state.callDepth++;\n          var valid = this.parseCharString(\n            state,\n            subrsIndex.get(subrNumber),\n            localSubrIndex,\n            globalSubrIndex\n          );\n          if (!valid) {\n            return false;\n          }\n          state.callDepth--;\n          stackSize = state.stackSize;\n          continue;\n        } else if (value === 11) {\n          state.stackSize = stackSize;\n          return true;\n        } else {\n          validationCommand = CharstringValidationData[value];\n        }\n        if (validationCommand) {\n          if (validationCommand.stem) {\n            state.hints += stackSize >> 1;\n            if (value === 3 || value === 23) {\n              // vstem or vstemhm.\n              state.hasVStems = true;\n            } else if (state.hasVStems && (value === 1 || value === 18)) {\n              // Some browsers don't draw glyphs that specify vstems before\n              // hstems. As a workaround, replace hstem (1) and hstemhm (18)\n              // with a pointless vstem (3) or vstemhm (23).\n              warn(\"CFF stem hints are in wrong order\");\n              data[j - 1] = value === 1 ? 3 : 23;\n            }\n          }\n          if (\"min\" in validationCommand) {\n            if (!state.undefStack && stackSize < validationCommand.min) {\n              warn(\n                \"Not enough parameters for \" +\n                  validationCommand.id +\n                  \"; actual: \" +\n                  stackSize +\n                  \", expected: \" +\n                  validationCommand.min\n              );\n              return false;\n            }\n          }\n          if (state.firstStackClearing && validationCommand.stackClearing) {\n            state.firstStackClearing = false;\n            // the optional character width can be found before the first\n            // stack-clearing command arguments\n            stackSize -= validationCommand.min;\n            if (stackSize >= 2 && validationCommand.stem) {\n              // there are even amount of arguments for stem commands\n              stackSize %= 2;\n            } else if (stackSize > 1) {\n              warn(\"Found too many parameters for stack-clearing command\");\n            }\n            if (stackSize > 0 && stack[stackSize - 1] >= 0) {\n              state.width = stack[stackSize - 1];\n            }\n          }\n          if (\"stackDelta\" in validationCommand) {\n            if (\"stackFn\" in validationCommand) {\n              validationCommand.stackFn(stack, stackSize);\n            }\n            stackSize += validationCommand.stackDelta;\n          } else if (validationCommand.stackClearing) {\n            stackSize = 0;\n          } else if (validationCommand.resetStack) {\n            stackSize = 0;\n            state.undefStack = false;\n          } else if (validationCommand.undefStack) {\n            stackSize = 0;\n            state.undefStack = true;\n            state.firstStackClearing = false;\n          }\n        }\n      }\n      state.stackSize = stackSize;\n      return true;\n    },\n    parseCharStrings({\n      charStrings,\n      localSubrIndex,\n      globalSubrIndex,\n      fdSelect,\n      fdArray,\n      privateDict,\n    }) {\n      var seacs = [];\n      var widths = [];\n      var count = charStrings.count;\n      for (var i = 0; i < count; i++) {\n        var charstring = charStrings.get(i);\n        var state = {\n          callDepth: 0,\n          stackSize: 0,\n          stack: [],\n          undefStack: true,\n          hints: 0,\n          firstStackClearing: true,\n          seac: null,\n          width: null,\n          hasVStems: false,\n        };\n        var valid = true;\n        var localSubrToUse = null;\n        var privateDictToUse = privateDict;\n        if (fdSelect && fdArray.length) {\n          var fdIndex = fdSelect.getFDIndex(i);\n          if (fdIndex === -1) {\n            warn(\"Glyph index is not in fd select.\");\n            valid = false;\n          }\n          if (fdIndex >= fdArray.length) {\n            warn(\"Invalid fd index for glyph index.\");\n            valid = false;\n          }\n          if (valid) {\n            privateDictToUse = fdArray[fdIndex].privateDict;\n            localSubrToUse = privateDictToUse.subrsIndex;\n          }\n        } else if (localSubrIndex) {\n          localSubrToUse = localSubrIndex;\n        }\n        if (valid) {\n          valid = this.parseCharString(\n            state,\n            charstring,\n            localSubrToUse,\n            globalSubrIndex\n          );\n        }\n        if (state.width !== null) {\n          const nominalWidth = privateDictToUse.getByName(\"nominalWidthX\");\n          widths[i] = nominalWidth + state.width;\n        } else {\n          const defaultWidth = privateDictToUse.getByName(\"defaultWidthX\");\n          widths[i] = defaultWidth;\n        }\n        if (state.seac !== null) {\n          seacs[i] = state.seac;\n        }\n        if (!valid) {\n          // resetting invalid charstring to single 'endchar'\n          charStrings.set(i, new Uint8Array([14]));\n        }\n      }\n      return { charStrings, seacs, widths };\n    },\n    emptyPrivateDictionary: function CFFParser_emptyPrivateDictionary(\n      parentDict\n    ) {\n      var privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n      parentDict.setByKey(18, [0, 0]);\n      parentDict.privateDict = privateDict;\n    },\n    parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) {\n      // no private dict, do nothing\n      if (!parentDict.hasName(\"Private\")) {\n        this.emptyPrivateDictionary(parentDict);\n        return;\n      }\n      var privateOffset = parentDict.getByName(\"Private\");\n      // make sure the params are formatted correctly\n      if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n        parentDict.removeByName(\"Private\");\n        return;\n      }\n      var size = privateOffset[0];\n      var offset = privateOffset[1];\n      // remove empty dicts or ones that refer to invalid location\n      if (size === 0 || offset >= this.bytes.length) {\n        this.emptyPrivateDictionary(parentDict);\n        return;\n      }\n\n      var privateDictEnd = offset + size;\n      var dictData = this.bytes.subarray(offset, privateDictEnd);\n      var dict = this.parseDict(dictData);\n      var privateDict = this.createDict(\n        CFFPrivateDict,\n        dict,\n        parentDict.strings\n      );\n      parentDict.privateDict = privateDict;\n\n      // Parse the Subrs index also since it's relative to the private dict.\n      if (!privateDict.getByName(\"Subrs\")) {\n        return;\n      }\n      var subrsOffset = privateDict.getByName(\"Subrs\");\n      var relativeOffset = offset + subrsOffset;\n      // Validate the offset.\n      if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n        this.emptyPrivateDictionary(parentDict);\n        return;\n      }\n      var subrsIndex = this.parseIndex(relativeOffset);\n      privateDict.subrsIndex = subrsIndex.obj;\n    },\n    parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) {\n      if (pos === 0) {\n        return new CFFCharset(\n          true,\n          CFFCharsetPredefinedTypes.ISO_ADOBE,\n          ISOAdobeCharset\n        );\n      } else if (pos === 1) {\n        return new CFFCharset(\n          true,\n          CFFCharsetPredefinedTypes.EXPERT,\n          ExpertCharset\n        );\n      } else if (pos === 2) {\n        return new CFFCharset(\n          true,\n          CFFCharsetPredefinedTypes.EXPERT_SUBSET,\n          ExpertSubsetCharset\n        );\n      }\n\n      var bytes = this.bytes;\n      var start = pos;\n      var format = bytes[pos++];\n      const charset = [cid ? 0 : \".notdef\"];\n      var id, count, i;\n\n      // subtract 1 for the .notdef glyph\n      length -= 1;\n\n      switch (format) {\n        case 0:\n          for (i = 0; i < length; i++) {\n            id = (bytes[pos++] << 8) | bytes[pos++];\n            charset.push(cid ? id : strings.get(id));\n          }\n          break;\n        case 1:\n          while (charset.length <= length) {\n            id = (bytes[pos++] << 8) | bytes[pos++];\n            count = bytes[pos++];\n            for (i = 0; i <= count; i++) {\n              charset.push(cid ? id++ : strings.get(id++));\n            }\n          }\n          break;\n        case 2:\n          while (charset.length <= length) {\n            id = (bytes[pos++] << 8) | bytes[pos++];\n            count = (bytes[pos++] << 8) | bytes[pos++];\n            for (i = 0; i <= count; i++) {\n              charset.push(cid ? id++ : strings.get(id++));\n            }\n          }\n          break;\n        default:\n          throw new FormatError(\"Unknown charset format\");\n      }\n      // Raw won't be needed if we actually compile the charset.\n      var end = pos;\n      var raw = bytes.subarray(start, end);\n\n      return new CFFCharset(false, format, charset, raw);\n    },\n    parseEncoding: function CFFParser_parseEncoding(\n      pos,\n      properties,\n      strings,\n      charset\n    ) {\n      var encoding = Object.create(null);\n      var bytes = this.bytes;\n      var predefined = false;\n      var format, i, ii;\n      var raw = null;\n\n      function readSupplement() {\n        var supplementsCount = bytes[pos++];\n        for (i = 0; i < supplementsCount; i++) {\n          var code = bytes[pos++];\n          var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n          encoding[code] = charset.indexOf(strings.get(sid));\n        }\n      }\n\n      if (pos === 0 || pos === 1) {\n        predefined = true;\n        format = pos;\n        var baseEncoding = pos ? ExpertEncoding : StandardEncoding;\n        for (i = 0, ii = charset.length; i < ii; i++) {\n          var index = baseEncoding.indexOf(charset[i]);\n          if (index !== -1) {\n            encoding[index] = i;\n          }\n        }\n      } else {\n        var dataStart = pos;\n        format = bytes[pos++];\n        switch (format & 0x7f) {\n          case 0:\n            var glyphsCount = bytes[pos++];\n            for (i = 1; i <= glyphsCount; i++) {\n              encoding[bytes[pos++]] = i;\n            }\n            break;\n\n          case 1:\n            var rangesCount = bytes[pos++];\n            var gid = 1;\n            for (i = 0; i < rangesCount; i++) {\n              var start = bytes[pos++];\n              var left = bytes[pos++];\n              for (var j = start; j <= start + left; j++) {\n                encoding[j] = gid++;\n              }\n            }\n            break;\n\n          default:\n            throw new FormatError(`Unknown encoding format: ${format} in CFF`);\n        }\n        var dataEnd = pos;\n        if (format & 0x80) {\n          // hasSupplement\n          // The font sanitizer does not support CFF encoding with a\n          // supplement, since the encoding is not really used to map\n          // between gid to glyph, let's overwrite what is declared in\n          // the top dictionary to let the sanitizer think the font use\n          // StandardEncoding, that's a lie but that's ok.\n          bytes[dataStart] &= 0x7f;\n          readSupplement();\n        }\n        raw = bytes.subarray(dataStart, dataEnd);\n      }\n      format = format & 0x7f;\n      return new CFFEncoding(predefined, format, encoding, raw);\n    },\n    parseFDSelect: function CFFParser_parseFDSelect(pos, length) {\n      var bytes = this.bytes;\n      var format = bytes[pos++];\n      var fdSelect = [];\n      var i;\n\n      switch (format) {\n        case 0:\n          for (i = 0; i < length; ++i) {\n            var id = bytes[pos++];\n            fdSelect.push(id);\n          }\n          break;\n        case 3:\n          var rangesCount = (bytes[pos++] << 8) | bytes[pos++];\n          for (i = 0; i < rangesCount; ++i) {\n            var first = (bytes[pos++] << 8) | bytes[pos++];\n            if (i === 0 && first !== 0) {\n              warn(\n                \"parseFDSelect: The first range must have a first GID of 0\" +\n                  \" -- trying to recover.\"\n              );\n              first = 0;\n            }\n            var fdIndex = bytes[pos++];\n            var next = (bytes[pos] << 8) | bytes[pos + 1];\n            for (var j = first; j < next; ++j) {\n              fdSelect.push(fdIndex);\n            }\n          }\n          // Advance past the sentinel(next).\n          pos += 2;\n          break;\n        default:\n          throw new FormatError(`parseFDSelect: Unknown format \"${format}\".`);\n      }\n      if (fdSelect.length !== length) {\n        throw new FormatError(\"parseFDSelect: Invalid font data.\");\n      }\n\n      return new CFFFDSelect(format, fdSelect);\n    },\n  };\n  return CFFParser;\n})();\n\n// Compact Font Format\nvar CFF = (function CFFClosure() {\n  // eslint-disable-next-line no-shadow\n  function CFF() {\n    this.header = null;\n    this.names = [];\n    this.topDict = null;\n    this.strings = new CFFStrings();\n    this.globalSubrIndex = null;\n\n    // The following could really be per font, but since we only have one font\n    // store them here.\n    this.encoding = null;\n    this.charset = null;\n    this.charStrings = null;\n    this.fdArray = [];\n    this.fdSelect = null;\n\n    this.isCIDFont = false;\n  }\n  CFF.prototype = {\n    duplicateFirstGlyph: function CFF_duplicateFirstGlyph() {\n      // Browsers will not display a glyph at position 0. Typically glyph 0 is\n      // notdef, but a number of fonts put a valid glyph there so it must be\n      // duplicated and appended.\n      if (this.charStrings.count >= 65535) {\n        warn(\"Not enough space in charstrings to duplicate first glyph.\");\n        return;\n      }\n      var glyphZero = this.charStrings.get(0);\n      this.charStrings.add(glyphZero);\n      if (this.isCIDFont) {\n        this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n      }\n    },\n    hasGlyphId: function CFF_hasGlyphID(id) {\n      if (id < 0 || id >= this.charStrings.count) {\n        return false;\n      }\n      var glyph = this.charStrings.get(id);\n      return glyph.length > 0;\n    },\n  };\n\n  return CFF;\n})();\n\nvar CFFHeader = (function CFFHeaderClosure() {\n  // eslint-disable-next-line no-shadow\n  function CFFHeader(major, minor, hdrSize, offSize) {\n    this.major = major;\n    this.minor = minor;\n    this.hdrSize = hdrSize;\n    this.offSize = offSize;\n  }\n  return CFFHeader;\n})();\n\nvar CFFStrings = (function CFFStringsClosure() {\n  // eslint-disable-next-line no-shadow\n  function CFFStrings() {\n    this.strings = [];\n  }\n  CFFStrings.prototype = {\n    get: function CFFStrings_get(index) {\n      if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {\n        return CFFStandardStrings[index];\n      }\n      if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {\n        return this.strings[index - NUM_STANDARD_CFF_STRINGS];\n      }\n      return CFFStandardStrings[0];\n    },\n    getSID: function CFFStrings_getSID(str) {\n      let index = CFFStandardStrings.indexOf(str);\n      if (index !== -1) {\n        return index;\n      }\n      index = this.strings.indexOf(str);\n      if (index !== -1) {\n        return index + NUM_STANDARD_CFF_STRINGS;\n      }\n      return -1;\n    },\n    add: function CFFStrings_add(value) {\n      this.strings.push(value);\n    },\n    get count() {\n      return this.strings.length;\n    },\n  };\n  return CFFStrings;\n})();\n\nvar CFFIndex = (function CFFIndexClosure() {\n  // eslint-disable-next-line no-shadow\n  function CFFIndex() {\n    this.objects = [];\n    this.length = 0;\n  }\n  CFFIndex.prototype = {\n    add: function CFFIndex_add(data) {\n      this.length += data.length;\n      this.objects.push(data);\n    },\n    set: function CFFIndex_set(index, data) {\n      this.length += data.length - this.objects[index].length;\n      this.objects[index] = data;\n    },\n    get: function CFFIndex_get(index) {\n      return this.objects[index];\n    },\n    get count() {\n      return this.objects.length;\n    },\n  };\n  return CFFIndex;\n})();\n\nvar CFFDict = (function CFFDictClosure() {\n  // eslint-disable-next-line no-shadow\n  function CFFDict(tables, strings) {\n    this.keyToNameMap = tables.keyToNameMap;\n    this.nameToKeyMap = tables.nameToKeyMap;\n    this.defaults = tables.defaults;\n    this.types = tables.types;\n    this.opcodes = tables.opcodes;\n    this.order = tables.order;\n    this.strings = strings;\n    this.values = Object.create(null);\n  }\n  CFFDict.prototype = {\n    // value should always be an array\n    setByKey: function CFFDict_setByKey(key, value) {\n      if (!(key in this.keyToNameMap)) {\n        return false;\n      }\n      var valueLength = value.length;\n      // ignore empty values\n      if (valueLength === 0) {\n        return true;\n      }\n      // Ignore invalid values (fixes bug1068432.pdf and bug1308536.pdf).\n      for (var i = 0; i < valueLength; i++) {\n        if (isNaN(value[i])) {\n          warn('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n          return true;\n        }\n      }\n      var type = this.types[key];\n      // remove the array wrapping these types of values\n      if (type === \"num\" || type === \"sid\" || type === \"offset\") {\n        value = value[0];\n      }\n      this.values[key] = value;\n      return true;\n    },\n    setByName: function CFFDict_setByName(name, value) {\n      if (!(name in this.nameToKeyMap)) {\n        throw new FormatError(`Invalid dictionary name \"${name}\"`);\n      }\n      this.values[this.nameToKeyMap[name]] = value;\n    },\n    hasName: function CFFDict_hasName(name) {\n      return this.nameToKeyMap[name] in this.values;\n    },\n    getByName: function CFFDict_getByName(name) {\n      if (!(name in this.nameToKeyMap)) {\n        throw new FormatError(`Invalid dictionary name ${name}\"`);\n      }\n      var key = this.nameToKeyMap[name];\n      if (!(key in this.values)) {\n        return this.defaults[key];\n      }\n      return this.values[key];\n    },\n    removeByName: function CFFDict_removeByName(name) {\n      delete this.values[this.nameToKeyMap[name]];\n    },\n  };\n  CFFDict.createTables = function CFFDict_createTables(layout) {\n    var tables = {\n      keyToNameMap: {},\n      nameToKeyMap: {},\n      defaults: {},\n      types: {},\n      opcodes: {},\n      order: [],\n    };\n    for (var i = 0, ii = layout.length; i < ii; ++i) {\n      var entry = layout[i];\n      var key = Array.isArray(entry[0])\n        ? (entry[0][0] << 8) + entry[0][1]\n        : entry[0];\n      tables.keyToNameMap[key] = entry[1];\n      tables.nameToKeyMap[entry[1]] = key;\n      tables.types[key] = entry[2];\n      tables.defaults[key] = entry[3];\n      tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n      tables.order.push(key);\n    }\n    return tables;\n  };\n  return CFFDict;\n})();\n\nvar CFFTopDict = (function CFFTopDictClosure() {\n  var layout = [\n    [[12, 30], \"ROS\", [\"sid\", \"sid\", \"num\"], null],\n    [[12, 20], \"SyntheticBase\", \"num\", null],\n    [0, \"version\", \"sid\", null],\n    [1, \"Notice\", \"sid\", null],\n    [[12, 0], \"Copyright\", \"sid\", null],\n    [2, \"FullName\", \"sid\", null],\n    [3, \"FamilyName\", \"sid\", null],\n    [4, \"Weight\", \"sid\", null],\n    [[12, 1], \"isFixedPitch\", \"num\", 0],\n    [[12, 2], \"ItalicAngle\", \"num\", 0],\n    [[12, 3], \"UnderlinePosition\", \"num\", -100],\n    [[12, 4], \"UnderlineThickness\", \"num\", 50],\n    [[12, 5], \"PaintType\", \"num\", 0],\n    [[12, 6], \"CharstringType\", \"num\", 2],\n    // prettier-ignore\n    [[12, 7], \"FontMatrix\", [\"num\", \"num\", \"num\", \"num\", \"num\", \"num\"],\n                            [0.001, 0, 0, 0.001, 0, 0]],\n    [13, \"UniqueID\", \"num\", null],\n    [5, \"FontBBox\", [\"num\", \"num\", \"num\", \"num\"], [0, 0, 0, 0]],\n    [[12, 8], \"StrokeWidth\", \"num\", 0],\n    [14, \"XUID\", \"array\", null],\n    [15, \"charset\", \"offset\", 0],\n    [16, \"Encoding\", \"offset\", 0],\n    [17, \"CharStrings\", \"offset\", 0],\n    [18, \"Private\", [\"offset\", \"offset\"], null],\n    [[12, 21], \"PostScript\", \"sid\", null],\n    [[12, 22], \"BaseFontName\", \"sid\", null],\n    [[12, 23], \"BaseFontBlend\", \"delta\", null],\n    [[12, 31], \"CIDFontVersion\", \"num\", 0],\n    [[12, 32], \"CIDFontRevision\", \"num\", 0],\n    [[12, 33], \"CIDFontType\", \"num\", 0],\n    [[12, 34], \"CIDCount\", \"num\", 8720],\n    [[12, 35], \"UIDBase\", \"num\", null],\n    // XXX: CID Fonts on DirectWrite 6.1 only seem to work if FDSelect comes\n    // before FDArray.\n    [[12, 37], \"FDSelect\", \"offset\", null],\n    [[12, 36], \"FDArray\", \"offset\", null],\n    [[12, 38], \"FontName\", \"sid\", null],\n  ];\n  var tables = null;\n\n  // eslint-disable-next-line no-shadow\n  function CFFTopDict(strings) {\n    if (tables === null) {\n      tables = CFFDict.createTables(layout);\n    }\n    CFFDict.call(this, tables, strings);\n    this.privateDict = null;\n  }\n  CFFTopDict.prototype = Object.create(CFFDict.prototype);\n  return CFFTopDict;\n})();\n\nvar CFFPrivateDict = (function CFFPrivateDictClosure() {\n  var layout = [\n    [6, \"BlueValues\", \"delta\", null],\n    [7, \"OtherBlues\", \"delta\", null],\n    [8, \"FamilyBlues\", \"delta\", null],\n    [9, \"FamilyOtherBlues\", \"delta\", null],\n    [[12, 9], \"BlueScale\", \"num\", 0.039625],\n    [[12, 10], \"BlueShift\", \"num\", 7],\n    [[12, 11], \"BlueFuzz\", \"num\", 1],\n    [10, \"StdHW\", \"num\", null],\n    [11, \"StdVW\", \"num\", null],\n    [[12, 12], \"StemSnapH\", \"delta\", null],\n    [[12, 13], \"StemSnapV\", \"delta\", null],\n    [[12, 14], \"ForceBold\", \"num\", 0],\n    [[12, 17], \"LanguageGroup\", \"num\", 0],\n    [[12, 18], \"ExpansionFactor\", \"num\", 0.06],\n    [[12, 19], \"initialRandomSeed\", \"num\", 0],\n    [20, \"defaultWidthX\", \"num\", 0],\n    [21, \"nominalWidthX\", \"num\", 0],\n    [19, \"Subrs\", \"offset\", null],\n  ];\n  var tables = null;\n\n  // eslint-disable-next-line no-shadow\n  function CFFPrivateDict(strings) {\n    if (tables === null) {\n      tables = CFFDict.createTables(layout);\n    }\n    CFFDict.call(this, tables, strings);\n    this.subrsIndex = null;\n  }\n  CFFPrivateDict.prototype = Object.create(CFFDict.prototype);\n  return CFFPrivateDict;\n})();\n\nvar CFFCharsetPredefinedTypes = {\n  ISO_ADOBE: 0,\n  EXPERT: 1,\n  EXPERT_SUBSET: 2,\n};\nvar CFFCharset = (function CFFCharsetClosure() {\n  // eslint-disable-next-line no-shadow\n  function CFFCharset(predefined, format, charset, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.charset = charset;\n    this.raw = raw;\n  }\n  return CFFCharset;\n})();\n\nvar CFFEncoding = (function CFFEncodingClosure() {\n  // eslint-disable-next-line no-shadow\n  function CFFEncoding(predefined, format, encoding, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.encoding = encoding;\n    this.raw = raw;\n  }\n  return CFFEncoding;\n})();\n\nvar CFFFDSelect = (function CFFFDSelectClosure() {\n  // eslint-disable-next-line no-shadow\n  function CFFFDSelect(format, fdSelect) {\n    this.format = format;\n    this.fdSelect = fdSelect;\n  }\n  CFFFDSelect.prototype = {\n    getFDIndex: function CFFFDSelect_get(glyphIndex) {\n      if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n        return -1;\n      }\n      return this.fdSelect[glyphIndex];\n    },\n  };\n  return CFFFDSelect;\n})();\n\n// Helper class to keep track of where an offset is within the data and helps\n// filling in that offset once it's known.\nvar CFFOffsetTracker = (function CFFOffsetTrackerClosure() {\n  // eslint-disable-next-line no-shadow\n  function CFFOffsetTracker() {\n    this.offsets = Object.create(null);\n  }\n  CFFOffsetTracker.prototype = {\n    isTracking: function CFFOffsetTracker_isTracking(key) {\n      return key in this.offsets;\n    },\n    track: function CFFOffsetTracker_track(key, location) {\n      if (key in this.offsets) {\n        throw new FormatError(`Already tracking location of ${key}`);\n      }\n      this.offsets[key] = location;\n    },\n    offset: function CFFOffsetTracker_offset(value) {\n      for (var key in this.offsets) {\n        this.offsets[key] += value;\n      }\n    },\n    setEntryLocation: function CFFOffsetTracker_setEntryLocation(\n      key,\n      values,\n      output\n    ) {\n      if (!(key in this.offsets)) {\n        throw new FormatError(`Not tracking location of ${key}`);\n      }\n      var data = output.data;\n      var dataOffset = this.offsets[key];\n      var size = 5;\n      for (var i = 0, ii = values.length; i < ii; ++i) {\n        var offset0 = i * size + dataOffset;\n        var offset1 = offset0 + 1;\n        var offset2 = offset0 + 2;\n        var offset3 = offset0 + 3;\n        var offset4 = offset0 + 4;\n        // It's easy to screw up offsets so perform this sanity check.\n        if (\n          data[offset0] !== 0x1d ||\n          data[offset1] !== 0 ||\n          data[offset2] !== 0 ||\n          data[offset3] !== 0 ||\n          data[offset4] !== 0\n        ) {\n          throw new FormatError(\"writing to an offset that is not empty\");\n        }\n        var value = values[i];\n        data[offset0] = 0x1d;\n        data[offset1] = (value >> 24) & 0xff;\n        data[offset2] = (value >> 16) & 0xff;\n        data[offset3] = (value >> 8) & 0xff;\n        data[offset4] = value & 0xff;\n      }\n    },\n  };\n  return CFFOffsetTracker;\n})();\n\n// Takes a CFF and converts it to the binary representation.\nvar CFFCompiler = (function CFFCompilerClosure() {\n  // eslint-disable-next-line no-shadow\n  function CFFCompiler(cff) {\n    this.cff = cff;\n  }\n  CFFCompiler.prototype = {\n    compile: function CFFCompiler_compile() {\n      var cff = this.cff;\n      var output = {\n        data: [],\n        length: 0,\n        add: function CFFCompiler_add(data) {\n          this.data = this.data.concat(data);\n          this.length = this.data.length;\n        },\n      };\n\n      // Compile the five entries that must be in order.\n      var header = this.compileHeader(cff.header);\n      output.add(header);\n\n      var nameIndex = this.compileNameIndex(cff.names);\n      output.add(nameIndex);\n\n      if (cff.isCIDFont) {\n        // The spec is unclear on how font matrices should relate to each other\n        // when there is one in the main top dict and the sub top dicts.\n        // Windows handles this differently than linux and osx so we have to\n        // normalize to work on all.\n        // Rules based off of some mailing list discussions:\n        // - If main font has a matrix and subfont doesn't, use the main matrix.\n        // - If no main font matrix and there is a subfont matrix, use the\n        //   subfont matrix.\n        // - If both have matrices, concat together.\n        // - If neither have matrices, use default.\n        // To make this work on all platforms we move the top matrix into each\n        // sub top dict and concat if necessary.\n        if (cff.topDict.hasName(\"FontMatrix\")) {\n          var base = cff.topDict.getByName(\"FontMatrix\");\n          cff.topDict.removeByName(\"FontMatrix\");\n          for (var i = 0, ii = cff.fdArray.length; i < ii; i++) {\n            var subDict = cff.fdArray[i];\n            var matrix = base.slice(0);\n            if (subDict.hasName(\"FontMatrix\")) {\n              matrix = Util.transform(matrix, subDict.getByName(\"FontMatrix\"));\n            }\n            subDict.setByName(\"FontMatrix\", matrix);\n          }\n        }\n      }\n\n      cff.topDict.setByName(\"charset\", 0);\n      var compiled = this.compileTopDicts(\n        [cff.topDict],\n        output.length,\n        cff.isCIDFont\n      );\n      output.add(compiled.output);\n      var topDictTracker = compiled.trackers[0];\n\n      var stringIndex = this.compileStringIndex(cff.strings.strings);\n      output.add(stringIndex);\n\n      var globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n      output.add(globalSubrIndex);\n\n      // Now start on the other entries that have no specific order.\n      if (cff.encoding && cff.topDict.hasName(\"Encoding\")) {\n        if (cff.encoding.predefined) {\n          topDictTracker.setEntryLocation(\n            \"Encoding\",\n            [cff.encoding.format],\n            output\n          );\n        } else {\n          var encoding = this.compileEncoding(cff.encoding);\n          topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n          output.add(encoding);\n        }\n      }\n      var charset = this.compileCharset(\n        cff.charset,\n        cff.charStrings.count,\n        cff.strings,\n        cff.isCIDFont\n      );\n      topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n      output.add(charset);\n\n      var charStrings = this.compileCharStrings(cff.charStrings);\n      topDictTracker.setEntryLocation(\"CharStrings\", [output.length], output);\n      output.add(charStrings);\n\n      if (cff.isCIDFont) {\n        // For some reason FDSelect must be in front of FDArray on windows. OSX\n        // and linux don't seem to care.\n        topDictTracker.setEntryLocation(\"FDSelect\", [output.length], output);\n        var fdSelect = this.compileFDSelect(cff.fdSelect);\n        output.add(fdSelect);\n        // It is unclear if the sub font dictionary can have CID related\n        // dictionary keys, but the sanitizer doesn't like them so remove them.\n        compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n        topDictTracker.setEntryLocation(\"FDArray\", [output.length], output);\n        output.add(compiled.output);\n        var fontDictTrackers = compiled.trackers;\n\n        this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n      }\n\n      this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n\n      // If the font data ends with INDEX whose object data is zero-length,\n      // the sanitizer will bail out. Add a dummy byte to avoid that.\n      output.add([0]);\n\n      return output.data;\n    },\n    encodeNumber: function CFFCompiler_encodeNumber(value) {\n      if (parseFloat(value) === parseInt(value, 10) && !isNaN(value)) {\n        // isInt\n        return this.encodeInteger(value);\n      }\n      return this.encodeFloat(value);\n    },\n    encodeFloat: function CFFCompiler_encodeFloat(num) {\n      var value = num.toString();\n\n      // rounding inaccurate doubles\n      var m = /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/.exec(value);\n      if (m) {\n        var epsilon = parseFloat(\"1e\" + ((m[2] ? +m[2] : 0) + m[1].length));\n        value = (Math.round(num * epsilon) / epsilon).toString();\n      }\n\n      var nibbles = \"\";\n      var i, ii;\n      for (i = 0, ii = value.length; i < ii; ++i) {\n        var a = value[i];\n        if (a === \"e\") {\n          nibbles += value[++i] === \"-\" ? \"c\" : \"b\";\n        } else if (a === \".\") {\n          nibbles += \"a\";\n        } else if (a === \"-\") {\n          nibbles += \"e\";\n        } else {\n          nibbles += a;\n        }\n      }\n      nibbles += nibbles.length & 1 ? \"f\" : \"ff\";\n      var out = [30];\n      for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n        out.push(parseInt(nibbles.substring(i, i + 2), 16));\n      }\n      return out;\n    },\n    encodeInteger: function CFFCompiler_encodeInteger(value) {\n      var code;\n      if (value >= -107 && value <= 107) {\n        code = [value + 139];\n      } else if (value >= 108 && value <= 1131) {\n        value = value - 108;\n        code = [(value >> 8) + 247, value & 0xff];\n      } else if (value >= -1131 && value <= -108) {\n        value = -value - 108;\n        code = [(value >> 8) + 251, value & 0xff];\n      } else if (value >= -32768 && value <= 32767) {\n        code = [0x1c, (value >> 8) & 0xff, value & 0xff];\n      } else {\n        code = [\n          0x1d,\n          (value >> 24) & 0xff,\n          (value >> 16) & 0xff,\n          (value >> 8) & 0xff,\n          value & 0xff,\n        ];\n      }\n      return code;\n    },\n    compileHeader: function CFFCompiler_compileHeader(header) {\n      return [header.major, header.minor, header.hdrSize, header.offSize];\n    },\n    compileNameIndex: function CFFCompiler_compileNameIndex(names) {\n      var nameIndex = new CFFIndex();\n      for (var i = 0, ii = names.length; i < ii; ++i) {\n        var name = names[i];\n        // OTS doesn't allow names to be over 127 characters.\n        var length = Math.min(name.length, 127);\n        var sanitizedName = new Array(length);\n        for (var j = 0; j < length; j++) {\n          // OTS requires chars to be between a range and not certain other\n          // chars.\n          var char = name[j];\n          if (\n            char < \"!\" ||\n            char > \"~\" ||\n            char === \"[\" ||\n            char === \"]\" ||\n            char === \"(\" ||\n            char === \")\" ||\n            char === \"{\" ||\n            char === \"}\" ||\n            char === \"<\" ||\n            char === \">\" ||\n            char === \"/\" ||\n            char === \"%\"\n          ) {\n            char = \"_\";\n          }\n          sanitizedName[j] = char;\n        }\n        sanitizedName = sanitizedName.join(\"\");\n\n        if (sanitizedName === \"\") {\n          sanitizedName = \"Bad_Font_Name\";\n        }\n        nameIndex.add(stringToBytes(sanitizedName));\n      }\n      return this.compileIndex(nameIndex);\n    },\n    compileTopDicts: function CFFCompiler_compileTopDicts(\n      dicts,\n      length,\n      removeCidKeys\n    ) {\n      var fontDictTrackers = [];\n      var fdArrayIndex = new CFFIndex();\n      for (var i = 0, ii = dicts.length; i < ii; ++i) {\n        var fontDict = dicts[i];\n        if (removeCidKeys) {\n          fontDict.removeByName(\"CIDFontVersion\");\n          fontDict.removeByName(\"CIDFontRevision\");\n          fontDict.removeByName(\"CIDFontType\");\n          fontDict.removeByName(\"CIDCount\");\n          fontDict.removeByName(\"UIDBase\");\n        }\n        var fontDictTracker = new CFFOffsetTracker();\n        var fontDictData = this.compileDict(fontDict, fontDictTracker);\n        fontDictTrackers.push(fontDictTracker);\n        fdArrayIndex.add(fontDictData);\n        fontDictTracker.offset(length);\n      }\n      fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n      return {\n        trackers: fontDictTrackers,\n        output: fdArrayIndex,\n      };\n    },\n    compilePrivateDicts: function CFFCompiler_compilePrivateDicts(\n      dicts,\n      trackers,\n      output\n    ) {\n      for (var i = 0, ii = dicts.length; i < ii; ++i) {\n        var fontDict = dicts[i];\n        var privateDict = fontDict.privateDict;\n        if (!privateDict || !fontDict.hasName(\"Private\")) {\n          throw new FormatError(\"There must be a private dictionary.\");\n        }\n        var privateDictTracker = new CFFOffsetTracker();\n        var privateDictData = this.compileDict(privateDict, privateDictTracker);\n\n        var outputLength = output.length;\n        privateDictTracker.offset(outputLength);\n        if (!privateDictData.length) {\n          // The private dictionary was empty, set the output length to zero to\n          // ensure the offset length isn't out of bounds in the eyes of the\n          // sanitizer.\n          outputLength = 0;\n        }\n\n        trackers[i].setEntryLocation(\n          \"Private\",\n          [privateDictData.length, outputLength],\n          output\n        );\n        output.add(privateDictData);\n\n        if (privateDict.subrsIndex && privateDict.hasName(\"Subrs\")) {\n          var subrs = this.compileIndex(privateDict.subrsIndex);\n          privateDictTracker.setEntryLocation(\n            \"Subrs\",\n            [privateDictData.length],\n            output\n          );\n          output.add(subrs);\n        }\n      }\n    },\n    compileDict: function CFFCompiler_compileDict(dict, offsetTracker) {\n      var out = [];\n      // The dictionary keys must be in a certain order.\n      var order = dict.order;\n      for (var i = 0; i < order.length; ++i) {\n        var key = order[i];\n        if (!(key in dict.values)) {\n          continue;\n        }\n        var values = dict.values[key];\n        var types = dict.types[key];\n        if (!Array.isArray(types)) {\n          types = [types];\n        }\n        if (!Array.isArray(values)) {\n          values = [values];\n        }\n\n        // Remove any empty dict values.\n        if (values.length === 0) {\n          continue;\n        }\n\n        for (var j = 0, jj = types.length; j < jj; ++j) {\n          var type = types[j];\n          var value = values[j];\n          switch (type) {\n            case \"num\":\n            case \"sid\":\n              out = out.concat(this.encodeNumber(value));\n              break;\n            case \"offset\":\n              // For offsets we just insert a 32bit integer so we don't have to\n              // deal with figuring out the length of the offset when it gets\n              // replaced later on by the compiler.\n              var name = dict.keyToNameMap[key];\n              // Some offsets have the offset and the length, so just record the\n              // position of the first one.\n              if (!offsetTracker.isTracking(name)) {\n                offsetTracker.track(name, out.length);\n              }\n              out = out.concat([0x1d, 0, 0, 0, 0]);\n              break;\n            case \"array\":\n            case \"delta\":\n              out = out.concat(this.encodeNumber(value));\n              for (var k = 1, kk = values.length; k < kk; ++k) {\n                out = out.concat(this.encodeNumber(values[k]));\n              }\n              break;\n            default:\n              throw new FormatError(`Unknown data type of ${type}`);\n          }\n        }\n        out = out.concat(dict.opcodes[key]);\n      }\n      return out;\n    },\n    compileStringIndex: function CFFCompiler_compileStringIndex(strings) {\n      var stringIndex = new CFFIndex();\n      for (var i = 0, ii = strings.length; i < ii; ++i) {\n        stringIndex.add(stringToBytes(strings[i]));\n      }\n      return this.compileIndex(stringIndex);\n    },\n    compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() {\n      var globalSubrIndex = this.cff.globalSubrIndex;\n      this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n    },\n    compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) {\n      var charStringsIndex = new CFFIndex();\n      for (var i = 0; i < charStrings.count; i++) {\n        var glyph = charStrings.get(i);\n        // If the CharString outline is empty, replace it with .notdef to\n        // prevent OTS from rejecting the font (fixes bug1252420.pdf).\n        if (glyph.length === 0) {\n          charStringsIndex.add(new Uint8Array([0x8b, 0x0e]));\n          continue;\n        }\n        charStringsIndex.add(glyph);\n      }\n      return this.compileIndex(charStringsIndex);\n    },\n    compileCharset: function CFFCompiler_compileCharset(\n      charset,\n      numGlyphs,\n      strings,\n      isCIDFont\n    ) {\n      // Freetype requires the number of charset strings be correct and MacOS\n      // requires a valid mapping for printing.\n      let out;\n      const numGlyphsLessNotDef = numGlyphs - 1;\n      if (isCIDFont) {\n        // In a CID font, the charset is a mapping of CIDs not SIDs so just\n        // create an identity mapping.\n        out = new Uint8Array([\n          2, // format\n          0, // first CID upper byte\n          0, // first CID lower byte\n          (numGlyphsLessNotDef >> 8) & 0xff,\n          numGlyphsLessNotDef & 0xff,\n        ]);\n      } else {\n        const length = 1 + numGlyphsLessNotDef * 2;\n        out = new Uint8Array(length);\n        out[0] = 0; // format 0\n        let charsetIndex = 0;\n        const numCharsets = charset.charset.length;\n        let warned = false;\n        for (let i = 1; i < out.length; i += 2) {\n          let sid = 0;\n          if (charsetIndex < numCharsets) {\n            const name = charset.charset[charsetIndex++];\n            sid = strings.getSID(name);\n            if (sid === -1) {\n              sid = 0;\n              if (!warned) {\n                warned = true;\n                warn(`Couldn't find ${name} in CFF strings`);\n              }\n            }\n          }\n          out[i] = (sid >> 8) & 0xff;\n          out[i + 1] = sid & 0xff;\n        }\n      }\n      return this.compileTypedArray(out);\n    },\n    compileEncoding: function CFFCompiler_compileEncoding(encoding) {\n      return this.compileTypedArray(encoding.raw);\n    },\n    compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) {\n      const format = fdSelect.format;\n      let out, i;\n      switch (format) {\n        case 0:\n          out = new Uint8Array(1 + fdSelect.fdSelect.length);\n          out[0] = format;\n          for (i = 0; i < fdSelect.fdSelect.length; i++) {\n            out[i + 1] = fdSelect.fdSelect[i];\n          }\n          break;\n        case 3:\n          const start = 0;\n          let lastFD = fdSelect.fdSelect[0];\n          const ranges = [\n            format,\n            0, // nRanges place holder\n            0, // nRanges place holder\n            (start >> 8) & 0xff,\n            start & 0xff,\n            lastFD,\n          ];\n          for (i = 1; i < fdSelect.fdSelect.length; i++) {\n            const currentFD = fdSelect.fdSelect[i];\n            if (currentFD !== lastFD) {\n              ranges.push((i >> 8) & 0xff, i & 0xff, currentFD);\n              lastFD = currentFD;\n            }\n          }\n          // 3 bytes are pushed for every range and there are 3 header bytes.\n          const numRanges = (ranges.length - 3) / 3;\n          ranges[1] = (numRanges >> 8) & 0xff;\n          ranges[2] = numRanges & 0xff;\n          // sentinel\n          ranges.push((i >> 8) & 0xff, i & 0xff);\n          out = new Uint8Array(ranges);\n          break;\n      }\n      return this.compileTypedArray(out);\n    },\n    compileTypedArray: function CFFCompiler_compileTypedArray(data) {\n      var out = [];\n      for (var i = 0, ii = data.length; i < ii; ++i) {\n        out[i] = data[i];\n      }\n      return out;\n    },\n    compileIndex: function CFFCompiler_compileIndex(index, trackers) {\n      trackers = trackers || [];\n      var objects = index.objects;\n      // First 2 bytes contains the number of objects contained into this index\n      var count = objects.length;\n\n      // If there is no object, just create an index. This technically\n      // should just be [0, 0] but OTS has an issue with that.\n      if (count === 0) {\n        return [0, 0, 0];\n      }\n\n      var data = [(count >> 8) & 0xff, count & 0xff];\n\n      var lastOffset = 1,\n        i;\n      for (i = 0; i < count; ++i) {\n        lastOffset += objects[i].length;\n      }\n\n      var offsetSize;\n      if (lastOffset < 0x100) {\n        offsetSize = 1;\n      } else if (lastOffset < 0x10000) {\n        offsetSize = 2;\n      } else if (lastOffset < 0x1000000) {\n        offsetSize = 3;\n      } else {\n        offsetSize = 4;\n      }\n\n      // Next byte contains the offset size use to reference object in the file\n      data.push(offsetSize);\n\n      // Add another offset after this one because we need a new offset\n      var relativeOffset = 1;\n      for (i = 0; i < count + 1; i++) {\n        if (offsetSize === 1) {\n          data.push(relativeOffset & 0xff);\n        } else if (offsetSize === 2) {\n          data.push((relativeOffset >> 8) & 0xff, relativeOffset & 0xff);\n        } else if (offsetSize === 3) {\n          data.push(\n            (relativeOffset >> 16) & 0xff,\n            (relativeOffset >> 8) & 0xff,\n            relativeOffset & 0xff\n          );\n        } else {\n          data.push(\n            (relativeOffset >>> 24) & 0xff,\n            (relativeOffset >> 16) & 0xff,\n            (relativeOffset >> 8) & 0xff,\n            relativeOffset & 0xff\n          );\n        }\n\n        if (objects[i]) {\n          relativeOffset += objects[i].length;\n        }\n      }\n\n      for (i = 0; i < count; i++) {\n        // Notify the tracker where the object will be offset in the data.\n        if (trackers[i]) {\n          trackers[i].offset(data.length);\n        }\n        for (var j = 0, jj = objects[i].length; j < jj; j++) {\n          data.push(objects[i][j]);\n        }\n      }\n      return data;\n    },\n  };\n  return CFFCompiler;\n})();\n\nexport {\n  CFFStandardStrings,\n  CFFParser,\n  CFF,\n  CFFHeader,\n  CFFStrings,\n  CFFIndex,\n  CFFCharset,\n  CFFTopDict,\n  CFFPrivateDict,\n  CFFCompiler,\n  CFFFDSelect,\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/* eslint no-var: error */\n\n// prettier-ignore\nconst ISOAdobeCharset = [\n  \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\",\n  \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\",\n  \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\",\n  \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n  \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\",\n  \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\",\n  \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\",\n  \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\",\n  \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\",\n  \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\",\n  \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n  \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n  \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n  \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n  \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n  \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n  \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\",\n  \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\",\n  \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\",\n  \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\",\n  \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\",\n  \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\",\n  \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\",\n  \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\",\n  \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\",\n  \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\",\n  \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\",\n  \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\",\n  \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\",\n  \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\",\n  \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\",\n  \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\",\n  \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\",\n  \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\"\n];\n\n// prettier-ignore\nconst ExpertCharset = [\n  \".notdef\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\",\n  \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n  \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n  \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n  \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n  \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\",\n  \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\",\n  \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\",\n  \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n  \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n  \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n  \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n  \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n  \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n  \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n  \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n  \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\",\n  \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\",\n  \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\",\n  \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\",\n  \"Cedillasmall\", \"onequarter\", \"onehalf\", \"threequarters\",\n  \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n  \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n  \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n  \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n  \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n  \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n  \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n  \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\",\n  \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\",\n  \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n  \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n  \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n  \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n  \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n  \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n  \"Ydieresissmall\"\n];\n\n// prettier-ignore\nconst ExpertSubsetCharset = [\n  \".notdef\", \"space\", \"dollaroldstyle\", \"dollarsuperior\",\n  \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n  \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\",\n  \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\",\n  \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\",\n  \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\",\n  \"threequartersemdash\", \"periodsuperior\", \"asuperior\", \"bsuperior\",\n  \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n  \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n  \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n  \"parenrightinferior\", \"hyphensuperior\", \"colonmonetary\", \"onefitted\",\n  \"rupiah\", \"centoldstyle\", \"figuredash\", \"hypheninferior\", \"onequarter\",\n  \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n  \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n  \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n  \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n  \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n  \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n  \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n  \"periodinferior\", \"commainferior\"\n];\n\nexport { ISOAdobeCharset, ExpertCharset, ExpertSubsetCharset };\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// prettier-ignore\nconst ExpertEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"\", \"dollaroldstyle\",\n  \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n  \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n  \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n  \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n  \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\",\n  \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\",\n  \"questionsmall\", \"\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\",\n  \"esuperior\", \"\", \"\", \"\", \"isuperior\", \"\", \"\", \"lsuperior\", \"msuperior\",\n  \"nsuperior\", \"osuperior\", \"\", \"\", \"rsuperior\", \"ssuperior\", \"tsuperior\",\n  \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\",\n  \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n  \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n  \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n  \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n  \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n  \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n  \"\", \"\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\",\n  \"Caronsmall\", \"\", \"Dotaccentsmall\", \"\", \"\", \"Macronsmall\", \"\", \"\",\n  \"figuredash\", \"hypheninferior\", \"\", \"\", \"Ogoneksmall\", \"Ringsmall\",\n  \"Cedillasmall\", \"\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\",\n  \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n  \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"zerosuperior\",\n  \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\",\n  \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\",\n  \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\",\n  \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\",\n  \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\",\n  \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\",\n  \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\",\n  \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n  \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n  \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n  \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n  \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n  \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n  \"Ydieresissmall\"];\n\n// prettier-ignore\nconst MacExpertEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"centoldstyle\",\n  \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\",\n  \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n  \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\",\n  \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\",\n  \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\",\n  \"nineoldstyle\", \"colon\", \"semicolon\", \"\", \"threequartersemdash\", \"\",\n  \"questionsmall\", \"\", \"\", \"\", \"\", \"Ethsmall\", \"\", \"\", \"onequarter\",\n  \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n  \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"\", \"\", \"\", \"\", \"ff\",\n  \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\",\n  \"Circumflexsmall\", \"hypheninferior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n  \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n  \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n  \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n  \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n  \"Tildesmall\", \"\", \"\", \"asuperior\", \"centsuperior\", \"\", \"\", \"\", \"\",\n  \"Aacutesmall\", \"Agravesmall\", \"Acircumflexsmall\", \"Adieresissmall\",\n  \"Atildesmall\", \"Aringsmall\", \"Ccedillasmall\", \"Eacutesmall\", \"Egravesmall\",\n  \"Ecircumflexsmall\", \"Edieresissmall\", \"Iacutesmall\", \"Igravesmall\",\n  \"Icircumflexsmall\", \"Idieresissmall\", \"Ntildesmall\", \"Oacutesmall\",\n  \"Ogravesmall\", \"Ocircumflexsmall\", \"Odieresissmall\", \"Otildesmall\",\n  \"Uacutesmall\", \"Ugravesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"\",\n  \"eightsuperior\", \"fourinferior\", \"threeinferior\", \"sixinferior\",\n  \"eightinferior\", \"seveninferior\", \"Scaronsmall\", \"\", \"centinferior\",\n  \"twoinferior\", \"\", \"Dieresissmall\", \"\", \"Caronsmall\", \"osuperior\",\n  \"fiveinferior\", \"\", \"commainferior\", \"periodinferior\", \"Yacutesmall\", \"\",\n  \"dollarinferior\", \"\", \"\", \"Thornsmall\", \"\", \"nineinferior\", \"zeroinferior\",\n  \"Zcaronsmall\", \"AEsmall\", \"Oslashsmall\", \"questiondownsmall\",\n  \"oneinferior\", \"Lslashsmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"Cedillasmall\", \"\",\n  \"\", \"\", \"\", \"\", \"OEsmall\", \"figuredash\", \"hyphensuperior\", \"\", \"\", \"\", \"\",\n  \"exclamdownsmall\", \"\", \"Ydieresissmall\", \"\", \"onesuperior\", \"twosuperior\",\n  \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n  \"sevensuperior\", \"ninesuperior\", \"zerosuperior\", \"\", \"esuperior\",\n  \"rsuperior\", \"tsuperior\", \"\", \"\", \"isuperior\", \"ssuperior\", \"dsuperior\",\n  \"\", \"\", \"\", \"\", \"\", \"lsuperior\", \"Ogoneksmall\", \"Brevesmall\",\n  \"Macronsmall\", \"bsuperior\", \"nsuperior\", \"msuperior\", \"commasuperior\",\n  \"periodsuperior\", \"Dotaccentsmall\", \"Ringsmall\", \"\", \"\", \"\", \"\"];\n\n// prettier-ignore\nconst MacRomanEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n  \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n  \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n  \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n  \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n  \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n  \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n  \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n  \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n  \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\",\n  \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\",\n  \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\",\n  \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n  \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\",\n  \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\",\n  \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\",\n  \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\",\n  \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\",\n  \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\",\n  \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\",\n  \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\",\n  \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\",\n  \"guillemotright\", \"ellipsis\", \"space\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\",\n  \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\",\n  \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\",\n  \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\",\n  \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\",\n  \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\",\n  \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\",\n  \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\",\n  \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\",\n  \"ogonek\", \"caron\"];\n\n// prettier-ignore\nconst StandardEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n  \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n  \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n  \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n  \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n  \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n  \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n  \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\",\n  \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\",\n  \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdown\",\n  \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n  \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n  \"guilsinglright\", \"fi\", \"fl\", \"\", \"endash\", \"dagger\", \"daggerdbl\",\n  \"periodcentered\", \"\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n  \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n  \"perthousand\", \"\", \"questiondown\", \"\", \"grave\", \"acute\", \"circumflex\",\n  \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"\", \"ring\", \"cedilla\",\n  \"\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"AE\", \"\", \"ordfeminine\", \"\", \"\",\n  \"\", \"\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"\", \"\", \"\", \"\", \"\", \"ae\",\n  \"\", \"\", \"\", \"dotlessi\", \"\", \"\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"\",\n  \"\", \"\", \"\"];\n\n// prettier-ignore\nconst WinAnsiEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n  \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n  \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n  \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n  \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n  \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n  \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n  \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n  \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n  \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n  \"bullet\", \"Euro\", \"bullet\", \"quotesinglbase\", \"florin\", \"quotedblbase\",\n  \"ellipsis\", \"dagger\", \"daggerdbl\", \"circumflex\", \"perthousand\", \"Scaron\",\n  \"guilsinglleft\", \"OE\", \"bullet\", \"Zcaron\", \"bullet\", \"bullet\", \"quoteleft\",\n  \"quoteright\", \"quotedblleft\", \"quotedblright\", \"bullet\", \"endash\",\n  \"emdash\", \"tilde\", \"trademark\", \"scaron\", \"guilsinglright\", \"oe\", \"bullet\",\n  \"zcaron\", \"Ydieresis\", \"space\", \"exclamdown\", \"cent\", \"sterling\",\n  \"currency\", \"yen\", \"brokenbar\", \"section\", \"dieresis\", \"copyright\",\n  \"ordfeminine\", \"guillemotleft\", \"logicalnot\", \"hyphen\", \"registered\",\n  \"macron\", \"degree\", \"plusminus\", \"twosuperior\", \"threesuperior\", \"acute\",\n  \"mu\", \"paragraph\", \"periodcentered\", \"cedilla\", \"onesuperior\",\n  \"ordmasculine\", \"guillemotright\", \"onequarter\", \"onehalf\", \"threequarters\",\n  \"questiondown\", \"Agrave\", \"Aacute\", \"Acircumflex\", \"Atilde\", \"Adieresis\",\n  \"Aring\", \"AE\", \"Ccedilla\", \"Egrave\", \"Eacute\", \"Ecircumflex\", \"Edieresis\",\n  \"Igrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Eth\", \"Ntilde\", \"Ograve\",\n  \"Oacute\", \"Ocircumflex\", \"Otilde\", \"Odieresis\", \"multiply\", \"Oslash\",\n  \"Ugrave\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Yacute\", \"Thorn\",\n  \"germandbls\", \"agrave\", \"aacute\", \"acircumflex\", \"atilde\", \"adieresis\",\n  \"aring\", \"ae\", \"ccedilla\", \"egrave\", \"eacute\", \"ecircumflex\", \"edieresis\",\n  \"igrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"eth\", \"ntilde\", \"ograve\",\n  \"oacute\", \"ocircumflex\", \"otilde\", \"odieresis\", \"divide\", \"oslash\",\n  \"ugrave\", \"uacute\", \"ucircumflex\", \"udieresis\", \"yacute\", \"thorn\",\n  \"ydieresis\"];\n\n// prettier-ignore\nconst SymbolSetEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"exclam\", \"universal\", \"numbersign\", \"existential\", \"percent\",\n  \"ampersand\", \"suchthat\", \"parenleft\", \"parenright\", \"asteriskmath\", \"plus\",\n  \"comma\", \"minus\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n  \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n  \"equal\", \"greater\", \"question\", \"congruent\", \"Alpha\", \"Beta\", \"Chi\",\n  \"Delta\", \"Epsilon\", \"Phi\", \"Gamma\", \"Eta\", \"Iota\", \"theta1\", \"Kappa\",\n  \"Lambda\", \"Mu\", \"Nu\", \"Omicron\", \"Pi\", \"Theta\", \"Rho\", \"Sigma\", \"Tau\",\n  \"Upsilon\", \"sigma1\", \"Omega\", \"Xi\", \"Psi\", \"Zeta\", \"bracketleft\",\n  \"therefore\", \"bracketright\", \"perpendicular\", \"underscore\", \"radicalex\",\n  \"alpha\", \"beta\", \"chi\", \"delta\", \"epsilon\", \"phi\", \"gamma\", \"eta\", \"iota\",\n  \"phi1\", \"kappa\", \"lambda\", \"mu\", \"nu\", \"omicron\", \"pi\", \"theta\", \"rho\",\n  \"sigma\", \"tau\", \"upsilon\", \"omega1\", \"omega\", \"xi\", \"psi\", \"zeta\",\n  \"braceleft\", \"bar\", \"braceright\", \"similar\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"Euro\", \"Upsilon1\", \"minute\", \"lessequal\",\n  \"fraction\", \"infinity\", \"florin\", \"club\", \"diamond\", \"heart\", \"spade\",\n  \"arrowboth\", \"arrowleft\", \"arrowup\", \"arrowright\", \"arrowdown\", \"degree\",\n  \"plusminus\", \"second\", \"greaterequal\", \"multiply\", \"proportional\",\n  \"partialdiff\", \"bullet\", \"divide\", \"notequal\", \"equivalence\",\n  \"approxequal\", \"ellipsis\", \"arrowvertex\", \"arrowhorizex\", \"carriagereturn\",\n  \"aleph\", \"Ifraktur\", \"Rfraktur\", \"weierstrass\", \"circlemultiply\",\n  \"circleplus\", \"emptyset\", \"intersection\", \"union\", \"propersuperset\",\n  \"reflexsuperset\", \"notsubset\", \"propersubset\", \"reflexsubset\", \"element\",\n  \"notelement\", \"angle\", \"gradient\", \"registerserif\", \"copyrightserif\",\n  \"trademarkserif\", \"product\", \"radical\", \"dotmath\", \"logicalnot\",\n  \"logicaland\", \"logicalor\", \"arrowdblboth\", \"arrowdblleft\", \"arrowdblup\",\n  \"arrowdblright\", \"arrowdbldown\", \"lozenge\", \"angleleft\", \"registersans\",\n  \"copyrightsans\", \"trademarksans\", \"summation\", \"parenlefttp\",\n  \"parenleftex\", \"parenleftbt\", \"bracketlefttp\", \"bracketleftex\",\n  \"bracketleftbt\", \"bracelefttp\", \"braceleftmid\", \"braceleftbt\", \"braceex\",\n  \"\", \"angleright\", \"integral\", \"integraltp\", \"integralex\", \"integralbt\",\n  \"parenrighttp\", \"parenrightex\", \"parenrightbt\", \"bracketrighttp\",\n  \"bracketrightex\", \"bracketrightbt\", \"bracerighttp\", \"bracerightmid\",\n  \"bracerightbt\", \"\"];\n\n// prettier-ignore\nconst ZapfDingbatsEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"a1\", \"a2\", \"a202\", \"a3\", \"a4\", \"a5\", \"a119\", \"a118\", \"a117\",\n  \"a11\", \"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a105\", \"a17\", \"a18\", \"a19\",\n  \"a20\", \"a21\", \"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\", \"a28\", \"a6\", \"a7\",\n  \"a8\", \"a9\", \"a10\", \"a29\", \"a30\", \"a31\", \"a32\", \"a33\", \"a34\", \"a35\", \"a36\",\n  \"a37\", \"a38\", \"a39\", \"a40\", \"a41\", \"a42\", \"a43\", \"a44\", \"a45\", \"a46\",\n  \"a47\", \"a48\", \"a49\", \"a50\", \"a51\", \"a52\", \"a53\", \"a54\", \"a55\", \"a56\",\n  \"a57\", \"a58\", \"a59\", \"a60\", \"a61\", \"a62\", \"a63\", \"a64\", \"a65\", \"a66\",\n  \"a67\", \"a68\", \"a69\", \"a70\", \"a71\", \"a72\", \"a73\", \"a74\", \"a203\", \"a75\",\n  \"a204\", \"a76\", \"a77\", \"a78\", \"a79\", \"a81\", \"a82\", \"a83\", \"a84\", \"a97\",\n  \"a98\", \"a99\", \"a100\", \"\", \"a89\", \"a90\", \"a93\", \"a94\", \"a91\", \"a92\", \"a205\",\n  \"a85\", \"a206\", \"a86\", \"a87\", \"a88\", \"a95\", \"a96\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"a101\", \"a102\", \"a103\",\n  \"a104\", \"a106\", \"a107\", \"a108\", \"a112\", \"a111\", \"a110\", \"a109\", \"a120\",\n  \"a121\", \"a122\", \"a123\", \"a124\", \"a125\", \"a126\", \"a127\", \"a128\", \"a129\",\n  \"a130\", \"a131\", \"a132\", \"a133\", \"a134\", \"a135\", \"a136\", \"a137\", \"a138\",\n  \"a139\", \"a140\", \"a141\", \"a142\", \"a143\", \"a144\", \"a145\", \"a146\", \"a147\",\n  \"a148\", \"a149\", \"a150\", \"a151\", \"a152\", \"a153\", \"a154\", \"a155\", \"a156\",\n  \"a157\", \"a158\", \"a159\", \"a160\", \"a161\", \"a163\", \"a164\", \"a196\", \"a165\",\n  \"a192\", \"a166\", \"a167\", \"a168\", \"a169\", \"a170\", \"a171\", \"a172\", \"a173\",\n  \"a162\", \"a174\", \"a175\", \"a176\", \"a177\", \"a178\", \"a179\", \"a193\", \"a180\",\n  \"a199\", \"a181\", \"a200\", \"a182\", \"\", \"a201\", \"a183\", \"a184\", \"a197\", \"a185\",\n  \"a194\", \"a198\", \"a186\", \"a195\", \"a187\", \"a188\", \"a189\", \"a190\", \"a191\", \"\"];\n\nfunction getEncoding(encodingName) {\n  switch (encodingName) {\n    case \"WinAnsiEncoding\":\n      return WinAnsiEncoding;\n    case \"StandardEncoding\":\n      return StandardEncoding;\n    case \"MacRomanEncoding\":\n      return MacRomanEncoding;\n    case \"SymbolSetEncoding\":\n      return SymbolSetEncoding;\n    case \"ZapfDingbatsEncoding\":\n      return ZapfDingbatsEncoding;\n    case \"ExpertEncoding\":\n      return ExpertEncoding;\n    case \"MacExpertEncoding\":\n      return MacExpertEncoding;\n    default:\n      return null;\n  }\n}\n\nexport {\n  WinAnsiEncoding,\n  StandardEncoding,\n  MacRomanEncoding,\n  SymbolSetEncoding,\n  ZapfDingbatsEncoding,\n  ExpertEncoding,\n  getEncoding,\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/* no-babel-preset */\n\nvar getLookupTableFactory = require(\"./core_utils.js\").getLookupTableFactory;\n\nvar getGlyphsUnicode = getLookupTableFactory(function (t) {\n  t.A = 0x0041;\n  t.AE = 0x00c6;\n  t.AEacute = 0x01fc;\n  t.AEmacron = 0x01e2;\n  t.AEsmall = 0xf7e6;\n  t.Aacute = 0x00c1;\n  t.Aacutesmall = 0xf7e1;\n  t.Abreve = 0x0102;\n  t.Abreveacute = 0x1eae;\n  t.Abrevecyrillic = 0x04d0;\n  t.Abrevedotbelow = 0x1eb6;\n  t.Abrevegrave = 0x1eb0;\n  t.Abrevehookabove = 0x1eb2;\n  t.Abrevetilde = 0x1eb4;\n  t.Acaron = 0x01cd;\n  t.Acircle = 0x24b6;\n  t.Acircumflex = 0x00c2;\n  t.Acircumflexacute = 0x1ea4;\n  t.Acircumflexdotbelow = 0x1eac;\n  t.Acircumflexgrave = 0x1ea6;\n  t.Acircumflexhookabove = 0x1ea8;\n  t.Acircumflexsmall = 0xf7e2;\n  t.Acircumflextilde = 0x1eaa;\n  t.Acute = 0xf6c9;\n  t.Acutesmall = 0xf7b4;\n  t.Acyrillic = 0x0410;\n  t.Adblgrave = 0x0200;\n  t.Adieresis = 0x00c4;\n  t.Adieresiscyrillic = 0x04d2;\n  t.Adieresismacron = 0x01de;\n  t.Adieresissmall = 0xf7e4;\n  t.Adotbelow = 0x1ea0;\n  t.Adotmacron = 0x01e0;\n  t.Agrave = 0x00c0;\n  t.Agravesmall = 0xf7e0;\n  t.Ahookabove = 0x1ea2;\n  t.Aiecyrillic = 0x04d4;\n  t.Ainvertedbreve = 0x0202;\n  t.Alpha = 0x0391;\n  t.Alphatonos = 0x0386;\n  t.Amacron = 0x0100;\n  t.Amonospace = 0xff21;\n  t.Aogonek = 0x0104;\n  t.Aring = 0x00c5;\n  t.Aringacute = 0x01fa;\n  t.Aringbelow = 0x1e00;\n  t.Aringsmall = 0xf7e5;\n  t.Asmall = 0xf761;\n  t.Atilde = 0x00c3;\n  t.Atildesmall = 0xf7e3;\n  t.Aybarmenian = 0x0531;\n  t.B = 0x0042;\n  t.Bcircle = 0x24b7;\n  t.Bdotaccent = 0x1e02;\n  t.Bdotbelow = 0x1e04;\n  t.Becyrillic = 0x0411;\n  t.Benarmenian = 0x0532;\n  t.Beta = 0x0392;\n  t.Bhook = 0x0181;\n  t.Blinebelow = 0x1e06;\n  t.Bmonospace = 0xff22;\n  t.Brevesmall = 0xf6f4;\n  t.Bsmall = 0xf762;\n  t.Btopbar = 0x0182;\n  t.C = 0x0043;\n  t.Caarmenian = 0x053e;\n  t.Cacute = 0x0106;\n  t.Caron = 0xf6ca;\n  t.Caronsmall = 0xf6f5;\n  t.Ccaron = 0x010c;\n  t.Ccedilla = 0x00c7;\n  t.Ccedillaacute = 0x1e08;\n  t.Ccedillasmall = 0xf7e7;\n  t.Ccircle = 0x24b8;\n  t.Ccircumflex = 0x0108;\n  t.Cdot = 0x010a;\n  t.Cdotaccent = 0x010a;\n  t.Cedillasmall = 0xf7b8;\n  t.Chaarmenian = 0x0549;\n  t.Cheabkhasiancyrillic = 0x04bc;\n  t.Checyrillic = 0x0427;\n  t.Chedescenderabkhasiancyrillic = 0x04be;\n  t.Chedescendercyrillic = 0x04b6;\n  t.Chedieresiscyrillic = 0x04f4;\n  t.Cheharmenian = 0x0543;\n  t.Chekhakassiancyrillic = 0x04cb;\n  t.Cheverticalstrokecyrillic = 0x04b8;\n  t.Chi = 0x03a7;\n  t.Chook = 0x0187;\n  t.Circumflexsmall = 0xf6f6;\n  t.Cmonospace = 0xff23;\n  t.Coarmenian = 0x0551;\n  t.Csmall = 0xf763;\n  t.D = 0x0044;\n  t.DZ = 0x01f1;\n  t.DZcaron = 0x01c4;\n  t.Daarmenian = 0x0534;\n  t.Dafrican = 0x0189;\n  t.Dcaron = 0x010e;\n  t.Dcedilla = 0x1e10;\n  t.Dcircle = 0x24b9;\n  t.Dcircumflexbelow = 0x1e12;\n  t.Dcroat = 0x0110;\n  t.Ddotaccent = 0x1e0a;\n  t.Ddotbelow = 0x1e0c;\n  t.Decyrillic = 0x0414;\n  t.Deicoptic = 0x03ee;\n  t.Delta = 0x2206;\n  t.Deltagreek = 0x0394;\n  t.Dhook = 0x018a;\n  t.Dieresis = 0xf6cb;\n  t.DieresisAcute = 0xf6cc;\n  t.DieresisGrave = 0xf6cd;\n  t.Dieresissmall = 0xf7a8;\n  t.Digammagreek = 0x03dc;\n  t.Djecyrillic = 0x0402;\n  t.Dlinebelow = 0x1e0e;\n  t.Dmonospace = 0xff24;\n  t.Dotaccentsmall = 0xf6f7;\n  t.Dslash = 0x0110;\n  t.Dsmall = 0xf764;\n  t.Dtopbar = 0x018b;\n  t.Dz = 0x01f2;\n  t.Dzcaron = 0x01c5;\n  t.Dzeabkhasiancyrillic = 0x04e0;\n  t.Dzecyrillic = 0x0405;\n  t.Dzhecyrillic = 0x040f;\n  t.E = 0x0045;\n  t.Eacute = 0x00c9;\n  t.Eacutesmall = 0xf7e9;\n  t.Ebreve = 0x0114;\n  t.Ecaron = 0x011a;\n  t.Ecedillabreve = 0x1e1c;\n  t.Echarmenian = 0x0535;\n  t.Ecircle = 0x24ba;\n  t.Ecircumflex = 0x00ca;\n  t.Ecircumflexacute = 0x1ebe;\n  t.Ecircumflexbelow = 0x1e18;\n  t.Ecircumflexdotbelow = 0x1ec6;\n  t.Ecircumflexgrave = 0x1ec0;\n  t.Ecircumflexhookabove = 0x1ec2;\n  t.Ecircumflexsmall = 0xf7ea;\n  t.Ecircumflextilde = 0x1ec4;\n  t.Ecyrillic = 0x0404;\n  t.Edblgrave = 0x0204;\n  t.Edieresis = 0x00cb;\n  t.Edieresissmall = 0xf7eb;\n  t.Edot = 0x0116;\n  t.Edotaccent = 0x0116;\n  t.Edotbelow = 0x1eb8;\n  t.Efcyrillic = 0x0424;\n  t.Egrave = 0x00c8;\n  t.Egravesmall = 0xf7e8;\n  t.Eharmenian = 0x0537;\n  t.Ehookabove = 0x1eba;\n  t.Eightroman = 0x2167;\n  t.Einvertedbreve = 0x0206;\n  t.Eiotifiedcyrillic = 0x0464;\n  t.Elcyrillic = 0x041b;\n  t.Elevenroman = 0x216a;\n  t.Emacron = 0x0112;\n  t.Emacronacute = 0x1e16;\n  t.Emacrongrave = 0x1e14;\n  t.Emcyrillic = 0x041c;\n  t.Emonospace = 0xff25;\n  t.Encyrillic = 0x041d;\n  t.Endescendercyrillic = 0x04a2;\n  t.Eng = 0x014a;\n  t.Enghecyrillic = 0x04a4;\n  t.Enhookcyrillic = 0x04c7;\n  t.Eogonek = 0x0118;\n  t.Eopen = 0x0190;\n  t.Epsilon = 0x0395;\n  t.Epsilontonos = 0x0388;\n  t.Ercyrillic = 0x0420;\n  t.Ereversed = 0x018e;\n  t.Ereversedcyrillic = 0x042d;\n  t.Escyrillic = 0x0421;\n  t.Esdescendercyrillic = 0x04aa;\n  t.Esh = 0x01a9;\n  t.Esmall = 0xf765;\n  t.Eta = 0x0397;\n  t.Etarmenian = 0x0538;\n  t.Etatonos = 0x0389;\n  t.Eth = 0x00d0;\n  t.Ethsmall = 0xf7f0;\n  t.Etilde = 0x1ebc;\n  t.Etildebelow = 0x1e1a;\n  t.Euro = 0x20ac;\n  t.Ezh = 0x01b7;\n  t.Ezhcaron = 0x01ee;\n  t.Ezhreversed = 0x01b8;\n  t.F = 0x0046;\n  t.Fcircle = 0x24bb;\n  t.Fdotaccent = 0x1e1e;\n  t.Feharmenian = 0x0556;\n  t.Feicoptic = 0x03e4;\n  t.Fhook = 0x0191;\n  t.Fitacyrillic = 0x0472;\n  t.Fiveroman = 0x2164;\n  t.Fmonospace = 0xff26;\n  t.Fourroman = 0x2163;\n  t.Fsmall = 0xf766;\n  t.G = 0x0047;\n  t.GBsquare = 0x3387;\n  t.Gacute = 0x01f4;\n  t.Gamma = 0x0393;\n  t.Gammaafrican = 0x0194;\n  t.Gangiacoptic = 0x03ea;\n  t.Gbreve = 0x011e;\n  t.Gcaron = 0x01e6;\n  t.Gcedilla = 0x0122;\n  t.Gcircle = 0x24bc;\n  t.Gcircumflex = 0x011c;\n  t.Gcommaaccent = 0x0122;\n  t.Gdot = 0x0120;\n  t.Gdotaccent = 0x0120;\n  t.Gecyrillic = 0x0413;\n  t.Ghadarmenian = 0x0542;\n  t.Ghemiddlehookcyrillic = 0x0494;\n  t.Ghestrokecyrillic = 0x0492;\n  t.Gheupturncyrillic = 0x0490;\n  t.Ghook = 0x0193;\n  t.Gimarmenian = 0x0533;\n  t.Gjecyrillic = 0x0403;\n  t.Gmacron = 0x1e20;\n  t.Gmonospace = 0xff27;\n  t.Grave = 0xf6ce;\n  t.Gravesmall = 0xf760;\n  t.Gsmall = 0xf767;\n  t.Gsmallhook = 0x029b;\n  t.Gstroke = 0x01e4;\n  t.H = 0x0048;\n  t.H18533 = 0x25cf;\n  t.H18543 = 0x25aa;\n  t.H18551 = 0x25ab;\n  t.H22073 = 0x25a1;\n  t.HPsquare = 0x33cb;\n  t.Haabkhasiancyrillic = 0x04a8;\n  t.Hadescendercyrillic = 0x04b2;\n  t.Hardsigncyrillic = 0x042a;\n  t.Hbar = 0x0126;\n  t.Hbrevebelow = 0x1e2a;\n  t.Hcedilla = 0x1e28;\n  t.Hcircle = 0x24bd;\n  t.Hcircumflex = 0x0124;\n  t.Hdieresis = 0x1e26;\n  t.Hdotaccent = 0x1e22;\n  t.Hdotbelow = 0x1e24;\n  t.Hmonospace = 0xff28;\n  t.Hoarmenian = 0x0540;\n  t.Horicoptic = 0x03e8;\n  t.Hsmall = 0xf768;\n  t.Hungarumlaut = 0xf6cf;\n  t.Hungarumlautsmall = 0xf6f8;\n  t.Hzsquare = 0x3390;\n  t.I = 0x0049;\n  t.IAcyrillic = 0x042f;\n  t.IJ = 0x0132;\n  t.IUcyrillic = 0x042e;\n  t.Iacute = 0x00cd;\n  t.Iacutesmall = 0xf7ed;\n  t.Ibreve = 0x012c;\n  t.Icaron = 0x01cf;\n  t.Icircle = 0x24be;\n  t.Icircumflex = 0x00ce;\n  t.Icircumflexsmall = 0xf7ee;\n  t.Icyrillic = 0x0406;\n  t.Idblgrave = 0x0208;\n  t.Idieresis = 0x00cf;\n  t.Idieresisacute = 0x1e2e;\n  t.Idieresiscyrillic = 0x04e4;\n  t.Idieresissmall = 0xf7ef;\n  t.Idot = 0x0130;\n  t.Idotaccent = 0x0130;\n  t.Idotbelow = 0x1eca;\n  t.Iebrevecyrillic = 0x04d6;\n  t.Iecyrillic = 0x0415;\n  t.Ifraktur = 0x2111;\n  t.Igrave = 0x00cc;\n  t.Igravesmall = 0xf7ec;\n  t.Ihookabove = 0x1ec8;\n  t.Iicyrillic = 0x0418;\n  t.Iinvertedbreve = 0x020a;\n  t.Iishortcyrillic = 0x0419;\n  t.Imacron = 0x012a;\n  t.Imacroncyrillic = 0x04e2;\n  t.Imonospace = 0xff29;\n  t.Iniarmenian = 0x053b;\n  t.Iocyrillic = 0x0401;\n  t.Iogonek = 0x012e;\n  t.Iota = 0x0399;\n  t.Iotaafrican = 0x0196;\n  t.Iotadieresis = 0x03aa;\n  t.Iotatonos = 0x038a;\n  t.Ismall = 0xf769;\n  t.Istroke = 0x0197;\n  t.Itilde = 0x0128;\n  t.Itildebelow = 0x1e2c;\n  t.Izhitsacyrillic = 0x0474;\n  t.Izhitsadblgravecyrillic = 0x0476;\n  t.J = 0x004a;\n  t.Jaarmenian = 0x0541;\n  t.Jcircle = 0x24bf;\n  t.Jcircumflex = 0x0134;\n  t.Jecyrillic = 0x0408;\n  t.Jheharmenian = 0x054b;\n  t.Jmonospace = 0xff2a;\n  t.Jsmall = 0xf76a;\n  t.K = 0x004b;\n  t.KBsquare = 0x3385;\n  t.KKsquare = 0x33cd;\n  t.Kabashkircyrillic = 0x04a0;\n  t.Kacute = 0x1e30;\n  t.Kacyrillic = 0x041a;\n  t.Kadescendercyrillic = 0x049a;\n  t.Kahookcyrillic = 0x04c3;\n  t.Kappa = 0x039a;\n  t.Kastrokecyrillic = 0x049e;\n  t.Kaverticalstrokecyrillic = 0x049c;\n  t.Kcaron = 0x01e8;\n  t.Kcedilla = 0x0136;\n  t.Kcircle = 0x24c0;\n  t.Kcommaaccent = 0x0136;\n  t.Kdotbelow = 0x1e32;\n  t.Keharmenian = 0x0554;\n  t.Kenarmenian = 0x053f;\n  t.Khacyrillic = 0x0425;\n  t.Kheicoptic = 0x03e6;\n  t.Khook = 0x0198;\n  t.Kjecyrillic = 0x040c;\n  t.Klinebelow = 0x1e34;\n  t.Kmonospace = 0xff2b;\n  t.Koppacyrillic = 0x0480;\n  t.Koppagreek = 0x03de;\n  t.Ksicyrillic = 0x046e;\n  t.Ksmall = 0xf76b;\n  t.L = 0x004c;\n  t.LJ = 0x01c7;\n  t.LL = 0xf6bf;\n  t.Lacute = 0x0139;\n  t.Lambda = 0x039b;\n  t.Lcaron = 0x013d;\n  t.Lcedilla = 0x013b;\n  t.Lcircle = 0x24c1;\n  t.Lcircumflexbelow = 0x1e3c;\n  t.Lcommaaccent = 0x013b;\n  t.Ldot = 0x013f;\n  t.Ldotaccent = 0x013f;\n  t.Ldotbelow = 0x1e36;\n  t.Ldotbelowmacron = 0x1e38;\n  t.Liwnarmenian = 0x053c;\n  t.Lj = 0x01c8;\n  t.Ljecyrillic = 0x0409;\n  t.Llinebelow = 0x1e3a;\n  t.Lmonospace = 0xff2c;\n  t.Lslash = 0x0141;\n  t.Lslashsmall = 0xf6f9;\n  t.Lsmall = 0xf76c;\n  t.M = 0x004d;\n  t.MBsquare = 0x3386;\n  t.Macron = 0xf6d0;\n  t.Macronsmall = 0xf7af;\n  t.Macute = 0x1e3e;\n  t.Mcircle = 0x24c2;\n  t.Mdotaccent = 0x1e40;\n  t.Mdotbelow = 0x1e42;\n  t.Menarmenian = 0x0544;\n  t.Mmonospace = 0xff2d;\n  t.Msmall = 0xf76d;\n  t.Mturned = 0x019c;\n  t.Mu = 0x039c;\n  t.N = 0x004e;\n  t.NJ = 0x01ca;\n  t.Nacute = 0x0143;\n  t.Ncaron = 0x0147;\n  t.Ncedilla = 0x0145;\n  t.Ncircle = 0x24c3;\n  t.Ncircumflexbelow = 0x1e4a;\n  t.Ncommaaccent = 0x0145;\n  t.Ndotaccent = 0x1e44;\n  t.Ndotbelow = 0x1e46;\n  t.Nhookleft = 0x019d;\n  t.Nineroman = 0x2168;\n  t.Nj = 0x01cb;\n  t.Njecyrillic = 0x040a;\n  t.Nlinebelow = 0x1e48;\n  t.Nmonospace = 0xff2e;\n  t.Nowarmenian = 0x0546;\n  t.Nsmall = 0xf76e;\n  t.Ntilde = 0x00d1;\n  t.Ntildesmall = 0xf7f1;\n  t.Nu = 0x039d;\n  t.O = 0x004f;\n  t.OE = 0x0152;\n  t.OEsmall = 0xf6fa;\n  t.Oacute = 0x00d3;\n  t.Oacutesmall = 0xf7f3;\n  t.Obarredcyrillic = 0x04e8;\n  t.Obarreddieresiscyrillic = 0x04ea;\n  t.Obreve = 0x014e;\n  t.Ocaron = 0x01d1;\n  t.Ocenteredtilde = 0x019f;\n  t.Ocircle = 0x24c4;\n  t.Ocircumflex = 0x00d4;\n  t.Ocircumflexacute = 0x1ed0;\n  t.Ocircumflexdotbelow = 0x1ed8;\n  t.Ocircumflexgrave = 0x1ed2;\n  t.Ocircumflexhookabove = 0x1ed4;\n  t.Ocircumflexsmall = 0xf7f4;\n  t.Ocircumflextilde = 0x1ed6;\n  t.Ocyrillic = 0x041e;\n  t.Odblacute = 0x0150;\n  t.Odblgrave = 0x020c;\n  t.Odieresis = 0x00d6;\n  t.Odieresiscyrillic = 0x04e6;\n  t.Odieresissmall = 0xf7f6;\n  t.Odotbelow = 0x1ecc;\n  t.Ogoneksmall = 0xf6fb;\n  t.Ograve = 0x00d2;\n  t.Ogravesmall = 0xf7f2;\n  t.Oharmenian = 0x0555;\n  t.Ohm = 0x2126;\n  t.Ohookabove = 0x1ece;\n  t.Ohorn = 0x01a0;\n  t.Ohornacute = 0x1eda;\n  t.Ohorndotbelow = 0x1ee2;\n  t.Ohorngrave = 0x1edc;\n  t.Ohornhookabove = 0x1ede;\n  t.Ohorntilde = 0x1ee0;\n  t.Ohungarumlaut = 0x0150;\n  t.Oi = 0x01a2;\n  t.Oinvertedbreve = 0x020e;\n  t.Omacron = 0x014c;\n  t.Omacronacute = 0x1e52;\n  t.Omacrongrave = 0x1e50;\n  t.Omega = 0x2126;\n  t.Omegacyrillic = 0x0460;\n  t.Omegagreek = 0x03a9;\n  t.Omegaroundcyrillic = 0x047a;\n  t.Omegatitlocyrillic = 0x047c;\n  t.Omegatonos = 0x038f;\n  t.Omicron = 0x039f;\n  t.Omicrontonos = 0x038c;\n  t.Omonospace = 0xff2f;\n  t.Oneroman = 0x2160;\n  t.Oogonek = 0x01ea;\n  t.Oogonekmacron = 0x01ec;\n  t.Oopen = 0x0186;\n  t.Oslash = 0x00d8;\n  t.Oslashacute = 0x01fe;\n  t.Oslashsmall = 0xf7f8;\n  t.Osmall = 0xf76f;\n  t.Ostrokeacute = 0x01fe;\n  t.Otcyrillic = 0x047e;\n  t.Otilde = 0x00d5;\n  t.Otildeacute = 0x1e4c;\n  t.Otildedieresis = 0x1e4e;\n  t.Otildesmall = 0xf7f5;\n  t.P = 0x0050;\n  t.Pacute = 0x1e54;\n  t.Pcircle = 0x24c5;\n  t.Pdotaccent = 0x1e56;\n  t.Pecyrillic = 0x041f;\n  t.Peharmenian = 0x054a;\n  t.Pemiddlehookcyrillic = 0x04a6;\n  t.Phi = 0x03a6;\n  t.Phook = 0x01a4;\n  t.Pi = 0x03a0;\n  t.Piwrarmenian = 0x0553;\n  t.Pmonospace = 0xff30;\n  t.Psi = 0x03a8;\n  t.Psicyrillic = 0x0470;\n  t.Psmall = 0xf770;\n  t.Q = 0x0051;\n  t.Qcircle = 0x24c6;\n  t.Qmonospace = 0xff31;\n  t.Qsmall = 0xf771;\n  t.R = 0x0052;\n  t.Raarmenian = 0x054c;\n  t.Racute = 0x0154;\n  t.Rcaron = 0x0158;\n  t.Rcedilla = 0x0156;\n  t.Rcircle = 0x24c7;\n  t.Rcommaaccent = 0x0156;\n  t.Rdblgrave = 0x0210;\n  t.Rdotaccent = 0x1e58;\n  t.Rdotbelow = 0x1e5a;\n  t.Rdotbelowmacron = 0x1e5c;\n  t.Reharmenian = 0x0550;\n  t.Rfraktur = 0x211c;\n  t.Rho = 0x03a1;\n  t.Ringsmall = 0xf6fc;\n  t.Rinvertedbreve = 0x0212;\n  t.Rlinebelow = 0x1e5e;\n  t.Rmonospace = 0xff32;\n  t.Rsmall = 0xf772;\n  t.Rsmallinverted = 0x0281;\n  t.Rsmallinvertedsuperior = 0x02b6;\n  t.S = 0x0053;\n  t.SF010000 = 0x250c;\n  t.SF020000 = 0x2514;\n  t.SF030000 = 0x2510;\n  t.SF040000 = 0x2518;\n  t.SF050000 = 0x253c;\n  t.SF060000 = 0x252c;\n  t.SF070000 = 0x2534;\n  t.SF080000 = 0x251c;\n  t.SF090000 = 0x2524;\n  t.SF100000 = 0x2500;\n  t.SF110000 = 0x2502;\n  t.SF190000 = 0x2561;\n  t.SF200000 = 0x2562;\n  t.SF210000 = 0x2556;\n  t.SF220000 = 0x2555;\n  t.SF230000 = 0x2563;\n  t.SF240000 = 0x2551;\n  t.SF250000 = 0x2557;\n  t.SF260000 = 0x255d;\n  t.SF270000 = 0x255c;\n  t.SF280000 = 0x255b;\n  t.SF360000 = 0x255e;\n  t.SF370000 = 0x255f;\n  t.SF380000 = 0x255a;\n  t.SF390000 = 0x2554;\n  t.SF400000 = 0x2569;\n  t.SF410000 = 0x2566;\n  t.SF420000 = 0x2560;\n  t.SF430000 = 0x2550;\n  t.SF440000 = 0x256c;\n  t.SF450000 = 0x2567;\n  t.SF460000 = 0x2568;\n  t.SF470000 = 0x2564;\n  t.SF480000 = 0x2565;\n  t.SF490000 = 0x2559;\n  t.SF500000 = 0x2558;\n  t.SF510000 = 0x2552;\n  t.SF520000 = 0x2553;\n  t.SF530000 = 0x256b;\n  t.SF540000 = 0x256a;\n  t.Sacute = 0x015a;\n  t.Sacutedotaccent = 0x1e64;\n  t.Sampigreek = 0x03e0;\n  t.Scaron = 0x0160;\n  t.Scarondotaccent = 0x1e66;\n  t.Scaronsmall = 0xf6fd;\n  t.Scedilla = 0x015e;\n  t.Schwa = 0x018f;\n  t.Schwacyrillic = 0x04d8;\n  t.Schwadieresiscyrillic = 0x04da;\n  t.Scircle = 0x24c8;\n  t.Scircumflex = 0x015c;\n  t.Scommaaccent = 0x0218;\n  t.Sdotaccent = 0x1e60;\n  t.Sdotbelow = 0x1e62;\n  t.Sdotbelowdotaccent = 0x1e68;\n  t.Seharmenian = 0x054d;\n  t.Sevenroman = 0x2166;\n  t.Shaarmenian = 0x0547;\n  t.Shacyrillic = 0x0428;\n  t.Shchacyrillic = 0x0429;\n  t.Sheicoptic = 0x03e2;\n  t.Shhacyrillic = 0x04ba;\n  t.Shimacoptic = 0x03ec;\n  t.Sigma = 0x03a3;\n  t.Sixroman = 0x2165;\n  t.Smonospace = 0xff33;\n  t.Softsigncyrillic = 0x042c;\n  t.Ssmall = 0xf773;\n  t.Stigmagreek = 0x03da;\n  t.T = 0x0054;\n  t.Tau = 0x03a4;\n  t.Tbar = 0x0166;\n  t.Tcaron = 0x0164;\n  t.Tcedilla = 0x0162;\n  t.Tcircle = 0x24c9;\n  t.Tcircumflexbelow = 0x1e70;\n  t.Tcommaaccent = 0x0162;\n  t.Tdotaccent = 0x1e6a;\n  t.Tdotbelow = 0x1e6c;\n  t.Tecyrillic = 0x0422;\n  t.Tedescendercyrillic = 0x04ac;\n  t.Tenroman = 0x2169;\n  t.Tetsecyrillic = 0x04b4;\n  t.Theta = 0x0398;\n  t.Thook = 0x01ac;\n  t.Thorn = 0x00de;\n  t.Thornsmall = 0xf7fe;\n  t.Threeroman = 0x2162;\n  t.Tildesmall = 0xf6fe;\n  t.Tiwnarmenian = 0x054f;\n  t.Tlinebelow = 0x1e6e;\n  t.Tmonospace = 0xff34;\n  t.Toarmenian = 0x0539;\n  t.Tonefive = 0x01bc;\n  t.Tonesix = 0x0184;\n  t.Tonetwo = 0x01a7;\n  t.Tretroflexhook = 0x01ae;\n  t.Tsecyrillic = 0x0426;\n  t.Tshecyrillic = 0x040b;\n  t.Tsmall = 0xf774;\n  t.Twelveroman = 0x216b;\n  t.Tworoman = 0x2161;\n  t.U = 0x0055;\n  t.Uacute = 0x00da;\n  t.Uacutesmall = 0xf7fa;\n  t.Ubreve = 0x016c;\n  t.Ucaron = 0x01d3;\n  t.Ucircle = 0x24ca;\n  t.Ucircumflex = 0x00db;\n  t.Ucircumflexbelow = 0x1e76;\n  t.Ucircumflexsmall = 0xf7fb;\n  t.Ucyrillic = 0x0423;\n  t.Udblacute = 0x0170;\n  t.Udblgrave = 0x0214;\n  t.Udieresis = 0x00dc;\n  t.Udieresisacute = 0x01d7;\n  t.Udieresisbelow = 0x1e72;\n  t.Udieresiscaron = 0x01d9;\n  t.Udieresiscyrillic = 0x04f0;\n  t.Udieresisgrave = 0x01db;\n  t.Udieresismacron = 0x01d5;\n  t.Udieresissmall = 0xf7fc;\n  t.Udotbelow = 0x1ee4;\n  t.Ugrave = 0x00d9;\n  t.Ugravesmall = 0xf7f9;\n  t.Uhookabove = 0x1ee6;\n  t.Uhorn = 0x01af;\n  t.Uhornacute = 0x1ee8;\n  t.Uhorndotbelow = 0x1ef0;\n  t.Uhorngrave = 0x1eea;\n  t.Uhornhookabove = 0x1eec;\n  t.Uhorntilde = 0x1eee;\n  t.Uhungarumlaut = 0x0170;\n  t.Uhungarumlautcyrillic = 0x04f2;\n  t.Uinvertedbreve = 0x0216;\n  t.Ukcyrillic = 0x0478;\n  t.Umacron = 0x016a;\n  t.Umacroncyrillic = 0x04ee;\n  t.Umacrondieresis = 0x1e7a;\n  t.Umonospace = 0xff35;\n  t.Uogonek = 0x0172;\n  t.Upsilon = 0x03a5;\n  t.Upsilon1 = 0x03d2;\n  t.Upsilonacutehooksymbolgreek = 0x03d3;\n  t.Upsilonafrican = 0x01b1;\n  t.Upsilondieresis = 0x03ab;\n  t.Upsilondieresishooksymbolgreek = 0x03d4;\n  t.Upsilonhooksymbol = 0x03d2;\n  t.Upsilontonos = 0x038e;\n  t.Uring = 0x016e;\n  t.Ushortcyrillic = 0x040e;\n  t.Usmall = 0xf775;\n  t.Ustraightcyrillic = 0x04ae;\n  t.Ustraightstrokecyrillic = 0x04b0;\n  t.Utilde = 0x0168;\n  t.Utildeacute = 0x1e78;\n  t.Utildebelow = 0x1e74;\n  t.V = 0x0056;\n  t.Vcircle = 0x24cb;\n  t.Vdotbelow = 0x1e7e;\n  t.Vecyrillic = 0x0412;\n  t.Vewarmenian = 0x054e;\n  t.Vhook = 0x01b2;\n  t.Vmonospace = 0xff36;\n  t.Voarmenian = 0x0548;\n  t.Vsmall = 0xf776;\n  t.Vtilde = 0x1e7c;\n  t.W = 0x0057;\n  t.Wacute = 0x1e82;\n  t.Wcircle = 0x24cc;\n  t.Wcircumflex = 0x0174;\n  t.Wdieresis = 0x1e84;\n  t.Wdotaccent = 0x1e86;\n  t.Wdotbelow = 0x1e88;\n  t.Wgrave = 0x1e80;\n  t.Wmonospace = 0xff37;\n  t.Wsmall = 0xf777;\n  t.X = 0x0058;\n  t.Xcircle = 0x24cd;\n  t.Xdieresis = 0x1e8c;\n  t.Xdotaccent = 0x1e8a;\n  t.Xeharmenian = 0x053d;\n  t.Xi = 0x039e;\n  t.Xmonospace = 0xff38;\n  t.Xsmall = 0xf778;\n  t.Y = 0x0059;\n  t.Yacute = 0x00dd;\n  t.Yacutesmall = 0xf7fd;\n  t.Yatcyrillic = 0x0462;\n  t.Ycircle = 0x24ce;\n  t.Ycircumflex = 0x0176;\n  t.Ydieresis = 0x0178;\n  t.Ydieresissmall = 0xf7ff;\n  t.Ydotaccent = 0x1e8e;\n  t.Ydotbelow = 0x1ef4;\n  t.Yericyrillic = 0x042b;\n  t.Yerudieresiscyrillic = 0x04f8;\n  t.Ygrave = 0x1ef2;\n  t.Yhook = 0x01b3;\n  t.Yhookabove = 0x1ef6;\n  t.Yiarmenian = 0x0545;\n  t.Yicyrillic = 0x0407;\n  t.Yiwnarmenian = 0x0552;\n  t.Ymonospace = 0xff39;\n  t.Ysmall = 0xf779;\n  t.Ytilde = 0x1ef8;\n  t.Yusbigcyrillic = 0x046a;\n  t.Yusbigiotifiedcyrillic = 0x046c;\n  t.Yuslittlecyrillic = 0x0466;\n  t.Yuslittleiotifiedcyrillic = 0x0468;\n  t.Z = 0x005a;\n  t.Zaarmenian = 0x0536;\n  t.Zacute = 0x0179;\n  t.Zcaron = 0x017d;\n  t.Zcaronsmall = 0xf6ff;\n  t.Zcircle = 0x24cf;\n  t.Zcircumflex = 0x1e90;\n  t.Zdot = 0x017b;\n  t.Zdotaccent = 0x017b;\n  t.Zdotbelow = 0x1e92;\n  t.Zecyrillic = 0x0417;\n  t.Zedescendercyrillic = 0x0498;\n  t.Zedieresiscyrillic = 0x04de;\n  t.Zeta = 0x0396;\n  t.Zhearmenian = 0x053a;\n  t.Zhebrevecyrillic = 0x04c1;\n  t.Zhecyrillic = 0x0416;\n  t.Zhedescendercyrillic = 0x0496;\n  t.Zhedieresiscyrillic = 0x04dc;\n  t.Zlinebelow = 0x1e94;\n  t.Zmonospace = 0xff3a;\n  t.Zsmall = 0xf77a;\n  t.Zstroke = 0x01b5;\n  t.a = 0x0061;\n  t.aabengali = 0x0986;\n  t.aacute = 0x00e1;\n  t.aadeva = 0x0906;\n  t.aagujarati = 0x0a86;\n  t.aagurmukhi = 0x0a06;\n  t.aamatragurmukhi = 0x0a3e;\n  t.aarusquare = 0x3303;\n  t.aavowelsignbengali = 0x09be;\n  t.aavowelsigndeva = 0x093e;\n  t.aavowelsigngujarati = 0x0abe;\n  t.abbreviationmarkarmenian = 0x055f;\n  t.abbreviationsigndeva = 0x0970;\n  t.abengali = 0x0985;\n  t.abopomofo = 0x311a;\n  t.abreve = 0x0103;\n  t.abreveacute = 0x1eaf;\n  t.abrevecyrillic = 0x04d1;\n  t.abrevedotbelow = 0x1eb7;\n  t.abrevegrave = 0x1eb1;\n  t.abrevehookabove = 0x1eb3;\n  t.abrevetilde = 0x1eb5;\n  t.acaron = 0x01ce;\n  t.acircle = 0x24d0;\n  t.acircumflex = 0x00e2;\n  t.acircumflexacute = 0x1ea5;\n  t.acircumflexdotbelow = 0x1ead;\n  t.acircumflexgrave = 0x1ea7;\n  t.acircumflexhookabove = 0x1ea9;\n  t.acircumflextilde = 0x1eab;\n  t.acute = 0x00b4;\n  t.acutebelowcmb = 0x0317;\n  t.acutecmb = 0x0301;\n  t.acutecomb = 0x0301;\n  t.acutedeva = 0x0954;\n  t.acutelowmod = 0x02cf;\n  t.acutetonecmb = 0x0341;\n  t.acyrillic = 0x0430;\n  t.adblgrave = 0x0201;\n  t.addakgurmukhi = 0x0a71;\n  t.adeva = 0x0905;\n  t.adieresis = 0x00e4;\n  t.adieresiscyrillic = 0x04d3;\n  t.adieresismacron = 0x01df;\n  t.adotbelow = 0x1ea1;\n  t.adotmacron = 0x01e1;\n  t.ae = 0x00e6;\n  t.aeacute = 0x01fd;\n  t.aekorean = 0x3150;\n  t.aemacron = 0x01e3;\n  t.afii00208 = 0x2015;\n  t.afii08941 = 0x20a4;\n  t.afii10017 = 0x0410;\n  t.afii10018 = 0x0411;\n  t.afii10019 = 0x0412;\n  t.afii10020 = 0x0413;\n  t.afii10021 = 0x0414;\n  t.afii10022 = 0x0415;\n  t.afii10023 = 0x0401;\n  t.afii10024 = 0x0416;\n  t.afii10025 = 0x0417;\n  t.afii10026 = 0x0418;\n  t.afii10027 = 0x0419;\n  t.afii10028 = 0x041a;\n  t.afii10029 = 0x041b;\n  t.afii10030 = 0x041c;\n  t.afii10031 = 0x041d;\n  t.afii10032 = 0x041e;\n  t.afii10033 = 0x041f;\n  t.afii10034 = 0x0420;\n  t.afii10035 = 0x0421;\n  t.afii10036 = 0x0422;\n  t.afii10037 = 0x0423;\n  t.afii10038 = 0x0424;\n  t.afii10039 = 0x0425;\n  t.afii10040 = 0x0426;\n  t.afii10041 = 0x0427;\n  t.afii10042 = 0x0428;\n  t.afii10043 = 0x0429;\n  t.afii10044 = 0x042a;\n  t.afii10045 = 0x042b;\n  t.afii10046 = 0x042c;\n  t.afii10047 = 0x042d;\n  t.afii10048 = 0x042e;\n  t.afii10049 = 0x042f;\n  t.afii10050 = 0x0490;\n  t.afii10051 = 0x0402;\n  t.afii10052 = 0x0403;\n  t.afii10053 = 0x0404;\n  t.afii10054 = 0x0405;\n  t.afii10055 = 0x0406;\n  t.afii10056 = 0x0407;\n  t.afii10057 = 0x0408;\n  t.afii10058 = 0x0409;\n  t.afii10059 = 0x040a;\n  t.afii10060 = 0x040b;\n  t.afii10061 = 0x040c;\n  t.afii10062 = 0x040e;\n  t.afii10063 = 0xf6c4;\n  t.afii10064 = 0xf6c5;\n  t.afii10065 = 0x0430;\n  t.afii10066 = 0x0431;\n  t.afii10067 = 0x0432;\n  t.afii10068 = 0x0433;\n  t.afii10069 = 0x0434;\n  t.afii10070 = 0x0435;\n  t.afii10071 = 0x0451;\n  t.afii10072 = 0x0436;\n  t.afii10073 = 0x0437;\n  t.afii10074 = 0x0438;\n  t.afii10075 = 0x0439;\n  t.afii10076 = 0x043a;\n  t.afii10077 = 0x043b;\n  t.afii10078 = 0x043c;\n  t.afii10079 = 0x043d;\n  t.afii10080 = 0x043e;\n  t.afii10081 = 0x043f;\n  t.afii10082 = 0x0440;\n  t.afii10083 = 0x0441;\n  t.afii10084 = 0x0442;\n  t.afii10085 = 0x0443;\n  t.afii10086 = 0x0444;\n  t.afii10087 = 0x0445;\n  t.afii10088 = 0x0446;\n  t.afii10089 = 0x0447;\n  t.afii10090 = 0x0448;\n  t.afii10091 = 0x0449;\n  t.afii10092 = 0x044a;\n  t.afii10093 = 0x044b;\n  t.afii10094 = 0x044c;\n  t.afii10095 = 0x044d;\n  t.afii10096 = 0x044e;\n  t.afii10097 = 0x044f;\n  t.afii10098 = 0x0491;\n  t.afii10099 = 0x0452;\n  t.afii10100 = 0x0453;\n  t.afii10101 = 0x0454;\n  t.afii10102 = 0x0455;\n  t.afii10103 = 0x0456;\n  t.afii10104 = 0x0457;\n  t.afii10105 = 0x0458;\n  t.afii10106 = 0x0459;\n  t.afii10107 = 0x045a;\n  t.afii10108 = 0x045b;\n  t.afii10109 = 0x045c;\n  t.afii10110 = 0x045e;\n  t.afii10145 = 0x040f;\n  t.afii10146 = 0x0462;\n  t.afii10147 = 0x0472;\n  t.afii10148 = 0x0474;\n  t.afii10192 = 0xf6c6;\n  t.afii10193 = 0x045f;\n  t.afii10194 = 0x0463;\n  t.afii10195 = 0x0473;\n  t.afii10196 = 0x0475;\n  t.afii10831 = 0xf6c7;\n  t.afii10832 = 0xf6c8;\n  t.afii10846 = 0x04d9;\n  t.afii299 = 0x200e;\n  t.afii300 = 0x200f;\n  t.afii301 = 0x200d;\n  t.afii57381 = 0x066a;\n  t.afii57388 = 0x060c;\n  t.afii57392 = 0x0660;\n  t.afii57393 = 0x0661;\n  t.afii57394 = 0x0662;\n  t.afii57395 = 0x0663;\n  t.afii57396 = 0x0664;\n  t.afii57397 = 0x0665;\n  t.afii57398 = 0x0666;\n  t.afii57399 = 0x0667;\n  t.afii57400 = 0x0668;\n  t.afii57401 = 0x0669;\n  t.afii57403 = 0x061b;\n  t.afii57407 = 0x061f;\n  t.afii57409 = 0x0621;\n  t.afii57410 = 0x0622;\n  t.afii57411 = 0x0623;\n  t.afii57412 = 0x0624;\n  t.afii57413 = 0x0625;\n  t.afii57414 = 0x0626;\n  t.afii57415 = 0x0627;\n  t.afii57416 = 0x0628;\n  t.afii57417 = 0x0629;\n  t.afii57418 = 0x062a;\n  t.afii57419 = 0x062b;\n  t.afii57420 = 0x062c;\n  t.afii57421 = 0x062d;\n  t.afii57422 = 0x062e;\n  t.afii57423 = 0x062f;\n  t.afii57424 = 0x0630;\n  t.afii57425 = 0x0631;\n  t.afii57426 = 0x0632;\n  t.afii57427 = 0x0633;\n  t.afii57428 = 0x0634;\n  t.afii57429 = 0x0635;\n  t.afii57430 = 0x0636;\n  t.afii57431 = 0x0637;\n  t.afii57432 = 0x0638;\n  t.afii57433 = 0x0639;\n  t.afii57434 = 0x063a;\n  t.afii57440 = 0x0640;\n  t.afii57441 = 0x0641;\n  t.afii57442 = 0x0642;\n  t.afii57443 = 0x0643;\n  t.afii57444 = 0x0644;\n  t.afii57445 = 0x0645;\n  t.afii57446 = 0x0646;\n  t.afii57448 = 0x0648;\n  t.afii57449 = 0x0649;\n  t.afii57450 = 0x064a;\n  t.afii57451 = 0x064b;\n  t.afii57452 = 0x064c;\n  t.afii57453 = 0x064d;\n  t.afii57454 = 0x064e;\n  t.afii57455 = 0x064f;\n  t.afii57456 = 0x0650;\n  t.afii57457 = 0x0651;\n  t.afii57458 = 0x0652;\n  t.afii57470 = 0x0647;\n  t.afii57505 = 0x06a4;\n  t.afii57506 = 0x067e;\n  t.afii57507 = 0x0686;\n  t.afii57508 = 0x0698;\n  t.afii57509 = 0x06af;\n  t.afii57511 = 0x0679;\n  t.afii57512 = 0x0688;\n  t.afii57513 = 0x0691;\n  t.afii57514 = 0x06ba;\n  t.afii57519 = 0x06d2;\n  t.afii57534 = 0x06d5;\n  t.afii57636 = 0x20aa;\n  t.afii57645 = 0x05be;\n  t.afii57658 = 0x05c3;\n  t.afii57664 = 0x05d0;\n  t.afii57665 = 0x05d1;\n  t.afii57666 = 0x05d2;\n  t.afii57667 = 0x05d3;\n  t.afii57668 = 0x05d4;\n  t.afii57669 = 0x05d5;\n  t.afii57670 = 0x05d6;\n  t.afii57671 = 0x05d7;\n  t.afii57672 = 0x05d8;\n  t.afii57673 = 0x05d9;\n  t.afii57674 = 0x05da;\n  t.afii57675 = 0x05db;\n  t.afii57676 = 0x05dc;\n  t.afii57677 = 0x05dd;\n  t.afii57678 = 0x05de;\n  t.afii57679 = 0x05df;\n  t.afii57680 = 0x05e0;\n  t.afii57681 = 0x05e1;\n  t.afii57682 = 0x05e2;\n  t.afii57683 = 0x05e3;\n  t.afii57684 = 0x05e4;\n  t.afii57685 = 0x05e5;\n  t.afii57686 = 0x05e6;\n  t.afii57687 = 0x05e7;\n  t.afii57688 = 0x05e8;\n  t.afii57689 = 0x05e9;\n  t.afii57690 = 0x05ea;\n  t.afii57694 = 0xfb2a;\n  t.afii57695 = 0xfb2b;\n  t.afii57700 = 0xfb4b;\n  t.afii57705 = 0xfb1f;\n  t.afii57716 = 0x05f0;\n  t.afii57717 = 0x05f1;\n  t.afii57718 = 0x05f2;\n  t.afii57723 = 0xfb35;\n  t.afii57793 = 0x05b4;\n  t.afii57794 = 0x05b5;\n  t.afii57795 = 0x05b6;\n  t.afii57796 = 0x05bb;\n  t.afii57797 = 0x05b8;\n  t.afii57798 = 0x05b7;\n  t.afii57799 = 0x05b0;\n  t.afii57800 = 0x05b2;\n  t.afii57801 = 0x05b1;\n  t.afii57802 = 0x05b3;\n  t.afii57803 = 0x05c2;\n  t.afii57804 = 0x05c1;\n  t.afii57806 = 0x05b9;\n  t.afii57807 = 0x05bc;\n  t.afii57839 = 0x05bd;\n  t.afii57841 = 0x05bf;\n  t.afii57842 = 0x05c0;\n  t.afii57929 = 0x02bc;\n  t.afii61248 = 0x2105;\n  t.afii61289 = 0x2113;\n  t.afii61352 = 0x2116;\n  t.afii61573 = 0x202c;\n  t.afii61574 = 0x202d;\n  t.afii61575 = 0x202e;\n  t.afii61664 = 0x200c;\n  t.afii63167 = 0x066d;\n  t.afii64937 = 0x02bd;\n  t.agrave = 0x00e0;\n  t.agujarati = 0x0a85;\n  t.agurmukhi = 0x0a05;\n  t.ahiragana = 0x3042;\n  t.ahookabove = 0x1ea3;\n  t.aibengali = 0x0990;\n  t.aibopomofo = 0x311e;\n  t.aideva = 0x0910;\n  t.aiecyrillic = 0x04d5;\n  t.aigujarati = 0x0a90;\n  t.aigurmukhi = 0x0a10;\n  t.aimatragurmukhi = 0x0a48;\n  t.ainarabic = 0x0639;\n  t.ainfinalarabic = 0xfeca;\n  t.aininitialarabic = 0xfecb;\n  t.ainmedialarabic = 0xfecc;\n  t.ainvertedbreve = 0x0203;\n  t.aivowelsignbengali = 0x09c8;\n  t.aivowelsigndeva = 0x0948;\n  t.aivowelsigngujarati = 0x0ac8;\n  t.akatakana = 0x30a2;\n  t.akatakanahalfwidth = 0xff71;\n  t.akorean = 0x314f;\n  t.alef = 0x05d0;\n  t.alefarabic = 0x0627;\n  t.alefdageshhebrew = 0xfb30;\n  t.aleffinalarabic = 0xfe8e;\n  t.alefhamzaabovearabic = 0x0623;\n  t.alefhamzaabovefinalarabic = 0xfe84;\n  t.alefhamzabelowarabic = 0x0625;\n  t.alefhamzabelowfinalarabic = 0xfe88;\n  t.alefhebrew = 0x05d0;\n  t.aleflamedhebrew = 0xfb4f;\n  t.alefmaddaabovearabic = 0x0622;\n  t.alefmaddaabovefinalarabic = 0xfe82;\n  t.alefmaksuraarabic = 0x0649;\n  t.alefmaksurafinalarabic = 0xfef0;\n  t.alefmaksurainitialarabic = 0xfef3;\n  t.alefmaksuramedialarabic = 0xfef4;\n  t.alefpatahhebrew = 0xfb2e;\n  t.alefqamatshebrew = 0xfb2f;\n  t.aleph = 0x2135;\n  t.allequal = 0x224c;\n  t.alpha = 0x03b1;\n  t.alphatonos = 0x03ac;\n  t.amacron = 0x0101;\n  t.amonospace = 0xff41;\n  t.ampersand = 0x0026;\n  t.ampersandmonospace = 0xff06;\n  t.ampersandsmall = 0xf726;\n  t.amsquare = 0x33c2;\n  t.anbopomofo = 0x3122;\n  t.angbopomofo = 0x3124;\n  t.angbracketleft = 0x3008; // Glyph is missing from Adobe's original list.\n  t.angbracketright = 0x3009; // Glyph is missing from Adobe's original list.\n  t.angkhankhuthai = 0x0e5a;\n  t.angle = 0x2220;\n  t.anglebracketleft = 0x3008;\n  t.anglebracketleftvertical = 0xfe3f;\n  t.anglebracketright = 0x3009;\n  t.anglebracketrightvertical = 0xfe40;\n  t.angleleft = 0x2329;\n  t.angleright = 0x232a;\n  t.angstrom = 0x212b;\n  t.anoteleia = 0x0387;\n  t.anudattadeva = 0x0952;\n  t.anusvarabengali = 0x0982;\n  t.anusvaradeva = 0x0902;\n  t.anusvaragujarati = 0x0a82;\n  t.aogonek = 0x0105;\n  t.apaatosquare = 0x3300;\n  t.aparen = 0x249c;\n  t.apostrophearmenian = 0x055a;\n  t.apostrophemod = 0x02bc;\n  t.apple = 0xf8ff;\n  t.approaches = 0x2250;\n  t.approxequal = 0x2248;\n  t.approxequalorimage = 0x2252;\n  t.approximatelyequal = 0x2245;\n  t.araeaekorean = 0x318e;\n  t.araeakorean = 0x318d;\n  t.arc = 0x2312;\n  t.arighthalfring = 0x1e9a;\n  t.aring = 0x00e5;\n  t.aringacute = 0x01fb;\n  t.aringbelow = 0x1e01;\n  t.arrowboth = 0x2194;\n  t.arrowdashdown = 0x21e3;\n  t.arrowdashleft = 0x21e0;\n  t.arrowdashright = 0x21e2;\n  t.arrowdashup = 0x21e1;\n  t.arrowdblboth = 0x21d4;\n  t.arrowdbldown = 0x21d3;\n  t.arrowdblleft = 0x21d0;\n  t.arrowdblright = 0x21d2;\n  t.arrowdblup = 0x21d1;\n  t.arrowdown = 0x2193;\n  t.arrowdownleft = 0x2199;\n  t.arrowdownright = 0x2198;\n  t.arrowdownwhite = 0x21e9;\n  t.arrowheaddownmod = 0x02c5;\n  t.arrowheadleftmod = 0x02c2;\n  t.arrowheadrightmod = 0x02c3;\n  t.arrowheadupmod = 0x02c4;\n  t.arrowhorizex = 0xf8e7;\n  t.arrowleft = 0x2190;\n  t.arrowleftdbl = 0x21d0;\n  t.arrowleftdblstroke = 0x21cd;\n  t.arrowleftoverright = 0x21c6;\n  t.arrowleftwhite = 0x21e6;\n  t.arrowright = 0x2192;\n  t.arrowrightdblstroke = 0x21cf;\n  t.arrowrightheavy = 0x279e;\n  t.arrowrightoverleft = 0x21c4;\n  t.arrowrightwhite = 0x21e8;\n  t.arrowtableft = 0x21e4;\n  t.arrowtabright = 0x21e5;\n  t.arrowup = 0x2191;\n  t.arrowupdn = 0x2195;\n  t.arrowupdnbse = 0x21a8;\n  t.arrowupdownbase = 0x21a8;\n  t.arrowupleft = 0x2196;\n  t.arrowupleftofdown = 0x21c5;\n  t.arrowupright = 0x2197;\n  t.arrowupwhite = 0x21e7;\n  t.arrowvertex = 0xf8e6;\n  t.asciicircum = 0x005e;\n  t.asciicircummonospace = 0xff3e;\n  t.asciitilde = 0x007e;\n  t.asciitildemonospace = 0xff5e;\n  t.ascript = 0x0251;\n  t.ascriptturned = 0x0252;\n  t.asmallhiragana = 0x3041;\n  t.asmallkatakana = 0x30a1;\n  t.asmallkatakanahalfwidth = 0xff67;\n  t.asterisk = 0x002a;\n  t.asteriskaltonearabic = 0x066d;\n  t.asteriskarabic = 0x066d;\n  t.asteriskmath = 0x2217;\n  t.asteriskmonospace = 0xff0a;\n  t.asterisksmall = 0xfe61;\n  t.asterism = 0x2042;\n  t.asuperior = 0xf6e9;\n  t.asymptoticallyequal = 0x2243;\n  t.at = 0x0040;\n  t.atilde = 0x00e3;\n  t.atmonospace = 0xff20;\n  t.atsmall = 0xfe6b;\n  t.aturned = 0x0250;\n  t.aubengali = 0x0994;\n  t.aubopomofo = 0x3120;\n  t.audeva = 0x0914;\n  t.augujarati = 0x0a94;\n  t.augurmukhi = 0x0a14;\n  t.aulengthmarkbengali = 0x09d7;\n  t.aumatragurmukhi = 0x0a4c;\n  t.auvowelsignbengali = 0x09cc;\n  t.auvowelsigndeva = 0x094c;\n  t.auvowelsigngujarati = 0x0acc;\n  t.avagrahadeva = 0x093d;\n  t.aybarmenian = 0x0561;\n  t.ayin = 0x05e2;\n  t.ayinaltonehebrew = 0xfb20;\n  t.ayinhebrew = 0x05e2;\n  t.b = 0x0062;\n  t.babengali = 0x09ac;\n  t.backslash = 0x005c;\n  t.backslashmonospace = 0xff3c;\n  t.badeva = 0x092c;\n  t.bagujarati = 0x0aac;\n  t.bagurmukhi = 0x0a2c;\n  t.bahiragana = 0x3070;\n  t.bahtthai = 0x0e3f;\n  t.bakatakana = 0x30d0;\n  t.bar = 0x007c;\n  t.barmonospace = 0xff5c;\n  t.bbopomofo = 0x3105;\n  t.bcircle = 0x24d1;\n  t.bdotaccent = 0x1e03;\n  t.bdotbelow = 0x1e05;\n  t.beamedsixteenthnotes = 0x266c;\n  t.because = 0x2235;\n  t.becyrillic = 0x0431;\n  t.beharabic = 0x0628;\n  t.behfinalarabic = 0xfe90;\n  t.behinitialarabic = 0xfe91;\n  t.behiragana = 0x3079;\n  t.behmedialarabic = 0xfe92;\n  t.behmeeminitialarabic = 0xfc9f;\n  t.behmeemisolatedarabic = 0xfc08;\n  t.behnoonfinalarabic = 0xfc6d;\n  t.bekatakana = 0x30d9;\n  t.benarmenian = 0x0562;\n  t.bet = 0x05d1;\n  t.beta = 0x03b2;\n  t.betasymbolgreek = 0x03d0;\n  t.betdagesh = 0xfb31;\n  t.betdageshhebrew = 0xfb31;\n  t.bethebrew = 0x05d1;\n  t.betrafehebrew = 0xfb4c;\n  t.bhabengali = 0x09ad;\n  t.bhadeva = 0x092d;\n  t.bhagujarati = 0x0aad;\n  t.bhagurmukhi = 0x0a2d;\n  t.bhook = 0x0253;\n  t.bihiragana = 0x3073;\n  t.bikatakana = 0x30d3;\n  t.bilabialclick = 0x0298;\n  t.bindigurmukhi = 0x0a02;\n  t.birusquare = 0x3331;\n  t.blackcircle = 0x25cf;\n  t.blackdiamond = 0x25c6;\n  t.blackdownpointingtriangle = 0x25bc;\n  t.blackleftpointingpointer = 0x25c4;\n  t.blackleftpointingtriangle = 0x25c0;\n  t.blacklenticularbracketleft = 0x3010;\n  t.blacklenticularbracketleftvertical = 0xfe3b;\n  t.blacklenticularbracketright = 0x3011;\n  t.blacklenticularbracketrightvertical = 0xfe3c;\n  t.blacklowerlefttriangle = 0x25e3;\n  t.blacklowerrighttriangle = 0x25e2;\n  t.blackrectangle = 0x25ac;\n  t.blackrightpointingpointer = 0x25ba;\n  t.blackrightpointingtriangle = 0x25b6;\n  t.blacksmallsquare = 0x25aa;\n  t.blacksmilingface = 0x263b;\n  t.blacksquare = 0x25a0;\n  t.blackstar = 0x2605;\n  t.blackupperlefttriangle = 0x25e4;\n  t.blackupperrighttriangle = 0x25e5;\n  t.blackuppointingsmalltriangle = 0x25b4;\n  t.blackuppointingtriangle = 0x25b2;\n  t.blank = 0x2423;\n  t.blinebelow = 0x1e07;\n  t.block = 0x2588;\n  t.bmonospace = 0xff42;\n  t.bobaimaithai = 0x0e1a;\n  t.bohiragana = 0x307c;\n  t.bokatakana = 0x30dc;\n  t.bparen = 0x249d;\n  t.bqsquare = 0x33c3;\n  t.braceex = 0xf8f4;\n  t.braceleft = 0x007b;\n  t.braceleftbt = 0xf8f3;\n  t.braceleftmid = 0xf8f2;\n  t.braceleftmonospace = 0xff5b;\n  t.braceleftsmall = 0xfe5b;\n  t.bracelefttp = 0xf8f1;\n  t.braceleftvertical = 0xfe37;\n  t.braceright = 0x007d;\n  t.bracerightbt = 0xf8fe;\n  t.bracerightmid = 0xf8fd;\n  t.bracerightmonospace = 0xff5d;\n  t.bracerightsmall = 0xfe5c;\n  t.bracerighttp = 0xf8fc;\n  t.bracerightvertical = 0xfe38;\n  t.bracketleft = 0x005b;\n  t.bracketleftbt = 0xf8f0;\n  t.bracketleftex = 0xf8ef;\n  t.bracketleftmonospace = 0xff3b;\n  t.bracketlefttp = 0xf8ee;\n  t.bracketright = 0x005d;\n  t.bracketrightbt = 0xf8fb;\n  t.bracketrightex = 0xf8fa;\n  t.bracketrightmonospace = 0xff3d;\n  t.bracketrighttp = 0xf8f9;\n  t.breve = 0x02d8;\n  t.brevebelowcmb = 0x032e;\n  t.brevecmb = 0x0306;\n  t.breveinvertedbelowcmb = 0x032f;\n  t.breveinvertedcmb = 0x0311;\n  t.breveinverteddoublecmb = 0x0361;\n  t.bridgebelowcmb = 0x032a;\n  t.bridgeinvertedbelowcmb = 0x033a;\n  t.brokenbar = 0x00a6;\n  t.bstroke = 0x0180;\n  t.bsuperior = 0xf6ea;\n  t.btopbar = 0x0183;\n  t.buhiragana = 0x3076;\n  t.bukatakana = 0x30d6;\n  t.bullet = 0x2022;\n  t.bulletinverse = 0x25d8;\n  t.bulletoperator = 0x2219;\n  t.bullseye = 0x25ce;\n  t.c = 0x0063;\n  t.caarmenian = 0x056e;\n  t.cabengali = 0x099a;\n  t.cacute = 0x0107;\n  t.cadeva = 0x091a;\n  t.cagujarati = 0x0a9a;\n  t.cagurmukhi = 0x0a1a;\n  t.calsquare = 0x3388;\n  t.candrabindubengali = 0x0981;\n  t.candrabinducmb = 0x0310;\n  t.candrabindudeva = 0x0901;\n  t.candrabindugujarati = 0x0a81;\n  t.capslock = 0x21ea;\n  t.careof = 0x2105;\n  t.caron = 0x02c7;\n  t.caronbelowcmb = 0x032c;\n  t.caroncmb = 0x030c;\n  t.carriagereturn = 0x21b5;\n  t.cbopomofo = 0x3118;\n  t.ccaron = 0x010d;\n  t.ccedilla = 0x00e7;\n  t.ccedillaacute = 0x1e09;\n  t.ccircle = 0x24d2;\n  t.ccircumflex = 0x0109;\n  t.ccurl = 0x0255;\n  t.cdot = 0x010b;\n  t.cdotaccent = 0x010b;\n  t.cdsquare = 0x33c5;\n  t.cedilla = 0x00b8;\n  t.cedillacmb = 0x0327;\n  t.cent = 0x00a2;\n  t.centigrade = 0x2103;\n  t.centinferior = 0xf6df;\n  t.centmonospace = 0xffe0;\n  t.centoldstyle = 0xf7a2;\n  t.centsuperior = 0xf6e0;\n  t.chaarmenian = 0x0579;\n  t.chabengali = 0x099b;\n  t.chadeva = 0x091b;\n  t.chagujarati = 0x0a9b;\n  t.chagurmukhi = 0x0a1b;\n  t.chbopomofo = 0x3114;\n  t.cheabkhasiancyrillic = 0x04bd;\n  t.checkmark = 0x2713;\n  t.checyrillic = 0x0447;\n  t.chedescenderabkhasiancyrillic = 0x04bf;\n  t.chedescendercyrillic = 0x04b7;\n  t.chedieresiscyrillic = 0x04f5;\n  t.cheharmenian = 0x0573;\n  t.chekhakassiancyrillic = 0x04cc;\n  t.cheverticalstrokecyrillic = 0x04b9;\n  t.chi = 0x03c7;\n  t.chieuchacirclekorean = 0x3277;\n  t.chieuchaparenkorean = 0x3217;\n  t.chieuchcirclekorean = 0x3269;\n  t.chieuchkorean = 0x314a;\n  t.chieuchparenkorean = 0x3209;\n  t.chochangthai = 0x0e0a;\n  t.chochanthai = 0x0e08;\n  t.chochingthai = 0x0e09;\n  t.chochoethai = 0x0e0c;\n  t.chook = 0x0188;\n  t.cieucacirclekorean = 0x3276;\n  t.cieucaparenkorean = 0x3216;\n  t.cieuccirclekorean = 0x3268;\n  t.cieuckorean = 0x3148;\n  t.cieucparenkorean = 0x3208;\n  t.cieucuparenkorean = 0x321c;\n  t.circle = 0x25cb;\n  t.circlecopyrt = 0x00a9; // Glyph is missing from Adobe's original list.\n  t.circlemultiply = 0x2297;\n  t.circleot = 0x2299;\n  t.circleplus = 0x2295;\n  t.circlepostalmark = 0x3036;\n  t.circlewithlefthalfblack = 0x25d0;\n  t.circlewithrighthalfblack = 0x25d1;\n  t.circumflex = 0x02c6;\n  t.circumflexbelowcmb = 0x032d;\n  t.circumflexcmb = 0x0302;\n  t.clear = 0x2327;\n  t.clickalveolar = 0x01c2;\n  t.clickdental = 0x01c0;\n  t.clicklateral = 0x01c1;\n  t.clickretroflex = 0x01c3;\n  t.club = 0x2663;\n  t.clubsuitblack = 0x2663;\n  t.clubsuitwhite = 0x2667;\n  t.cmcubedsquare = 0x33a4;\n  t.cmonospace = 0xff43;\n  t.cmsquaredsquare = 0x33a0;\n  t.coarmenian = 0x0581;\n  t.colon = 0x003a;\n  t.colonmonetary = 0x20a1;\n  t.colonmonospace = 0xff1a;\n  t.colonsign = 0x20a1;\n  t.colonsmall = 0xfe55;\n  t.colontriangularhalfmod = 0x02d1;\n  t.colontriangularmod = 0x02d0;\n  t.comma = 0x002c;\n  t.commaabovecmb = 0x0313;\n  t.commaaboverightcmb = 0x0315;\n  t.commaaccent = 0xf6c3;\n  t.commaarabic = 0x060c;\n  t.commaarmenian = 0x055d;\n  t.commainferior = 0xf6e1;\n  t.commamonospace = 0xff0c;\n  t.commareversedabovecmb = 0x0314;\n  t.commareversedmod = 0x02bd;\n  t.commasmall = 0xfe50;\n  t.commasuperior = 0xf6e2;\n  t.commaturnedabovecmb = 0x0312;\n  t.commaturnedmod = 0x02bb;\n  t.compass = 0x263c;\n  t.congruent = 0x2245;\n  t.contourintegral = 0x222e;\n  t.control = 0x2303;\n  t.controlACK = 0x0006;\n  t.controlBEL = 0x0007;\n  t.controlBS = 0x0008;\n  t.controlCAN = 0x0018;\n  t.controlCR = 0x000d;\n  t.controlDC1 = 0x0011;\n  t.controlDC2 = 0x0012;\n  t.controlDC3 = 0x0013;\n  t.controlDC4 = 0x0014;\n  t.controlDEL = 0x007f;\n  t.controlDLE = 0x0010;\n  t.controlEM = 0x0019;\n  t.controlENQ = 0x0005;\n  t.controlEOT = 0x0004;\n  t.controlESC = 0x001b;\n  t.controlETB = 0x0017;\n  t.controlETX = 0x0003;\n  t.controlFF = 0x000c;\n  t.controlFS = 0x001c;\n  t.controlGS = 0x001d;\n  t.controlHT = 0x0009;\n  t.controlLF = 0x000a;\n  t.controlNAK = 0x0015;\n  t.controlNULL = 0x0000; // Glyph is missing from Adobe's original list.\n  t.controlRS = 0x001e;\n  t.controlSI = 0x000f;\n  t.controlSO = 0x000e;\n  t.controlSOT = 0x0002;\n  t.controlSTX = 0x0001;\n  t.controlSUB = 0x001a;\n  t.controlSYN = 0x0016;\n  t.controlUS = 0x001f;\n  t.controlVT = 0x000b;\n  t.copyright = 0x00a9;\n  t.copyrightsans = 0xf8e9;\n  t.copyrightserif = 0xf6d9;\n  t.cornerbracketleft = 0x300c;\n  t.cornerbracketlefthalfwidth = 0xff62;\n  t.cornerbracketleftvertical = 0xfe41;\n  t.cornerbracketright = 0x300d;\n  t.cornerbracketrighthalfwidth = 0xff63;\n  t.cornerbracketrightvertical = 0xfe42;\n  t.corporationsquare = 0x337f;\n  t.cosquare = 0x33c7;\n  t.coverkgsquare = 0x33c6;\n  t.cparen = 0x249e;\n  t.cruzeiro = 0x20a2;\n  t.cstretched = 0x0297;\n  t.curlyand = 0x22cf;\n  t.curlyor = 0x22ce;\n  t.currency = 0x00a4;\n  t.cyrBreve = 0xf6d1;\n  t.cyrFlex = 0xf6d2;\n  t.cyrbreve = 0xf6d4;\n  t.cyrflex = 0xf6d5;\n  t.d = 0x0064;\n  t.daarmenian = 0x0564;\n  t.dabengali = 0x09a6;\n  t.dadarabic = 0x0636;\n  t.dadeva = 0x0926;\n  t.dadfinalarabic = 0xfebe;\n  t.dadinitialarabic = 0xfebf;\n  t.dadmedialarabic = 0xfec0;\n  t.dagesh = 0x05bc;\n  t.dageshhebrew = 0x05bc;\n  t.dagger = 0x2020;\n  t.daggerdbl = 0x2021;\n  t.dagujarati = 0x0aa6;\n  t.dagurmukhi = 0x0a26;\n  t.dahiragana = 0x3060;\n  t.dakatakana = 0x30c0;\n  t.dalarabic = 0x062f;\n  t.dalet = 0x05d3;\n  t.daletdagesh = 0xfb33;\n  t.daletdageshhebrew = 0xfb33;\n  t.dalethebrew = 0x05d3;\n  t.dalfinalarabic = 0xfeaa;\n  t.dammaarabic = 0x064f;\n  t.dammalowarabic = 0x064f;\n  t.dammatanaltonearabic = 0x064c;\n  t.dammatanarabic = 0x064c;\n  t.danda = 0x0964;\n  t.dargahebrew = 0x05a7;\n  t.dargalefthebrew = 0x05a7;\n  t.dasiapneumatacyrilliccmb = 0x0485;\n  t.dblGrave = 0xf6d3;\n  t.dblanglebracketleft = 0x300a;\n  t.dblanglebracketleftvertical = 0xfe3d;\n  t.dblanglebracketright = 0x300b;\n  t.dblanglebracketrightvertical = 0xfe3e;\n  t.dblarchinvertedbelowcmb = 0x032b;\n  t.dblarrowleft = 0x21d4;\n  t.dblarrowright = 0x21d2;\n  t.dbldanda = 0x0965;\n  t.dblgrave = 0xf6d6;\n  t.dblgravecmb = 0x030f;\n  t.dblintegral = 0x222c;\n  t.dbllowline = 0x2017;\n  t.dbllowlinecmb = 0x0333;\n  t.dbloverlinecmb = 0x033f;\n  t.dblprimemod = 0x02ba;\n  t.dblverticalbar = 0x2016;\n  t.dblverticallineabovecmb = 0x030e;\n  t.dbopomofo = 0x3109;\n  t.dbsquare = 0x33c8;\n  t.dcaron = 0x010f;\n  t.dcedilla = 0x1e11;\n  t.dcircle = 0x24d3;\n  t.dcircumflexbelow = 0x1e13;\n  t.dcroat = 0x0111;\n  t.ddabengali = 0x09a1;\n  t.ddadeva = 0x0921;\n  t.ddagujarati = 0x0aa1;\n  t.ddagurmukhi = 0x0a21;\n  t.ddalarabic = 0x0688;\n  t.ddalfinalarabic = 0xfb89;\n  t.dddhadeva = 0x095c;\n  t.ddhabengali = 0x09a2;\n  t.ddhadeva = 0x0922;\n  t.ddhagujarati = 0x0aa2;\n  t.ddhagurmukhi = 0x0a22;\n  t.ddotaccent = 0x1e0b;\n  t.ddotbelow = 0x1e0d;\n  t.decimalseparatorarabic = 0x066b;\n  t.decimalseparatorpersian = 0x066b;\n  t.decyrillic = 0x0434;\n  t.degree = 0x00b0;\n  t.dehihebrew = 0x05ad;\n  t.dehiragana = 0x3067;\n  t.deicoptic = 0x03ef;\n  t.dekatakana = 0x30c7;\n  t.deleteleft = 0x232b;\n  t.deleteright = 0x2326;\n  t.delta = 0x03b4;\n  t.deltaturned = 0x018d;\n  t.denominatorminusonenumeratorbengali = 0x09f8;\n  t.dezh = 0x02a4;\n  t.dhabengali = 0x09a7;\n  t.dhadeva = 0x0927;\n  t.dhagujarati = 0x0aa7;\n  t.dhagurmukhi = 0x0a27;\n  t.dhook = 0x0257;\n  t.dialytikatonos = 0x0385;\n  t.dialytikatonoscmb = 0x0344;\n  t.diamond = 0x2666;\n  t.diamondsuitwhite = 0x2662;\n  t.dieresis = 0x00a8;\n  t.dieresisacute = 0xf6d7;\n  t.dieresisbelowcmb = 0x0324;\n  t.dieresiscmb = 0x0308;\n  t.dieresisgrave = 0xf6d8;\n  t.dieresistonos = 0x0385;\n  t.dihiragana = 0x3062;\n  t.dikatakana = 0x30c2;\n  t.dittomark = 0x3003;\n  t.divide = 0x00f7;\n  t.divides = 0x2223;\n  t.divisionslash = 0x2215;\n  t.djecyrillic = 0x0452;\n  t.dkshade = 0x2593;\n  t.dlinebelow = 0x1e0f;\n  t.dlsquare = 0x3397;\n  t.dmacron = 0x0111;\n  t.dmonospace = 0xff44;\n  t.dnblock = 0x2584;\n  t.dochadathai = 0x0e0e;\n  t.dodekthai = 0x0e14;\n  t.dohiragana = 0x3069;\n  t.dokatakana = 0x30c9;\n  t.dollar = 0x0024;\n  t.dollarinferior = 0xf6e3;\n  t.dollarmonospace = 0xff04;\n  t.dollaroldstyle = 0xf724;\n  t.dollarsmall = 0xfe69;\n  t.dollarsuperior = 0xf6e4;\n  t.dong = 0x20ab;\n  t.dorusquare = 0x3326;\n  t.dotaccent = 0x02d9;\n  t.dotaccentcmb = 0x0307;\n  t.dotbelowcmb = 0x0323;\n  t.dotbelowcomb = 0x0323;\n  t.dotkatakana = 0x30fb;\n  t.dotlessi = 0x0131;\n  t.dotlessj = 0xf6be;\n  t.dotlessjstrokehook = 0x0284;\n  t.dotmath = 0x22c5;\n  t.dottedcircle = 0x25cc;\n  t.doubleyodpatah = 0xfb1f;\n  t.doubleyodpatahhebrew = 0xfb1f;\n  t.downtackbelowcmb = 0x031e;\n  t.downtackmod = 0x02d5;\n  t.dparen = 0x249f;\n  t.dsuperior = 0xf6eb;\n  t.dtail = 0x0256;\n  t.dtopbar = 0x018c;\n  t.duhiragana = 0x3065;\n  t.dukatakana = 0x30c5;\n  t.dz = 0x01f3;\n  t.dzaltone = 0x02a3;\n  t.dzcaron = 0x01c6;\n  t.dzcurl = 0x02a5;\n  t.dzeabkhasiancyrillic = 0x04e1;\n  t.dzecyrillic = 0x0455;\n  t.dzhecyrillic = 0x045f;\n  t.e = 0x0065;\n  t.eacute = 0x00e9;\n  t.earth = 0x2641;\n  t.ebengali = 0x098f;\n  t.ebopomofo = 0x311c;\n  t.ebreve = 0x0115;\n  t.ecandradeva = 0x090d;\n  t.ecandragujarati = 0x0a8d;\n  t.ecandravowelsigndeva = 0x0945;\n  t.ecandravowelsigngujarati = 0x0ac5;\n  t.ecaron = 0x011b;\n  t.ecedillabreve = 0x1e1d;\n  t.echarmenian = 0x0565;\n  t.echyiwnarmenian = 0x0587;\n  t.ecircle = 0x24d4;\n  t.ecircumflex = 0x00ea;\n  t.ecircumflexacute = 0x1ebf;\n  t.ecircumflexbelow = 0x1e19;\n  t.ecircumflexdotbelow = 0x1ec7;\n  t.ecircumflexgrave = 0x1ec1;\n  t.ecircumflexhookabove = 0x1ec3;\n  t.ecircumflextilde = 0x1ec5;\n  t.ecyrillic = 0x0454;\n  t.edblgrave = 0x0205;\n  t.edeva = 0x090f;\n  t.edieresis = 0x00eb;\n  t.edot = 0x0117;\n  t.edotaccent = 0x0117;\n  t.edotbelow = 0x1eb9;\n  t.eegurmukhi = 0x0a0f;\n  t.eematragurmukhi = 0x0a47;\n  t.efcyrillic = 0x0444;\n  t.egrave = 0x00e8;\n  t.egujarati = 0x0a8f;\n  t.eharmenian = 0x0567;\n  t.ehbopomofo = 0x311d;\n  t.ehiragana = 0x3048;\n  t.ehookabove = 0x1ebb;\n  t.eibopomofo = 0x311f;\n  t.eight = 0x0038;\n  t.eightarabic = 0x0668;\n  t.eightbengali = 0x09ee;\n  t.eightcircle = 0x2467;\n  t.eightcircleinversesansserif = 0x2791;\n  t.eightdeva = 0x096e;\n  t.eighteencircle = 0x2471;\n  t.eighteenparen = 0x2485;\n  t.eighteenperiod = 0x2499;\n  t.eightgujarati = 0x0aee;\n  t.eightgurmukhi = 0x0a6e;\n  t.eighthackarabic = 0x0668;\n  t.eighthangzhou = 0x3028;\n  t.eighthnotebeamed = 0x266b;\n  t.eightideographicparen = 0x3227;\n  t.eightinferior = 0x2088;\n  t.eightmonospace = 0xff18;\n  t.eightoldstyle = 0xf738;\n  t.eightparen = 0x247b;\n  t.eightperiod = 0x248f;\n  t.eightpersian = 0x06f8;\n  t.eightroman = 0x2177;\n  t.eightsuperior = 0x2078;\n  t.eightthai = 0x0e58;\n  t.einvertedbreve = 0x0207;\n  t.eiotifiedcyrillic = 0x0465;\n  t.ekatakana = 0x30a8;\n  t.ekatakanahalfwidth = 0xff74;\n  t.ekonkargurmukhi = 0x0a74;\n  t.ekorean = 0x3154;\n  t.elcyrillic = 0x043b;\n  t.element = 0x2208;\n  t.elevencircle = 0x246a;\n  t.elevenparen = 0x247e;\n  t.elevenperiod = 0x2492;\n  t.elevenroman = 0x217a;\n  t.ellipsis = 0x2026;\n  t.ellipsisvertical = 0x22ee;\n  t.emacron = 0x0113;\n  t.emacronacute = 0x1e17;\n  t.emacrongrave = 0x1e15;\n  t.emcyrillic = 0x043c;\n  t.emdash = 0x2014;\n  t.emdashvertical = 0xfe31;\n  t.emonospace = 0xff45;\n  t.emphasismarkarmenian = 0x055b;\n  t.emptyset = 0x2205;\n  t.enbopomofo = 0x3123;\n  t.encyrillic = 0x043d;\n  t.endash = 0x2013;\n  t.endashvertical = 0xfe32;\n  t.endescendercyrillic = 0x04a3;\n  t.eng = 0x014b;\n  t.engbopomofo = 0x3125;\n  t.enghecyrillic = 0x04a5;\n  t.enhookcyrillic = 0x04c8;\n  t.enspace = 0x2002;\n  t.eogonek = 0x0119;\n  t.eokorean = 0x3153;\n  t.eopen = 0x025b;\n  t.eopenclosed = 0x029a;\n  t.eopenreversed = 0x025c;\n  t.eopenreversedclosed = 0x025e;\n  t.eopenreversedhook = 0x025d;\n  t.eparen = 0x24a0;\n  t.epsilon = 0x03b5;\n  t.epsilontonos = 0x03ad;\n  t.equal = 0x003d;\n  t.equalmonospace = 0xff1d;\n  t.equalsmall = 0xfe66;\n  t.equalsuperior = 0x207c;\n  t.equivalence = 0x2261;\n  t.erbopomofo = 0x3126;\n  t.ercyrillic = 0x0440;\n  t.ereversed = 0x0258;\n  t.ereversedcyrillic = 0x044d;\n  t.escyrillic = 0x0441;\n  t.esdescendercyrillic = 0x04ab;\n  t.esh = 0x0283;\n  t.eshcurl = 0x0286;\n  t.eshortdeva = 0x090e;\n  t.eshortvowelsigndeva = 0x0946;\n  t.eshreversedloop = 0x01aa;\n  t.eshsquatreversed = 0x0285;\n  t.esmallhiragana = 0x3047;\n  t.esmallkatakana = 0x30a7;\n  t.esmallkatakanahalfwidth = 0xff6a;\n  t.estimated = 0x212e;\n  t.esuperior = 0xf6ec;\n  t.eta = 0x03b7;\n  t.etarmenian = 0x0568;\n  t.etatonos = 0x03ae;\n  t.eth = 0x00f0;\n  t.etilde = 0x1ebd;\n  t.etildebelow = 0x1e1b;\n  t.etnahtafoukhhebrew = 0x0591;\n  t.etnahtafoukhlefthebrew = 0x0591;\n  t.etnahtahebrew = 0x0591;\n  t.etnahtalefthebrew = 0x0591;\n  t.eturned = 0x01dd;\n  t.eukorean = 0x3161;\n  t.euro = 0x20ac;\n  t.evowelsignbengali = 0x09c7;\n  t.evowelsigndeva = 0x0947;\n  t.evowelsigngujarati = 0x0ac7;\n  t.exclam = 0x0021;\n  t.exclamarmenian = 0x055c;\n  t.exclamdbl = 0x203c;\n  t.exclamdown = 0x00a1;\n  t.exclamdownsmall = 0xf7a1;\n  t.exclammonospace = 0xff01;\n  t.exclamsmall = 0xf721;\n  t.existential = 0x2203;\n  t.ezh = 0x0292;\n  t.ezhcaron = 0x01ef;\n  t.ezhcurl = 0x0293;\n  t.ezhreversed = 0x01b9;\n  t.ezhtail = 0x01ba;\n  t.f = 0x0066;\n  t.fadeva = 0x095e;\n  t.fagurmukhi = 0x0a5e;\n  t.fahrenheit = 0x2109;\n  t.fathaarabic = 0x064e;\n  t.fathalowarabic = 0x064e;\n  t.fathatanarabic = 0x064b;\n  t.fbopomofo = 0x3108;\n  t.fcircle = 0x24d5;\n  t.fdotaccent = 0x1e1f;\n  t.feharabic = 0x0641;\n  t.feharmenian = 0x0586;\n  t.fehfinalarabic = 0xfed2;\n  t.fehinitialarabic = 0xfed3;\n  t.fehmedialarabic = 0xfed4;\n  t.feicoptic = 0x03e5;\n  t.female = 0x2640;\n  t.ff = 0xfb00;\n  t.f_f = 0xfb00; // Fixes issue 11016.\n  t.ffi = 0xfb03;\n  t.ffl = 0xfb04;\n  t.fi = 0xfb01;\n  t.fifteencircle = 0x246e;\n  t.fifteenparen = 0x2482;\n  t.fifteenperiod = 0x2496;\n  t.figuredash = 0x2012;\n  t.filledbox = 0x25a0;\n  t.filledrect = 0x25ac;\n  t.finalkaf = 0x05da;\n  t.finalkafdagesh = 0xfb3a;\n  t.finalkafdageshhebrew = 0xfb3a;\n  t.finalkafhebrew = 0x05da;\n  t.finalmem = 0x05dd;\n  t.finalmemhebrew = 0x05dd;\n  t.finalnun = 0x05df;\n  t.finalnunhebrew = 0x05df;\n  t.finalpe = 0x05e3;\n  t.finalpehebrew = 0x05e3;\n  t.finaltsadi = 0x05e5;\n  t.finaltsadihebrew = 0x05e5;\n  t.firsttonechinese = 0x02c9;\n  t.fisheye = 0x25c9;\n  t.fitacyrillic = 0x0473;\n  t.five = 0x0035;\n  t.fivearabic = 0x0665;\n  t.fivebengali = 0x09eb;\n  t.fivecircle = 0x2464;\n  t.fivecircleinversesansserif = 0x278e;\n  t.fivedeva = 0x096b;\n  t.fiveeighths = 0x215d;\n  t.fivegujarati = 0x0aeb;\n  t.fivegurmukhi = 0x0a6b;\n  t.fivehackarabic = 0x0665;\n  t.fivehangzhou = 0x3025;\n  t.fiveideographicparen = 0x3224;\n  t.fiveinferior = 0x2085;\n  t.fivemonospace = 0xff15;\n  t.fiveoldstyle = 0xf735;\n  t.fiveparen = 0x2478;\n  t.fiveperiod = 0x248c;\n  t.fivepersian = 0x06f5;\n  t.fiveroman = 0x2174;\n  t.fivesuperior = 0x2075;\n  t.fivethai = 0x0e55;\n  t.fl = 0xfb02;\n  t.florin = 0x0192;\n  t.fmonospace = 0xff46;\n  t.fmsquare = 0x3399;\n  t.fofanthai = 0x0e1f;\n  t.fofathai = 0x0e1d;\n  t.fongmanthai = 0x0e4f;\n  t.forall = 0x2200;\n  t.four = 0x0034;\n  t.fourarabic = 0x0664;\n  t.fourbengali = 0x09ea;\n  t.fourcircle = 0x2463;\n  t.fourcircleinversesansserif = 0x278d;\n  t.fourdeva = 0x096a;\n  t.fourgujarati = 0x0aea;\n  t.fourgurmukhi = 0x0a6a;\n  t.fourhackarabic = 0x0664;\n  t.fourhangzhou = 0x3024;\n  t.fourideographicparen = 0x3223;\n  t.fourinferior = 0x2084;\n  t.fourmonospace = 0xff14;\n  t.fournumeratorbengali = 0x09f7;\n  t.fouroldstyle = 0xf734;\n  t.fourparen = 0x2477;\n  t.fourperiod = 0x248b;\n  t.fourpersian = 0x06f4;\n  t.fourroman = 0x2173;\n  t.foursuperior = 0x2074;\n  t.fourteencircle = 0x246d;\n  t.fourteenparen = 0x2481;\n  t.fourteenperiod = 0x2495;\n  t.fourthai = 0x0e54;\n  t.fourthtonechinese = 0x02cb;\n  t.fparen = 0x24a1;\n  t.fraction = 0x2044;\n  t.franc = 0x20a3;\n  t.g = 0x0067;\n  t.gabengali = 0x0997;\n  t.gacute = 0x01f5;\n  t.gadeva = 0x0917;\n  t.gafarabic = 0x06af;\n  t.gaffinalarabic = 0xfb93;\n  t.gafinitialarabic = 0xfb94;\n  t.gafmedialarabic = 0xfb95;\n  t.gagujarati = 0x0a97;\n  t.gagurmukhi = 0x0a17;\n  t.gahiragana = 0x304c;\n  t.gakatakana = 0x30ac;\n  t.gamma = 0x03b3;\n  t.gammalatinsmall = 0x0263;\n  t.gammasuperior = 0x02e0;\n  t.gangiacoptic = 0x03eb;\n  t.gbopomofo = 0x310d;\n  t.gbreve = 0x011f;\n  t.gcaron = 0x01e7;\n  t.gcedilla = 0x0123;\n  t.gcircle = 0x24d6;\n  t.gcircumflex = 0x011d;\n  t.gcommaaccent = 0x0123;\n  t.gdot = 0x0121;\n  t.gdotaccent = 0x0121;\n  t.gecyrillic = 0x0433;\n  t.gehiragana = 0x3052;\n  t.gekatakana = 0x30b2;\n  t.geometricallyequal = 0x2251;\n  t.gereshaccenthebrew = 0x059c;\n  t.gereshhebrew = 0x05f3;\n  t.gereshmuqdamhebrew = 0x059d;\n  t.germandbls = 0x00df;\n  t.gershayimaccenthebrew = 0x059e;\n  t.gershayimhebrew = 0x05f4;\n  t.getamark = 0x3013;\n  t.ghabengali = 0x0998;\n  t.ghadarmenian = 0x0572;\n  t.ghadeva = 0x0918;\n  t.ghagujarati = 0x0a98;\n  t.ghagurmukhi = 0x0a18;\n  t.ghainarabic = 0x063a;\n  t.ghainfinalarabic = 0xfece;\n  t.ghaininitialarabic = 0xfecf;\n  t.ghainmedialarabic = 0xfed0;\n  t.ghemiddlehookcyrillic = 0x0495;\n  t.ghestrokecyrillic = 0x0493;\n  t.gheupturncyrillic = 0x0491;\n  t.ghhadeva = 0x095a;\n  t.ghhagurmukhi = 0x0a5a;\n  t.ghook = 0x0260;\n  t.ghzsquare = 0x3393;\n  t.gihiragana = 0x304e;\n  t.gikatakana = 0x30ae;\n  t.gimarmenian = 0x0563;\n  t.gimel = 0x05d2;\n  t.gimeldagesh = 0xfb32;\n  t.gimeldageshhebrew = 0xfb32;\n  t.gimelhebrew = 0x05d2;\n  t.gjecyrillic = 0x0453;\n  t.glottalinvertedstroke = 0x01be;\n  t.glottalstop = 0x0294;\n  t.glottalstopinverted = 0x0296;\n  t.glottalstopmod = 0x02c0;\n  t.glottalstopreversed = 0x0295;\n  t.glottalstopreversedmod = 0x02c1;\n  t.glottalstopreversedsuperior = 0x02e4;\n  t.glottalstopstroke = 0x02a1;\n  t.glottalstopstrokereversed = 0x02a2;\n  t.gmacron = 0x1e21;\n  t.gmonospace = 0xff47;\n  t.gohiragana = 0x3054;\n  t.gokatakana = 0x30b4;\n  t.gparen = 0x24a2;\n  t.gpasquare = 0x33ac;\n  t.gradient = 0x2207;\n  t.grave = 0x0060;\n  t.gravebelowcmb = 0x0316;\n  t.gravecmb = 0x0300;\n  t.gravecomb = 0x0300;\n  t.gravedeva = 0x0953;\n  t.gravelowmod = 0x02ce;\n  t.gravemonospace = 0xff40;\n  t.gravetonecmb = 0x0340;\n  t.greater = 0x003e;\n  t.greaterequal = 0x2265;\n  t.greaterequalorless = 0x22db;\n  t.greatermonospace = 0xff1e;\n  t.greaterorequivalent = 0x2273;\n  t.greaterorless = 0x2277;\n  t.greateroverequal = 0x2267;\n  t.greatersmall = 0xfe65;\n  t.gscript = 0x0261;\n  t.gstroke = 0x01e5;\n  t.guhiragana = 0x3050;\n  t.guillemotleft = 0x00ab;\n  t.guillemotright = 0x00bb;\n  t.guilsinglleft = 0x2039;\n  t.guilsinglright = 0x203a;\n  t.gukatakana = 0x30b0;\n  t.guramusquare = 0x3318;\n  t.gysquare = 0x33c9;\n  t.h = 0x0068;\n  t.haabkhasiancyrillic = 0x04a9;\n  t.haaltonearabic = 0x06c1;\n  t.habengali = 0x09b9;\n  t.hadescendercyrillic = 0x04b3;\n  t.hadeva = 0x0939;\n  t.hagujarati = 0x0ab9;\n  t.hagurmukhi = 0x0a39;\n  t.haharabic = 0x062d;\n  t.hahfinalarabic = 0xfea2;\n  t.hahinitialarabic = 0xfea3;\n  t.hahiragana = 0x306f;\n  t.hahmedialarabic = 0xfea4;\n  t.haitusquare = 0x332a;\n  t.hakatakana = 0x30cf;\n  t.hakatakanahalfwidth = 0xff8a;\n  t.halantgurmukhi = 0x0a4d;\n  t.hamzaarabic = 0x0621;\n  t.hamzalowarabic = 0x0621;\n  t.hangulfiller = 0x3164;\n  t.hardsigncyrillic = 0x044a;\n  t.harpoonleftbarbup = 0x21bc;\n  t.harpoonrightbarbup = 0x21c0;\n  t.hasquare = 0x33ca;\n  t.hatafpatah = 0x05b2;\n  t.hatafpatah16 = 0x05b2;\n  t.hatafpatah23 = 0x05b2;\n  t.hatafpatah2f = 0x05b2;\n  t.hatafpatahhebrew = 0x05b2;\n  t.hatafpatahnarrowhebrew = 0x05b2;\n  t.hatafpatahquarterhebrew = 0x05b2;\n  t.hatafpatahwidehebrew = 0x05b2;\n  t.hatafqamats = 0x05b3;\n  t.hatafqamats1b = 0x05b3;\n  t.hatafqamats28 = 0x05b3;\n  t.hatafqamats34 = 0x05b3;\n  t.hatafqamatshebrew = 0x05b3;\n  t.hatafqamatsnarrowhebrew = 0x05b3;\n  t.hatafqamatsquarterhebrew = 0x05b3;\n  t.hatafqamatswidehebrew = 0x05b3;\n  t.hatafsegol = 0x05b1;\n  t.hatafsegol17 = 0x05b1;\n  t.hatafsegol24 = 0x05b1;\n  t.hatafsegol30 = 0x05b1;\n  t.hatafsegolhebrew = 0x05b1;\n  t.hatafsegolnarrowhebrew = 0x05b1;\n  t.hatafsegolquarterhebrew = 0x05b1;\n  t.hatafsegolwidehebrew = 0x05b1;\n  t.hbar = 0x0127;\n  t.hbopomofo = 0x310f;\n  t.hbrevebelow = 0x1e2b;\n  t.hcedilla = 0x1e29;\n  t.hcircle = 0x24d7;\n  t.hcircumflex = 0x0125;\n  t.hdieresis = 0x1e27;\n  t.hdotaccent = 0x1e23;\n  t.hdotbelow = 0x1e25;\n  t.he = 0x05d4;\n  t.heart = 0x2665;\n  t.heartsuitblack = 0x2665;\n  t.heartsuitwhite = 0x2661;\n  t.hedagesh = 0xfb34;\n  t.hedageshhebrew = 0xfb34;\n  t.hehaltonearabic = 0x06c1;\n  t.heharabic = 0x0647;\n  t.hehebrew = 0x05d4;\n  t.hehfinalaltonearabic = 0xfba7;\n  t.hehfinalalttwoarabic = 0xfeea;\n  t.hehfinalarabic = 0xfeea;\n  t.hehhamzaabovefinalarabic = 0xfba5;\n  t.hehhamzaaboveisolatedarabic = 0xfba4;\n  t.hehinitialaltonearabic = 0xfba8;\n  t.hehinitialarabic = 0xfeeb;\n  t.hehiragana = 0x3078;\n  t.hehmedialaltonearabic = 0xfba9;\n  t.hehmedialarabic = 0xfeec;\n  t.heiseierasquare = 0x337b;\n  t.hekatakana = 0x30d8;\n  t.hekatakanahalfwidth = 0xff8d;\n  t.hekutaarusquare = 0x3336;\n  t.henghook = 0x0267;\n  t.herutusquare = 0x3339;\n  t.het = 0x05d7;\n  t.hethebrew = 0x05d7;\n  t.hhook = 0x0266;\n  t.hhooksuperior = 0x02b1;\n  t.hieuhacirclekorean = 0x327b;\n  t.hieuhaparenkorean = 0x321b;\n  t.hieuhcirclekorean = 0x326d;\n  t.hieuhkorean = 0x314e;\n  t.hieuhparenkorean = 0x320d;\n  t.hihiragana = 0x3072;\n  t.hikatakana = 0x30d2;\n  t.hikatakanahalfwidth = 0xff8b;\n  t.hiriq = 0x05b4;\n  t.hiriq14 = 0x05b4;\n  t.hiriq21 = 0x05b4;\n  t.hiriq2d = 0x05b4;\n  t.hiriqhebrew = 0x05b4;\n  t.hiriqnarrowhebrew = 0x05b4;\n  t.hiriqquarterhebrew = 0x05b4;\n  t.hiriqwidehebrew = 0x05b4;\n  t.hlinebelow = 0x1e96;\n  t.hmonospace = 0xff48;\n  t.hoarmenian = 0x0570;\n  t.hohipthai = 0x0e2b;\n  t.hohiragana = 0x307b;\n  t.hokatakana = 0x30db;\n  t.hokatakanahalfwidth = 0xff8e;\n  t.holam = 0x05b9;\n  t.holam19 = 0x05b9;\n  t.holam26 = 0x05b9;\n  t.holam32 = 0x05b9;\n  t.holamhebrew = 0x05b9;\n  t.holamnarrowhebrew = 0x05b9;\n  t.holamquarterhebrew = 0x05b9;\n  t.holamwidehebrew = 0x05b9;\n  t.honokhukthai = 0x0e2e;\n  t.hookabovecomb = 0x0309;\n  t.hookcmb = 0x0309;\n  t.hookpalatalizedbelowcmb = 0x0321;\n  t.hookretroflexbelowcmb = 0x0322;\n  t.hoonsquare = 0x3342;\n  t.horicoptic = 0x03e9;\n  t.horizontalbar = 0x2015;\n  t.horncmb = 0x031b;\n  t.hotsprings = 0x2668;\n  t.house = 0x2302;\n  t.hparen = 0x24a3;\n  t.hsuperior = 0x02b0;\n  t.hturned = 0x0265;\n  t.huhiragana = 0x3075;\n  t.huiitosquare = 0x3333;\n  t.hukatakana = 0x30d5;\n  t.hukatakanahalfwidth = 0xff8c;\n  t.hungarumlaut = 0x02dd;\n  t.hungarumlautcmb = 0x030b;\n  t.hv = 0x0195;\n  t.hyphen = 0x002d;\n  t.hypheninferior = 0xf6e5;\n  t.hyphenmonospace = 0xff0d;\n  t.hyphensmall = 0xfe63;\n  t.hyphensuperior = 0xf6e6;\n  t.hyphentwo = 0x2010;\n  t.i = 0x0069;\n  t.iacute = 0x00ed;\n  t.iacyrillic = 0x044f;\n  t.ibengali = 0x0987;\n  t.ibopomofo = 0x3127;\n  t.ibreve = 0x012d;\n  t.icaron = 0x01d0;\n  t.icircle = 0x24d8;\n  t.icircumflex = 0x00ee;\n  t.icyrillic = 0x0456;\n  t.idblgrave = 0x0209;\n  t.ideographearthcircle = 0x328f;\n  t.ideographfirecircle = 0x328b;\n  t.ideographicallianceparen = 0x323f;\n  t.ideographiccallparen = 0x323a;\n  t.ideographiccentrecircle = 0x32a5;\n  t.ideographicclose = 0x3006;\n  t.ideographiccomma = 0x3001;\n  t.ideographiccommaleft = 0xff64;\n  t.ideographiccongratulationparen = 0x3237;\n  t.ideographiccorrectcircle = 0x32a3;\n  t.ideographicearthparen = 0x322f;\n  t.ideographicenterpriseparen = 0x323d;\n  t.ideographicexcellentcircle = 0x329d;\n  t.ideographicfestivalparen = 0x3240;\n  t.ideographicfinancialcircle = 0x3296;\n  t.ideographicfinancialparen = 0x3236;\n  t.ideographicfireparen = 0x322b;\n  t.ideographichaveparen = 0x3232;\n  t.ideographichighcircle = 0x32a4;\n  t.ideographiciterationmark = 0x3005;\n  t.ideographiclaborcircle = 0x3298;\n  t.ideographiclaborparen = 0x3238;\n  t.ideographicleftcircle = 0x32a7;\n  t.ideographiclowcircle = 0x32a6;\n  t.ideographicmedicinecircle = 0x32a9;\n  t.ideographicmetalparen = 0x322e;\n  t.ideographicmoonparen = 0x322a;\n  t.ideographicnameparen = 0x3234;\n  t.ideographicperiod = 0x3002;\n  t.ideographicprintcircle = 0x329e;\n  t.ideographicreachparen = 0x3243;\n  t.ideographicrepresentparen = 0x3239;\n  t.ideographicresourceparen = 0x323e;\n  t.ideographicrightcircle = 0x32a8;\n  t.ideographicsecretcircle = 0x3299;\n  t.ideographicselfparen = 0x3242;\n  t.ideographicsocietyparen = 0x3233;\n  t.ideographicspace = 0x3000;\n  t.ideographicspecialparen = 0x3235;\n  t.ideographicstockparen = 0x3231;\n  t.ideographicstudyparen = 0x323b;\n  t.ideographicsunparen = 0x3230;\n  t.ideographicsuperviseparen = 0x323c;\n  t.ideographicwaterparen = 0x322c;\n  t.ideographicwoodparen = 0x322d;\n  t.ideographiczero = 0x3007;\n  t.ideographmetalcircle = 0x328e;\n  t.ideographmooncircle = 0x328a;\n  t.ideographnamecircle = 0x3294;\n  t.ideographsuncircle = 0x3290;\n  t.ideographwatercircle = 0x328c;\n  t.ideographwoodcircle = 0x328d;\n  t.ideva = 0x0907;\n  t.idieresis = 0x00ef;\n  t.idieresisacute = 0x1e2f;\n  t.idieresiscyrillic = 0x04e5;\n  t.idotbelow = 0x1ecb;\n  t.iebrevecyrillic = 0x04d7;\n  t.iecyrillic = 0x0435;\n  t.ieungacirclekorean = 0x3275;\n  t.ieungaparenkorean = 0x3215;\n  t.ieungcirclekorean = 0x3267;\n  t.ieungkorean = 0x3147;\n  t.ieungparenkorean = 0x3207;\n  t.igrave = 0x00ec;\n  t.igujarati = 0x0a87;\n  t.igurmukhi = 0x0a07;\n  t.ihiragana = 0x3044;\n  t.ihookabove = 0x1ec9;\n  t.iibengali = 0x0988;\n  t.iicyrillic = 0x0438;\n  t.iideva = 0x0908;\n  t.iigujarati = 0x0a88;\n  t.iigurmukhi = 0x0a08;\n  t.iimatragurmukhi = 0x0a40;\n  t.iinvertedbreve = 0x020b;\n  t.iishortcyrillic = 0x0439;\n  t.iivowelsignbengali = 0x09c0;\n  t.iivowelsigndeva = 0x0940;\n  t.iivowelsigngujarati = 0x0ac0;\n  t.ij = 0x0133;\n  t.ikatakana = 0x30a4;\n  t.ikatakanahalfwidth = 0xff72;\n  t.ikorean = 0x3163;\n  t.ilde = 0x02dc;\n  t.iluyhebrew = 0x05ac;\n  t.imacron = 0x012b;\n  t.imacroncyrillic = 0x04e3;\n  t.imageorapproximatelyequal = 0x2253;\n  t.imatragurmukhi = 0x0a3f;\n  t.imonospace = 0xff49;\n  t.increment = 0x2206;\n  t.infinity = 0x221e;\n  t.iniarmenian = 0x056b;\n  t.integral = 0x222b;\n  t.integralbottom = 0x2321;\n  t.integralbt = 0x2321;\n  t.integralex = 0xf8f5;\n  t.integraltop = 0x2320;\n  t.integraltp = 0x2320;\n  t.intersection = 0x2229;\n  t.intisquare = 0x3305;\n  t.invbullet = 0x25d8;\n  t.invcircle = 0x25d9;\n  t.invsmileface = 0x263b;\n  t.iocyrillic = 0x0451;\n  t.iogonek = 0x012f;\n  t.iota = 0x03b9;\n  t.iotadieresis = 0x03ca;\n  t.iotadieresistonos = 0x0390;\n  t.iotalatin = 0x0269;\n  t.iotatonos = 0x03af;\n  t.iparen = 0x24a4;\n  t.irigurmukhi = 0x0a72;\n  t.ismallhiragana = 0x3043;\n  t.ismallkatakana = 0x30a3;\n  t.ismallkatakanahalfwidth = 0xff68;\n  t.issharbengali = 0x09fa;\n  t.istroke = 0x0268;\n  t.isuperior = 0xf6ed;\n  t.iterationhiragana = 0x309d;\n  t.iterationkatakana = 0x30fd;\n  t.itilde = 0x0129;\n  t.itildebelow = 0x1e2d;\n  t.iubopomofo = 0x3129;\n  t.iucyrillic = 0x044e;\n  t.ivowelsignbengali = 0x09bf;\n  t.ivowelsigndeva = 0x093f;\n  t.ivowelsigngujarati = 0x0abf;\n  t.izhitsacyrillic = 0x0475;\n  t.izhitsadblgravecyrillic = 0x0477;\n  t.j = 0x006a;\n  t.jaarmenian = 0x0571;\n  t.jabengali = 0x099c;\n  t.jadeva = 0x091c;\n  t.jagujarati = 0x0a9c;\n  t.jagurmukhi = 0x0a1c;\n  t.jbopomofo = 0x3110;\n  t.jcaron = 0x01f0;\n  t.jcircle = 0x24d9;\n  t.jcircumflex = 0x0135;\n  t.jcrossedtail = 0x029d;\n  t.jdotlessstroke = 0x025f;\n  t.jecyrillic = 0x0458;\n  t.jeemarabic = 0x062c;\n  t.jeemfinalarabic = 0xfe9e;\n  t.jeeminitialarabic = 0xfe9f;\n  t.jeemmedialarabic = 0xfea0;\n  t.jeharabic = 0x0698;\n  t.jehfinalarabic = 0xfb8b;\n  t.jhabengali = 0x099d;\n  t.jhadeva = 0x091d;\n  t.jhagujarati = 0x0a9d;\n  t.jhagurmukhi = 0x0a1d;\n  t.jheharmenian = 0x057b;\n  t.jis = 0x3004;\n  t.jmonospace = 0xff4a;\n  t.jparen = 0x24a5;\n  t.jsuperior = 0x02b2;\n  t.k = 0x006b;\n  t.kabashkircyrillic = 0x04a1;\n  t.kabengali = 0x0995;\n  t.kacute = 0x1e31;\n  t.kacyrillic = 0x043a;\n  t.kadescendercyrillic = 0x049b;\n  t.kadeva = 0x0915;\n  t.kaf = 0x05db;\n  t.kafarabic = 0x0643;\n  t.kafdagesh = 0xfb3b;\n  t.kafdageshhebrew = 0xfb3b;\n  t.kaffinalarabic = 0xfeda;\n  t.kafhebrew = 0x05db;\n  t.kafinitialarabic = 0xfedb;\n  t.kafmedialarabic = 0xfedc;\n  t.kafrafehebrew = 0xfb4d;\n  t.kagujarati = 0x0a95;\n  t.kagurmukhi = 0x0a15;\n  t.kahiragana = 0x304b;\n  t.kahookcyrillic = 0x04c4;\n  t.kakatakana = 0x30ab;\n  t.kakatakanahalfwidth = 0xff76;\n  t.kappa = 0x03ba;\n  t.kappasymbolgreek = 0x03f0;\n  t.kapyeounmieumkorean = 0x3171;\n  t.kapyeounphieuphkorean = 0x3184;\n  t.kapyeounpieupkorean = 0x3178;\n  t.kapyeounssangpieupkorean = 0x3179;\n  t.karoriisquare = 0x330d;\n  t.kashidaautoarabic = 0x0640;\n  t.kashidaautonosidebearingarabic = 0x0640;\n  t.kasmallkatakana = 0x30f5;\n  t.kasquare = 0x3384;\n  t.kasraarabic = 0x0650;\n  t.kasratanarabic = 0x064d;\n  t.kastrokecyrillic = 0x049f;\n  t.katahiraprolongmarkhalfwidth = 0xff70;\n  t.kaverticalstrokecyrillic = 0x049d;\n  t.kbopomofo = 0x310e;\n  t.kcalsquare = 0x3389;\n  t.kcaron = 0x01e9;\n  t.kcedilla = 0x0137;\n  t.kcircle = 0x24da;\n  t.kcommaaccent = 0x0137;\n  t.kdotbelow = 0x1e33;\n  t.keharmenian = 0x0584;\n  t.kehiragana = 0x3051;\n  t.kekatakana = 0x30b1;\n  t.kekatakanahalfwidth = 0xff79;\n  t.kenarmenian = 0x056f;\n  t.kesmallkatakana = 0x30f6;\n  t.kgreenlandic = 0x0138;\n  t.khabengali = 0x0996;\n  t.khacyrillic = 0x0445;\n  t.khadeva = 0x0916;\n  t.khagujarati = 0x0a96;\n  t.khagurmukhi = 0x0a16;\n  t.khaharabic = 0x062e;\n  t.khahfinalarabic = 0xfea6;\n  t.khahinitialarabic = 0xfea7;\n  t.khahmedialarabic = 0xfea8;\n  t.kheicoptic = 0x03e7;\n  t.khhadeva = 0x0959;\n  t.khhagurmukhi = 0x0a59;\n  t.khieukhacirclekorean = 0x3278;\n  t.khieukhaparenkorean = 0x3218;\n  t.khieukhcirclekorean = 0x326a;\n  t.khieukhkorean = 0x314b;\n  t.khieukhparenkorean = 0x320a;\n  t.khokhaithai = 0x0e02;\n  t.khokhonthai = 0x0e05;\n  t.khokhuatthai = 0x0e03;\n  t.khokhwaithai = 0x0e04;\n  t.khomutthai = 0x0e5b;\n  t.khook = 0x0199;\n  t.khorakhangthai = 0x0e06;\n  t.khzsquare = 0x3391;\n  t.kihiragana = 0x304d;\n  t.kikatakana = 0x30ad;\n  t.kikatakanahalfwidth = 0xff77;\n  t.kiroguramusquare = 0x3315;\n  t.kiromeetorusquare = 0x3316;\n  t.kirosquare = 0x3314;\n  t.kiyeokacirclekorean = 0x326e;\n  t.kiyeokaparenkorean = 0x320e;\n  t.kiyeokcirclekorean = 0x3260;\n  t.kiyeokkorean = 0x3131;\n  t.kiyeokparenkorean = 0x3200;\n  t.kiyeoksioskorean = 0x3133;\n  t.kjecyrillic = 0x045c;\n  t.klinebelow = 0x1e35;\n  t.klsquare = 0x3398;\n  t.kmcubedsquare = 0x33a6;\n  t.kmonospace = 0xff4b;\n  t.kmsquaredsquare = 0x33a2;\n  t.kohiragana = 0x3053;\n  t.kohmsquare = 0x33c0;\n  t.kokaithai = 0x0e01;\n  t.kokatakana = 0x30b3;\n  t.kokatakanahalfwidth = 0xff7a;\n  t.kooposquare = 0x331e;\n  t.koppacyrillic = 0x0481;\n  t.koreanstandardsymbol = 0x327f;\n  t.koroniscmb = 0x0343;\n  t.kparen = 0x24a6;\n  t.kpasquare = 0x33aa;\n  t.ksicyrillic = 0x046f;\n  t.ktsquare = 0x33cf;\n  t.kturned = 0x029e;\n  t.kuhiragana = 0x304f;\n  t.kukatakana = 0x30af;\n  t.kukatakanahalfwidth = 0xff78;\n  t.kvsquare = 0x33b8;\n  t.kwsquare = 0x33be;\n  t.l = 0x006c;\n  t.labengali = 0x09b2;\n  t.lacute = 0x013a;\n  t.ladeva = 0x0932;\n  t.lagujarati = 0x0ab2;\n  t.lagurmukhi = 0x0a32;\n  t.lakkhangyaothai = 0x0e45;\n  t.lamaleffinalarabic = 0xfefc;\n  t.lamalefhamzaabovefinalarabic = 0xfef8;\n  t.lamalefhamzaaboveisolatedarabic = 0xfef7;\n  t.lamalefhamzabelowfinalarabic = 0xfefa;\n  t.lamalefhamzabelowisolatedarabic = 0xfef9;\n  t.lamalefisolatedarabic = 0xfefb;\n  t.lamalefmaddaabovefinalarabic = 0xfef6;\n  t.lamalefmaddaaboveisolatedarabic = 0xfef5;\n  t.lamarabic = 0x0644;\n  t.lambda = 0x03bb;\n  t.lambdastroke = 0x019b;\n  t.lamed = 0x05dc;\n  t.lameddagesh = 0xfb3c;\n  t.lameddageshhebrew = 0xfb3c;\n  t.lamedhebrew = 0x05dc;\n  t.lamfinalarabic = 0xfede;\n  t.lamhahinitialarabic = 0xfcca;\n  t.laminitialarabic = 0xfedf;\n  t.lamjeeminitialarabic = 0xfcc9;\n  t.lamkhahinitialarabic = 0xfccb;\n  t.lamlamhehisolatedarabic = 0xfdf2;\n  t.lammedialarabic = 0xfee0;\n  t.lammeemhahinitialarabic = 0xfd88;\n  t.lammeeminitialarabic = 0xfccc;\n  t.largecircle = 0x25ef;\n  t.lbar = 0x019a;\n  t.lbelt = 0x026c;\n  t.lbopomofo = 0x310c;\n  t.lcaron = 0x013e;\n  t.lcedilla = 0x013c;\n  t.lcircle = 0x24db;\n  t.lcircumflexbelow = 0x1e3d;\n  t.lcommaaccent = 0x013c;\n  t.ldot = 0x0140;\n  t.ldotaccent = 0x0140;\n  t.ldotbelow = 0x1e37;\n  t.ldotbelowmacron = 0x1e39;\n  t.leftangleabovecmb = 0x031a;\n  t.lefttackbelowcmb = 0x0318;\n  t.less = 0x003c;\n  t.lessequal = 0x2264;\n  t.lessequalorgreater = 0x22da;\n  t.lessmonospace = 0xff1c;\n  t.lessorequivalent = 0x2272;\n  t.lessorgreater = 0x2276;\n  t.lessoverequal = 0x2266;\n  t.lesssmall = 0xfe64;\n  t.lezh = 0x026e;\n  t.lfblock = 0x258c;\n  t.lhookretroflex = 0x026d;\n  t.lira = 0x20a4;\n  t.liwnarmenian = 0x056c;\n  t.lj = 0x01c9;\n  t.ljecyrillic = 0x0459;\n  t.ll = 0xf6c0;\n  t.lladeva = 0x0933;\n  t.llagujarati = 0x0ab3;\n  t.llinebelow = 0x1e3b;\n  t.llladeva = 0x0934;\n  t.llvocalicbengali = 0x09e1;\n  t.llvocalicdeva = 0x0961;\n  t.llvocalicvowelsignbengali = 0x09e3;\n  t.llvocalicvowelsigndeva = 0x0963;\n  t.lmiddletilde = 0x026b;\n  t.lmonospace = 0xff4c;\n  t.lmsquare = 0x33d0;\n  t.lochulathai = 0x0e2c;\n  t.logicaland = 0x2227;\n  t.logicalnot = 0x00ac;\n  t.logicalnotreversed = 0x2310;\n  t.logicalor = 0x2228;\n  t.lolingthai = 0x0e25;\n  t.longs = 0x017f;\n  t.lowlinecenterline = 0xfe4e;\n  t.lowlinecmb = 0x0332;\n  t.lowlinedashed = 0xfe4d;\n  t.lozenge = 0x25ca;\n  t.lparen = 0x24a7;\n  t.lslash = 0x0142;\n  t.lsquare = 0x2113;\n  t.lsuperior = 0xf6ee;\n  t.ltshade = 0x2591;\n  t.luthai = 0x0e26;\n  t.lvocalicbengali = 0x098c;\n  t.lvocalicdeva = 0x090c;\n  t.lvocalicvowelsignbengali = 0x09e2;\n  t.lvocalicvowelsigndeva = 0x0962;\n  t.lxsquare = 0x33d3;\n  t.m = 0x006d;\n  t.mabengali = 0x09ae;\n  t.macron = 0x00af;\n  t.macronbelowcmb = 0x0331;\n  t.macroncmb = 0x0304;\n  t.macronlowmod = 0x02cd;\n  t.macronmonospace = 0xffe3;\n  t.macute = 0x1e3f;\n  t.madeva = 0x092e;\n  t.magujarati = 0x0aae;\n  t.magurmukhi = 0x0a2e;\n  t.mahapakhhebrew = 0x05a4;\n  t.mahapakhlefthebrew = 0x05a4;\n  t.mahiragana = 0x307e;\n  t.maichattawalowleftthai = 0xf895;\n  t.maichattawalowrightthai = 0xf894;\n  t.maichattawathai = 0x0e4b;\n  t.maichattawaupperleftthai = 0xf893;\n  t.maieklowleftthai = 0xf88c;\n  t.maieklowrightthai = 0xf88b;\n  t.maiekthai = 0x0e48;\n  t.maiekupperleftthai = 0xf88a;\n  t.maihanakatleftthai = 0xf884;\n  t.maihanakatthai = 0x0e31;\n  t.maitaikhuleftthai = 0xf889;\n  t.maitaikhuthai = 0x0e47;\n  t.maitholowleftthai = 0xf88f;\n  t.maitholowrightthai = 0xf88e;\n  t.maithothai = 0x0e49;\n  t.maithoupperleftthai = 0xf88d;\n  t.maitrilowleftthai = 0xf892;\n  t.maitrilowrightthai = 0xf891;\n  t.maitrithai = 0x0e4a;\n  t.maitriupperleftthai = 0xf890;\n  t.maiyamokthai = 0x0e46;\n  t.makatakana = 0x30de;\n  t.makatakanahalfwidth = 0xff8f;\n  t.male = 0x2642;\n  t.mansyonsquare = 0x3347;\n  t.maqafhebrew = 0x05be;\n  t.mars = 0x2642;\n  t.masoracirclehebrew = 0x05af;\n  t.masquare = 0x3383;\n  t.mbopomofo = 0x3107;\n  t.mbsquare = 0x33d4;\n  t.mcircle = 0x24dc;\n  t.mcubedsquare = 0x33a5;\n  t.mdotaccent = 0x1e41;\n  t.mdotbelow = 0x1e43;\n  t.meemarabic = 0x0645;\n  t.meemfinalarabic = 0xfee2;\n  t.meeminitialarabic = 0xfee3;\n  t.meemmedialarabic = 0xfee4;\n  t.meemmeeminitialarabic = 0xfcd1;\n  t.meemmeemisolatedarabic = 0xfc48;\n  t.meetorusquare = 0x334d;\n  t.mehiragana = 0x3081;\n  t.meizierasquare = 0x337e;\n  t.mekatakana = 0x30e1;\n  t.mekatakanahalfwidth = 0xff92;\n  t.mem = 0x05de;\n  t.memdagesh = 0xfb3e;\n  t.memdageshhebrew = 0xfb3e;\n  t.memhebrew = 0x05de;\n  t.menarmenian = 0x0574;\n  t.merkhahebrew = 0x05a5;\n  t.merkhakefulahebrew = 0x05a6;\n  t.merkhakefulalefthebrew = 0x05a6;\n  t.merkhalefthebrew = 0x05a5;\n  t.mhook = 0x0271;\n  t.mhzsquare = 0x3392;\n  t.middledotkatakanahalfwidth = 0xff65;\n  t.middot = 0x00b7;\n  t.mieumacirclekorean = 0x3272;\n  t.mieumaparenkorean = 0x3212;\n  t.mieumcirclekorean = 0x3264;\n  t.mieumkorean = 0x3141;\n  t.mieumpansioskorean = 0x3170;\n  t.mieumparenkorean = 0x3204;\n  t.mieumpieupkorean = 0x316e;\n  t.mieumsioskorean = 0x316f;\n  t.mihiragana = 0x307f;\n  t.mikatakana = 0x30df;\n  t.mikatakanahalfwidth = 0xff90;\n  t.minus = 0x2212;\n  t.minusbelowcmb = 0x0320;\n  t.minuscircle = 0x2296;\n  t.minusmod = 0x02d7;\n  t.minusplus = 0x2213;\n  t.minute = 0x2032;\n  t.miribaarusquare = 0x334a;\n  t.mirisquare = 0x3349;\n  t.mlonglegturned = 0x0270;\n  t.mlsquare = 0x3396;\n  t.mmcubedsquare = 0x33a3;\n  t.mmonospace = 0xff4d;\n  t.mmsquaredsquare = 0x339f;\n  t.mohiragana = 0x3082;\n  t.mohmsquare = 0x33c1;\n  t.mokatakana = 0x30e2;\n  t.mokatakanahalfwidth = 0xff93;\n  t.molsquare = 0x33d6;\n  t.momathai = 0x0e21;\n  t.moverssquare = 0x33a7;\n  t.moverssquaredsquare = 0x33a8;\n  t.mparen = 0x24a8;\n  t.mpasquare = 0x33ab;\n  t.mssquare = 0x33b3;\n  t.msuperior = 0xf6ef;\n  t.mturned = 0x026f;\n  t.mu = 0x00b5;\n  t.mu1 = 0x00b5;\n  t.muasquare = 0x3382;\n  t.muchgreater = 0x226b;\n  t.muchless = 0x226a;\n  t.mufsquare = 0x338c;\n  t.mugreek = 0x03bc;\n  t.mugsquare = 0x338d;\n  t.muhiragana = 0x3080;\n  t.mukatakana = 0x30e0;\n  t.mukatakanahalfwidth = 0xff91;\n  t.mulsquare = 0x3395;\n  t.multiply = 0x00d7;\n  t.mumsquare = 0x339b;\n  t.munahhebrew = 0x05a3;\n  t.munahlefthebrew = 0x05a3;\n  t.musicalnote = 0x266a;\n  t.musicalnotedbl = 0x266b;\n  t.musicflatsign = 0x266d;\n  t.musicsharpsign = 0x266f;\n  t.mussquare = 0x33b2;\n  t.muvsquare = 0x33b6;\n  t.muwsquare = 0x33bc;\n  t.mvmegasquare = 0x33b9;\n  t.mvsquare = 0x33b7;\n  t.mwmegasquare = 0x33bf;\n  t.mwsquare = 0x33bd;\n  t.n = 0x006e;\n  t.nabengali = 0x09a8;\n  t.nabla = 0x2207;\n  t.nacute = 0x0144;\n  t.nadeva = 0x0928;\n  t.nagujarati = 0x0aa8;\n  t.nagurmukhi = 0x0a28;\n  t.nahiragana = 0x306a;\n  t.nakatakana = 0x30ca;\n  t.nakatakanahalfwidth = 0xff85;\n  t.napostrophe = 0x0149;\n  t.nasquare = 0x3381;\n  t.nbopomofo = 0x310b;\n  t.nbspace = 0x00a0;\n  t.ncaron = 0x0148;\n  t.ncedilla = 0x0146;\n  t.ncircle = 0x24dd;\n  t.ncircumflexbelow = 0x1e4b;\n  t.ncommaaccent = 0x0146;\n  t.ndotaccent = 0x1e45;\n  t.ndotbelow = 0x1e47;\n  t.nehiragana = 0x306d;\n  t.nekatakana = 0x30cd;\n  t.nekatakanahalfwidth = 0xff88;\n  t.newsheqelsign = 0x20aa;\n  t.nfsquare = 0x338b;\n  t.ngabengali = 0x0999;\n  t.ngadeva = 0x0919;\n  t.ngagujarati = 0x0a99;\n  t.ngagurmukhi = 0x0a19;\n  t.ngonguthai = 0x0e07;\n  t.nhiragana = 0x3093;\n  t.nhookleft = 0x0272;\n  t.nhookretroflex = 0x0273;\n  t.nieunacirclekorean = 0x326f;\n  t.nieunaparenkorean = 0x320f;\n  t.nieuncieuckorean = 0x3135;\n  t.nieuncirclekorean = 0x3261;\n  t.nieunhieuhkorean = 0x3136;\n  t.nieunkorean = 0x3134;\n  t.nieunpansioskorean = 0x3168;\n  t.nieunparenkorean = 0x3201;\n  t.nieunsioskorean = 0x3167;\n  t.nieuntikeutkorean = 0x3166;\n  t.nihiragana = 0x306b;\n  t.nikatakana = 0x30cb;\n  t.nikatakanahalfwidth = 0xff86;\n  t.nikhahitleftthai = 0xf899;\n  t.nikhahitthai = 0x0e4d;\n  t.nine = 0x0039;\n  t.ninearabic = 0x0669;\n  t.ninebengali = 0x09ef;\n  t.ninecircle = 0x2468;\n  t.ninecircleinversesansserif = 0x2792;\n  t.ninedeva = 0x096f;\n  t.ninegujarati = 0x0aef;\n  t.ninegurmukhi = 0x0a6f;\n  t.ninehackarabic = 0x0669;\n  t.ninehangzhou = 0x3029;\n  t.nineideographicparen = 0x3228;\n  t.nineinferior = 0x2089;\n  t.ninemonospace = 0xff19;\n  t.nineoldstyle = 0xf739;\n  t.nineparen = 0x247c;\n  t.nineperiod = 0x2490;\n  t.ninepersian = 0x06f9;\n  t.nineroman = 0x2178;\n  t.ninesuperior = 0x2079;\n  t.nineteencircle = 0x2472;\n  t.nineteenparen = 0x2486;\n  t.nineteenperiod = 0x249a;\n  t.ninethai = 0x0e59;\n  t.nj = 0x01cc;\n  t.njecyrillic = 0x045a;\n  t.nkatakana = 0x30f3;\n  t.nkatakanahalfwidth = 0xff9d;\n  t.nlegrightlong = 0x019e;\n  t.nlinebelow = 0x1e49;\n  t.nmonospace = 0xff4e;\n  t.nmsquare = 0x339a;\n  t.nnabengali = 0x09a3;\n  t.nnadeva = 0x0923;\n  t.nnagujarati = 0x0aa3;\n  t.nnagurmukhi = 0x0a23;\n  t.nnnadeva = 0x0929;\n  t.nohiragana = 0x306e;\n  t.nokatakana = 0x30ce;\n  t.nokatakanahalfwidth = 0xff89;\n  t.nonbreakingspace = 0x00a0;\n  t.nonenthai = 0x0e13;\n  t.nonuthai = 0x0e19;\n  t.noonarabic = 0x0646;\n  t.noonfinalarabic = 0xfee6;\n  t.noonghunnaarabic = 0x06ba;\n  t.noonghunnafinalarabic = 0xfb9f;\n  t.nooninitialarabic = 0xfee7;\n  t.noonjeeminitialarabic = 0xfcd2;\n  t.noonjeemisolatedarabic = 0xfc4b;\n  t.noonmedialarabic = 0xfee8;\n  t.noonmeeminitialarabic = 0xfcd5;\n  t.noonmeemisolatedarabic = 0xfc4e;\n  t.noonnoonfinalarabic = 0xfc8d;\n  t.notcontains = 0x220c;\n  t.notelement = 0x2209;\n  t.notelementof = 0x2209;\n  t.notequal = 0x2260;\n  t.notgreater = 0x226f;\n  t.notgreaternorequal = 0x2271;\n  t.notgreaternorless = 0x2279;\n  t.notidentical = 0x2262;\n  t.notless = 0x226e;\n  t.notlessnorequal = 0x2270;\n  t.notparallel = 0x2226;\n  t.notprecedes = 0x2280;\n  t.notsubset = 0x2284;\n  t.notsucceeds = 0x2281;\n  t.notsuperset = 0x2285;\n  t.nowarmenian = 0x0576;\n  t.nparen = 0x24a9;\n  t.nssquare = 0x33b1;\n  t.nsuperior = 0x207f;\n  t.ntilde = 0x00f1;\n  t.nu = 0x03bd;\n  t.nuhiragana = 0x306c;\n  t.nukatakana = 0x30cc;\n  t.nukatakanahalfwidth = 0xff87;\n  t.nuktabengali = 0x09bc;\n  t.nuktadeva = 0x093c;\n  t.nuktagujarati = 0x0abc;\n  t.nuktagurmukhi = 0x0a3c;\n  t.numbersign = 0x0023;\n  t.numbersignmonospace = 0xff03;\n  t.numbersignsmall = 0xfe5f;\n  t.numeralsigngreek = 0x0374;\n  t.numeralsignlowergreek = 0x0375;\n  t.numero = 0x2116;\n  t.nun = 0x05e0;\n  t.nundagesh = 0xfb40;\n  t.nundageshhebrew = 0xfb40;\n  t.nunhebrew = 0x05e0;\n  t.nvsquare = 0x33b5;\n  t.nwsquare = 0x33bb;\n  t.nyabengali = 0x099e;\n  t.nyadeva = 0x091e;\n  t.nyagujarati = 0x0a9e;\n  t.nyagurmukhi = 0x0a1e;\n  t.o = 0x006f;\n  t.oacute = 0x00f3;\n  t.oangthai = 0x0e2d;\n  t.obarred = 0x0275;\n  t.obarredcyrillic = 0x04e9;\n  t.obarreddieresiscyrillic = 0x04eb;\n  t.obengali = 0x0993;\n  t.obopomofo = 0x311b;\n  t.obreve = 0x014f;\n  t.ocandradeva = 0x0911;\n  t.ocandragujarati = 0x0a91;\n  t.ocandravowelsigndeva = 0x0949;\n  t.ocandravowelsigngujarati = 0x0ac9;\n  t.ocaron = 0x01d2;\n  t.ocircle = 0x24de;\n  t.ocircumflex = 0x00f4;\n  t.ocircumflexacute = 0x1ed1;\n  t.ocircumflexdotbelow = 0x1ed9;\n  t.ocircumflexgrave = 0x1ed3;\n  t.ocircumflexhookabove = 0x1ed5;\n  t.ocircumflextilde = 0x1ed7;\n  t.ocyrillic = 0x043e;\n  t.odblacute = 0x0151;\n  t.odblgrave = 0x020d;\n  t.odeva = 0x0913;\n  t.odieresis = 0x00f6;\n  t.odieresiscyrillic = 0x04e7;\n  t.odotbelow = 0x1ecd;\n  t.oe = 0x0153;\n  t.oekorean = 0x315a;\n  t.ogonek = 0x02db;\n  t.ogonekcmb = 0x0328;\n  t.ograve = 0x00f2;\n  t.ogujarati = 0x0a93;\n  t.oharmenian = 0x0585;\n  t.ohiragana = 0x304a;\n  t.ohookabove = 0x1ecf;\n  t.ohorn = 0x01a1;\n  t.ohornacute = 0x1edb;\n  t.ohorndotbelow = 0x1ee3;\n  t.ohorngrave = 0x1edd;\n  t.ohornhookabove = 0x1edf;\n  t.ohorntilde = 0x1ee1;\n  t.ohungarumlaut = 0x0151;\n  t.oi = 0x01a3;\n  t.oinvertedbreve = 0x020f;\n  t.okatakana = 0x30aa;\n  t.okatakanahalfwidth = 0xff75;\n  t.okorean = 0x3157;\n  t.olehebrew = 0x05ab;\n  t.omacron = 0x014d;\n  t.omacronacute = 0x1e53;\n  t.omacrongrave = 0x1e51;\n  t.omdeva = 0x0950;\n  t.omega = 0x03c9;\n  t.omega1 = 0x03d6;\n  t.omegacyrillic = 0x0461;\n  t.omegalatinclosed = 0x0277;\n  t.omegaroundcyrillic = 0x047b;\n  t.omegatitlocyrillic = 0x047d;\n  t.omegatonos = 0x03ce;\n  t.omgujarati = 0x0ad0;\n  t.omicron = 0x03bf;\n  t.omicrontonos = 0x03cc;\n  t.omonospace = 0xff4f;\n  t.one = 0x0031;\n  t.onearabic = 0x0661;\n  t.onebengali = 0x09e7;\n  t.onecircle = 0x2460;\n  t.onecircleinversesansserif = 0x278a;\n  t.onedeva = 0x0967;\n  t.onedotenleader = 0x2024;\n  t.oneeighth = 0x215b;\n  t.onefitted = 0xf6dc;\n  t.onegujarati = 0x0ae7;\n  t.onegurmukhi = 0x0a67;\n  t.onehackarabic = 0x0661;\n  t.onehalf = 0x00bd;\n  t.onehangzhou = 0x3021;\n  t.oneideographicparen = 0x3220;\n  t.oneinferior = 0x2081;\n  t.onemonospace = 0xff11;\n  t.onenumeratorbengali = 0x09f4;\n  t.oneoldstyle = 0xf731;\n  t.oneparen = 0x2474;\n  t.oneperiod = 0x2488;\n  t.onepersian = 0x06f1;\n  t.onequarter = 0x00bc;\n  t.oneroman = 0x2170;\n  t.onesuperior = 0x00b9;\n  t.onethai = 0x0e51;\n  t.onethird = 0x2153;\n  t.oogonek = 0x01eb;\n  t.oogonekmacron = 0x01ed;\n  t.oogurmukhi = 0x0a13;\n  t.oomatragurmukhi = 0x0a4b;\n  t.oopen = 0x0254;\n  t.oparen = 0x24aa;\n  t.openbullet = 0x25e6;\n  t.option = 0x2325;\n  t.ordfeminine = 0x00aa;\n  t.ordmasculine = 0x00ba;\n  t.orthogonal = 0x221f;\n  t.oshortdeva = 0x0912;\n  t.oshortvowelsigndeva = 0x094a;\n  t.oslash = 0x00f8;\n  t.oslashacute = 0x01ff;\n  t.osmallhiragana = 0x3049;\n  t.osmallkatakana = 0x30a9;\n  t.osmallkatakanahalfwidth = 0xff6b;\n  t.ostrokeacute = 0x01ff;\n  t.osuperior = 0xf6f0;\n  t.otcyrillic = 0x047f;\n  t.otilde = 0x00f5;\n  t.otildeacute = 0x1e4d;\n  t.otildedieresis = 0x1e4f;\n  t.oubopomofo = 0x3121;\n  t.overline = 0x203e;\n  t.overlinecenterline = 0xfe4a;\n  t.overlinecmb = 0x0305;\n  t.overlinedashed = 0xfe49;\n  t.overlinedblwavy = 0xfe4c;\n  t.overlinewavy = 0xfe4b;\n  t.overscore = 0x00af;\n  t.ovowelsignbengali = 0x09cb;\n  t.ovowelsigndeva = 0x094b;\n  t.ovowelsigngujarati = 0x0acb;\n  t.p = 0x0070;\n  t.paampssquare = 0x3380;\n  t.paasentosquare = 0x332b;\n  t.pabengali = 0x09aa;\n  t.pacute = 0x1e55;\n  t.padeva = 0x092a;\n  t.pagedown = 0x21df;\n  t.pageup = 0x21de;\n  t.pagujarati = 0x0aaa;\n  t.pagurmukhi = 0x0a2a;\n  t.pahiragana = 0x3071;\n  t.paiyannoithai = 0x0e2f;\n  t.pakatakana = 0x30d1;\n  t.palatalizationcyrilliccmb = 0x0484;\n  t.palochkacyrillic = 0x04c0;\n  t.pansioskorean = 0x317f;\n  t.paragraph = 0x00b6;\n  t.parallel = 0x2225;\n  t.parenleft = 0x0028;\n  t.parenleftaltonearabic = 0xfd3e;\n  t.parenleftbt = 0xf8ed;\n  t.parenleftex = 0xf8ec;\n  t.parenleftinferior = 0x208d;\n  t.parenleftmonospace = 0xff08;\n  t.parenleftsmall = 0xfe59;\n  t.parenleftsuperior = 0x207d;\n  t.parenlefttp = 0xf8eb;\n  t.parenleftvertical = 0xfe35;\n  t.parenright = 0x0029;\n  t.parenrightaltonearabic = 0xfd3f;\n  t.parenrightbt = 0xf8f8;\n  t.parenrightex = 0xf8f7;\n  t.parenrightinferior = 0x208e;\n  t.parenrightmonospace = 0xff09;\n  t.parenrightsmall = 0xfe5a;\n  t.parenrightsuperior = 0x207e;\n  t.parenrighttp = 0xf8f6;\n  t.parenrightvertical = 0xfe36;\n  t.partialdiff = 0x2202;\n  t.paseqhebrew = 0x05c0;\n  t.pashtahebrew = 0x0599;\n  t.pasquare = 0x33a9;\n  t.patah = 0x05b7;\n  t.patah11 = 0x05b7;\n  t.patah1d = 0x05b7;\n  t.patah2a = 0x05b7;\n  t.patahhebrew = 0x05b7;\n  t.patahnarrowhebrew = 0x05b7;\n  t.patahquarterhebrew = 0x05b7;\n  t.patahwidehebrew = 0x05b7;\n  t.pazerhebrew = 0x05a1;\n  t.pbopomofo = 0x3106;\n  t.pcircle = 0x24df;\n  t.pdotaccent = 0x1e57;\n  t.pe = 0x05e4;\n  t.pecyrillic = 0x043f;\n  t.pedagesh = 0xfb44;\n  t.pedageshhebrew = 0xfb44;\n  t.peezisquare = 0x333b;\n  t.pefinaldageshhebrew = 0xfb43;\n  t.peharabic = 0x067e;\n  t.peharmenian = 0x057a;\n  t.pehebrew = 0x05e4;\n  t.pehfinalarabic = 0xfb57;\n  t.pehinitialarabic = 0xfb58;\n  t.pehiragana = 0x307a;\n  t.pehmedialarabic = 0xfb59;\n  t.pekatakana = 0x30da;\n  t.pemiddlehookcyrillic = 0x04a7;\n  t.perafehebrew = 0xfb4e;\n  t.percent = 0x0025;\n  t.percentarabic = 0x066a;\n  t.percentmonospace = 0xff05;\n  t.percentsmall = 0xfe6a;\n  t.period = 0x002e;\n  t.periodarmenian = 0x0589;\n  t.periodcentered = 0x00b7;\n  t.periodhalfwidth = 0xff61;\n  t.periodinferior = 0xf6e7;\n  t.periodmonospace = 0xff0e;\n  t.periodsmall = 0xfe52;\n  t.periodsuperior = 0xf6e8;\n  t.perispomenigreekcmb = 0x0342;\n  t.perpendicular = 0x22a5;\n  t.perthousand = 0x2030;\n  t.peseta = 0x20a7;\n  t.pfsquare = 0x338a;\n  t.phabengali = 0x09ab;\n  t.phadeva = 0x092b;\n  t.phagujarati = 0x0aab;\n  t.phagurmukhi = 0x0a2b;\n  t.phi = 0x03c6;\n  t.phi1 = 0x03d5;\n  t.phieuphacirclekorean = 0x327a;\n  t.phieuphaparenkorean = 0x321a;\n  t.phieuphcirclekorean = 0x326c;\n  t.phieuphkorean = 0x314d;\n  t.phieuphparenkorean = 0x320c;\n  t.philatin = 0x0278;\n  t.phinthuthai = 0x0e3a;\n  t.phisymbolgreek = 0x03d5;\n  t.phook = 0x01a5;\n  t.phophanthai = 0x0e1e;\n  t.phophungthai = 0x0e1c;\n  t.phosamphaothai = 0x0e20;\n  t.pi = 0x03c0;\n  t.pieupacirclekorean = 0x3273;\n  t.pieupaparenkorean = 0x3213;\n  t.pieupcieuckorean = 0x3176;\n  t.pieupcirclekorean = 0x3265;\n  t.pieupkiyeokkorean = 0x3172;\n  t.pieupkorean = 0x3142;\n  t.pieupparenkorean = 0x3205;\n  t.pieupsioskiyeokkorean = 0x3174;\n  t.pieupsioskorean = 0x3144;\n  t.pieupsiostikeutkorean = 0x3175;\n  t.pieupthieuthkorean = 0x3177;\n  t.pieuptikeutkorean = 0x3173;\n  t.pihiragana = 0x3074;\n  t.pikatakana = 0x30d4;\n  t.pisymbolgreek = 0x03d6;\n  t.piwrarmenian = 0x0583;\n  t.plus = 0x002b;\n  t.plusbelowcmb = 0x031f;\n  t.pluscircle = 0x2295;\n  t.plusminus = 0x00b1;\n  t.plusmod = 0x02d6;\n  t.plusmonospace = 0xff0b;\n  t.plussmall = 0xfe62;\n  t.plussuperior = 0x207a;\n  t.pmonospace = 0xff50;\n  t.pmsquare = 0x33d8;\n  t.pohiragana = 0x307d;\n  t.pointingindexdownwhite = 0x261f;\n  t.pointingindexleftwhite = 0x261c;\n  t.pointingindexrightwhite = 0x261e;\n  t.pointingindexupwhite = 0x261d;\n  t.pokatakana = 0x30dd;\n  t.poplathai = 0x0e1b;\n  t.postalmark = 0x3012;\n  t.postalmarkface = 0x3020;\n  t.pparen = 0x24ab;\n  t.precedes = 0x227a;\n  t.prescription = 0x211e;\n  t.primemod = 0x02b9;\n  t.primereversed = 0x2035;\n  t.product = 0x220f;\n  t.projective = 0x2305;\n  t.prolongedkana = 0x30fc;\n  t.propellor = 0x2318;\n  t.propersubset = 0x2282;\n  t.propersuperset = 0x2283;\n  t.proportion = 0x2237;\n  t.proportional = 0x221d;\n  t.psi = 0x03c8;\n  t.psicyrillic = 0x0471;\n  t.psilipneumatacyrilliccmb = 0x0486;\n  t.pssquare = 0x33b0;\n  t.puhiragana = 0x3077;\n  t.pukatakana = 0x30d7;\n  t.pvsquare = 0x33b4;\n  t.pwsquare = 0x33ba;\n  t.q = 0x0071;\n  t.qadeva = 0x0958;\n  t.qadmahebrew = 0x05a8;\n  t.qafarabic = 0x0642;\n  t.qaffinalarabic = 0xfed6;\n  t.qafinitialarabic = 0xfed7;\n  t.qafmedialarabic = 0xfed8;\n  t.qamats = 0x05b8;\n  t.qamats10 = 0x05b8;\n  t.qamats1a = 0x05b8;\n  t.qamats1c = 0x05b8;\n  t.qamats27 = 0x05b8;\n  t.qamats29 = 0x05b8;\n  t.qamats33 = 0x05b8;\n  t.qamatsde = 0x05b8;\n  t.qamatshebrew = 0x05b8;\n  t.qamatsnarrowhebrew = 0x05b8;\n  t.qamatsqatanhebrew = 0x05b8;\n  t.qamatsqatannarrowhebrew = 0x05b8;\n  t.qamatsqatanquarterhebrew = 0x05b8;\n  t.qamatsqatanwidehebrew = 0x05b8;\n  t.qamatsquarterhebrew = 0x05b8;\n  t.qamatswidehebrew = 0x05b8;\n  t.qarneyparahebrew = 0x059f;\n  t.qbopomofo = 0x3111;\n  t.qcircle = 0x24e0;\n  t.qhook = 0x02a0;\n  t.qmonospace = 0xff51;\n  t.qof = 0x05e7;\n  t.qofdagesh = 0xfb47;\n  t.qofdageshhebrew = 0xfb47;\n  t.qofhebrew = 0x05e7;\n  t.qparen = 0x24ac;\n  t.quarternote = 0x2669;\n  t.qubuts = 0x05bb;\n  t.qubuts18 = 0x05bb;\n  t.qubuts25 = 0x05bb;\n  t.qubuts31 = 0x05bb;\n  t.qubutshebrew = 0x05bb;\n  t.qubutsnarrowhebrew = 0x05bb;\n  t.qubutsquarterhebrew = 0x05bb;\n  t.qubutswidehebrew = 0x05bb;\n  t.question = 0x003f;\n  t.questionarabic = 0x061f;\n  t.questionarmenian = 0x055e;\n  t.questiondown = 0x00bf;\n  t.questiondownsmall = 0xf7bf;\n  t.questiongreek = 0x037e;\n  t.questionmonospace = 0xff1f;\n  t.questionsmall = 0xf73f;\n  t.quotedbl = 0x0022;\n  t.quotedblbase = 0x201e;\n  t.quotedblleft = 0x201c;\n  t.quotedblmonospace = 0xff02;\n  t.quotedblprime = 0x301e;\n  t.quotedblprimereversed = 0x301d;\n  t.quotedblright = 0x201d;\n  t.quoteleft = 0x2018;\n  t.quoteleftreversed = 0x201b;\n  t.quotereversed = 0x201b;\n  t.quoteright = 0x2019;\n  t.quoterightn = 0x0149;\n  t.quotesinglbase = 0x201a;\n  t.quotesingle = 0x0027;\n  t.quotesinglemonospace = 0xff07;\n  t.r = 0x0072;\n  t.raarmenian = 0x057c;\n  t.rabengali = 0x09b0;\n  t.racute = 0x0155;\n  t.radeva = 0x0930;\n  t.radical = 0x221a;\n  t.radicalex = 0xf8e5;\n  t.radoverssquare = 0x33ae;\n  t.radoverssquaredsquare = 0x33af;\n  t.radsquare = 0x33ad;\n  t.rafe = 0x05bf;\n  t.rafehebrew = 0x05bf;\n  t.ragujarati = 0x0ab0;\n  t.ragurmukhi = 0x0a30;\n  t.rahiragana = 0x3089;\n  t.rakatakana = 0x30e9;\n  t.rakatakanahalfwidth = 0xff97;\n  t.ralowerdiagonalbengali = 0x09f1;\n  t.ramiddlediagonalbengali = 0x09f0;\n  t.ramshorn = 0x0264;\n  t.ratio = 0x2236;\n  t.rbopomofo = 0x3116;\n  t.rcaron = 0x0159;\n  t.rcedilla = 0x0157;\n  t.rcircle = 0x24e1;\n  t.rcommaaccent = 0x0157;\n  t.rdblgrave = 0x0211;\n  t.rdotaccent = 0x1e59;\n  t.rdotbelow = 0x1e5b;\n  t.rdotbelowmacron = 0x1e5d;\n  t.referencemark = 0x203b;\n  t.reflexsubset = 0x2286;\n  t.reflexsuperset = 0x2287;\n  t.registered = 0x00ae;\n  t.registersans = 0xf8e8;\n  t.registerserif = 0xf6da;\n  t.reharabic = 0x0631;\n  t.reharmenian = 0x0580;\n  t.rehfinalarabic = 0xfeae;\n  t.rehiragana = 0x308c;\n  t.rekatakana = 0x30ec;\n  t.rekatakanahalfwidth = 0xff9a;\n  t.resh = 0x05e8;\n  t.reshdageshhebrew = 0xfb48;\n  t.reshhebrew = 0x05e8;\n  t.reversedtilde = 0x223d;\n  t.reviahebrew = 0x0597;\n  t.reviamugrashhebrew = 0x0597;\n  t.revlogicalnot = 0x2310;\n  t.rfishhook = 0x027e;\n  t.rfishhookreversed = 0x027f;\n  t.rhabengali = 0x09dd;\n  t.rhadeva = 0x095d;\n  t.rho = 0x03c1;\n  t.rhook = 0x027d;\n  t.rhookturned = 0x027b;\n  t.rhookturnedsuperior = 0x02b5;\n  t.rhosymbolgreek = 0x03f1;\n  t.rhotichookmod = 0x02de;\n  t.rieulacirclekorean = 0x3271;\n  t.rieulaparenkorean = 0x3211;\n  t.rieulcirclekorean = 0x3263;\n  t.rieulhieuhkorean = 0x3140;\n  t.rieulkiyeokkorean = 0x313a;\n  t.rieulkiyeoksioskorean = 0x3169;\n  t.rieulkorean = 0x3139;\n  t.rieulmieumkorean = 0x313b;\n  t.rieulpansioskorean = 0x316c;\n  t.rieulparenkorean = 0x3203;\n  t.rieulphieuphkorean = 0x313f;\n  t.rieulpieupkorean = 0x313c;\n  t.rieulpieupsioskorean = 0x316b;\n  t.rieulsioskorean = 0x313d;\n  t.rieulthieuthkorean = 0x313e;\n  t.rieultikeutkorean = 0x316a;\n  t.rieulyeorinhieuhkorean = 0x316d;\n  t.rightangle = 0x221f;\n  t.righttackbelowcmb = 0x0319;\n  t.righttriangle = 0x22bf;\n  t.rihiragana = 0x308a;\n  t.rikatakana = 0x30ea;\n  t.rikatakanahalfwidth = 0xff98;\n  t.ring = 0x02da;\n  t.ringbelowcmb = 0x0325;\n  t.ringcmb = 0x030a;\n  t.ringhalfleft = 0x02bf;\n  t.ringhalfleftarmenian = 0x0559;\n  t.ringhalfleftbelowcmb = 0x031c;\n  t.ringhalfleftcentered = 0x02d3;\n  t.ringhalfright = 0x02be;\n  t.ringhalfrightbelowcmb = 0x0339;\n  t.ringhalfrightcentered = 0x02d2;\n  t.rinvertedbreve = 0x0213;\n  t.rittorusquare = 0x3351;\n  t.rlinebelow = 0x1e5f;\n  t.rlongleg = 0x027c;\n  t.rlonglegturned = 0x027a;\n  t.rmonospace = 0xff52;\n  t.rohiragana = 0x308d;\n  t.rokatakana = 0x30ed;\n  t.rokatakanahalfwidth = 0xff9b;\n  t.roruathai = 0x0e23;\n  t.rparen = 0x24ad;\n  t.rrabengali = 0x09dc;\n  t.rradeva = 0x0931;\n  t.rragurmukhi = 0x0a5c;\n  t.rreharabic = 0x0691;\n  t.rrehfinalarabic = 0xfb8d;\n  t.rrvocalicbengali = 0x09e0;\n  t.rrvocalicdeva = 0x0960;\n  t.rrvocalicgujarati = 0x0ae0;\n  t.rrvocalicvowelsignbengali = 0x09c4;\n  t.rrvocalicvowelsigndeva = 0x0944;\n  t.rrvocalicvowelsigngujarati = 0x0ac4;\n  t.rsuperior = 0xf6f1;\n  t.rtblock = 0x2590;\n  t.rturned = 0x0279;\n  t.rturnedsuperior = 0x02b4;\n  t.ruhiragana = 0x308b;\n  t.rukatakana = 0x30eb;\n  t.rukatakanahalfwidth = 0xff99;\n  t.rupeemarkbengali = 0x09f2;\n  t.rupeesignbengali = 0x09f3;\n  t.rupiah = 0xf6dd;\n  t.ruthai = 0x0e24;\n  t.rvocalicbengali = 0x098b;\n  t.rvocalicdeva = 0x090b;\n  t.rvocalicgujarati = 0x0a8b;\n  t.rvocalicvowelsignbengali = 0x09c3;\n  t.rvocalicvowelsigndeva = 0x0943;\n  t.rvocalicvowelsigngujarati = 0x0ac3;\n  t.s = 0x0073;\n  t.sabengali = 0x09b8;\n  t.sacute = 0x015b;\n  t.sacutedotaccent = 0x1e65;\n  t.sadarabic = 0x0635;\n  t.sadeva = 0x0938;\n  t.sadfinalarabic = 0xfeba;\n  t.sadinitialarabic = 0xfebb;\n  t.sadmedialarabic = 0xfebc;\n  t.sagujarati = 0x0ab8;\n  t.sagurmukhi = 0x0a38;\n  t.sahiragana = 0x3055;\n  t.sakatakana = 0x30b5;\n  t.sakatakanahalfwidth = 0xff7b;\n  t.sallallahoualayhewasallamarabic = 0xfdfa;\n  t.samekh = 0x05e1;\n  t.samekhdagesh = 0xfb41;\n  t.samekhdageshhebrew = 0xfb41;\n  t.samekhhebrew = 0x05e1;\n  t.saraaathai = 0x0e32;\n  t.saraaethai = 0x0e41;\n  t.saraaimaimalaithai = 0x0e44;\n  t.saraaimaimuanthai = 0x0e43;\n  t.saraamthai = 0x0e33;\n  t.saraathai = 0x0e30;\n  t.saraethai = 0x0e40;\n  t.saraiileftthai = 0xf886;\n  t.saraiithai = 0x0e35;\n  t.saraileftthai = 0xf885;\n  t.saraithai = 0x0e34;\n  t.saraothai = 0x0e42;\n  t.saraueeleftthai = 0xf888;\n  t.saraueethai = 0x0e37;\n  t.saraueleftthai = 0xf887;\n  t.sarauethai = 0x0e36;\n  t.sarauthai = 0x0e38;\n  t.sarauuthai = 0x0e39;\n  t.sbopomofo = 0x3119;\n  t.scaron = 0x0161;\n  t.scarondotaccent = 0x1e67;\n  t.scedilla = 0x015f;\n  t.schwa = 0x0259;\n  t.schwacyrillic = 0x04d9;\n  t.schwadieresiscyrillic = 0x04db;\n  t.schwahook = 0x025a;\n  t.scircle = 0x24e2;\n  t.scircumflex = 0x015d;\n  t.scommaaccent = 0x0219;\n  t.sdotaccent = 0x1e61;\n  t.sdotbelow = 0x1e63;\n  t.sdotbelowdotaccent = 0x1e69;\n  t.seagullbelowcmb = 0x033c;\n  t.second = 0x2033;\n  t.secondtonechinese = 0x02ca;\n  t.section = 0x00a7;\n  t.seenarabic = 0x0633;\n  t.seenfinalarabic = 0xfeb2;\n  t.seeninitialarabic = 0xfeb3;\n  t.seenmedialarabic = 0xfeb4;\n  t.segol = 0x05b6;\n  t.segol13 = 0x05b6;\n  t.segol1f = 0x05b6;\n  t.segol2c = 0x05b6;\n  t.segolhebrew = 0x05b6;\n  t.segolnarrowhebrew = 0x05b6;\n  t.segolquarterhebrew = 0x05b6;\n  t.segoltahebrew = 0x0592;\n  t.segolwidehebrew = 0x05b6;\n  t.seharmenian = 0x057d;\n  t.sehiragana = 0x305b;\n  t.sekatakana = 0x30bb;\n  t.sekatakanahalfwidth = 0xff7e;\n  t.semicolon = 0x003b;\n  t.semicolonarabic = 0x061b;\n  t.semicolonmonospace = 0xff1b;\n  t.semicolonsmall = 0xfe54;\n  t.semivoicedmarkkana = 0x309c;\n  t.semivoicedmarkkanahalfwidth = 0xff9f;\n  t.sentisquare = 0x3322;\n  t.sentosquare = 0x3323;\n  t.seven = 0x0037;\n  t.sevenarabic = 0x0667;\n  t.sevenbengali = 0x09ed;\n  t.sevencircle = 0x2466;\n  t.sevencircleinversesansserif = 0x2790;\n  t.sevendeva = 0x096d;\n  t.seveneighths = 0x215e;\n  t.sevengujarati = 0x0aed;\n  t.sevengurmukhi = 0x0a6d;\n  t.sevenhackarabic = 0x0667;\n  t.sevenhangzhou = 0x3027;\n  t.sevenideographicparen = 0x3226;\n  t.seveninferior = 0x2087;\n  t.sevenmonospace = 0xff17;\n  t.sevenoldstyle = 0xf737;\n  t.sevenparen = 0x247a;\n  t.sevenperiod = 0x248e;\n  t.sevenpersian = 0x06f7;\n  t.sevenroman = 0x2176;\n  t.sevensuperior = 0x2077;\n  t.seventeencircle = 0x2470;\n  t.seventeenparen = 0x2484;\n  t.seventeenperiod = 0x2498;\n  t.seventhai = 0x0e57;\n  t.sfthyphen = 0x00ad;\n  t.shaarmenian = 0x0577;\n  t.shabengali = 0x09b6;\n  t.shacyrillic = 0x0448;\n  t.shaddaarabic = 0x0651;\n  t.shaddadammaarabic = 0xfc61;\n  t.shaddadammatanarabic = 0xfc5e;\n  t.shaddafathaarabic = 0xfc60;\n  t.shaddakasraarabic = 0xfc62;\n  t.shaddakasratanarabic = 0xfc5f;\n  t.shade = 0x2592;\n  t.shadedark = 0x2593;\n  t.shadelight = 0x2591;\n  t.shademedium = 0x2592;\n  t.shadeva = 0x0936;\n  t.shagujarati = 0x0ab6;\n  t.shagurmukhi = 0x0a36;\n  t.shalshelethebrew = 0x0593;\n  t.shbopomofo = 0x3115;\n  t.shchacyrillic = 0x0449;\n  t.sheenarabic = 0x0634;\n  t.sheenfinalarabic = 0xfeb6;\n  t.sheeninitialarabic = 0xfeb7;\n  t.sheenmedialarabic = 0xfeb8;\n  t.sheicoptic = 0x03e3;\n  t.sheqel = 0x20aa;\n  t.sheqelhebrew = 0x20aa;\n  t.sheva = 0x05b0;\n  t.sheva115 = 0x05b0;\n  t.sheva15 = 0x05b0;\n  t.sheva22 = 0x05b0;\n  t.sheva2e = 0x05b0;\n  t.shevahebrew = 0x05b0;\n  t.shevanarrowhebrew = 0x05b0;\n  t.shevaquarterhebrew = 0x05b0;\n  t.shevawidehebrew = 0x05b0;\n  t.shhacyrillic = 0x04bb;\n  t.shimacoptic = 0x03ed;\n  t.shin = 0x05e9;\n  t.shindagesh = 0xfb49;\n  t.shindageshhebrew = 0xfb49;\n  t.shindageshshindot = 0xfb2c;\n  t.shindageshshindothebrew = 0xfb2c;\n  t.shindageshsindot = 0xfb2d;\n  t.shindageshsindothebrew = 0xfb2d;\n  t.shindothebrew = 0x05c1;\n  t.shinhebrew = 0x05e9;\n  t.shinshindot = 0xfb2a;\n  t.shinshindothebrew = 0xfb2a;\n  t.shinsindot = 0xfb2b;\n  t.shinsindothebrew = 0xfb2b;\n  t.shook = 0x0282;\n  t.sigma = 0x03c3;\n  t.sigma1 = 0x03c2;\n  t.sigmafinal = 0x03c2;\n  t.sigmalunatesymbolgreek = 0x03f2;\n  t.sihiragana = 0x3057;\n  t.sikatakana = 0x30b7;\n  t.sikatakanahalfwidth = 0xff7c;\n  t.siluqhebrew = 0x05bd;\n  t.siluqlefthebrew = 0x05bd;\n  t.similar = 0x223c;\n  t.sindothebrew = 0x05c2;\n  t.siosacirclekorean = 0x3274;\n  t.siosaparenkorean = 0x3214;\n  t.sioscieuckorean = 0x317e;\n  t.sioscirclekorean = 0x3266;\n  t.sioskiyeokkorean = 0x317a;\n  t.sioskorean = 0x3145;\n  t.siosnieunkorean = 0x317b;\n  t.siosparenkorean = 0x3206;\n  t.siospieupkorean = 0x317d;\n  t.siostikeutkorean = 0x317c;\n  t.six = 0x0036;\n  t.sixarabic = 0x0666;\n  t.sixbengali = 0x09ec;\n  t.sixcircle = 0x2465;\n  t.sixcircleinversesansserif = 0x278f;\n  t.sixdeva = 0x096c;\n  t.sixgujarati = 0x0aec;\n  t.sixgurmukhi = 0x0a6c;\n  t.sixhackarabic = 0x0666;\n  t.sixhangzhou = 0x3026;\n  t.sixideographicparen = 0x3225;\n  t.sixinferior = 0x2086;\n  t.sixmonospace = 0xff16;\n  t.sixoldstyle = 0xf736;\n  t.sixparen = 0x2479;\n  t.sixperiod = 0x248d;\n  t.sixpersian = 0x06f6;\n  t.sixroman = 0x2175;\n  t.sixsuperior = 0x2076;\n  t.sixteencircle = 0x246f;\n  t.sixteencurrencydenominatorbengali = 0x09f9;\n  t.sixteenparen = 0x2483;\n  t.sixteenperiod = 0x2497;\n  t.sixthai = 0x0e56;\n  t.slash = 0x002f;\n  t.slashmonospace = 0xff0f;\n  t.slong = 0x017f;\n  t.slongdotaccent = 0x1e9b;\n  t.smileface = 0x263a;\n  t.smonospace = 0xff53;\n  t.sofpasuqhebrew = 0x05c3;\n  t.softhyphen = 0x00ad;\n  t.softsigncyrillic = 0x044c;\n  t.sohiragana = 0x305d;\n  t.sokatakana = 0x30bd;\n  t.sokatakanahalfwidth = 0xff7f;\n  t.soliduslongoverlaycmb = 0x0338;\n  t.solidusshortoverlaycmb = 0x0337;\n  t.sorusithai = 0x0e29;\n  t.sosalathai = 0x0e28;\n  t.sosothai = 0x0e0b;\n  t.sosuathai = 0x0e2a;\n  t.space = 0x0020;\n  t.spacehackarabic = 0x0020;\n  t.spade = 0x2660;\n  t.spadesuitblack = 0x2660;\n  t.spadesuitwhite = 0x2664;\n  t.sparen = 0x24ae;\n  t.squarebelowcmb = 0x033b;\n  t.squarecc = 0x33c4;\n  t.squarecm = 0x339d;\n  t.squarediagonalcrosshatchfill = 0x25a9;\n  t.squarehorizontalfill = 0x25a4;\n  t.squarekg = 0x338f;\n  t.squarekm = 0x339e;\n  t.squarekmcapital = 0x33ce;\n  t.squareln = 0x33d1;\n  t.squarelog = 0x33d2;\n  t.squaremg = 0x338e;\n  t.squaremil = 0x33d5;\n  t.squaremm = 0x339c;\n  t.squaremsquared = 0x33a1;\n  t.squareorthogonalcrosshatchfill = 0x25a6;\n  t.squareupperlefttolowerrightfill = 0x25a7;\n  t.squareupperrighttolowerleftfill = 0x25a8;\n  t.squareverticalfill = 0x25a5;\n  t.squarewhitewithsmallblack = 0x25a3;\n  t.srsquare = 0x33db;\n  t.ssabengali = 0x09b7;\n  t.ssadeva = 0x0937;\n  t.ssagujarati = 0x0ab7;\n  t.ssangcieuckorean = 0x3149;\n  t.ssanghieuhkorean = 0x3185;\n  t.ssangieungkorean = 0x3180;\n  t.ssangkiyeokkorean = 0x3132;\n  t.ssangnieunkorean = 0x3165;\n  t.ssangpieupkorean = 0x3143;\n  t.ssangsioskorean = 0x3146;\n  t.ssangtikeutkorean = 0x3138;\n  t.ssuperior = 0xf6f2;\n  t.sterling = 0x00a3;\n  t.sterlingmonospace = 0xffe1;\n  t.strokelongoverlaycmb = 0x0336;\n  t.strokeshortoverlaycmb = 0x0335;\n  t.subset = 0x2282;\n  t.subsetnotequal = 0x228a;\n  t.subsetorequal = 0x2286;\n  t.succeeds = 0x227b;\n  t.suchthat = 0x220b;\n  t.suhiragana = 0x3059;\n  t.sukatakana = 0x30b9;\n  t.sukatakanahalfwidth = 0xff7d;\n  t.sukunarabic = 0x0652;\n  t.summation = 0x2211;\n  t.sun = 0x263c;\n  t.superset = 0x2283;\n  t.supersetnotequal = 0x228b;\n  t.supersetorequal = 0x2287;\n  t.svsquare = 0x33dc;\n  t.syouwaerasquare = 0x337c;\n  t.t = 0x0074;\n  t.tabengali = 0x09a4;\n  t.tackdown = 0x22a4;\n  t.tackleft = 0x22a3;\n  t.tadeva = 0x0924;\n  t.tagujarati = 0x0aa4;\n  t.tagurmukhi = 0x0a24;\n  t.taharabic = 0x0637;\n  t.tahfinalarabic = 0xfec2;\n  t.tahinitialarabic = 0xfec3;\n  t.tahiragana = 0x305f;\n  t.tahmedialarabic = 0xfec4;\n  t.taisyouerasquare = 0x337d;\n  t.takatakana = 0x30bf;\n  t.takatakanahalfwidth = 0xff80;\n  t.tatweelarabic = 0x0640;\n  t.tau = 0x03c4;\n  t.tav = 0x05ea;\n  t.tavdages = 0xfb4a;\n  t.tavdagesh = 0xfb4a;\n  t.tavdageshhebrew = 0xfb4a;\n  t.tavhebrew = 0x05ea;\n  t.tbar = 0x0167;\n  t.tbopomofo = 0x310a;\n  t.tcaron = 0x0165;\n  t.tccurl = 0x02a8;\n  t.tcedilla = 0x0163;\n  t.tcheharabic = 0x0686;\n  t.tchehfinalarabic = 0xfb7b;\n  t.tchehinitialarabic = 0xfb7c;\n  t.tchehmedialarabic = 0xfb7d;\n  t.tcircle = 0x24e3;\n  t.tcircumflexbelow = 0x1e71;\n  t.tcommaaccent = 0x0163;\n  t.tdieresis = 0x1e97;\n  t.tdotaccent = 0x1e6b;\n  t.tdotbelow = 0x1e6d;\n  t.tecyrillic = 0x0442;\n  t.tedescendercyrillic = 0x04ad;\n  t.teharabic = 0x062a;\n  t.tehfinalarabic = 0xfe96;\n  t.tehhahinitialarabic = 0xfca2;\n  t.tehhahisolatedarabic = 0xfc0c;\n  t.tehinitialarabic = 0xfe97;\n  t.tehiragana = 0x3066;\n  t.tehjeeminitialarabic = 0xfca1;\n  t.tehjeemisolatedarabic = 0xfc0b;\n  t.tehmarbutaarabic = 0x0629;\n  t.tehmarbutafinalarabic = 0xfe94;\n  t.tehmedialarabic = 0xfe98;\n  t.tehmeeminitialarabic = 0xfca4;\n  t.tehmeemisolatedarabic = 0xfc0e;\n  t.tehnoonfinalarabic = 0xfc73;\n  t.tekatakana = 0x30c6;\n  t.tekatakanahalfwidth = 0xff83;\n  t.telephone = 0x2121;\n  t.telephoneblack = 0x260e;\n  t.telishagedolahebrew = 0x05a0;\n  t.telishaqetanahebrew = 0x05a9;\n  t.tencircle = 0x2469;\n  t.tenideographicparen = 0x3229;\n  t.tenparen = 0x247d;\n  t.tenperiod = 0x2491;\n  t.tenroman = 0x2179;\n  t.tesh = 0x02a7;\n  t.tet = 0x05d8;\n  t.tetdagesh = 0xfb38;\n  t.tetdageshhebrew = 0xfb38;\n  t.tethebrew = 0x05d8;\n  t.tetsecyrillic = 0x04b5;\n  t.tevirhebrew = 0x059b;\n  t.tevirlefthebrew = 0x059b;\n  t.thabengali = 0x09a5;\n  t.thadeva = 0x0925;\n  t.thagujarati = 0x0aa5;\n  t.thagurmukhi = 0x0a25;\n  t.thalarabic = 0x0630;\n  t.thalfinalarabic = 0xfeac;\n  t.thanthakhatlowleftthai = 0xf898;\n  t.thanthakhatlowrightthai = 0xf897;\n  t.thanthakhatthai = 0x0e4c;\n  t.thanthakhatupperleftthai = 0xf896;\n  t.theharabic = 0x062b;\n  t.thehfinalarabic = 0xfe9a;\n  t.thehinitialarabic = 0xfe9b;\n  t.thehmedialarabic = 0xfe9c;\n  t.thereexists = 0x2203;\n  t.therefore = 0x2234;\n  t.theta = 0x03b8;\n  t.theta1 = 0x03d1;\n  t.thetasymbolgreek = 0x03d1;\n  t.thieuthacirclekorean = 0x3279;\n  t.thieuthaparenkorean = 0x3219;\n  t.thieuthcirclekorean = 0x326b;\n  t.thieuthkorean = 0x314c;\n  t.thieuthparenkorean = 0x320b;\n  t.thirteencircle = 0x246c;\n  t.thirteenparen = 0x2480;\n  t.thirteenperiod = 0x2494;\n  t.thonangmonthothai = 0x0e11;\n  t.thook = 0x01ad;\n  t.thophuthaothai = 0x0e12;\n  t.thorn = 0x00fe;\n  t.thothahanthai = 0x0e17;\n  t.thothanthai = 0x0e10;\n  t.thothongthai = 0x0e18;\n  t.thothungthai = 0x0e16;\n  t.thousandcyrillic = 0x0482;\n  t.thousandsseparatorarabic = 0x066c;\n  t.thousandsseparatorpersian = 0x066c;\n  t.three = 0x0033;\n  t.threearabic = 0x0663;\n  t.threebengali = 0x09e9;\n  t.threecircle = 0x2462;\n  t.threecircleinversesansserif = 0x278c;\n  t.threedeva = 0x0969;\n  t.threeeighths = 0x215c;\n  t.threegujarati = 0x0ae9;\n  t.threegurmukhi = 0x0a69;\n  t.threehackarabic = 0x0663;\n  t.threehangzhou = 0x3023;\n  t.threeideographicparen = 0x3222;\n  t.threeinferior = 0x2083;\n  t.threemonospace = 0xff13;\n  t.threenumeratorbengali = 0x09f6;\n  t.threeoldstyle = 0xf733;\n  t.threeparen = 0x2476;\n  t.threeperiod = 0x248a;\n  t.threepersian = 0x06f3;\n  t.threequarters = 0x00be;\n  t.threequartersemdash = 0xf6de;\n  t.threeroman = 0x2172;\n  t.threesuperior = 0x00b3;\n  t.threethai = 0x0e53;\n  t.thzsquare = 0x3394;\n  t.tihiragana = 0x3061;\n  t.tikatakana = 0x30c1;\n  t.tikatakanahalfwidth = 0xff81;\n  t.tikeutacirclekorean = 0x3270;\n  t.tikeutaparenkorean = 0x3210;\n  t.tikeutcirclekorean = 0x3262;\n  t.tikeutkorean = 0x3137;\n  t.tikeutparenkorean = 0x3202;\n  t.tilde = 0x02dc;\n  t.tildebelowcmb = 0x0330;\n  t.tildecmb = 0x0303;\n  t.tildecomb = 0x0303;\n  t.tildedoublecmb = 0x0360;\n  t.tildeoperator = 0x223c;\n  t.tildeoverlaycmb = 0x0334;\n  t.tildeverticalcmb = 0x033e;\n  t.timescircle = 0x2297;\n  t.tipehahebrew = 0x0596;\n  t.tipehalefthebrew = 0x0596;\n  t.tippigurmukhi = 0x0a70;\n  t.titlocyrilliccmb = 0x0483;\n  t.tiwnarmenian = 0x057f;\n  t.tlinebelow = 0x1e6f;\n  t.tmonospace = 0xff54;\n  t.toarmenian = 0x0569;\n  t.tohiragana = 0x3068;\n  t.tokatakana = 0x30c8;\n  t.tokatakanahalfwidth = 0xff84;\n  t.tonebarextrahighmod = 0x02e5;\n  t.tonebarextralowmod = 0x02e9;\n  t.tonebarhighmod = 0x02e6;\n  t.tonebarlowmod = 0x02e8;\n  t.tonebarmidmod = 0x02e7;\n  t.tonefive = 0x01bd;\n  t.tonesix = 0x0185;\n  t.tonetwo = 0x01a8;\n  t.tonos = 0x0384;\n  t.tonsquare = 0x3327;\n  t.topatakthai = 0x0e0f;\n  t.tortoiseshellbracketleft = 0x3014;\n  t.tortoiseshellbracketleftsmall = 0xfe5d;\n  t.tortoiseshellbracketleftvertical = 0xfe39;\n  t.tortoiseshellbracketright = 0x3015;\n  t.tortoiseshellbracketrightsmall = 0xfe5e;\n  t.tortoiseshellbracketrightvertical = 0xfe3a;\n  t.totaothai = 0x0e15;\n  t.tpalatalhook = 0x01ab;\n  t.tparen = 0x24af;\n  t.trademark = 0x2122;\n  t.trademarksans = 0xf8ea;\n  t.trademarkserif = 0xf6db;\n  t.tretroflexhook = 0x0288;\n  t.triagdn = 0x25bc;\n  t.triaglf = 0x25c4;\n  t.triagrt = 0x25ba;\n  t.triagup = 0x25b2;\n  t.ts = 0x02a6;\n  t.tsadi = 0x05e6;\n  t.tsadidagesh = 0xfb46;\n  t.tsadidageshhebrew = 0xfb46;\n  t.tsadihebrew = 0x05e6;\n  t.tsecyrillic = 0x0446;\n  t.tsere = 0x05b5;\n  t.tsere12 = 0x05b5;\n  t.tsere1e = 0x05b5;\n  t.tsere2b = 0x05b5;\n  t.tserehebrew = 0x05b5;\n  t.tserenarrowhebrew = 0x05b5;\n  t.tserequarterhebrew = 0x05b5;\n  t.tserewidehebrew = 0x05b5;\n  t.tshecyrillic = 0x045b;\n  t.tsuperior = 0xf6f3;\n  t.ttabengali = 0x099f;\n  t.ttadeva = 0x091f;\n  t.ttagujarati = 0x0a9f;\n  t.ttagurmukhi = 0x0a1f;\n  t.tteharabic = 0x0679;\n  t.ttehfinalarabic = 0xfb67;\n  t.ttehinitialarabic = 0xfb68;\n  t.ttehmedialarabic = 0xfb69;\n  t.tthabengali = 0x09a0;\n  t.tthadeva = 0x0920;\n  t.tthagujarati = 0x0aa0;\n  t.tthagurmukhi = 0x0a20;\n  t.tturned = 0x0287;\n  t.tuhiragana = 0x3064;\n  t.tukatakana = 0x30c4;\n  t.tukatakanahalfwidth = 0xff82;\n  t.tusmallhiragana = 0x3063;\n  t.tusmallkatakana = 0x30c3;\n  t.tusmallkatakanahalfwidth = 0xff6f;\n  t.twelvecircle = 0x246b;\n  t.twelveparen = 0x247f;\n  t.twelveperiod = 0x2493;\n  t.twelveroman = 0x217b;\n  t.twentycircle = 0x2473;\n  t.twentyhangzhou = 0x5344;\n  t.twentyparen = 0x2487;\n  t.twentyperiod = 0x249b;\n  t.two = 0x0032;\n  t.twoarabic = 0x0662;\n  t.twobengali = 0x09e8;\n  t.twocircle = 0x2461;\n  t.twocircleinversesansserif = 0x278b;\n  t.twodeva = 0x0968;\n  t.twodotenleader = 0x2025;\n  t.twodotleader = 0x2025;\n  t.twodotleadervertical = 0xfe30;\n  t.twogujarati = 0x0ae8;\n  t.twogurmukhi = 0x0a68;\n  t.twohackarabic = 0x0662;\n  t.twohangzhou = 0x3022;\n  t.twoideographicparen = 0x3221;\n  t.twoinferior = 0x2082;\n  t.twomonospace = 0xff12;\n  t.twonumeratorbengali = 0x09f5;\n  t.twooldstyle = 0xf732;\n  t.twoparen = 0x2475;\n  t.twoperiod = 0x2489;\n  t.twopersian = 0x06f2;\n  t.tworoman = 0x2171;\n  t.twostroke = 0x01bb;\n  t.twosuperior = 0x00b2;\n  t.twothai = 0x0e52;\n  t.twothirds = 0x2154;\n  t.u = 0x0075;\n  t.uacute = 0x00fa;\n  t.ubar = 0x0289;\n  t.ubengali = 0x0989;\n  t.ubopomofo = 0x3128;\n  t.ubreve = 0x016d;\n  t.ucaron = 0x01d4;\n  t.ucircle = 0x24e4;\n  t.ucircumflex = 0x00fb;\n  t.ucircumflexbelow = 0x1e77;\n  t.ucyrillic = 0x0443;\n  t.udattadeva = 0x0951;\n  t.udblacute = 0x0171;\n  t.udblgrave = 0x0215;\n  t.udeva = 0x0909;\n  t.udieresis = 0x00fc;\n  t.udieresisacute = 0x01d8;\n  t.udieresisbelow = 0x1e73;\n  t.udieresiscaron = 0x01da;\n  t.udieresiscyrillic = 0x04f1;\n  t.udieresisgrave = 0x01dc;\n  t.udieresismacron = 0x01d6;\n  t.udotbelow = 0x1ee5;\n  t.ugrave = 0x00f9;\n  t.ugujarati = 0x0a89;\n  t.ugurmukhi = 0x0a09;\n  t.uhiragana = 0x3046;\n  t.uhookabove = 0x1ee7;\n  t.uhorn = 0x01b0;\n  t.uhornacute = 0x1ee9;\n  t.uhorndotbelow = 0x1ef1;\n  t.uhorngrave = 0x1eeb;\n  t.uhornhookabove = 0x1eed;\n  t.uhorntilde = 0x1eef;\n  t.uhungarumlaut = 0x0171;\n  t.uhungarumlautcyrillic = 0x04f3;\n  t.uinvertedbreve = 0x0217;\n  t.ukatakana = 0x30a6;\n  t.ukatakanahalfwidth = 0xff73;\n  t.ukcyrillic = 0x0479;\n  t.ukorean = 0x315c;\n  t.umacron = 0x016b;\n  t.umacroncyrillic = 0x04ef;\n  t.umacrondieresis = 0x1e7b;\n  t.umatragurmukhi = 0x0a41;\n  t.umonospace = 0xff55;\n  t.underscore = 0x005f;\n  t.underscoredbl = 0x2017;\n  t.underscoremonospace = 0xff3f;\n  t.underscorevertical = 0xfe33;\n  t.underscorewavy = 0xfe4f;\n  t.union = 0x222a;\n  t.universal = 0x2200;\n  t.uogonek = 0x0173;\n  t.uparen = 0x24b0;\n  t.upblock = 0x2580;\n  t.upperdothebrew = 0x05c4;\n  t.upsilon = 0x03c5;\n  t.upsilondieresis = 0x03cb;\n  t.upsilondieresistonos = 0x03b0;\n  t.upsilonlatin = 0x028a;\n  t.upsilontonos = 0x03cd;\n  t.uptackbelowcmb = 0x031d;\n  t.uptackmod = 0x02d4;\n  t.uragurmukhi = 0x0a73;\n  t.uring = 0x016f;\n  t.ushortcyrillic = 0x045e;\n  t.usmallhiragana = 0x3045;\n  t.usmallkatakana = 0x30a5;\n  t.usmallkatakanahalfwidth = 0xff69;\n  t.ustraightcyrillic = 0x04af;\n  t.ustraightstrokecyrillic = 0x04b1;\n  t.utilde = 0x0169;\n  t.utildeacute = 0x1e79;\n  t.utildebelow = 0x1e75;\n  t.uubengali = 0x098a;\n  t.uudeva = 0x090a;\n  t.uugujarati = 0x0a8a;\n  t.uugurmukhi = 0x0a0a;\n  t.uumatragurmukhi = 0x0a42;\n  t.uuvowelsignbengali = 0x09c2;\n  t.uuvowelsigndeva = 0x0942;\n  t.uuvowelsigngujarati = 0x0ac2;\n  t.uvowelsignbengali = 0x09c1;\n  t.uvowelsigndeva = 0x0941;\n  t.uvowelsigngujarati = 0x0ac1;\n  t.v = 0x0076;\n  t.vadeva = 0x0935;\n  t.vagujarati = 0x0ab5;\n  t.vagurmukhi = 0x0a35;\n  t.vakatakana = 0x30f7;\n  t.vav = 0x05d5;\n  t.vavdagesh = 0xfb35;\n  t.vavdagesh65 = 0xfb35;\n  t.vavdageshhebrew = 0xfb35;\n  t.vavhebrew = 0x05d5;\n  t.vavholam = 0xfb4b;\n  t.vavholamhebrew = 0xfb4b;\n  t.vavvavhebrew = 0x05f0;\n  t.vavyodhebrew = 0x05f1;\n  t.vcircle = 0x24e5;\n  t.vdotbelow = 0x1e7f;\n  t.vecyrillic = 0x0432;\n  t.veharabic = 0x06a4;\n  t.vehfinalarabic = 0xfb6b;\n  t.vehinitialarabic = 0xfb6c;\n  t.vehmedialarabic = 0xfb6d;\n  t.vekatakana = 0x30f9;\n  t.venus = 0x2640;\n  t.verticalbar = 0x007c;\n  t.verticallineabovecmb = 0x030d;\n  t.verticallinebelowcmb = 0x0329;\n  t.verticallinelowmod = 0x02cc;\n  t.verticallinemod = 0x02c8;\n  t.vewarmenian = 0x057e;\n  t.vhook = 0x028b;\n  t.vikatakana = 0x30f8;\n  t.viramabengali = 0x09cd;\n  t.viramadeva = 0x094d;\n  t.viramagujarati = 0x0acd;\n  t.visargabengali = 0x0983;\n  t.visargadeva = 0x0903;\n  t.visargagujarati = 0x0a83;\n  t.vmonospace = 0xff56;\n  t.voarmenian = 0x0578;\n  t.voicediterationhiragana = 0x309e;\n  t.voicediterationkatakana = 0x30fe;\n  t.voicedmarkkana = 0x309b;\n  t.voicedmarkkanahalfwidth = 0xff9e;\n  t.vokatakana = 0x30fa;\n  t.vparen = 0x24b1;\n  t.vtilde = 0x1e7d;\n  t.vturned = 0x028c;\n  t.vuhiragana = 0x3094;\n  t.vukatakana = 0x30f4;\n  t.w = 0x0077;\n  t.wacute = 0x1e83;\n  t.waekorean = 0x3159;\n  t.wahiragana = 0x308f;\n  t.wakatakana = 0x30ef;\n  t.wakatakanahalfwidth = 0xff9c;\n  t.wakorean = 0x3158;\n  t.wasmallhiragana = 0x308e;\n  t.wasmallkatakana = 0x30ee;\n  t.wattosquare = 0x3357;\n  t.wavedash = 0x301c;\n  t.wavyunderscorevertical = 0xfe34;\n  t.wawarabic = 0x0648;\n  t.wawfinalarabic = 0xfeee;\n  t.wawhamzaabovearabic = 0x0624;\n  t.wawhamzaabovefinalarabic = 0xfe86;\n  t.wbsquare = 0x33dd;\n  t.wcircle = 0x24e6;\n  t.wcircumflex = 0x0175;\n  t.wdieresis = 0x1e85;\n  t.wdotaccent = 0x1e87;\n  t.wdotbelow = 0x1e89;\n  t.wehiragana = 0x3091;\n  t.weierstrass = 0x2118;\n  t.wekatakana = 0x30f1;\n  t.wekorean = 0x315e;\n  t.weokorean = 0x315d;\n  t.wgrave = 0x1e81;\n  t.whitebullet = 0x25e6;\n  t.whitecircle = 0x25cb;\n  t.whitecircleinverse = 0x25d9;\n  t.whitecornerbracketleft = 0x300e;\n  t.whitecornerbracketleftvertical = 0xfe43;\n  t.whitecornerbracketright = 0x300f;\n  t.whitecornerbracketrightvertical = 0xfe44;\n  t.whitediamond = 0x25c7;\n  t.whitediamondcontainingblacksmalldiamond = 0x25c8;\n  t.whitedownpointingsmalltriangle = 0x25bf;\n  t.whitedownpointingtriangle = 0x25bd;\n  t.whiteleftpointingsmalltriangle = 0x25c3;\n  t.whiteleftpointingtriangle = 0x25c1;\n  t.whitelenticularbracketleft = 0x3016;\n  t.whitelenticularbracketright = 0x3017;\n  t.whiterightpointingsmalltriangle = 0x25b9;\n  t.whiterightpointingtriangle = 0x25b7;\n  t.whitesmallsquare = 0x25ab;\n  t.whitesmilingface = 0x263a;\n  t.whitesquare = 0x25a1;\n  t.whitestar = 0x2606;\n  t.whitetelephone = 0x260f;\n  t.whitetortoiseshellbracketleft = 0x3018;\n  t.whitetortoiseshellbracketright = 0x3019;\n  t.whiteuppointingsmalltriangle = 0x25b5;\n  t.whiteuppointingtriangle = 0x25b3;\n  t.wihiragana = 0x3090;\n  t.wikatakana = 0x30f0;\n  t.wikorean = 0x315f;\n  t.wmonospace = 0xff57;\n  t.wohiragana = 0x3092;\n  t.wokatakana = 0x30f2;\n  t.wokatakanahalfwidth = 0xff66;\n  t.won = 0x20a9;\n  t.wonmonospace = 0xffe6;\n  t.wowaenthai = 0x0e27;\n  t.wparen = 0x24b2;\n  t.wring = 0x1e98;\n  t.wsuperior = 0x02b7;\n  t.wturned = 0x028d;\n  t.wynn = 0x01bf;\n  t.x = 0x0078;\n  t.xabovecmb = 0x033d;\n  t.xbopomofo = 0x3112;\n  t.xcircle = 0x24e7;\n  t.xdieresis = 0x1e8d;\n  t.xdotaccent = 0x1e8b;\n  t.xeharmenian = 0x056d;\n  t.xi = 0x03be;\n  t.xmonospace = 0xff58;\n  t.xparen = 0x24b3;\n  t.xsuperior = 0x02e3;\n  t.y = 0x0079;\n  t.yaadosquare = 0x334e;\n  t.yabengali = 0x09af;\n  t.yacute = 0x00fd;\n  t.yadeva = 0x092f;\n  t.yaekorean = 0x3152;\n  t.yagujarati = 0x0aaf;\n  t.yagurmukhi = 0x0a2f;\n  t.yahiragana = 0x3084;\n  t.yakatakana = 0x30e4;\n  t.yakatakanahalfwidth = 0xff94;\n  t.yakorean = 0x3151;\n  t.yamakkanthai = 0x0e4e;\n  t.yasmallhiragana = 0x3083;\n  t.yasmallkatakana = 0x30e3;\n  t.yasmallkatakanahalfwidth = 0xff6c;\n  t.yatcyrillic = 0x0463;\n  t.ycircle = 0x24e8;\n  t.ycircumflex = 0x0177;\n  t.ydieresis = 0x00ff;\n  t.ydotaccent = 0x1e8f;\n  t.ydotbelow = 0x1ef5;\n  t.yeharabic = 0x064a;\n  t.yehbarreearabic = 0x06d2;\n  t.yehbarreefinalarabic = 0xfbaf;\n  t.yehfinalarabic = 0xfef2;\n  t.yehhamzaabovearabic = 0x0626;\n  t.yehhamzaabovefinalarabic = 0xfe8a;\n  t.yehhamzaaboveinitialarabic = 0xfe8b;\n  t.yehhamzaabovemedialarabic = 0xfe8c;\n  t.yehinitialarabic = 0xfef3;\n  t.yehmedialarabic = 0xfef4;\n  t.yehmeeminitialarabic = 0xfcdd;\n  t.yehmeemisolatedarabic = 0xfc58;\n  t.yehnoonfinalarabic = 0xfc94;\n  t.yehthreedotsbelowarabic = 0x06d1;\n  t.yekorean = 0x3156;\n  t.yen = 0x00a5;\n  t.yenmonospace = 0xffe5;\n  t.yeokorean = 0x3155;\n  t.yeorinhieuhkorean = 0x3186;\n  t.yerahbenyomohebrew = 0x05aa;\n  t.yerahbenyomolefthebrew = 0x05aa;\n  t.yericyrillic = 0x044b;\n  t.yerudieresiscyrillic = 0x04f9;\n  t.yesieungkorean = 0x3181;\n  t.yesieungpansioskorean = 0x3183;\n  t.yesieungsioskorean = 0x3182;\n  t.yetivhebrew = 0x059a;\n  t.ygrave = 0x1ef3;\n  t.yhook = 0x01b4;\n  t.yhookabove = 0x1ef7;\n  t.yiarmenian = 0x0575;\n  t.yicyrillic = 0x0457;\n  t.yikorean = 0x3162;\n  t.yinyang = 0x262f;\n  t.yiwnarmenian = 0x0582;\n  t.ymonospace = 0xff59;\n  t.yod = 0x05d9;\n  t.yoddagesh = 0xfb39;\n  t.yoddageshhebrew = 0xfb39;\n  t.yodhebrew = 0x05d9;\n  t.yodyodhebrew = 0x05f2;\n  t.yodyodpatahhebrew = 0xfb1f;\n  t.yohiragana = 0x3088;\n  t.yoikorean = 0x3189;\n  t.yokatakana = 0x30e8;\n  t.yokatakanahalfwidth = 0xff96;\n  t.yokorean = 0x315b;\n  t.yosmallhiragana = 0x3087;\n  t.yosmallkatakana = 0x30e7;\n  t.yosmallkatakanahalfwidth = 0xff6e;\n  t.yotgreek = 0x03f3;\n  t.yoyaekorean = 0x3188;\n  t.yoyakorean = 0x3187;\n  t.yoyakthai = 0x0e22;\n  t.yoyingthai = 0x0e0d;\n  t.yparen = 0x24b4;\n  t.ypogegrammeni = 0x037a;\n  t.ypogegrammenigreekcmb = 0x0345;\n  t.yr = 0x01a6;\n  t.yring = 0x1e99;\n  t.ysuperior = 0x02b8;\n  t.ytilde = 0x1ef9;\n  t.yturned = 0x028e;\n  t.yuhiragana = 0x3086;\n  t.yuikorean = 0x318c;\n  t.yukatakana = 0x30e6;\n  t.yukatakanahalfwidth = 0xff95;\n  t.yukorean = 0x3160;\n  t.yusbigcyrillic = 0x046b;\n  t.yusbigiotifiedcyrillic = 0x046d;\n  t.yuslittlecyrillic = 0x0467;\n  t.yuslittleiotifiedcyrillic = 0x0469;\n  t.yusmallhiragana = 0x3085;\n  t.yusmallkatakana = 0x30e5;\n  t.yusmallkatakanahalfwidth = 0xff6d;\n  t.yuyekorean = 0x318b;\n  t.yuyeokorean = 0x318a;\n  t.yyabengali = 0x09df;\n  t.yyadeva = 0x095f;\n  t.z = 0x007a;\n  t.zaarmenian = 0x0566;\n  t.zacute = 0x017a;\n  t.zadeva = 0x095b;\n  t.zagurmukhi = 0x0a5b;\n  t.zaharabic = 0x0638;\n  t.zahfinalarabic = 0xfec6;\n  t.zahinitialarabic = 0xfec7;\n  t.zahiragana = 0x3056;\n  t.zahmedialarabic = 0xfec8;\n  t.zainarabic = 0x0632;\n  t.zainfinalarabic = 0xfeb0;\n  t.zakatakana = 0x30b6;\n  t.zaqefgadolhebrew = 0x0595;\n  t.zaqefqatanhebrew = 0x0594;\n  t.zarqahebrew = 0x0598;\n  t.zayin = 0x05d6;\n  t.zayindagesh = 0xfb36;\n  t.zayindageshhebrew = 0xfb36;\n  t.zayinhebrew = 0x05d6;\n  t.zbopomofo = 0x3117;\n  t.zcaron = 0x017e;\n  t.zcircle = 0x24e9;\n  t.zcircumflex = 0x1e91;\n  t.zcurl = 0x0291;\n  t.zdot = 0x017c;\n  t.zdotaccent = 0x017c;\n  t.zdotbelow = 0x1e93;\n  t.zecyrillic = 0x0437;\n  t.zedescendercyrillic = 0x0499;\n  t.zedieresiscyrillic = 0x04df;\n  t.zehiragana = 0x305c;\n  t.zekatakana = 0x30bc;\n  t.zero = 0x0030;\n  t.zeroarabic = 0x0660;\n  t.zerobengali = 0x09e6;\n  t.zerodeva = 0x0966;\n  t.zerogujarati = 0x0ae6;\n  t.zerogurmukhi = 0x0a66;\n  t.zerohackarabic = 0x0660;\n  t.zeroinferior = 0x2080;\n  t.zeromonospace = 0xff10;\n  t.zerooldstyle = 0xf730;\n  t.zeropersian = 0x06f0;\n  t.zerosuperior = 0x2070;\n  t.zerothai = 0x0e50;\n  t.zerowidthjoiner = 0xfeff;\n  t.zerowidthnonjoiner = 0x200c;\n  t.zerowidthspace = 0x200b;\n  t.zeta = 0x03b6;\n  t.zhbopomofo = 0x3113;\n  t.zhearmenian = 0x056a;\n  t.zhebrevecyrillic = 0x04c2;\n  t.zhecyrillic = 0x0436;\n  t.zhedescendercyrillic = 0x0497;\n  t.zhedieresiscyrillic = 0x04dd;\n  t.zihiragana = 0x3058;\n  t.zikatakana = 0x30b8;\n  t.zinorhebrew = 0x05ae;\n  t.zlinebelow = 0x1e95;\n  t.zmonospace = 0xff5a;\n  t.zohiragana = 0x305e;\n  t.zokatakana = 0x30be;\n  t.zparen = 0x24b5;\n  t.zretroflexhook = 0x0290;\n  t.zstroke = 0x01b6;\n  t.zuhiragana = 0x305a;\n  t.zukatakana = 0x30ba;\n  t[\".notdef\"] = 0x0000;\n\n  // TeX-specific glyph names.\n  t.angbracketleftbig = 0x2329;\n  t.angbracketleftBig = 0x2329;\n  t.angbracketleftbigg = 0x2329;\n  t.angbracketleftBigg = 0x2329;\n  t.angbracketrightBig = 0x232a;\n  t.angbracketrightbig = 0x232a;\n  t.angbracketrightBigg = 0x232a;\n  t.angbracketrightbigg = 0x232a;\n  t.arrowhookleft = 0x21aa;\n  t.arrowhookright = 0x21a9;\n  t.arrowlefttophalf = 0x21bc;\n  t.arrowleftbothalf = 0x21bd;\n  t.arrownortheast = 0x2197;\n  t.arrownorthwest = 0x2196;\n  t.arrowrighttophalf = 0x21c0;\n  t.arrowrightbothalf = 0x21c1;\n  t.arrowsoutheast = 0x2198;\n  t.arrowsouthwest = 0x2199;\n  t.backslashbig = 0x2216;\n  t.backslashBig = 0x2216;\n  t.backslashBigg = 0x2216;\n  t.backslashbigg = 0x2216;\n  t.bardbl = 0x2016;\n  t.bracehtipdownleft = 0xfe37;\n  t.bracehtipdownright = 0xfe37;\n  t.bracehtipupleft = 0xfe38;\n  t.bracehtipupright = 0xfe38;\n  t.braceleftBig = 0x007b;\n  t.braceleftbig = 0x007b;\n  t.braceleftbigg = 0x007b;\n  t.braceleftBigg = 0x007b;\n  t.bracerightBig = 0x007d;\n  t.bracerightbig = 0x007d;\n  t.bracerightbigg = 0x007d;\n  t.bracerightBigg = 0x007d;\n  t.bracketleftbig = 0x005b;\n  t.bracketleftBig = 0x005b;\n  t.bracketleftbigg = 0x005b;\n  t.bracketleftBigg = 0x005b;\n  t.bracketrightBig = 0x005d;\n  t.bracketrightbig = 0x005d;\n  t.bracketrightbigg = 0x005d;\n  t.bracketrightBigg = 0x005d;\n  t.ceilingleftbig = 0x2308;\n  t.ceilingleftBig = 0x2308;\n  t.ceilingleftBigg = 0x2308;\n  t.ceilingleftbigg = 0x2308;\n  t.ceilingrightbig = 0x2309;\n  t.ceilingrightBig = 0x2309;\n  t.ceilingrightbigg = 0x2309;\n  t.ceilingrightBigg = 0x2309;\n  t.circledotdisplay = 0x2299;\n  t.circledottext = 0x2299;\n  t.circlemultiplydisplay = 0x2297;\n  t.circlemultiplytext = 0x2297;\n  t.circleplusdisplay = 0x2295;\n  t.circleplustext = 0x2295;\n  t.contintegraldisplay = 0x222e;\n  t.contintegraltext = 0x222e;\n  t.coproductdisplay = 0x2210;\n  t.coproducttext = 0x2210;\n  t.floorleftBig = 0x230a;\n  t.floorleftbig = 0x230a;\n  t.floorleftbigg = 0x230a;\n  t.floorleftBigg = 0x230a;\n  t.floorrightbig = 0x230b;\n  t.floorrightBig = 0x230b;\n  t.floorrightBigg = 0x230b;\n  t.floorrightbigg = 0x230b;\n  t.hatwide = 0x0302;\n  t.hatwider = 0x0302;\n  t.hatwidest = 0x0302;\n  t.intercal = 0x1d40;\n  t.integraldisplay = 0x222b;\n  t.integraltext = 0x222b;\n  t.intersectiondisplay = 0x22c2;\n  t.intersectiontext = 0x22c2;\n  t.logicalanddisplay = 0x2227;\n  t.logicalandtext = 0x2227;\n  t.logicalordisplay = 0x2228;\n  t.logicalortext = 0x2228;\n  t.parenleftBig = 0x0028;\n  t.parenleftbig = 0x0028;\n  t.parenleftBigg = 0x0028;\n  t.parenleftbigg = 0x0028;\n  t.parenrightBig = 0x0029;\n  t.parenrightbig = 0x0029;\n  t.parenrightBigg = 0x0029;\n  t.parenrightbigg = 0x0029;\n  t.prime = 0x2032;\n  t.productdisplay = 0x220f;\n  t.producttext = 0x220f;\n  t.radicalbig = 0x221a;\n  t.radicalBig = 0x221a;\n  t.radicalBigg = 0x221a;\n  t.radicalbigg = 0x221a;\n  t.radicalbt = 0x221a;\n  t.radicaltp = 0x221a;\n  t.radicalvertex = 0x221a;\n  t.slashbig = 0x002f;\n  t.slashBig = 0x002f;\n  t.slashBigg = 0x002f;\n  t.slashbigg = 0x002f;\n  t.summationdisplay = 0x2211;\n  t.summationtext = 0x2211;\n  t.tildewide = 0x02dc;\n  t.tildewider = 0x02dc;\n  t.tildewidest = 0x02dc;\n  t.uniondisplay = 0x22c3;\n  t.unionmultidisplay = 0x228e;\n  t.unionmultitext = 0x228e;\n  t.unionsqdisplay = 0x2294;\n  t.unionsqtext = 0x2294;\n  t.uniontext = 0x22c3;\n  t.vextenddouble = 0x2225;\n  t.vextendsingle = 0x2223;\n});\n\nvar getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) {\n  t.space = 0x0020;\n  t.a1 = 0x2701;\n  t.a2 = 0x2702;\n  t.a202 = 0x2703;\n  t.a3 = 0x2704;\n  t.a4 = 0x260e;\n  t.a5 = 0x2706;\n  t.a119 = 0x2707;\n  t.a118 = 0x2708;\n  t.a117 = 0x2709;\n  t.a11 = 0x261b;\n  t.a12 = 0x261e;\n  t.a13 = 0x270c;\n  t.a14 = 0x270d;\n  t.a15 = 0x270e;\n  t.a16 = 0x270f;\n  t.a105 = 0x2710;\n  t.a17 = 0x2711;\n  t.a18 = 0x2712;\n  t.a19 = 0x2713;\n  t.a20 = 0x2714;\n  t.a21 = 0x2715;\n  t.a22 = 0x2716;\n  t.a23 = 0x2717;\n  t.a24 = 0x2718;\n  t.a25 = 0x2719;\n  t.a26 = 0x271a;\n  t.a27 = 0x271b;\n  t.a28 = 0x271c;\n  t.a6 = 0x271d;\n  t.a7 = 0x271e;\n  t.a8 = 0x271f;\n  t.a9 = 0x2720;\n  t.a10 = 0x2721;\n  t.a29 = 0x2722;\n  t.a30 = 0x2723;\n  t.a31 = 0x2724;\n  t.a32 = 0x2725;\n  t.a33 = 0x2726;\n  t.a34 = 0x2727;\n  t.a35 = 0x2605;\n  t.a36 = 0x2729;\n  t.a37 = 0x272a;\n  t.a38 = 0x272b;\n  t.a39 = 0x272c;\n  t.a40 = 0x272d;\n  t.a41 = 0x272e;\n  t.a42 = 0x272f;\n  t.a43 = 0x2730;\n  t.a44 = 0x2731;\n  t.a45 = 0x2732;\n  t.a46 = 0x2733;\n  t.a47 = 0x2734;\n  t.a48 = 0x2735;\n  t.a49 = 0x2736;\n  t.a50 = 0x2737;\n  t.a51 = 0x2738;\n  t.a52 = 0x2739;\n  t.a53 = 0x273a;\n  t.a54 = 0x273b;\n  t.a55 = 0x273c;\n  t.a56 = 0x273d;\n  t.a57 = 0x273e;\n  t.a58 = 0x273f;\n  t.a59 = 0x2740;\n  t.a60 = 0x2741;\n  t.a61 = 0x2742;\n  t.a62 = 0x2743;\n  t.a63 = 0x2744;\n  t.a64 = 0x2745;\n  t.a65 = 0x2746;\n  t.a66 = 0x2747;\n  t.a67 = 0x2748;\n  t.a68 = 0x2749;\n  t.a69 = 0x274a;\n  t.a70 = 0x274b;\n  t.a71 = 0x25cf;\n  t.a72 = 0x274d;\n  t.a73 = 0x25a0;\n  t.a74 = 0x274f;\n  t.a203 = 0x2750;\n  t.a75 = 0x2751;\n  t.a204 = 0x2752;\n  t.a76 = 0x25b2;\n  t.a77 = 0x25bc;\n  t.a78 = 0x25c6;\n  t.a79 = 0x2756;\n  t.a81 = 0x25d7;\n  t.a82 = 0x2758;\n  t.a83 = 0x2759;\n  t.a84 = 0x275a;\n  t.a97 = 0x275b;\n  t.a98 = 0x275c;\n  t.a99 = 0x275d;\n  t.a100 = 0x275e;\n  t.a101 = 0x2761;\n  t.a102 = 0x2762;\n  t.a103 = 0x2763;\n  t.a104 = 0x2764;\n  t.a106 = 0x2765;\n  t.a107 = 0x2766;\n  t.a108 = 0x2767;\n  t.a112 = 0x2663;\n  t.a111 = 0x2666;\n  t.a110 = 0x2665;\n  t.a109 = 0x2660;\n  t.a120 = 0x2460;\n  t.a121 = 0x2461;\n  t.a122 = 0x2462;\n  t.a123 = 0x2463;\n  t.a124 = 0x2464;\n  t.a125 = 0x2465;\n  t.a126 = 0x2466;\n  t.a127 = 0x2467;\n  t.a128 = 0x2468;\n  t.a129 = 0x2469;\n  t.a130 = 0x2776;\n  t.a131 = 0x2777;\n  t.a132 = 0x2778;\n  t.a133 = 0x2779;\n  t.a134 = 0x277a;\n  t.a135 = 0x277b;\n  t.a136 = 0x277c;\n  t.a137 = 0x277d;\n  t.a138 = 0x277e;\n  t.a139 = 0x277f;\n  t.a140 = 0x2780;\n  t.a141 = 0x2781;\n  t.a142 = 0x2782;\n  t.a143 = 0x2783;\n  t.a144 = 0x2784;\n  t.a145 = 0x2785;\n  t.a146 = 0x2786;\n  t.a147 = 0x2787;\n  t.a148 = 0x2788;\n  t.a149 = 0x2789;\n  t.a150 = 0x278a;\n  t.a151 = 0x278b;\n  t.a152 = 0x278c;\n  t.a153 = 0x278d;\n  t.a154 = 0x278e;\n  t.a155 = 0x278f;\n  t.a156 = 0x2790;\n  t.a157 = 0x2791;\n  t.a158 = 0x2792;\n  t.a159 = 0x2793;\n  t.a160 = 0x2794;\n  t.a161 = 0x2192;\n  t.a163 = 0x2194;\n  t.a164 = 0x2195;\n  t.a196 = 0x2798;\n  t.a165 = 0x2799;\n  t.a192 = 0x279a;\n  t.a166 = 0x279b;\n  t.a167 = 0x279c;\n  t.a168 = 0x279d;\n  t.a169 = 0x279e;\n  t.a170 = 0x279f;\n  t.a171 = 0x27a0;\n  t.a172 = 0x27a1;\n  t.a173 = 0x27a2;\n  t.a162 = 0x27a3;\n  t.a174 = 0x27a4;\n  t.a175 = 0x27a5;\n  t.a176 = 0x27a6;\n  t.a177 = 0x27a7;\n  t.a178 = 0x27a8;\n  t.a179 = 0x27a9;\n  t.a193 = 0x27aa;\n  t.a180 = 0x27ab;\n  t.a199 = 0x27ac;\n  t.a181 = 0x27ad;\n  t.a200 = 0x27ae;\n  t.a182 = 0x27af;\n  t.a201 = 0x27b1;\n  t.a183 = 0x27b2;\n  t.a184 = 0x27b3;\n  t.a197 = 0x27b4;\n  t.a185 = 0x27b5;\n  t.a194 = 0x27b6;\n  t.a198 = 0x27b7;\n  t.a186 = 0x27b8;\n  t.a195 = 0x27b9;\n  t.a187 = 0x27ba;\n  t.a188 = 0x27bb;\n  t.a189 = 0x27bc;\n  t.a190 = 0x27bd;\n  t.a191 = 0x27be;\n  t.a89 = 0x2768; // 0xF8D7\n  t.a90 = 0x2769; // 0xF8D8\n  t.a93 = 0x276a; // 0xF8D9\n  t.a94 = 0x276b; // 0xF8DA\n  t.a91 = 0x276c; // 0xF8DB\n  t.a92 = 0x276d; // 0xF8DC\n  t.a205 = 0x276e; // 0xF8DD\n  t.a85 = 0x276f; // 0xF8DE\n  t.a206 = 0x2770; // 0xF8DF\n  t.a86 = 0x2771; // 0xF8E0\n  t.a87 = 0x2772; // 0xF8E1\n  t.a88 = 0x2773; // 0xF8E2\n  t.a95 = 0x2774; // 0xF8E3\n  t.a96 = 0x2775; // 0xF8E4\n  t[\".notdef\"] = 0x0000;\n});\n\nexports.getGlyphsUnicode = getGlyphsUnicode;\nexports.getDingbatsGlyphsUnicode = getDingbatsGlyphsUnicode;\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint no-var: error */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\n\n/**\n * Hold a map of decoded fonts and of the standard fourteen Type1\n * fonts and their acronyms.\n */\nconst getStdFontMap = getLookupTableFactory(function (t) {\n  t.ArialNarrow = \"Helvetica\";\n  t[\"ArialNarrow-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialNarrow-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialNarrow-Italic\"] = \"Helvetica-Oblique\";\n  t.ArialBlack = \"Helvetica\";\n  t[\"ArialBlack-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialBlack-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialBlack-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Arial-Black\"] = \"Helvetica\";\n  t[\"Arial-Black-Bold\"] = \"Helvetica-Bold\";\n  t[\"Arial-Black-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-Black-Italic\"] = \"Helvetica-Oblique\";\n  t.Arial = \"Helvetica\";\n  t[\"Arial-Bold\"] = \"Helvetica-Bold\";\n  t[\"Arial-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Arial-BoldItalicMT\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-BoldMT\"] = \"Helvetica-Bold\";\n  t[\"Arial-ItalicMT\"] = \"Helvetica-Oblique\";\n  t.ArialMT = \"Helvetica\";\n  t[\"Courier-Bold\"] = \"Courier-Bold\";\n  t[\"Courier-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"Courier-Italic\"] = \"Courier-Oblique\";\n  t.CourierNew = \"Courier\";\n  t[\"CourierNew-Bold\"] = \"Courier-Bold\";\n  t[\"CourierNew-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"CourierNew-Italic\"] = \"Courier-Oblique\";\n  t[\"CourierNewPS-BoldItalicMT\"] = \"Courier-BoldOblique\";\n  t[\"CourierNewPS-BoldMT\"] = \"Courier-Bold\";\n  t[\"CourierNewPS-ItalicMT\"] = \"Courier-Oblique\";\n  t.CourierNewPSMT = \"Courier\";\n  t.Helvetica = \"Helvetica\";\n  t[\"Helvetica-Bold\"] = \"Helvetica-Bold\";\n  t[\"Helvetica-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Helvetica-BoldOblique\"] = \"Helvetica-BoldOblique\";\n  t[\"Helvetica-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Helvetica-Oblique\"] = \"Helvetica-Oblique\";\n  t[\"Symbol-Bold\"] = \"Symbol\";\n  t[\"Symbol-BoldItalic\"] = \"Symbol\";\n  t[\"Symbol-Italic\"] = \"Symbol\";\n  t.TimesNewRoman = \"Times-Roman\";\n  t[\"TimesNewRoman-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRoman-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRoman-Italic\"] = \"Times-Italic\";\n  t.TimesNewRomanPS = \"Times-Roman\";\n  t[\"TimesNewRomanPS-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPS-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPS-BoldItalicMT\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPS-BoldMT\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPS-Italic\"] = \"Times-Italic\";\n  t[\"TimesNewRomanPS-ItalicMT\"] = \"Times-Italic\";\n  t.TimesNewRomanPSMT = \"Times-Roman\";\n  t[\"TimesNewRomanPSMT-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPSMT-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPSMT-Italic\"] = \"Times-Italic\";\n});\n\n/**\n * Holds the map of the non-standard fonts that might be included as\n * a standard fonts without glyph data.\n */\nconst getNonStdFontMap = getLookupTableFactory(function (t) {\n  t.Calibri = \"Helvetica\";\n  t[\"Calibri-Bold\"] = \"Helvetica-Bold\";\n  t[\"Calibri-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Calibri-Italic\"] = \"Helvetica-Oblique\";\n  t.CenturyGothic = \"Helvetica\";\n  t[\"CenturyGothic-Bold\"] = \"Helvetica-Bold\";\n  t[\"CenturyGothic-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"CenturyGothic-Italic\"] = \"Helvetica-Oblique\";\n  t.ComicSansMS = \"Comic Sans MS\";\n  t[\"ComicSansMS-Bold\"] = \"Comic Sans MS-Bold\";\n  t[\"ComicSansMS-BoldItalic\"] = \"Comic Sans MS-BoldItalic\";\n  t[\"ComicSansMS-Italic\"] = \"Comic Sans MS-Italic\";\n  t.LucidaConsole = \"Courier\";\n  t[\"LucidaConsole-Bold\"] = \"Courier-Bold\";\n  t[\"LucidaConsole-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"LucidaConsole-Italic\"] = \"Courier-Oblique\";\n  t[\"LucidaSans-Demi\"] = \"Helvetica-Bold\";\n  t[\"MS-Gothic\"] = \"MS Gothic\";\n  t[\"MS-Gothic-Bold\"] = \"MS Gothic-Bold\";\n  t[\"MS-Gothic-BoldItalic\"] = \"MS Gothic-BoldItalic\";\n  t[\"MS-Gothic-Italic\"] = \"MS Gothic-Italic\";\n  t[\"MS-Mincho\"] = \"MS Mincho\";\n  t[\"MS-Mincho-Bold\"] = \"MS Mincho-Bold\";\n  t[\"MS-Mincho-BoldItalic\"] = \"MS Mincho-BoldItalic\";\n  t[\"MS-Mincho-Italic\"] = \"MS Mincho-Italic\";\n  t[\"MS-PGothic\"] = \"MS PGothic\";\n  t[\"MS-PGothic-Bold\"] = \"MS PGothic-Bold\";\n  t[\"MS-PGothic-BoldItalic\"] = \"MS PGothic-BoldItalic\";\n  t[\"MS-PGothic-Italic\"] = \"MS PGothic-Italic\";\n  t[\"MS-PMincho\"] = \"MS PMincho\";\n  t[\"MS-PMincho-Bold\"] = \"MS PMincho-Bold\";\n  t[\"MS-PMincho-BoldItalic\"] = \"MS PMincho-BoldItalic\";\n  t[\"MS-PMincho-Italic\"] = \"MS PMincho-Italic\";\n  t.NuptialScript = \"Times-Italic\";\n  t.SegoeUISymbol = \"Helvetica\";\n  t.Wingdings = \"ZapfDingbats\";\n  t[\"Wingdings-Regular\"] = \"ZapfDingbats\";\n});\n\nconst getSerifFonts = getLookupTableFactory(function (t) {\n  t[\"Adobe Jenson\"] = true;\n  t[\"Adobe Text\"] = true;\n  t.Albertus = true;\n  t.Aldus = true;\n  t.Alexandria = true;\n  t.Algerian = true;\n  t[\"American Typewriter\"] = true;\n  t.Antiqua = true;\n  t.Apex = true;\n  t.Arno = true;\n  t.Aster = true;\n  t.Aurora = true;\n  t.Baskerville = true;\n  t.Bell = true;\n  t.Bembo = true;\n  t[\"Bembo Schoolbook\"] = true;\n  t.Benguiat = true;\n  t[\"Berkeley Old Style\"] = true;\n  t[\"Bernhard Modern\"] = true;\n  t[\"Berthold City\"] = true;\n  t.Bodoni = true;\n  t[\"Bauer Bodoni\"] = true;\n  t[\"Book Antiqua\"] = true;\n  t.Bookman = true;\n  t[\"Bordeaux Roman\"] = true;\n  t[\"Californian FB\"] = true;\n  t.Calisto = true;\n  t.Calvert = true;\n  t.Capitals = true;\n  t.Cambria = true;\n  t.Cartier = true;\n  t.Caslon = true;\n  t.Catull = true;\n  t.Centaur = true;\n  t[\"Century Old Style\"] = true;\n  t[\"Century Schoolbook\"] = true;\n  t.Chaparral = true;\n  t[\"Charis SIL\"] = true;\n  t.Cheltenham = true;\n  t[\"Cholla Slab\"] = true;\n  t.Clarendon = true;\n  t.Clearface = true;\n  t.Cochin = true;\n  t.Colonna = true;\n  t[\"Computer Modern\"] = true;\n  t[\"Concrete Roman\"] = true;\n  t.Constantia = true;\n  t[\"Cooper Black\"] = true;\n  t.Corona = true;\n  t.Ecotype = true;\n  t.Egyptienne = true;\n  t.Elephant = true;\n  t.Excelsior = true;\n  t.Fairfield = true;\n  t[\"FF Scala\"] = true;\n  t.Folkard = true;\n  t.Footlight = true;\n  t.FreeSerif = true;\n  t[\"Friz Quadrata\"] = true;\n  t.Garamond = true;\n  t.Gentium = true;\n  t.Georgia = true;\n  t.Gloucester = true;\n  t[\"Goudy Old Style\"] = true;\n  t[\"Goudy Schoolbook\"] = true;\n  t[\"Goudy Pro Font\"] = true;\n  t.Granjon = true;\n  t[\"Guardian Egyptian\"] = true;\n  t.Heather = true;\n  t.Hercules = true;\n  t[\"High Tower Text\"] = true;\n  t.Hiroshige = true;\n  t[\"Hoefler Text\"] = true;\n  t[\"Humana Serif\"] = true;\n  t.Imprint = true;\n  t[\"Ionic No. 5\"] = true;\n  t.Janson = true;\n  t.Joanna = true;\n  t.Korinna = true;\n  t.Lexicon = true;\n  t[\"Liberation Serif\"] = true;\n  t[\"Linux Libertine\"] = true;\n  t.Literaturnaya = true;\n  t.Lucida = true;\n  t[\"Lucida Bright\"] = true;\n  t.Melior = true;\n  t.Memphis = true;\n  t.Miller = true;\n  t.Minion = true;\n  t.Modern = true;\n  t[\"Mona Lisa\"] = true;\n  t[\"Mrs Eaves\"] = true;\n  t[\"MS Serif\"] = true;\n  t[\"Museo Slab\"] = true;\n  t[\"New York\"] = true;\n  t[\"Nimbus Roman\"] = true;\n  t[\"NPS Rawlinson Roadway\"] = true;\n  t.NuptialScript = true;\n  t.Palatino = true;\n  t.Perpetua = true;\n  t.Plantin = true;\n  t[\"Plantin Schoolbook\"] = true;\n  t.Playbill = true;\n  t[\"Poor Richard\"] = true;\n  t[\"Rawlinson Roadway\"] = true;\n  t.Renault = true;\n  t.Requiem = true;\n  t.Rockwell = true;\n  t.Roman = true;\n  t[\"Rotis Serif\"] = true;\n  t.Sabon = true;\n  t.Scala = true;\n  t.Seagull = true;\n  t.Sistina = true;\n  t.Souvenir = true;\n  t.STIX = true;\n  t[\"Stone Informal\"] = true;\n  t[\"Stone Serif\"] = true;\n  t.Sylfaen = true;\n  t.Times = true;\n  t.Trajan = true;\n  t[\"Trinité\"] = true;\n  t[\"Trump Mediaeval\"] = true;\n  t.Utopia = true;\n  t[\"Vale Type\"] = true;\n  t[\"Bitstream Vera\"] = true;\n  t[\"Vera Serif\"] = true;\n  t.Versailles = true;\n  t.Wanted = true;\n  t.Weiss = true;\n  t[\"Wide Latin\"] = true;\n  t.Windsor = true;\n  t.XITS = true;\n});\n\nconst getSymbolsFonts = getLookupTableFactory(function (t) {\n  t.Dingbats = true;\n  t.Symbol = true;\n  t.ZapfDingbats = true;\n});\n\n// Glyph map for well-known standard fonts. Sometimes Ghostscript uses CID\n// fonts, but does not embed the CID to GID mapping. The mapping is incomplete\n// for all glyphs, but common for some set of the standard fonts.\nconst getGlyphMapForStandardFonts = getLookupTableFactory(function (t) {\n  t[2] = 10;\n  t[3] = 32;\n  t[4] = 33;\n  t[5] = 34;\n  t[6] = 35;\n  t[7] = 36;\n  t[8] = 37;\n  t[9] = 38;\n  t[10] = 39;\n  t[11] = 40;\n  t[12] = 41;\n  t[13] = 42;\n  t[14] = 43;\n  t[15] = 44;\n  t[16] = 45;\n  t[17] = 46;\n  t[18] = 47;\n  t[19] = 48;\n  t[20] = 49;\n  t[21] = 50;\n  t[22] = 51;\n  t[23] = 52;\n  t[24] = 53;\n  t[25] = 54;\n  t[26] = 55;\n  t[27] = 56;\n  t[28] = 57;\n  t[29] = 58;\n  t[30] = 894;\n  t[31] = 60;\n  t[32] = 61;\n  t[33] = 62;\n  t[34] = 63;\n  t[35] = 64;\n  t[36] = 65;\n  t[37] = 66;\n  t[38] = 67;\n  t[39] = 68;\n  t[40] = 69;\n  t[41] = 70;\n  t[42] = 71;\n  t[43] = 72;\n  t[44] = 73;\n  t[45] = 74;\n  t[46] = 75;\n  t[47] = 76;\n  t[48] = 77;\n  t[49] = 78;\n  t[50] = 79;\n  t[51] = 80;\n  t[52] = 81;\n  t[53] = 82;\n  t[54] = 83;\n  t[55] = 84;\n  t[56] = 85;\n  t[57] = 86;\n  t[58] = 87;\n  t[59] = 88;\n  t[60] = 89;\n  t[61] = 90;\n  t[62] = 91;\n  t[63] = 92;\n  t[64] = 93;\n  t[65] = 94;\n  t[66] = 95;\n  t[67] = 96;\n  t[68] = 97;\n  t[69] = 98;\n  t[70] = 99;\n  t[71] = 100;\n  t[72] = 101;\n  t[73] = 102;\n  t[74] = 103;\n  t[75] = 104;\n  t[76] = 105;\n  t[77] = 106;\n  t[78] = 107;\n  t[79] = 108;\n  t[80] = 109;\n  t[81] = 110;\n  t[82] = 111;\n  t[83] = 112;\n  t[84] = 113;\n  t[85] = 114;\n  t[86] = 115;\n  t[87] = 116;\n  t[88] = 117;\n  t[89] = 118;\n  t[90] = 119;\n  t[91] = 120;\n  t[92] = 121;\n  t[93] = 122;\n  t[94] = 123;\n  t[95] = 124;\n  t[96] = 125;\n  t[97] = 126;\n  t[98] = 196;\n  t[99] = 197;\n  t[100] = 199;\n  t[101] = 201;\n  t[102] = 209;\n  t[103] = 214;\n  t[104] = 220;\n  t[105] = 225;\n  t[106] = 224;\n  t[107] = 226;\n  t[108] = 228;\n  t[109] = 227;\n  t[110] = 229;\n  t[111] = 231;\n  t[112] = 233;\n  t[113] = 232;\n  t[114] = 234;\n  t[115] = 235;\n  t[116] = 237;\n  t[117] = 236;\n  t[118] = 238;\n  t[119] = 239;\n  t[120] = 241;\n  t[121] = 243;\n  t[122] = 242;\n  t[123] = 244;\n  t[124] = 246;\n  t[125] = 245;\n  t[126] = 250;\n  t[127] = 249;\n  t[128] = 251;\n  t[129] = 252;\n  t[130] = 8224;\n  t[131] = 176;\n  t[132] = 162;\n  t[133] = 163;\n  t[134] = 167;\n  t[135] = 8226;\n  t[136] = 182;\n  t[137] = 223;\n  t[138] = 174;\n  t[139] = 169;\n  t[140] = 8482;\n  t[141] = 180;\n  t[142] = 168;\n  t[143] = 8800;\n  t[144] = 198;\n  t[145] = 216;\n  t[146] = 8734;\n  t[147] = 177;\n  t[148] = 8804;\n  t[149] = 8805;\n  t[150] = 165;\n  t[151] = 181;\n  t[152] = 8706;\n  t[153] = 8721;\n  t[154] = 8719;\n  t[156] = 8747;\n  t[157] = 170;\n  t[158] = 186;\n  t[159] = 8486;\n  t[160] = 230;\n  t[161] = 248;\n  t[162] = 191;\n  t[163] = 161;\n  t[164] = 172;\n  t[165] = 8730;\n  t[166] = 402;\n  t[167] = 8776;\n  t[168] = 8710;\n  t[169] = 171;\n  t[170] = 187;\n  t[171] = 8230;\n  t[210] = 218;\n  t[223] = 711;\n  t[224] = 321;\n  t[225] = 322;\n  t[227] = 353;\n  t[229] = 382;\n  t[234] = 253;\n  t[252] = 263;\n  t[253] = 268;\n  t[254] = 269;\n  t[258] = 258;\n  t[260] = 260;\n  t[261] = 261;\n  t[265] = 280;\n  t[266] = 281;\n  t[268] = 283;\n  t[269] = 313;\n  t[275] = 323;\n  t[276] = 324;\n  t[278] = 328;\n  t[284] = 345;\n  t[285] = 346;\n  t[286] = 347;\n  t[292] = 367;\n  t[295] = 377;\n  t[296] = 378;\n  t[298] = 380;\n  t[305] = 963;\n  t[306] = 964;\n  t[307] = 966;\n  t[308] = 8215;\n  t[309] = 8252;\n  t[310] = 8319;\n  t[311] = 8359;\n  t[312] = 8592;\n  t[313] = 8593;\n  t[337] = 9552;\n  t[493] = 1039;\n  t[494] = 1040;\n  t[705] = 1524;\n  t[706] = 8362;\n  t[710] = 64288;\n  t[711] = 64298;\n  t[759] = 1617;\n  t[761] = 1776;\n  t[763] = 1778;\n  t[775] = 1652;\n  t[777] = 1764;\n  t[778] = 1780;\n  t[779] = 1781;\n  t[780] = 1782;\n  t[782] = 771;\n  t[783] = 64726;\n  t[786] = 8363;\n  t[788] = 8532;\n  t[790] = 768;\n  t[791] = 769;\n  t[792] = 768;\n  t[795] = 803;\n  t[797] = 64336;\n  t[798] = 64337;\n  t[799] = 64342;\n  t[800] = 64343;\n  t[801] = 64344;\n  t[802] = 64345;\n  t[803] = 64362;\n  t[804] = 64363;\n  t[805] = 64364;\n  t[2424] = 7821;\n  t[2425] = 7822;\n  t[2426] = 7823;\n  t[2427] = 7824;\n  t[2428] = 7825;\n  t[2429] = 7826;\n  t[2430] = 7827;\n  t[2433] = 7682;\n  t[2678] = 8045;\n  t[2679] = 8046;\n  t[2830] = 1552;\n  t[2838] = 686;\n  t[2840] = 751;\n  t[2842] = 753;\n  t[2843] = 754;\n  t[2844] = 755;\n  t[2846] = 757;\n  t[2856] = 767;\n  t[2857] = 848;\n  t[2858] = 849;\n  t[2862] = 853;\n  t[2863] = 854;\n  t[2864] = 855;\n  t[2865] = 861;\n  t[2866] = 862;\n  t[2906] = 7460;\n  t[2908] = 7462;\n  t[2909] = 7463;\n  t[2910] = 7464;\n  t[2912] = 7466;\n  t[2913] = 7467;\n  t[2914] = 7468;\n  t[2916] = 7470;\n  t[2917] = 7471;\n  t[2918] = 7472;\n  t[2920] = 7474;\n  t[2921] = 7475;\n  t[2922] = 7476;\n  t[2924] = 7478;\n  t[2925] = 7479;\n  t[2926] = 7480;\n  t[2928] = 7482;\n  t[2929] = 7483;\n  t[2930] = 7484;\n  t[2932] = 7486;\n  t[2933] = 7487;\n  t[2934] = 7488;\n  t[2936] = 7490;\n  t[2937] = 7491;\n  t[2938] = 7492;\n  t[2940] = 7494;\n  t[2941] = 7495;\n  t[2942] = 7496;\n  t[2944] = 7498;\n  t[2946] = 7500;\n  t[2948] = 7502;\n  t[2950] = 7504;\n  t[2951] = 7505;\n  t[2952] = 7506;\n  t[2954] = 7508;\n  t[2955] = 7509;\n  t[2956] = 7510;\n  t[2958] = 7512;\n  t[2959] = 7513;\n  t[2960] = 7514;\n  t[2962] = 7516;\n  t[2963] = 7517;\n  t[2964] = 7518;\n  t[2966] = 7520;\n  t[2967] = 7521;\n  t[2968] = 7522;\n  t[2970] = 7524;\n  t[2971] = 7525;\n  t[2972] = 7526;\n  t[2974] = 7528;\n  t[2975] = 7529;\n  t[2976] = 7530;\n  t[2978] = 1537;\n  t[2979] = 1538;\n  t[2980] = 1539;\n  t[2982] = 1549;\n  t[2983] = 1551;\n  t[2984] = 1552;\n  t[2986] = 1554;\n  t[2987] = 1555;\n  t[2988] = 1556;\n  t[2990] = 1623;\n  t[2991] = 1624;\n  t[2995] = 1775;\n  t[2999] = 1791;\n  t[3002] = 64290;\n  t[3003] = 64291;\n  t[3004] = 64292;\n  t[3006] = 64294;\n  t[3007] = 64295;\n  t[3008] = 64296;\n  t[3011] = 1900;\n  t[3014] = 8223;\n  t[3015] = 8244;\n  t[3017] = 7532;\n  t[3018] = 7533;\n  t[3019] = 7534;\n  t[3075] = 7590;\n  t[3076] = 7591;\n  t[3079] = 7594;\n  t[3080] = 7595;\n  t[3083] = 7598;\n  t[3084] = 7599;\n  t[3087] = 7602;\n  t[3088] = 7603;\n  t[3091] = 7606;\n  t[3092] = 7607;\n  t[3095] = 7610;\n  t[3096] = 7611;\n  t[3099] = 7614;\n  t[3100] = 7615;\n  t[3103] = 7618;\n  t[3104] = 7619;\n  t[3107] = 8337;\n  t[3108] = 8338;\n  t[3116] = 1884;\n  t[3119] = 1885;\n  t[3120] = 1885;\n  t[3123] = 1886;\n  t[3124] = 1886;\n  t[3127] = 1887;\n  t[3128] = 1887;\n  t[3131] = 1888;\n  t[3132] = 1888;\n  t[3135] = 1889;\n  t[3136] = 1889;\n  t[3139] = 1890;\n  t[3140] = 1890;\n  t[3143] = 1891;\n  t[3144] = 1891;\n  t[3147] = 1892;\n  t[3148] = 1892;\n  t[3153] = 580;\n  t[3154] = 581;\n  t[3157] = 584;\n  t[3158] = 585;\n  t[3161] = 588;\n  t[3162] = 589;\n  t[3165] = 891;\n  t[3166] = 892;\n  t[3169] = 1274;\n  t[3170] = 1275;\n  t[3173] = 1278;\n  t[3174] = 1279;\n  t[3181] = 7622;\n  t[3182] = 7623;\n  t[3282] = 11799;\n  t[3316] = 578;\n  t[3379] = 42785;\n  t[3393] = 1159;\n  t[3416] = 8377;\n});\n\n// The glyph map for ArialBlack differs slightly from the glyph map used for\n// other well-known standard fonts. Hence we use this (incomplete) CID to GID\n// mapping to adjust the glyph map for non-embedded ArialBlack fonts.\nconst getSupplementalGlyphMapForArialBlack = getLookupTableFactory(function (\n  t\n) {\n  t[227] = 322;\n  t[264] = 261;\n  t[291] = 346;\n});\n\n// The glyph map for Calibri (a Windows font) differs from the glyph map used\n// in the standard fonts. Hence we use this (incomplete) CID to GID mapping to\n// adjust the glyph map for non-embedded Calibri fonts.\nconst getSupplementalGlyphMapForCalibri = getLookupTableFactory(function (t) {\n  t[1] = 32;\n  t[4] = 65;\n  t[17] = 66;\n  t[18] = 67;\n  t[24] = 68;\n  t[28] = 69;\n  t[38] = 70;\n  t[39] = 71;\n  t[44] = 72;\n  t[47] = 73;\n  t[58] = 74;\n  t[60] = 75;\n  t[62] = 76;\n  t[68] = 77;\n  t[69] = 78;\n  t[75] = 79;\n  t[87] = 80;\n  t[89] = 81;\n  t[90] = 82;\n  t[94] = 83;\n  t[100] = 84;\n  t[104] = 85;\n  t[115] = 86;\n  t[116] = 87;\n  t[121] = 88;\n  t[122] = 89;\n  t[127] = 90;\n  t[258] = 97;\n  t[268] = 261;\n  t[271] = 98;\n  t[272] = 99;\n  t[273] = 263;\n  t[282] = 100;\n  t[286] = 101;\n  t[295] = 281;\n  t[296] = 102;\n  t[336] = 103;\n  t[346] = 104;\n  t[349] = 105;\n  t[361] = 106;\n  t[364] = 107;\n  t[367] = 108;\n  t[371] = 322;\n  t[373] = 109;\n  t[374] = 110;\n  t[381] = 111;\n  t[383] = 243;\n  t[393] = 112;\n  t[395] = 113;\n  t[396] = 114;\n  t[400] = 115;\n  t[401] = 347;\n  t[410] = 116;\n  t[437] = 117;\n  t[448] = 118;\n  t[449] = 119;\n  t[454] = 120;\n  t[455] = 121;\n  t[460] = 122;\n  t[463] = 380;\n  t[853] = 44;\n  t[855] = 58;\n  t[856] = 46;\n  t[876] = 47;\n  t[878] = 45;\n  t[882] = 45;\n  t[894] = 40;\n  t[895] = 41;\n  t[896] = 91;\n  t[897] = 93;\n  t[923] = 64;\n  t[1004] = 48;\n  t[1005] = 49;\n  t[1006] = 50;\n  t[1007] = 51;\n  t[1008] = 52;\n  t[1009] = 53;\n  t[1010] = 54;\n  t[1011] = 55;\n  t[1012] = 56;\n  t[1013] = 57;\n  t[1081] = 37;\n  t[1085] = 43;\n  t[1086] = 45;\n});\n\nexport {\n  getStdFontMap,\n  getNonStdFontMap,\n  getSerifFonts,\n  getSymbolsFonts,\n  getGlyphMapForStandardFonts,\n  getSupplementalGlyphMapForArialBlack,\n  getSupplementalGlyphMapForCalibri,\n};\n","/* Copyright 2016 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/* no-babel-preset */\n\nvar getLookupTableFactory = require(\"./core_utils.js\").getLookupTableFactory;\n\n// Some characters, e.g. copyrightserif, are mapped to the private use area\n// and might not be displayed using standard fonts. Mapping/hacking well-known\n// chars to the similar equivalents in the normal characters range.\nvar getSpecialPUASymbols = getLookupTableFactory(function (t) {\n  t[63721] = 0x00a9; // copyrightsans (0xF8E9) => copyright\n  t[63193] = 0x00a9; // copyrightserif (0xF6D9) => copyright\n  t[63720] = 0x00ae; // registersans (0xF8E8) => registered\n  t[63194] = 0x00ae; // registerserif (0xF6DA) => registered\n  t[63722] = 0x2122; // trademarksans (0xF8EA) => trademark\n  t[63195] = 0x2122; // trademarkserif (0xF6DB) => trademark\n  t[63729] = 0x23a7; // bracelefttp (0xF8F1)\n  t[63730] = 0x23a8; // braceleftmid (0xF8F2)\n  t[63731] = 0x23a9; // braceleftbt (0xF8F3)\n  t[63740] = 0x23ab; // bracerighttp (0xF8FC)\n  t[63741] = 0x23ac; // bracerightmid (0xF8FD)\n  t[63742] = 0x23ad; // bracerightbt (0xF8FE)\n  t[63726] = 0x23a1; // bracketlefttp (0xF8EE)\n  t[63727] = 0x23a2; // bracketleftex (0xF8EF)\n  t[63728] = 0x23a3; // bracketleftbt (0xF8F0)\n  t[63737] = 0x23a4; // bracketrighttp (0xF8F9)\n  t[63738] = 0x23a5; // bracketrightex (0xF8FA)\n  t[63739] = 0x23a6; // bracketrightbt (0xF8FB)\n  t[63723] = 0x239b; // parenlefttp (0xF8EB)\n  t[63724] = 0x239c; // parenleftex (0xF8EC)\n  t[63725] = 0x239d; // parenleftbt (0xF8ED)\n  t[63734] = 0x239e; // parenrighttp (0xF8F6)\n  t[63735] = 0x239f; // parenrightex (0xF8F7)\n  t[63736] = 0x23a0; // parenrightbt (0xF8F8)\n});\n\nfunction mapSpecialUnicodeValues(code) {\n  if (code >= 0xfff0 && code <= 0xffff) {\n    // Specials unicode block.\n    return 0;\n  } else if (code >= 0xf600 && code <= 0xf8ff) {\n    return getSpecialPUASymbols()[code] || code;\n  } else if (code === /* softhyphen = */ 0x00ad) {\n    return 0x002d; // hyphen\n  }\n  return code;\n}\n\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n  var unicode = glyphsUnicodeMap[name];\n  if (unicode !== undefined) {\n    return unicode;\n  }\n  if (!name) {\n    return -1;\n  }\n  // Try to recover valid Unicode values from 'uniXXXX'/'uXXXX{XX}' glyphs.\n  if (name[0] === \"u\") {\n    var nameLen = name.length,\n      hexStr;\n\n    if (nameLen === 7 && name[1] === \"n\" && name[2] === \"i\") {\n      // 'uniXXXX'\n      hexStr = name.substring(3);\n    } else if (nameLen >= 5 && nameLen <= 7) {\n      // 'uXXXX{XX}'\n      hexStr = name.substring(1);\n    } else {\n      return -1;\n    }\n    // Check for upper-case hexadecimal characters, to avoid false positives.\n    if (hexStr === hexStr.toUpperCase()) {\n      unicode = parseInt(hexStr, 16);\n      if (unicode >= 0) {\n        return unicode;\n      }\n    }\n  }\n  return -1;\n}\n\nvar UnicodeRanges = [\n  { begin: 0x0000, end: 0x007f }, // Basic Latin\n  { begin: 0x0080, end: 0x00ff }, // Latin-1 Supplement\n  { begin: 0x0100, end: 0x017f }, // Latin Extended-A\n  { begin: 0x0180, end: 0x024f }, // Latin Extended-B\n  { begin: 0x0250, end: 0x02af }, // IPA Extensions\n  { begin: 0x02b0, end: 0x02ff }, // Spacing Modifier Letters\n  { begin: 0x0300, end: 0x036f }, // Combining Diacritical Marks\n  { begin: 0x0370, end: 0x03ff }, // Greek and Coptic\n  { begin: 0x2c80, end: 0x2cff }, // Coptic\n  { begin: 0x0400, end: 0x04ff }, // Cyrillic\n  { begin: 0x0530, end: 0x058f }, // Armenian\n  { begin: 0x0590, end: 0x05ff }, // Hebrew\n  { begin: 0xa500, end: 0xa63f }, // Vai\n  { begin: 0x0600, end: 0x06ff }, // Arabic\n  { begin: 0x07c0, end: 0x07ff }, // NKo\n  { begin: 0x0900, end: 0x097f }, // Devanagari\n  { begin: 0x0980, end: 0x09ff }, // Bengali\n  { begin: 0x0a00, end: 0x0a7f }, // Gurmukhi\n  { begin: 0x0a80, end: 0x0aff }, // Gujarati\n  { begin: 0x0b00, end: 0x0b7f }, // Oriya\n  { begin: 0x0b80, end: 0x0bff }, // Tamil\n  { begin: 0x0c00, end: 0x0c7f }, // Telugu\n  { begin: 0x0c80, end: 0x0cff }, // Kannada\n  { begin: 0x0d00, end: 0x0d7f }, // Malayalam\n  { begin: 0x0e00, end: 0x0e7f }, // Thai\n  { begin: 0x0e80, end: 0x0eff }, // Lao\n  { begin: 0x10a0, end: 0x10ff }, // Georgian\n  { begin: 0x1b00, end: 0x1b7f }, // Balinese\n  { begin: 0x1100, end: 0x11ff }, // Hangul Jamo\n  { begin: 0x1e00, end: 0x1eff }, // Latin Extended Additional\n  { begin: 0x1f00, end: 0x1fff }, // Greek Extended\n  { begin: 0x2000, end: 0x206f }, // General Punctuation\n  { begin: 0x2070, end: 0x209f }, // Superscripts And Subscripts\n  { begin: 0x20a0, end: 0x20cf }, // Currency Symbol\n  { begin: 0x20d0, end: 0x20ff }, // Combining Diacritical Marks\n  { begin: 0x2100, end: 0x214f }, // Letterlike Symbols\n  { begin: 0x2150, end: 0x218f }, // Number Forms\n  { begin: 0x2190, end: 0x21ff }, // Arrows\n  { begin: 0x2200, end: 0x22ff }, // Mathematical Operators\n  { begin: 0x2300, end: 0x23ff }, // Miscellaneous Technical\n  { begin: 0x2400, end: 0x243f }, // Control Pictures\n  { begin: 0x2440, end: 0x245f }, // Optical Character Recognition\n  { begin: 0x2460, end: 0x24ff }, // Enclosed Alphanumerics\n  { begin: 0x2500, end: 0x257f }, // Box Drawing\n  { begin: 0x2580, end: 0x259f }, // Block Elements\n  { begin: 0x25a0, end: 0x25ff }, // Geometric Shapes\n  { begin: 0x2600, end: 0x26ff }, // Miscellaneous Symbols\n  { begin: 0x2700, end: 0x27bf }, // Dingbats\n  { begin: 0x3000, end: 0x303f }, // CJK Symbols And Punctuation\n  { begin: 0x3040, end: 0x309f }, // Hiragana\n  { begin: 0x30a0, end: 0x30ff }, // Katakana\n  { begin: 0x3100, end: 0x312f }, // Bopomofo\n  { begin: 0x3130, end: 0x318f }, // Hangul Compatibility Jamo\n  { begin: 0xa840, end: 0xa87f }, // Phags-pa\n  { begin: 0x3200, end: 0x32ff }, // Enclosed CJK Letters And Months\n  { begin: 0x3300, end: 0x33ff }, // CJK Compatibility\n  { begin: 0xac00, end: 0xd7af }, // Hangul Syllables\n  { begin: 0xd800, end: 0xdfff }, // Non-Plane 0 *\n  { begin: 0x10900, end: 0x1091f }, // Phoenicia\n  { begin: 0x4e00, end: 0x9fff }, // CJK Unified Ideographs\n  { begin: 0xe000, end: 0xf8ff }, // Private Use Area (plane 0)\n  { begin: 0x31c0, end: 0x31ef }, // CJK Strokes\n  { begin: 0xfb00, end: 0xfb4f }, // Alphabetic Presentation Forms\n  { begin: 0xfb50, end: 0xfdff }, // Arabic Presentation Forms-A\n  { begin: 0xfe20, end: 0xfe2f }, // Combining Half Marks\n  { begin: 0xfe10, end: 0xfe1f }, // Vertical Forms\n  { begin: 0xfe50, end: 0xfe6f }, // Small Form Variants\n  { begin: 0xfe70, end: 0xfeff }, // Arabic Presentation Forms-B\n  { begin: 0xff00, end: 0xffef }, // Halfwidth And Fullwidth Forms\n  { begin: 0xfff0, end: 0xffff }, // Specials\n  { begin: 0x0f00, end: 0x0fff }, // Tibetan\n  { begin: 0x0700, end: 0x074f }, // Syriac\n  { begin: 0x0780, end: 0x07bf }, // Thaana\n  { begin: 0x0d80, end: 0x0dff }, // Sinhala\n  { begin: 0x1000, end: 0x109f }, // Myanmar\n  { begin: 0x1200, end: 0x137f }, // Ethiopic\n  { begin: 0x13a0, end: 0x13ff }, // Cherokee\n  { begin: 0x1400, end: 0x167f }, // Unified Canadian Aboriginal Syllabics\n  { begin: 0x1680, end: 0x169f }, // Ogham\n  { begin: 0x16a0, end: 0x16ff }, // Runic\n  { begin: 0x1780, end: 0x17ff }, // Khmer\n  { begin: 0x1800, end: 0x18af }, // Mongolian\n  { begin: 0x2800, end: 0x28ff }, // Braille Patterns\n  { begin: 0xa000, end: 0xa48f }, // Yi Syllables\n  { begin: 0x1700, end: 0x171f }, // Tagalog\n  { begin: 0x10300, end: 0x1032f }, // Old Italic\n  { begin: 0x10330, end: 0x1034f }, // Gothic\n  { begin: 0x10400, end: 0x1044f }, // Deseret\n  { begin: 0x1d000, end: 0x1d0ff }, // Byzantine Musical Symbols\n  { begin: 0x1d400, end: 0x1d7ff }, // Mathematical Alphanumeric Symbols\n  { begin: 0xff000, end: 0xffffd }, // Private Use (plane 15)\n  { begin: 0xfe00, end: 0xfe0f }, // Variation Selectors\n  { begin: 0xe0000, end: 0xe007f }, // Tags\n  { begin: 0x1900, end: 0x194f }, // Limbu\n  { begin: 0x1950, end: 0x197f }, // Tai Le\n  { begin: 0x1980, end: 0x19df }, // New Tai Lue\n  { begin: 0x1a00, end: 0x1a1f }, // Buginese\n  { begin: 0x2c00, end: 0x2c5f }, // Glagolitic\n  { begin: 0x2d30, end: 0x2d7f }, // Tifinagh\n  { begin: 0x4dc0, end: 0x4dff }, // Yijing Hexagram Symbols\n  { begin: 0xa800, end: 0xa82f }, // Syloti Nagri\n  { begin: 0x10000, end: 0x1007f }, // Linear B Syllabary\n  { begin: 0x10140, end: 0x1018f }, // Ancient Greek Numbers\n  { begin: 0x10380, end: 0x1039f }, // Ugaritic\n  { begin: 0x103a0, end: 0x103df }, // Old Persian\n  { begin: 0x10450, end: 0x1047f }, // Shavian\n  { begin: 0x10480, end: 0x104af }, // Osmanya\n  { begin: 0x10800, end: 0x1083f }, // Cypriot Syllabary\n  { begin: 0x10a00, end: 0x10a5f }, // Kharoshthi\n  { begin: 0x1d300, end: 0x1d35f }, // Tai Xuan Jing Symbols\n  { begin: 0x12000, end: 0x123ff }, // Cuneiform\n  { begin: 0x1d360, end: 0x1d37f }, // Counting Rod Numerals\n  { begin: 0x1b80, end: 0x1bbf }, // Sundanese\n  { begin: 0x1c00, end: 0x1c4f }, // Lepcha\n  { begin: 0x1c50, end: 0x1c7f }, // Ol Chiki\n  { begin: 0xa880, end: 0xa8df }, // Saurashtra\n  { begin: 0xa900, end: 0xa92f }, // Kayah Li\n  { begin: 0xa930, end: 0xa95f }, // Rejang\n  { begin: 0xaa00, end: 0xaa5f }, // Cham\n  { begin: 0x10190, end: 0x101cf }, // Ancient Symbols\n  { begin: 0x101d0, end: 0x101ff }, // Phaistos Disc\n  { begin: 0x102a0, end: 0x102df }, // Carian\n  { begin: 0x1f030, end: 0x1f09f }, // Domino Tiles\n];\n\nfunction getUnicodeRangeFor(value) {\n  for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n    var range = UnicodeRanges[i];\n    if (value >= range.begin && value < range.end) {\n      return i;\n    }\n  }\n  return -1;\n}\n\nfunction isRTLRangeFor(value) {\n  var range = UnicodeRanges[13];\n  if (value >= range.begin && value < range.end) {\n    return true;\n  }\n  range = UnicodeRanges[11];\n  if (value >= range.begin && value < range.end) {\n    return true;\n  }\n  return false;\n}\n\n// The normalization table is obtained by filtering the Unicode characters\n// database with <compat> entries.\nvar getNormalizedUnicodes = getLookupTableFactory(function (t) {\n  t[\"\\u00A8\"] = \"\\u0020\\u0308\";\n  t[\"\\u00AF\"] = \"\\u0020\\u0304\";\n  t[\"\\u00B4\"] = \"\\u0020\\u0301\";\n  t[\"\\u00B5\"] = \"\\u03BC\";\n  t[\"\\u00B8\"] = \"\\u0020\\u0327\";\n  t[\"\\u0132\"] = \"\\u0049\\u004A\";\n  t[\"\\u0133\"] = \"\\u0069\\u006A\";\n  t[\"\\u013F\"] = \"\\u004C\\u00B7\";\n  t[\"\\u0140\"] = \"\\u006C\\u00B7\";\n  t[\"\\u0149\"] = \"\\u02BC\\u006E\";\n  t[\"\\u017F\"] = \"\\u0073\";\n  t[\"\\u01C4\"] = \"\\u0044\\u017D\";\n  t[\"\\u01C5\"] = \"\\u0044\\u017E\";\n  t[\"\\u01C6\"] = \"\\u0064\\u017E\";\n  t[\"\\u01C7\"] = \"\\u004C\\u004A\";\n  t[\"\\u01C8\"] = \"\\u004C\\u006A\";\n  t[\"\\u01C9\"] = \"\\u006C\\u006A\";\n  t[\"\\u01CA\"] = \"\\u004E\\u004A\";\n  t[\"\\u01CB\"] = \"\\u004E\\u006A\";\n  t[\"\\u01CC\"] = \"\\u006E\\u006A\";\n  t[\"\\u01F1\"] = \"\\u0044\\u005A\";\n  t[\"\\u01F2\"] = \"\\u0044\\u007A\";\n  t[\"\\u01F3\"] = \"\\u0064\\u007A\";\n  t[\"\\u02D8\"] = \"\\u0020\\u0306\";\n  t[\"\\u02D9\"] = \"\\u0020\\u0307\";\n  t[\"\\u02DA\"] = \"\\u0020\\u030A\";\n  t[\"\\u02DB\"] = \"\\u0020\\u0328\";\n  t[\"\\u02DC\"] = \"\\u0020\\u0303\";\n  t[\"\\u02DD\"] = \"\\u0020\\u030B\";\n  t[\"\\u037A\"] = \"\\u0020\\u0345\";\n  t[\"\\u0384\"] = \"\\u0020\\u0301\";\n  t[\"\\u03D0\"] = \"\\u03B2\";\n  t[\"\\u03D1\"] = \"\\u03B8\";\n  t[\"\\u03D2\"] = \"\\u03A5\";\n  t[\"\\u03D5\"] = \"\\u03C6\";\n  t[\"\\u03D6\"] = \"\\u03C0\";\n  t[\"\\u03F0\"] = \"\\u03BA\";\n  t[\"\\u03F1\"] = \"\\u03C1\";\n  t[\"\\u03F2\"] = \"\\u03C2\";\n  t[\"\\u03F4\"] = \"\\u0398\";\n  t[\"\\u03F5\"] = \"\\u03B5\";\n  t[\"\\u03F9\"] = \"\\u03A3\";\n  t[\"\\u0587\"] = \"\\u0565\\u0582\";\n  t[\"\\u0675\"] = \"\\u0627\\u0674\";\n  t[\"\\u0676\"] = \"\\u0648\\u0674\";\n  t[\"\\u0677\"] = \"\\u06C7\\u0674\";\n  t[\"\\u0678\"] = \"\\u064A\\u0674\";\n  t[\"\\u0E33\"] = \"\\u0E4D\\u0E32\";\n  t[\"\\u0EB3\"] = \"\\u0ECD\\u0EB2\";\n  t[\"\\u0EDC\"] = \"\\u0EAB\\u0E99\";\n  t[\"\\u0EDD\"] = \"\\u0EAB\\u0EA1\";\n  t[\"\\u0F77\"] = \"\\u0FB2\\u0F81\";\n  t[\"\\u0F79\"] = \"\\u0FB3\\u0F81\";\n  t[\"\\u1E9A\"] = \"\\u0061\\u02BE\";\n  t[\"\\u1FBD\"] = \"\\u0020\\u0313\";\n  t[\"\\u1FBF\"] = \"\\u0020\\u0313\";\n  t[\"\\u1FC0\"] = \"\\u0020\\u0342\";\n  t[\"\\u1FFE\"] = \"\\u0020\\u0314\";\n  t[\"\\u2002\"] = \"\\u0020\";\n  t[\"\\u2003\"] = \"\\u0020\";\n  t[\"\\u2004\"] = \"\\u0020\";\n  t[\"\\u2005\"] = \"\\u0020\";\n  t[\"\\u2006\"] = \"\\u0020\";\n  t[\"\\u2008\"] = \"\\u0020\";\n  t[\"\\u2009\"] = \"\\u0020\";\n  t[\"\\u200A\"] = \"\\u0020\";\n  t[\"\\u2017\"] = \"\\u0020\\u0333\";\n  t[\"\\u2024\"] = \"\\u002E\";\n  t[\"\\u2025\"] = \"\\u002E\\u002E\";\n  t[\"\\u2026\"] = \"\\u002E\\u002E\\u002E\";\n  t[\"\\u2033\"] = \"\\u2032\\u2032\";\n  t[\"\\u2034\"] = \"\\u2032\\u2032\\u2032\";\n  t[\"\\u2036\"] = \"\\u2035\\u2035\";\n  t[\"\\u2037\"] = \"\\u2035\\u2035\\u2035\";\n  t[\"\\u203C\"] = \"\\u0021\\u0021\";\n  t[\"\\u203E\"] = \"\\u0020\\u0305\";\n  t[\"\\u2047\"] = \"\\u003F\\u003F\";\n  t[\"\\u2048\"] = \"\\u003F\\u0021\";\n  t[\"\\u2049\"] = \"\\u0021\\u003F\";\n  t[\"\\u2057\"] = \"\\u2032\\u2032\\u2032\\u2032\";\n  t[\"\\u205F\"] = \"\\u0020\";\n  t[\"\\u20A8\"] = \"\\u0052\\u0073\";\n  t[\"\\u2100\"] = \"\\u0061\\u002F\\u0063\";\n  t[\"\\u2101\"] = \"\\u0061\\u002F\\u0073\";\n  t[\"\\u2103\"] = \"\\u00B0\\u0043\";\n  t[\"\\u2105\"] = \"\\u0063\\u002F\\u006F\";\n  t[\"\\u2106\"] = \"\\u0063\\u002F\\u0075\";\n  t[\"\\u2107\"] = \"\\u0190\";\n  t[\"\\u2109\"] = \"\\u00B0\\u0046\";\n  t[\"\\u2116\"] = \"\\u004E\\u006F\";\n  t[\"\\u2121\"] = \"\\u0054\\u0045\\u004C\";\n  t[\"\\u2135\"] = \"\\u05D0\";\n  t[\"\\u2136\"] = \"\\u05D1\";\n  t[\"\\u2137\"] = \"\\u05D2\";\n  t[\"\\u2138\"] = \"\\u05D3\";\n  t[\"\\u213B\"] = \"\\u0046\\u0041\\u0058\";\n  t[\"\\u2160\"] = \"\\u0049\";\n  t[\"\\u2161\"] = \"\\u0049\\u0049\";\n  t[\"\\u2162\"] = \"\\u0049\\u0049\\u0049\";\n  t[\"\\u2163\"] = \"\\u0049\\u0056\";\n  t[\"\\u2164\"] = \"\\u0056\";\n  t[\"\\u2165\"] = \"\\u0056\\u0049\";\n  t[\"\\u2166\"] = \"\\u0056\\u0049\\u0049\";\n  t[\"\\u2167\"] = \"\\u0056\\u0049\\u0049\\u0049\";\n  t[\"\\u2168\"] = \"\\u0049\\u0058\";\n  t[\"\\u2169\"] = \"\\u0058\";\n  t[\"\\u216A\"] = \"\\u0058\\u0049\";\n  t[\"\\u216B\"] = \"\\u0058\\u0049\\u0049\";\n  t[\"\\u216C\"] = \"\\u004C\";\n  t[\"\\u216D\"] = \"\\u0043\";\n  t[\"\\u216E\"] = \"\\u0044\";\n  t[\"\\u216F\"] = \"\\u004D\";\n  t[\"\\u2170\"] = \"\\u0069\";\n  t[\"\\u2171\"] = \"\\u0069\\u0069\";\n  t[\"\\u2172\"] = \"\\u0069\\u0069\\u0069\";\n  t[\"\\u2173\"] = \"\\u0069\\u0076\";\n  t[\"\\u2174\"] = \"\\u0076\";\n  t[\"\\u2175\"] = \"\\u0076\\u0069\";\n  t[\"\\u2176\"] = \"\\u0076\\u0069\\u0069\";\n  t[\"\\u2177\"] = \"\\u0076\\u0069\\u0069\\u0069\";\n  t[\"\\u2178\"] = \"\\u0069\\u0078\";\n  t[\"\\u2179\"] = \"\\u0078\";\n  t[\"\\u217A\"] = \"\\u0078\\u0069\";\n  t[\"\\u217B\"] = \"\\u0078\\u0069\\u0069\";\n  t[\"\\u217C\"] = \"\\u006C\";\n  t[\"\\u217D\"] = \"\\u0063\";\n  t[\"\\u217E\"] = \"\\u0064\";\n  t[\"\\u217F\"] = \"\\u006D\";\n  t[\"\\u222C\"] = \"\\u222B\\u222B\";\n  t[\"\\u222D\"] = \"\\u222B\\u222B\\u222B\";\n  t[\"\\u222F\"] = \"\\u222E\\u222E\";\n  t[\"\\u2230\"] = \"\\u222E\\u222E\\u222E\";\n  t[\"\\u2474\"] = \"\\u0028\\u0031\\u0029\";\n  t[\"\\u2475\"] = \"\\u0028\\u0032\\u0029\";\n  t[\"\\u2476\"] = \"\\u0028\\u0033\\u0029\";\n  t[\"\\u2477\"] = \"\\u0028\\u0034\\u0029\";\n  t[\"\\u2478\"] = \"\\u0028\\u0035\\u0029\";\n  t[\"\\u2479\"] = \"\\u0028\\u0036\\u0029\";\n  t[\"\\u247A\"] = \"\\u0028\\u0037\\u0029\";\n  t[\"\\u247B\"] = \"\\u0028\\u0038\\u0029\";\n  t[\"\\u247C\"] = \"\\u0028\\u0039\\u0029\";\n  t[\"\\u247D\"] = \"\\u0028\\u0031\\u0030\\u0029\";\n  t[\"\\u247E\"] = \"\\u0028\\u0031\\u0031\\u0029\";\n  t[\"\\u247F\"] = \"\\u0028\\u0031\\u0032\\u0029\";\n  t[\"\\u2480\"] = \"\\u0028\\u0031\\u0033\\u0029\";\n  t[\"\\u2481\"] = \"\\u0028\\u0031\\u0034\\u0029\";\n  t[\"\\u2482\"] = \"\\u0028\\u0031\\u0035\\u0029\";\n  t[\"\\u2483\"] = \"\\u0028\\u0031\\u0036\\u0029\";\n  t[\"\\u2484\"] = \"\\u0028\\u0031\\u0037\\u0029\";\n  t[\"\\u2485\"] = \"\\u0028\\u0031\\u0038\\u0029\";\n  t[\"\\u2486\"] = \"\\u0028\\u0031\\u0039\\u0029\";\n  t[\"\\u2487\"] = \"\\u0028\\u0032\\u0030\\u0029\";\n  t[\"\\u2488\"] = \"\\u0031\\u002E\";\n  t[\"\\u2489\"] = \"\\u0032\\u002E\";\n  t[\"\\u248A\"] = \"\\u0033\\u002E\";\n  t[\"\\u248B\"] = \"\\u0034\\u002E\";\n  t[\"\\u248C\"] = \"\\u0035\\u002E\";\n  t[\"\\u248D\"] = \"\\u0036\\u002E\";\n  t[\"\\u248E\"] = \"\\u0037\\u002E\";\n  t[\"\\u248F\"] = \"\\u0038\\u002E\";\n  t[\"\\u2490\"] = \"\\u0039\\u002E\";\n  t[\"\\u2491\"] = \"\\u0031\\u0030\\u002E\";\n  t[\"\\u2492\"] = \"\\u0031\\u0031\\u002E\";\n  t[\"\\u2493\"] = \"\\u0031\\u0032\\u002E\";\n  t[\"\\u2494\"] = \"\\u0031\\u0033\\u002E\";\n  t[\"\\u2495\"] = \"\\u0031\\u0034\\u002E\";\n  t[\"\\u2496\"] = \"\\u0031\\u0035\\u002E\";\n  t[\"\\u2497\"] = \"\\u0031\\u0036\\u002E\";\n  t[\"\\u2498\"] = \"\\u0031\\u0037\\u002E\";\n  t[\"\\u2499\"] = \"\\u0031\\u0038\\u002E\";\n  t[\"\\u249A\"] = \"\\u0031\\u0039\\u002E\";\n  t[\"\\u249B\"] = \"\\u0032\\u0030\\u002E\";\n  t[\"\\u249C\"] = \"\\u0028\\u0061\\u0029\";\n  t[\"\\u249D\"] = \"\\u0028\\u0062\\u0029\";\n  t[\"\\u249E\"] = \"\\u0028\\u0063\\u0029\";\n  t[\"\\u249F\"] = \"\\u0028\\u0064\\u0029\";\n  t[\"\\u24A0\"] = \"\\u0028\\u0065\\u0029\";\n  t[\"\\u24A1\"] = \"\\u0028\\u0066\\u0029\";\n  t[\"\\u24A2\"] = \"\\u0028\\u0067\\u0029\";\n  t[\"\\u24A3\"] = \"\\u0028\\u0068\\u0029\";\n  t[\"\\u24A4\"] = \"\\u0028\\u0069\\u0029\";\n  t[\"\\u24A5\"] = \"\\u0028\\u006A\\u0029\";\n  t[\"\\u24A6\"] = \"\\u0028\\u006B\\u0029\";\n  t[\"\\u24A7\"] = \"\\u0028\\u006C\\u0029\";\n  t[\"\\u24A8\"] = \"\\u0028\\u006D\\u0029\";\n  t[\"\\u24A9\"] = \"\\u0028\\u006E\\u0029\";\n  t[\"\\u24AA\"] = \"\\u0028\\u006F\\u0029\";\n  t[\"\\u24AB\"] = \"\\u0028\\u0070\\u0029\";\n  t[\"\\u24AC\"] = \"\\u0028\\u0071\\u0029\";\n  t[\"\\u24AD\"] = \"\\u0028\\u0072\\u0029\";\n  t[\"\\u24AE\"] = \"\\u0028\\u0073\\u0029\";\n  t[\"\\u24AF\"] = \"\\u0028\\u0074\\u0029\";\n  t[\"\\u24B0\"] = \"\\u0028\\u0075\\u0029\";\n  t[\"\\u24B1\"] = \"\\u0028\\u0076\\u0029\";\n  t[\"\\u24B2\"] = \"\\u0028\\u0077\\u0029\";\n  t[\"\\u24B3\"] = \"\\u0028\\u0078\\u0029\";\n  t[\"\\u24B4\"] = \"\\u0028\\u0079\\u0029\";\n  t[\"\\u24B5\"] = \"\\u0028\\u007A\\u0029\";\n  t[\"\\u2A0C\"] = \"\\u222B\\u222B\\u222B\\u222B\";\n  t[\"\\u2A74\"] = \"\\u003A\\u003A\\u003D\";\n  t[\"\\u2A75\"] = \"\\u003D\\u003D\";\n  t[\"\\u2A76\"] = \"\\u003D\\u003D\\u003D\";\n  t[\"\\u2E9F\"] = \"\\u6BCD\";\n  t[\"\\u2EF3\"] = \"\\u9F9F\";\n  t[\"\\u2F00\"] = \"\\u4E00\";\n  t[\"\\u2F01\"] = \"\\u4E28\";\n  t[\"\\u2F02\"] = \"\\u4E36\";\n  t[\"\\u2F03\"] = \"\\u4E3F\";\n  t[\"\\u2F04\"] = \"\\u4E59\";\n  t[\"\\u2F05\"] = \"\\u4E85\";\n  t[\"\\u2F06\"] = \"\\u4E8C\";\n  t[\"\\u2F07\"] = \"\\u4EA0\";\n  t[\"\\u2F08\"] = \"\\u4EBA\";\n  t[\"\\u2F09\"] = \"\\u513F\";\n  t[\"\\u2F0A\"] = \"\\u5165\";\n  t[\"\\u2F0B\"] = \"\\u516B\";\n  t[\"\\u2F0C\"] = \"\\u5182\";\n  t[\"\\u2F0D\"] = \"\\u5196\";\n  t[\"\\u2F0E\"] = \"\\u51AB\";\n  t[\"\\u2F0F\"] = \"\\u51E0\";\n  t[\"\\u2F10\"] = \"\\u51F5\";\n  t[\"\\u2F11\"] = \"\\u5200\";\n  t[\"\\u2F12\"] = \"\\u529B\";\n  t[\"\\u2F13\"] = \"\\u52F9\";\n  t[\"\\u2F14\"] = \"\\u5315\";\n  t[\"\\u2F15\"] = \"\\u531A\";\n  t[\"\\u2F16\"] = \"\\u5338\";\n  t[\"\\u2F17\"] = \"\\u5341\";\n  t[\"\\u2F18\"] = \"\\u535C\";\n  t[\"\\u2F19\"] = \"\\u5369\";\n  t[\"\\u2F1A\"] = \"\\u5382\";\n  t[\"\\u2F1B\"] = \"\\u53B6\";\n  t[\"\\u2F1C\"] = \"\\u53C8\";\n  t[\"\\u2F1D\"] = \"\\u53E3\";\n  t[\"\\u2F1E\"] = \"\\u56D7\";\n  t[\"\\u2F1F\"] = \"\\u571F\";\n  t[\"\\u2F20\"] = \"\\u58EB\";\n  t[\"\\u2F21\"] = \"\\u5902\";\n  t[\"\\u2F22\"] = \"\\u590A\";\n  t[\"\\u2F23\"] = \"\\u5915\";\n  t[\"\\u2F24\"] = \"\\u5927\";\n  t[\"\\u2F25\"] = \"\\u5973\";\n  t[\"\\u2F26\"] = \"\\u5B50\";\n  t[\"\\u2F27\"] = \"\\u5B80\";\n  t[\"\\u2F28\"] = \"\\u5BF8\";\n  t[\"\\u2F29\"] = \"\\u5C0F\";\n  t[\"\\u2F2A\"] = \"\\u5C22\";\n  t[\"\\u2F2B\"] = \"\\u5C38\";\n  t[\"\\u2F2C\"] = \"\\u5C6E\";\n  t[\"\\u2F2D\"] = \"\\u5C71\";\n  t[\"\\u2F2E\"] = \"\\u5DDB\";\n  t[\"\\u2F2F\"] = \"\\u5DE5\";\n  t[\"\\u2F30\"] = \"\\u5DF1\";\n  t[\"\\u2F31\"] = \"\\u5DFE\";\n  t[\"\\u2F32\"] = \"\\u5E72\";\n  t[\"\\u2F33\"] = \"\\u5E7A\";\n  t[\"\\u2F34\"] = \"\\u5E7F\";\n  t[\"\\u2F35\"] = \"\\u5EF4\";\n  t[\"\\u2F36\"] = \"\\u5EFE\";\n  t[\"\\u2F37\"] = \"\\u5F0B\";\n  t[\"\\u2F38\"] = \"\\u5F13\";\n  t[\"\\u2F39\"] = \"\\u5F50\";\n  t[\"\\u2F3A\"] = \"\\u5F61\";\n  t[\"\\u2F3B\"] = \"\\u5F73\";\n  t[\"\\u2F3C\"] = \"\\u5FC3\";\n  t[\"\\u2F3D\"] = \"\\u6208\";\n  t[\"\\u2F3E\"] = \"\\u6236\";\n  t[\"\\u2F3F\"] = \"\\u624B\";\n  t[\"\\u2F40\"] = \"\\u652F\";\n  t[\"\\u2F41\"] = \"\\u6534\";\n  t[\"\\u2F42\"] = \"\\u6587\";\n  t[\"\\u2F43\"] = \"\\u6597\";\n  t[\"\\u2F44\"] = \"\\u65A4\";\n  t[\"\\u2F45\"] = \"\\u65B9\";\n  t[\"\\u2F46\"] = \"\\u65E0\";\n  t[\"\\u2F47\"] = \"\\u65E5\";\n  t[\"\\u2F48\"] = \"\\u66F0\";\n  t[\"\\u2F49\"] = \"\\u6708\";\n  t[\"\\u2F4A\"] = \"\\u6728\";\n  t[\"\\u2F4B\"] = \"\\u6B20\";\n  t[\"\\u2F4C\"] = \"\\u6B62\";\n  t[\"\\u2F4D\"] = \"\\u6B79\";\n  t[\"\\u2F4E\"] = \"\\u6BB3\";\n  t[\"\\u2F4F\"] = \"\\u6BCB\";\n  t[\"\\u2F50\"] = \"\\u6BD4\";\n  t[\"\\u2F51\"] = \"\\u6BDB\";\n  t[\"\\u2F52\"] = \"\\u6C0F\";\n  t[\"\\u2F53\"] = \"\\u6C14\";\n  t[\"\\u2F54\"] = \"\\u6C34\";\n  t[\"\\u2F55\"] = \"\\u706B\";\n  t[\"\\u2F56\"] = \"\\u722A\";\n  t[\"\\u2F57\"] = \"\\u7236\";\n  t[\"\\u2F58\"] = \"\\u723B\";\n  t[\"\\u2F59\"] = \"\\u723F\";\n  t[\"\\u2F5A\"] = \"\\u7247\";\n  t[\"\\u2F5B\"] = \"\\u7259\";\n  t[\"\\u2F5C\"] = \"\\u725B\";\n  t[\"\\u2F5D\"] = \"\\u72AC\";\n  t[\"\\u2F5E\"] = \"\\u7384\";\n  t[\"\\u2F5F\"] = \"\\u7389\";\n  t[\"\\u2F60\"] = \"\\u74DC\";\n  t[\"\\u2F61\"] = \"\\u74E6\";\n  t[\"\\u2F62\"] = \"\\u7518\";\n  t[\"\\u2F63\"] = \"\\u751F\";\n  t[\"\\u2F64\"] = \"\\u7528\";\n  t[\"\\u2F65\"] = \"\\u7530\";\n  t[\"\\u2F66\"] = \"\\u758B\";\n  t[\"\\u2F67\"] = \"\\u7592\";\n  t[\"\\u2F68\"] = \"\\u7676\";\n  t[\"\\u2F69\"] = \"\\u767D\";\n  t[\"\\u2F6A\"] = \"\\u76AE\";\n  t[\"\\u2F6B\"] = \"\\u76BF\";\n  t[\"\\u2F6C\"] = \"\\u76EE\";\n  t[\"\\u2F6D\"] = \"\\u77DB\";\n  t[\"\\u2F6E\"] = \"\\u77E2\";\n  t[\"\\u2F6F\"] = \"\\u77F3\";\n  t[\"\\u2F70\"] = \"\\u793A\";\n  t[\"\\u2F71\"] = \"\\u79B8\";\n  t[\"\\u2F72\"] = \"\\u79BE\";\n  t[\"\\u2F73\"] = \"\\u7A74\";\n  t[\"\\u2F74\"] = \"\\u7ACB\";\n  t[\"\\u2F75\"] = \"\\u7AF9\";\n  t[\"\\u2F76\"] = \"\\u7C73\";\n  t[\"\\u2F77\"] = \"\\u7CF8\";\n  t[\"\\u2F78\"] = \"\\u7F36\";\n  t[\"\\u2F79\"] = \"\\u7F51\";\n  t[\"\\u2F7A\"] = \"\\u7F8A\";\n  t[\"\\u2F7B\"] = \"\\u7FBD\";\n  t[\"\\u2F7C\"] = \"\\u8001\";\n  t[\"\\u2F7D\"] = \"\\u800C\";\n  t[\"\\u2F7E\"] = \"\\u8012\";\n  t[\"\\u2F7F\"] = \"\\u8033\";\n  t[\"\\u2F80\"] = \"\\u807F\";\n  t[\"\\u2F81\"] = \"\\u8089\";\n  t[\"\\u2F82\"] = \"\\u81E3\";\n  t[\"\\u2F83\"] = \"\\u81EA\";\n  t[\"\\u2F84\"] = \"\\u81F3\";\n  t[\"\\u2F85\"] = \"\\u81FC\";\n  t[\"\\u2F86\"] = \"\\u820C\";\n  t[\"\\u2F87\"] = \"\\u821B\";\n  t[\"\\u2F88\"] = \"\\u821F\";\n  t[\"\\u2F89\"] = \"\\u826E\";\n  t[\"\\u2F8A\"] = \"\\u8272\";\n  t[\"\\u2F8B\"] = \"\\u8278\";\n  t[\"\\u2F8C\"] = \"\\u864D\";\n  t[\"\\u2F8D\"] = \"\\u866B\";\n  t[\"\\u2F8E\"] = \"\\u8840\";\n  t[\"\\u2F8F\"] = \"\\u884C\";\n  t[\"\\u2F90\"] = \"\\u8863\";\n  t[\"\\u2F91\"] = \"\\u897E\";\n  t[\"\\u2F92\"] = \"\\u898B\";\n  t[\"\\u2F93\"] = \"\\u89D2\";\n  t[\"\\u2F94\"] = \"\\u8A00\";\n  t[\"\\u2F95\"] = \"\\u8C37\";\n  t[\"\\u2F96\"] = \"\\u8C46\";\n  t[\"\\u2F97\"] = \"\\u8C55\";\n  t[\"\\u2F98\"] = \"\\u8C78\";\n  t[\"\\u2F99\"] = \"\\u8C9D\";\n  t[\"\\u2F9A\"] = \"\\u8D64\";\n  t[\"\\u2F9B\"] = \"\\u8D70\";\n  t[\"\\u2F9C\"] = \"\\u8DB3\";\n  t[\"\\u2F9D\"] = \"\\u8EAB\";\n  t[\"\\u2F9E\"] = \"\\u8ECA\";\n  t[\"\\u2F9F\"] = \"\\u8F9B\";\n  t[\"\\u2FA0\"] = \"\\u8FB0\";\n  t[\"\\u2FA1\"] = \"\\u8FB5\";\n  t[\"\\u2FA2\"] = \"\\u9091\";\n  t[\"\\u2FA3\"] = \"\\u9149\";\n  t[\"\\u2FA4\"] = \"\\u91C6\";\n  t[\"\\u2FA5\"] = \"\\u91CC\";\n  t[\"\\u2FA6\"] = \"\\u91D1\";\n  t[\"\\u2FA7\"] = \"\\u9577\";\n  t[\"\\u2FA8\"] = \"\\u9580\";\n  t[\"\\u2FA9\"] = \"\\u961C\";\n  t[\"\\u2FAA\"] = \"\\u96B6\";\n  t[\"\\u2FAB\"] = \"\\u96B9\";\n  t[\"\\u2FAC\"] = \"\\u96E8\";\n  t[\"\\u2FAD\"] = \"\\u9751\";\n  t[\"\\u2FAE\"] = \"\\u975E\";\n  t[\"\\u2FAF\"] = \"\\u9762\";\n  t[\"\\u2FB0\"] = \"\\u9769\";\n  t[\"\\u2FB1\"] = \"\\u97CB\";\n  t[\"\\u2FB2\"] = \"\\u97ED\";\n  t[\"\\u2FB3\"] = \"\\u97F3\";\n  t[\"\\u2FB4\"] = \"\\u9801\";\n  t[\"\\u2FB5\"] = \"\\u98A8\";\n  t[\"\\u2FB6\"] = \"\\u98DB\";\n  t[\"\\u2FB7\"] = \"\\u98DF\";\n  t[\"\\u2FB8\"] = \"\\u9996\";\n  t[\"\\u2FB9\"] = \"\\u9999\";\n  t[\"\\u2FBA\"] = \"\\u99AC\";\n  t[\"\\u2FBB\"] = \"\\u9AA8\";\n  t[\"\\u2FBC\"] = \"\\u9AD8\";\n  t[\"\\u2FBD\"] = \"\\u9ADF\";\n  t[\"\\u2FBE\"] = \"\\u9B25\";\n  t[\"\\u2FBF\"] = \"\\u9B2F\";\n  t[\"\\u2FC0\"] = \"\\u9B32\";\n  t[\"\\u2FC1\"] = \"\\u9B3C\";\n  t[\"\\u2FC2\"] = \"\\u9B5A\";\n  t[\"\\u2FC3\"] = \"\\u9CE5\";\n  t[\"\\u2FC4\"] = \"\\u9E75\";\n  t[\"\\u2FC5\"] = \"\\u9E7F\";\n  t[\"\\u2FC6\"] = \"\\u9EA5\";\n  t[\"\\u2FC7\"] = \"\\u9EBB\";\n  t[\"\\u2FC8\"] = \"\\u9EC3\";\n  t[\"\\u2FC9\"] = \"\\u9ECD\";\n  t[\"\\u2FCA\"] = \"\\u9ED1\";\n  t[\"\\u2FCB\"] = \"\\u9EF9\";\n  t[\"\\u2FCC\"] = \"\\u9EFD\";\n  t[\"\\u2FCD\"] = \"\\u9F0E\";\n  t[\"\\u2FCE\"] = \"\\u9F13\";\n  t[\"\\u2FCF\"] = \"\\u9F20\";\n  t[\"\\u2FD0\"] = \"\\u9F3B\";\n  t[\"\\u2FD1\"] = \"\\u9F4A\";\n  t[\"\\u2FD2\"] = \"\\u9F52\";\n  t[\"\\u2FD3\"] = \"\\u9F8D\";\n  t[\"\\u2FD4\"] = \"\\u9F9C\";\n  t[\"\\u2FD5\"] = \"\\u9FA0\";\n  t[\"\\u3036\"] = \"\\u3012\";\n  t[\"\\u3038\"] = \"\\u5341\";\n  t[\"\\u3039\"] = \"\\u5344\";\n  t[\"\\u303A\"] = \"\\u5345\";\n  t[\"\\u309B\"] = \"\\u0020\\u3099\";\n  t[\"\\u309C\"] = \"\\u0020\\u309A\";\n  t[\"\\u3131\"] = \"\\u1100\";\n  t[\"\\u3132\"] = \"\\u1101\";\n  t[\"\\u3133\"] = \"\\u11AA\";\n  t[\"\\u3134\"] = \"\\u1102\";\n  t[\"\\u3135\"] = \"\\u11AC\";\n  t[\"\\u3136\"] = \"\\u11AD\";\n  t[\"\\u3137\"] = \"\\u1103\";\n  t[\"\\u3138\"] = \"\\u1104\";\n  t[\"\\u3139\"] = \"\\u1105\";\n  t[\"\\u313A\"] = \"\\u11B0\";\n  t[\"\\u313B\"] = \"\\u11B1\";\n  t[\"\\u313C\"] = \"\\u11B2\";\n  t[\"\\u313D\"] = \"\\u11B3\";\n  t[\"\\u313E\"] = \"\\u11B4\";\n  t[\"\\u313F\"] = \"\\u11B5\";\n  t[\"\\u3140\"] = \"\\u111A\";\n  t[\"\\u3141\"] = \"\\u1106\";\n  t[\"\\u3142\"] = \"\\u1107\";\n  t[\"\\u3143\"] = \"\\u1108\";\n  t[\"\\u3144\"] = \"\\u1121\";\n  t[\"\\u3145\"] = \"\\u1109\";\n  t[\"\\u3146\"] = \"\\u110A\";\n  t[\"\\u3147\"] = \"\\u110B\";\n  t[\"\\u3148\"] = \"\\u110C\";\n  t[\"\\u3149\"] = \"\\u110D\";\n  t[\"\\u314A\"] = \"\\u110E\";\n  t[\"\\u314B\"] = \"\\u110F\";\n  t[\"\\u314C\"] = \"\\u1110\";\n  t[\"\\u314D\"] = \"\\u1111\";\n  t[\"\\u314E\"] = \"\\u1112\";\n  t[\"\\u314F\"] = \"\\u1161\";\n  t[\"\\u3150\"] = \"\\u1162\";\n  t[\"\\u3151\"] = \"\\u1163\";\n  t[\"\\u3152\"] = \"\\u1164\";\n  t[\"\\u3153\"] = \"\\u1165\";\n  t[\"\\u3154\"] = \"\\u1166\";\n  t[\"\\u3155\"] = \"\\u1167\";\n  t[\"\\u3156\"] = \"\\u1168\";\n  t[\"\\u3157\"] = \"\\u1169\";\n  t[\"\\u3158\"] = \"\\u116A\";\n  t[\"\\u3159\"] = \"\\u116B\";\n  t[\"\\u315A\"] = \"\\u116C\";\n  t[\"\\u315B\"] = \"\\u116D\";\n  t[\"\\u315C\"] = \"\\u116E\";\n  t[\"\\u315D\"] = \"\\u116F\";\n  t[\"\\u315E\"] = \"\\u1170\";\n  t[\"\\u315F\"] = \"\\u1171\";\n  t[\"\\u3160\"] = \"\\u1172\";\n  t[\"\\u3161\"] = \"\\u1173\";\n  t[\"\\u3162\"] = \"\\u1174\";\n  t[\"\\u3163\"] = \"\\u1175\";\n  t[\"\\u3164\"] = \"\\u1160\";\n  t[\"\\u3165\"] = \"\\u1114\";\n  t[\"\\u3166\"] = \"\\u1115\";\n  t[\"\\u3167\"] = \"\\u11C7\";\n  t[\"\\u3168\"] = \"\\u11C8\";\n  t[\"\\u3169\"] = \"\\u11CC\";\n  t[\"\\u316A\"] = \"\\u11CE\";\n  t[\"\\u316B\"] = \"\\u11D3\";\n  t[\"\\u316C\"] = \"\\u11D7\";\n  t[\"\\u316D\"] = \"\\u11D9\";\n  t[\"\\u316E\"] = \"\\u111C\";\n  t[\"\\u316F\"] = \"\\u11DD\";\n  t[\"\\u3170\"] = \"\\u11DF\";\n  t[\"\\u3171\"] = \"\\u111D\";\n  t[\"\\u3172\"] = \"\\u111E\";\n  t[\"\\u3173\"] = \"\\u1120\";\n  t[\"\\u3174\"] = \"\\u1122\";\n  t[\"\\u3175\"] = \"\\u1123\";\n  t[\"\\u3176\"] = \"\\u1127\";\n  t[\"\\u3177\"] = \"\\u1129\";\n  t[\"\\u3178\"] = \"\\u112B\";\n  t[\"\\u3179\"] = \"\\u112C\";\n  t[\"\\u317A\"] = \"\\u112D\";\n  t[\"\\u317B\"] = \"\\u112E\";\n  t[\"\\u317C\"] = \"\\u112F\";\n  t[\"\\u317D\"] = \"\\u1132\";\n  t[\"\\u317E\"] = \"\\u1136\";\n  t[\"\\u317F\"] = \"\\u1140\";\n  t[\"\\u3180\"] = \"\\u1147\";\n  t[\"\\u3181\"] = \"\\u114C\";\n  t[\"\\u3182\"] = \"\\u11F1\";\n  t[\"\\u3183\"] = \"\\u11F2\";\n  t[\"\\u3184\"] = \"\\u1157\";\n  t[\"\\u3185\"] = \"\\u1158\";\n  t[\"\\u3186\"] = \"\\u1159\";\n  t[\"\\u3187\"] = \"\\u1184\";\n  t[\"\\u3188\"] = \"\\u1185\";\n  t[\"\\u3189\"] = \"\\u1188\";\n  t[\"\\u318A\"] = \"\\u1191\";\n  t[\"\\u318B\"] = \"\\u1192\";\n  t[\"\\u318C\"] = \"\\u1194\";\n  t[\"\\u318D\"] = \"\\u119E\";\n  t[\"\\u318E\"] = \"\\u11A1\";\n  t[\"\\u3200\"] = \"\\u0028\\u1100\\u0029\";\n  t[\"\\u3201\"] = \"\\u0028\\u1102\\u0029\";\n  t[\"\\u3202\"] = \"\\u0028\\u1103\\u0029\";\n  t[\"\\u3203\"] = \"\\u0028\\u1105\\u0029\";\n  t[\"\\u3204\"] = \"\\u0028\\u1106\\u0029\";\n  t[\"\\u3205\"] = \"\\u0028\\u1107\\u0029\";\n  t[\"\\u3206\"] = \"\\u0028\\u1109\\u0029\";\n  t[\"\\u3207\"] = \"\\u0028\\u110B\\u0029\";\n  t[\"\\u3208\"] = \"\\u0028\\u110C\\u0029\";\n  t[\"\\u3209\"] = \"\\u0028\\u110E\\u0029\";\n  t[\"\\u320A\"] = \"\\u0028\\u110F\\u0029\";\n  t[\"\\u320B\"] = \"\\u0028\\u1110\\u0029\";\n  t[\"\\u320C\"] = \"\\u0028\\u1111\\u0029\";\n  t[\"\\u320D\"] = \"\\u0028\\u1112\\u0029\";\n  t[\"\\u320E\"] = \"\\u0028\\u1100\\u1161\\u0029\";\n  t[\"\\u320F\"] = \"\\u0028\\u1102\\u1161\\u0029\";\n  t[\"\\u3210\"] = \"\\u0028\\u1103\\u1161\\u0029\";\n  t[\"\\u3211\"] = \"\\u0028\\u1105\\u1161\\u0029\";\n  t[\"\\u3212\"] = \"\\u0028\\u1106\\u1161\\u0029\";\n  t[\"\\u3213\"] = \"\\u0028\\u1107\\u1161\\u0029\";\n  t[\"\\u3214\"] = \"\\u0028\\u1109\\u1161\\u0029\";\n  t[\"\\u3215\"] = \"\\u0028\\u110B\\u1161\\u0029\";\n  t[\"\\u3216\"] = \"\\u0028\\u110C\\u1161\\u0029\";\n  t[\"\\u3217\"] = \"\\u0028\\u110E\\u1161\\u0029\";\n  t[\"\\u3218\"] = \"\\u0028\\u110F\\u1161\\u0029\";\n  t[\"\\u3219\"] = \"\\u0028\\u1110\\u1161\\u0029\";\n  t[\"\\u321A\"] = \"\\u0028\\u1111\\u1161\\u0029\";\n  t[\"\\u321B\"] = \"\\u0028\\u1112\\u1161\\u0029\";\n  t[\"\\u321C\"] = \"\\u0028\\u110C\\u116E\\u0029\";\n  t[\"\\u321D\"] = \"\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029\";\n  t[\"\\u321E\"] = \"\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029\";\n  t[\"\\u3220\"] = \"\\u0028\\u4E00\\u0029\";\n  t[\"\\u3221\"] = \"\\u0028\\u4E8C\\u0029\";\n  t[\"\\u3222\"] = \"\\u0028\\u4E09\\u0029\";\n  t[\"\\u3223\"] = \"\\u0028\\u56DB\\u0029\";\n  t[\"\\u3224\"] = \"\\u0028\\u4E94\\u0029\";\n  t[\"\\u3225\"] = \"\\u0028\\u516D\\u0029\";\n  t[\"\\u3226\"] = \"\\u0028\\u4E03\\u0029\";\n  t[\"\\u3227\"] = \"\\u0028\\u516B\\u0029\";\n  t[\"\\u3228\"] = \"\\u0028\\u4E5D\\u0029\";\n  t[\"\\u3229\"] = \"\\u0028\\u5341\\u0029\";\n  t[\"\\u322A\"] = \"\\u0028\\u6708\\u0029\";\n  t[\"\\u322B\"] = \"\\u0028\\u706B\\u0029\";\n  t[\"\\u322C\"] = \"\\u0028\\u6C34\\u0029\";\n  t[\"\\u322D\"] = \"\\u0028\\u6728\\u0029\";\n  t[\"\\u322E\"] = \"\\u0028\\u91D1\\u0029\";\n  t[\"\\u322F\"] = \"\\u0028\\u571F\\u0029\";\n  t[\"\\u3230\"] = \"\\u0028\\u65E5\\u0029\";\n  t[\"\\u3231\"] = \"\\u0028\\u682A\\u0029\";\n  t[\"\\u3232\"] = \"\\u0028\\u6709\\u0029\";\n  t[\"\\u3233\"] = \"\\u0028\\u793E\\u0029\";\n  t[\"\\u3234\"] = \"\\u0028\\u540D\\u0029\";\n  t[\"\\u3235\"] = \"\\u0028\\u7279\\u0029\";\n  t[\"\\u3236\"] = \"\\u0028\\u8CA1\\u0029\";\n  t[\"\\u3237\"] = \"\\u0028\\u795D\\u0029\";\n  t[\"\\u3238\"] = \"\\u0028\\u52B4\\u0029\";\n  t[\"\\u3239\"] = \"\\u0028\\u4EE3\\u0029\";\n  t[\"\\u323A\"] = \"\\u0028\\u547C\\u0029\";\n  t[\"\\u323B\"] = \"\\u0028\\u5B66\\u0029\";\n  t[\"\\u323C\"] = \"\\u0028\\u76E3\\u0029\";\n  t[\"\\u323D\"] = \"\\u0028\\u4F01\\u0029\";\n  t[\"\\u323E\"] = \"\\u0028\\u8CC7\\u0029\";\n  t[\"\\u323F\"] = \"\\u0028\\u5354\\u0029\";\n  t[\"\\u3240\"] = \"\\u0028\\u796D\\u0029\";\n  t[\"\\u3241\"] = \"\\u0028\\u4F11\\u0029\";\n  t[\"\\u3242\"] = \"\\u0028\\u81EA\\u0029\";\n  t[\"\\u3243\"] = \"\\u0028\\u81F3\\u0029\";\n  t[\"\\u32C0\"] = \"\\u0031\\u6708\";\n  t[\"\\u32C1\"] = \"\\u0032\\u6708\";\n  t[\"\\u32C2\"] = \"\\u0033\\u6708\";\n  t[\"\\u32C3\"] = \"\\u0034\\u6708\";\n  t[\"\\u32C4\"] = \"\\u0035\\u6708\";\n  t[\"\\u32C5\"] = \"\\u0036\\u6708\";\n  t[\"\\u32C6\"] = \"\\u0037\\u6708\";\n  t[\"\\u32C7\"] = \"\\u0038\\u6708\";\n  t[\"\\u32C8\"] = \"\\u0039\\u6708\";\n  t[\"\\u32C9\"] = \"\\u0031\\u0030\\u6708\";\n  t[\"\\u32CA\"] = \"\\u0031\\u0031\\u6708\";\n  t[\"\\u32CB\"] = \"\\u0031\\u0032\\u6708\";\n  t[\"\\u3358\"] = \"\\u0030\\u70B9\";\n  t[\"\\u3359\"] = \"\\u0031\\u70B9\";\n  t[\"\\u335A\"] = \"\\u0032\\u70B9\";\n  t[\"\\u335B\"] = \"\\u0033\\u70B9\";\n  t[\"\\u335C\"] = \"\\u0034\\u70B9\";\n  t[\"\\u335D\"] = \"\\u0035\\u70B9\";\n  t[\"\\u335E\"] = \"\\u0036\\u70B9\";\n  t[\"\\u335F\"] = \"\\u0037\\u70B9\";\n  t[\"\\u3360\"] = \"\\u0038\\u70B9\";\n  t[\"\\u3361\"] = \"\\u0039\\u70B9\";\n  t[\"\\u3362\"] = \"\\u0031\\u0030\\u70B9\";\n  t[\"\\u3363\"] = \"\\u0031\\u0031\\u70B9\";\n  t[\"\\u3364\"] = \"\\u0031\\u0032\\u70B9\";\n  t[\"\\u3365\"] = \"\\u0031\\u0033\\u70B9\";\n  t[\"\\u3366\"] = \"\\u0031\\u0034\\u70B9\";\n  t[\"\\u3367\"] = \"\\u0031\\u0035\\u70B9\";\n  t[\"\\u3368\"] = \"\\u0031\\u0036\\u70B9\";\n  t[\"\\u3369\"] = \"\\u0031\\u0037\\u70B9\";\n  t[\"\\u336A\"] = \"\\u0031\\u0038\\u70B9\";\n  t[\"\\u336B\"] = \"\\u0031\\u0039\\u70B9\";\n  t[\"\\u336C\"] = \"\\u0032\\u0030\\u70B9\";\n  t[\"\\u336D\"] = \"\\u0032\\u0031\\u70B9\";\n  t[\"\\u336E\"] = \"\\u0032\\u0032\\u70B9\";\n  t[\"\\u336F\"] = \"\\u0032\\u0033\\u70B9\";\n  t[\"\\u3370\"] = \"\\u0032\\u0034\\u70B9\";\n  t[\"\\u33E0\"] = \"\\u0031\\u65E5\";\n  t[\"\\u33E1\"] = \"\\u0032\\u65E5\";\n  t[\"\\u33E2\"] = \"\\u0033\\u65E5\";\n  t[\"\\u33E3\"] = \"\\u0034\\u65E5\";\n  t[\"\\u33E4\"] = \"\\u0035\\u65E5\";\n  t[\"\\u33E5\"] = \"\\u0036\\u65E5\";\n  t[\"\\u33E6\"] = \"\\u0037\\u65E5\";\n  t[\"\\u33E7\"] = \"\\u0038\\u65E5\";\n  t[\"\\u33E8\"] = \"\\u0039\\u65E5\";\n  t[\"\\u33E9\"] = \"\\u0031\\u0030\\u65E5\";\n  t[\"\\u33EA\"] = \"\\u0031\\u0031\\u65E5\";\n  t[\"\\u33EB\"] = \"\\u0031\\u0032\\u65E5\";\n  t[\"\\u33EC\"] = \"\\u0031\\u0033\\u65E5\";\n  t[\"\\u33ED\"] = \"\\u0031\\u0034\\u65E5\";\n  t[\"\\u33EE\"] = \"\\u0031\\u0035\\u65E5\";\n  t[\"\\u33EF\"] = \"\\u0031\\u0036\\u65E5\";\n  t[\"\\u33F0\"] = \"\\u0031\\u0037\\u65E5\";\n  t[\"\\u33F1\"] = \"\\u0031\\u0038\\u65E5\";\n  t[\"\\u33F2\"] = \"\\u0031\\u0039\\u65E5\";\n  t[\"\\u33F3\"] = \"\\u0032\\u0030\\u65E5\";\n  t[\"\\u33F4\"] = \"\\u0032\\u0031\\u65E5\";\n  t[\"\\u33F5\"] = \"\\u0032\\u0032\\u65E5\";\n  t[\"\\u33F6\"] = \"\\u0032\\u0033\\u65E5\";\n  t[\"\\u33F7\"] = \"\\u0032\\u0034\\u65E5\";\n  t[\"\\u33F8\"] = \"\\u0032\\u0035\\u65E5\";\n  t[\"\\u33F9\"] = \"\\u0032\\u0036\\u65E5\";\n  t[\"\\u33FA\"] = \"\\u0032\\u0037\\u65E5\";\n  t[\"\\u33FB\"] = \"\\u0032\\u0038\\u65E5\";\n  t[\"\\u33FC\"] = \"\\u0032\\u0039\\u65E5\";\n  t[\"\\u33FD\"] = \"\\u0033\\u0030\\u65E5\";\n  t[\"\\u33FE\"] = \"\\u0033\\u0031\\u65E5\";\n  t[\"\\uFB00\"] = \"\\u0066\\u0066\";\n  t[\"\\uFB01\"] = \"\\u0066\\u0069\";\n  t[\"\\uFB02\"] = \"\\u0066\\u006C\";\n  t[\"\\uFB03\"] = \"\\u0066\\u0066\\u0069\";\n  t[\"\\uFB04\"] = \"\\u0066\\u0066\\u006C\";\n  t[\"\\uFB05\"] = \"\\u017F\\u0074\";\n  t[\"\\uFB06\"] = \"\\u0073\\u0074\";\n  t[\"\\uFB13\"] = \"\\u0574\\u0576\";\n  t[\"\\uFB14\"] = \"\\u0574\\u0565\";\n  t[\"\\uFB15\"] = \"\\u0574\\u056B\";\n  t[\"\\uFB16\"] = \"\\u057E\\u0576\";\n  t[\"\\uFB17\"] = \"\\u0574\\u056D\";\n  t[\"\\uFB4F\"] = \"\\u05D0\\u05DC\";\n  t[\"\\uFB50\"] = \"\\u0671\";\n  t[\"\\uFB51\"] = \"\\u0671\";\n  t[\"\\uFB52\"] = \"\\u067B\";\n  t[\"\\uFB53\"] = \"\\u067B\";\n  t[\"\\uFB54\"] = \"\\u067B\";\n  t[\"\\uFB55\"] = \"\\u067B\";\n  t[\"\\uFB56\"] = \"\\u067E\";\n  t[\"\\uFB57\"] = \"\\u067E\";\n  t[\"\\uFB58\"] = \"\\u067E\";\n  t[\"\\uFB59\"] = \"\\u067E\";\n  t[\"\\uFB5A\"] = \"\\u0680\";\n  t[\"\\uFB5B\"] = \"\\u0680\";\n  t[\"\\uFB5C\"] = \"\\u0680\";\n  t[\"\\uFB5D\"] = \"\\u0680\";\n  t[\"\\uFB5E\"] = \"\\u067A\";\n  t[\"\\uFB5F\"] = \"\\u067A\";\n  t[\"\\uFB60\"] = \"\\u067A\";\n  t[\"\\uFB61\"] = \"\\u067A\";\n  t[\"\\uFB62\"] = \"\\u067F\";\n  t[\"\\uFB63\"] = \"\\u067F\";\n  t[\"\\uFB64\"] = \"\\u067F\";\n  t[\"\\uFB65\"] = \"\\u067F\";\n  t[\"\\uFB66\"] = \"\\u0679\";\n  t[\"\\uFB67\"] = \"\\u0679\";\n  t[\"\\uFB68\"] = \"\\u0679\";\n  t[\"\\uFB69\"] = \"\\u0679\";\n  t[\"\\uFB6A\"] = \"\\u06A4\";\n  t[\"\\uFB6B\"] = \"\\u06A4\";\n  t[\"\\uFB6C\"] = \"\\u06A4\";\n  t[\"\\uFB6D\"] = \"\\u06A4\";\n  t[\"\\uFB6E\"] = \"\\u06A6\";\n  t[\"\\uFB6F\"] = \"\\u06A6\";\n  t[\"\\uFB70\"] = \"\\u06A6\";\n  t[\"\\uFB71\"] = \"\\u06A6\";\n  t[\"\\uFB72\"] = \"\\u0684\";\n  t[\"\\uFB73\"] = \"\\u0684\";\n  t[\"\\uFB74\"] = \"\\u0684\";\n  t[\"\\uFB75\"] = \"\\u0684\";\n  t[\"\\uFB76\"] = \"\\u0683\";\n  t[\"\\uFB77\"] = \"\\u0683\";\n  t[\"\\uFB78\"] = \"\\u0683\";\n  t[\"\\uFB79\"] = \"\\u0683\";\n  t[\"\\uFB7A\"] = \"\\u0686\";\n  t[\"\\uFB7B\"] = \"\\u0686\";\n  t[\"\\uFB7C\"] = \"\\u0686\";\n  t[\"\\uFB7D\"] = \"\\u0686\";\n  t[\"\\uFB7E\"] = \"\\u0687\";\n  t[\"\\uFB7F\"] = \"\\u0687\";\n  t[\"\\uFB80\"] = \"\\u0687\";\n  t[\"\\uFB81\"] = \"\\u0687\";\n  t[\"\\uFB82\"] = \"\\u068D\";\n  t[\"\\uFB83\"] = \"\\u068D\";\n  t[\"\\uFB84\"] = \"\\u068C\";\n  t[\"\\uFB85\"] = \"\\u068C\";\n  t[\"\\uFB86\"] = \"\\u068E\";\n  t[\"\\uFB87\"] = \"\\u068E\";\n  t[\"\\uFB88\"] = \"\\u0688\";\n  t[\"\\uFB89\"] = \"\\u0688\";\n  t[\"\\uFB8A\"] = \"\\u0698\";\n  t[\"\\uFB8B\"] = \"\\u0698\";\n  t[\"\\uFB8C\"] = \"\\u0691\";\n  t[\"\\uFB8D\"] = \"\\u0691\";\n  t[\"\\uFB8E\"] = \"\\u06A9\";\n  t[\"\\uFB8F\"] = \"\\u06A9\";\n  t[\"\\uFB90\"] = \"\\u06A9\";\n  t[\"\\uFB91\"] = \"\\u06A9\";\n  t[\"\\uFB92\"] = \"\\u06AF\";\n  t[\"\\uFB93\"] = \"\\u06AF\";\n  t[\"\\uFB94\"] = \"\\u06AF\";\n  t[\"\\uFB95\"] = \"\\u06AF\";\n  t[\"\\uFB96\"] = \"\\u06B3\";\n  t[\"\\uFB97\"] = \"\\u06B3\";\n  t[\"\\uFB98\"] = \"\\u06B3\";\n  t[\"\\uFB99\"] = \"\\u06B3\";\n  t[\"\\uFB9A\"] = \"\\u06B1\";\n  t[\"\\uFB9B\"] = \"\\u06B1\";\n  t[\"\\uFB9C\"] = \"\\u06B1\";\n  t[\"\\uFB9D\"] = \"\\u06B1\";\n  t[\"\\uFB9E\"] = \"\\u06BA\";\n  t[\"\\uFB9F\"] = \"\\u06BA\";\n  t[\"\\uFBA0\"] = \"\\u06BB\";\n  t[\"\\uFBA1\"] = \"\\u06BB\";\n  t[\"\\uFBA2\"] = \"\\u06BB\";\n  t[\"\\uFBA3\"] = \"\\u06BB\";\n  t[\"\\uFBA4\"] = \"\\u06C0\";\n  t[\"\\uFBA5\"] = \"\\u06C0\";\n  t[\"\\uFBA6\"] = \"\\u06C1\";\n  t[\"\\uFBA7\"] = \"\\u06C1\";\n  t[\"\\uFBA8\"] = \"\\u06C1\";\n  t[\"\\uFBA9\"] = \"\\u06C1\";\n  t[\"\\uFBAA\"] = \"\\u06BE\";\n  t[\"\\uFBAB\"] = \"\\u06BE\";\n  t[\"\\uFBAC\"] = \"\\u06BE\";\n  t[\"\\uFBAD\"] = \"\\u06BE\";\n  t[\"\\uFBAE\"] = \"\\u06D2\";\n  t[\"\\uFBAF\"] = \"\\u06D2\";\n  t[\"\\uFBB0\"] = \"\\u06D3\";\n  t[\"\\uFBB1\"] = \"\\u06D3\";\n  t[\"\\uFBD3\"] = \"\\u06AD\";\n  t[\"\\uFBD4\"] = \"\\u06AD\";\n  t[\"\\uFBD5\"] = \"\\u06AD\";\n  t[\"\\uFBD6\"] = \"\\u06AD\";\n  t[\"\\uFBD7\"] = \"\\u06C7\";\n  t[\"\\uFBD8\"] = \"\\u06C7\";\n  t[\"\\uFBD9\"] = \"\\u06C6\";\n  t[\"\\uFBDA\"] = \"\\u06C6\";\n  t[\"\\uFBDB\"] = \"\\u06C8\";\n  t[\"\\uFBDC\"] = \"\\u06C8\";\n  t[\"\\uFBDD\"] = \"\\u0677\";\n  t[\"\\uFBDE\"] = \"\\u06CB\";\n  t[\"\\uFBDF\"] = \"\\u06CB\";\n  t[\"\\uFBE0\"] = \"\\u06C5\";\n  t[\"\\uFBE1\"] = \"\\u06C5\";\n  t[\"\\uFBE2\"] = \"\\u06C9\";\n  t[\"\\uFBE3\"] = \"\\u06C9\";\n  t[\"\\uFBE4\"] = \"\\u06D0\";\n  t[\"\\uFBE5\"] = \"\\u06D0\";\n  t[\"\\uFBE6\"] = \"\\u06D0\";\n  t[\"\\uFBE7\"] = \"\\u06D0\";\n  t[\"\\uFBE8\"] = \"\\u0649\";\n  t[\"\\uFBE9\"] = \"\\u0649\";\n  t[\"\\uFBEA\"] = \"\\u0626\\u0627\";\n  t[\"\\uFBEB\"] = \"\\u0626\\u0627\";\n  t[\"\\uFBEC\"] = \"\\u0626\\u06D5\";\n  t[\"\\uFBED\"] = \"\\u0626\\u06D5\";\n  t[\"\\uFBEE\"] = \"\\u0626\\u0648\";\n  t[\"\\uFBEF\"] = \"\\u0626\\u0648\";\n  t[\"\\uFBF0\"] = \"\\u0626\\u06C7\";\n  t[\"\\uFBF1\"] = \"\\u0626\\u06C7\";\n  t[\"\\uFBF2\"] = \"\\u0626\\u06C6\";\n  t[\"\\uFBF3\"] = \"\\u0626\\u06C6\";\n  t[\"\\uFBF4\"] = \"\\u0626\\u06C8\";\n  t[\"\\uFBF5\"] = \"\\u0626\\u06C8\";\n  t[\"\\uFBF6\"] = \"\\u0626\\u06D0\";\n  t[\"\\uFBF7\"] = \"\\u0626\\u06D0\";\n  t[\"\\uFBF8\"] = \"\\u0626\\u06D0\";\n  t[\"\\uFBF9\"] = \"\\u0626\\u0649\";\n  t[\"\\uFBFA\"] = \"\\u0626\\u0649\";\n  t[\"\\uFBFB\"] = \"\\u0626\\u0649\";\n  t[\"\\uFBFC\"] = \"\\u06CC\";\n  t[\"\\uFBFD\"] = \"\\u06CC\";\n  t[\"\\uFBFE\"] = \"\\u06CC\";\n  t[\"\\uFBFF\"] = \"\\u06CC\";\n  t[\"\\uFC00\"] = \"\\u0626\\u062C\";\n  t[\"\\uFC01\"] = \"\\u0626\\u062D\";\n  t[\"\\uFC02\"] = \"\\u0626\\u0645\";\n  t[\"\\uFC03\"] = \"\\u0626\\u0649\";\n  t[\"\\uFC04\"] = \"\\u0626\\u064A\";\n  t[\"\\uFC05\"] = \"\\u0628\\u062C\";\n  t[\"\\uFC06\"] = \"\\u0628\\u062D\";\n  t[\"\\uFC07\"] = \"\\u0628\\u062E\";\n  t[\"\\uFC08\"] = \"\\u0628\\u0645\";\n  t[\"\\uFC09\"] = \"\\u0628\\u0649\";\n  t[\"\\uFC0A\"] = \"\\u0628\\u064A\";\n  t[\"\\uFC0B\"] = \"\\u062A\\u062C\";\n  t[\"\\uFC0C\"] = \"\\u062A\\u062D\";\n  t[\"\\uFC0D\"] = \"\\u062A\\u062E\";\n  t[\"\\uFC0E\"] = \"\\u062A\\u0645\";\n  t[\"\\uFC0F\"] = \"\\u062A\\u0649\";\n  t[\"\\uFC10\"] = \"\\u062A\\u064A\";\n  t[\"\\uFC11\"] = \"\\u062B\\u062C\";\n  t[\"\\uFC12\"] = \"\\u062B\\u0645\";\n  t[\"\\uFC13\"] = \"\\u062B\\u0649\";\n  t[\"\\uFC14\"] = \"\\u062B\\u064A\";\n  t[\"\\uFC15\"] = \"\\u062C\\u062D\";\n  t[\"\\uFC16\"] = \"\\u062C\\u0645\";\n  t[\"\\uFC17\"] = \"\\u062D\\u062C\";\n  t[\"\\uFC18\"] = \"\\u062D\\u0645\";\n  t[\"\\uFC19\"] = \"\\u062E\\u062C\";\n  t[\"\\uFC1A\"] = \"\\u062E\\u062D\";\n  t[\"\\uFC1B\"] = \"\\u062E\\u0645\";\n  t[\"\\uFC1C\"] = \"\\u0633\\u062C\";\n  t[\"\\uFC1D\"] = \"\\u0633\\u062D\";\n  t[\"\\uFC1E\"] = \"\\u0633\\u062E\";\n  t[\"\\uFC1F\"] = \"\\u0633\\u0645\";\n  t[\"\\uFC20\"] = \"\\u0635\\u062D\";\n  t[\"\\uFC21\"] = \"\\u0635\\u0645\";\n  t[\"\\uFC22\"] = \"\\u0636\\u062C\";\n  t[\"\\uFC23\"] = \"\\u0636\\u062D\";\n  t[\"\\uFC24\"] = \"\\u0636\\u062E\";\n  t[\"\\uFC25\"] = \"\\u0636\\u0645\";\n  t[\"\\uFC26\"] = \"\\u0637\\u062D\";\n  t[\"\\uFC27\"] = \"\\u0637\\u0645\";\n  t[\"\\uFC28\"] = \"\\u0638\\u0645\";\n  t[\"\\uFC29\"] = \"\\u0639\\u062C\";\n  t[\"\\uFC2A\"] = \"\\u0639\\u0645\";\n  t[\"\\uFC2B\"] = \"\\u063A\\u062C\";\n  t[\"\\uFC2C\"] = \"\\u063A\\u0645\";\n  t[\"\\uFC2D\"] = \"\\u0641\\u062C\";\n  t[\"\\uFC2E\"] = \"\\u0641\\u062D\";\n  t[\"\\uFC2F\"] = \"\\u0641\\u062E\";\n  t[\"\\uFC30\"] = \"\\u0641\\u0645\";\n  t[\"\\uFC31\"] = \"\\u0641\\u0649\";\n  t[\"\\uFC32\"] = \"\\u0641\\u064A\";\n  t[\"\\uFC33\"] = \"\\u0642\\u062D\";\n  t[\"\\uFC34\"] = \"\\u0642\\u0645\";\n  t[\"\\uFC35\"] = \"\\u0642\\u0649\";\n  t[\"\\uFC36\"] = \"\\u0642\\u064A\";\n  t[\"\\uFC37\"] = \"\\u0643\\u0627\";\n  t[\"\\uFC38\"] = \"\\u0643\\u062C\";\n  t[\"\\uFC39\"] = \"\\u0643\\u062D\";\n  t[\"\\uFC3A\"] = \"\\u0643\\u062E\";\n  t[\"\\uFC3B\"] = \"\\u0643\\u0644\";\n  t[\"\\uFC3C\"] = \"\\u0643\\u0645\";\n  t[\"\\uFC3D\"] = \"\\u0643\\u0649\";\n  t[\"\\uFC3E\"] = \"\\u0643\\u064A\";\n  t[\"\\uFC3F\"] = \"\\u0644\\u062C\";\n  t[\"\\uFC40\"] = \"\\u0644\\u062D\";\n  t[\"\\uFC41\"] = \"\\u0644\\u062E\";\n  t[\"\\uFC42\"] = \"\\u0644\\u0645\";\n  t[\"\\uFC43\"] = \"\\u0644\\u0649\";\n  t[\"\\uFC44\"] = \"\\u0644\\u064A\";\n  t[\"\\uFC45\"] = \"\\u0645\\u062C\";\n  t[\"\\uFC46\"] = \"\\u0645\\u062D\";\n  t[\"\\uFC47\"] = \"\\u0645\\u062E\";\n  t[\"\\uFC48\"] = \"\\u0645\\u0645\";\n  t[\"\\uFC49\"] = \"\\u0645\\u0649\";\n  t[\"\\uFC4A\"] = \"\\u0645\\u064A\";\n  t[\"\\uFC4B\"] = \"\\u0646\\u062C\";\n  t[\"\\uFC4C\"] = \"\\u0646\\u062D\";\n  t[\"\\uFC4D\"] = \"\\u0646\\u062E\";\n  t[\"\\uFC4E\"] = \"\\u0646\\u0645\";\n  t[\"\\uFC4F\"] = \"\\u0646\\u0649\";\n  t[\"\\uFC50\"] = \"\\u0646\\u064A\";\n  t[\"\\uFC51\"] = \"\\u0647\\u062C\";\n  t[\"\\uFC52\"] = \"\\u0647\\u0645\";\n  t[\"\\uFC53\"] = \"\\u0647\\u0649\";\n  t[\"\\uFC54\"] = \"\\u0647\\u064A\";\n  t[\"\\uFC55\"] = \"\\u064A\\u062C\";\n  t[\"\\uFC56\"] = \"\\u064A\\u062D\";\n  t[\"\\uFC57\"] = \"\\u064A\\u062E\";\n  t[\"\\uFC58\"] = \"\\u064A\\u0645\";\n  t[\"\\uFC59\"] = \"\\u064A\\u0649\";\n  t[\"\\uFC5A\"] = \"\\u064A\\u064A\";\n  t[\"\\uFC5B\"] = \"\\u0630\\u0670\";\n  t[\"\\uFC5C\"] = \"\\u0631\\u0670\";\n  t[\"\\uFC5D\"] = \"\\u0649\\u0670\";\n  t[\"\\uFC5E\"] = \"\\u0020\\u064C\\u0651\";\n  t[\"\\uFC5F\"] = \"\\u0020\\u064D\\u0651\";\n  t[\"\\uFC60\"] = \"\\u0020\\u064E\\u0651\";\n  t[\"\\uFC61\"] = \"\\u0020\\u064F\\u0651\";\n  t[\"\\uFC62\"] = \"\\u0020\\u0650\\u0651\";\n  t[\"\\uFC63\"] = \"\\u0020\\u0651\\u0670\";\n  t[\"\\uFC64\"] = \"\\u0626\\u0631\";\n  t[\"\\uFC65\"] = \"\\u0626\\u0632\";\n  t[\"\\uFC66\"] = \"\\u0626\\u0645\";\n  t[\"\\uFC67\"] = \"\\u0626\\u0646\";\n  t[\"\\uFC68\"] = \"\\u0626\\u0649\";\n  t[\"\\uFC69\"] = \"\\u0626\\u064A\";\n  t[\"\\uFC6A\"] = \"\\u0628\\u0631\";\n  t[\"\\uFC6B\"] = \"\\u0628\\u0632\";\n  t[\"\\uFC6C\"] = \"\\u0628\\u0645\";\n  t[\"\\uFC6D\"] = \"\\u0628\\u0646\";\n  t[\"\\uFC6E\"] = \"\\u0628\\u0649\";\n  t[\"\\uFC6F\"] = \"\\u0628\\u064A\";\n  t[\"\\uFC70\"] = \"\\u062A\\u0631\";\n  t[\"\\uFC71\"] = \"\\u062A\\u0632\";\n  t[\"\\uFC72\"] = \"\\u062A\\u0645\";\n  t[\"\\uFC73\"] = \"\\u062A\\u0646\";\n  t[\"\\uFC74\"] = \"\\u062A\\u0649\";\n  t[\"\\uFC75\"] = \"\\u062A\\u064A\";\n  t[\"\\uFC76\"] = \"\\u062B\\u0631\";\n  t[\"\\uFC77\"] = \"\\u062B\\u0632\";\n  t[\"\\uFC78\"] = \"\\u062B\\u0645\";\n  t[\"\\uFC79\"] = \"\\u062B\\u0646\";\n  t[\"\\uFC7A\"] = \"\\u062B\\u0649\";\n  t[\"\\uFC7B\"] = \"\\u062B\\u064A\";\n  t[\"\\uFC7C\"] = \"\\u0641\\u0649\";\n  t[\"\\uFC7D\"] = \"\\u0641\\u064A\";\n  t[\"\\uFC7E\"] = \"\\u0642\\u0649\";\n  t[\"\\uFC7F\"] = \"\\u0642\\u064A\";\n  t[\"\\uFC80\"] = \"\\u0643\\u0627\";\n  t[\"\\uFC81\"] = \"\\u0643\\u0644\";\n  t[\"\\uFC82\"] = \"\\u0643\\u0645\";\n  t[\"\\uFC83\"] = \"\\u0643\\u0649\";\n  t[\"\\uFC84\"] = \"\\u0643\\u064A\";\n  t[\"\\uFC85\"] = \"\\u0644\\u0645\";\n  t[\"\\uFC86\"] = \"\\u0644\\u0649\";\n  t[\"\\uFC87\"] = \"\\u0644\\u064A\";\n  t[\"\\uFC88\"] = \"\\u0645\\u0627\";\n  t[\"\\uFC89\"] = \"\\u0645\\u0645\";\n  t[\"\\uFC8A\"] = \"\\u0646\\u0631\";\n  t[\"\\uFC8B\"] = \"\\u0646\\u0632\";\n  t[\"\\uFC8C\"] = \"\\u0646\\u0645\";\n  t[\"\\uFC8D\"] = \"\\u0646\\u0646\";\n  t[\"\\uFC8E\"] = \"\\u0646\\u0649\";\n  t[\"\\uFC8F\"] = \"\\u0646\\u064A\";\n  t[\"\\uFC90\"] = \"\\u0649\\u0670\";\n  t[\"\\uFC91\"] = \"\\u064A\\u0631\";\n  t[\"\\uFC92\"] = \"\\u064A\\u0632\";\n  t[\"\\uFC93\"] = \"\\u064A\\u0645\";\n  t[\"\\uFC94\"] = \"\\u064A\\u0646\";\n  t[\"\\uFC95\"] = \"\\u064A\\u0649\";\n  t[\"\\uFC96\"] = \"\\u064A\\u064A\";\n  t[\"\\uFC97\"] = \"\\u0626\\u062C\";\n  t[\"\\uFC98\"] = \"\\u0626\\u062D\";\n  t[\"\\uFC99\"] = \"\\u0626\\u062E\";\n  t[\"\\uFC9A\"] = \"\\u0626\\u0645\";\n  t[\"\\uFC9B\"] = \"\\u0626\\u0647\";\n  t[\"\\uFC9C\"] = \"\\u0628\\u062C\";\n  t[\"\\uFC9D\"] = \"\\u0628\\u062D\";\n  t[\"\\uFC9E\"] = \"\\u0628\\u062E\";\n  t[\"\\uFC9F\"] = \"\\u0628\\u0645\";\n  t[\"\\uFCA0\"] = \"\\u0628\\u0647\";\n  t[\"\\uFCA1\"] = \"\\u062A\\u062C\";\n  t[\"\\uFCA2\"] = \"\\u062A\\u062D\";\n  t[\"\\uFCA3\"] = \"\\u062A\\u062E\";\n  t[\"\\uFCA4\"] = \"\\u062A\\u0645\";\n  t[\"\\uFCA5\"] = \"\\u062A\\u0647\";\n  t[\"\\uFCA6\"] = \"\\u062B\\u0645\";\n  t[\"\\uFCA7\"] = \"\\u062C\\u062D\";\n  t[\"\\uFCA8\"] = \"\\u062C\\u0645\";\n  t[\"\\uFCA9\"] = \"\\u062D\\u062C\";\n  t[\"\\uFCAA\"] = \"\\u062D\\u0645\";\n  t[\"\\uFCAB\"] = \"\\u062E\\u062C\";\n  t[\"\\uFCAC\"] = \"\\u062E\\u0645\";\n  t[\"\\uFCAD\"] = \"\\u0633\\u062C\";\n  t[\"\\uFCAE\"] = \"\\u0633\\u062D\";\n  t[\"\\uFCAF\"] = \"\\u0633\\u062E\";\n  t[\"\\uFCB0\"] = \"\\u0633\\u0645\";\n  t[\"\\uFCB1\"] = \"\\u0635\\u062D\";\n  t[\"\\uFCB2\"] = \"\\u0635\\u062E\";\n  t[\"\\uFCB3\"] = \"\\u0635\\u0645\";\n  t[\"\\uFCB4\"] = \"\\u0636\\u062C\";\n  t[\"\\uFCB5\"] = \"\\u0636\\u062D\";\n  t[\"\\uFCB6\"] = \"\\u0636\\u062E\";\n  t[\"\\uFCB7\"] = \"\\u0636\\u0645\";\n  t[\"\\uFCB8\"] = \"\\u0637\\u062D\";\n  t[\"\\uFCB9\"] = \"\\u0638\\u0645\";\n  t[\"\\uFCBA\"] = \"\\u0639\\u062C\";\n  t[\"\\uFCBB\"] = \"\\u0639\\u0645\";\n  t[\"\\uFCBC\"] = \"\\u063A\\u062C\";\n  t[\"\\uFCBD\"] = \"\\u063A\\u0645\";\n  t[\"\\uFCBE\"] = \"\\u0641\\u062C\";\n  t[\"\\uFCBF\"] = \"\\u0641\\u062D\";\n  t[\"\\uFCC0\"] = \"\\u0641\\u062E\";\n  t[\"\\uFCC1\"] = \"\\u0641\\u0645\";\n  t[\"\\uFCC2\"] = \"\\u0642\\u062D\";\n  t[\"\\uFCC3\"] = \"\\u0642\\u0645\";\n  t[\"\\uFCC4\"] = \"\\u0643\\u062C\";\n  t[\"\\uFCC5\"] = \"\\u0643\\u062D\";\n  t[\"\\uFCC6\"] = \"\\u0643\\u062E\";\n  t[\"\\uFCC7\"] = \"\\u0643\\u0644\";\n  t[\"\\uFCC8\"] = \"\\u0643\\u0645\";\n  t[\"\\uFCC9\"] = \"\\u0644\\u062C\";\n  t[\"\\uFCCA\"] = \"\\u0644\\u062D\";\n  t[\"\\uFCCB\"] = \"\\u0644\\u062E\";\n  t[\"\\uFCCC\"] = \"\\u0644\\u0645\";\n  t[\"\\uFCCD\"] = \"\\u0644\\u0647\";\n  t[\"\\uFCCE\"] = \"\\u0645\\u062C\";\n  t[\"\\uFCCF\"] = \"\\u0645\\u062D\";\n  t[\"\\uFCD0\"] = \"\\u0645\\u062E\";\n  t[\"\\uFCD1\"] = \"\\u0645\\u0645\";\n  t[\"\\uFCD2\"] = \"\\u0646\\u062C\";\n  t[\"\\uFCD3\"] = \"\\u0646\\u062D\";\n  t[\"\\uFCD4\"] = \"\\u0646\\u062E\";\n  t[\"\\uFCD5\"] = \"\\u0646\\u0645\";\n  t[\"\\uFCD6\"] = \"\\u0646\\u0647\";\n  t[\"\\uFCD7\"] = \"\\u0647\\u062C\";\n  t[\"\\uFCD8\"] = \"\\u0647\\u0645\";\n  t[\"\\uFCD9\"] = \"\\u0647\\u0670\";\n  t[\"\\uFCDA\"] = \"\\u064A\\u062C\";\n  t[\"\\uFCDB\"] = \"\\u064A\\u062D\";\n  t[\"\\uFCDC\"] = \"\\u064A\\u062E\";\n  t[\"\\uFCDD\"] = \"\\u064A\\u0645\";\n  t[\"\\uFCDE\"] = \"\\u064A\\u0647\";\n  t[\"\\uFCDF\"] = \"\\u0626\\u0645\";\n  t[\"\\uFCE0\"] = \"\\u0626\\u0647\";\n  t[\"\\uFCE1\"] = \"\\u0628\\u0645\";\n  t[\"\\uFCE2\"] = \"\\u0628\\u0647\";\n  t[\"\\uFCE3\"] = \"\\u062A\\u0645\";\n  t[\"\\uFCE4\"] = \"\\u062A\\u0647\";\n  t[\"\\uFCE5\"] = \"\\u062B\\u0645\";\n  t[\"\\uFCE6\"] = \"\\u062B\\u0647\";\n  t[\"\\uFCE7\"] = \"\\u0633\\u0645\";\n  t[\"\\uFCE8\"] = \"\\u0633\\u0647\";\n  t[\"\\uFCE9\"] = \"\\u0634\\u0645\";\n  t[\"\\uFCEA\"] = \"\\u0634\\u0647\";\n  t[\"\\uFCEB\"] = \"\\u0643\\u0644\";\n  t[\"\\uFCEC\"] = \"\\u0643\\u0645\";\n  t[\"\\uFCED\"] = \"\\u0644\\u0645\";\n  t[\"\\uFCEE\"] = \"\\u0646\\u0645\";\n  t[\"\\uFCEF\"] = \"\\u0646\\u0647\";\n  t[\"\\uFCF0\"] = \"\\u064A\\u0645\";\n  t[\"\\uFCF1\"] = \"\\u064A\\u0647\";\n  t[\"\\uFCF2\"] = \"\\u0640\\u064E\\u0651\";\n  t[\"\\uFCF3\"] = \"\\u0640\\u064F\\u0651\";\n  t[\"\\uFCF4\"] = \"\\u0640\\u0650\\u0651\";\n  t[\"\\uFCF5\"] = \"\\u0637\\u0649\";\n  t[\"\\uFCF6\"] = \"\\u0637\\u064A\";\n  t[\"\\uFCF7\"] = \"\\u0639\\u0649\";\n  t[\"\\uFCF8\"] = \"\\u0639\\u064A\";\n  t[\"\\uFCF9\"] = \"\\u063A\\u0649\";\n  t[\"\\uFCFA\"] = \"\\u063A\\u064A\";\n  t[\"\\uFCFB\"] = \"\\u0633\\u0649\";\n  t[\"\\uFCFC\"] = \"\\u0633\\u064A\";\n  t[\"\\uFCFD\"] = \"\\u0634\\u0649\";\n  t[\"\\uFCFE\"] = \"\\u0634\\u064A\";\n  t[\"\\uFCFF\"] = \"\\u062D\\u0649\";\n  t[\"\\uFD00\"] = \"\\u062D\\u064A\";\n  t[\"\\uFD01\"] = \"\\u062C\\u0649\";\n  t[\"\\uFD02\"] = \"\\u062C\\u064A\";\n  t[\"\\uFD03\"] = \"\\u062E\\u0649\";\n  t[\"\\uFD04\"] = \"\\u062E\\u064A\";\n  t[\"\\uFD05\"] = \"\\u0635\\u0649\";\n  t[\"\\uFD06\"] = \"\\u0635\\u064A\";\n  t[\"\\uFD07\"] = \"\\u0636\\u0649\";\n  t[\"\\uFD08\"] = \"\\u0636\\u064A\";\n  t[\"\\uFD09\"] = \"\\u0634\\u062C\";\n  t[\"\\uFD0A\"] = \"\\u0634\\u062D\";\n  t[\"\\uFD0B\"] = \"\\u0634\\u062E\";\n  t[\"\\uFD0C\"] = \"\\u0634\\u0645\";\n  t[\"\\uFD0D\"] = \"\\u0634\\u0631\";\n  t[\"\\uFD0E\"] = \"\\u0633\\u0631\";\n  t[\"\\uFD0F\"] = \"\\u0635\\u0631\";\n  t[\"\\uFD10\"] = \"\\u0636\\u0631\";\n  t[\"\\uFD11\"] = \"\\u0637\\u0649\";\n  t[\"\\uFD12\"] = \"\\u0637\\u064A\";\n  t[\"\\uFD13\"] = \"\\u0639\\u0649\";\n  t[\"\\uFD14\"] = \"\\u0639\\u064A\";\n  t[\"\\uFD15\"] = \"\\u063A\\u0649\";\n  t[\"\\uFD16\"] = \"\\u063A\\u064A\";\n  t[\"\\uFD17\"] = \"\\u0633\\u0649\";\n  t[\"\\uFD18\"] = \"\\u0633\\u064A\";\n  t[\"\\uFD19\"] = \"\\u0634\\u0649\";\n  t[\"\\uFD1A\"] = \"\\u0634\\u064A\";\n  t[\"\\uFD1B\"] = \"\\u062D\\u0649\";\n  t[\"\\uFD1C\"] = \"\\u062D\\u064A\";\n  t[\"\\uFD1D\"] = \"\\u062C\\u0649\";\n  t[\"\\uFD1E\"] = \"\\u062C\\u064A\";\n  t[\"\\uFD1F\"] = \"\\u062E\\u0649\";\n  t[\"\\uFD20\"] = \"\\u062E\\u064A\";\n  t[\"\\uFD21\"] = \"\\u0635\\u0649\";\n  t[\"\\uFD22\"] = \"\\u0635\\u064A\";\n  t[\"\\uFD23\"] = \"\\u0636\\u0649\";\n  t[\"\\uFD24\"] = \"\\u0636\\u064A\";\n  t[\"\\uFD25\"] = \"\\u0634\\u062C\";\n  t[\"\\uFD26\"] = \"\\u0634\\u062D\";\n  t[\"\\uFD27\"] = \"\\u0634\\u062E\";\n  t[\"\\uFD28\"] = \"\\u0634\\u0645\";\n  t[\"\\uFD29\"] = \"\\u0634\\u0631\";\n  t[\"\\uFD2A\"] = \"\\u0633\\u0631\";\n  t[\"\\uFD2B\"] = \"\\u0635\\u0631\";\n  t[\"\\uFD2C\"] = \"\\u0636\\u0631\";\n  t[\"\\uFD2D\"] = \"\\u0634\\u062C\";\n  t[\"\\uFD2E\"] = \"\\u0634\\u062D\";\n  t[\"\\uFD2F\"] = \"\\u0634\\u062E\";\n  t[\"\\uFD30\"] = \"\\u0634\\u0645\";\n  t[\"\\uFD31\"] = \"\\u0633\\u0647\";\n  t[\"\\uFD32\"] = \"\\u0634\\u0647\";\n  t[\"\\uFD33\"] = \"\\u0637\\u0645\";\n  t[\"\\uFD34\"] = \"\\u0633\\u062C\";\n  t[\"\\uFD35\"] = \"\\u0633\\u062D\";\n  t[\"\\uFD36\"] = \"\\u0633\\u062E\";\n  t[\"\\uFD37\"] = \"\\u0634\\u062C\";\n  t[\"\\uFD38\"] = \"\\u0634\\u062D\";\n  t[\"\\uFD39\"] = \"\\u0634\\u062E\";\n  t[\"\\uFD3A\"] = \"\\u0637\\u0645\";\n  t[\"\\uFD3B\"] = \"\\u0638\\u0645\";\n  t[\"\\uFD3C\"] = \"\\u0627\\u064B\";\n  t[\"\\uFD3D\"] = \"\\u0627\\u064B\";\n  t[\"\\uFD50\"] = \"\\u062A\\u062C\\u0645\";\n  t[\"\\uFD51\"] = \"\\u062A\\u062D\\u062C\";\n  t[\"\\uFD52\"] = \"\\u062A\\u062D\\u062C\";\n  t[\"\\uFD53\"] = \"\\u062A\\u062D\\u0645\";\n  t[\"\\uFD54\"] = \"\\u062A\\u062E\\u0645\";\n  t[\"\\uFD55\"] = \"\\u062A\\u0645\\u062C\";\n  t[\"\\uFD56\"] = \"\\u062A\\u0645\\u062D\";\n  t[\"\\uFD57\"] = \"\\u062A\\u0645\\u062E\";\n  t[\"\\uFD58\"] = \"\\u062C\\u0645\\u062D\";\n  t[\"\\uFD59\"] = \"\\u062C\\u0645\\u062D\";\n  t[\"\\uFD5A\"] = \"\\u062D\\u0645\\u064A\";\n  t[\"\\uFD5B\"] = \"\\u062D\\u0645\\u0649\";\n  t[\"\\uFD5C\"] = \"\\u0633\\u062D\\u062C\";\n  t[\"\\uFD5D\"] = \"\\u0633\\u062C\\u062D\";\n  t[\"\\uFD5E\"] = \"\\u0633\\u062C\\u0649\";\n  t[\"\\uFD5F\"] = \"\\u0633\\u0645\\u062D\";\n  t[\"\\uFD60\"] = \"\\u0633\\u0645\\u062D\";\n  t[\"\\uFD61\"] = \"\\u0633\\u0645\\u062C\";\n  t[\"\\uFD62\"] = \"\\u0633\\u0645\\u0645\";\n  t[\"\\uFD63\"] = \"\\u0633\\u0645\\u0645\";\n  t[\"\\uFD64\"] = \"\\u0635\\u062D\\u062D\";\n  t[\"\\uFD65\"] = \"\\u0635\\u062D\\u062D\";\n  t[\"\\uFD66\"] = \"\\u0635\\u0645\\u0645\";\n  t[\"\\uFD67\"] = \"\\u0634\\u062D\\u0645\";\n  t[\"\\uFD68\"] = \"\\u0634\\u062D\\u0645\";\n  t[\"\\uFD69\"] = \"\\u0634\\u062C\\u064A\";\n  t[\"\\uFD6A\"] = \"\\u0634\\u0645\\u062E\";\n  t[\"\\uFD6B\"] = \"\\u0634\\u0645\\u062E\";\n  t[\"\\uFD6C\"] = \"\\u0634\\u0645\\u0645\";\n  t[\"\\uFD6D\"] = \"\\u0634\\u0645\\u0645\";\n  t[\"\\uFD6E\"] = \"\\u0636\\u062D\\u0649\";\n  t[\"\\uFD6F\"] = \"\\u0636\\u062E\\u0645\";\n  t[\"\\uFD70\"] = \"\\u0636\\u062E\\u0645\";\n  t[\"\\uFD71\"] = \"\\u0637\\u0645\\u062D\";\n  t[\"\\uFD72\"] = \"\\u0637\\u0645\\u062D\";\n  t[\"\\uFD73\"] = \"\\u0637\\u0645\\u0645\";\n  t[\"\\uFD74\"] = \"\\u0637\\u0645\\u064A\";\n  t[\"\\uFD75\"] = \"\\u0639\\u062C\\u0645\";\n  t[\"\\uFD76\"] = \"\\u0639\\u0645\\u0645\";\n  t[\"\\uFD77\"] = \"\\u0639\\u0645\\u0645\";\n  t[\"\\uFD78\"] = \"\\u0639\\u0645\\u0649\";\n  t[\"\\uFD79\"] = \"\\u063A\\u0645\\u0645\";\n  t[\"\\uFD7A\"] = \"\\u063A\\u0645\\u064A\";\n  t[\"\\uFD7B\"] = \"\\u063A\\u0645\\u0649\";\n  t[\"\\uFD7C\"] = \"\\u0641\\u062E\\u0645\";\n  t[\"\\uFD7D\"] = \"\\u0641\\u062E\\u0645\";\n  t[\"\\uFD7E\"] = \"\\u0642\\u0645\\u062D\";\n  t[\"\\uFD7F\"] = \"\\u0642\\u0645\\u0645\";\n  t[\"\\uFD80\"] = \"\\u0644\\u062D\\u0645\";\n  t[\"\\uFD81\"] = \"\\u0644\\u062D\\u064A\";\n  t[\"\\uFD82\"] = \"\\u0644\\u062D\\u0649\";\n  t[\"\\uFD83\"] = \"\\u0644\\u062C\\u062C\";\n  t[\"\\uFD84\"] = \"\\u0644\\u062C\\u062C\";\n  t[\"\\uFD85\"] = \"\\u0644\\u062E\\u0645\";\n  t[\"\\uFD86\"] = \"\\u0644\\u062E\\u0645\";\n  t[\"\\uFD87\"] = \"\\u0644\\u0645\\u062D\";\n  t[\"\\uFD88\"] = \"\\u0644\\u0645\\u062D\";\n  t[\"\\uFD89\"] = \"\\u0645\\u062D\\u062C\";\n  t[\"\\uFD8A\"] = \"\\u0645\\u062D\\u0645\";\n  t[\"\\uFD8B\"] = \"\\u0645\\u062D\\u064A\";\n  t[\"\\uFD8C\"] = \"\\u0645\\u062C\\u062D\";\n  t[\"\\uFD8D\"] = \"\\u0645\\u062C\\u0645\";\n  t[\"\\uFD8E\"] = \"\\u0645\\u062E\\u062C\";\n  t[\"\\uFD8F\"] = \"\\u0645\\u062E\\u0645\";\n  t[\"\\uFD92\"] = \"\\u0645\\u062C\\u062E\";\n  t[\"\\uFD93\"] = \"\\u0647\\u0645\\u062C\";\n  t[\"\\uFD94\"] = \"\\u0647\\u0645\\u0645\";\n  t[\"\\uFD95\"] = \"\\u0646\\u062D\\u0645\";\n  t[\"\\uFD96\"] = \"\\u0646\\u062D\\u0649\";\n  t[\"\\uFD97\"] = \"\\u0646\\u062C\\u0645\";\n  t[\"\\uFD98\"] = \"\\u0646\\u062C\\u0645\";\n  t[\"\\uFD99\"] = \"\\u0646\\u062C\\u0649\";\n  t[\"\\uFD9A\"] = \"\\u0646\\u0645\\u064A\";\n  t[\"\\uFD9B\"] = \"\\u0646\\u0645\\u0649\";\n  t[\"\\uFD9C\"] = \"\\u064A\\u0645\\u0645\";\n  t[\"\\uFD9D\"] = \"\\u064A\\u0645\\u0645\";\n  t[\"\\uFD9E\"] = \"\\u0628\\u062E\\u064A\";\n  t[\"\\uFD9F\"] = \"\\u062A\\u062C\\u064A\";\n  t[\"\\uFDA0\"] = \"\\u062A\\u062C\\u0649\";\n  t[\"\\uFDA1\"] = \"\\u062A\\u062E\\u064A\";\n  t[\"\\uFDA2\"] = \"\\u062A\\u062E\\u0649\";\n  t[\"\\uFDA3\"] = \"\\u062A\\u0645\\u064A\";\n  t[\"\\uFDA4\"] = \"\\u062A\\u0645\\u0649\";\n  t[\"\\uFDA5\"] = \"\\u062C\\u0645\\u064A\";\n  t[\"\\uFDA6\"] = \"\\u062C\\u062D\\u0649\";\n  t[\"\\uFDA7\"] = \"\\u062C\\u0645\\u0649\";\n  t[\"\\uFDA8\"] = \"\\u0633\\u062E\\u0649\";\n  t[\"\\uFDA9\"] = \"\\u0635\\u062D\\u064A\";\n  t[\"\\uFDAA\"] = \"\\u0634\\u062D\\u064A\";\n  t[\"\\uFDAB\"] = \"\\u0636\\u062D\\u064A\";\n  t[\"\\uFDAC\"] = \"\\u0644\\u062C\\u064A\";\n  t[\"\\uFDAD\"] = \"\\u0644\\u0645\\u064A\";\n  t[\"\\uFDAE\"] = \"\\u064A\\u062D\\u064A\";\n  t[\"\\uFDAF\"] = \"\\u064A\\u062C\\u064A\";\n  t[\"\\uFDB0\"] = \"\\u064A\\u0645\\u064A\";\n  t[\"\\uFDB1\"] = \"\\u0645\\u0645\\u064A\";\n  t[\"\\uFDB2\"] = \"\\u0642\\u0645\\u064A\";\n  t[\"\\uFDB3\"] = \"\\u0646\\u062D\\u064A\";\n  t[\"\\uFDB4\"] = \"\\u0642\\u0645\\u062D\";\n  t[\"\\uFDB5\"] = \"\\u0644\\u062D\\u0645\";\n  t[\"\\uFDB6\"] = \"\\u0639\\u0645\\u064A\";\n  t[\"\\uFDB7\"] = \"\\u0643\\u0645\\u064A\";\n  t[\"\\uFDB8\"] = \"\\u0646\\u062C\\u062D\";\n  t[\"\\uFDB9\"] = \"\\u0645\\u062E\\u064A\";\n  t[\"\\uFDBA\"] = \"\\u0644\\u062C\\u0645\";\n  t[\"\\uFDBB\"] = \"\\u0643\\u0645\\u0645\";\n  t[\"\\uFDBC\"] = \"\\u0644\\u062C\\u0645\";\n  t[\"\\uFDBD\"] = \"\\u0646\\u062C\\u062D\";\n  t[\"\\uFDBE\"] = \"\\u062C\\u062D\\u064A\";\n  t[\"\\uFDBF\"] = \"\\u062D\\u062C\\u064A\";\n  t[\"\\uFDC0\"] = \"\\u0645\\u062C\\u064A\";\n  t[\"\\uFDC1\"] = \"\\u0641\\u0645\\u064A\";\n  t[\"\\uFDC2\"] = \"\\u0628\\u062D\\u064A\";\n  t[\"\\uFDC3\"] = \"\\u0643\\u0645\\u0645\";\n  t[\"\\uFDC4\"] = \"\\u0639\\u062C\\u0645\";\n  t[\"\\uFDC5\"] = \"\\u0635\\u0645\\u0645\";\n  t[\"\\uFDC6\"] = \"\\u0633\\u062E\\u064A\";\n  t[\"\\uFDC7\"] = \"\\u0646\\u062C\\u064A\";\n  t[\"\\uFE49\"] = \"\\u203E\";\n  t[\"\\uFE4A\"] = \"\\u203E\";\n  t[\"\\uFE4B\"] = \"\\u203E\";\n  t[\"\\uFE4C\"] = \"\\u203E\";\n  t[\"\\uFE4D\"] = \"\\u005F\";\n  t[\"\\uFE4E\"] = \"\\u005F\";\n  t[\"\\uFE4F\"] = \"\\u005F\";\n  t[\"\\uFE80\"] = \"\\u0621\";\n  t[\"\\uFE81\"] = \"\\u0622\";\n  t[\"\\uFE82\"] = \"\\u0622\";\n  t[\"\\uFE83\"] = \"\\u0623\";\n  t[\"\\uFE84\"] = \"\\u0623\";\n  t[\"\\uFE85\"] = \"\\u0624\";\n  t[\"\\uFE86\"] = \"\\u0624\";\n  t[\"\\uFE87\"] = \"\\u0625\";\n  t[\"\\uFE88\"] = \"\\u0625\";\n  t[\"\\uFE89\"] = \"\\u0626\";\n  t[\"\\uFE8A\"] = \"\\u0626\";\n  t[\"\\uFE8B\"] = \"\\u0626\";\n  t[\"\\uFE8C\"] = \"\\u0626\";\n  t[\"\\uFE8D\"] = \"\\u0627\";\n  t[\"\\uFE8E\"] = \"\\u0627\";\n  t[\"\\uFE8F\"] = \"\\u0628\";\n  t[\"\\uFE90\"] = \"\\u0628\";\n  t[\"\\uFE91\"] = \"\\u0628\";\n  t[\"\\uFE92\"] = \"\\u0628\";\n  t[\"\\uFE93\"] = \"\\u0629\";\n  t[\"\\uFE94\"] = \"\\u0629\";\n  t[\"\\uFE95\"] = \"\\u062A\";\n  t[\"\\uFE96\"] = \"\\u062A\";\n  t[\"\\uFE97\"] = \"\\u062A\";\n  t[\"\\uFE98\"] = \"\\u062A\";\n  t[\"\\uFE99\"] = \"\\u062B\";\n  t[\"\\uFE9A\"] = \"\\u062B\";\n  t[\"\\uFE9B\"] = \"\\u062B\";\n  t[\"\\uFE9C\"] = \"\\u062B\";\n  t[\"\\uFE9D\"] = \"\\u062C\";\n  t[\"\\uFE9E\"] = \"\\u062C\";\n  t[\"\\uFE9F\"] = \"\\u062C\";\n  t[\"\\uFEA0\"] = \"\\u062C\";\n  t[\"\\uFEA1\"] = \"\\u062D\";\n  t[\"\\uFEA2\"] = \"\\u062D\";\n  t[\"\\uFEA3\"] = \"\\u062D\";\n  t[\"\\uFEA4\"] = \"\\u062D\";\n  t[\"\\uFEA5\"] = \"\\u062E\";\n  t[\"\\uFEA6\"] = \"\\u062E\";\n  t[\"\\uFEA7\"] = \"\\u062E\";\n  t[\"\\uFEA8\"] = \"\\u062E\";\n  t[\"\\uFEA9\"] = \"\\u062F\";\n  t[\"\\uFEAA\"] = \"\\u062F\";\n  t[\"\\uFEAB\"] = \"\\u0630\";\n  t[\"\\uFEAC\"] = \"\\u0630\";\n  t[\"\\uFEAD\"] = \"\\u0631\";\n  t[\"\\uFEAE\"] = \"\\u0631\";\n  t[\"\\uFEAF\"] = \"\\u0632\";\n  t[\"\\uFEB0\"] = \"\\u0632\";\n  t[\"\\uFEB1\"] = \"\\u0633\";\n  t[\"\\uFEB2\"] = \"\\u0633\";\n  t[\"\\uFEB3\"] = \"\\u0633\";\n  t[\"\\uFEB4\"] = \"\\u0633\";\n  t[\"\\uFEB5\"] = \"\\u0634\";\n  t[\"\\uFEB6\"] = \"\\u0634\";\n  t[\"\\uFEB7\"] = \"\\u0634\";\n  t[\"\\uFEB8\"] = \"\\u0634\";\n  t[\"\\uFEB9\"] = \"\\u0635\";\n  t[\"\\uFEBA\"] = \"\\u0635\";\n  t[\"\\uFEBB\"] = \"\\u0635\";\n  t[\"\\uFEBC\"] = \"\\u0635\";\n  t[\"\\uFEBD\"] = \"\\u0636\";\n  t[\"\\uFEBE\"] = \"\\u0636\";\n  t[\"\\uFEBF\"] = \"\\u0636\";\n  t[\"\\uFEC0\"] = \"\\u0636\";\n  t[\"\\uFEC1\"] = \"\\u0637\";\n  t[\"\\uFEC2\"] = \"\\u0637\";\n  t[\"\\uFEC3\"] = \"\\u0637\";\n  t[\"\\uFEC4\"] = \"\\u0637\";\n  t[\"\\uFEC5\"] = \"\\u0638\";\n  t[\"\\uFEC6\"] = \"\\u0638\";\n  t[\"\\uFEC7\"] = \"\\u0638\";\n  t[\"\\uFEC8\"] = \"\\u0638\";\n  t[\"\\uFEC9\"] = \"\\u0639\";\n  t[\"\\uFECA\"] = \"\\u0639\";\n  t[\"\\uFECB\"] = \"\\u0639\";\n  t[\"\\uFECC\"] = \"\\u0639\";\n  t[\"\\uFECD\"] = \"\\u063A\";\n  t[\"\\uFECE\"] = \"\\u063A\";\n  t[\"\\uFECF\"] = \"\\u063A\";\n  t[\"\\uFED0\"] = \"\\u063A\";\n  t[\"\\uFED1\"] = \"\\u0641\";\n  t[\"\\uFED2\"] = \"\\u0641\";\n  t[\"\\uFED3\"] = \"\\u0641\";\n  t[\"\\uFED4\"] = \"\\u0641\";\n  t[\"\\uFED5\"] = \"\\u0642\";\n  t[\"\\uFED6\"] = \"\\u0642\";\n  t[\"\\uFED7\"] = \"\\u0642\";\n  t[\"\\uFED8\"] = \"\\u0642\";\n  t[\"\\uFED9\"] = \"\\u0643\";\n  t[\"\\uFEDA\"] = \"\\u0643\";\n  t[\"\\uFEDB\"] = \"\\u0643\";\n  t[\"\\uFEDC\"] = \"\\u0643\";\n  t[\"\\uFEDD\"] = \"\\u0644\";\n  t[\"\\uFEDE\"] = \"\\u0644\";\n  t[\"\\uFEDF\"] = \"\\u0644\";\n  t[\"\\uFEE0\"] = \"\\u0644\";\n  t[\"\\uFEE1\"] = \"\\u0645\";\n  t[\"\\uFEE2\"] = \"\\u0645\";\n  t[\"\\uFEE3\"] = \"\\u0645\";\n  t[\"\\uFEE4\"] = \"\\u0645\";\n  t[\"\\uFEE5\"] = \"\\u0646\";\n  t[\"\\uFEE6\"] = \"\\u0646\";\n  t[\"\\uFEE7\"] = \"\\u0646\";\n  t[\"\\uFEE8\"] = \"\\u0646\";\n  t[\"\\uFEE9\"] = \"\\u0647\";\n  t[\"\\uFEEA\"] = \"\\u0647\";\n  t[\"\\uFEEB\"] = \"\\u0647\";\n  t[\"\\uFEEC\"] = \"\\u0647\";\n  t[\"\\uFEED\"] = \"\\u0648\";\n  t[\"\\uFEEE\"] = \"\\u0648\";\n  t[\"\\uFEEF\"] = \"\\u0649\";\n  t[\"\\uFEF0\"] = \"\\u0649\";\n  t[\"\\uFEF1\"] = \"\\u064A\";\n  t[\"\\uFEF2\"] = \"\\u064A\";\n  t[\"\\uFEF3\"] = \"\\u064A\";\n  t[\"\\uFEF4\"] = \"\\u064A\";\n  t[\"\\uFEF5\"] = \"\\u0644\\u0622\";\n  t[\"\\uFEF6\"] = \"\\u0644\\u0622\";\n  t[\"\\uFEF7\"] = \"\\u0644\\u0623\";\n  t[\"\\uFEF8\"] = \"\\u0644\\u0623\";\n  t[\"\\uFEF9\"] = \"\\u0644\\u0625\";\n  t[\"\\uFEFA\"] = \"\\u0644\\u0625\";\n  t[\"\\uFEFB\"] = \"\\u0644\\u0627\";\n  t[\"\\uFEFC\"] = \"\\u0644\\u0627\";\n});\n\nfunction reverseIfRtl(chars) {\n  var charsLength = chars.length;\n  // Reverse an arabic ligature.\n  if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n    return chars;\n  }\n  var s = \"\";\n  for (var ii = charsLength - 1; ii >= 0; ii--) {\n    s += chars[ii];\n  }\n  return s;\n}\n\nexports.mapSpecialUnicodeValues = mapSpecialUnicodeValues;\nexports.reverseIfRtl = reverseIfRtl;\nexports.getUnicodeRangeFor = getUnicodeRangeFor;\nexports.getNormalizedUnicodes = getNormalizedUnicodes;\nexports.getUnicodeForGlyph = getUnicodeForGlyph;\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  bytesToString,\n  FONT_IDENTITY_MATRIX,\n  FormatError,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport { CFFParser } from \"./cff_parser.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { StandardEncoding } from \"./encodings.js\";\nimport { Stream } from \"./stream.js\";\n\nvar FontRendererFactory = (function FontRendererFactoryClosure() {\n  function getLong(data, offset) {\n    return (\n      (data[offset] << 24) |\n      (data[offset + 1] << 16) |\n      (data[offset + 2] << 8) |\n      data[offset + 3]\n    );\n  }\n\n  function getUshort(data, offset) {\n    return (data[offset] << 8) | data[offset + 1];\n  }\n\n  function getSubroutineBias(subrs) {\n    const numSubrs = subrs.length;\n    let bias = 32768;\n    if (numSubrs < 1240) {\n      bias = 107;\n    } else if (numSubrs < 33900) {\n      bias = 1131;\n    }\n    return bias;\n  }\n\n  function parseCmap(data, start, end) {\n    var offset =\n      getUshort(data, start + 2) === 1\n        ? getLong(data, start + 8)\n        : getLong(data, start + 16);\n    var format = getUshort(data, start + offset);\n    var ranges, p, i;\n    if (format === 4) {\n      getUshort(data, start + offset + 2); // length\n      var segCount = getUshort(data, start + offset + 6) >> 1;\n      p = start + offset + 14;\n      ranges = [];\n      for (i = 0; i < segCount; i++, p += 2) {\n        ranges[i] = { end: getUshort(data, p) };\n      }\n      p += 2;\n      for (i = 0; i < segCount; i++, p += 2) {\n        ranges[i].start = getUshort(data, p);\n      }\n      for (i = 0; i < segCount; i++, p += 2) {\n        ranges[i].idDelta = getUshort(data, p);\n      }\n      for (i = 0; i < segCount; i++, p += 2) {\n        var idOffset = getUshort(data, p);\n        if (idOffset === 0) {\n          continue;\n        }\n        ranges[i].ids = [];\n        for (var j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n          ranges[i].ids[j] = getUshort(data, p + idOffset);\n          idOffset += 2;\n        }\n      }\n      return ranges;\n    } else if (format === 12) {\n      getLong(data, start + offset + 4); // length\n      var groups = getLong(data, start + offset + 12);\n      p = start + offset + 16;\n      ranges = [];\n      for (i = 0; i < groups; i++) {\n        ranges.push({\n          start: getLong(data, p),\n          end: getLong(data, p + 4),\n          idDelta: getLong(data, p + 8) - getLong(data, p),\n        });\n        p += 12;\n      }\n      return ranges;\n    }\n    throw new FormatError(`unsupported cmap: ${format}`);\n  }\n\n  function parseCff(data, start, end, seacAnalysisEnabled) {\n    var properties = {};\n    var parser = new CFFParser(\n      new Stream(data, start, end - start),\n      properties,\n      seacAnalysisEnabled\n    );\n    var cff = parser.parse();\n    return {\n      glyphs: cff.charStrings.objects,\n      subrs:\n        cff.topDict.privateDict &&\n        cff.topDict.privateDict.subrsIndex &&\n        cff.topDict.privateDict.subrsIndex.objects,\n      gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects,\n      isCFFCIDFont: cff.isCIDFont,\n      fdSelect: cff.fdSelect,\n      fdArray: cff.fdArray,\n    };\n  }\n\n  function parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n    var itemSize, itemDecode;\n    if (isGlyphLocationsLong) {\n      itemSize = 4;\n      itemDecode = function fontItemDecodeLong(data, offset) {\n        return (\n          (data[offset] << 24) |\n          (data[offset + 1] << 16) |\n          (data[offset + 2] << 8) |\n          data[offset + 3]\n        );\n      };\n    } else {\n      itemSize = 2;\n      itemDecode = function fontItemDecode(data, offset) {\n        return (data[offset] << 9) | (data[offset + 1] << 1);\n      };\n    }\n    var glyphs = [];\n    var startOffset = itemDecode(loca, 0);\n    for (var j = itemSize; j < loca.length; j += itemSize) {\n      var endOffset = itemDecode(loca, j);\n      glyphs.push(glyf.subarray(startOffset, endOffset));\n      startOffset = endOffset;\n    }\n    return glyphs;\n  }\n\n  function lookupCmap(ranges, unicode) {\n    var code = unicode.codePointAt(0),\n      gid = 0;\n    var l = 0,\n      r = ranges.length - 1;\n    while (l < r) {\n      var c = (l + r + 1) >> 1;\n      if (code < ranges[c].start) {\n        r = c - 1;\n      } else {\n        l = c;\n      }\n    }\n    if (ranges[l].start <= code && code <= ranges[l].end) {\n      gid =\n        (ranges[l].idDelta +\n          (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code)) &\n        0xffff;\n    }\n    return {\n      charCode: code,\n      glyphId: gid,\n    };\n  }\n\n  function compileGlyf(code, cmds, font) {\n    function moveTo(x, y) {\n      cmds.push({ cmd: \"moveTo\", args: [x, y] });\n    }\n    function lineTo(x, y) {\n      cmds.push({ cmd: \"lineTo\", args: [x, y] });\n    }\n    function quadraticCurveTo(xa, ya, x, y) {\n      cmds.push({ cmd: \"quadraticCurveTo\", args: [xa, ya, x, y] });\n    }\n\n    var i = 0;\n    var numberOfContours = ((code[i] << 24) | (code[i + 1] << 16)) >> 16;\n    var flags;\n    var x = 0,\n      y = 0;\n    i += 10;\n    if (numberOfContours < 0) {\n      // composite glyph\n      do {\n        flags = (code[i] << 8) | code[i + 1];\n        var glyphIndex = (code[i + 2] << 8) | code[i + 3];\n        i += 4;\n        var arg1, arg2;\n        if (flags & 0x01) {\n          arg1 = ((code[i] << 24) | (code[i + 1] << 16)) >> 16;\n          arg2 = ((code[i + 2] << 24) | (code[i + 3] << 16)) >> 16;\n          i += 4;\n        } else {\n          arg1 = code[i++];\n          arg2 = code[i++];\n        }\n        if (flags & 0x02) {\n          x = arg1;\n          y = arg2;\n        } else {\n          x = 0;\n          y = 0; // TODO \"they are points\" ?\n        }\n        var scaleX = 1,\n          scaleY = 1,\n          scale01 = 0,\n          scale10 = 0;\n        if (flags & 0x08) {\n          scaleX = scaleY =\n            ((code[i] << 24) | (code[i + 1] << 16)) / 1073741824;\n          i += 2;\n        } else if (flags & 0x40) {\n          scaleX = ((code[i] << 24) | (code[i + 1] << 16)) / 1073741824;\n          scaleY = ((code[i + 2] << 24) | (code[i + 3] << 16)) / 1073741824;\n          i += 4;\n        } else if (flags & 0x80) {\n          scaleX = ((code[i] << 24) | (code[i + 1] << 16)) / 1073741824;\n          scale01 = ((code[i + 2] << 24) | (code[i + 3] << 16)) / 1073741824;\n          scale10 = ((code[i + 4] << 24) | (code[i + 5] << 16)) / 1073741824;\n          scaleY = ((code[i + 6] << 24) | (code[i + 7] << 16)) / 1073741824;\n          i += 8;\n        }\n        var subglyph = font.glyphs[glyphIndex];\n        if (subglyph) {\n          cmds.push({ cmd: \"save\" });\n          cmds.push({\n            cmd: \"transform\",\n            args: [scaleX, scale01, scale10, scaleY, x, y],\n          });\n          compileGlyf(subglyph, cmds, font);\n          cmds.push({ cmd: \"restore\" });\n        }\n      } while (flags & 0x20);\n    } else {\n      // simple glyph\n      var endPtsOfContours = [];\n      var j, jj;\n      for (j = 0; j < numberOfContours; j++) {\n        endPtsOfContours.push((code[i] << 8) | code[i + 1]);\n        i += 2;\n      }\n      var instructionLength = (code[i] << 8) | code[i + 1];\n      i += 2 + instructionLength; // skipping the instructions\n      var numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n      var points = [];\n      while (points.length < numberOfPoints) {\n        flags = code[i++];\n        var repeat = 1;\n        if (flags & 0x08) {\n          repeat += code[i++];\n        }\n        while (repeat-- > 0) {\n          points.push({ flags });\n        }\n      }\n      for (j = 0; j < numberOfPoints; j++) {\n        switch (points[j].flags & 0x12) {\n          case 0x00:\n            x += ((code[i] << 24) | (code[i + 1] << 16)) >> 16;\n            i += 2;\n            break;\n          case 0x02:\n            x -= code[i++];\n            break;\n          case 0x12:\n            x += code[i++];\n            break;\n        }\n        points[j].x = x;\n      }\n      for (j = 0; j < numberOfPoints; j++) {\n        switch (points[j].flags & 0x24) {\n          case 0x00:\n            y += ((code[i] << 24) | (code[i + 1] << 16)) >> 16;\n            i += 2;\n            break;\n          case 0x04:\n            y -= code[i++];\n            break;\n          case 0x24:\n            y += code[i++];\n            break;\n        }\n        points[j].y = y;\n      }\n\n      var startPoint = 0;\n      for (i = 0; i < numberOfContours; i++) {\n        var endPoint = endPtsOfContours[i];\n        // contours might have implicit points, which is located in the middle\n        // between two neighboring off-curve points\n        var contour = points.slice(startPoint, endPoint + 1);\n        if (contour[0].flags & 1) {\n          contour.push(contour[0]); // using start point at the contour end\n        } else if (contour[contour.length - 1].flags & 1) {\n          // first is off-curve point, trying to use one from the end\n          contour.unshift(contour[contour.length - 1]);\n        } else {\n          // start and end are off-curve points, creating implicit one\n          var p = {\n            flags: 1,\n            x: (contour[0].x + contour[contour.length - 1].x) / 2,\n            y: (contour[0].y + contour[contour.length - 1].y) / 2,\n          };\n          contour.unshift(p);\n          contour.push(p);\n        }\n        moveTo(contour[0].x, contour[0].y);\n        for (j = 1, jj = contour.length; j < jj; j++) {\n          if (contour[j].flags & 1) {\n            lineTo(contour[j].x, contour[j].y);\n          } else if (contour[j + 1].flags & 1) {\n            quadraticCurveTo(\n              contour[j].x,\n              contour[j].y,\n              contour[j + 1].x,\n              contour[j + 1].y\n            );\n            j++;\n          } else {\n            quadraticCurveTo(\n              contour[j].x,\n              contour[j].y,\n              (contour[j].x + contour[j + 1].x) / 2,\n              (contour[j].y + contour[j + 1].y) / 2\n            );\n          }\n        }\n        startPoint = endPoint + 1;\n      }\n    }\n  }\n\n  function compileCharString(charStringCode, cmds, font, glyphId) {\n    function moveTo(x, y) {\n      cmds.push({ cmd: \"moveTo\", args: [x, y] });\n    }\n    function lineTo(x, y) {\n      cmds.push({ cmd: \"lineTo\", args: [x, y] });\n    }\n    function bezierCurveTo(x1, y1, x2, y2, x, y) {\n      cmds.push({ cmd: \"bezierCurveTo\", args: [x1, y1, x2, y2, x, y] });\n    }\n\n    var stack = [];\n    var x = 0,\n      y = 0;\n    var stems = 0;\n\n    function parse(code) {\n      var i = 0;\n      while (i < code.length) {\n        var stackClean = false;\n        var v = code[i++];\n        var xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n        switch (v) {\n          case 1: // hstem\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n          case 3: // vstem\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n          case 4: // vmoveto\n            y += stack.pop();\n            moveTo(x, y);\n            stackClean = true;\n            break;\n          case 5: // rlineto\n            while (stack.length > 0) {\n              x += stack.shift();\n              y += stack.shift();\n              lineTo(x, y);\n            }\n            break;\n          case 6: // hlineto\n            while (stack.length > 0) {\n              x += stack.shift();\n              lineTo(x, y);\n              if (stack.length === 0) {\n                break;\n              }\n              y += stack.shift();\n              lineTo(x, y);\n            }\n            break;\n          case 7: // vlineto\n            while (stack.length > 0) {\n              y += stack.shift();\n              lineTo(x, y);\n              if (stack.length === 0) {\n                break;\n              }\n              x += stack.shift();\n              lineTo(x, y);\n            }\n            break;\n          case 8: // rrcurveto\n            while (stack.length > 0) {\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n            break;\n          case 10: // callsubr\n            n = stack.pop();\n            subrCode = null;\n            if (font.isCFFCIDFont) {\n              const fdIndex = font.fdSelect.getFDIndex(glyphId);\n              if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n                const fontDict = font.fdArray[fdIndex];\n                let subrs;\n                if (fontDict.privateDict && fontDict.privateDict.subrsIndex) {\n                  subrs = fontDict.privateDict.subrsIndex.objects;\n                }\n                if (subrs) {\n                  // Add subroutine bias.\n                  n += getSubroutineBias(subrs);\n                  subrCode = subrs[n];\n                }\n              } else {\n                warn(\"Invalid fd index for glyph index.\");\n              }\n            } else {\n              subrCode = font.subrs[n + font.subrsBias];\n            }\n            if (subrCode) {\n              parse(subrCode);\n            }\n            break;\n          case 11: // return\n            return;\n          case 12:\n            v = code[i++];\n            switch (v) {\n              case 34: // flex\n                xa = x + stack.shift();\n                xb = xa + stack.shift();\n                y1 = y + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y, xb, y1, x, y1);\n                xa = x + stack.shift();\n                xb = xa + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y1, xb, y, x, y);\n                break;\n              case 35: // flex\n                xa = x + stack.shift();\n                ya = y + stack.shift();\n                xb = xa + stack.shift();\n                yb = ya + stack.shift();\n                x = xb + stack.shift();\n                y = yb + stack.shift();\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                xa = x + stack.shift();\n                ya = y + stack.shift();\n                xb = xa + stack.shift();\n                yb = ya + stack.shift();\n                x = xb + stack.shift();\n                y = yb + stack.shift();\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                stack.pop(); // fd\n                break;\n              case 36: // hflex1\n                xa = x + stack.shift();\n                y1 = y + stack.shift();\n                xb = xa + stack.shift();\n                y2 = y1 + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y1, xb, y2, x, y2);\n                xa = x + stack.shift();\n                xb = xa + stack.shift();\n                y3 = y2 + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y2, xb, y3, x, y);\n                break;\n              case 37: // flex1\n                var x0 = x,\n                  y0 = y;\n                xa = x + stack.shift();\n                ya = y + stack.shift();\n                xb = xa + stack.shift();\n                yb = ya + stack.shift();\n                x = xb + stack.shift();\n                y = yb + stack.shift();\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                xa = x + stack.shift();\n                ya = y + stack.shift();\n                xb = xa + stack.shift();\n                yb = ya + stack.shift();\n                x = xb;\n                y = yb;\n                if (Math.abs(x - x0) > Math.abs(y - y0)) {\n                  x += stack.shift();\n                } else {\n                  y += stack.shift();\n                }\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                break;\n              default:\n                throw new FormatError(`unknown operator: 12 ${v}`);\n            }\n            break;\n          case 14: // endchar\n            if (stack.length >= 4) {\n              var achar = stack.pop();\n              var bchar = stack.pop();\n              y = stack.pop();\n              x = stack.pop();\n              cmds.push({ cmd: \"save\" });\n              cmds.push({ cmd: \"translate\", args: [x, y] });\n              var cmap = lookupCmap(\n                font.cmap,\n                String.fromCharCode(font.glyphNameMap[StandardEncoding[achar]])\n              );\n              compileCharString(\n                font.glyphs[cmap.glyphId],\n                cmds,\n                font,\n                cmap.glyphId\n              );\n              cmds.push({ cmd: \"restore\" });\n\n              cmap = lookupCmap(\n                font.cmap,\n                String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]])\n              );\n              compileCharString(\n                font.glyphs[cmap.glyphId],\n                cmds,\n                font,\n                cmap.glyphId\n              );\n            }\n            return;\n          case 18: // hstemhm\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n          case 19: // hintmask\n            stems += stack.length >> 1;\n            i += (stems + 7) >> 3;\n            stackClean = true;\n            break;\n          case 20: // cntrmask\n            stems += stack.length >> 1;\n            i += (stems + 7) >> 3;\n            stackClean = true;\n            break;\n          case 21: // rmoveto\n            y += stack.pop();\n            x += stack.pop();\n            moveTo(x, y);\n            stackClean = true;\n            break;\n          case 22: // hmoveto\n            x += stack.pop();\n            moveTo(x, y);\n            stackClean = true;\n            break;\n          case 23: // vstemhm\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n          case 24: // rcurveline\n            while (stack.length > 2) {\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n            x += stack.shift();\n            y += stack.shift();\n            lineTo(x, y);\n            break;\n          case 25: // rlinecurve\n            while (stack.length > 6) {\n              x += stack.shift();\n              y += stack.shift();\n              lineTo(x, y);\n            }\n            xa = x + stack.shift();\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n            break;\n          case 26: // vvcurveto\n            if (stack.length % 2) {\n              x += stack.shift();\n            }\n            while (stack.length > 0) {\n              xa = x;\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb;\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n            break;\n          case 27: // hhcurveto\n            if (stack.length % 2) {\n              y += stack.shift();\n            }\n            while (stack.length > 0) {\n              xa = x + stack.shift();\n              ya = y;\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb;\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n            break;\n          case 28:\n            stack.push(((code[i] << 24) | (code[i + 1] << 16)) >> 16);\n            i += 2;\n            break;\n          case 29: // callgsubr\n            n = stack.pop() + font.gsubrsBias;\n            subrCode = font.gsubrs[n];\n            if (subrCode) {\n              parse(subrCode);\n            }\n            break;\n          case 30: // vhcurveto\n            while (stack.length > 0) {\n              xa = x;\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              if (stack.length === 0) {\n                break;\n              }\n\n              xa = x + stack.shift();\n              ya = y;\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              y = yb + stack.shift();\n              x = xb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n            break;\n          case 31: // hvcurveto\n            while (stack.length > 0) {\n              xa = x + stack.shift();\n              ya = y;\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              y = yb + stack.shift();\n              x = xb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              if (stack.length === 0) {\n                break;\n              }\n\n              xa = x;\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n            break;\n          default:\n            if (v < 32) {\n              throw new FormatError(`unknown operator: ${v}`);\n            }\n            if (v < 247) {\n              stack.push(v - 139);\n            } else if (v < 251) {\n              stack.push((v - 247) * 256 + code[i++] + 108);\n            } else if (v < 255) {\n              stack.push(-(v - 251) * 256 - code[i++] - 108);\n            } else {\n              stack.push(\n                ((code[i] << 24) |\n                  (code[i + 1] << 16) |\n                  (code[i + 2] << 8) |\n                  code[i + 3]) /\n                  65536\n              );\n              i += 4;\n            }\n            break;\n        }\n        if (stackClean) {\n          stack.length = 0;\n        }\n      }\n    }\n    parse(charStringCode);\n  }\n\n  const NOOP = [];\n\n  class CompiledFont {\n    constructor(fontMatrix) {\n      if (this.constructor === CompiledFont) {\n        unreachable(\"Cannot initialize CompiledFont.\");\n      }\n      this.fontMatrix = fontMatrix;\n\n      this.compiledGlyphs = Object.create(null);\n      this.compiledCharCodeToGlyphId = Object.create(null);\n    }\n\n    getPathJs(unicode) {\n      const cmap = lookupCmap(this.cmap, unicode);\n      let fn = this.compiledGlyphs[cmap.glyphId];\n      if (!fn) {\n        fn = this.compileGlyph(this.glyphs[cmap.glyphId], cmap.glyphId);\n        this.compiledGlyphs[cmap.glyphId] = fn;\n      }\n      if (this.compiledCharCodeToGlyphId[cmap.charCode] === undefined) {\n        this.compiledCharCodeToGlyphId[cmap.charCode] = cmap.glyphId;\n      }\n      return fn;\n    }\n\n    compileGlyph(code, glyphId) {\n      if (!code || code.length === 0 || code[0] === 14) {\n        return NOOP;\n      }\n\n      let fontMatrix = this.fontMatrix;\n      if (this.isCFFCIDFont) {\n        // Top DICT's FontMatrix can be ignored because CFFCompiler always\n        // removes it and copies to FDArray DICTs.\n        const fdIndex = this.fdSelect.getFDIndex(glyphId);\n        if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n          const fontDict = this.fdArray[fdIndex];\n          fontMatrix = fontDict.getByName(\"FontMatrix\") || FONT_IDENTITY_MATRIX;\n        } else {\n          warn(\"Invalid fd index for glyph index.\");\n        }\n      }\n\n      const cmds = [];\n      cmds.push({ cmd: \"save\" });\n      cmds.push({ cmd: \"transform\", args: fontMatrix.slice() });\n      cmds.push({ cmd: \"scale\", args: [\"size\", \"-size\"] });\n\n      this.compileGlyphImpl(code, cmds, glyphId);\n\n      cmds.push({ cmd: \"restore\" });\n\n      return cmds;\n    }\n\n    compileGlyphImpl() {\n      unreachable(\"Children classes should implement this.\");\n    }\n\n    hasBuiltPath(unicode) {\n      const cmap = lookupCmap(this.cmap, unicode);\n      return (\n        this.compiledGlyphs[cmap.glyphId] !== undefined &&\n        this.compiledCharCodeToGlyphId[cmap.charCode] !== undefined\n      );\n    }\n  }\n\n  class TrueTypeCompiled extends CompiledFont {\n    constructor(glyphs, cmap, fontMatrix) {\n      super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]);\n\n      this.glyphs = glyphs;\n      this.cmap = cmap;\n    }\n\n    compileGlyphImpl(code, cmds) {\n      compileGlyf(code, cmds, this);\n    }\n  }\n\n  class Type2Compiled extends CompiledFont {\n    constructor(cffInfo, cmap, fontMatrix, glyphNameMap) {\n      super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]);\n\n      this.glyphs = cffInfo.glyphs;\n      this.gsubrs = cffInfo.gsubrs || [];\n      this.subrs = cffInfo.subrs || [];\n      this.cmap = cmap;\n      this.glyphNameMap = glyphNameMap || getGlyphsUnicode();\n\n      this.gsubrsBias = getSubroutineBias(this.gsubrs);\n      this.subrsBias = getSubroutineBias(this.subrs);\n\n      this.isCFFCIDFont = cffInfo.isCFFCIDFont;\n      this.fdSelect = cffInfo.fdSelect;\n      this.fdArray = cffInfo.fdArray;\n    }\n\n    compileGlyphImpl(code, cmds, glyphId) {\n      compileCharString(code, cmds, this, glyphId);\n    }\n  }\n\n  return {\n    create: function FontRendererFactory_create(font, seacAnalysisEnabled) {\n      var data = new Uint8Array(font.data);\n      var cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n      var numTables = getUshort(data, 4);\n      for (var i = 0, p = 12; i < numTables; i++, p += 16) {\n        var tag = bytesToString(data.subarray(p, p + 4));\n        var offset = getLong(data, p + 8);\n        var length = getLong(data, p + 12);\n        switch (tag) {\n          case \"cmap\":\n            cmap = parseCmap(data, offset, offset + length);\n            break;\n          case \"glyf\":\n            glyf = data.subarray(offset, offset + length);\n            break;\n          case \"loca\":\n            loca = data.subarray(offset, offset + length);\n            break;\n          case \"head\":\n            unitsPerEm = getUshort(data, offset + 18);\n            indexToLocFormat = getUshort(data, offset + 50);\n            break;\n          case \"CFF \":\n            cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n            break;\n        }\n      }\n\n      if (glyf) {\n        var fontMatrix = !unitsPerEm\n          ? font.fontMatrix\n          : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n        return new TrueTypeCompiled(\n          parseGlyfTable(glyf, loca, indexToLocFormat),\n          cmap,\n          fontMatrix\n        );\n      }\n      return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n    },\n  };\n})();\n\nexport { FontRendererFactory };\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 { getEncoding } from \"./encodings.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { warn } from \"../shared/util.js\";\n\n// Hinting is currently disabled due to unknown problems on windows\n// in tracemonkey and various other pdfs with type1 fonts.\nvar HINTING_ENABLED = false;\n\n/*\n * CharStrings are encoded following the the CharString Encoding sequence\n * describe in Chapter 6 of the \"Adobe Type1 Font Format\" specification.\n * The value in a byte indicates a command, a number, or subsequent bytes\n * that are to be interpreted in a special way.\n *\n * CharString Number Encoding:\n *  A CharString byte containing the values from 32 through 255 inclusive\n *  indicate an integer. These values are decoded in four ranges.\n *\n * 1. A CharString byte containing a value, v, between 32 and 246 inclusive,\n * indicate the integer v - 139. Thus, the integer values from -107 through\n * 107 inclusive may be encoded in single byte.\n *\n * 2. A CharString byte containing a value, v, between 247 and 250 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * [(v - 247) x 256] + w + 108\n *\n * 3. A CharString byte containing a value, v, between 251 and 254 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * -[(v - 251) * 256] - w - 108\n *\n * 4. A CharString containing the value 255 indicates that the next 4 bytes\n * are a two complement signed integer. The first of these bytes contains the\n * highest order bits, the second byte contains the next higher order bits\n * and the fourth byte contain the lowest order bits.\n *\n *\n * CharString Command Encoding:\n *  CharStrings commands are encoded in 1 or 2 bytes.\n *\n *  Single byte commands are encoded in 1 byte that contains a value between\n *  0 and 31 inclusive.\n *  If a command byte contains the value 12, then the value in the next byte\n *  indicates a command. This \"escape\" mechanism allows many extra commands\n * to be encoded and this encoding technique helps to minimize the length of\n * the charStrings.\n */\nvar Type1CharString = (function Type1CharStringClosure() {\n  var COMMAND_MAP = {\n    hstem: [1],\n    vstem: [3],\n    vmoveto: [4],\n    rlineto: [5],\n    hlineto: [6],\n    vlineto: [7],\n    rrcurveto: [8],\n    callsubr: [10],\n    flex: [12, 35],\n    drop: [12, 18],\n    endchar: [14],\n    rmoveto: [21],\n    hmoveto: [22],\n    vhcurveto: [30],\n    hvcurveto: [31],\n  };\n\n  // eslint-disable-next-line no-shadow\n  function Type1CharString() {\n    this.width = 0;\n    this.lsb = 0;\n    this.flexing = false;\n    this.output = [];\n    this.stack = [];\n  }\n\n  Type1CharString.prototype = {\n    convert: function Type1CharString_convert(\n      encoded,\n      subrs,\n      seacAnalysisEnabled\n    ) {\n      var count = encoded.length;\n      var error = false;\n      var wx, sbx, subrNumber;\n      for (var i = 0; i < count; i++) {\n        var value = encoded[i];\n        if (value < 32) {\n          if (value === 12) {\n            value = (value << 8) + encoded[++i];\n          }\n          switch (value) {\n            case 1: // hstem\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n              error = this.executeCommand(2, COMMAND_MAP.hstem);\n              break;\n            case 3: // vstem\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n              error = this.executeCommand(2, COMMAND_MAP.vstem);\n              break;\n            case 4: // vmoveto\n              if (this.flexing) {\n                if (this.stack.length < 1) {\n                  error = true;\n                  break;\n                }\n                // Add the dx for flex and but also swap the values so they are\n                // the right order.\n                var dy = this.stack.pop();\n                this.stack.push(0, dy);\n                break;\n              }\n              error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n              break;\n            case 5: // rlineto\n              error = this.executeCommand(2, COMMAND_MAP.rlineto);\n              break;\n            case 6: // hlineto\n              error = this.executeCommand(1, COMMAND_MAP.hlineto);\n              break;\n            case 7: // vlineto\n              error = this.executeCommand(1, COMMAND_MAP.vlineto);\n              break;\n            case 8: // rrcurveto\n              error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n              break;\n            case 9: // closepath\n              // closepath is a Type1 command that does not take argument and is\n              // useless in Type2 and it can simply be ignored.\n              this.stack = [];\n              break;\n            case 10: // callsubr\n              if (this.stack.length < 1) {\n                error = true;\n                break;\n              }\n              subrNumber = this.stack.pop();\n              if (!subrs[subrNumber]) {\n                error = true;\n                break;\n              }\n              error = this.convert(\n                subrs[subrNumber],\n                subrs,\n                seacAnalysisEnabled\n              );\n              break;\n            case 11: // return\n              return error;\n            case 13: // hsbw\n              if (this.stack.length < 2) {\n                error = true;\n                break;\n              }\n              // To convert to type2 we have to move the width value to the\n              // first part of the charstring and then use hmoveto with lsb.\n              wx = this.stack.pop();\n              sbx = this.stack.pop();\n              this.lsb = sbx;\n              this.width = wx;\n              this.stack.push(wx, sbx);\n              error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n              break;\n            case 14: // endchar\n              this.output.push(COMMAND_MAP.endchar[0]);\n              break;\n            case 21: // rmoveto\n              if (this.flexing) {\n                break;\n              }\n              error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n              break;\n            case 22: // hmoveto\n              if (this.flexing) {\n                // Add the dy for flex.\n                this.stack.push(0);\n                break;\n              }\n              error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n              break;\n            case 30: // vhcurveto\n              error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n              break;\n            case 31: // hvcurveto\n              error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n              break;\n            case (12 << 8) + 0: // dotsection\n              // dotsection is a Type1 command to specify some hinting feature\n              // for dots that do not take a parameter and it can safely be\n              // ignored for Type2.\n              this.stack = [];\n              break;\n            case (12 << 8) + 1: // vstem3\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n              // [vh]stem3 are Type1 only and Type2 supports [vh]stem with\n              // multiple parameters, so instead of returning [vh]stem3 take a\n              // shortcut and return [vhstem] instead.\n              error = this.executeCommand(2, COMMAND_MAP.vstem);\n              break;\n            case (12 << 8) + 2: // hstem3\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n              // See vstem3.\n              error = this.executeCommand(2, COMMAND_MAP.hstem);\n              break;\n            case (12 << 8) + 6: // seac\n              // seac is like type 2's special endchar but it doesn't use the\n              // first argument asb, so remove it.\n              if (seacAnalysisEnabled) {\n                this.seac = this.stack.splice(-4, 4);\n                error = this.executeCommand(0, COMMAND_MAP.endchar);\n              } else {\n                error = this.executeCommand(4, COMMAND_MAP.endchar);\n              }\n              break;\n            case (12 << 8) + 7: // sbw\n              if (this.stack.length < 4) {\n                error = true;\n                break;\n              }\n              // To convert to type2 we have to move the width value to the\n              // first part of the charstring and then use rmoveto with\n              // (dx, dy). The height argument will not be used for vmtx and\n              // vhea tables reconstruction -- ignoring it.\n              this.stack.pop(); // wy\n              wx = this.stack.pop();\n              var sby = this.stack.pop();\n              sbx = this.stack.pop();\n              this.lsb = sbx;\n              this.width = wx;\n              this.stack.push(wx, sbx, sby);\n              error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n              break;\n            case (12 << 8) + 12: // div\n              if (this.stack.length < 2) {\n                error = true;\n                break;\n              }\n              var num2 = this.stack.pop();\n              var num1 = this.stack.pop();\n              this.stack.push(num1 / num2);\n              break;\n            case (12 << 8) + 16: // callothersubr\n              if (this.stack.length < 2) {\n                error = true;\n                break;\n              }\n              subrNumber = this.stack.pop();\n              var numArgs = this.stack.pop();\n              if (subrNumber === 0 && numArgs === 3) {\n                var flexArgs = this.stack.splice(this.stack.length - 17, 17);\n                this.stack.push(\n                  flexArgs[2] + flexArgs[0], // bcp1x + rpx\n                  flexArgs[3] + flexArgs[1], // bcp1y + rpy\n                  flexArgs[4], // bcp2x\n                  flexArgs[5], // bcp2y\n                  flexArgs[6], // p2x\n                  flexArgs[7], // p2y\n                  flexArgs[8], // bcp3x\n                  flexArgs[9], // bcp3y\n                  flexArgs[10], // bcp4x\n                  flexArgs[11], // bcp4y\n                  flexArgs[12], // p3x\n                  flexArgs[13], // p3y\n                  flexArgs[14] // flexDepth\n                  // 15 = finalx unused by flex\n                  // 16 = finaly unused by flex\n                );\n                error = this.executeCommand(13, COMMAND_MAP.flex, true);\n                this.flexing = false;\n                this.stack.push(flexArgs[15], flexArgs[16]);\n              } else if (subrNumber === 1 && numArgs === 0) {\n                this.flexing = true;\n              }\n              break;\n            case (12 << 8) + 17: // pop\n              // Ignore this since it is only used with othersubr.\n              break;\n            case (12 << 8) + 33: // setcurrentpoint\n              // Ignore for now.\n              this.stack = [];\n              break;\n            default:\n              warn('Unknown type 1 charstring command of \"' + value + '\"');\n              break;\n          }\n          if (error) {\n            break;\n          }\n          continue;\n        } else if (value <= 246) {\n          value = value - 139;\n        } else if (value <= 250) {\n          value = (value - 247) * 256 + encoded[++i] + 108;\n        } else if (value <= 254) {\n          value = -((value - 251) * 256) - encoded[++i] - 108;\n        } else {\n          value =\n            ((encoded[++i] & 0xff) << 24) |\n            ((encoded[++i] & 0xff) << 16) |\n            ((encoded[++i] & 0xff) << 8) |\n            ((encoded[++i] & 0xff) << 0);\n        }\n        this.stack.push(value);\n      }\n      return error;\n    },\n\n    executeCommand(howManyArgs, command, keepStack) {\n      var stackLength = this.stack.length;\n      if (howManyArgs > stackLength) {\n        return true;\n      }\n      var start = stackLength - howManyArgs;\n      for (var i = start; i < stackLength; i++) {\n        var value = this.stack[i];\n        if (Number.isInteger(value)) {\n          this.output.push(28, (value >> 8) & 0xff, value & 0xff);\n        } else {\n          // fixed point\n          value = (65536 * value) | 0;\n          this.output.push(\n            255,\n            (value >> 24) & 0xff,\n            (value >> 16) & 0xff,\n            (value >> 8) & 0xff,\n            value & 0xff\n          );\n        }\n      }\n      this.output.push.apply(this.output, command);\n      if (keepStack) {\n        this.stack.splice(start, howManyArgs);\n      } else {\n        this.stack.length = 0;\n      }\n      return false;\n    },\n  };\n\n  return Type1CharString;\n})();\n\n/*\n * Type1Parser encapsulate the needed code for parsing a Type1 font\n * program. Some of its logic depends on the Type2 charstrings\n * structure.\n * Note: this doesn't really parse the font since that would require evaluation\n * of PostScript, but it is possible in most cases to extract what we need\n * without a full parse.\n */\nvar Type1Parser = (function Type1ParserClosure() {\n  /*\n   * Decrypt a Sequence of Ciphertext Bytes to Produce the Original Sequence\n   * of Plaintext Bytes. The function took a key as a parameter which can be\n   * for decrypting the eexec block of for decoding charStrings.\n   */\n  var EEXEC_ENCRYPT_KEY = 55665;\n  var CHAR_STRS_ENCRYPT_KEY = 4330;\n\n  function isHexDigit(code) {\n    return (\n      (code >= 48 && code <= 57) || // '0'-'9'\n      (code >= 65 && code <= 70) || // 'A'-'F'\n      (code >= 97 && code <= 102) // 'a'-'f'\n    );\n  }\n\n  function decrypt(data, key, discardNumber) {\n    if (discardNumber >= data.length) {\n      return new Uint8Array(0);\n    }\n    var r = key | 0,\n      c1 = 52845,\n      c2 = 22719,\n      i,\n      j;\n    for (i = 0; i < discardNumber; i++) {\n      r = ((data[i] + r) * c1 + c2) & ((1 << 16) - 1);\n    }\n    var count = data.length - discardNumber;\n    var decrypted = new Uint8Array(count);\n    for (i = discardNumber, j = 0; j < count; i++, j++) {\n      var value = data[i];\n      decrypted[j] = value ^ (r >> 8);\n      r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n    }\n    return decrypted;\n  }\n\n  function decryptAscii(data, key, discardNumber) {\n    var r = key | 0,\n      c1 = 52845,\n      c2 = 22719;\n    var count = data.length,\n      maybeLength = count >>> 1;\n    var decrypted = new Uint8Array(maybeLength);\n    var i, j;\n    for (i = 0, j = 0; i < count; i++) {\n      var digit1 = data[i];\n      if (!isHexDigit(digit1)) {\n        continue;\n      }\n      i++;\n      var digit2;\n      while (i < count && !isHexDigit((digit2 = data[i]))) {\n        i++;\n      }\n      if (i < count) {\n        var value = parseInt(String.fromCharCode(digit1, digit2), 16);\n        decrypted[j++] = value ^ (r >> 8);\n        r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n      }\n    }\n    return decrypted.slice(discardNumber, j);\n  }\n\n  function isSpecial(c) {\n    return (\n      c === /* '/' = */ 0x2f ||\n      c === /* '[' = */ 0x5b ||\n      c === /* ']' = */ 0x5d ||\n      c === /* '{' = */ 0x7b ||\n      c === /* '}' = */ 0x7d ||\n      c === /* '(' = */ 0x28 ||\n      c === /* ')' = */ 0x29\n    );\n  }\n\n  // eslint-disable-next-line no-shadow\n  function Type1Parser(stream, encrypted, seacAnalysisEnabled) {\n    if (encrypted) {\n      var data = stream.getBytes();\n      var isBinary = !(\n        (isHexDigit(data[0]) || isWhiteSpace(data[0])) &&\n        isHexDigit(data[1]) &&\n        isHexDigit(data[2]) &&\n        isHexDigit(data[3]) &&\n        isHexDigit(data[4]) &&\n        isHexDigit(data[5]) &&\n        isHexDigit(data[6]) &&\n        isHexDigit(data[7])\n      );\n      stream = new Stream(\n        isBinary\n          ? decrypt(data, EEXEC_ENCRYPT_KEY, 4)\n          : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)\n      );\n    }\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n\n    this.stream = stream;\n    this.nextChar();\n  }\n\n  Type1Parser.prototype = {\n    readNumberArray: function Type1Parser_readNumberArray() {\n      this.getToken(); // read '[' or '{' (arrays can start with either)\n      var array = [];\n      while (true) {\n        var token = this.getToken();\n        if (token === null || token === \"]\" || token === \"}\") {\n          break;\n        }\n        array.push(parseFloat(token || 0));\n      }\n      return array;\n    },\n\n    readNumber: function Type1Parser_readNumber() {\n      var token = this.getToken();\n      return parseFloat(token || 0);\n    },\n\n    readInt: function Type1Parser_readInt() {\n      // Use '| 0' to prevent setting a double into length such as the double\n      // does not flow into the loop variable.\n      var token = this.getToken();\n      return parseInt(token || 0, 10) | 0;\n    },\n\n    readBoolean: function Type1Parser_readBoolean() {\n      var token = this.getToken();\n\n      // Use 1 and 0 since that's what type2 charstrings use.\n      return token === \"true\" ? 1 : 0;\n    },\n\n    nextChar: function Type1_nextChar() {\n      return (this.currentChar = this.stream.getByte());\n    },\n\n    getToken: function Type1Parser_getToken() {\n      // Eat whitespace and comments.\n      var comment = false;\n      var ch = this.currentChar;\n      while (true) {\n        if (ch === -1) {\n          return null;\n        }\n\n        if (comment) {\n          if (ch === 0x0a || ch === 0x0d) {\n            comment = false;\n          }\n        } else if (ch === /* '%' = */ 0x25) {\n          comment = true;\n        } else if (!isWhiteSpace(ch)) {\n          break;\n        }\n        ch = this.nextChar();\n      }\n      if (isSpecial(ch)) {\n        this.nextChar();\n        return String.fromCharCode(ch);\n      }\n      var token = \"\";\n      do {\n        token += String.fromCharCode(ch);\n        ch = this.nextChar();\n      } while (ch >= 0 && !isWhiteSpace(ch) && !isSpecial(ch));\n      return token;\n    },\n\n    readCharStrings: function Type1Parser_readCharStrings(bytes, lenIV) {\n      if (lenIV === -1) {\n        // This isn't in the spec, but Adobe's tx program handles -1\n        // as plain text.\n        return bytes;\n      }\n      return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n    },\n\n    /*\n     * Returns an object containing a Subrs array and a CharStrings\n     * array extracted from and eexec encrypted block of data\n     */\n    extractFontProgram: function Type1Parser_extractFontProgram(properties) {\n      var stream = this.stream;\n\n      var subrs = [],\n        charstrings = [];\n      var privateData = Object.create(null);\n      privateData.lenIV = 4;\n      var program = {\n        subrs: [],\n        charstrings: [],\n        properties: {\n          privateData,\n        },\n      };\n      var token, length, data, lenIV, encoded;\n      while ((token = this.getToken()) !== null) {\n        if (token !== \"/\") {\n          continue;\n        }\n        token = this.getToken();\n        switch (token) {\n          case \"CharStrings\":\n            // The number immediately following CharStrings must be greater or\n            // equal to the number of CharStrings.\n            this.getToken();\n            this.getToken(); // read in 'dict'\n            this.getToken(); // read in 'dup'\n            this.getToken(); // read in 'begin'\n            while (true) {\n              token = this.getToken();\n              if (token === null || token === \"end\") {\n                break;\n              }\n\n              if (token !== \"/\") {\n                continue;\n              }\n              var glyph = this.getToken();\n              length = this.readInt();\n              this.getToken(); // read in 'RD' or '-|'\n              data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n              lenIV = program.properties.privateData.lenIV;\n              encoded = this.readCharStrings(data, lenIV);\n              this.nextChar();\n              token = this.getToken(); // read in 'ND' or '|-'\n              if (token === \"noaccess\") {\n                this.getToken(); // read in 'def'\n              }\n              charstrings.push({\n                glyph,\n                encoded,\n              });\n            }\n            break;\n          case \"Subrs\":\n            this.readInt(); // num\n            this.getToken(); // read in 'array'\n            while (this.getToken() === \"dup\") {\n              const index = this.readInt();\n              length = this.readInt();\n              this.getToken(); // read in 'RD' or '-|'\n              data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n              lenIV = program.properties.privateData.lenIV;\n              encoded = this.readCharStrings(data, lenIV);\n              this.nextChar();\n              token = this.getToken(); // read in 'NP' or '|'\n              if (token === \"noaccess\") {\n                this.getToken(); // read in 'put'\n              }\n              subrs[index] = encoded;\n            }\n            break;\n          case \"BlueValues\":\n          case \"OtherBlues\":\n          case \"FamilyBlues\":\n          case \"FamilyOtherBlues\":\n            var blueArray = this.readNumberArray();\n            // *Blue* values may contain invalid data: disables reading of\n            // those values when hinting is disabled.\n            if (\n              blueArray.length > 0 &&\n              blueArray.length % 2 === 0 &&\n              HINTING_ENABLED\n            ) {\n              program.properties.privateData[token] = blueArray;\n            }\n            break;\n          case \"StemSnapH\":\n          case \"StemSnapV\":\n            program.properties.privateData[token] = this.readNumberArray();\n            break;\n          case \"StdHW\":\n          case \"StdVW\":\n            program.properties.privateData[token] = this.readNumberArray()[0];\n            break;\n          case \"BlueShift\":\n          case \"lenIV\":\n          case \"BlueFuzz\":\n          case \"BlueScale\":\n          case \"LanguageGroup\":\n          case \"ExpansionFactor\":\n            program.properties.privateData[token] = this.readNumber();\n            break;\n          case \"ForceBold\":\n            program.properties.privateData[token] = this.readBoolean();\n            break;\n        }\n      }\n\n      for (var i = 0; i < charstrings.length; i++) {\n        glyph = charstrings[i].glyph;\n        encoded = charstrings[i].encoded;\n        var charString = new Type1CharString();\n        var error = charString.convert(\n          encoded,\n          subrs,\n          this.seacAnalysisEnabled\n        );\n        var output = charString.output;\n        if (error) {\n          // It seems when FreeType encounters an error while evaluating a glyph\n          // that it completely ignores the glyph so we'll mimic that behaviour\n          // here and put an endchar to make the validator happy.\n          output = [14];\n        }\n        const charStringObject = {\n          glyphName: glyph,\n          charstring: output,\n          width: charString.width,\n          lsb: charString.lsb,\n          seac: charString.seac,\n        };\n        if (glyph === \".notdef\") {\n          // Make sure .notdef is at index zero (issue #11477).\n          program.charstrings.unshift(charStringObject);\n        } else {\n          program.charstrings.push(charStringObject);\n        }\n\n        // Attempt to replace missing widths, from the font dictionary /Widths\n        // entry, with ones from the font data (fixes issue11150_reduced.pdf).\n        if (properties.builtInEncoding) {\n          const index = properties.builtInEncoding.indexOf(glyph);\n          if (\n            index > -1 &&\n            properties.widths[index] === undefined &&\n            index >= properties.firstChar &&\n            index <= properties.lastChar\n          ) {\n            properties.widths[index] = charString.width;\n          }\n        }\n      }\n\n      return program;\n    },\n\n    extractFontHeader: function Type1Parser_extractFontHeader(properties) {\n      var token;\n      while ((token = this.getToken()) !== null) {\n        if (token !== \"/\") {\n          continue;\n        }\n        token = this.getToken();\n        switch (token) {\n          case \"FontMatrix\":\n            var matrix = this.readNumberArray();\n            properties.fontMatrix = matrix;\n            break;\n          case \"Encoding\":\n            var encodingArg = this.getToken();\n            var encoding;\n            if (!/^\\d+$/.test(encodingArg)) {\n              // encoding name is specified\n              encoding = getEncoding(encodingArg);\n            } else {\n              encoding = [];\n              var size = parseInt(encodingArg, 10) | 0;\n              this.getToken(); // read in 'array'\n\n              for (var j = 0; j < size; j++) {\n                token = this.getToken();\n                // skipping till first dup or def (e.g. ignoring for statement)\n                while (token !== \"dup\" && token !== \"def\") {\n                  token = this.getToken();\n                  if (token === null) {\n                    return; // invalid header\n                  }\n                }\n                if (token === \"def\") {\n                  break; // read all array data\n                }\n                var index = this.readInt();\n                this.getToken(); // read in '/'\n                var glyph = this.getToken();\n                encoding[index] = glyph;\n                this.getToken(); // read the in 'put'\n              }\n            }\n            properties.builtInEncoding = encoding;\n            break;\n          case \"FontBBox\":\n            var fontBBox = this.readNumberArray();\n            // adjusting ascent/descent\n            properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n            properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n            properties.ascentScaled = true;\n            break;\n        }\n      }\n    },\n  };\n\n  return Type1Parser;\n})();\n\nexport { Type1Parser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  FormatError,\n  info,\n  unreachable,\n  UNSUPPORTED_FEATURES,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { isStream } from \"./primitives.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\nvar ShadingType = {\n  FUNCTION_BASED: 1,\n  AXIAL: 2,\n  RADIAL: 3,\n  FREE_FORM_MESH: 4,\n  LATTICE_FORM_MESH: 5,\n  COONS_PATCH_MESH: 6,\n  TENSOR_PATCH_MESH: 7,\n};\n\nvar Pattern = (function PatternClosure() {\n  // Constructor should define this.getPattern\n  // eslint-disable-next-line no-shadow\n  function Pattern() {\n    unreachable(\"should not call Pattern constructor\");\n  }\n\n  Pattern.prototype = {\n    // Input: current Canvas context\n    // Output: the appropriate fillStyle or strokeStyle\n    getPattern: function Pattern_getPattern(ctx) {\n      unreachable(`Should not call Pattern.getStyle: ${ctx}`);\n    },\n  };\n\n  Pattern.parseShading = function (\n    shading,\n    matrix,\n    xref,\n    res,\n    handler,\n    pdfFunctionFactory\n  ) {\n    var dict = isStream(shading) ? shading.dict : shading;\n    var type = dict.get(\"ShadingType\");\n\n    try {\n      switch (type) {\n        case ShadingType.AXIAL:\n        case ShadingType.RADIAL:\n          // Both radial and axial shadings are handled by RadialAxial shading.\n          return new Shadings.RadialAxial(\n            dict,\n            matrix,\n            xref,\n            res,\n            pdfFunctionFactory\n          );\n        case ShadingType.FREE_FORM_MESH:\n        case ShadingType.LATTICE_FORM_MESH:\n        case ShadingType.COONS_PATCH_MESH:\n        case ShadingType.TENSOR_PATCH_MESH:\n          return new Shadings.Mesh(\n            shading,\n            matrix,\n            xref,\n            res,\n            pdfFunctionFactory\n          );\n        default:\n          throw new FormatError(\"Unsupported ShadingType: \" + type);\n      }\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      handler.send(\"UnsupportedFeature\", {\n        featureId: UNSUPPORTED_FEATURES.shadingPattern,\n      });\n      warn(ex);\n      return new Shadings.Dummy();\n    }\n  };\n  return Pattern;\n})();\n\nvar Shadings = {};\n\n// A small number to offset the first/last color stops so we can insert ones to\n// support extend. Number.MIN_VALUE is too small and breaks the extend.\nShadings.SMALL_NUMBER = 1e-6;\n\n// Radial and axial shading have very similar implementations\n// If needed, the implementations can be broken into two classes\nShadings.RadialAxial = (function RadialAxialClosure() {\n  function RadialAxial(dict, matrix, xref, res, pdfFunctionFactory) {\n    this.matrix = matrix;\n    this.coordsArr = dict.getArray(\"Coords\");\n    this.shadingType = dict.get(\"ShadingType\");\n    this.type = \"Pattern\";\n    var cs = dict.get(\"ColorSpace\", \"CS\");\n    cs = ColorSpace.parse(cs, xref, res, pdfFunctionFactory);\n    this.cs = cs;\n    const bbox = dict.getArray(\"BBox\");\n    if (Array.isArray(bbox) && bbox.length === 4) {\n      this.bbox = Util.normalizeRect(bbox);\n    } else {\n      this.bbox = null;\n    }\n\n    var t0 = 0.0,\n      t1 = 1.0;\n    if (dict.has(\"Domain\")) {\n      var domainArr = dict.getArray(\"Domain\");\n      t0 = domainArr[0];\n      t1 = domainArr[1];\n    }\n\n    var extendStart = false,\n      extendEnd = false;\n    if (dict.has(\"Extend\")) {\n      var extendArr = dict.getArray(\"Extend\");\n      extendStart = extendArr[0];\n      extendEnd = extendArr[1];\n    }\n\n    if (\n      this.shadingType === ShadingType.RADIAL &&\n      (!extendStart || !extendEnd)\n    ) {\n      // Radial gradient only currently works if either circle is fully within\n      // the other circle.\n      var x1 = this.coordsArr[0];\n      var y1 = this.coordsArr[1];\n      var r1 = this.coordsArr[2];\n      var x2 = this.coordsArr[3];\n      var y2 = this.coordsArr[4];\n      var r2 = this.coordsArr[5];\n      var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\n      if (r1 <= r2 + distance && r2 <= r1 + distance) {\n        warn(\"Unsupported radial gradient.\");\n      }\n    }\n\n    this.extendStart = extendStart;\n    this.extendEnd = extendEnd;\n\n    var fnObj = dict.get(\"Function\");\n    var fn = pdfFunctionFactory.createFromArray(fnObj);\n\n    // 10 samples seems good enough for now, but probably won't work\n    // if there are sharp color changes. Ideally, we would implement\n    // the spec faithfully and add lossless optimizations.\n    const NUMBER_OF_SAMPLES = 10;\n    const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n\n    var colorStops = (this.colorStops = []);\n\n    // Protect against bad domains.\n    if (t0 >= t1 || step <= 0) {\n      // Acrobat doesn't seem to handle these cases so we'll ignore for\n      // now.\n      info(\"Bad shading domain.\");\n      return;\n    }\n\n    var color = new Float32Array(cs.numComps),\n      ratio = new Float32Array(1);\n    var rgbColor;\n    for (let i = 0; i <= NUMBER_OF_SAMPLES; i++) {\n      ratio[0] = t0 + i * step;\n      fn(ratio, 0, color, 0);\n      rgbColor = cs.getRgb(color, 0);\n      var cssColor = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n      colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]);\n    }\n\n    var background = \"transparent\";\n    if (dict.has(\"Background\")) {\n      rgbColor = cs.getRgb(dict.get(\"Background\"), 0);\n      background = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n    }\n\n    if (!extendStart) {\n      // Insert a color stop at the front and offset the first real color stop\n      // so it doesn't conflict with the one we insert.\n      colorStops.unshift([0, background]);\n      colorStops[1][0] += Shadings.SMALL_NUMBER;\n    }\n    if (!extendEnd) {\n      // Same idea as above in extendStart but for the end.\n      colorStops[colorStops.length - 1][0] -= Shadings.SMALL_NUMBER;\n      colorStops.push([1, background]);\n    }\n\n    this.colorStops = colorStops;\n  }\n\n  RadialAxial.prototype = {\n    getIR: function RadialAxial_getIR() {\n      var coordsArr = this.coordsArr;\n      var shadingType = this.shadingType;\n      var type, p0, p1, r0, r1;\n      if (shadingType === ShadingType.AXIAL) {\n        p0 = [coordsArr[0], coordsArr[1]];\n        p1 = [coordsArr[2], coordsArr[3]];\n        r0 = null;\n        r1 = null;\n        type = \"axial\";\n      } else if (shadingType === ShadingType.RADIAL) {\n        p0 = [coordsArr[0], coordsArr[1]];\n        p1 = [coordsArr[3], coordsArr[4]];\n        r0 = coordsArr[2];\n        r1 = coordsArr[5];\n        type = \"radial\";\n      } else {\n        unreachable(`getPattern type unknown: ${shadingType}`);\n      }\n\n      var matrix = this.matrix;\n      if (matrix) {\n        p0 = Util.applyTransform(p0, matrix);\n        p1 = Util.applyTransform(p1, matrix);\n        if (shadingType === ShadingType.RADIAL) {\n          var scale = Util.singularValueDecompose2dScale(matrix);\n          r0 *= scale[0];\n          r1 *= scale[1];\n        }\n      }\n\n      return [\"RadialAxial\", type, this.bbox, this.colorStops, p0, p1, r0, r1];\n    },\n  };\n\n  return RadialAxial;\n})();\n\n// All mesh shading. For now, they will be presented as set of the triangles\n// to be drawn on the canvas and rgb color for each vertex.\nShadings.Mesh = (function MeshClosure() {\n  function MeshStreamReader(stream, context) {\n    this.stream = stream;\n    this.context = context;\n    this.buffer = 0;\n    this.bufferLength = 0;\n\n    var numComps = context.numComps;\n    this.tmpCompsBuf = new Float32Array(numComps);\n    var csNumComps = context.colorSpace.numComps;\n    this.tmpCsCompsBuf = context.colorFn\n      ? new Float32Array(csNumComps)\n      : this.tmpCompsBuf;\n  }\n  MeshStreamReader.prototype = {\n    get hasData() {\n      if (this.stream.end) {\n        return this.stream.pos < this.stream.end;\n      }\n      if (this.bufferLength > 0) {\n        return true;\n      }\n      var nextByte = this.stream.getByte();\n      if (nextByte < 0) {\n        return false;\n      }\n      this.buffer = nextByte;\n      this.bufferLength = 8;\n      return true;\n    },\n    readBits: function MeshStreamReader_readBits(n) {\n      var buffer = this.buffer;\n      var bufferLength = this.bufferLength;\n      if (n === 32) {\n        if (bufferLength === 0) {\n          return (\n            ((this.stream.getByte() << 24) |\n              (this.stream.getByte() << 16) |\n              (this.stream.getByte() << 8) |\n              this.stream.getByte()) >>>\n            0\n          );\n        }\n        buffer =\n          (buffer << 24) |\n          (this.stream.getByte() << 16) |\n          (this.stream.getByte() << 8) |\n          this.stream.getByte();\n        var nextByte = this.stream.getByte();\n        this.buffer = nextByte & ((1 << bufferLength) - 1);\n        return (\n          ((buffer << (8 - bufferLength)) |\n            ((nextByte & 0xff) >> bufferLength)) >>>\n          0\n        );\n      }\n      if (n === 8 && bufferLength === 0) {\n        return this.stream.getByte();\n      }\n      while (bufferLength < n) {\n        buffer = (buffer << 8) | this.stream.getByte();\n        bufferLength += 8;\n      }\n      bufferLength -= n;\n      this.bufferLength = bufferLength;\n      this.buffer = buffer & ((1 << bufferLength) - 1);\n      return buffer >> bufferLength;\n    },\n    align: function MeshStreamReader_align() {\n      this.buffer = 0;\n      this.bufferLength = 0;\n    },\n    readFlag: function MeshStreamReader_readFlag() {\n      return this.readBits(this.context.bitsPerFlag);\n    },\n    readCoordinate: function MeshStreamReader_readCoordinate() {\n      var bitsPerCoordinate = this.context.bitsPerCoordinate;\n      var xi = this.readBits(bitsPerCoordinate);\n      var yi = this.readBits(bitsPerCoordinate);\n      var decode = this.context.decode;\n      var scale =\n        bitsPerCoordinate < 32\n          ? 1 / ((1 << bitsPerCoordinate) - 1)\n          : 2.3283064365386963e-10; // 2 ^ -32\n      return [\n        xi * scale * (decode[1] - decode[0]) + decode[0],\n        yi * scale * (decode[3] - decode[2]) + decode[2],\n      ];\n    },\n    readComponents: function MeshStreamReader_readComponents() {\n      var numComps = this.context.numComps;\n      var bitsPerComponent = this.context.bitsPerComponent;\n      var scale =\n        bitsPerComponent < 32\n          ? 1 / ((1 << bitsPerComponent) - 1)\n          : 2.3283064365386963e-10; // 2 ^ -32\n      var decode = this.context.decode;\n      var components = this.tmpCompsBuf;\n      for (var i = 0, j = 4; i < numComps; i++, j += 2) {\n        var ci = this.readBits(bitsPerComponent);\n        components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n      }\n      var color = this.tmpCsCompsBuf;\n      if (this.context.colorFn) {\n        this.context.colorFn(components, 0, color, 0);\n      }\n      return this.context.colorSpace.getRgb(color, 0);\n    },\n  };\n\n  function decodeType4Shading(mesh, reader) {\n    var coords = mesh.coords;\n    var colors = mesh.colors;\n    var operators = [];\n    var ps = []; // not maintaining cs since that will match ps\n    var verticesLeft = 0; // assuming we have all data to start a new triangle\n    while (reader.hasData) {\n      var f = reader.readFlag();\n      var coord = reader.readCoordinate();\n      var color = reader.readComponents();\n      if (verticesLeft === 0) {\n        // ignoring flags if we started a triangle\n        if (!(0 <= f && f <= 2)) {\n          throw new FormatError(\"Unknown type4 flag\");\n        }\n        switch (f) {\n          case 0:\n            verticesLeft = 3;\n            break;\n          case 1:\n            ps.push(ps[ps.length - 2], ps[ps.length - 1]);\n            verticesLeft = 1;\n            break;\n          case 2:\n            ps.push(ps[ps.length - 3], ps[ps.length - 1]);\n            verticesLeft = 1;\n            break;\n        }\n        operators.push(f);\n      }\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n      verticesLeft--;\n\n      reader.align();\n    }\n    mesh.figures.push({\n      type: \"triangles\",\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps),\n    });\n  }\n\n  function decodeType5Shading(mesh, reader, verticesPerRow) {\n    var coords = mesh.coords;\n    var colors = mesh.colors;\n    var ps = []; // not maintaining cs since that will match ps\n    while (reader.hasData) {\n      var coord = reader.readCoordinate();\n      var color = reader.readComponents();\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n    }\n    mesh.figures.push({\n      type: \"lattice\",\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps),\n      verticesPerRow,\n    });\n  }\n\n  var MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;\n  var MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;\n\n  var TRIANGLE_DENSITY = 20; // count of triangles per entire mesh bounds\n\n  var getB = (function getBClosure() {\n    function buildB(count) {\n      var lut = [];\n      for (var i = 0; i <= count; i++) {\n        var t = i / count,\n          t_ = 1 - t;\n        lut.push(\n          new Float32Array([\n            t_ * t_ * t_,\n            3 * t * t_ * t_,\n            3 * t * t * t_,\n            t * t * t,\n          ])\n        );\n      }\n      return lut;\n    }\n    var cache = [];\n\n    // eslint-disable-next-line no-shadow\n    return function getB(count) {\n      if (!cache[count]) {\n        cache[count] = buildB(count);\n      }\n      return cache[count];\n    };\n  })();\n\n  function buildFigureFromPatch(mesh, index) {\n    var figure = mesh.figures[index];\n    assert(figure.type === \"patch\", \"Unexpected patch mesh figure\");\n\n    var coords = mesh.coords,\n      colors = mesh.colors;\n    var pi = figure.coords;\n    var ci = figure.colors;\n\n    var figureMinX = Math.min(\n      coords[pi[0]][0],\n      coords[pi[3]][0],\n      coords[pi[12]][0],\n      coords[pi[15]][0]\n    );\n    var figureMinY = Math.min(\n      coords[pi[0]][1],\n      coords[pi[3]][1],\n      coords[pi[12]][1],\n      coords[pi[15]][1]\n    );\n    var figureMaxX = Math.max(\n      coords[pi[0]][0],\n      coords[pi[3]][0],\n      coords[pi[12]][0],\n      coords[pi[15]][0]\n    );\n    var figureMaxY = Math.max(\n      coords[pi[0]][1],\n      coords[pi[3]][1],\n      coords[pi[12]][1],\n      coords[pi[15]][1]\n    );\n    var splitXBy = Math.ceil(\n      ((figureMaxX - figureMinX) * TRIANGLE_DENSITY) /\n        (mesh.bounds[2] - mesh.bounds[0])\n    );\n    splitXBy = Math.max(\n      MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n      Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy)\n    );\n    var splitYBy = Math.ceil(\n      ((figureMaxY - figureMinY) * TRIANGLE_DENSITY) /\n        (mesh.bounds[3] - mesh.bounds[1])\n    );\n    splitYBy = Math.max(\n      MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n      Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy)\n    );\n\n    var verticesPerRow = splitXBy + 1;\n    var figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n    var figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n    var k = 0;\n    var cl = new Uint8Array(3),\n      cr = new Uint8Array(3);\n    var c0 = colors[ci[0]],\n      c1 = colors[ci[1]],\n      c2 = colors[ci[2]],\n      c3 = colors[ci[3]];\n    var bRow = getB(splitYBy),\n      bCol = getB(splitXBy);\n    for (var row = 0; row <= splitYBy; row++) {\n      cl[0] = ((c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy) | 0;\n      cl[1] = ((c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy) | 0;\n      cl[2] = ((c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy) | 0;\n\n      cr[0] = ((c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy) | 0;\n      cr[1] = ((c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy) | 0;\n      cr[2] = ((c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy) | 0;\n\n      for (var col = 0; col <= splitXBy; col++, k++) {\n        if (\n          (row === 0 || row === splitYBy) &&\n          (col === 0 || col === splitXBy)\n        ) {\n          continue;\n        }\n        var x = 0,\n          y = 0;\n        var q = 0;\n        for (var i = 0; i <= 3; i++) {\n          for (var j = 0; j <= 3; j++, q++) {\n            var m = bRow[row][i] * bCol[col][j];\n            x += coords[pi[q]][0] * m;\n            y += coords[pi[q]][1] * m;\n          }\n        }\n        figureCoords[k] = coords.length;\n        coords.push([x, y]);\n        figureColors[k] = colors.length;\n        var newColor = new Uint8Array(3);\n        newColor[0] = ((cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy) | 0;\n        newColor[1] = ((cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy) | 0;\n        newColor[2] = ((cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy) | 0;\n        colors.push(newColor);\n      }\n    }\n    figureCoords[0] = pi[0];\n    figureColors[0] = ci[0];\n    figureCoords[splitXBy] = pi[3];\n    figureColors[splitXBy] = ci[1];\n    figureCoords[verticesPerRow * splitYBy] = pi[12];\n    figureColors[verticesPerRow * splitYBy] = ci[2];\n    figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n    figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n\n    mesh.figures[index] = {\n      type: \"lattice\",\n      coords: figureCoords,\n      colors: figureColors,\n      verticesPerRow,\n    };\n  }\n\n  function decodeType6Shading(mesh, reader) {\n    // A special case of Type 7. The p11, p12, p21, p22 automatically filled\n    var coords = mesh.coords;\n    var colors = mesh.colors;\n    var ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n    var cs = new Int32Array(4); // c00, c30, c03, c33\n    while (reader.hasData) {\n      var f = reader.readFlag();\n      if (!(0 <= f && f <= 3)) {\n        throw new FormatError(\"Unknown type6 flag\");\n      }\n      var i, ii;\n      var pi = coords.length;\n      for (i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n      var ci = colors.length;\n      for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n      var tmp1, tmp2, tmp3, tmp4;\n      switch (f) {\n        // prettier-ignore\n        case 0:\n          ps[12] = pi + 3; ps[13] = pi + 4;  ps[14] = pi + 5;  ps[15] = pi + 6;\n          ps[ 8] = pi + 2; /* values for 5, 6, 9, 10 are    */ ps[11] = pi + 7;\n          ps[ 4] = pi + 1; /* calculated below              */ ps[ 7] = pi + 8;\n          ps[ 0] = pi;     ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n          cs[2] = ci + 1; cs[3] = ci + 2;\n          cs[0] = ci;     cs[1] = ci + 3;\n          break;\n        // prettier-ignore\n        case 1:\n          tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n          ps[12] = tmp4; ps[13] = pi + 0;  ps[14] = pi + 1;  ps[15] = pi + 2;\n          ps[ 8] = tmp3; /* values for 5, 6, 9, 10 are    */ ps[11] = pi + 3;\n          ps[ 4] = tmp2; /* calculated below              */ ps[ 7] = pi + 4;\n          ps[ 0] = tmp1; ps[ 1] = pi + 7;   ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n          tmp1 = cs[2]; tmp2 = cs[3];\n          cs[2] = tmp2;   cs[3] = ci;\n          cs[0] = tmp1;   cs[1] = ci + 1;\n          break;\n        // prettier-ignore\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3];  ps[13] = pi + 0; ps[14] = pi + 1;   ps[15] = pi + 2;\n          ps[ 8] = ps[7];  /* values for 5, 6, 9, 10 are    */ ps[11] = pi + 3;\n          ps[ 4] = tmp2;   /* calculated below              */ ps[ 7] = pi + 4;\n          ps[ 0] = tmp1;  ps[ 1] = pi + 7;   ps[ 2] = pi + 6;  ps[ 3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1]; cs[3] = ci;\n          cs[0] = tmp1;  cs[1] = ci + 1;\n          break;\n        // prettier-ignore\n        case 3:\n          ps[12] = ps[0];  ps[13] = pi + 0;   ps[14] = pi + 1; ps[15] = pi + 2;\n          ps[ 8] = ps[1];  /* values for 5, 6, 9, 10 are    */ ps[11] = pi + 3;\n          ps[ 4] = ps[2];  /* calculated below              */ ps[ 7] = pi + 4;\n          ps[ 0] = ps[3];  ps[ 1] = pi + 7;   ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n          cs[2] = cs[0]; cs[3] = ci;\n          cs[0] = cs[1]; cs[1] = ci + 1;\n          break;\n      }\n      // set p11, p12, p21, p22\n      ps[5] = coords.length;\n      coords.push([\n        (-4 * coords[ps[0]][0] -\n          coords[ps[15]][0] +\n          6 * (coords[ps[4]][0] + coords[ps[1]][0]) -\n          2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n          3 * (coords[ps[13]][0] + coords[ps[7]][0])) /\n          9,\n        (-4 * coords[ps[0]][1] -\n          coords[ps[15]][1] +\n          6 * (coords[ps[4]][1] + coords[ps[1]][1]) -\n          2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n          3 * (coords[ps[13]][1] + coords[ps[7]][1])) /\n          9,\n      ]);\n      ps[6] = coords.length;\n      coords.push([\n        (-4 * coords[ps[3]][0] -\n          coords[ps[12]][0] +\n          6 * (coords[ps[2]][0] + coords[ps[7]][0]) -\n          2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n          3 * (coords[ps[4]][0] + coords[ps[14]][0])) /\n          9,\n        (-4 * coords[ps[3]][1] -\n          coords[ps[12]][1] +\n          6 * (coords[ps[2]][1] + coords[ps[7]][1]) -\n          2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n          3 * (coords[ps[4]][1] + coords[ps[14]][1])) /\n          9,\n      ]);\n      ps[9] = coords.length;\n      coords.push([\n        (-4 * coords[ps[12]][0] -\n          coords[ps[3]][0] +\n          6 * (coords[ps[8]][0] + coords[ps[13]][0]) -\n          2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n          3 * (coords[ps[11]][0] + coords[ps[1]][0])) /\n          9,\n        (-4 * coords[ps[12]][1] -\n          coords[ps[3]][1] +\n          6 * (coords[ps[8]][1] + coords[ps[13]][1]) -\n          2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n          3 * (coords[ps[11]][1] + coords[ps[1]][1])) /\n          9,\n      ]);\n      ps[10] = coords.length;\n      coords.push([\n        (-4 * coords[ps[15]][0] -\n          coords[ps[0]][0] +\n          6 * (coords[ps[11]][0] + coords[ps[14]][0]) -\n          2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n          3 * (coords[ps[2]][0] + coords[ps[8]][0])) /\n          9,\n        (-4 * coords[ps[15]][1] -\n          coords[ps[0]][1] +\n          6 * (coords[ps[11]][1] + coords[ps[14]][1]) -\n          2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n          3 * (coords[ps[2]][1] + coords[ps[8]][1])) /\n          9,\n      ]);\n      mesh.figures.push({\n        type: \"patch\",\n        coords: new Int32Array(ps), // making copies of ps and cs\n        colors: new Int32Array(cs),\n      });\n    }\n  }\n\n  function decodeType7Shading(mesh, reader) {\n    var coords = mesh.coords;\n    var colors = mesh.colors;\n    var ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n    var cs = new Int32Array(4); // c00, c30, c03, c33\n    while (reader.hasData) {\n      var f = reader.readFlag();\n      if (!(0 <= f && f <= 3)) {\n        throw new FormatError(\"Unknown type7 flag\");\n      }\n      var i, ii;\n      var pi = coords.length;\n      for (i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n      var ci = colors.length;\n      for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n      var tmp1, tmp2, tmp3, tmp4;\n      switch (f) {\n        // prettier-ignore\n        case 0:\n          ps[12] = pi + 3; ps[13] = pi + 4;  ps[14] = pi + 5;  ps[15] = pi + 6;\n          ps[ 8] = pi + 2; ps[ 9] = pi + 13; ps[10] = pi + 14; ps[11] = pi + 7;\n          ps[ 4] = pi + 1; ps[ 5] = pi + 12; ps[ 6] = pi + 15; ps[ 7] = pi + 8;\n          ps[ 0] = pi;     ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n          cs[2] = ci + 1; cs[3] = ci + 2;\n          cs[0] = ci;     cs[1] = ci + 3;\n          break;\n        // prettier-ignore\n        case 1:\n          tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n          ps[12] = tmp4;   ps[13] = pi + 0;  ps[14] = pi + 1;  ps[15] = pi + 2;\n          ps[ 8] = tmp3;   ps[ 9] = pi + 9;  ps[10] = pi + 10; ps[11] = pi + 3;\n          ps[ 4] = tmp2;   ps[ 5] = pi + 8;  ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n          ps[ 0] = tmp1;   ps[ 1] = pi + 7;  ps[ 2] = pi + 6;  ps[ 3] = pi + 5;\n          tmp1 = cs[2]; tmp2 = cs[3];\n          cs[2] = tmp2;   cs[3] = ci;\n          cs[0] = tmp1;   cs[1] = ci + 1;\n          break;\n        // prettier-ignore\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3]; ps[13] = pi + 0; ps[14] = pi + 1;  ps[15] = pi + 2;\n          ps[ 8] = ps[7]; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n          ps[ 4] = tmp2;  ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n          ps[ 0] = tmp1;  ps[ 1] = pi + 7; ps[ 2] = pi + 6;  ps[ 3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1]; cs[3] = ci;\n          cs[0] = tmp1;  cs[1] = ci + 1;\n          break;\n        // prettier-ignore\n        case 3:\n          ps[12] = ps[0];  ps[13] = pi + 0;  ps[14] = pi + 1;  ps[15] = pi + 2;\n          ps[ 8] = ps[1];  ps[ 9] = pi + 9;  ps[10] = pi + 10; ps[11] = pi + 3;\n          ps[ 4] = ps[2];  ps[ 5] = pi + 8;  ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n          ps[ 0] = ps[3];  ps[ 1] = pi + 7;  ps[ 2] = pi + 6;  ps[ 3] = pi + 5;\n          cs[2] = cs[0]; cs[3] = ci;\n          cs[0] = cs[1]; cs[1] = ci + 1;\n          break;\n      }\n      mesh.figures.push({\n        type: \"patch\",\n        coords: new Int32Array(ps), // making copies of ps and cs\n        colors: new Int32Array(cs),\n      });\n    }\n  }\n\n  function updateBounds(mesh) {\n    var minX = mesh.coords[0][0],\n      minY = mesh.coords[0][1],\n      maxX = minX,\n      maxY = minY;\n    for (var i = 1, ii = mesh.coords.length; i < ii; i++) {\n      var x = mesh.coords[i][0],\n        y = mesh.coords[i][1];\n      minX = minX > x ? x : minX;\n      minY = minY > y ? y : minY;\n      maxX = maxX < x ? x : maxX;\n      maxY = maxY < y ? y : maxY;\n    }\n    mesh.bounds = [minX, minY, maxX, maxY];\n  }\n\n  function packData(mesh) {\n    var i, ii, j, jj;\n\n    var coords = mesh.coords;\n    var coordsPacked = new Float32Array(coords.length * 2);\n    for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n      var xy = coords[i];\n      coordsPacked[j++] = xy[0];\n      coordsPacked[j++] = xy[1];\n    }\n    mesh.coords = coordsPacked;\n\n    var colors = mesh.colors;\n    var colorsPacked = new Uint8Array(colors.length * 3);\n    for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n      var c = colors[i];\n      colorsPacked[j++] = c[0];\n      colorsPacked[j++] = c[1];\n      colorsPacked[j++] = c[2];\n    }\n    mesh.colors = colorsPacked;\n\n    var figures = mesh.figures;\n    for (i = 0, ii = figures.length; i < ii; i++) {\n      var figure = figures[i],\n        ps = figure.coords,\n        cs = figure.colors;\n      for (j = 0, jj = ps.length; j < jj; j++) {\n        ps[j] *= 2;\n        cs[j] *= 3;\n      }\n    }\n  }\n\n  function Mesh(stream, matrix, xref, res, pdfFunctionFactory) {\n    if (!isStream(stream)) {\n      throw new FormatError(\"Mesh data is not a stream\");\n    }\n    var dict = stream.dict;\n    this.matrix = matrix;\n    this.shadingType = dict.get(\"ShadingType\");\n    this.type = \"Pattern\";\n    const bbox = dict.getArray(\"BBox\");\n    if (Array.isArray(bbox) && bbox.length === 4) {\n      this.bbox = Util.normalizeRect(bbox);\n    } else {\n      this.bbox = null;\n    }\n    var cs = dict.get(\"ColorSpace\", \"CS\");\n    cs = ColorSpace.parse(cs, xref, res, pdfFunctionFactory);\n    this.cs = cs;\n    this.background = dict.has(\"Background\")\n      ? cs.getRgb(dict.get(\"Background\"), 0)\n      : null;\n\n    var fnObj = dict.get(\"Function\");\n    var fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n\n    this.coords = [];\n    this.colors = [];\n    this.figures = [];\n\n    var decodeContext = {\n      bitsPerCoordinate: dict.get(\"BitsPerCoordinate\"),\n      bitsPerComponent: dict.get(\"BitsPerComponent\"),\n      bitsPerFlag: dict.get(\"BitsPerFlag\"),\n      decode: dict.getArray(\"Decode\"),\n      colorFn: fn,\n      colorSpace: cs,\n      numComps: fn ? 1 : cs.numComps,\n    };\n    var reader = new MeshStreamReader(stream, decodeContext);\n\n    var patchMesh = false;\n    switch (this.shadingType) {\n      case ShadingType.FREE_FORM_MESH:\n        decodeType4Shading(this, reader);\n        break;\n      case ShadingType.LATTICE_FORM_MESH:\n        var verticesPerRow = dict.get(\"VerticesPerRow\") | 0;\n        if (verticesPerRow < 2) {\n          throw new FormatError(\"Invalid VerticesPerRow\");\n        }\n        decodeType5Shading(this, reader, verticesPerRow);\n        break;\n      case ShadingType.COONS_PATCH_MESH:\n        decodeType6Shading(this, reader);\n        patchMesh = true;\n        break;\n      case ShadingType.TENSOR_PATCH_MESH:\n        decodeType7Shading(this, reader);\n        patchMesh = true;\n        break;\n      default:\n        unreachable(\"Unsupported mesh type.\");\n        break;\n    }\n\n    if (patchMesh) {\n      // dirty bounds calculation for determining, how dense shall be triangles\n      updateBounds(this);\n      for (var i = 0, ii = this.figures.length; i < ii; i++) {\n        buildFigureFromPatch(this, i);\n      }\n    }\n    // calculate bounds\n    updateBounds(this);\n\n    packData(this);\n  }\n\n  Mesh.prototype = {\n    getIR: function Mesh_getIR() {\n      return [\n        \"Mesh\",\n        this.shadingType,\n        this.coords,\n        this.colors,\n        this.figures,\n        this.bounds,\n        this.matrix,\n        this.bbox,\n        this.background,\n      ];\n    },\n  };\n\n  return Mesh;\n})();\n\nShadings.Dummy = (function DummyClosure() {\n  function Dummy() {\n    this.type = \"Pattern\";\n  }\n\n  Dummy.prototype = {\n    getIR: function Dummy_getIR() {\n      return [\"Dummy\"];\n    },\n  };\n  return Dummy;\n})();\n\nfunction getTilingPatternIR(operatorList, dict, args) {\n  const matrix = dict.getArray(\"Matrix\");\n  const bbox = Util.normalizeRect(dict.getArray(\"BBox\"));\n  const xstep = dict.get(\"XStep\");\n  const ystep = dict.get(\"YStep\");\n  const paintType = dict.get(\"PaintType\");\n  const tilingType = dict.get(\"TilingType\");\n\n  // Ensure that the pattern has a non-zero width and height, to prevent errors\n  // in `pattern_helper.js` (fixes issue8330.pdf).\n  if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n    throw new FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);\n  }\n\n  return [\n    \"TilingPattern\",\n    args,\n    operatorList,\n    matrix,\n    bbox,\n    xstep,\n    ystep,\n    paintType,\n    tilingType,\n  ];\n}\n\nexport { Pattern, getTilingPatternIR };\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 { warn } from \"../shared/util.js\";\n\n// Character types for symbols from 0000 to 00FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// prettier-ignore\nvar baseTypes = [\n  \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"S\", \"B\", \"S\",\n  \"WS\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n  \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"B\", \"B\", \"S\", \"WS\", \"ON\", \"ON\", \"ET\",\n  \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ES\", \"CS\", \"ES\", \"CS\", \"CS\",\n  \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"CS\", \"ON\",\n  \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\",\n  \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n  \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n  \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"CS\", \"ON\", \"ET\",\n  \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"ON\", \"BN\", \"ON\",\n  \"ON\", \"ET\", \"ET\", \"EN\", \"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"EN\", \"L\",\n  \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\"\n];\n\n// Character types for symbols from 0600 to 06FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// Note that 061D does not exist in the Unicode standard (see\n// http://unicode.org/charts/PDF/U0600.pdf), so we replace it with an\n// empty string and issue a warning if we encounter this character. The\n// empty string is required to properly index the items after it.\n// prettier-ignore\nvar arabicTypes = [\n  \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ON\", \"ON\", \"AL\", \"ET\", \"ET\", \"AL\",\n  \"CS\", \"AL\", \"ON\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n  \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n  \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n  \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\",\n  \"AN\", \"AN\", \"AN\", \"ET\", \"AN\", \"AN\", \"AL\", \"AL\", \"AL\", \"NSM\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\",\n  \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"NSM\", \"NSM\",\n  \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"EN\", \"EN\", \"EN\", \"EN\",\n  \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\"\n];\n\nfunction isOdd(i) {\n  return (i & 1) !== 0;\n}\n\nfunction isEven(i) {\n  return (i & 1) === 0;\n}\n\nfunction findUnequal(arr, start, value) {\n  for (var j = start, jj = arr.length; j < jj; ++j) {\n    if (arr[j] !== value) {\n      return j;\n    }\n  }\n  return j;\n}\n\nfunction setValues(arr, start, end, value) {\n  for (var j = start; j < end; ++j) {\n    arr[j] = value;\n  }\n}\n\nfunction reverseValues(arr, start, end) {\n  for (var i = start, j = end - 1; i < j; ++i, --j) {\n    var temp = arr[i];\n    arr[i] = arr[j];\n    arr[j] = temp;\n  }\n}\n\nfunction createBidiText(str, isLTR, vertical = false) {\n  let dir = \"ltr\";\n  if (vertical) {\n    dir = \"ttb\";\n  } else if (!isLTR) {\n    dir = \"rtl\";\n  }\n  return { str, dir };\n}\n\n// These are used in bidi(), which is called frequently. We re-use them on\n// each call to avoid unnecessary allocations.\nvar chars = [];\nvar types = [];\n\nfunction bidi(str, startLevel, vertical) {\n  var isLTR = true;\n  var strLength = str.length;\n  if (strLength === 0 || vertical) {\n    return createBidiText(str, isLTR, vertical);\n  }\n\n  // Get types and fill arrays\n  chars.length = strLength;\n  types.length = strLength;\n  var numBidi = 0;\n\n  var i, ii;\n  for (i = 0; i < strLength; ++i) {\n    chars[i] = str.charAt(i);\n\n    var charCode = str.charCodeAt(i);\n    var charType = \"L\";\n    if (charCode <= 0x00ff) {\n      charType = baseTypes[charCode];\n    } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n      charType = \"R\";\n    } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n      charType = arabicTypes[charCode & 0xff];\n      if (!charType) {\n        warn(\"Bidi: invalid Unicode character \" + charCode.toString(16));\n      }\n    } else if (0x0700 <= charCode && charCode <= 0x08ac) {\n      charType = \"AL\";\n    }\n    if (charType === \"R\" || charType === \"AL\" || charType === \"AN\") {\n      numBidi++;\n    }\n    types[i] = charType;\n  }\n\n  // Detect the bidi method\n  // - If there are no rtl characters then no bidi needed\n  // - If less than 30% chars are rtl then string is primarily ltr\n  // - If more than 30% chars are rtl then string is primarily rtl\n  if (numBidi === 0) {\n    isLTR = true;\n    return createBidiText(str, isLTR);\n  }\n\n  if (startLevel === -1) {\n    if (numBidi / strLength < 0.3) {\n      isLTR = true;\n      startLevel = 0;\n    } else {\n      isLTR = false;\n      startLevel = 1;\n    }\n  }\n\n  var levels = [];\n  for (i = 0; i < strLength; ++i) {\n    levels[i] = startLevel;\n  }\n\n  /*\n   X1-X10: skip most of this, since we are NOT doing the embeddings.\n   */\n  var e = isOdd(startLevel) ? \"R\" : \"L\";\n  var sor = e;\n  var eor = sor;\n\n  /*\n   W1. Examine each non-spacing mark (NSM) in the level run, and change the\n   type of the NSM to the type of the previous character. If the NSM is at the\n   start of the level run, it will get the type of sor.\n   */\n  var lastType = sor;\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"NSM\") {\n      types[i] = lastType;\n    } else {\n      lastType = types[i];\n    }\n  }\n\n  /*\n   W2. Search backwards from each instance of a European number until the\n   first strong type (R, L, AL, or sor) is found.  If an AL is found, change\n   the type of the European number to Arabic number.\n   */\n  lastType = sor;\n  var t;\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (t === \"EN\") {\n      types[i] = lastType === \"AL\" ? \"AN\" : \"EN\";\n    } else if (t === \"R\" || t === \"L\" || t === \"AL\") {\n      lastType = t;\n    }\n  }\n\n  /*\n   W3. Change all ALs to R.\n   */\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (t === \"AL\") {\n      types[i] = \"R\";\n    }\n  }\n\n  /*\n   W4. A single European separator between two European numbers changes to a\n   European number. A single common separator between two numbers of the same\n   type changes to that type:\n   */\n  for (i = 1; i < strLength - 1; ++i) {\n    if (types[i] === \"ES\" && types[i - 1] === \"EN\" && types[i + 1] === \"EN\") {\n      types[i] = \"EN\";\n    }\n    if (\n      types[i] === \"CS\" &&\n      (types[i - 1] === \"EN\" || types[i - 1] === \"AN\") &&\n      types[i + 1] === types[i - 1]\n    ) {\n      types[i] = types[i - 1];\n    }\n  }\n\n  /*\n   W5. A sequence of European terminators adjacent to European numbers changes\n   to all European numbers:\n   */\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"EN\") {\n      // do before\n      var j;\n      for (j = i - 1; j >= 0; --j) {\n        if (types[j] !== \"ET\") {\n          break;\n        }\n        types[j] = \"EN\";\n      }\n      // do after\n      for (j = i + 1; j < strLength; ++j) {\n        if (types[j] !== \"ET\") {\n          break;\n        }\n        types[j] = \"EN\";\n      }\n    }\n  }\n\n  /*\n   W6. Otherwise, separators and terminators change to Other Neutral:\n   */\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (t === \"WS\" || t === \"ES\" || t === \"ET\" || t === \"CS\") {\n      types[i] = \"ON\";\n    }\n  }\n\n  /*\n   W7. Search backwards from each instance of a European number until the\n   first strong type (R, L, or sor) is found. If an L is found,  then change\n   the type of the European number to L.\n   */\n  lastType = sor;\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (t === \"EN\") {\n      types[i] = lastType === \"L\" ? \"L\" : \"EN\";\n    } else if (t === \"R\" || t === \"L\") {\n      lastType = t;\n    }\n  }\n\n  /*\n   N1. A sequence of neutrals takes the direction of the surrounding strong\n   text if the text on both sides has the same direction. European and Arabic\n   numbers are treated as though they were R. Start-of-level-run (sor) and\n   end-of-level-run (eor) are used at level run boundaries.\n   */\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"ON\") {\n      var end = findUnequal(types, i + 1, \"ON\");\n      var before = sor;\n      if (i > 0) {\n        before = types[i - 1];\n      }\n\n      var after = eor;\n      if (end + 1 < strLength) {\n        after = types[end + 1];\n      }\n      if (before !== \"L\") {\n        before = \"R\";\n      }\n      if (after !== \"L\") {\n        after = \"R\";\n      }\n      if (before === after) {\n        setValues(types, i, end, before);\n      }\n      i = end - 1; // reset to end (-1 so next iteration is ok)\n    }\n  }\n\n  /*\n   N2. Any remaining neutrals take the embedding direction.\n   */\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"ON\") {\n      types[i] = e;\n    }\n  }\n\n  /*\n   I1. For all characters with an even (left-to-right) embedding direction,\n   those of type R go up one level and those of type AN or EN go up two\n   levels.\n   I2. For all characters with an odd (right-to-left) embedding direction,\n   those of type L, EN or AN go up one level.\n   */\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (isEven(levels[i])) {\n      if (t === \"R\") {\n        levels[i] += 1;\n      } else if (t === \"AN\" || t === \"EN\") {\n        levels[i] += 2;\n      }\n    } else {\n      // isOdd\n      if (t === \"L\" || t === \"AN\" || t === \"EN\") {\n        levels[i] += 1;\n      }\n    }\n  }\n\n  /*\n   L1. On each line, reset the embedding level of the following characters to\n   the paragraph embedding level:\n\n   segment separators,\n   paragraph separators,\n   any sequence of whitespace characters preceding a segment separator or\n   paragraph separator, and any sequence of white space characters at the end\n   of the line.\n   */\n\n  // don't bother as text is only single line\n\n  /*\n   L2. From the highest level found in the text to the lowest odd level on\n   each line, reverse any contiguous sequence of characters that are at that\n   level or higher.\n   */\n\n  // find highest level & lowest odd level\n  var highestLevel = -1;\n  var lowestOddLevel = 99;\n  var level;\n  for (i = 0, ii = levels.length; i < ii; ++i) {\n    level = levels[i];\n    if (highestLevel < level) {\n      highestLevel = level;\n    }\n    if (lowestOddLevel > level && isOdd(level)) {\n      lowestOddLevel = level;\n    }\n  }\n\n  // now reverse between those limits\n  for (level = highestLevel; level >= lowestOddLevel; --level) {\n    // find segments to reverse\n    var start = -1;\n    for (i = 0, ii = levels.length; i < ii; ++i) {\n      if (levels[i] < level) {\n        if (start >= 0) {\n          reverseValues(chars, start, i);\n          start = -1;\n        }\n      } else if (start < 0) {\n        start = i;\n      }\n    }\n    if (start >= 0) {\n      reverseValues(chars, start, levels.length);\n    }\n  }\n\n  /*\n   L3. Combining marks applied to a right-to-left base character will at this\n   point precede their base character. If the rendering engine expects them to\n   follow the base characters in the final display process, then the ordering\n   of the marks and the base character must be reversed.\n   */\n\n  // don't bother for now\n\n  /*\n   L4. A character that possesses the mirrored property as specified by\n   Section 4.7, Mirrored, must be depicted by a mirrored glyph if the resolved\n   directionality of that character is R.\n   */\n\n  // don't mirror as characters are already mirrored in the pdf\n\n  // Finally, return string\n  for (i = 0, ii = chars.length; i < ii; ++i) {\n    var ch = chars[i];\n    if (ch === \"<\" || ch === \">\") {\n      chars[i] = \"\";\n    }\n  }\n  return createBidiText(chars.join(\"\"), isLTR);\n}\n\nexport { bidi };\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 { getLookupTableFactory } from \"./core_utils.js\";\n\n// The Metrics object contains glyph widths (in glyph space units).\n// As per PDF spec, for most fonts (Type 3 being an exception) a glyph\n// space unit corresponds to 1/1000th of text space unit.\nvar getMetrics = getLookupTableFactory(function (t) {\n  t.Courier = 600;\n  t[\"Courier-Bold\"] = 600;\n  t[\"Courier-BoldOblique\"] = 600;\n  t[\"Courier-Oblique\"] = 600;\n  // eslint-disable-next-line no-shadow\n  t.Helvetica = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.exclam = 278;\n    t.quotedbl = 355;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 667;\n    t.quoteright = 222;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 556;\n    t.at = 1015;\n    t.A = 667;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 500;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 278;\n    t.backslash = 278;\n    t.bracketright = 278;\n    t.asciicircum = 469;\n    t.underscore = 556;\n    t.quoteleft = 222;\n    t.a = 556;\n    t.b = 556;\n    t.c = 500;\n    t.d = 556;\n    t.e = 556;\n    t.f = 278;\n    t.g = 556;\n    t.h = 556;\n    t.i = 222;\n    t.j = 222;\n    t.k = 500;\n    t.l = 222;\n    t.m = 833;\n    t.n = 556;\n    t.o = 556;\n    t.p = 556;\n    t.q = 556;\n    t.r = 333;\n    t.s = 500;\n    t.t = 278;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 500;\n    t.braceleft = 334;\n    t.bar = 260;\n    t.braceright = 334;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 191;\n    t.quotedblleft = 333;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 537;\n    t.bullet = 350;\n    t.quotesinglbase = 222;\n    t.quotedblbase = 333;\n    t.quotedblright = 333;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 556;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 222;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 556;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 667;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 500;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 500;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 222;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 500;\n    t.scedilla = 500;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 556;\n    t.Amacron = 667;\n    t.rcaron = 333;\n    t.ccedilla = 500;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 643;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 584;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 500;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 260;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 333;\n    t.omacron = 556;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 222;\n    t.tcaron = 317;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 222;\n    t.Oacute = 778;\n    t.oacute = 556;\n    t.amacron = 556;\n    t.sacute = 500;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 556;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 299;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 556;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 556;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 556;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 556;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 556;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 556;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 500;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 584;\n    t.odieresis = 556;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 556;\n    t.eth = 556;\n    t.zcaron = 500;\n    t.ncommaaccent = 556;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Helvetica-Bold\"] = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.exclam = 333;\n    t.quotedbl = 474;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 722;\n    t.quoteright = 278;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 611;\n    t.at = 975;\n    t.A = 722;\n    t.B = 722;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 556;\n    t.K = 722;\n    t.L = 611;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 584;\n    t.underscore = 556;\n    t.quoteleft = 278;\n    t.a = 556;\n    t.b = 611;\n    t.c = 556;\n    t.d = 611;\n    t.e = 556;\n    t.f = 333;\n    t.g = 611;\n    t.h = 611;\n    t.i = 278;\n    t.j = 278;\n    t.k = 556;\n    t.l = 278;\n    t.m = 889;\n    t.n = 611;\n    t.o = 611;\n    t.p = 611;\n    t.q = 611;\n    t.r = 389;\n    t.s = 556;\n    t.t = 333;\n    t.u = 611;\n    t.v = 556;\n    t.w = 778;\n    t.x = 556;\n    t.y = 556;\n    t.z = 500;\n    t.braceleft = 389;\n    t.bar = 280;\n    t.braceright = 389;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 238;\n    t.quotedblleft = 500;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 611;\n    t.fl = 611;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 556;\n    t.bullet = 350;\n    t.quotesinglbase = 278;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 611;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 611;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 722;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 556;\n    t.scommaaccent = 556;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 611;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 556;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 556;\n    t.scedilla = 556;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 611;\n    t.acircumflex = 556;\n    t.Amacron = 722;\n    t.rcaron = 389;\n    t.ccedilla = 556;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 743;\n    t.Umacron = 722;\n    t.uring = 611;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 584;\n    t.uacute = 611;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 556;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 556;\n    t.nacute = 611;\n    t.umacron = 611;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 280;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 611;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 389;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 611;\n    t.amacron = 556;\n    t.sacute = 556;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 611;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 611;\n    t.igrave = 278;\n    t.ohungarumlaut = 611;\n    t.Eogonek = 667;\n    t.dcroat = 611;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 400;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 611;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 611;\n    t.ntilde = 611;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 611;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 611;\n    t.Ccaron = 722;\n    t.ugrave = 611;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 611;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 556;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 611;\n    t.tcommaaccent = 333;\n    t.logicalnot = 584;\n    t.odieresis = 611;\n    t.udieresis = 611;\n    t.notequal = 549;\n    t.gcommaaccent = 611;\n    t.eth = 611;\n    t.zcaron = 500;\n    t.ncommaaccent = 611;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Helvetica-BoldOblique\"] = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.exclam = 333;\n    t.quotedbl = 474;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 722;\n    t.quoteright = 278;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 611;\n    t.at = 975;\n    t.A = 722;\n    t.B = 722;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 556;\n    t.K = 722;\n    t.L = 611;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 584;\n    t.underscore = 556;\n    t.quoteleft = 278;\n    t.a = 556;\n    t.b = 611;\n    t.c = 556;\n    t.d = 611;\n    t.e = 556;\n    t.f = 333;\n    t.g = 611;\n    t.h = 611;\n    t.i = 278;\n    t.j = 278;\n    t.k = 556;\n    t.l = 278;\n    t.m = 889;\n    t.n = 611;\n    t.o = 611;\n    t.p = 611;\n    t.q = 611;\n    t.r = 389;\n    t.s = 556;\n    t.t = 333;\n    t.u = 611;\n    t.v = 556;\n    t.w = 778;\n    t.x = 556;\n    t.y = 556;\n    t.z = 500;\n    t.braceleft = 389;\n    t.bar = 280;\n    t.braceright = 389;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 238;\n    t.quotedblleft = 500;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 611;\n    t.fl = 611;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 556;\n    t.bullet = 350;\n    t.quotesinglbase = 278;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 611;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 611;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 722;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 556;\n    t.scommaaccent = 556;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 611;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 556;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 556;\n    t.scedilla = 556;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 611;\n    t.acircumflex = 556;\n    t.Amacron = 722;\n    t.rcaron = 389;\n    t.ccedilla = 556;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 743;\n    t.Umacron = 722;\n    t.uring = 611;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 584;\n    t.uacute = 611;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 556;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 556;\n    t.nacute = 611;\n    t.umacron = 611;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 280;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 611;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 389;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 611;\n    t.amacron = 556;\n    t.sacute = 556;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 611;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 611;\n    t.igrave = 278;\n    t.ohungarumlaut = 611;\n    t.Eogonek = 667;\n    t.dcroat = 611;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 400;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 611;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 611;\n    t.ntilde = 611;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 611;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 611;\n    t.Ccaron = 722;\n    t.ugrave = 611;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 611;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 556;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 611;\n    t.tcommaaccent = 333;\n    t.logicalnot = 584;\n    t.odieresis = 611;\n    t.udieresis = 611;\n    t.notequal = 549;\n    t.gcommaaccent = 611;\n    t.eth = 611;\n    t.zcaron = 500;\n    t.ncommaaccent = 611;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Helvetica-Oblique\"] = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.exclam = 278;\n    t.quotedbl = 355;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 667;\n    t.quoteright = 222;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 556;\n    t.at = 1015;\n    t.A = 667;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 500;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 278;\n    t.backslash = 278;\n    t.bracketright = 278;\n    t.asciicircum = 469;\n    t.underscore = 556;\n    t.quoteleft = 222;\n    t.a = 556;\n    t.b = 556;\n    t.c = 500;\n    t.d = 556;\n    t.e = 556;\n    t.f = 278;\n    t.g = 556;\n    t.h = 556;\n    t.i = 222;\n    t.j = 222;\n    t.k = 500;\n    t.l = 222;\n    t.m = 833;\n    t.n = 556;\n    t.o = 556;\n    t.p = 556;\n    t.q = 556;\n    t.r = 333;\n    t.s = 500;\n    t.t = 278;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 500;\n    t.braceleft = 334;\n    t.bar = 260;\n    t.braceright = 334;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 191;\n    t.quotedblleft = 333;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 537;\n    t.bullet = 350;\n    t.quotesinglbase = 222;\n    t.quotedblbase = 333;\n    t.quotedblright = 333;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 556;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 222;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 556;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 667;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 500;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 500;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 222;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 500;\n    t.scedilla = 500;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 556;\n    t.Amacron = 667;\n    t.rcaron = 333;\n    t.ccedilla = 500;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 643;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 584;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 500;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 260;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 333;\n    t.omacron = 556;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 222;\n    t.tcaron = 317;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 222;\n    t.Oacute = 778;\n    t.oacute = 556;\n    t.amacron = 556;\n    t.sacute = 500;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 556;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 299;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 556;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 556;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 556;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 556;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 556;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 556;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 500;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 584;\n    t.odieresis = 556;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 556;\n    t.eth = 556;\n    t.zcaron = 500;\n    t.ncommaaccent = 556;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  // eslint-disable-next-line no-shadow\n  t.Symbol = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.universal = 713;\n    t.numbersign = 500;\n    t.existential = 549;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.suchthat = 439;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asteriskmath = 500;\n    t.plus = 549;\n    t.comma = 250;\n    t.minus = 549;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 549;\n    t.equal = 549;\n    t.greater = 549;\n    t.question = 444;\n    t.congruent = 549;\n    t.Alpha = 722;\n    t.Beta = 667;\n    t.Chi = 722;\n    t.Delta = 612;\n    t.Epsilon = 611;\n    t.Phi = 763;\n    t.Gamma = 603;\n    t.Eta = 722;\n    t.Iota = 333;\n    t.theta1 = 631;\n    t.Kappa = 722;\n    t.Lambda = 686;\n    t.Mu = 889;\n    t.Nu = 722;\n    t.Omicron = 722;\n    t.Pi = 768;\n    t.Theta = 741;\n    t.Rho = 556;\n    t.Sigma = 592;\n    t.Tau = 611;\n    t.Upsilon = 690;\n    t.sigma1 = 439;\n    t.Omega = 768;\n    t.Xi = 645;\n    t.Psi = 795;\n    t.Zeta = 611;\n    t.bracketleft = 333;\n    t.therefore = 863;\n    t.bracketright = 333;\n    t.perpendicular = 658;\n    t.underscore = 500;\n    t.radicalex = 500;\n    t.alpha = 631;\n    t.beta = 549;\n    t.chi = 549;\n    t.delta = 494;\n    t.epsilon = 439;\n    t.phi = 521;\n    t.gamma = 411;\n    t.eta = 603;\n    t.iota = 329;\n    t.phi1 = 603;\n    t.kappa = 549;\n    t.lambda = 549;\n    t.mu = 576;\n    t.nu = 521;\n    t.omicron = 549;\n    t.pi = 549;\n    t.theta = 521;\n    t.rho = 549;\n    t.sigma = 603;\n    t.tau = 439;\n    t.upsilon = 576;\n    t.omega1 = 713;\n    t.omega = 686;\n    t.xi = 493;\n    t.psi = 686;\n    t.zeta = 494;\n    t.braceleft = 480;\n    t.bar = 200;\n    t.braceright = 480;\n    t.similar = 549;\n    t.Euro = 750;\n    t.Upsilon1 = 620;\n    t.minute = 247;\n    t.lessequal = 549;\n    t.fraction = 167;\n    t.infinity = 713;\n    t.florin = 500;\n    t.club = 753;\n    t.diamond = 753;\n    t.heart = 753;\n    t.spade = 753;\n    t.arrowboth = 1042;\n    t.arrowleft = 987;\n    t.arrowup = 603;\n    t.arrowright = 987;\n    t.arrowdown = 603;\n    t.degree = 400;\n    t.plusminus = 549;\n    t.second = 411;\n    t.greaterequal = 549;\n    t.multiply = 549;\n    t.proportional = 713;\n    t.partialdiff = 494;\n    t.bullet = 460;\n    t.divide = 549;\n    t.notequal = 549;\n    t.equivalence = 549;\n    t.approxequal = 549;\n    t.ellipsis = 1000;\n    t.arrowvertex = 603;\n    t.arrowhorizex = 1000;\n    t.carriagereturn = 658;\n    t.aleph = 823;\n    t.Ifraktur = 686;\n    t.Rfraktur = 795;\n    t.weierstrass = 987;\n    t.circlemultiply = 768;\n    t.circleplus = 768;\n    t.emptyset = 823;\n    t.intersection = 768;\n    t.union = 768;\n    t.propersuperset = 713;\n    t.reflexsuperset = 713;\n    t.notsubset = 713;\n    t.propersubset = 713;\n    t.reflexsubset = 713;\n    t.element = 713;\n    t.notelement = 713;\n    t.angle = 768;\n    t.gradient = 713;\n    t.registerserif = 790;\n    t.copyrightserif = 790;\n    t.trademarkserif = 890;\n    t.product = 823;\n    t.radical = 549;\n    t.dotmath = 250;\n    t.logicalnot = 713;\n    t.logicaland = 603;\n    t.logicalor = 603;\n    t.arrowdblboth = 1042;\n    t.arrowdblleft = 987;\n    t.arrowdblup = 603;\n    t.arrowdblright = 987;\n    t.arrowdbldown = 603;\n    t.lozenge = 494;\n    t.angleleft = 329;\n    t.registersans = 790;\n    t.copyrightsans = 790;\n    t.trademarksans = 786;\n    t.summation = 713;\n    t.parenlefttp = 384;\n    t.parenleftex = 384;\n    t.parenleftbt = 384;\n    t.bracketlefttp = 384;\n    t.bracketleftex = 384;\n    t.bracketleftbt = 384;\n    t.bracelefttp = 494;\n    t.braceleftmid = 494;\n    t.braceleftbt = 494;\n    t.braceex = 494;\n    t.angleright = 329;\n    t.integral = 274;\n    t.integraltp = 686;\n    t.integralex = 686;\n    t.integralbt = 686;\n    t.parenrighttp = 384;\n    t.parenrightex = 384;\n    t.parenrightbt = 384;\n    t.bracketrighttp = 384;\n    t.bracketrightex = 384;\n    t.bracketrightbt = 384;\n    t.bracerighttp = 494;\n    t.bracerightmid = 494;\n    t.bracerightbt = 494;\n    t.apple = 790;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Times-Roman\"] = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 408;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 564;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 564;\n    t.equal = 564;\n    t.greater = 564;\n    t.question = 444;\n    t.at = 921;\n    t.A = 722;\n    t.B = 667;\n    t.C = 667;\n    t.D = 722;\n    t.E = 611;\n    t.F = 556;\n    t.G = 722;\n    t.H = 722;\n    t.I = 333;\n    t.J = 389;\n    t.K = 722;\n    t.L = 611;\n    t.M = 889;\n    t.N = 722;\n    t.O = 722;\n    t.P = 556;\n    t.Q = 722;\n    t.R = 667;\n    t.S = 556;\n    t.T = 611;\n    t.U = 722;\n    t.V = 722;\n    t.W = 944;\n    t.X = 722;\n    t.Y = 722;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 469;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 444;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 500;\n    t.i = 278;\n    t.j = 278;\n    t.k = 500;\n    t.l = 278;\n    t.m = 778;\n    t.n = 500;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 333;\n    t.s = 389;\n    t.t = 278;\n    t.u = 500;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 444;\n    t.braceleft = 480;\n    t.bar = 200;\n    t.braceright = 480;\n    t.asciitilde = 541;\n    t.exclamdown = 333;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 180;\n    t.quotedblleft = 444;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 453;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 444;\n    t.quotedblright = 444;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 444;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 889;\n    t.ordfeminine = 276;\n    t.Lslash = 611;\n    t.Oslash = 722;\n    t.OE = 889;\n    t.ordmasculine = 310;\n    t.ae = 667;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 500;\n    t.Idieresis = 333;\n    t.eacute = 444;\n    t.abreve = 444;\n    t.uhungarumlaut = 500;\n    t.ecaron = 444;\n    t.Ydieresis = 722;\n    t.divide = 564;\n    t.Yacute = 722;\n    t.Acircumflex = 722;\n    t.aacute = 444;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 444;\n    t.Uacute = 722;\n    t.uogonek = 500;\n    t.Edieresis = 611;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 760;\n    t.Emacron = 611;\n    t.ccaron = 444;\n    t.aring = 444;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 444;\n    t.Tcommaaccent = 611;\n    t.Cacute = 667;\n    t.atilde = 444;\n    t.Edotaccent = 611;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 667;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 500;\n    t.acircumflex = 444;\n    t.Amacron = 722;\n    t.rcaron = 333;\n    t.ccedilla = 444;\n    t.Zdotaccent = 611;\n    t.Thorn = 556;\n    t.Omacron = 722;\n    t.Racute = 667;\n    t.Sacute = 556;\n    t.dcaron = 588;\n    t.Umacron = 722;\n    t.uring = 500;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 564;\n    t.uacute = 500;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 611;\n    t.adieresis = 444;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 500;\n    t.umacron = 500;\n    t.Ncaron = 722;\n    t.Iacute = 333;\n    t.plusminus = 564;\n    t.brokenbar = 200;\n    t.registered = 760;\n    t.Gbreve = 722;\n    t.Idotaccent = 333;\n    t.summation = 600;\n    t.Egrave = 611;\n    t.racute = 333;\n    t.omacron = 500;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 326;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 444;\n    t.zacute = 444;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 444;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 500;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 611;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 344;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 980;\n    t.edotaccent = 444;\n    t.Igrave = 333;\n    t.Imacron = 333;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 500;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 611;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 500;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 667;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 722;\n    t.zdotaccent = 444;\n    t.Ecaron = 611;\n    t.Iogonek = 333;\n    t.kcommaaccent = 500;\n    t.minus = 564;\n    t.Icircumflex = 333;\n    t.ncaron = 500;\n    t.tcommaaccent = 278;\n    t.logicalnot = 564;\n    t.odieresis = 500;\n    t.udieresis = 500;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 444;\n    t.ncommaaccent = 500;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Times-Bold\"] = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 555;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 1000;\n    t.ampersand = 833;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 570;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 570;\n    t.equal = 570;\n    t.greater = 570;\n    t.question = 500;\n    t.at = 930;\n    t.A = 722;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 778;\n    t.I = 389;\n    t.J = 500;\n    t.K = 778;\n    t.L = 667;\n    t.M = 944;\n    t.N = 722;\n    t.O = 778;\n    t.P = 611;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 556;\n    t.T = 667;\n    t.U = 722;\n    t.V = 722;\n    t.W = 1000;\n    t.X = 722;\n    t.Y = 722;\n    t.Z = 667;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 581;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 556;\n    t.c = 444;\n    t.d = 556;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 556;\n    t.i = 278;\n    t.j = 333;\n    t.k = 556;\n    t.l = 278;\n    t.m = 833;\n    t.n = 556;\n    t.o = 500;\n    t.p = 556;\n    t.q = 556;\n    t.r = 444;\n    t.s = 389;\n    t.t = 333;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 444;\n    t.braceleft = 394;\n    t.bar = 220;\n    t.braceright = 394;\n    t.asciitilde = 520;\n    t.exclamdown = 333;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 278;\n    t.quotedblleft = 500;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 540;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 300;\n    t.Lslash = 667;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 330;\n    t.ae = 722;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 556;\n    t.Idieresis = 389;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 556;\n    t.ecaron = 444;\n    t.Ydieresis = 722;\n    t.divide = 570;\n    t.Yacute = 722;\n    t.Acircumflex = 722;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 747;\n    t.Emacron = 667;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 667;\n    t.Cacute = 722;\n    t.atilde = 500;\n    t.Edotaccent = 667;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 500;\n    t.Amacron = 722;\n    t.rcaron = 444;\n    t.ccedilla = 444;\n    t.Zdotaccent = 667;\n    t.Thorn = 611;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 556;\n    t.dcaron = 672;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 300;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 570;\n    t.uacute = 556;\n    t.Tcaron = 667;\n    t.partialdiff = 494;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 389;\n    t.plusminus = 570;\n    t.brokenbar = 220;\n    t.registered = 747;\n    t.Gbreve = 778;\n    t.Idotaccent = 389;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 444;\n    t.omacron = 500;\n    t.Zacute = 667;\n    t.Zcaron = 667;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 416;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 444;\n    t.zacute = 444;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 300;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 394;\n    t.Kcommaaccent = 778;\n    t.Lacute = 667;\n    t.trademark = 1000;\n    t.edotaccent = 444;\n    t.Igrave = 389;\n    t.Imacron = 389;\n    t.Lcaron = 667;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 444;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 667;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 444;\n    t.Ecaron = 667;\n    t.Iogonek = 389;\n    t.kcommaaccent = 556;\n    t.minus = 570;\n    t.Icircumflex = 389;\n    t.ncaron = 556;\n    t.tcommaaccent = 333;\n    t.logicalnot = 570;\n    t.odieresis = 500;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 444;\n    t.ncommaaccent = 556;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Times-BoldItalic\"] = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 389;\n    t.quotedbl = 555;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 570;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 570;\n    t.equal = 570;\n    t.greater = 570;\n    t.question = 500;\n    t.at = 832;\n    t.A = 667;\n    t.B = 667;\n    t.C = 667;\n    t.D = 722;\n    t.E = 667;\n    t.F = 667;\n    t.G = 722;\n    t.H = 778;\n    t.I = 389;\n    t.J = 500;\n    t.K = 667;\n    t.L = 611;\n    t.M = 889;\n    t.N = 722;\n    t.O = 722;\n    t.P = 611;\n    t.Q = 722;\n    t.R = 667;\n    t.S = 556;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 889;\n    t.X = 667;\n    t.Y = 611;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 570;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 556;\n    t.i = 278;\n    t.j = 278;\n    t.k = 500;\n    t.l = 278;\n    t.m = 778;\n    t.n = 556;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 389;\n    t.s = 389;\n    t.t = 278;\n    t.u = 556;\n    t.v = 444;\n    t.w = 667;\n    t.x = 500;\n    t.y = 444;\n    t.z = 389;\n    t.braceleft = 348;\n    t.bar = 220;\n    t.braceright = 348;\n    t.asciitilde = 570;\n    t.exclamdown = 389;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 278;\n    t.quotedblleft = 500;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 500;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 944;\n    t.ordfeminine = 266;\n    t.Lslash = 611;\n    t.Oslash = 722;\n    t.OE = 944;\n    t.ordmasculine = 300;\n    t.ae = 722;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 500;\n    t.Idieresis = 389;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 556;\n    t.ecaron = 444;\n    t.Ydieresis = 611;\n    t.divide = 570;\n    t.Yacute = 611;\n    t.Acircumflex = 667;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 444;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 747;\n    t.Emacron = 667;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 611;\n    t.Cacute = 667;\n    t.atilde = 500;\n    t.Edotaccent = 667;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 667;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 556;\n    t.acircumflex = 500;\n    t.Amacron = 667;\n    t.rcaron = 389;\n    t.ccedilla = 444;\n    t.Zdotaccent = 611;\n    t.Thorn = 611;\n    t.Omacron = 722;\n    t.Racute = 667;\n    t.Sacute = 556;\n    t.dcaron = 608;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 570;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 444;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 389;\n    t.plusminus = 570;\n    t.brokenbar = 220;\n    t.registered = 747;\n    t.Gbreve = 722;\n    t.Idotaccent = 389;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 500;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 366;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 444;\n    t.zacute = 389;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 576;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 667;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 382;\n    t.Kcommaaccent = 667;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 444;\n    t.Igrave = 389;\n    t.Imacron = 389;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 556;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 667;\n    t.Lcommaaccent = 611;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 722;\n    t.zdotaccent = 389;\n    t.Ecaron = 667;\n    t.Iogonek = 389;\n    t.kcommaaccent = 500;\n    t.minus = 606;\n    t.Icircumflex = 389;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 606;\n    t.odieresis = 500;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 389;\n    t.ncommaaccent = 556;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Times-Italic\"] = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 420;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 675;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 675;\n    t.equal = 675;\n    t.greater = 675;\n    t.question = 500;\n    t.at = 920;\n    t.A = 611;\n    t.B = 611;\n    t.C = 667;\n    t.D = 722;\n    t.E = 611;\n    t.F = 611;\n    t.G = 722;\n    t.H = 722;\n    t.I = 333;\n    t.J = 444;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 667;\n    t.O = 722;\n    t.P = 611;\n    t.Q = 722;\n    t.R = 611;\n    t.S = 500;\n    t.T = 556;\n    t.U = 722;\n    t.V = 611;\n    t.W = 833;\n    t.X = 611;\n    t.Y = 556;\n    t.Z = 556;\n    t.bracketleft = 389;\n    t.backslash = 278;\n    t.bracketright = 389;\n    t.asciicircum = 422;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 278;\n    t.g = 500;\n    t.h = 500;\n    t.i = 278;\n    t.j = 278;\n    t.k = 444;\n    t.l = 278;\n    t.m = 722;\n    t.n = 500;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 389;\n    t.s = 389;\n    t.t = 278;\n    t.u = 500;\n    t.v = 444;\n    t.w = 667;\n    t.x = 444;\n    t.y = 444;\n    t.z = 389;\n    t.braceleft = 400;\n    t.bar = 275;\n    t.braceright = 400;\n    t.asciitilde = 541;\n    t.exclamdown = 389;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 214;\n    t.quotedblleft = 556;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 523;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 556;\n    t.quotedblright = 556;\n    t.guillemotright = 500;\n    t.ellipsis = 889;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 889;\n    t.AE = 889;\n    t.ordfeminine = 276;\n    t.Lslash = 556;\n    t.Oslash = 722;\n    t.OE = 944;\n    t.ordmasculine = 310;\n    t.ae = 667;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 667;\n    t.germandbls = 500;\n    t.Idieresis = 333;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 500;\n    t.ecaron = 444;\n    t.Ydieresis = 556;\n    t.divide = 675;\n    t.Yacute = 556;\n    t.Acircumflex = 611;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 444;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 500;\n    t.Edieresis = 611;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 760;\n    t.Emacron = 611;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 667;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 556;\n    t.Cacute = 667;\n    t.atilde = 500;\n    t.Edotaccent = 611;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 611;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 500;\n    t.acircumflex = 500;\n    t.Amacron = 611;\n    t.rcaron = 389;\n    t.ccedilla = 444;\n    t.Zdotaccent = 556;\n    t.Thorn = 611;\n    t.Omacron = 722;\n    t.Racute = 611;\n    t.Sacute = 500;\n    t.dcaron = 544;\n    t.Umacron = 722;\n    t.uring = 500;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 611;\n    t.Abreve = 611;\n    t.multiply = 675;\n    t.uacute = 500;\n    t.Tcaron = 556;\n    t.partialdiff = 476;\n    t.ydieresis = 444;\n    t.Nacute = 667;\n    t.icircumflex = 278;\n    t.Ecircumflex = 611;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 500;\n    t.umacron = 500;\n    t.Ncaron = 667;\n    t.Iacute = 333;\n    t.plusminus = 675;\n    t.brokenbar = 275;\n    t.registered = 760;\n    t.Gbreve = 722;\n    t.Idotaccent = 333;\n    t.summation = 600;\n    t.Egrave = 611;\n    t.racute = 389;\n    t.omacron = 500;\n    t.Zacute = 556;\n    t.Zcaron = 556;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 300;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 611;\n    t.Adieresis = 611;\n    t.egrave = 444;\n    t.zacute = 389;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 500;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 611;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 500;\n    t.lcaron = 300;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 980;\n    t.edotaccent = 444;\n    t.Igrave = 333;\n    t.Imacron = 333;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 500;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 611;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 500;\n    t.Scommaaccent = 500;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 500;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 667;\n    t.otilde = 500;\n    t.Rcommaaccent = 611;\n    t.Lcommaaccent = 556;\n    t.Atilde = 611;\n    t.Aogonek = 611;\n    t.Aring = 611;\n    t.Otilde = 722;\n    t.zdotaccent = 389;\n    t.Ecaron = 611;\n    t.Iogonek = 333;\n    t.kcommaaccent = 444;\n    t.minus = 675;\n    t.Icircumflex = 333;\n    t.ncaron = 500;\n    t.tcommaaccent = 278;\n    t.logicalnot = 675;\n    t.odieresis = 500;\n    t.udieresis = 500;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 389;\n    t.ncommaaccent = 500;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  // eslint-disable-next-line no-shadow\n  t.ZapfDingbats = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.a1 = 974;\n    t.a2 = 961;\n    t.a202 = 974;\n    t.a3 = 980;\n    t.a4 = 719;\n    t.a5 = 789;\n    t.a119 = 790;\n    t.a118 = 791;\n    t.a117 = 690;\n    t.a11 = 960;\n    t.a12 = 939;\n    t.a13 = 549;\n    t.a14 = 855;\n    t.a15 = 911;\n    t.a16 = 933;\n    t.a105 = 911;\n    t.a17 = 945;\n    t.a18 = 974;\n    t.a19 = 755;\n    t.a20 = 846;\n    t.a21 = 762;\n    t.a22 = 761;\n    t.a23 = 571;\n    t.a24 = 677;\n    t.a25 = 763;\n    t.a26 = 760;\n    t.a27 = 759;\n    t.a28 = 754;\n    t.a6 = 494;\n    t.a7 = 552;\n    t.a8 = 537;\n    t.a9 = 577;\n    t.a10 = 692;\n    t.a29 = 786;\n    t.a30 = 788;\n    t.a31 = 788;\n    t.a32 = 790;\n    t.a33 = 793;\n    t.a34 = 794;\n    t.a35 = 816;\n    t.a36 = 823;\n    t.a37 = 789;\n    t.a38 = 841;\n    t.a39 = 823;\n    t.a40 = 833;\n    t.a41 = 816;\n    t.a42 = 831;\n    t.a43 = 923;\n    t.a44 = 744;\n    t.a45 = 723;\n    t.a46 = 749;\n    t.a47 = 790;\n    t.a48 = 792;\n    t.a49 = 695;\n    t.a50 = 776;\n    t.a51 = 768;\n    t.a52 = 792;\n    t.a53 = 759;\n    t.a54 = 707;\n    t.a55 = 708;\n    t.a56 = 682;\n    t.a57 = 701;\n    t.a58 = 826;\n    t.a59 = 815;\n    t.a60 = 789;\n    t.a61 = 789;\n    t.a62 = 707;\n    t.a63 = 687;\n    t.a64 = 696;\n    t.a65 = 689;\n    t.a66 = 786;\n    t.a67 = 787;\n    t.a68 = 713;\n    t.a69 = 791;\n    t.a70 = 785;\n    t.a71 = 791;\n    t.a72 = 873;\n    t.a73 = 761;\n    t.a74 = 762;\n    t.a203 = 762;\n    t.a75 = 759;\n    t.a204 = 759;\n    t.a76 = 892;\n    t.a77 = 892;\n    t.a78 = 788;\n    t.a79 = 784;\n    t.a81 = 438;\n    t.a82 = 138;\n    t.a83 = 277;\n    t.a84 = 415;\n    t.a97 = 392;\n    t.a98 = 392;\n    t.a99 = 668;\n    t.a100 = 668;\n    t.a89 = 390;\n    t.a90 = 390;\n    t.a93 = 317;\n    t.a94 = 317;\n    t.a91 = 276;\n    t.a92 = 276;\n    t.a205 = 509;\n    t.a85 = 509;\n    t.a206 = 410;\n    t.a86 = 410;\n    t.a87 = 234;\n    t.a88 = 234;\n    t.a95 = 334;\n    t.a96 = 334;\n    t.a101 = 732;\n    t.a102 = 544;\n    t.a103 = 544;\n    t.a104 = 910;\n    t.a106 = 667;\n    t.a107 = 760;\n    t.a108 = 760;\n    t.a112 = 776;\n    t.a111 = 595;\n    t.a110 = 694;\n    t.a109 = 626;\n    t.a120 = 788;\n    t.a121 = 788;\n    t.a122 = 788;\n    t.a123 = 788;\n    t.a124 = 788;\n    t.a125 = 788;\n    t.a126 = 788;\n    t.a127 = 788;\n    t.a128 = 788;\n    t.a129 = 788;\n    t.a130 = 788;\n    t.a131 = 788;\n    t.a132 = 788;\n    t.a133 = 788;\n    t.a134 = 788;\n    t.a135 = 788;\n    t.a136 = 788;\n    t.a137 = 788;\n    t.a138 = 788;\n    t.a139 = 788;\n    t.a140 = 788;\n    t.a141 = 788;\n    t.a142 = 788;\n    t.a143 = 788;\n    t.a144 = 788;\n    t.a145 = 788;\n    t.a146 = 788;\n    t.a147 = 788;\n    t.a148 = 788;\n    t.a149 = 788;\n    t.a150 = 788;\n    t.a151 = 788;\n    t.a152 = 788;\n    t.a153 = 788;\n    t.a154 = 788;\n    t.a155 = 788;\n    t.a156 = 788;\n    t.a157 = 788;\n    t.a158 = 788;\n    t.a159 = 788;\n    t.a160 = 894;\n    t.a161 = 838;\n    t.a163 = 1016;\n    t.a164 = 458;\n    t.a196 = 748;\n    t.a165 = 924;\n    t.a192 = 748;\n    t.a166 = 918;\n    t.a167 = 927;\n    t.a168 = 928;\n    t.a169 = 928;\n    t.a170 = 834;\n    t.a171 = 873;\n    t.a172 = 828;\n    t.a173 = 924;\n    t.a162 = 924;\n    t.a174 = 917;\n    t.a175 = 930;\n    t.a176 = 931;\n    t.a177 = 463;\n    t.a178 = 883;\n    t.a179 = 836;\n    t.a193 = 836;\n    t.a180 = 867;\n    t.a199 = 867;\n    t.a181 = 696;\n    t.a200 = 696;\n    t.a182 = 874;\n    t.a201 = 874;\n    t.a183 = 760;\n    t.a184 = 946;\n    t.a197 = 771;\n    t.a185 = 865;\n    t.a194 = 771;\n    t.a198 = 888;\n    t.a186 = 967;\n    t.a195 = 888;\n    t.a187 = 831;\n    t.a188 = 873;\n    t.a189 = 927;\n    t.a190 = 970;\n    t.a191 = 918;\n  });\n});\n\nexport { getMetrics };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  FormatError,\n  info,\n  isBool,\n  IsEvalSupportedCached,\n  unreachable,\n} from \"../shared/util.js\";\nimport { isDict, isStream } from \"./primitives.js\";\nimport { PostScriptLexer, PostScriptParser } from \"./ps_parser.js\";\n\nclass PDFFunctionFactory {\n  constructor({ xref, isEvalSupported = true }) {\n    this.xref = xref;\n    this.isEvalSupported = isEvalSupported !== false;\n  }\n\n  create(fn) {\n    return PDFFunction.parse({\n      xref: this.xref,\n      isEvalSupported: this.isEvalSupported,\n      fn,\n    });\n  }\n\n  createFromArray(fnObj) {\n    return PDFFunction.parseArray({\n      xref: this.xref,\n      isEvalSupported: this.isEvalSupported,\n      fnObj,\n    });\n  }\n}\n\nfunction toNumberArray(arr) {\n  if (!Array.isArray(arr)) {\n    return null;\n  }\n  const length = arr.length;\n  for (let i = 0; i < length; i++) {\n    if (typeof arr[i] !== \"number\") {\n      // Non-number is found -- convert all items to numbers.\n      const result = new Array(length);\n      for (let j = 0; j < length; j++) {\n        result[j] = +arr[j];\n      }\n      return result;\n    }\n  }\n  return arr;\n}\n\nvar PDFFunction = (function PDFFunctionClosure() {\n  const CONSTRUCT_SAMPLED = 0;\n  const CONSTRUCT_INTERPOLATED = 2;\n  const CONSTRUCT_STICHED = 3;\n  const CONSTRUCT_POSTSCRIPT = 4;\n\n  return {\n    getSampleArray(size, outputSize, bps, stream) {\n      var i, ii;\n      var length = 1;\n      for (i = 0, ii = size.length; i < ii; i++) {\n        length *= size[i];\n      }\n      length *= outputSize;\n\n      var array = new Array(length);\n      var codeSize = 0;\n      var codeBuf = 0;\n      // 32 is a valid bps so shifting won't work\n      var sampleMul = 1.0 / (2.0 ** bps - 1);\n\n      var strBytes = stream.getBytes((length * bps + 7) / 8);\n      var strIdx = 0;\n      for (i = 0; i < length; i++) {\n        while (codeSize < bps) {\n          codeBuf <<= 8;\n          codeBuf |= strBytes[strIdx++];\n          codeSize += 8;\n        }\n        codeSize -= bps;\n        array[i] = (codeBuf >> codeSize) * sampleMul;\n        codeBuf &= (1 << codeSize) - 1;\n      }\n      return array;\n    },\n\n    getIR({ xref, isEvalSupported, fn }) {\n      var dict = fn.dict;\n      if (!dict) {\n        dict = fn;\n      }\n\n      var types = [\n        this.constructSampled,\n        null,\n        this.constructInterpolated,\n        this.constructStiched,\n        this.constructPostScript,\n      ];\n\n      var typeNum = dict.get(\"FunctionType\");\n      var typeFn = types[typeNum];\n      if (!typeFn) {\n        throw new FormatError(\"Unknown type of function\");\n      }\n\n      return typeFn.call(this, { xref, isEvalSupported, fn, dict });\n    },\n\n    fromIR({ xref, isEvalSupported, IR }) {\n      var type = IR[0];\n      switch (type) {\n        case CONSTRUCT_SAMPLED:\n          return this.constructSampledFromIR({ xref, isEvalSupported, IR });\n        case CONSTRUCT_INTERPOLATED:\n          return this.constructInterpolatedFromIR({\n            xref,\n            isEvalSupported,\n            IR,\n          });\n        case CONSTRUCT_STICHED:\n          return this.constructStichedFromIR({ xref, isEvalSupported, IR });\n        // case CONSTRUCT_POSTSCRIPT:\n        default:\n          return this.constructPostScriptFromIR({ xref, isEvalSupported, IR });\n      }\n    },\n\n    parse({ xref, isEvalSupported, fn }) {\n      const IR = this.getIR({ xref, isEvalSupported, fn });\n      return this.fromIR({ xref, isEvalSupported, IR });\n    },\n\n    parseArray({ xref, isEvalSupported, fnObj }) {\n      if (!Array.isArray(fnObj)) {\n        // not an array -- parsing as regular function\n        return this.parse({ xref, isEvalSupported, fn: fnObj });\n      }\n\n      var fnArray = [];\n      for (var j = 0, jj = fnObj.length; j < jj; j++) {\n        fnArray.push(\n          this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fnObj[j]) })\n        );\n      }\n      return function (src, srcOffset, dest, destOffset) {\n        for (var i = 0, ii = fnArray.length; i < ii; i++) {\n          fnArray[i](src, srcOffset, dest, destOffset + i);\n        }\n      };\n    },\n\n    constructSampled({ xref, isEvalSupported, fn, dict }) {\n      function toMultiArray(arr) {\n        var inputLength = arr.length;\n        var out = [];\n        var index = 0;\n        for (var i = 0; i < inputLength; i += 2) {\n          out[index] = [arr[i], arr[i + 1]];\n          ++index;\n        }\n        return out;\n      }\n      var domain = toNumberArray(dict.getArray(\"Domain\"));\n      var range = toNumberArray(dict.getArray(\"Range\"));\n\n      if (!domain || !range) {\n        throw new FormatError(\"No domain or range\");\n      }\n\n      var inputSize = domain.length / 2;\n      var outputSize = range.length / 2;\n\n      domain = toMultiArray(domain);\n      range = toMultiArray(range);\n\n      var size = toNumberArray(dict.getArray(\"Size\"));\n      var bps = dict.get(\"BitsPerSample\");\n      var order = dict.get(\"Order\") || 1;\n      if (order !== 1) {\n        // No description how cubic spline interpolation works in PDF32000:2008\n        // As in poppler, ignoring order, linear interpolation may work as good\n        info(\"No support for cubic spline interpolation: \" + order);\n      }\n\n      var encode = toNumberArray(dict.getArray(\"Encode\"));\n      if (!encode) {\n        encode = [];\n        for (var i = 0; i < inputSize; ++i) {\n          encode.push([0, size[i] - 1]);\n        }\n      } else {\n        encode = toMultiArray(encode);\n      }\n\n      var decode = toNumberArray(dict.getArray(\"Decode\"));\n      if (!decode) {\n        decode = range;\n      } else {\n        decode = toMultiArray(decode);\n      }\n\n      var samples = this.getSampleArray(size, outputSize, bps, fn);\n\n      return [\n        CONSTRUCT_SAMPLED,\n        inputSize,\n        domain,\n        encode,\n        decode,\n        samples,\n        size,\n        outputSize,\n        2 ** bps - 1,\n        range,\n      ];\n    },\n\n    constructSampledFromIR({ xref, isEvalSupported, IR }) {\n      // See chapter 3, page 109 of the PDF reference\n      function interpolate(x, xmin, xmax, ymin, ymax) {\n        return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n      }\n\n      return function constructSampledFromIRResult(\n        src,\n        srcOffset,\n        dest,\n        destOffset\n      ) {\n        // See chapter 3, page 110 of the PDF reference.\n        var m = IR[1];\n        var domain = IR[2];\n        var encode = IR[3];\n        var decode = IR[4];\n        var samples = IR[5];\n        var size = IR[6];\n        var n = IR[7];\n        // var mask = IR[8];\n        var range = IR[9];\n\n        // Building the cube vertices: its part and sample index\n        // http://rjwagner49.com/Mathematics/Interpolation.pdf\n        var cubeVertices = 1 << m;\n        var cubeN = new Float64Array(cubeVertices);\n        var cubeVertex = new Uint32Array(cubeVertices);\n        var i, j;\n        for (j = 0; j < cubeVertices; j++) {\n          cubeN[j] = 1;\n        }\n\n        var k = n,\n          pos = 1;\n        // Map x_i to y_j for 0 <= i < m using the sampled function.\n        for (i = 0; i < m; ++i) {\n          // x_i' = min(max(x_i, Domain_2i), Domain_2i+1)\n          var domain_2i = domain[i][0];\n          var domain_2i_1 = domain[i][1];\n          var xi = Math.min(\n            Math.max(src[srcOffset + i], domain_2i),\n            domain_2i_1\n          );\n\n          // e_i = Interpolate(x_i', Domain_2i, Domain_2i+1,\n          //                   Encode_2i, Encode_2i+1)\n          var e = interpolate(\n            xi,\n            domain_2i,\n            domain_2i_1,\n            encode[i][0],\n            encode[i][1]\n          );\n\n          // e_i' = min(max(e_i, 0), Size_i - 1)\n          var size_i = size[i];\n          e = Math.min(Math.max(e, 0), size_i - 1);\n\n          // Adjusting the cube: N and vertex sample index\n          var e0 = e < size_i - 1 ? Math.floor(e) : e - 1; // e1 = e0 + 1;\n          var n0 = e0 + 1 - e; // (e1 - e) / (e1 - e0);\n          var n1 = e - e0; // (e - e0) / (e1 - e0);\n          var offset0 = e0 * k;\n          var offset1 = offset0 + k; // e1 * k\n          for (j = 0; j < cubeVertices; j++) {\n            if (j & pos) {\n              cubeN[j] *= n1;\n              cubeVertex[j] += offset1;\n            } else {\n              cubeN[j] *= n0;\n              cubeVertex[j] += offset0;\n            }\n          }\n\n          k *= size_i;\n          pos <<= 1;\n        }\n\n        for (j = 0; j < n; ++j) {\n          // Sum all cube vertices' samples portions\n          var rj = 0;\n          for (i = 0; i < cubeVertices; i++) {\n            rj += samples[cubeVertex[i] + j] * cubeN[i];\n          }\n\n          // r_j' = Interpolate(r_j, 0, 2^BitsPerSample - 1,\n          //                    Decode_2j, Decode_2j+1)\n          rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n\n          // y_j = min(max(r_j, range_2j), range_2j+1)\n          dest[destOffset + j] = Math.min(\n            Math.max(rj, range[j][0]),\n            range[j][1]\n          );\n        }\n      };\n    },\n\n    constructInterpolated({ xref, isEvalSupported, fn, dict }) {\n      var c0 = toNumberArray(dict.getArray(\"C0\")) || [0];\n      var c1 = toNumberArray(dict.getArray(\"C1\")) || [1];\n      var n = dict.get(\"N\");\n\n      var length = c0.length;\n      var diff = [];\n      for (var i = 0; i < length; ++i) {\n        diff.push(c1[i] - c0[i]);\n      }\n\n      return [CONSTRUCT_INTERPOLATED, c0, diff, n];\n    },\n\n    constructInterpolatedFromIR({ xref, isEvalSupported, IR }) {\n      var c0 = IR[1];\n      var diff = IR[2];\n      var n = IR[3];\n\n      var length = diff.length;\n\n      return function constructInterpolatedFromIRResult(\n        src,\n        srcOffset,\n        dest,\n        destOffset\n      ) {\n        var x = n === 1 ? src[srcOffset] : src[srcOffset] ** n;\n\n        for (var j = 0; j < length; ++j) {\n          dest[destOffset + j] = c0[j] + x * diff[j];\n        }\n      };\n    },\n\n    constructStiched({ xref, isEvalSupported, fn, dict }) {\n      var domain = toNumberArray(dict.getArray(\"Domain\"));\n\n      if (!domain) {\n        throw new FormatError(\"No domain\");\n      }\n\n      var inputSize = domain.length / 2;\n      if (inputSize !== 1) {\n        throw new FormatError(\"Bad domain for stiched function\");\n      }\n\n      var fnRefs = dict.get(\"Functions\");\n      var fns = [];\n      for (var i = 0, ii = fnRefs.length; i < ii; ++i) {\n        fns.push(\n          this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fnRefs[i]) })\n        );\n      }\n\n      var bounds = toNumberArray(dict.getArray(\"Bounds\"));\n      var encode = toNumberArray(dict.getArray(\"Encode\"));\n\n      return [CONSTRUCT_STICHED, domain, bounds, encode, fns];\n    },\n\n    constructStichedFromIR({ xref, isEvalSupported, IR }) {\n      var domain = IR[1];\n      var bounds = IR[2];\n      var encode = IR[3];\n      var fns = IR[4];\n      var tmpBuf = new Float32Array(1);\n\n      return function constructStichedFromIRResult(\n        src,\n        srcOffset,\n        dest,\n        destOffset\n      ) {\n        var clip = function constructStichedFromIRClip(v, min, max) {\n          if (v > max) {\n            v = max;\n          } else if (v < min) {\n            v = min;\n          }\n          return v;\n        };\n\n        // clip to domain\n        var v = clip(src[srcOffset], domain[0], domain[1]);\n        // calculate which bound the value is in\n        for (var i = 0, ii = bounds.length; i < ii; ++i) {\n          if (v < bounds[i]) {\n            break;\n          }\n        }\n\n        // encode value into domain of function\n        var dmin = domain[0];\n        if (i > 0) {\n          dmin = bounds[i - 1];\n        }\n        var dmax = domain[1];\n        if (i < bounds.length) {\n          dmax = bounds[i];\n        }\n\n        var rmin = encode[2 * i];\n        var rmax = encode[2 * i + 1];\n\n        // Prevent the value from becoming NaN as a result\n        // of division by zero (fixes issue6113.pdf).\n        tmpBuf[0] =\n          dmin === dmax\n            ? rmin\n            : rmin + ((v - dmin) * (rmax - rmin)) / (dmax - dmin);\n\n        // call the appropriate function\n        fns[i](tmpBuf, 0, dest, destOffset);\n      };\n    },\n\n    constructPostScript({ xref, isEvalSupported, fn, dict }) {\n      var domain = toNumberArray(dict.getArray(\"Domain\"));\n      var range = toNumberArray(dict.getArray(\"Range\"));\n\n      if (!domain) {\n        throw new FormatError(\"No domain.\");\n      }\n\n      if (!range) {\n        throw new FormatError(\"No range.\");\n      }\n\n      var lexer = new PostScriptLexer(fn);\n      var parser = new PostScriptParser(lexer);\n      var code = parser.parse();\n\n      return [CONSTRUCT_POSTSCRIPT, domain, range, code];\n    },\n\n    constructPostScriptFromIR({ xref, isEvalSupported, IR }) {\n      var domain = IR[1];\n      var range = IR[2];\n      var code = IR[3];\n\n      if (isEvalSupported && IsEvalSupportedCached.value) {\n        const compiled = new PostScriptCompiler().compile(code, domain, range);\n        if (compiled) {\n          // Compiled function consists of simple expressions such as addition,\n          // subtraction, Math.max, and also contains 'var' and 'return'\n          // statements. See the generation in the PostScriptCompiler below.\n          // eslint-disable-next-line no-new-func\n          return new Function(\n            \"src\",\n            \"srcOffset\",\n            \"dest\",\n            \"destOffset\",\n            compiled\n          );\n        }\n      }\n      info(\"Unable to compile PS function\");\n\n      var numOutputs = range.length >> 1;\n      var numInputs = domain.length >> 1;\n      var evaluator = new PostScriptEvaluator(code);\n      // Cache the values for a big speed up, the cache size is limited though\n      // since the number of possible values can be huge from a PS function.\n      var cache = Object.create(null);\n      // The MAX_CACHE_SIZE is set to ~4x the maximum number of distinct values\n      // seen in our tests.\n      var MAX_CACHE_SIZE = 2048 * 4;\n      var cache_available = MAX_CACHE_SIZE;\n      var tmpBuf = new Float32Array(numInputs);\n\n      return function constructPostScriptFromIRResult(\n        src,\n        srcOffset,\n        dest,\n        destOffset\n      ) {\n        var i, value;\n        var key = \"\";\n        var input = tmpBuf;\n        for (i = 0; i < numInputs; i++) {\n          value = src[srcOffset + i];\n          input[i] = value;\n          key += value + \"_\";\n        }\n\n        var cachedValue = cache[key];\n        if (cachedValue !== undefined) {\n          dest.set(cachedValue, destOffset);\n          return;\n        }\n\n        var output = new Float32Array(numOutputs);\n        var stack = evaluator.execute(input);\n        var stackIndex = stack.length - numOutputs;\n        for (i = 0; i < numOutputs; i++) {\n          value = stack[stackIndex + i];\n          var bound = range[i * 2];\n          if (value < bound) {\n            value = bound;\n          } else {\n            bound = range[i * 2 + 1];\n            if (value > bound) {\n              value = bound;\n            }\n          }\n          output[i] = value;\n        }\n        if (cache_available > 0) {\n          cache_available--;\n          cache[key] = output;\n        }\n        dest.set(output, destOffset);\n      };\n    },\n  };\n})();\n\nfunction isPDFFunction(v) {\n  var fnDict;\n  if (typeof v !== \"object\") {\n    return false;\n  } else if (isDict(v)) {\n    fnDict = v;\n  } else if (isStream(v)) {\n    fnDict = v.dict;\n  } else {\n    return false;\n  }\n  return fnDict.has(\"FunctionType\");\n}\n\nvar PostScriptStack = (function PostScriptStackClosure() {\n  var MAX_STACK_SIZE = 100;\n\n  // eslint-disable-next-line no-shadow\n  function PostScriptStack(initialStack) {\n    this.stack = !initialStack\n      ? []\n      : Array.prototype.slice.call(initialStack, 0);\n  }\n\n  PostScriptStack.prototype = {\n    push: function PostScriptStack_push(value) {\n      if (this.stack.length >= MAX_STACK_SIZE) {\n        throw new Error(\"PostScript function stack overflow.\");\n      }\n      this.stack.push(value);\n    },\n    pop: function PostScriptStack_pop() {\n      if (this.stack.length <= 0) {\n        throw new Error(\"PostScript function stack underflow.\");\n      }\n      return this.stack.pop();\n    },\n    copy: function PostScriptStack_copy(n) {\n      if (this.stack.length + n >= MAX_STACK_SIZE) {\n        throw new Error(\"PostScript function stack overflow.\");\n      }\n      var stack = this.stack;\n      for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n        stack.push(stack[i]);\n      }\n    },\n    index: function PostScriptStack_index(n) {\n      this.push(this.stack[this.stack.length - n - 1]);\n    },\n    // rotate the last n stack elements p times\n    roll: function PostScriptStack_roll(n, p) {\n      var stack = this.stack;\n      var l = stack.length - n;\n      var r = stack.length - 1,\n        c = l + (p - Math.floor(p / n) * n),\n        i,\n        j,\n        t;\n      for (i = l, j = r; i < j; i++, j--) {\n        t = stack[i];\n        stack[i] = stack[j];\n        stack[j] = t;\n      }\n      for (i = l, j = c - 1; i < j; i++, j--) {\n        t = stack[i];\n        stack[i] = stack[j];\n        stack[j] = t;\n      }\n      for (i = c, j = r; i < j; i++, j--) {\n        t = stack[i];\n        stack[i] = stack[j];\n        stack[j] = t;\n      }\n    },\n  };\n  return PostScriptStack;\n})();\nvar PostScriptEvaluator = (function PostScriptEvaluatorClosure() {\n  // eslint-disable-next-line no-shadow\n  function PostScriptEvaluator(operators) {\n    this.operators = operators;\n  }\n  PostScriptEvaluator.prototype = {\n    execute: function PostScriptEvaluator_execute(initialStack) {\n      var stack = new PostScriptStack(initialStack);\n      var counter = 0;\n      var operators = this.operators;\n      var length = operators.length;\n      var operator, a, b;\n      while (counter < length) {\n        operator = operators[counter++];\n        if (typeof operator === \"number\") {\n          // Operator is really an operand and should be pushed to the stack.\n          stack.push(operator);\n          continue;\n        }\n        switch (operator) {\n          // non standard ps operators\n          case \"jz\": // jump if false\n            b = stack.pop();\n            a = stack.pop();\n            if (!a) {\n              counter = b;\n            }\n            break;\n          case \"j\": // jump\n            a = stack.pop();\n            counter = a;\n            break;\n\n          // all ps operators in alphabetical order (excluding if/ifelse)\n          case \"abs\":\n            a = stack.pop();\n            stack.push(Math.abs(a));\n            break;\n          case \"add\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a + b);\n            break;\n          case \"and\":\n            b = stack.pop();\n            a = stack.pop();\n            if (isBool(a) && isBool(b)) {\n              stack.push(a && b);\n            } else {\n              stack.push(a & b);\n            }\n            break;\n          case \"atan\":\n            a = stack.pop();\n            stack.push(Math.atan(a));\n            break;\n          case \"bitshift\":\n            b = stack.pop();\n            a = stack.pop();\n            if (a > 0) {\n              stack.push(a << b);\n            } else {\n              stack.push(a >> b);\n            }\n            break;\n          case \"ceiling\":\n            a = stack.pop();\n            stack.push(Math.ceil(a));\n            break;\n          case \"copy\":\n            a = stack.pop();\n            stack.copy(a);\n            break;\n          case \"cos\":\n            a = stack.pop();\n            stack.push(Math.cos(a));\n            break;\n          case \"cvi\":\n            a = stack.pop() | 0;\n            stack.push(a);\n            break;\n          case \"cvr\":\n            // noop\n            break;\n          case \"div\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a / b);\n            break;\n          case \"dup\":\n            stack.copy(1);\n            break;\n          case \"eq\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a === b);\n            break;\n          case \"exch\":\n            stack.roll(2, 1);\n            break;\n          case \"exp\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a ** b);\n            break;\n          case \"false\":\n            stack.push(false);\n            break;\n          case \"floor\":\n            a = stack.pop();\n            stack.push(Math.floor(a));\n            break;\n          case \"ge\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a >= b);\n            break;\n          case \"gt\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a > b);\n            break;\n          case \"idiv\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.push((a / b) | 0);\n            break;\n          case \"index\":\n            a = stack.pop();\n            stack.index(a);\n            break;\n          case \"le\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a <= b);\n            break;\n          case \"ln\":\n            a = stack.pop();\n            stack.push(Math.log(a));\n            break;\n          case \"log\":\n            a = stack.pop();\n            stack.push(Math.log(a) / Math.LN10);\n            break;\n          case \"lt\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a < b);\n            break;\n          case \"mod\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a % b);\n            break;\n          case \"mul\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a * b);\n            break;\n          case \"ne\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a !== b);\n            break;\n          case \"neg\":\n            a = stack.pop();\n            stack.push(-a);\n            break;\n          case \"not\":\n            a = stack.pop();\n            if (isBool(a)) {\n              stack.push(!a);\n            } else {\n              stack.push(~a);\n            }\n            break;\n          case \"or\":\n            b = stack.pop();\n            a = stack.pop();\n            if (isBool(a) && isBool(b)) {\n              stack.push(a || b);\n            } else {\n              stack.push(a | b);\n            }\n            break;\n          case \"pop\":\n            stack.pop();\n            break;\n          case \"roll\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.roll(a, b);\n            break;\n          case \"round\":\n            a = stack.pop();\n            stack.push(Math.round(a));\n            break;\n          case \"sin\":\n            a = stack.pop();\n            stack.push(Math.sin(a));\n            break;\n          case \"sqrt\":\n            a = stack.pop();\n            stack.push(Math.sqrt(a));\n            break;\n          case \"sub\":\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a - b);\n            break;\n          case \"true\":\n            stack.push(true);\n            break;\n          case \"truncate\":\n            a = stack.pop();\n            a = a < 0 ? Math.ceil(a) : Math.floor(a);\n            stack.push(a);\n            break;\n          case \"xor\":\n            b = stack.pop();\n            a = stack.pop();\n            if (isBool(a) && isBool(b)) {\n              stack.push(a !== b);\n            } else {\n              stack.push(a ^ b);\n            }\n            break;\n          default:\n            throw new FormatError(`Unknown operator ${operator}`);\n        }\n      }\n      return stack.stack;\n    },\n  };\n  return PostScriptEvaluator;\n})();\n\n// Most of the PDFs functions consist of simple operations such as:\n//   roll, exch, sub, cvr, pop, index, dup, mul, if, gt, add.\n//\n// We can compile most of such programs, and at the same moment, we can\n// optimize some expressions using basic math properties. Keeping track of\n// min/max values will allow us to avoid extra Math.min/Math.max calls.\nvar PostScriptCompiler = (function PostScriptCompilerClosure() {\n  function AstNode(type) {\n    this.type = type;\n  }\n  AstNode.prototype.visit = function (visitor) {\n    unreachable(\"abstract method\");\n  };\n\n  function AstArgument(index, min, max) {\n    AstNode.call(this, \"args\");\n    this.index = index;\n    this.min = min;\n    this.max = max;\n  }\n  AstArgument.prototype = Object.create(AstNode.prototype);\n  AstArgument.prototype.visit = function (visitor) {\n    visitor.visitArgument(this);\n  };\n\n  function AstLiteral(number) {\n    AstNode.call(this, \"literal\");\n    this.number = number;\n    this.min = number;\n    this.max = number;\n  }\n  AstLiteral.prototype = Object.create(AstNode.prototype);\n  AstLiteral.prototype.visit = function (visitor) {\n    visitor.visitLiteral(this);\n  };\n\n  function AstBinaryOperation(op, arg1, arg2, min, max) {\n    AstNode.call(this, \"binary\");\n    this.op = op;\n    this.arg1 = arg1;\n    this.arg2 = arg2;\n    this.min = min;\n    this.max = max;\n  }\n  AstBinaryOperation.prototype = Object.create(AstNode.prototype);\n  AstBinaryOperation.prototype.visit = function (visitor) {\n    visitor.visitBinaryOperation(this);\n  };\n\n  function AstMin(arg, max) {\n    AstNode.call(this, \"max\");\n    this.arg = arg;\n    this.min = arg.min;\n    this.max = max;\n  }\n  AstMin.prototype = Object.create(AstNode.prototype);\n  AstMin.prototype.visit = function (visitor) {\n    visitor.visitMin(this);\n  };\n\n  function AstVariable(index, min, max) {\n    AstNode.call(this, \"var\");\n    this.index = index;\n    this.min = min;\n    this.max = max;\n  }\n  AstVariable.prototype = Object.create(AstNode.prototype);\n  AstVariable.prototype.visit = function (visitor) {\n    visitor.visitVariable(this);\n  };\n\n  function AstVariableDefinition(variable, arg) {\n    AstNode.call(this, \"definition\");\n    this.variable = variable;\n    this.arg = arg;\n  }\n  AstVariableDefinition.prototype = Object.create(AstNode.prototype);\n  AstVariableDefinition.prototype.visit = function (visitor) {\n    visitor.visitVariableDefinition(this);\n  };\n\n  function ExpressionBuilderVisitor() {\n    this.parts = [];\n  }\n  ExpressionBuilderVisitor.prototype = {\n    visitArgument(arg) {\n      this.parts.push(\n        \"Math.max(\",\n        arg.min,\n        \", Math.min(\",\n        arg.max,\n        \", src[srcOffset + \",\n        arg.index,\n        \"]))\"\n      );\n    },\n    visitVariable(variable) {\n      this.parts.push(\"v\", variable.index);\n    },\n    visitLiteral(literal) {\n      this.parts.push(literal.number);\n    },\n    visitBinaryOperation(operation) {\n      this.parts.push(\"(\");\n      operation.arg1.visit(this);\n      this.parts.push(\" \", operation.op, \" \");\n      operation.arg2.visit(this);\n      this.parts.push(\")\");\n    },\n    visitVariableDefinition(definition) {\n      this.parts.push(\"var \");\n      definition.variable.visit(this);\n      this.parts.push(\" = \");\n      definition.arg.visit(this);\n      this.parts.push(\";\");\n    },\n    visitMin(max) {\n      this.parts.push(\"Math.min(\");\n      max.arg.visit(this);\n      this.parts.push(\", \", max.max, \")\");\n    },\n    toString() {\n      return this.parts.join(\"\");\n    },\n  };\n\n  function buildAddOperation(num1, num2) {\n    if (num2.type === \"literal\" && num2.number === 0) {\n      // optimization: second operand is 0\n      return num1;\n    }\n    if (num1.type === \"literal\" && num1.number === 0) {\n      // optimization: first operand is 0\n      return num2;\n    }\n    if (num2.type === \"literal\" && num1.type === \"literal\") {\n      // optimization: operands operand are literals\n      return new AstLiteral(num1.number + num2.number);\n    }\n    return new AstBinaryOperation(\n      \"+\",\n      num1,\n      num2,\n      num1.min + num2.min,\n      num1.max + num2.max\n    );\n  }\n\n  function buildMulOperation(num1, num2) {\n    if (num2.type === \"literal\") {\n      // optimization: second operands is a literal...\n      if (num2.number === 0) {\n        return new AstLiteral(0); // and it's 0\n      } else if (num2.number === 1) {\n        return num1; // and it's 1\n      } else if (num1.type === \"literal\") {\n        // ... and first operands is a literal too\n        return new AstLiteral(num1.number * num2.number);\n      }\n    }\n    if (num1.type === \"literal\") {\n      // optimization: first operands is a literal...\n      if (num1.number === 0) {\n        return new AstLiteral(0); // and it's 0\n      } else if (num1.number === 1) {\n        return num2; // and it's 1\n      }\n    }\n    var min = Math.min(\n      num1.min * num2.min,\n      num1.min * num2.max,\n      num1.max * num2.min,\n      num1.max * num2.max\n    );\n    var max = Math.max(\n      num1.min * num2.min,\n      num1.min * num2.max,\n      num1.max * num2.min,\n      num1.max * num2.max\n    );\n    return new AstBinaryOperation(\"*\", num1, num2, min, max);\n  }\n\n  function buildSubOperation(num1, num2) {\n    if (num2.type === \"literal\") {\n      // optimization: second operands is a literal...\n      if (num2.number === 0) {\n        return num1; // ... and it's 0\n      } else if (num1.type === \"literal\") {\n        // ... and first operands is a literal too\n        return new AstLiteral(num1.number - num2.number);\n      }\n    }\n    if (\n      num2.type === \"binary\" &&\n      num2.op === \"-\" &&\n      num1.type === \"literal\" &&\n      num1.number === 1 &&\n      num2.arg1.type === \"literal\" &&\n      num2.arg1.number === 1\n    ) {\n      // optimization for case: 1 - (1 - x)\n      return num2.arg2;\n    }\n    return new AstBinaryOperation(\n      \"-\",\n      num1,\n      num2,\n      num1.min - num2.max,\n      num1.max - num2.min\n    );\n  }\n\n  function buildMinOperation(num1, max) {\n    if (num1.min >= max) {\n      // optimization: num1 min value is not less than required max\n      return new AstLiteral(max); // just returning max\n    } else if (num1.max <= max) {\n      // optimization: num1 max value is not greater than required max\n      return num1; // just returning an argument\n    }\n    return new AstMin(num1, max);\n  }\n\n  // eslint-disable-next-line no-shadow\n  function PostScriptCompiler() {}\n  PostScriptCompiler.prototype = {\n    compile: function PostScriptCompiler_compile(code, domain, range) {\n      var stack = [];\n      var instructions = [];\n      var inputSize = domain.length >> 1,\n        outputSize = range.length >> 1;\n      var lastRegister = 0;\n      var n, j;\n      var num1, num2, ast1, ast2, tmpVar, item;\n      for (let i = 0; i < inputSize; i++) {\n        stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n      }\n\n      for (let i = 0, ii = code.length; i < ii; i++) {\n        item = code[i];\n        if (typeof item === \"number\") {\n          stack.push(new AstLiteral(item));\n          continue;\n        }\n\n        switch (item) {\n          case \"add\":\n            if (stack.length < 2) {\n              return null;\n            }\n            num2 = stack.pop();\n            num1 = stack.pop();\n            stack.push(buildAddOperation(num1, num2));\n            break;\n          case \"cvr\":\n            if (stack.length < 1) {\n              return null;\n            }\n            break;\n          case \"mul\":\n            if (stack.length < 2) {\n              return null;\n            }\n            num2 = stack.pop();\n            num1 = stack.pop();\n            stack.push(buildMulOperation(num1, num2));\n            break;\n          case \"sub\":\n            if (stack.length < 2) {\n              return null;\n            }\n            num2 = stack.pop();\n            num1 = stack.pop();\n            stack.push(buildSubOperation(num1, num2));\n            break;\n          case \"exch\":\n            if (stack.length < 2) {\n              return null;\n            }\n            ast1 = stack.pop();\n            ast2 = stack.pop();\n            stack.push(ast1, ast2);\n            break;\n          case \"pop\":\n            if (stack.length < 1) {\n              return null;\n            }\n            stack.pop();\n            break;\n          case \"index\":\n            if (stack.length < 1) {\n              return null;\n            }\n            num1 = stack.pop();\n            if (num1.type !== \"literal\") {\n              return null;\n            }\n            n = num1.number;\n            if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n              return null;\n            }\n            ast1 = stack[stack.length - n - 1];\n            if (ast1.type === \"literal\" || ast1.type === \"var\") {\n              stack.push(ast1);\n              break;\n            }\n            tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n            stack[stack.length - n - 1] = tmpVar;\n            stack.push(tmpVar);\n            instructions.push(new AstVariableDefinition(tmpVar, ast1));\n            break;\n          case \"dup\":\n            if (stack.length < 1) {\n              return null;\n            }\n            if (\n              typeof code[i + 1] === \"number\" &&\n              code[i + 2] === \"gt\" &&\n              code[i + 3] === i + 7 &&\n              code[i + 4] === \"jz\" &&\n              code[i + 5] === \"pop\" &&\n              code[i + 6] === code[i + 1]\n            ) {\n              // special case of the commands sequence for the min operation\n              num1 = stack.pop();\n              stack.push(buildMinOperation(num1, code[i + 1]));\n              i += 6;\n              break;\n            }\n            ast1 = stack[stack.length - 1];\n            if (ast1.type === \"literal\" || ast1.type === \"var\") {\n              // we don't have to save into intermediate variable a literal or\n              // variable.\n              stack.push(ast1);\n              break;\n            }\n            tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n            stack[stack.length - 1] = tmpVar;\n            stack.push(tmpVar);\n            instructions.push(new AstVariableDefinition(tmpVar, ast1));\n            break;\n          case \"roll\":\n            if (stack.length < 2) {\n              return null;\n            }\n            num2 = stack.pop();\n            num1 = stack.pop();\n            if (num2.type !== \"literal\" || num1.type !== \"literal\") {\n              // both roll operands must be numbers\n              return null;\n            }\n            j = num2.number;\n            n = num1.number;\n            if (\n              n <= 0 ||\n              !Number.isInteger(n) ||\n              !Number.isInteger(j) ||\n              stack.length < n\n            ) {\n              // ... and integers\n              return null;\n            }\n            j = ((j % n) + n) % n;\n            if (j === 0) {\n              break; // just skipping -- there are nothing to rotate\n            }\n            Array.prototype.push.apply(\n              stack,\n              stack.splice(stack.length - n, n - j)\n            );\n            break;\n          default:\n            return null; // unsupported operator\n        }\n      }\n\n      if (stack.length !== outputSize) {\n        return null;\n      }\n\n      var result = [];\n      instructions.forEach(function (instruction) {\n        var statementBuilder = new ExpressionBuilderVisitor();\n        instruction.visit(statementBuilder);\n        result.push(statementBuilder.toString());\n      });\n      stack.forEach(function (expr, i) {\n        var statementBuilder = new ExpressionBuilderVisitor();\n        expr.visit(statementBuilder);\n        var min = range[i * 2],\n          max = range[i * 2 + 1];\n        var out = [statementBuilder.toString()];\n        if (min > expr.min) {\n          out.unshift(\"Math.max(\", min, \", \");\n          out.push(\")\");\n        }\n        if (max < expr.max) {\n          out.unshift(\"Math.min(\", max, \", \");\n          out.push(\")\");\n        }\n        out.unshift(\"dest[destOffset + \", i, \"] = \");\n        out.push(\";\");\n        result.push(out.join(\"\"));\n      });\n      return result.join(\"\\n\");\n    },\n  };\n\n  return PostScriptCompiler;\n})();\n\nexport {\n  isPDFFunction,\n  PDFFunctionFactory,\n  PostScriptEvaluator,\n  PostScriptCompiler,\n};\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint no-var: error */\n\nimport { FormatError, shadow } from \"../shared/util.js\";\nimport { EOF } from \"./primitives.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nclass PostScriptParser {\n  constructor(lexer) {\n    this.lexer = lexer;\n    this.operators = [];\n    this.token = null;\n    this.prev = null;\n  }\n\n  nextToken() {\n    this.prev = this.token;\n    this.token = this.lexer.getToken();\n  }\n\n  accept(type) {\n    if (this.token.type === type) {\n      this.nextToken();\n      return true;\n    }\n    return false;\n  }\n\n  expect(type) {\n    if (this.accept(type)) {\n      return true;\n    }\n    throw new FormatError(\n      `Unexpected symbol: found ${this.token.type} expected ${type}.`\n    );\n  }\n\n  parse() {\n    this.nextToken();\n    this.expect(PostScriptTokenTypes.LBRACE);\n    this.parseBlock();\n    this.expect(PostScriptTokenTypes.RBRACE);\n    return this.operators;\n  }\n\n  parseBlock() {\n    while (true) {\n      if (this.accept(PostScriptTokenTypes.NUMBER)) {\n        this.operators.push(this.prev.value);\n      } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n        this.operators.push(this.prev.value);\n      } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n        this.parseCondition();\n      } else {\n        return;\n      }\n    }\n  }\n\n  parseCondition() {\n    // Add two place holders that will be updated later\n    const conditionLocation = this.operators.length;\n    this.operators.push(null, null);\n\n    this.parseBlock();\n    this.expect(PostScriptTokenTypes.RBRACE);\n    if (this.accept(PostScriptTokenTypes.IF)) {\n      // The true block is right after the 'if' so it just falls through on true\n      // else it jumps and skips the true block.\n      this.operators[conditionLocation] = this.operators.length;\n      this.operators[conditionLocation + 1] = \"jz\";\n    } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n      const jumpLocation = this.operators.length;\n      this.operators.push(null, null);\n      const endOfTrue = this.operators.length;\n      this.parseBlock();\n      this.expect(PostScriptTokenTypes.RBRACE);\n      this.expect(PostScriptTokenTypes.IFELSE);\n      // The jump is added at the end of the true block to skip the false block.\n      this.operators[jumpLocation] = this.operators.length;\n      this.operators[jumpLocation + 1] = \"j\";\n\n      this.operators[conditionLocation] = endOfTrue;\n      this.operators[conditionLocation + 1] = \"jz\";\n    } else {\n      throw new FormatError(\"PS Function: error parsing conditional.\");\n    }\n  }\n}\n\nconst PostScriptTokenTypes = {\n  LBRACE: 0,\n  RBRACE: 1,\n  NUMBER: 2,\n  OPERATOR: 3,\n  IF: 4,\n  IFELSE: 5,\n};\n\nconst PostScriptToken = (function PostScriptTokenClosure() {\n  const opCache = Object.create(null);\n\n  // eslint-disable-next-line no-shadow\n  class PostScriptToken {\n    constructor(type, value) {\n      this.type = type;\n      this.value = value;\n    }\n\n    static getOperator(op) {\n      const opValue = opCache[op];\n      if (opValue) {\n        return opValue;\n      }\n      return (opCache[op] = new PostScriptToken(\n        PostScriptTokenTypes.OPERATOR,\n        op\n      ));\n    }\n\n    static get LBRACE() {\n      return shadow(\n        this,\n        \"LBRACE\",\n        new PostScriptToken(PostScriptTokenTypes.LBRACE, \"{\")\n      );\n    }\n\n    static get RBRACE() {\n      return shadow(\n        this,\n        \"RBRACE\",\n        new PostScriptToken(PostScriptTokenTypes.RBRACE, \"}\")\n      );\n    }\n\n    static get IF() {\n      return shadow(\n        this,\n        \"IF\",\n        new PostScriptToken(PostScriptTokenTypes.IF, \"IF\")\n      );\n    }\n\n    static get IFELSE() {\n      return shadow(\n        this,\n        \"IFELSE\",\n        new PostScriptToken(PostScriptTokenTypes.IFELSE, \"IFELSE\")\n      );\n    }\n  }\n  return PostScriptToken;\n})();\n\nclass PostScriptLexer {\n  constructor(stream) {\n    this.stream = stream;\n    this.nextChar();\n\n    this.strBuf = [];\n  }\n\n  nextChar() {\n    return (this.currentChar = this.stream.getByte());\n  }\n\n  getToken() {\n    let comment = false;\n    let ch = this.currentChar;\n\n    // skip comments\n    while (true) {\n      if (ch < 0) {\n        return EOF;\n      }\n\n      if (comment) {\n        if (ch === 0x0a || ch === 0x0d) {\n          comment = false;\n        }\n      } else if (ch === /* '%' = */ 0x25) {\n        comment = true;\n      } else if (!isWhiteSpace(ch)) {\n        break;\n      }\n      ch = this.nextChar();\n    }\n    switch (ch | 0) {\n      case 0x30: // '0'\n      case 0x31: // '1'\n      case 0x32: // '2'\n      case 0x33: // '3'\n      case 0x34: // '4'\n      case 0x35: // '5'\n      case 0x36: // '6'\n      case 0x37: // '7'\n      case 0x38: // '8'\n      case 0x39: // '9'\n      case 0x2b: // '+'\n      case 0x2d: // '-'\n      case 0x2e: // '.'\n        return new PostScriptToken(\n          PostScriptTokenTypes.NUMBER,\n          this.getNumber()\n        );\n      case 0x7b: // '{'\n        this.nextChar();\n        return PostScriptToken.LBRACE;\n      case 0x7d: // '}'\n        this.nextChar();\n        return PostScriptToken.RBRACE;\n    }\n    // operator\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    strBuf[0] = String.fromCharCode(ch);\n\n    while (\n      (ch = this.nextChar()) >= 0 &&\n      ((ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x5a) ||\n        (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x7a))\n    ) {\n      strBuf.push(String.fromCharCode(ch));\n    }\n    const str = strBuf.join(\"\");\n    switch (str.toLowerCase()) {\n      case \"if\":\n        return PostScriptToken.IF;\n      case \"ifelse\":\n        return PostScriptToken.IFELSE;\n      default:\n        return PostScriptToken.getOperator(str);\n    }\n  }\n\n  getNumber() {\n    let ch = this.currentChar;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    strBuf[0] = String.fromCharCode(ch);\n\n    while ((ch = this.nextChar()) >= 0) {\n      if (\n        (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) ||\n        ch === /* '-' = */ 0x2d ||\n        ch === /* '.' = */ 0x2e\n      ) {\n        strBuf.push(String.fromCharCode(ch));\n      } else {\n        break;\n      }\n    }\n    const value = parseFloat(strBuf.join(\"\"));\n    if (isNaN(value)) {\n      throw new FormatError(`Invalid floating point number: ${value}`);\n    }\n    return value;\n  }\n}\n\nexport { PostScriptLexer, PostScriptParser };\n","/* Copyright 2014 Opera Software ASA\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n *\n * Based on https://code.google.com/p/smhasher/wiki/MurmurHash3.\n * Hashes roughly 100 KB per millisecond on i7 3.4 GHz.\n */\n/* eslint no-var: error */\n\nimport { isArrayBuffer, isString } from \"../shared/util.js\";\n\nconst SEED = 0xc3d2e1f0;\n// Workaround for missing math precision in JS.\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n  constructor(seed) {\n    this.h1 = seed ? seed & 0xffffffff : SEED;\n    this.h2 = seed ? seed & 0xffffffff : SEED;\n  }\n\n  update(input) {\n    let data, length;\n    if (isString(input)) {\n      data = new Uint8Array(input.length * 2);\n      length = 0;\n      for (let i = 0, ii = input.length; i < ii; i++) {\n        const code = input.charCodeAt(i);\n        if (code <= 0xff) {\n          data[length++] = code;\n        } else {\n          data[length++] = code >>> 8;\n          data[length++] = code & 0xff;\n        }\n      }\n    } else if (isArrayBuffer(input)) {\n      data = input;\n      length = data.byteLength;\n    } else {\n      throw new Error(\n        \"Wrong data format in MurmurHash3_64_update. \" +\n          \"Input must be a string or array.\"\n      );\n    }\n\n    const blockCounts = length >> 2;\n    const tailLength = length - blockCounts * 4;\n    // We don't care about endianness here.\n    const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n    let k1 = 0,\n      k2 = 0;\n    let h1 = this.h1,\n      h2 = this.h2;\n    const C1 = 0xcc9e2d51,\n      C2 = 0x1b873593;\n    const C1_LOW = C1 & MASK_LOW,\n      C2_LOW = C2 & MASK_LOW;\n\n    for (let i = 0; i < blockCounts; i++) {\n      if (i & 1) {\n        k1 = dataUint32[i];\n        k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n        k1 = (k1 << 15) | (k1 >>> 17);\n        k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n        h1 ^= k1;\n        h1 = (h1 << 13) | (h1 >>> 19);\n        h1 = h1 * 5 + 0xe6546b64;\n      } else {\n        k2 = dataUint32[i];\n        k2 = ((k2 * C1) & MASK_HIGH) | ((k2 * C1_LOW) & MASK_LOW);\n        k2 = (k2 << 15) | (k2 >>> 17);\n        k2 = ((k2 * C2) & MASK_HIGH) | ((k2 * C2_LOW) & MASK_LOW);\n        h2 ^= k2;\n        h2 = (h2 << 13) | (h2 >>> 19);\n        h2 = h2 * 5 + 0xe6546b64;\n      }\n    }\n\n    k1 = 0;\n\n    switch (tailLength) {\n      case 3:\n        k1 ^= data[blockCounts * 4 + 2] << 16;\n      /* falls through */\n      case 2:\n        k1 ^= data[blockCounts * 4 + 1] << 8;\n      /* falls through */\n      case 1:\n        k1 ^= data[blockCounts * 4];\n        /* falls through */\n\n        k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n        k1 = (k1 << 15) | (k1 >>> 17);\n        k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n        if (blockCounts & 1) {\n          h1 ^= k1;\n        } else {\n          h2 ^= k1;\n        }\n    }\n\n    this.h1 = h1;\n    this.h2 = h2;\n  }\n\n  hexdigest() {\n    let h1 = this.h1,\n      h2 = this.h2;\n\n    h1 ^= h2 >>> 1;\n    h1 = ((h1 * 0xed558ccd) & MASK_HIGH) | ((h1 * 0x8ccd) & MASK_LOW);\n    h2 =\n      ((h2 * 0xff51afd7) & MASK_HIGH) |\n      (((((h2 << 16) | (h1 >>> 16)) * 0xafd7ed55) & MASK_HIGH) >>> 16);\n    h1 ^= h2 >>> 1;\n    h1 = ((h1 * 0x1a85ec53) & MASK_HIGH) | ((h1 * 0xec53) & MASK_LOW);\n    h2 =\n      ((h2 * 0xc4ceb9fe) & MASK_HIGH) |\n      (((((h2 << 16) | (h1 >>> 16)) * 0xb9fe1a85) & MASK_HIGH) >>> 16);\n    h1 ^= h2 >>> 1;\n\n    const hex1 = (h1 >>> 0).toString(16),\n      hex2 = (h2 >>> 0).toString(16);\n    return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n  }\n}\n\nexport { MurmurHash3_64 };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, FormatError, ImageKind, info, warn } from \"../shared/util.js\";\nimport { isName, isStream, Name } from \"./primitives.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./stream.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxImage } from \"./jpx.js\";\n\nvar PDFImage = (function PDFImageClosure() {\n  /**\n   * Decode and clamp a value. The formula is different from the spec because we\n   * don't decode to float range [0,1], we decode it in the [0,max] range.\n   */\n  function decodeAndClamp(value, addend, coefficient, max) {\n    value = addend + value * coefficient;\n    // Clamp the value to the range\n    if (value < 0) {\n      value = 0;\n    } else if (value > max) {\n      value = max;\n    }\n    return value;\n  }\n\n  /**\n   * Resizes an image mask with 1 component.\n   * @param {TypedArray} src - The source buffer.\n   * @param {number} bpc - Number of bits per component.\n   * @param {number} w1 - Original width.\n   * @param {number} h1 - Original height.\n   * @param {number} w2 - New width.\n   * @param {number} h2 - New height.\n   * @returns {TypedArray} The resized image mask buffer.\n   */\n  function resizeImageMask(src, bpc, w1, h1, w2, h2) {\n    var length = w2 * h2;\n    let dest;\n    if (bpc <= 8) {\n      dest = new Uint8Array(length);\n    } else if (bpc <= 16) {\n      dest = new Uint16Array(length);\n    } else {\n      dest = new Uint32Array(length);\n    }\n    var xRatio = w1 / w2;\n    var yRatio = h1 / h2;\n    var i,\n      j,\n      py,\n      newIndex = 0,\n      oldIndex;\n    var xScaled = new Uint16Array(w2);\n    var w1Scanline = w1;\n\n    for (i = 0; i < w2; i++) {\n      xScaled[i] = Math.floor(i * xRatio);\n    }\n    for (i = 0; i < h2; i++) {\n      py = Math.floor(i * yRatio) * w1Scanline;\n      for (j = 0; j < w2; j++) {\n        oldIndex = py + xScaled[j];\n        dest[newIndex++] = src[oldIndex];\n      }\n    }\n    return dest;\n  }\n\n  // eslint-disable-next-line no-shadow\n  function PDFImage({\n    xref,\n    res,\n    image,\n    isInline = false,\n    smask = null,\n    mask = null,\n    isMask = false,\n    pdfFunctionFactory,\n  }) {\n    this.image = image;\n    var dict = image.dict;\n\n    const filter = dict.get(\"Filter\");\n    if (isName(filter)) {\n      switch (filter.name) {\n        case \"JPXDecode\":\n          var jpxImage = new JpxImage();\n          jpxImage.parseImageProperties(image.stream);\n          image.stream.reset();\n\n          image.width = jpxImage.width;\n          image.height = jpxImage.height;\n          image.bitsPerComponent = jpxImage.bitsPerComponent;\n          image.numComps = jpxImage.componentsCount;\n          break;\n        case \"JBIG2Decode\":\n          image.bitsPerComponent = 1;\n          image.numComps = 1;\n          break;\n      }\n    }\n    // TODO cache rendered images?\n\n    let width = dict.get(\"Width\", \"W\");\n    let height = dict.get(\"Height\", \"H\");\n\n    if (\n      Number.isInteger(image.width) &&\n      image.width > 0 &&\n      Number.isInteger(image.height) &&\n      image.height > 0 &&\n      (image.width !== width || image.height !== height)\n    ) {\n      warn(\n        \"PDFImage - using the Width/Height of the image data, \" +\n          \"rather than the image dictionary.\"\n      );\n      width = image.width;\n      height = image.height;\n    }\n    if (width < 1 || height < 1) {\n      throw new FormatError(\n        `Invalid image width: ${width} or height: ${height}`\n      );\n    }\n    this.width = width;\n    this.height = height;\n\n    this.interpolate = dict.get(\"Interpolate\", \"I\") || false;\n    this.imageMask = dict.get(\"ImageMask\", \"IM\") || false;\n    this.matte = dict.get(\"Matte\") || false;\n\n    var bitsPerComponent = image.bitsPerComponent;\n    if (!bitsPerComponent) {\n      bitsPerComponent = dict.get(\"BitsPerComponent\", \"BPC\");\n      if (!bitsPerComponent) {\n        if (this.imageMask) {\n          bitsPerComponent = 1;\n        } else {\n          throw new FormatError(\n            `Bits per component missing in image: ${this.imageMask}`\n          );\n        }\n      }\n    }\n    this.bpc = bitsPerComponent;\n\n    if (!this.imageMask) {\n      var colorSpace = dict.get(\"ColorSpace\", \"CS\");\n      if (!colorSpace) {\n        info(\"JPX images (which do not require color spaces)\");\n        switch (image.numComps) {\n          case 1:\n            colorSpace = Name.get(\"DeviceGray\");\n            break;\n          case 3:\n            colorSpace = Name.get(\"DeviceRGB\");\n            break;\n          case 4:\n            colorSpace = Name.get(\"DeviceCMYK\");\n            break;\n          default:\n            throw new Error(\n              `JPX images with ${image.numComps} ` +\n                \"color components not supported.\"\n            );\n        }\n      }\n      const resources = isInline ? res : null;\n      this.colorSpace = ColorSpace.parse(\n        colorSpace,\n        xref,\n        resources,\n        pdfFunctionFactory\n      );\n      this.numComps = this.colorSpace.numComps;\n    }\n\n    this.decode = dict.getArray(\"Decode\", \"D\");\n    this.needsDecode = false;\n    if (\n      this.decode &&\n      ((this.colorSpace &&\n        !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent)) ||\n        (isMask &&\n          !ColorSpace.isDefaultDecode(this.decode, /* numComps = */ 1)))\n    ) {\n      this.needsDecode = true;\n      // Do some preprocessing to avoid more math.\n      var max = (1 << bitsPerComponent) - 1;\n      this.decodeCoefficients = [];\n      this.decodeAddends = [];\n      const isIndexed = this.colorSpace && this.colorSpace.name === \"Indexed\";\n      for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n        var dmin = this.decode[i];\n        var dmax = this.decode[i + 1];\n        this.decodeCoefficients[j] = isIndexed\n          ? (dmax - dmin) / max\n          : dmax - dmin;\n        this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n      }\n    }\n\n    if (smask) {\n      this.smask = new PDFImage({\n        xref,\n        res,\n        image: smask,\n        isInline,\n        pdfFunctionFactory,\n      });\n    } else if (mask) {\n      if (isStream(mask)) {\n        var maskDict = mask.dict,\n          imageMask = maskDict.get(\"ImageMask\", \"IM\");\n        if (!imageMask) {\n          warn(\"Ignoring /Mask in image without /ImageMask.\");\n        } else {\n          this.mask = new PDFImage({\n            xref,\n            res,\n            image: mask,\n            isInline,\n            isMask: true,\n            pdfFunctionFactory,\n          });\n        }\n      } else {\n        // Color key mask (just an array).\n        this.mask = mask;\n      }\n    }\n  }\n  /**\n   * Handles processing of image data and returns the Promise that is resolved\n   * with a PDFImage when the image is ready to be used.\n   */\n  PDFImage.buildImage = function ({\n    xref,\n    res,\n    image,\n    isInline = false,\n    pdfFunctionFactory,\n  }) {\n    const imageData = image;\n    let smaskData = null;\n    let maskData = null;\n\n    const smask = image.dict.get(\"SMask\");\n    const mask = image.dict.get(\"Mask\");\n\n    if (smask) {\n      smaskData = smask;\n    } else if (mask) {\n      if (isStream(mask) || Array.isArray(mask)) {\n        maskData = mask;\n      } else {\n        warn(\"Unsupported mask format.\");\n      }\n    }\n    return Promise.resolve(\n      new PDFImage({\n        xref,\n        res,\n        image: imageData,\n        isInline,\n        smask: smaskData,\n        mask: maskData,\n        pdfFunctionFactory,\n      })\n    );\n  };\n\n  PDFImage.createMask = function ({\n    imgArray,\n    width,\n    height,\n    imageIsFromDecodeStream,\n    inverseDecode,\n  }) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        imgArray instanceof Uint8ClampedArray,\n        'PDFImage.createMask: Unsupported \"imgArray\" type.'\n      );\n    }\n    // |imgArray| might not contain full data for every pixel of the mask, so\n    // we need to distinguish between |computedLength| and |actualLength|.\n    // In particular, if inverseDecode is true, then the array we return must\n    // have a length of |computedLength|.\n\n    var computedLength = ((width + 7) >> 3) * height;\n    var actualLength = imgArray.byteLength;\n    var haveFullData = computedLength === actualLength;\n    var data, i;\n\n    if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n      // imgArray came from a DecodeStream and its data is in an appropriate\n      // form, so we can just transfer it.\n      data = imgArray;\n    } else if (!inverseDecode) {\n      data = new Uint8ClampedArray(actualLength);\n      data.set(imgArray);\n    } else {\n      data = new Uint8ClampedArray(computedLength);\n      data.set(imgArray);\n      for (i = actualLength; i < computedLength; i++) {\n        data[i] = 0xff;\n      }\n    }\n\n    // If necessary, invert the original mask data (but not any extra we might\n    // have added above). It's safe to modify the array -- whether it's the\n    // original or a copy, we're about to transfer it anyway, so nothing else\n    // in this thread can be relying on its contents.\n    if (inverseDecode) {\n      for (i = 0; i < actualLength; i++) {\n        data[i] ^= 0xff;\n      }\n    }\n\n    return { data, width, height };\n  };\n\n  PDFImage.prototype = {\n    get drawWidth() {\n      return Math.max(\n        this.width,\n        (this.smask && this.smask.width) || 0,\n        (this.mask && this.mask.width) || 0\n      );\n    },\n\n    get drawHeight() {\n      return Math.max(\n        this.height,\n        (this.smask && this.smask.height) || 0,\n        (this.mask && this.mask.height) || 0\n      );\n    },\n\n    decodeBuffer(buffer) {\n      var bpc = this.bpc;\n      var numComps = this.numComps;\n\n      var decodeAddends = this.decodeAddends;\n      var decodeCoefficients = this.decodeCoefficients;\n      var max = (1 << bpc) - 1;\n      var i, ii;\n\n      if (bpc === 1) {\n        // If the buffer needed decode that means it just needs to be inverted.\n        for (i = 0, ii = buffer.length; i < ii; i++) {\n          buffer[i] = +!buffer[i];\n        }\n        return;\n      }\n      var index = 0;\n      for (i = 0, ii = this.width * this.height; i < ii; i++) {\n        for (var j = 0; j < numComps; j++) {\n          buffer[index] = decodeAndClamp(\n            buffer[index],\n            decodeAddends[j],\n            decodeCoefficients[j],\n            max\n          );\n          index++;\n        }\n      }\n    },\n\n    getComponents(buffer) {\n      var bpc = this.bpc;\n\n      // This image doesn't require any extra work.\n      if (bpc === 8) {\n        return buffer;\n      }\n\n      var width = this.width;\n      var height = this.height;\n      var numComps = this.numComps;\n\n      var length = width * height * numComps;\n      var bufferPos = 0;\n      let output;\n      if (bpc <= 8) {\n        output = new Uint8Array(length);\n      } else if (bpc <= 16) {\n        output = new Uint16Array(length);\n      } else {\n        output = new Uint32Array(length);\n      }\n      var rowComps = width * numComps;\n\n      var max = (1 << bpc) - 1;\n      var i = 0,\n        ii,\n        buf;\n\n      if (bpc === 1) {\n        // Optimization for reading 1 bpc images.\n        var mask, loop1End, loop2End;\n        for (var j = 0; j < height; j++) {\n          loop1End = i + (rowComps & ~7);\n          loop2End = i + rowComps;\n\n          // unroll loop for all full bytes\n          while (i < loop1End) {\n            buf = buffer[bufferPos++];\n            output[i] = (buf >> 7) & 1;\n            output[i + 1] = (buf >> 6) & 1;\n            output[i + 2] = (buf >> 5) & 1;\n            output[i + 3] = (buf >> 4) & 1;\n            output[i + 4] = (buf >> 3) & 1;\n            output[i + 5] = (buf >> 2) & 1;\n            output[i + 6] = (buf >> 1) & 1;\n            output[i + 7] = buf & 1;\n            i += 8;\n          }\n\n          // handle remaining bits\n          if (i < loop2End) {\n            buf = buffer[bufferPos++];\n            mask = 128;\n            while (i < loop2End) {\n              output[i++] = +!!(buf & mask);\n              mask >>= 1;\n            }\n          }\n        }\n      } else {\n        // The general case that handles all other bpc values.\n        var bits = 0;\n        buf = 0;\n        for (i = 0, ii = length; i < ii; ++i) {\n          if (i % rowComps === 0) {\n            buf = 0;\n            bits = 0;\n          }\n\n          while (bits < bpc) {\n            buf = (buf << 8) | buffer[bufferPos++];\n            bits += 8;\n          }\n\n          var remainingBits = bits - bpc;\n          let value = buf >> remainingBits;\n          if (value < 0) {\n            value = 0;\n          } else if (value > max) {\n            value = max;\n          }\n          output[i] = value;\n          buf = buf & ((1 << remainingBits) - 1);\n          bits = remainingBits;\n        }\n      }\n      return output;\n    },\n\n    fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n      if (\n        typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"!PRODUCTION || TESTING\")\n      ) {\n        assert(\n          rgbaBuf instanceof Uint8ClampedArray,\n          'PDFImage.fillOpacity: Unsupported \"rgbaBuf\" type.'\n        );\n      }\n      var smask = this.smask;\n      var mask = this.mask;\n      var alphaBuf, sw, sh, i, ii, j;\n\n      if (smask) {\n        sw = smask.width;\n        sh = smask.height;\n        alphaBuf = new Uint8ClampedArray(sw * sh);\n        smask.fillGrayBuffer(alphaBuf);\n        if (sw !== width || sh !== height) {\n          alphaBuf = resizeImageMask(\n            alphaBuf,\n            smask.bpc,\n            sw,\n            sh,\n            width,\n            height\n          );\n        }\n      } else if (mask) {\n        if (mask instanceof PDFImage) {\n          sw = mask.width;\n          sh = mask.height;\n          alphaBuf = new Uint8ClampedArray(sw * sh);\n          mask.numComps = 1;\n          mask.fillGrayBuffer(alphaBuf);\n\n          // Need to invert values in rgbaBuf\n          for (i = 0, ii = sw * sh; i < ii; ++i) {\n            alphaBuf[i] = 255 - alphaBuf[i];\n          }\n\n          if (sw !== width || sh !== height) {\n            alphaBuf = resizeImageMask(\n              alphaBuf,\n              mask.bpc,\n              sw,\n              sh,\n              width,\n              height\n            );\n          }\n        } else if (Array.isArray(mask)) {\n          // Color key mask: if any of the components are outside the range\n          // then they should be painted.\n          alphaBuf = new Uint8ClampedArray(width * height);\n          var numComps = this.numComps;\n          for (i = 0, ii = width * height; i < ii; ++i) {\n            var opacity = 0;\n            var imageOffset = i * numComps;\n            for (j = 0; j < numComps; ++j) {\n              var color = image[imageOffset + j];\n              var maskOffset = j * 2;\n              if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n                opacity = 255;\n                break;\n              }\n            }\n            alphaBuf[i] = opacity;\n          }\n        } else {\n          throw new FormatError(\"Unknown mask format.\");\n        }\n      }\n\n      if (alphaBuf) {\n        for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n          rgbaBuf[j] = alphaBuf[i];\n        }\n      } else {\n        // No mask.\n        for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n          rgbaBuf[j] = 255;\n        }\n      }\n    },\n\n    undoPreblend(buffer, width, height) {\n      if (\n        typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"!PRODUCTION || TESTING\")\n      ) {\n        assert(\n          buffer instanceof Uint8ClampedArray,\n          'PDFImage.undoPreblend: Unsupported \"buffer\" type.'\n        );\n      }\n      var matte = this.smask && this.smask.matte;\n      if (!matte) {\n        return;\n      }\n      var matteRgb = this.colorSpace.getRgb(matte, 0);\n      var matteR = matteRgb[0];\n      var matteG = matteRgb[1];\n      var matteB = matteRgb[2];\n      var length = width * height * 4;\n      for (var i = 0; i < length; i += 4) {\n        var alpha = buffer[i + 3];\n        if (alpha === 0) {\n          // according formula we have to get Infinity in all components\n          // making it white (typical paper color) should be okay\n          buffer[i] = 255;\n          buffer[i + 1] = 255;\n          buffer[i + 2] = 255;\n          continue;\n        }\n        var k = 255 / alpha;\n        buffer[i] = (buffer[i] - matteR) * k + matteR;\n        buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n        buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n      }\n    },\n\n    createImageData(forceRGBA = false) {\n      var drawWidth = this.drawWidth;\n      var drawHeight = this.drawHeight;\n      var imgData = {\n        width: drawWidth,\n        height: drawHeight,\n        kind: 0,\n        data: null,\n        // Other fields are filled in below.\n      };\n\n      var numComps = this.numComps;\n      var originalWidth = this.width;\n      var originalHeight = this.height;\n      var bpc = this.bpc;\n\n      // Rows start at byte boundary.\n      var rowBytes = (originalWidth * numComps * bpc + 7) >> 3;\n      var imgArray;\n\n      if (!forceRGBA) {\n        // If it is a 1-bit-per-pixel grayscale (i.e. black-and-white) image\n        // without any complications, we pass a same-sized copy to the main\n        // thread rather than expanding by 32x to RGBA form. This saves *lots*\n        // of memory for many scanned documents. It's also much faster.\n        //\n        // Similarly, if it is a 24-bit-per pixel RGB image without any\n        // complications, we avoid expanding by 1.333x to RGBA form.\n        var kind;\n        if (this.colorSpace.name === \"DeviceGray\" && bpc === 1) {\n          kind = ImageKind.GRAYSCALE_1BPP;\n        } else if (\n          this.colorSpace.name === \"DeviceRGB\" &&\n          bpc === 8 &&\n          !this.needsDecode\n        ) {\n          kind = ImageKind.RGB_24BPP;\n        }\n        if (\n          kind &&\n          !this.smask &&\n          !this.mask &&\n          drawWidth === originalWidth &&\n          drawHeight === originalHeight\n        ) {\n          imgData.kind = kind;\n\n          imgArray = this.getImageBytes(originalHeight * rowBytes);\n          // If imgArray came from a DecodeStream, we're safe to transfer it\n          // (and thus detach its underlying buffer) because it will constitute\n          // the entire DecodeStream's data.  But if it came from a Stream, we\n          // need to copy it because it'll only be a portion of the Stream's\n          // data, and the rest will be read later on.\n          if (this.image instanceof DecodeStream) {\n            imgData.data = imgArray;\n          } else {\n            var newArray = new Uint8ClampedArray(imgArray.length);\n            newArray.set(imgArray);\n            imgData.data = newArray;\n          }\n          if (this.needsDecode) {\n            // Invert the buffer (which must be grayscale if we reached here).\n            assert(\n              kind === ImageKind.GRAYSCALE_1BPP,\n              \"PDFImage.createImageData: The image must be grayscale.\"\n            );\n            var buffer = imgData.data;\n            for (var i = 0, ii = buffer.length; i < ii; i++) {\n              buffer[i] ^= 0xff;\n            }\n          }\n          return imgData;\n        }\n        if (this.image instanceof JpegStream && !this.smask && !this.mask) {\n          let imageLength = originalHeight * rowBytes;\n          switch (this.colorSpace.name) {\n            case \"DeviceGray\":\n              // Avoid truncating the image, since `JpegImage.getData`\n              // will expand the image data when `forceRGB === true`.\n              imageLength *= 3;\n            /* falls through */\n            case \"DeviceRGB\":\n            case \"DeviceCMYK\":\n              imgData.kind = ImageKind.RGB_24BPP;\n              imgData.data = this.getImageBytes(\n                imageLength,\n                drawWidth,\n                drawHeight,\n                /* forceRGB = */ true\n              );\n              return imgData;\n          }\n        }\n      }\n\n      imgArray = this.getImageBytes(originalHeight * rowBytes);\n      // imgArray can be incomplete (e.g. after CCITT fax encoding).\n      var actualHeight =\n        0 | (((imgArray.length / rowBytes) * drawHeight) / originalHeight);\n\n      var comps = this.getComponents(imgArray);\n\n      // If opacity data is present, use RGBA_32BPP form. Otherwise, use the\n      // more compact RGB_24BPP form if allowable.\n      var alpha01, maybeUndoPreblend;\n      if (!forceRGBA && !this.smask && !this.mask) {\n        imgData.kind = ImageKind.RGB_24BPP;\n        imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n        alpha01 = 0;\n        maybeUndoPreblend = false;\n      } else {\n        imgData.kind = ImageKind.RGBA_32BPP;\n        imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n        alpha01 = 1;\n        maybeUndoPreblend = true;\n\n        // Color key masking (opacity) must be performed before decoding.\n        this.fillOpacity(\n          imgData.data,\n          drawWidth,\n          drawHeight,\n          actualHeight,\n          comps\n        );\n      }\n\n      if (this.needsDecode) {\n        this.decodeBuffer(comps);\n      }\n      this.colorSpace.fillRgb(\n        imgData.data,\n        originalWidth,\n        originalHeight,\n        drawWidth,\n        drawHeight,\n        actualHeight,\n        bpc,\n        comps,\n        alpha01\n      );\n      if (maybeUndoPreblend) {\n        this.undoPreblend(imgData.data, drawWidth, actualHeight);\n      }\n\n      return imgData;\n    },\n\n    fillGrayBuffer(buffer) {\n      if (\n        typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"!PRODUCTION || TESTING\")\n      ) {\n        assert(\n          buffer instanceof Uint8ClampedArray,\n          'PDFImage.fillGrayBuffer: Unsupported \"buffer\" type.'\n        );\n      }\n      var numComps = this.numComps;\n      if (numComps !== 1) {\n        throw new FormatError(\n          `Reading gray scale from a color image: ${numComps}`\n        );\n      }\n\n      var width = this.width;\n      var height = this.height;\n      var bpc = this.bpc;\n\n      // rows start at byte boundary\n      var rowBytes = (width * numComps * bpc + 7) >> 3;\n      var imgArray = this.getImageBytes(height * rowBytes);\n\n      var comps = this.getComponents(imgArray);\n      var i, length;\n\n      if (bpc === 1) {\n        // inline decoding (= inversion) for 1 bpc images\n        length = width * height;\n        if (this.needsDecode) {\n          // invert and scale to {0, 255}\n          for (i = 0; i < length; ++i) {\n            buffer[i] = (comps[i] - 1) & 255;\n          }\n        } else {\n          // scale to {0, 255}\n          for (i = 0; i < length; ++i) {\n            buffer[i] = -comps[i] & 255;\n          }\n        }\n        return;\n      }\n\n      if (this.needsDecode) {\n        this.decodeBuffer(comps);\n      }\n      length = width * height;\n      // we aren't using a colorspace so we need to scale the value\n      var scale = 255 / ((1 << bpc) - 1);\n      for (i = 0; i < length; ++i) {\n        buffer[i] = scale * comps[i];\n      }\n    },\n\n    getImageBytes(length, drawWidth, drawHeight, forceRGB = false) {\n      this.image.reset();\n      this.image.drawWidth = drawWidth || this.width;\n      this.image.drawHeight = drawHeight || this.height;\n      this.image.forceRGB = !!forceRGB;\n      return this.image.getBytes(length, /* forceClamped = */ true);\n    },\n  };\n  return PDFImage;\n})();\n\nexport { PDFImage };\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/* eslint no-var: error, prefer-const: error */\n\nimport {\n  AbortException,\n  assert,\n  createPromiseCapability,\n  MissingPDFException,\n  UnexpectedResponseException,\n  UnknownErrorException,\n} from \"./util.js\";\n\nconst CallbackKind = {\n  UNKNOWN: 0,\n  DATA: 1,\n  ERROR: 2,\n};\n\nconst StreamKind = {\n  UNKNOWN: 0,\n  CANCEL: 1,\n  CANCEL_COMPLETE: 2,\n  CLOSE: 3,\n  ENQUEUE: 4,\n  ERROR: 5,\n  PULL: 6,\n  PULL_COMPLETE: 7,\n  START_COMPLETE: 8,\n};\n\nfunction wrapReason(reason) {\n  if (\n    typeof PDFJSDev === \"undefined\" ||\n    PDFJSDev.test(\"!PRODUCTION || TESTING\")\n  ) {\n    assert(\n      reason instanceof Error ||\n        (typeof reason === \"object\" && reason !== null),\n      'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n    );\n  } else {\n    if (typeof reason !== \"object\" || reason === null) {\n      return reason;\n    }\n  }\n  switch (reason.name) {\n    case \"AbortException\":\n      return new AbortException(reason.message);\n    case \"MissingPDFException\":\n      return new MissingPDFException(reason.message);\n    case \"UnexpectedResponseException\":\n      return new UnexpectedResponseException(reason.message, reason.status);\n    case \"UnknownErrorException\":\n      return new UnknownErrorException(reason.message, reason.details);\n    default:\n      return new UnknownErrorException(reason.message, reason.toString());\n  }\n}\n\nclass MessageHandler {\n  constructor(sourceName, targetName, comObj) {\n    this.sourceName = sourceName;\n    this.targetName = targetName;\n    this.comObj = comObj;\n    this.callbackId = 1;\n    this.streamId = 1;\n    this.postMessageTransfers = true;\n    this.streamSinks = Object.create(null);\n    this.streamControllers = Object.create(null);\n    this.callbackCapabilities = Object.create(null);\n    this.actionHandler = Object.create(null);\n\n    this._onComObjOnMessage = event => {\n      const data = event.data;\n      if (data.targetName !== this.sourceName) {\n        return;\n      }\n      if (data.stream) {\n        this._processStreamMessage(data);\n        return;\n      }\n      if (data.callback) {\n        const callbackId = data.callbackId;\n        const capability = this.callbackCapabilities[callbackId];\n        if (!capability) {\n          throw new Error(`Cannot resolve callback ${callbackId}`);\n        }\n        delete this.callbackCapabilities[callbackId];\n\n        if (data.callback === CallbackKind.DATA) {\n          capability.resolve(data.data);\n        } else if (data.callback === CallbackKind.ERROR) {\n          capability.reject(wrapReason(data.reason));\n        } else {\n          throw new Error(\"Unexpected callback case\");\n        }\n        return;\n      }\n      const action = this.actionHandler[data.action];\n      if (!action) {\n        throw new Error(`Unknown action from worker: ${data.action}`);\n      }\n      if (data.callbackId) {\n        const cbSourceName = this.sourceName;\n        const cbTargetName = data.sourceName;\n        new Promise(function (resolve) {\n          resolve(action(data.data));\n        }).then(\n          function (result) {\n            comObj.postMessage({\n              sourceName: cbSourceName,\n              targetName: cbTargetName,\n              callback: CallbackKind.DATA,\n              callbackId: data.callbackId,\n              data: result,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName: cbSourceName,\n              targetName: cbTargetName,\n              callback: CallbackKind.ERROR,\n              callbackId: data.callbackId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        return;\n      }\n      if (data.streamId) {\n        this._createStreamSink(data);\n        return;\n      }\n      action(data.data);\n    };\n    comObj.addEventListener(\"message\", this._onComObjOnMessage);\n  }\n\n  on(actionName, handler) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        typeof handler === \"function\",\n        'MessageHandler.on: Expected \"handler\" to be a function.'\n      );\n    }\n    const ah = this.actionHandler;\n    if (ah[actionName]) {\n      throw new Error(`There is already an actionName called \"${actionName}\"`);\n    }\n    ah[actionName] = handler;\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   */\n  send(actionName, data, transfers) {\n    this._postMessage(\n      {\n        sourceName: this.sourceName,\n        targetName: this.targetName,\n        action: actionName,\n        data,\n      },\n      transfers\n    );\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * Expects that the other side will callback with the response.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   * @returns {Promise} Promise to be resolved with response data.\n   */\n  sendWithPromise(actionName, data, transfers) {\n    const callbackId = this.callbackId++;\n    const capability = createPromiseCapability();\n    this.callbackCapabilities[callbackId] = capability;\n    try {\n      this._postMessage(\n        {\n          sourceName: this.sourceName,\n          targetName: this.targetName,\n          action: actionName,\n          callbackId,\n          data,\n        },\n        transfers\n      );\n    } catch (ex) {\n      capability.reject(ex);\n    }\n    return capability.promise;\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * Expect that the other side will callback to signal 'start_complete'.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Object} queueingStrategy - Strategy to signal backpressure based on\n   *                 internal queue.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   * @returns {ReadableStream} ReadableStream to read data in chunks.\n   */\n  sendWithStream(actionName, data, queueingStrategy, transfers) {\n    const streamId = this.streamId++;\n    const sourceName = this.sourceName;\n    const targetName = this.targetName;\n    const comObj = this.comObj;\n\n    return new ReadableStream(\n      {\n        start: controller => {\n          const startCapability = createPromiseCapability();\n          this.streamControllers[streamId] = {\n            controller,\n            startCall: startCapability,\n            pullCall: null,\n            cancelCall: null,\n            isClosed: false,\n          };\n          this._postMessage(\n            {\n              sourceName,\n              targetName,\n              action: actionName,\n              streamId,\n              data,\n              desiredSize: controller.desiredSize,\n            },\n            transfers\n          );\n          // Return Promise for Async process, to signal success/failure.\n          return startCapability.promise;\n        },\n\n        pull: controller => {\n          const pullCapability = createPromiseCapability();\n          this.streamControllers[streamId].pullCall = pullCapability;\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL,\n            streamId,\n            desiredSize: controller.desiredSize,\n          });\n          // Returning Promise will not call \"pull\"\n          // again until current pull is resolved.\n          return pullCapability.promise;\n        },\n\n        cancel: reason => {\n          assert(reason instanceof Error, \"cancel must have a valid reason\");\n          const cancelCapability = createPromiseCapability();\n          this.streamControllers[streamId].cancelCall = cancelCapability;\n          this.streamControllers[streamId].isClosed = true;\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.CANCEL,\n            streamId,\n            reason: wrapReason(reason),\n          });\n          // Return Promise to signal success or failure.\n          return cancelCapability.promise;\n        },\n      },\n      queueingStrategy\n    );\n  }\n\n  /**\n   * @private\n   */\n  _createStreamSink(data) {\n    const self = this;\n    const action = this.actionHandler[data.action];\n    const streamId = data.streamId;\n    const sourceName = this.sourceName;\n    const targetName = data.sourceName;\n    const comObj = this.comObj;\n\n    const streamSink = {\n      enqueue(chunk, size = 1, transfers) {\n        if (this.isCancelled) {\n          return;\n        }\n        const lastDesiredSize = this.desiredSize;\n        this.desiredSize -= size;\n        // Enqueue decreases the desiredSize property of sink,\n        // so when it changes from positive to negative,\n        // set ready as unresolved promise.\n        if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n          this.sinkCapability = createPromiseCapability();\n          this.ready = this.sinkCapability.promise;\n        }\n        self._postMessage(\n          {\n            sourceName,\n            targetName,\n            stream: StreamKind.ENQUEUE,\n            streamId,\n            chunk,\n          },\n          transfers\n        );\n      },\n\n      close() {\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.CLOSE,\n          streamId,\n        });\n        delete self.streamSinks[streamId];\n      },\n\n      error(reason) {\n        assert(reason instanceof Error, \"error must have a valid reason\");\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.ERROR,\n          streamId,\n          reason: wrapReason(reason),\n        });\n      },\n\n      sinkCapability: createPromiseCapability(),\n      onPull: null,\n      onCancel: null,\n      isCancelled: false,\n      desiredSize: data.desiredSize,\n      ready: null,\n    };\n\n    streamSink.sinkCapability.resolve();\n    streamSink.ready = streamSink.sinkCapability.promise;\n    this.streamSinks[streamId] = streamSink;\n    new Promise(function (resolve) {\n      resolve(action(data.data, streamSink));\n    }).then(\n      function () {\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.START_COMPLETE,\n          streamId,\n          success: true,\n        });\n      },\n      function (reason) {\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.START_COMPLETE,\n          streamId,\n          reason: wrapReason(reason),\n        });\n      }\n    );\n  }\n\n  /**\n   * @private\n   */\n  _processStreamMessage(data) {\n    const streamId = data.streamId;\n    const sourceName = this.sourceName;\n    const targetName = data.sourceName;\n    const comObj = this.comObj;\n\n    switch (data.stream) {\n      case StreamKind.START_COMPLETE:\n        if (data.success) {\n          this.streamControllers[streamId].startCall.resolve();\n        } else {\n          this.streamControllers[streamId].startCall.reject(\n            wrapReason(data.reason)\n          );\n        }\n        break;\n      case StreamKind.PULL_COMPLETE:\n        if (data.success) {\n          this.streamControllers[streamId].pullCall.resolve();\n        } else {\n          this.streamControllers[streamId].pullCall.reject(\n            wrapReason(data.reason)\n          );\n        }\n        break;\n      case StreamKind.PULL:\n        // Ignore any pull after close is called.\n        if (!this.streamSinks[streamId]) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            success: true,\n          });\n          break;\n        }\n        // Pull increases the desiredSize property of sink,\n        // so when it changes from negative to positive,\n        // set ready property as resolved promise.\n        if (\n          this.streamSinks[streamId].desiredSize <= 0 &&\n          data.desiredSize > 0\n        ) {\n          this.streamSinks[streamId].sinkCapability.resolve();\n        }\n        // Reset desiredSize property of sink on every pull.\n        this.streamSinks[streamId].desiredSize = data.desiredSize;\n        const { onPull } = this.streamSinks[data.streamId];\n        new Promise(function (resolve) {\n          resolve(onPull && onPull());\n        }).then(\n          function () {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.PULL_COMPLETE,\n              streamId,\n              success: true,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.PULL_COMPLETE,\n              streamId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        break;\n      case StreamKind.ENQUEUE:\n        assert(\n          this.streamControllers[streamId],\n          \"enqueue should have stream controller\"\n        );\n        if (this.streamControllers[streamId].isClosed) {\n          break;\n        }\n        this.streamControllers[streamId].controller.enqueue(data.chunk);\n        break;\n      case StreamKind.CLOSE:\n        assert(\n          this.streamControllers[streamId],\n          \"close should have stream controller\"\n        );\n        if (this.streamControllers[streamId].isClosed) {\n          break;\n        }\n        this.streamControllers[streamId].isClosed = true;\n        this.streamControllers[streamId].controller.close();\n        this._deleteStreamController(streamId);\n        break;\n      case StreamKind.ERROR:\n        assert(\n          this.streamControllers[streamId],\n          \"error should have stream controller\"\n        );\n        this.streamControllers[streamId].controller.error(\n          wrapReason(data.reason)\n        );\n        this._deleteStreamController(streamId);\n        break;\n      case StreamKind.CANCEL_COMPLETE:\n        if (data.success) {\n          this.streamControllers[streamId].cancelCall.resolve();\n        } else {\n          this.streamControllers[streamId].cancelCall.reject(\n            wrapReason(data.reason)\n          );\n        }\n        this._deleteStreamController(streamId);\n        break;\n      case StreamKind.CANCEL:\n        if (!this.streamSinks[streamId]) {\n          break;\n        }\n        const { onCancel } = this.streamSinks[data.streamId];\n        new Promise(function (resolve) {\n          resolve(onCancel && onCancel(wrapReason(data.reason)));\n        }).then(\n          function () {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.CANCEL_COMPLETE,\n              streamId,\n              success: true,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.CANCEL_COMPLETE,\n              streamId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        this.streamSinks[streamId].sinkCapability.reject(\n          wrapReason(data.reason)\n        );\n        this.streamSinks[streamId].isCancelled = true;\n        delete this.streamSinks[streamId];\n        break;\n      default:\n        throw new Error(\"Unexpected stream case\");\n    }\n  }\n\n  /**\n   * @private\n   */\n  async _deleteStreamController(streamId) {\n    // Delete the `streamController` only when the start, pull, and cancel\n    // capabilities have settled, to prevent `TypeError`s.\n    await Promise.allSettled(\n      [\n        this.streamControllers[streamId].startCall,\n        this.streamControllers[streamId].pullCall,\n        this.streamControllers[streamId].cancelCall,\n      ].map(function (capability) {\n        return capability && capability.promise;\n      })\n    );\n    delete this.streamControllers[streamId];\n  }\n\n  /**\n   * Sends raw message to the comObj.\n   * @param {Object} message - Raw message.\n   * @param transfers List of transfers/ArrayBuffers, or undefined.\n   * @private\n   */\n  _postMessage(message, transfers) {\n    if (transfers && this.postMessageTransfers) {\n      this.comObj.postMessage(message, transfers);\n    } else {\n      this.comObj.postMessage(message);\n    }\n  }\n\n  destroy() {\n    this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n  }\n}\n\nexport { MessageHandler };\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/* eslint no-var: error */\n\nimport { assert } from \"../shared/util.js\";\n\n/** @implements {IPDFStream} */\nclass PDFWorkerStream {\n  constructor(msgHandler) {\n    this._msgHandler = msgHandler;\n    this._contentLength = null;\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFWorkerStream.getFullReader can only be called once.\"\n    );\n    this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(begin, end) {\n    const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n    this._rangeRequestReaders.push(reader);\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n    const readers = this._rangeRequestReaders.slice(0);\n    readers.forEach(function (reader) {\n      reader.cancel(reason);\n    });\n  }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFWorkerStreamReader {\n  constructor(msgHandler) {\n    this._msgHandler = msgHandler;\n    this.onProgress = null;\n\n    this._contentLength = null;\n    this._isRangeSupported = false;\n    this._isStreamingSupported = false;\n\n    const readableStream = this._msgHandler.sendWithStream(\"GetReader\");\n    this._reader = readableStream.getReader();\n\n    this._headersReady = this._msgHandler\n      .sendWithPromise(\"ReaderHeadersReady\")\n      .then(data => {\n        this._isStreamingSupported = data.isStreamingSupported;\n        this._isRangeSupported = data.isRangeSupported;\n        this._contentLength = data.contentLength;\n      });\n  }\n\n  get headersReady() {\n    return this._headersReady;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  async read() {\n    const { value, done } = await this._reader.read();\n    if (done) {\n      return { value: undefined, done: true };\n    }\n    // `value` is wrapped into Uint8Array, we need to\n    // unwrap it to ArrayBuffer for further processing.\n    return { value: value.buffer, done: false };\n  }\n\n  cancel(reason) {\n    this._reader.cancel(reason);\n  }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFWorkerStreamRangeReader {\n  constructor(begin, end, msgHandler) {\n    this._msgHandler = msgHandler;\n    this.onProgress = null;\n\n    const readableStream = this._msgHandler.sendWithStream(\"GetRangeReader\", {\n      begin,\n      end,\n    });\n    this._reader = readableStream.getReader();\n  }\n\n  get isStreamingSupported() {\n    return false;\n  }\n\n  async read() {\n    const { value, done } = await this._reader.read();\n    if (done) {\n      return { value: undefined, done: true };\n    }\n    return { value: value.buffer, done: false };\n  }\n\n  cancel(reason) {\n    this._reader.cancel(reason);\n  }\n}\n\nexport { PDFWorkerStream };\n"],"sourceRoot":""}