{"version":3,"sources":["webpack:///./node_modules/pdfjs-dist/build/pdf.worker.entry.js","webpack:///./node_modules/pdfjs-dist/build/pdf.worker.js","webpack:///./node_modules/pdfjs-dist/build/pdf.js"],"names":["window","pdfjsWorker","root","factory","module","exports","this","modules","installedModules","__w_pdfjs_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_worker","WorkerMessageHandler","WorkerTask","_util","_primitives","_pdf_manager","_writer","_is_node","_message_handler","_worker_stream","_core_utils","terminated","_capability","createPromiseCapability","promise","resolve","Error","handler","port","testMessageProcessed","on","data","Uint8Array","send","supportTransfers","postMessageTransfers","setVerbosityLevel","verbosity","createDocumentHandler","docParams","pdfManager","cancelXHRs","WorkerTasks","getVerbosityLevel","apiVersion","workerVersion","enumerableProperties","push","length","join","ReadableStream","Promise","allSettled","docId","docBaseUrl","workerHandlerName","MessageHandler","ensureNotTerminated","startWorkerTask","task","finishWorkerTask","finish","indexOf","splice","async","loadDocument","recoveryMode","ensureDoc","numPages","fingerprint","all","getPdfManager","evaluatorOptions","pdfManagerCapability","newPdfManager","source","LocalPdfManager","password","ex","reject","pdfStream","cachedChunks","PDFWorkerStream","fullRequest","getFullReader","headersReady","then","isRangeSupported","disableAutoFetch","isStreamingSupported","NetworkPdfManager","msgHandler","contentLength","rangeChunkSize","sendProgressiveData","catch","reason","loaded","flushChunks","pdfFile","arraysToBytes","warn","readPromise","readChunk","done","arrayByteLength","total","Math","max","read","e","cancelAllRequests","setupDoc","onSuccess","doc","pdfInfo","onFailure","PasswordException","code","sendWithPromise","updatePassword","pdfManagerReady","InvalidPDFException","MissingPDFException","UnexpectedResponseException","UnknownErrorException","message","toString","XRefParseException","requestLoadedStream","onLoadedStream","maxImageSize","disableFontFace","ignoreErrors","isEvalSupported","fontExtraProperties","terminate","AbortException","stream","bytes","byteLength","getPage","pageIndex","page","ensure","rotate","ref","userUnit","view","pageRef","Ref","num","gen","ensureCatalog","id","ensureXRef","intent","getAnnotationsData","annotationStorage","filename","promises","document","pdfDocument","save","refs","newRefs","filter","x","reduce","a","b","concat","xref","newXrefInfo","trailer","_info","xrefInfo","forEach","isString","stringToPDFString","rootRef","getRaw","encrypt","newRef","getNewRef","infoRef","info","fileIds","startXRef","resetNewRef","incrementalUpdate","sink","start","VerbosityLevel","INFOS","Date","now","getOperatorList","renderInteractiveForms","operatorListInfo","close","featureId","UNSUPPORTED_FEATURES","errorOperatorList","error","onPull","desiredSize","onCancel","extractTextContent","normalizeWhitespace","combineTextItems","fontFallback","cleanup","waitOn","cleanupPromise","clearPrimitiveCaches","finished","destroy","setup","isMessagePort","maybePort","postMessage","isNodeJS","self","initializeFromPort","assert","bytesToString","escapeString","getModificationDate","isArrayBuffer","isArrayEqual","isBool","isNum","isSameOrigin","createValidAbsoluteUrl","removeNullCharacters","shadow","string32","stringToBytes","stringToUTF8String","utf8StringToString","unreachable","IsEvalSupportedCached","IsLittleEndianCached","createObjectURL","FormatError","Util","TextRenderingMode","StreamType","PermissionFlag","PasswordResponses","CMapCompressionType","ImageKind","FontType","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","OPS","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","BaseException","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","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","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","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","MARKED","REVIEW","UNMARKED","ACCEPTED","REJECTED","CANCELLED","COMPLETED","NONE","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","BINARY","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","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","errorFontToUnicode","errorFontLoadNative","errorFontGetPath","errorMarkedContent","NEED_PASSWORD","INCORRECT_PASSWORD","level","Number","isInteger","msg","console","log","cond","baseUrl","otherUrl","base","URL","origin","other","_isValidProtocol","url","protocol","absoluteUrl","obj","prop","configurable","writable","constructor","super","details","status","NullCharactersRegExp","str","replace","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","min","chunk","subarray","charCodeAt","arr","resultLength","pos","item","itemLength","set","isLittleEndian","buffer8","view32","Uint32Array","buffer","Function","rgbBuf","g","m1","m2","xt","yt","p1","applyTransform","p2","slice","p3","p4","v","transpose","first","second","sqrt","sx","sy","rect","rect1","rect2","compare","orderedX","sort","orderedY","result","normalizeRect","PDFStringTranslateTable","charAt","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","every","element","index","date","getUTCFullYear","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","capability","isSettled","digits","contentType","forceDataSchema","blob","Blob","type","ii","b1","b2","b3","d1","d2","d3","d4","process","versions","nw","electron","isEOF","isCmd","isDict","isName","isRef","isRefsEqual","isStream","RefSetCache","RefSet","Name","Dict","Cmd","EOF","nameCache","nameValue","_clearCache","cmdCache","cmd","cmdValue","nonSerializable","_map","objId","suppressEncryption","__nonSerializable__","assignXref","newXref","keys","key1","key2","key3","fetch","fetchAsync","Array","isArray","getKeys","getRawValues","values","has","callback","empty","merge","dictArray","mergeSubDicts","mergedDict","dict","entries","size","properties","Map","subDict","clear","refCache","refValue","_set","Set","add","delete","aliasRef","v1","v2","getBytes","_chunked_stream","_document","_stream","BasePdfManager","_docId","_password","_docBaseUrl","href","args","catalog","manuallyTriggered","begin","end","Stream","PDFDocument","_loadedStreamPromise","pdfNetworkStream","streamManager","ChunkedStreamManager","getStream","MissingDataException","requestRange","requestAllChunks","onReceiveData","abort","ChunkedStream","chunkSize","manager","_loadedChunks","numChunks","ceil","progressiveDataLength","lastSuccessfulEnsureByteChunk","chunks","numChunksLoaded","beginChunk","floor","endChunk","curChunk","position","ensureByte","b0","getByte","forceClamped","strEnd","ensureRange","Uint8ClampedArray","peekedByte","ChunkedStreamSubstream","getMissingChunks","missingChunks","allChunksLoaded","subStream","currRequestId","_chunksNeededByRequest","_requestsByChunk","_promisesByRequest","aborted","_loadedStreamCapability","rangeReader","getRangeReader","onProgress","chunkData","_requestChunks","requestId","chunksNeeded","hasChunk","chunksToRequest","requestIds","groupedChunksToRequest","groupChunks","groupedChunk","sendRequest","getBeginChunk","getEndChunk","ranges","range","includes","groupedChunks","prevChunk","isProgressive","onReceiveProgressiveData","loadedRequests","nextEmptyChunk","lastChunk","err","getLookupTableFactory","getInheritableProperty","toRomanNumerals","log2","readInt8","readUint16","readUint32","isWhiteSpace","XRefEntryException","initializer","lookup","getArray","stopWhenFound","LOOP_LIMIT","loopCount","ROMAN_NUMBER_MAP","number","lowerCase","romanBuf","romanStr","toLowerCase","offset","ch","Page","_obj","_annotation","_crypto","_parser","_operator_list","_evaluator","DEFAULT_USER_UNIT","LETTER_SIZE_MEDIABOX","isAnnotationRenderable","annotation","viewable","printable","pageDict","globalIdFactory","fontCache","builtInCMapCache","globalImageCache","resourcesPromise","idCounters","_localIdFactory","_getInheritableProperty","box","_getBoundingBox","mediaBox","cropBox","intersect","content","streams","fetchIfRef","StreamsSequenceStream","NullStream","partialEvaluator","PartialEvaluator","idFactory","options","_parsedAnnotations","annotations","newRefsPromises","objectLoader","ObjectLoader","resources","load","contentStreamPromise","loadResources","dataPromises","pageListPromise","contentStream","opList","OperatorList","transparency","hasBlendModes","operatorList","pageOpList","flush","totalLength","opListPromises","opLists","addOp","addOpList","getTextContent","annotationsData","parsedAnnotations","annotationPromises","annotationRef","AnnotationFactory","PDF_HEADER_SIGNATURE","STARTXREF_SIGNATURE","ENDOBJ_SIGNATURE","FINGERPRINT_FIRST_BYTES","EMPTY_FINGERPRINT","PDF_HEADER_VERSION_REGEXP","find","signature","limit","backwards","signatureLength","scanBytes","peekBytes","scanLength","signatureEnd","j","arg","XRef","_pagePromises","_version","_globalIdFactory","parse","Catalog","version","linearization","Linearization","reset","step","startXRefLength","found","skip","parseInt","isNaN","moveStart","MAX_PDF_VERSION_LENGTH","substring","setStartXRef","fields","recursionDepth","RECURSION_LIMIT","field","_hasOnlyDocumentSignatures","isSignature","isInvisible","formInfo","hasAcroForm","hasXfa","acroForm","xfa","isEmpty","hasFields","sigFlags","hasOnlyDocumentSignatures","DocumentInfoValidators","Title","Author","Subject","Keywords","Creator","Producer","CreationDate","ModDate","Trapped","test","docInfo","PDFFormatVersion","IsLinearized","IsAcroFormPresent","IsXFAPresent","IsCollectionPresent","collection","infoDict","customValue","Custom","hash","idArray","calculateMD5","getByteRange","fingerprintBuf","hex","objectNumberFirst","pageKidsCountCache","put","getPageDict","pageFirst","_getLinearizationPage","FileSpec","_colorspace","_image_utils","fetchDestination","dest","_catDict","getCatalogObj","GlobalImageCache","streamRef","encryptMetadata","metadata","subtype","pagesObj","_readDocumentOutline","items","queue","parent","processed","blackColor","shift","outlineDict","parseDestDictionary","destDict","resultObj","title","flags","color","count","rgbColor","ColorSpace","singletons","rgb","getRgb","outlineItem","unsafeUrl","newWindow","bold","italic","permissions","_readPermissions","config","defaultConfig","groupsData","groups","groupRefs","groupRef","group","_readOptionalContentConfig","contentGroupRefs","parseOnOff","onParsed","parseOrder","nestedLevels","order","parsedOrderRefs","nestedOrder","parseNestedOrder","hiddenGroups","MAX_NESTED_LEVELS","nestedName","creator","baseState","off","toplevelPagesDict","_readDests","dests","NameTree","names","getAll","destinationId","_readPageLabels","pageLabels","style","prefix","numberTree","NumberTree","nums","currentLabel","currentIndex","labelDict","st","LIMIT","A_UPPER_CASE","A_LOWER_CASE","baseCharCode","letterIndex","character","charBuf","jj","pageLayout","pageMode","ViewerPreferencesValidators","HideToolbar","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","NonFullScreenPageMode","Direction","ViewArea","ViewClip","PrintArea","PrintClip","PrintScaling","Duplex","PickTrayByPDFSize","PrintPageRange","NumCopies","prefs","prefValue","isValid","openAction","action","attachments","nameTree","fs","serializable","appendIfJavaScriptDict","jsDict","js","translatedFonts","translatedFont","loadedName","fallback","translated","nodesToVisit","visitedNodes","currentPageIndex","next","currentNode","pop","kids","last","pagesBeforeRef","kidRef","parentRef","node","getAsync","kidPromises","kid","params","addDefaultProtocolToUrl","startsWith","tryConvertUrlEncoding","actionType","actionName","urlDict","remoteDest","split","JSON","stringify","namedAction","jsAction","URL_OPEN_METHODS","regex","RegExp","jsUrl","exec","xrefstms","_cacheMap","stats","streamTypes","fontTypes","_newRefNum","startXRefQueue","trailerDict","indexObjects","readXRef","ids","fileId","CipherTransformFactory","processXRefTable","parser","tableState","entryNum","streamPos","lexer","parserBuf1","buf1","parserBuf2","buf2","readXRefTable","getObj","firstEntryNum","entryCount","entry","free","uncompressed","processXRefStream","streamParameters","byteWidths","streamState","entryRanges","readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","TAB","LF","CR","SPACE","PERCENT","LT","readToken","token","skipUntil","what","dataLength","skipped","objRegExp","endobjRegExp","nestedObjRegExp","CHECK_CONTENT_LENGTH","trailerBytes","startxrefBytes","objBytes","xrefBytes","trailers","xrefStms","startPos","endPos","checkPos","tokenStr","objToken","xrefTagOffset","Parser","Lexer","allowStreams","rootDict","startXRefParsedCache","topDict","getEntry","xrefEntry","cacheEntry","fetchUncompressed","fetchCompressed","makeSubStream","obj1","obj2","obj3","createCipherTransform","tableOffset","NameOrNumberTree","_type","kidsOrEntries","MAX_LEVELS","limits","tmp","currentKey","mm","description","contentAvailable","pickPlatformItem","_filename","contentRef","fileObj","mayHaveChildren","addChildren","rawValue","refSet","_walk","nodesToRevisit","pendingRequests","getBaseStreams","baseStreams","foundMissingData","requestRanges","remove","_ccitt_stream","_jbig2_stream","_jpeg_stream","_jpx_stream","MAX_LENGTH_TO_CACHE","MAX_ADLER32_LENGTH","computeAdler32","bytesLength","imageCache","refill","cipherTransform","makeInlineImage","array","makeStream","decryptString","E","I","NUL","maybeEIPos","state","followingBytes","knownCommands","nextObj","peekObj","endOffset","peekByte","markerLength","foundEOI","getUint16","findDefaultInlineStreamEnd","inlineStreamSkipEI","TILDE","GT","tildePos","maybeEI","dictLength","beginInlineImagePos","filterName","filterZero","findDCTDecodeInlineStreamEnd","findASCII85DecodeInlineStreamEnd","findASCIIHexDecodeInlineStreamEnd","cacheKey","imageStream","imageBytes","initialStreamPos","dictBytes","createStream","SCAN_BLOCK_LENGTH","skipToNextLine","nextChar","tryShift","ENDSTREAM_SIGNATURE","actualLength","_findStreamLength","MAX_TRUNCATION","TRUNCATED_SIGNATURE","maybeLength","lastByte","makeFilter","filterArray","paramsArray","xrefStreamStats","PredictorStream","FlateStream","earlyChange","LZWStream","JpegStream","JpxStream","Ascii85Stream","AsciiHexStream","CCITTFaxStream","RunLengthStream","Jbig2Stream","specialChars","toHexDigit","_hexStringNumWarn","currentChar","eNotation","divideBy","sign","baseValue","powerValue","powerValueSign","currentDigit","peekChar","numParen","charBuffered","previousCh","x2","MAX_HEX_STRING_NUM_WARN","firstDigit","secondDigit","isFirstHex","_hexStringWarn","comment","getNumber","getString","getName","getHexString","knownCommandFound","possibleCommand","getInt","linDict","allowZeroValue","getHints","hints","hintsLength","hint","endFirst","mainXRefEntriesOffset","StringStream","DecodeStream","DecryptStream","arrayBuffer","getInt32","emptyBuffer","maybeMinBufferLength","_rawMinBufferLength","bufferLength","eof","minBufferLength","readBlock","ensureBuffer","requested","buffer2","bufEnd","newLength","codeLenCodeMap","Int32Array","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","cmf","flg","codeSize","codeBuf","getBits","bits","getCode","table","codes","maxLen","codeLen","codeVal","generateHuffmanTable","lengths","len","val","code2","hdr","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","bitsLength","bitsOffset","codeLengths","repeatLength","code1","dist","k","blockLen","check","block","predictor","readBlockTiff","readBlockPng","colors","columns","pixBytes","rowBytes","rawBytes","inbuf","outbuf","inbits","outbits","bytesPerPixel","sum","compArray","bitMask","kk","prevRow","up","upLeft","left","pa","pb","pc","decrypt","nextChunk","initialized","hasMoreData","input","TILDA_CHAR","Z_LOWER_CHAR","UPSTREAM_BLOCK_SIZE","maxDecodeLength","digit","repeatHeader","cachedData","bitsCached","maxLzwDictionarySize","lzwState","codeLength","nextCode","dictionaryValues","dictionaryLengths","Uint16Array","dictionaryPrevCodes","currentSequence","currentSequenceLength","readBits","lastCode","q","blockSize","estimatedDecodedSize","decodedSizeDelta","prevCode","decodedLength","currentBufferLength","hasPrev","_ccitt","ccittFaxDecoder","CCITTFaxDecoder","K","EndOfLine","EncodedByteAlign","Columns","Rows","EndOfBlock","BlackIs1","readNextChar","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","encoding","eoline","byteAlign","rows","eoblock","black","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","_lookBits","_eatBits","refPos","blackPixels","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","limitValue","_findTableCode","_jbig","jbig2Image","Jbig2Image","globalsStream","globals","parseChunks","_arithmetic_decoder","Jbig2Error","ContextCache","DecodingContext","decodeInteger","contextCache","procedure","decoder","contexts","getContexts","prev","bit","readBit","decodeIAID","Int8Array","ArithmeticDecoder","cache","SegmentTypes","CodingTemplates","y","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","width","height","decodingContext","contextLabel","pixel","row1","row2","bitmap","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","at","Reader","decodeMMRBitmap","useskip","template","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","i0","j0","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","decode","currentWidth","totalWidth","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","symbol","bitmapSize","tableBitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMax","bitmapWidth","symbolBitmap","xMin","exportedSymbols","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","s2","t2","symbolRow","offsetT","offsetS","maxWidth","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patterns","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","header","segments","segment","randomAccess","processSegment","visitor","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","SimpleSegmentVisitor","parseJbig2","numberOfPages","currentPageInfo","bitPacked","imgData","mask","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","line","children","isLeaf","HuffmanTable","lines","prefixCodesDone","assignPrefixCodes","rootNode","buildTree","decodeTablesSegment","lowestValue","highestValue","reader","prefixSizeBits","rangeSizeBits","currentRangeLow","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","arguments","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onImmediateHalftoneRegion","htOffset","decodeNode","linesLength","prefixLengthMax","histogram","currentCode","currentTemp","currentLength","firstCode","standardTablesCache","currentByte","getCustomHuffmanTable","numberOfSymbols","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","lookForEOFLimit","numBits","QeTable","qe","nmps","nlps","switchFlag","bp","dataEnd","chigh","clow","byteIn","ct","cx_index","cx_mps","qeTableIcx","qeIcx","_jpg","jpegOptions","decodeTransform","colorTransform","decodeArr","forceRGB","bitsPerComponent","decodeArrLength","transformNeeded","maxValue","jpegImage","JpegImage","getData","drawWidth","drawHeight","isSourcePDF","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","_decodeTransform","_colorTransform","buildHuffmanTable","getBlockBufferOffset","component","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","precision","round","decodeHuffman","tree","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACNextValue","successiveACState","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","h","decodeBlock","decodeFn","componentsLength","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","partialMsg","marker","quantizeAndInverse","blockBufferOffset","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","qt","quantizationTable","buildComponentData","computationBuffer","Int16Array","currentPos","maxPos","newPos","currentMarker","newMarker","dnlScanLines","readDataBlock","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentId","componentsCount","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","nextFileMarker","output","scaleX","scaleY","numComponents","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_convertYccToRgb","Y","Cb","Cr","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","_getLinearizedBlockData","rgbData","grayColor","_isColorConversionNeeded","_jpx","jpxImage","JpxImage","tileCount","tiles","tileComponents","tileWidth","tileHeight","tileLeft","tileTop","top","src","srcPosition","dataPosition","imgRowSize","tileRowSize","JpxError","SubbandsGainLog2","LL","LH","HL","HH","failOnCorruptedImage","calculateComponentDimensions","siz","x0","XOsiz","XRsiz","x1","Xsiz","y0","YOsiz","YRsiz","y1","Ysiz","calculateTileGrids","context","tile","SIZ","numXtiles","XTOsiz","XTsiz","numYtiles","YTOsiz","YTsiz","tx0","ty0","tx1","ty1","Csiz","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","entropyCoderWithCustomPrecincts","PPx","precinctsSizes","PPy","xcb_","xcb","ycb_","ycb","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblock","precinctNumber","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","currentTile","layersCount","codingStyleDefaultParameters","maxDecompositionLevelsCount","decompositionLevelsCount","nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","px","py","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","posX","minWidth","posY","minHeight","startPrecinctRowIndex","MAX_VALUE","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","scale","widthCurrentResolution","heightCurrentResolution","buildPackets","blocksDimensions","bscale","resolutionSubbands","progressionOrder","packetsIterator","parseTilePackets","bufferSize","skipNextBit","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","sopMarkerUsed","COD","ephMarkerUsed","valueReady","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","included","inclusionTree","zeroBitPlanesTree","InclusionTree","TagTree","incrementValue","nextLevel","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","segmentationSymbolUsed","right","bottom","blockWidth","blockHeight","bitModel","currentCodingpassType","BitModel","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","nb","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","interleave","levelOffset","transformTile","quantizationParameters","spqcds","SPqcds","scalarExpounded","guardBits","reversibleTransformation","ReversibleTransform","IrreversibleTransform","subbandCoefficients","Float32Array","mu","epsilon","gainLog2","calculate","transformComponents","resultImages","transformedTiles","y2","tile0","out","multipleComponentTransform","fourComponents","y0items","y1items","y2items","y3items","component0","alpha01","initializeTile","qcdOrQcc","QCC","QCD","COC","head","headerSize","lbox","tbox","jumpDataLength","method","colorspace","parseCodestream","headerType","parseImageProperties","newByte","oldByte","doNotRecover","sqcd","spqcdSize","mainHeader","isSigned","qcd","noQuantization","spqcd","cqcc","qcc","cod","scod","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","precinctsSize","unsupported","partIndex","partsCount","levelsLength","levels","currentLevel","defaultValue","stopValue","propagateValues","levelIndex","currentValue","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","decoded","horizontalContribution","indexNext","width4","index0","significance","iNext","oneRowDown","twoRowsDown","threeRowsDown","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","iterate","extend","j1","j2","hl_lh_hh","u","llWidth","llHeight","llItems","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","current","alpha","beta","gamma","K_","calculateSHA512","calculateSHA384","calculateSHA256","PDF20","PDF17","ARCFourCipher","AES256Cipher","AES128Cipher","keyLength","encryptBlock","tmp2","decryptBlock","h0","h1","h2","h3","paddedLength","padded","w","f","rotateArg","Word64","highInteger","lowInteger","high","low","and","word","xor","or","shiftRight","places","shiftLeft","rotateRight","not","lowAdd","highAdd","copyTo","assign","rotr","maj","sigma","sigmaPrime","littleSigma","littleSigmaPrime","h4","h5","h6","h7","t1","mode384","tmp3","tmp1","NullCipher","AESBaseCipher","_s","_inv_s","_mix","_mixCol","bufferPosition","cipherKey","_keySize","_cyclesOfRepetition","s0","s1","s3","finalize","sourceLength","iv","plain","_decrypt","_key","outputLength","lastBlock","psLen","_decryptBlock2","cipher","_encrypt","_rcon","_expandKey","rcon","t3","t4","compareByteArrays","array1","array2","checkOwnerPassword","ownerValidationSalt","userBytes","ownerPassword","hashData","checkUserPassword","userValidationSalt","userPassword","getOwnerKey","ownerKeySalt","ownerEncryption","getUserKey","userKeySalt","userEncryption","concatArrays","calculatePDF20Hash","arrayLength","k1","remainder","concatBytes","CipherTransform","stringCipherConstructor","streamCipherConstructor","StringCipherConstructor","StreamCipherConstructor","encryptString","strLen","pad","padEnd","crypto","getRandomValues","random","buf","defaultPasswordBytes","createEncryptionKey20","revision","uBytes","perms","passwordLength","pdfAlgorithm","prepareKeyData","hashDataSize","keyLengthInBytes","checkData","encryptionKey","derivedKey","decodeUserPassword","identityName","algorithm","cfDict","streamCryptoName","handlerDict","passwordBytes","fileIdBytes","decodedPassword","cf","stmf","strf","eff","buildObjectKey","isAes","buildCipherConstructor","cfm","cryptFilter","cipherConstructor","resizeRgbImage","w1","w2","COMPONENTS","xRatio","yRatio","oldIndex","newIndex","xScaled","w1Scanline","numComps","srcOffset","getRgbItem","destOffset","inputLength","decodeMap","bpc","isDefaultDecode","originalWidth","originalHeight","actualHeight","comps","numComponentColors","needsResizing","isPassthrough","allColors","colorMap","getRgbBuffer","rgbPos","destPos","localColorSpaceCache","parsedColorSpace","csName","csRef","localColorSpace","getByRef","getByName","cs","pdfFunctionFactory","_parse","_cache","cachedColorSpace","getCached","gray","cmyk","PatternCS","colorSpaces","resourcesCS","baseCS","whitePoint","blackPoint","CalGrayCS","matrix","CalRGBCS","alt","altCS","hiVal","IndexedCS","tintFn","AlternateCS","LabCS","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","tmpBuf","baseNumComps","usesZeroToOneRange","baseBuf","scaled","tinted","getOutputLength","highVal","outputDelta","lookupPos","convertToRgb","srcScale","A","AG","G","L","YW","XW","ZW","XB","YB","ZB","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","matrixProduct","convertToFlat","sourceWhitePoint","LMS","convertToD65","D65X","D65Y","D65Z","sRGBTransferFunction","adjustToRange","decodeL","compensateBlackPoint","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","normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","LMS_D65","B","C","AGR","GR","BGG","GG","CGB","GB","X","MXA","MXB","MXC","MYA","MYB","MYC","Z","MZA","MZB","MZC","XYZ","XYZ_Black","XYZ_D65","SRGB","fn_g","high1","low2","high2","maxVal","Ls","as","bs","amin","amax","bmin","bmax","M","N","LocalGStateCache","LocalFunctionCache","LocalColorSpaceCache","LocalImageCache","BaseLocalCache","onlyRefs","_nameRefMap","_imageMap","_imageCache","_refCache","pageIndexSet","NUM_PAGES_THRESHOLD","MAX_IMAGES_TO_CACHE","onlyData","getQuadPoints","MarkupAnnotation","AnnotationBorderStyle","Annotation","createObjId","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","WidgetAnnotation","PopupAnnotation","FreeTextAnnotation","LineAnnotation","SquareAnnotation","CircleAnnotation","PolylineAnnotation","PolygonAnnotation","CaretAnnotation","InkAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","StampAnnotation","FileAttachmentAnnotation","quadPoints","quadPointsLists","getTransformMatrix","bbox","maxY","getAxialAlignedBoundingBox","setContents","setModificationDate","setFlags","setRectangle","setColor","setBorderStyle","setAppearance","annotationFlags","borderStyle","contents","hasAppearance","appearance","modificationDate","flag","_hasFlag","_isViewable","_isPrintable","dictType","setWidth","setStyle","setDashArray","setHorizontalCornerRadius","setVerticalCornerRadius","appearanceStates","normalAppearanceState","evaluator","renderForms","appearanceDict","dashArray","horizontalCornerRadius","verticalCornerRadius","maxHeight","allZeros","validNumber","radius","rawIRT","inReplyTo","rt","replyType","setCreationDate","creationDate","hasPopup","annotationType","fieldName","_constructFieldName","fieldValue","_decodeFormValue","alternativeText","defaultAppearance","fieldResources","fieldFlags","readOnly","hasFieldFlag","unshift","loopDict","formValue","map","_hasText","_getAppearance","AP","originalTransform","newTransform","bufferOriginal","writeDict","bufferNew","isPassword","defaultPadding","hPadding","totalHeight","fontInfo","_getFontData","fontName","fontSize","_computeFontSize","descent","vPadding","abs","alignment","textAlignment","comb","_getCombAppearance","multiLine","_getMultilineAppearance","renderedText","_renderText","initialState","em","charsToGlyphs","capHeight","fontRegex","search","text","glyphs","glyph","toFixed","maximumLength","combWidth","renderedComb","_splitLine","padding","whitespace","lastSpacePos","startChunk","charWidth","checkedAppearance","uncheckedAppearance","checkBox","radioButton","pushButton","_processCheckBox","_processRadioButton","_processPushButton","savedAppearance","_saveCheckbox","_saveRadioButton","exportValue","buttonValue","parentBuffer","parentTransform","customAppearance","normalAppearance","exportValues","fieldParent","fieldParentValue","option","isOptionArray","displayValue","combo","multiSelect","DEFAULT_ICON_SIZE","stateModel","parentItem","parentSubtype","parentType","rawParent","parentId","parentFlags","lineCoordinates","rawVertices","vertices","originalInkLists","inkLists","file","QueueOptimizer","addState","parentState","pattern","checkFn","iterateFn","processFn","handlePaintSolidColorImageMask","iFirstSave","fnArray","argsArray","iFirstPIMXO","imageMask","InitialState","iCurr","match","lastProcessed","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","kind","MIN_IMAGES_IN_MASKS_BLOCK","MAX_IMAGES_IN_MASKS_BLOCK","MAX_SAME_IMAGES_IN_MASKS_BLOCK","iTransform","transformArgs","isSameImage","firstPIMXOArg0","firstTransformArg0","firstTransformArg1","firstTransformArg2","firstTransformArg3","iPIMXO","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","fn","_optimize","NullOptimizer","CHUNK_SIZE","CHUNK_SIZE_ABOUT","streamSink","_streamSink","optimizer","dependencies","_totalLength","weight","_resolved","ready","addDependency","transfers","cached","enqueue","_transfers","writeValue","writeStream","string","writeArray","numberToString","roundedValue","writeInt","writeString","computeMD5","filesize","time","md5Buffer","md5BufferLen","originalData","refForXrefTable","baseOffset","xrefTableData","indexes","maxOffset","md5","offsetSize","sizes","structSize","tableLength","bufferLen","footer","objOffset","_cmap","_fonts","_encodings","_unicode","_standard_fonts","_pattern","_function","_bidi","_glyphlist","_metrics","_murmurhash","_image","DefaultPartialEvaluatorOptions","freeze","PatternType","TILING","SHADING","deferred","normalizeBlendMode","parsingArray","maybeBM","TimeSlotManager","checked","CHECK_TIME_EVERY","endTime","TIME_SLOT_DURATION_MS","parsingType3Font","_fetchBuiltInCMapBound","fetchBuiltInCMap","PDFFunctionFactory","newOptions","newEvaluator","nodes","graphicStates","graphicState","bm","xObjects","xObject","xResources","readableStream","sendWithStream","getReader","pump","compressionType","xobj","optionalContent","parseMarkedContentProps","groupOptions","isolated","knockout","groupSubtype","colorSpace","parseColorSpace","backdrop","cacheGlobally","image","isInline","localImageCache","imageRef","bitStrideLength","imgArray","PDFImage","createMask","imageIsFromDecodeStream","inverseDecode","softMask","SMALL_IMAGE_DIMENSIONS","imageObj","res","_pdfFunctionFactory","createImageData","getDocId","shouldCache","buildImage","_sendImgData","addPageIndex","setData","stateManager","smaskContent","smaskOptions","transferObj","isPDFFunction","transferFn","transferMap","buildFormXObject","clone","tr","transferArray","transferMaps","numFns","numEffectfulFns","patternDict","tilingOpList","patternResources","getTilingPatternIR","tilingPatternIR","addDependencies","fontArgs","fontRef","loadFont","isType3Font","loadType3Data","type3Dependencies","TranslatedFont","ErrorFont","extraProperties","chars","isAddToPathSet","textRenderingMode","fillColorSpace","buildFontPaths","gState","localGStateCache","gStateRef","isSimpleGState","gStateObj","gStateKeys","handleSetFont","handleSMask","handleTransferFunction","errorFont","fontRes","fallbackFontDict","fontCapability","preEvaluatedFont","preEvaluateFont","descriptor","fontID","translatedPromise","fontRefIsRef","fontAliases","aliasFontRef","putAlias","createFontId","translateFont","fontType","xrefFontStats","fontFile3","getFontType","parsingText","lastIndex","opArgs","parseAsync","patternName","typeNum","handleTilingType","shading","Pattern","parseShading","getIR","contentProperties","optionalContentType","optionalContentGroups","groupIds","ocg","expression","policy","EvalState","xobjs","StateManager","preprocessor","EvaluatorPreprocessor","timeSlotManager","closePendingRestoreOPS","argument","savedStatesDepth","promiseBody","stop","operation","localImage","resolveXObject","rejectXObject","globalImage","buildPaintImageXObject","ensureStateFont","handleText","combinedGlyphs","arrLength","arrItem","strokeColorSpace","handleColorN","shadingRes","patternIR","localGStateObj","resolveGState","rejectGState","extGState","buildPath","seenStyles","TextState","WhitespaceRegexp","textContent","styles","textContentItem","vertical","lastAdvanceWidth","lastAdvanceHeight","textAdvanceScale","spaceWidth","fakeSpaceMin","Infinity","fakeMultiSpaceMin","fakeMultiSpaceMax","textRunBreakAllowed","SPACE_FACTOR","MULTI_SPACE_FACTOR","MULTI_SPACE_FACTOR_MAX","emptyXObjectCache","emptyGStateCache","textState","ensureTextContentItem","fontFamily","fallbackName","ascent","tsm","textHScale","textRise","fontMatrix","glyphHeight","trm","ctm","textMatrix","textLineMatrix","scaleLineX","scaleCtmX","isMonospace","replaceWhitespace","runBidiTransform","textChunk","bidiResult","bidi","dir","buildTextContentItem","glyphWidth","vmetric","glyphUnicode","unicode","NormalizedUnicodes","getNormalizedUnicodes","reverseIfRtl","charSpacing","isSpace","wordSpacing","addFakeSpaces","tx","ty","w0","translateTextMatrix","fakeSpaces","flushTextContentItem","enqueueChunk","advance","fontNameArg","fontSizeArg","leading","isSameTextLine","translateTextLineMatrix","carriageReturn","calcTextLineMatrixAdvance","setTextLineMatrix","breakTextRun","currentState","xObjStateManager","sinkWrapper","enqueueInvoked","gStateFont","baseDict","cidToGidBytes","toUnicode","toUnicodePromise","readToUnicode","composite","cidSystemInfo","registry","ordering","supplement","cidToGidMap","differences","baseEncodingName","diffEncoding","defaultEncoding","getEncoding","isSymbolicFont","FontFlags","Symbolic","isNonsymbolicFont","Nonsymbolic","StandardEncoding","WinAnsiEncoding","MacRomanEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","hasEncoding","buildToUnicode","builtToUnicode","readCidToGidMap","forceGlyphs","charcode","glyphName","glyphsUnicodeMap","getGlyphsUnicode","codeStr","_buildSimpleFontToUnicode","getUnicodeForGlyph","baseEncoding","fromCodePoint","ToUnicodeMap","hasIncludedToUnicodeMap","fallbackToUnicode","cMap","builtInCMap","IdentityCMap","ucs2CMapName","CMapFactory","useCMap","ucs2CMap","cid","ucs2","IdentityToUnicodeMap","firstChar","lastChar","cmapObj","cmap","getMap","charCode","glyphsData","glyphID","defaultVMetrics","widths","glyphsWidths","defaultWidth","glyphsVMetrics","vmetrics","parseFloat","baseFontName","metrics","getBaseFontMetrics","buildCharCodeToWidth","firstWidth","FixedPitch","fontNameWoStyle","getSerifFonts","monospace","stdFontMap","getStdFontMap","lookupName","Metrics","getMetrics","isSerifFont","glyphWidths","widthsByGlyphName","uint8array","df","MurmurHash3_64","update","diffLength","diffBuf","diffEntry","hexdigest","maxCharIndex","Serif","getSymbolsFonts","extractDataStructures","newProperties","Font","baseFont","fontNameStr","baseFontStr","cMapPromise","fontFile","length1","length2","length3","fixedPitch","xHeight","italicAngle","cidEncoding","extractWidths","fontChar","renderer","hasBuiltPath","getPathJs","accent","_extraProperties","type3Loaded","sent","exportData","glyphCacheValues","type3Options","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcOperatorList","glyphStream","dummyOperatorList","stateStack","old","txDiff","tyDiff","denominator","getOPMap","numArgs","variableArgs","J","ri","gs","Q","cm","re","S","F","W","BT","ET","Tc","Tw","Tz","TL","Tf","Tr","Ts","Td","TD","Tm","Tj","TJ","d0","CS","SC","SCN","sc","scn","RG","rg","sh","BI","ID","EI","Do","MP","DP","BMC","BDC","EMC","BX","EX","BM","BD","true","fa","fal","fals","false","nu","nul","null","opMap","nonProcessedArgs","_numInvalidPathOPS","opSpec","argsLength","MAX_INVALID_PATH_OPS","preprocessCommand","CMap","BUILT_IN_CMAPS","MAX_MAP_RANGE","codespaceRanges","numCodespaceRanges","dstLow","dst","nn","codespaceRange","addCodespaceRange","BinaryCMapReader","hexToInt","hexToStr","addHex","incHex","MAX_NUM_SIZE","MAX_ENCODED_NUM_SIZE","BinaryCMapStream","processBinaryCMap","readByte","char","sequence","dataSize","ucs2DataSize","subitemsCount","readNumber","readHex","readHexNumber","mapOne","readSigned","mapCidRange","readHexSigned","mapBfRange","readString","stack","sp","strToInt","expectString","expectInt","parseBfChar","parseBfRange","mapBfRangeToArray","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","previous","embeddedUseCMap","objLoop","extendCMap","createBuiltInCMap","newCMap","useCodespaceRanges","contains","cMapData","parsedCMap","isIdentityCMap","SEAC_ANALYSIS_ENABLED","_cff_parser","_font_renderer","_type1_parser","PRIVATE_USE_AREAS","PDF_GLYPH_SPACE_UNITS","EXPORT_DATA_PROPERTIES","EXPORT_DATA_EXTRA_PROPERTIES","Script","Italic","AllCap","SmallCap","ForceBold","MacStandardGlyphOrdering","adjustWidths","adjustToUnicode","builtInEncoding","amend","recoverGlyphName","Glyph","operatorListId","isInFont","matchesForCache","OpenTypeFileBuilder","writeInt16","writeInt32","writeData","sfnt","tables","getSearchParams","entriesCount","entrySize","maxPower2","searchRange","rangeShift","OTF_HEADER_SIZE","OTF_TABLE_ENTRY_SIZE","toArray","tablesNames","tableName","numTables","tableOffsets","searchParams","checksum","quad","addTable","tag","missingFile","glyphCache","toFontChar","fallbackToSystemFont","getFontFileType","mimetype","cff","CFFFont","Type1Font","convert","checkAndRepair","isOpenType","seacMap","int16","writeSignedInt16","signedInt16","int32","string16","safeString16","isTrueTypeFile","isTrueTypeCollectionFile","isOpenTypeFile","isType1File","isCFFFile","fileType","fileSubtype","buildToFontChar","adjustMapping","charCodeToGlyphId","hasGlyph","newGlyphZeroId","newMap","privateUseAreaIndex","nextAvailableFontCharCode","privateUseOffetEnd","originalCharCode","glyphId","fontCharCode","getRanges","numGlyphs","codeIndices","createCmapTable","bmpLength","trailingRangesCount","segCount","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","bias","contiguous","startCode","format314","format31012","header31012","validateOS2Table","os2","selection","usWinAscent","createOS2Table","charstrings","override","unitsPerEm","yMax","yMin","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","getUnicodeRangeFor","ascentScaled","typoAscent","typoDescent","winAscent","winDescent","createPostTable","angle","createNameTable","proto","strings","stringsUnicode","strBufUnicode","platforms","encodings","languages","namesRecordCount","nameTable","strOffset","strs","nameRecord","FontRendererFactory","exportDataProperties","nonStdFontMap","getNonStdFontMap","isStandardFont","remeasure","GlyphMapForStandardFonts","getGlyphMapForStandardFonts","SupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForArialBlack","SupplementalGlyphMapForCalibri","getSupplementalGlyphMapForCalibri","isIdentityUnicode","unicodeCharCode","getDingbatsGlyphsUnicode","VALID_TABLES","readTables","hhea","hmtx","maxp","post","readTableEntry","previousPosition","readOpenTypeHeader","ttf","entrySelector","readTrueTypeCollectionHeader","ttc","ttcTag","majorVersion","minorVersion","numFonts","offsetTable","dsigTag","dsigLength","dsigOffset","readTrueTypeCollectionData","potentialHeader","potentialTables","readNameTable","nameEntry","readCmapTable","platformId","encodingId","mappings","hasShortCmap","potentialTable","canBreak","useTable","format","segIndex","offsetsCount","rangeOffset","offsetIndex","offsets","sanitizeMetrics","dupFirstEntry","numOfMetrics","numOfSidebearings","numMissing","sanitizeGlyph","sourceStart","sourceEnd","destStart","hintsValid","glyphProfile","sizeOfInstructions","glyf","contoursCount","flagsCount","endPoint","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xLength","yLength","xyLength","repeat","glyphDataLength","sanitizeHead","locaLength","indexToLocFormat","numGlyphsPlusOne","sanitizeGlyphLocations","loca","isGlyphLocationsLong","maxSizeOfInstructions","itemSize","itemDecode","itemEncode","numGlyphsOut","locaDataSize","locaData","oldGlyfData","oldGlyfDataLength","newGlyfData","locaEntries","missingGlyphs","writeOffset","simpleGlyph","firstEntryLength","readPostScriptTable","propertiesObj","maxpNumGlyphs","glyphNames","valid","glyphNameIndexes","customNames","stringLength","FORMAT_0_HEADER_LENGTH","numRecords","stringsStart","records","NAME_RECORD_LENGTH","platform","language","record","nameIndex","TTOpsStackDeltas","sanitizeTTProgram","ttContext","funcId","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","op","functionsStackDeltas","stackTop","functionsDefined","functionsUsed","newStackLength","stackDelta","NaN","foldTTTable","checkInvalidFunctions","maxFunctionDefs","sanitizeTTPrograms","fpgm","prep","cvt","cvtData","cffFile","ttcData","isTrueType","isComposite","maxZones","glyphsInfo","metricsOverride","isCidToGidMapEmpty","cmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","cmapMappingsLength","standardGlyphName","unicodeOrCharCode","glyphZeroId","newMapping","CFFParser","duplicateFirstGlyph","compiler","CFFCompiler","compile","namePrototype","builder","tableTag","mapping","getGlyphMapping","hasGlyphId","getCharCodes","charCodes","createCharCode","seacs","charset","getCharset","seac","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","baseFontCharCode","accentFontCharCode","tan","cffWidths","charstring","possibleSpaceReplacements","charCodeOf","charToGlyph","widthCode","mapSpecialUnicodeValues","charsCache","charsCacheKey","readCharCode","type1FontGlyphMapping","findBlock","streamBytes","startIndex","streamBytesLength","getHeaderBlock","suggestedLength","headerBytes","headerBytesLength","EEXEC_SIGNATURE","streamStartPos","getEexecBlock","eexecBytes","PFB_HEADER_SIZE","headerBlockLength","eexecBlockLength","pfbHeader","pfbHeaderPresent","headerBlock","headerBlockParser","Type1Parser","extractFontHeader","eexecBlock","eexecBlockParser","extractFontProgram","type2Charstrings","getType2Charstrings","subrs","getType2Subrs","wrap","getSeacs","charstringsLen","type1Charstrings","type1Subrs","type2Subrs","CFF","CFFHeader","CFFTopDict","setByName","CFFStrings","globalSubrIndex","CFFIndex","charsetArray","CFFStandardStrings","CFFCharset","charStringsIndex","charStrings","privateDict","CFFPrivateDict","privateData","subrIndex","subrsIndex","charsets","isCIDFont","CFFFDSelect","_charsets","MAX_SUBR_NESTING","NUM_STANDARD_CFF_STRINGS","CharstringValidationData","stackClearing","stem","resetStack","undefStack","CharstringValidationData12","stackFn","seacAnalysisEnabled","parseHeader","parseIndex","topDictIndex","stringIndex","topDictParsed","parseDict","createDict","parseNameIndex","parseStringIndex","parsePrivateDict","hasName","charStringOffset","charStringIndex","fontBBox","fdArrayIndex","dictRaw","fontDict","fdArray","parseCharsets","fdSelect","parseFDSelect","parseEncoding","charStringsAndSeacs","parseCharStrings","localSubrIndex","hdrSize","offSize","parseOperand","parseFloatOperand","operands","cffIndex","offsetStart","offsetEnd","Type","cffDict","pair","setByKey","callDepth","stackSize","validationCommand","subrNumber","parseCharString","hasVStems","firstStackClearing","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","parentDict","privateOffset","emptyPrivateDictionary","privateDictEnd","dictData","subrsOffset","relativeOffset","removeByName","CFFCharsetPredefinedTypes","ISO_ADOBE","ISOAdobeCharset","EXPERT","ExpertCharset","EXPERT_SUBSET","ExpertSubsetCharset","raw","predefined","readSupplement","supplementsCount","sid","ExpertEncoding","dataStart","glyphsCount","rangesCount","gid","CFFEncoding","glyphZero","objects","CFFDict","keyToNameMap","nameToKeyMap","defaults","types","opcodes","valueLength","layout","createTables","glyphIndex","CFFOffsetTracker","location","offset1","offset2","offset3","offset4","compileHeader","compileNameIndex","compiled","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","setEntryLocation","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeInteger","encodeFloat","EncodeFloatRegExp","nibbles","sanitizedName","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","privateDictTracker","privateDictData","offsetTracker","encodeNumber","isTracking","track","writeByteArray","numGlyphsLessNotDef","charsetIndex","numCharsets","warned","getSID","compileTypedArray","lastFD","currentFD","numRanges","lastOffset","MacExpertEncoding","encodingName","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","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","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","O","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","P","Pacute","Pcircle","Pdotaccent","Pecyrillic","Peharmenian","Pemiddlehookcyrillic","Phi","Phook","Pi","Piwrarmenian","Pmonospace","Psi","Psicyrillic","Psmall","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","T","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","V","Vcircle","Vdotbelow","Vecyrillic","Vewarmenian","Vhook","Vmonospace","Voarmenian","Vsmall","Vtilde","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","copyright","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","nuhiragana","nukatakana","nukatakanahalfwidth","nuktabengali","nuktadeva","nuktagujarati","nuktagurmukhi","numbersign","numbersignmonospace","numbersignsmall","numeralsigngreek","numeralsignlowergreek","numero","nun","nundagesh","nundageshhebrew","nunhebrew","nvsquare","nwsquare","nyabengali","nyadeva","nyagujarati","nyagurmukhi","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","plus","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","space","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","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","ArialNarrow","ArialBlack","Arial","ArialMT","CourierNew","CourierNewPSMT","Helvetica","TimesNewRoman","TimesNewRomanPS","TimesNewRomanPSMT","Calibri","CenturyGothic","ComicSansMS","LucidaConsole","NuptialScript","SegoeUISymbol","Wingdings","Albertus","Aldus","Alexandria","Algerian","Antiqua","Apex","Arno","Aster","Aurora","Baskerville","Bell","Bembo","Benguiat","Bodoni","Bookman","Calisto","Calvert","Capitals","Cambria","Cartier","Caslon","Catull","Centaur","Chaparral","Cheltenham","Clarendon","Clearface","Cochin","Colonna","Constantia","Corona","Ecotype","Egyptienne","Elephant","Excelsior","Fairfield","Folkard","Footlight","FreeSerif","Garamond","Gentium","Georgia","Gloucester","Granjon","Heather","Hercules","Hiroshige","Imprint","Janson","Joanna","Korinna","Lexicon","Literaturnaya","Lucida","Melior","Memphis","Miller","Minion","Modern","Palatino","Perpetua","Plantin","Playbill","Renault","Requiem","Rockwell","Roman","Sabon","Scala","Seagull","Sistina","Souvenir","STIX","Sylfaen","Times","Trajan","Utopia","Versailles","Wanted","Weiss","Windsor","XITS","Dingbats","ZapfDingbats","getSpecialPUASymbols","hexStr","nameLen","toUpperCase","UnicodeRanges","isRTLRangeFor","charsLength","getLong","getUshort","getSubroutineBias","numSubrs","parseCmap","idDelta","idOffset","parseCff","gsubrs","isCFFCIDFont","parseGlyfTable","lookupCmap","codePointAt","compileGlyf","cmds","quadraticCurveTo","xa","ya","numberOfContours","arg1","arg2","scale01","scale10","subglyph","endPtsOfContours","instructionLength","numberOfPoints","points","startPoint","contour","compileCharString","charStringCode","bezierCurveTo","stems","xb","yb","y3","subrCode","stackClean","subrsBias","achar","bchar","glyphNameMap","gsubrsBias","NOOP","CompiledFont","compiledGlyphs","compiledCharCodeToGlyphId","compileGlyph","compileGlyphImpl","TrueTypeCompiled","Type2Compiled","cffInfo","HINTING_ENABLED","Type1CharString","COMMAND_MAP","hstem","vstem","vmoveto","rlineto","hlineto","vlineto","rrcurveto","callsubr","flex","drop","endchar","rmoveto","hmoveto","vhcurveto","hvcurveto","lsb","flexing","encoded","wx","sbx","executeCommand","dy","asb","sby","num2","num1","flexArgs","howManyArgs","command","keepStack","stackLength","EEXEC_ENCRYPT_KEY","CHAR_STRS_ENCRYPT_KEY","isHexDigit","discardNumber","c1","c2","decrypted","decryptAscii","digit1","digit2","isSpecial","encrypted","isBinary","readNumberArray","getToken","readInt","readBoolean","readCharStrings","lenIV","program","blueArray","charString","charStringObject","encodingArg","ShadingType","FUNCTION_BASED","AXIAL","RADIAL","FREE_FORM_MESH","LATTICE_FORM_MESH","COONS_PATCH_MESH","TENSOR_PATCH_MESH","getPattern","ctx","Shadings","RadialAxial","Mesh","Dummy","xstep","ystep","paintType","tilingType","SMALL_NUMBER","coordsArr","shadingType","t0","domainArr","extendStart","extendEnd","extendArr","r1","r2","distance","fnObj","createFromArray","NUMBER_OF_SAMPLES","colorStops","cssColor","makeCssRgb","background","r0","singularValueDecompose2dScale","MeshStreamReader","tmpCompsBuf","csNumComps","tmpCsCompsBuf","colorFn","decodeType4Shading","mesh","coords","operators","ps","verticesLeft","hasData","readFlag","coord","readCoordinate","readComponents","align","figures","decodeType5Shading","verticesPerRow","bitsPerFlag","bitsPerCoordinate","yi","ci","MIN_SPLIT_PATCH_CHUNKS_AMOUNT","MAX_SPLIT_PATCH_CHUNKS_AMOUNT","TRIANGLE_DENSITY","getB","buildB","lut","t_","buildFigureFromPatch","figure","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","bounds","splitYBy","figureCoords","figureColors","cl","cr","c0","c3","bRow","bCol","newColor","decodeType6Shading","tmp4","decodeType7Shading","updateBounds","packData","coordsPacked","xy","colorsPacked","decodeContext","patchMesh","PostScriptCompiler","PostScriptEvaluator","_ps_parser","_localFunctionCache","cachedFunction","parsedFunction","PDFFunction","parseArray","fnRef","localFunction","toNumberArray","CONSTRUCT_SAMPLED","CONSTRUCT_INTERPOLATED","CONSTRUCT_STICHED","CONSTRUCT_POSTSCRIPT","outputSize","bps","sampleMul","strBytes","strIdx","constructSampled","constructInterpolated","constructStiched","constructPostScript","typeFn","IR","constructSampledFromIR","constructInterpolatedFromIR","constructStichedFromIR","constructPostScriptFromIR","fromIR","toMultiArray","domain","inputSize","encode","samples","getSampleArray","interpolate","xmin","xmax","ymin","ymax","cubeVertices","cubeN","Float64Array","cubeVertex","domain_2i","domain_2i_1","size_i","e0","n0","n1","rj","fnRefs","fns","dmin","dmax","rmin","rmax","PostScriptLexer","PostScriptParser","numOutputs","numInputs","MAX_CACHE_SIZE","cache_available","cachedValue","execute","stackIndex","bound","fnDict","PostScriptStack","MAX_STACK_SIZE","initialStack","copy","roll","operator","counter","atan","cos","LN10","sin","AstNode","AstArgument","AstLiteral","AstBinaryOperation","AstMin","AstVariable","AstVariableDefinition","variable","ExpressionBuilderVisitor","parts","buildAddOperation","buildMulOperation","buildSubOperation","buildMinOperation","visit","visitArgument","visitLiteral","visitBinaryOperation","visitMin","visitVariable","visitVariableDefinition","literal","definition","ast1","ast2","tmpVar","instructions","lastRegister","instruction","statementBuilder","expr","nextToken","accept","expect","PostScriptTokenTypes","LBRACE","parseBlock","RBRACE","NUMBER","OPERATOR","parseCondition","conditionLocation","IF","jumpLocation","endOfTrue","IFELSE","PostScriptToken","opCache","opValue","getOperator","baseTypes","arabicTypes","isOdd","isEven","findUnequal","setValues","reverseValues","temp","createBidiText","isLTR","startLevel","strLength","numBidi","charType","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","Courier","SEED","MASK_HIGH","MASK_LOW","seed","blockCounts","tailLength","dataUint32","k2","C1","C2","C1_LOW","C2_LOW","hex1","hex2","decodeAndClamp","addend","coefficient","resizeImageMask","isMask","matte","needsDecode","decodeCoefficients","decodeAddends","isIndexed","maskDict","imageData","smaskData","maskData","computedLength","haveFullData","bufferPos","rowComps","loop1End","loop2End","remainingBits","rgbaBuf","alphaBuf","sw","fillGrayBuffer","opacity","imageOffset","maskOffset","matteRgb","matteR","matteG","matteB","forceRGBA","getImageBytes","newArray","imageLength","maybeUndoPreblend","getComponents","fillOpacity","decodeBuffer","fillRgb","undoPreblend","CallbackKind","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","event","_processStreamMessage","cbSourceName","cbTargetName","_createStreamSink","addEventListener","ah","_postMessage","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","isClosed","pull","pullCapability","cancel","cancelCapability","isCancelled","lastDesiredSize","sinkCapability","success","_deleteStreamController","removeEventListener","_msgHandler","_contentLength","_fullRequestReader","_rangeRequestReaders","PDFWorkerStreamReader","PDFWorkerStreamRangeReader","readers","_isRangeSupported","_isStreamingSupported","_reader","_headersReady","_display_utils","addLinkAttributes","getFilenameFromUrl","LinkTarget","loadScript","PDFDateString","RenderingCancelledException","_api","build","getDocument","LoopbackPort","PDFDataRangeTransport","PDFWorker","_annotation_layer","AnnotationLayer","_api_compatibility","apiCompatibilityParams","_worker_options","GlobalWorkerOptions","_text_layer","renderTextLayer","_svg","SVGGraphics","PDFNodeStream","setPDFNetworkStreamFactory","PDFNetworkStream","PDFFetchStream","isFetchSupported","isValidFetchUrl","deprecated","StatTimer","DOMSVGFactory","DOMCMapReaderFactory","BaseCMapReaderFactory","DOMCanvasFactory","BaseCanvasFactory","DEFAULT_LINK_REL","PageViewport","SVG_NS","canvasAndContext","canvas","ownerDocument","globalThis","createElement","getContext","isCompressed","_fetchData","baseURI","response","ok","statusText","request","XMLHttpRequest","open","responseType","onreadystatechange","readyState","DONE","responseText","svg","createElementNS","setAttribute","viewBox","rotation","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","topLeft","bottomRight","applyInverseTransform","SELF","BLANK","PARENT","TOP","link","target","rel","enabled","urlNullRemoved","onclick","targetStr","anchor","query","lastIndexOf","started","times","outBuf","longest","duration","Response","script","onload","onerror","documentElement","appendChild","pdfDateStringRegex","matches","year","month","day","hour","universalTimeRelation","offsetHour","offsetMinute","UTC","PDFPageProxy","PDFDocumentProxy","_font_loader","_node_utils","_annotation_storage","_canvas","_metadata","_optional_content_config","_transport_stream","_webgl","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DefaultCanvasFactory","NodeCanvasFactory","DefaultCMapReaderFactory","NodeCMapReaderFactory","createPDFNetworkStream","pdfNetworkStreamFactory","PDFDocumentLoadingTask","rangeTransport","worker","pdfBytes","CMapReaderFactory","stopAtErrors","pdfBug","disableRange","disableStream","workerParams","workerPort","fromPort","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","httpHeaders","withCredentials","workerId","messageHandler","transport","WorkerTransport","_transport","pdfDataRangeTransport","nextDocumentId","onPassword","onUnsupportedFeature","transportDestroyed","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","listener","_pdfInfo","AnnotationStorage","pageNumber","getPageIndex","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getOutline","getOptionalContentConfig","getPermissions","getMetadata","downloadInfoCapability","getStats","startCleanup","loadingTask","loadingParams","saveDocument","_pageIndex","_pageInfo","_ownerDocument","_stats","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","_intentStates","annotationsPromise","annotationsIntent","getAnnotations","canvasContext","viewport","enableWebGL","imageLayer","canvasFactory","optionalContentConfigPromise","renderingIntent","intentState","streamReaderCancelTimeout","clearTimeout","canvasFactoryInstance","webGLContext","WebGLContext","enable","displayReadyCapability","_pumpOperatorList","complete","renderTasks","internalRenderTask","_tryCleanup","_abortOperatorList","timeEnd","InternalRenderTask","useRequestAnimationFrame","renderTask","optionalContentConfig","initializeGraphics","operatorListChanged","opListReadCapability","opListTask","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","highWaterMark","streamTextContent","pageCache","force","completed","resetStats","operatorListChunk","streamReader","_renderPageChunk","setTimeout","curIntentState","defer","_listeners","_defer","_deferred","cloneValue","cloned","transferable","byteOffset","desc","getOwnPropertyDescriptor","getPrototypeOf","WeakMap","PDFWorkerClosure","pdfWorkerPorts","isWorkerDisabled","fallbackWorkerSrc","nextFakeWorkerId","fakeWorkerCapability","pdfjsFilePath","currentScript","getWorkerSrc","workerSrc","getMainThreadWorkerMessageHandler","mainWorkerMessageHandler","setupFakeWorkerGlobal","loader","eval","createCDNWrapper","wrapper","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","Worker","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","testObj","workerHandler","fontLoader","FontLoader","_onUnsupportedFeature","_params","cMapUrl","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","pagePromises","setupMessageHandler","_destroy","evt","readyReason","headersCapability","fullReader","_numPages","exception","_startRenderPage","exportedData","exportedError","fontRegistry","FontInspector","fontAdded","FontFaceObject","finally","pageProxy","MAX_IMAGE_SIZE_TO_STORE","fetched","resetModified","results","OptionalContentConfig","Metadata","contentDispositionFilename","cleanupSuccessful","_objs","resolved","_ensureObj","RenderTask","_internalRenderTask","onContinue","canvasInRendering","WeakSet","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","StepperManager","stepper","init","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","executeOperatorList","BaseFontLoader","nativeFontFaces","styleElement","nativeFontFace","fonts","rule","getElementsByTagName","styleSheet","sheet","insertRule","cssRules","attached","isFontLoadingAPISupported","createNativeFontFace","addNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","supported","rules","fontsToLoad","loadingContext","requests","nextRequestId","loadTestFontId","navigator","userAgent","completeRequest","otherRequest","getLoadTestFont","atob","spliceString","insert","chunk1","chunk2","called","isFontReady","fillText","getImageData","_loadTestFont","COMMENT_OFFSET","CFF_CHECKSUM_OFFSET","XXXX_VALUE","btoa","div","visibility","span","body","removeChild","translatedData","FontFace","registerFont","Canvas","createCanvas","readFile","_storage","_modified","onSetModified","onResetModified","_setModified","fromEntries","compatibilityParams","_pattern_helper","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","addContextCurrentTransform","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","translate","_originalTransform","_originalSetTransform","setTransform","_transformMatrix","_transformStack","ad_bc","bc_ad","cosValue","sinValue","CachedCanvases","getCanvas","trackTransform","canvasEntry","compileType3Glyph","POINT_TO_PROCESS_LIMIT","width1","POINT_TYPES","lineSize","data0","elem","steps","outlines","pp","drawOutline","beginPath","CanvasExtraState","alphaIsShape","fontSizeScale","textMatrixScale","lineX","lineY","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","resumeSMaskCtx","setCurrentPoint","EXECUTION_TIME","EXECUTION_STEPS","canvasCtx","pendingClip","pendingEOFill","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","contentVisible","markedContentStack","cachedCanvases","_cachedGetSinglePixelWidth","putBinaryImageData","ImageData","putImageData","thisChunkHeight","elemsInThisChunk","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","srcLength","dest32","dest32DataLength","fullSrcDiff","white","srcDiff","kEnd","kEndUnrolled","srcByte","hasTransferMaps","putBinaryImageMask","copyCtxState","sourceCtx","destCtx","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","g0","alpha_","composeSMaskAlpha","layerData","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","composeFn","hasBackdrop","PIXELS_TO_PROCESS","chunkHeight","composeSMask","isEnabled","composed","layer","drawImage","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","fillRect","transparentCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","fnId","chunkOperations","breakIt","depObjId","objsPool","endSMaskGroup","endLayout","dashPhase","flatness","states","suspendSMaskGroup","beginSMaskGroup","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","startTransformInverse","mozCurrentTransformInverse","deltaTransform","clearRect","resumeSMaskGroup","ops","getSinglePixelWidth","xw","yh","consumePath","isPatternFill","needRestore","paths","pendingTextPaths","path","addToPath","spacing","fontRefName","fontObj","fontDirection","typeface","browserFontSize","rise","patternTransform","fillStrokeMode","getPathGenerator","strokeText","showType3Text","glyphsLength","spacingDir","widthAdvanceScale","simpleFillText","scaledX","scaledY","scaledAccentX","scaledAccentY","vx","vy","restoreNeeded","measuredWidth","measureText","isFontSubpixelAAEnabled","characterScaleX","paintChar","spacingLength","isTextInvisible","transformed","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","getShadingPatternFromIR","inv","bl","br","ul","ur","canvasBounds","imageSmoothingEnabled","mozImageSmoothingEnabled","maskCanvas","skewX","skewY","imgToPaint","tmpCanvas","widthScale","heightScale","HTMLElement","tmpCtx","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getCanvasPosition","appendImage","visible","isVisible","isContentVisible","inverse","ShadingIRs","applyBoundingBox","Path2D","grad","createLinearGradient","createRadialGradient","addColorStop","createMeshCanvas","drawTriangle","x3","car","cag","cab","cbr","cbg","cbb","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","x1_","x2_","drawFigure","cols","combinesScale","backgroundColor","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","paddedWidth","paddedHeight","drawFigures","shadingIR","owner","matrixScale","temporaryPatternCanvas","createPattern","PaintType","COLORED","UNCOLORED","createPatternCanvas","curMatrixScale","combinedScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","clipBbox","realOutputSize","maxSize","bboxWidth","bboxHeight","_xml_parser","_repair","SimpleXMLParser","xmlDocument","parseFromString","_metadataMap","rdf","nodeName","firstChild","nextSibling","hasChildNodes","childNodes","trim","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","isWhitespaceString","XMLParserBase","entity","onResolveEntity","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","_resolveEntities","parsed","attrStart","ch2","onError","onEndElement","_parseProcessingInstruction","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","_parseContent","onBeginElement","onText","SimpleDOMNode","nodeValue","parentNode","child","_currentFragment","_stack","_errorCode","parseXml","lastElement","OptionalContentGroup","_order","_groups","from","_queuedChunks","_progressiveDone","_pdfDataRangeTransport","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","_onProgress","addProgressiveReadListener","addProgressiveDoneListener","_onProgressiveDone","transportReady","_enqueue","some","_begin","_loaded","firstReader","queuedChunks","PDFDataTransportStreamReader","_progressiveDataLength","PDFDataTransportStreamRangeReader","requestDataRange","_done","_requests","requestCapability","_end","_queuedChunk","requestsCapability","_removeRangeReader","_enabled","WebGLUtils","tryInitGL","loadShader","gl","shaderType","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","errorMsg","getShaderInfoLog","createVertexShader","VERTEX_SHADER","createFragmentShader","FRAGMENT_SHADER","createProgram","shaders","attachShader","linkProgram","linked","getProgramParameter","LINK_STATUS","getProgramInfoLog","createTexture","textureId","activeTexture","texture","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","texImage2D","RGBA","UNSIGNED_BYTE","currentGL","currentCanvas","generateGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","initSmaskGL","vertexShader","fragmentShader","useProgram","resolutionLocation","getUniformLocation","positionLocation","getAttribLocation","backdropLocation","subtypeLocation","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","uniform1i","drawingBufferWidth","drawingBufferHeight","uniform2f","uniform4f","TEXTURE0","maskTexture","TEXTURE1","clearColor","BLEND","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","COLOR_BUFFER_BIT","drawArrays","TRIANGLES","deleteTexture","deleteBuffer","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","scaleLocation","offsetLocation","colorLocation","coordsMap","colorsMap","pIndex","cIndex","coordsBuffer","colorsBuffer","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","TextWidgetAnnotationElement","RadioButtonWidgetAnnotationElement","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","linkService","downloadManager","imageResourcesPath","svgFactory","container","_createContainer","transformOrigin","borderWidth","horizontalRadius","verticalRadius","borderRadius","borderBottomStyle","borderColor","trigger","popupElement","PopupElement","hideWrapper","popup","render","className","externalLinkTarget","externalLinkRel","externalLinkEnabled","_bindNamedAction","_bindLink","destination","getDestinationHash","navigateTo","getAnchorUrl","executeNamedAction","dataset","l10nId","l10nArgs","_createPopup","TEXT_ALIGNMENT","storage","getOrCreateValue","setValue","disabled","maxLength","fieldWidth","classList","letterSpacing","verticalAlign","display","_setTextStyle","textAlign","direction","fontWeight","fontStyle","radio","getElementsByName","getAttribute","selectElement","multiple","optionElement","selectedIndex","IGNORE_TYPES","selector","parentElement","querySelector","parentLeft","parentWidth","pinned","BACKGROUND_ENLIGHT","hideElement","dateObject","toDateObject","toLocaleDateString","toLocaleTimeString","_formatContents","_toggle","_show","_hide","createTextNode","pin","hasAttribute","removeAttribute","zIndex","unpin","append","square","containerClassName","svgElementName","coordinate","polyline","inkList","eventBus","dispatch","_download","downloadData","sortedAnnotations","popupAnnotations","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","isAllWhitespace","appendText","geom","textDiv","textDivProperties","canvasWidth","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","_textDivProperties","_viewport","atan2","PI","fontHeight","fontAscent","_fontInspectorEnabled","shouldScaleText","absScaleX","absScaleY","_textContentStream","_layoutText","_enhanceTextSelection","angleCos","angleSin","divWidth","divHeight","_bounds","_canceled","textDivs","textDivsLength","_renderingDone","findPositiveMin","expand","expanded","expandBounds","divProperties","boxScale","boxes","x1New","x2New","expandBoundsLTR","fakeBoundary","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","used","TextLayerRenderTask","textContentStream","textContentItemsStr","enhanceTextSelection","_textContent","_container","_textContentItemsStr","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","renderParameters","_render","timeout","styleCache","mozOpaque","textItems","textStyles","_processItems","expandTextDivs","expandDivs","transformBuf","paddingBuf","divProps","SVG_DEFAULTS","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc32","crc","writePngChunk","adler32","deflateSync","literals","deflateSyncUncompressed","Buffer","maxBlockLength","deflateBlocks","idat","adler","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","SVGExtraState","activeClipUrl","clipGroup","maskId","opListToTree","opTree","opListElement","pf","pm","acos","clipCount","maskCount","shadingCount","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","svgElement","loadDependencies","convertOpList","operatorIdMapping","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","defs","addFontStyle","_makeColorN_Pattern","inverseTransform","_makeShadingPattern","_makeTilingPattern","tilingId","xscale","yscale","txstep","tystep","tiling","shadingId","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","colorStop","getAttributeNS","clipId","clipPath","clipElement","cloneNode","setStrokeAlpha","setFillAlpha","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","_network_utils","http","https","fileUriRegex","parseUrl","sourceUrl","parsedUrl","host","isHttp","isFsUrl","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_url","_storedError","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","BaseRangeReader","createRequestOptions","headers","auth","hostname","handleResponse","statusCode","_setReadableStream","getResponseHeader","allowRangeRequests","validateRangeRequestCapabilities","extractFilenameFromHeader","_request","_httpHeaders","Range","lstat","stat","createReadStream","createResponseStatusError","validateResponseStatus","_content_disposition","returnValues","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","textdecode","TextDecoder","fatal","contentDispositionStr","iter","quot","part","quotindex","extvalue","encodingend","langvalue","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","getArrayBuffer","xhr","NetworkManager","getXhr","currXhrId","listeners","xhrId","pendingRequest","setRequestHeader","expectedStatus","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","ok_response_on_range_request","rangeHeader","_source","_manager","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","_onRangeRequestReaderClosed","_onHeadersReceived","_onDone","_onError","_fullRequestId","requestFull","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","getRequestXhr","abortRequest","lengthComputable","isPendingRequest","_requestId","_close","createFetchOptions","abortController","signal","credentials","redirect","createHeaders","Headers","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers"],"mappings":"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OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,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,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGG,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGD,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGD,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,IAC/wEQ,EAAc,CAAC,EAAE,GAAI,GAAI,CAAC,GAAIZ,GAAW,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,OAC9Wa,EAAc,CAAC,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IACx3IC,EAAc,CAAC,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,GAAId,GAAW,CAAC,GAAIA,GAAW,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAC53Ce,EAAc,CAAC,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,C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C5B,MAAMiT,EAAU,CAAC,CACfC,GAAI,MACJC,KAAM,EACNC,KAAM,EACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,EACNC,KAAM,EACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,EACNC,KAAM,EACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,EACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,EACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,IACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,EACNC,KAAM,EACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,EACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,EACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,IACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,IACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,IACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,IACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,IACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,GACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,GACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,GACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,EACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,EACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,EACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,IAGd,MAAMrT,EACJ,YAAY97C,EAAMiK,EAAOse,GACvBhsB,KAAKyD,KAAOA,EACZzD,KAAK6yD,GAAKn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GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,KACphD1D,KAAKi5E,OAAS,IAAIv1E,WAAW,CAAC,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,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AAM,IACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,MACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,MACVA,EAAE,M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AAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CAC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A,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,OACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,UACdA,EAAE,KAAY,SACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACd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,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC14CC,EAAc,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,K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","file":"js/chunk-ccd6db2a.f0eb2865.js","sourcesContent":["/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(typeof window !== \"undefined\"\n ? window\n : {}\n).pdfjsWorker = require(\"./pdf.worker.js\");\n","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\n(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\"] = root.pdfjsWorker = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"WorkerMessageHandler\", {\n enumerable: true,\n get: function () {\n return _worker.WorkerMessageHandler;\n }\n});\n\nvar _worker = __w_pdfjs_require__(1);\n\nconst pdfjsVersion = '2.6.347';\nconst pdfjsBuild = '3be9c65f';\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WorkerMessageHandler = exports.WorkerTask = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _pdf_manager = __w_pdfjs_require__(6);\n\nvar _writer = __w_pdfjs_require__(27);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(46);\n\nvar _worker_stream = __w_pdfjs_require__(47);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nclass WorkerTask {\n constructor(name) {\n this.name = name;\n this.terminated = false;\n this._capability = (0, _util.createPromiseCapability)();\n }\n\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\nexports.WorkerTask = WorkerTask;\n\nclass WorkerMessageHandler {\n static setup(handler, port) {\n var testMessageProcessed = false;\n handler.on(\"test\", function wphSetupTest(data) {\n if (testMessageProcessed) {\n return;\n }\n\n testMessageProcessed = true;\n\n if (!(data instanceof Uint8Array)) {\n handler.send(\"test\", null);\n return;\n }\n\n const supportTransfers = data[0] === 255;\n handler.postMessageTransfers = supportTransfers;\n handler.send(\"test\", {\n supportTransfers\n });\n });\n handler.on(\"configure\", function wphConfigure(data) {\n (0, _util.setVerbosityLevel)(data.verbosity);\n });\n handler.on(\"GetDocRequest\", function wphSetupDoc(data) {\n return WorkerMessageHandler.createDocumentHandler(data, port);\n });\n }\n\n static createDocumentHandler(docParams, port) {\n var pdfManager;\n var terminated = false;\n var cancelXHRs = null;\n var WorkerTasks = [];\n const verbosity = (0, _util.getVerbosityLevel)();\n const apiVersion = docParams.apiVersion;\n const workerVersion = '2.6.347';\n\n if (apiVersion !== workerVersion) {\n throw new Error(`The API version \"${apiVersion}\" does not match ` + `the Worker version \"${workerVersion}\".`);\n }\n\n const enumerableProperties = [];\n\n for (const property in []) {\n enumerableProperties.push(property);\n }\n\n if (enumerableProperties.length) {\n throw new Error(\"The `Array.prototype` contains unexpected enumerable properties: \" + enumerableProperties.join(\", \") + \"; thus breaking e.g. `for...in` iteration of `Array`s.\");\n }\n\n if (typeof ReadableStream === \"undefined\" || typeof Promise.allSettled === \"undefined\") {\n throw new Error(\"The browser/environment lacks native support for critical \" + \"functionality used by the PDF.js library (e.g. \" + \"`ReadableStream` and/or `Promise.allSettled`); \" + \"please use an ES5-compatible build instead.\");\n }\n\n var docId = docParams.docId;\n var docBaseUrl = docParams.docBaseUrl;\n var workerHandlerName = docParams.docId + \"_worker\";\n var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);\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 await pdfManager.ensureDoc(\"checkFirstPage\");\n }\n\n const [numPages, fingerprint] = await Promise.all([pdfManager.ensureDoc(\"numPages\"), pdfManager.ensureDoc(\"fingerprint\")]);\n return {\n numPages,\n fingerprint\n };\n }\n\n function getPdfManager(data, evaluatorOptions) {\n var pdfManagerCapability = (0, _util.createPromiseCapability)();\n let newPdfManager;\n var source = data.source;\n\n if (source.data) {\n try {\n newPdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n\n return pdfManagerCapability.promise;\n }\n\n var pdfStream,\n cachedChunks = [];\n\n try {\n pdfStream = new _worker_stream.PDFWorkerStream(handler);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n return pdfManagerCapability.promise;\n }\n\n var fullRequest = pdfStream.getFullReader();\n fullRequest.headersReady.then(function () {\n if (!fullRequest.isRangeSupported) {\n return;\n }\n\n var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;\n newPdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {\n msgHandler: handler,\n password: source.password,\n length: fullRequest.contentLength,\n disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize\n }, evaluatorOptions, docBaseUrl);\n\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 }).catch(function (reason) {\n pdfManagerCapability.reject(reason);\n cancelXHRs = null;\n });\n var loaded = 0;\n\n var flushChunks = function () {\n var pdfFile = (0, _util.arraysToBytes)(cachedChunks);\n\n if (source.length && pdfFile.length !== source.length) {\n (0, _util.warn)(\"reported HTTP length is different from actual\");\n }\n\n try {\n newPdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n\n cachedChunks = [];\n };\n\n var readPromise = new Promise(function (resolve, reject) {\n var readChunk = function ({\n value,\n done\n }) {\n try {\n ensureNotTerminated();\n\n if (done) {\n if (!newPdfManager) {\n flushChunks();\n }\n\n cancelXHRs = null;\n return;\n }\n\n loaded += (0, _util.arrayByteLength)(value);\n\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\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\", {\n pdfInfo: doc\n });\n }\n\n function onFailure(ex) {\n ensureNotTerminated();\n\n if (ex instanceof _util.PasswordException) {\n var task = new WorkerTask(`PasswordException: response ${ex.code}`);\n startWorkerTask(task);\n handler.sendWithPromise(\"PasswordRequest\", ex).then(function ({\n password\n }) {\n finishWorkerTask(task);\n pdfManager.updatePassword(password);\n pdfManagerReady();\n }).catch(function () {\n finishWorkerTask(task);\n handler.send(\"DocException\", ex);\n });\n } else if (ex instanceof _util.InvalidPDFException || ex instanceof _util.MissingPDFException || ex instanceof _util.UnexpectedResponseException || ex instanceof _util.UnknownErrorException) {\n handler.send(\"DocException\", ex);\n } else {\n handler.send(\"DocException\", new _util.UnknownErrorException(ex.message, ex.toString()));\n }\n }\n\n function pdfManagerReady() {\n ensureNotTerminated();\n loadDocument(false).then(onSuccess, function (reason) {\n ensureNotTerminated();\n\n if (!(reason instanceof _core_utils.XRefParseException)) {\n onFailure(reason);\n return;\n }\n\n pdfManager.requestLoadedStream();\n pdfManager.onLoadedStream().then(function () {\n ensureNotTerminated();\n loadDocument(true).then(onSuccess, onFailure);\n });\n });\n }\n\n ensureNotTerminated();\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 getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {\n if (terminated) {\n newPdfManager.terminate(new _util.AbortException(\"Worker was terminated.\"));\n throw new Error(\"Worker was terminated\");\n }\n\n pdfManager = newPdfManager;\n pdfManager.onLoadedStream().then(function (stream) {\n handler.send(\"DataLoaded\", {\n 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([pdfManager.ensure(page, \"rotate\"), pdfManager.ensure(page, \"ref\"), pdfManager.ensure(page, \"userUnit\"), pdfManager.ensure(page, \"view\")]).then(function ([rotate, ref, userUnit, view]) {\n return {\n rotate,\n ref,\n userUnit,\n view\n };\n });\n });\n });\n handler.on(\"GetPageIndex\", function wphSetupGetPageIndex({\n ref\n }) {\n const pageRef = _primitives.Ref.get(ref.num, ref.gen);\n\n return pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\n });\n handler.on(\"GetDestinations\", function wphSetupGetDestinations(data) {\n return pdfManager.ensureCatalog(\"destinations\");\n });\n handler.on(\"GetDestination\", function wphSetupGetDestination(data) {\n return pdfManager.ensureCatalog(\"getDestination\", [data.id]);\n });\n handler.on(\"GetPageLabels\", function wphSetupGetPageLabels(data) {\n return pdfManager.ensureCatalog(\"pageLabels\");\n });\n handler.on(\"GetPageLayout\", function wphSetupGetPageLayout(data) {\n return pdfManager.ensureCatalog(\"pageLayout\");\n });\n handler.on(\"GetPageMode\", function wphSetupGetPageMode(data) {\n return pdfManager.ensureCatalog(\"pageMode\");\n });\n handler.on(\"GetViewerPreferences\", function (data) {\n return pdfManager.ensureCatalog(\"viewerPreferences\");\n });\n handler.on(\"GetOpenAction\", function (data) {\n return pdfManager.ensureCatalog(\"openAction\");\n });\n handler.on(\"GetAttachments\", function wphSetupGetAttachments(data) {\n return pdfManager.ensureCatalog(\"attachments\");\n });\n handler.on(\"GetJavaScript\", function wphSetupGetJavaScript(data) {\n return pdfManager.ensureCatalog(\"javaScript\");\n });\n handler.on(\"GetOutline\", function wphSetupGetOutline(data) {\n return pdfManager.ensureCatalog(\"documentOutline\");\n });\n handler.on(\"GetOptionalContentConfig\", function (data) {\n return pdfManager.ensureCatalog(\"optionalContentConfig\");\n });\n handler.on(\"GetPermissions\", function (data) {\n return pdfManager.ensureCatalog(\"permissions\");\n });\n handler.on(\"GetMetadata\", function wphSetupGetMetadata(data) {\n return Promise.all([pdfManager.ensureDoc(\"documentInfo\"), pdfManager.ensureCatalog(\"metadata\")]);\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 handler.on(\"GetStats\", function wphSetupGetStats(data) {\n return pdfManager.ensureXRef(\"stats\");\n });\n handler.on(\"GetAnnotations\", function ({\n pageIndex,\n intent\n }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return page.getAnnotationsData(intent);\n });\n });\n handler.on(\"SaveDocument\", function ({\n numPages,\n annotationStorage,\n filename\n }) {\n pdfManager.requestLoadedStream();\n const promises = [pdfManager.onLoadedStream()];\n const document = pdfManager.pdfDocument;\n\n for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n promises.push(pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(`Save: page ${pageIndex}`);\n return page.save(handler, task, annotationStorage);\n }));\n }\n\n return Promise.all(promises).then(([stream, ...refs]) => {\n let newRefs = [];\n\n for (const ref of refs) {\n newRefs = ref.filter(x => x !== null).reduce((a, b) => a.concat(b), newRefs);\n }\n\n if (newRefs.length === 0) {\n return stream.bytes;\n }\n\n const xref = document.xref;\n let newXrefInfo = Object.create(null);\n\n if (xref.trailer) {\n const _info = Object.create(null);\n\n const xrefInfo = xref.trailer.get(\"Info\") || null;\n\n if (xrefInfo) {\n xrefInfo.forEach((key, value) => {\n if ((0, _util.isString)(key) && (0, _util.isString)(value)) {\n _info[key] = (0, _util.stringToPDFString)(value);\n }\n });\n }\n\n newXrefInfo = {\n rootRef: xref.trailer.getRaw(\"Root\") || null,\n encrypt: xref.trailer.getRaw(\"Encrypt\") || null,\n newRef: xref.getNewRef(),\n infoRef: xref.trailer.getRaw(\"Info\") || null,\n info: _info,\n fileIds: xref.trailer.getRaw(\"ID\") || null,\n startXRef: document.startXRef,\n filename\n };\n }\n\n xref.resetNewRef();\n return (0, _writer.incrementalUpdate)(stream.bytes, newXrefInfo, newRefs);\n });\n });\n handler.on(\"GetOperatorList\", 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 const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;\n page.getOperatorList({\n handler,\n sink,\n task,\n intent: data.intent,\n renderInteractiveForms: data.renderInteractiveForms,\n annotationStorage: data.annotationStorage\n }).then(function (operatorListInfo) {\n finishWorkerTask(task);\n\n if (start) {\n (0, _util.info)(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`);\n }\n\n sink.close();\n }, function (reason) {\n finishWorkerTask(task);\n\n if (task.terminated) {\n return;\n }\n\n handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList\n });\n sink.error(reason);\n });\n });\n }, this);\n handler.on(\"GetTextContent\", function wphExtractText(data, sink) {\n var pageIndex = data.pageIndex;\n\n sink.onPull = function (desiredSize) {};\n\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 const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;\n page.extractTextContent({\n handler,\n task,\n sink,\n normalizeWhitespace: data.normalizeWhitespace,\n combineTextItems: data.combineTextItems\n }).then(function () {\n finishWorkerTask(task);\n\n if (start) {\n (0, _util.info)(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`);\n }\n\n sink.close();\n }, function (reason) {\n finishWorkerTask(task);\n\n if (task.terminated) {\n return;\n }\n\n sink.error(reason);\n });\n });\n });\n handler.on(\"FontFallback\", function (data) {\n return pdfManager.fontFallback(data.id, handler);\n });\n handler.on(\"Cleanup\", function wphCleanup(data) {\n return pdfManager.cleanup(true);\n });\n handler.on(\"Terminate\", function wphTerminate(data) {\n terminated = true;\n const waitOn = [];\n\n if (pdfManager) {\n pdfManager.terminate(new _util.AbortException(\"Worker was terminated.\"));\n const cleanupPromise = pdfManager.cleanup();\n waitOn.push(cleanupPromise);\n pdfManager = null;\n } else {\n (0, _primitives.clearPrimitiveCaches)();\n }\n\n if (cancelXHRs) {\n cancelXHRs(new _util.AbortException(\"Worker was terminated.\"));\n }\n\n WorkerTasks.forEach(function (task) {\n waitOn.push(task.finished);\n task.terminate();\n });\n return Promise.all(waitOn).then(function () {\n handler.destroy();\n handler = null;\n });\n });\n handler.on(\"Ready\", function wphReady(data) {\n setupDoc(docParams);\n docParams = null;\n });\n return workerHandlerName;\n }\n\n static initializeFromPort(port) {\n var handler = new _message_handler.MessageHandler(\"worker\", \"main\", port);\n WorkerMessageHandler.setup(handler, port);\n handler.send(\"ready\", null);\n }\n\n}\n\nexports.WorkerMessageHandler = WorkerMessageHandler;\n\nfunction isMessagePort(maybePort) {\n return typeof maybePort.postMessage === \"function\" && \"onmessage\" in maybePort;\n}\n\nif (typeof window === \"undefined\" && !_is_node.isNodeJS && typeof self !== \"undefined\" && isMessagePort(self)) {\n WorkerMessageHandler.initializeFromPort(self);\n}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isBool = isBool;\nexports.isNum = isNum;\nexports.isString = isString;\nexports.isSameOrigin = isSameOrigin;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.removeNullCharacters = removeNullCharacters;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nexports.unreachable = unreachable;\nexports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = exports.BaseException = void 0;\n\n__w_pdfjs_require__(3);\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\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};\nexports.PermissionFlag = PermissionFlag;\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};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\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};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\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};\nexports.AnnotationFlag = AnnotationFlag;\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};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\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\"\n};\nexports.StreamType = StreamType;\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};\nexports.FontType = FontType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\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};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\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 errorMarkedContent: \"errorMarkedContent\"\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\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\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\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\nfunction isSameOrigin(baseUrl, otherUrl) {\n let base;\n\n try {\n base = new URL(baseUrl);\n\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n\n try {\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\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 function BaseException(message) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n\n this.message = message;\n this.name = this.constructor.name;\n }\n\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg);\n this.code = code;\n }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg);\n this.details = details;\n }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg);\n this.status = status;\n }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {}\n\nexports.AbortException = AbortException;\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\n return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && typeof bytes === \"object\" && bytes.length !== undefined, \"Invalid argument for bytesToString\");\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n const strBuf = [];\n\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\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\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n\n return bytes;\n}\n\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n assert(arr.byteLength !== undefined, \"arrayByteLength - invalid argument.\");\n return arr.byteLength;\n}\n\nfunction arraysToBytes(arr) {\n const length = arr.length;\n\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n let resultLength = 0;\n\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n\n let pos = 0;\n const data = new Uint8Array(resultLength);\n\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nconst IsLittleEndianCached = {\n get value() {\n return shadow(this, \"value\", isLittleEndian());\n }\n\n};\nexports.IsLittleEndianCached = IsLittleEndianCached;\n\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch (e) {\n return false;\n }\n}\n\nconst IsEvalSupportedCached = {\n get value() {\n return shadow(this, \"value\", isEvalSupported());\n }\n\n};\nexports.IsEvalSupportedCached = IsEvalSupportedCached;\nconst rgbBuf = [\"rgb(\", 0, \",\", 0, \",\", 0, \")\"];\n\nclass Util {\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 static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n\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 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 [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n\n static apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n }\n\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\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 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 return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n static normalizeRect(rect) {\n const r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n }\n\n static intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\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 rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return null;\n }\n\n if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return null;\n }\n\n return result;\n }\n\n}\n\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];\n\nfunction stringToPDFString(str) {\n const length = str.length,\n strBuf = [];\n\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i + 1) << 8 | str.charCodeAt(i)));\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\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n return str.replace(/([\\(\\)\\\\])/g, \"\\\\$1\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isBool(v) {\n return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n return typeof v === \"number\";\n}\n\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n return arr1.every(function (element, index) {\n return element === arr2[index];\n });\n}\n\nfunction getModificationDate(date = new Date(Date.now())) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), (date.getUTCDate() + 1).toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\n\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n }\n\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nconst createObjectURL = function createObjectURLClosure() {\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n const blob = new Blob([data], {\n type: contentType\n });\n return URL.createObjectURL(blob);\n }\n\n let buffer = `data:${contentType};base64,`;\n\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\n return buffer;\n };\n}();\n\nexports.createObjectURL = createObjectURL;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _is_node = __w_pdfjs_require__(4);\n\n;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clearPrimitiveCaches = clearPrimitiveCaches;\nexports.isEOF = isEOF;\nexports.isCmd = isCmd;\nexports.isDict = isDict;\nexports.isName = isName;\nexports.isRef = isRef;\nexports.isRefsEqual = isRefsEqual;\nexports.isStream = isStream;\nexports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar EOF = {};\nexports.EOF = EOF;\n\nvar Name = function NameClosure() {\n let nameCache = Object.create(null);\n\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 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\nexports.Name = Name;\n\nvar Cmd = function CmdClosure() {\n let cmdCache = Object.create(null);\n\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 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\nexports.Cmd = Cmd;\n\nvar Dict = function DictClosure() {\n var nonSerializable = function nonSerializableClosure() {\n return nonSerializable;\n };\n\n function Dict(xref) {\n this._map = Object.create(null);\n this.xref = xref;\n this.objId = null;\n this.suppressEncryption = false;\n this.__nonSerializable__ = nonSerializable;\n }\n\n Dict.prototype = {\n assignXref: function Dict_assignXref(newXref) {\n this.xref = newXref;\n },\n\n get size() {\n return Object.keys(this._map).length;\n },\n\n get(key1, key2, key3) {\n let value = this._map[key1];\n\n if (value === undefined && key2 !== undefined) {\n value = this._map[key2];\n\n if (value === undefined && key3 !== undefined) {\n value = this._map[key3];\n }\n }\n\n if (value instanceof Ref && this.xref) {\n return this.xref.fetch(value, this.suppressEncryption);\n }\n\n return value;\n },\n\n async getAsync(key1, key2, key3) {\n let value = this._map[key1];\n\n if (value === undefined && key2 !== undefined) {\n value = this._map[key2];\n\n if (value === undefined && key3 !== undefined) {\n value = this._map[key3];\n }\n }\n\n if (value instanceof Ref && this.xref) {\n return this.xref.fetchAsync(value, this.suppressEncryption);\n }\n\n return value;\n },\n\n getArray(key1, key2, key3) {\n let value = this.get(key1, key2, key3);\n\n if (!Array.isArray(value) || !this.xref) {\n return value;\n }\n\n value = value.slice();\n\n for (let i = 0, ii = value.length; i < ii; i++) {\n if (!(value[i] instanceof Ref)) {\n continue;\n }\n\n value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n }\n\n return value;\n },\n\n getRaw: function Dict_getRaw(key) {\n return this._map[key];\n },\n getKeys: function Dict_getKeys() {\n return Object.keys(this._map);\n },\n getRawValues: function Dict_getRawValues() {\n return Object.values(this._map);\n },\n set: function Dict_set(key, value) {\n this._map[key] = value;\n },\n has: function Dict_has(key) {\n return this._map[key] !== undefined;\n },\n forEach: function Dict_forEach(callback) {\n for (var key in this._map) {\n callback(key, this.get(key));\n }\n }\n };\n Dict.empty = new Dict(null);\n\n Dict.merge = function ({\n xref,\n dictArray,\n mergeSubDicts = false\n }) {\n const mergedDict = new Dict(xref);\n\n if (!mergeSubDicts) {\n for (const dict of dictArray) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n\n for (const [key, value] of Object.entries(dict._map)) {\n if (mergedDict._map[key] === undefined) {\n mergedDict._map[key] = value;\n }\n }\n }\n\n return mergedDict.size > 0 ? mergedDict : Dict.empty;\n }\n\n const properties = new Map();\n\n for (const dict of dictArray) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n\n for (const [key, value] of Object.entries(dict._map)) {\n let property = properties.get(key);\n\n if (property === undefined) {\n property = [];\n properties.set(key, property);\n }\n\n property.push(value);\n }\n }\n\n for (const [name, values] of properties) {\n if (values.length === 1 || !(values[0] instanceof Dict)) {\n mergedDict._map[name] = values[0];\n continue;\n }\n\n const subDict = new Dict(xref);\n\n for (const dict of values) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n\n for (const [key, value] of Object.entries(dict._map)) {\n if (subDict._map[key] === undefined) {\n subDict._map[key] = value;\n }\n }\n }\n\n if (subDict.size > 0) {\n mergedDict._map[name] = subDict;\n }\n }\n\n properties.clear();\n return mergedDict.size > 0 ? mergedDict : Dict.empty;\n };\n\n return Dict;\n}();\n\nexports.Dict = Dict;\n\nvar Ref = function RefClosure() {\n let refCache = Object.create(null);\n\n function Ref(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n\n Ref.prototype = {\n toString: function Ref_toString() {\n if (this.gen === 0) {\n return `${this.num}R`;\n }\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 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\nexports.Ref = Ref;\n\nclass RefSet {\n constructor() {\n this._set = new Set();\n }\n\n has(ref) {\n return this._set.has(ref.toString());\n }\n\n put(ref) {\n this._set.add(ref.toString());\n }\n\n remove(ref) {\n this._set.delete(ref.toString());\n }\n\n}\n\nexports.RefSet = RefSet;\n\nclass RefSetCache {\n constructor() {\n this._map = new Map();\n }\n\n get size() {\n return this._map.size;\n }\n\n get(ref) {\n return this._map.get(ref.toString());\n }\n\n has(ref) {\n return this._map.has(ref.toString());\n }\n\n put(ref, obj) {\n this._map.set(ref.toString(), obj);\n }\n\n putAlias(ref, aliasRef) {\n this._map.set(ref.toString(), this.get(aliasRef));\n }\n\n forEach(callback) {\n for (const value of this._map.values()) {\n callback(value);\n }\n }\n\n clear() {\n this._map.clear();\n }\n\n}\n\nexports.RefSetCache = RefSetCache;\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 v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type));\n}\n\nfunction isRef(v) {\n return v instanceof Ref;\n}\n\nfunction isRefsEqual(v1, v2) {\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\n Name._clearCache();\n\n Ref._clearCache();\n}\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NetworkPdfManager = exports.LocalPdfManager = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _chunked_stream = __w_pdfjs_require__(7);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _document = __w_pdfjs_require__(9);\n\nvar _stream = __w_pdfjs_require__(12);\n\nclass BasePdfManager {\n constructor() {\n if (this.constructor === BasePdfManager) {\n (0, _util.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\n if (this._docBaseUrl) {\n const absoluteUrl = (0, _util.createValidAbsoluteUrl)(this._docBaseUrl);\n\n if (absoluteUrl) {\n docBaseUrl = absoluteUrl.href;\n } else {\n (0, _util.warn)(`Invalid absolute docBaseUrl: \"${this._docBaseUrl}\".`);\n }\n }\n\n return (0, _util.shadow)(this, \"docBaseUrl\", docBaseUrl);\n }\n\n onLoadedStream() {\n (0, _util.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 (0, _util.unreachable)(\"Abstract method `ensure` called\");\n }\n\n requestRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method `requestRange` called\");\n }\n\n requestLoadedStream() {\n (0, _util.unreachable)(\"Abstract method `requestLoadedStream` called\");\n }\n\n sendProgressiveData(chunk) {\n (0, _util.unreachable)(\"Abstract method `sendProgressiveData` called\");\n }\n\n updatePassword(password) {\n this._password = password;\n }\n\n terminate(reason) {\n (0, _util.unreachable)(\"Abstract method `terminate` called\");\n }\n\n}\n\nclass LocalPdfManager extends BasePdfManager {\n constructor(docId, data, password, evaluatorOptions, docBaseUrl) {\n super();\n this._docId = docId;\n this._password = password;\n this._docBaseUrl = docBaseUrl;\n this.evaluatorOptions = evaluatorOptions;\n const stream = new _stream.Stream(data);\n this.pdfDocument = new _document.PDFDocument(this, stream);\n this._loadedStreamPromise = Promise.resolve(stream);\n }\n\n async ensure(obj, prop, args) {\n const value = obj[prop];\n\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\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}\n\nexports.LocalPdfManager = LocalPdfManager;\n\nclass NetworkPdfManager extends BasePdfManager {\n constructor(docId, pdfNetworkStream, args, evaluatorOptions, docBaseUrl) {\n super();\n this._docId = docId;\n this._password = args.password;\n this._docBaseUrl = docBaseUrl;\n this.msgHandler = args.msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n this.streamManager = new _chunked_stream.ChunkedStreamManager(pdfNetworkStream, {\n msgHandler: args.msgHandler,\n length: args.length,\n disableAutoFetch: args.disableAutoFetch,\n rangeChunkSize: args.rangeChunkSize\n });\n this.pdfDocument = new _document.PDFDocument(this, this.streamManager.getStream());\n }\n\n async ensure(obj, prop, args) {\n try {\n const value = obj[prop];\n\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n\n return value;\n } catch (ex) {\n if (!(ex instanceof _core_utils.MissingDataException)) {\n throw ex;\n }\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({\n chunk\n });\n }\n\n onLoadedStream() {\n return this.streamManager.onLoadedStream();\n }\n\n terminate(reason) {\n this.streamManager.abort(reason);\n }\n\n}\n\nexports.NetworkPdfManager = NetworkPdfManager;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChunkedStreamManager = exports.ChunkedStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(8);\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 = new Set();\n this.numChunks = Math.ceil(length / chunkSize);\n this.manager = manager;\n this.progressiveDataLength = 0;\n this.lastSuccessfulEnsureByteChunk = -1;\n }\n\n getMissingChunks() {\n const chunks = [];\n\n for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n chunks.push(chunk);\n }\n }\n\n return chunks;\n }\n\n getBaseStreams() {\n return [this];\n }\n\n get numChunksLoaded() {\n return this._loadedChunks.size;\n }\n\n allChunksLoaded() {\n return this.numChunksLoaded === this.numChunks;\n }\n\n onReceiveData(begin, chunk) {\n const chunkSize = this.chunkSize;\n\n if (begin % chunkSize !== 0) {\n throw new Error(`Bad begin offset: ${begin}`);\n }\n\n const end = begin + chunk.byteLength;\n\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 this._loadedChunks.add(curChunk);\n }\n }\n\n onReceiveProgressiveData(data) {\n let position = this.progressiveDataLength;\n const beginChunk = Math.floor(position / this.chunkSize);\n this.bytes.set(new Uint8Array(data), position);\n position += data.byteLength;\n this.progressiveDataLength = position;\n const endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize);\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n this._loadedChunks.add(curChunk);\n }\n }\n\n ensureByte(pos) {\n if (pos < this.progressiveDataLength) {\n return;\n }\n\n const chunk = Math.floor(pos / this.chunkSize);\n\n if (chunk === this.lastSuccessfulEnsureByteChunk) {\n return;\n }\n\n if (!this._loadedChunks.has(chunk)) {\n throw new _core_utils.MissingDataException(pos, pos + 1);\n }\n\n this.lastSuccessfulEnsureByteChunk = chunk;\n }\n\n ensureRange(begin, end) {\n if (begin >= end) {\n return;\n }\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\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n throw new _core_utils.MissingDataException(begin, end);\n }\n }\n }\n\n nextEmptyChunk(beginChunk) {\n const numChunks = this.numChunks;\n\n for (let i = 0; i < numChunks; ++i) {\n const chunk = (beginChunk + i) % numChunks;\n\n if (!this._loadedChunks.has(chunk)) {\n return chunk;\n }\n }\n\n return null;\n }\n\n hasChunk(chunk) {\n return this._loadedChunks.has(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\n if (pos >= this.end) {\n return -1;\n }\n\n if (pos >= this.progressiveDataLength) {\n this.ensureByte(pos);\n }\n\n return this.bytes[this.pos++];\n }\n\n getUint16() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\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 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\n const subarray = bytes.subarray(pos, strEnd);\n return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n }\n\n let end = pos + length;\n\n if (end > strEnd) {\n end = strEnd;\n }\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 return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n\n if (peekedByte !== -1) {\n this.pos--;\n }\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\n if (end > this.end) {\n end = this.end;\n }\n\n if (end > this.progressiveDataLength) {\n this.ensureRange(begin, end);\n }\n\n return this.bytes.subarray(begin, end);\n }\n\n skip(n) {\n if (!n) {\n n = 1;\n }\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 if (start >= this.progressiveDataLength) {\n this.ensureByte(start);\n }\n }\n\n function ChunkedStreamSubstream() {}\n\n ChunkedStreamSubstream.prototype = Object.create(this);\n\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\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n missingChunks.push(chunk);\n }\n }\n\n return missingChunks;\n };\n\n ChunkedStreamSubstream.prototype.allChunksLoaded = function () {\n if (this.numChunksLoaded === this.numChunks) {\n return true;\n }\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}\n\nexports.ChunkedStream = ChunkedStream;\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 this.currRequestId = 0;\n this._chunksNeededByRequest = new Map();\n this._requestsByChunk = new Map();\n this._promisesByRequest = new Map();\n this.progressiveDataLength = 0;\n this.aborted = false;\n this._loadedStreamCapability = (0, _util.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\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 += (0, _util.arrayByteLength)(data);\n\n if (rangeReader.isStreamingSupported) {\n this.onProgress({\n loaded\n });\n }\n\n rangeReader.read().then(readChunk, reject);\n return;\n }\n\n const chunkData = (0, _util.arraysToBytes)(chunks);\n chunks = null;\n resolve(chunkData);\n } catch (e) {\n reject(e);\n }\n };\n\n rangeReader.read().then(readChunk, reject);\n });\n promise.then(data => {\n if (this.aborted) {\n return;\n }\n\n this.onReceiveData({\n chunk: data,\n begin\n });\n });\n }\n\n requestAllChunks() {\n const missingChunks = this.stream.getMissingChunks();\n\n this._requestChunks(missingChunks);\n\n return this._loadedStreamCapability.promise;\n }\n\n _requestChunks(chunks) {\n const requestId = this.currRequestId++;\n const chunksNeeded = new Set();\n\n this._chunksNeededByRequest.set(requestId, chunksNeeded);\n\n for (const chunk of chunks) {\n if (!this.stream.hasChunk(chunk)) {\n chunksNeeded.add(chunk);\n }\n }\n\n if (chunksNeeded.size === 0) {\n return Promise.resolve();\n }\n\n const capability = (0, _util.createPromiseCapability)();\n\n this._promisesByRequest.set(requestId, capability);\n\n const chunksToRequest = [];\n\n for (const chunk of chunksNeeded) {\n let requestIds = this._requestsByChunk.get(chunk);\n\n if (!requestIds) {\n requestIds = [];\n\n this._requestsByChunk.set(chunk, requestIds);\n\n chunksToRequest.push(chunk);\n }\n\n requestIds.push(requestId);\n }\n\n if (chunksToRequest.length > 0) {\n const groupedChunksToRequest = this.groupChunks(chunksToRequest);\n\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\n return capability.promise.catch(reason => {\n if (this.aborted) {\n return;\n }\n\n throw reason;\n });\n }\n\n getStream() {\n return this.stream;\n }\n\n requestRange(begin, end) {\n end = Math.min(end, this.length);\n const beginChunk = this.getBeginChunk(begin);\n const endChunk = this.getEndChunk(end);\n const chunks = [];\n\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n chunks.push(chunk);\n }\n\n return this._requestChunks(chunks);\n }\n\n requestRanges(ranges = []) {\n const chunksToRequest = [];\n\n for (const range of ranges) {\n const beginChunk = this.getBeginChunk(range.begin);\n const endChunk = this.getEndChunk(range.end);\n\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 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\n if (beginChunk < 0) {\n beginChunk = chunk;\n }\n\n if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n groupedChunks.push({\n beginChunk,\n endChunk: prevChunk + 1\n });\n beginChunk = chunk;\n }\n\n if (i + 1 === chunks.length) {\n groupedChunks.push({\n beginChunk,\n endChunk: chunk + 1\n });\n }\n\n prevChunk = chunk;\n }\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 const beginChunk = Math.floor(begin / this.chunkSize);\n const endChunk = end < this.length ? Math.floor(end / this.chunkSize) : 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\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n const requestIds = this._requestsByChunk.get(curChunk);\n\n if (!requestIds) {\n continue;\n }\n\n this._requestsByChunk.delete(curChunk);\n\n for (const requestId of requestIds) {\n const chunksNeeded = this._chunksNeededByRequest.get(requestId);\n\n if (chunksNeeded.has(curChunk)) {\n chunksNeeded.delete(curChunk);\n }\n\n if (chunksNeeded.size > 0) {\n continue;\n }\n\n loadedRequests.push(requestId);\n }\n }\n\n if (!this.disableAutoFetch && this._requestsByChunk.size === 0) {\n let nextEmptyChunk;\n\n if (this.stream.numChunksLoaded === 1) {\n const lastChunk = this.stream.numChunks - 1;\n\n if (!this.stream.hasChunk(lastChunk)) {\n nextEmptyChunk = lastChunk;\n }\n } else {\n nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n }\n\n if (Number.isInteger(nextEmptyChunk)) {\n this._requestChunks([nextEmptyChunk]);\n }\n }\n\n for (const requestId of loadedRequests) {\n const capability = this._promisesByRequest.get(requestId);\n\n this._promisesByRequest.delete(requestId);\n\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\n if (this.pdfNetworkStream) {\n this.pdfNetworkStream.cancelAllRequests(reason);\n }\n\n for (const capability of this._promisesByRequest.values()) {\n capability.reject(reason);\n }\n }\n\n}\n\nexports.ChunkedStreamManager = ChunkedStreamManager;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLookupTableFactory = getLookupTableFactory;\nexports.getInheritableProperty = getInheritableProperty;\nexports.toRomanNumerals = toRomanNumerals;\nexports.log2 = log2;\nexports.readInt8 = readInt8;\nexports.readUint16 = readUint16;\nexports.readUint32 = readUint32;\nexports.isWhiteSpace = isWhiteSpace;\nexports.XRefParseException = exports.XRefEntryException = exports.MissingDataException = void 0;\n\nvar _util = __w_pdfjs_require__(2);\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\n return lookup;\n };\n}\n\nclass MissingDataException extends _util.BaseException {\n constructor(begin, end) {\n super(`Missing data [${begin}, ${end})`);\n this.begin = begin;\n this.end = end;\n }\n\n}\n\nexports.MissingDataException = MissingDataException;\n\nclass XRefEntryException extends _util.BaseException {}\n\nexports.XRefEntryException = XRefEntryException;\n\nclass XRefParseException extends _util.BaseException {}\n\nexports.XRefParseException = XRefParseException;\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\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n\n if (!values) {\n values = [];\n }\n\n values.push(value);\n }\n\n if (++loopCount > LOOP_LIMIT) {\n (0, _util.warn)(`getInheritableProperty: maximum loop count exceeded for \"${key}\"`);\n break;\n }\n\n dict = dict.get(\"Parent\");\n }\n\n return values;\n}\n\nconst ROMAN_NUMBER_MAP = [\"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\", \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\", \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"];\n\nfunction toRomanNumerals(number, lowerCase = false) {\n (0, _util.assert)(Number.isInteger(number) && number > 0, \"The number should be a positive integer.\");\n const romanBuf = [];\n let pos;\n\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push(\"M\");\n }\n\n pos = number / 100 | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n pos = number / 10 | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);\n const romanStr = romanBuf.join(\"\");\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\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 (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n}\n\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFDocument = exports.Page = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _obj = __w_pdfjs_require__(10);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _annotation = __w_pdfjs_require__(25);\n\nvar _crypto = __w_pdfjs_require__(22);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _operator_list = __w_pdfjs_require__(26);\n\nvar _evaluator = __w_pdfjs_require__(28);\n\nconst DEFAULT_USER_UNIT = 1.0;\nconst LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nfunction isAnnotationRenderable(annotation, intent) {\n return intent === \"display\" && annotation.viewable || intent === \"print\" && annotation.printable;\n}\n\nclass Page {\n constructor({\n pdfManager,\n xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory,\n fontCache,\n builtInCMapCache,\n globalImageCache\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.evaluatorOptions = pdfManager.evaluatorOptions;\n this.resourcesPromise = null;\n const idCounters = {\n obj: 0\n };\n this._localIdFactory = class extends globalIdFactory {\n static createObjId() {\n return `p${pageIndex}_${++idCounters.obj}`;\n }\n\n };\n }\n\n _getInheritableProperty(key, getArray = false) {\n const value = (0, _core_utils.getInheritableProperty)({\n dict: this.pageDict,\n key,\n getArray,\n stopWhenFound: false\n });\n\n if (!Array.isArray(value)) {\n return value;\n }\n\n if (value.length === 1 || !(0, _primitives.isDict)(value[0])) {\n return value[0];\n }\n\n return _primitives.Dict.merge({\n xref: this.xref,\n dictArray: value\n });\n }\n\n get content() {\n return this.pageDict.get(\"Contents\");\n }\n\n get resources() {\n return (0, _util.shadow)(this, \"resources\", this._getInheritableProperty(\"Resources\") || _primitives.Dict.empty);\n }\n\n _getBoundingBox(name) {\n const box = this._getInheritableProperty(name, 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\n (0, _util.warn)(`Empty /${name} entry.`);\n }\n\n return null;\n }\n\n get mediaBox() {\n return (0, _util.shadow)(this, \"mediaBox\", this._getBoundingBox(\"MediaBox\") || LETTER_SIZE_MEDIABOX);\n }\n\n get cropBox() {\n return (0, _util.shadow)(this, \"cropBox\", this._getBoundingBox(\"CropBox\") || this.mediaBox);\n }\n\n get userUnit() {\n let obj = this.pageDict.get(\"UserUnit\");\n\n if (!(0, _util.isNum)(obj) || obj <= 0) {\n obj = DEFAULT_USER_UNIT;\n }\n\n return (0, _util.shadow)(this, \"userUnit\", obj);\n }\n\n get view() {\n const {\n cropBox,\n mediaBox\n } = this;\n let view;\n\n if (cropBox === mediaBox || (0, _util.isArrayEqual)(cropBox, mediaBox)) {\n view = mediaBox;\n } else {\n const box = _util.Util.intersect(cropBox, mediaBox);\n\n if (box && box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n view = box;\n } else {\n (0, _util.warn)(\"Empty /CropBox and /MediaBox intersection.\");\n }\n }\n\n return (0, _util.shadow)(this, \"view\", view || mediaBox);\n }\n\n get rotate() {\n let rotate = this._getInheritableProperty(\"Rotate\") || 0;\n\n if (rotate % 90 !== 0) {\n rotate = 0;\n } else if (rotate >= 360) {\n rotate = rotate % 360;\n } else if (rotate < 0) {\n rotate = (rotate % 360 + 360) % 360;\n }\n\n return (0, _util.shadow)(this, \"rotate\", rotate);\n }\n\n getContentStream() {\n const content = this.content;\n let stream;\n\n if (Array.isArray(content)) {\n const xref = this.xref;\n const streams = [];\n\n for (const subStream of content) {\n streams.push(xref.fetchIfRef(subStream));\n }\n\n stream = new _stream.StreamsSequenceStream(streams);\n } else if ((0, _primitives.isStream)(content)) {\n stream = content;\n } else {\n stream = new _stream.NullStream();\n }\n\n return stream;\n }\n\n save(handler, task, annotationStorage) {\n const partialEvaluator = new _evaluator.PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions\n });\n return this._parsedAnnotations.then(function (annotations) {\n const newRefsPromises = [];\n\n for (const annotation of annotations) {\n if (!isAnnotationRenderable(annotation, \"print\")) {\n continue;\n }\n\n newRefsPromises.push(annotation.save(partialEvaluator, task, annotationStorage).catch(function (reason) {\n (0, _util.warn)(\"save - ignoring annotation data during \" + `\"${task.name}\" task: \"${reason}\".`);\n return null;\n }));\n }\n\n return Promise.all(newRefsPromises);\n });\n }\n\n loadResources(keys) {\n if (!this.resourcesPromise) {\n this.resourcesPromise = this.pdfManager.ensure(this, \"resources\");\n }\n\n return this.resourcesPromise.then(() => {\n const objectLoader = new _obj.ObjectLoader(this.resources, keys, this.xref);\n return objectLoader.load();\n });\n }\n\n getOperatorList({\n handler,\n sink,\n task,\n intent,\n renderInteractiveForms,\n annotationStorage\n }) {\n const contentStreamPromise = this.pdfManager.ensure(this, \"getContentStream\");\n const resourcesPromise = this.loadResources([\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"]);\n const partialEvaluator = new _evaluator.PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions\n });\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n const pageListPromise = dataPromises.then(([contentStream]) => {\n const opList = new _operator_list.OperatorList(intent, sink);\n handler.send(\"StartRenderPage\", {\n transparency: partialEvaluator.hasBlendModes(this.resources),\n pageIndex: this.pageIndex,\n intent\n });\n return partialEvaluator.getOperatorList({\n stream: contentStream,\n task,\n resources: this.resources,\n operatorList: opList\n }).then(function () {\n return opList;\n });\n });\n return Promise.all([pageListPromise, this._parsedAnnotations]).then(function ([pageOpList, annotations]) {\n if (annotations.length === 0) {\n pageOpList.flush(true);\n return {\n length: pageOpList.totalLength\n };\n }\n\n const opListPromises = [];\n\n for (const annotation of annotations) {\n if (isAnnotationRenderable(annotation, intent)) {\n opListPromises.push(annotation.getOperatorList(partialEvaluator, task, renderInteractiveForms, annotationStorage).catch(function (reason) {\n (0, _util.warn)(\"getOperatorList - ignoring annotation data during \" + `\"${task.name}\" task: \"${reason}\".`);\n return null;\n }));\n }\n }\n\n return Promise.all(opListPromises).then(function (opLists) {\n pageOpList.addOp(_util.OPS.beginAnnotations, []);\n\n for (const opList of opLists) {\n pageOpList.addOpList(opList);\n }\n\n pageOpList.addOp(_util.OPS.endAnnotations, []);\n pageOpList.flush(true);\n return {\n 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(this, \"getContentStream\");\n const resourcesPromise = this.loadResources([\"ExtGState\", \"XObject\", \"Font\"]);\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n return dataPromises.then(([contentStream]) => {\n const partialEvaluator = new _evaluator.PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions\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\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\n return annotationsData;\n });\n }\n\n get annotations() {\n return (0, _util.shadow)(this, \"annotations\", this._getInheritableProperty(\"Annots\") || []);\n }\n\n get _parsedAnnotations() {\n const parsedAnnotations = this.pdfManager.ensure(this, \"annotations\").then(() => {\n const annotationPromises = [];\n\n for (const annotationRef of this.annotations) {\n annotationPromises.push(_annotation.AnnotationFactory.create(this.xref, annotationRef, this.pdfManager, this._localIdFactory).catch(function (reason) {\n (0, _util.warn)(`_parsedAnnotations: \"${reason}\".`);\n return null;\n }));\n }\n\n return Promise.all(annotationPromises).then(function (annotations) {\n return annotations.filter(annotation => !!annotation);\n });\n });\n return (0, _util.shadow)(this, \"_parsedAnnotations\", parsedAnnotations);\n }\n\n}\n\nexports.Page = Page;\nconst PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]);\nconst STARTXREF_SIGNATURE = new Uint8Array([0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66]);\nconst ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]);\nconst FINGERPRINT_FIRST_BYTES = 1024;\nconst EMPTY_FINGERPRINT = \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";\nconst PDF_HEADER_VERSION_REGEXP = /^[1-9]\\.[0-9]$/;\n\nfunction find(stream, signature, limit = 1024, backwards = false) {\n const signatureLength = signature.length;\n const scanBytes = stream.peekBytes(limit);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n return false;\n }\n\n if (backwards) {\n const signatureEnd = signatureLength - 1;\n let pos = scanBytes.length - 1;\n\n while (pos >= signatureEnd) {\n let j = 0;\n\n while (j < signatureLength && scanBytes[pos - j] === signature[signatureEnd - j]) {\n j++;\n }\n\n if (j >= signatureLength) {\n stream.pos += pos - signatureEnd;\n return true;\n }\n\n pos--;\n }\n } else {\n let pos = 0;\n\n while (pos <= scanLength) {\n let j = 0;\n\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n\n if (j >= signatureLength) {\n stream.pos += pos;\n return true;\n }\n\n pos++;\n }\n }\n\n return false;\n}\n\nclass PDFDocument {\n constructor(pdfManager, arg) {\n let stream;\n\n if ((0, _primitives.isStream)(arg)) {\n stream = arg;\n } else if ((0, _util.isArrayBuffer)(arg)) {\n stream = new _stream.Stream(arg);\n } else {\n throw new Error(\"PDFDocument: Unknown argument type\");\n }\n\n if (stream.length <= 0) {\n throw new _util.InvalidPDFException(\"The PDF file is empty, i.e. its size is zero bytes.\");\n }\n\n this.pdfManager = pdfManager;\n this.stream = stream;\n this.xref = new _obj.XRef(stream, pdfManager);\n this._pagePromises = [];\n this._version = null;\n const idCounters = {\n font: 0\n };\n this._globalIdFactory = class {\n static getDocId() {\n return `g_${pdfManager.docId}`;\n }\n\n static createFontId() {\n return `f${++idCounters.font}`;\n }\n\n static createObjId() {\n (0, _util.unreachable)(\"Abstract method `createObjId` called.\");\n }\n\n };\n }\n\n parse(recoveryMode) {\n this.xref.parse(recoveryMode);\n this.catalog = new _obj.Catalog(this.pdfManager, this.xref);\n\n if (this.catalog.version) {\n this._version = this.catalog.version;\n }\n }\n\n get linearization() {\n let linearization = null;\n\n try {\n linearization = _parser.Linearization.create(this.stream);\n } catch (err) {\n if (err instanceof _core_utils.MissingDataException) {\n throw err;\n }\n\n (0, _util.info)(err);\n }\n\n return (0, _util.shadow)(this, \"linearization\", linearization);\n }\n\n get startXRef() {\n const stream = this.stream;\n let startXRef = 0;\n\n if (this.linearization) {\n stream.reset();\n\n if (find(stream, ENDOBJ_SIGNATURE)) {\n startXRef = stream.pos + 6 - stream.start;\n }\n } else {\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\n if (pos < 0) {\n pos = 0;\n }\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\n do {\n ch = stream.getByte();\n } while ((0, _core_utils.isWhiteSpace)(ch));\n\n let str = \"\";\n\n while (ch >= 0x20 && ch <= 0x39) {\n str += String.fromCharCode(ch);\n ch = stream.getByte();\n }\n\n startXRef = parseInt(str, 10);\n\n if (isNaN(startXRef)) {\n startXRef = 0;\n }\n }\n }\n\n return (0, _util.shadow)(this, \"startXRef\", startXRef);\n }\n\n checkHeader() {\n const stream = this.stream;\n stream.reset();\n\n if (!find(stream, PDF_HEADER_SIGNATURE)) {\n return;\n }\n\n stream.moveStart();\n const MAX_PDF_VERSION_LENGTH = 12;\n let version = \"\",\n ch;\n\n while ((ch = stream.getByte()) > 0x20) {\n if (version.length >= MAX_PDF_VERSION_LENGTH) {\n break;\n }\n\n version += String.fromCharCode(ch);\n }\n\n if (!this._version) {\n this._version = version.substring(5);\n }\n }\n\n parseStartXRef() {\n this.xref.setStartXRef(this.startXRef);\n }\n\n get numPages() {\n const linearization = this.linearization;\n const num = linearization ? linearization.numPages : this.catalog.numPages;\n return (0, _util.shadow)(this, \"numPages\", num);\n }\n\n _hasOnlyDocumentSignatures(fields, recursionDepth = 0) {\n const RECURSION_LIMIT = 10;\n return fields.every(field => {\n field = this.xref.fetchIfRef(field);\n\n if (field.has(\"Kids\")) {\n if (++recursionDepth > RECURSION_LIMIT) {\n (0, _util.warn)(\"_hasOnlyDocumentSignatures: maximum recursion depth reached\");\n return false;\n }\n\n return this._hasOnlyDocumentSignatures(field.get(\"Kids\"), recursionDepth);\n }\n\n const isSignature = (0, _primitives.isName)(field.get(\"FT\"), \"Sig\");\n const rectangle = field.get(\"Rect\");\n const isInvisible = Array.isArray(rectangle) && rectangle.every(value => value === 0);\n return isSignature && isInvisible;\n });\n }\n\n get formInfo() {\n const formInfo = {\n hasAcroForm: false,\n hasXfa: false\n };\n const acroForm = this.catalog.acroForm;\n\n if (!acroForm) {\n return (0, _util.shadow)(this, \"formInfo\", formInfo);\n }\n\n try {\n const xfa = acroForm.get(\"XFA\");\n const hasXfa = Array.isArray(xfa) && xfa.length > 0 || (0, _primitives.isStream)(xfa) && !xfa.isEmpty;\n formInfo.hasXfa = hasXfa;\n const fields = acroForm.get(\"Fields\");\n const hasFields = Array.isArray(fields) && fields.length > 0;\n const sigFlags = acroForm.get(\"SigFlags\");\n\n const hasOnlyDocumentSignatures = !!(sigFlags & 0x1) && this._hasOnlyDocumentSignatures(fields);\n\n formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures;\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.info)(\"Cannot fetch form information.\");\n }\n\n return (0, _util.shadow)(this, \"formInfo\", formInfo);\n }\n\n get documentInfo() {\n const DocumentInfoValidators = {\n Title: _util.isString,\n Author: _util.isString,\n Subject: _util.isString,\n Keywords: _util.isString,\n Creator: _util.isString,\n Producer: _util.isString,\n CreationDate: _util.isString,\n ModDate: _util.isString,\n Trapped: _primitives.isName\n };\n let version = this._version;\n\n if (typeof version !== \"string\" || !PDF_HEADER_VERSION_REGEXP.test(version)) {\n (0, _util.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.formInfo.hasAcroForm,\n IsXFAPresent: this.formInfo.hasXfa,\n IsCollectionPresent: !!this.catalog.collection\n };\n let infoDict;\n\n try {\n infoDict = this.xref.trailer.get(\"Info\");\n } catch (err) {\n if (err instanceof _core_utils.MissingDataException) {\n throw err;\n }\n\n (0, _util.info)(\"The document information dictionary is invalid.\");\n }\n\n if ((0, _primitives.isDict)(infoDict)) {\n for (const key of infoDict.getKeys()) {\n const value = infoDict.get(key);\n\n if (DocumentInfoValidators[key]) {\n if (DocumentInfoValidators[key](value)) {\n docInfo[key] = typeof value !== \"string\" ? value : (0, _util.stringToPDFString)(value);\n } else {\n (0, _util.info)(`Bad value in document info for \"${key}\".`);\n }\n } else if (typeof key === \"string\") {\n let customValue;\n\n if ((0, _util.isString)(value)) {\n customValue = (0, _util.stringToPDFString)(value);\n } else if ((0, _primitives.isName)(value) || (0, _util.isNum)(value) || (0, _util.isBool)(value)) {\n customValue = value;\n } else {\n (0, _util.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\n docInfo.Custom[key] = customValue;\n }\n }\n }\n\n return (0, _util.shadow)(this, \"documentInfo\", docInfo);\n }\n\n get fingerprint() {\n let hash;\n const idArray = this.xref.trailer.get(\"ID\");\n\n if (Array.isArray(idArray) && idArray[0] && (0, _util.isString)(idArray[0]) && idArray[0] !== EMPTY_FINGERPRINT) {\n hash = (0, _util.stringToBytes)(idArray[0]);\n } else {\n hash = (0, _crypto.calculateMD5)(this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES);\n }\n\n const fingerprintBuf = [];\n\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\n return (0, _util.shadow)(this, \"fingerprint\", fingerprintBuf.join(\"\"));\n }\n\n _getLinearizationPage(pageIndex) {\n const {\n catalog,\n linearization\n } = this;\n\n const ref = _primitives.Ref.get(linearization.objectNumberFirst, 0);\n\n return this.xref.fetchAsync(ref).then(obj => {\n if ((0, _primitives.isDict)(obj, \"Page\") || (0, _primitives.isDict)(obj) && !obj.has(\"Type\") && obj.has(\"Contents\")) {\n if (ref && !catalog.pageKidsCountCache.has(ref)) {\n catalog.pageKidsCountCache.put(ref, 1);\n }\n\n return [obj, ref];\n }\n\n throw new _util.FormatError(\"The Linearization dictionary doesn't point \" + \"to a valid Page dictionary.\");\n }).catch(reason => {\n (0, _util.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\n const {\n catalog,\n linearization\n } = this;\n const promise = linearization && linearization.pageFirst === pageIndex ? this._getLinearizationPage(pageIndex) : catalog.getPageDict(pageIndex);\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 globalIdFactory: this._globalIdFactory,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n globalImageCache: catalog.globalImageCache\n });\n });\n }\n\n checkFirstPage() {\n return this.getPage(0).catch(async reason => {\n if (reason instanceof _core_utils.XRefEntryException) {\n this._pagePromises.length = 0;\n await this.cleanup();\n throw new _core_utils.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 ? this.catalog.cleanup(manuallyTriggered) : (0, _primitives.clearPrimitiveCaches)();\n }\n\n}\n\nexports.PDFDocument = PDFDocument;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FileSpec = exports.XRef = exports.ObjectLoader = exports.Catalog = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _crypto = __w_pdfjs_require__(22);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _image_utils = __w_pdfjs_require__(24);\n\nfunction fetchDestination(dest) {\n return (0, _primitives.isDict)(dest) ? dest.get(\"D\") : dest;\n}\n\nclass Catalog {\n constructor(pdfManager, xref) {\n this.pdfManager = pdfManager;\n this.xref = xref;\n this._catDict = xref.getCatalogObj();\n\n if (!(0, _primitives.isDict)(this._catDict)) {\n throw new _util.FormatError(\"Catalog object is not a dictionary.\");\n }\n\n this.fontCache = new _primitives.RefSetCache();\n this.builtInCMapCache = new Map();\n this.globalImageCache = new _image_utils.GlobalImageCache();\n this.pageKidsCountCache = new _primitives.RefSetCache();\n }\n\n get version() {\n const version = this._catDict.get(\"Version\");\n\n if (!(0, _primitives.isName)(version)) {\n return (0, _util.shadow)(this, \"version\", null);\n }\n\n return (0, _util.shadow)(this, \"version\", version.name);\n }\n\n get collection() {\n let collection = null;\n\n try {\n const obj = this._catDict.get(\"Collection\");\n\n if ((0, _primitives.isDict)(obj) && obj.size > 0) {\n collection = obj;\n }\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.info)(\"Cannot fetch Collection entry; assuming no collection is present.\");\n }\n\n return (0, _util.shadow)(this, \"collection\", collection);\n }\n\n get acroForm() {\n let acroForm = null;\n\n try {\n const obj = this._catDict.get(\"AcroForm\");\n\n if ((0, _primitives.isDict)(obj) && obj.size > 0) {\n acroForm = obj;\n }\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.info)(\"Cannot fetch AcroForm entry; assuming no forms are present.\");\n }\n\n return (0, _util.shadow)(this, \"acroForm\", acroForm);\n }\n\n get metadata() {\n const streamRef = this._catDict.getRaw(\"Metadata\");\n\n if (!(0, _primitives.isRef)(streamRef)) {\n return (0, _util.shadow)(this, \"metadata\", null);\n }\n\n const suppressEncryption = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata);\n const stream = this.xref.fetch(streamRef, suppressEncryption);\n let metadata;\n\n if (stream && (0, _primitives.isDict)(stream.dict)) {\n const type = stream.dict.get(\"Type\");\n const subtype = stream.dict.get(\"Subtype\");\n\n if ((0, _primitives.isName)(type, \"Metadata\") && (0, _primitives.isName)(subtype, \"XML\")) {\n try {\n metadata = (0, _util.stringToUTF8String)((0, _util.bytesToString)(stream.getBytes()));\n } catch (e) {\n if (e instanceof _core_utils.MissingDataException) {\n throw e;\n }\n\n (0, _util.info)(\"Skipping invalid metadata.\");\n }\n }\n }\n\n return (0, _util.shadow)(this, \"metadata\", metadata);\n }\n\n get toplevelPagesDict() {\n const pagesObj = this._catDict.get(\"Pages\");\n\n if (!(0, _primitives.isDict)(pagesObj)) {\n throw new _util.FormatError(\"Invalid top-level pages dictionary.\");\n }\n\n return (0, _util.shadow)(this, \"toplevelPagesDict\", pagesObj);\n }\n\n get documentOutline() {\n let obj = null;\n\n try {\n obj = this._readDocumentOutline();\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(\"Unable to read document outline.\");\n }\n\n return (0, _util.shadow)(this, \"documentOutline\", obj);\n }\n\n _readDocumentOutline() {\n let obj = this._catDict.get(\"Outlines\");\n\n if (!(0, _primitives.isDict)(obj)) {\n return null;\n }\n\n obj = obj.getRaw(\"First\");\n\n if (!(0, _primitives.isRef)(obj)) {\n return null;\n }\n\n const root = {\n items: []\n };\n const queue = [{\n obj,\n parent: root\n }];\n const processed = new _primitives.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\n if (outlineDict === null) {\n continue;\n }\n\n if (!outlineDict.has(\"Title\")) {\n throw new _util.FormatError(\"Invalid outline item encountered.\");\n }\n\n const data = {\n url: null,\n dest: null\n };\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 if (Array.isArray(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) {\n rgbColor = _colorspace.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: (0, _util.stringToPDFString)(title),\n color: rgbColor,\n count: Number.isInteger(count) ? count : undefined,\n bold: !!(flags & 2),\n italic: !!(flags & 1),\n items: []\n };\n i.parent.items.push(outlineItem);\n obj = outlineDict.getRaw(\"First\");\n\n if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n queue.push({\n obj,\n parent: outlineItem\n });\n processed.put(obj);\n }\n\n obj = outlineDict.getRaw(\"Next\");\n\n if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n queue.push({\n obj,\n parent: i.parent\n });\n processed.put(obj);\n }\n }\n\n return root.items.length > 0 ? root.items : null;\n }\n\n get permissions() {\n let permissions = null;\n\n try {\n permissions = this._readPermissions();\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(\"Unable to read permissions.\");\n }\n\n return (0, _util.shadow)(this, \"permissions\", permissions);\n }\n\n _readPermissions() {\n const encrypt = this.xref.trailer.get(\"Encrypt\");\n\n if (!(0, _primitives.isDict)(encrypt)) {\n return null;\n }\n\n let flags = encrypt.get(\"P\");\n\n if (!(0, _util.isNum)(flags)) {\n return null;\n }\n\n flags += 2 ** 32;\n const permissions = [];\n\n for (const key in _util.PermissionFlag) {\n const value = _util.PermissionFlag[key];\n\n if (flags & value) {\n permissions.push(value);\n }\n }\n\n return permissions;\n }\n\n get optionalContentConfig() {\n let config = null;\n\n try {\n const properties = this._catDict.get(\"OCProperties\");\n\n if (!properties) {\n return (0, _util.shadow)(this, \"optionalContentConfig\", null);\n }\n\n const defaultConfig = properties.get(\"D\");\n\n if (!defaultConfig) {\n return (0, _util.shadow)(this, \"optionalContentConfig\", null);\n }\n\n const groupsData = properties.get(\"OCGs\");\n\n if (!Array.isArray(groupsData)) {\n return (0, _util.shadow)(this, \"optionalContentConfig\", null);\n }\n\n const groups = [];\n const groupRefs = [];\n\n for (const groupRef of groupsData) {\n if (!(0, _primitives.isRef)(groupRef)) {\n continue;\n }\n\n groupRefs.push(groupRef);\n const group = this.xref.fetchIfRef(groupRef);\n groups.push({\n id: groupRef.toString(),\n name: (0, _util.isString)(group.get(\"Name\")) ? (0, _util.stringToPDFString)(group.get(\"Name\")) : null,\n intent: (0, _util.isString)(group.get(\"Intent\")) ? (0, _util.stringToPDFString)(group.get(\"Intent\")) : null\n });\n }\n\n config = this._readOptionalContentConfig(defaultConfig, groupRefs);\n config.groups = groups;\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(`Unable to read optional content config: ${ex}`);\n }\n\n return (0, _util.shadow)(this, \"optionalContentConfig\", config);\n }\n\n _readOptionalContentConfig(config, contentGroupRefs) {\n function parseOnOff(refs) {\n const onParsed = [];\n\n if (Array.isArray(refs)) {\n for (const value of refs) {\n if (!(0, _primitives.isRef)(value)) {\n continue;\n }\n\n if (contentGroupRefs.includes(value)) {\n onParsed.push(value.toString());\n }\n }\n }\n\n return onParsed;\n }\n\n function parseOrder(refs, nestedLevels = 0) {\n if (!Array.isArray(refs)) {\n return null;\n }\n\n const order = [];\n\n for (const value of refs) {\n if ((0, _primitives.isRef)(value) && contentGroupRefs.includes(value)) {\n parsedOrderRefs.put(value);\n order.push(value.toString());\n continue;\n }\n\n const nestedOrder = parseNestedOrder(value, nestedLevels);\n\n if (nestedOrder) {\n order.push(nestedOrder);\n }\n }\n\n if (nestedLevels > 0) {\n return order;\n }\n\n const hiddenGroups = [];\n\n for (const groupRef of contentGroupRefs) {\n if (parsedOrderRefs.has(groupRef)) {\n continue;\n }\n\n hiddenGroups.push(groupRef.toString());\n }\n\n if (hiddenGroups.length) {\n order.push({\n name: null,\n order: hiddenGroups\n });\n }\n\n return order;\n }\n\n function parseNestedOrder(ref, nestedLevels) {\n if (++nestedLevels > MAX_NESTED_LEVELS) {\n (0, _util.warn)(\"parseNestedOrder - reached MAX_NESTED_LEVELS.\");\n return null;\n }\n\n const value = xref.fetchIfRef(ref);\n\n if (!Array.isArray(value)) {\n return null;\n }\n\n const nestedName = xref.fetchIfRef(value[0]);\n\n if (typeof nestedName !== \"string\") {\n return null;\n }\n\n const nestedOrder = parseOrder(value.slice(1), nestedLevels);\n\n if (!nestedOrder || !nestedOrder.length) {\n return null;\n }\n\n return {\n name: (0, _util.stringToPDFString)(nestedName),\n order: nestedOrder\n };\n }\n\n const xref = this.xref,\n parsedOrderRefs = new _primitives.RefSet(),\n MAX_NESTED_LEVELS = 10;\n return {\n name: (0, _util.isString)(config.get(\"Name\")) ? (0, _util.stringToPDFString)(config.get(\"Name\")) : null,\n creator: (0, _util.isString)(config.get(\"Creator\")) ? (0, _util.stringToPDFString)(config.get(\"Creator\")) : null,\n baseState: (0, _primitives.isName)(config.get(\"BaseState\")) ? config.get(\"BaseState\").name : null,\n on: parseOnOff(config.get(\"ON\")),\n off: parseOnOff(config.get(\"OFF\")),\n order: parseOrder(config.get(\"Order\")),\n groups: null\n };\n }\n\n get numPages() {\n const obj = this.toplevelPagesDict.get(\"Count\");\n\n if (!Number.isInteger(obj)) {\n throw new _util.FormatError(\"Page count in top-level pages dictionary is not an integer.\");\n }\n\n return (0, _util.shadow)(this, \"numPages\", obj);\n }\n\n get destinations() {\n const obj = this._readDests(),\n dests = Object.create(null);\n\n if (obj instanceof NameTree) {\n const names = obj.getAll();\n\n for (const name in names) {\n dests[name] = fetchDestination(names[name]);\n }\n } else if (obj instanceof _primitives.Dict) {\n obj.forEach(function (key, value) {\n if (value) {\n dests[key] = fetchDestination(value);\n }\n });\n }\n\n return (0, _util.shadow)(this, \"destinations\", dests);\n }\n\n getDestination(destinationId) {\n const obj = this._readDests();\n\n if (obj instanceof NameTree || obj instanceof _primitives.Dict) {\n return fetchDestination(obj.get(destinationId) || null);\n }\n\n return null;\n }\n\n _readDests() {\n const obj = this._catDict.get(\"Names\");\n\n if (obj && obj.has(\"Dests\")) {\n return new NameTree(obj.getRaw(\"Dests\"), this.xref);\n } else if (this._catDict.has(\"Dests\")) {\n return this._catDict.get(\"Dests\");\n }\n\n return undefined;\n }\n\n get pageLabels() {\n let obj = null;\n\n try {\n obj = this._readPageLabels();\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(\"Unable to read page labels.\");\n }\n\n return (0, _util.shadow)(this, \"pageLabels\", obj);\n }\n\n _readPageLabels() {\n const obj = this._catDict.getRaw(\"PageLabels\");\n\n if (!obj) {\n return null;\n }\n\n const pageLabels = new Array(this.numPages);\n let style = null,\n prefix = \"\";\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\n if (!(0, _primitives.isDict)(labelDict)) {\n throw new _util.FormatError(\"PageLabel is not a dictionary.\");\n }\n\n if (labelDict.has(\"Type\") && !(0, _primitives.isName)(labelDict.get(\"Type\"), \"PageLabel\")) {\n throw new _util.FormatError(\"Invalid type in PageLabel dictionary.\");\n }\n\n if (labelDict.has(\"S\")) {\n const s = labelDict.get(\"S\");\n\n if (!(0, _primitives.isName)(s)) {\n throw new _util.FormatError(\"Invalid style in PageLabel dictionary.\");\n }\n\n style = s.name;\n } else {\n style = null;\n }\n\n if (labelDict.has(\"P\")) {\n const p = labelDict.get(\"P\");\n\n if (!(0, _util.isString)(p)) {\n throw new _util.FormatError(\"Invalid prefix in PageLabel dictionary.\");\n }\n\n prefix = (0, _util.stringToPDFString)(p);\n } else {\n prefix = \"\";\n }\n\n if (labelDict.has(\"St\")) {\n const st = labelDict.get(\"St\");\n\n if (!(Number.isInteger(st) && st >= 1)) {\n throw new _util.FormatError(\"Invalid start in PageLabel dictionary.\");\n }\n\n currentIndex = st;\n } else {\n currentIndex = 1;\n }\n }\n\n switch (style) {\n case \"D\":\n currentLabel = currentIndex;\n break;\n\n case \"R\":\n case \"r\":\n currentLabel = (0, _core_utils.toRomanNumerals)(currentIndex, style === \"r\");\n break;\n\n case \"A\":\n case \"a\":\n const LIMIT = 26;\n const A_UPPER_CASE = 0x41,\n A_LOWER_CASE = 0x61;\n const baseCharCode = style === \"a\" ? A_LOWER_CASE : A_UPPER_CASE;\n const letterIndex = currentIndex - 1;\n const character = String.fromCharCode(baseCharCode + letterIndex % LIMIT);\n const charBuf = [];\n\n for (let j = 0, jj = letterIndex / LIMIT | 0; j <= jj; j++) {\n charBuf.push(character);\n }\n\n currentLabel = charBuf.join(\"\");\n break;\n\n default:\n if (style) {\n throw new _util.FormatError(`Invalid style \"${style}\" in PageLabel dictionary.`);\n }\n\n currentLabel = \"\";\n }\n\n pageLabels[i] = prefix + currentLabel;\n currentIndex++;\n }\n\n return pageLabels;\n }\n\n get pageLayout() {\n const obj = this._catDict.get(\"PageLayout\");\n\n let pageLayout = \"\";\n\n if ((0, _primitives.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\n return (0, _util.shadow)(this, \"pageLayout\", pageLayout);\n }\n\n get pageMode() {\n const obj = this._catDict.get(\"PageMode\");\n\n let pageMode = \"UseNone\";\n\n if ((0, _primitives.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\n return (0, _util.shadow)(this, \"pageMode\", pageMode);\n }\n\n get viewerPreferences() {\n const ViewerPreferencesValidators = {\n HideToolbar: _util.isBool,\n HideMenubar: _util.isBool,\n HideWindowUI: _util.isBool,\n FitWindow: _util.isBool,\n CenterWindow: _util.isBool,\n DisplayDocTitle: _util.isBool,\n NonFullScreenPageMode: _primitives.isName,\n Direction: _primitives.isName,\n ViewArea: _primitives.isName,\n ViewClip: _primitives.isName,\n PrintArea: _primitives.isName,\n PrintClip: _primitives.isName,\n PrintScaling: _primitives.isName,\n Duplex: _primitives.isName,\n PickTrayByPDFSize: _util.isBool,\n PrintPageRange: Array.isArray,\n NumCopies: Number.isInteger\n };\n\n const obj = this._catDict.get(\"ViewerPreferences\");\n\n let prefs = null;\n\n if ((0, _primitives.isDict)(obj)) {\n for (const key in ViewerPreferencesValidators) {\n if (!obj.has(key)) {\n continue;\n }\n\n const value = obj.get(key);\n\n if (!ViewerPreferencesValidators[key](value)) {\n (0, _util.info)(`Bad value in ViewerPreferences for \"${key}\".`);\n continue;\n }\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\n default:\n prefValue = \"UseNone\";\n }\n\n break;\n\n case \"Direction\":\n switch (value.name) {\n case \"L2R\":\n case \"R2L\":\n prefValue = value.name;\n break;\n\n default:\n prefValue = \"L2R\";\n }\n\n break;\n\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\n default:\n prefValue = \"CropBox\";\n }\n\n break;\n\n case \"PrintScaling\":\n switch (value.name) {\n case \"None\":\n case \"AppDefault\":\n prefValue = value.name;\n break;\n\n default:\n prefValue = \"AppDefault\";\n }\n\n break;\n\n case \"Duplex\":\n switch (value.name) {\n case \"Simplex\":\n case \"DuplexFlipShortEdge\":\n case \"DuplexFlipLongEdge\":\n prefValue = value.name;\n break;\n\n default:\n prefValue = \"None\";\n }\n\n break;\n\n case \"PrintPageRange\":\n const length = value.length;\n\n if (length % 2 !== 0) {\n break;\n }\n\n const isValid = value.every((page, i, arr) => {\n return Number.isInteger(page) && page > 0 && (i === 0 || page >= arr[i - 1]) && page <= this.numPages;\n });\n\n if (isValid) {\n prefValue = value;\n }\n\n break;\n\n case \"NumCopies\":\n if (value > 0) {\n prefValue = value;\n }\n\n break;\n\n default:\n if (typeof value !== \"boolean\") {\n throw new _util.FormatError(`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\n prefs[key] = prefValue;\n } else {\n (0, _util.info)(`Bad value in ViewerPreferences for \"${key}\".`);\n }\n }\n }\n\n return (0, _util.shadow)(this, \"viewerPreferences\", prefs);\n }\n\n get openAction() {\n const obj = this._catDict.get(\"OpenAction\");\n\n let openAction = null;\n\n if ((0, _primitives.isDict)(obj)) {\n const destDict = new _primitives.Dict(this.xref);\n destDict.set(\"A\", obj);\n const resultObj = {\n url: null,\n dest: null,\n action: null\n };\n Catalog.parseDestDictionary({\n destDict,\n resultObj\n });\n\n if (Array.isArray(resultObj.dest)) {\n if (!openAction) {\n openAction = Object.create(null);\n }\n\n openAction.dest = resultObj.dest;\n } else if (resultObj.action) {\n if (!openAction) {\n openAction = Object.create(null);\n }\n\n openAction.action = resultObj.action;\n }\n } else if (Array.isArray(obj)) {\n if (!openAction) {\n openAction = Object.create(null);\n }\n\n openAction.dest = obj;\n }\n\n return (0, _util.shadow)(this, \"openAction\", openAction);\n }\n\n get attachments() {\n const obj = this._catDict.get(\"Names\");\n\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\n for (const name in names) {\n const fs = new FileSpec(names[name], this.xref);\n\n if (!attachments) {\n attachments = Object.create(null);\n }\n\n attachments[(0, _util.stringToPDFString)(name)] = fs.serializable;\n }\n }\n\n return (0, _util.shadow)(this, \"attachments\", attachments);\n }\n\n get javaScript() {\n const obj = this._catDict.get(\"Names\");\n\n let javaScript = null;\n\n function appendIfJavaScriptDict(jsDict) {\n const type = jsDict.get(\"S\");\n\n if (!(0, _primitives.isName)(type, \"JavaScript\")) {\n return;\n }\n\n let js = jsDict.get(\"JS\");\n\n if ((0, _primitives.isStream)(js)) {\n js = (0, _util.bytesToString)(js.getBytes());\n } else if (!(0, _util.isString)(js)) {\n return;\n }\n\n if (!javaScript) {\n javaScript = [];\n }\n\n javaScript.push((0, _util.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\n for (const name in names) {\n const jsDict = names[name];\n\n if ((0, _primitives.isDict)(jsDict)) {\n appendIfJavaScriptDict(jsDict);\n }\n }\n }\n\n const openAction = this._catDict.get(\"OpenAction\");\n\n if ((0, _primitives.isDict)(openAction) && (0, _primitives.isName)(openAction.get(\"S\"), \"JavaScript\")) {\n appendIfJavaScriptDict(openAction);\n }\n\n return (0, _util.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 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 (0, _primitives.clearPrimitiveCaches)();\n this.globalImageCache.clear(manuallyTriggered);\n this.pageKidsCountCache.clear();\n const promises = [];\n this.fontCache.forEach(function (promise) {\n promises.push(promise);\n });\n return Promise.all(promises).then(translatedFonts => {\n for (const {\n dict\n } of translatedFonts) {\n delete dict.translated;\n }\n\n this.fontCache.clear();\n this.builtInCMapCache.clear();\n });\n }\n\n getPageDict(pageIndex) {\n const capability = (0, _util.createPromiseCapability)();\n const nodesToVisit = [this._catDict.getRaw(\"Pages\")];\n const visitedNodes = new _primitives.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 ((0, _primitives.isRef)(currentNode)) {\n count = pageKidsCountCache.get(currentNode);\n\n if (count > 0 && currentPageIndex + count < pageIndex) {\n currentPageIndex += count;\n continue;\n }\n\n if (visitedNodes.has(currentNode)) {\n capability.reject(new _util.FormatError(\"Pages tree contains circular reference.\"));\n return;\n }\n\n visitedNodes.put(currentNode);\n xref.fetchAsync(currentNode).then(function (obj) {\n if ((0, _primitives.isDict)(obj, \"Page\") || (0, _primitives.isDict)(obj) && !obj.has(\"Kids\")) {\n if (pageIndex === currentPageIndex) {\n if (currentNode && !pageKidsCountCache.has(currentNode)) {\n pageKidsCountCache.put(currentNode, 1);\n }\n\n capability.resolve([obj, currentNode]);\n } else {\n currentPageIndex++;\n next();\n }\n\n return;\n }\n\n nodesToVisit.push(obj);\n next();\n }, capability.reject);\n return;\n }\n\n if (!(0, _primitives.isDict)(currentNode)) {\n capability.reject(new _util.FormatError(\"Page dictionary kid reference points to wrong type of object.\"));\n return;\n }\n\n count = currentNode.get(\"Count\");\n\n if (Number.isInteger(count) && count >= 0) {\n const objId = currentNode.objId;\n\n if (objId && !pageKidsCountCache.has(objId)) {\n pageKidsCountCache.put(objId, count);\n }\n\n if (currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n }\n\n const kids = currentNode.get(\"Kids\");\n\n if (!Array.isArray(kids)) {\n if ((0, _primitives.isName)(currentNode.get(\"Type\"), \"Page\") || !currentNode.has(\"Type\") && currentNode.has(\"Contents\")) {\n if (currentPageIndex === pageIndex) {\n capability.resolve([currentNode, null]);\n return;\n }\n\n currentPageIndex++;\n continue;\n }\n\n capability.reject(new _util.FormatError(\"Page dictionary kids object is not an array.\"));\n return;\n }\n\n for (let last = kids.length - 1; last >= 0; last--) {\n nodesToVisit.push(kids[last]);\n }\n }\n\n capability.reject(new Error(`Page index ${pageIndex} not found.`));\n }\n\n next();\n return capability.promise;\n }\n\n getPageIndex(pageRef) {\n const xref = this.xref;\n\n function pagesBeforeRef(kidRef) {\n let total = 0,\n parentRef;\n return xref.fetchAsync(kidRef).then(function (node) {\n if ((0, _primitives.isRefsEqual)(kidRef, pageRef) && !(0, _primitives.isDict)(node, \"Page\") && !((0, _primitives.isDict)(node) && !node.has(\"Type\") && node.has(\"Contents\"))) {\n throw new _util.FormatError(\"The reference does not point to a /Page dictionary.\");\n }\n\n if (!node) {\n return null;\n }\n\n if (!(0, _primitives.isDict)(node)) {\n throw new _util.FormatError(\"Node must be a dictionary.\");\n }\n\n parentRef = node.getRaw(\"Parent\");\n return node.getAsync(\"Parent\");\n }).then(function (parent) {\n if (!parent) {\n return null;\n }\n\n if (!(0, _primitives.isDict)(parent)) {\n throw new _util.FormatError(\"Parent must be a dictionary.\");\n }\n\n return parent.getAsync(\"Kids\");\n }).then(function (kids) {\n if (!kids) {\n return null;\n }\n\n const kidPromises = [];\n let found = false;\n\n for (let i = 0, ii = kids.length; i < ii; i++) {\n const kid = kids[i];\n\n if (!(0, _primitives.isRef)(kid)) {\n throw new _util.FormatError(\"Kid must be a reference.\");\n }\n\n if ((0, _primitives.isRefsEqual)(kid, kidRef)) {\n found = true;\n break;\n }\n\n kidPromises.push(xref.fetchAsync(kid).then(function (obj) {\n if (!(0, _primitives.isDict)(obj)) {\n throw new _util.FormatError(\"Kid node must be a dictionary.\");\n }\n\n if (obj.has(\"Count\")) {\n total += obj.get(\"Count\");\n } else {\n total++;\n }\n }));\n }\n\n if (!found) {\n throw new _util.FormatError(\"Kid reference not found in parent's kids.\");\n }\n\n return Promise.all(kidPromises).then(function () {\n return [total, parentRef];\n });\n });\n }\n\n let total = 0;\n\n function next(ref) {\n return pagesBeforeRef(ref).then(function (args) {\n if (!args) {\n return total;\n }\n\n const [count, parentRef] = args;\n total += count;\n return next(parentRef);\n });\n }\n\n return next(pageRef);\n }\n\n static parseDestDictionary(params) {\n function addDefaultProtocolToUrl(url) {\n return url.startsWith(\"www.\") ? `http://${url}` : url;\n }\n\n function tryConvertUrlEncoding(url) {\n try {\n return (0, _util.stringToUTF8String)(url);\n } catch (e) {\n return url;\n }\n }\n\n const destDict = params.destDict;\n\n if (!(0, _primitives.isDict)(destDict)) {\n (0, _util.warn)(\"parseDestDictionary: `destDict` must be a dictionary.\");\n return;\n }\n\n const resultObj = params.resultObj;\n\n if (typeof resultObj !== \"object\") {\n (0, _util.warn)(\"parseDestDictionary: `resultObj` must be an object.\");\n return;\n }\n\n const docBaseUrl = params.docBaseUrl || null;\n let action = destDict.get(\"A\"),\n url,\n dest;\n\n if (!(0, _primitives.isDict)(action) && destDict.has(\"Dest\")) {\n action = destDict.get(\"Dest\");\n }\n\n if ((0, _primitives.isDict)(action)) {\n const actionType = action.get(\"S\");\n\n if (!(0, _primitives.isName)(actionType)) {\n (0, _util.warn)(\"parseDestDictionary: Invalid type in Action dictionary.\");\n return;\n }\n\n const actionName = actionType.name;\n\n switch (actionName) {\n case \"URI\":\n url = action.get(\"URI\");\n\n if ((0, _primitives.isName)(url)) {\n url = \"/\" + url.name;\n } else if ((0, _util.isString)(url)) {\n url = addDefaultProtocolToUrl(url);\n }\n\n break;\n\n case \"GoTo\":\n dest = action.get(\"D\");\n break;\n\n case \"Launch\":\n case \"GoToR\":\n const urlDict = action.get(\"F\");\n\n if ((0, _primitives.isDict)(urlDict)) {\n url = urlDict.get(\"F\") || null;\n } else if ((0, _util.isString)(urlDict)) {\n url = urlDict;\n }\n\n let remoteDest = action.get(\"D\");\n\n if (remoteDest) {\n if ((0, _primitives.isName)(remoteDest)) {\n remoteDest = remoteDest.name;\n }\n\n if ((0, _util.isString)(url)) {\n const baseUrl = url.split(\"#\")[0];\n\n if ((0, _util.isString)(remoteDest)) {\n url = baseUrl + \"#\" + remoteDest;\n } else if (Array.isArray(remoteDest)) {\n url = baseUrl + \"#\" + JSON.stringify(remoteDest);\n }\n }\n }\n\n const newWindow = action.get(\"NewWindow\");\n\n if ((0, _util.isBool)(newWindow)) {\n resultObj.newWindow = newWindow;\n }\n\n break;\n\n case \"Named\":\n const namedAction = action.get(\"N\");\n\n if ((0, _primitives.isName)(namedAction)) {\n resultObj.action = namedAction.name;\n }\n\n break;\n\n case \"JavaScript\":\n const jsAction = action.get(\"JS\");\n let js;\n\n if ((0, _primitives.isStream)(jsAction)) {\n js = (0, _util.bytesToString)(jsAction.getBytes());\n } else if ((0, _util.isString)(jsAction)) {\n js = jsAction;\n }\n\n if (js) {\n const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\"];\n const regex = new RegExp(\"^\\\\s*(\" + URL_OPEN_METHODS.join(\"|\").split(\".\").join(\"\\\\.\") + \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\", \"i\");\n const jsUrl = regex.exec((0, _util.stringToPDFString)(js));\n\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\n break;\n }\n }\n\n default:\n (0, _util.warn)(`parseDestDictionary: unsupported action type \"${actionName}\".`);\n break;\n }\n } else if (destDict.has(\"Dest\")) {\n dest = destDict.get(\"Dest\");\n }\n\n if ((0, _util.isString)(url)) {\n url = tryConvertUrlEncoding(url);\n const absoluteUrl = (0, _util.createValidAbsoluteUrl)(url, docBaseUrl);\n\n if (absoluteUrl) {\n resultObj.url = absoluteUrl.href;\n }\n\n resultObj.unsafeUrl = url;\n }\n\n if (dest) {\n if ((0, _primitives.isName)(dest)) {\n dest = dest.name;\n }\n\n if ((0, _util.isString)(dest) || Array.isArray(dest)) {\n resultObj.dest = dest;\n }\n }\n }\n\n}\n\nexports.Catalog = Catalog;\n\nvar XRef = function XRefClosure() {\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();\n this.stats = {\n streamTypes: Object.create(null),\n fontTypes: Object.create(null)\n };\n this._newRefNum = null;\n }\n\n XRef.prototype = {\n getNewRef: function XRef_getNewRef() {\n if (this._newRefNum === null) {\n this._newRefNum = this.entries.length;\n }\n\n return _primitives.Ref.get(this._newRefNum++, 0);\n },\n resetNewRef: function XRef_resetNewRef() {\n this._newRefNum = null;\n },\n setStartXRef: function XRef_setStartXRef(startXRef) {\n this.startXRefQueue = [startXRef];\n },\n parse: function XRef_parse(recoveryMode) {\n var trailerDict;\n\n if (!recoveryMode) {\n trailerDict = this.readXRef();\n } else {\n (0, _util.warn)(\"Indexing all PDF objects\");\n trailerDict = this.indexObjects();\n }\n\n trailerDict.assignXref(this);\n this.trailer = trailerDict;\n let encrypt;\n\n try {\n encrypt = trailerDict.get(\"Encrypt\");\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(`XRef.parse - Invalid \"Encrypt\" reference: \"${ex}\".`);\n }\n\n if ((0, _primitives.isDict)(encrypt)) {\n var ids = trailerDict.get(\"ID\");\n var fileId = ids && ids.length ? ids[0] : \"\";\n encrypt.suppressEncryption = true;\n this.encrypt = new _crypto.CipherTransformFactory(encrypt, fileId, this.pdfManager.password);\n }\n\n let root;\n\n try {\n root = trailerDict.get(\"Root\");\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(`XRef.parse - Invalid \"Root\" reference: \"${ex}\".`);\n }\n\n if ((0, _primitives.isDict)(root) && root.has(\"Pages\")) {\n this.root = root;\n } else {\n if (!recoveryMode) {\n throw new _core_utils.XRefParseException();\n }\n\n throw new _util.FormatError(\"Invalid root reference\");\n }\n },\n processXRefTable: function XRef_processXRefTable(parser) {\n if (!(\"tableState\" in this)) {\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 if (!(0, _primitives.isCmd)(obj, \"trailer\")) {\n throw new _util.FormatError(\"Invalid XRef table: could not find trailer dictionary\");\n }\n\n var dict = parser.getObj();\n\n if (!(0, _primitives.isDict)(dict) && dict.dict) {\n dict = dict.dict;\n }\n\n if (!(0, _primitives.isDict)(dict)) {\n throw new _util.FormatError(\"Invalid XRef table: could not parse trailer dictionary\");\n }\n\n delete this.tableState;\n return dict;\n },\n readXRefTable: function XRef_readXRefTable(parser) {\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 var obj;\n\n while (true) {\n if (!(\"firstEntryNum\" in tableState) || !(\"entryCount\" in tableState)) {\n if ((0, _primitives.isCmd)(obj = parser.getObj(), \"trailer\")) {\n break;\n }\n\n tableState.firstEntryNum = obj;\n tableState.entryCount = parser.getObj();\n }\n\n var first = tableState.firstEntryNum;\n var count = tableState.entryCount;\n\n if (!Number.isInteger(first) || !Number.isInteger(count)) {\n throw new _util.FormatError(\"Invalid XRef table: wrong types in subsection header\");\n }\n\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 var entry = {};\n entry.offset = parser.getObj();\n entry.gen = parser.getObj();\n var type = parser.getObj();\n\n if (type instanceof _primitives.Cmd) {\n switch (type.cmd) {\n case \"f\":\n entry.free = true;\n break;\n\n case \"n\":\n entry.uncompressed = true;\n break;\n }\n }\n\n if (!Number.isInteger(entry.offset) || !Number.isInteger(entry.gen) || !(entry.free || entry.uncompressed)) {\n throw new _util.FormatError(`Invalid entry in XRef subsection: ${first}, ${count}`);\n }\n\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 if (this.entries[0] && !this.entries[0].free) {\n throw new _util.FormatError(\"Invalid XRef table: unexpected first object\");\n }\n\n return obj;\n },\n processXRefStream: function XRef_processXRefStream(stream) {\n if (!(\"streamState\" in this)) {\n var streamParameters = stream.dict;\n var byteWidths = streamParameters.get(\"W\");\n var range = streamParameters.get(\"Index\");\n\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\n this.readXRefStream(stream);\n delete this.streamState;\n return stream.dict;\n },\n readXRefStream: function XRef_readXRefStream(stream) {\n var i, j;\n var streamState = this.streamState;\n stream.pos = streamState.streamPos;\n var byteWidths = streamState.byteWidths;\n var typeFieldWidth = byteWidths[0];\n var offsetFieldWidth = byteWidths[1];\n var generationFieldWidth = byteWidths[2];\n var entryRanges = streamState.entryRanges;\n\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 _util.FormatError(`Invalid XRef range fields: ${first}, ${n}`);\n }\n\n if (!Number.isInteger(typeFieldWidth) || !Number.isInteger(offsetFieldWidth) || !Number.isInteger(generationFieldWidth)) {\n throw new _util.FormatError(`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 var type = 0,\n offset = 0,\n generation = 0;\n\n for (j = 0; j < typeFieldWidth; ++j) {\n type = type << 8 | stream.getByte();\n }\n\n if (typeFieldWidth === 0) {\n type = 1;\n }\n\n for (j = 0; j < offsetFieldWidth; ++j) {\n offset = offset << 8 | stream.getByte();\n }\n\n for (j = 0; j < generationFieldWidth; ++j) {\n generation = generation << 8 | stream.getByte();\n }\n\n var entry = {};\n entry.offset = offset;\n entry.gen = generation;\n\n switch (type) {\n case 0:\n entry.free = true;\n break;\n\n case 1:\n entry.uncompressed = true;\n break;\n\n case 2:\n break;\n\n default:\n throw new _util.FormatError(`Invalid XRef entry type: ${type}`);\n }\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 indexObjects: function XRef_indexObjects() {\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\n while (ch !== LF && ch !== CR && ch !== LT) {\n if (++offset >= data.length) {\n break;\n }\n\n token += String.fromCharCode(ch);\n ch = data[offset];\n }\n\n return token;\n }\n\n function skipUntil(data, offset, what) {\n var length = what.length,\n dataLength = data.length;\n var skipped = 0;\n\n while (offset < dataLength) {\n var i = 0;\n\n while (i < length && data[offset + i] === what[i]) {\n ++i;\n }\n\n if (i >= length) {\n break;\n }\n\n offset++;\n skipped++;\n }\n\n return skipped;\n }\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 var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]);\n const objBytes = new Uint8Array([111, 98, 106]);\n var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n this.entries.length = 0;\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\n while (position < length) {\n var ch = buffer[position];\n\n if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n ++position;\n continue;\n }\n\n if (ch === PERCENT) {\n do {\n ++position;\n\n if (position >= length) {\n break;\n }\n\n ch = buffer[position];\n } while (ch !== LF && ch !== CR);\n\n continue;\n }\n\n var token = readToken(buffer, position);\n var m;\n\n if (token.startsWith(\"xref\") && (token.length === 4 || /\\s/.test(token[4]))) {\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\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\n let contentLength,\n startPos = position + token.length;\n\n while (startPos < buffer.length) {\n const endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4;\n contentLength = endPos - position;\n const checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos);\n const tokenStr = (0, _util.bytesToString)(buffer.subarray(checkPos, endPos));\n\n if (endobjRegExp.test(tokenStr)) {\n break;\n } else {\n const objToken = nestedObjRegExp.exec(tokenStr);\n\n if (objToken && objToken[1]) {\n (0, _util.warn)('indexObjects: Found new \"obj\" inside of another \"obj\", ' + 'caused by missing \"endobj\" -- trying to recover.');\n contentLength -= objToken[1].length;\n break;\n }\n }\n\n startPos = endPos;\n }\n\n const content = buffer.subarray(position, position + contentLength);\n var xrefTagOffset = skipUntil(content, 0, xrefBytes);\n\n if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n xrefStms.push(position - stream.start);\n this.xrefstms[position - stream.start] = 1;\n }\n\n position += contentLength;\n } else if (token.startsWith(\"trailer\") && (token.length === 7 || /\\s/.test(token[7]))) {\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else {\n position += token.length + 1;\n }\n }\n\n var i, ii;\n\n for (i = 0, ii = xrefStms.length; i < ii; ++i) {\n this.startXRefQueue.push(xrefStms[i]);\n this.readXRef(true);\n }\n\n let trailerDict;\n\n for (i = 0, ii = trailers.length; i < ii; ++i) {\n stream.pos = trailers[i];\n const parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream),\n xref: this,\n allowStreams: true,\n recoveryMode: true\n });\n var obj = parser.getObj();\n\n if (!(0, _primitives.isCmd)(obj, \"trailer\")) {\n continue;\n }\n\n const dict = parser.getObj();\n\n if (!(0, _primitives.isDict)(dict)) {\n continue;\n }\n\n let rootDict;\n\n try {\n rootDict = dict.get(\"Root\");\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n continue;\n }\n\n if (!(0, _primitives.isDict)(rootDict) || !rootDict.has(\"Pages\")) {\n continue;\n }\n\n if (dict.has(\"ID\")) {\n return dict;\n }\n\n trailerDict = dict;\n }\n\n if (trailerDict) {\n return trailerDict;\n }\n\n throw new _util.InvalidPDFException(\"Invalid PDF structure.\");\n },\n readXRef: function XRef_readXRef(recoveryMode) {\n var stream = this.stream;\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 (0, _util.warn)(\"readXRef - skipping XRef table since it was already parsed.\");\n this.startXRefQueue.shift();\n continue;\n }\n\n startXRefParsedCache[startXRef] = true;\n stream.pos = startXRef + stream.start;\n const parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream),\n xref: this,\n allowStreams: true\n });\n var obj = parser.getObj();\n var dict;\n\n if ((0, _primitives.isCmd)(obj, \"xref\")) {\n dict = this.processXRefTable(parser);\n\n if (!this.topDict) {\n this.topDict = dict;\n }\n\n obj = dict.get(\"XRefStm\");\n\n if (Number.isInteger(obj)) {\n var pos = obj;\n\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 if (!Number.isInteger(parser.getObj()) || !(0, _primitives.isCmd)(parser.getObj(), \"obj\") || !(0, _primitives.isStream)(obj = parser.getObj())) {\n throw new _util.FormatError(\"Invalid XRef stream\");\n }\n\n dict = this.processXRefStream(obj);\n\n if (!this.topDict) {\n this.topDict = dict;\n }\n\n if (!dict) {\n throw new _util.FormatError(\"Failed to read XRef stream\");\n }\n } else {\n throw new _util.FormatError(\"Invalid XRef stream header\");\n }\n\n obj = dict.get(\"Prev\");\n\n if (Number.isInteger(obj)) {\n this.startXRefQueue.push(obj);\n } else if ((0, _primitives.isRef)(obj)) {\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 _core_utils.MissingDataException) {\n throw e;\n }\n\n (0, _util.info)(\"(while reading XRef): \" + e);\n }\n\n if (recoveryMode) {\n return undefined;\n }\n\n throw new _core_utils.XRefParseException();\n },\n getEntry: function XRef_getEntry(i) {\n var xrefEntry = this.entries[i];\n\n if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n return xrefEntry;\n }\n\n return null;\n },\n fetchIfRef: function XRef_fetchIfRef(obj, suppressEncryption) {\n if (obj instanceof _primitives.Ref) {\n return this.fetch(obj, suppressEncryption);\n }\n\n return obj;\n },\n fetch: function XRef_fetch(ref, suppressEncryption) {\n if (!(ref instanceof _primitives.Ref)) {\n throw new Error(\"ref object is not a reference\");\n }\n\n const num = ref.num;\n\n const cacheEntry = this._cacheMap.get(num);\n\n if (cacheEntry !== undefined) {\n if (cacheEntry instanceof _primitives.Dict && !cacheEntry.objId) {\n cacheEntry.objId = ref.toString();\n }\n\n return cacheEntry;\n }\n\n let xrefEntry = this.getEntry(num);\n\n if (xrefEntry === null) {\n this._cacheMap.set(num, xrefEntry);\n\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\n if ((0, _primitives.isDict)(xrefEntry)) {\n xrefEntry.objId = ref.toString();\n } else if ((0, _primitives.isStream)(xrefEntry)) {\n xrefEntry.dict.objId = ref.toString();\n }\n\n return xrefEntry;\n },\n\n fetchUncompressed(ref, xrefEntry, suppressEncryption = false) {\n var gen = ref.gen;\n var num = ref.num;\n\n if (xrefEntry.gen !== gen) {\n throw new _core_utils.XRefEntryException(`Inconsistent generation in XRef: ${ref}`);\n }\n\n var stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start);\n const parser = new _parser.Parser({\n lexer: new _parser.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 _primitives.Cmd)) {\n throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n\n if (obj3.cmd !== \"obj\") {\n if (obj3.cmd.startsWith(\"obj\")) {\n num = parseInt(obj3.cmd.substring(3), 10);\n\n if (!Number.isNaN(num)) {\n return num;\n }\n }\n\n throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n\n if (this.encrypt && !suppressEncryption) {\n xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n } else {\n xrefEntry = parser.getObj();\n }\n\n if (!(0, _primitives.isStream)(xrefEntry)) {\n this._cacheMap.set(num, xrefEntry);\n }\n\n return xrefEntry;\n },\n\n fetchCompressed(ref, xrefEntry, suppressEncryption = false) {\n const tableOffset = xrefEntry.offset;\n const stream = this.fetch(_primitives.Ref.get(tableOffset, 0));\n\n if (!(0, _primitives.isStream)(stream)) {\n throw new _util.FormatError(\"bad ObjStm stream\");\n }\n\n const first = stream.dict.get(\"First\");\n const n = stream.dict.get(\"N\");\n\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new _util.FormatError(\"invalid first and n parameters for ObjStm stream\");\n }\n\n const parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream),\n xref: this,\n allowStreams: true\n });\n const nums = new Array(n);\n\n for (let i = 0; i < n; ++i) {\n const num = parser.getObj();\n\n if (!Number.isInteger(num)) {\n throw new _util.FormatError(`invalid object number in the ObjStm stream: ${num}`);\n }\n\n const offset = parser.getObj();\n\n if (!Number.isInteger(offset)) {\n throw new _util.FormatError(`invalid object offset in the ObjStm stream: ${offset}`);\n }\n\n nums[i] = num;\n }\n\n const entries = new Array(n);\n\n for (let i = 0; i < n; ++i) {\n const obj = parser.getObj();\n entries[i] = obj;\n\n if (parser.buf1 instanceof _primitives.Cmd && parser.buf1.cmd === \"endobj\") {\n parser.shift();\n }\n\n if ((0, _primitives.isStream)(obj)) {\n continue;\n }\n\n const num = nums[i],\n entry = this.entries[num];\n\n if (entry && entry.offset === tableOffset && entry.gen === i) {\n this._cacheMap.set(num, obj);\n }\n }\n\n xrefEntry = entries[xrefEntry.gen];\n\n if (xrefEntry === undefined) {\n throw new _core_utils.XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);\n }\n\n return xrefEntry;\n },\n\n async fetchIfRefAsync(obj, suppressEncryption) {\n if (obj instanceof _primitives.Ref) {\n return this.fetchAsync(obj, suppressEncryption);\n }\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 _core_utils.MissingDataException)) {\n throw ex;\n }\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 return XRef;\n}();\n\nexports.XRef = XRef;\n\nclass NameOrNumberTree {\n constructor(root, xref, type) {\n if (this.constructor === NameOrNumberTree) {\n (0, _util.unreachable)(\"Cannot initialize NameOrNumberTree.\");\n }\n\n this.root = root;\n this.xref = xref;\n this._type = type;\n }\n\n getAll() {\n const dict = Object.create(null);\n\n if (!this.root) {\n return dict;\n }\n\n const xref = this.xref;\n const processed = new _primitives.RefSet();\n processed.put(this.root);\n const queue = [this.root];\n\n while (queue.length > 0) {\n const obj = xref.fetchIfRef(queue.shift());\n\n if (!(0, _primitives.isDict)(obj)) {\n continue;\n }\n\n if (obj.has(\"Kids\")) {\n const kids = obj.get(\"Kids\");\n\n for (let i = 0, ii = kids.length; i < ii; i++) {\n const kid = kids[i];\n\n if (processed.has(kid)) {\n throw new _util.FormatError(`Duplicate entry in \"${this._type}\" tree.`);\n }\n\n queue.push(kid);\n processed.put(kid);\n }\n\n continue;\n }\n\n const entries = obj.get(this._type);\n\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\n return dict;\n }\n\n get(key) {\n if (!this.root) {\n return null;\n }\n\n const xref = this.xref;\n let kidsOrEntries = xref.fetchIfRef(this.root);\n let loopCount = 0;\n const MAX_LEVELS = 10;\n\n while (kidsOrEntries.has(\"Kids\")) {\n if (++loopCount > MAX_LEVELS) {\n (0, _util.warn)(`Search depth limit reached for \"${this._type}\" tree.`);\n return null;\n }\n\n const kids = kidsOrEntries.get(\"Kids\");\n\n if (!Array.isArray(kids)) {\n return null;\n }\n\n let l = 0,\n r = kids.length - 1;\n\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\n if (l > r) {\n return null;\n }\n }\n\n const entries = kidsOrEntries.get(this._type);\n\n if (Array.isArray(entries)) {\n let l = 0,\n r = entries.length - 2;\n\n while (l <= r) {\n const tmp = l + r >> 1,\n m = tmp + (tmp & 1);\n const currentKey = xref.fetchIfRef(entries[m]);\n\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 (0, _util.info)(`Falling back to an exhaustive search, for key \"${key}\", ` + `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\n if (currentKey === key) {\n (0, _util.warn)(`The \"${key}\" key was found at an incorrect, ` + `i.e. out-of-order, position in \"${this._type}\" tree.`);\n return xref.fetchIfRef(entries[m + 1]);\n }\n }\n }\n\n return null;\n }\n\n}\n\nclass NameTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Names\");\n }\n\n}\n\nclass NumberTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Nums\");\n }\n\n}\n\nvar FileSpec = function FileSpecClosure() {\n function FileSpec(root, xref) {\n if (!root || !(0, _primitives.isDict)(root)) {\n return;\n }\n\n this.xref = xref;\n this.root = root;\n\n if (root.has(\"FS\")) {\n this.fs = root.get(\"FS\");\n }\n\n this.description = root.has(\"Desc\") ? (0, _util.stringToPDFString)(root.get(\"Desc\")) : \"\";\n\n if (root.has(\"RF\")) {\n (0, _util.warn)(\"Related file specifications are not supported\");\n }\n\n this.contentAvailable = true;\n\n if (!root.has(\"EF\")) {\n this.contentAvailable = false;\n (0, _util.warn)(\"Non-embedded file specifications are not supported\");\n }\n }\n\n function pickPlatformItem(dict) {\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\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 = (0, _util.stringToPDFString)(filename).replace(/\\\\\\\\/g, \"\\\\\").replace(/\\\\\\//g, \"/\").replace(/\\\\/g, \"/\");\n }\n\n return this._filename;\n },\n\n get content() {\n if (!this.contentAvailable) {\n return null;\n }\n\n if (!this.contentRef && this.root) {\n this.contentRef = pickPlatformItem(this.root.get(\"EF\"));\n }\n\n var content = null;\n\n if (this.contentRef) {\n var xref = this.xref;\n var fileObj = xref.fetchIfRef(this.contentRef);\n\n if (fileObj && (0, _primitives.isStream)(fileObj)) {\n content = fileObj.getBytes();\n } else {\n (0, _util.warn)(\"Embedded file specification points to non-existing/invalid \" + \"content\");\n }\n } else {\n (0, _util.warn)(\"Embedded file specification does not have a content\");\n }\n\n return content;\n },\n\n get serializable() {\n return {\n filename: this.filename,\n content: this.content\n };\n }\n\n };\n return FileSpec;\n}();\n\nexports.FileSpec = FileSpec;\n\nconst ObjectLoader = function () {\n function mayHaveChildren(value) {\n return value instanceof _primitives.Ref || value instanceof _primitives.Dict || Array.isArray(value) || (0, _primitives.isStream)(value);\n }\n\n function addChildren(node, nodesToVisit) {\n if (node instanceof _primitives.Dict) {\n node = node.getRawValues();\n } else if ((0, _primitives.isStream)(node)) {\n node = node.dict.getRawValues();\n } else if (!Array.isArray(node)) {\n return;\n }\n\n for (const rawValue of node) {\n if (mayHaveChildren(rawValue)) {\n nodesToVisit.push(rawValue);\n }\n }\n }\n\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 if (!this.xref.stream.allChunksLoaded || this.xref.stream.allChunksLoaded()) {\n return undefined;\n }\n\n const {\n keys,\n dict\n } = this;\n this.refSet = new _primitives.RefSet();\n const nodesToVisit = [];\n\n for (let i = 0, ii = keys.length; i < ii; i++) {\n const rawValue = dict.getRaw(keys[i]);\n\n if (rawValue !== undefined) {\n nodesToVisit.push(rawValue);\n }\n }\n\n return this._walk(nodesToVisit);\n },\n\n async _walk(nodesToVisit) {\n const nodesToRevisit = [];\n const pendingRequests = [];\n\n while (nodesToVisit.length) {\n let currentNode = nodesToVisit.pop();\n\n if (currentNode instanceof _primitives.Ref) {\n if (this.refSet.has(currentNode)) {\n continue;\n }\n\n try {\n this.refSet.put(currentNode);\n currentNode = this.xref.fetch(currentNode);\n } catch (ex) {\n if (!(ex instanceof _core_utils.MissingDataException)) {\n throw ex;\n }\n\n nodesToRevisit.push(currentNode);\n pendingRequests.push({\n begin: ex.begin,\n end: ex.end\n });\n }\n }\n\n if (currentNode && currentNode.getBaseStreams) {\n const baseStreams = currentNode.getBaseStreams();\n let foundMissingData = false;\n\n for (let i = 0, ii = baseStreams.length; i < ii; i++) {\n const stream = baseStreams[i];\n\n if (stream.allChunksLoaded && !stream.allChunksLoaded()) {\n foundMissingData = true;\n pendingRequests.push({\n begin: stream.start,\n end: stream.end\n });\n }\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\n if (node instanceof _primitives.Ref) {\n this.refSet.remove(node);\n }\n }\n\n return this._walk(nodesToRevisit);\n }\n\n this.refSet = null;\n return undefined;\n }\n\n };\n return ObjectLoader;\n}();\n\nexports.ObjectLoader = ObjectLoader;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Parser = exports.Linearization = exports.Lexer = void 0;\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _ccitt_stream = __w_pdfjs_require__(13);\n\nvar _jbig2_stream = __w_pdfjs_require__(15);\n\nvar _jpeg_stream = __w_pdfjs_require__(18);\n\nvar _jpx_stream = __w_pdfjs_require__(20);\n\nconst MAX_LENGTH_TO_CACHE = 1000;\nconst MAX_ADLER32_LENGTH = 5552;\n\nfunction computeAdler32(bytes) {\n const bytesLength = bytes.length;\n let a = 1,\n b = 0;\n\n for (let i = 0; i < bytesLength; ++i) {\n a += bytes[i] & 0xff;\n b += a;\n }\n\n return b % 65521 << 16 | a % 65521;\n}\n\nclass Parser {\n constructor({\n lexer,\n xref,\n allowStreams = false,\n recoveryMode = false\n }) {\n this.lexer = lexer;\n this.xref = xref;\n this.allowStreams = allowStreams;\n this.recoveryMode = recoveryMode;\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 _primitives.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 _core_utils.MissingDataException) {\n throw e;\n }\n\n return false;\n }\n }\n\n getObj(cipherTransform = null) {\n const buf1 = this.buf1;\n this.shift();\n\n if (buf1 instanceof _primitives.Cmd) {\n switch (buf1.cmd) {\n case \"BI\":\n return this.makeInlineImage(cipherTransform);\n\n case \"[\":\n const array = [];\n\n while (!(0, _primitives.isCmd)(this.buf1, \"]\") && !(0, _primitives.isEOF)(this.buf1)) {\n array.push(this.getObj(cipherTransform));\n }\n\n if ((0, _primitives.isEOF)(this.buf1)) {\n if (!this.recoveryMode) {\n throw new _util.FormatError(\"End of file inside array\");\n }\n\n return array;\n }\n\n this.shift();\n return array;\n\n case \"<<\":\n const dict = new _primitives.Dict(this.xref);\n\n while (!(0, _primitives.isCmd)(this.buf1, \">>\") && !(0, _primitives.isEOF)(this.buf1)) {\n if (!(0, _primitives.isName)(this.buf1)) {\n (0, _util.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\n if ((0, _primitives.isEOF)(this.buf1)) {\n break;\n }\n\n dict.set(key, this.getObj(cipherTransform));\n }\n\n if ((0, _primitives.isEOF)(this.buf1)) {\n if (!this.recoveryMode) {\n throw new _util.FormatError(\"End of file inside dictionary\");\n }\n\n return dict;\n }\n\n if ((0, _primitives.isCmd)(this.buf2, \"stream\")) {\n return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict;\n }\n\n this.shift();\n return dict;\n\n default:\n return buf1;\n }\n }\n\n if (Number.isInteger(buf1)) {\n if (Number.isInteger(this.buf1) && (0, _primitives.isCmd)(this.buf2, \"R\")) {\n const ref = _primitives.Ref.get(buf1, this.buf1);\n\n this.shift();\n this.shift();\n return ref;\n }\n\n return buf1;\n }\n\n if (typeof buf1 === \"string\") {\n if (cipherTransform) {\n return cipherTransform.decryptString(buf1);\n }\n\n return buf1;\n }\n\n return buf1;\n }\n\n findDefaultInlineStreamEnd(stream) {\n const E = 0x45,\n I = 0x49,\n SPACE = 0x20,\n LF = 0xa,\n CR = 0xd,\n NUL = 0x0;\n const lexer = this.lexer,\n startPos = stream.pos,\n n = 10;\n let state = 0,\n ch,\n maybeEIPos;\n\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 (0, _util.assert)(state === 2, \"findDefaultInlineStreamEnd - invalid state.\");\n\n if (ch === SPACE || ch === LF || ch === CR) {\n maybeEIPos = stream.pos;\n const followingBytes = stream.peekBytes(n);\n\n for (let i = 0, ii = followingBytes.length; i < ii; i++) {\n ch = followingBytes[i];\n\n if (ch === NUL && followingBytes[i + 1] !== NUL) {\n continue;\n }\n\n if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) {\n state = 0;\n break;\n }\n }\n\n if (state !== 2) {\n continue;\n }\n\n if (lexer.knownCommands) {\n const nextObj = lexer.peekObj();\n\n if (nextObj instanceof _primitives.Cmd && !lexer.knownCommands[nextObj.cmd]) {\n state = 0;\n }\n } else {\n (0, _util.warn)(\"findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.\");\n }\n\n if (state === 2) {\n break;\n }\n } else {\n state = 0;\n }\n }\n }\n\n if (ch === -1) {\n (0, _util.warn)(\"findDefaultInlineStreamEnd: \" + \"Reached the end of the stream without finding a valid EI marker\");\n\n if (maybeEIPos) {\n (0, _util.warn)('... trying to recover by using the last \"EI\" occurrence.');\n stream.skip(-(stream.pos - maybeEIPos));\n }\n }\n\n let endOffset = 4;\n stream.skip(-endOffset);\n ch = stream.peekByte();\n stream.skip(endOffset);\n\n if (!(0, _core_utils.isWhiteSpace)(ch)) {\n endOffset--;\n }\n\n return stream.pos - endOffset - startPos;\n }\n\n findDCTDecodeInlineStreamEnd(stream) {\n const startPos = stream.pos;\n let foundEOI = false,\n b,\n markerLength;\n\n while ((b = stream.getByte()) !== -1) {\n if (b !== 0xff) {\n continue;\n }\n\n switch (stream.getByte()) {\n case 0x00:\n break;\n\n case 0xff:\n stream.skip(-1);\n break;\n\n case 0xd9:\n foundEOI = true;\n break;\n\n case 0xc0:\n case 0xc1:\n case 0xc2:\n case 0xc3:\n case 0xc5:\n case 0xc6:\n case 0xc7:\n case 0xc9:\n case 0xca:\n case 0xcb:\n case 0xcd:\n case 0xce:\n case 0xcf:\n case 0xc4:\n case 0xcc:\n case 0xda:\n case 0xdb:\n case 0xdc:\n case 0xdd:\n case 0xde:\n case 0xdf:\n case 0xe0:\n case 0xe1:\n case 0xe2:\n case 0xe3:\n case 0xe4:\n case 0xe5:\n case 0xe6:\n case 0xe7:\n case 0xe8:\n case 0xe9:\n case 0xea:\n case 0xeb:\n case 0xec:\n case 0xed:\n case 0xee:\n case 0xef:\n case 0xfe:\n markerLength = stream.getUint16();\n\n if (markerLength > 2) {\n stream.skip(markerLength - 2);\n } else {\n stream.skip(-2);\n }\n\n break;\n }\n\n if (foundEOI) {\n break;\n }\n }\n\n const length = stream.pos - startPos;\n\n if (b === -1) {\n (0, _util.warn)(\"Inline DCTDecode image stream: \" + \"EOI marker not found, searching for /EI/ instead.\");\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n findASCII85DecodeInlineStreamEnd(stream) {\n const TILDE = 0x7e,\n GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n\n while ((ch = stream.getByte()) !== -1) {\n if (ch === TILDE) {\n const tildePos = stream.pos;\n ch = stream.peekByte();\n\n while ((0, _core_utils.isWhiteSpace)(ch)) {\n stream.skip();\n ch = stream.peekByte();\n }\n\n if (ch === GT) {\n stream.skip();\n break;\n }\n\n if (stream.pos > tildePos) {\n const maybeEI = stream.peekBytes(2);\n\n if (maybeEI[0] === 0x45 && maybeEI[1] === 0x49) {\n break;\n }\n }\n }\n }\n\n const length = stream.pos - startPos;\n\n if (ch === -1) {\n (0, _util.warn)(\"Inline ASCII85Decode image stream: \" + \"EOD marker not found, searching for /EI/ instead.\");\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n findASCIIHexDecodeInlineStreamEnd(stream) {\n const GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n\n while ((ch = stream.getByte()) !== -1) {\n if (ch === GT) {\n break;\n }\n }\n\n const length = stream.pos - startPos;\n\n if (ch === -1) {\n (0, _util.warn)(\"Inline ASCIIHexDecode image stream: \" + \"EOD marker not found, searching for /EI/ instead.\");\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n inlineStreamSkipEI(stream) {\n const E = 0x45,\n I = 0x49;\n let state = 0,\n ch;\n\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 const dict = new _primitives.Dict(this.xref);\n let dictLength;\n\n while (!(0, _primitives.isCmd)(this.buf1, \"ID\") && !(0, _primitives.isEOF)(this.buf1)) {\n if (!(0, _primitives.isName)(this.buf1)) {\n throw new _util.FormatError(\"Dictionary key must be a name object\");\n }\n\n const key = this.buf1.name;\n this.shift();\n\n if ((0, _primitives.isEOF)(this.buf1)) {\n break;\n }\n\n dict.set(key, this.getObj(cipherTransform));\n }\n\n if (lexer.beginInlineImagePos !== -1) {\n dictLength = stream.pos - lexer.beginInlineImagePos;\n }\n\n const filter = dict.get(\"Filter\", \"F\");\n let filterName;\n\n if ((0, _primitives.isName)(filter)) {\n filterName = filter.name;\n } else if (Array.isArray(filter)) {\n const filterZero = this.xref.fetchIfRef(filter[0]);\n\n if ((0, _primitives.isName)(filterZero)) {\n filterName = filterZero.name;\n }\n }\n\n const startPos = stream.pos;\n let length;\n\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\n let imageStream = stream.makeSubStream(startPos, length, dict);\n let cacheKey;\n\n if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) {\n const imageBytes = imageStream.getBytes();\n imageStream.reset();\n const initialStreamPos = stream.pos;\n stream.pos = lexer.beginInlineImagePos;\n const dictBytes = stream.getBytes(dictLength);\n stream.pos = initialStreamPos;\n cacheKey = computeAdler32(imageBytes) + \"_\" + computeAdler32(dictBytes);\n const cacheEntry = this.imageCache[cacheKey];\n\n if (cacheEntry !== undefined) {\n this.buf2 = _primitives.Cmd.get(\"EI\");\n this.shift();\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\n if (cacheKey !== undefined) {\n imageStream.cacheKey = `inline_${length}_${cacheKey}`;\n this.imageCache[cacheKey] = imageStream;\n }\n\n this.buf2 = _primitives.Cmd.get(\"EI\");\n this.shift();\n return imageStream;\n }\n\n _findStreamLength(startPos, signature) {\n const {\n stream\n } = this.lexer;\n stream.pos = startPos;\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\n let pos = 0;\n\n while (pos < scanLength) {\n let j = 0;\n\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n\n if (j >= signatureLength) {\n stream.pos += pos;\n return stream.pos - startPos;\n }\n\n pos++;\n }\n\n stream.pos += scanLength;\n }\n\n return -1;\n }\n\n makeStream(dict, cipherTransform) {\n const lexer = this.lexer;\n let stream = lexer.stream;\n lexer.skipToNextLine();\n const startPos = stream.pos - 1;\n let length = dict.get(\"Length\");\n\n if (!Number.isInteger(length)) {\n (0, _util.info)(`Bad length \"${length}\" in stream`);\n length = 0;\n }\n\n stream.pos = startPos + length;\n lexer.nextChar();\n\n if (this.tryShift() && (0, _primitives.isCmd)(this.buf2, \"endstream\")) {\n this.shift();\n } else {\n const ENDSTREAM_SIGNATURE = new Uint8Array([0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D]);\n\n let actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n\n if (actualLength < 0) {\n const MAX_TRUNCATION = 1;\n\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(startPos, TRUNCATED_SIGNATURE);\n\n if (maybeLength >= 0) {\n const lastByte = stream.peekBytes(end + 1)[end];\n\n if (!(0, _core_utils.isWhiteSpace)(lastByte)) {\n break;\n }\n\n (0, _util.info)(`Found \"${(0, _util.bytesToString)(TRUNCATED_SIGNATURE)}\" when ` + \"searching for endstream command.\");\n actualLength = maybeLength;\n break;\n }\n }\n\n if (actualLength < 0) {\n throw new _util.FormatError(\"Missing endstream command.\");\n }\n }\n\n length = actualLength;\n lexer.nextChar();\n this.shift();\n this.shift();\n }\n\n this.shift();\n stream = stream.makeSubStream(startPos, length, dict);\n\n if (cipherTransform) {\n stream = cipherTransform.createStream(stream, length);\n }\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 ((0, _primitives.isName)(filter)) {\n if (Array.isArray(params)) {\n (0, _util.warn)(\"/DecodeParms should not contain an Array, \" + \"when /Filter contains a Name.\");\n }\n\n return this.makeFilter(stream, filter.name, length, params);\n }\n\n let maybeLength = length;\n\n if (Array.isArray(filter)) {\n const filterArray = filter;\n const paramsArray = params;\n\n for (let i = 0, ii = filterArray.length; i < ii; ++i) {\n filter = this.xref.fetchIfRef(filterArray[i]);\n\n if (!(0, _primitives.isName)(filter)) {\n throw new _util.FormatError(`Bad filter name \"${filter}\"`);\n }\n\n params = null;\n\n if (Array.isArray(paramsArray) && i in paramsArray) {\n params = this.xref.fetchIfRef(paramsArray[i]);\n }\n\n stream = this.makeFilter(stream, filter.name, maybeLength, params);\n maybeLength = null;\n }\n }\n\n return stream;\n }\n\n makeFilter(stream, name, maybeLength, params) {\n if (maybeLength === 0) {\n (0, _util.warn)(`Empty \"${name}\" stream.`);\n return new _stream.NullStream();\n }\n\n try {\n const xrefStreamStats = this.xref.stats.streamTypes;\n\n if (name === \"FlateDecode\" || name === \"Fl\") {\n xrefStreamStats[_util.StreamType.FLATE] = true;\n\n if (params) {\n return new _stream.PredictorStream(new _stream.FlateStream(stream, maybeLength), maybeLength, params);\n }\n\n return new _stream.FlateStream(stream, maybeLength);\n }\n\n if (name === \"LZWDecode\" || name === \"LZW\") {\n xrefStreamStats[_util.StreamType.LZW] = true;\n let earlyChange = 1;\n\n if (params) {\n if (params.has(\"EarlyChange\")) {\n earlyChange = params.get(\"EarlyChange\");\n }\n\n return new _stream.PredictorStream(new _stream.LZWStream(stream, maybeLength, earlyChange), maybeLength, params);\n }\n\n return new _stream.LZWStream(stream, maybeLength, earlyChange);\n }\n\n if (name === \"DCTDecode\" || name === \"DCT\") {\n xrefStreamStats[_util.StreamType.DCT] = true;\n return new _jpeg_stream.JpegStream(stream, maybeLength, stream.dict, params);\n }\n\n if (name === \"JPXDecode\" || name === \"JPX\") {\n xrefStreamStats[_util.StreamType.JPX] = true;\n return new _jpx_stream.JpxStream(stream, maybeLength, stream.dict, params);\n }\n\n if (name === \"ASCII85Decode\" || name === \"A85\") {\n xrefStreamStats[_util.StreamType.A85] = true;\n return new _stream.Ascii85Stream(stream, maybeLength);\n }\n\n if (name === \"ASCIIHexDecode\" || name === \"AHx\") {\n xrefStreamStats[_util.StreamType.AHX] = true;\n return new _stream.AsciiHexStream(stream, maybeLength);\n }\n\n if (name === \"CCITTFaxDecode\" || name === \"CCF\") {\n xrefStreamStats[_util.StreamType.CCF] = true;\n return new _ccitt_stream.CCITTFaxStream(stream, maybeLength, params);\n }\n\n if (name === \"RunLengthDecode\" || name === \"RL\") {\n xrefStreamStats[_util.StreamType.RLX] = true;\n return new _stream.RunLengthStream(stream, maybeLength);\n }\n\n if (name === \"JBIG2Decode\") {\n xrefStreamStats[_util.StreamType.JBIG] = true;\n return new _jbig2_stream.Jbig2Stream(stream, maybeLength, stream.dict, params);\n }\n\n (0, _util.warn)(`Filter \"${name}\" is not supported.`);\n return stream;\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(`Invalid stream: \"${ex}\"`);\n return new _stream.NullStream();\n }\n }\n\n}\n\nexports.Parser = Parser;\nconst specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 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, 0, 0, 2, 0, 2, 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, 0, 0, 0, 2, 0, 2, 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, 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, 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, 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, 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\nfunction toHexDigit(ch) {\n if (ch >= 0x30 && ch <= 0x39) {\n return ch & 0x0f;\n }\n\n if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n return (ch & 0x0f) + 9;\n }\n\n return -1;\n}\n\nclass Lexer {\n constructor(stream, knownCommands = null) {\n this.stream = stream;\n this.nextChar();\n this.strBuf = [];\n this.knownCommands = knownCommands;\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;\n let sign = 0;\n\n if (ch === 0x2d) {\n sign = -1;\n ch = this.nextChar();\n\n if (ch === 0x2d) {\n ch = this.nextChar();\n }\n } else if (ch === 0x2b) {\n sign = 1;\n ch = this.nextChar();\n }\n\n if (ch === 0x0a || ch === 0x0d) {\n do {\n ch = this.nextChar();\n } while (ch === 0x0a || ch === 0x0d);\n }\n\n if (ch === 0x2e) {\n divideBy = 10;\n ch = this.nextChar();\n }\n\n if (ch < 0x30 || ch > 0x39) {\n if (divideBy === 10 && sign === 0 && ((0, _core_utils.isWhiteSpace)(ch) || ch === -1)) {\n (0, _util.warn)(\"Lexer.getNumber - treating a single decimal point as zero.\");\n return 0;\n }\n\n throw new _util.FormatError(`Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`);\n }\n\n sign = sign || 1;\n let baseValue = ch - 0x30;\n let powerValue = 0;\n let powerValueSign = 1;\n\n while ((ch = this.nextChar()) >= 0) {\n if (ch >= 0x30 && ch <= 0x39) {\n const currentDigit = ch - 0x30;\n\n if (eNotation) {\n powerValue = powerValue * 10 + currentDigit;\n } else {\n if (divideBy !== 0) {\n divideBy *= 10;\n }\n\n baseValue = baseValue * 10 + currentDigit;\n }\n } else if (ch === 0x2e) {\n if (divideBy === 0) {\n divideBy = 1;\n } else {\n break;\n }\n } else if (ch === 0x2d) {\n (0, _util.warn)(\"Badly formatted number: minus sign in the middle\");\n } else if (ch === 0x45 || ch === 0x65) {\n ch = this.peekChar();\n\n if (ch === 0x2b || ch === 0x2d) {\n powerValueSign = ch === 0x2d ? -1 : 1;\n this.nextChar();\n } else if (ch < 0x30 || ch > 0x39) {\n break;\n }\n\n eNotation = true;\n } else {\n break;\n }\n }\n\n if (divideBy !== 0) {\n baseValue /= divideBy;\n }\n\n if (eNotation) {\n baseValue *= 10 ** (powerValueSign * powerValue);\n }\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 let ch = this.nextChar();\n\n while (true) {\n let charBuffered = false;\n\n switch (ch | 0) {\n case -1:\n (0, _util.warn)(\"Unterminated string\");\n done = true;\n break;\n\n case 0x28:\n ++numParen;\n strBuf.push(\"(\");\n break;\n\n case 0x29:\n if (--numParen === 0) {\n this.nextChar();\n done = true;\n } else {\n strBuf.push(\")\");\n }\n\n break;\n\n case 0x5c:\n ch = this.nextChar();\n\n switch (ch) {\n case -1:\n (0, _util.warn)(\"Unterminated string\");\n done = true;\n break;\n\n case 0x6e:\n strBuf.push(\"\\n\");\n break;\n\n case 0x72:\n strBuf.push(\"\\r\");\n break;\n\n case 0x74:\n strBuf.push(\"\\t\");\n break;\n\n case 0x62:\n strBuf.push(\"\\b\");\n break;\n\n case 0x66:\n strBuf.push(\"\\f\");\n break;\n\n case 0x5c:\n case 0x28:\n case 0x29:\n strBuf.push(String.fromCharCode(ch));\n break;\n\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n let x = ch & 0x0f;\n ch = this.nextChar();\n charBuffered = true;\n\n if (ch >= 0x30 && ch <= 0x37) {\n x = (x << 3) + (ch & 0x0f);\n ch = this.nextChar();\n\n if (ch >= 0x30 && ch <= 0x37) {\n charBuffered = false;\n x = (x << 3) + (ch & 0x0f);\n }\n }\n\n strBuf.push(String.fromCharCode(x));\n break;\n\n case 0x0d:\n if (this.peekChar() === 0x0a) {\n this.nextChar();\n }\n\n break;\n\n case 0x0a:\n break;\n\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n\n break;\n\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n\n if (done) {\n break;\n }\n\n if (!charBuffered) {\n ch = this.nextChar();\n }\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\n if (specialChars[ch]) {\n (0, _util.warn)(\"Lexer_getName: \" + \"NUMBER SIGN (#) should be followed by a hexadecimal number.\");\n strBuf.push(\"#\");\n break;\n }\n\n const x = toHexDigit(ch);\n\n if (x !== -1) {\n previousCh = ch;\n ch = this.nextChar();\n const x2 = toHexDigit(ch);\n\n if (x2 === -1) {\n (0, _util.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` + \"in hexadecimal number.\");\n strBuf.push(\"#\", String.fromCharCode(previousCh));\n\n if (specialChars[ch]) {\n break;\n }\n\n strBuf.push(String.fromCharCode(ch));\n continue;\n }\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\n if (strBuf.length > 127) {\n (0, _util.warn)(`Name token is longer than allowed by the spec: ${strBuf.length}`);\n }\n\n return _primitives.Name.get(strBuf.join(\"\"));\n }\n\n _hexStringWarn(ch) {\n const MAX_HEX_STRING_NUM_WARN = 5;\n\n if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) {\n (0, _util.warn)(\"getHexString - ignoring additional invalid characters.\");\n return;\n }\n\n if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) {\n return;\n }\n\n (0, _util.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 (0, _util.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\n if (firstDigit === -1) {\n this._hexStringWarn(ch);\n\n ch = this.nextChar();\n continue;\n }\n } else {\n secondDigit = toHexDigit(ch);\n\n if (secondDigit === -1) {\n this._hexStringWarn(ch);\n\n ch = this.nextChar();\n continue;\n }\n\n strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit));\n }\n\n isFirstHex = !isFirstHex;\n ch = this.nextChar();\n }\n }\n\n return strBuf.join(\"\");\n }\n\n getObj() {\n let comment = false;\n let ch = this.currentChar;\n\n while (true) {\n if (ch < 0) {\n return _primitives.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 (specialChars[ch] !== 1) {\n break;\n }\n\n ch = this.nextChar();\n }\n\n switch (ch | 0) {\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n case 0x38:\n case 0x39:\n case 0x2b:\n case 0x2d:\n case 0x2e:\n return this.getNumber();\n\n case 0x28:\n return this.getString();\n\n case 0x2f:\n return this.getName();\n\n case 0x5b:\n this.nextChar();\n return _primitives.Cmd.get(\"[\");\n\n case 0x5d:\n this.nextChar();\n return _primitives.Cmd.get(\"]\");\n\n case 0x3c:\n ch = this.nextChar();\n\n if (ch === 0x3c) {\n this.nextChar();\n return _primitives.Cmd.get(\"<<\");\n }\n\n return this.getHexString();\n\n case 0x3e:\n ch = this.nextChar();\n\n if (ch === 0x3e) {\n this.nextChar();\n return _primitives.Cmd.get(\">>\");\n }\n\n return _primitives.Cmd.get(\">\");\n\n case 0x7b:\n this.nextChar();\n return _primitives.Cmd.get(\"{\");\n\n case 0x7d:\n this.nextChar();\n return _primitives.Cmd.get(\"}\");\n\n case 0x29:\n this.nextChar();\n throw new _util.FormatError(`Illegal character: ${ch}`);\n }\n\n let str = String.fromCharCode(ch);\n const knownCommands = this.knownCommands;\n let knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n const possibleCommand = str + String.fromCharCode(ch);\n\n if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n break;\n }\n\n if (str.length === 128) {\n throw new _util.FormatError(`Command token too long: ${str.length}`);\n }\n\n str = possibleCommand;\n knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n }\n\n if (str === \"true\") {\n return true;\n }\n\n if (str === \"false\") {\n return false;\n }\n\n if (str === \"null\") {\n return null;\n }\n\n if (str === \"BI\") {\n this.beginInlineImagePos = this.stream.pos;\n }\n\n return _primitives.Cmd.get(str);\n }\n\n peekObj() {\n const streamPos = this.stream.pos,\n currentChar = this.currentChar,\n beginInlineImagePos = this.beginInlineImagePos;\n let nextObj;\n\n try {\n nextObj = this.getObj();\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(`peekObj: ${ex}`);\n }\n\n this.stream.pos = streamPos;\n this.currentChar = currentChar;\n this.beginInlineImagePos = beginInlineImagePos;\n return nextObj;\n }\n\n skipToNextLine() {\n let ch = this.currentChar;\n\n while (ch >= 0) {\n if (ch === 0x0d) {\n ch = this.nextChar();\n\n if (ch === 0x0a) {\n this.nextChar();\n }\n\n break;\n } else if (ch === 0x0a) {\n this.nextChar();\n break;\n }\n\n ch = this.nextChar();\n }\n }\n\n}\n\nexports.Lexer = Lexer;\n\nclass Linearization {\n static create(stream) {\n function getInt(linDict, name, allowZeroValue = false) {\n const obj = linDict.get(name);\n\n if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n return obj;\n }\n\n throw new Error(`The \"${name}\" parameter in the linearization ` + \"dictionary is invalid.\");\n }\n\n function getHints(linDict) {\n const hints = linDict.get(\"H\");\n let hintsLength;\n\n if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) {\n for (let index = 0; index < hintsLength; index++) {\n const hint = hints[index];\n\n if (!(Number.isInteger(hint) && hint > 0)) {\n throw new Error(`Hint (${index}) in the linearization dictionary is invalid.`);\n }\n }\n\n return hints;\n }\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\n if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && (0, _primitives.isCmd)(obj3, \"obj\") && (0, _primitives.isDict)(linDict) && (0, _util.isNum)(obj = linDict.get(\"Linearized\")) && obj > 0)) {\n return null;\n } else if ((length = getInt(linDict, \"L\")) !== stream.length) {\n throw new Error('The \"L\" parameter in the linearization dictionary ' + \"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\") ? getInt(linDict, \"P\", true) : 0\n };\n }\n\n}\n\nexports.Linearization = Linearization;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LZWStream = exports.StringStream = exports.StreamsSequenceStream = exports.Stream = exports.RunLengthStream = exports.PredictorStream = exports.NullStream = exports.FlateStream = exports.DecodeStream = exports.DecryptStream = exports.AsciiHexStream = exports.Ascii85Stream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar Stream = function StreamClosure() {\n function Stream(arrayBuffer, start, length, dict) {\n this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : 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 Stream.prototype = {\n get length() {\n return this.end - this.start;\n },\n\n get isEmpty() {\n return this.length === 0;\n },\n\n getByte: function Stream_getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n\n return this.bytes[this.pos++];\n },\n getUint16: function Stream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\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\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 return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n }\n\n var end = pos + length;\n\n if (end > strEnd) {\n end = strEnd;\n }\n\n this.pos = end;\n const subarray = bytes.subarray(pos, end);\n return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n },\n\n peekByte: function Stream_peekByte() {\n var peekedByte = this.getByte();\n\n if (peekedByte !== -1) {\n this.pos--;\n }\n\n return peekedByte;\n },\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\n if (end > this.end) {\n end = this.end;\n }\n\n return this.bytes.subarray(begin, end);\n },\n\n skip: function Stream_skip(n) {\n if (!n) {\n n = 1;\n }\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 return Stream;\n}();\n\nexports.Stream = Stream;\n\nvar StringStream = function StringStreamClosure() {\n function StringStream(str) {\n const bytes = (0, _util.stringToBytes)(str);\n Stream.call(this, bytes);\n }\n\n StringStream.prototype = Stream.prototype;\n return StringStream;\n}();\n\nexports.StringStream = StringStream;\n\nvar DecodeStream = function DecodeStreamClosure() {\n var emptyBuffer = new Uint8Array(0);\n\n function DecodeStream(maybeMinBufferLength) {\n this._rawMinBufferLength = maybeMinBufferLength || 0;\n this.pos = 0;\n this.bufferLength = 0;\n this.eof = false;\n this.buffer = emptyBuffer;\n this.minBufferLength = 512;\n\n if (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\n return this.bufferLength === 0;\n },\n\n ensureBuffer: function DecodeStream_ensureBuffer(requested) {\n var buffer = this.buffer;\n\n if (requested <= buffer.byteLength) {\n return buffer;\n }\n\n var size = this.minBufferLength;\n\n while (size < requested) {\n size *= 2;\n }\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\n while (this.bufferLength <= pos) {\n if (this.eof) {\n return -1;\n }\n\n this.readBlock();\n }\n\n return this.buffer[this.pos++];\n },\n getUint16: function DecodeStream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\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\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\n var bufEnd = this.bufferLength;\n\n if (end > bufEnd) {\n end = bufEnd;\n }\n } else {\n while (!this.eof) {\n this.readBlock();\n }\n\n end = this.bufferLength;\n }\n\n this.pos = end;\n const subarray = this.buffer.subarray(pos, end);\n return forceClamped && !(subarray instanceof Uint8ClampedArray) ? new Uint8ClampedArray(subarray) : subarray;\n },\n\n peekByte: function DecodeStream_peekByte() {\n var peekedByte = this.getByte();\n\n if (peekedByte !== -1) {\n this.pos--;\n }\n\n return peekedByte;\n },\n\n peekBytes(length, forceClamped = false) {\n var bytes = this.getBytes(length, forceClamped);\n this.pos -= bytes.length;\n return bytes;\n },\n\n makeSubStream: function DecodeStream_makeSubStream(start, length, dict) {\n var end = start + length;\n\n while (this.bufferLength <= end && !this.eof) {\n this.readBlock();\n }\n\n return new Stream(this.buffer, start, length, dict);\n },\n\n getByteRange(begin, end) {\n (0, _util.unreachable)(\"Should not call DecodeStream.getByteRange\");\n },\n\n skip: function DecodeStream_skip(n) {\n if (!n) {\n n = 1;\n }\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\n return [];\n }\n };\n return DecodeStream;\n}();\n\nexports.DecodeStream = DecodeStream;\n\nvar StreamsSequenceStream = function StreamsSequenceStreamClosure() {\n function StreamsSequenceStream(streams) {\n this.streams = streams;\n let maybeLength = 0;\n\n for (let i = 0, ii = streams.length; i < ii; i++) {\n const stream = streams[i];\n\n if (stream instanceof DecodeStream) {\n maybeLength += stream._rawMinBufferLength;\n } else {\n maybeLength += stream.length;\n }\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\n if (streams.length === 0) {\n this.eof = true;\n return;\n }\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\n for (var i = 0, ii = this.streams.length; i < ii; i++) {\n var stream = this.streams[i];\n\n if (stream.getBaseStreams) {\n baseStreams.push(...stream.getBaseStreams());\n }\n }\n\n return baseStreams;\n };\n\n return StreamsSequenceStream;\n}();\n\nexports.StreamsSequenceStream = StreamsSequenceStream;\n\nvar FlateStream = function FlateStreamClosure() {\n var codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n var lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]);\n var distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]);\n var fixedLitCodeTab = [new Int32Array([0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff]), 9];\n var fixedDistCodeTab = [new Int32Array([0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000]), 5];\n\n function FlateStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n var cmf = str.getByte();\n var flg = str.getByte();\n\n if (cmf === -1 || flg === -1) {\n throw new _util.FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);\n }\n\n if ((cmf & 0x0f) !== 0x08) {\n throw new _util.FormatError(`Unknown compression method in flate stream: ${cmf}, ${flg}`);\n }\n\n if (((cmf << 8) + flg) % 31 !== 0) {\n throw new _util.FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n }\n\n if (flg & 0x20) {\n throw new _util.FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n }\n\n this.codeSize = 0;\n this.codeBuf = 0;\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 var b;\n\n while (codeSize < bits) {\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad encoding in flate stream\");\n }\n\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n\n b = codeBuf & (1 << bits) - 1;\n this.codeBuf = codeBuf >> bits;\n this.codeSize = codeSize -= bits;\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 var b;\n\n while (codeSize < maxLen) {\n if ((b = str.getByte()) === -1) {\n break;\n }\n\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n\n var code = codes[codeBuf & (1 << maxLen) - 1];\n var codeLen = code >> 16;\n var codeVal = code & 0xffff;\n\n if (codeLen < 1 || codeSize < codeLen) {\n throw new _util.FormatError(\"Bad encoding in flate stream\");\n }\n\n this.codeBuf = codeBuf >> codeLen;\n this.codeSize = codeSize - codeLen;\n return codeVal;\n };\n\n FlateStream.prototype.generateHuffmanTable = function flateStreamGenerateHuffmanTable(lengths) {\n var n = lengths.length;\n var maxLen = 0;\n var i;\n\n for (i = 0; i < n; ++i) {\n if (lengths[i] > maxLen) {\n maxLen = lengths[i];\n }\n }\n\n var size = 1 << maxLen;\n var codes = new Int32Array(size);\n\n for (var len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) {\n for (var val = 0; val < n; ++val) {\n if (lengths[val] === len) {\n var code2 = 0;\n var t = code;\n\n for (i = 0; i < len; ++i) {\n code2 = code2 << 1 | t & 1;\n t >>= 1;\n }\n\n for (i = code2; i < size; i += skip) {\n codes[i] = len << 16 | val;\n }\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 var hdr = this.getBits(3);\n\n if (hdr & 1) {\n this.eof = true;\n }\n\n hdr >>= 1;\n\n if (hdr === 0) {\n var b;\n\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad block header in flate stream\");\n }\n\n var blockLen = b;\n\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad block header in flate stream\");\n }\n\n blockLen |= b << 8;\n\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad block header in flate stream\");\n }\n\n var check = b;\n\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad block header in flate stream\");\n }\n\n check |= b << 8;\n\n if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n throw new _util.FormatError(\"Bad uncompressed block length in flate stream\");\n }\n\n this.codeBuf = 0;\n this.codeSize = 0;\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\n if (block.length < blockLen) {\n this.eof = true;\n }\n }\n\n return;\n }\n\n var litCodeTable;\n var distCodeTable;\n\n if (hdr === 1) {\n litCodeTable = fixedLitCodeTab;\n distCodeTable = fixedDistCodeTab;\n } else if (hdr === 2) {\n var numLitCodes = this.getBits(5) + 257;\n var numDistCodes = this.getBits(5) + 1;\n var numCodeLenCodes = this.getBits(4) + 4;\n var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n var i;\n\n for (i = 0; i < numCodeLenCodes; ++i) {\n codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n }\n\n var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n len = 0;\n i = 0;\n var codes = numLitCodes + numDistCodes;\n var codeLengths = new Uint8Array(codes);\n var bitsLength, bitsOffset, what;\n\n while (i < codes) {\n var code = this.getCode(codeLenCodeTab);\n\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\n while (repeatLength-- > 0) {\n codeLengths[i++] = what;\n }\n }\n\n litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));\n distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));\n } else {\n throw new _util.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\n while (true) {\n var code1 = this.getCode(litCodeTable);\n\n if (code1 < 256) {\n if (pos + 1 >= limit) {\n buffer = this.ensureBuffer(pos + 1);\n limit = buffer.length;\n }\n\n buffer[pos++] = code1;\n continue;\n }\n\n if (code1 === 256) {\n this.bufferLength = pos;\n return;\n }\n\n code1 -= 257;\n code1 = lengthDecode[code1];\n var code2 = code1 >> 16;\n\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n\n len = (code1 & 0xffff) + code2;\n code1 = this.getCode(distCodeTable);\n code1 = distDecode[code1];\n code2 = code1 >> 16;\n\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n\n var dist = (code1 & 0xffff) + code2;\n\n if (pos + len >= limit) {\n buffer = this.ensureBuffer(pos + len);\n limit = buffer.length;\n }\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\nexports.FlateStream = FlateStream;\n\nvar PredictorStream = function PredictorStreamClosure() {\n function PredictorStream(str, maybeLength, params) {\n if (!(0, _primitives.isDict)(params)) {\n return str;\n }\n\n var predictor = this.predictor = params.get(\"Predictor\") || 1;\n\n if (predictor <= 1) {\n return str;\n }\n\n if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n throw new _util.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 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 this.pixBytes = colors * bits + 7 >> 3;\n this.rowBytes = columns * colors * bits + 7 >> 3;\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 var bufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(bufferLength + rowBytes);\n var bits = this.bits;\n var colors = this.colors;\n var rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n\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 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\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\n for (i = 0; i < bytesPerPixel; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n\n for (; i < rowBytes; i += 2) {\n var sum = ((rawBytes[i] & 0xff) << 8) + (rawBytes[i + 1] & 0xff) + ((buffer[pos - bytesPerPixel] & 0xff) << 8) + (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\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\n compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask;\n inbits -= bits;\n outbuf = outbuf << bits | compArray[kk];\n outbits += bits;\n\n if (outbits >= 8) {\n buffer[k++] = outbuf >> outbits - 8 & 0xff;\n outbits -= 8;\n }\n }\n }\n\n if (outbits > 0) {\n buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1);\n }\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 var predictor = this.str.getByte();\n var rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n\n if (this.eof) {\n return;\n }\n\n var bufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(bufferLength + rowBytes);\n var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n\n if (prevRow.length === 0) {\n prevRow = new Uint8Array(rowBytes);\n }\n\n var i,\n j = bufferLength,\n up,\n c;\n\n switch (predictor) {\n case 0:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n\n break;\n\n case 1:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n\n for (; i < rowBytes; ++i) {\n buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xff;\n j++;\n }\n\n break;\n\n case 2:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = prevRow[i] + rawBytes[i] & 0xff;\n }\n\n break;\n\n case 3:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n }\n\n for (; i < rowBytes; ++i) {\n buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xff;\n j++;\n }\n\n break;\n\n case 4:\n for (i = 0; i < pixBytes; ++i) {\n up = prevRow[i];\n c = rawBytes[i];\n buffer[j++] = up + c;\n }\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 var pa = p - left;\n\n if (pa < 0) {\n pa = -pa;\n }\n\n var pb = p - up;\n\n if (pb < 0) {\n pb = -pb;\n }\n\n var pc = p - upLeft;\n\n if (pc < 0) {\n pc = -pc;\n }\n\n c = rawBytes[i];\n\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\n break;\n\n default:\n throw new _util.FormatError(`Unsupported predictor: ${predictor}`);\n }\n\n this.bufferLength += rowBytes;\n };\n\n return PredictorStream;\n}();\n\nexports.PredictorStream = PredictorStream;\n\nvar DecryptStream = function DecryptStreamClosure() {\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 DecodeStream.call(this, maybeLength);\n }\n\n var chunkSize = 512;\n DecryptStream.prototype = Object.create(DecodeStream.prototype);\n\n DecryptStream.prototype.readBlock = function DecryptStream_readBlock() {\n var chunk;\n\n if (this.initialized) {\n chunk = this.nextChunk;\n } else {\n chunk = this.str.getBytes(chunkSize);\n this.initialized = true;\n }\n\n if (!chunk || chunk.length === 0) {\n this.eof = true;\n return;\n }\n\n this.nextChunk = this.str.getBytes(chunkSize);\n var hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n var decrypt = this.decrypt;\n chunk = decrypt(chunk, !hasMoreData);\n var bufferLength = this.bufferLength;\n var i,\n n = chunk.length;\n var buffer = this.ensureBuffer(bufferLength + n);\n\n for (i = 0; i < n; i++) {\n buffer[bufferLength++] = chunk[i];\n }\n\n this.bufferLength = bufferLength;\n };\n\n return DecryptStream;\n}();\n\nexports.DecryptStream = DecryptStream;\n\nvar Ascii85Stream = function Ascii85StreamClosure() {\n function Ascii85Stream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n this.input = new Uint8Array(5);\n\n if (maybeLength) {\n maybeLength = 0.8 * maybeLength;\n }\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;\n var EOF = -1;\n var str = this.str;\n var c = str.getByte();\n\n while ((0, _core_utils.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 if (c === Z_LOWER_CHAR) {\n buffer = this.ensureBuffer(bufferLength + 4);\n\n for (i = 0; i < 4; ++i) {\n buffer[bufferLength + i] = 0;\n }\n\n this.bufferLength += 4;\n } else {\n var input = this.input;\n input[0] = c;\n\n for (i = 1; i < 5; ++i) {\n c = str.getByte();\n\n while ((0, _core_utils.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\n buffer = this.ensureBuffer(bufferLength + i - 1);\n this.bufferLength += i - 1;\n\n if (i < 5) {\n for (; i < 5; ++i) {\n input[i] = 0x21 + 84;\n }\n\n this.eof = true;\n }\n\n var t = 0;\n\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\nexports.Ascii85Stream = Ascii85Stream;\n\nvar AsciiHexStream = function AsciiHexStreamClosure() {\n function AsciiHexStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n this.firstDigit = -1;\n\n if (maybeLength) {\n maybeLength = 0.5 * maybeLength;\n }\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\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 var firstDigit = this.firstDigit;\n\n for (var i = 0, ii = bytes.length; i < ii; i++) {\n var ch = bytes[i],\n digit;\n\n if (ch >= 0x30 && ch <= 0x39) {\n digit = ch & 0x0f;\n } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n digit = (ch & 0x0f) + 9;\n } else if (ch === 0x3e) {\n this.eof = true;\n break;\n } else {\n continue;\n }\n\n if (firstDigit < 0) {\n firstDigit = digit;\n } else {\n buffer[bufferLength++] = firstDigit << 4 | digit;\n firstDigit = -1;\n }\n }\n\n if (firstDigit >= 0 && this.eof) {\n buffer[bufferLength++] = firstDigit << 4;\n firstDigit = -1;\n }\n\n this.firstDigit = firstDigit;\n this.bufferLength = bufferLength;\n };\n\n return AsciiHexStream;\n}();\n\nexports.AsciiHexStream = AsciiHexStream;\n\nvar RunLengthStream = function RunLengthStreamClosure() {\n function RunLengthStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n DecodeStream.call(this, maybeLength);\n }\n\n RunLengthStream.prototype = Object.create(DecodeStream.prototype);\n\n RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() {\n var repeatHeader = this.str.getBytes(2);\n\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\n if (n < 128) {\n buffer = this.ensureBuffer(bufferLength + n + 1);\n buffer[bufferLength++] = repeatHeader[1];\n\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\n for (var i = 0; i < n; i++) {\n buffer[bufferLength++] = b;\n }\n }\n\n this.bufferLength = bufferLength;\n };\n\n return RunLengthStream;\n}();\n\nexports.RunLengthStream = RunLengthStream;\n\nvar LZWStream = function LZWStreamClosure() {\n function LZWStream(str, maybeLength, earlyChange) {\n this.str = str;\n this.dict = str.dict;\n this.cachedData = 0;\n this.bitsCached = 0;\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\n for (var i = 0; i < 256; ++i) {\n lzwState.dictionaryValues[i] = i;\n lzwState.dictionaryLengths[i] = 1;\n }\n\n this.lzwState = lzwState;\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\n while (bitsCached < n) {\n var c = this.str.getByte();\n\n if (c === -1) {\n this.eof = true;\n return null;\n }\n\n cachedData = cachedData << 8 | c;\n bitsCached += 8;\n }\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 var lzwState = this.lzwState;\n\n if (!lzwState) {\n return;\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 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\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\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 = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0;\n }\n\n prevCode = code;\n decodedLength += currentSequenceLength;\n\n if (estimatedDecodedSize < decodedLength) {\n do {\n estimatedDecodedSize += decodedSizeDelta;\n } while (estimatedDecodedSize < decodedLength);\n\n buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n }\n\n for (j = 0; j < currentSequenceLength; j++) {\n buffer[currentBufferLength++] = currentSequence[j];\n }\n }\n\n lzwState.nextCode = nextCode;\n lzwState.codeLength = codeLength;\n lzwState.prevCode = prevCode;\n lzwState.currentSequenceLength = currentSequenceLength;\n this.bufferLength = currentBufferLength;\n };\n\n return LZWStream;\n}();\n\nexports.LZWStream = LZWStream;\n\nvar NullStream = function NullStreamClosure() {\n function NullStream() {\n Stream.call(this, new Uint8Array(0));\n }\n\n NullStream.prototype = Stream.prototype;\n return NullStream;\n}();\n\nexports.NullStream = NullStream;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CCITTFaxStream = void 0;\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _ccitt = __w_pdfjs_require__(14);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar CCITTFaxStream = function CCITTFaxStreamClosure() {\n function CCITTFaxStream(str, maybeLength, params) {\n this.str = str;\n this.dict = str.dict;\n\n if (!(0, _primitives.isDict)(params)) {\n params = _primitives.Dict.empty;\n }\n\n const source = {\n next() {\n return str.getByte();\n }\n\n };\n this.ccittFaxDecoder = new _ccitt.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 _stream.DecodeStream.call(this, maybeLength);\n }\n\n CCITTFaxStream.prototype = Object.create(_stream.DecodeStream.prototype);\n\n CCITTFaxStream.prototype.readBlock = function () {\n while (!this.eof) {\n const c = this.ccittFaxDecoder.readNextChar();\n\n if (c === -1) {\n this.eof = true;\n return;\n }\n\n this.ensureBuffer(this.bufferLength + 1);\n this.buffer[this.bufferLength++] = c;\n }\n };\n\n return CCITTFaxStream;\n}();\n\nexports.CCITTFaxStream = CCITTFaxStream;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CCITTFaxDecoder = void 0;\n\nvar _util = __w_pdfjs_require__(2);\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 const twoDimTable = [[-1, -1], [-1, -1], [7, twoDimVertL3], [7, twoDimVertR3], [6, twoDimVertL2], [6, twoDimVertL2], [6, twoDimVertR2], [6, twoDimVertR2], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0]];\n const whiteTable1 = [[-1, -1], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [12, 1984], [12, 2048], [12, 2112], [12, 2176], [12, 2240], [12, 2304], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [12, 2368], [12, 2432], [12, 2496], [12, 2560]];\n const whiteTable2 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [8, 29], [8, 29], [8, 30], [8, 30], [8, 45], [8, 45], [8, 46], [8, 46], [7, 22], [7, 22], [7, 22], [7, 22], [7, 23], [7, 23], [7, 23], [7, 23], [8, 47], [8, 47], [8, 48], [8, 48], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [7, 20], [7, 20], [7, 20], [7, 20], [8, 33], [8, 33], [8, 34], [8, 34], [8, 35], [8, 35], [8, 36], [8, 36], [8, 37], [8, 37], [8, 38], [8, 38], [7, 19], [7, 19], [7, 19], [7, 19], [8, 31], [8, 31], [8, 32], [8, 32], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [8, 53], [8, 53], [8, 54], [8, 54], [7, 26], [7, 26], [7, 26], [7, 26], [8, 39], [8, 39], [8, 40], [8, 40], [8, 41], [8, 41], [8, 42], [8, 42], [8, 43], [8, 43], [8, 44], [8, 44], [7, 21], [7, 21], [7, 21], [7, 21], [7, 28], [7, 28], [7, 28], [7, 28], [8, 61], [8, 61], [8, 62], [8, 62], [8, 63], [8, 63], [8, 0], [8, 0], [8, 320], [8, 320], [8, 384], [8, 384], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [7, 27], [7, 27], [7, 27], [7, 27], [8, 59], [8, 59], [8, 60], [8, 60], [9, 1472], [9, 1536], [9, 1600], [9, 1728], [7, 18], [7, 18], [7, 18], [7, 18], [7, 24], [7, 24], [7, 24], [7, 24], [8, 49], [8, 49], [8, 50], [8, 50], [8, 51], [8, 51], [8, 52], [8, 52], [7, 25], [7, 25], [7, 25], [7, 25], [8, 55], [8, 55], [8, 56], [8, 56], [8, 57], [8, 57], [8, 58], [8, 58], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [8, 448], [8, 448], [8, 512], [8, 512], [9, 704], [9, 768], [8, 640], [8, 640], [8, 576], [8, 576], [9, 832], [9, 896], [9, 960], [9, 1024], [9, 1088], [9, 1152], [9, 1216], [9, 1280], [9, 1344], [9, 1408], [7, 256], [7, 256], [7, 256], [7, 256], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7]];\n const blackTable1 = [[-1, -1], [-1, -1], [12, ccittEOL], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [11, 1792], [11, 1792], [12, 1984], [12, 1984], [12, 2048], [12, 2048], [12, 2112], [12, 2112], [12, 2176], [12, 2176], [12, 2240], [12, 2240], [12, 2304], [12, 2304], [11, 1856], [11, 1856], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [11, 1920], [11, 1920], [12, 2368], [12, 2368], [12, 2432], [12, 2432], [12, 2496], [12, 2496], [12, 2560], [12, 2560], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [12, 52], [12, 52], [13, 640], [13, 704], [13, 768], [13, 832], [12, 55], [12, 55], [12, 56], [12, 56], [13, 1280], [13, 1344], [13, 1408], [13, 1472], [12, 59], [12, 59], [12, 60], [12, 60], [13, 1536], [13, 1600], [11, 24], [11, 24], [11, 24], [11, 24], [11, 25], [11, 25], [11, 25], [11, 25], [13, 1664], [13, 1728], [12, 320], [12, 320], [12, 384], [12, 384], [12, 448], [12, 448], [13, 512], [13, 576], [12, 53], [12, 53], [12, 54], [12, 54], [13, 896], [13, 960], [13, 1024], [13, 1088], [13, 1152], [13, 1216], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64]];\n const blackTable2 = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]];\n const blackTable3 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]];\n\n function CCITTFaxDecoder(source, options = {}) {\n if (!source || typeof source.next !== \"function\") {\n throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n }\n\n this.source = source;\n this.eof = false;\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\n if (eoblock === null || eoblock === undefined) {\n eoblock = true;\n }\n\n this.eoblock = eoblock;\n this.black = options.BlackIs1 || false;\n this.codingLine = new Uint32Array(this.columns + 1);\n this.refLine = new Uint32Array(this.columns + 2);\n this.codingLine[0] = this.columns;\n this.codingPos = 0;\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 let code1;\n\n while ((code1 = this._lookBits(12)) === 0) {\n this._eatBits(1);\n }\n\n if (code1 === 1) {\n this._eatBits(12);\n }\n\n if (this.encoding > 0) {\n this.nextLine2D = !this._lookBits(1);\n\n this._eatBits(1);\n }\n }\n\n CCITTFaxDecoder.prototype = {\n readNextChar() {\n if (this.eof) {\n return -1;\n }\n\n const refLine = this.refLine;\n const codingLine = this.codingLine;\n const columns = this.columns;\n let refPos, blackPixels, bits, i;\n\n if (this.outputBits === 0) {\n if (this.rowsDone) {\n this.eof = true;\n }\n\n if (this.eof) {\n return -1;\n }\n\n this.err = false;\n let code1, code2, code3;\n\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\n }\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\n switch (code1) {\n case twoDimPass:\n this._addPixels(refLine[refPos + 1], blackPixels);\n\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n\n break;\n\n case twoDimHoriz:\n code1 = code2 = 0;\n\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n\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\n do {\n code2 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n }\n\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\n if (codingLine[this.codingPos] < columns) {\n this._addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1);\n }\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n\n break;\n\n case twoDimVertR3:\n this._addPixels(refLine[refPos] + 3, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertR2:\n this._addPixels(refLine[refPos] + 2, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertR1:\n this._addPixels(refLine[refPos] + 1, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVert0:\n this._addPixels(refLine[refPos], blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertL3:\n this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertL2:\n this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertL1:\n this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case ccittEOF:\n this._addPixels(columns, 0);\n\n this.eof = true;\n break;\n\n default:\n (0, _util.info)(\"bad 2d code\");\n\n this._addPixels(columns, 0);\n\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\n\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\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\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\n if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this._eatBits(1);\n\n code1 = this._lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this._eatBits(1);\n\n code1 = this._lookBits(12);\n }\n }\n\n if (code1 === 1) {\n this._eatBits(12);\n\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\n this._eatBits(1);\n }\n\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this._lookBits(12);\n\n if (code1 === 1) {\n this._eatBits(12);\n\n if (this.encoding > 0) {\n this._lookBits(1);\n\n this._eatBits(1);\n }\n\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this._lookBits(12);\n\n if (code1 !== 1) {\n (0, _util.info)(\"bad rtc code: \" + code1);\n }\n\n this._eatBits(12);\n\n if (this.encoding > 0) {\n this._lookBits(1);\n\n this._eatBits(1);\n }\n }\n }\n\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this._lookBits(13);\n\n if (code1 === ccittEOF) {\n this.eof = true;\n return -1;\n }\n\n if (code1 >> 1 === 1) {\n break;\n }\n\n this._eatBits(1);\n }\n\n this._eatBits(12);\n\n if (this.encoding > 0) {\n this._eatBits(1);\n\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\n this.row++;\n }\n\n let c;\n\n if (this.outputBits >= 8) {\n c = this.codingPos & 1 ? 0 : 0xff;\n this.outputBits -= 8;\n\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n }\n } else {\n bits = 8;\n c = 0;\n\n do {\n if (this.outputBits > bits) {\n c <<= bits;\n\n if (!(this.codingPos & 1)) {\n c |= 0xff >> 8 - bits;\n }\n\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n\n if (!(this.codingPos & 1)) {\n c |= 0xff >> 8 - this.outputBits;\n }\n\n bits -= this.outputBits;\n this.outputBits = 0;\n\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = 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\n if (this.black) {\n c ^= 0xff;\n }\n\n return c;\n },\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 (0, _util.info)(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n\n if (codingPos & 1 ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n },\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 (0, _util.info)(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\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 (0, _util.info)(\"invalid code\");\n this.err = true;\n a1 = 0;\n }\n\n while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n },\n\n _findTableCode(start, end, table, limit) {\n const limitValue = limit || 0;\n\n for (let i = start; i <= end; ++i) {\n let code = this._lookBits(i);\n\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n\n if (i < end) {\n code <<= end - i;\n }\n\n if (!limitValue || code >= limitValue) {\n const p = table[code - limitValue];\n\n if (p[0] === i) {\n this._eatBits(i);\n\n return [true, p[1], true];\n }\n }\n }\n\n return [false, 0, false];\n },\n\n _getTwoDimCode() {\n let code = 0;\n let p;\n\n if (this.eoblock) {\n code = this._lookBits(7);\n p = twoDimTable[code];\n\n if (p && p[0] > 0) {\n this._eatBits(p[0]);\n\n return p[1];\n }\n } else {\n const result = this._findTableCode(1, 7, twoDimTable);\n\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n\n (0, _util.info)(\"Bad two dim code\");\n return ccittEOF;\n },\n\n _getWhiteCode() {\n let code = 0;\n let p;\n\n if (this.eoblock) {\n code = this._lookBits(12);\n\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\n return p[1];\n }\n } else {\n let result = this._findTableCode(1, 9, whiteTable2);\n\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(11, 12, whiteTable1);\n\n if (result[0]) {\n return result[1];\n }\n }\n\n (0, _util.info)(\"bad white code\");\n\n this._eatBits(1);\n\n return 1;\n },\n\n _getBlackCode() {\n let code, p;\n\n if (this.eoblock) {\n code = this._lookBits(13);\n\n if (code === ccittEOF) {\n return 1;\n }\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\n return p[1];\n }\n } else {\n let result = this._findTableCode(2, 6, blackTable3);\n\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(7, 12, blackTable2, 64);\n\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(10, 13, blackTable1);\n\n if (result[0]) {\n return result[1];\n }\n }\n\n (0, _util.info)(\"bad black code\");\n\n this._eatBits(1);\n\n return 1;\n },\n\n _lookBits(n) {\n let c;\n\n while (this.inputBits < n) {\n if ((c = this.source.next()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n\n return this.inputBuf << n - this.inputBits & 0xffff >> 16 - n;\n }\n\n this.inputBuf = this.inputBuf << 8 | c;\n this.inputBits += 8;\n }\n\n return this.inputBuf >> this.inputBits - n & 0xffff >> 16 - n;\n },\n\n _eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n }\n\n };\n return CCITTFaxDecoder;\n}();\n\nexports.CCITTFaxDecoder = CCITTFaxDecoder;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Jbig2Stream = void 0;\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _jbig = __w_pdfjs_require__(16);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst Jbig2Stream = function Jbig2StreamClosure() {\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 _stream.DecodeStream.call(this, maybeLength);\n }\n\n Jbig2Stream.prototype = Object.create(_stream.DecodeStream.prototype);\n Object.defineProperty(Jbig2Stream.prototype, \"bytes\", {\n get() {\n return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n },\n\n configurable: true\n });\n\n Jbig2Stream.prototype.ensureBuffer = function (requested) {};\n\n Jbig2Stream.prototype.readBlock = function () {\n if (this.eof) {\n return;\n }\n\n const jbig2Image = new _jbig.Jbig2Image();\n const chunks = [];\n\n if ((0, _primitives.isDict)(this.params)) {\n const globalsStream = this.params.get(\"JBIG2Globals\");\n\n if ((0, _primitives.isStream)(globalsStream)) {\n const globals = globalsStream.getBytes();\n chunks.push({\n data: globals,\n start: 0,\n end: globals.length\n });\n }\n }\n\n chunks.push({\n data: this.bytes,\n start: 0,\n end: this.bytes.length\n });\n const data = jbig2Image.parseChunks(chunks);\n const dataLength = data.length;\n\n for (let i = 0; i < dataLength; i++) {\n data[i] ^= 0xff;\n }\n\n this.buffer = data;\n this.bufferLength = dataLength;\n this.eof = true;\n };\n\n return Jbig2Stream;\n}();\n\nexports.Jbig2Stream = Jbig2Stream;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Jbig2Image = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(17);\n\nvar _ccitt = __w_pdfjs_require__(14);\n\nclass Jbig2Error extends _util.BaseException {\n constructor(msg) {\n super(`JBIG2 error: ${msg}`);\n }\n\n}\n\nvar Jbig2Image = function Jbig2ImageClosure() {\n function ContextCache() {}\n\n ContextCache.prototype = {\n getContexts(id) {\n if (id in this) {\n return this[id];\n }\n\n return this[id] = new Int8Array(1 << 16);\n }\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 _arithmetic_decoder.ArithmeticDecoder(this.data, this.start, this.end);\n return (0, _util.shadow)(this, \"decoder\", decoder);\n },\n\n get contextCache() {\n var cache = new ContextCache();\n return (0, _util.shadow)(this, \"contextCache\", cache);\n }\n\n };\n\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\n for (var i = 0; i < length; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256;\n v = v << 1 | bit;\n }\n\n return v >>> 0;\n }\n\n var sign = readBits(1);\n var value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2);\n\n if (sign === 0) {\n return value;\n } else if (value > 0) {\n return -value;\n }\n\n return null;\n }\n\n function decodeIAID(contextCache, decoder, codeLength) {\n var contexts = contextCache.getContexts(\"IAID\");\n var prev = 1;\n\n for (var i = 0; i < codeLength; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = prev << 1 | bit;\n }\n\n if (codeLength < 31) {\n return prev & (1 << codeLength) - 1;\n }\n\n return prev & 0x7fffffff;\n }\n\n var SegmentTypes = [\"SymbolDictionary\", null, null, null, \"IntermediateTextRegion\", null, \"ImmediateTextRegion\", \"ImmediateLosslessTextRegion\", null, null, null, null, null, null, null, null, \"PatternDictionary\", null, null, null, \"IntermediateHalftoneRegion\", null, \"ImmediateHalftoneRegion\", \"ImmediateLosslessHalftoneRegion\", null, null, null, null, null, null, null, null, null, null, null, null, \"IntermediateGenericRegion\", null, \"ImmediateGenericRegion\", \"ImmediateLosslessGenericRegion\", \"IntermediateGenericRefinementRegion\", null, \"ImmediateGenericRefinementRegion\", \"ImmediateLosslessGenericRefinementRegion\", null, null, null, null, \"PageInformation\", \"EndOfPage\", \"EndOfStripe\", \"EndOfFile\", \"Profiles\", \"Tables\", null, null, null, null, null, null, null, null, \"Extension\"];\n var CodingTemplates = [[{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: 2,\n y: -1\n }, {\n x: -4,\n y: 0\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: 2,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: 2,\n y: -1\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -3,\n y: -1\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -4,\n y: 0\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }]];\n var RefinementTemplates = [{\n coding: [{\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }],\n reference: [{\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }, {\n x: 0,\n y: 0\n }, {\n x: 1,\n y: 0\n }, {\n x: -1,\n y: 1\n }, {\n x: 0,\n y: 1\n }, {\n x: 1,\n y: 1\n }]\n }, {\n coding: [{\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }],\n reference: [{\n x: 0,\n y: -1\n }, {\n x: -1,\n y: 0\n }, {\n x: 0,\n y: 0\n }, {\n x: 1,\n y: 0\n }, {\n x: 0,\n y: 1\n }, {\n x: 1,\n y: 1\n }]\n }];\n var ReusedContexts = [0x9b25, 0x0795, 0x00e5, 0x0195];\n var RefinementReusedContexts = [0x0020, 0x0008];\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 var OLD_PIXEL_MASK = 0x7bf7;\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 contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4;\n\n for (j = 0; j < width; j++) {\n row[j] = pixel = decoder.readBit(contexts, contextLabel);\n contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel;\n }\n }\n\n return bitmap;\n }\n\n function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) {\n if (mmr) {\n const input = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n return decodeMMRBitmap(input, width, height, false);\n }\n\n if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) {\n return decodeBitmapTemplate0(width, height, decodingContext);\n }\n\n var useskip = !!skip;\n var template = CodingTemplates[templateIndex].concat(at);\n template.sort(function (a, b) {\n return a.y - b.y || a.x - b.x;\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\n if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) {\n reuseMask |= 1 << templateLength - 1 - k;\n } else {\n changingTemplateEntries.push(k);\n }\n }\n\n var changingEntriesLength = changingTemplateEntries.length;\n var changingTemplateX = new Int8Array(changingEntriesLength);\n var changingTemplateY = new Int8Array(changingEntriesLength);\n var changingTemplateBit = new Uint16Array(changingEntriesLength);\n\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 var sbb_left = -minX;\n var sbb_top = -minY;\n var sbb_right = width - maxX;\n var pseudoPixelContext = ReusedContexts[templateIndex];\n var row = new Uint8Array(width);\n var bitmap = [];\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts(\"GB\");\n var ltp = 0,\n j,\n i0,\n j0,\n contextLabel = 0,\n bit,\n shift;\n\n for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n\n if (ltp) {\n bitmap.push(row);\n continue;\n }\n }\n\n row = new Uint8Array(row);\n bitmap.push(row);\n\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n contextLabel = contextLabel << 1 & reuseMask;\n\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n contextLabel = 0;\n shift = templateLength - 1;\n\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n }\n\n function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) {\n var codingTemplate = RefinementTemplates[templateIndex].coding;\n\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n\n var codingTemplateLength = codingTemplate.length;\n var codingTemplateX = new Int32Array(codingTemplateLength);\n var codingTemplateY = new Int32Array(codingTemplateLength);\n var k;\n\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\n if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n\n var referenceTemplateLength = referenceTemplate.length;\n var referenceTemplateX = new Int32Array(referenceTemplateLength);\n var referenceTemplateY = new Int32Array(referenceTemplateLength);\n\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n\n var referenceWidth = referenceBitmap[0].length;\n var referenceHeight = referenceBitmap.length;\n var pseudoPixelContext = RefinementReusedContexts[templateIndex];\n var bitmap = [];\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts(\"GR\");\n var ltp = 0;\n\n for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n\n if (ltp) {\n throw new Jbig2Error(\"prediction is not supported\");\n }\n }\n\n var row = new Uint8Array(width);\n bitmap.push(row);\n\n for (var j = 0; j < width; j++) {\n var i0, j0;\n var contextLabel = 0;\n\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1;\n } else {\n contextLabel = contextLabel << 1 | bitmap[i0][j0];\n }\n }\n\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n contextLabel <<= 1;\n } else {\n contextLabel = contextLabel << 1 | referenceBitmap[i0][j0];\n }\n }\n\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n }\n\n function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext, huffmanInput) {\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 = (0, _core_utils.log2)(symbols.length + numberOfNewSymbols);\n var decoder = decodingContext.decoder;\n var contextCache = decodingContext.contextCache;\n let tableB1, symbolWidths;\n\n if (huffman) {\n tableB1 = getStandardTable(1);\n symbolWidths = [];\n symbolCodeLength = Math.max(symbolCodeLength, 1);\n }\n\n while (newSymbols.length < numberOfNewSymbols) {\n var deltaHeight = huffman ? huffmanTables.tableDeltaHeight.decode(huffmanInput) : decodeInteger(contextCache, \"IADH\", decoder);\n currentHeight += deltaHeight;\n let currentWidth = 0,\n totalWidth = 0;\n const firstSymbol = huffman ? symbolWidths.length : 0;\n\n while (true) {\n var deltaWidth = huffman ? huffmanTables.tableDeltaWidth.decode(huffmanInput) : decodeInteger(contextCache, \"IADW\", decoder);\n\n if (deltaWidth === null) {\n break;\n }\n\n currentWidth += deltaWidth;\n totalWidth += currentWidth;\n var bitmap;\n\n if (refinement) {\n var numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n\n if (numberOfInstances > 1) {\n bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, 0, huffmanInput);\n } else {\n var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n var rdx = decodeInteger(contextCache, \"IARDX\", decoder);\n var rdy = decodeInteger(contextCache, \"IARDY\", decoder);\n var symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length];\n bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext);\n }\n\n newSymbols.push(bitmap);\n } else if (huffman) {\n symbolWidths.push(currentWidth);\n } else {\n bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext);\n newSymbols.push(bitmap);\n }\n }\n\n if (huffman && !refinement) {\n const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n huffmanInput.byteAlign();\n let collectiveBitmap;\n\n if (bitmapSize === 0) {\n collectiveBitmap = readUncompressedBitmap(huffmanInput, totalWidth, currentHeight);\n } else {\n const originalEnd = huffmanInput.end;\n const bitmapEnd = huffmanInput.position + bitmapSize;\n huffmanInput.end = bitmapEnd;\n collectiveBitmap = decodeMMRBitmap(huffmanInput, totalWidth, currentHeight, false);\n huffmanInput.end = originalEnd;\n huffmanInput.position = bitmapEnd;\n }\n\n const numberOfSymbolsDecoded = symbolWidths.length;\n\n if (firstSymbol === numberOfSymbolsDecoded - 1) {\n newSymbols.push(collectiveBitmap);\n } else {\n let i,\n y,\n xMin = 0,\n xMax,\n bitmapWidth,\n symbolBitmap;\n\n for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n bitmapWidth = symbolWidths[i];\n xMax = xMin + bitmapWidth;\n symbolBitmap = [];\n\n for (y = 0; y < currentHeight; y++) {\n symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n\n newSymbols.push(symbolBitmap);\n xMin = xMax;\n }\n }\n }\n }\n\n var exportedSymbols = [];\n var flags = [],\n currentFlag = false;\n var totalSymbolsLength = symbols.length + numberOfNewSymbols;\n\n while (flags.length < totalSymbolsLength) {\n var runLength = huffman ? tableB1.decode(huffmanInput) : decodeInteger(contextCache, \"IAEX\", decoder);\n\n while (runLength--) {\n flags.push(currentFlag);\n }\n\n currentFlag = !currentFlag;\n }\n\n for (var i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n\n for (var j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n\n return exportedSymbols;\n }\n\n function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, logStripSize, huffmanInput) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n var bitmap = [];\n var i, row;\n\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n\n if (defaultPixelValue) {\n for (var j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n\n bitmap.push(row);\n }\n\n var decoder = decodingContext.decoder;\n var contextCache = decodingContext.contextCache;\n var stripT = huffman ? -huffmanTables.tableDeltaT.decode(huffmanInput) : -decodeInteger(contextCache, \"IADT\", decoder);\n var firstS = 0;\n i = 0;\n\n while (i < numberOfSymbolInstances) {\n var deltaT = huffman ? huffmanTables.tableDeltaT.decode(huffmanInput) : decodeInteger(contextCache, \"IADT\", decoder);\n stripT += deltaT;\n var deltaFirstS = huffman ? huffmanTables.tableFirstS.decode(huffmanInput) : decodeInteger(contextCache, \"IAFS\", decoder);\n firstS += deltaFirstS;\n var currentS = firstS;\n\n do {\n let currentT = 0;\n\n if (stripSize > 1) {\n currentT = huffman ? huffmanInput.readBits(logStripSize) : decodeInteger(contextCache, \"IAIT\", decoder);\n }\n\n var t = stripSize * stripT + currentT;\n var symbolId = huffman ? huffmanTables.symbolIDTable.decode(huffmanInput) : decodeIAID(contextCache, decoder, symbolCodeLength);\n var applyRefinement = refinement && (huffman ? huffmanInput.readBit() : decodeInteger(contextCache, \"IARI\", decoder));\n var symbolBitmap = inputSymbols[symbolId];\n var symbolWidth = symbolBitmap[0].length;\n var symbolHeight = symbolBitmap.length;\n\n if (applyRefinement) {\n var rdw = decodeInteger(contextCache, \"IARDW\", decoder);\n var rdh = decodeInteger(contextCache, \"IARDH\", decoder);\n var rdx = decodeInteger(contextCache, \"IARDX\", decoder);\n var rdy = decodeInteger(contextCache, \"IARDY\", decoder);\n symbolWidth += rdw;\n symbolHeight += rdh;\n symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, 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\n if (transposed) {\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n\n if (!row) {\n continue;\n }\n\n symbolRow = symbolBitmap[s2];\n var maxWidth = Math.min(width - offsetT, symbolWidth);\n\n switch (combinationOperator) {\n case 0:\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n\n break;\n\n case 2:\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n\n break;\n\n default:\n throw new Jbig2Error(`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\n if (!row) {\n continue;\n }\n\n symbolRow = symbolBitmap[t2];\n\n switch (combinationOperator) {\n case 0:\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n\n break;\n\n case 2:\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n\n break;\n\n default:\n throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n }\n }\n\n currentS += symbolWidth - 1;\n }\n\n i++;\n var deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) : decodeInteger(contextCache, \"IADS\", decoder);\n\n if (deltaS === null) {\n break;\n }\n\n currentS += deltaS + dsOffset;\n } while (true);\n }\n\n return bitmap;\n }\n\n function decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) {\n const at = [];\n\n if (!mmr) {\n at.push({\n x: -patternWidth,\n y: 0\n });\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\n const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n const collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext);\n const patterns = [];\n\n for (let i = 0; i <= maxPatternIndex; i++) {\n const patternBitmap = [];\n const xMin = patternWidth * i;\n const xMax = xMin + patternWidth;\n\n for (let y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n\n patterns.push(patternBitmap);\n }\n\n return patterns;\n }\n\n function decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) {\n const skip = null;\n\n if (enableSkip) {\n throw new Jbig2Error(\"skip is not supported\");\n }\n\n if (combinationOperator !== 0) {\n throw new Jbig2Error(\"operator \" + combinationOperator + \" is not supported in halftone region\");\n }\n\n const regionBitmap = [];\n let i, j, row;\n\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\n }\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 = (0, _core_utils.log2)(numberOfPatterns);\n const at = [];\n\n if (!mmr) {\n at.push({\n x: template <= 1 ? 3 : 2,\n y: -1\n });\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\n const grayScaleBitPlanes = [];\n let mmrInput, bitmap;\n\n if (mmr) {\n mmrInput = new Reader(decodingContext.data, decodingContext.start, 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(false, gridWidth, gridHeight, template, false, skip, at, decodingContext);\n }\n\n grayScaleBitPlanes[i] = bitmap;\n }\n\n let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit = grayScaleBitPlanes[j][mg][ng] ^ bit;\n patternIndex |= bit << j;\n }\n\n patternBitmap = patterns[patternIndex];\n x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8;\n y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8;\n\n if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 && y + patternHeight <= regionHeight) {\n for (i = 0; i < patternHeight; i++) {\n regionRow = regionBitmap[y + i];\n patternRow = patternBitmap[i];\n\n for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n let regionX, regionY;\n\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n\n return regionBitmap;\n }\n\n function readSegmentHeader(data, start) {\n var segmentHeader = {};\n segmentHeader.number = (0, _core_utils.readUint32)(data, start);\n var flags = data[start + 4];\n var segmentType = flags & 0x3f;\n\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n }\n\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\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\n if (referredFlags === 7) {\n referredToCount = (0, _core_utils.readUint32)(data, position - 1) & 0x1fffffff;\n position += 3;\n var bytes = referredToCount + 7 >> 3;\n retainBits[0] = data[position++];\n\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 let referredToSegmentNumberSize = 4;\n\n if (segmentHeader.number <= 256) {\n referredToSegmentNumberSize = 1;\n } else if (segmentHeader.number <= 65536) {\n referredToSegmentNumberSize = 2;\n }\n\n var referredTo = [];\n var i, ii;\n\n for (i = 0; i < referredToCount; i++) {\n let number;\n\n if (referredToSegmentNumberSize === 1) {\n number = data[position];\n } else if (referredToSegmentNumberSize === 2) {\n number = (0, _core_utils.readUint16)(data, position);\n } else {\n number = (0, _core_utils.readUint32)(data, position);\n }\n\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n\n segmentHeader.referredTo = referredTo;\n\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = (0, _core_utils.readUint32)(data, position);\n position += 4;\n }\n\n segmentHeader.length = (0, _core_utils.readUint32)(data, position);\n position += 4;\n\n if (segmentHeader.length === 0xffffffff) {\n if (segmentType === 38) {\n var genericRegionInfo = readRegionSegmentInformation(data, position);\n var genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength];\n var genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n var searchPatternLength = 6;\n var searchPattern = new Uint8Array(searchPatternLength);\n\n if (!genericRegionMmr) {\n searchPattern[0] = 0xff;\n searchPattern[1] = 0xac;\n }\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\n for (i = position, ii = data.length; i < ii; i++) {\n var j = 0;\n\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\n }\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\n segmentHeader.headerEnd = position;\n return segmentHeader;\n }\n\n function readSegments(header, data, start, end) {\n var segments = [];\n var position = start;\n\n while (position < end) {\n var segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n var segment = {\n header: segmentHeader,\n data\n };\n\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n\n segments.push(segment);\n\n if (segmentHeader.type === 51) {\n break;\n }\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\n return segments;\n }\n\n function readRegionSegmentInformation(data, start) {\n return {\n width: (0, _core_utils.readUint32)(data, start),\n height: (0, _core_utils.readUint32)(data, start + 4),\n x: (0, _core_utils.readUint32)(data, start + 8),\n y: (0, _core_utils.readUint32)(data, start + 12),\n combinationOperator: data[start + 16] & 7\n };\n }\n\n var RegionSegmentInformationFieldLength = 17;\n\n function processSegment(segment, visitor) {\n var header = segment.header;\n var data = segment.data,\n position = segment.start,\n end = segment.end;\n var args, at, i, atLength;\n\n switch (header.type) {\n case 0:\n var dictionary = {};\n var dictionaryFlags = (0, _core_utils.readUint16)(data, position);\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\n if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n\n for (i = 0; i < atLength; i++) {\n at.push({\n x: (0, _core_utils.readInt8)(data, position),\n y: (0, _core_utils.readInt8)(data, position + 1)\n });\n position += 2;\n }\n\n dictionary.at = at;\n }\n\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n\n for (i = 0; i < 2; i++) {\n at.push({\n x: (0, _core_utils.readInt8)(data, position),\n y: (0, _core_utils.readInt8)(data, position + 1)\n });\n position += 2;\n }\n\n dictionary.refinementAt = at;\n }\n\n dictionary.numberOfExportedSymbols = (0, _core_utils.readUint32)(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = (0, _core_utils.readUint32)(data, position);\n position += 4;\n args = [dictionary, header.number, header.referredTo, data, position, end];\n break;\n\n case 6:\n case 7:\n var textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var textRegionSegmentFlags = (0, _core_utils.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\n if (textRegion.huffman) {\n var textRegionHuffmanFlags = (0, _core_utils.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 = !!(textRegionHuffmanFlags & 0x4000);\n }\n\n if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n\n for (i = 0; i < 2; i++) {\n at.push({\n x: (0, _core_utils.readInt8)(data, position),\n y: (0, _core_utils.readInt8)(data, position + 1)\n });\n position += 2;\n }\n\n textRegion.refinementAt = at;\n }\n\n textRegion.numberOfSymbolInstances = (0, _core_utils.readUint32)(data, position);\n position += 4;\n args = [textRegion, header.referredTo, data, position, end];\n break;\n\n case 16:\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 = (0, _core_utils.readUint32)(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n\n case 22:\n case 23:\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 = (0, _core_utils.readUint32)(data, position);\n position += 4;\n halftoneRegion.gridHeight = (0, _core_utils.readUint32)(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = (0, _core_utils.readUint32)(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridOffsetY = (0, _core_utils.readUint32)(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridVectorX = (0, _core_utils.readUint16)(data, position);\n position += 2;\n halftoneRegion.gridVectorY = (0, _core_utils.readUint16)(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\n\n case 38:\n case 39:\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\n if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n\n for (i = 0; i < atLength; i++) {\n at.push({\n x: (0, _core_utils.readInt8)(data, position),\n y: (0, _core_utils.readInt8)(data, position + 1)\n });\n position += 2;\n }\n\n genericRegion.at = at;\n }\n\n args = [genericRegion, data, position, end];\n break;\n\n case 48:\n var pageInfo = {\n width: (0, _core_utils.readUint32)(data, position),\n height: (0, _core_utils.readUint32)(data, position + 4),\n resolutionX: (0, _core_utils.readUint32)(data, position + 8),\n resolutionY: (0, _core_utils.readUint32)(data, position + 12)\n };\n\n if (pageInfo.height === 0xffffffff) {\n delete pageInfo.height;\n }\n\n var pageSegmentFlags = data[position + 16];\n (0, _core_utils.readUint16)(data, position + 17);\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\n case 49:\n break;\n\n case 50:\n break;\n\n case 51:\n break;\n\n case 53:\n args = [header.number, data, position, end];\n break;\n\n case 62:\n break;\n\n default:\n throw new Jbig2Error(`segment type ${header.typeName}(${header.type})` + \" is not implemented\");\n }\n\n var callbackName = \"on\" + header.typeName;\n\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\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\n return visitor.buffer;\n }\n\n function parseJbig2(data) {\n const end = data.length;\n let position = 0;\n\n if (data[position] !== 0x97 || data[position + 1] !== 0x4a || data[position + 2] !== 0x42 || data[position + 3] !== 0x32 || data[position + 4] !== 0x0d || data[position + 5] !== 0x0a || data[position + 6] !== 0x1a || data[position + 7] !== 0x0a) {\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\n if (!(flags & 2)) {\n header.numberOfPages = (0, _core_utils.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 const {\n width,\n height\n } = visitor.currentPageInfo;\n const bitPacked = visitor.buffer;\n const imgData = new Uint8ClampedArray(width * height);\n let q = 0,\n k = 0;\n\n for (let i = 0; i < height; i++) {\n let mask = 0,\n buffer;\n\n for (let j = 0; j < width; j++) {\n if (!mask) {\n mask = 128;\n buffer = bitPacked[k++];\n }\n\n imgData[q++] = buffer & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n return {\n imgData,\n width,\n height\n };\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\n if (info.defaultPixelValue) {\n for (var i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = 0xff;\n }\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 ? regionInfo.combinationOperator : 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\n switch (combinationOperator) {\n case 0:\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n\n mask >>= 1;\n\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n\n offset0 += rowSize;\n }\n\n break;\n\n case 2:\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n\n mask >>= 1;\n\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n\n offset0 += rowSize;\n }\n\n break;\n\n default:\n throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n }\n },\n onImmediateGenericRegion: function SimpleSegmentVisitor_onImmediateGenericRegion(region, data, start, end) {\n var regionInfo = region.info;\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessGenericRegion: function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() {\n this.onImmediateGenericRegion.apply(this, arguments);\n },\n onSymbolDictionary: function SimpleSegmentVisitor_onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) {\n let huffmanTables, huffmanInput;\n\n if (dictionary.huffman) {\n huffmanTables = getSymbolDictionaryHuffmanTables(dictionary, referredSegments, this.customTables);\n huffmanInput = new Reader(data, start, end);\n }\n\n var symbols = this.symbols;\n\n if (!symbols) {\n this.symbols = symbols = {};\n }\n\n var inputSymbols = [];\n\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n\n var decodingContext = new DecodingContext(data, start, end);\n symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext, huffmanInput);\n },\n onImmediateTextRegion: function SimpleSegmentVisitor_onImmediateTextRegion(region, referredSegments, data, start, end) {\n var regionInfo = region.info;\n let huffmanTables, huffmanInput;\n var symbols = this.symbols;\n var inputSymbols = [];\n\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n\n var symbolCodeLength = (0, _core_utils.log2)(inputSymbols.length);\n\n if (region.huffman) {\n huffmanInput = new Reader(data, start, end);\n huffmanTables = getTextRegionHuffmanTables(region, referredSegments, this.customTables, inputSymbols.length, huffmanInput);\n }\n\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext, region.logStripSize, huffmanInput);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() {\n this.onImmediateTextRegion.apply(this, arguments);\n },\n\n onPatternDictionary(dictionary, currentSegment, data, start, end) {\n let patterns = this.patterns;\n\n if (!patterns) {\n this.patterns = patterns = {};\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext);\n },\n\n onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n const patterns = this.patterns[referredSegments[0]];\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n\n onImmediateLosslessHalftoneRegion() {\n this.onImmediateHalftoneRegion.apply(this, arguments);\n },\n\n onTables(currentSegment, data, start, end) {\n let customTables = this.customTables;\n\n if (!customTables) {\n this.customTables = customTables = {};\n }\n\n customTables[currentSegment] = decodeTablesSegment(data, start, end);\n }\n\n };\n\n function HuffmanLine(lineData) {\n if (lineData.length === 2) {\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 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\n if (line) {\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 this.isLeaf = false;\n }\n }\n\n HuffmanTreeNode.prototype = {\n buildTree(line, shift) {\n const bit = line.prefixCode >> shift & 1;\n\n if (shift <= 0) {\n this.children[bit] = new HuffmanTreeNode(line);\n } else {\n let node = this.children[bit];\n\n if (!node) {\n this.children[bit] = node = new HuffmanTreeNode(null);\n }\n\n node.buildTree(line, shift - 1);\n }\n },\n\n decodeNode(reader) {\n if (this.isLeaf) {\n if (this.isOOB) {\n return null;\n }\n\n const htOffset = reader.readBits(this.rangeLength);\n return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n }\n\n const node = this.children[reader.readBit()];\n\n if (!node) {\n throw new Jbig2Error(\"invalid Huffman data\");\n }\n\n return node.decodeNode(reader);\n }\n\n };\n\n function HuffmanTable(lines, prefixCodesDone) {\n if (!prefixCodesDone) {\n this.assignPrefixCodes(lines);\n }\n\n this.rootNode = new HuffmanTreeNode(null);\n\n for (let i = 0, ii = lines.length; i < ii; i++) {\n const line = lines[i];\n\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\n assignPrefixCodes(lines) {\n const linesLength = lines.length;\n let prefixLengthMax = 0;\n\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\n for (let i = 0; i < linesLength; i++) {\n histogram[lines[i].prefixLength]++;\n }\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\n while (currentTemp < linesLength) {\n line = lines[currentTemp];\n\n if (line.prefixLength === currentLength) {\n line.prefixCode = currentCode;\n currentCode++;\n }\n\n currentTemp++;\n }\n\n currentLength++;\n }\n }\n\n };\n\n function decodeTablesSegment(data, start, end) {\n const flags = data[start];\n const lowestValue = (0, _core_utils.readUint32)(data, start + 1) & 0xffffffff;\n const highestValue = (0, _core_utils.readUint32)(data, start + 5) & 0xffffffff;\n const reader = new Reader(data, start + 9, end);\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 do {\n prefixLength = reader.readBits(prefixSizeBits);\n rangeLength = reader.readBits(rangeSizeBits);\n lines.push(new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0]));\n currentRangeLow += 1 << rangeLength;\n } while (currentRangeLow < highestValue);\n\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n if (flags & 1) {\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 let table = standardTablesCache[number];\n\n if (table) {\n return table;\n }\n\n let lines;\n\n switch (number) {\n case 1:\n lines = [[0, 1, 4, 0x0], [16, 2, 8, 0x2], [272, 3, 16, 0x6], [65808, 3, 32, 0x7]];\n break;\n\n case 2:\n lines = [[0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [75, 6, 32, 0x3e], [6, 0x3f]];\n break;\n\n case 3:\n lines = [[-256, 8, 8, 0xfe], [0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [-257, 8, 32, 0xff, \"lower\"], [75, 7, 32, 0x7e], [6, 0x3e]];\n break;\n\n case 4:\n lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [76, 5, 32, 0x1f]];\n break;\n\n case 5:\n lines = [[-255, 7, 8, 0x7e], [1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [-256, 7, 32, 0x7f, \"lower\"], [76, 6, 32, 0x3e]];\n break;\n\n case 6:\n lines = [[-2048, 5, 10, 0x1c], [-1024, 4, 9, 0x8], [-512, 4, 8, 0x9], [-256, 4, 7, 0xa], [-128, 5, 6, 0x1d], [-64, 5, 5, 0x1e], [-32, 4, 5, 0xb], [0, 2, 7, 0x0], [128, 3, 7, 0x2], [256, 3, 8, 0x3], [512, 4, 9, 0xc], [1024, 4, 10, 0xd], [-2049, 6, 32, 0x3e, \"lower\"], [2048, 6, 32, 0x3f]];\n break;\n\n case 7:\n lines = [[-1024, 4, 9, 0x8], [-512, 3, 8, 0x0], [-256, 4, 7, 0x9], [-128, 5, 6, 0x1a], [-64, 5, 5, 0x1b], [-32, 4, 5, 0xa], [0, 4, 5, 0xb], [32, 5, 5, 0x1c], [64, 5, 6, 0x1d], [128, 4, 7, 0xc], [256, 3, 8, 0x1], [512, 3, 9, 0x2], [1024, 3, 10, 0x3], [-1025, 5, 32, 0x1e, \"lower\"], [2048, 5, 32, 0x1f]];\n break;\n\n case 8:\n lines = [[-15, 8, 3, 0xfc], [-7, 9, 1, 0x1fc], [-5, 8, 1, 0xfd], [-3, 9, 0, 0x1fd], [-2, 7, 0, 0x7c], [-1, 4, 0, 0xa], [0, 2, 1, 0x0], [2, 5, 0, 0x1a], [3, 6, 0, 0x3a], [4, 3, 4, 0x4], [20, 6, 1, 0x3b], [22, 4, 4, 0xb], [38, 4, 5, 0xc], [70, 5, 6, 0x1b], [134, 5, 7, 0x1c], [262, 6, 7, 0x3c], [390, 7, 8, 0x7d], [646, 6, 10, 0x3d], [-16, 9, 32, 0x1fe, \"lower\"], [1670, 9, 32, 0x1ff], [2, 0x1]];\n break;\n\n case 9:\n lines = [[-31, 8, 4, 0xfc], [-15, 9, 2, 0x1fc], [-11, 8, 2, 0xfd], [-7, 9, 1, 0x1fd], [-5, 7, 1, 0x7c], [-3, 4, 1, 0xa], [-1, 3, 1, 0x2], [1, 3, 1, 0x3], [3, 5, 1, 0x1a], [5, 6, 1, 0x3a], [7, 3, 5, 0x4], [39, 6, 2, 0x3b], [43, 4, 5, 0xb], [75, 4, 6, 0xc], [139, 5, 7, 0x1b], [267, 5, 8, 0x1c], [523, 6, 8, 0x3c], [779, 7, 9, 0x7d], [1291, 6, 11, 0x3d], [-32, 9, 32, 0x1fe, \"lower\"], [3339, 9, 32, 0x1ff], [2, 0x0]];\n break;\n\n case 10:\n lines = [[-21, 7, 4, 0x7a], [-5, 8, 0, 0xfc], [-4, 7, 0, 0x7b], [-3, 5, 0, 0x18], [-2, 2, 2, 0x0], [2, 5, 0, 0x19], [3, 6, 0, 0x36], [4, 7, 0, 0x7c], [5, 8, 0, 0xfd], [6, 2, 6, 0x1], [70, 5, 5, 0x1a], [102, 6, 5, 0x37], [134, 6, 6, 0x38], [198, 6, 7, 0x39], [326, 6, 8, 0x3a], [582, 6, 9, 0x3b], [1094, 6, 10, 0x3c], [2118, 7, 11, 0x7d], [-22, 8, 32, 0xfe, \"lower\"], [4166, 8, 32, 0xff], [2, 0x2]];\n break;\n\n case 11:\n lines = [[1, 1, 0, 0x0], [2, 2, 1, 0x2], [4, 4, 0, 0xc], [5, 4, 1, 0xd], [7, 5, 1, 0x1c], [9, 5, 2, 0x1d], [13, 6, 2, 0x3c], [17, 7, 2, 0x7a], [21, 7, 3, 0x7b], [29, 7, 4, 0x7c], [45, 7, 5, 0x7d], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]];\n break;\n\n case 12:\n lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 1, 0x6], [5, 5, 0, 0x1c], [6, 5, 1, 0x1d], [8, 6, 1, 0x3c], [10, 7, 0, 0x7a], [11, 7, 1, 0x7b], [13, 7, 2, 0x7c], [17, 7, 3, 0x7d], [25, 7, 4, 0x7e], [41, 8, 5, 0xfe], [73, 8, 32, 0xff]];\n break;\n\n case 13:\n lines = [[1, 1, 0, 0x0], [2, 3, 0, 0x4], [3, 4, 0, 0xc], [4, 5, 0, 0x1c], [5, 4, 1, 0xd], [7, 3, 3, 0x5], [15, 6, 1, 0x3a], [17, 6, 2, 0x3b], [21, 6, 3, 0x3c], [29, 6, 4, 0x3d], [45, 6, 5, 0x3e], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]];\n break;\n\n case 14:\n lines = [[-2, 3, 0, 0x4], [-1, 3, 0, 0x5], [0, 1, 0, 0x0], [1, 3, 0, 0x6], [2, 3, 0, 0x7]];\n break;\n\n case 15:\n lines = [[-24, 7, 4, 0x7c], [-8, 6, 2, 0x3c], [-4, 5, 1, 0x1c], [-2, 4, 0, 0xc], [-1, 3, 0, 0x4], [0, 1, 0, 0x0], [1, 3, 0, 0x5], [2, 4, 0, 0xd], [3, 5, 1, 0x1d], [5, 6, 2, 0x3d], [9, 7, 4, 0x7d], [-25, 7, 32, 0x7e, \"lower\"], [25, 7, 32, 0x7f]];\n break;\n\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\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\n this.currentByte = this.data[this.position++];\n this.shift = 7;\n }\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\n for (i = numBits - 1; i >= 0; i--) {\n result |= this.readBit() << i;\n }\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\n return this.data[this.position++];\n }\n\n };\n\n function getCustomHuffmanTable(index, referredTo, customTables) {\n let currentIndex = 0;\n\n for (let i = 0, ii = referredTo.length; i < ii; i++) {\n const table = customTables[referredTo[i]];\n\n if (table) {\n if (index === currentIndex) {\n return table;\n }\n\n currentIndex++;\n }\n }\n\n throw new Jbig2Error(\"can't find custom Huffman table\");\n }\n\n function getTextRegionHuffmanTables(textRegion, referredTo, customTables, numberOfSymbols, reader) {\n const codes = [];\n\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\n const runCodesTable = new HuffmanTable(codes, false);\n codes.length = 0;\n\n for (let i = 0; i < numberOfSymbols;) {\n const codeLength = runCodesTable.decode(reader);\n\n if (codeLength >= 32) {\n let repeatedLength, numberOfRepeats, j;\n\n switch (codeLength) {\n case 32:\n if (i === 0) {\n throw new Jbig2Error(\"no previous value in symbol ID table\");\n }\n\n numberOfRepeats = reader.readBits(2) + 3;\n repeatedLength = codes[i - 1].prefixLength;\n break;\n\n case 33:\n numberOfRepeats = reader.readBits(3) + 3;\n repeatedLength = 0;\n break;\n\n case 34:\n numberOfRepeats = reader.readBits(7) + 11;\n repeatedLength = 0;\n break;\n\n default:\n throw new Jbig2Error(\"invalid code length in symbol ID table\");\n }\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\n reader.byteAlign();\n const symbolIDTable = new HuffmanTable(codes, false);\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\n case 3:\n tableFirstS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\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\n case 3:\n tableDeltaS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\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\n case 3:\n tableDeltaT = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\n default:\n throw new Jbig2Error(\"invalid Huffman DT selector\");\n }\n\n if (textRegion.refinement) {\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(dictionary, referredTo, customTables) {\n let customIndex = 0,\n tableDeltaHeight,\n tableDeltaWidth;\n\n switch (dictionary.huffmanDHSelector) {\n case 0:\n case 1:\n tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n break;\n\n case 3:\n tableDeltaHeight = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\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\n case 3:\n tableDeltaWidth = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\n default:\n throw new Jbig2Error(\"invalid Huffman DW selector\");\n }\n\n let tableBitmapSize, tableAggregateInstances;\n\n if (dictionary.bitmapSizeSelector) {\n tableBitmapSize = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n } else {\n tableBitmapSize = getStandardTable(1);\n }\n\n if (dictionary.aggregationInstancesSelector) {\n tableAggregateInstances = getCustomHuffmanTable(customIndex, referredTo, customTables);\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\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n\n for (let x = 0; x < width; x++) {\n row[x] = reader.readBit();\n }\n\n reader.byteAlign();\n }\n\n return bitmap;\n }\n\n function decodeMMRBitmap(input, width, height, endOfBlock) {\n const params = {\n K: -1,\n Columns: width,\n Rows: height,\n BlackIs1: true,\n EndOfBlock: endOfBlock\n };\n const decoder = new _ccitt.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\n for (let x = 0; x < width; x++) {\n if (shift < 0) {\n currentByte = decoder.readNextChar();\n\n if (currentByte === -1) {\n currentByte = 0;\n eof = true;\n }\n\n shift = 7;\n }\n\n row[x] = currentByte >> shift & 1;\n shift--;\n }\n }\n\n if (endOfBlock && !eof) {\n const lookForEOFLimit = 5;\n\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 function Jbig2Image() {}\n\n Jbig2Image.prototype = {\n parseChunks(chunks) {\n return parseJbig2Chunks(chunks);\n },\n\n parse(data) {\n const {\n imgData,\n width,\n height\n } = parseJbig2(data);\n this.width = width;\n this.height = height;\n return imgData;\n }\n\n };\n return Jbig2Image;\n}();\n\nexports.Jbig2Image = Jbig2Image;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ArithmeticDecoder = void 0;\nconst QeTable = [{\n qe: 0x5601,\n nmps: 1,\n nlps: 1,\n switchFlag: 1\n}, {\n qe: 0x3401,\n nmps: 2,\n nlps: 6,\n switchFlag: 0\n}, {\n qe: 0x1801,\n nmps: 3,\n nlps: 9,\n switchFlag: 0\n}, {\n qe: 0x0ac1,\n nmps: 4,\n nlps: 12,\n switchFlag: 0\n}, {\n qe: 0x0521,\n nmps: 5,\n nlps: 29,\n switchFlag: 0\n}, {\n qe: 0x0221,\n nmps: 38,\n nlps: 33,\n switchFlag: 0\n}, {\n qe: 0x5601,\n nmps: 7,\n nlps: 6,\n switchFlag: 1\n}, {\n qe: 0x5401,\n nmps: 8,\n nlps: 14,\n switchFlag: 0\n}, {\n qe: 0x4801,\n nmps: 9,\n nlps: 14,\n switchFlag: 0\n}, {\n qe: 0x3801,\n nmps: 10,\n nlps: 14,\n switchFlag: 0\n}, {\n qe: 0x3001,\n nmps: 11,\n nlps: 17,\n switchFlag: 0\n}, {\n qe: 0x2401,\n nmps: 12,\n nlps: 18,\n switchFlag: 0\n}, {\n qe: 0x1c01,\n nmps: 13,\n nlps: 20,\n switchFlag: 0\n}, {\n qe: 0x1601,\n nmps: 29,\n nlps: 21,\n switchFlag: 0\n}, {\n qe: 0x5601,\n nmps: 15,\n nlps: 14,\n switchFlag: 1\n}, {\n qe: 0x5401,\n nmps: 16,\n nlps: 14,\n switchFlag: 0\n}, {\n qe: 0x5101,\n nmps: 17,\n nlps: 15,\n switchFlag: 0\n}, {\n qe: 0x4801,\n nmps: 18,\n nlps: 16,\n switchFlag: 0\n}, {\n qe: 0x3801,\n nmps: 19,\n nlps: 17,\n switchFlag: 0\n}, {\n qe: 0x3401,\n nmps: 20,\n nlps: 18,\n switchFlag: 0\n}, {\n qe: 0x3001,\n nmps: 21,\n nlps: 19,\n switchFlag: 0\n}, {\n qe: 0x2801,\n nmps: 22,\n nlps: 19,\n switchFlag: 0\n}, {\n qe: 0x2401,\n nmps: 23,\n nlps: 20,\n switchFlag: 0\n}, {\n qe: 0x2201,\n nmps: 24,\n nlps: 21,\n switchFlag: 0\n}, {\n qe: 0x1c01,\n nmps: 25,\n nlps: 22,\n switchFlag: 0\n}, {\n qe: 0x1801,\n nmps: 26,\n nlps: 23,\n switchFlag: 0\n}, {\n qe: 0x1601,\n nmps: 27,\n nlps: 24,\n switchFlag: 0\n}, {\n qe: 0x1401,\n nmps: 28,\n nlps: 25,\n switchFlag: 0\n}, {\n qe: 0x1201,\n nmps: 29,\n nlps: 26,\n switchFlag: 0\n}, {\n qe: 0x1101,\n nmps: 30,\n nlps: 27,\n switchFlag: 0\n}, {\n qe: 0x0ac1,\n nmps: 31,\n nlps: 28,\n switchFlag: 0\n}, {\n qe: 0x09c1,\n nmps: 32,\n nlps: 29,\n switchFlag: 0\n}, {\n qe: 0x08a1,\n nmps: 33,\n nlps: 30,\n switchFlag: 0\n}, {\n qe: 0x0521,\n nmps: 34,\n nlps: 31,\n switchFlag: 0\n}, {\n qe: 0x0441,\n nmps: 35,\n nlps: 32,\n switchFlag: 0\n}, {\n qe: 0x02a1,\n nmps: 36,\n nlps: 33,\n switchFlag: 0\n}, {\n qe: 0x0221,\n nmps: 37,\n nlps: 34,\n switchFlag: 0\n}, {\n qe: 0x0141,\n nmps: 38,\n nlps: 35,\n switchFlag: 0\n}, {\n qe: 0x0111,\n nmps: 39,\n nlps: 36,\n switchFlag: 0\n}, {\n qe: 0x0085,\n nmps: 40,\n nlps: 37,\n switchFlag: 0\n}, {\n qe: 0x0049,\n nmps: 41,\n nlps: 38,\n switchFlag: 0\n}, {\n qe: 0x0025,\n nmps: 42,\n nlps: 39,\n switchFlag: 0\n}, {\n qe: 0x0015,\n nmps: 43,\n nlps: 40,\n switchFlag: 0\n}, {\n qe: 0x0009,\n nmps: 44,\n nlps: 41,\n switchFlag: 0\n}, {\n qe: 0x0005,\n nmps: 45,\n nlps: 42,\n switchFlag: 0\n}, {\n qe: 0x0001,\n nmps: 45,\n nlps: 43,\n switchFlag: 0\n}, {\n qe: 0x5601,\n nmps: 46,\n nlps: 46,\n switchFlag: 0\n}];\n\nclass ArithmeticDecoder {\n constructor(data, start, end) {\n this.data = data;\n this.bp = start;\n this.dataEnd = end;\n this.chigh = data[start];\n this.clow = 0;\n this.byteIn();\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 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\n if (this.clow > 0xffff) {\n this.chigh += this.clow >> 16;\n this.clow &= 0xffff;\n }\n }\n\n readBit(contexts, pos) {\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 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\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n\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\n this.a = a;\n contexts[pos] = cx_index << 1 | cx_mps;\n return d;\n }\n\n}\n\nexports.ArithmeticDecoder = ArithmeticDecoder;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpegStream = void 0;\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _jpg = __w_pdfjs_require__(19);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst JpegStream = function JpegStreamClosure() {\n function JpegStream(stream, maybeLength, dict, params) {\n let ch;\n\n while ((ch = stream.getByte()) !== -1) {\n if (ch === 0xff) {\n stream.skip(-1);\n break;\n }\n }\n\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n\n _stream.DecodeStream.call(this, maybeLength);\n }\n\n JpegStream.prototype = Object.create(_stream.DecodeStream.prototype);\n Object.defineProperty(JpegStream.prototype, \"bytes\", {\n get: function JpegStream_bytes() {\n return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n },\n configurable: true\n });\n\n JpegStream.prototype.ensureBuffer = function (requested) {};\n\n JpegStream.prototype.readBlock = function () {\n if (this.eof) {\n return;\n }\n\n const jpegOptions = {\n decodeTransform: undefined,\n colorTransform: undefined\n };\n const decodeArr = this.dict.getArray(\"Decode\", \"D\");\n\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\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\n if (transform[i] !== 256 || transform[i + 1] !== 0) {\n transformNeeded = true;\n }\n }\n\n if (transformNeeded) {\n jpegOptions.decodeTransform = transform;\n }\n }\n\n if ((0, _primitives.isDict)(this.params)) {\n const colorTransform = this.params.get(\"ColorTransform\");\n\n if (Number.isInteger(colorTransform)) {\n jpegOptions.colorTransform = colorTransform;\n }\n }\n\n const jpegImage = new _jpg.JpegImage(jpegOptions);\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\nexports.JpegStream = JpegStream;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpegImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nclass JpegError extends _util.BaseException {\n constructor(msg) {\n super(`JPEG error: ${msg}`);\n }\n\n}\n\nclass DNLMarkerError extends _util.BaseException {\n constructor(message, scanLines) {\n super(message);\n this.scanLines = scanLines;\n }\n\n}\n\nclass EOIMarkerError extends _util.BaseException {}\n\nvar JpegImage = function JpegImageClosure() {\n var dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n\n function JpegImage({\n decodeTransform = null,\n colorTransform = -1\n } = {}) {\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\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n\n code.push({\n children: [],\n index: 0\n });\n var p = code[0],\n q;\n\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\n while (p.index > 0) {\n p = code.pop();\n }\n\n p.index++;\n code.push(p);\n\n while (code.length <= i) {\n code.push(q = {\n children: [],\n index: 0\n });\n p.children[p.index] = q.children;\n p = q;\n }\n\n k++;\n }\n\n if (i + 1 < length) {\n code.push(q = {\n children: [],\n index: 0\n });\n p.children[p.index] = q.children;\n p = q;\n }\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(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, parseDNLMarker = false) {\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\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\n bitsData = data[offset++];\n\n if (bitsData === 0xff) {\n var nextByte = data[offset++];\n\n if (nextByte) {\n if (nextByte === 0xdc && parseDNLMarker) {\n offset += 2;\n const scanLines = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n\n if (scanLines > 0 && scanLines !== frame.scanLines) {\n throw new DNLMarkerError(\"Found DNL marker (0xFFDC) while parsing scan data\", scanLines);\n }\n } else if (nextByte === 0xd9) {\n if (parseDNLMarker) {\n const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n\n if (maybeScanLines > 0 && Math.round(frame.scanLines / maybeScanLines) >= 10) {\n throw new DNLMarkerError(\"Found EOI marker (0xFFD9) while parsing scan data, \" + \"possibly caused by incorrect `scanLines` parameter\", maybeScanLines);\n }\n }\n\n throw new EOIMarkerError(\"Found EOI marker (0xFFD9) while parsing scan data\");\n }\n\n throw new JpegError(`unexpected marker ${(bitsData << 8 | nextByte).toString(16)}`);\n }\n }\n\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n var node = tree;\n\n while (true) {\n node = node[readBit()];\n\n switch (typeof node) {\n case \"number\":\n return node;\n\n case \"object\":\n continue;\n }\n\n throw new JpegError(\"invalid huffman sequence\");\n }\n }\n\n function receive(length) {\n var n = 0;\n\n while (length > 0) {\n n = n << 1 | readBit();\n length--;\n }\n\n return n;\n }\n\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n\n var n = receive(length);\n\n if (n >= 1 << length - 1) {\n return n;\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\n while (k < 64) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n\n if (s === 0) {\n if (r < 15) {\n break;\n }\n\n k += 16;\n continue;\n }\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\n function decodeACFirst(component, blockOffset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n\n var k = spectralStart,\n e = spectralEnd;\n\n while (k <= e) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n\n k += 16;\n continue;\n }\n\n k += r;\n var z = dctZigZag[k];\n component.blockData[blockOffset + z] = receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n var successiveACState = 0,\n successiveACNextValue;\n\n function decodeACSuccessive(component, blockOffset) {\n var k = spectralStart;\n var e = spectralEnd;\n var r = 0;\n var s;\n var rs;\n\n while (k <= e) {\n const offsetZ = blockOffset + dctZigZag[k];\n const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n\n switch (successiveACState) {\n case 0:\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n\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\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n\n continue;\n\n case 1:\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n\n break;\n\n case 3:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n component.blockData[offsetZ] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n\n break;\n\n case 4:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n\n break;\n }\n\n k++;\n }\n\n if (successiveACState === 4) {\n eobrun--;\n\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n\n let blockRow = 0;\n\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\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\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\n while (mcu <= mcuExpected) {\n var mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;\n\n if (mcuToRead > 0) {\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n\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\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\n mcu++;\n }\n }\n }\n\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n\n if (!fileMarker) {\n break;\n }\n\n if (fileMarker.invalid) {\n const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n (0, _util.warn)(`decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`);\n offset = fileMarker.offset;\n }\n\n if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n }\n\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 for (var row = 0; row < 64; row += 8) {\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 p0 *= qt[row];\n\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\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 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 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 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 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 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 if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = dctSqrt2 * p0 + 8192 >> 14;\n\n if (t < -2040) {\n t = 0;\n } else if (t >= 2024) {\n t = 255;\n } else {\n t = t + 2056 >> 4;\n }\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 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 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 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 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 if (p0 < 16) {\n p0 = 0;\n } else if (p0 >= 4080) {\n p0 = 255;\n } else {\n p0 >>= 4;\n }\n\n if (p1 < 16) {\n p1 = 0;\n } else if (p1 >= 4080) {\n p1 = 255;\n } else {\n p1 >>= 4;\n }\n\n if (p2 < 16) {\n p2 = 0;\n } else if (p2 >= 4080) {\n p2 = 255;\n } else {\n p2 >>= 4;\n }\n\n if (p3 < 16) {\n p3 = 0;\n } else if (p3 >= 4080) {\n p3 = 255;\n } else {\n p3 >>= 4;\n }\n\n if (p4 < 16) {\n p4 = 0;\n } else if (p4 >= 4080) {\n p4 = 255;\n } else {\n p4 >>= 4;\n }\n\n if (p5 < 16) {\n p5 = 0;\n } else if (p5 >= 4080) {\n p5 = 255;\n } else {\n p5 >>= 4;\n }\n\n if (p6 < 16) {\n p6 = 0;\n } else if (p6 >= 4080) {\n p6 = 255;\n } else {\n p6 >>= 4;\n }\n\n if (p7 < 16) {\n p7 = 0;\n } else if (p7 >= 4080) {\n p7 = 255;\n } else {\n p7 >>= 4;\n }\n\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\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;\n }\n\n var currentMarker = (0, _core_utils.readUint16)(data, currentPos);\n\n if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos\n };\n }\n\n var newMarker = (0, _core_utils.readUint16)(data, newPos);\n\n while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n if (++newPos >= maxPos) {\n return null;\n }\n\n newMarker = (0, _core_utils.readUint16)(data, newPos);\n }\n\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos\n };\n }\n\n JpegImage.prototype = {\n parse(data, {\n dnlScanLines = null\n } = {}) {\n function readDataBlock() {\n const length = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n let endOffset = offset + length - 2;\n var fileMarker = findNextFileMarker(data, endOffset, offset);\n\n if (fileMarker && fileMarker.invalid) {\n (0, _util.warn)(\"readDataBlock - incorrect length, current marker is: \" + fileMarker.invalid);\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\n for (var i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH);\n var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV);\n var blocksPerLineForMcu = mcusPerLine * component.h;\n var blocksPerColumnForMcu = mcusPerColumn * component.v;\n var blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\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 let fileMarker = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n\n if (fileMarker !== 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n\n fileMarker = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== 0xffd9) {\n var i, j, l;\n\n switch (fileMarker) {\n case 0xffe0:\n case 0xffe1:\n case 0xffe2:\n case 0xffe3:\n case 0xffe4:\n case 0xffe5:\n case 0xffe6:\n case 0xffe7:\n case 0xffe8:\n case 0xffe9:\n case 0xffea:\n case 0xffeb:\n case 0xffec:\n case 0xffed:\n case 0xffee:\n case 0xffef:\n case 0xfffe:\n var appData = readDataBlock();\n\n if (fileMarker === 0xffe0) {\n if (appData[0] === 0x4a && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) {\n jfif = {\n version: {\n major: appData[5],\n minor: appData[6]\n },\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(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n\n if (fileMarker === 0xffee) {\n if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6f && appData[3] === 0x62 && appData[4] === 0x65) {\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\n break;\n\n case 0xffdb:\n const quantizationTablesLength = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n var z;\n\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n var tableData = new Uint16Array(64);\n\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n }\n } else {\n throw new JpegError(\"DQT - invalid table spec\");\n }\n\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n\n break;\n\n case 0xffc0:\n case 0xffc1:\n case 0xffc2:\n if (frame) {\n throw new JpegError(\"Only single frame JPEGs supported\");\n }\n\n offset += 2;\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n const sofScanLines = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = (0, _core_utils.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\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\n if (maxH < h) {\n maxH = h;\n }\n\n if (maxV < v) {\n maxV = v;\n }\n\n var qId = data[offset + 2];\n l = frame.components.push({\n h,\n v,\n quantizationId: qId,\n quantizationTable: null\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4:\n const huffmanLength = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n\n for (i = 2; i < huffmanLength;) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n\n var huffmanValues = new Uint8Array(codeLengthSum);\n\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n\n break;\n\n case 0xffdd:\n offset += 2;\n resetInterval = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n break;\n\n case 0xffda:\n const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n offset += 2;\n var selectorsCount = data[offset++];\n var components = [],\n component;\n\n for (i = 0; i < selectorsCount; i++) {\n const index = data[offset++];\n var componentIndex = frame.componentIds[index];\n component = frame.components[componentIndex];\n component.index = index;\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n\n try {\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, parseDNLMarker);\n offset += processed;\n } catch (ex) {\n if (ex instanceof DNLMarkerError) {\n (0, _util.warn)(`${ex.message} -- attempting to re-parse the JPEG image.`);\n return this.parse(data, {\n dnlScanLines: ex.scanLines\n });\n } else if (ex instanceof EOIMarkerError) {\n (0, _util.warn)(`${ex.message} -- ignoring the rest of the image data.`);\n break markerLoop;\n }\n\n throw ex;\n }\n\n break;\n\n case 0xffdc:\n offset += 4;\n break;\n\n case 0xffff:\n if (data[offset] !== 0xff) {\n offset--;\n }\n\n break;\n\n default:\n const nextFileMarker = findNextFileMarker(data, offset - 2, offset - 3);\n\n if (nextFileMarker && nextFileMarker.invalid) {\n (0, _util.warn)(\"JpegImage.parse - unexpected data, current marker is: \" + nextFileMarker.invalid);\n offset = nextFileMarker.offset;\n break;\n }\n\n if (offset >= data.length - 1) {\n (0, _util.warn)(\"JpegImage.parse - reached the end of the image data \" + \"without finding an EOI marker (0xFFD9).\");\n break markerLoop;\n }\n\n throw new JpegError(\"JpegImage.parse - unknown marker: \" + fileMarker.toString(16));\n }\n\n fileMarker = (0, _core_utils.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\n for (i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var quantizationTable = quantizationTables[component.quantizationId];\n\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n\n this.components.push({\n index: component.index,\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn\n });\n }\n\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 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;\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\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\n lastComponentScaleX = componentScaleX;\n }\n\n for (y = 0; y < height; y++) {\n j = 0 | y * componentScaleY;\n index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3;\n\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n\n let transform = this._decodeTransform;\n\n if (!isSourcePDF && numComponents === 4 && !transform) {\n transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n }\n\n if (transform) {\n for (i = 0; i < dataLength;) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = (data[i] * transform[k] >> 8) + transform[k + 1];\n }\n }\n }\n\n return data;\n },\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n return !!this.adobe.transformCode;\n }\n\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n return false;\n } else if (this.components[0].index === 0x52 && this.components[1].index === 0x47 && this.components[2].index === 0x42) {\n return false;\n }\n\n return true;\n }\n\n if (this._colorTransform === 1) {\n return true;\n }\n\n return false;\n },\n\n _convertYccToRgb: function convertYccToRgb(data) {\n var Y, Cb, Cr;\n\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\n return data;\n },\n _convertYcckToRgb: function convertYcckToRgb(data) {\n var Y, Cb, Cr, k;\n var offset = 0;\n\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 data[offset++] = -122.67195406894 + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - 0.154362151871126) + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - 0.00477271405408747 * k + 1.53380253221734) + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + 0.48357088451265) + k * (-0.000336197177618394 * k + 0.484791561490776);\n data[offset++] = 107.268039397724 + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + 0.000659397001245577 * Y + 0.000426105652938837 * k - 0.176491792462875) + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + 0.000770482631801132 * k - 0.151051492775562) + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + 0.25802910206845) + k * (-0.000318913117588328 * k - 0.213742400323665);\n data[offset++] = -20.810012546947 + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + 0.0020741088115012 * Y - 0.00288260236853442 * k + 0.814272968359295) + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + 0.000560833691242812 * k - 0.195152027534049) + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + 0.116935020465145) + k * (-0.000343531996510555 * k + 0.24165260232407);\n }\n\n return data.subarray(0, offset);\n },\n _convertYcckToCmyk: function convertYcckToCmyk(data) {\n var Y, Cb, Cr;\n\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 }\n\n return data;\n },\n _convertCmykToRgb: function convertCmykToRgb(data) {\n var c, m, y, k;\n var offset = 0;\n\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 data[offset++] = 255 + c * (-0.00006747147073602441 * c + 0.0008379262121013727 * m + 0.0002894718188643294 * y + 0.003264231057537806 * k - 1.1185611867203937) + m * (0.000026374107616089405 * m - 0.00008626949158638572 * y - 0.0002748769067499491 * k - 0.02155688794978967) + y * (-0.00003878099212869363 * y - 0.0003267808279485286 * k + 0.0686742238595345) - k * (0.0003361971776183937 * k + 0.7430659151342254);\n data[offset++] = 255 + c * (0.00013596372813588848 * c + 0.000924537132573585 * m + 0.00010567359618683593 * y + 0.0004791864687436512 * k - 0.3109689587515875) + m * (-0.00023545346108370344 * m + 0.0002702845253534714 * y + 0.0020200308977307156 * k - 0.7488052167015494) + y * (0.00006834815998235662 * y + 0.00015168452363460973 * k - 0.09751927774728933) - k * (0.00031891311758832814 * k + 0.7364883807733168);\n data[offset++] = 255 + c * (0.000013598650411385307 * c + 0.00012423956175490851 * m + 0.0004751985097583589 * y - 0.0000036729317476630422 * k - 0.05562186980264034) + m * (0.00016141380598724676 * m + 0.0009692239130725186 * y + 0.0007782692450036253 * k - 0.44015232367526463) + y * (5.068882914068769e-7 * y + 0.0017778369011375071 * k - 0.7591454649749609) - k * (0.0003435319965105553 * k + 0.7063770186160144);\n }\n\n return data.subarray(0, offset);\n },\n\n getData({\n width,\n height,\n forceRGB = false,\n isSourcePDF = false\n }) {\n if (this.numComponents > 4) {\n throw new JpegError(\"Unsupported color mode\");\n }\n\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\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\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\n return this._convertYcckToCmyk(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n\n return data;\n }\n\n };\n return JpegImage;\n}();\n\nexports.JpegImage = JpegImage;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpxStream = void 0;\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _jpx = __w_pdfjs_require__(21);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst JpxStream = function JpxStreamClosure() {\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 _stream.DecodeStream.call(this, maybeLength);\n }\n\n JpxStream.prototype = Object.create(_stream.DecodeStream.prototype);\n Object.defineProperty(JpxStream.prototype, \"bytes\", {\n get: function JpxStream_bytes() {\n return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n },\n configurable: true\n });\n\n JpxStream.prototype.ensureBuffer = function (requested) {};\n\n JpxStream.prototype.readBlock = function () {\n if (this.eof) {\n return;\n }\n\n const jpxImage = new _jpx.JpxImage();\n jpxImage.parse(this.bytes);\n const width = jpxImage.width;\n const height = jpxImage.height;\n const componentsCount = jpxImage.componentsCount;\n const tileCount = jpxImage.tiles.length;\n\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 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\n this.buffer = data;\n }\n\n this.bufferLength = this.buffer.length;\n this.eof = true;\n };\n\n return JpxStream;\n}();\n\nexports.JpxStream = JpxStream;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpxImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(17);\n\nclass JpxError extends _util.BaseException {\n constructor(msg) {\n super(`JPX error: ${msg}`);\n }\n\n}\n\nvar JpxImage = function JpxImageClosure() {\n var SubbandsGainLog2 = {\n LL: 0,\n LH: 1,\n HL: 1,\n HH: 2\n };\n\n function JpxImage() {\n this.failOnCorruptedImage = false;\n }\n\n JpxImage.prototype = {\n parse: function JpxImage_parse(data) {\n var head = (0, _core_utils.readUint16)(data, 0);\n\n if (head === 0xff4f) {\n this.parseCodestream(data, 0, data.length);\n return;\n }\n\n var position = 0,\n length = data.length;\n\n while (position < length) {\n var headerSize = 8;\n var lbox = (0, _core_utils.readUint32)(data, position);\n var tbox = (0, _core_utils.readUint32)(data, position + 4);\n position += headerSize;\n\n if (lbox === 1) {\n lbox = (0, _core_utils.readUint32)(data, position) * 4294967296 + (0, _core_utils.readUint32)(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n\n if (lbox < headerSize) {\n throw new JpxError(\"Invalid box field size\");\n }\n\n var dataLength = lbox - headerSize;\n var jumpDataLength = true;\n\n switch (tbox) {\n case 0x6a703268:\n jumpDataLength = false;\n break;\n\n case 0x636f6c72:\n var method = data[position];\n\n if (method === 1) {\n var colorspace = (0, _core_utils.readUint32)(data, position + 3);\n\n switch (colorspace) {\n case 16:\n case 17:\n case 18:\n break;\n\n default:\n (0, _util.warn)(\"Unknown colorspace \" + colorspace);\n break;\n }\n } else if (method === 2) {\n (0, _util.info)(\"ICC profile not supported\");\n }\n\n break;\n\n case 0x6a703263:\n this.parseCodestream(data, position, position + dataLength);\n break;\n\n case 0x6a502020:\n if ((0, _core_utils.readUint32)(data, position) !== 0x0d0a870a) {\n (0, _util.warn)(\"Invalid JP2 signature\");\n }\n\n break;\n\n case 0x6a501a1a:\n case 0x66747970:\n case 0x72726571:\n case 0x72657320:\n case 0x69686472:\n break;\n\n default:\n var headerType = String.fromCharCode(tbox >> 24 & 0xff, tbox >> 16 & 0xff, tbox >> 8 & 0xff, tbox & 0xff);\n (0, _util.warn)(\"Unsupported header type \" + tbox + \" (\" + headerType + \")\");\n break;\n }\n\n if (jumpDataLength) {\n position += dataLength;\n }\n }\n },\n parseImageProperties: function JpxImage_parseImageProperties(stream) {\n var newByte = stream.getByte();\n\n while (newByte >= 0) {\n var oldByte = newByte;\n newByte = stream.getByte();\n var code = oldByte << 8 | newByte;\n\n if (code === 0xff51) {\n stream.skip(4);\n var Xsiz = stream.getInt32() >>> 0;\n var Ysiz = stream.getInt32() >>> 0;\n var XOsiz = stream.getInt32() >>> 0;\n var YOsiz = stream.getInt32() >>> 0;\n stream.skip(16);\n var Csiz = stream.getUint16();\n this.width = Xsiz - XOsiz;\n this.height = Ysiz - YOsiz;\n this.componentsCount = Csiz;\n this.bitsPerComponent = 8;\n return;\n }\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\n try {\n var position = start;\n\n while (position + 1 < end) {\n var code = (0, _core_utils.readUint16)(data, position);\n position += 2;\n var length = 0,\n j,\n sqcd,\n spqcds,\n spqcdSize,\n scalarExpounded,\n tile;\n\n switch (code) {\n case 0xff4f:\n context.mainHeader = true;\n break;\n\n case 0xffd9:\n break;\n\n case 0xff51:\n length = (0, _core_utils.readUint16)(data, position);\n var siz = {};\n siz.Xsiz = (0, _core_utils.readUint32)(data, position + 4);\n siz.Ysiz = (0, _core_utils.readUint32)(data, position + 8);\n siz.XOsiz = (0, _core_utils.readUint32)(data, position + 12);\n siz.YOsiz = (0, _core_utils.readUint32)(data, position + 16);\n siz.XTsiz = (0, _core_utils.readUint32)(data, position + 20);\n siz.YTsiz = (0, _core_utils.readUint32)(data, position + 24);\n siz.XTOsiz = (0, _core_utils.readUint32)(data, position + 28);\n siz.YTOsiz = (0, _core_utils.readUint32)(data, position + 32);\n var componentsCount = (0, _core_utils.readUint16)(data, position + 36);\n siz.Csiz = componentsCount;\n var components = [];\n j = position + 38;\n\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\n context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n\n case 0xff5c:\n length = (0, _core_utils.readUint16)(data, position);\n var qcd = {};\n j = position + 2;\n sqcd = data[j++];\n\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n\n qcd.noQuantization = spqcdSize === 8;\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n\n while (j < length + position) {\n var spqcd = {};\n\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\n spqcds.push(spqcd);\n }\n\n qcd.SPqcds = spqcds;\n\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n\n break;\n\n case 0xff5d:\n length = (0, _core_utils.readUint16)(data, position);\n var qcc = {};\n j = position + 2;\n var cqcc;\n\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = (0, _core_utils.readUint16)(data, j);\n j += 2;\n }\n\n sqcd = data[j++];\n\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n\n qcc.noQuantization = spqcdSize === 8;\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n\n while (j < length + position) {\n spqcd = {};\n\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\n spqcds.push(spqcd);\n }\n\n qcc.SPqcds = spqcds;\n\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n\n break;\n\n case 0xff52:\n length = (0, _core_utils.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 = (0, _core_utils.readUint16)(data, j);\n j += 2;\n cod.multipleComponentTransform = data[j++];\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\n if (cod.entropyCoderWithCustomPrecincts) {\n var precinctsSizes = [];\n\n while (j < length + position) {\n var precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xf,\n PPy: precinctsSize >> 4\n });\n }\n\n cod.precinctsSizes = precinctsSizes;\n }\n\n var unsupported = [];\n\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push(\"selectiveArithmeticCodingBypass\");\n }\n\n if (cod.resetContextProbabilities) {\n unsupported.push(\"resetContextProbabilities\");\n }\n\n if (cod.terminationOnEachCodingPass) {\n unsupported.push(\"terminationOnEachCodingPass\");\n }\n\n if (cod.verticallyStripe) {\n unsupported.push(\"verticallyStripe\");\n }\n\n if (cod.predictableTermination) {\n unsupported.push(\"predictableTermination\");\n }\n\n if (unsupported.length > 0) {\n doNotRecover = true;\n throw new Error(\"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\n break;\n\n case 0xff90:\n length = (0, _core_utils.readUint16)(data, position);\n tile = {};\n tile.index = (0, _core_utils.readUint16)(data, position + 2);\n tile.length = (0, _core_utils.readUint32)(data, position + 4);\n tile.dataEnd = tile.length + position - 2;\n tile.partIndex = data[position + 8];\n tile.partsCount = data[position + 9];\n context.mainHeader = false;\n\n if (tile.partIndex === 0) {\n tile.COD = context.COD;\n tile.COC = context.COC.slice(0);\n tile.QCD = context.QCD;\n tile.QCC = context.QCC.slice(0);\n }\n\n context.currentTile = tile;\n break;\n\n case 0xff93:\n tile = context.currentTile;\n\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n\n case 0xff55:\n case 0xff57:\n case 0xff58:\n case 0xff64:\n length = (0, _core_utils.readUint16)(data, position);\n break;\n\n case 0xff53:\n throw new Error(\"Codestream code 0xFF53 (COC) is not implemented\");\n\n default:\n throw new Error(\"Unknown codestream code: \" + code.toString(16));\n }\n\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n (0, _util.warn)(\"JPX: Trying to recover from: \" + e.message);\n }\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\n function calculateComponentDimensions(component, siz) {\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\n function calculateTileGrids(context, components) {\n var siz = context.SIZ;\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\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\n context.tiles = tiles;\n var componentsCount = siz.Csiz;\n\n for (var i = 0, ii = componentsCount; i < ii; i++) {\n var component = components[i];\n\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\n function getBlocksDimensions(context, component, r) {\n var codOrCoc = component.codingStyleParameters;\n var result = {};\n\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\n result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx);\n result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy);\n return result;\n }\n\n function buildPrecincts(context, resolution, dimensions) {\n var precinctWidth = 1 << dimensions.PPx;\n var precinctHeight = 1 << dimensions.PPy;\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 = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0;\n var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0;\n var numprecincts = numprecinctswide * numprecinctshigh;\n resolution.precinctParameters = {\n precinctWidth,\n precinctHeight,\n numprecinctswide,\n numprecinctshigh,\n numprecincts,\n precinctWidthInSubband,\n precinctHeightInSubband\n };\n }\n\n function buildCodeblocks(context, subband, dimensions) {\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\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 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 var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband);\n var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband);\n precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n codeblock.precinctNumber = precinctNumber;\n codeblock.subbandType = subband.type;\n codeblock.Lblock = 3;\n\n if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) {\n continue;\n }\n\n codeblocks.push(codeblock);\n var precinct = precincts[precinctNumber];\n\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\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\n codeblock.precinct = precinct;\n }\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\n function createPacket(resolution, precinctNumber, layerNumber) {\n var precinctCodeblocks = [];\n var subbands = resolution.subbands;\n\n for (var i = 0, ii = subbands.length; i < ii; i++) {\n var subband = subbands[i];\n var codeblocks = subband.codeblocks;\n\n for (var j = 0, jj = codeblocks.length; j < jj; j++) {\n var codeblock = codeblocks[j];\n\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n\n precinctCodeblocks.push(codeblock);\n }\n }\n\n return {\n layerNumber,\n codeblocks: precinctCodeblocks\n };\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\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n\n var l = 0,\n r = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n for (; l < layersCount; l++) {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; i < componentsCount; i++) {\n var component = tile.components[i];\n\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n\n k = 0;\n }\n\n i = 0;\n }\n\n r = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\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\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n\n var r = 0,\n l = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; l < layersCount; l++) {\n for (; i < componentsCount; i++) {\n var component = tile.components[i];\n\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n\n k = 0;\n }\n\n i = 0;\n }\n\n l = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\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\n for (c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount);\n }\n\n var maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1);\n\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n var maxNumPrecincts = 0;\n\n for (c = 0; c < componentsCount; ++c) {\n var resolutions = tile.components[c].resolutions;\n\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts);\n }\n }\n\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n\n if (p >= numprecincts) {\n continue;\n }\n\n for (; l < layersCount;) {\n var packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n\n l = 0;\n }\n\n c = 0;\n }\n\n p = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\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 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 = component.codingStyleParameters.decompositionLevelsCount;\n\n for (; r <= decompositionLevelsCount; r++) {\n var resolution = component.resolutions[r];\n var sizeInImageScale = precinctsSizes.components[c].resolutions[r];\n var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n if (k === null) {\n continue;\n }\n\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n\n l = 0;\n }\n\n r = 0;\n }\n\n c = 0;\n }\n\n px = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\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 for (; c < componentsCount; ++c) {\n var component = tile.components[c];\n var precinctsIterationSizes = precinctsSizes.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n\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(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n if (k === null) {\n continue;\n }\n\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n\n l = 0;\n }\n\n r = 0;\n }\n\n px = 0;\n }\n\n py = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\n }\n\n function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) {\n var posX = pxIndex * precinctIterationSizes.minWidth;\n var posY = pyIndex * precinctIterationSizes.minHeight;\n\n if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) {\n return null;\n }\n\n var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide;\n return posX / sizeInImageScale.height + startPrecinctRowIndex;\n }\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\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = 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\n for (var r = decompositionLevelsCount; r >= 0; --r) {\n var resolution = component.resolutions[r];\n var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth;\n var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight;\n minWidthCurrentComponent = Math.min(minWidthCurrentComponent, widthCurrentResolution);\n minHeightCurrentComponent = Math.min(minHeightCurrentComponent, heightCurrentResolution);\n maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide);\n maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh);\n sizePerResolution[r] = {\n width: widthCurrentResolution,\n height: heightCurrentResolution\n };\n scale <<= 1;\n }\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\n return {\n components: sizePerComponent,\n minWidth,\n minHeight,\n maxNumWide,\n maxNumHigh\n };\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\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n var resolutions = [];\n var subbands = [];\n\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 var subband;\n\n if (r === 0) {\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 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 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 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 resolution.subbands = resolutionSubbands;\n }\n }\n\n component.resolutions = resolutions;\n component.subbands = subbands;\n }\n\n var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator = new LayerResolutionComponentPositionIterator(context);\n break;\n\n case 1:\n tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context);\n break;\n\n case 2:\n tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context);\n break;\n\n case 3:\n tile.packetsIterator = new PositionComponentResolutionLayerIterator(context);\n break;\n\n case 4:\n tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context);\n break;\n\n default:\n throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n }\n }\n\n function parseTilePackets(context, data, offset, dataLength) {\n var position = 0;\n var buffer,\n bufferSize = 0,\n skipNextBit = false;\n\n function readBits(count) {\n while (bufferSize < count) {\n var b = data[offset + position];\n position++;\n\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\n if (b === 0xff) {\n skipNextBit = true;\n }\n }\n\n bufferSize -= count;\n return buffer >>> bufferSize & (1 << count) - 1;\n }\n\n function skipMarkerIfEqual(value) {\n if (data[offset + position - 1] === 0xff && data[offset + position] === value) {\n skipBytes(1);\n return true;\n } else if (data[offset + position] === 0xff && data[offset + position + 1] === value) {\n skipBytes(2);\n return true;\n }\n\n return false;\n }\n\n function skipBytes(count) {\n position += count;\n }\n\n function alignToByte() {\n bufferSize = 0;\n\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n\n if (readBits(1) === 0) {\n return 2;\n }\n\n var value = readBits(2);\n\n if (value < 3) {\n return value + 3;\n }\n\n value = readBits(5);\n\n if (value < 31) {\n return value + 6;\n }\n\n value = readBits(7);\n return value + 37;\n }\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\n while (position < dataLength) {\n alignToByte();\n\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n skipBytes(4);\n }\n\n var packet = packetsIterator.nextPacket();\n\n if (!readBits(1)) {\n continue;\n }\n\n var layerNumber = packet.layerNumber;\n var queue = [],\n codeblock;\n\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\n if (codeblock.included !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n precinct = codeblock.precinct;\n var inclusionTree, zeroBitPlanesTree;\n\n if (precinct.inclusionTree !== undefined) {\n inclusionTree = precinct.inclusionTree;\n } else {\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\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\n if (!codeblockIncluded) {\n continue;\n }\n\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n\n var codingpasses = readCodingpasses();\n\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n\n var codingpassesLog2 = (0, _core_utils.log2)(codingpasses);\n var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;\n var codedDataLength = readBits(bits);\n queue.push({\n codeblock,\n codingpasses,\n dataLength: codedDataLength\n });\n }\n\n alignToByte();\n\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n\n while (queue.length > 0) {\n var packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n\n if (codeblock.data === undefined) {\n codeblock.data = [];\n }\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\n return position;\n }\n\n function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) {\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\n if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n\n if (codeblock.data === undefined) {\n continue;\n }\n\n var bitModel, currentCodingpassType;\n bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb);\n currentCodingpassType = 2;\n var data = codeblock.data,\n totalLength = 0,\n codingpasses = 0;\n var j, jj, dataItem;\n\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\n var encodedData = new Uint8Array(totalLength);\n var position = 0;\n\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\n var decoder = new _arithmetic_decoder.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\n case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n\n case 2:\n bitModel.runCleanupPass();\n\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\n }\n\n break;\n }\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 var interleave = subband.type !== \"LL\";\n\n for (j = 0; j < blockHeight; j++) {\n var row = offset / width | 0;\n var levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n\n if (sign[position] !== 0) {\n n = -n;\n }\n\n nb = bitsDecoded[position];\n var pos = interleave ? levelOffset + (offset << 1) : offset;\n\n if (reversible && nb >= mb) {\n coefficients[pos] = n;\n } else {\n coefficients[pos] = n * (1 << mb - nb);\n }\n }\n\n offset++;\n position++;\n }\n\n offset += width - blockWidth;\n }\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 = 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 var reversible = codingStyleParameters.reversibleTransformation;\n var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform();\n var subbandCoefficients = [];\n var b = 0;\n\n for (var i = 0; i <= decompositionLevelsCount; i++) {\n var resolution = component.resolutions[i];\n var width = resolution.trx1 - resolution.trx0;\n var height = resolution.try1 - resolution.try0;\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\n if (!scalarExpounded) {\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 var delta = reversible ? 1 : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n var mb = guardBits + epsilon - 1;\n copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed);\n }\n\n subbandCoefficients.push({\n width,\n height,\n items: coefficients\n });\n }\n\n var result = transform.calculate(subbandCoefficients, component.tcx0, component.tcy0);\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\n function transformComponents(context) {\n var siz = context.SIZ;\n var components = context.components;\n var componentsCount = siz.Csiz;\n var resultImages = [];\n\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\n for (c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\n }\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 var shift, offset;\n var pos = 0,\n j,\n jj,\n y0,\n y1,\n y2;\n\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 shift = components[0].precision - 8;\n offset = (128 << shift) + 0.5;\n var component0 = tile.components[0];\n var alpha01 = componentsCount - 3;\n jj = y0items.length;\n\n if (!component0.codingStyleParameters.reversibleTransformation) {\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 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 out[pos++] = g + y2 >> shift;\n out[pos++] = g >> shift;\n out[pos++] = g + y1 >> shift;\n }\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 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\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\n resultImages.push(result);\n }\n\n return resultImages;\n }\n\n function initializeTile(context, tileIndex) {\n var siz = context.SIZ;\n var componentsCount = siz.Csiz;\n var tile = context.tiles[tileIndex];\n\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var qcdOrQcc = context.currentTile.QCC[c] !== undefined ? context.currentTile.QCC[c] : context.currentTile.QCD;\n component.quantizationParameters = qcdOrQcc;\n var codOrCoc = context.currentTile.COC[c] !== undefined ? context.currentTile.COC[c] : context.currentTile.COD;\n component.codingStyleParameters = codOrCoc;\n }\n\n tile.codingStyleDefaultParameters = context.currentTile.COD;\n }\n\n var TagTree = function TagTreeClosure() {\n function TagTree(width, height) {\n var levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1;\n this.levels = [];\n\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\n TagTree.prototype = {\n reset: function TagTree_reset(i, j) {\n var currentLevel = 0,\n value = 0,\n level;\n\n while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n var index = i + j * level.width;\n\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\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\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 function InclusionTree(width, height, defaultValue) {\n var levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1;\n this.levels = [];\n\n for (var i = 0; i < levelsLength; i++) {\n var items = new Uint8Array(width * height);\n\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 width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n InclusionTree.prototype = {\n reset: function InclusionTree_reset(i, j, stopValue) {\n var currentLevel = 0;\n\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 this.propagateValues();\n return false;\n }\n\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\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\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\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 var BitModel = function BitModelClosure() {\n var UNIFORM_CONTEXT = 17;\n var RUNLENGTH_CONTEXT = 18;\n var LLAndLHContextsLabel = new Uint8Array([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, 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, 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 var HLContextLabel = new Uint8Array([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, 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, 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 var HHContextLabel = new Uint8Array([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, 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, 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 function BitModel(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n let contextLabelTable;\n\n if (subband === \"HH\") {\n contextLabelTable = HHContextLabel;\n } else if (subband === \"HL\") {\n contextLabelTable = HLContextLabel;\n } else {\n contextLabelTable = LLAndLHContextsLabel;\n }\n\n this.contextLabelTable = contextLabelTable;\n var coefficientCount = width * height;\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n let coefficentsMagnitude;\n\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\n this.coefficentsMagnitude = coefficentsMagnitude;\n this.processingFlags = new Uint8Array(coefficientCount);\n var bitsDecoded = new Uint8Array(coefficientCount);\n\n if (zeroBitPlanes !== 0) {\n for (var i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n\n this.bitsDecoded = bitsDecoded;\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 this.contexts = new Int8Array(19);\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(row, column, index) {\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\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n\n neighborsSignificance[i] += 0x04;\n }\n\n if (row + 1 < height) {\n i = index + width;\n\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n\n neighborsSignificance[i] += 0x04;\n }\n\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\n }\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\n for (var i1 = 0; i1 < 4; i1++, index += width) {\n var i = i0 + i1;\n\n if (i >= height) {\n break;\n }\n\n processingFlags[index] &= processedInverseMask;\n\n if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n continue;\n }\n\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n\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\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 significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\n\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\n var horizontalContribution = 3 * contribution;\n significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\n\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\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\n for (var j = 0; j < width; j++) {\n for (var index = index0 + j; index < indexNext; index += width) {\n if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n\n var contextLabel = 16;\n\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n var significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\n }\n\n var bit = decoder.readBit(contexts, contextLabel);\n coefficentsMagnitude[index] = 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\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\n for (var j = 0; j < width; j++) {\n var index0 = indexBase + j;\n var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0;\n var i1 = 0,\n index = index0;\n var i = i0,\n sign;\n\n if (allEmpty) {\n var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT);\n\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue;\n }\n\n i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\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 index = index0;\n\n for (var i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n\n i1++;\n }\n\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n\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\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 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\n if (symbol !== 0xa) {\n throw new JpxError(\"Invalid segmentation symbol\");\n }\n }\n };\n return BitModel;\n }();\n\n var Transform = function TransformClosure() {\n function Transform() {}\n\n Transform.prototype.calculate = function transformCalculate(subbands, u0, v0) {\n var ll = subbands[0];\n\n for (var i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n\n return ll;\n };\n\n Transform.prototype.extend = function extend(buffer, offset, size) {\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\n Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) {\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 for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n\n llItems = ll.items = null;\n var bufferPadding = 4;\n var rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n if (width === 1) {\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 this.extend(rowBuffer, bufferPadding, width);\n this.filter(rowBuffer, bufferPadding, width);\n items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n }\n }\n\n var numBuffers = 16;\n var colBuffers = [];\n\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n\n var b,\n currentBuffer = 0;\n ll = bufferPadding + height;\n\n if (height === 1) {\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 (currentBuffer === 0) {\n numBuffers = Math.min(width - u, numBuffers);\n\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\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 (currentBuffer === 0) {\n k = u - numBuffers + 1;\n\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\n return Transform;\n }();\n\n var IrreversibleTransform = function IrreversibleTransformClosure() {\n function IrreversibleTransform() {\n Transform.call(this);\n }\n\n IrreversibleTransform.prototype = Object.create(Transform.prototype);\n\n IrreversibleTransform.prototype.filter = function irreversibleTransformFilter(x, offset, length) {\n var len = length >> 1;\n offset = offset | 0;\n var j, n, current, next;\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 j = offset - 3;\n\n for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n\n j = offset - 2;\n current = delta * x[j - 1];\n\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n\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 j = offset - 1;\n current = gamma * x[j - 1];\n\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\n\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 j = offset;\n current = beta * x[j - 1];\n\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\n\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 if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\n\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 var ReversibleTransform = function ReversibleTransformClosure() {\n function ReversibleTransform() {\n Transform.call(this);\n }\n\n ReversibleTransform.prototype = Object.create(Transform.prototype);\n\n ReversibleTransform.prototype.filter = function reversibleTransformFilter(x, offset, length) {\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\nexports.JpxImage = JpxImage;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateSHA512 = exports.calculateSHA384 = exports.calculateSHA256 = exports.calculateMD5 = exports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.ARCFourCipher = exports.AES256Cipher = exports.AES128Cipher = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar ARCFourCipher = function ARCFourCipherClosure() {\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\n for (i = 0; i < 256; ++i) {\n s[i] = i;\n }\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\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\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\n this.a = a;\n this.b = b;\n return output;\n }\n };\n ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock;\n ARCFourCipher.prototype.encrypt = ARCFourCipher.prototype.encryptBlock;\n return ARCFourCipher;\n}();\n\nexports.ARCFourCipher = ARCFourCipher;\n\nvar calculateMD5 = function calculateMD5Closure() {\n var r = new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]);\n var k = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -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 var paddedLength = length + 72 & ~63;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n\n padded[i++] = 0x80;\n n = paddedLength - 8;\n\n while (i < n) {\n padded[i++] = 0;\n }\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\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j, i += 4) {\n w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24;\n }\n\n var a = h0,\n b = h1,\n c = h2,\n d = h3,\n f,\n g;\n\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\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\n h0 = h0 + a | 0;\n h1 = h1 + b | 0;\n h2 = h2 + c | 0;\n h3 = h3 + d | 0;\n }\n\n return new Uint8Array([h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >>> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >>> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >>> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >>> 24 & 0xFF]);\n }\n\n return hash;\n}();\n\nexports.calculateMD5 = calculateMD5;\n\nvar Word64 = function Word64Closure() {\n function Word64(highInteger, lowInteger) {\n this.high = highInteger | 0;\n this.low = lowInteger | 0;\n }\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 or: function Word64_or(word) {\n this.high |= word.high;\n this.low |= word.low;\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 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 rotateRight: function Word64_rotateRight(places) {\n var low, high;\n\n if (places & 32) {\n high = this.low;\n low = this.high;\n } else {\n low = this.low;\n high = this.high;\n }\n\n places &= 31;\n this.low = low >>> places | high << 32 - places;\n this.high = high >>> places | low << 32 - places;\n },\n not: function Word64_not() {\n this.high = ~this.high;\n this.low = ~this.low;\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\n if (lowAdd > 0xffffffff) {\n highAdd += 1;\n }\n\n this.low = lowAdd | 0;\n this.high = highAdd | 0;\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 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 var k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\n function hash(data, offset, length) {\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 var paddedLength = Math.ceil((length + 9) / 64) * 64;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n\n padded[i++] = 0x80;\n n = paddedLength - 8;\n\n while (i < n) {\n padded[i++] = 0;\n }\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\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j) {\n w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n i += 4;\n }\n\n for (j = 16; j < 64; ++j) {\n w[j] = littleSigmaPrime(w[j - 2]) + w[j - 7] + littleSigma(w[j - 15]) + w[j - 16] | 0;\n }\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\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\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\n return new Uint8Array([h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF, h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF]);\n }\n\n return hash;\n}();\n\nexports.calculateSHA256 = calculateSHA256;\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 var k = [new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n function hash(data, offset, length, mode384) {\n mode384 = !!mode384;\n var h0, h1, h2, h3, h4, h5, h6, h7;\n\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 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 var paddedLength = Math.ceil((length + 17) / 128) * 128;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n\n padded[i++] = 0x80;\n n = paddedLength - 16;\n\n while (i < n) {\n padded[i++] = 0;\n }\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 var w = new Array(80);\n\n for (i = 0; i < 80; i++) {\n w[i] = new Word64(0, 0);\n }\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 (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j) {\n w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7];\n i += 8;\n }\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\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 sigma(t2, a, tmp2);\n maj(tmp1, a, b, c, tmp2);\n t2.add(tmp1);\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\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\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\n return result;\n }\n\n return hash;\n}();\n\nexports.calculateSHA512 = calculateSHA512;\n\nvar calculateSHA384 = function calculateSHA384Closure() {\n function hash(data, offset, length) {\n return calculateSHA512(data, offset, length, true);\n }\n\n return hash;\n}();\n\nexports.calculateSHA384 = calculateSHA384;\n\nvar NullCipher = function NullCipherClosure() {\n function NullCipher() {}\n\n NullCipher.prototype = {\n decryptBlock: function NullCipher_decryptBlock(data) {\n return data;\n },\n encrypt: function NullCipher_encrypt(data) {\n return data;\n }\n };\n return NullCipher;\n}();\n\nclass AESBaseCipher {\n constructor() {\n if (this.constructor === AESBaseCipher) {\n (0, _util.unreachable)(\"Cannot initialize AESBaseCipher.\");\n }\n\n this._s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]);\n this._inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]);\n this._mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);\n this._mixCol = new Uint8Array(256);\n\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 (0, _util.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 for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n\n for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) {\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\n for (let j = 0; j < 16; ++j) {\n state[j] = this._inv_s[state[j]];\n }\n\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n\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 = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ 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\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\n for (let j = 0; j < 16; ++j) {\n state[j] = this._inv_s[state[j]];\n state[j] ^= key[j];\n }\n\n return state;\n }\n\n _encrypt(input, key) {\n const s = this._s;\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 state[j] ^= key[j];\n }\n\n for (let i = 1; i < this._cyclesOfRepetition; i++) {\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n\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\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\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n }\n\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n\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\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\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\n if (bufferLength < 16) {\n continue;\n }\n\n const plain = this._decrypt(buffer, this._key);\n\n for (let j = 0; j < 16; ++j) {\n plain[j] ^= iv[j];\n }\n\n iv = buffer;\n result.push(plain);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n\n let outputLength = 16 * result.length;\n\n if (finalize) {\n const lastBlock = result[result.length - 1];\n let psLen = lastBlock[15];\n\n if (psLen <= 16) {\n for (let i = 15, ii = 16 - psLen; i >= ii; --i) {\n if (lastBlock[i] !== psLen) {\n psLen = 0;\n break;\n }\n }\n\n outputLength -= psLen;\n result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n }\n }\n\n const output = new Uint8Array(outputLength);\n\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\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\n if (iv) {\n this.iv = iv;\n } else {\n for (let i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {\n buffer[bufferLength] = data[i];\n }\n\n if (bufferLength < 16) {\n this.bufferLength = bufferLength;\n return new Uint8Array(0);\n }\n\n this.iv = buffer;\n data = data.subarray(16);\n }\n\n this.buffer = new Uint8Array(16);\n this.bufferLength = 0;\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\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n\n if (bufferLength < 16) {\n continue;\n }\n\n for (let j = 0; j < 16; ++j) {\n buffer[j] ^= iv[j];\n }\n\n const cipher = this._encrypt(buffer, this._key);\n\n iv = cipher;\n result.push(cipher);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n\n const outputLength = 16 * result.length;\n const output = new Uint8Array(outputLength);\n\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n\n return output;\n }\n\n}\n\nclass AES128Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n this._cyclesOfRepetition = 10;\n this._keySize = 160;\n this._rcon = new Uint8Array([0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]);\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 const result = new Uint8Array(b);\n result.set(cipherKey);\n\n for (let j = 16, i = 1; j < b; ++i) {\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 t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n t1 = t1 ^ rcon[i];\n\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\n return result;\n }\n\n}\n\nexports.AES128Cipher = AES128Cipher;\n\nclass AES256Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n this._cyclesOfRepetition = 14;\n this._keySize = 224;\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 240;\n const s = this._s;\n const result = new Uint8Array(b);\n result.set(cipherKey);\n let r = 1;\n let t1, t2, t3, t4;\n\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 t1 = result[j - 3];\n t2 = result[j - 2];\n t3 = result[j - 1];\n t4 = result[j - 4];\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n t1 = t1 ^ r;\n\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\n return result;\n }\n\n}\n\nexports.AES256Cipher = AES256Cipher;\n\nvar PDF17 = function PDF17Closure() {\n function compareByteArrays(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function PDF17() {}\n\n PDF17.prototype = {\n checkOwnerPassword: function PDF17_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\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(password, userValidationSalt, userPassword) {\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(password, ownerKeySalt, userBytes, ownerEncryption) {\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(password, userKeySalt, userEncryption) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\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\nexports.PDF17 = PDF17;\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 var k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n var e = [0];\n var i = 0;\n\n while (i < 64 || e[e.length - 1] > i - 32) {\n var arrayLength = password.length + k.length + userBytes.length;\n var k1 = new Uint8Array(arrayLength * 64);\n var array = concatArrays(password, k);\n array = concatArrays(array, userBytes);\n\n for (var j = 0, pos = 0; j < 64; j++, pos += arrayLength) {\n k1.set(array, pos);\n }\n\n var cipher = new AES128Cipher(k.subarray(0, 16));\n e = cipher.encrypt(k1, k.subarray(16, 32));\n var remainder = 0;\n\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\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\n i++;\n }\n\n return k.subarray(0, 32);\n }\n\n function PDF20() {}\n\n function compareByteArrays(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\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(password, ownerValidationSalt, userBytes, ownerPassword) {\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(password, userValidationSalt, userPassword) {\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(password, ownerKeySalt, userBytes, ownerEncryption) {\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(password, userKeySalt, userEncryption) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\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\nexports.PDF20 = PDF20;\n\nvar CipherTransform = function CipherTransformClosure() {\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 _stream.DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) {\n return cipher.decryptBlock(data, finalize);\n });\n },\n decryptString: function CipherTransform_decryptString(s) {\n var cipher = new this.StringCipherConstructor();\n var data = (0, _util.stringToBytes)(s);\n data = cipher.decryptBlock(data, true);\n return (0, _util.bytesToString)(data);\n },\n encryptString: function CipherTransform_encryptString(s) {\n const cipher = new this.StringCipherConstructor();\n\n if (cipher instanceof AESBaseCipher) {\n const strLen = s.length;\n const pad = 16 - strLen % 16;\n\n if (pad !== 16) {\n s = s.padEnd(16 * Math.ceil(strLen / 16), String.fromCharCode(pad));\n }\n\n const iv = new Uint8Array(16);\n\n if (typeof crypto !== \"undefined\") {\n crypto.getRandomValues(iv);\n } else {\n for (let i = 0; i < 16; i++) {\n iv[i] = Math.floor(256 * Math.random());\n }\n }\n\n let data = (0, _util.stringToBytes)(s);\n data = cipher.encrypt(data, iv);\n const buf = new Uint8Array(16 + data.length);\n buf.set(iv);\n buf.set(data, 16);\n return (0, _util.bytesToString)(buf);\n }\n\n let data = (0, _util.stringToBytes)(s);\n data = cipher.encrypt(data);\n return (0, _util.bytesToString)(data);\n }\n };\n return CipherTransform;\n}();\n\nvar CipherTransformFactory = function CipherTransformFactoryClosure() {\n var defaultPasswordBytes = new Uint8Array([0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41, 0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08, 0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80, 0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]);\n\n function createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) {\n if (password) {\n var passwordLength = Math.min(127, password.length);\n password = password.subarray(0, passwordLength);\n } else {\n password = [];\n }\n\n var pdfAlgorithm;\n\n if (revision === 6) {\n pdfAlgorithm = new PDF20();\n } else {\n pdfAlgorithm = new PDF17();\n }\n\n if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) {\n return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) {\n return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption);\n }\n\n return null;\n }\n\n function prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) {\n var hashDataSize = 40 + ownerPassword.length + fileId.length;\n var hashData = new Uint8Array(hashDataSize),\n i = 0,\n j,\n n;\n\n if (password) {\n n = Math.min(32, password.length);\n\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n }\n\n j = 0;\n\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n\n for (j = 0, n = ownerPassword.length; j < n; ++j) {\n hashData[i++] = ownerPassword[j];\n }\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\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n\n if (revision >= 4 && !encryptMetadata) {\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n }\n\n var hash = calculateMD5(hashData, 0, i);\n var keyLengthInBytes = keyLength >> 3;\n\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, keyLengthInBytes);\n }\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\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\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\n for (j = 1; j <= 19; ++j) {\n for (k = 0; k < n; ++k) {\n derivedKey[k] = encryptionKey[k] ^ j;\n }\n\n cipher = new ARCFourCipher(derivedKey);\n checkData = cipher.encryptBlock(checkData);\n }\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\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\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\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n\n j = 0;\n\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n\n var hash = calculateMD5(hashData, 0, i);\n var keyLengthInBytes = keyLength >> 3;\n\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\n if (revision >= 3) {\n userPassword = ownerPassword;\n var derivedKey = new Uint8Array(keyLengthInBytes),\n k;\n\n for (j = 19; j >= 0; j--) {\n for (k = 0; k < keyLengthInBytes; ++k) {\n derivedKey[k] = hash[k] ^ j;\n }\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\n return userPassword;\n }\n\n var identityName = _primitives.Name.get(\"Identity\");\n\n function CipherTransformFactory(dict, fileId, password) {\n var filter = dict.get(\"Filter\");\n\n if (!(0, _primitives.isName)(filter, \"Standard\")) {\n throw new _util.FormatError(\"unknown encryption method\");\n }\n\n this.dict = dict;\n var algorithm = dict.get(\"V\");\n\n if (!Number.isInteger(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) {\n throw new _util.FormatError(\"unsupported encryption algorithm\");\n }\n\n this.algorithm = algorithm;\n var keyLength = dict.get(\"Length\");\n\n if (!keyLength) {\n if (algorithm <= 3) {\n keyLength = 40;\n } else {\n var cfDict = dict.get(\"CF\");\n var streamCryptoName = dict.get(\"StmF\");\n\n if ((0, _primitives.isDict)(cfDict) && (0, _primitives.isName)(streamCryptoName)) {\n cfDict.suppressEncryption = true;\n var handlerDict = cfDict.get(streamCryptoName.name);\n keyLength = handlerDict && handlerDict.get(\"Length\") || 128;\n\n if (keyLength < 40) {\n keyLength <<= 3;\n }\n }\n }\n }\n\n if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n throw new _util.FormatError(\"invalid key length\");\n }\n\n var ownerPassword = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(0, 32);\n var userPassword = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(0, 32);\n var flags = dict.get(\"P\");\n var revision = dict.get(\"R\");\n var encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get(\"EncryptMetadata\") !== false;\n this.encryptMetadata = encryptMetadata;\n var fileIdBytes = (0, _util.stringToBytes)(fileId);\n var passwordBytes;\n\n if (password) {\n if (revision === 6) {\n try {\n password = (0, _util.utf8StringToString)(password);\n } catch (ex) {\n (0, _util.warn)(\"CipherTransformFactory: \" + \"Unable to convert UTF8 encoded password.\");\n }\n }\n\n passwordBytes = (0, _util.stringToBytes)(password);\n }\n\n var encryptionKey;\n\n if (algorithm !== 5) {\n encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n } else {\n var ownerValidationSalt = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(32, 40);\n var ownerKeySalt = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(40, 48);\n var uBytes = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(0, 48);\n var userValidationSalt = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(32, 40);\n var userKeySalt = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(40, 48);\n var ownerEncryption = (0, _util.stringToBytes)(dict.get(\"OE\"));\n var userEncryption = (0, _util.stringToBytes)(dict.get(\"UE\"));\n var perms = (0, _util.stringToBytes)(dict.get(\"Perms\"));\n encryptionKey = createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms);\n }\n\n if (!encryptionKey && !password) {\n throw new _util.PasswordException(\"No password given\", _util.PasswordResponses.NEED_PASSWORD);\n } else if (!encryptionKey && password) {\n var decodedPassword = decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength);\n encryptionKey = prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n }\n\n if (!encryptionKey) {\n throw new _util.PasswordException(\"Incorrect Password\", _util.PasswordResponses.INCORRECT_PASSWORD);\n }\n\n this.encryptionKey = encryptionKey;\n\n if (algorithm >= 4) {\n var cf = dict.get(\"CF\");\n\n if ((0, _primitives.isDict)(cf)) {\n cf.suppressEncryption = true;\n }\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\n for (i = 0, n = encryptionKey.length; i < n; ++i) {\n key[i] = encryptionKey[i];\n }\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\n if (isAes) {\n key[i++] = 0x73;\n key[i++] = 0x41;\n key[i++] = 0x6c;\n key[i++] = 0x54;\n }\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 (!(0, _primitives.isName)(name)) {\n throw new _util.FormatError(\"Invalid crypt filter name.\");\n }\n\n var cryptFilter = cf.get(name.name);\n var cfm;\n\n if (cryptFilter !== null && cryptFilter !== undefined) {\n cfm = cryptFilter.get(\"CFM\");\n }\n\n if (!cfm || cfm.name === \"None\") {\n return function cipherTransformFactoryBuildCipherConstructorNone() {\n return new NullCipher();\n };\n }\n\n if (cfm.name === \"V2\") {\n return function cipherTransformFactoryBuildCipherConstructorV2() {\n return new ARCFourCipher(buildObjectKey(num, gen, key, false));\n };\n }\n\n if (cfm.name === \"AESV2\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n return new AES128Cipher(buildObjectKey(num, gen, key, true));\n };\n }\n\n if (cfm.name === \"AESV3\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n return new AES256Cipher(key);\n };\n }\n\n throw new _util.FormatError(\"Unknown crypto method\");\n }\n\n CipherTransformFactory.prototype = {\n createCipherTransform: function CipherTransformFactory_createCipherTransform(num, gen) {\n if (this.algorithm === 4 || this.algorithm === 5) {\n return new CipherTransform(buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey), buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey));\n }\n\n var key = buildObjectKey(num, gen, this.encryptionKey, false);\n\n var cipherConstructor = function buildCipherCipherConstructor() {\n return new ARCFourCipher(key);\n };\n\n return new CipherTransform(cipherConstructor, cipherConstructor);\n }\n };\n return CipherTransformFactory;\n}();\n\nexports.CipherTransformFactory = CipherTransformFactory;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorSpace = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\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\n for (let i = 0; i < h2; i++) {\n const py = Math.floor(i * yRatio) * w1Scanline;\n\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 (0, _util.unreachable)(\"Cannot initialize ColorSpace.\");\n }\n\n this.name = name;\n this.numComps = numComps;\n }\n\n getRgb(src, srcOffset) {\n const rgb = new Uint8ClampedArray(3);\n this.getRgbItem(src, srcOffset, rgb, 0);\n return rgb;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n (0, _util.unreachable)(\"Should not call ColorSpace.getRgbItem\");\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n (0, _util.unreachable)(\"Should not call ColorSpace.getRgbBuffer\");\n }\n\n getOutputLength(inputLength, alpha01) {\n (0, _util.unreachable)(\"Should not call ColorSpace.getOutputLength\");\n }\n\n isPassthrough(bits) {\n return false;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n\n fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {\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 (this.numComps === 1 && count > numComponentColors && this.name !== \"DeviceGray\" && this.name !== \"DeviceRGB\") {\n const allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors);\n\n for (let i = 0; i < numComponentColors; i++) {\n allColors[i] = i;\n }\n\n const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0);\n\n if (!needsResizing) {\n let destPos = 0;\n\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\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 this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n } else {\n rgbBuf = new Uint8ClampedArray(count * 3);\n this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0);\n }\n }\n\n if (rgbBuf) {\n if (needsResizing) {\n resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01);\n } else {\n let destPos = 0,\n rgbPos = 0;\n\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 get usesZeroToOneRange() {\n return (0, _util.shadow)(this, \"usesZeroToOneRange\", true);\n }\n\n static _cache(cacheKey, xref, localColorSpaceCache, parsedColorSpace) {\n if (!localColorSpaceCache) {\n throw new Error('ColorSpace._cache - expected \"localColorSpaceCache\" argument.');\n }\n\n if (!parsedColorSpace) {\n throw new Error('ColorSpace._cache - expected \"parsedColorSpace\" argument.');\n }\n\n let csName, csRef;\n\n if (cacheKey instanceof _primitives.Ref) {\n csRef = cacheKey;\n cacheKey = xref.fetch(cacheKey);\n }\n\n if (cacheKey instanceof _primitives.Name) {\n csName = cacheKey.name;\n }\n\n if (csName || csRef) {\n localColorSpaceCache.set(csName, csRef, parsedColorSpace);\n }\n }\n\n static getCached(cacheKey, xref, localColorSpaceCache) {\n if (!localColorSpaceCache) {\n throw new Error('ColorSpace.getCached - expected \"localColorSpaceCache\" argument.');\n }\n\n if (cacheKey instanceof _primitives.Ref) {\n const localColorSpace = localColorSpaceCache.getByRef(cacheKey);\n\n if (localColorSpace) {\n return localColorSpace;\n }\n\n try {\n cacheKey = xref.fetch(cacheKey);\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n }\n }\n\n if (cacheKey instanceof _primitives.Name) {\n const localColorSpace = localColorSpaceCache.getByName(cacheKey.name);\n\n if (localColorSpace) {\n return localColorSpace;\n }\n }\n\n return null;\n }\n\n static async parseAsync({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache\n }) {\n const parsedColorSpace = this._parse(cs, xref, resources, pdfFunctionFactory);\n\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n static parse({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache\n }) {\n const cachedColorSpace = this.getCached(cs, xref, localColorSpaceCache);\n\n if (cachedColorSpace) {\n return cachedColorSpace;\n }\n\n const parsedColorSpace = this._parse(cs, xref, resources, pdfFunctionFactory);\n\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n static _parse(cs, xref, resources = null, pdfFunctionFactory) {\n cs = xref.fetchIfRef(cs);\n\n if ((0, _primitives.isName)(cs)) {\n switch (cs.name) {\n case \"DeviceGray\":\n case \"G\":\n return this.singletons.gray;\n\n case \"DeviceRGB\":\n case \"RGB\":\n return this.singletons.rgb;\n\n case \"DeviceCMYK\":\n case \"CMYK\":\n return this.singletons.cmyk;\n\n case \"Pattern\":\n return new PatternCS(null);\n\n default:\n if ((0, _primitives.isDict)(resources)) {\n const colorSpaces = resources.get(\"ColorSpace\");\n\n if ((0, _primitives.isDict)(colorSpaces)) {\n const resourcesCS = colorSpaces.get(cs.name);\n\n if (resourcesCS) {\n if ((0, _primitives.isName)(resourcesCS)) {\n return this._parse(resourcesCS, xref, resources, pdfFunctionFactory);\n }\n\n cs = resourcesCS;\n break;\n }\n }\n }\n\n throw new _util.FormatError(`Unrecognized ColorSpace: ${cs.name}`);\n }\n }\n\n if (Array.isArray(cs)) {\n const mode = xref.fetchIfRef(cs[0]).name;\n let params, numComps, baseCS, whitePoint, blackPoint, gamma;\n\n switch (mode) {\n case \"DeviceGray\":\n case \"G\":\n return this.singletons.gray;\n\n case \"DeviceRGB\":\n case \"RGB\":\n return this.singletons.rgb;\n\n case \"DeviceCMYK\":\n case \"CMYK\":\n return this.singletons.cmyk;\n\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 new CalGrayCS(whitePoint, blackPoint, gamma);\n\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 new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n\n case \"ICCBased\":\n const stream = xref.fetchIfRef(cs[1]);\n const dict = stream.dict;\n numComps = dict.get(\"N\");\n const alt = dict.get(\"Alternate\");\n\n if (alt) {\n const altCS = this._parse(alt, xref, resources, pdfFunctionFactory);\n\n if (altCS.numComps === numComps) {\n return altCS;\n }\n\n (0, _util.warn)(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n }\n\n if (numComps === 1) {\n return this.singletons.gray;\n } else if (numComps === 3) {\n return this.singletons.rgb;\n } else if (numComps === 4) {\n return this.singletons.cmyk;\n }\n\n break;\n\n case \"Pattern\":\n baseCS = cs[1] || null;\n\n if (baseCS) {\n baseCS = this._parse(baseCS, xref, resources, pdfFunctionFactory);\n }\n\n return new PatternCS(baseCS);\n\n case \"Indexed\":\n case \"I\":\n baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory);\n const hiVal = xref.fetchIfRef(cs[2]) + 1;\n const lookup = xref.fetchIfRef(cs[3]);\n return new IndexedCS(baseCS, hiVal, lookup);\n\n case \"Separation\":\n case \"DeviceN\":\n const name = xref.fetchIfRef(cs[1]);\n numComps = Array.isArray(name) ? name.length : 1;\n baseCS = this._parse(cs[2], xref, resources, pdfFunctionFactory);\n const tintFn = pdfFunctionFactory.create(cs[3]);\n return new AlternateCS(numComps, baseCS, tintFn);\n\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 new LabCS(whitePoint, blackPoint, range);\n\n default:\n throw new _util.FormatError(`Unimplemented ColorSpace object: ${mode}`);\n }\n }\n\n throw new _util.FormatError(`Unrecognized ColorSpace object: ${cs}`);\n }\n\n static isDefaultDecode(decode, numComps) {\n if (!Array.isArray(decode)) {\n return true;\n }\n\n if (numComps * 2 !== decode.length) {\n (0, _util.warn)(\"The decode map is not the correct length\");\n return true;\n }\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\n return true;\n }\n\n static get singletons() {\n return (0, _util.shadow)(this, \"singletons\", {\n get gray() {\n return (0, _util.shadow)(this, \"gray\", new DeviceGrayCS());\n },\n\n get rgb() {\n return (0, _util.shadow)(this, \"rgb\", new DeviceRgbCS());\n },\n\n get cmyk() {\n return (0, _util.shadow)(this, \"cmyk\", new DeviceCmykCS());\n }\n\n });\n }\n\n}\n\nexports.ColorSpace = ColorSpace;\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 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 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 = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n let pos = isPassthrough ? destOffset : 0;\n const baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count);\n const numComps = this.numComps;\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\n tintFn(scaled, 0, tinted, 0);\n\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(inputLength * this.base.numComps / this.numComps, 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 (0, _util.unreachable)(\"Should not call PatternCS.isDefaultDecode\");\n }\n\n}\n\nclass IndexedCS extends ColorSpace {\n constructor(base, highVal, lookup) {\n super(\"Indexed\", 1);\n this.base = base;\n this.highVal = highVal;\n const length = base.numComps * highVal;\n this.lookup = new Uint8Array(length);\n\n if ((0, _primitives.isStream)(lookup)) {\n const bytes = lookup.getBytes(length);\n this.lookup.set(bytes);\n } else if (typeof lookup === \"string\") {\n for (let i = 0; i < length; ++i) {\n this.lookup[i] = lookup.charCodeAt(i) & 0xff;\n }\n } else {\n throw new _util.FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\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 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\n if (decodeMap.length !== 2) {\n (0, _util.warn)(\"Decode map length is not correct\");\n return true;\n }\n\n if (!Number.isInteger(bpc) || bpc < 1) {\n (0, _util.warn)(\"Bits per component is not correct\");\n return true;\n }\n\n return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n }\n\n}\n\nclass DeviceGrayCS extends ColorSpace {\n constructor() {\n super(\"DeviceGray\", 1);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\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 const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n\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\nclass DeviceRgbCS extends ColorSpace {\n constructor() {\n super(\"DeviceRGB\", 3);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\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 (bits === 8 && alpha01 === 0) {\n dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n return;\n }\n\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n\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\nconst DeviceCmykCS = function DeviceCmykCSClosure() {\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 dest[destOffset] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747);\n dest[destOffset + 1] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578);\n dest[destOffset + 2] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367);\n }\n\n class DeviceCmykCS extends ColorSpace {\n constructor() {\n super(\"DeviceCMYK\", 4);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(src, srcOffset, 1, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const scale = 1 / ((1 << bits) - 1);\n\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 }\n\n return DeviceCmykCS;\n}();\n\nconst CalGrayCS = function CalGrayCSClosure() {\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n const A = src[srcOffset] * scale;\n const AG = A ** cs.G;\n const L = cs.YW * AG;\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 class CalGrayCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma) {\n super(\"CalGray\", 1);\n\n if (!whitePoint) {\n throw new _util.FormatError(\"WhitePoint missing - required for color space CalGray\");\n }\n\n blackPoint = blackPoint || [0, 0, 0];\n gamma = gamma || 1;\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n this.G = gamma;\n\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}` + \", no fallback available\");\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n (0, _util.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 (0, _util.warn)(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` + `ZB: ${this.ZB}, only default values are supported.`);\n }\n\n if (this.G < 1) {\n (0, _util.info)(`Invalid Gamma: ${this.G} for ${this.name}, ` + \"falling back to default.\");\n this.G = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\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 }\n\n return CalGrayCS;\n}();\n\nconst CalRGBCS = function CalRGBCSClosure() {\n const BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);\n const BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]);\n const SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]);\n const FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n const tempNormalizeMatrix = new Float32Array(3);\n const tempConvertMatrix1 = new Float32Array(3);\n const tempConvertMatrix2 = new Float32Array(3);\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 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 if (color <= 0.0031308) {\n return adjustToRange(0, 1, 12.92 * color);\n }\n\n if (color >= 0.99554525) {\n return 1;\n }\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\n if (L > 8.0) {\n return ((L + 16) / 116) ** 3;\n }\n\n return L * DECODE_L_CONSTANT;\n }\n\n function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) {\n result[0] = XYZ_Flat[0];\n result[1] = XYZ_Flat[1];\n result[2] = XYZ_Flat[2];\n return;\n }\n\n const zeroDecodeL = decodeL(0);\n const X_DST = zeroDecodeL;\n const X_SRC = decodeL(sourceBlackPoint[0]);\n const Y_DST = zeroDecodeL;\n const Y_SRC = decodeL(sourceBlackPoint[1]);\n const Z_DST = zeroDecodeL;\n const Z_SRC = decodeL(sourceBlackPoint[2]);\n const X_Scale = (1 - X_DST) / (1 - X_SRC);\n const X_Offset = 1 - X_Scale;\n const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n const Y_Offset = 1 - Y_Scale;\n const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n const Z_Offset = 1 - Z_Scale;\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 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 const LMS_Flat = tempNormalizeMatrix;\n convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\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 const LMS_D65 = tempNormalizeMatrix;\n convertToD65(sourceWhitePoint, LMS, LMS_D65);\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n }\n\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\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 const AGR = A === 1 ? 1 : A ** cs.GR;\n const BGG = B === 1 ? 1 : B ** cs.GG;\n const CGB = C === 1 ? 1 : C ** cs.GB;\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 const XYZ = tempConvertMatrix1;\n XYZ[0] = X;\n XYZ[1] = Y;\n XYZ[2] = Z;\n const XYZ_Flat = tempConvertMatrix2;\n normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n const XYZ_Black = tempConvertMatrix1;\n compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n const XYZ_D65 = tempConvertMatrix2;\n normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n const SRGB = tempConvertMatrix1;\n matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\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 class CalRGBCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma, matrix) {\n super(\"CalRGB\", 3);\n\n if (!whitePoint) {\n throw new _util.FormatError(\"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 const XW = whitePoint[0];\n const YW = whitePoint[1];\n const ZW = whitePoint[2];\n this.whitePoint = whitePoint;\n const XB = blackPoint[0];\n const YB = blackPoint[1];\n const ZB = blackPoint[2];\n this.blackPoint = blackPoint;\n this.GR = gamma[0];\n this.GG = gamma[1];\n this.GB = gamma[2];\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 if (XW < 0 || ZW < 0 || YW !== 1) {\n throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}` + \", no fallback available\");\n }\n\n if (XB < 0 || YB < 0 || ZB < 0) {\n (0, _util.info)(`Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` + \"falling back to default.\");\n this.blackPoint = new Float32Array(3);\n }\n\n if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n (0, _util.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` + `${this.name}, falling back to default.`);\n this.GR = this.GG = this.GB = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\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 }\n\n return CalRGBCS;\n}();\n\nconst LabCS = function LabCSClosure() {\n function fn_g(x) {\n let result;\n\n if (x >= 6 / 29) {\n result = x * x * x;\n } else {\n result = 108 / 841 * (x - 4 / 29);\n }\n\n return result;\n }\n\n function decode(value, high1, low2, high2) {\n return low2 + value * (high2 - low2) / high1;\n }\n\n function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n let Ls = src[srcOffset];\n let as = src[srcOffset + 1];\n let bs = src[srcOffset + 2];\n\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 if (as > cs.amax) {\n as = cs.amax;\n } else if (as < cs.amin) {\n as = cs.amin;\n }\n\n if (bs > cs.bmax) {\n bs = cs.bmax;\n } else if (bs < cs.bmin) {\n bs = cs.bmin;\n }\n\n const M = (Ls + 16) / 116;\n const L = M + as / 500;\n const N = M - bs / 200;\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 let r, g, b;\n\n if (cs.ZW < 1) {\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 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\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 class LabCS extends ColorSpace {\n constructor(whitePoint, blackPoint, range) {\n super(\"Lab\", 3);\n\n if (!whitePoint) {\n throw new _util.FormatError(\"WhitePoint missing - required for color space Lab\");\n }\n\n blackPoint = blackPoint || [0, 0, 0];\n range = range || [-100, 100, -100, 100];\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 this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new _util.FormatError(\"Invalid WhitePoint components, no fallback available\");\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n (0, _util.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 (0, _util.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 convertToRgb(this, src, srcOffset, false, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const maxVal = (1 << bits) - 1;\n\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 return true;\n }\n\n get usesZeroToOneRange() {\n return (0, _util.shadow)(this, \"usesZeroToOneRange\", false);\n }\n\n }\n\n return LabCS;\n}();\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GlobalImageCache = exports.LocalGStateCache = exports.LocalFunctionCache = exports.LocalColorSpaceCache = exports.LocalImageCache = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nclass BaseLocalCache {\n constructor(options) {\n if (this.constructor === BaseLocalCache) {\n (0, _util.unreachable)(\"Cannot initialize BaseLocalCache.\");\n }\n\n if (!options || !options.onlyRefs) {\n this._nameRefMap = new Map();\n this._imageMap = new Map();\n }\n\n this._imageCache = new _primitives.RefSetCache();\n }\n\n getByName(name) {\n const ref = this._nameRefMap.get(name);\n\n if (ref) {\n return this.getByRef(ref);\n }\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, data) {\n (0, _util.unreachable)(\"Abstract method `set` called.\");\n }\n\n}\n\nclass LocalImageCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (!name) {\n throw new Error('LocalImageCache.set - expected \"name\" argument.');\n }\n\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n\n this._nameRefMap.set(name, ref);\n\n this._imageCache.put(ref, data);\n\n return;\n }\n\n if (this._imageMap.has(name)) {\n return;\n }\n\n this._imageMap.set(name, data);\n }\n\n}\n\nexports.LocalImageCache = LocalImageCache;\n\nclass LocalColorSpaceCache extends BaseLocalCache {\n set(name = null, ref = null, data) {\n if (!name && !ref) {\n throw new Error('LocalColorSpaceCache.set - expected \"name\" and/or \"ref\" argument.');\n }\n\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n\n if (name) {\n this._nameRefMap.set(name, ref);\n }\n\n this._imageCache.put(ref, data);\n\n return;\n }\n\n if (this._imageMap.has(name)) {\n return;\n }\n\n this._imageMap.set(name, data);\n }\n\n}\n\nexports.LocalColorSpaceCache = LocalColorSpaceCache;\n\nclass LocalFunctionCache extends BaseLocalCache {\n constructor(options) {\n super({\n onlyRefs: true\n });\n }\n\n getByName(name) {\n (0, _util.unreachable)(\"Should not call `getByName` method.\");\n }\n\n set(name = null, ref, data) {\n if (!ref) {\n throw new Error('LocalFunctionCache.set - expected \"ref\" argument.');\n }\n\n if (this._imageCache.has(ref)) {\n return;\n }\n\n this._imageCache.put(ref, data);\n }\n\n}\n\nexports.LocalFunctionCache = LocalFunctionCache;\n\nclass LocalGStateCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (!name) {\n throw new Error('LocalGStateCache.set - expected \"name\" argument.');\n }\n\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n\n this._nameRefMap.set(name, ref);\n\n this._imageCache.put(ref, data);\n\n return;\n }\n\n if (this._imageMap.has(name)) {\n return;\n }\n\n this._imageMap.set(name, data);\n }\n\n}\n\nexports.LocalGStateCache = LocalGStateCache;\n\nclass GlobalImageCache {\n static get NUM_PAGES_THRESHOLD() {\n return (0, _util.shadow)(this, \"NUM_PAGES_THRESHOLD\", 2);\n }\n\n static get MAX_IMAGES_TO_CACHE() {\n return (0, _util.shadow)(this, \"MAX_IMAGES_TO_CACHE\", 10);\n }\n\n constructor() {\n this._refCache = new _primitives.RefSetCache();\n this._imageCache = new _primitives.RefSetCache();\n }\n\n shouldCache(ref, pageIndex) {\n const pageIndexSet = this._refCache.get(ref);\n\n const numPages = pageIndexSet ? pageIndexSet.size + (pageIndexSet.has(pageIndex) ? 0 : 1) : 1;\n\n if (numPages < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return false;\n }\n\n if (!this._imageCache.has(ref) && this._imageCache.size >= GlobalImageCache.MAX_IMAGES_TO_CACHE) {\n return false;\n }\n\n return true;\n }\n\n addPageIndex(ref, pageIndex) {\n let pageIndexSet = this._refCache.get(ref);\n\n if (!pageIndexSet) {\n pageIndexSet = new Set();\n\n this._refCache.put(ref, pageIndexSet);\n }\n\n pageIndexSet.add(pageIndex);\n }\n\n getData(ref, pageIndex) {\n const pageIndexSet = this._refCache.get(ref);\n\n if (!pageIndexSet) {\n return null;\n }\n\n if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return null;\n }\n\n if (!this._imageCache.has(ref)) {\n return null;\n }\n\n pageIndexSet.add(pageIndex);\n return this._imageCache.get(ref);\n }\n\n setData(ref, data) {\n if (!this._refCache.has(ref)) {\n throw new Error('GlobalImageCache.setData - expected \"addPageIndex\" to have been called.');\n }\n\n if (this._imageCache.has(ref)) {\n return;\n }\n\n if (this._imageCache.size >= GlobalImageCache.MAX_IMAGES_TO_CACHE) {\n (0, _util.info)(\"GlobalImageCache.setData - ignoring image above MAX_IMAGES_TO_CACHE.\");\n return;\n }\n\n this._imageCache.put(ref, data);\n }\n\n clear(onlyData = false) {\n if (!onlyData) {\n this._refCache.clear();\n }\n\n this._imageCache.clear();\n }\n\n}\n\nexports.GlobalImageCache = GlobalImageCache;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getQuadPoints = getQuadPoints;\nexports.MarkupAnnotation = exports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _obj = __w_pdfjs_require__(10);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _operator_list = __w_pdfjs_require__(26);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _writer = __w_pdfjs_require__(27);\n\nclass AnnotationFactory {\n static create(xref, ref, pdfManager, idFactory) {\n return pdfManager.ensureCatalog(\"acroForm\").then(acroForm => {\n return pdfManager.ensure(this, \"_create\", [xref, ref, pdfManager, idFactory, acroForm]);\n });\n }\n\n static _create(xref, ref, pdfManager, idFactory, acroForm) {\n const dict = xref.fetchIfRef(ref);\n\n if (!(0, _primitives.isDict)(dict)) {\n return undefined;\n }\n\n const id = (0, _primitives.isRef)(ref) ? ref.toString() : `annot_${idFactory.createObjId()}`;\n let subtype = dict.get(\"Subtype\");\n subtype = (0, _primitives.isName)(subtype) ? subtype.name : null;\n const parameters = {\n xref,\n ref,\n dict,\n subtype,\n id,\n pdfManager,\n acroForm: acroForm instanceof _primitives.Dict ? acroForm : _primitives.Dict.empty\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 = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"FT\"\n });\n fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotation(parameters);\n\n case \"Btn\":\n return new ButtonWidgetAnnotation(parameters);\n\n case \"Ch\":\n return new ChoiceWidgetAnnotation(parameters);\n }\n\n (0, _util.warn)('Unimplemented widget field type \"' + fieldType + '\", ' + \"falling back to base field type.\");\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 (0, _util.warn)(\"Annotation is missing the required /Subtype.\");\n } else {\n (0, _util.warn)('Unimplemented annotation type \"' + subtype + '\", ' + \"falling back to base annotation.\");\n }\n\n return new Annotation(parameters);\n }\n }\n\n}\n\nexports.AnnotationFactory = AnnotationFactory;\n\nfunction getQuadPoints(dict, rect) {\n if (!dict.has(\"QuadPoints\")) {\n return null;\n }\n\n const quadPoints = dict.getArray(\"QuadPoints\");\n\n if (!Array.isArray(quadPoints) || quadPoints.length % 8 > 0) {\n return null;\n }\n\n const quadPointsLists = [];\n\n for (let i = 0, ii = quadPoints.length / 8; i < ii; i++) {\n quadPointsLists.push([]);\n\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 if (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3]) {\n return null;\n }\n\n quadPointsLists[i].push({\n x,\n y\n });\n }\n }\n\n return quadPointsLists;\n}\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n const [minX, minY, maxX, maxY] = _util.Util.getAxialAlignedBoundingBox(bbox, matrix);\n\n if (minX === maxX || minY === maxY) {\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 [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio];\n}\n\nclass Annotation {\n constructor(params) {\n const dict = params.dict;\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 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 _hasFlag(flags, flag) {\n return !!(flags & flag);\n }\n\n _isViewable(flags) {\n return !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN) && !this._hasFlag(flags, _util.AnnotationFlag.NOVIEW);\n }\n\n _isPrintable(flags) {\n return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN);\n }\n\n get viewable() {\n if (this.flags === 0) {\n return true;\n }\n\n return this._isViewable(this.flags);\n }\n\n get printable() {\n if (this.flags === 0) {\n return false;\n }\n\n return this._isPrintable(this.flags);\n }\n\n setContents(contents) {\n this.contents = (0, _util.stringToPDFString)(contents || \"\");\n }\n\n setModificationDate(modificationDate) {\n this.modificationDate = (0, _util.isString)(modificationDate) ? modificationDate : null;\n }\n\n setFlags(flags) {\n this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n }\n\n hasFlag(flag) {\n return this._hasFlag(this.flags, flag);\n }\n\n setRectangle(rectangle) {\n if (Array.isArray(rectangle) && rectangle.length === 4) {\n this.rectangle = _util.Util.normalizeRect(rectangle);\n } else {\n this.rectangle = [0, 0, 0, 0];\n }\n }\n\n setColor(color) {\n const rgbColor = new Uint8ClampedArray(3);\n\n if (!Array.isArray(color)) {\n this.color = rgbColor;\n return;\n }\n\n switch (color.length) {\n case 0:\n this.color = null;\n break;\n\n case 1:\n _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n\n this.color = rgbColor;\n break;\n\n case 3:\n _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n\n this.color = rgbColor;\n break;\n\n case 4:\n _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n\n this.color = rgbColor;\n break;\n\n default:\n this.color = rgbColor;\n break;\n }\n }\n\n setBorderStyle(borderStyle) {\n this.borderStyle = new AnnotationBorderStyle();\n\n if (!(0, _primitives.isDict)(borderStyle)) {\n return;\n }\n\n if (borderStyle.has(\"BS\")) {\n const dict = borderStyle.get(\"BS\");\n const dictType = dict.get(\"Type\");\n\n if (!dictType || (0, _primitives.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\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 this.borderStyle.setDashArray(array[3]);\n }\n }\n } else {\n this.borderStyle.setWidth(0);\n }\n }\n\n setAppearance(dict) {\n this.appearance = null;\n const appearanceStates = dict.get(\"AP\");\n\n if (!(0, _primitives.isDict)(appearanceStates)) {\n return;\n }\n\n const normalAppearanceState = appearanceStates.get(\"N\");\n\n if ((0, _primitives.isStream)(normalAppearanceState)) {\n this.appearance = normalAppearanceState;\n return;\n }\n\n if (!(0, _primitives.isDict)(normalAppearanceState)) {\n return;\n }\n\n const as = dict.get(\"AS\");\n\n if (!(0, _primitives.isName)(as) || !normalAppearanceState.has(as.name)) {\n return;\n }\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 _obj.ObjectLoader(resources, keys, resources.xref);\n return objectLoader.load().then(function () {\n return resources;\n });\n });\n }\n\n getOperatorList(evaluator, task, renderForms, annotationStorage) {\n if (!this.appearance) {\n return Promise.resolve(new _operator_list.OperatorList());\n }\n\n const appearance = this.appearance;\n const data = this.data;\n const appearanceDict = appearance.dict;\n const resourcesPromise = this.loadResources([\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"]);\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 return resourcesPromise.then(resources => {\n const opList = new _operator_list.OperatorList();\n opList.addOp(_util.OPS.beginAnnotation, [data.rect, transform, matrix]);\n return evaluator.getOperatorList({\n stream: appearance,\n task,\n resources,\n operatorList: opList\n }).then(() => {\n opList.addOp(_util.OPS.endAnnotation, []);\n appearance.reset();\n return opList;\n });\n });\n }\n\n async save(evaluator, task, annotationStorage) {\n return null;\n }\n\n}\n\nexports.Annotation = Annotation;\n\nclass AnnotationBorderStyle {\n constructor() {\n this.width = 1;\n this.style = _util.AnnotationBorderStyleType.SOLID;\n this.dashArray = [3];\n this.horizontalCornerRadius = 0;\n this.verticalCornerRadius = 0;\n }\n\n setWidth(width, rect = [0, 0, 0, 0]) {\n if ((0, _primitives.isName)(width)) {\n this.width = 0;\n return;\n }\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 if (maxWidth > 0 && maxHeight > 0 && (width > maxWidth || width > maxHeight)) {\n (0, _util.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);\n width = 1;\n }\n }\n\n this.width = width;\n }\n }\n\n setStyle(style) {\n if (!(0, _primitives.isName)(style)) {\n return;\n }\n\n switch (style.name) {\n case \"S\":\n this.style = _util.AnnotationBorderStyleType.SOLID;\n break;\n\n case \"D\":\n this.style = _util.AnnotationBorderStyleType.DASHED;\n break;\n\n case \"B\":\n this.style = _util.AnnotationBorderStyleType.BEVELED;\n break;\n\n case \"I\":\n this.style = _util.AnnotationBorderStyleType.INSET;\n break;\n\n case \"U\":\n this.style = _util.AnnotationBorderStyleType.UNDERLINE;\n break;\n\n default:\n break;\n }\n }\n\n setDashArray(dashArray) {\n if (Array.isArray(dashArray) && dashArray.length > 0) {\n let isValid = true;\n let allZeros = true;\n\n for (const element of dashArray) {\n const validNumber = +element >= 0;\n\n if (!validNumber) {\n isValid = false;\n break;\n } else if (element > 0) {\n allZeros = false;\n }\n }\n\n if (isValid && !allZeros) {\n this.dashArray = dashArray;\n } else {\n this.width = 0;\n }\n } else if (dashArray) {\n this.width = 0;\n }\n }\n\n setHorizontalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.horizontalCornerRadius = radius;\n }\n }\n\n setVerticalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.verticalCornerRadius = radius;\n }\n }\n\n}\n\nexports.AnnotationBorderStyle = AnnotationBorderStyle;\n\nclass MarkupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n const dict = parameters.dict;\n\n if (dict.has(\"IRT\")) {\n const rawIRT = dict.getRaw(\"IRT\");\n this.data.inReplyTo = (0, _primitives.isRef)(rawIRT) ? rawIRT.toString() : null;\n const rt = dict.get(\"RT\");\n this.data.replyType = (0, _primitives.isName)(rt) ? rt.name : _util.AnnotationReplyType.REPLY;\n }\n\n if (this.data.replyType === _util.AnnotationReplyType.GROUP) {\n const parent = dict.get(\"IRT\");\n this.data.title = (0, _util.stringToPDFString)(parent.get(\"T\") || \"\");\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 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 = (0, _util.stringToPDFString)(dict.get(\"T\") || \"\");\n this.setCreationDate(dict.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n this.data.hasPopup = dict.has(\"Popup\");\n\n if (!dict.has(\"C\")) {\n this.data.color = null;\n }\n }\n }\n\n setCreationDate(creationDate) {\n this.creationDate = (0, _util.isString)(creationDate) ? creationDate : null;\n }\n\n}\n\nexports.MarkupAnnotation = MarkupAnnotation;\n\nclass WidgetAnnotation extends Annotation {\n constructor(params) {\n super(params);\n const dict = params.dict;\n const data = this.data;\n this.ref = params.ref;\n data.annotationType = _util.AnnotationType.WIDGET;\n data.fieldName = this._constructFieldName(dict);\n const fieldValue = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"V\",\n getArray: true\n });\n data.fieldValue = this._decodeFormValue(fieldValue);\n data.alternativeText = (0, _util.stringToPDFString)(dict.get(\"TU\") || \"\");\n data.defaultAppearance = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"DA\"\n }) || params.acroForm.get(\"DA\") || \"\";\n const fieldType = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"FT\"\n });\n data.fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n this.fieldResources = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"DR\"\n }) || params.acroForm.get(\"DR\") || _primitives.Dict.empty;\n data.fieldFlags = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"Ff\"\n });\n\n if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n data.fieldFlags = 0;\n }\n\n data.readOnly = this.hasFieldFlag(_util.AnnotationFieldFlag.READONLY);\n\n if (data.fieldType === \"Sig\") {\n data.fieldValue = null;\n this.setFlags(_util.AnnotationFlag.HIDDEN);\n }\n }\n\n _constructFieldName(dict) {\n if (!dict.has(\"T\") && !dict.has(\"Parent\")) {\n (0, _util.warn)(\"Unknown field name, falling back to empty field name.\");\n return \"\";\n }\n\n if (!dict.has(\"Parent\")) {\n return (0, _util.stringToPDFString)(dict.get(\"T\"));\n }\n\n const fieldName = [];\n\n if (dict.has(\"T\")) {\n fieldName.unshift((0, _util.stringToPDFString)(dict.get(\"T\")));\n }\n\n let loopDict = dict;\n\n while (loopDict.has(\"Parent\")) {\n loopDict = loopDict.get(\"Parent\");\n\n if (!(0, _primitives.isDict)(loopDict)) {\n break;\n }\n\n if (loopDict.has(\"T\")) {\n fieldName.unshift((0, _util.stringToPDFString)(loopDict.get(\"T\")));\n }\n }\n\n return fieldName.join(\".\");\n }\n\n _decodeFormValue(formValue) {\n if (Array.isArray(formValue)) {\n return formValue.filter(item => (0, _util.isString)(item)).map(item => (0, _util.stringToPDFString)(item));\n } else if ((0, _primitives.isName)(formValue)) {\n return (0, _util.stringToPDFString)(formValue.name);\n } else if ((0, _util.isString)(formValue)) {\n return (0, _util.stringToPDFString)(formValue);\n }\n\n return null;\n }\n\n hasFieldFlag(flag) {\n return !!(this.data.fieldFlags & flag);\n }\n\n getOperatorList(evaluator, task, renderForms, annotationStorage) {\n if (renderForms) {\n return Promise.resolve(new _operator_list.OperatorList());\n }\n\n if (!this._hasText) {\n return super.getOperatorList(evaluator, task, renderForms, annotationStorage);\n }\n\n return this._getAppearance(evaluator, task, annotationStorage).then(content => {\n if (this.appearance && content === null) {\n return super.getOperatorList(evaluator, task, renderForms, annotationStorage);\n }\n\n const operatorList = new _operator_list.OperatorList();\n\n if (!this.data.defaultAppearance || content === null) {\n return operatorList;\n }\n\n const matrix = [1, 0, 0, 1, 0, 0];\n const bbox = [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]];\n const transform = getTransformMatrix(this.data.rect, bbox, matrix);\n operatorList.addOp(_util.OPS.beginAnnotation, [this.data.rect, transform, matrix]);\n const stream = new _stream.StringStream(content);\n return evaluator.getOperatorList({\n stream,\n task,\n resources: this.fieldResources,\n operatorList\n }).then(function () {\n operatorList.addOp(_util.OPS.endAnnotation, []);\n return operatorList;\n });\n });\n }\n\n async save(evaluator, task, annotationStorage) {\n if (this.data.fieldValue === annotationStorage[this.data.id]) {\n return null;\n }\n\n let appearance = await this._getAppearance(evaluator, task, annotationStorage);\n\n if (appearance === null) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n\n if (!(0, _primitives.isDict)(dict)) {\n return null;\n }\n\n const bbox = [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]];\n const newRef = evaluator.xref.getNewRef();\n const AP = new _primitives.Dict(evaluator.xref);\n AP.set(\"N\", newRef);\n const value = annotationStorage[this.data.id];\n const encrypt = evaluator.xref.encrypt;\n let originalTransform = null;\n let newTransform = null;\n\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n newTransform = encrypt.createCipherTransform(newRef.num, newRef.gen);\n appearance = newTransform.encryptString(appearance);\n }\n\n dict.set(\"V\", value);\n dict.set(\"AP\", AP);\n dict.set(\"M\", `D:${(0, _util.getModificationDate)()}`);\n const appearanceDict = new _primitives.Dict(evaluator.xref);\n appearanceDict.set(\"Length\", appearance.length);\n appearanceDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n appearanceDict.set(\"Resources\", this.fieldResources);\n appearanceDict.set(\"BBox\", bbox);\n const bufferOriginal = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n (0, _writer.writeDict)(dict, bufferOriginal, originalTransform);\n bufferOriginal.push(\"\\nendobj\\n\");\n const bufferNew = [`${newRef.num} ${newRef.gen} obj\\n`];\n (0, _writer.writeDict)(appearanceDict, bufferNew, newTransform);\n bufferNew.push(\" stream\\n\");\n bufferNew.push(appearance);\n bufferNew.push(\"\\nendstream\\nendobj\\n\");\n return [{\n ref: this.ref,\n data: bufferOriginal.join(\"\")\n }, {\n ref: newRef,\n data: bufferNew.join(\"\")\n }];\n }\n\n async _getAppearance(evaluator, task, annotationStorage) {\n const isPassword = this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD);\n\n if (!annotationStorage || isPassword) {\n return null;\n }\n\n const value = annotationStorage[this.data.id];\n\n if (value === \"\") {\n return \"\";\n }\n\n const defaultPadding = 2;\n const hPadding = defaultPadding;\n const totalHeight = this.data.rect[3] - this.data.rect[1];\n const totalWidth = this.data.rect[2] - this.data.rect[0];\n const fontInfo = await this._getFontData(evaluator, task);\n const [font, fontName] = fontInfo;\n let fontSize = fontInfo[2];\n fontSize = this._computeFontSize(font, fontName, fontSize, totalHeight);\n let descent = font.descent;\n\n if (isNaN(descent)) {\n descent = 0;\n }\n\n const vPadding = defaultPadding + Math.abs(descent) * fontSize;\n const defaultAppearance = this.data.defaultAppearance;\n const alignment = this.data.textAlignment;\n\n if (this.data.comb) {\n return this._getCombAppearance(defaultAppearance, value, totalWidth, hPadding, vPadding);\n }\n\n if (this.data.multiLine) {\n return this._getMultilineAppearance(defaultAppearance, value, font, fontSize, totalWidth, totalHeight, alignment, hPadding, vPadding);\n }\n\n if (alignment === 0 || alignment > 2) {\n return \"/Tx BMC q BT \" + defaultAppearance + ` 1 0 0 1 ${hPadding} ${vPadding} Tm (${(0, _util.escapeString)(value)}) Tj` + \" ET Q EMC\";\n }\n\n const renderedText = this._renderText(value, font, fontSize, totalWidth, alignment, hPadding, vPadding);\n\n return \"/Tx BMC q BT \" + defaultAppearance + ` 1 0 0 1 0 0 Tm ${renderedText}` + \" ET Q EMC\";\n }\n\n async _getFontData(evaluator, task) {\n const operatorList = new _operator_list.OperatorList();\n const initialState = {\n fontSize: 0,\n font: null,\n fontName: null,\n\n clone() {\n return this;\n }\n\n };\n await evaluator.getOperatorList({\n stream: new _stream.StringStream(this.data.defaultAppearance),\n task,\n resources: this.fieldResources,\n operatorList,\n initialState\n });\n return [initialState.font, initialState.fontName, initialState.fontSize];\n }\n\n _computeFontSize(font, fontName, fontSize, height) {\n if (fontSize === null || fontSize === 0) {\n const em = font.charsToGlyphs(\"M\", true)[0].width / 1000;\n const capHeight = 0.7 * em;\n fontSize = Math.max(1, Math.floor(height / (1.5 * capHeight)));\n let fontRegex = new RegExp(`/${fontName}\\\\s+[0-9\\.]+\\\\s+Tf`);\n\n if (this.data.defaultAppearance.search(fontRegex) === -1) {\n fontRegex = new RegExp(`/${fontName}\\\\s+Tf`);\n }\n\n this.data.defaultAppearance = this.data.defaultAppearance.replace(fontRegex, `/${fontName} ${fontSize} Tf`);\n }\n\n return fontSize;\n }\n\n _renderText(text, font, fontSize, totalWidth, alignment, hPadding, vPadding) {\n const glyphs = font.charsToGlyphs(text);\n const scale = fontSize / 1000;\n let width = 0;\n\n for (const glyph of glyphs) {\n width += glyph.width * scale;\n }\n\n let shift;\n\n if (alignment === 1) {\n shift = (totalWidth - width) / 2;\n } else if (alignment === 2) {\n shift = totalWidth - width - hPadding;\n } else {\n shift = hPadding;\n }\n\n shift = shift.toFixed(2);\n vPadding = vPadding.toFixed(2);\n return `${shift} ${vPadding} Td (${(0, _util.escapeString)(text)}) Tj`;\n }\n\n}\n\nclass TextWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n this._hasText = true;\n const dict = params.dict;\n\n if (!(0, _util.isString)(this.data.fieldValue)) {\n this.data.fieldValue = \"\";\n }\n\n let alignment = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"Q\"\n });\n\n if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n alignment = null;\n }\n\n this.data.textAlignment = alignment;\n let maximumLength = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"MaxLen\"\n });\n\n if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n maximumLength = null;\n }\n\n this.data.maxLen = maximumLength;\n this.data.multiLine = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE);\n this.data.comb = this.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !this.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && this.data.maxLen !== null;\n }\n\n _getCombAppearance(defaultAppearance, text, width, hPadding, vPadding) {\n const combWidth = (width / this.data.maxLen).toFixed(2);\n const buf = [];\n\n for (const character of text) {\n buf.push(`(${(0, _util.escapeString)(character)}) Tj`);\n }\n\n const renderedComb = buf.join(` ${combWidth} 0 Td `);\n return \"/Tx BMC q BT \" + defaultAppearance + ` 1 0 0 1 ${hPadding} ${vPadding} Tm ${renderedComb}` + \" ET Q EMC\";\n }\n\n _getMultilineAppearance(defaultAppearance, text, font, fontSize, width, height, alignment, hPadding, vPadding) {\n const lines = text.split(/\\r\\n|\\r|\\n/);\n const buf = [];\n const totalWidth = width - 2 * hPadding;\n\n for (const line of lines) {\n const chunks = this._splitLine(line, font, fontSize, totalWidth);\n\n for (const chunk of chunks) {\n const padding = buf.length === 0 ? hPadding : 0;\n buf.push(this._renderText(chunk, font, fontSize, width, alignment, padding, -fontSize));\n }\n }\n\n const renderedText = buf.join(\"\\n\");\n return \"/Tx BMC q BT \" + defaultAppearance + ` 1 0 0 1 0 ${height} Tm ${renderedText}` + \" ET Q EMC\";\n }\n\n _splitLine(line, font, fontSize, width) {\n if (line.length <= 1) {\n return [line];\n }\n\n const scale = fontSize / 1000;\n const whitespace = font.charsToGlyphs(\" \", true)[0].width * scale;\n const chunks = [];\n let lastSpacePos = -1,\n startChunk = 0,\n currentWidth = 0;\n\n for (let i = 0, ii = line.length; i < ii; i++) {\n const character = line.charAt(i);\n\n if (character === \" \") {\n if (currentWidth + whitespace > width) {\n chunks.push(line.substring(startChunk, i));\n startChunk = i;\n currentWidth = whitespace;\n lastSpacePos = -1;\n } else {\n currentWidth += whitespace;\n lastSpacePos = i;\n }\n } else {\n const charWidth = font.charsToGlyphs(character, false)[0].width * scale;\n\n if (currentWidth + charWidth > width) {\n if (lastSpacePos !== -1) {\n chunks.push(line.substring(startChunk, lastSpacePos + 1));\n startChunk = i = lastSpacePos + 1;\n lastSpacePos = -1;\n currentWidth = 0;\n } else {\n chunks.push(line.substring(startChunk, i));\n startChunk = i;\n currentWidth = charWidth;\n }\n } else {\n currentWidth += charWidth;\n }\n }\n }\n\n if (startChunk < line.length) {\n chunks.push(line.substring(startChunk, line.length));\n }\n\n return chunks;\n }\n\n}\n\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n this.checkedAppearance = null;\n this.uncheckedAppearance = null;\n this.data.checkBox = !this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n this.data.radioButton = this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n this.data.pushButton = this.hasFieldFlag(_util.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 (0, _util.warn)(\"Invalid field flags for button widget annotation\");\n }\n }\n\n getOperatorList(evaluator, task, renderForms, annotationStorage) {\n if (this.data.pushButton) {\n return super.getOperatorList(evaluator, task, false, annotationStorage);\n }\n\n if (annotationStorage) {\n const value = annotationStorage[this.data.id] || false;\n let appearance;\n\n if (value) {\n appearance = this.checkedAppearance;\n } else {\n appearance = this.uncheckedAppearance;\n }\n\n if (appearance) {\n const savedAppearance = this.appearance;\n this.appearance = appearance;\n const operatorList = super.getOperatorList(evaluator, task, renderForms, annotationStorage);\n this.appearance = savedAppearance;\n return operatorList;\n }\n\n return Promise.resolve(new _operator_list.OperatorList());\n }\n\n return super.getOperatorList(evaluator, task, renderForms, annotationStorage);\n }\n\n async save(evaluator, task, annotationStorage) {\n if (this.data.checkBox) {\n return this._saveCheckbox(evaluator, task, annotationStorage);\n }\n\n if (this.data.radioButton) {\n return this._saveRadioButton(evaluator, task, annotationStorage);\n }\n\n return super.save(evaluator, task, annotationStorage);\n }\n\n async _saveCheckbox(evaluator, task, annotationStorage) {\n const defaultValue = this.data.fieldValue && this.data.fieldValue !== \"Off\";\n const value = annotationStorage[this.data.id];\n\n if (defaultValue === value) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n\n if (!(0, _primitives.isDict)(dict)) {\n return null;\n }\n\n const name = _primitives.Name.get(value ? this.data.exportValue : \"Off\");\n\n dict.set(\"V\", name);\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${(0, _util.getModificationDate)()}`);\n const encrypt = evaluator.xref.encrypt;\n let originalTransform = null;\n\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n }\n\n const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n (0, _writer.writeDict)(dict, buffer, originalTransform);\n buffer.push(\"\\nendobj\\n\");\n return [{\n ref: this.ref,\n data: buffer.join(\"\")\n }];\n }\n\n async _saveRadioButton(evaluator, task, annotationStorage) {\n const defaultValue = this.data.fieldValue === this.data.buttonValue;\n const value = annotationStorage[this.data.id];\n\n if (defaultValue === value) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n\n if (!(0, _primitives.isDict)(dict)) {\n return null;\n }\n\n const name = _primitives.Name.get(value ? this.data.buttonValue : \"Off\");\n\n let parentBuffer = null;\n const encrypt = evaluator.xref.encrypt;\n\n if (value) {\n if ((0, _primitives.isRef)(this.parent)) {\n const parent = evaluator.xref.fetch(this.parent);\n let parentTransform = null;\n\n if (encrypt) {\n parentTransform = encrypt.createCipherTransform(this.parent.num, this.parent.gen);\n }\n\n parent.set(\"V\", name);\n parentBuffer = [`${this.parent.num} ${this.parent.gen} obj\\n`];\n (0, _writer.writeDict)(parent, parentBuffer, parentTransform);\n parentBuffer.push(\"\\nendobj\\n\");\n } else if ((0, _primitives.isDict)(this.parent)) {\n this.parent.set(\"V\", name);\n }\n }\n\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${(0, _util.getModificationDate)()}`);\n let originalTransform = null;\n\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n }\n\n const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n (0, _writer.writeDict)(dict, buffer, originalTransform);\n buffer.push(\"\\nendobj\\n\");\n const newRefs = [{\n ref: this.ref,\n data: buffer.join(\"\")\n }];\n\n if (parentBuffer !== null) {\n newRefs.push({\n ref: this.parent,\n data: parentBuffer.join(\"\")\n });\n }\n\n return newRefs;\n }\n\n _processCheckBox(params) {\n const customAppearance = params.dict.get(\"AP\");\n\n if (!(0, _primitives.isDict)(customAppearance)) {\n return;\n }\n\n const normalAppearance = customAppearance.get(\"N\");\n\n if (!(0, _primitives.isDict)(normalAppearance)) {\n return;\n }\n\n const exportValues = normalAppearance.getKeys();\n\n if (!exportValues.includes(\"Off\")) {\n exportValues.push(\"Off\");\n }\n\n if (exportValues.length !== 2) {\n return;\n }\n\n this.data.exportValue = exportValues[0] === \"Off\" ? exportValues[1] : exportValues[0];\n this.checkedAppearance = normalAppearance.get(this.data.exportValue);\n this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n }\n\n _processRadioButton(params) {\n this.data.fieldValue = this.data.buttonValue = null;\n const fieldParent = params.dict.get(\"Parent\");\n\n if ((0, _primitives.isDict)(fieldParent) && fieldParent.has(\"V\")) {\n const fieldParentValue = fieldParent.get(\"V\");\n\n if ((0, _primitives.isName)(fieldParentValue)) {\n this.parent = params.dict.getRaw(\"Parent\");\n this.data.fieldValue = this._decodeFormValue(fieldParentValue);\n }\n }\n\n const appearanceStates = params.dict.get(\"AP\");\n\n if (!(0, _primitives.isDict)(appearanceStates)) {\n return;\n }\n\n const normalAppearance = appearanceStates.get(\"N\");\n\n if (!(0, _primitives.isDict)(normalAppearance)) {\n return;\n }\n\n for (const key of normalAppearance.getKeys()) {\n if (key !== \"Off\") {\n this.data.buttonValue = key;\n break;\n }\n }\n\n this.checkedAppearance = normalAppearance.get(this.data.buttonValue);\n this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n }\n\n _processPushButton(params) {\n if (!params.dict.has(\"A\")) {\n (0, _util.warn)(\"Push buttons without action dictionaries are not supported\");\n return;\n }\n\n _obj.Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl\n });\n }\n\n}\n\nclass ChoiceWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n this.data.options = [];\n const options = (0, _core_utils.getInheritableProperty)({\n dict: params.dict,\n key: \"Opt\"\n });\n\n if (Array.isArray(options)) {\n const xref = params.xref;\n\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 this.data.options[i] = {\n exportValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[0]) : option),\n displayValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[1]) : option)\n };\n }\n }\n\n if ((0, _util.isString)(this.data.fieldValue)) {\n this.data.fieldValue = [this.data.fieldValue];\n } else if (!this.data.fieldValue) {\n this.data.fieldValue = [];\n }\n\n this.data.combo = this.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);\n this.data.multiSelect = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);\n this._hasText = true;\n }\n\n}\n\nclass TextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n const DEFAULT_ICON_SIZE = 22;\n super(parameters);\n const dict = parameters.dict;\n this.data.annotationType = _util.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}\n\nclass LinkAnnotation extends Annotation {\n constructor(params) {\n super(params);\n this.data.annotationType = _util.AnnotationType.LINK;\n const quadPoints = getQuadPoints(params.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n\n _obj.Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl\n });\n }\n\n}\n\nclass PopupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.POPUP;\n let parentItem = parameters.dict.get(\"Parent\");\n\n if (!parentItem) {\n (0, _util.warn)(\"Popup annotation has a missing or invalid parent annotation.\");\n return;\n }\n\n const parentSubtype = parentItem.get(\"Subtype\");\n this.data.parentType = (0, _primitives.isName)(parentSubtype) ? parentSubtype.name : null;\n const rawParent = parameters.dict.getRaw(\"Parent\");\n this.data.parentId = (0, _primitives.isRef)(rawParent) ? rawParent.toString() : null;\n const rt = parentItem.get(\"RT\");\n\n if ((0, _primitives.isName)(rt, _util.AnnotationReplyType.GROUP)) {\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 this.data.color = null;\n } else {\n this.setColor(parentItem.getArray(\"C\"));\n this.data.color = this.color;\n }\n\n if (!this.viewable) {\n const parentFlags = parentItem.get(\"F\");\n\n if (this._isViewable(parentFlags)) {\n this.setFlags(parentFlags);\n }\n }\n\n this.data.title = (0, _util.stringToPDFString)(parentItem.get(\"T\") || \"\");\n this.data.contents = (0, _util.stringToPDFString)(parentItem.get(\"Contents\") || \"\");\n }\n\n}\n\nclass FreeTextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.FREETEXT;\n }\n\n}\n\nclass LineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.LINE;\n this.data.lineCoordinates = _util.Util.normalizeRect(parameters.dict.getArray(\"L\"));\n }\n\n}\n\nclass SquareAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.SQUARE;\n }\n\n}\n\nclass CircleAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.CIRCLE;\n }\n\n}\n\nclass PolylineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.POLYLINE;\n const rawVertices = parameters.dict.getArray(\"Vertices\");\n this.data.vertices = [];\n\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}\n\nclass PolygonAnnotation extends PolylineAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.POLYGON;\n }\n\n}\n\nclass CaretAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.CARET;\n }\n\n}\n\nclass InkAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.INK;\n const xref = parameters.xref;\n const originalInkLists = parameters.dict.getArray(\"InkList\");\n this.data.inkLists = [];\n\n for (let i = 0, ii = originalInkLists.length; i < ii; ++i) {\n this.data.inkLists.push([]);\n\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}\n\nclass HighlightAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.HIGHLIGHT;\n const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n }\n\n}\n\nclass UnderlineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.UNDERLINE;\n const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n }\n\n}\n\nclass SquigglyAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.SQUIGGLY;\n const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n }\n\n}\n\nclass StrikeOutAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.STRIKEOUT;\n const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n }\n\n}\n\nclass StampAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.STAMP;\n }\n\n}\n\nclass FileAttachmentAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n const file = new _obj.FileSpec(parameters.dict.get(\"FS\"), parameters.xref);\n this.data.annotationType = _util.AnnotationType.FILEATTACHMENT;\n this.data.file = file.serializable;\n }\n\n}\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OperatorList = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar QueueOptimizer = function QueueOptimizerClosure() {\n function addState(parentState, pattern, checkFn, iterateFn, processFn) {\n var state = parentState;\n\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\n state[pattern[pattern.length - 1]] = {\n checkFn,\n iterateFn,\n processFn\n };\n }\n\n function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray) {\n var iFirstPIMXO = iFirstSave + 2;\n\n for (var i = 0; i < count; i++) {\n var arg = argsArray[iFirstPIMXO + 4 * i];\n var imageMask = arg.length === 1 && arg[0];\n\n if (imageMask && imageMask.width === 1 && imageMask.height === 1 && (!imageMask.data.length || imageMask.data.length === 1 && imageMask.data[0] === 0)) {\n fnArray[iFirstPIMXO + 4 * i] = _util.OPS.paintSolidColorImageMask;\n continue;\n }\n\n break;\n }\n\n return count - i;\n }\n\n var InitialState = [];\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], null, function iterateInlineImageGroup(context, i) {\n var fnArray = context.fnArray;\n var iFirstSave = context.iCurr - 3;\n var pos = (i - iFirstSave) % 4;\n\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.save;\n\n case 1:\n return fnArray[i] === _util.OPS.transform;\n\n case 2:\n return fnArray[i] === _util.OPS.paintInlineImageXObject;\n\n case 3:\n return fnArray[i] === _util.OPS.restore;\n }\n\n throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);\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 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 var count = Math.min(Math.floor((i - iFirstSave) / 4), 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 var maxX = 0;\n var map = [],\n maxLineHeight = 0;\n var currentX = IMAGE_PADDING,\n currentY = IMAGE_PADDING;\n var q;\n\n for (q = 0; q < count; q++) {\n var transform = argsArray[iFirstTransform + (q << 2)];\n var img = argsArray[iFirstPIIXO + (q << 2)][0];\n\n if (currentX + img.width > MAX_WIDTH) {\n maxX = Math.max(maxX, currentX);\n currentY += maxLineHeight + 2 * IMAGE_PADDING;\n currentX = 0;\n maxLineHeight = 0;\n }\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\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\n for (q = 0; q < count; q++) {\n var data = argsArray[iFirstPIIXO + (q << 2)][0].data;\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\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\n imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n\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 fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [{\n width: imgWidth,\n height: imgHeight,\n kind: _util.ImageKind.RGBA_32BPP,\n data: imgData\n }, map]);\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageMaskXObject, _util.OPS.restore], null, function iterateImageMaskGroup(context, i) {\n var fnArray = context.fnArray;\n var iFirstSave = context.iCurr - 3;\n var pos = (i - iFirstSave) % 4;\n\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.save;\n\n case 1:\n return fnArray[i] === _util.OPS.transform;\n\n case 2:\n return fnArray[i] === _util.OPS.paintImageMaskXObject;\n\n case 3:\n return fnArray[i] === _util.OPS.restore;\n }\n\n throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);\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 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 var count = Math.floor((i - iFirstSave) / 4);\n count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, 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 const firstTransformArg0 = argsArray[iFirstTransform][0],\n firstTransformArg1 = argsArray[iFirstTransform][1],\n firstTransformArg2 = argsArray[iFirstTransform][2],\n firstTransformArg3 = argsArray[iFirstTransform][3];\n\n if (firstTransformArg1 === firstTransformArg2) {\n isSameImage = true;\n iTransform = iFirstTransform + 4;\n var iPIMXO = iFirstPIMXO + 4;\n\n for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n transformArgs = argsArray[iTransform];\n\n if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== firstTransformArg1 || transformArgs[2] !== firstTransformArg2 || transformArgs[3] !== firstTransformArg3) {\n if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n isSameImage = false;\n } else {\n count = q;\n }\n\n break;\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\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 fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg1, firstTransformArg2, firstTransformArg3, positions]);\n } else {\n count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n var images = [];\n\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 fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [images]);\n }\n\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) {\n var argsArray = context.argsArray;\n var iFirstTransform = context.iCurr - 2;\n return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0;\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\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.save;\n\n case 1:\n if (fnArray[i] !== _util.OPS.transform) {\n return false;\n }\n\n var iFirstTransform = context.iCurr - 2;\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n\n if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) {\n return false;\n }\n\n return true;\n\n case 2:\n if (fnArray[i] !== _util.OPS.paintImageXObject) {\n return false;\n }\n\n var iFirstPIXO = context.iCurr - 1;\n var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n\n if (argsArray[i][0] !== firstPIXOArg0) {\n return false;\n }\n\n return true;\n\n case 3:\n return fnArray[i] === _util.OPS.restore;\n }\n\n throw new Error(`iterateImageGroup - invalid pos: ${pos}`);\n }, function (context, i) {\n var MIN_IMAGES_IN_BLOCK = 3;\n var MAX_IMAGES_IN_BLOCK = 1000;\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 var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK);\n\n if (count < MIN_IMAGES_IN_BLOCK) {\n return i - (i - iFirstSave) % 4;\n }\n\n var positions = new Float32Array(count * 2);\n var iTransform = iFirstTransform;\n\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 var args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, args);\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], null, 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\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.beginText;\n\n case 1:\n return fnArray[i] === _util.OPS.setFont;\n\n case 2:\n return fnArray[i] === _util.OPS.setTextMatrix;\n\n case 3:\n if (fnArray[i] !== _util.OPS.showText) {\n return false;\n }\n\n var iFirstSetFont = context.iCurr - 3;\n var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) {\n return false;\n }\n\n return true;\n\n case 4:\n return fnArray[i] === _util.OPS.endText;\n }\n\n throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);\n }, function (context, i) {\n var MIN_CHARS_IN_BLOCK = 3;\n var MAX_CHARS_IN_BLOCK = 1000;\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 var count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK);\n\n if (count < MIN_CHARS_IN_BLOCK) {\n return i - (i - iFirstBeginText) % 5;\n }\n\n var iFirst = iFirstBeginText;\n\n if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) {\n count++;\n iFirst -= 5;\n }\n\n var iEndText = iFirst + 4;\n\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 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 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\n if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n this.lastProcessed = ii;\n return;\n }\n\n const context = this.context;\n\n while (i < ii) {\n if (match) {\n const iterate = (0, match.iterateFn)(context, i);\n\n if (iterate) {\n i++;\n continue;\n }\n\n i = (0, match.processFn)(context, i + 1);\n ii = fnArray.length;\n match = null;\n state = null;\n\n if (i >= ii) {\n break;\n }\n }\n\n state = (state || InitialState)[fnArray[i]];\n\n if (!state || Array.isArray(state)) {\n i++;\n continue;\n }\n\n context.iCurr = i;\n i++;\n\n if (state.checkFn && !(0, state.checkFn)(context)) {\n state = null;\n continue;\n }\n\n match = state;\n state = null;\n }\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\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\n this._optimize();\n }\n },\n\n reset() {\n this.state = null;\n this.match = null;\n this.lastProcessed = 0;\n }\n\n };\n return QueueOptimizer;\n}();\n\nvar NullOptimizer = function NullOptimizerClosure() {\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;\n\n function OperatorList(intent, streamSink) {\n this._streamSink = streamSink;\n this.fnArray = [];\n this.argsArray = [];\n\n if (streamSink && intent !== \"oplist\") {\n this.optimizer = new QueueOptimizer(this);\n } else {\n this.optimizer = new NullOptimizer(this);\n }\n\n this.dependencies = new Set();\n this._totalLength = 0;\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 get totalLength() {\n return this._totalLength + this.length;\n },\n\n addOp(fn, args) {\n this.optimizer.push(fn, args);\n this.weight++;\n\n if (this._streamSink) {\n if (this.weight >= CHUNK_SIZE) {\n this.flush();\n } else if (this.weight >= CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) {\n this.flush();\n }\n }\n },\n\n addDependency(dependency) {\n if (this.dependencies.has(dependency)) {\n return;\n }\n\n this.dependencies.add(dependency);\n this.addOp(_util.OPS.dependency, [dependency]);\n },\n\n addDependencies(dependencies) {\n for (const dependency of dependencies) {\n this.addDependency(dependency);\n }\n },\n\n addOpList(opList) {\n if (!(opList instanceof OperatorList)) {\n (0, _util.warn)('addOpList - ignoring invalid \"opList\" parameter.');\n return;\n }\n\n for (const dependency of opList.dependencies) {\n this.dependencies.add(dependency);\n }\n\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 {\n fnArray,\n argsArray,\n length\n } = this;\n\n for (let i = 0; i < length; i++) {\n switch (fnArray[i]) {\n case _util.OPS.paintInlineImageXObject:\n case _util.OPS.paintInlineImageXObjectGroup:\n case _util.OPS.paintImageMaskXObject:\n const arg = argsArray[i][0];\n ;\n\n if (!arg.cached) {\n transfers.push(arg.data.buffer);\n }\n\n break;\n }\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 fnArray: this.fnArray,\n argsArray: this.argsArray,\n lastChunk,\n length\n }, 1, this._transfers);\n\n this.dependencies.clear();\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\nexports.OperatorList = OperatorList;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.writeDict = writeDict;\nexports.incrementalUpdate = incrementalUpdate;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _crypto = __w_pdfjs_require__(22);\n\nfunction writeDict(dict, buffer, transform) {\n buffer.push(\"<<\");\n\n for (const key of dict.getKeys()) {\n buffer.push(` /${key} `);\n writeValue(dict.getRaw(key), buffer, transform);\n }\n\n buffer.push(\">>\");\n}\n\nfunction writeStream(stream, buffer, transform) {\n writeDict(stream.dict, buffer, transform);\n buffer.push(\" stream\\n\");\n let string = (0, _util.bytesToString)(stream.getBytes());\n\n if (transform !== null) {\n string = transform.encryptString(string);\n }\n\n buffer.push(string);\n buffer.push(\"\\nendstream\\n\");\n}\n\nfunction writeArray(array, buffer, transform) {\n buffer.push(\"[\");\n let first = true;\n\n for (const val of array) {\n if (!first) {\n buffer.push(\" \");\n } else {\n first = false;\n }\n\n writeValue(val, buffer, transform);\n }\n\n buffer.push(\"]\");\n}\n\nfunction numberToString(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const roundedValue = Math.round(value * 100);\n\n if (roundedValue % 100 === 0) {\n return (roundedValue / 100).toString();\n }\n\n if (roundedValue % 10 === 0) {\n return value.toFixed(1);\n }\n\n return value.toFixed(2);\n}\n\nfunction writeValue(value, buffer, transform) {\n if ((0, _primitives.isName)(value)) {\n buffer.push(`/${value.name}`);\n } else if ((0, _primitives.isRef)(value)) {\n buffer.push(`${value.num} ${value.gen} R`);\n } else if (Array.isArray(value)) {\n writeArray(value, buffer, transform);\n } else if (typeof value === \"string\") {\n if (transform !== null) {\n value = transform.encryptString(value);\n }\n\n buffer.push(`(${(0, _util.escapeString)(value)})`);\n } else if (typeof value === \"number\") {\n buffer.push(numberToString(value));\n } else if ((0, _primitives.isDict)(value)) {\n writeDict(value, buffer, transform);\n } else if ((0, _primitives.isStream)(value)) {\n writeStream(value, buffer, transform);\n }\n}\n\nfunction writeInt(number, size, offset, buffer) {\n for (let i = size + offset - 1; i > offset - 1; i--) {\n buffer[i] = number & 0xff;\n number >>= 8;\n }\n\n return offset + size;\n}\n\nfunction writeString(string, offset, buffer) {\n for (let i = 0, len = string.length; i < len; i++) {\n buffer[offset + i] = string.charCodeAt(i) & 0xff;\n }\n}\n\nfunction computeMD5(filesize, xrefInfo) {\n const time = Math.floor(Date.now() / 1000);\n const filename = xrefInfo.filename || \"\";\n const md5Buffer = [time.toString(), filename, filesize.toString()];\n let md5BufferLen = md5Buffer.reduce((a, str) => a + str.length, 0);\n\n for (const value of Object.values(xrefInfo.info)) {\n md5Buffer.push(value);\n md5BufferLen += value.length;\n }\n\n const array = new Uint8Array(md5BufferLen);\n let offset = 0;\n\n for (const str of md5Buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n\n return (0, _util.bytesToString)((0, _crypto.calculateMD5)(array));\n}\n\nfunction incrementalUpdate(originalData, xrefInfo, newRefs) {\n const newXref = new _primitives.Dict(null);\n const refForXrefTable = xrefInfo.newRef;\n let buffer, baseOffset;\n const lastByte = originalData[originalData.length - 1];\n\n if (lastByte === 0x0a || lastByte === 0x0d) {\n buffer = [];\n baseOffset = originalData.length;\n } else {\n buffer = [\"\\n\"];\n baseOffset = originalData.length + 1;\n }\n\n newXref.set(\"Size\", refForXrefTable.num + 1);\n newXref.set(\"Prev\", xrefInfo.startXRef);\n newXref.set(\"Type\", _primitives.Name.get(\"XRef\"));\n\n if (xrefInfo.rootRef !== null) {\n newXref.set(\"Root\", xrefInfo.rootRef);\n }\n\n if (xrefInfo.infoRef !== null) {\n newXref.set(\"Info\", xrefInfo.infoRef);\n }\n\n if (xrefInfo.encrypt !== null) {\n newXref.set(\"Encrypt\", xrefInfo.encrypt);\n }\n\n newRefs.push({\n ref: refForXrefTable,\n data: \"\"\n });\n newRefs = newRefs.sort((a, b) => {\n return a.ref.num - b.ref.num;\n });\n const xrefTableData = [[0, 1, 0xffff]];\n const indexes = [0, 1];\n let maxOffset = 0;\n\n for (const {\n ref,\n data\n } of newRefs) {\n maxOffset = Math.max(maxOffset, baseOffset);\n xrefTableData.push([1, baseOffset, Math.min(ref.gen, 0xffff)]);\n baseOffset += data.length;\n indexes.push(ref.num);\n indexes.push(1);\n buffer.push(data);\n }\n\n newXref.set(\"Index\", indexes);\n\n if (xrefInfo.fileIds.length !== 0) {\n const md5 = computeMD5(baseOffset, xrefInfo);\n newXref.set(\"ID\", [xrefInfo.fileIds[0], md5]);\n }\n\n const offsetSize = Math.ceil(Math.log2(maxOffset) / 8);\n const sizes = [1, offsetSize, 2];\n const structSize = sizes[0] + sizes[1] + sizes[2];\n const tableLength = structSize * xrefTableData.length;\n newXref.set(\"W\", sizes);\n newXref.set(\"Length\", tableLength);\n buffer.push(`${refForXrefTable.num} ${refForXrefTable.gen} obj\\n`);\n writeDict(newXref, buffer, null);\n buffer.push(\" stream\\n\");\n const bufferLen = buffer.reduce((a, str) => a + str.length, 0);\n const footer = `\\nendstream\\nendobj\\nstartxref\\n${baseOffset}\\n%%EOF\\n`;\n const array = new Uint8Array(originalData.length + bufferLen + tableLength + footer.length);\n array.set(originalData);\n let offset = originalData.length;\n\n for (const str of buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n\n for (const [type, objOffset, gen] of xrefTableData) {\n offset = writeInt(type, sizes[0], offset, array);\n offset = writeInt(objOffset, sizes[1], offset, array);\n offset = writeInt(gen, sizes[2], offset, array);\n }\n\n writeString(footer, offset, array);\n return array;\n}\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PartialEvaluator = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cmap = __w_pdfjs_require__(29);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _fonts = __w_pdfjs_require__(30);\n\nvar _encodings = __w_pdfjs_require__(33);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _unicode = __w_pdfjs_require__(36);\n\nvar _standard_fonts = __w_pdfjs_require__(35);\n\nvar _pattern = __w_pdfjs_require__(39);\n\nvar _function = __w_pdfjs_require__(40);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _image_utils = __w_pdfjs_require__(24);\n\nvar _bidi = __w_pdfjs_require__(42);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _glyphlist = __w_pdfjs_require__(34);\n\nvar _metrics = __w_pdfjs_require__(43);\n\nvar _murmurhash = __w_pdfjs_require__(44);\n\nvar _operator_list = __w_pdfjs_require__(26);\n\nvar _image = __w_pdfjs_require__(45);\n\nconst DefaultPartialEvaluatorOptions = Object.freeze({\n maxImageSize: -1,\n disableFontFace: false,\n ignoreErrors: false,\n isEvalSupported: true,\n fontExtraProperties: false\n});\nconst PatternType = {\n TILING: 1,\n SHADING: 2\n};\nconst deferred = Promise.resolve();\n\nfunction normalizeBlendMode(value, parsingArray = false) {\n if (Array.isArray(value)) {\n for (let i = 0, ii = value.length; i < ii; i++) {\n const maybeBM = normalizeBlendMode(value[i], true);\n\n if (maybeBM) {\n return maybeBM;\n }\n }\n\n (0, _util.warn)(`Unsupported blend mode Array: ${value}`);\n return \"source-over\";\n }\n\n if (!(0, _primitives.isName)(value)) {\n if (parsingArray) {\n return null;\n }\n\n return \"source-over\";\n }\n\n switch (value.name) {\n case \"Normal\":\n case \"Compatible\":\n return \"source-over\";\n\n case \"Multiply\":\n return \"multiply\";\n\n case \"Screen\":\n return \"screen\";\n\n case \"Overlay\":\n return \"overlay\";\n\n case \"Darken\":\n return \"darken\";\n\n case \"Lighten\":\n return \"lighten\";\n\n case \"ColorDodge\":\n return \"color-dodge\";\n\n case \"ColorBurn\":\n return \"color-burn\";\n\n case \"HardLight\":\n return \"hard-light\";\n\n case \"SoftLight\":\n return \"soft-light\";\n\n case \"Difference\":\n return \"difference\";\n\n case \"Exclusion\":\n return \"exclusion\";\n\n case \"Hue\":\n return \"hue\";\n\n case \"Saturation\":\n return \"saturation\";\n\n case \"Color\":\n return \"color\";\n\n case \"Luminosity\":\n return \"luminosity\";\n }\n\n if (parsingArray) {\n return null;\n }\n\n (0, _util.warn)(`Unsupported blend mode: ${value.name}`);\n return \"source-over\";\n}\n\nclass TimeSlotManager {\n static get TIME_SLOT_DURATION_MS() {\n return (0, _util.shadow)(this, \"TIME_SLOT_DURATION_MS\", 20);\n }\n\n static get CHECK_TIME_EVERY() {\n return (0, _util.shadow)(this, \"CHECK_TIME_EVERY\", 100);\n }\n\n constructor() {\n this.reset();\n }\n\n check() {\n if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) {\n return false;\n }\n\n this.checked = 0;\n return this.endTime <= Date.now();\n }\n\n reset() {\n this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS;\n this.checked = 0;\n }\n\n}\n\nclass PartialEvaluator {\n constructor({\n xref,\n handler,\n pageIndex,\n idFactory,\n fontCache,\n builtInCMapCache,\n globalImageCache,\n options = null\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.parsingType3Font = false;\n this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);\n }\n\n get _pdfFunctionFactory() {\n const pdfFunctionFactory = new _function.PDFFunctionFactory({\n xref: this.xref,\n isEvalSupported: this.options.isEvalSupported\n });\n return (0, _util.shadow)(this, \"_pdfFunctionFactory\", pdfFunctionFactory);\n }\n\n clone(newOptions = DefaultPartialEvaluatorOptions) {\n var newEvaluator = Object.create(this);\n newEvaluator.options = newOptions;\n return newEvaluator;\n }\n\n hasBlendModes(resources) {\n if (!(resources instanceof _primitives.Dict)) {\n return false;\n }\n\n const processed = new _primitives.RefSet();\n\n if (resources.objId) {\n processed.put(resources.objId);\n }\n\n var nodes = [resources],\n xref = this.xref;\n\n while (nodes.length) {\n var node = nodes.shift();\n var graphicStates = node.get(\"ExtGState\");\n\n if (graphicStates instanceof _primitives.Dict) {\n for (let graphicState of graphicStates.getRawValues()) {\n if (graphicState instanceof _primitives.Ref) {\n if (processed.has(graphicState)) {\n continue;\n }\n\n try {\n graphicState = xref.fetch(graphicState);\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n processed.put(graphicState);\n (0, _util.info)(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n continue;\n }\n }\n\n if (!(graphicState instanceof _primitives.Dict)) {\n continue;\n }\n\n if (graphicState.objId) {\n processed.put(graphicState.objId);\n }\n\n const bm = graphicState.get(\"BM\");\n\n if (bm instanceof _primitives.Name) {\n if (bm.name !== \"Normal\") {\n return true;\n }\n\n continue;\n }\n\n if (bm !== undefined && Array.isArray(bm)) {\n for (const element of bm) {\n if (element instanceof _primitives.Name && element.name !== \"Normal\") {\n return true;\n }\n }\n }\n }\n }\n\n var xObjects = node.get(\"XObject\");\n\n if (!(xObjects instanceof _primitives.Dict)) {\n continue;\n }\n\n for (let xObject of xObjects.getRawValues()) {\n if (xObject instanceof _primitives.Ref) {\n if (processed.has(xObject)) {\n continue;\n }\n\n try {\n xObject = xref.fetch(xObject);\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n processed.put(xObject);\n (0, _util.info)(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n continue;\n }\n }\n\n if (!(0, _primitives.isStream)(xObject)) {\n continue;\n }\n\n if (xObject.dict.objId) {\n processed.put(xObject.dict.objId);\n }\n\n var xResources = xObject.dict.get(\"Resources\");\n\n if (!(xResources instanceof _primitives.Dict)) {\n continue;\n }\n\n if (xResources.objId && processed.has(xResources.objId)) {\n continue;\n }\n\n nodes.push(xResources);\n\n if (xResources.objId) {\n processed.put(xResources.objId);\n }\n }\n }\n\n return false;\n }\n\n async fetchBuiltInCMap(name) {\n const cachedData = this.builtInCMapCache.get(name);\n\n if (cachedData) {\n return cachedData;\n }\n\n const readableStream = this.handler.sendWithStream(\"FetchBuiltInCMap\", {\n name\n });\n const reader = readableStream.getReader();\n const data = await new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n return;\n }\n\n resolve(value);\n pump();\n }, reject);\n }\n\n pump();\n });\n\n if (data.compressionType !== _util.CMapCompressionType.NONE) {\n this.builtInCMapCache.set(name, data);\n }\n\n return data;\n }\n\n async buildFormXObject(resources, xobj, smask, operatorList, task, initialState, localColorSpaceCache) {\n var dict = xobj.dict;\n var matrix = dict.getArray(\"Matrix\");\n var bbox = dict.getArray(\"BBox\");\n\n if (Array.isArray(bbox) && bbox.length === 4) {\n bbox = _util.Util.normalizeRect(bbox);\n } else {\n bbox = null;\n }\n\n let optionalContent = null;\n\n if (dict.has(\"OC\")) {\n optionalContent = await this.parseMarkedContentProps(dict.get(\"OC\"), resources);\n operatorList.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n }\n\n var group = dict.get(\"Group\");\n\n if (group) {\n var groupOptions = {\n matrix,\n bbox,\n smask,\n isolated: false,\n knockout: false\n };\n var groupSubtype = group.get(\"S\");\n var colorSpace = null;\n\n if ((0, _primitives.isName)(groupSubtype, \"Transparency\")) {\n groupOptions.isolated = group.get(\"I\") || false;\n groupOptions.knockout = group.get(\"K\") || false;\n\n if (group.has(\"CS\")) {\n const cs = group.getRaw(\"CS\");\n\n const cachedColorSpace = _colorspace.ColorSpace.getCached(cs, this.xref, localColorSpaceCache);\n\n if (cachedColorSpace) {\n colorSpace = cachedColorSpace;\n } else {\n colorSpace = await this.parseColorSpace({\n cs,\n resources,\n localColorSpaceCache\n });\n }\n }\n }\n\n if (smask && smask.backdrop) {\n colorSpace = colorSpace || _colorspace.ColorSpace.singletons.rgb;\n smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n }\n\n operatorList.addOp(_util.OPS.beginGroup, [groupOptions]);\n }\n\n operatorList.addOp(_util.OPS.paintFormXObjectBegin, [matrix, bbox]);\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(_util.OPS.paintFormXObjectEnd, []);\n\n if (group) {\n operatorList.addOp(_util.OPS.endGroup, [groupOptions]);\n }\n\n if (optionalContent) {\n operatorList.addOp(_util.OPS.endMarkedContent, []);\n }\n });\n }\n\n _sendImgData(objId, imgData, cacheGlobally = false) {\n const transfers = imgData ? [imgData.data.buffer] : null;\n\n if (this.parsingType3Font || cacheGlobally) {\n return this.handler.send(\"commonobj\", [objId, \"Image\", imgData], transfers);\n }\n\n return this.handler.send(\"obj\", [objId, this.pageIndex, \"Image\", imgData], transfers);\n }\n\n async buildPaintImageXObject({\n resources,\n image,\n isInline = false,\n operatorList,\n cacheKey,\n localImageCache,\n localColorSpaceCache\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 && (0, _util.isNum)(w)) || !(h && (0, _util.isNum)(h))) {\n (0, _util.warn)(\"Image dimensions are missing, or not numbers.\");\n return undefined;\n }\n\n var maxImageSize = this.options.maxImageSize;\n\n if (maxImageSize !== -1 && w * h > maxImageSize) {\n (0, _util.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\n if (imageMask) {\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(bitStrideLength * height, true);\n var decode = dict.getArray(\"Decode\", \"D\");\n imgData = _image.PDFImage.createMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream: image instanceof _stream.DecodeStream,\n inverseDecode: !!decode && decode[0] > 0\n });\n imgData.cached = !!cacheKey;\n args = [imgData];\n operatorList.addOp(_util.OPS.paintImageMaskXObject, args);\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: _util.OPS.paintImageMaskXObject,\n args\n });\n }\n\n return undefined;\n }\n\n var softMask = dict.get(\"SMask\", \"SM\") || false;\n var mask = dict.get(\"Mask\") || false;\n var SMALL_IMAGE_DIMENSIONS = 200;\n\n if (isInline && !softMask && !mask && w + h < SMALL_IMAGE_DIMENSIONS) {\n const imageObj = new _image.PDFImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache\n });\n imgData = imageObj.createImageData(true);\n operatorList.addOp(_util.OPS.paintInlineImageXObject, [imgData]);\n return undefined;\n }\n\n let objId = `img_${this.idFactory.createObjId()}`,\n cacheGlobally = false;\n\n if (this.parsingType3Font) {\n objId = `${this.idFactory.getDocId()}_type3_${objId}`;\n } else if (imageRef) {\n cacheGlobally = this.globalImageCache.shouldCache(imageRef, this.pageIndex);\n\n if (cacheGlobally) {\n objId = `${this.idFactory.getDocId()}_${objId}`;\n }\n }\n\n operatorList.addDependency(objId);\n args = [objId, w, h];\n\n _image.PDFImage.buildImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache\n }).then(imageObj => {\n imgData = imageObj.createImageData(false);\n return this._sendImgData(objId, imgData, cacheGlobally);\n }).catch(reason => {\n (0, _util.warn)(`Unable to decode image \"${objId}\": \"${reason}\".`);\n return this._sendImgData(objId, null, cacheGlobally);\n });\n\n operatorList.addOp(_util.OPS.paintImageXObject, args);\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: _util.OPS.paintImageXObject,\n args\n });\n\n if (imageRef) {\n (0, _util.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: _util.OPS.paintImageXObject,\n args\n });\n }\n }\n }\n\n return undefined;\n }\n\n handleSMask(smask, resources, operatorList, task, stateManager, localColorSpaceCache) {\n var smaskContent = smask.get(\"G\");\n var smaskOptions = {\n subtype: smask.get(\"S\").name,\n backdrop: smask.get(\"BC\")\n };\n var transferObj = smask.get(\"TR\");\n\n if ((0, _function.isPDFFunction)(transferObj)) {\n const transferFn = this._pdfFunctionFactory.create(transferObj);\n\n var transferMap = new Uint8Array(256);\n var tmp = new Float32Array(1);\n\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\n smaskOptions.transferMap = transferMap;\n }\n\n return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone(), localColorSpaceCache);\n }\n\n handleTransferFunction(tr) {\n let transferArray;\n\n if (Array.isArray(tr)) {\n transferArray = tr;\n } else if ((0, _function.isPDFFunction)(tr)) {\n transferArray = [tr];\n } else {\n return null;\n }\n\n const transferMaps = [];\n let numFns = 0,\n numEffectfulFns = 0;\n\n for (const entry of transferArray) {\n const transferObj = this.xref.fetchIfRef(entry);\n numFns++;\n\n if ((0, _primitives.isName)(transferObj, \"Identity\")) {\n transferMaps.push(null);\n continue;\n } else if (!(0, _function.isPDFFunction)(transferObj)) {\n return null;\n }\n\n const transferFn = this._pdfFunctionFactory.create(transferObj);\n\n const transferMap = new Uint8Array(256),\n tmp = new Float32Array(1);\n\n for (let j = 0; j < 256; j++) {\n tmp[0] = j / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[j] = tmp[0] * 255 | 0;\n }\n\n transferMaps.push(transferMap);\n numEffectfulFns++;\n }\n\n if (!(numFns === 1 || numFns === 4)) {\n return null;\n }\n\n if (numEffectfulFns === 0) {\n return null;\n }\n\n return transferMaps;\n }\n\n handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) {\n const tilingOpList = new _operator_list.OperatorList();\n\n const patternResources = _primitives.Dict.merge({\n xref: this.xref,\n dictArray: [patternDict.get(\"Resources\"), resources]\n });\n\n return this.getOperatorList({\n stream: pattern,\n task,\n resources: patternResources,\n operatorList: tilingOpList\n }).then(function () {\n return (0, _pattern.getTilingPatternIR)({\n fnArray: tilingOpList.fnArray,\n argsArray: tilingOpList.argsArray\n }, patternDict, args);\n }).then(function (tilingPatternIR) {\n operatorList.addDependencies(tilingOpList.dependencies);\n operatorList.addOp(fn, tilingPatternIR);\n }, reason => {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorTilingPattern\n });\n (0, _util.warn)(`handleTilingType - ignoring pattern: \"${reason}\".`);\n return;\n }\n\n throw reason;\n });\n }\n\n handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) {\n var fontName,\n fontSize = 0;\n\n if (fontArgs) {\n fontArgs = fontArgs.slice();\n fontName = fontArgs[0].name;\n fontSize = fontArgs[1];\n }\n\n return this.loadFont(fontName, fontRef, resources).then(translated => {\n if (!translated.font.isType3Font) {\n return translated;\n }\n\n return translated.loadType3Data(this, resources, task).then(function () {\n operatorList.addDependencies(translated.type3Dependencies);\n return translated;\n }).catch(reason => {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadType3\n });\n return new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new _fonts.ErrorFont(`Type3 font load error: ${reason}`),\n dict: translated.font,\n extraProperties: this.options.fontExtraProperties\n });\n });\n }).then(translated => {\n state.font = translated.font;\n state.fontSize = fontSize;\n state.fontName = fontName;\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 = !!(state.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n\n if (isAddToPathSet || state.fillColorSpace.name === \"Pattern\" || font.disableFontFace || this.options.disableFontFace) {\n PartialEvaluator.buildFontPaths(font, glyphs, this.handler);\n }\n }\n\n return glyphs;\n }\n\n ensureStateFont(state) {\n if (state.font) {\n return;\n }\n\n const reason = new _util.FormatError(\"Missing setFont (Tf) operator before text rendering operator.\");\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontState\n });\n (0, _util.warn)(`ensureStateFont: \"${reason}\".`);\n return;\n }\n\n throw reason;\n }\n\n async setGState({\n resources,\n gState,\n operatorList,\n cacheKey,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache\n }) {\n const gStateRef = gState.objId;\n let isSimpleGState = true;\n var gStateObj = [];\n var gStateKeys = gState.getKeys();\n var promise = Promise.resolve();\n\n for (var i = 0, ii = gStateKeys.length; i < ii; i++) {\n const key = gStateKeys[i];\n const value = gState.get(key);\n\n switch (key) {\n case \"Type\":\n break;\n\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\n case \"Font\":\n isSimpleGState = false;\n promise = promise.then(() => {\n return this.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) {\n operatorList.addDependency(loadedName);\n gStateObj.push([key, [loadedName, value[1]]]);\n });\n });\n break;\n\n case \"BM\":\n gStateObj.push([key, normalizeBlendMode(value)]);\n break;\n\n case \"SMask\":\n if ((0, _primitives.isName)(value, \"None\")) {\n gStateObj.push([key, false]);\n break;\n }\n\n if ((0, _primitives.isDict)(value)) {\n isSimpleGState = false;\n promise = promise.then(() => {\n return this.handleSMask(value, resources, operatorList, task, stateManager, localColorSpaceCache);\n });\n gStateObj.push([key, true]);\n } else {\n (0, _util.warn)(\"Unsupported SMask type\");\n }\n\n break;\n\n case \"TR\":\n const transferMaps = this.handleTransferFunction(value);\n gStateObj.push([key, transferMaps]);\n break;\n\n case \"OP\":\n case \"op\":\n case \"OPM\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n case \"TR2\":\n case \"HT\":\n case \"SM\":\n case \"SA\":\n case \"AIS\":\n case \"TK\":\n (0, _util.info)(\"graphic state operator \" + key);\n break;\n\n default:\n (0, _util.info)(\"Unknown graphic state operator \" + key);\n break;\n }\n }\n\n return promise.then(function () {\n if (gStateObj.length > 0) {\n operatorList.addOp(_util.OPS.setGState, [gStateObj]);\n }\n\n if (isSimpleGState) {\n localGStateCache.set(cacheKey, gStateRef, gStateObj);\n }\n });\n }\n\n loadFont(fontName, font, resources) {\n const errorFont = () => {\n return Promise.resolve(new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new _fonts.ErrorFont(`Font \"${fontName}\" is not available.`),\n dict: font,\n extraProperties: this.options.fontExtraProperties\n }));\n };\n\n var fontRef,\n xref = this.xref;\n\n if (font) {\n if (!(0, _primitives.isRef)(font)) {\n throw new _util.FormatError('The \"font\" object should be a reference.');\n }\n\n fontRef = font;\n } else {\n var fontRes = resources.get(\"Font\");\n\n if (fontRes) {\n fontRef = fontRes.getRaw(fontName);\n }\n }\n\n if (!fontRef) {\n const partialMsg = `Font \"${fontName || font && font.toString()}\" is not available`;\n\n if (!this.options.ignoreErrors && !this.parsingType3Font) {\n (0, _util.warn)(`${partialMsg}.`);\n return errorFont();\n }\n\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontMissing\n });\n (0, _util.warn)(`${partialMsg} -- attempting to fallback to a default font.`);\n fontRef = PartialEvaluator.fallbackFontDict;\n }\n\n if (this.fontCache.has(fontRef)) {\n return this.fontCache.get(fontRef);\n }\n\n font = xref.fetchIfRef(fontRef);\n\n if (!(0, _primitives.isDict)(font)) {\n return errorFont();\n }\n\n if (font.translated) {\n return font.translated;\n }\n\n var fontCapability = (0, _util.createPromiseCapability)();\n var preEvaluatedFont = this.preEvaluateFont(font);\n const {\n descriptor,\n hash\n } = preEvaluatedFont;\n var fontRefIsRef = (0, _primitives.isRef)(fontRef),\n fontID;\n\n if (fontRefIsRef) {\n fontID = `f${fontRef.toString()}`;\n }\n\n if (hash && (0, _primitives.isDict)(descriptor)) {\n if (!descriptor.fontAliases) {\n descriptor.fontAliases = Object.create(null);\n }\n\n var fontAliases = descriptor.fontAliases;\n\n if (fontAliases[hash]) {\n var aliasFontRef = fontAliases[hash].aliasRef;\n\n if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n this.fontCache.putAlias(fontRef, aliasFontRef);\n return this.fontCache.get(fontRef);\n }\n } else {\n fontAliases[hash] = {\n fontID: this.idFactory.createFontId()\n };\n }\n\n if (fontRefIsRef) {\n fontAliases[hash].aliasRef = fontRef;\n }\n\n fontID = fontAliases[hash].fontID;\n }\n\n if (fontRefIsRef) {\n this.fontCache.put(fontRef, fontCapability.promise);\n } else {\n if (!fontID) {\n fontID = this.idFactory.createFontId();\n }\n\n this.fontCache.put(`id_${fontID}`, fontCapability.promise);\n }\n\n (0, _util.assert)(fontID && fontID.startsWith(\"f\"), 'The \"fontID\" must be (correctly) defined.');\n font.loadedName = `${this.idFactory.getDocId()}_${fontID}`;\n font.translated = fontCapability.promise;\n var translatedPromise;\n\n try {\n translatedPromise = this.translateFont(preEvaluatedFont);\n } catch (e) {\n translatedPromise = Promise.reject(e);\n }\n\n translatedPromise.then(translatedFont => {\n if (translatedFont.fontType !== undefined) {\n var xrefFontStats = xref.stats.fontTypes;\n xrefFontStats[translatedFont.fontType] = true;\n }\n\n fontCapability.resolve(new TranslatedFont({\n loadedName: font.loadedName,\n font: translatedFont,\n dict: font,\n extraProperties: this.options.fontExtraProperties\n }));\n }).catch(reason => {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontTranslate\n });\n\n try {\n var fontFile3 = descriptor && descriptor.get(\"FontFile3\");\n var subtype = fontFile3 && fontFile3.get(\"Subtype\");\n var fontType = (0, _fonts.getFontType)(preEvaluatedFont.type, subtype && subtype.name);\n var xrefFontStats = xref.stats.fontTypes;\n xrefFontStats[fontType] = true;\n } catch (ex) {}\n\n fontCapability.resolve(new TranslatedFont({\n loadedName: font.loadedName,\n font: new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason),\n dict: font,\n extraProperties: this.options.fontExtraProperties\n }));\n });\n return fontCapability.promise;\n }\n\n buildPath(operatorList, fn, args, parsingText = false) {\n var lastIndex = operatorList.length - 1;\n\n if (!args) {\n args = [];\n }\n\n if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) {\n if (parsingText) {\n (0, _util.warn)(`Encountered path operator \"${fn}\" inside of a text object.`);\n operatorList.addOp(_util.OPS.save, null);\n }\n\n operatorList.addOp(_util.OPS.constructPath, [[fn], args]);\n\n if (parsingText) {\n operatorList.addOp(_util.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({\n cs,\n resources,\n localColorSpaceCache\n }) {\n return _colorspace.ColorSpace.parseAsync({\n cs,\n xref: this.xref,\n resources,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache\n }).catch(reason => {\n if (reason instanceof _util.AbortException) {\n return null;\n }\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorColorSpace\n });\n (0, _util.warn)(`parseColorSpace - ignoring ColorSpace: \"${reason}\".`);\n return null;\n }\n\n throw reason;\n });\n }\n\n async handleColorN(operatorList, fn, args, cs, patterns, resources, task, localColorSpaceCache) {\n var patternName = args[args.length - 1];\n var pattern;\n\n if ((0, _primitives.isName)(patternName) && (pattern = patterns.get(patternName.name))) {\n var dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern;\n var typeNum = dict.get(\"PatternType\");\n\n if (typeNum === PatternType.TILING) {\n var color = cs.base ? cs.base.getRgb(args, 0) : null;\n return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task);\n } else if (typeNum === PatternType.SHADING) {\n var shading = dict.get(\"Shading\");\n var matrix = dict.getArray(\"Matrix\");\n pattern = _pattern.Pattern.parseShading(shading, matrix, this.xref, resources, this.handler, this._pdfFunctionFactory, localColorSpaceCache);\n operatorList.addOp(fn, pattern.getIR());\n return undefined;\n }\n\n throw new _util.FormatError(`Unknown PatternType: ${typeNum}`);\n }\n\n throw new _util.FormatError(`Unknown PatternName: ${patternName}`);\n }\n\n async parseMarkedContentProps(contentProperties, resources) {\n let optionalContent;\n\n if ((0, _primitives.isName)(contentProperties)) {\n const properties = resources.get(\"Properties\");\n optionalContent = properties.get(contentProperties.name);\n } else if ((0, _primitives.isDict)(contentProperties)) {\n optionalContent = contentProperties;\n } else {\n throw new _util.FormatError(\"Optional content properties malformed.\");\n }\n\n const optionalContentType = optionalContent.get(\"Type\").name;\n\n if (optionalContentType === \"OCG\") {\n return {\n type: optionalContentType,\n id: optionalContent.objId\n };\n } else if (optionalContentType === \"OCMD\") {\n const optionalContentGroups = optionalContent.get(\"OCGs\");\n\n if (Array.isArray(optionalContentGroups) || (0, _primitives.isDict)(optionalContentGroups)) {\n const groupIds = [];\n\n if (Array.isArray(optionalContentGroups)) {\n optionalContent.get(\"OCGs\").forEach(ocg => {\n groupIds.push(ocg.toString());\n });\n } else {\n groupIds.push(optionalContentGroups.objId);\n }\n\n let expression = null;\n\n if (optionalContent.get(\"VE\")) {\n expression = true;\n }\n\n return {\n type: optionalContentType,\n ids: groupIds,\n policy: (0, _primitives.isName)(optionalContent.get(\"P\")) ? optionalContent.get(\"P\").name : null,\n expression\n };\n } else if ((0, _primitives.isRef)(optionalContentGroups)) {\n return {\n type: optionalContentType,\n id: optionalContentGroups.toString()\n };\n }\n }\n\n return null;\n }\n\n getOperatorList({\n stream,\n task,\n resources,\n operatorList,\n initialState = null\n }) {\n resources = resources || _primitives.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 _image_utils.LocalImageCache();\n const localColorSpaceCache = new _image_utils.LocalColorSpaceCache();\n const localGStateCache = new _image_utils.LocalGStateCache();\n\n var xobjs = resources.get(\"XObject\") || _primitives.Dict.empty;\n\n var patterns = resources.get(\"Pattern\") || _primitives.Dict.empty;\n\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(_util.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\n task.ensureNotTerminated();\n timeSlotManager.reset();\n var stop,\n operation = {},\n i,\n ii,\n cs,\n name;\n\n while (!(stop = timeSlotManager.check())) {\n operation.args = null;\n\n if (!preprocessor.read(operation)) {\n break;\n }\n\n var args = operation.args;\n var fn = operation.fn;\n\n switch (fn | 0) {\n case _util.OPS.paintXObject:\n name = args[0].name;\n\n if (name) {\n const localImage = localImageCache.getByName(name);\n\n if (localImage) {\n operatorList.addOp(localImage.fn, localImage.args);\n args = null;\n continue;\n }\n }\n\n next(new Promise(function (resolveXObject, rejectXObject) {\n if (!name) {\n throw new _util.FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n\n if (xobj instanceof _primitives.Ref) {\n const localImage = localImageCache.getByRef(xobj);\n\n if (localImage) {\n operatorList.addOp(localImage.fn, localImage.args);\n resolveXObject();\n return;\n }\n\n const globalImage = self.globalImageCache.getData(xobj, self.pageIndex);\n\n if (globalImage) {\n operatorList.addDependency(globalImage.objId);\n operatorList.addOp(globalImage.fn, globalImage.args);\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!(0, _primitives.isStream)(xobj)) {\n throw new _util.FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name === \"Form\") {\n stateManager.save();\n self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone(), localColorSpaceCache).then(function () {\n stateManager.restore();\n resolveXObject();\n }, rejectXObject);\n return;\n } else if (type.name === \"Image\") {\n self.buildPaintImageXObject({\n resources,\n image: xobj,\n operatorList,\n cacheKey: name,\n localImageCache,\n localColorSpaceCache\n }).then(resolveXObject, rejectXObject);\n return;\n } else if (type.name === \"PS\") {\n (0, _util.info)(\"Ignored XObject subtype PS\");\n } else {\n throw new _util.FormatError(`Unhandled XObject subtype ${type.name}`);\n }\n\n resolveXObject();\n }).catch(function (reason) {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (self.options.ignoreErrors) {\n self.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorXObject\n });\n (0, _util.warn)(`getOperatorList - ignoring XObject: \"${reason}\".`);\n return;\n }\n\n throw reason;\n }));\n return;\n\n case _util.OPS.setFont:\n var fontSize = args[1];\n next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state).then(function (loadedName) {\n operatorList.addDependency(loadedName);\n operatorList.addOp(_util.OPS.setFont, [loadedName, fontSize]);\n }));\n return;\n\n case _util.OPS.beginText:\n parsingText = true;\n break;\n\n case _util.OPS.endText:\n parsingText = false;\n break;\n\n case _util.OPS.endInlineImage:\n var cacheKey = args[0].cacheKey;\n\n if (cacheKey) {\n const localImage = localImageCache.getByName(cacheKey);\n\n if (localImage) {\n operatorList.addOp(localImage.fn, localImage.args);\n args = null;\n continue;\n }\n }\n\n next(self.buildPaintImageXObject({\n resources,\n image: args[0],\n isInline: true,\n operatorList,\n cacheKey,\n localImageCache,\n localColorSpaceCache\n }));\n return;\n\n case _util.OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n args[0] = self.handleText(args[0], stateManager.state);\n break;\n\n case _util.OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n var arr = args[0];\n var combinedGlyphs = [];\n var arrLength = arr.length;\n var state = stateManager.state;\n\n for (i = 0; i < arrLength; ++i) {\n var arrItem = arr[i];\n\n if ((0, _util.isString)(arrItem)) {\n Array.prototype.push.apply(combinedGlyphs, self.handleText(arrItem, state));\n } else if ((0, _util.isNum)(arrItem)) {\n combinedGlyphs.push(arrItem);\n }\n }\n\n args[0] = combinedGlyphs;\n fn = _util.OPS.showText;\n break;\n\n case _util.OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n operatorList.addOp(_util.OPS.nextLine);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = _util.OPS.showText;\n break;\n\n case _util.OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n operatorList.addOp(_util.OPS.nextLine);\n operatorList.addOp(_util.OPS.setWordSpacing, [args.shift()]);\n operatorList.addOp(_util.OPS.setCharSpacing, [args.shift()]);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = _util.OPS.showText;\n break;\n\n case _util.OPS.setTextRenderingMode:\n stateManager.state.textRenderingMode = args[0];\n break;\n\n case _util.OPS.setFillColorSpace:\n {\n const cachedColorSpace = _colorspace.ColorSpace.getCached(args[0], xref, localColorSpaceCache);\n\n if (cachedColorSpace) {\n stateManager.state.fillColorSpace = cachedColorSpace;\n continue;\n }\n\n next(self.parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache\n }).then(function (colorSpace) {\n if (colorSpace) {\n stateManager.state.fillColorSpace = colorSpace;\n }\n }));\n return;\n }\n\n case _util.OPS.setStrokeColorSpace:\n {\n const cachedColorSpace = _colorspace.ColorSpace.getCached(args[0], xref, localColorSpaceCache);\n\n if (cachedColorSpace) {\n stateManager.state.strokeColorSpace = cachedColorSpace;\n continue;\n }\n\n next(self.parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache\n }).then(function (colorSpace) {\n if (colorSpace) {\n stateManager.state.strokeColorSpace = colorSpace;\n }\n }));\n return;\n }\n\n case _util.OPS.setFillColor:\n cs = stateManager.state.fillColorSpace;\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n\n case _util.OPS.setStrokeColor:\n cs = stateManager.state.strokeColorSpace;\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n\n case _util.OPS.setFillGray:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n\n case _util.OPS.setStrokeGray:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n\n case _util.OPS.setFillCMYKColor:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n\n case _util.OPS.setStrokeCMYKColor:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n\n case _util.OPS.setFillRGBColor:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.rgb;\n args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.rgb;\n args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n\n case _util.OPS.setFillColorN:\n cs = stateManager.state.fillColorSpace;\n\n if (cs.name === \"Pattern\") {\n next(self.handleColorN(operatorList, _util.OPS.setFillColorN, args, cs, patterns, resources, task, localColorSpaceCache));\n return;\n }\n\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n\n case _util.OPS.setStrokeColorN:\n cs = stateManager.state.strokeColorSpace;\n\n if (cs.name === \"Pattern\") {\n next(self.handleColorN(operatorList, _util.OPS.setStrokeColorN, args, cs, patterns, resources, task, localColorSpaceCache));\n return;\n }\n\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n\n case _util.OPS.shadingFill:\n var shadingRes = resources.get(\"Shading\");\n\n if (!shadingRes) {\n throw new _util.FormatError(\"No shading resource found\");\n }\n\n var shading = shadingRes.get(args[0].name);\n\n if (!shading) {\n throw new _util.FormatError(\"No shading object found\");\n }\n\n var shadingFill = _pattern.Pattern.parseShading(shading, null, xref, resources, self.handler, self._pdfFunctionFactory, localColorSpaceCache);\n\n var patternIR = shadingFill.getIR();\n args = [patternIR];\n fn = _util.OPS.shadingFill;\n break;\n\n case _util.OPS.setGState:\n name = args[0].name;\n\n if (name) {\n const localGStateObj = localGStateCache.getByName(name);\n\n if (localGStateObj) {\n if (localGStateObj.length > 0) {\n operatorList.addOp(_util.OPS.setGState, [localGStateObj]);\n }\n\n args = null;\n continue;\n }\n }\n\n next(new Promise(function (resolveGState, rejectGState) {\n if (!name) {\n throw new _util.FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n\n if (!(extGState instanceof _primitives.Dict)) {\n throw new _util.FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n\n if (!(gState instanceof _primitives.Dict)) {\n throw new _util.FormatError(\"GState should be a dictionary.\");\n }\n\n self.setGState({\n resources,\n gState,\n operatorList,\n cacheKey: name,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache\n }).then(resolveGState, rejectGState);\n }).catch(function (reason) {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (self.options.ignoreErrors) {\n self.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorExtGState\n });\n (0, _util.warn)(`getOperatorList - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n\n throw reason;\n }));\n return;\n\n case _util.OPS.moveTo:\n case _util.OPS.lineTo:\n case _util.OPS.curveTo:\n case _util.OPS.curveTo2:\n case _util.OPS.curveTo3:\n case _util.OPS.closePath:\n case _util.OPS.rectangle:\n self.buildPath(operatorList, fn, args, parsingText);\n continue;\n\n case _util.OPS.markPoint:\n case _util.OPS.markPointProps:\n case _util.OPS.beginCompat:\n case _util.OPS.endCompat:\n continue;\n\n case _util.OPS.beginMarkedContentProps:\n if (!(0, _primitives.isName)(args[0])) {\n (0, _util.warn)(`Expected name for beginMarkedContentProps arg0=${args[0]}`);\n continue;\n }\n\n if (args[0].name === \"OC\") {\n next(self.parseMarkedContentProps(args[1], resources).then(data => {\n operatorList.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", data]);\n }).catch(reason => {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (self.options.ignoreErrors) {\n self.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorMarkedContent\n });\n (0, _util.warn)(`getOperatorList - ignoring beginMarkedContentProps: \"${reason}\".`);\n return;\n }\n\n throw reason;\n }));\n return;\n }\n\n args = [args[0].name];\n break;\n\n case _util.OPS.beginMarkedContent:\n case _util.OPS.endMarkedContent:\n default:\n if (args !== null) {\n for (i = 0, ii = args.length; i < ii; i++) {\n if (args[i] instanceof _primitives.Dict) {\n break;\n }\n }\n\n if (i < ii) {\n (0, _util.warn)(\"getOperatorList - ignoring operator: \" + fn);\n continue;\n }\n }\n\n }\n\n operatorList.addOp(fn, args);\n }\n\n if (stop) {\n next(deferred);\n return;\n }\n\n closePendingRestoreOPS();\n resolve();\n }).catch(reason => {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList\n });\n (0, _util.warn)(`getOperatorList - ignoring errors during \"${task.name}\" ` + `task: \"${reason}\".`);\n closePendingRestoreOPS();\n return;\n }\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 resources = resources || _primitives.Dict.empty;\n stateManager = stateManager || new StateManager(new TextState());\n var WhitespaceRegexp = /\\s/g;\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 var self = this;\n var xref = this.xref;\n var xobjs = null;\n const emptyXObjectCache = new _image_utils.LocalImageCache();\n const emptyGStateCache = new _image_utils.LocalGStateCache();\n var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n var textState;\n\n function ensureTextContentItem() {\n if (textContentItem.initialized) {\n return textContentItem;\n }\n\n var font = textState.font;\n\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\n textContentItem.fontName = font.loadedName;\n var tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise];\n\n if (font.isType3Font && textState.fontSize <= 1 && !(0, _util.isArrayEqual)(textState.fontMatrix, _util.FONT_IDENTITY_MATRIX)) {\n const glyphHeight = font.bbox[3] - font.bbox[1];\n\n if (glyphHeight > 0) {\n tsm[3] *= glyphHeight * textState.fontMatrix[3];\n }\n }\n\n var trm = _util.Util.transform(textState.ctm, _util.Util.transform(textState.textMatrix, tsm));\n\n textContentItem.transform = trm;\n\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 var spaceWidth = font.spaceWidth / 1000 * textState.fontSize;\n\n if (spaceWidth) {\n textContentItem.spaceWidth = spaceWidth;\n textContentItem.fakeSpaceMin = spaceWidth * SPACE_FACTOR;\n textContentItem.fakeMultiSpaceMin = spaceWidth * MULTI_SPACE_FACTOR;\n textContentItem.fakeMultiSpaceMax = spaceWidth * MULTI_SPACE_FACTOR_MAX;\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 var i = 0,\n ii = str.length,\n code;\n\n while (i < ii && (code = str.charCodeAt(i)) >= 0x20 && code <= 0x7f) {\n i++;\n }\n\n return i < ii ? str.replace(WhitespaceRegexp, \" \") : str;\n }\n\n function runBidiTransform(textChunk) {\n var str = textChunk.str.join(\"\");\n var bidiResult = (0, _bidi.bidi)(str, -1, textChunk.vertical);\n return {\n str: normalizeWhitespace ? replaceWhitespace(bidiResult.str) : 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.loadFont(fontName, fontRef, resources).then(function (translated) {\n textState.font = translated.font;\n textState.fontMatrix = translated.font.fontMatrix || _util.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\n for (var i = 0; i < glyphs.length; i++) {\n var glyph = glyphs[i];\n var glyphWidth = null;\n\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 = (0, _unicode.getNormalizedUnicodes)();\n\n if (NormalizedUnicodes[glyphUnicode] !== undefined) {\n glyphUnicode = NormalizedUnicodes[glyphUnicode];\n }\n\n glyphUnicode = (0, _unicode.reverseIfRtl)(glyphUnicode);\n var charSpacing = textState.charSpacing;\n\n if (glyph.isSpace) {\n var wordSpacing = textState.wordSpacing;\n charSpacing += wordSpacing;\n\n if (wordSpacing > 0) {\n addFakeSpaces(wordSpacing, textChunk.str);\n }\n }\n\n var tx = 0;\n var ty = 0;\n\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\n textState.translateTextMatrix(tx, ty);\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\n if (width < textContentItem.fakeMultiSpaceMin) {\n strBuf.push(\" \");\n return;\n }\n\n var fakeSpaces = Math.round(width / textContentItem.spaceWidth);\n\n while (fakeSpaces-- > 0) {\n strBuf.push(\" \");\n }\n }\n\n function flushTextContentItem() {\n if (!textContentItem.initialized) {\n return;\n }\n\n if (!textContentItem.vertical) {\n textContentItem.width *= textContentItem.textAdvanceScale;\n } else {\n textContentItem.height *= textContentItem.textAdvanceScale;\n }\n\n textContent.items.push(runBidiTransform(textContentItem));\n textContentItem.initialized = false;\n textContentItem.str.length = 0;\n }\n\n function enqueueChunk() {\n const length = textContent.items.length;\n\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 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\n task.ensureNotTerminated();\n timeSlotManager.reset();\n var stop,\n operation = {},\n args = [];\n\n while (!(stop = timeSlotManager.check())) {\n args.length = 0;\n operation.args = args;\n\n if (!preprocessor.read(operation)) {\n break;\n }\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 _util.OPS.setFont:\n var fontNameArg = args[0].name,\n fontSizeArg = args[1];\n\n if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) {\n break;\n }\n\n flushTextContentItem();\n textState.fontName = fontNameArg;\n textState.fontSize = fontSizeArg;\n next(handleSetFont(fontNameArg, null));\n return;\n\n case _util.OPS.setTextRise:\n flushTextContentItem();\n textState.textRise = args[0];\n break;\n\n case _util.OPS.setHScale:\n flushTextContentItem();\n textState.textHScale = args[0] / 100;\n break;\n\n case _util.OPS.setLeading:\n flushTextContentItem();\n textState.leading = args[0];\n break;\n\n case _util.OPS.moveText:\n var isSameTextLine = !textState.font ? false : (textState.font.vertical ? args[0] : args[1]) === 0;\n advance = args[0] - args[1];\n\n if (combineTextItems && isSameTextLine && textContentItem.initialized && advance > 0 && advance <= textContentItem.fakeMultiSpaceMax) {\n textState.translateTextLineMatrix(args[0], args[1]);\n textContentItem.width += args[0] - textContentItem.lastAdvanceWidth;\n textContentItem.height += args[1] - textContentItem.lastAdvanceHeight;\n diff = args[0] - textContentItem.lastAdvanceWidth - (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\n case _util.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\n case _util.OPS.nextLine:\n flushTextContentItem();\n textState.carriageReturn();\n break;\n\n case _util.OPS.setTextMatrix:\n advance = textState.calcTextLineMatrixAdvance(args[0], args[1], args[2], args[3], args[4], args[5]);\n\n if (combineTextItems && advance !== null && textContentItem.initialized && advance.value > 0 && advance.value <= textContentItem.fakeMultiSpaceMax) {\n textState.translateTextLineMatrix(advance.width, advance.height);\n textContentItem.width += advance.width - textContentItem.lastAdvanceWidth;\n textContentItem.height += advance.height - textContentItem.lastAdvanceHeight;\n diff = advance.width - textContentItem.lastAdvanceWidth - (advance.height - textContentItem.lastAdvanceHeight);\n addFakeSpaces(diff, textContentItem.str);\n break;\n }\n\n flushTextContentItem();\n textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setCharSpacing:\n textState.charSpacing = args[0];\n break;\n\n case _util.OPS.setWordSpacing:\n textState.wordSpacing = args[0];\n break;\n\n case _util.OPS.beginText:\n flushTextContentItem();\n textState.textMatrix = _util.IDENTITY_MATRIX.slice();\n textState.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n break;\n\n case _util.OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n var items = args[0];\n var offset;\n\n for (var j = 0, jj = items.length; j < jj; j++) {\n if (typeof items[j] === \"string\") {\n buildTextContentItem(items[j]);\n } else if ((0, _util.isNum)(items[j])) {\n ensureTextContentItem();\n advance = items[j] * textState.fontSize / 1000;\n var breakTextRun = false;\n\n if (textState.font.vertical) {\n offset = advance;\n textState.translateTextMatrix(0, offset);\n breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n\n if (!breakTextRun) {\n textContentItem.height += offset;\n }\n } else {\n advance = -advance;\n offset = advance * textState.textHScale;\n textState.translateTextMatrix(offset, 0);\n breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n\n if (!breakTextRun) {\n textContentItem.width += offset;\n }\n }\n\n if (breakTextRun) {\n flushTextContentItem();\n } else if (advance > 0) {\n addFakeSpaces(advance, textContentItem.str);\n }\n }\n }\n\n break;\n\n case _util.OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n buildTextContentItem(args[0]);\n break;\n\n case _util.OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n flushTextContentItem();\n textState.carriageReturn();\n buildTextContentItem(args[0]);\n break;\n\n case _util.OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n flushTextContentItem();\n textState.wordSpacing = args[0];\n textState.charSpacing = args[1];\n textState.carriageReturn();\n buildTextContentItem(args[2]);\n break;\n\n case _util.OPS.paintXObject:\n flushTextContentItem();\n\n if (!xobjs) {\n xobjs = resources.get(\"XObject\") || _primitives.Dict.empty;\n }\n\n var name = args[0].name;\n\n if (name && emptyXObjectCache.getByName(name)) {\n break;\n }\n\n next(new Promise(function (resolveXObject, rejectXObject) {\n if (!name) {\n throw new _util.FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n\n if (xobj instanceof _primitives.Ref) {\n if (emptyXObjectCache.getByRef(xobj)) {\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!(0, _primitives.isStream)(xobj)) {\n throw new _util.FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name !== \"Form\") {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n resolveXObject();\n return;\n }\n\n const currentState = stateManager.state.clone();\n const xObjStateManager = new StateManager(currentState);\n const matrix = xobj.dict.getArray(\"Matrix\");\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n xObjStateManager.transform(matrix);\n }\n\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.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 }).then(function () {\n if (!sinkWrapper.enqueueInvoked) {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n }\n\n resolveXObject();\n }, rejectXObject);\n }).catch(function (reason) {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (self.options.ignoreErrors) {\n (0, _util.warn)(`getTextContent - ignoring XObject: \"${reason}\".`);\n return;\n }\n\n throw reason;\n }));\n return;\n\n case _util.OPS.setGState:\n name = args[0].name;\n\n if (name && emptyGStateCache.getByName(name)) {\n break;\n }\n\n next(new Promise(function (resolveGState, rejectGState) {\n if (!name) {\n throw new _util.FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n\n if (!(extGState instanceof _primitives.Dict)) {\n throw new _util.FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n\n if (!(gState instanceof _primitives.Dict)) {\n throw new _util.FormatError(\"GState should be a dictionary.\");\n }\n\n const gStateFont = gState.get(\"Font\");\n\n if (!gStateFont) {\n emptyGStateCache.set(name, gState.objId, true);\n resolveGState();\n return;\n }\n\n flushTextContentItem();\n textState.fontName = null;\n textState.fontSize = gStateFont[1];\n handleSetFont(null, gStateFont[0]).then(resolveGState, rejectGState);\n }).catch(function (reason) {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (self.options.ignoreErrors) {\n (0, _util.warn)(`getTextContent - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n\n throw reason;\n }));\n return;\n }\n\n if (textContent.items.length >= sink.desiredSize) {\n stop = true;\n break;\n }\n }\n\n if (stop) {\n next(deferred);\n return;\n }\n\n flushTextContentItem();\n enqueueChunk();\n resolve();\n }).catch(reason => {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (this.options.ignoreErrors) {\n (0, _util.warn)(`getTextContent - ignoring errors during \"${task.name}\" ` + `task: \"${reason}\".`);\n flushTextContentItem();\n enqueueChunk();\n return;\n }\n\n throw reason;\n });\n }\n\n extractDataStructures(dict, baseDict, properties) {\n const xref = this.xref;\n let cidToGidBytes;\n var toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined);\n\n if (properties.composite) {\n var cidSystemInfo = dict.get(\"CIDSystemInfo\");\n\n if ((0, _primitives.isDict)(cidSystemInfo)) {\n properties.cidSystemInfo = {\n registry: (0, _util.stringToPDFString)(cidSystemInfo.get(\"Registry\")),\n ordering: (0, _util.stringToPDFString)(cidSystemInfo.get(\"Ordering\")),\n supplement: cidSystemInfo.get(\"Supplement\")\n };\n }\n\n var cidToGidMap = dict.get(\"CIDToGIDMap\");\n\n if ((0, _primitives.isStream)(cidToGidMap)) {\n cidToGidBytes = cidToGidMap.getBytes();\n }\n }\n\n var differences = [];\n var baseEncodingName = null;\n var encoding;\n\n if (dict.has(\"Encoding\")) {\n encoding = dict.get(\"Encoding\");\n\n if ((0, _primitives.isDict)(encoding)) {\n baseEncodingName = encoding.get(\"BaseEncoding\");\n baseEncodingName = (0, _primitives.isName)(baseEncodingName) ? baseEncodingName.name : null;\n\n if (encoding.has(\"Differences\")) {\n var diffEncoding = encoding.get(\"Differences\");\n var index = 0;\n\n for (var j = 0, jj = diffEncoding.length; j < jj; j++) {\n var data = xref.fetchIfRef(diffEncoding[j]);\n\n if ((0, _util.isNum)(data)) {\n index = data;\n } else if ((0, _primitives.isName)(data)) {\n differences[index++] = data.name;\n } else {\n throw new _util.FormatError(`Invalid entry in 'Differences' array: ${data}`);\n }\n }\n }\n } else if ((0, _primitives.isName)(encoding)) {\n baseEncodingName = encoding.name;\n } else {\n throw new _util.FormatError(\"Encoding is not a Name nor a Dict\");\n }\n\n if (baseEncodingName !== \"MacRomanEncoding\" && baseEncodingName !== \"MacExpertEncoding\" && baseEncodingName !== \"WinAnsiEncoding\") {\n baseEncodingName = null;\n }\n }\n\n if (baseEncodingName) {\n properties.defaultEncoding = (0, _encodings.getEncoding)(baseEncodingName).slice();\n } else {\n var isSymbolicFont = !!(properties.flags & _fonts.FontFlags.Symbolic);\n var isNonsymbolicFont = !!(properties.flags & _fonts.FontFlags.Nonsymbolic);\n encoding = _encodings.StandardEncoding;\n\n if (properties.type === \"TrueType\" && !isNonsymbolicFont) {\n encoding = _encodings.WinAnsiEncoding;\n }\n\n if (isSymbolicFont) {\n encoding = _encodings.MacRomanEncoding;\n\n if (!properties.file) {\n if (/Symbol/i.test(properties.name)) {\n encoding = _encodings.SymbolSetEncoding;\n } else if (/Dingbats|Wingdings/i.test(properties.name)) {\n encoding = _encodings.ZapfDingbatsEncoding;\n }\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.then(readToUnicode => {\n properties.toUnicode = readToUnicode;\n return this.buildToUnicode(properties);\n }).then(builtToUnicode => {\n properties.toUnicode = builtToUnicode;\n\n if (cidToGidBytes) {\n properties.cidToGidMap = this.readCidToGidMap(cidToGidBytes, builtToUnicode);\n }\n\n return properties;\n });\n }\n\n _buildSimpleFontToUnicode(properties, forceGlyphs = false) {\n (0, _util.assert)(!properties.composite, \"Must be a simple font.\");\n const toUnicode = [];\n const encoding = properties.defaultEncoding.slice();\n const baseEncodingName = properties.baseEncodingName;\n const differences = properties.differences;\n\n for (const charcode in differences) {\n const glyphName = differences[charcode];\n\n if (glyphName === \".notdef\") {\n continue;\n }\n\n encoding[charcode] = glyphName;\n }\n\n const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n for (const charcode in encoding) {\n let glyphName = encoding[charcode];\n\n if (glyphName === \"\") {\n continue;\n } else if (glyphsUnicodeMap[glyphName] === undefined) {\n let code = 0;\n\n switch (glyphName[0]) {\n case \"G\":\n if (glyphName.length === 3) {\n code = parseInt(glyphName.substring(1), 16);\n }\n\n break;\n\n case \"g\":\n if (glyphName.length === 5) {\n code = parseInt(glyphName.substring(1), 16);\n }\n\n break;\n\n case \"C\":\n case \"c\":\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\n code = +codeStr;\n\n if (Number.isNaN(code) && Number.isInteger(parseInt(codeStr, 16))) {\n return this._buildSimpleFontToUnicode(properties, true);\n }\n }\n\n break;\n\n default:\n const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n if (unicode !== -1) {\n code = unicode;\n }\n\n }\n\n if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {\n if (baseEncodingName && code === +charcode) {\n const baseEncoding = (0, _encodings.getEncoding)(baseEncodingName);\n\n if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n continue;\n }\n }\n\n toUnicode[charcode] = String.fromCodePoint(code);\n }\n\n continue;\n }\n\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n }\n\n return new _fonts.ToUnicodeMap(toUnicode);\n }\n\n buildToUnicode(properties) {\n properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0;\n\n if (properties.hasIncludedToUnicodeMap) {\n if (!properties.composite && properties.hasEncoding) {\n properties.fallbackToUnicode = this._buildSimpleFontToUnicode(properties);\n }\n\n return Promise.resolve(properties.toUnicode);\n }\n\n if (!properties.composite) {\n return Promise.resolve(this._buildSimpleFontToUnicode(properties));\n }\n\n if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof _cmap.IdentityCMap) || properties.cidSystemInfo.registry === \"Adobe\" && (properties.cidSystemInfo.ordering === \"GB1\" || properties.cidSystemInfo.ordering === \"CNS1\" || properties.cidSystemInfo.ordering === \"Japan1\" || properties.cidSystemInfo.ordering === \"Korea1\"))) {\n const registry = properties.cidSystemInfo.registry;\n const ordering = properties.cidSystemInfo.ordering;\n\n const ucs2CMapName = _primitives.Name.get(registry + \"-\" + ordering + \"-UCS2\");\n\n return _cmap.CMapFactory.create({\n encoding: ucs2CMapName,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\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 _util.FormatError(\"Max size of CID is 65,535\");\n }\n\n const ucs2 = ucs2CMap.lookup(cid);\n\n if (ucs2) {\n toUnicode[charcode] = String.fromCharCode((ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1));\n }\n });\n return new _fonts.ToUnicodeMap(toUnicode);\n });\n }\n\n return Promise.resolve(new _fonts.IdentityToUnicodeMap(properties.firstChar, properties.lastChar));\n }\n\n readToUnicode(toUnicode) {\n var cmapObj = toUnicode;\n\n if ((0, _primitives.isName)(cmapObj)) {\n return _cmap.CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null\n }).then(function (cmap) {\n if (cmap instanceof _cmap.IdentityCMap) {\n return new _fonts.IdentityToUnicodeMap(0, 0xffff);\n }\n\n return new _fonts.ToUnicodeMap(cmap.getMap());\n });\n } else if ((0, _primitives.isStream)(cmapObj)) {\n return _cmap.CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null\n }).then(function (cmap) {\n if (cmap instanceof _cmap.IdentityCMap) {\n return new _fonts.IdentityToUnicodeMap(0, 0xffff);\n }\n\n var map = new Array(cmap.length);\n cmap.forEach(function (charCode, token) {\n var str = [];\n\n for (var k = 0; k < token.length; k += 2) {\n var w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n\n if ((w1 & 0xf800) !== 0xd800) {\n str.push(w1);\n continue;\n }\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\n map[charCode] = String.fromCodePoint.apply(String, str);\n });\n return new _fonts.ToUnicodeMap(map);\n }, reason => {\n if (reason instanceof _util.AbortException) {\n return null;\n }\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontToUnicode\n });\n (0, _util.warn)(`readToUnicode - ignoring ToUnicode data: \"${reason}\".`);\n return null;\n }\n\n throw reason;\n });\n }\n\n return Promise.resolve(null);\n }\n\n readCidToGidMap(glyphsData, toUnicode) {\n var result = [];\n\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\n if (glyphID === 0 && !toUnicode.has(code)) {\n continue;\n }\n\n result[code] = glyphID;\n }\n\n return result;\n }\n\n extractWidths(dict, descriptor, properties) {\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\n if (properties.composite) {\n defaultWidth = dict.has(\"DW\") ? dict.get(\"DW\") : 1000;\n widths = dict.get(\"W\");\n\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\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\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\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\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsVMetrics[start++] = [xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j])];\n }\n } else {\n var vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), 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\n if (widths) {\n j = firstChar;\n\n for (i = 0, ii = widths.length; i < ii; i++) {\n glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n }\n\n defaultWidth = parseFloat(descriptor.get(\"MissingWidth\")) || 0;\n } else {\n var baseFontName = dict.get(\"BaseFont\");\n\n if ((0, _primitives.isName)(baseFontName)) {\n var metrics = this.getBaseFontMetrics(baseFontName.name);\n glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n defaultWidth = metrics.defaultWidth;\n }\n }\n }\n\n var isMonospace = true;\n var firstWidth = defaultWidth;\n\n for (var glyph in glyphsWidths) {\n var glyphWidth = glyphsWidths[glyph];\n\n if (!glyphWidth) {\n continue;\n }\n\n if (!firstWidth) {\n firstWidth = glyphWidth;\n continue;\n }\n\n if (firstWidth !== glyphWidth) {\n isMonospace = false;\n break;\n }\n }\n\n if (isMonospace) {\n properties.flags |= _fonts.FontFlags.FixedPitch;\n }\n\n properties.defaultWidth = defaultWidth;\n properties.widths = glyphsWidths;\n properties.defaultVMetrics = defaultVMetrics;\n properties.vmetrics = glyphsVMetrics;\n }\n\n isSerifFont(baseFontName) {\n var fontNameWoStyle = baseFontName.split(\"-\")[0];\n return fontNameWoStyle in (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1;\n }\n\n getBaseFontMetrics(name) {\n var defaultWidth = 0;\n var widths = [];\n var monospace = false;\n var stdFontMap = (0, _standard_fonts.getStdFontMap)();\n var lookupName = stdFontMap[name] || name;\n var Metrics = (0, _metrics.getMetrics)();\n\n if (!(lookupName in Metrics)) {\n if (this.isSerifFont(name)) {\n lookupName = \"Times-Roman\";\n } else {\n lookupName = \"Helvetica\";\n }\n }\n\n var glyphWidths = Metrics[lookupName];\n\n if ((0, _util.isNum)(glyphWidths)) {\n defaultWidth = glyphWidths;\n monospace = true;\n } else {\n widths = glyphWidths();\n }\n\n return {\n defaultWidth,\n monospace,\n widths\n };\n }\n\n buildCharCodeToWidth(widthsByGlyphName, properties) {\n var widths = Object.create(null);\n var differences = properties.differences;\n var encoding = properties.defaultEncoding;\n\n for (var charCode = 0; charCode < 256; charCode++) {\n if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n widths[charCode] = widthsByGlyphName[differences[charCode]];\n continue;\n }\n\n if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n widths[charCode] = widthsByGlyphName[encoding[charCode]];\n continue;\n }\n }\n\n return widths;\n }\n\n preEvaluateFont(dict) {\n var baseDict = dict;\n var type = dict.get(\"Subtype\");\n\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError(\"invalid font Subtype\");\n }\n\n var composite = false;\n var uint8array;\n\n if (type.name === \"Type0\") {\n var df = dict.get(\"DescendantFonts\");\n\n if (!df) {\n throw new _util.FormatError(\"Descendant fonts are not specified\");\n }\n\n dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n type = dict.get(\"Subtype\");\n\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError(\"invalid font Subtype\");\n }\n\n composite = true;\n }\n\n var descriptor = dict.get(\"FontDescriptor\");\n\n if (descriptor) {\n var hash = new _murmurhash.MurmurHash3_64();\n var encoding = baseDict.getRaw(\"Encoding\");\n\n if ((0, _primitives.isName)(encoding)) {\n hash.update(encoding.name);\n } else if ((0, _primitives.isRef)(encoding)) {\n hash.update(encoding.toString());\n } else if ((0, _primitives.isDict)(encoding)) {\n for (const entry of encoding.getRawValues()) {\n if ((0, _primitives.isName)(entry)) {\n hash.update(entry.name);\n } else if ((0, _primitives.isRef)(entry)) {\n hash.update(entry.toString());\n } else if (Array.isArray(entry)) {\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\n if ((0, _primitives.isName)(diffEntry)) {\n diffBuf[j] = diffEntry.name;\n } else if ((0, _util.isNum)(diffEntry) || (0, _primitives.isRef)(diffEntry)) {\n diffBuf[j] = diffEntry.toString();\n }\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 var toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n\n if ((0, _primitives.isStream)(toUnicode)) {\n var stream = toUnicode.str || toUnicode;\n uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start);\n hash.update(uint8array);\n } else if ((0, _primitives.isName)(toUnicode)) {\n hash.update(toUnicode.name);\n }\n\n var widths = dict.get(\"Widths\") || baseDict.get(\"Widths\");\n\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(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 descriptor = new _primitives.Dict(null);\n descriptor.set(\"FontName\", _primitives.Name.get(type));\n descriptor.set(\"FontBBox\", dict.getArray(\"FontBBox\") || [0, 0, 0, 0]);\n } else {\n var baseFontName = dict.get(\"BaseFont\");\n\n if (!(0, _primitives.isName)(baseFontName)) {\n throw new _util.FormatError(\"Base font is not specified\");\n }\n\n baseFontName = baseFontName.name.replace(/[,_]/g, \"-\");\n var metrics = this.getBaseFontMetrics(baseFontName);\n var fontNameWoStyle = baseFontName.split(\"-\")[0];\n var flags = (this.isSerifFont(fontNameWoStyle) ? _fonts.FontFlags.Serif : 0) | (metrics.monospace ? _fonts.FontFlags.FixedPitch : 0) | ((0, _standard_fonts.getSymbolsFonts)()[fontNameWoStyle] ? _fonts.FontFlags.Symbolic : _fonts.FontFlags.Nonsymbolic);\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(newProperties => {\n if (widths) {\n const glyphWidths = [];\n let j = firstChar;\n\n for (let i = 0, ii = widths.length; i < ii; i++) {\n glyphWidths[j++] = this.xref.fetchIfRef(widths[i]);\n }\n\n newProperties.widths = glyphWidths;\n } else {\n newProperties.widths = this.buildCharCodeToWidth(metrics.widths, newProperties);\n }\n\n return new _fonts.Font(baseFontName, null, newProperties);\n });\n }\n }\n\n var fontName = descriptor.get(\"FontName\");\n var baseFont = dict.get(\"BaseFont\");\n\n if ((0, _util.isString)(fontName)) {\n fontName = _primitives.Name.get(fontName);\n }\n\n if ((0, _util.isString)(baseFont)) {\n baseFont = _primitives.Name.get(baseFont);\n }\n\n if (type !== \"Type3\") {\n var fontNameStr = fontName && fontName.name;\n var baseFontStr = baseFont && baseFont.name;\n\n if (fontNameStr !== baseFontStr) {\n (0, _util.info)(`The FontDescriptor\\'s FontName is \"${fontNameStr}\" but ` + `should be the same as the Font\\'s BaseFont \"${baseFontStr}\".`);\n\n if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) {\n fontName = baseFont;\n }\n }\n }\n\n fontName = fontName || baseFont;\n\n if (!(0, _primitives.isName)(fontName)) {\n throw new _util.FormatError(\"invalid font name\");\n }\n\n var fontFile = descriptor.get(\"FontFile\", \"FontFile2\", \"FontFile3\");\n\n if (fontFile) {\n if (fontFile.dict) {\n var subtype = fontFile.dict.get(\"Subtype\");\n\n if (subtype) {\n subtype = subtype.name;\n }\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\") || _util.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 var cMapPromise;\n\n if (composite) {\n var cidEncoding = baseDict.get(\"Encoding\");\n\n if ((0, _primitives.isName)(cidEncoding)) {\n properties.cidEncoding = cidEncoding.name;\n }\n\n cMapPromise = _cmap.CMapFactory.create({\n encoding: cidEncoding,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\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.then(() => {\n return this.extractDataStructures(dict, baseDict, properties);\n }).then(newProperties => {\n this.extractWidths(dict, descriptor, newProperties);\n\n if (type === \"Type3\") {\n newProperties.isType3Font = true;\n }\n\n return new _fonts.Font(fontName.name, fontFile, newProperties);\n });\n }\n\n static buildFontPaths(font, glyphs, handler) {\n function buildPath(fontChar) {\n if (font.renderer.hasBuiltPath(fontChar)) {\n return;\n }\n\n handler.send(\"commonobj\", [`${font.loadedName}_path_${fontChar}`, \"FontPath\", font.renderer.getPathJs(fontChar)]);\n }\n\n for (const glyph of glyphs) {\n buildPath(glyph.fontChar);\n const accent = glyph.accent;\n\n if (accent && accent.fontChar) {\n buildPath(accent.fontChar);\n }\n }\n }\n\n static get fallbackFontDict() {\n const dict = new _primitives.Dict();\n dict.set(\"BaseFont\", _primitives.Name.get(\"PDFJS-FallbackFont\"));\n dict.set(\"Type\", _primitives.Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", _primitives.Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", _primitives.Name.get(\"WinAnsiEncoding\"));\n return (0, _util.shadow)(this, \"fallbackFontDict\", dict);\n }\n\n}\n\nexports.PartialEvaluator = PartialEvaluator;\n\nclass TranslatedFont {\n constructor({\n loadedName,\n font,\n dict,\n extraProperties = false\n }) {\n this.loadedName = loadedName;\n this.font = font;\n this.dict = dict;\n this._extraProperties = extraProperties;\n this.type3Loaded = null;\n this.type3Dependencies = font.isType3Font ? new Set() : null;\n this.sent = false;\n }\n\n send(handler) {\n if (this.sent) {\n return;\n }\n\n this.sent = true;\n handler.send(\"commonobj\", [this.loadedName, \"Font\", this.font.exportData(this._extraProperties)]);\n }\n\n fallback(handler) {\n if (!this.font.data) {\n return;\n }\n\n this.font.disableFontFace = true;\n const glyphs = this.font.glyphCacheValues;\n PartialEvaluator.buildFontPaths(this.font, glyphs, handler);\n }\n\n loadType3Data(evaluator, resources, task) {\n if (this.type3Loaded) {\n return this.type3Loaded;\n }\n\n if (!this.font.isType3Font) {\n throw new Error(\"Must be a Type3 font.\");\n }\n\n var type3Options = Object.create(evaluator.options);\n type3Options.ignoreErrors = false;\n var type3Evaluator = evaluator.clone(type3Options);\n type3Evaluator.parsingType3Font = true;\n const translatedFont = this.font,\n type3Dependencies = this.type3Dependencies;\n var loadCharProcsPromise = Promise.resolve();\n var charProcs = this.dict.get(\"CharProcs\");\n var fontResources = this.dict.get(\"Resources\") || resources;\n var charProcOperatorList = Object.create(null);\n\n for (const key of charProcs.getKeys()) {\n loadCharProcsPromise = loadCharProcsPromise.then(function () {\n var glyphStream = charProcs.get(key);\n var operatorList = new _operator_list.OperatorList();\n return type3Evaluator.getOperatorList({\n stream: glyphStream,\n task,\n resources: fontResources,\n operatorList\n }).then(function () {\n charProcOperatorList[key] = operatorList.getIR();\n\n for (const dependency of operatorList.dependencies) {\n type3Dependencies.add(dependency);\n }\n }).catch(function (reason) {\n (0, _util.warn)(`Type3 font resource \"${key}\" is not available.`);\n const dummyOperatorList = new _operator_list.OperatorList();\n charProcOperatorList[key] = dummyOperatorList.getIR();\n });\n });\n }\n\n this.type3Loaded = loadCharProcsPromise.then(function () {\n translatedFont.charProcOperatorList = charProcOperatorList;\n });\n return this.type3Loaded;\n }\n\n}\n\nclass StateManager {\n constructor(initialState) {\n this.state = initialState;\n this.stateStack = [];\n }\n\n save() {\n var old = this.state;\n this.stateStack.push(this.state);\n this.state = old.clone();\n }\n\n restore() {\n var prev = this.stateStack.pop();\n\n if (prev) {\n this.state = prev;\n }\n }\n\n transform(args) {\n this.state.ctm = _util.Util.transform(this.state.ctm, args);\n }\n\n}\n\nclass TextState {\n constructor() {\n this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n this.fontName = null;\n this.fontSize = 0;\n this.font = null;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.textMatrix = _util.IDENTITY_MATRIX.slice();\n this.textLineMatrix = _util.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 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\n setTextLineMatrix(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\n 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\n translateTextLineMatrix(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\n calcTextLineMatrixAdvance(a, b, c, d, e, f) {\n var font = this.font;\n\n if (!font) {\n return null;\n }\n\n var m = this.textLineMatrix;\n\n if (!(a === m[0] && b === m[1] && c === m[2] && d === m[3])) {\n return null;\n }\n\n var txDiff = e - m[4],\n tyDiff = f - m[5];\n\n if (font.vertical && txDiff !== 0 || !font.vertical && tyDiff !== 0) {\n return null;\n }\n\n var tx,\n ty,\n denominator = a * d - b * c;\n\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\n return {\n width: tx,\n height: ty,\n value: font.vertical ? ty : tx\n };\n }\n\n calcRenderMatrix(ctm) {\n var tsm = [this.fontSize * this.textHScale, 0, 0, this.fontSize, 0, this.textRise];\n return _util.Util.transform(ctm, _util.Util.transform(this.textMatrix, tsm));\n }\n\n carriageReturn() {\n this.translateTextLineMatrix(0, -this.leading);\n this.textMatrix = this.textLineMatrix.slice();\n }\n\n 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}\n\nclass EvalState {\n constructor() {\n this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n this.font = null;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n this.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n }\n\n clone() {\n return Object.create(this);\n }\n\n}\n\nclass EvaluatorPreprocessor {\n static get opMap() {\n const getOPMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.w = {\n id: _util.OPS.setLineWidth,\n numArgs: 1,\n variableArgs: false\n };\n t.J = {\n id: _util.OPS.setLineCap,\n numArgs: 1,\n variableArgs: false\n };\n t.j = {\n id: _util.OPS.setLineJoin,\n numArgs: 1,\n variableArgs: false\n };\n t.M = {\n id: _util.OPS.setMiterLimit,\n numArgs: 1,\n variableArgs: false\n };\n t.d = {\n id: _util.OPS.setDash,\n numArgs: 2,\n variableArgs: false\n };\n t.ri = {\n id: _util.OPS.setRenderingIntent,\n numArgs: 1,\n variableArgs: false\n };\n t.i = {\n id: _util.OPS.setFlatness,\n numArgs: 1,\n variableArgs: false\n };\n t.gs = {\n id: _util.OPS.setGState,\n numArgs: 1,\n variableArgs: false\n };\n t.q = {\n id: _util.OPS.save,\n numArgs: 0,\n variableArgs: false\n };\n t.Q = {\n id: _util.OPS.restore,\n numArgs: 0,\n variableArgs: false\n };\n t.cm = {\n id: _util.OPS.transform,\n numArgs: 6,\n variableArgs: false\n };\n t.m = {\n id: _util.OPS.moveTo,\n numArgs: 2,\n variableArgs: false\n };\n t.l = {\n id: _util.OPS.lineTo,\n numArgs: 2,\n variableArgs: false\n };\n t.c = {\n id: _util.OPS.curveTo,\n numArgs: 6,\n variableArgs: false\n };\n t.v = {\n id: _util.OPS.curveTo2,\n numArgs: 4,\n variableArgs: false\n };\n t.y = {\n id: _util.OPS.curveTo3,\n numArgs: 4,\n variableArgs: false\n };\n t.h = {\n id: _util.OPS.closePath,\n numArgs: 0,\n variableArgs: false\n };\n t.re = {\n id: _util.OPS.rectangle,\n numArgs: 4,\n variableArgs: false\n };\n t.S = {\n id: _util.OPS.stroke,\n numArgs: 0,\n variableArgs: false\n };\n t.s = {\n id: _util.OPS.closeStroke,\n numArgs: 0,\n variableArgs: false\n };\n t.f = {\n id: _util.OPS.fill,\n numArgs: 0,\n variableArgs: false\n };\n t.F = {\n id: _util.OPS.fill,\n numArgs: 0,\n variableArgs: false\n };\n t[\"f*\"] = {\n id: _util.OPS.eoFill,\n numArgs: 0,\n variableArgs: false\n };\n t.B = {\n id: _util.OPS.fillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t[\"B*\"] = {\n id: _util.OPS.eoFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t.b = {\n id: _util.OPS.closeFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t[\"b*\"] = {\n id: _util.OPS.closeEOFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t.n = {\n id: _util.OPS.endPath,\n numArgs: 0,\n variableArgs: false\n };\n t.W = {\n id: _util.OPS.clip,\n numArgs: 0,\n variableArgs: false\n };\n t[\"W*\"] = {\n id: _util.OPS.eoClip,\n numArgs: 0,\n variableArgs: false\n };\n t.BT = {\n id: _util.OPS.beginText,\n numArgs: 0,\n variableArgs: false\n };\n t.ET = {\n id: _util.OPS.endText,\n numArgs: 0,\n variableArgs: false\n };\n t.Tc = {\n id: _util.OPS.setCharSpacing,\n numArgs: 1,\n variableArgs: false\n };\n t.Tw = {\n id: _util.OPS.setWordSpacing,\n numArgs: 1,\n variableArgs: false\n };\n t.Tz = {\n id: _util.OPS.setHScale,\n numArgs: 1,\n variableArgs: false\n };\n t.TL = {\n id: _util.OPS.setLeading,\n numArgs: 1,\n variableArgs: false\n };\n t.Tf = {\n id: _util.OPS.setFont,\n numArgs: 2,\n variableArgs: false\n };\n t.Tr = {\n id: _util.OPS.setTextRenderingMode,\n numArgs: 1,\n variableArgs: false\n };\n t.Ts = {\n id: _util.OPS.setTextRise,\n numArgs: 1,\n variableArgs: false\n };\n t.Td = {\n id: _util.OPS.moveText,\n numArgs: 2,\n variableArgs: false\n };\n t.TD = {\n id: _util.OPS.setLeadingMoveText,\n numArgs: 2,\n variableArgs: false\n };\n t.Tm = {\n id: _util.OPS.setTextMatrix,\n numArgs: 6,\n variableArgs: false\n };\n t[\"T*\"] = {\n id: _util.OPS.nextLine,\n numArgs: 0,\n variableArgs: false\n };\n t.Tj = {\n id: _util.OPS.showText,\n numArgs: 1,\n variableArgs: false\n };\n t.TJ = {\n id: _util.OPS.showSpacedText,\n numArgs: 1,\n variableArgs: false\n };\n t[\"'\"] = {\n id: _util.OPS.nextLineShowText,\n numArgs: 1,\n variableArgs: false\n };\n t['\"'] = {\n id: _util.OPS.nextLineSetSpacingShowText,\n numArgs: 3,\n variableArgs: false\n };\n t.d0 = {\n id: _util.OPS.setCharWidth,\n numArgs: 2,\n variableArgs: false\n };\n t.d1 = {\n id: _util.OPS.setCharWidthAndBounds,\n numArgs: 6,\n variableArgs: false\n };\n t.CS = {\n id: _util.OPS.setStrokeColorSpace,\n numArgs: 1,\n variableArgs: false\n };\n t.cs = {\n id: _util.OPS.setFillColorSpace,\n numArgs: 1,\n variableArgs: false\n };\n t.SC = {\n id: _util.OPS.setStrokeColor,\n numArgs: 4,\n variableArgs: true\n };\n t.SCN = {\n id: _util.OPS.setStrokeColorN,\n numArgs: 33,\n variableArgs: true\n };\n t.sc = {\n id: _util.OPS.setFillColor,\n numArgs: 4,\n variableArgs: true\n };\n t.scn = {\n id: _util.OPS.setFillColorN,\n numArgs: 33,\n variableArgs: true\n };\n t.G = {\n id: _util.OPS.setStrokeGray,\n numArgs: 1,\n variableArgs: false\n };\n t.g = {\n id: _util.OPS.setFillGray,\n numArgs: 1,\n variableArgs: false\n };\n t.RG = {\n id: _util.OPS.setStrokeRGBColor,\n numArgs: 3,\n variableArgs: false\n };\n t.rg = {\n id: _util.OPS.setFillRGBColor,\n numArgs: 3,\n variableArgs: false\n };\n t.K = {\n id: _util.OPS.setStrokeCMYKColor,\n numArgs: 4,\n variableArgs: false\n };\n t.k = {\n id: _util.OPS.setFillCMYKColor,\n numArgs: 4,\n variableArgs: false\n };\n t.sh = {\n id: _util.OPS.shadingFill,\n numArgs: 1,\n variableArgs: false\n };\n t.BI = {\n id: _util.OPS.beginInlineImage,\n numArgs: 0,\n variableArgs: false\n };\n t.ID = {\n id: _util.OPS.beginImageData,\n numArgs: 0,\n variableArgs: false\n };\n t.EI = {\n id: _util.OPS.endInlineImage,\n numArgs: 1,\n variableArgs: false\n };\n t.Do = {\n id: _util.OPS.paintXObject,\n numArgs: 1,\n variableArgs: false\n };\n t.MP = {\n id: _util.OPS.markPoint,\n numArgs: 1,\n variableArgs: false\n };\n t.DP = {\n id: _util.OPS.markPointProps,\n numArgs: 2,\n variableArgs: false\n };\n t.BMC = {\n id: _util.OPS.beginMarkedContent,\n numArgs: 1,\n variableArgs: false\n };\n t.BDC = {\n id: _util.OPS.beginMarkedContentProps,\n numArgs: 2,\n variableArgs: false\n };\n t.EMC = {\n id: _util.OPS.endMarkedContent,\n numArgs: 0,\n variableArgs: false\n };\n t.BX = {\n id: _util.OPS.beginCompat,\n numArgs: 0,\n variableArgs: false\n };\n t.EX = {\n id: _util.OPS.endCompat,\n numArgs: 0,\n variableArgs: false\n };\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 return (0, _util.shadow)(this, \"opMap\", getOPMap());\n }\n\n static get MAX_INVALID_PATH_OPS() {\n return (0, _util.shadow)(this, \"MAX_INVALID_PATH_OPS\", 20);\n }\n\n constructor(stream, xref, stateManager) {\n this.parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream, EvaluatorPreprocessor.opMap),\n xref\n });\n this.stateManager = stateManager;\n this.nonProcessedArgs = [];\n this._numInvalidPathOPS = 0;\n }\n\n get savedStatesDepth() {\n return this.stateManager.stateStack.length;\n }\n\n read(operation) {\n var args = operation.args;\n\n while (true) {\n var obj = this.parser.getObj();\n\n if (obj instanceof _primitives.Cmd) {\n var cmd = obj.cmd;\n var opSpec = EvaluatorPreprocessor.opMap[cmd];\n\n if (!opSpec) {\n (0, _util.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 if (argsLength !== numArgs) {\n var nonProcessedArgs = this.nonProcessedArgs;\n\n while (argsLength > numArgs) {\n nonProcessedArgs.push(args.shift());\n argsLength--;\n }\n\n while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n if (args === null) {\n args = [];\n }\n\n args.unshift(nonProcessedArgs.pop());\n argsLength++;\n }\n }\n\n if (argsLength < numArgs) {\n const partialMsg = `command ${cmd}: expected ${numArgs} args, ` + `but received ${argsLength} args.`;\n\n if (fn >= _util.OPS.moveTo && fn <= _util.OPS.endPath && ++this._numInvalidPathOPS > EvaluatorPreprocessor.MAX_INVALID_PATH_OPS) {\n throw new _util.FormatError(`Invalid ${partialMsg}`);\n }\n\n (0, _util.warn)(`Skipping ${partialMsg}`);\n\n if (args !== null) {\n args.length = 0;\n }\n\n continue;\n }\n } else if (argsLength > numArgs) {\n (0, _util.info)(`Command ${cmd}: expected [0, ${numArgs}] args, ` + `but received ${argsLength} args.`);\n }\n\n this.preprocessCommand(fn, args);\n operation.fn = fn;\n operation.args = args;\n return true;\n }\n\n if (obj === _primitives.EOF) {\n return false;\n }\n\n if (obj !== null) {\n if (args === null) {\n args = [];\n }\n\n args.push(obj);\n\n if (args.length > 33) {\n throw new _util.FormatError(\"Too many arguments\");\n }\n }\n }\n }\n\n preprocessCommand(fn, args) {\n switch (fn | 0) {\n case _util.OPS.save:\n this.stateManager.save();\n break;\n\n case _util.OPS.restore:\n this.stateManager.restore();\n break;\n\n case _util.OPS.transform:\n this.stateManager.transform(args);\n break;\n }\n }\n\n}\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CMapFactory = exports.IdentityCMap = exports.CMap = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar BUILT_IN_CMAPS = [\"Adobe-GB1-UCS2\", \"Adobe-CNS1-UCS2\", \"Adobe-Japan1-UCS2\", \"Adobe-Korea1-UCS2\", \"78-EUC-H\", \"78-EUC-V\", \"78-H\", \"78-RKSJ-H\", \"78-RKSJ-V\", \"78-V\", \"78ms-RKSJ-H\", \"78ms-RKSJ-V\", \"83pv-RKSJ-H\", \"90ms-RKSJ-H\", \"90ms-RKSJ-V\", \"90msp-RKSJ-H\", \"90msp-RKSJ-V\", \"90pv-RKSJ-H\", \"90pv-RKSJ-V\", \"Add-H\", \"Add-RKSJ-H\", \"Add-RKSJ-V\", \"Add-V\", \"Adobe-CNS1-0\", \"Adobe-CNS1-1\", \"Adobe-CNS1-2\", \"Adobe-CNS1-3\", \"Adobe-CNS1-4\", \"Adobe-CNS1-5\", \"Adobe-CNS1-6\", \"Adobe-GB1-0\", \"Adobe-GB1-1\", \"Adobe-GB1-2\", \"Adobe-GB1-3\", \"Adobe-GB1-4\", \"Adobe-GB1-5\", \"Adobe-Japan1-0\", \"Adobe-Japan1-1\", \"Adobe-Japan1-2\", \"Adobe-Japan1-3\", \"Adobe-Japan1-4\", \"Adobe-Japan1-5\", \"Adobe-Japan1-6\", \"Adobe-Korea1-0\", \"Adobe-Korea1-1\", \"Adobe-Korea1-2\", \"B5-H\", \"B5-V\", \"B5pc-H\", \"B5pc-V\", \"CNS-EUC-H\", \"CNS-EUC-V\", \"CNS1-H\", \"CNS1-V\", \"CNS2-H\", \"CNS2-V\", \"ETHK-B5-H\", \"ETHK-B5-V\", \"ETen-B5-H\", \"ETen-B5-V\", \"ETenms-B5-H\", \"ETenms-B5-V\", \"EUC-H\", \"EUC-V\", \"Ext-H\", \"Ext-RKSJ-H\", \"Ext-RKSJ-V\", \"Ext-V\", \"GB-EUC-H\", \"GB-EUC-V\", \"GB-H\", \"GB-V\", \"GBK-EUC-H\", \"GBK-EUC-V\", \"GBK2K-H\", \"GBK2K-V\", \"GBKp-EUC-H\", \"GBKp-EUC-V\", \"GBT-EUC-H\", \"GBT-EUC-V\", \"GBT-H\", \"GBT-V\", \"GBTpc-EUC-H\", \"GBTpc-EUC-V\", \"GBpc-EUC-H\", \"GBpc-EUC-V\", \"H\", \"HKdla-B5-H\", \"HKdla-B5-V\", \"HKdlb-B5-H\", \"HKdlb-B5-V\", \"HKgccs-B5-H\", \"HKgccs-B5-V\", \"HKm314-B5-H\", \"HKm314-B5-V\", \"HKm471-B5-H\", \"HKm471-B5-V\", \"HKscs-B5-H\", \"HKscs-B5-V\", \"Hankaku\", \"Hiragana\", \"KSC-EUC-H\", \"KSC-EUC-V\", \"KSC-H\", \"KSC-Johab-H\", \"KSC-Johab-V\", \"KSC-V\", \"KSCms-UHC-H\", \"KSCms-UHC-HW-H\", \"KSCms-UHC-HW-V\", \"KSCms-UHC-V\", \"KSCpc-EUC-H\", \"KSCpc-EUC-V\", \"Katakana\", \"NWP-H\", \"NWP-V\", \"RKSJ-H\", \"RKSJ-V\", \"Roman\", \"UniCNS-UCS2-H\", \"UniCNS-UCS2-V\", \"UniCNS-UTF16-H\", \"UniCNS-UTF16-V\", \"UniCNS-UTF32-H\", \"UniCNS-UTF32-V\", \"UniCNS-UTF8-H\", \"UniCNS-UTF8-V\", \"UniGB-UCS2-H\", \"UniGB-UCS2-V\", \"UniGB-UTF16-H\", \"UniGB-UTF16-V\", \"UniGB-UTF32-H\", \"UniGB-UTF32-V\", \"UniGB-UTF8-H\", \"UniGB-UTF8-V\", \"UniJIS-UCS2-H\", \"UniJIS-UCS2-HW-H\", \"UniJIS-UCS2-HW-V\", \"UniJIS-UCS2-V\", \"UniJIS-UTF16-H\", \"UniJIS-UTF16-V\", \"UniJIS-UTF32-H\", \"UniJIS-UTF32-V\", \"UniJIS-UTF8-H\", \"UniJIS-UTF8-V\", \"UniJIS2004-UTF16-H\", \"UniJIS2004-UTF16-V\", \"UniJIS2004-UTF32-H\", \"UniJIS2004-UTF32-V\", \"UniJIS2004-UTF8-H\", \"UniJIS2004-UTF8-V\", \"UniJISPro-UCS2-HW-V\", \"UniJISPro-UCS2-V\", \"UniJISPro-UTF8-V\", \"UniJISX0213-UTF32-H\", \"UniJISX0213-UTF32-V\", \"UniJISX02132004-UTF32-H\", \"UniJISX02132004-UTF32-V\", \"UniKS-UCS2-H\", \"UniKS-UCS2-V\", \"UniKS-UTF16-H\", \"UniKS-UTF16-V\", \"UniKS-UTF32-H\", \"UniKS-UTF32-V\", \"UniKS-UTF8-H\", \"UniKS-UTF8-V\", \"V\", \"WP-Symbol\"];\nconst MAX_MAP_RANGE = 2 ** 24 - 1;\n\nclass CMap {\n constructor(builtInCMap = false) {\n this.codespaceRanges = [[], [], [], []];\n this.numCodespaceRanges = 0;\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\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\n var lastByte = dstLow.length - 1;\n\n while (low <= high) {\n this._map[low++] = dstLow;\n dstLow = dstLow.substring(0, lastByte) + 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\n const ii = array.length;\n let i = 0;\n\n while (low <= high && i < ii) {\n this._map[low] = array[i++];\n ++low;\n }\n }\n\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 const map = this._map;\n const length = map.length;\n\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 const map = this._map;\n\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\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\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;\n const codespaceRange = codespaceRanges[n];\n\n for (let k = 0, kk = codespaceRange.length; k < kk;) {\n const low = codespaceRange[k++];\n const high = codespaceRange[k++];\n\n if (c >= low && c <= high) {\n out.charcode = c;\n out.length = n + 1;\n return;\n }\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\n if (this._map.length !== 0x10000) {\n return false;\n }\n\n for (let i = 0; i < 0x10000; i++) {\n if (this._map[i] !== i) {\n return false;\n }\n }\n\n return true;\n }\n\n}\n\nexports.CMap = CMap;\n\nclass IdentityCMap extends CMap {\n constructor(vertical, n) {\n super();\n this.vertical = vertical;\n this.addCodespaceRange(n, 0, 0xffff);\n }\n\n mapCidRange(low, high, dstLow) {\n (0, _util.unreachable)(\"should not call mapCidRange\");\n }\n\n mapBfRange(low, high, dstLow) {\n (0, _util.unreachable)(\"should not call mapBfRange\");\n }\n\n mapBfRangeToArray(low, high, array) {\n (0, _util.unreachable)(\"should not call mapBfRangeToArray\");\n }\n\n mapOne(src, dst) {\n (0, _util.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 const map = new Array(0x10000);\n\n for (let i = 0; i <= 0xffff; i++) {\n map[i] = i;\n }\n\n return map;\n }\n\n get length() {\n return 0x10000;\n }\n\n get isIdentityCMap() {\n (0, _util.unreachable)(\"should not access .isIdentityCMap\");\n }\n\n}\n\nexports.IdentityCMap = IdentityCMap;\n\nvar BinaryCMapReader = function BinaryCMapReaderClosure() {\n function hexToInt(a, size) {\n var n = 0;\n\n for (var i = 0; i <= size; i++) {\n n = n << 8 | a[i];\n }\n\n return n >>> 0;\n }\n\n function hexToStr(a, size) {\n if (size === 1) {\n return String.fromCharCode(a[0], a[1]);\n }\n\n if (size === 3) {\n return String.fromCharCode(a[0], a[1], a[2], a[3]);\n }\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\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\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;\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\n return this.buffer[this.pos++];\n },\n\n readNumber() {\n var n = 0;\n var last;\n\n do {\n var b = this.readByte();\n\n if (b < 0) {\n throw new _util.FormatError(\"unexpected EOF in bcmap\");\n }\n\n last = !(b & 0x80);\n n = n << 7 | b & 0x7f;\n } while (!last);\n\n return n;\n },\n\n readSigned() {\n var n = this.readNumber();\n return n & 1 ? ~(n >>> 1) : n >>> 1;\n },\n\n readHex(num, size) {\n num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n this.pos += size + 1;\n },\n\n readHexNumber(num, size) {\n var last;\n var stack = this.tmpBuf,\n sp = 0;\n\n do {\n var b = this.readByte();\n\n if (b < 0) {\n throw new _util.FormatError(\"unexpected EOF in bcmap\");\n }\n\n last = !(b & 0x80);\n stack[sp++] = b & 0x7f;\n } while (!last);\n\n var i = size,\n buffer = 0,\n bufferSize = 0;\n\n while (i >= 0) {\n while (bufferSize < 8 && stack.length > 0) {\n buffer = stack[--sp] << bufferSize | buffer;\n bufferSize += 7;\n }\n\n num[i] = buffer & 255;\n i--;\n buffer >>= 8;\n bufferSize -= 8;\n }\n },\n\n readHexSigned(num, size) {\n this.readHexNumber(num, size);\n var sign = num[size] & 1 ? 255 : 0;\n var c = 0;\n\n for (var i = 0; i <= size; i++) {\n c = (c & 1) << 8 | num[i];\n num[i] = c >> 1 ^ sign;\n }\n },\n\n readString() {\n var len = this.readNumber();\n var s = \"\";\n\n for (var i = 0; i < len; i++) {\n s += String.fromCharCode(this.readNumber());\n }\n\n return s;\n }\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 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 var b;\n\n while ((b = stream.readByte()) >= 0) {\n var type = b >> 5;\n\n if (type === 7) {\n switch (b & 0x1f) {\n case 0:\n stream.readString();\n break;\n\n case 1:\n useCMap = stream.readString();\n break;\n }\n\n continue;\n }\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\n switch (type) {\n case 0:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), 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(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n }\n\n break;\n\n case 1:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber();\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 stream.readNumber();\n }\n\n break;\n\n case 2:\n stream.readHex(char, dataSize);\n code = stream.readNumber();\n cMap.mapOne(hexToInt(char, dataSize), code);\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(char, dataSize);\n\n if (!sequence) {\n stream.readHexNumber(tmp, dataSize);\n addHex(char, tmp, dataSize);\n }\n\n code = stream.readSigned() + (code + 1);\n cMap.mapOne(hexToInt(char, dataSize), code);\n }\n\n break;\n\n case 3:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n\n if (!sequence) {\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n } else {\n start.set(end);\n }\n\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n }\n\n break;\n\n case 4:\n stream.readHex(char, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(char, ucs2DataSize);\n\n if (!sequence) {\n stream.readHexNumber(tmp, ucs2DataSize);\n addHex(char, tmp, ucs2DataSize);\n }\n\n incHex(charCode, dataSize);\n stream.readHexSigned(tmp, dataSize);\n addHex(charCode, tmp, dataSize);\n cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n }\n\n break;\n\n case 5:\n stream.readHex(start, ucs2DataSize);\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, ucs2DataSize);\n\n if (!sequence) {\n stream.readHexNumber(start, ucs2DataSize);\n addHex(start, end, ucs2DataSize);\n } else {\n start.set(end);\n }\n\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n }\n\n break;\n\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\n resolve(cMap);\n });\n }\n\n function BinaryCMapReader() {}\n\n BinaryCMapReader.prototype = {\n process: processBinaryCMap\n };\n return BinaryCMapReader;\n}();\n\nvar CMapFactory = function CMapFactoryClosure() {\n function strToInt(str) {\n var a = 0;\n\n for (var i = 0; i < str.length; i++) {\n a = a << 8 | str.charCodeAt(i);\n }\n\n return a >>> 0;\n }\n\n function expectString(obj) {\n if (!(0, _util.isString)(obj)) {\n throw new _util.FormatError(\"Malformed CMap: expected string.\");\n }\n }\n\n function expectInt(obj) {\n if (!Number.isInteger(obj)) {\n throw new _util.FormatError(\"Malformed CMap: expected int.\");\n }\n }\n\n function parseBfChar(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endbfchar\")) {\n return;\n }\n\n expectString(obj);\n var src = strToInt(obj);\n obj = lexer.getObj();\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\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endbfrange\")) {\n return;\n }\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\n if (Number.isInteger(obj) || (0, _util.isString)(obj)) {\n var dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n cMap.mapBfRange(low, high, dstLow);\n } else if ((0, _primitives.isCmd)(obj, \"[\")) {\n obj = lexer.getObj();\n var array = [];\n\n while (!(0, _primitives.isCmd)(obj, \"]\") && !(0, _primitives.isEOF)(obj)) {\n array.push(obj);\n obj = lexer.getObj();\n }\n\n cMap.mapBfRangeToArray(low, high, array);\n } else {\n break;\n }\n }\n\n throw new _util.FormatError(\"Invalid bf range.\");\n }\n\n function parseCidChar(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endcidchar\")) {\n return;\n }\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\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endcidrange\")) {\n return;\n }\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\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endcodespacerange\")) {\n return;\n }\n\n if (!(0, _util.isString)(obj)) {\n break;\n }\n\n var low = strToInt(obj);\n obj = lexer.getObj();\n\n if (!(0, _util.isString)(obj)) {\n break;\n }\n\n var high = strToInt(obj);\n cMap.addCodespaceRange(obj.length, low, high);\n }\n\n throw new _util.FormatError(\"Invalid codespace range.\");\n }\n\n function parseWMode(cMap, lexer) {\n var obj = lexer.getObj();\n\n if (Number.isInteger(obj)) {\n cMap.vertical = !!obj;\n }\n }\n\n function parseCMapName(cMap, lexer) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isName)(obj) && (0, _util.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\n objLoop: while (true) {\n try {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n } else if ((0, _primitives.isName)(obj)) {\n if (obj.name === \"WMode\") {\n parseWMode(cMap, lexer);\n } else if (obj.name === \"CMapName\") {\n parseCMapName(cMap, lexer);\n }\n\n previous = obj;\n } else if ((0, _primitives.isCmd)(obj)) {\n switch (obj.cmd) {\n case \"endcmap\":\n break objLoop;\n\n case \"usecmap\":\n if ((0, _primitives.isName)(previous)) {\n embeddedUseCMap = previous.name;\n }\n\n break;\n\n case \"begincodespacerange\":\n parseCodespaceRange(cMap, lexer);\n break;\n\n case \"beginbfchar\":\n parseBfChar(cMap, lexer);\n break;\n\n case \"begincidchar\":\n parseCidChar(cMap, lexer);\n break;\n\n case \"beginbfrange\":\n parseBfRange(cMap, lexer);\n break;\n\n case \"begincidrange\":\n parseCidRange(cMap, lexer);\n break;\n }\n }\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(\"Invalid cMap data: \" + ex);\n continue;\n }\n }\n\n if (!useCMap && embeddedUseCMap) {\n useCMap = embeddedUseCMap;\n }\n\n if (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n }\n\n return Promise.resolve(cMap);\n }\n\n function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n return createBuiltInCMap(useCMap, fetchBuiltInCMap).then(function (newCMap) {\n cMap.useCMap = newCMap;\n\n if (cMap.numCodespaceRanges === 0) {\n var useCodespaceRanges = cMap.useCMap.codespaceRanges;\n\n for (var i = 0; i < useCodespaceRanges.length; i++) {\n cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n }\n\n cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n }\n\n cMap.useCMap.forEach(function (key, value) {\n if (!cMap.contains(key)) {\n cMap.mapOne(key, cMap.useCMap.lookup(key));\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\n if (!BUILT_IN_CMAPS.includes(name)) {\n return Promise.reject(new Error(\"Unknown CMap name: \" + name));\n }\n\n if (!fetchBuiltInCMap) {\n return Promise.reject(new Error(\"Built-in CMap parameters are not provided.\"));\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 === _util.CMapCompressionType.BINARY) {\n return new BinaryCMapReader().process(cMapData, cMap, function (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n });\n }\n\n if (compressionType === _util.CMapCompressionType.NONE) {\n var lexer = new _parser.Lexer(new _stream.Stream(cMapData));\n return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n }\n\n return Promise.reject(new Error(\"TODO: Only BINARY/NONE CMap compression is currently supported.\"));\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 ((0, _primitives.isName)(encoding)) {\n return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n } else if ((0, _primitives.isStream)(encoding)) {\n var cMap = new CMap();\n var lexer = new _parser.Lexer(encoding);\n return parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap).then(function (parsedCMap) {\n if (parsedCMap.isIdentityCMap) {\n return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n }\n\n return parsedCMap;\n });\n }\n\n throw new Error(\"Encoding required.\");\n }\n\n };\n}();\n\nexports.CMapFactory = CMapFactory;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFontType = getFontType;\nexports.IdentityToUnicodeMap = exports.ToUnicodeMap = exports.FontFlags = exports.Font = exports.ErrorFont = exports.SEAC_ANALYSIS_ENABLED = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cff_parser = __w_pdfjs_require__(31);\n\nvar _glyphlist = __w_pdfjs_require__(34);\n\nvar _encodings = __w_pdfjs_require__(33);\n\nvar _standard_fonts = __w_pdfjs_require__(35);\n\nvar _unicode = __w_pdfjs_require__(36);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _font_renderer = __w_pdfjs_require__(37);\n\nvar _cmap = __w_pdfjs_require__(29);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _type1_parser = __w_pdfjs_require__(38);\n\nconst PRIVATE_USE_AREAS = [[0xe000, 0xf8ff], [0x100000, 0x10fffd]];\nvar PDF_GLYPH_SPACE_UNITS = 1000;\nvar SEAC_ANALYSIS_ENABLED = true;\nexports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED;\nconst EXPORT_DATA_PROPERTIES = [\"ascent\", \"bbox\", \"black\", \"bold\", \"charProcOperatorList\", \"composite\", \"data\", \"defaultVMetrics\", \"defaultWidth\", \"descent\", \"fallbackName\", \"fontMatrix\", \"fontType\", \"isMonospace\", \"isSerifFont\", \"isType3Font\", \"italic\", \"loadedName\", \"mimetype\", \"missingFile\", \"name\", \"remeasure\", \"subtype\", \"type\", \"vertical\"];\nconst EXPORT_DATA_EXTRA_PROPERTIES = [\"cMap\", \"defaultEncoding\", \"differences\", \"isSymbolicFont\", \"seacMap\", \"toFontChar\", \"toUnicode\", \"vmetrics\", \"widths\"];\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};\nexports.FontFlags = FontFlags;\nvar MacStandardGlyphOrdering = [\".notdef\", \".null\", \"nonmarkingreturn\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\", \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\", \"nonbreakingspace\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"Lslash\", \"lslash\", \"Scaron\", \"scaron\", \"Zcaron\", \"zcaron\", \"brokenbar\", \"Eth\", \"eth\", \"Yacute\", \"yacute\", \"Thorn\", \"thorn\", \"minus\", \"multiply\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"onehalf\", \"onequarter\", \"threequarters\", \"franc\", \"Gbreve\", \"gbreve\", \"Idotaccent\", \"Scedilla\", \"scedilla\", \"Cacute\", \"cacute\", \"Ccaron\", \"ccaron\", \"dcroat\"];\n\nfunction adjustWidths(properties) {\n if (!properties.fontMatrix) {\n return;\n }\n\n if (properties.fontMatrix[0] === _util.FONT_IDENTITY_MATRIX[0]) {\n return;\n }\n\n var scale = 0.001 / properties.fontMatrix[0];\n var glyphsWidths = properties.widths;\n\n for (var glyph in glyphsWidths) {\n glyphsWidths[glyph] *= scale;\n }\n\n properties.defaultWidth *= scale;\n}\n\nfunction adjustToUnicode(properties, builtInEncoding) {\n if (properties.hasIncludedToUnicodeMap) {\n return;\n }\n\n if (properties.hasEncoding) {\n return;\n }\n\n if (builtInEncoding === properties.defaultEncoding) {\n return;\n }\n\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n\n var toUnicode = [],\n glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n for (var charCode in builtInEncoding) {\n var glyphName = builtInEncoding[charCode];\n var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n if (unicode !== -1) {\n toUnicode[charCode] = String.fromCharCode(unicode);\n }\n }\n\n properties.toUnicode.amend(toUnicode);\n}\n\nfunction getFontType(type, subtype) {\n switch (type) {\n case \"Type1\":\n return subtype === \"Type1C\" ? _util.FontType.TYPE1C : _util.FontType.TYPE1;\n\n case \"CIDFontType0\":\n return subtype === \"CIDFontType0C\" ? _util.FontType.CIDFONTTYPE0C : _util.FontType.CIDFONTTYPE0;\n\n case \"OpenType\":\n return _util.FontType.OPENTYPE;\n\n case \"TrueType\":\n return _util.FontType.TRUETYPE;\n\n case \"CIDFontType2\":\n return _util.FontType.CIDFONTTYPE2;\n\n case \"MMType1\":\n return _util.FontType.MMTYPE1;\n\n case \"Type0\":\n return _util.FontType.TYPE0;\n\n default:\n return _util.FontType.UNKNOWN;\n }\n}\n\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n if (glyphsUnicodeMap[name] !== undefined) {\n return name;\n }\n\n var unicode = (0, _unicode.getUnicodeForGlyph)(name, glyphsUnicodeMap);\n\n if (unicode !== -1) {\n for (var key in glyphsUnicodeMap) {\n if (glyphsUnicodeMap[key] === unicode) {\n return key;\n }\n }\n }\n\n (0, _util.info)(\"Unable to recover a standard glyph name for: \" + name);\n return name;\n}\n\nvar Glyph = function GlyphClosure() {\n function Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\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 (fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n return this.fontChar === fontChar && this.unicode === unicode && this.accent === accent && this.width === width && this.vmetric === vmetric && this.operatorListId === operatorListId && this.isSpace === isSpace && this.isInFont === isInFont;\n };\n\n return Glyph;\n}();\n\nvar ToUnicodeMap = function ToUnicodeMapClosure() {\n function ToUnicodeMap(cmap = []) {\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 const map = this._map;\n\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\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\nexports.ToUnicodeMap = ToUnicodeMap;\n\nvar IdentityToUnicodeMap = function IdentityToUnicodeMapClosure() {\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\n return undefined;\n },\n\n charCodeOf(v) {\n return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1;\n },\n\n amend(map) {\n (0, _util.unreachable)(\"Should not call amend()\");\n }\n\n };\n return IdentityToUnicodeMap;\n}();\n\nexports.IdentityToUnicodeMap = IdentityToUnicodeMap;\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\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 for (i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data[i] & 0xff;\n }\n }\n }\n\n function OpenTypeFileBuilder(sfnt) {\n this.sfnt = sfnt;\n this.tables = Object.create(null);\n }\n\n OpenTypeFileBuilder.getSearchParams = function OpenTypeFileBuilder_getSearchParams(entriesCount, entrySize) {\n var maxPower2 = 1,\n log2 = 0;\n\n while ((maxPower2 ^ entriesCount) > maxPower2) {\n maxPower2 <<= 1;\n log2++;\n }\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 OpenTypeFileBuilder.prototype = {\n toArray: function OpenTypeFileBuilder_toArray() {\n var sfnt = this.sfnt;\n var tables = this.tables;\n var tablesNames = Object.keys(tables);\n tablesNames.sort();\n var numTables = tablesNames.length;\n var i, j, jj, table, tableName;\n var offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n var tableOffsets = [offset];\n\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\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n writeData(file, tableOffsets[i], table);\n }\n\n if (sfnt === \"true\") {\n sfnt = (0, _util.string32)(0x00010000);\n }\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 writeInt16(file, 4, numTables);\n var searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n writeInt16(file, 6, searchParams.range);\n writeInt16(file, 8, searchParams.entry);\n writeInt16(file, 10, searchParams.rangeShift);\n offset = OTF_HEADER_SIZE;\n\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 var checksum = 0;\n\n for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n var quad = (0, _core_utils.readUint32)(file, j);\n checksum = checksum + quad >>> 0;\n }\n\n writeInt32(file, offset + 4, checksum);\n writeInt32(file, offset + 8, tableOffsets[i]);\n writeInt32(file, offset + 12, tables[tableName].length);\n offset += OTF_TABLE_ENTRY_SIZE;\n }\n\n return file;\n },\n addTable: function OpenTypeFileBuilder_addTable(tag, data) {\n if (tag in this.tables) {\n throw new Error(\"Table \" + tag + \" already exists\");\n }\n\n this.tables[tag] = data;\n }\n };\n return OpenTypeFileBuilder;\n}();\n\nvar Font = function FontClosure() {\n function Font(name, file, properties) {\n var charCode;\n this.name = name;\n this.loadedName = properties.loadedName;\n this.isType3Font = properties.isType3Font;\n this.missingFile = false;\n this.glyphCache = Object.create(null);\n this.isSerifFont = !!(properties.flags & FontFlags.Serif);\n this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n var type = properties.type;\n var subtype = properties.subtype;\n this.type = type;\n this.subtype = subtype;\n let fallbackName = \"sans-serif\";\n\n if (this.isMonospace) {\n fallbackName = \"monospace\";\n } else if (this.isSerifFont) {\n fallbackName = \"serif\";\n }\n\n this.fallbackName = fallbackName;\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 this.toUnicode = properties.toUnicode;\n this.fallbackToUnicode = properties.fallbackToUnicode || new ToUnicodeMap();\n this.toFontChar = [];\n\n if (properties.type === \"Type3\") {\n for (charCode = 0; charCode < 256; charCode++) {\n this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode];\n }\n\n this.fontType = _util.FontType.TYPE3;\n return;\n }\n\n this.cidEncoding = properties.cidEncoding;\n this.vertical = !!properties.vertical;\n\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 (0, _util.warn)('Font file is empty in \"' + name + '\" (' + this.loadedName + \")\");\n }\n\n this.fallbackToSystemFont();\n return;\n }\n\n [type, subtype] = getFontFileType(file, properties);\n\n if (type !== this.type || subtype !== this.subtype) {\n (0, _util.info)(\"Inconsistent font file Type/SubType, expected: \" + `${this.type}/${this.subtype} but found: ${type}/${subtype}.`);\n }\n\n try {\n var data;\n\n switch (type) {\n case \"MMType1\":\n (0, _util.info)(\"MMType1 font (\" + name + \"), falling back to Type1.\");\n\n case \"Type1\":\n case \"CIDFontType0\":\n this.mimetype = \"font/opentype\";\n var cff = subtype === \"Type1C\" || subtype === \"CIDFontType0C\" ? new CFFFont(file, properties) : new Type1Font(name, file, properties);\n adjustWidths(properties);\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 data = this.checkAndRepair(name, file, properties);\n\n if (this.isOpenType) {\n adjustWidths(properties);\n type = \"OpenType\";\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Font ${type} is not supported`);\n }\n } catch (e) {\n (0, _util.warn)(e);\n this.fallbackToSystemFont();\n return;\n }\n\n this.data = data;\n this.fontType = getFontType(type, subtype);\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 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 if (value > 0x7fff) {\n value = 0x7fff;\n } else if (value < -0x8000) {\n value = -0x8000;\n }\n\n return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n }\n\n function isTrueTypeFile(file) {\n var header = file.peekBytes(4);\n return (0, _core_utils.readUint32)(header, 0) === 0x00010000 || (0, _util.bytesToString)(header) === \"true\";\n }\n\n function isTrueTypeCollectionFile(file) {\n const header = file.peekBytes(4);\n return (0, _util.bytesToString)(header) === \"ttcf\";\n }\n\n function isOpenTypeFile(file) {\n var header = file.peekBytes(4);\n return (0, _util.bytesToString)(header) === \"OTTO\";\n }\n\n function isType1File(file) {\n var header = file.peekBytes(2);\n\n if (header[0] === 0x25 && header[1] === 0x21) {\n return true;\n }\n\n if (header[0] === 0x80 && header[1] === 0x01) {\n return true;\n }\n\n return false;\n }\n\n function isCFFFile(file) {\n const header = file.peekBytes(4);\n\n if (header[0] >= 1 && header[3] >= 1 && header[3] <= 4) {\n return true;\n }\n\n return false;\n }\n\n function getFontFileType(file, {\n type,\n subtype,\n composite\n }) {\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 (0, _util.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\n for (var i = 0, ii = encoding.length; i < ii; i++) {\n unicode = (0, _unicode.getUnicodeForGlyph)(encoding[i], glyphsUnicodeMap);\n\n if (unicode !== -1) {\n toFontChar[i] = unicode;\n }\n }\n\n for (var charCode in differences) {\n unicode = (0, _unicode.getUnicodeForGlyph)(differences[charCode], glyphsUnicodeMap);\n\n if (unicode !== -1) {\n toFontChar[+charCode] = unicode;\n }\n }\n\n return toFontChar;\n }\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\n for (var originalCharCode in charCodeToGlyphId) {\n originalCharCode |= 0;\n var glyphId = charCodeToGlyphId[originalCharCode];\n\n if (!hasGlyph(glyphId)) {\n continue;\n }\n\n if (nextAvailableFontCharCode > privateUseOffetEnd) {\n privateUseAreaIndex++;\n\n if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n (0, _util.warn)(\"Ran out of space in font private use area.\");\n break;\n }\n\n nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n }\n\n var fontCharCode = nextAvailableFontCharCode++;\n\n if (glyphId === 0) {\n glyphId = newGlyphZeroId;\n }\n\n newMap[fontCharCode] = glyphId;\n toFontChar[originalCharCode] = fontCharCode;\n }\n\n return {\n toFontChar,\n charCodeToGlyphId: newMap,\n nextAvailableFontCharCode\n };\n }\n\n function getRanges(glyphs, numGlyphs) {\n var codes = [];\n\n for (var charCode in glyphs) {\n if (glyphs[charCode] >= numGlyphs) {\n continue;\n }\n\n codes.push({\n fontCharCode: charCode | 0,\n glyphId: glyphs[charCode]\n });\n }\n\n if (codes.length === 0) {\n codes.push({\n fontCharCode: 0,\n glyphId: 0\n });\n }\n\n codes.sort(function fontGetRangesSort(a, b) {\n return a.fontCharCode - b.fontCharCode;\n });\n var ranges = [];\n var length = codes.length;\n\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\n while (n < length && end + 1 === codes[n].fontCharCode) {\n codeIndices.push(codes[n].glyphId);\n ++end;\n ++n;\n\n if (end === 0xffff) {\n break;\n }\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 = \"\\x00\\x00\" + string16(numTables) + \"\\x00\\x03\" + \"\\x00\\x01\" + (0, _util.string32)(4 + numTables * 8);\n var i, ii, j, jj;\n\n for (i = ranges.length - 1; i >= 0; --i) {\n if (ranges[i][0] <= 0xffff) {\n break;\n }\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\n var trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0;\n var segCount = bmpLength + trailingRangesCount;\n var searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n var startCount = \"\";\n var endCount = \"\";\n var idDeltas = \"\";\n var idRangeOffsets = \"\";\n var glyphsIds = \"\";\n var bias = 0;\n var range, start, end, codes;\n\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\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\n if (!contiguous) {\n var offset = (segCount - i) * 2 + bias * 2;\n bias += end - start + 1;\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 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 = \"\\x00\\x00\" + string16(2 * segCount) + string16(searchParams.range) + string16(searchParams.entry) + string16(searchParams.rangeShift) + endCount + \"\\x00\\x00\" + startCount + idDeltas + idRangeOffsets + glyphsIds;\n var format31012 = \"\";\n var header31012 = \"\";\n\n if (numTables > 1) {\n cmap += \"\\x00\\x03\" + \"\\x00\\x0A\" + (0, _util.string32)(4 + numTables * 8 + 4 + format314.length);\n format31012 = \"\";\n\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\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 += (0, _util.string32)(start) + (0, _util.string32)(end) + (0, _util.string32)(code);\n start = end + 1;\n code = codes[j];\n }\n }\n\n format31012 += (0, _util.string32)(start) + (0, _util.string32)(range[1]) + (0, _util.string32)(code);\n }\n\n header31012 = \"\\x00\\x0C\" + \"\\x00\\x00\" + (0, _util.string32)(format31012.length + 16) + \"\\x00\\x00\\x00\\x00\" + (0, _util.string32)(format31012.length / 12);\n }\n\n return cmap + \"\\x00\\x04\" + string16(format314.length + 4) + format314 + header31012 + format31012;\n }\n\n function validateOS2Table(os2, file) {\n file.pos = (file.start || 0) + os2.offset;\n var version = file.getUint16();\n file.skip(60);\n var selection = file.getUint16();\n\n if (version < 4 && selection & 0x0300) {\n return false;\n }\n\n var firstChar = file.getUint16();\n var lastChar = file.getUint16();\n\n if (firstChar > lastChar) {\n return false;\n }\n\n file.skip(6);\n var usWinAscent = file.getUint16();\n\n if (usWinAscent === 0) {\n return false;\n }\n\n os2.data[8] = os2.data[9] = 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 var ulUnicodeRange1 = 0;\n var ulUnicodeRange2 = 0;\n var ulUnicodeRange3 = 0;\n var ulUnicodeRange4 = 0;\n var firstCharIndex = null;\n var lastCharIndex = 0;\n\n if (charstrings) {\n for (var code in charstrings) {\n code |= 0;\n\n if (firstCharIndex > code || !firstCharIndex) {\n firstCharIndex = code;\n }\n\n if (lastCharIndex < code) {\n lastCharIndex = code;\n }\n\n var position = (0, _unicode.getUnicodeRangeFor)(code);\n\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 _util.FormatError(\"Unicode ranges Bits > 123 are reserved for internal usage\");\n }\n }\n\n if (lastCharIndex > 0xffff) {\n lastCharIndex = 0xffff;\n }\n } else {\n firstCharIndex = 0;\n lastCharIndex = 255;\n }\n\n var bbox = properties.bbox || [0, 0, 0, 0];\n var unitsPerEm = override.unitsPerEm || 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n var scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n var typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n var typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1]));\n\n if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n typoDescent = -typoDescent;\n }\n\n var winAscent = override.yMax || typoAscent;\n var winDescent = -override.yMin || -typoDescent;\n return \"\\x00\\x03\" + \"\\x02\\x24\" + \"\\x01\\xF4\" + \"\\x00\\x05\" + \"\\x00\\x00\" + \"\\x02\\x8A\" + \"\\x02\\xBB\" + \"\\x00\\x00\" + \"\\x00\\x8C\" + \"\\x02\\x8A\" + \"\\x02\\xBB\" + \"\\x00\\x00\" + \"\\x01\\xDF\" + \"\\x00\\x31\" + \"\\x01\\x02\" + \"\\x00\\x00\" + \"\\x00\\x00\\x06\" + String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + \"\\x00\\x00\\x00\\x00\\x00\\x00\" + (0, _util.string32)(ulUnicodeRange1) + (0, _util.string32)(ulUnicodeRange2) + (0, _util.string32)(ulUnicodeRange3) + (0, _util.string32)(ulUnicodeRange4) + \"\\x2A\\x32\\x31\\x2A\" + string16(properties.italicAngle ? 1 : 0) + string16(firstCharIndex || properties.firstChar) + string16(lastCharIndex || properties.lastChar) + string16(typoAscent) + string16(typoDescent) + \"\\x00\\x64\" + string16(winAscent) + string16(winDescent) + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + string16(properties.xHeight) + string16(properties.capHeight) + string16(0) + string16(firstCharIndex || properties.firstChar) + \"\\x00\\x03\";\n }\n\n function createPostTable(properties) {\n var angle = Math.floor(properties.italicAngle * 2 ** 16);\n return \"\\x00\\x03\\x00\\x00\" + (0, _util.string32)(angle) + \"\\x00\\x00\" + \"\\x00\\x00\" + (0, _util.string32)(properties.fixedPitch) + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\";\n }\n\n function createNameTable(name, proto) {\n if (!proto) {\n proto = [[], []];\n }\n\n var strings = [proto[0][0] || \"Original licence\", proto[0][1] || name, proto[0][2] || \"Unknown\", proto[0][3] || \"uniqueID\", proto[0][4] || name, proto[0][5] || \"Version 0.11\", proto[0][6] || \"\", proto[0][7] || \"Unknown\", proto[0][8] || \"Unknown\", proto[0][9] || \"Unknown\"];\n var stringsUnicode = [];\n var i, ii, j, jj, str;\n\n for (i = 0, ii = strings.length; i < ii; i++) {\n str = proto[1][i] || strings[i];\n var strBufUnicode = [];\n\n for (j = 0, jj = str.length; j < jj; j++) {\n strBufUnicode.push(string16(str.charCodeAt(j)));\n }\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 var namesRecordCount = strings.length * platforms.length;\n var nameTable = \"\\x00\\x00\" + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6);\n var strOffset = 0;\n\n for (i = 0, ii = platforms.length; i < ii; i++) {\n var strs = names[i];\n\n for (j = 0, jj = strs.length; j < jj; j++) {\n str = strs[j];\n var nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + 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 = _font_renderer.FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n\n return (0, _util.shadow)(this, \"renderer\", renderer);\n },\n\n exportData(extraProperties = false) {\n const exportDataProperties = extraProperties ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES] : EXPORT_DATA_PROPERTIES;\n const data = Object.create(null);\n let property, value;\n\n for (property of exportDataProperties) {\n value = this[property];\n\n if (value !== undefined) {\n data[property] = value;\n }\n }\n\n return data;\n },\n\n fallbackToSystemFont: function Font_fallbackToSystemFont() {\n this.missingFile = true;\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 = (0, _standard_fonts.getStdFontMap)(),\n nonStdFontMap = (0, _standard_fonts.getNonStdFontMap)();\n var isStandardFont = !!stdFontMap[fontName] || !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]);\n fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n this.bold = fontName.search(/bold/gi) !== -1;\n this.italic = fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n this.black = name.search(/Black/g) !== -1;\n this.remeasure = Object.keys(this.widths).length > 0;\n\n if (isStandardFont && type === \"CIDFontType2\" && this.cidEncoding.startsWith(\"Identity-\")) {\n const GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)();\n const map = [];\n\n for (const charCode in GlyphMapForStandardFonts) {\n map[+charCode] = GlyphMapForStandardFonts[charCode];\n }\n\n if (/Arial-?Black/i.test(name)) {\n var SupplementalGlyphMapForArialBlack = (0, _standard_fonts.getSupplementalGlyphMapForArialBlack)();\n\n for (const charCode in SupplementalGlyphMapForArialBlack) {\n map[+charCode] = SupplementalGlyphMapForArialBlack[charCode];\n }\n } else if (/Calibri/i.test(name)) {\n const SupplementalGlyphMapForCalibri = (0, _standard_fonts.getSupplementalGlyphMapForCalibri)();\n\n for (const charCode in SupplementalGlyphMapForCalibri) {\n map[+charCode] = SupplementalGlyphMapForCalibri[charCode];\n }\n }\n\n var isIdentityUnicode = this.toUnicode instanceof IdentityToUnicodeMap;\n\n if (!isIdentityUnicode) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n\n this.toFontChar = map;\n this.toUnicode = new ToUnicodeMap(map);\n } else if (/Symbol/i.test(fontName)) {\n this.toFontChar = buildToFontChar(_encodings.SymbolSetEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n } else if (/Dingbats/i.test(fontName)) {\n if (/Wingdings/i.test(name)) {\n (0, _util.warn)(\"Non-embedded Wingdings font, falling back to ZapfDingbats.\");\n }\n\n this.toFontChar = buildToFontChar(_encodings.ZapfDingbatsEncoding, (0, _glyphlist.getDingbatsGlyphsUnicode)(), this.differences);\n } else if (isStandardFont) {\n this.toFontChar = buildToFontChar(this.defaultEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n } else {\n const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n const map = [];\n this.toUnicode.forEach((charCode, unicodeCharCode) => {\n if (!this.composite) {\n var glyphName = this.differences[charCode] || this.defaultEncoding[charCode];\n const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n if (unicode !== -1) {\n unicodeCharCode = unicode;\n }\n }\n\n map[+charCode] = unicodeCharCode;\n });\n\n if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) {\n if (/Verdana/i.test(name)) {\n const GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)();\n\n for (const charCode in GlyphMapForStandardFonts) {\n map[+charCode] = GlyphMapForStandardFonts[charCode];\n }\n }\n }\n\n this.toFontChar = map;\n }\n\n this.loadedName = fontName.split(\"-\")[0];\n this.fontType = getFontType(type, subtype);\n },\n checkAndRepair: function Font_checkAndRepair(name, font, properties) {\n const VALID_TABLES = [\"OS/2\", \"cmap\", \"head\", \"hhea\", \"hmtx\", \"maxp\", \"name\", \"post\", \"loca\", \"glyf\", \"fpgm\", \"prep\", \"cvt \", \"CFF \"];\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\n if (!VALID_TABLES.includes(table.tag)) {\n continue;\n }\n\n if (table.length === 0) {\n continue;\n }\n\n tables[table.tag] = table;\n }\n\n return tables;\n }\n\n function readTableEntry(file) {\n var tag = (0, _util.bytesToString)(file.getBytes(4));\n var checksum = file.getInt32() >>> 0;\n var offset = file.getInt32() >>> 0;\n var length = file.getInt32() >>> 0;\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 data[8] = data[9] = data[10] = data[11] = 0;\n data[17] |= 0x20;\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: (0, _util.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 = (0, _util.bytesToString)(ttc.getBytes(4));\n (0, _util.assert)(ttcTag === \"ttcf\", \"Must be a TrueType Collection font.\");\n const majorVersion = ttc.getUint16();\n const minorVersion = ttc.getUint16();\n const numFonts = ttc.getInt32() >>> 0;\n const offsetTable = [];\n\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\n switch (majorVersion) {\n case 1:\n return header;\n\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\n throw new _util.FormatError(`Invalid TrueType Collection majorVersion: ${majorVersion}.`);\n }\n\n function readTrueTypeCollectionData(ttc, fontName) {\n const {\n numFonts,\n offsetTable\n } = 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 _util.FormatError('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\n if (nameEntry && nameEntry.replace(/\\s/g, \"\") === fontName) {\n return {\n header: potentialHeader,\n tables: potentialTables\n };\n }\n }\n }\n }\n\n throw new _util.FormatError(`TrueType Collection does not contain \"${fontName}\" font.`);\n }\n\n function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {\n if (!cmap) {\n (0, _util.warn)(\"No cmap table available.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n\n var segment;\n var start = (file.start ? file.start : 0) + cmap.offset;\n file.pos = start;\n file.skip(2);\n var numTables = file.getUint16();\n var potentialTable;\n var canBreak = false;\n\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 if (potentialTable && potentialTable.platformId === platformId && potentialTable.encodingId === encodingId) {\n continue;\n }\n\n if (platformId === 0 && (encodingId === 0 || encodingId === 1 || encodingId === 3)) {\n useTable = true;\n } else if (platformId === 1 && encodingId === 0) {\n useTable = true;\n } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) {\n useTable = true;\n\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\n if (canBreak) {\n break;\n }\n }\n\n if (potentialTable) {\n file.pos = start + potentialTable.offset;\n }\n\n if (!potentialTable || file.peekByte() === -1) {\n (0, _util.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);\n var hasShortCmap = false;\n var mappings = [];\n var j, glyphId;\n\n if (format === 0) {\n for (j = 0; j < 256; j++) {\n var index = file.getByte();\n\n if (!index) {\n continue;\n }\n\n mappings.push({\n charCode: j,\n glyphId: index\n });\n }\n\n hasShortCmap = true;\n } else if (format === 4) {\n var segCount = file.getUint16() >> 1;\n file.skip(6);\n var segIndex,\n segments = [];\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments.push({\n end: file.getUint16()\n });\n }\n\n file.skip(2);\n\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\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n var rangeOffset = file.getUint16();\n\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(offsetsCount, offsetIndex + segment.end - segment.start + 1);\n }\n\n var offsets = [];\n\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 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 mappings.push({\n charCode,\n glyphId\n });\n }\n } else {\n (0, _util.warn)(\"cmap table has unsupported format: \" + format);\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n\n mappings.sort(function (a, b) {\n return a.charCode - b.charCode;\n });\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(file, header, metrics, numGlyphs, dupFirstEntry) {\n if (!header) {\n if (metrics) {\n metrics.data = null;\n }\n\n return;\n }\n\n file.pos = (file.start ? file.start : 0) + header.offset;\n file.pos += 4;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 8;\n file.pos += 2;\n var numOfMetrics = file.getUint16();\n\n if (numOfMetrics > numGlyphs) {\n (0, _util.info)(\"The numOfMetrics (\" + numOfMetrics + \") should not be \" + \"greater than the numGlyphs (\" + 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 = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1);\n\n if (numMissing > 0) {\n var entries = new Uint8Array(metrics.length + numMissing * 2);\n entries.set(metrics.data);\n\n if (dupFirstEntry) {\n entries[metrics.length] = metrics.data[2];\n entries[metrics.length + 1] = metrics.data[3];\n }\n\n metrics.data = entries;\n }\n }\n\n function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) {\n var glyphProfile = {\n length: 0,\n sizeOfInstructions: 0\n };\n\n if (sourceEnd - sourceStart <= 12) {\n return glyphProfile;\n }\n\n var glyf = source.subarray(sourceStart, sourceEnd);\n var contoursCount = signedInt16(glyf[0], glyf[1]);\n\n if (contoursCount < 0) {\n contoursCount = -1;\n writeSignedInt16(glyf, 0, contoursCount);\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\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\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 var coordinatesLength = 0;\n\n for (i = 0; i < flagsCount; i++) {\n var flag = glyf[j++];\n\n if (flag & 0xc0) {\n glyf[j - 1] = flag & 0x3f;\n }\n\n let xLength = 2;\n\n if (flag & 2) {\n xLength = 1;\n } else if (flag & 16) {\n xLength = 0;\n }\n\n let yLength = 2;\n\n if (flag & 4) {\n yLength = 1;\n } else if (flag & 32) {\n yLength = 0;\n }\n\n const xyLength = xLength + yLength;\n coordinatesLength += xyLength;\n\n if (flag & 8) {\n var repeat = glyf[j++];\n i += repeat;\n coordinatesLength += repeat * xyLength;\n }\n }\n\n if (coordinatesLength === 0) {\n return glyphProfile;\n }\n\n var glyphDataLength = j + coordinatesLength;\n\n if (glyphDataLength > glyf.length) {\n return glyphProfile;\n }\n\n if (!hintsValid && instructionsLength > 0) {\n dest.set(glyf.subarray(0, instructionsStart), destStart);\n dest.set([0, 0], destStart + instructionsStart);\n dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2);\n glyphDataLength -= instructionsLength;\n\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = glyphDataLength + 3 & ~3;\n }\n\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = glyphDataLength + 3 & ~3;\n dest.set(glyf.subarray(0, glyphDataLength), destStart);\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n\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 var version = int32(data[0], data[1], data[2], data[3]);\n\n if (version >> 16 !== 1) {\n (0, _util.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\n if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n (0, _util.info)(\"Attempting to fix invalid indexToLocFormat in head table: \" + indexToLocFormat);\n var numGlyphsPlusOne = numGlyphs + 1;\n\n if (locaLength === numGlyphsPlusOne << 1) {\n data[50] = 0;\n data[51] = 0;\n } else if (locaLength === numGlyphsPlusOne << 2) {\n data[50] = 0;\n data[51] = 1;\n } else {\n throw new _util.FormatError(\"Could not fix indexToLocFormat: \" + indexToLocFormat);\n }\n }\n }\n\n function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions) {\n var itemSize, itemDecode, itemEncode;\n\n if (isGlyphLocationsLong) {\n itemSize = 4;\n\n itemDecode = function fontItemDecodeLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | 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\n itemDecode = function fontItemDecode(data, offset) {\n return data[offset] << 9 | data[offset + 1] << 1;\n };\n\n itemEncode = function fontItemEncode(data, offset, value) {\n data[offset] = value >> 9 & 0xff;\n data[offset + 1] = value >> 1 & 0xff;\n };\n }\n\n var numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n var locaDataSize = itemSize * (1 + numGlyphsOut);\n var locaData = new Uint8Array(locaDataSize);\n locaData.set(loca.data.subarray(0, locaDataSize));\n loca.data = locaData;\n var oldGlyfData = glyf.data;\n var oldGlyfDataLength = oldGlyfData.length;\n var newGlyfData = new Uint8Array(oldGlyfDataLength);\n var i, j;\n const locaEntries = [];\n\n for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) {\n let offset = itemDecode(locaData, j);\n\n if (offset > oldGlyfDataLength) {\n offset = oldGlyfDataLength;\n }\n\n locaEntries.push({\n index: i,\n offset,\n endOffset: 0\n });\n }\n\n locaEntries.sort((a, b) => {\n return a.offset - b.offset;\n });\n\n for (i = 0; i < numGlyphs; i++) {\n locaEntries[i].endOffset = locaEntries[i + 1].offset;\n }\n\n locaEntries.sort((a, b) => {\n return a.index - b.index;\n });\n var missingGlyphs = Object.create(null);\n var writeOffset = 0;\n itemEncode(locaData, 0, writeOffset);\n\n for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n var glyphProfile = sanitizeGlyph(oldGlyfData, locaEntries[i].offset, locaEntries[i].endOffset, newGlyfData, writeOffset, hintsValid);\n var newLength = glyphProfile.length;\n\n if (newLength === 0) {\n missingGlyphs[i] = true;\n }\n\n if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n }\n\n writeOffset += newLength;\n itemEncode(locaData, j, writeOffset);\n }\n\n if (writeOffset === 0) {\n var simpleGlyph = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);\n\n for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n itemEncode(locaData, j, simpleGlyph.length);\n }\n\n glyf.data = simpleGlyph;\n } else if (dupFirstEntry) {\n var firstEntryLength = itemDecode(locaData, itemSize);\n\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\n glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength);\n } else {\n glyf.data = newGlyfData.subarray(0, writeOffset);\n }\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 var length = post.length,\n end = start + length;\n var version = font.getInt32();\n font.skip(28);\n var glyphNames;\n var valid = true;\n var i;\n\n switch (version) {\n case 0x00010000:\n glyphNames = MacStandardGlyphOrdering;\n break;\n\n case 0x00020000:\n var numGlyphs = font.getUint16();\n\n if (numGlyphs !== maxpNumGlyphs) {\n valid = false;\n break;\n }\n\n var glyphNameIndexes = [];\n\n for (i = 0; i < numGlyphs; ++i) {\n var index = font.getUint16();\n\n if (index >= 32768) {\n valid = false;\n break;\n }\n\n glyphNameIndexes.push(index);\n }\n\n if (!valid) {\n break;\n }\n\n var customNames = [];\n var strBuf = [];\n\n while (font.pos < end) {\n var stringLength = font.getByte();\n strBuf.length = stringLength;\n\n for (i = 0; i < stringLength; ++i) {\n strBuf[i] = String.fromCharCode(font.getByte());\n }\n\n customNames.push(strBuf.join(\"\"));\n }\n\n glyphNames = [];\n\n for (i = 0; i < numGlyphs; ++i) {\n var j = glyphNameIndexes[i];\n\n if (j < 258) {\n glyphNames.push(MacStandardGlyphOrdering[j]);\n continue;\n }\n\n glyphNames.push(customNames[j - 258]);\n }\n\n break;\n\n case 0x00030000:\n break;\n\n default:\n (0, _util.warn)(\"Unknown/unsupported post table version \" + version);\n valid = false;\n\n if (propertiesObj.defaultEncoding) {\n glyphNames = propertiesObj.defaultEncoding;\n }\n\n break;\n }\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 var names = [[], []];\n var length = nameTable.length,\n end = start + length;\n var format = font.getUint16();\n var FORMAT_0_HEADER_LENGTH = 6;\n\n if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n return names;\n }\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 (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\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\n if (r.platform === 1 && r.encoding === 0 && r.language === 0 || r.platform === 3 && r.encoding === 1 && r.language === 0x409) {\n records.push(r);\n }\n }\n\n for (i = 0, ii = records.length; i < ii; i++) {\n var record = records[i];\n\n if (record.length <= 0) {\n continue;\n }\n\n var pos = start + stringsStart + record.offset;\n\n if (pos + record.length > end) {\n continue;\n }\n\n font.pos = pos;\n var nameIndex = record.name;\n\n if (record.encoding) {\n var str = \"\";\n\n for (var j = 0, jj = record.length; j < jj; j += 2) {\n str += String.fromCharCode(font.getUint16());\n }\n\n names[1][nameIndex] = str;\n } else {\n names[0][nameIndex] = (0, _util.bytesToString)(font.getBytes(record.length));\n }\n }\n\n return names;\n }\n\n var TTOpsStackDeltas = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -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\n for (var ii = data.length; i < ii;) {\n var op = data[i++];\n\n if (op === 0x40) {\n n = data[i++];\n\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 n = data[i++];\n\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 n = op - 0xb0 + 1;\n\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 n = op - 0xb8 + 1;\n\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 if (!inFDEF && !inELSE) {\n funcId = stack[stack.length - 1];\n\n if (isNaN(funcId)) {\n (0, _util.info)(\"TT: CALL empty stack (or invalid entry).\");\n } else {\n ttContext.functionsUsed[funcId] = true;\n\n if (funcId in ttContext.functionsStackDeltas) {\n const newStackLength = stack.length + ttContext.functionsStackDeltas[funcId];\n\n if (newStackLength < 0) {\n (0, _util.warn)(\"TT: CALL invalid functions stack delta.\");\n ttContext.hintsValid = false;\n return;\n }\n\n stack.length = newStackLength;\n } else if (funcId in ttContext.functionsDefined && !functionsCalled.includes(funcId)) {\n callstack.push({\n data,\n i,\n stackTop: stack.length - 1\n });\n functionsCalled.push(funcId);\n pc = ttContext.functionsDefined[funcId];\n\n if (!pc) {\n (0, _util.warn)(\"TT: CALL non-existent function\");\n ttContext.hintsValid = false;\n return;\n }\n\n data = pc.data;\n i = pc.i;\n }\n }\n }\n } else if (op === 0x2c && !tooComplexToFollowFunctions) {\n if (inFDEF || inELSE) {\n (0, _util.warn)(\"TT: nested FDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n\n inFDEF = true;\n lastDeff = i;\n funcId = stack.pop();\n ttContext.functionsDefined[funcId] = {\n data,\n i\n };\n } else if (op === 0x2d) {\n if (inFDEF) {\n inFDEF = false;\n lastEndf = i;\n } else {\n pc = callstack.pop();\n\n if (!pc) {\n (0, _util.warn)(\"TT: ENDF bad stack\");\n ttContext.hintsValid = false;\n return;\n }\n\n funcId = functionsCalled.pop();\n data = pc.data;\n i = pc.i;\n ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n }\n } else if (op === 0x89) {\n if (inFDEF || inELSE) {\n (0, _util.warn)(\"TT: nested IDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n\n inFDEF = true;\n lastDeff = i;\n } else if (op === 0x58) {\n ++ifLevel;\n } else if (op === 0x1b) {\n inELSE = ifLevel;\n } else if (op === 0x59) {\n if (inELSE === ifLevel) {\n inELSE = 0;\n }\n\n --ifLevel;\n } else if (op === 0x1c) {\n if (!inFDEF && !inELSE) {\n var offset = stack[stack.length - 1];\n\n if (offset > 0) {\n i += offset - 1;\n }\n }\n }\n\n if (!inFDEF && !inELSE) {\n let stackDelta = 0;\n\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\n if (op >= 0x71 && op <= 0x75) {\n n = stack.pop();\n\n if (!isNaN(n)) {\n stackDelta = -n * 2;\n }\n }\n\n while (stackDelta < 0 && stack.length > 0) {\n stack.pop();\n stackDelta++;\n }\n\n while (stackDelta > 0) {\n stack.push(NaN);\n stackDelta--;\n }\n }\n }\n\n ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n var content = [data];\n\n if (i > data.length) {\n content.push(new Uint8Array(i - data.length));\n }\n\n if (lastDeff > lastEndf) {\n (0, _util.warn)(\"TT: complementing a missing function tail\");\n content.push(new Uint8Array([0x22, 0x2d]));\n }\n\n foldTTTable(table, content);\n }\n\n function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n if (ttContext.tooComplexToFollowFunctions) {\n return;\n }\n\n if (ttContext.functionsDefined.length > maxFunctionDefs) {\n (0, _util.warn)(\"TT: more functions defined than expected\");\n ttContext.hintsValid = false;\n return;\n }\n\n for (var j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n if (j > maxFunctionDefs) {\n (0, _util.warn)(\"TT: invalid function id: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n\n if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n (0, _util.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 var newLength = 0;\n var j, jj;\n\n for (j = 0, jj = content.length; j < jj; j++) {\n newLength += content[j].length;\n }\n\n newLength = newLength + 3 & ~3;\n var result = new Uint8Array(newLength);\n var pos = 0;\n\n for (j = 0, jj = content.length; j < jj; j++) {\n result.set(content[j], pos);\n pos += content[j].length;\n }\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\n if (fpgm) {\n sanitizeTTProgram(fpgm, ttContext);\n }\n\n if (prep) {\n sanitizeTTProgram(prep, ttContext);\n }\n\n if (fpgm) {\n checkInvalidFunctions(ttContext, maxFunctionDefs);\n }\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\n return ttContext.hintsValid;\n }\n\n font = new _stream.Stream(new Uint8Array(font.getBytes()));\n let header, tables;\n\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\n let cff, cffFile;\n var isTrueType = !tables[\"CFF \"];\n\n if (!isTrueType) {\n const isComposite = properties.composite && ((properties.cidToGidMap || []).length > 0 || !(properties.cMap instanceof _cmap.IdentityCMap));\n\n if (header.version === \"OTTO\" && !isComposite || !tables.head || !tables.hhea || !tables.maxp || !tables.post) {\n cffFile = new _stream.Stream(tables[\"CFF \"].data);\n cff = new CFFFont(cffFile, properties);\n adjustWidths(properties);\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 _util.FormatError('Required \"loca\" table is not found');\n }\n\n if (!tables.glyf) {\n (0, _util.warn)('Required \"glyf\" table is not found -- trying to recover.');\n tables.glyf = {\n tag: \"glyf\",\n data: new Uint8Array(0)\n };\n }\n\n this.isOpenType = false;\n }\n\n if (!tables.maxp) {\n throw new _util.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 let numGlyphsOut = numGlyphs + 1;\n let dupFirstEntry = true;\n\n if (numGlyphsOut > 0xffff) {\n dupFirstEntry = false;\n numGlyphsOut = numGlyphs;\n (0, _util.warn)(\"Not enough space in glyfs to duplicate first glyph.\");\n }\n\n var maxFunctionDefs = 0;\n var maxSizeOfInstructions = 0;\n\n if (version >= 0x00010000 && tables.maxp.length >= 22) {\n font.pos += 8;\n var maxZones = font.getUint16();\n\n if (maxZones > 2) {\n tables.maxp.data[14] = 0;\n tables.maxp.data[15] = 2;\n }\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 var hintsValid = sanitizeTTPrograms(tables.fpgm, tables.prep, tables[\"cvt \"], maxFunctionDefs);\n\n if (!hintsValid) {\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n }\n\n sanitizeMetrics(font, tables.hhea, tables.hmtx, numGlyphsOut, dupFirstEntry);\n\n if (!tables.head) {\n throw new _util.FormatError('Required \"head\" table is not found');\n }\n\n sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n var missingGlyphs = Object.create(null);\n\n if (isTrueType) {\n var isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]);\n var glyphsInfo = sanitizeGlyphLocations(tables.loca, tables.glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions);\n missingGlyphs = glyphsInfo.missingGlyphs;\n\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\n if (!tables.hhea) {\n throw new _util.FormatError('Required \"hhea\" table is not found');\n }\n\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 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 this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n\n if (tables.post) {\n readPostScriptTable(tables.post, properties, numGlyphs);\n }\n\n tables.post = {\n tag: \"post\",\n data: createPostTable(properties)\n };\n const charCodeToGlyphId = [];\n\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 properties.cMap.forEach(function (charCode, cid) {\n if (cid > 0xffff) {\n throw new _util.FormatError(\"Max size of CID is 65,535\");\n }\n\n var glyphId = -1;\n\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 var cmapTable = readCmapTable(tables.cmap, font, this.isSymbolicFont, properties.hasEncoding);\n var cmapPlatformId = cmapTable.platformId;\n var cmapEncodingId = cmapTable.encodingId;\n var cmapMappings = cmapTable.mappings;\n var cmapMappingsLength = cmapMappings.length;\n let baseEncoding = [];\n\n if (properties.hasEncoding && (properties.baseEncodingName === \"MacRomanEncoding\" || properties.baseEncodingName === \"WinAnsiEncoding\")) {\n baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n }\n\n if (properties.hasEncoding && !this.isSymbolicFont && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0)) {\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n for (let charCode = 0; charCode < 256; charCode++) {\n var glyphName, standardGlyphName;\n\n if (this.differences && charCode in this.differences) {\n glyphName = this.differences[charCode];\n } else if (charCode in baseEncoding && baseEncoding[charCode] !== \"\") {\n glyphName = baseEncoding[charCode];\n } else {\n glyphName = _encodings.StandardEncoding[charCode];\n }\n\n if (!glyphName) {\n continue;\n }\n\n standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n var unicodeOrCharCode;\n\n if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n unicodeOrCharCode = _encodings.MacRomanEncoding.indexOf(standardGlyphName);\n }\n\n for (let i = 0; i < cmapMappingsLength; ++i) {\n if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n continue;\n }\n\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n break;\n }\n }\n } else if (cmapPlatformId === 0) {\n for (let i = 0; i < cmapMappingsLength; ++i) {\n charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId;\n }\n } else {\n for (let i = 0; i < cmapMappingsLength; ++i) {\n let charCode = cmapMappings[i].charCode;\n\n if (cmapPlatformId === 3 && charCode >= 0xf000 && charCode <= 0xf0ff) {\n charCode &= 0xff;\n }\n\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n }\n }\n\n if (properties.glyphNames && baseEncoding.length) {\n for (let i = 0; i < 256; ++i) {\n if (charCodeToGlyphId[i] === undefined && baseEncoding[i]) {\n glyphName = baseEncoding[i];\n const glyphId = properties.glyphNames.indexOf(glyphName);\n\n if (glyphId > 0 && hasGlyph(glyphId)) {\n charCodeToGlyphId[i] = glyphId;\n }\n }\n }\n }\n }\n\n if (charCodeToGlyphId.length === 0) {\n charCodeToGlyphId[0] = 0;\n }\n\n let glyphZeroId = numGlyphsOut - 1;\n\n if (!dupFirstEntry) {\n glyphZeroId = 0;\n }\n\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(properties, newMapping.charCodeToGlyphId, metricsOverride)\n };\n }\n\n if (!isTrueType) {\n try {\n cffFile = new _stream.Stream(tables[\"CFF \"].data);\n var parser = new _cff_parser.CFFParser(cffFile, properties, SEAC_ANALYSIS_ENABLED);\n cff = parser.parse();\n cff.duplicateFirstGlyph();\n var compiler = new _cff_parser.CFFCompiler(cff);\n tables[\"CFF \"].data = compiler.compile();\n } catch (e) {\n (0, _util.warn)(\"Failed to compile font \" + properties.loadedName);\n }\n }\n\n if (!tables.name) {\n tables.name = {\n tag: \"name\",\n data: createNameTable(this.name)\n };\n } else {\n var namePrototype = readNameTable(tables.name);\n tables.name.data = createNameTable(name, namePrototype);\n }\n\n var builder = new OpenTypeFileBuilder(header.version);\n\n for (var tableTag in tables) {\n builder.addTable(tableTag, tables[tableTag].data);\n }\n\n return builder.toArray();\n },\n convert: function Font_convert(fontName, font, properties) {\n properties.fixedPitch = false;\n\n if (properties.builtInEncoding) {\n adjustToUnicode(properties, properties.builtInEncoding);\n }\n\n let glyphZeroId = 1;\n\n if (font instanceof CFFFont) {\n glyphZeroId = font.numGlyphs - 1;\n }\n\n var mapping = font.getGlyphMapping(properties);\n var newMapping = adjustMapping(mapping, font.hasGlyphId.bind(font), glyphZeroId);\n this.toFontChar = newMapping.toFontChar;\n var numGlyphs = font.numGlyphs;\n\n function getCharCodes(charCodeToGlyphId, glyphId) {\n var charCodes = null;\n\n for (var charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n if (!charCodes) {\n charCodes = [];\n }\n\n charCodes.push(charCode | 0);\n }\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\n newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId;\n return newMapping.nextAvailableFontCharCode++;\n }\n\n var seacs = font.seacs;\n\n if (SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n var matrix = properties.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var charset = font.getCharset();\n var seacMap = Object.create(null);\n\n for (var glyphId in seacs) {\n glyphId |= 0;\n var seac = seacs[glyphId];\n var baseGlyphName = _encodings.StandardEncoding[seac[2]];\n var accentGlyphName = _encodings.StandardEncoding[seac[3]];\n var baseGlyphId = charset.indexOf(baseGlyphName);\n var accentGlyphId = charset.indexOf(accentGlyphName);\n\n if (baseGlyphId < 0 || accentGlyphId < 0) {\n continue;\n }\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 var charCodes = getCharCodes(mapping, glyphId);\n\n if (!charCodes) {\n continue;\n }\n\n for (let i = 0, ii = charCodes.length; i < ii; i++) {\n var charCode = charCodes[i];\n var charCodeToGlyphId = newMapping.charCodeToGlyphId;\n var baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId);\n var accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId);\n seacMap[charCode] = {\n baseFontCharCode,\n accentFontCharCode,\n accentOffset\n };\n }\n }\n\n properties.seacMap = seacMap;\n }\n\n var unitsPerEm = 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n var builder = new OpenTypeFileBuilder(\"\\x4F\\x54\\x54\\x4F\");\n builder.addTable(\"CFF \", font.data);\n builder.addTable(\"OS/2\", createOS2Table(properties, newMapping.charCodeToGlyphId));\n builder.addTable(\"cmap\", createCmapTable(newMapping.charCodeToGlyphId, numGlyphs));\n builder.addTable(\"head\", \"\\x00\\x01\\x00\\x00\" + \"\\x00\\x00\\x10\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x5F\\x0F\\x3C\\xF5\" + \"\\x00\\x00\" + safeString16(unitsPerEm) + \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + \"\\x00\\x00\" + safeString16(properties.descent) + \"\\x0F\\xFF\" + safeString16(properties.ascent) + string16(properties.italicAngle ? 2 : 0) + \"\\x00\\x11\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\");\n builder.addTable(\"hhea\", \"\\x00\\x01\\x00\\x00\" + safeString16(properties.ascent) + safeString16(properties.descent) + \"\\x00\\x00\" + \"\\xFF\\xFF\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + safeString16(properties.capHeight) + safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + string16(numGlyphs));\n builder.addTable(\"hmtx\", function fontFieldsHmtx() {\n var charstrings = font.charstrings;\n var cffWidths = font.cff ? font.cff.widths : null;\n var hmtx = \"\\x00\\x00\\x00\\x00\";\n\n for (let i = 1, ii = numGlyphs; i < ii; i++) {\n var width = 0;\n\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\n hmtx += string16(width) + string16(0);\n }\n\n return hmtx;\n }());\n builder.addTable(\"maxp\", \"\\x00\\x00\\x50\\x00\" + string16(numGlyphs));\n builder.addTable(\"name\", createNameTable(fontName));\n builder.addTable(\"post\", createPostTable(properties));\n return builder.toArray();\n },\n\n get spaceWidth() {\n var possibleSpaceReplacements = [\"space\", \"minus\", \"one\", \"i\", \"I\"];\n var width;\n\n for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n var glyphName = possibleSpaceReplacements[i];\n\n if (glyphName in this.widths) {\n width = this.widths[glyphName];\n break;\n }\n\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n var glyphUnicode = glyphsUnicodeMap[glyphName];\n var charcode = 0;\n\n if (this.composite && this.cMap.contains(glyphUnicode)) {\n charcode = this.cMap.lookup(glyphUnicode);\n }\n\n if (!charcode && this.toUnicode) {\n charcode = this.toUnicode.charCodeOf(glyphUnicode);\n }\n\n if (charcode <= 0) {\n charcode = glyphUnicode;\n }\n\n width = this.widths[charcode];\n\n if (width) {\n break;\n }\n }\n\n width = width || this.defaultWidth;\n return (0, _util.shadow)(this, \"spaceWidth\", width);\n },\n\n charToGlyph: function Font_charToGlyph(charcode, isSpace) {\n var fontCharCode, width, operatorListId;\n var widthCode = charcode;\n\n if (this.cMap && this.cMap.contains(charcode)) {\n widthCode = this.cMap.lookup(charcode);\n }\n\n width = this.widths[widthCode];\n width = (0, _util.isNum)(width) ? width : this.defaultWidth;\n var vmetric = this.vmetrics && this.vmetrics[widthCode];\n let unicode = this.toUnicode.get(charcode) || this.fallbackToUnicode.get(charcode) || charcode;\n\n if (typeof unicode === \"number\") {\n unicode = String.fromCharCode(unicode);\n }\n\n var isInFont = (charcode in this.toFontChar);\n fontCharCode = this.toFontChar[charcode] || charcode;\n\n if (this.missingFile) {\n const glyphName = this.differences[charcode] || this.defaultEncoding[charcode];\n\n if ((glyphName === \".notdef\" || glyphName === \"\") && this.type === \"Type1\") {\n fontCharCode = 0x20;\n }\n\n fontCharCode = (0, _unicode.mapSpecialUnicodeValues)(fontCharCode);\n }\n\n if (this.isType3Font) {\n operatorListId = fontCharCode;\n }\n\n var accent = null;\n\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\n if (typeof fontCharCode === \"number\") {\n if (fontCharCode <= 0x10ffff) {\n fontChar = String.fromCodePoint(fontCharCode);\n } else {\n (0, _util.warn)(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);\n }\n }\n\n var glyph = this.glyphCache[charcode];\n\n if (!glyph || !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont)) {\n glyph = new Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont);\n this.glyphCache[charcode] = glyph;\n }\n\n return glyph;\n },\n charsToGlyphs: function Font_charsToGlyphs(chars) {\n var charsCache = this.charsCache;\n var glyphs, glyph, charcode;\n\n if (charsCache) {\n glyphs = charsCache[chars];\n\n if (glyphs) {\n return glyphs;\n }\n }\n\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 var c = Object.create(null);\n\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 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 return charsCache[charsCacheKey] = glyphs;\n },\n\n get glyphCacheValues() {\n return Object.values(this.glyphCache);\n }\n\n };\n return Font;\n}();\n\nexports.Font = Font;\n\nvar ErrorFont = function ErrorFontClosure() {\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\n exportData(extraProperties = false) {\n return {\n error: this.error\n };\n }\n\n };\n return ErrorFont;\n}();\n\nexports.ErrorFont = ErrorFont;\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 baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n } else if (isSymbolicFont) {\n for (charCode in builtInEncoding) {\n charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n }\n } else {\n baseEncoding = _encodings.StandardEncoding;\n\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n }\n\n var differences = properties.differences,\n glyphsUnicodeMap;\n\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 = (0, _glyphlist.getGlyphsUnicode)();\n }\n\n var standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n\n if (standardGlyphName !== glyphName) {\n glyphId = glyphNames.indexOf(standardGlyphName);\n }\n }\n\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n }\n\n return charCodeToGlyphId;\n}\n\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 var i = startIndex,\n j,\n found = false;\n\n while (i < scanLength) {\n j = 0;\n\n while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n j++;\n }\n\n if (j >= signatureLength) {\n i += j;\n\n while (i < streamBytesLength && (0, _core_utils.isWhiteSpace)(streamBytes[i])) {\n i++;\n }\n\n found = true;\n break;\n }\n\n i++;\n }\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 var streamStartPos = stream.pos;\n var headerBytes, headerBytesLength, block;\n\n try {\n headerBytes = stream.getBytes(suggestedLength);\n headerBytesLength = headerBytes.length;\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n }\n\n if (headerBytesLength === suggestedLength) {\n block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length);\n\n if (block.found && block.length === suggestedLength) {\n return {\n stream: new _stream.Stream(headerBytes),\n length: suggestedLength\n };\n }\n }\n\n (0, _util.warn)('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n stream.pos = streamStartPos;\n var SCAN_BLOCK_LENGTH = 2048;\n var actualLength;\n\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\n stream.pos += block.length;\n\n if (block.found) {\n actualLength = stream.pos - streamStartPos;\n break;\n }\n }\n\n stream.pos = streamStartPos;\n\n if (actualLength) {\n return {\n stream: new _stream.Stream(stream.getBytes(actualLength)),\n length: actualLength\n };\n }\n\n (0, _util.warn)('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n return {\n stream: new _stream.Stream(stream.getBytes(suggestedLength)),\n length: suggestedLength\n };\n }\n\n function getEexecBlock(stream, suggestedLength) {\n var eexecBytes = stream.getBytes();\n return {\n stream: new _stream.Stream(eexecBytes),\n length: eexecBytes.length\n };\n }\n\n function Type1Font(name, file, properties) {\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\n if (pfbHeaderPresent) {\n file.skip(PFB_HEADER_SIZE);\n headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n }\n\n var headerBlock = getHeaderBlock(file, headerBlockLength);\n var headerBlockParser = new _type1_parser.Type1Parser(headerBlock.stream, false, SEAC_ANALYSIS_ENABLED);\n headerBlockParser.extractFontHeader(properties);\n\n if (pfbHeaderPresent) {\n pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n }\n\n var eexecBlock = getEexecBlock(file, eexecBlockLength);\n var eexecBlockParser = new _type1_parser.Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED);\n var data = eexecBlockParser.extractFontProgram(properties);\n\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 this.charstrings = charstrings;\n this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties);\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\n for (var glyphId = 0; glyphId < charstrings.length; glyphId++) {\n charset.push(charstrings[glyphId].glyphName);\n }\n\n return charset;\n },\n getGlyphMapping: function Type1Font_getGlyphMapping(properties) {\n var charstrings = this.charstrings;\n\n if (properties.composite) {\n const charCodeToGlyphId = Object.create(null);\n\n for (let glyphId = 0, charstringsLen = charstrings.length; glyphId < charstringsLen; glyphId++) {\n const charCode = properties.cMap.charCodeOf(glyphId);\n charCodeToGlyphId[charCode] = glyphId + 1;\n }\n\n return charCodeToGlyphId;\n }\n\n var glyphNames = [\".notdef\"],\n glyphId;\n\n for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n glyphNames.push(charstrings[glyphId].glyphName);\n }\n\n var encoding = properties.builtInEncoding;\n\n if (encoding) {\n var builtInEncoding = Object.create(null);\n\n for (var charCode in encoding) {\n glyphId = glyphNames.indexOf(encoding[charCode]);\n\n if (glyphId >= 0) {\n builtInEncoding[charCode] = glyphId;\n }\n }\n }\n\n return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n },\n hasGlyphId: function Type1Font_hasGlyphID(id) {\n if (id < 0 || id >= this.numGlyphs) {\n return false;\n }\n\n if (id === 0) {\n return true;\n }\n\n var glyph = this.charstrings[id - 1];\n return glyph.charstring.length > 0;\n },\n getSeacs: function Type1Font_getSeacs(charstrings) {\n var i, ii;\n var seacMap = [];\n\n for (i = 0, ii = charstrings.length; i < ii; i++) {\n var charstring = charstrings[i];\n\n if (charstring.seac) {\n seacMap[i + 1] = charstring.seac;\n }\n }\n\n return seacMap;\n },\n getType2Charstrings: function Type1Font_getType2Charstrings(type1Charstrings) {\n var type2Charstrings = [];\n\n for (var i = 0, ii = type1Charstrings.length; i < ii; i++) {\n type2Charstrings.push(type1Charstrings[i].charstring);\n }\n\n return type2Charstrings;\n },\n getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) {\n var bias = 0;\n var count = type1Subrs.length;\n\n if (count < 1133) {\n bias = 107;\n } else if (count < 33769) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n\n var type2Subrs = [];\n var i;\n\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 wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) {\n var cff = new _cff_parser.CFF();\n cff.header = new _cff_parser.CFFHeader(1, 0, 4, 4);\n cff.names = [name];\n var topDict = new _cff_parser.CFFTopDict();\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);\n topDict.setByName(\"FontMatrix\", properties.fontMatrix);\n topDict.setByName(\"FontBBox\", properties.bbox);\n topDict.setByName(\"charset\", null);\n topDict.setByName(\"CharStrings\", null);\n topDict.setByName(\"Private\", null);\n cff.topDict = topDict;\n var strings = new _cff_parser.CFFStrings();\n strings.add(\"Version 0.11\");\n strings.add(\"See original notice\");\n strings.add(name);\n strings.add(name);\n strings.add(\"Medium\");\n cff.strings = strings;\n cff.globalSubrIndex = new _cff_parser.CFFIndex();\n var count = glyphs.length;\n var charsetArray = [\".notdef\"];\n var i, ii;\n\n for (i = 0; i < count; i++) {\n const glyphName = charstrings[i].glyphName;\n\n const index = _cff_parser.CFFStandardStrings.indexOf(glyphName);\n\n if (index === -1) {\n strings.add(glyphName);\n }\n\n charsetArray.push(glyphName);\n }\n\n cff.charset = new _cff_parser.CFFCharset(false, 0, charsetArray);\n var charStringsIndex = new _cff_parser.CFFIndex();\n charStringsIndex.add([0x8b, 0x0e]);\n\n for (i = 0; i < count; i++) {\n charStringsIndex.add(glyphs[i]);\n }\n\n cff.charStrings = charStringsIndex;\n var privateDict = new _cff_parser.CFFPrivateDict();\n privateDict.setByName(\"Subrs\", null);\n var fields = [\"BlueValues\", \"OtherBlues\", \"FamilyBlues\", \"FamilyOtherBlues\", \"StemSnapH\", \"StemSnapV\", \"BlueShift\", \"BlueFuzz\", \"BlueScale\", \"LanguageGroup\", \"ExpansionFactor\", \"ForceBold\", \"StdHW\", \"StdVW\"];\n\n for (i = 0, ii = fields.length; i < ii; i++) {\n var field = fields[i];\n\n if (!(field in properties.privateData)) {\n continue;\n }\n\n var value = properties.privateData[field];\n\n if (Array.isArray(value)) {\n for (var j = value.length - 1; j > 0; j--) {\n value[j] -= value[j - 1];\n }\n }\n\n privateDict.setByName(field, value);\n }\n\n cff.topDict.privateDict = privateDict;\n var subrIndex = new _cff_parser.CFFIndex();\n\n for (i = 0, ii = subrs.length; i < ii; i++) {\n subrIndex.add(subrs[i]);\n }\n\n privateDict.subrsIndex = subrIndex;\n var compiler = new _cff_parser.CFFCompiler(cff);\n return compiler.compile();\n }\n };\n return Type1Font;\n}();\n\nvar CFFFont = function CFFFontClosure() {\n function CFFFont(file, properties) {\n this.properties = properties;\n var parser = new _cff_parser.CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n this.cff = parser.parse();\n this.cff.duplicateFirstGlyph();\n var compiler = new _cff_parser.CFFCompiler(this.cff);\n this.seacs = this.cff.seacs;\n\n try {\n this.data = compiler.compile();\n } catch (e) {\n (0, _util.warn)(\"Failed to compile font \" + properties.loadedName);\n this.data = file;\n }\n }\n\n CFFFont.prototype = {\n get numGlyphs() {\n return this.cff.charStrings.count;\n },\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\n if (cff.isCIDFont) {\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 for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n charCode = properties.cMap.charCodeOf(glyphId);\n charCodeToGlyphId[charCode] = glyphId;\n }\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 return CFFFont;\n}();\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CFFFDSelect = exports.CFFCompiler = exports.CFFPrivateDict = exports.CFFTopDict = exports.CFFCharset = exports.CFFIndex = exports.CFFStrings = exports.CFFHeader = exports.CFF = exports.CFFParser = exports.CFFStandardStrings = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _charsets = __w_pdfjs_require__(32);\n\nvar _encodings = __w_pdfjs_require__(33);\n\nvar MAX_SUBR_NESTING = 10;\nvar CFFStandardStrings = [\".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\", \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"];\nexports.CFFStandardStrings = CFFStandardStrings;\nconst NUM_STANDARD_CFF_STRINGS = 391;\n\nvar CFFParser = function CFFParserClosure() {\n var CharstringValidationData = [null, {\n id: \"hstem\",\n min: 2,\n stackClearing: true,\n stem: true\n }, null, {\n id: \"vstem\",\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: \"vmoveto\",\n min: 1,\n stackClearing: true\n }, {\n id: \"rlineto\",\n min: 2,\n resetStack: true\n }, {\n id: \"hlineto\",\n min: 1,\n resetStack: true\n }, {\n id: \"vlineto\",\n min: 1,\n resetStack: true\n }, {\n id: \"rrcurveto\",\n min: 6,\n resetStack: true\n }, null, {\n id: \"callsubr\",\n min: 1,\n undefStack: true\n }, {\n id: \"return\",\n min: 0,\n undefStack: true\n }, null, null, {\n id: \"endchar\",\n min: 0,\n stackClearing: true\n }, null, null, null, {\n id: \"hstemhm\",\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: \"hintmask\",\n min: 0,\n stackClearing: true\n }, {\n id: \"cntrmask\",\n min: 0,\n stackClearing: true\n }, {\n id: \"rmoveto\",\n min: 2,\n stackClearing: true\n }, {\n id: \"hmoveto\",\n min: 1,\n stackClearing: true\n }, {\n id: \"vstemhm\",\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: \"rcurveline\",\n min: 8,\n resetStack: true\n }, {\n id: \"rlinecurve\",\n min: 8,\n resetStack: true\n }, {\n id: \"vvcurveto\",\n min: 4,\n resetStack: true\n }, {\n id: \"hhcurveto\",\n min: 4,\n resetStack: true\n }, null, {\n id: \"callgsubr\",\n min: 1,\n undefStack: true\n }, {\n id: \"vhcurveto\",\n min: 4,\n resetStack: true\n }, {\n id: \"hvcurveto\",\n min: 4,\n resetStack: true\n }];\n var CharstringValidationData12 = [null, null, null, {\n id: \"and\",\n min: 2,\n stackDelta: -1\n }, {\n id: \"or\",\n min: 2,\n stackDelta: -1\n }, {\n id: \"not\",\n min: 1,\n stackDelta: 0\n }, null, null, null, {\n id: \"abs\",\n min: 1,\n 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 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 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 }, null, {\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\",\n min: 2,\n stackDelta: -1\n }, null, null, {\n id: \"drop\",\n min: 1,\n stackDelta: -1\n }, null, {\n id: \"put\",\n min: 2,\n stackDelta: -2\n }, {\n id: \"get\",\n min: 1,\n stackDelta: 0\n }, {\n id: \"ifelse\",\n min: 4,\n stackDelta: -3\n }, {\n id: \"random\",\n min: 0,\n 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 }, null, {\n id: \"sqrt\",\n min: 1,\n stackDelta: 0\n }, {\n id: \"dup\",\n min: 1,\n stackDelta: 1\n }, {\n id: \"exch\",\n min: 2,\n stackDelta: 0\n }, {\n id: \"index\",\n min: 2,\n stackDelta: 0\n }, {\n id: \"roll\",\n min: 3,\n stackDelta: -2\n }, null, null, null, {\n id: \"hflex\",\n min: 7,\n resetStack: true\n }, {\n id: \"flex\",\n min: 13,\n resetStack: true\n }, {\n id: \"hflex1\",\n min: 9,\n resetStack: true\n }, {\n id: \"flex1\",\n min: 11,\n resetStack: true\n }];\n\n class CFFParser {\n constructor(file, properties, seacAnalysisEnabled) {\n this.bytes = file.getBytes();\n this.properties = properties;\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n }\n\n parse() {\n var properties = this.properties;\n var cff = new CFF();\n this.cff = cff;\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 var topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\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 this.parsePrivateDict(cff.topDict);\n cff.isCIDFont = topDict.hasName(\"ROS\");\n var charStringOffset = topDict.getByName(\"CharStrings\");\n var charStringIndex = this.parseIndex(charStringOffset).obj;\n var fontMatrix = topDict.getByName(\"FontMatrix\");\n\n if (fontMatrix) {\n properties.fontMatrix = fontMatrix;\n }\n\n var fontBBox = topDict.getByName(\"FontBBox\");\n\n if (fontBBox) {\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\n if (cff.isCIDFont) {\n var fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n\n for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n var dictRaw = fdArrayIndex.get(i);\n var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings);\n this.parsePrivateDict(fontDict);\n cff.fdArray.push(fontDict);\n }\n\n encoding = null;\n charset = this.parseCharsets(topDict.getByName(\"charset\"), charStringIndex.count, cff.strings, true);\n cff.fdSelect = this.parseFDSelect(topDict.getByName(\"FDSelect\"), charStringIndex.count);\n } else {\n charset = this.parseCharsets(topDict.getByName(\"charset\"), charStringIndex.count, cff.strings, false);\n encoding = this.parseEncoding(topDict.getByName(\"Encoding\"), properties, cff.strings, charset.charset);\n }\n\n cff.charset = charset;\n cff.encoding = encoding;\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 return cff;\n }\n\n parseHeader() {\n var bytes = this.bytes;\n var bytesLength = bytes.length;\n var offset = 0;\n\n while (offset < bytesLength && bytes[offset] !== 1) {\n ++offset;\n }\n\n if (offset >= bytesLength) {\n throw new _util.FormatError(\"Invalid CFF header\");\n }\n\n if (offset !== 0) {\n (0, _util.info)(\"cff data is shifted\");\n bytes = bytes.subarray(offset);\n this.bytes = bytes;\n }\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 {\n obj: header,\n endPos: hdrSize\n };\n }\n\n parseDict(dict) {\n var pos = 0;\n\n function parseOperand() {\n var value = dict[pos++];\n\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\n (0, _util.warn)('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n return NaN;\n }\n\n function parseFloatOperand() {\n var str = \"\";\n var eof = 15;\n const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n var length = dict.length;\n\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\n str += lookup[b1];\n\n if (b2 === eof) {\n break;\n }\n\n str += lookup[b2];\n }\n\n return parseFloat(str);\n }\n\n var operands = [];\n var entries = [];\n pos = 0;\n var end = dict.length;\n\n while (pos < end) {\n var b = dict[pos];\n\n if (b <= 21) {\n if (b === 12) {\n b = b << 8 | dict[++pos];\n }\n\n entries.push([b, operands]);\n operands = [];\n ++pos;\n } else {\n operands.push(parseOperand());\n }\n }\n\n return entries;\n }\n\n 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 var startPos = pos + (count + 1) * offsetSize - 1;\n\n for (i = 0, ii = count + 1; i < ii; ++i) {\n var offset = 0;\n\n for (var j = 0; j < offsetSize; ++j) {\n offset <<= 8;\n offset += bytes[pos++];\n }\n\n offsets.push(startPos + offset);\n }\n\n end = offsets[count];\n }\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\n return {\n obj: cffIndex,\n endPos: end\n };\n }\n\n parseNameIndex(index) {\n var names = [];\n\n for (var i = 0, ii = index.count; i < ii; ++i) {\n var name = index.get(i);\n names.push((0, _util.bytesToString)(name));\n }\n\n return names;\n }\n\n parseStringIndex(index) {\n var strings = new CFFStrings();\n\n for (var i = 0, ii = index.count; i < ii; ++i) {\n var data = index.get(i);\n strings.add((0, _util.bytesToString)(data));\n }\n\n return strings;\n }\n\n createDict(Type, dict, strings) {\n var cffDict = new Type(strings);\n\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\n return cffDict;\n }\n\n parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n if (!data || state.callDepth > MAX_SUBR_NESTING) {\n return false;\n }\n\n var stackSize = state.stackSize;\n var stack = state.stack;\n var length = data.length;\n\n for (var j = 0; j < length;) {\n var value = data[j++];\n var validationCommand = null;\n\n if (value === 12) {\n var q = data[j++];\n\n if (q === 0) {\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 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\n if (this.seacAnalysisEnabled) {\n state.seac = stack.slice(stackSize, stackSize + 4);\n return false;\n }\n }\n\n validationCommand = CharstringValidationData[value];\n } else if (value >= 32 && value <= 246) {\n stack[stackSize] = value - 139;\n stackSize++;\n } else if (value >= 247 && value <= 254) {\n stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108;\n j++;\n stackSize++;\n } else if (value === 255) {\n stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536;\n j += 4;\n stackSize++;\n } else if (value === 19 || value === 20) {\n state.hints += stackSize >> 1;\n j += state.hints + 7 >> 3;\n stackSize %= 2;\n validationCommand = CharstringValidationData[value];\n } else if (value === 10 || value === 29) {\n var subrsIndex;\n\n if (value === 10) {\n subrsIndex = localSubrIndex;\n } else {\n subrsIndex = globalSubrIndex;\n }\n\n if (!subrsIndex) {\n validationCommand = CharstringValidationData[value];\n (0, _util.warn)(\"Missing subrsIndex for \" + validationCommand.id);\n return false;\n }\n\n var bias = 32768;\n\n if (subrsIndex.count < 1240) {\n bias = 107;\n } else if (subrsIndex.count < 33900) {\n bias = 1131;\n }\n\n var subrNumber = stack[--stackSize] + bias;\n\n if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) {\n validationCommand = CharstringValidationData[value];\n (0, _util.warn)(\"Out of bounds subrIndex for \" + validationCommand.id);\n return false;\n }\n\n state.stackSize = stackSize;\n state.callDepth++;\n var valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex);\n\n if (!valid) {\n return false;\n }\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\n if (validationCommand) {\n if (validationCommand.stem) {\n state.hints += stackSize >> 1;\n\n if (value === 3 || value === 23) {\n state.hasVStems = true;\n } else if (state.hasVStems && (value === 1 || value === 18)) {\n (0, _util.warn)(\"CFF stem hints are in wrong order\");\n data[j - 1] = value === 1 ? 3 : 23;\n }\n }\n\n if (\"min\" in validationCommand) {\n if (!state.undefStack && stackSize < validationCommand.min) {\n (0, _util.warn)(\"Not enough parameters for \" + validationCommand.id + \"; actual: \" + stackSize + \", expected: \" + validationCommand.min);\n return false;\n }\n }\n\n if (state.firstStackClearing && validationCommand.stackClearing) {\n state.firstStackClearing = false;\n stackSize -= validationCommand.min;\n\n if (stackSize >= 2 && validationCommand.stem) {\n stackSize %= 2;\n } else if (stackSize > 1) {\n (0, _util.warn)(\"Found too many parameters for stack-clearing command\");\n }\n\n if (stackSize > 0 && stack[stackSize - 1] >= 0) {\n state.width = stack[stackSize - 1];\n }\n }\n\n if (\"stackDelta\" in validationCommand) {\n if (\"stackFn\" in validationCommand) {\n validationCommand.stackFn(stack, stackSize);\n }\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\n state.stackSize = stackSize;\n return true;\n }\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\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\n if (fdSelect && fdArray.length) {\n var fdIndex = fdSelect.getFDIndex(i);\n\n if (fdIndex === -1) {\n (0, _util.warn)(\"Glyph index is not in fd select.\");\n valid = false;\n }\n\n if (fdIndex >= fdArray.length) {\n (0, _util.warn)(\"Invalid fd index for glyph index.\");\n valid = false;\n }\n\n if (valid) {\n privateDictToUse = fdArray[fdIndex].privateDict;\n localSubrToUse = privateDictToUse.subrsIndex;\n }\n } else if (localSubrIndex) {\n localSubrToUse = localSubrIndex;\n }\n\n if (valid) {\n valid = this.parseCharString(state, charstring, localSubrToUse, 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\n if (state.seac !== null) {\n seacs[i] = state.seac;\n }\n\n if (!valid) {\n charStrings.set(i, new Uint8Array([14]));\n }\n }\n\n return {\n charStrings,\n seacs,\n widths\n };\n }\n\n emptyPrivateDictionary(parentDict) {\n var privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n parentDict.setByKey(18, [0, 0]);\n parentDict.privateDict = privateDict;\n }\n\n parsePrivateDict(parentDict) {\n if (!parentDict.hasName(\"Private\")) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n var privateOffset = parentDict.getByName(\"Private\");\n\n if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n parentDict.removeByName(\"Private\");\n return;\n }\n\n var size = privateOffset[0];\n var offset = privateOffset[1];\n\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(CFFPrivateDict, dict, parentDict.strings);\n parentDict.privateDict = privateDict;\n\n if (!privateDict.getByName(\"Subrs\")) {\n return;\n }\n\n var subrsOffset = privateDict.getByName(\"Subrs\");\n var relativeOffset = offset + subrsOffset;\n\n if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n var subrsIndex = this.parseIndex(relativeOffset);\n privateDict.subrsIndex = subrsIndex.obj;\n }\n\n parseCharsets(pos, length, strings, cid) {\n if (pos === 0) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, _charsets.ISOAdobeCharset);\n } else if (pos === 1) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, _charsets.ExpertCharset);\n } else if (pos === 2) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, _charsets.ExpertSubsetCharset);\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 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\n break;\n\n case 1:\n while (charset.length <= length) {\n id = bytes[pos++] << 8 | bytes[pos++];\n count = bytes[pos++];\n\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n\n break;\n\n case 2:\n while (charset.length <= length) {\n id = bytes[pos++] << 8 | bytes[pos++];\n count = bytes[pos++] << 8 | bytes[pos++];\n\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n\n break;\n\n default:\n throw new _util.FormatError(\"Unknown charset format\");\n }\n\n var end = pos;\n var raw = bytes.subarray(start, end);\n return new CFFCharset(false, format, charset, raw);\n }\n\n parseEncoding(pos, properties, strings, charset) {\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\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 ? _encodings.ExpertEncoding : _encodings.StandardEncoding;\n\n for (i = 0, ii = charset.length; i < ii; i++) {\n var index = baseEncoding.indexOf(charset[i]);\n\n if (index !== -1) {\n encoding[index] = i;\n }\n }\n } else {\n var dataStart = pos;\n format = bytes[pos++];\n\n switch (format & 0x7f) {\n case 0:\n var glyphsCount = bytes[pos++];\n\n for (i = 1; i <= glyphsCount; i++) {\n encoding[bytes[pos++]] = i;\n }\n\n break;\n\n case 1:\n var rangesCount = bytes[pos++];\n var gid = 1;\n\n for (i = 0; i < rangesCount; i++) {\n var start = bytes[pos++];\n var left = bytes[pos++];\n\n for (var j = start; j <= start + left; j++) {\n encoding[j] = gid++;\n }\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Unknown encoding format: ${format} in CFF`);\n }\n\n var dataEnd = pos;\n\n if (format & 0x80) {\n bytes[dataStart] &= 0x7f;\n readSupplement();\n }\n\n raw = bytes.subarray(dataStart, dataEnd);\n }\n\n format = format & 0x7f;\n return new CFFEncoding(predefined, format, encoding, raw);\n }\n\n 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\n break;\n\n case 3:\n var rangesCount = bytes[pos++] << 8 | bytes[pos++];\n\n for (i = 0; i < rangesCount; ++i) {\n var first = bytes[pos++] << 8 | bytes[pos++];\n\n if (i === 0 && first !== 0) {\n (0, _util.warn)(\"parseFDSelect: The first range must have a first GID of 0\" + \" -- trying to recover.\");\n first = 0;\n }\n\n var fdIndex = bytes[pos++];\n var next = bytes[pos] << 8 | bytes[pos + 1];\n\n for (var j = first; j < next; ++j) {\n fdSelect.push(fdIndex);\n }\n }\n\n pos += 2;\n break;\n\n default:\n throw new _util.FormatError(`parseFDSelect: Unknown format \"${format}\".`);\n }\n\n if (fdSelect.length !== length) {\n throw new _util.FormatError(\"parseFDSelect: Invalid font data.\");\n }\n\n return new CFFFDSelect(format, fdSelect);\n }\n\n }\n\n return CFFParser;\n}();\n\nexports.CFFParser = CFFParser;\n\nclass CFF {\n constructor() {\n this.header = null;\n this.names = [];\n this.topDict = null;\n this.strings = new CFFStrings();\n this.globalSubrIndex = null;\n this.encoding = null;\n this.charset = null;\n this.charStrings = null;\n this.fdArray = [];\n this.fdSelect = null;\n this.isCIDFont = false;\n }\n\n duplicateFirstGlyph() {\n if (this.charStrings.count >= 65535) {\n (0, _util.warn)(\"Not enough space in charstrings to duplicate first glyph.\");\n return;\n }\n\n var glyphZero = this.charStrings.get(0);\n this.charStrings.add(glyphZero);\n\n if (this.isCIDFont) {\n this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n }\n }\n\n hasGlyphId(id) {\n if (id < 0 || id >= this.charStrings.count) {\n return false;\n }\n\n var glyph = this.charStrings.get(id);\n return glyph.length > 0;\n }\n\n}\n\nexports.CFF = CFF;\n\nclass CFFHeader {\n constructor(major, minor, hdrSize, offSize) {\n this.major = major;\n this.minor = minor;\n this.hdrSize = hdrSize;\n this.offSize = offSize;\n }\n\n}\n\nexports.CFFHeader = CFFHeader;\n\nclass CFFStrings {\n constructor() {\n this.strings = [];\n }\n\n get(index) {\n if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {\n return CFFStandardStrings[index];\n }\n\n if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {\n return this.strings[index - NUM_STANDARD_CFF_STRINGS];\n }\n\n return CFFStandardStrings[0];\n }\n\n getSID(str) {\n let index = CFFStandardStrings.indexOf(str);\n\n if (index !== -1) {\n return index;\n }\n\n index = this.strings.indexOf(str);\n\n if (index !== -1) {\n return index + NUM_STANDARD_CFF_STRINGS;\n }\n\n return -1;\n }\n\n add(value) {\n this.strings.push(value);\n }\n\n get count() {\n return this.strings.length;\n }\n\n}\n\nexports.CFFStrings = CFFStrings;\n\nclass CFFIndex {\n constructor() {\n this.objects = [];\n this.length = 0;\n }\n\n add(data) {\n this.length += data.length;\n this.objects.push(data);\n }\n\n set(index, data) {\n this.length += data.length - this.objects[index].length;\n this.objects[index] = data;\n }\n\n get(index) {\n return this.objects[index];\n }\n\n get count() {\n return this.objects.length;\n }\n\n}\n\nexports.CFFIndex = CFFIndex;\n\nclass CFFDict {\n constructor(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\n setByKey(key, value) {\n if (!(key in this.keyToNameMap)) {\n return false;\n }\n\n var valueLength = value.length;\n\n if (valueLength === 0) {\n return true;\n }\n\n for (var i = 0; i < valueLength; i++) {\n if (isNaN(value[i])) {\n (0, _util.warn)('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n return true;\n }\n }\n\n var type = this.types[key];\n\n if (type === \"num\" || type === \"sid\" || type === \"offset\") {\n value = value[0];\n }\n\n this.values[key] = value;\n return true;\n }\n\n setByName(name, value) {\n if (!(name in this.nameToKeyMap)) {\n throw new _util.FormatError(`Invalid dictionary name \"${name}\"`);\n }\n\n this.values[this.nameToKeyMap[name]] = value;\n }\n\n hasName(name) {\n return this.nameToKeyMap[name] in this.values;\n }\n\n getByName(name) {\n if (!(name in this.nameToKeyMap)) {\n throw new _util.FormatError(`Invalid dictionary name ${name}\"`);\n }\n\n var key = this.nameToKeyMap[name];\n\n if (!(key in this.values)) {\n return this.defaults[key];\n }\n\n return this.values[key];\n }\n\n removeByName(name) {\n delete this.values[this.nameToKeyMap[name]];\n }\n\n static createTables(layout) {\n var tables = {\n keyToNameMap: {},\n nameToKeyMap: {},\n defaults: {},\n types: {},\n opcodes: {},\n order: []\n };\n\n for (var i = 0, ii = layout.length; i < ii; ++i) {\n var entry = layout[i];\n var key = Array.isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : 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\n return tables;\n }\n\n}\n\nvar CFFTopDict = function CFFTopDictClosure() {\n var layout = [[[12, 30], \"ROS\", [\"sid\", \"sid\", \"num\"], null], [[12, 20], \"SyntheticBase\", \"num\", null], [0, \"version\", \"sid\", null], [1, \"Notice\", \"sid\", null], [[12, 0], \"Copyright\", \"sid\", null], [2, \"FullName\", \"sid\", null], [3, \"FamilyName\", \"sid\", null], [4, \"Weight\", \"sid\", null], [[12, 1], \"isFixedPitch\", \"num\", 0], [[12, 2], \"ItalicAngle\", \"num\", 0], [[12, 3], \"UnderlinePosition\", \"num\", -100], [[12, 4], \"UnderlineThickness\", \"num\", 50], [[12, 5], \"PaintType\", \"num\", 0], [[12, 6], \"CharstringType\", \"num\", 2], [[12, 7], \"FontMatrix\", [\"num\", \"num\", \"num\", \"num\", \"num\", \"num\"], [0.001, 0, 0, 0.001, 0, 0]], [13, \"UniqueID\", \"num\", null], [5, \"FontBBox\", [\"num\", \"num\", \"num\", \"num\"], [0, 0, 0, 0]], [[12, 8], \"StrokeWidth\", \"num\", 0], [14, \"XUID\", \"array\", null], [15, \"charset\", \"offset\", 0], [16, \"Encoding\", \"offset\", 0], [17, \"CharStrings\", \"offset\", 0], [18, \"Private\", [\"offset\", \"offset\"], null], [[12, 21], \"PostScript\", \"sid\", null], [[12, 22], \"BaseFontName\", \"sid\", null], [[12, 23], \"BaseFontBlend\", \"delta\", null], [[12, 31], \"CIDFontVersion\", \"num\", 0], [[12, 32], \"CIDFontRevision\", \"num\", 0], [[12, 33], \"CIDFontType\", \"num\", 0], [[12, 34], \"CIDCount\", \"num\", 8720], [[12, 35], \"UIDBase\", \"num\", null], [[12, 37], \"FDSelect\", \"offset\", null], [[12, 36], \"FDArray\", \"offset\", null], [[12, 38], \"FontName\", \"sid\", null]];\n var tables = null;\n\n class CFFTopDict extends CFFDict {\n constructor(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n\n super(tables, strings);\n this.privateDict = null;\n }\n\n }\n\n return CFFTopDict;\n}();\n\nexports.CFFTopDict = CFFTopDict;\n\nvar CFFPrivateDict = function CFFPrivateDictClosure() {\n var layout = [[6, \"BlueValues\", \"delta\", null], [7, \"OtherBlues\", \"delta\", null], [8, \"FamilyBlues\", \"delta\", null], [9, \"FamilyOtherBlues\", \"delta\", null], [[12, 9], \"BlueScale\", \"num\", 0.039625], [[12, 10], \"BlueShift\", \"num\", 7], [[12, 11], \"BlueFuzz\", \"num\", 1], [10, \"StdHW\", \"num\", null], [11, \"StdVW\", \"num\", null], [[12, 12], \"StemSnapH\", \"delta\", null], [[12, 13], \"StemSnapV\", \"delta\", null], [[12, 14], \"ForceBold\", \"num\", 0], [[12, 17], \"LanguageGroup\", \"num\", 0], [[12, 18], \"ExpansionFactor\", \"num\", 0.06], [[12, 19], \"initialRandomSeed\", \"num\", 0], [20, \"defaultWidthX\", \"num\", 0], [21, \"nominalWidthX\", \"num\", 0], [19, \"Subrs\", \"offset\", null]];\n var tables = null;\n\n class CFFPrivateDict extends CFFDict {\n constructor(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n\n super(tables, strings);\n this.subrsIndex = null;\n }\n\n }\n\n return CFFPrivateDict;\n}();\n\nexports.CFFPrivateDict = CFFPrivateDict;\nvar CFFCharsetPredefinedTypes = {\n ISO_ADOBE: 0,\n EXPERT: 1,\n EXPERT_SUBSET: 2\n};\n\nclass CFFCharset {\n constructor(predefined, format, charset, raw) {\n this.predefined = predefined;\n this.format = format;\n this.charset = charset;\n this.raw = raw;\n }\n\n}\n\nexports.CFFCharset = CFFCharset;\n\nclass CFFEncoding {\n constructor(predefined, format, encoding, raw) {\n this.predefined = predefined;\n this.format = format;\n this.encoding = encoding;\n this.raw = raw;\n }\n\n}\n\nclass CFFFDSelect {\n constructor(format, fdSelect) {\n this.format = format;\n this.fdSelect = fdSelect;\n }\n\n getFDIndex(glyphIndex) {\n if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n return -1;\n }\n\n return this.fdSelect[glyphIndex];\n }\n\n}\n\nexports.CFFFDSelect = CFFFDSelect;\n\nclass CFFOffsetTracker {\n constructor() {\n this.offsets = Object.create(null);\n }\n\n isTracking(key) {\n return key in this.offsets;\n }\n\n track(key, location) {\n if (key in this.offsets) {\n throw new _util.FormatError(`Already tracking location of ${key}`);\n }\n\n this.offsets[key] = location;\n }\n\n offset(value) {\n for (var key in this.offsets) {\n this.offsets[key] += value;\n }\n }\n\n setEntryLocation(key, values, output) {\n if (!(key in this.offsets)) {\n throw new _util.FormatError(`Not tracking location of ${key}`);\n }\n\n var data = output.data;\n var dataOffset = this.offsets[key];\n var size = 5;\n\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\n if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) {\n throw new _util.FormatError(\"writing to an offset that is not empty\");\n }\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}\n\nclass CFFCompiler {\n constructor(cff) {\n this.cff = cff;\n }\n\n 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 var header = this.compileHeader(cff.header);\n output.add(header);\n var nameIndex = this.compileNameIndex(cff.names);\n output.add(nameIndex);\n\n if (cff.isCIDFont) {\n if (cff.topDict.hasName(\"FontMatrix\")) {\n var base = cff.topDict.getByName(\"FontMatrix\");\n cff.topDict.removeByName(\"FontMatrix\");\n\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\n if (subDict.hasName(\"FontMatrix\")) {\n matrix = _util.Util.transform(matrix, subDict.getByName(\"FontMatrix\"));\n }\n\n subDict.setByName(\"FontMatrix\", matrix);\n }\n }\n }\n\n cff.topDict.setByName(\"charset\", 0);\n var compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont);\n output.add(compiled.output);\n var topDictTracker = compiled.trackers[0];\n var stringIndex = this.compileStringIndex(cff.strings.strings);\n output.add(stringIndex);\n var globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n output.add(globalSubrIndex);\n\n if (cff.encoding && cff.topDict.hasName(\"Encoding\")) {\n if (cff.encoding.predefined) {\n topDictTracker.setEntryLocation(\"Encoding\", [cff.encoding.format], output);\n } else {\n var encoding = this.compileEncoding(cff.encoding);\n topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n output.add(encoding);\n }\n }\n\n var charset = this.compileCharset(cff.charset, cff.charStrings.count, cff.strings, cff.isCIDFont);\n topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n output.add(charset);\n var charStrings = this.compileCharStrings(cff.charStrings);\n topDictTracker.setEntryLocation(\"CharStrings\", [output.length], output);\n output.add(charStrings);\n\n if (cff.isCIDFont) {\n topDictTracker.setEntryLocation(\"FDSelect\", [output.length], output);\n var fdSelect = this.compileFDSelect(cff.fdSelect);\n output.add(fdSelect);\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 this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n }\n\n this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n output.add([0]);\n return output.data;\n }\n\n encodeNumber(value) {\n if (Number.isInteger(value)) {\n return this.encodeInteger(value);\n }\n\n return this.encodeFloat(value);\n }\n\n static get EncodeFloatRegExp() {\n return (0, _util.shadow)(this, \"EncodeFloatRegExp\", /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/);\n }\n\n encodeFloat(num) {\n var value = num.toString();\n var m = CFFCompiler.EncodeFloatRegExp.exec(value);\n\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\n for (i = 0, ii = value.length; i < ii; ++i) {\n var a = value[i];\n\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\n nibbles += nibbles.length & 1 ? \"f\" : \"ff\";\n var out = [30];\n\n for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n out.push(parseInt(nibbles.substring(i, i + 2), 16));\n }\n\n return out;\n }\n\n encodeInteger(value) {\n var code;\n\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 = [0x1d, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff];\n }\n\n return code;\n }\n\n compileHeader(header) {\n return [header.major, header.minor, header.hdrSize, header.offSize];\n }\n\n compileNameIndex(names) {\n var nameIndex = new CFFIndex();\n\n for (var i = 0, ii = names.length; i < ii; ++i) {\n var name = names[i];\n var length = Math.min(name.length, 127);\n var sanitizedName = new Array(length);\n\n for (var j = 0; j < length; j++) {\n var char = name[j];\n\n if (char < \"!\" || char > \"~\" || char === \"[\" || char === \"]\" || char === \"(\" || char === \")\" || char === \"{\" || char === \"}\" || char === \"<\" || char === \">\" || char === \"/\" || char === \"%\") {\n char = \"_\";\n }\n\n sanitizedName[j] = char;\n }\n\n sanitizedName = sanitizedName.join(\"\");\n\n if (sanitizedName === \"\") {\n sanitizedName = \"Bad_Font_Name\";\n }\n\n nameIndex.add((0, _util.stringToBytes)(sanitizedName));\n }\n\n return this.compileIndex(nameIndex);\n }\n\n compileTopDicts(dicts, length, removeCidKeys) {\n var fontDictTrackers = [];\n var fdArrayIndex = new CFFIndex();\n\n for (var i = 0, ii = dicts.length; i < ii; ++i) {\n var fontDict = dicts[i];\n\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\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\n fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n return {\n trackers: fontDictTrackers,\n output: fdArrayIndex\n };\n }\n\n compilePrivateDicts(dicts, trackers, output) {\n for (var i = 0, ii = dicts.length; i < ii; ++i) {\n var fontDict = dicts[i];\n var privateDict = fontDict.privateDict;\n\n if (!privateDict || !fontDict.hasName(\"Private\")) {\n throw new _util.FormatError(\"There must be a private dictionary.\");\n }\n\n var privateDictTracker = new CFFOffsetTracker();\n var privateDictData = this.compileDict(privateDict, privateDictTracker);\n var outputLength = output.length;\n privateDictTracker.offset(outputLength);\n\n if (!privateDictData.length) {\n outputLength = 0;\n }\n\n trackers[i].setEntryLocation(\"Private\", [privateDictData.length, outputLength], output);\n output.add(privateDictData);\n\n if (privateDict.subrsIndex && privateDict.hasName(\"Subrs\")) {\n var subrs = this.compileIndex(privateDict.subrsIndex);\n privateDictTracker.setEntryLocation(\"Subrs\", [privateDictData.length], output);\n output.add(subrs);\n }\n }\n }\n\n compileDict(dict, offsetTracker) {\n var out = [];\n var order = dict.order;\n\n for (var i = 0; i < order.length; ++i) {\n var key = order[i];\n\n if (!(key in dict.values)) {\n continue;\n }\n\n var values = dict.values[key];\n var types = dict.types[key];\n\n if (!Array.isArray(types)) {\n types = [types];\n }\n\n if (!Array.isArray(values)) {\n values = [values];\n }\n\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\n switch (type) {\n case \"num\":\n case \"sid\":\n out = out.concat(this.encodeNumber(value));\n break;\n\n case \"offset\":\n var name = dict.keyToNameMap[key];\n\n if (!offsetTracker.isTracking(name)) {\n offsetTracker.track(name, out.length);\n }\n\n out = out.concat([0x1d, 0, 0, 0, 0]);\n break;\n\n case \"array\":\n case \"delta\":\n out = out.concat(this.encodeNumber(value));\n\n for (var k = 1, kk = values.length; k < kk; ++k) {\n out = out.concat(this.encodeNumber(values[k]));\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Unknown data type of ${type}`);\n }\n }\n\n out = out.concat(dict.opcodes[key]);\n }\n\n return out;\n }\n\n compileStringIndex(strings) {\n var stringIndex = new CFFIndex();\n\n for (var i = 0, ii = strings.length; i < ii; ++i) {\n stringIndex.add((0, _util.stringToBytes)(strings[i]));\n }\n\n return this.compileIndex(stringIndex);\n }\n\n compileGlobalSubrIndex() {\n var globalSubrIndex = this.cff.globalSubrIndex;\n this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n }\n\n compileCharStrings(charStrings) {\n var charStringsIndex = new CFFIndex();\n\n for (var i = 0; i < charStrings.count; i++) {\n var glyph = charStrings.get(i);\n\n if (glyph.length === 0) {\n charStringsIndex.add(new Uint8Array([0x8b, 0x0e]));\n continue;\n }\n\n charStringsIndex.add(glyph);\n }\n\n return this.compileIndex(charStringsIndex);\n }\n\n compileCharset(charset, numGlyphs, strings, isCIDFont) {\n let out;\n const numGlyphsLessNotDef = numGlyphs - 1;\n\n if (isCIDFont) {\n out = new Uint8Array([2, 0, 0, numGlyphsLessNotDef >> 8 & 0xff, numGlyphsLessNotDef & 0xff]);\n } else {\n const length = 1 + numGlyphsLessNotDef * 2;\n out = new Uint8Array(length);\n out[0] = 0;\n let charsetIndex = 0;\n const numCharsets = charset.charset.length;\n let warned = false;\n\n for (let i = 1; i < out.length; i += 2) {\n let sid = 0;\n\n if (charsetIndex < numCharsets) {\n const name = charset.charset[charsetIndex++];\n sid = strings.getSID(name);\n\n if (sid === -1) {\n sid = 0;\n\n if (!warned) {\n warned = true;\n (0, _util.warn)(`Couldn't find ${name} in CFF strings`);\n }\n }\n }\n\n out[i] = sid >> 8 & 0xff;\n out[i + 1] = sid & 0xff;\n }\n }\n\n return this.compileTypedArray(out);\n }\n\n compileEncoding(encoding) {\n return this.compileTypedArray(encoding.raw);\n }\n\n compileFDSelect(fdSelect) {\n const format = fdSelect.format;\n let out, i;\n\n switch (format) {\n case 0:\n out = new Uint8Array(1 + fdSelect.fdSelect.length);\n out[0] = format;\n\n for (i = 0; i < fdSelect.fdSelect.length; i++) {\n out[i + 1] = fdSelect.fdSelect[i];\n }\n\n break;\n\n case 3:\n const start = 0;\n let lastFD = fdSelect.fdSelect[0];\n const ranges = [format, 0, 0, start >> 8 & 0xff, start & 0xff, lastFD];\n\n for (i = 1; i < fdSelect.fdSelect.length; i++) {\n const currentFD = fdSelect.fdSelect[i];\n\n if (currentFD !== lastFD) {\n ranges.push(i >> 8 & 0xff, i & 0xff, currentFD);\n lastFD = currentFD;\n }\n }\n\n const numRanges = (ranges.length - 3) / 3;\n ranges[1] = numRanges >> 8 & 0xff;\n ranges[2] = numRanges & 0xff;\n ranges.push(i >> 8 & 0xff, i & 0xff);\n out = new Uint8Array(ranges);\n break;\n }\n\n return this.compileTypedArray(out);\n }\n\n compileTypedArray(data) {\n var out = [];\n\n for (var i = 0, ii = data.length; i < ii; ++i) {\n out[i] = data[i];\n }\n\n return out;\n }\n\n compileIndex(index, trackers = []) {\n var objects = index.objects;\n var count = objects.length;\n\n if (count === 0) {\n return [0, 0, 0];\n }\n\n var data = [count >> 8 & 0xff, count & 0xff];\n var lastOffset = 1,\n i;\n\n for (i = 0; i < count; ++i) {\n lastOffset += objects[i].length;\n }\n\n var offsetSize;\n\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 data.push(offsetSize);\n var relativeOffset = 1;\n\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(relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n } else {\n data.push(relativeOffset >>> 24 & 0xff, relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n }\n\n if (objects[i]) {\n relativeOffset += objects[i].length;\n }\n }\n\n for (i = 0; i < count; i++) {\n if (trackers[i]) {\n trackers[i].offset(data.length);\n }\n\n for (var j = 0, jj = objects[i].length; j < jj; j++) {\n data.push(objects[i][j]);\n }\n }\n\n return data;\n }\n\n}\n\nexports.CFFCompiler = CFFCompiler;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ExpertSubsetCharset = exports.ExpertCharset = exports.ISOAdobeCharset = void 0;\nconst ISOAdobeCharset = [\".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\"];\nexports.ISOAdobeCharset = ISOAdobeCharset;\nconst ExpertCharset = [\".notdef\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\"];\nexports.ExpertCharset = ExpertCharset;\nconst ExpertSubsetCharset = [\".notdef\", \"space\", \"dollaroldstyle\", \"dollarsuperior\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"hyphensuperior\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"centoldstyle\", \"figuredash\", \"hypheninferior\", \"onequarter\", \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\"];\nexports.ExpertSubsetCharset = ExpertSubsetCharset;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getEncoding = getEncoding;\nexports.ExpertEncoding = exports.ZapfDingbatsEncoding = exports.SymbolSetEncoding = exports.MacRomanEncoding = exports.StandardEncoding = exports.WinAnsiEncoding = void 0;\nconst ExpertEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"\", \"\", \"\", \"isuperior\", \"\", \"\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"\", \"\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"\", \"\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"\", \"Dotaccentsmall\", \"\", \"\", \"Macronsmall\", \"\", \"\", \"figuredash\", \"hypheninferior\", \"\", \"\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\"];\nexports.ExpertEncoding = ExpertEncoding;\nconst MacExpertEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"centoldstyle\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"\", \"threequartersemdash\", \"\", \"questionsmall\", \"\", \"\", \"\", \"\", \"Ethsmall\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"\", \"\", \"\", \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\", \"Circumflexsmall\", \"hypheninferior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"asuperior\", \"centsuperior\", \"\", \"\", \"\", \"\", \"Aacutesmall\", \"Agravesmall\", \"Acircumflexsmall\", \"Adieresissmall\", \"Atildesmall\", \"Aringsmall\", \"Ccedillasmall\", \"Eacutesmall\", \"Egravesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Iacutesmall\", \"Igravesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ntildesmall\", \"Oacutesmall\", \"Ogravesmall\", \"Ocircumflexsmall\", \"Odieresissmall\", \"Otildesmall\", \"Uacutesmall\", \"Ugravesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"\", \"eightsuperior\", \"fourinferior\", \"threeinferior\", \"sixinferior\", \"eightinferior\", \"seveninferior\", \"Scaronsmall\", \"\", \"centinferior\", \"twoinferior\", \"\", \"Dieresissmall\", \"\", \"Caronsmall\", \"osuperior\", \"fiveinferior\", \"\", \"commainferior\", \"periodinferior\", \"Yacutesmall\", \"\", \"dollarinferior\", \"\", \"\", \"Thornsmall\", \"\", \"nineinferior\", \"zeroinferior\", \"Zcaronsmall\", \"AEsmall\", \"Oslashsmall\", \"questiondownsmall\", \"oneinferior\", \"Lslashsmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"Cedillasmall\", \"\", \"\", \"\", \"\", \"\", \"OEsmall\", \"figuredash\", \"hyphensuperior\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"\", \"Ydieresissmall\", \"\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"ninesuperior\", \"zerosuperior\", \"\", \"esuperior\", \"rsuperior\", \"tsuperior\", \"\", \"\", \"isuperior\", \"ssuperior\", \"dsuperior\", \"\", \"\", \"\", \"\", \"\", \"lsuperior\", \"Ogoneksmall\", \"Brevesmall\", \"Macronsmall\", \"bsuperior\", \"nsuperior\", \"msuperior\", \"commasuperior\", \"periodsuperior\", \"Dotaccentsmall\", \"Ringsmall\", \"\", \"\", \"\", \"\"];\nconst MacRomanEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\", \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\", \"space\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\"];\nexports.MacRomanEncoding = MacRomanEncoding;\nconst StandardEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"\", \"questiondown\", \"\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"\", \"ring\", \"cedilla\", \"\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"AE\", \"\", \"ordfeminine\", \"\", \"\", \"\", \"\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"\", \"\", \"\", \"\", \"\", \"ae\", \"\", \"\", \"\", \"dotlessi\", \"\", \"\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"\", \"\", \"\", \"\"];\nexports.StandardEncoding = StandardEncoding;\nconst WinAnsiEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"bullet\", \"Euro\", \"bullet\", \"quotesinglbase\", \"florin\", \"quotedblbase\", \"ellipsis\", \"dagger\", \"daggerdbl\", \"circumflex\", \"perthousand\", \"Scaron\", \"guilsinglleft\", \"OE\", \"bullet\", \"Zcaron\", \"bullet\", \"bullet\", \"quoteleft\", \"quoteright\", \"quotedblleft\", \"quotedblright\", \"bullet\", \"endash\", \"emdash\", \"tilde\", \"trademark\", \"scaron\", \"guilsinglright\", \"oe\", \"bullet\", \"zcaron\", \"Ydieresis\", \"space\", \"exclamdown\", \"cent\", \"sterling\", \"currency\", \"yen\", \"brokenbar\", \"section\", \"dieresis\", \"copyright\", \"ordfeminine\", \"guillemotleft\", \"logicalnot\", \"hyphen\", \"registered\", \"macron\", \"degree\", \"plusminus\", \"twosuperior\", \"threesuperior\", \"acute\", \"mu\", \"paragraph\", \"periodcentered\", \"cedilla\", \"onesuperior\", \"ordmasculine\", \"guillemotright\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondown\", \"Agrave\", \"Aacute\", \"Acircumflex\", \"Atilde\", \"Adieresis\", \"Aring\", \"AE\", \"Ccedilla\", \"Egrave\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Igrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Eth\", \"Ntilde\", \"Ograve\", \"Oacute\", \"Ocircumflex\", \"Otilde\", \"Odieresis\", \"multiply\", \"Oslash\", \"Ugrave\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Yacute\", \"Thorn\", \"germandbls\", \"agrave\", \"aacute\", \"acircumflex\", \"atilde\", \"adieresis\", \"aring\", \"ae\", \"ccedilla\", \"egrave\", \"eacute\", \"ecircumflex\", \"edieresis\", \"igrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"eth\", \"ntilde\", \"ograve\", \"oacute\", \"ocircumflex\", \"otilde\", \"odieresis\", \"divide\", \"oslash\", \"ugrave\", \"uacute\", \"ucircumflex\", \"udieresis\", \"yacute\", \"thorn\", \"ydieresis\"];\nexports.WinAnsiEncoding = WinAnsiEncoding;\nconst SymbolSetEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"universal\", \"numbersign\", \"existential\", \"percent\", \"ampersand\", \"suchthat\", \"parenleft\", \"parenright\", \"asteriskmath\", \"plus\", \"comma\", \"minus\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"congruent\", \"Alpha\", \"Beta\", \"Chi\", \"Delta\", \"Epsilon\", \"Phi\", \"Gamma\", \"Eta\", \"Iota\", \"theta1\", \"Kappa\", \"Lambda\", \"Mu\", \"Nu\", \"Omicron\", \"Pi\", \"Theta\", \"Rho\", \"Sigma\", \"Tau\", \"Upsilon\", \"sigma1\", \"Omega\", \"Xi\", \"Psi\", \"Zeta\", \"bracketleft\", \"therefore\", \"bracketright\", \"perpendicular\", \"underscore\", \"radicalex\", \"alpha\", \"beta\", \"chi\", \"delta\", \"epsilon\", \"phi\", \"gamma\", \"eta\", \"iota\", \"phi1\", \"kappa\", \"lambda\", \"mu\", \"nu\", \"omicron\", \"pi\", \"theta\", \"rho\", \"sigma\", \"tau\", \"upsilon\", \"omega1\", \"omega\", \"xi\", \"psi\", \"zeta\", \"braceleft\", \"bar\", \"braceright\", \"similar\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"Euro\", \"Upsilon1\", \"minute\", \"lessequal\", \"fraction\", \"infinity\", \"florin\", \"club\", \"diamond\", \"heart\", \"spade\", \"arrowboth\", \"arrowleft\", \"arrowup\", \"arrowright\", \"arrowdown\", \"degree\", \"plusminus\", \"second\", \"greaterequal\", \"multiply\", \"proportional\", \"partialdiff\", \"bullet\", \"divide\", \"notequal\", \"equivalence\", \"approxequal\", \"ellipsis\", \"arrowvertex\", \"arrowhorizex\", \"carriagereturn\", \"aleph\", \"Ifraktur\", \"Rfraktur\", \"weierstrass\", \"circlemultiply\", \"circleplus\", \"emptyset\", \"intersection\", \"union\", \"propersuperset\", \"reflexsuperset\", \"notsubset\", \"propersubset\", \"reflexsubset\", \"element\", \"notelement\", \"angle\", \"gradient\", \"registerserif\", \"copyrightserif\", \"trademarkserif\", \"product\", \"radical\", \"dotmath\", \"logicalnot\", \"logicaland\", \"logicalor\", \"arrowdblboth\", \"arrowdblleft\", \"arrowdblup\", \"arrowdblright\", \"arrowdbldown\", \"lozenge\", \"angleleft\", \"registersans\", \"copyrightsans\", \"trademarksans\", \"summation\", \"parenlefttp\", \"parenleftex\", \"parenleftbt\", \"bracketlefttp\", \"bracketleftex\", \"bracketleftbt\", \"bracelefttp\", \"braceleftmid\", \"braceleftbt\", \"braceex\", \"\", \"angleright\", \"integral\", \"integraltp\", \"integralex\", \"integralbt\", \"parenrighttp\", \"parenrightex\", \"parenrightbt\", \"bracketrighttp\", \"bracketrightex\", \"bracketrightbt\", \"bracerighttp\", \"bracerightmid\", \"bracerightbt\", \"\"];\nexports.SymbolSetEncoding = SymbolSetEncoding;\nconst ZapfDingbatsEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"a1\", \"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\", \"\", \"a89\", \"a90\", \"a93\", \"a94\", \"a91\", \"a92\", \"a205\", \"a85\", \"a206\", \"a86\", \"a87\", \"a88\", \"a95\", \"a96\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"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\", \"\"];\nexports.ZapfDingbatsEncoding = ZapfDingbatsEncoding;\n\nfunction getEncoding(encodingName) {\n switch (encodingName) {\n case \"WinAnsiEncoding\":\n return WinAnsiEncoding;\n\n case \"StandardEncoding\":\n return StandardEncoding;\n\n case \"MacRomanEncoding\":\n return MacRomanEncoding;\n\n case \"SymbolSetEncoding\":\n return SymbolSetEncoding;\n\n case \"ZapfDingbatsEncoding\":\n return ZapfDingbatsEncoding;\n\n case \"ExpertEncoding\":\n return ExpertEncoding;\n\n case \"MacExpertEncoding\":\n return MacExpertEncoding;\n\n default:\n return null;\n }\n}\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nvar getLookupTableFactory = __w_pdfjs_require__(8).getLookupTableFactory;\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;\n t.angbracketright = 0x3009;\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;\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;\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;\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 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});\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;\n t.a90 = 0x2769;\n t.a93 = 0x276a;\n t.a94 = 0x276b;\n t.a91 = 0x276c;\n t.a92 = 0x276d;\n t.a205 = 0x276e;\n t.a85 = 0x276f;\n t.a206 = 0x2770;\n t.a86 = 0x2771;\n t.a87 = 0x2772;\n t.a88 = 0x2773;\n t.a95 = 0x2774;\n t.a96 = 0x2775;\n t[\".notdef\"] = 0x0000;\n});\nexports.getGlyphsUnicode = getGlyphsUnicode;\nexports.getDingbatsGlyphsUnicode = getDingbatsGlyphsUnicode;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = exports.getNonStdFontMap = exports.getStdFontMap = void 0;\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nconst getStdFontMap = (0, _core_utils.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});\nexports.getStdFontMap = getStdFontMap;\nconst getNonStdFontMap = (0, _core_utils.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});\nexports.getNonStdFontMap = getNonStdFontMap;\nconst getSerifFonts = (0, _core_utils.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});\nexports.getSerifFonts = getSerifFonts;\nconst getSymbolsFonts = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.Dingbats = true;\n t.Symbol = true;\n t.ZapfDingbats = true;\n});\nexports.getSymbolsFonts = getSymbolsFonts;\nconst getGlyphMapForStandardFonts = (0, _core_utils.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});\nexports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts;\nconst getSupplementalGlyphMapForArialBlack = (0, _core_utils.getLookupTableFactory)(function (t) {\n t[227] = 322;\n t[264] = 261;\n t[291] = 346;\n});\nexports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack;\nconst getSupplementalGlyphMapForCalibri = (0, _core_utils.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});\nexports.getSupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nvar getLookupTableFactory = __w_pdfjs_require__(8).getLookupTableFactory;\nvar getSpecialPUASymbols = getLookupTableFactory(function (t) {\n t[63721] = 0x00a9;\n t[63193] = 0x00a9;\n t[63720] = 0x00ae;\n t[63194] = 0x00ae;\n t[63722] = 0x2122;\n t[63195] = 0x2122;\n t[63729] = 0x23a7;\n t[63730] = 0x23a8;\n t[63731] = 0x23a9;\n t[63740] = 0x23ab;\n t[63741] = 0x23ac;\n t[63742] = 0x23ad;\n t[63726] = 0x23a1;\n t[63727] = 0x23a2;\n t[63728] = 0x23a3;\n t[63737] = 0x23a4;\n t[63738] = 0x23a5;\n t[63739] = 0x23a6;\n t[63723] = 0x239b;\n t[63724] = 0x239c;\n t[63725] = 0x239d;\n t[63734] = 0x239e;\n t[63735] = 0x239f;\n t[63736] = 0x23a0;\n});\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xfff0 && code <= 0xffff) {\n return 0;\n } else if (code >= 0xf600 && code <= 0xf8ff) {\n return getSpecialPUASymbols()[code] || code;\n } else if (code === 0x00ad) {\n return 0x002d;\n }\n return code;\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 if (name[0] === \"u\") {\n var nameLen = name.length, hexStr;\n if (nameLen === 7 && name[1] === \"n\" && name[2] === \"i\") {\n hexStr = name.substring(3);\n } else if (nameLen >= 5 && nameLen <= 7) {\n hexStr = name.substring(1);\n } else {\n return -1;\n }\n if (hexStr === hexStr.toUpperCase()) {\n unicode = parseInt(hexStr, 16);\n if (unicode >= 0) {\n return unicode;\n }\n }\n }\n return -1;\n}\nvar UnicodeRanges = [\n {\n begin: 0x0000,\n end: 0x007f\n },\n {\n begin: 0x0080,\n end: 0x00ff\n },\n {\n begin: 0x0100,\n end: 0x017f\n },\n {\n begin: 0x0180,\n end: 0x024f\n },\n {\n begin: 0x0250,\n end: 0x02af\n },\n {\n begin: 0x02b0,\n end: 0x02ff\n },\n {\n begin: 0x0300,\n end: 0x036f\n },\n {\n begin: 0x0370,\n end: 0x03ff\n },\n {\n begin: 0x2c80,\n end: 0x2cff\n },\n {\n begin: 0x0400,\n end: 0x04ff\n },\n {\n begin: 0x0530,\n end: 0x058f\n },\n {\n begin: 0x0590,\n end: 0x05ff\n },\n {\n begin: 0xa500,\n end: 0xa63f\n },\n {\n begin: 0x0600,\n end: 0x06ff\n },\n {\n begin: 0x07c0,\n end: 0x07ff\n },\n {\n begin: 0x0900,\n end: 0x097f\n },\n {\n begin: 0x0980,\n end: 0x09ff\n },\n {\n begin: 0x0a00,\n end: 0x0a7f\n },\n {\n begin: 0x0a80,\n end: 0x0aff\n },\n {\n begin: 0x0b00,\n end: 0x0b7f\n },\n {\n begin: 0x0b80,\n end: 0x0bff\n },\n {\n begin: 0x0c00,\n end: 0x0c7f\n },\n {\n begin: 0x0c80,\n end: 0x0cff\n },\n {\n begin: 0x0d00,\n end: 0x0d7f\n },\n {\n begin: 0x0e00,\n end: 0x0e7f\n },\n {\n begin: 0x0e80,\n end: 0x0eff\n },\n {\n begin: 0x10a0,\n end: 0x10ff\n },\n {\n begin: 0x1b00,\n end: 0x1b7f\n },\n {\n begin: 0x1100,\n end: 0x11ff\n },\n {\n begin: 0x1e00,\n end: 0x1eff\n },\n {\n begin: 0x1f00,\n end: 0x1fff\n },\n {\n begin: 0x2000,\n end: 0x206f\n },\n {\n begin: 0x2070,\n end: 0x209f\n },\n {\n begin: 0x20a0,\n end: 0x20cf\n },\n {\n begin: 0x20d0,\n end: 0x20ff\n },\n {\n begin: 0x2100,\n end: 0x214f\n },\n {\n begin: 0x2150,\n end: 0x218f\n },\n {\n begin: 0x2190,\n end: 0x21ff\n },\n {\n begin: 0x2200,\n end: 0x22ff\n },\n {\n begin: 0x2300,\n end: 0x23ff\n },\n {\n begin: 0x2400,\n end: 0x243f\n },\n {\n begin: 0x2440,\n end: 0x245f\n },\n {\n begin: 0x2460,\n end: 0x24ff\n },\n {\n begin: 0x2500,\n end: 0x257f\n },\n {\n begin: 0x2580,\n end: 0x259f\n },\n {\n begin: 0x25a0,\n end: 0x25ff\n },\n {\n begin: 0x2600,\n end: 0x26ff\n },\n {\n begin: 0x2700,\n end: 0x27bf\n },\n {\n begin: 0x3000,\n end: 0x303f\n },\n {\n begin: 0x3040,\n end: 0x309f\n },\n {\n begin: 0x30a0,\n end: 0x30ff\n },\n {\n begin: 0x3100,\n end: 0x312f\n },\n {\n begin: 0x3130,\n end: 0x318f\n },\n {\n begin: 0xa840,\n end: 0xa87f\n },\n {\n begin: 0x3200,\n end: 0x32ff\n },\n {\n begin: 0x3300,\n end: 0x33ff\n },\n {\n begin: 0xac00,\n end: 0xd7af\n },\n {\n begin: 0xd800,\n end: 0xdfff\n },\n {\n begin: 0x10900,\n end: 0x1091f\n },\n {\n begin: 0x4e00,\n end: 0x9fff\n },\n {\n begin: 0xe000,\n end: 0xf8ff\n },\n {\n begin: 0x31c0,\n end: 0x31ef\n },\n {\n begin: 0xfb00,\n end: 0xfb4f\n },\n {\n begin: 0xfb50,\n end: 0xfdff\n },\n {\n begin: 0xfe20,\n end: 0xfe2f\n },\n {\n begin: 0xfe10,\n end: 0xfe1f\n },\n {\n begin: 0xfe50,\n end: 0xfe6f\n },\n {\n begin: 0xfe70,\n end: 0xfeff\n },\n {\n begin: 0xff00,\n end: 0xffef\n },\n {\n begin: 0xfff0,\n end: 0xffff\n },\n {\n begin: 0x0f00,\n end: 0x0fff\n },\n {\n begin: 0x0700,\n end: 0x074f\n },\n {\n begin: 0x0780,\n end: 0x07bf\n },\n {\n begin: 0x0d80,\n end: 0x0dff\n },\n {\n begin: 0x1000,\n end: 0x109f\n },\n {\n begin: 0x1200,\n end: 0x137f\n },\n {\n begin: 0x13a0,\n end: 0x13ff\n },\n {\n begin: 0x1400,\n end: 0x167f\n },\n {\n begin: 0x1680,\n end: 0x169f\n },\n {\n begin: 0x16a0,\n end: 0x16ff\n },\n {\n begin: 0x1780,\n end: 0x17ff\n },\n {\n begin: 0x1800,\n end: 0x18af\n },\n {\n begin: 0x2800,\n end: 0x28ff\n },\n {\n begin: 0xa000,\n end: 0xa48f\n },\n {\n begin: 0x1700,\n end: 0x171f\n },\n {\n begin: 0x10300,\n end: 0x1032f\n },\n {\n begin: 0x10330,\n end: 0x1034f\n },\n {\n begin: 0x10400,\n end: 0x1044f\n },\n {\n begin: 0x1d000,\n end: 0x1d0ff\n },\n {\n begin: 0x1d400,\n end: 0x1d7ff\n },\n {\n begin: 0xff000,\n end: 0xffffd\n },\n {\n begin: 0xfe00,\n end: 0xfe0f\n },\n {\n begin: 0xe0000,\n end: 0xe007f\n },\n {\n begin: 0x1900,\n end: 0x194f\n },\n {\n begin: 0x1950,\n end: 0x197f\n },\n {\n begin: 0x1980,\n end: 0x19df\n },\n {\n begin: 0x1a00,\n end: 0x1a1f\n },\n {\n begin: 0x2c00,\n end: 0x2c5f\n },\n {\n begin: 0x2d30,\n end: 0x2d7f\n },\n {\n begin: 0x4dc0,\n end: 0x4dff\n },\n {\n begin: 0xa800,\n end: 0xa82f\n },\n {\n begin: 0x10000,\n end: 0x1007f\n },\n {\n begin: 0x10140,\n end: 0x1018f\n },\n {\n begin: 0x10380,\n end: 0x1039f\n },\n {\n begin: 0x103a0,\n end: 0x103df\n },\n {\n begin: 0x10450,\n end: 0x1047f\n },\n {\n begin: 0x10480,\n end: 0x104af\n },\n {\n begin: 0x10800,\n end: 0x1083f\n },\n {\n begin: 0x10a00,\n end: 0x10a5f\n },\n {\n begin: 0x1d300,\n end: 0x1d35f\n },\n {\n begin: 0x12000,\n end: 0x123ff\n },\n {\n begin: 0x1d360,\n end: 0x1d37f\n },\n {\n begin: 0x1b80,\n end: 0x1bbf\n },\n {\n begin: 0x1c00,\n end: 0x1c4f\n },\n {\n begin: 0x1c50,\n end: 0x1c7f\n },\n {\n begin: 0xa880,\n end: 0xa8df\n },\n {\n begin: 0xa900,\n end: 0xa92f\n },\n {\n begin: 0xa930,\n end: 0xa95f\n },\n {\n begin: 0xaa00,\n end: 0xaa5f\n },\n {\n begin: 0x10190,\n end: 0x101cf\n },\n {\n begin: 0x101d0,\n end: 0x101ff\n },\n {\n begin: 0x102a0,\n end: 0x102df\n },\n {\n begin: 0x1f030,\n end: 0x1f09f\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}\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}\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});\nfunction reverseIfRtl(chars) {\n var charsLength = chars.length;\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}\nexports.mapSpecialUnicodeValues = mapSpecialUnicodeValues;\nexports.reverseIfRtl = reverseIfRtl;\nexports.getUnicodeRangeFor = getUnicodeRangeFor;\nexports.getNormalizedUnicodes = getNormalizedUnicodes;\nexports.getUnicodeForGlyph = getUnicodeForGlyph;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontRendererFactory = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cff_parser = __w_pdfjs_require__(31);\n\nvar _glyphlist = __w_pdfjs_require__(34);\n\nvar _encodings = __w_pdfjs_require__(33);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar FontRendererFactory = function FontRendererFactoryClosure() {\n function getLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\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\n if (numSubrs < 1240) {\n bias = 107;\n } else if (numSubrs < 33900) {\n bias = 1131;\n }\n\n return bias;\n }\n\n function parseCmap(data, start, end) {\n var offset = getUshort(data, start + 2) === 1 ? getLong(data, start + 8) : getLong(data, start + 16);\n var format = getUshort(data, start + offset);\n var ranges, p, i;\n\n if (format === 4) {\n getUshort(data, start + offset + 2);\n var segCount = getUshort(data, start + offset + 6) >> 1;\n p = start + offset + 14;\n ranges = [];\n\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i] = {\n end: getUshort(data, p)\n };\n }\n\n p += 2;\n\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].start = getUshort(data, p);\n }\n\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].idDelta = getUshort(data, p);\n }\n\n for (i = 0; i < segCount; i++, p += 2) {\n var idOffset = getUshort(data, p);\n\n if (idOffset === 0) {\n continue;\n }\n\n ranges[i].ids = [];\n\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\n return ranges;\n } else if (format === 12) {\n getLong(data, start + offset + 4);\n var groups = getLong(data, start + offset + 12);\n p = start + offset + 16;\n ranges = [];\n\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\n return ranges;\n }\n\n throw new _util.FormatError(`unsupported cmap: ${format}`);\n }\n\n function parseCff(data, start, end, seacAnalysisEnabled) {\n var properties = {};\n var parser = new _cff_parser.CFFParser(new _stream.Stream(data, start, end - start), properties, seacAnalysisEnabled);\n var cff = parser.parse();\n return {\n glyphs: cff.charStrings.objects,\n subrs: cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex && 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\n if (isGlyphLocationsLong) {\n itemSize = 4;\n\n itemDecode = function fontItemDecodeLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n };\n } else {\n itemSize = 2;\n\n itemDecode = function fontItemDecode(data, offset) {\n return data[offset] << 9 | data[offset + 1] << 1;\n };\n }\n\n var glyphs = [];\n var startOffset = itemDecode(loca, 0);\n\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\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\n while (l < r) {\n var c = l + r + 1 >> 1;\n\n if (code < ranges[c].start) {\n r = c - 1;\n } else {\n l = c;\n }\n }\n\n if (ranges[l].start <= code && code <= ranges[l].end) {\n gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xffff;\n }\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({\n cmd: \"moveTo\",\n args: [x, y]\n });\n }\n\n function lineTo(x, y) {\n cmds.push({\n cmd: \"lineTo\",\n args: [x, y]\n });\n }\n\n function quadraticCurveTo(xa, ya, x, y) {\n cmds.push({\n cmd: \"quadraticCurveTo\",\n args: [xa, ya, x, y]\n });\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\n if (numberOfContours < 0) {\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\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\n if (flags & 0x02) {\n x = arg1;\n y = arg2;\n } else {\n x = 0;\n y = 0;\n }\n\n var scaleX = 1,\n scaleY = 1,\n scale01 = 0,\n scale10 = 0;\n\n if (flags & 0x08) {\n scaleX = scaleY = (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\n var subglyph = font.glyphs[glyphIndex];\n\n if (subglyph) {\n cmds.push({\n cmd: \"save\"\n });\n cmds.push({\n cmd: \"transform\",\n args: [scaleX, scale01, scale10, scaleY, x, y]\n });\n compileGlyf(subglyph, cmds, font);\n cmds.push({\n cmd: \"restore\"\n });\n }\n } while (flags & 0x20);\n } else {\n var endPtsOfContours = [];\n var j, jj;\n\n for (j = 0; j < numberOfContours; j++) {\n endPtsOfContours.push(code[i] << 8 | code[i + 1]);\n i += 2;\n }\n\n var instructionLength = code[i] << 8 | code[i + 1];\n i += 2 + instructionLength;\n var numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n var points = [];\n\n while (points.length < numberOfPoints) {\n flags = code[i++];\n var repeat = 1;\n\n if (flags & 0x08) {\n repeat += code[i++];\n }\n\n while (repeat-- > 0) {\n points.push({\n flags\n });\n }\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\n case 0x02:\n x -= code[i++];\n break;\n\n case 0x12:\n x += code[i++];\n break;\n }\n\n points[j].x = x;\n }\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\n case 0x04:\n y -= code[i++];\n break;\n\n case 0x24:\n y += code[i++];\n break;\n }\n\n points[j].y = y;\n }\n\n var startPoint = 0;\n\n for (i = 0; i < numberOfContours; i++) {\n var endPoint = endPtsOfContours[i];\n var contour = points.slice(startPoint, endPoint + 1);\n\n if (contour[0].flags & 1) {\n contour.push(contour[0]);\n } else if (contour[contour.length - 1].flags & 1) {\n contour.unshift(contour[contour.length - 1]);\n } else {\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\n moveTo(contour[0].x, contour[0].y);\n\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(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y);\n j++;\n } else {\n quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (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({\n cmd: \"moveTo\",\n args: [x, y]\n });\n }\n\n function lineTo(x, y) {\n cmds.push({\n cmd: \"lineTo\",\n args: [x, y]\n });\n }\n\n function bezierCurveTo(x1, y1, x2, y2, x, y) {\n cmds.push({\n cmd: \"bezierCurveTo\",\n args: [x1, y1, x2, y2, x, y]\n });\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\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\n switch (v) {\n case 1:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n\n case 3:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n\n case 4:\n y += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n\n case 5:\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n\n break;\n\n case 6:\n while (stack.length > 0) {\n x += stack.shift();\n lineTo(x, y);\n\n if (stack.length === 0) {\n break;\n }\n\n y += stack.shift();\n lineTo(x, y);\n }\n\n break;\n\n case 7:\n while (stack.length > 0) {\n y += stack.shift();\n lineTo(x, y);\n\n if (stack.length === 0) {\n break;\n }\n\n x += stack.shift();\n lineTo(x, y);\n }\n\n break;\n\n case 8:\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\n break;\n\n case 10:\n n = stack.pop();\n subrCode = null;\n\n if (font.isCFFCIDFont) {\n const fdIndex = font.fdSelect.getFDIndex(glyphId);\n\n if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n const fontDict = font.fdArray[fdIndex];\n let subrs;\n\n if (fontDict.privateDict && fontDict.privateDict.subrsIndex) {\n subrs = fontDict.privateDict.subrsIndex.objects;\n }\n\n if (subrs) {\n n += getSubroutineBias(subrs);\n subrCode = subrs[n];\n }\n } else {\n (0, _util.warn)(\"Invalid fd index for glyph index.\");\n }\n } else {\n subrCode = font.subrs[n + font.subrsBias];\n }\n\n if (subrCode) {\n parse(subrCode);\n }\n\n break;\n\n case 11:\n return;\n\n case 12:\n v = code[i++];\n\n switch (v) {\n case 34:\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\n case 35:\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();\n break;\n\n case 36:\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\n case 37:\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\n if (Math.abs(x - x0) > Math.abs(y - y0)) {\n x += stack.shift();\n } else {\n y += stack.shift();\n }\n\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n\n default:\n throw new _util.FormatError(`unknown operator: 12 ${v}`);\n }\n\n break;\n\n case 14:\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({\n cmd: \"save\"\n });\n cmds.push({\n cmd: \"translate\",\n args: [x, y]\n });\n var cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[achar]]));\n compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n cmds.push({\n cmd: \"restore\"\n });\n cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[bchar]]));\n compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n }\n\n return;\n\n case 18:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n\n case 19:\n stems += stack.length >> 1;\n i += stems + 7 >> 3;\n stackClean = true;\n break;\n\n case 20:\n stems += stack.length >> 1;\n i += stems + 7 >> 3;\n stackClean = true;\n break;\n\n case 21:\n y += stack.pop();\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n\n case 22:\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n\n case 23:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n\n case 24:\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\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n break;\n\n case 25:\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\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\n case 26:\n if (stack.length % 2) {\n x += stack.shift();\n }\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\n break;\n\n case 27:\n if (stack.length % 2) {\n y += stack.shift();\n }\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\n break;\n\n case 28:\n stack.push((code[i] << 24 | code[i + 1] << 16) >> 16);\n i += 2;\n break;\n\n case 29:\n n = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[n];\n\n if (subrCode) {\n parse(subrCode);\n }\n\n break;\n\n case 30:\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\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\n break;\n\n case 31:\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\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\n break;\n\n default:\n if (v < 32) {\n throw new _util.FormatError(`unknown operator: ${v}`);\n }\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((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536);\n i += 4;\n }\n\n break;\n }\n\n if (stackClean) {\n stack.length = 0;\n }\n }\n }\n\n parse(charStringCode);\n }\n\n const NOOP = [];\n\n class CompiledFont {\n constructor(fontMatrix) {\n if (this.constructor === CompiledFont) {\n (0, _util.unreachable)(\"Cannot initialize CompiledFont.\");\n }\n\n this.fontMatrix = fontMatrix;\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\n if (!fn) {\n fn = this.compileGlyph(this.glyphs[cmap.glyphId], cmap.glyphId);\n this.compiledGlyphs[cmap.glyphId] = fn;\n }\n\n if (this.compiledCharCodeToGlyphId[cmap.charCode] === undefined) {\n this.compiledCharCodeToGlyphId[cmap.charCode] = cmap.glyphId;\n }\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\n if (this.isCFFCIDFont) {\n const fdIndex = this.fdSelect.getFDIndex(glyphId);\n\n if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n const fontDict = this.fdArray[fdIndex];\n fontMatrix = fontDict.getByName(\"FontMatrix\") || _util.FONT_IDENTITY_MATRIX;\n } else {\n (0, _util.warn)(\"Invalid fd index for glyph index.\");\n }\n }\n\n const cmds = [];\n cmds.push({\n cmd: \"save\"\n });\n cmds.push({\n cmd: \"transform\",\n args: fontMatrix.slice()\n });\n cmds.push({\n cmd: \"scale\",\n args: [\"size\", \"-size\"]\n });\n this.compileGlyphImpl(code, cmds, glyphId);\n cmds.push({\n cmd: \"restore\"\n });\n return cmds;\n }\n\n compileGlyphImpl() {\n (0, _util.unreachable)(\"Children classes should implement this.\");\n }\n\n hasBuiltPath(unicode) {\n const cmap = lookupCmap(this.cmap, unicode);\n return this.compiledGlyphs[cmap.glyphId] !== undefined && 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 this.glyphs = glyphs;\n this.cmap = cmap;\n }\n\n compileGlyphImpl(code, cmds) {\n compileGlyf(code, cmds, this);\n }\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 this.glyphs = cffInfo.glyphs;\n this.gsubrs = cffInfo.gsubrs || [];\n this.subrs = cffInfo.subrs || [];\n this.cmap = cmap;\n this.glyphNameMap = glyphNameMap || (0, _glyphlist.getGlyphsUnicode)();\n this.gsubrsBias = getSubroutineBias(this.gsubrs);\n this.subrsBias = getSubroutineBias(this.subrs);\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\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\n for (var i = 0, p = 12; i < numTables; i++, p += 16) {\n var tag = (0, _util.bytesToString)(data.subarray(p, p + 4));\n var offset = getLong(data, p + 8);\n var length = getLong(data, p + 12);\n\n switch (tag) {\n case \"cmap\":\n cmap = parseCmap(data, offset, offset + length);\n break;\n\n case \"glyf\":\n glyf = data.subarray(offset, offset + length);\n break;\n\n case \"loca\":\n loca = data.subarray(offset, offset + length);\n break;\n\n case \"head\":\n unitsPerEm = getUshort(data, offset + 18);\n indexToLocFormat = getUshort(data, offset + 50);\n break;\n\n case \"CFF \":\n cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n break;\n }\n }\n\n if (glyf) {\n var fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix);\n }\n\n return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n }\n };\n}();\n\nexports.FontRendererFactory = FontRendererFactory;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Type1Parser = void 0;\n\nvar _encodings = __w_pdfjs_require__(33);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar HINTING_ENABLED = false;\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 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(encoded, subrs, seacAnalysisEnabled) {\n var count = encoded.length;\n var error = false;\n var wx, sbx, subrNumber;\n\n for (var i = 0; i < count; i++) {\n var value = encoded[i];\n\n if (value < 32) {\n if (value === 12) {\n value = (value << 8) + encoded[++i];\n }\n\n switch (value) {\n case 1:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n\n case 3:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n\n case 4:\n if (this.flexing) {\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n\n var dy = this.stack.pop();\n this.stack.push(0, dy);\n break;\n }\n\n error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n break;\n\n case 5:\n error = this.executeCommand(2, COMMAND_MAP.rlineto);\n break;\n\n case 6:\n error = this.executeCommand(1, COMMAND_MAP.hlineto);\n break;\n\n case 7:\n error = this.executeCommand(1, COMMAND_MAP.vlineto);\n break;\n\n case 8:\n error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n break;\n\n case 9:\n this.stack = [];\n break;\n\n case 10:\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n\n subrNumber = this.stack.pop();\n\n if (!subrs[subrNumber]) {\n error = true;\n break;\n }\n\n error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);\n break;\n\n case 11:\n return error;\n\n case 13:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n\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\n case 14:\n this.output.push(COMMAND_MAP.endchar[0]);\n break;\n\n case 21:\n if (this.flexing) {\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n break;\n\n case 22:\n if (this.flexing) {\n this.stack.push(0);\n break;\n }\n\n error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n break;\n\n case 30:\n error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n break;\n\n case 31:\n error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n break;\n\n case (12 << 8) + 0:\n this.stack = [];\n break;\n\n case (12 << 8) + 1:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n\n case (12 << 8) + 2:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n\n case (12 << 8) + 6:\n if (seacAnalysisEnabled) {\n const asb = this.stack[this.stack.length - 5];\n this.seac = this.stack.splice(-4, 4);\n this.seac[0] += this.lsb - asb;\n error = this.executeCommand(0, COMMAND_MAP.endchar);\n } else {\n error = this.executeCommand(4, COMMAND_MAP.endchar);\n }\n\n break;\n\n case (12 << 8) + 7:\n if (this.stack.length < 4) {\n error = true;\n break;\n }\n\n this.stack.pop();\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\n case (12 << 8) + 12:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n\n var num2 = this.stack.pop();\n var num1 = this.stack.pop();\n this.stack.push(num1 / num2);\n break;\n\n case (12 << 8) + 16:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n\n subrNumber = this.stack.pop();\n var numArgs = this.stack.pop();\n\n if (subrNumber === 0 && numArgs === 3) {\n var flexArgs = this.stack.splice(this.stack.length - 17, 17);\n this.stack.push(flexArgs[2] + flexArgs[0], flexArgs[3] + flexArgs[1], flexArgs[4], flexArgs[5], flexArgs[6], flexArgs[7], flexArgs[8], flexArgs[9], flexArgs[10], flexArgs[11], flexArgs[12], flexArgs[13], flexArgs[14]);\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\n break;\n\n case (12 << 8) + 17:\n break;\n\n case (12 << 8) + 33:\n this.stack = [];\n break;\n\n default:\n (0, _util.warn)('Unknown type 1 charstring command of \"' + value + '\"');\n break;\n }\n\n if (error) {\n break;\n }\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 = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0;\n }\n\n this.stack.push(value);\n }\n\n return error;\n },\n\n executeCommand(howManyArgs, command, keepStack) {\n var stackLength = this.stack.length;\n\n if (howManyArgs > stackLength) {\n return true;\n }\n\n var start = stackLength - howManyArgs;\n\n for (var i = start; i < stackLength; i++) {\n var value = this.stack[i];\n\n if (Number.isInteger(value)) {\n this.output.push(28, value >> 8 & 0xff, value & 0xff);\n } else {\n value = 65536 * value | 0;\n this.output.push(255, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n }\n }\n\n this.output.push.apply(this.output, command);\n\n if (keepStack) {\n this.stack.splice(start, howManyArgs);\n } else {\n this.stack.length = 0;\n }\n\n return false;\n }\n\n };\n return Type1CharString;\n}();\n\nvar Type1Parser = function Type1ParserClosure() {\n var EEXEC_ENCRYPT_KEY = 55665;\n var CHAR_STRS_ENCRYPT_KEY = 4330;\n\n function isHexDigit(code) {\n return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102;\n }\n\n function decrypt(data, key, discardNumber) {\n if (discardNumber >= data.length) {\n return new Uint8Array(0);\n }\n\n var r = key | 0,\n c1 = 52845,\n c2 = 22719,\n i,\n j;\n\n for (i = 0; i < discardNumber; i++) {\n r = (data[i] + r) * c1 + c2 & (1 << 16) - 1;\n }\n\n var count = data.length - discardNumber;\n var decrypted = new Uint8Array(count);\n\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\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\n for (i = 0, j = 0; i < count; i++) {\n var digit1 = data[i];\n\n if (!isHexDigit(digit1)) {\n continue;\n }\n\n i++;\n var digit2;\n\n while (i < count && !isHexDigit(digit2 = data[i])) {\n i++;\n }\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\n return decrypted.slice(discardNumber, j);\n }\n\n function isSpecial(c) {\n return c === 0x2f || c === 0x5b || c === 0x5d || c === 0x7b || c === 0x7d || c === 0x28 || c === 0x29;\n }\n\n function Type1Parser(stream, encrypted, seacAnalysisEnabled) {\n if (encrypted) {\n var data = stream.getBytes();\n var isBinary = !((isHexDigit(data[0]) || (0, _core_utils.isWhiteSpace)(data[0])) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]) && isHexDigit(data[4]) && isHexDigit(data[5]) && isHexDigit(data[6]) && isHexDigit(data[7]));\n stream = new _stream.Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4));\n }\n\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n this.stream = stream;\n this.nextChar();\n }\n\n Type1Parser.prototype = {\n readNumberArray: function Type1Parser_readNumberArray() {\n this.getToken();\n var array = [];\n\n while (true) {\n var token = this.getToken();\n\n if (token === null || token === \"]\" || token === \"}\") {\n break;\n }\n\n array.push(parseFloat(token || 0));\n }\n\n return array;\n },\n readNumber: function Type1Parser_readNumber() {\n var token = this.getToken();\n return parseFloat(token || 0);\n },\n readInt: function Type1Parser_readInt() {\n var token = this.getToken();\n return parseInt(token || 0, 10) | 0;\n },\n readBoolean: function Type1Parser_readBoolean() {\n var token = this.getToken();\n return token === \"true\" ? 1 : 0;\n },\n nextChar: function Type1_nextChar() {\n return this.currentChar = this.stream.getByte();\n },\n getToken: function Type1Parser_getToken() {\n var comment = false;\n var ch = this.currentChar;\n\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 (!(0, _core_utils.isWhiteSpace)(ch)) {\n break;\n }\n\n ch = this.nextChar();\n }\n\n if (isSpecial(ch)) {\n this.nextChar();\n return String.fromCharCode(ch);\n }\n\n var token = \"\";\n\n do {\n token += String.fromCharCode(ch);\n ch = this.nextChar();\n } while (ch >= 0 && !(0, _core_utils.isWhiteSpace)(ch) && !isSpecial(ch));\n\n return token;\n },\n readCharStrings: function Type1Parser_readCharStrings(bytes, lenIV) {\n if (lenIV === -1) {\n return bytes;\n }\n\n return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n },\n extractFontProgram: function Type1Parser_extractFontProgram(properties) {\n var stream = this.stream;\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\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n\n token = this.getToken();\n\n switch (token) {\n case \"CharStrings\":\n this.getToken();\n this.getToken();\n this.getToken();\n this.getToken();\n\n while (true) {\n token = this.getToken();\n\n if (token === null || token === \"end\") {\n break;\n }\n\n if (token !== \"/\") {\n continue;\n }\n\n var glyph = this.getToken();\n length = this.readInt();\n this.getToken();\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();\n\n if (token === \"noaccess\") {\n this.getToken();\n }\n\n charstrings.push({\n glyph,\n encoded\n });\n }\n\n break;\n\n case \"Subrs\":\n this.readInt();\n this.getToken();\n\n while (this.getToken() === \"dup\") {\n const index = this.readInt();\n length = this.readInt();\n this.getToken();\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();\n\n if (token === \"noaccess\") {\n this.getToken();\n }\n\n subrs[index] = encoded;\n }\n\n break;\n\n case \"BlueValues\":\n case \"OtherBlues\":\n case \"FamilyBlues\":\n case \"FamilyOtherBlues\":\n var blueArray = this.readNumberArray();\n\n if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) {\n program.properties.privateData[token] = blueArray;\n }\n\n break;\n\n case \"StemSnapH\":\n case \"StemSnapV\":\n program.properties.privateData[token] = this.readNumberArray();\n break;\n\n case \"StdHW\":\n case \"StdVW\":\n program.properties.privateData[token] = this.readNumberArray()[0];\n break;\n\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\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(encoded, subrs, this.seacAnalysisEnabled);\n var output = charString.output;\n\n if (error) {\n output = [14];\n }\n\n const charStringObject = {\n glyphName: glyph,\n charstring: output,\n width: charString.width,\n lsb: charString.lsb,\n seac: charString.seac\n };\n\n if (glyph === \".notdef\") {\n program.charstrings.unshift(charStringObject);\n } else {\n program.charstrings.push(charStringObject);\n }\n\n if (properties.builtInEncoding) {\n const index = properties.builtInEncoding.indexOf(glyph);\n\n if (index > -1 && properties.widths[index] === undefined && index >= properties.firstChar && index <= properties.lastChar) {\n properties.widths[index] = charString.width;\n }\n }\n }\n\n return program;\n },\n extractFontHeader: function Type1Parser_extractFontHeader(properties) {\n var token;\n\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n\n token = this.getToken();\n\n switch (token) {\n case \"FontMatrix\":\n var matrix = this.readNumberArray();\n properties.fontMatrix = matrix;\n break;\n\n case \"Encoding\":\n var encodingArg = this.getToken();\n var encoding;\n\n if (!/^\\d+$/.test(encodingArg)) {\n encoding = (0, _encodings.getEncoding)(encodingArg);\n } else {\n encoding = [];\n var size = parseInt(encodingArg, 10) | 0;\n this.getToken();\n\n for (var j = 0; j < size; j++) {\n token = this.getToken();\n\n while (token !== \"dup\" && token !== \"def\") {\n token = this.getToken();\n\n if (token === null) {\n return;\n }\n }\n\n if (token === \"def\") {\n break;\n }\n\n var index = this.readInt();\n this.getToken();\n var glyph = this.getToken();\n encoding[index] = glyph;\n this.getToken();\n }\n }\n\n properties.builtInEncoding = encoding;\n break;\n\n case \"FontBBox\":\n var fontBBox = this.readNumberArray();\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 return Type1Parser;\n}();\n\nexports.Type1Parser = Type1Parser;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTilingPatternIR = getTilingPatternIR;\nexports.Pattern = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\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 function Pattern() {\n (0, _util.unreachable)(\"should not call Pattern constructor\");\n }\n\n Pattern.prototype = {\n getPattern: function Pattern_getPattern(ctx) {\n (0, _util.unreachable)(`Should not call Pattern.getStyle: ${ctx}`);\n }\n };\n\n Pattern.parseShading = function (shading, matrix, xref, res, handler, pdfFunctionFactory, localColorSpaceCache) {\n var dict = (0, _primitives.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 return new Shadings.RadialAxial(dict, matrix, xref, res, pdfFunctionFactory, localColorSpaceCache);\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(shading, matrix, xref, res, pdfFunctionFactory, localColorSpaceCache);\n\n default:\n throw new _util.FormatError(\"Unsupported ShadingType: \" + type);\n }\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.shadingPattern\n });\n (0, _util.warn)(ex);\n return new Shadings.Dummy();\n }\n };\n\n return Pattern;\n}();\n\nexports.Pattern = Pattern;\nvar Shadings = {};\nShadings.SMALL_NUMBER = 1e-6;\n\nShadings.RadialAxial = function RadialAxialClosure() {\n function RadialAxial(dict, matrix, xref, resources, pdfFunctionFactory, localColorSpaceCache) {\n this.matrix = matrix;\n this.coordsArr = dict.getArray(\"Coords\");\n this.shadingType = dict.get(\"ShadingType\");\n this.type = \"Pattern\";\n\n const cs = _colorspace.ColorSpace.parse({\n cs: dict.getRaw(\"ColorSpace\") || dict.getRaw(\"CS\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache\n });\n\n this.cs = cs;\n const bbox = dict.getArray(\"BBox\");\n\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = _util.Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n\n var t0 = 0.0,\n t1 = 1.0;\n\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\n if (dict.has(\"Extend\")) {\n var extendArr = dict.getArray(\"Extend\");\n extendStart = extendArr[0];\n extendEnd = extendArr[1];\n }\n\n if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) {\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\n if (r1 <= r2 + distance && r2 <= r1 + distance) {\n (0, _util.warn)(\"Unsupported radial gradient.\");\n }\n }\n\n this.extendStart = extendStart;\n this.extendEnd = extendEnd;\n var fnObj = dict.getRaw(\"Function\");\n var fn = pdfFunctionFactory.createFromArray(fnObj);\n const NUMBER_OF_SAMPLES = 10;\n const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n var colorStops = this.colorStops = [];\n\n if (t0 >= t1 || step <= 0) {\n (0, _util.info)(\"Bad shading domain.\");\n return;\n }\n\n var color = new Float32Array(cs.numComps),\n ratio = new Float32Array(1);\n var rgbColor;\n\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\n var cssColor = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n\n colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]);\n }\n\n var background = \"transparent\";\n\n if (dict.has(\"Background\")) {\n rgbColor = cs.getRgb(dict.get(\"Background\"), 0);\n background = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n }\n\n if (!extendStart) {\n colorStops.unshift([0, background]);\n colorStops[1][0] += Shadings.SMALL_NUMBER;\n }\n\n if (!extendEnd) {\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\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 (0, _util.unreachable)(`getPattern type unknown: ${shadingType}`);\n }\n\n var matrix = this.matrix;\n\n if (matrix) {\n p0 = _util.Util.applyTransform(p0, matrix);\n p1 = _util.Util.applyTransform(p1, matrix);\n\n if (shadingType === ShadingType.RADIAL) {\n var scale = _util.Util.singularValueDecompose2dScale(matrix);\n\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 return RadialAxial;\n}();\n\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 var numComps = context.numComps;\n this.tmpCompsBuf = new Float32Array(numComps);\n var csNumComps = context.colorSpace.numComps;\n this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf;\n }\n\n MeshStreamReader.prototype = {\n get hasData() {\n if (this.stream.end) {\n return this.stream.pos < this.stream.end;\n }\n\n if (this.bufferLength > 0) {\n return true;\n }\n\n var nextByte = this.stream.getByte();\n\n if (nextByte < 0) {\n return false;\n }\n\n this.buffer = nextByte;\n this.bufferLength = 8;\n return true;\n },\n\n readBits: function MeshStreamReader_readBits(n) {\n var buffer = this.buffer;\n var bufferLength = this.bufferLength;\n\n if (n === 32) {\n if (bufferLength === 0) {\n return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0;\n }\n\n buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte();\n var nextByte = this.stream.getByte();\n this.buffer = nextByte & (1 << bufferLength) - 1;\n return (buffer << 8 - bufferLength | (nextByte & 0xff) >> bufferLength) >>> 0;\n }\n\n if (n === 8 && bufferLength === 0) {\n return this.stream.getByte();\n }\n\n while (bufferLength < n) {\n buffer = buffer << 8 | this.stream.getByte();\n bufferLength += 8;\n }\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 = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10;\n return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]];\n },\n readComponents: function MeshStreamReader_readComponents() {\n var numComps = this.context.numComps;\n var bitsPerComponent = this.context.bitsPerComponent;\n var scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10;\n var decode = this.context.decode;\n var components = this.tmpCompsBuf;\n\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\n var color = this.tmpCsCompsBuf;\n\n if (this.context.colorFn) {\n this.context.colorFn(components, 0, color, 0);\n }\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 = [];\n var verticesLeft = 0;\n\n while (reader.hasData) {\n var f = reader.readFlag();\n var coord = reader.readCoordinate();\n var color = reader.readComponents();\n\n if (verticesLeft === 0) {\n if (!(0 <= f && f <= 2)) {\n throw new _util.FormatError(\"Unknown type4 flag\");\n }\n\n switch (f) {\n case 0:\n verticesLeft = 3;\n break;\n\n case 1:\n ps.push(ps[ps.length - 2], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n\n case 2:\n ps.push(ps[ps.length - 3], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n }\n\n operators.push(f);\n }\n\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n verticesLeft--;\n reader.align();\n }\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 = [];\n\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\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 var TRIANGLE_DENSITY = 20;\n\n var getB = function getBClosure() {\n function buildB(count) {\n var lut = [];\n\n for (var i = 0; i <= count; i++) {\n var t = i / count,\n t_ = 1 - t;\n lut.push(new Float32Array([t_ * t_ * t_, 3 * t * t_ * t_, 3 * t * t * t_, t * t * t]));\n }\n\n return lut;\n }\n\n var cache = [];\n return function getB(count) {\n if (!cache[count]) {\n cache[count] = buildB(count);\n }\n\n return cache[count];\n };\n }();\n\n function buildFigureFromPatch(mesh, index) {\n var figure = mesh.figures[index];\n (0, _util.assert)(figure.type === \"patch\", \"Unexpected patch mesh figure\");\n var coords = mesh.coords,\n colors = mesh.colors;\n var pi = figure.coords;\n var ci = figure.colors;\n var figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n var figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n var figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n var figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n var splitXBy = Math.ceil((figureMaxX - figureMinX) * TRIANGLE_DENSITY / (mesh.bounds[2] - mesh.bounds[0]));\n splitXBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy));\n var splitYBy = Math.ceil((figureMaxY - figureMinY) * TRIANGLE_DENSITY / (mesh.bounds[3] - mesh.bounds[1]));\n splitYBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy));\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\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 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 ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) {\n continue;\n }\n\n var x = 0,\n y = 0;\n var q = 0;\n\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\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\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 mesh.figures[index] = {\n type: \"lattice\",\n coords: figureCoords,\n colors: figureColors,\n verticesPerRow\n };\n }\n\n function decodeType6Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = new Int32Array(16);\n var cs = new Int32Array(4);\n\n while (reader.hasData) {\n var f = reader.readFlag();\n\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError(\"Unknown type6 flag\");\n }\n\n var i, ii;\n var pi = coords.length;\n\n for (i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n\n var ci = colors.length;\n\n for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n\n var tmp1, tmp2, tmp3, tmp4;\n\n switch (f) {\n case 0:\n ps[12] = pi + 3;\n ps[13] = pi + 4;\n ps[14] = pi + 5;\n ps[15] = pi + 6;\n ps[8] = pi + 2;\n ps[11] = pi + 7;\n ps[4] = pi + 1;\n ps[7] = pi + 8;\n ps[0] = pi;\n ps[1] = pi + 11;\n ps[2] = pi + 10;\n ps[3] = pi + 9;\n cs[2] = ci + 1;\n cs[3] = ci + 2;\n cs[0] = ci;\n cs[1] = ci + 3;\n break;\n\n case 1:\n tmp1 = ps[12];\n tmp2 = ps[13];\n tmp3 = ps[14];\n tmp4 = ps[15];\n ps[12] = tmp4;\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = tmp3;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[2];\n tmp2 = cs[3];\n cs[2] = tmp2;\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[7];\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1];\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n\n case 3:\n ps[12] = ps[0];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[1];\n ps[11] = pi + 3;\n ps[4] = ps[2];\n ps[7] = pi + 4;\n ps[0] = ps[3];\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n cs[2] = cs[0];\n cs[3] = ci;\n cs[0] = cs[1];\n cs[1] = ci + 1;\n break;\n }\n\n ps[5] = coords.length;\n coords.push([(-4 * coords[ps[0]][0] - coords[ps[15]][0] + 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, (-4 * coords[ps[0]][1] - coords[ps[15]][1] + 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9]);\n ps[6] = coords.length;\n coords.push([(-4 * coords[ps[3]][0] - coords[ps[12]][0] + 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, (-4 * coords[ps[3]][1] - coords[ps[12]][1] + 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9]);\n ps[9] = coords.length;\n coords.push([(-4 * coords[ps[12]][0] - coords[ps[3]][0] + 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, (-4 * coords[ps[12]][1] - coords[ps[3]][1] + 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9]);\n ps[10] = coords.length;\n coords.push([(-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9]);\n mesh.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps),\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);\n var cs = new Int32Array(4);\n\n while (reader.hasData) {\n var f = reader.readFlag();\n\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError(\"Unknown type7 flag\");\n }\n\n var i, ii;\n var pi = coords.length;\n\n for (i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n\n var ci = colors.length;\n\n for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n\n var tmp1, tmp2, tmp3, tmp4;\n\n switch (f) {\n case 0:\n ps[12] = pi + 3;\n ps[13] = pi + 4;\n ps[14] = pi + 5;\n ps[15] = pi + 6;\n ps[8] = pi + 2;\n ps[9] = pi + 13;\n ps[10] = pi + 14;\n ps[11] = pi + 7;\n ps[4] = pi + 1;\n ps[5] = pi + 12;\n ps[6] = pi + 15;\n ps[7] = pi + 8;\n ps[0] = pi;\n ps[1] = pi + 11;\n ps[2] = pi + 10;\n ps[3] = pi + 9;\n cs[2] = ci + 1;\n cs[3] = ci + 2;\n cs[0] = ci;\n cs[1] = ci + 3;\n break;\n\n case 1:\n tmp1 = ps[12];\n tmp2 = ps[13];\n tmp3 = ps[14];\n tmp4 = ps[15];\n ps[12] = tmp4;\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = tmp3;\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[2];\n tmp2 = cs[3];\n cs[2] = tmp2;\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[7];\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1];\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n\n case 3:\n ps[12] = ps[0];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[1];\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = ps[2];\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = ps[3];\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n cs[2] = cs[0];\n cs[3] = ci;\n cs[0] = cs[1];\n cs[1] = ci + 1;\n break;\n }\n\n mesh.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps),\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\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\n mesh.bounds = [minX, minY, maxX, maxY];\n }\n\n function packData(mesh) {\n var i, ii, j, jj;\n var coords = mesh.coords;\n var coordsPacked = new Float32Array(coords.length * 2);\n\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\n mesh.coords = coordsPacked;\n var colors = mesh.colors;\n var colorsPacked = new Uint8Array(colors.length * 3);\n\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\n mesh.colors = colorsPacked;\n var figures = mesh.figures;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n\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, resources, pdfFunctionFactory, localColorSpaceCache) {\n if (!(0, _primitives.isStream)(stream)) {\n throw new _util.FormatError(\"Mesh data is not a stream\");\n }\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\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = _util.Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n\n const cs = _colorspace.ColorSpace.parse({\n cs: dict.getRaw(\"ColorSpace\") || dict.getRaw(\"CS\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache\n });\n\n this.cs = cs;\n this.background = dict.has(\"Background\") ? cs.getRgb(dict.get(\"Background\"), 0) : null;\n var fnObj = dict.getRaw(\"Function\");\n var fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n this.coords = [];\n this.colors = [];\n this.figures = [];\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 var patchMesh = false;\n\n switch (this.shadingType) {\n case ShadingType.FREE_FORM_MESH:\n decodeType4Shading(this, reader);\n break;\n\n case ShadingType.LATTICE_FORM_MESH:\n var verticesPerRow = dict.get(\"VerticesPerRow\") | 0;\n\n if (verticesPerRow < 2) {\n throw new _util.FormatError(\"Invalid VerticesPerRow\");\n }\n\n decodeType5Shading(this, reader, verticesPerRow);\n break;\n\n case ShadingType.COONS_PATCH_MESH:\n decodeType6Shading(this, reader);\n patchMesh = true;\n break;\n\n case ShadingType.TENSOR_PATCH_MESH:\n decodeType7Shading(this, reader);\n patchMesh = true;\n break;\n\n default:\n (0, _util.unreachable)(\"Unsupported mesh type.\");\n break;\n }\n\n if (patchMesh) {\n updateBounds(this);\n\n for (var i = 0, ii = this.figures.length; i < ii; i++) {\n buildFigureFromPatch(this, i);\n }\n }\n\n updateBounds(this);\n packData(this);\n }\n\n Mesh.prototype = {\n getIR: function Mesh_getIR() {\n return [\"Mesh\", this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.matrix, this.bbox, this.background];\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\n const bbox = _util.Util.normalizeRect(dict.getArray(\"BBox\"));\n\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 if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n throw new _util.FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);\n }\n\n return [\"TilingPattern\", args, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType];\n}\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isPDFFunction = isPDFFunction;\nexports.PostScriptCompiler = exports.PostScriptEvaluator = exports.PDFFunctionFactory = void 0;\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _ps_parser = __w_pdfjs_require__(41);\n\nvar _image_utils = __w_pdfjs_require__(24);\n\nclass PDFFunctionFactory {\n constructor({\n xref,\n isEvalSupported = true\n }) {\n this.xref = xref;\n this.isEvalSupported = isEvalSupported !== false;\n this._localFunctionCache = null;\n }\n\n create(fn) {\n const cachedFunction = this.getCached(fn);\n\n if (cachedFunction) {\n return cachedFunction;\n }\n\n const parsedFunction = PDFFunction.parse({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fn: fn instanceof _primitives.Ref ? this.xref.fetch(fn) : fn\n });\n\n this._cache(fn, parsedFunction);\n\n return parsedFunction;\n }\n\n createFromArray(fnObj) {\n const cachedFunction = this.getCached(fnObj);\n\n if (cachedFunction) {\n return cachedFunction;\n }\n\n const parsedFunction = PDFFunction.parseArray({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fnObj: fnObj instanceof _primitives.Ref ? this.xref.fetch(fnObj) : fnObj\n });\n\n this._cache(fnObj, parsedFunction);\n\n return parsedFunction;\n }\n\n getCached(cacheKey) {\n let fnRef;\n\n if (cacheKey instanceof _primitives.Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof _primitives.Dict) {\n fnRef = cacheKey.objId;\n } else if ((0, _primitives.isStream)(cacheKey)) {\n fnRef = cacheKey.dict && cacheKey.dict.objId;\n }\n\n if (fnRef) {\n if (!this._localFunctionCache) {\n this._localFunctionCache = new _image_utils.LocalFunctionCache();\n }\n\n const localFunction = this._localFunctionCache.getByRef(fnRef);\n\n if (localFunction) {\n return localFunction;\n }\n }\n\n return null;\n }\n\n _cache(cacheKey, parsedFunction) {\n if (!parsedFunction) {\n throw new Error('PDFFunctionFactory._cache - expected \"parsedFunction\" argument.');\n }\n\n let fnRef;\n\n if (cacheKey instanceof _primitives.Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof _primitives.Dict) {\n fnRef = cacheKey.objId;\n } else if ((0, _primitives.isStream)(cacheKey)) {\n fnRef = cacheKey.dict && cacheKey.dict.objId;\n }\n\n if (fnRef) {\n if (!this._localFunctionCache) {\n this._localFunctionCache = new _image_utils.LocalFunctionCache();\n }\n\n this._localFunctionCache.set(null, fnRef, parsedFunction);\n }\n }\n\n}\n\nexports.PDFFunctionFactory = PDFFunctionFactory;\n\nfunction toNumberArray(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n\n const length = arr.length;\n\n for (let i = 0; i < length; i++) {\n if (typeof arr[i] !== \"number\") {\n const result = new Array(length);\n\n for (let j = 0; j < length; j++) {\n result[j] = +arr[j];\n }\n\n return result;\n }\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 return {\n getSampleArray(size, outputSize, bps, stream) {\n var i, ii;\n var length = 1;\n\n for (i = 0, ii = size.length; i < ii; i++) {\n length *= size[i];\n }\n\n length *= outputSize;\n var array = new Array(length);\n var codeSize = 0;\n var codeBuf = 0;\n var sampleMul = 1.0 / (2.0 ** bps - 1);\n var strBytes = stream.getBytes((length * bps + 7) / 8);\n var strIdx = 0;\n\n for (i = 0; i < length; i++) {\n while (codeSize < bps) {\n codeBuf <<= 8;\n codeBuf |= strBytes[strIdx++];\n codeSize += 8;\n }\n\n codeSize -= bps;\n array[i] = (codeBuf >> codeSize) * sampleMul;\n codeBuf &= (1 << codeSize) - 1;\n }\n\n return array;\n },\n\n getIR({\n xref,\n isEvalSupported,\n fn\n }) {\n var dict = fn.dict;\n\n if (!dict) {\n dict = fn;\n }\n\n var types = [this.constructSampled, null, this.constructInterpolated, this.constructStiched, this.constructPostScript];\n var typeNum = dict.get(\"FunctionType\");\n var typeFn = types[typeNum];\n\n if (!typeFn) {\n throw new _util.FormatError(\"Unknown type of function\");\n }\n\n return typeFn.call(this, {\n xref,\n isEvalSupported,\n fn,\n dict\n });\n },\n\n fromIR({\n xref,\n isEvalSupported,\n IR\n }) {\n var type = IR[0];\n\n switch (type) {\n case CONSTRUCT_SAMPLED:\n return this.constructSampledFromIR({\n xref,\n isEvalSupported,\n IR\n });\n\n case CONSTRUCT_INTERPOLATED:\n return this.constructInterpolatedFromIR({\n xref,\n isEvalSupported,\n IR\n });\n\n case CONSTRUCT_STICHED:\n return this.constructStichedFromIR({\n xref,\n isEvalSupported,\n IR\n });\n\n default:\n return this.constructPostScriptFromIR({\n xref,\n isEvalSupported,\n IR\n });\n }\n },\n\n parse({\n xref,\n isEvalSupported,\n fn\n }) {\n const IR = this.getIR({\n xref,\n isEvalSupported,\n fn\n });\n return this.fromIR({\n xref,\n isEvalSupported,\n IR\n });\n },\n\n parseArray({\n xref,\n isEvalSupported,\n fnObj\n }) {\n if (!Array.isArray(fnObj)) {\n return this.parse({\n xref,\n isEvalSupported,\n fn: fnObj\n });\n }\n\n var fnArray = [];\n\n for (var j = 0, jj = fnObj.length; j < jj; j++) {\n fnArray.push(this.parse({\n xref,\n isEvalSupported,\n fn: xref.fetchIfRef(fnObj[j])\n }));\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({\n xref,\n isEvalSupported,\n fn,\n dict\n }) {\n function toMultiArray(arr) {\n var inputLength = arr.length;\n var out = [];\n var index = 0;\n\n for (var i = 0; i < inputLength; i += 2) {\n out[index] = [arr[i], arr[i + 1]];\n ++index;\n }\n\n return out;\n }\n\n var domain = toNumberArray(dict.getArray(\"Domain\"));\n var range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain || !range) {\n throw new _util.FormatError(\"No domain or range\");\n }\n\n var inputSize = domain.length / 2;\n var outputSize = range.length / 2;\n domain = toMultiArray(domain);\n range = toMultiArray(range);\n var size = toNumberArray(dict.getArray(\"Size\"));\n var bps = dict.get(\"BitsPerSample\");\n var order = dict.get(\"Order\") || 1;\n\n if (order !== 1) {\n (0, _util.info)(\"No support for cubic spline interpolation: \" + order);\n }\n\n var encode = toNumberArray(dict.getArray(\"Encode\"));\n\n if (!encode) {\n encode = [];\n\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\n if (!decode) {\n decode = range;\n } else {\n decode = toMultiArray(decode);\n }\n\n var samples = this.getSampleArray(size, outputSize, bps, fn);\n return [CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, outputSize, 2 ** bps - 1, range];\n },\n\n constructSampledFromIR({\n xref,\n isEvalSupported,\n IR\n }) {\n function interpolate(x, xmin, xmax, ymin, ymax) {\n return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n }\n\n return function constructSampledFromIRResult(src, srcOffset, dest, destOffset) {\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 range = IR[9];\n var cubeVertices = 1 << m;\n var cubeN = new Float64Array(cubeVertices);\n var cubeVertex = new Uint32Array(cubeVertices);\n var i, j;\n\n for (j = 0; j < cubeVertices; j++) {\n cubeN[j] = 1;\n }\n\n var k = n,\n pos = 1;\n\n for (i = 0; i < m; ++i) {\n var domain_2i = domain[i][0];\n var domain_2i_1 = domain[i][1];\n var xi = Math.min(Math.max(src[srcOffset + i], domain_2i), domain_2i_1);\n var e = interpolate(xi, domain_2i, domain_2i_1, encode[i][0], encode[i][1]);\n var size_i = size[i];\n e = Math.min(Math.max(e, 0), size_i - 1);\n var e0 = e < size_i - 1 ? Math.floor(e) : e - 1;\n var n0 = e0 + 1 - e;\n var n1 = e - e0;\n var offset0 = e0 * k;\n var offset1 = offset0 + k;\n\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 var rj = 0;\n\n for (i = 0; i < cubeVertices; i++) {\n rj += samples[cubeVertex[i] + j] * cubeN[i];\n }\n\n rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n }\n };\n },\n\n constructInterpolated({\n xref,\n isEvalSupported,\n fn,\n dict\n }) {\n var c0 = toNumberArray(dict.getArray(\"C0\")) || [0];\n var c1 = toNumberArray(dict.getArray(\"C1\")) || [1];\n var n = dict.get(\"N\");\n var length = c0.length;\n var diff = [];\n\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({\n xref,\n isEvalSupported,\n IR\n }) {\n var c0 = IR[1];\n var diff = IR[2];\n var n = IR[3];\n var length = diff.length;\n return function constructInterpolatedFromIRResult(src, srcOffset, dest, destOffset) {\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({\n xref,\n isEvalSupported,\n fn,\n dict\n }) {\n var domain = toNumberArray(dict.getArray(\"Domain\"));\n\n if (!domain) {\n throw new _util.FormatError(\"No domain\");\n }\n\n var inputSize = domain.length / 2;\n\n if (inputSize !== 1) {\n throw new _util.FormatError(\"Bad domain for stiched function\");\n }\n\n var fnRefs = dict.get(\"Functions\");\n var fns = [];\n\n for (var i = 0, ii = fnRefs.length; i < ii; ++i) {\n fns.push(this.parse({\n xref,\n isEvalSupported,\n fn: xref.fetchIfRef(fnRefs[i])\n }));\n }\n\n var bounds = toNumberArray(dict.getArray(\"Bounds\"));\n var encode = toNumberArray(dict.getArray(\"Encode\"));\n return [CONSTRUCT_STICHED, domain, bounds, encode, fns];\n },\n\n constructStichedFromIR({\n xref,\n isEvalSupported,\n IR\n }) {\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 return function constructStichedFromIRResult(src, srcOffset, dest, destOffset) {\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\n return v;\n };\n\n var v = clip(src[srcOffset], domain[0], domain[1]);\n\n for (var i = 0, ii = bounds.length; i < ii; ++i) {\n if (v < bounds[i]) {\n break;\n }\n }\n\n var dmin = domain[0];\n\n if (i > 0) {\n dmin = bounds[i - 1];\n }\n\n var dmax = domain[1];\n\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 tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin);\n fns[i](tmpBuf, 0, dest, destOffset);\n };\n },\n\n constructPostScript({\n xref,\n isEvalSupported,\n fn,\n dict\n }) {\n var domain = toNumberArray(dict.getArray(\"Domain\"));\n var range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain) {\n throw new _util.FormatError(\"No domain.\");\n }\n\n if (!range) {\n throw new _util.FormatError(\"No range.\");\n }\n\n var lexer = new _ps_parser.PostScriptLexer(fn);\n var parser = new _ps_parser.PostScriptParser(lexer);\n var code = parser.parse();\n return [CONSTRUCT_POSTSCRIPT, domain, range, code];\n },\n\n constructPostScriptFromIR({\n xref,\n isEvalSupported,\n IR\n }) {\n var domain = IR[1];\n var range = IR[2];\n var code = IR[3];\n\n if (isEvalSupported && _util.IsEvalSupportedCached.value) {\n const compiled = new PostScriptCompiler().compile(code, domain, range);\n\n if (compiled) {\n return new Function(\"src\", \"srcOffset\", \"dest\", \"destOffset\", compiled);\n }\n }\n\n (0, _util.info)(\"Unable to compile PS function\");\n var numOutputs = range.length >> 1;\n var numInputs = domain.length >> 1;\n var evaluator = new PostScriptEvaluator(code);\n var cache = Object.create(null);\n var MAX_CACHE_SIZE = 2048 * 4;\n var cache_available = MAX_CACHE_SIZE;\n var tmpBuf = new Float32Array(numInputs);\n return function constructPostScriptFromIRResult(src, srcOffset, dest, destOffset) {\n var i, value;\n var key = \"\";\n var input = tmpBuf;\n\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\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\n for (i = 0; i < numOutputs; i++) {\n value = stack[stackIndex + i];\n var bound = range[i * 2];\n\n if (value < bound) {\n value = bound;\n } else {\n bound = range[i * 2 + 1];\n\n if (value > bound) {\n value = bound;\n }\n }\n\n output[i] = value;\n }\n\n if (cache_available > 0) {\n cache_available--;\n cache[key] = output;\n }\n\n dest.set(output, destOffset);\n };\n }\n\n };\n}();\n\nfunction isPDFFunction(v) {\n var fnDict;\n\n if (typeof v !== \"object\") {\n return false;\n } else if ((0, _primitives.isDict)(v)) {\n fnDict = v;\n } else if ((0, _primitives.isStream)(v)) {\n fnDict = v.dict;\n } else {\n return false;\n }\n\n return fnDict.has(\"FunctionType\");\n}\n\nvar PostScriptStack = function PostScriptStackClosure() {\n var MAX_STACK_SIZE = 100;\n\n function PostScriptStack(initialStack) {\n this.stack = !initialStack ? [] : 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\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\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\n var stack = this.stack;\n\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 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\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\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\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}();\n\nvar PostScriptEvaluator = function PostScriptEvaluatorClosure() {\n function PostScriptEvaluator(operators) {\n this.operators = operators;\n }\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\n while (counter < length) {\n operator = operators[counter++];\n\n if (typeof operator === \"number\") {\n stack.push(operator);\n continue;\n }\n\n switch (operator) {\n case \"jz\":\n b = stack.pop();\n a = stack.pop();\n\n if (!a) {\n counter = b;\n }\n\n break;\n\n case \"j\":\n a = stack.pop();\n counter = a;\n break;\n\n case \"abs\":\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n\n case \"add\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a + b);\n break;\n\n case \"and\":\n b = stack.pop();\n a = stack.pop();\n\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a && b);\n } else {\n stack.push(a & b);\n }\n\n break;\n\n case \"atan\":\n a = stack.pop();\n stack.push(Math.atan(a));\n break;\n\n case \"bitshift\":\n b = stack.pop();\n a = stack.pop();\n\n if (a > 0) {\n stack.push(a << b);\n } else {\n stack.push(a >> b);\n }\n\n break;\n\n case \"ceiling\":\n a = stack.pop();\n stack.push(Math.ceil(a));\n break;\n\n case \"copy\":\n a = stack.pop();\n stack.copy(a);\n break;\n\n case \"cos\":\n a = stack.pop();\n stack.push(Math.cos(a));\n break;\n\n case \"cvi\":\n a = stack.pop() | 0;\n stack.push(a);\n break;\n\n case \"cvr\":\n break;\n\n case \"div\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b);\n break;\n\n case \"dup\":\n stack.copy(1);\n break;\n\n case \"eq\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a === b);\n break;\n\n case \"exch\":\n stack.roll(2, 1);\n break;\n\n case \"exp\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a ** b);\n break;\n\n case \"false\":\n stack.push(false);\n break;\n\n case \"floor\":\n a = stack.pop();\n stack.push(Math.floor(a));\n break;\n\n case \"ge\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a >= b);\n break;\n\n case \"gt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a > b);\n break;\n\n case \"idiv\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b | 0);\n break;\n\n case \"index\":\n a = stack.pop();\n stack.index(a);\n break;\n\n case \"le\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a <= b);\n break;\n\n case \"ln\":\n a = stack.pop();\n stack.push(Math.log(a));\n break;\n\n case \"log\":\n a = stack.pop();\n stack.push(Math.log(a) / Math.LN10);\n break;\n\n case \"lt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a < b);\n break;\n\n case \"mod\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a % b);\n break;\n\n case \"mul\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a * b);\n break;\n\n case \"ne\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a !== b);\n break;\n\n case \"neg\":\n a = stack.pop();\n stack.push(-a);\n break;\n\n case \"not\":\n a = stack.pop();\n\n if ((0, _util.isBool)(a)) {\n stack.push(!a);\n } else {\n stack.push(~a);\n }\n\n break;\n\n case \"or\":\n b = stack.pop();\n a = stack.pop();\n\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a || b);\n } else {\n stack.push(a | b);\n }\n\n break;\n\n case \"pop\":\n stack.pop();\n break;\n\n case \"roll\":\n b = stack.pop();\n a = stack.pop();\n stack.roll(a, b);\n break;\n\n case \"round\":\n a = stack.pop();\n stack.push(Math.round(a));\n break;\n\n case \"sin\":\n a = stack.pop();\n stack.push(Math.sin(a));\n break;\n\n case \"sqrt\":\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n\n case \"sub\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a - b);\n break;\n\n case \"true\":\n stack.push(true);\n break;\n\n case \"truncate\":\n a = stack.pop();\n a = a < 0 ? Math.ceil(a) : Math.floor(a);\n stack.push(a);\n break;\n\n case \"xor\":\n b = stack.pop();\n a = stack.pop();\n\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a !== b);\n } else {\n stack.push(a ^ b);\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Unknown operator ${operator}`);\n }\n }\n\n return stack.stack;\n }\n };\n return PostScriptEvaluator;\n}();\n\nexports.PostScriptEvaluator = PostScriptEvaluator;\n\nvar PostScriptCompiler = function PostScriptCompilerClosure() {\n function AstNode(type) {\n this.type = type;\n }\n\n AstNode.prototype.visit = function (visitor) {\n (0, _util.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\n AstArgument.prototype = Object.create(AstNode.prototype);\n\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\n AstLiteral.prototype = Object.create(AstNode.prototype);\n\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\n AstBinaryOperation.prototype = Object.create(AstNode.prototype);\n\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\n AstMin.prototype = Object.create(AstNode.prototype);\n\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\n AstVariable.prototype = Object.create(AstNode.prototype);\n\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\n AstVariableDefinition.prototype = Object.create(AstNode.prototype);\n\n AstVariableDefinition.prototype.visit = function (visitor) {\n visitor.visitVariableDefinition(this);\n };\n\n function ExpressionBuilderVisitor() {\n this.parts = [];\n }\n\n ExpressionBuilderVisitor.prototype = {\n visitArgument(arg) {\n this.parts.push(\"Math.max(\", arg.min, \", Math.min(\", arg.max, \", src[srcOffset + \", arg.index, \"]))\");\n },\n\n visitVariable(variable) {\n this.parts.push(\"v\", variable.index);\n },\n\n visitLiteral(literal) {\n this.parts.push(literal.number);\n },\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\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\n visitMin(max) {\n this.parts.push(\"Math.min(\");\n max.arg.visit(this);\n this.parts.push(\", \", max.max, \")\");\n },\n\n toString() {\n return this.parts.join(\"\");\n }\n\n };\n\n function buildAddOperation(num1, num2) {\n if (num2.type === \"literal\" && num2.number === 0) {\n return num1;\n }\n\n if (num1.type === \"literal\" && num1.number === 0) {\n return num2;\n }\n\n if (num2.type === \"literal\" && num1.type === \"literal\") {\n return new AstLiteral(num1.number + num2.number);\n }\n\n return new AstBinaryOperation(\"+\", num1, num2, num1.min + num2.min, num1.max + num2.max);\n }\n\n function buildMulOperation(num1, num2) {\n if (num2.type === \"literal\") {\n if (num2.number === 0) {\n return new AstLiteral(0);\n } else if (num2.number === 1) {\n return num1;\n } else if (num1.type === \"literal\") {\n return new AstLiteral(num1.number * num2.number);\n }\n }\n\n if (num1.type === \"literal\") {\n if (num1.number === 0) {\n return new AstLiteral(0);\n } else if (num1.number === 1) {\n return num2;\n }\n }\n\n var min = Math.min(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n var max = Math.max(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n return new AstBinaryOperation(\"*\", num1, num2, min, max);\n }\n\n function buildSubOperation(num1, num2) {\n if (num2.type === \"literal\") {\n if (num2.number === 0) {\n return num1;\n } else if (num1.type === \"literal\") {\n return new AstLiteral(num1.number - num2.number);\n }\n }\n\n if (num2.type === \"binary\" && num2.op === \"-\" && num1.type === \"literal\" && num1.number === 1 && num2.arg1.type === \"literal\" && num2.arg1.number === 1) {\n return num2.arg2;\n }\n\n return new AstBinaryOperation(\"-\", num1, num2, num1.min - num2.max, num1.max - num2.min);\n }\n\n function buildMinOperation(num1, max) {\n if (num1.min >= max) {\n return new AstLiteral(max);\n } else if (num1.max <= max) {\n return num1;\n }\n\n return new AstMin(num1, max);\n }\n\n function PostScriptCompiler() {}\n\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\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\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\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildAddOperation(num1, num2));\n break;\n\n case \"cvr\":\n if (stack.length < 1) {\n return null;\n }\n\n break;\n\n case \"mul\":\n if (stack.length < 2) {\n return null;\n }\n\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildMulOperation(num1, num2));\n break;\n\n case \"sub\":\n if (stack.length < 2) {\n return null;\n }\n\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildSubOperation(num1, num2));\n break;\n\n case \"exch\":\n if (stack.length < 2) {\n return null;\n }\n\n ast1 = stack.pop();\n ast2 = stack.pop();\n stack.push(ast1, ast2);\n break;\n\n case \"pop\":\n if (stack.length < 1) {\n return null;\n }\n\n stack.pop();\n break;\n\n case \"index\":\n if (stack.length < 1) {\n return null;\n }\n\n num1 = stack.pop();\n\n if (num1.type !== \"literal\") {\n return null;\n }\n\n n = num1.number;\n\n if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n return null;\n }\n\n ast1 = stack[stack.length - n - 1];\n\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n stack.push(ast1);\n break;\n }\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\n case \"dup\":\n if (stack.length < 1) {\n return null;\n }\n\n if (typeof code[i + 1] === \"number\" && code[i + 2] === \"gt\" && code[i + 3] === i + 7 && code[i + 4] === \"jz\" && code[i + 5] === \"pop\" && code[i + 6] === code[i + 1]) {\n num1 = stack.pop();\n stack.push(buildMinOperation(num1, code[i + 1]));\n i += 6;\n break;\n }\n\n ast1 = stack[stack.length - 1];\n\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n stack.push(ast1);\n break;\n }\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\n case \"roll\":\n if (stack.length < 2) {\n return null;\n }\n\n num2 = stack.pop();\n num1 = stack.pop();\n\n if (num2.type !== \"literal\" || num1.type !== \"literal\") {\n return null;\n }\n\n j = num2.number;\n n = num1.number;\n\n if (n <= 0 || !Number.isInteger(n) || !Number.isInteger(j) || stack.length < n) {\n return null;\n }\n\n j = (j % n + n) % n;\n\n if (j === 0) {\n break;\n }\n\n Array.prototype.push.apply(stack, stack.splice(stack.length - n, n - j));\n break;\n\n default:\n return null;\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\n if (min > expr.min) {\n out.unshift(\"Math.max(\", min, \", \");\n out.push(\")\");\n }\n\n if (max < expr.max) {\n out.unshift(\"Math.min(\", max, \", \");\n out.push(\")\");\n }\n\n out.unshift(\"dest[destOffset + \", i, \"] = \");\n out.push(\";\");\n result.push(out.join(\"\"));\n });\n return result.join(\"\\n\");\n }\n };\n return PostScriptCompiler;\n}();\n\nexports.PostScriptCompiler = PostScriptCompiler;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PostScriptParser = exports.PostScriptLexer = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\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\n return false;\n }\n\n expect(type) {\n if (this.accept(type)) {\n return true;\n }\n\n throw new _util.FormatError(`Unexpected symbol: found ${this.token.type} expected ${type}.`);\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 const conditionLocation = this.operators.length;\n this.operators.push(null, null);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n\n if (this.accept(PostScriptTokenTypes.IF)) {\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 this.operators[jumpLocation] = this.operators.length;\n this.operators[jumpLocation + 1] = \"j\";\n this.operators[conditionLocation] = endOfTrue;\n this.operators[conditionLocation + 1] = \"jz\";\n } else {\n throw new _util.FormatError(\"PS Function: error parsing conditional.\");\n }\n }\n\n}\n\nexports.PostScriptParser = PostScriptParser;\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 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\n if (opValue) {\n return opValue;\n }\n\n return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);\n }\n\n static get LBRACE() {\n return (0, _util.shadow)(this, \"LBRACE\", new PostScriptToken(PostScriptTokenTypes.LBRACE, \"{\"));\n }\n\n static get RBRACE() {\n return (0, _util.shadow)(this, \"RBRACE\", new PostScriptToken(PostScriptTokenTypes.RBRACE, \"}\"));\n }\n\n static get IF() {\n return (0, _util.shadow)(this, \"IF\", new PostScriptToken(PostScriptTokenTypes.IF, \"IF\"));\n }\n\n static get IFELSE() {\n return (0, _util.shadow)(this, \"IFELSE\", new PostScriptToken(PostScriptTokenTypes.IFELSE, \"IFELSE\"));\n }\n\n }\n\n return PostScriptToken;\n}();\n\nclass PostScriptLexer {\n constructor(stream) {\n this.stream = stream;\n this.nextChar();\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 while (true) {\n if (ch < 0) {\n return _primitives.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 (!(0, _core_utils.isWhiteSpace)(ch)) {\n break;\n }\n\n ch = this.nextChar();\n }\n\n switch (ch | 0) {\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n case 0x38:\n case 0x39:\n case 0x2b:\n case 0x2d:\n case 0x2e:\n return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber());\n\n case 0x7b:\n this.nextChar();\n return PostScriptToken.LBRACE;\n\n case 0x7d:\n this.nextChar();\n return PostScriptToken.RBRACE;\n }\n\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5a || ch >= 0x61 && ch <= 0x7a)) {\n strBuf.push(String.fromCharCode(ch));\n }\n\n const str = strBuf.join(\"\");\n\n switch (str.toLowerCase()) {\n case \"if\":\n return PostScriptToken.IF;\n\n case \"ifelse\":\n return PostScriptToken.IFELSE;\n\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 (ch >= 0x30 && ch <= 0x39 || ch === 0x2d || ch === 0x2e) {\n strBuf.push(String.fromCharCode(ch));\n } else {\n break;\n }\n }\n\n const value = parseFloat(strBuf.join(\"\"));\n\n if (isNaN(value)) {\n throw new _util.FormatError(`Invalid floating point number: ${value}`);\n }\n\n return value;\n }\n\n}\n\nexports.PostScriptLexer = PostScriptLexer;\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bidi = bidi;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar baseTypes = [\"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"S\", \"B\", \"S\", \"WS\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"B\", \"B\", \"S\", \"WS\", \"ON\", \"ON\", \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ES\", \"CS\", \"ES\", \"CS\", \"CS\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"CS\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"CS\", \"ON\", \"ET\", \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"ON\", \"BN\", \"ON\", \"ON\", \"ET\", \"ET\", \"EN\", \"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"EN\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\"];\nvar arabicTypes = [\"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ON\", \"ON\", \"AL\", \"ET\", \"ET\", \"AL\", \"CS\", \"AL\", \"ON\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ET\", \"AN\", \"AN\", \"AL\", \"AL\", \"AL\", \"NSM\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\"];\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\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\n if (vertical) {\n dir = \"ttb\";\n } else if (!isLTR) {\n dir = \"rtl\";\n }\n\n return {\n str,\n dir\n };\n}\n\nvar chars = [];\nvar types = [];\n\nfunction bidi(str, startLevel, vertical) {\n var isLTR = true;\n var strLength = str.length;\n\n if (strLength === 0 || vertical) {\n return createBidiText(str, isLTR, vertical);\n }\n\n chars.length = strLength;\n types.length = strLength;\n var numBidi = 0;\n var i, ii;\n\n for (i = 0; i < strLength; ++i) {\n chars[i] = str.charAt(i);\n var charCode = str.charCodeAt(i);\n var charType = \"L\";\n\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\n if (!charType) {\n (0, _util.warn)(\"Bidi: invalid Unicode character \" + charCode.toString(16));\n }\n } else if (0x0700 <= charCode && charCode <= 0x08ac) {\n charType = \"AL\";\n }\n\n if (charType === \"R\" || charType === \"AL\" || charType === \"AN\") {\n numBidi++;\n }\n\n types[i] = charType;\n }\n\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\n for (i = 0; i < strLength; ++i) {\n levels[i] = startLevel;\n }\n\n var e = isOdd(startLevel) ? \"R\" : \"L\";\n var sor = e;\n var eor = sor;\n var lastType = sor;\n\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 lastType = sor;\n var t;\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\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 for (i = 0; i < strLength; ++i) {\n t = types[i];\n\n if (t === \"AL\") {\n types[i] = \"R\";\n }\n }\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\n if (types[i] === \"CS\" && (types[i - 1] === \"EN\" || types[i - 1] === \"AN\") && types[i + 1] === types[i - 1]) {\n types[i] = types[i - 1];\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"EN\") {\n var j;\n\n for (j = i - 1; j >= 0; --j) {\n if (types[j] !== \"ET\") {\n break;\n }\n\n types[j] = \"EN\";\n }\n\n for (j = i + 1; j < strLength; ++j) {\n if (types[j] !== \"ET\") {\n break;\n }\n\n types[j] = \"EN\";\n }\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\n if (t === \"WS\" || t === \"ES\" || t === \"ET\" || t === \"CS\") {\n types[i] = \"ON\";\n }\n }\n\n lastType = sor;\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\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 for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n var end = findUnequal(types, i + 1, \"ON\");\n var before = sor;\n\n if (i > 0) {\n before = types[i - 1];\n }\n\n var after = eor;\n\n if (end + 1 < strLength) {\n after = types[end + 1];\n }\n\n if (before !== \"L\") {\n before = \"R\";\n }\n\n if (after !== \"L\") {\n after = \"R\";\n }\n\n if (before === after) {\n setValues(types, i, end, before);\n }\n\n i = end - 1;\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n types[i] = e;\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\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 if (t === \"L\" || t === \"AN\" || t === \"EN\") {\n levels[i] += 1;\n }\n }\n }\n\n var highestLevel = -1;\n var lowestOddLevel = 99;\n var level;\n\n for (i = 0, ii = levels.length; i < ii; ++i) {\n level = levels[i];\n\n if (highestLevel < level) {\n highestLevel = level;\n }\n\n if (lowestOddLevel > level && isOdd(level)) {\n lowestOddLevel = level;\n }\n }\n\n for (level = highestLevel; level >= lowestOddLevel; --level) {\n var start = -1;\n\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\n if (start >= 0) {\n reverseValues(chars, start, levels.length);\n }\n }\n\n for (i = 0, ii = chars.length; i < ii; ++i) {\n var ch = chars[i];\n\n if (ch === \"<\" || ch === \">\") {\n chars[i] = \"\";\n }\n }\n\n return createBidiText(chars.join(\"\"), isLTR);\n}\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getMetrics = void 0;\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar getMetrics = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.Courier = 600;\n t[\"Courier-Bold\"] = 600;\n t[\"Courier-BoldOblique\"] = 600;\n t[\"Courier-Oblique\"] = 600;\n t.Helvetica = (0, _core_utils.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 t[\"Helvetica-Bold\"] = (0, _core_utils.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 t[\"Helvetica-BoldOblique\"] = (0, _core_utils.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 t[\"Helvetica-Oblique\"] = (0, _core_utils.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 t.Symbol = (0, _core_utils.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 t[\"Times-Roman\"] = (0, _core_utils.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 t[\"Times-Bold\"] = (0, _core_utils.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 t[\"Times-BoldItalic\"] = (0, _core_utils.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 t[\"Times-Italic\"] = (0, _core_utils.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 t.ZapfDingbats = (0, _core_utils.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});\nexports.getMetrics = getMetrics;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MurmurHash3_64 = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst SEED = 0xc3d2e1f0;\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\n if ((0, _util.isString)(input)) {\n data = new Uint8Array(input.length * 2);\n length = 0;\n\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n\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 ((0, _util.isArrayBuffer)(input)) {\n data = input;\n length = data.byteLength;\n } else {\n throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n }\n\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\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\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n\n case 1:\n k1 ^= data[blockCounts * 4];\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\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\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 h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\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}\n\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _jpeg_stream = __w_pdfjs_require__(18);\n\nvar _jpx = __w_pdfjs_require__(21);\n\nfunction decodeAndClamp(value, addend, coefficient, max) {\n value = addend + value * coefficient;\n\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n\n return value;\n}\n\nfunction resizeImageMask(src, bpc, w1, h1, w2, h2) {\n var length = w2 * h2;\n let dest;\n\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\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\n for (i = 0; i < h2; i++) {\n py = Math.floor(i * yRatio) * w1Scanline;\n\n for (j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex];\n }\n }\n\n return dest;\n}\n\nclass PDFImage {\n constructor({\n xref,\n res,\n image,\n isInline = false,\n smask = null,\n mask = null,\n isMask = false,\n pdfFunctionFactory,\n localColorSpaceCache\n }) {\n this.image = image;\n var dict = image.dict;\n const filter = dict.get(\"Filter\");\n\n if ((0, _primitives.isName)(filter)) {\n switch (filter.name) {\n case \"JPXDecode\":\n var jpxImage = new _jpx.JpxImage();\n jpxImage.parseImageProperties(image.stream);\n image.stream.reset();\n image.width = jpxImage.width;\n image.height = jpxImage.height;\n image.bitsPerComponent = jpxImage.bitsPerComponent;\n image.numComps = jpxImage.componentsCount;\n break;\n\n case \"JBIG2Decode\":\n image.bitsPerComponent = 1;\n image.numComps = 1;\n break;\n }\n }\n\n let width = dict.get(\"Width\", \"W\");\n let height = dict.get(\"Height\", \"H\");\n\n if (Number.isInteger(image.width) && image.width > 0 && Number.isInteger(image.height) && image.height > 0 && (image.width !== width || image.height !== height)) {\n (0, _util.warn)(\"PDFImage - using the Width/Height of the image data, \" + \"rather than the image dictionary.\");\n width = image.width;\n height = image.height;\n }\n\n if (width < 1 || height < 1) {\n throw new _util.FormatError(`Invalid image width: ${width} or height: ${height}`);\n }\n\n this.width = width;\n this.height = height;\n this.interpolate = dict.get(\"Interpolate\", \"I\") || false;\n this.imageMask = dict.get(\"ImageMask\", \"IM\") || false;\n this.matte = dict.get(\"Matte\") || false;\n var bitsPerComponent = image.bitsPerComponent;\n\n if (!bitsPerComponent) {\n bitsPerComponent = dict.get(\"BitsPerComponent\", \"BPC\");\n\n if (!bitsPerComponent) {\n if (this.imageMask) {\n bitsPerComponent = 1;\n } else {\n throw new _util.FormatError(`Bits per component missing in image: ${this.imageMask}`);\n }\n }\n }\n\n this.bpc = bitsPerComponent;\n\n if (!this.imageMask) {\n let colorSpace = dict.getRaw(\"ColorSpace\") || dict.getRaw(\"CS\");\n\n if (!colorSpace) {\n (0, _util.info)(\"JPX images (which do not require color spaces)\");\n\n switch (image.numComps) {\n case 1:\n colorSpace = _primitives.Name.get(\"DeviceGray\");\n break;\n\n case 3:\n colorSpace = _primitives.Name.get(\"DeviceRGB\");\n break;\n\n case 4:\n colorSpace = _primitives.Name.get(\"DeviceCMYK\");\n break;\n\n default:\n throw new Error(`JPX images with ${image.numComps} ` + \"color components not supported.\");\n }\n }\n\n this.colorSpace = _colorspace.ColorSpace.parse({\n cs: colorSpace,\n xref,\n resources: isInline ? res : null,\n pdfFunctionFactory,\n localColorSpaceCache\n });\n this.numComps = this.colorSpace.numComps;\n }\n\n this.decode = dict.getArray(\"Decode\", \"D\");\n this.needsDecode = false;\n\n if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent) || isMask && !_colorspace.ColorSpace.isDefaultDecode(this.decode, 1))) {\n this.needsDecode = true;\n var max = (1 << bitsPerComponent) - 1;\n this.decodeCoefficients = [];\n this.decodeAddends = [];\n const isIndexed = this.colorSpace && this.colorSpace.name === \"Indexed\";\n\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 ? (dmax - dmin) / max : 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 localColorSpaceCache\n });\n } else if (mask) {\n if ((0, _primitives.isStream)(mask)) {\n var maskDict = mask.dict,\n imageMask = maskDict.get(\"ImageMask\", \"IM\");\n\n if (!imageMask) {\n (0, _util.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 localColorSpaceCache\n });\n }\n } else {\n this.mask = mask;\n }\n }\n }\n\n static async buildImage({\n xref,\n res,\n image,\n isInline = false,\n pdfFunctionFactory,\n localColorSpaceCache\n }) {\n const imageData = image;\n let smaskData = null;\n let maskData = null;\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 ((0, _primitives.isStream)(mask) || Array.isArray(mask)) {\n maskData = mask;\n } else {\n (0, _util.warn)(\"Unsupported mask format.\");\n }\n }\n\n return new PDFImage({\n xref,\n res,\n image: imageData,\n isInline,\n smask: smaskData,\n mask: maskData,\n pdfFunctionFactory,\n localColorSpaceCache\n });\n }\n\n static createMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream,\n inverseDecode\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 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\n for (i = actualLength; i < computedLength; i++) {\n data[i] = 0xff;\n }\n }\n\n if (inverseDecode) {\n for (i = 0; i < actualLength; i++) {\n data[i] ^= 0xff;\n }\n }\n\n return {\n data,\n width,\n height\n };\n }\n\n get drawWidth() {\n return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0);\n }\n\n get drawHeight() {\n return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0);\n }\n\n decodeBuffer(buffer) {\n var bpc = this.bpc;\n var numComps = this.numComps;\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 for (i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = +!buffer[i];\n }\n\n return;\n }\n\n var index = 0;\n\n for (i = 0, ii = this.width * this.height; i < ii; i++) {\n for (var j = 0; j < numComps; j++) {\n buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], decodeCoefficients[j], max);\n index++;\n }\n }\n }\n\n getComponents(buffer) {\n var bpc = this.bpc;\n\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 var length = width * height * numComps;\n var bufferPos = 0;\n let output;\n\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\n var rowComps = width * numComps;\n var max = (1 << bpc) - 1;\n var i = 0,\n ii,\n buf;\n\n if (bpc === 1) {\n var mask, loop1End, loop2End;\n\n for (var j = 0; j < height; j++) {\n loop1End = i + (rowComps & ~7);\n loop2End = i + rowComps;\n\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 if (i < loop2End) {\n buf = buffer[bufferPos++];\n mask = 128;\n\n while (i < loop2End) {\n output[i++] = +!!(buf & mask);\n mask >>= 1;\n }\n }\n }\n } else {\n var bits = 0;\n buf = 0;\n\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\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n\n output[i] = value;\n buf = buf & (1 << remainingBits) - 1;\n bits = remainingBits;\n }\n }\n\n return output;\n }\n\n fillOpacity(rgbaBuf, width, height, actualHeight, image) {\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\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\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 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(alphaBuf, mask.bpc, sw, sh, width, height);\n }\n } else if (Array.isArray(mask)) {\n alphaBuf = new Uint8ClampedArray(width * height);\n var numComps = this.numComps;\n\n for (i = 0, ii = width * height; i < ii; ++i) {\n var opacity = 0;\n var imageOffset = i * numComps;\n\n for (j = 0; j < numComps; ++j) {\n var color = image[imageOffset + j];\n var maskOffset = j * 2;\n\n if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n opacity = 255;\n break;\n }\n }\n\n alphaBuf[i] = opacity;\n }\n } else {\n throw new _util.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 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 var matte = this.smask && this.smask.matte;\n\n if (!matte) {\n return;\n }\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\n for (var i = 0; i < length; i += 4) {\n var alpha = buffer[i + 3];\n\n if (alpha === 0) {\n buffer[i] = 255;\n buffer[i + 1] = 255;\n buffer[i + 2] = 255;\n continue;\n }\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 };\n var numComps = this.numComps;\n var originalWidth = this.width;\n var originalHeight = this.height;\n var bpc = this.bpc;\n var rowBytes = originalWidth * numComps * bpc + 7 >> 3;\n var imgArray;\n\n if (!forceRGBA) {\n var kind;\n\n if (this.colorSpace.name === \"DeviceGray\" && bpc === 1) {\n kind = _util.ImageKind.GRAYSCALE_1BPP;\n } else if (this.colorSpace.name === \"DeviceRGB\" && bpc === 8 && !this.needsDecode) {\n kind = _util.ImageKind.RGB_24BPP;\n }\n\n if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) {\n imgData.kind = kind;\n imgArray = this.getImageBytes(originalHeight * rowBytes);\n\n if (this.image instanceof _stream.DecodeStream) {\n imgData.data = imgArray;\n } else {\n var newArray = new Uint8ClampedArray(imgArray.length);\n newArray.set(imgArray);\n imgData.data = newArray;\n }\n\n if (this.needsDecode) {\n (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP, \"PDFImage.createImageData: The image must be grayscale.\");\n var buffer = imgData.data;\n\n for (var i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] ^= 0xff;\n }\n }\n\n return imgData;\n }\n\n if (this.image instanceof _jpeg_stream.JpegStream && !this.smask && !this.mask) {\n let imageLength = originalHeight * rowBytes;\n\n switch (this.colorSpace.name) {\n case \"DeviceGray\":\n imageLength *= 3;\n\n case \"DeviceRGB\":\n case \"DeviceCMYK\":\n imgData.kind = _util.ImageKind.RGB_24BPP;\n imgData.data = this.getImageBytes(imageLength, drawWidth, drawHeight, true);\n return imgData;\n }\n }\n }\n\n imgArray = this.getImageBytes(originalHeight * rowBytes);\n var actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight;\n var comps = this.getComponents(imgArray);\n var alpha01, maybeUndoPreblend;\n\n if (!forceRGBA && !this.smask && !this.mask) {\n imgData.kind = _util.ImageKind.RGB_24BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n alpha01 = 0;\n maybeUndoPreblend = false;\n } else {\n imgData.kind = _util.ImageKind.RGBA_32BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n alpha01 = 1;\n maybeUndoPreblend = true;\n this.fillOpacity(imgData.data, drawWidth, drawHeight, actualHeight, comps);\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n\n this.colorSpace.fillRgb(imgData.data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01);\n\n if (maybeUndoPreblend) {\n this.undoPreblend(imgData.data, drawWidth, actualHeight);\n }\n\n return imgData;\n }\n\n fillGrayBuffer(buffer) {\n var numComps = this.numComps;\n\n if (numComps !== 1) {\n throw new _util.FormatError(`Reading gray scale from a color image: ${numComps}`);\n }\n\n var width = this.width;\n var height = this.height;\n var bpc = this.bpc;\n var rowBytes = width * numComps * bpc + 7 >> 3;\n var imgArray = this.getImageBytes(height * rowBytes);\n var comps = this.getComponents(imgArray);\n var i, length;\n\n if (bpc === 1) {\n length = width * height;\n\n if (this.needsDecode) {\n for (i = 0; i < length; ++i) {\n buffer[i] = comps[i] - 1 & 255;\n }\n } else {\n for (i = 0; i < length; ++i) {\n buffer[i] = -comps[i] & 255;\n }\n }\n\n return;\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n\n length = width * height;\n var scale = 255 / ((1 << bpc) - 1);\n\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, true);\n }\n\n}\n\nexports.PDFImage = PDFImage;\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\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 (typeof reason !== \"object\" || reason === null) {\n return reason;\n }\n\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n\n default:\n return new _util.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\n if (data.targetName !== this.sourceName) {\n return;\n }\n\n if (data.stream) {\n this._processStreamMessage(data);\n\n return;\n }\n\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\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\n return;\n }\n\n const action = this.actionHandler[data.action];\n\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\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(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\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 return;\n }\n\n if (data.streamId) {\n this._createStreamSink(data);\n\n return;\n }\n\n action(data.data);\n };\n\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n const ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n\n ah[actionName] = handler;\n }\n\n send(actionName, data, transfers) {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = (0, _util.createPromiseCapability)();\n this.callbackCapabilities[callbackId] = capability;\n\n try {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n\n return capability.promise;\n }\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 return new ReadableStream({\n start: controller => {\n const startCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n\n this._postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = (0, _util.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 return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = (0, _util.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 cancelCapability.promise;\n }\n }, queueingStrategy);\n }\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 const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n self._postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\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 (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n if (this.isCancelled) {\n return;\n }\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: (0, _util.createPromiseCapability)(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\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(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\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 _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(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].pullCall.resolve();\n } else {\n this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL:\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\n if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[streamId].sinkCapability.resolve();\n }\n\n this.streamSinks[streamId].desiredSize = data.desiredSize;\n const {\n onPull\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onPull && onPull());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\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 break;\n\n case StreamKind.ENQUEUE:\n (0, _util.assert)(this.streamControllers[streamId], \"enqueue should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].controller.enqueue(data.chunk);\n break;\n\n case StreamKind.CLOSE:\n (0, _util.assert)(this.streamControllers[streamId], \"close should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].isClosed = true;\n this.streamControllers[streamId].controller.close();\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.ERROR:\n (0, _util.assert)(this.streamControllers[streamId], \"error should have stream controller\");\n this.streamControllers[streamId].controller.error(wrapReason(data.reason));\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].cancelCall.resolve();\n } else {\n this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason));\n }\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL:\n if (!this.streamSinks[streamId]) {\n break;\n }\n\n const {\n onCancel\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onCancel && onCancel(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\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 this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason));\n this.streamSinks[streamId].isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n async _deleteStreamController(streamId) {\n await Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) {\n return capability && capability.promise;\n }));\n delete this.streamControllers[streamId];\n }\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}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFWorkerStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\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 (0, _util.assert)(!this._fullRequestReader, \"PDFWorkerStream.getFullReader can only be called once.\");\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\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFWorkerStream = PDFWorkerStream;\n\nclass PDFWorkerStreamReader {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n this._contentLength = null;\n this._isRangeSupported = false;\n this._isStreamingSupported = false;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetReader\");\n\n this._reader = readableStream.getReader();\n this._headersReady = this._msgHandler.sendWithPromise(\"ReaderHeadersReady\").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 {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n return {\n value: value.buffer,\n done: false\n };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n\n}\n\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\n this._reader = readableStream.getReader();\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n return {\n value: value.buffer,\n done: false\n };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n\n}\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf.worker.js.map","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"addLinkAttributes\", {\n enumerable: true,\n get: function () {\n return _display_utils.addLinkAttributes;\n }\n});\nObject.defineProperty(exports, \"getFilenameFromUrl\", {\n enumerable: true,\n get: function () {\n return _display_utils.getFilenameFromUrl;\n }\n});\nObject.defineProperty(exports, \"LinkTarget\", {\n enumerable: true,\n get: function () {\n return _display_utils.LinkTarget;\n }\n});\nObject.defineProperty(exports, \"loadScript\", {\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n});\nObject.defineProperty(exports, \"PDFDateString\", {\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n});\nObject.defineProperty(exports, \"RenderingCancelledException\", {\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n});\nObject.defineProperty(exports, \"build\", {\n enumerable: true,\n get: function () {\n return _api.build;\n }\n});\nObject.defineProperty(exports, \"getDocument\", {\n enumerable: true,\n get: function () {\n return _api.getDocument;\n }\n});\nObject.defineProperty(exports, \"LoopbackPort\", {\n enumerable: true,\n get: function () {\n return _api.LoopbackPort;\n }\n});\nObject.defineProperty(exports, \"PDFDataRangeTransport\", {\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n});\nObject.defineProperty(exports, \"PDFWorker\", {\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _api.version;\n }\n});\nObject.defineProperty(exports, \"CMapCompressionType\", {\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n});\nObject.defineProperty(exports, \"createObjectURL\", {\n enumerable: true,\n get: function () {\n return _util.createObjectURL;\n }\n});\nObject.defineProperty(exports, \"createPromiseCapability\", {\n enumerable: true,\n get: function () {\n return _util.createPromiseCapability;\n }\n});\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", {\n enumerable: true,\n get: function () {\n return _util.createValidAbsoluteUrl;\n }\n});\nObject.defineProperty(exports, \"InvalidPDFException\", {\n enumerable: true,\n get: function () {\n return _util.InvalidPDFException;\n }\n});\nObject.defineProperty(exports, \"MissingPDFException\", {\n enumerable: true,\n get: function () {\n return _util.MissingPDFException;\n }\n});\nObject.defineProperty(exports, \"OPS\", {\n enumerable: true,\n get: function () {\n return _util.OPS;\n }\n});\nObject.defineProperty(exports, \"PasswordResponses\", {\n enumerable: true,\n get: function () {\n return _util.PasswordResponses;\n }\n});\nObject.defineProperty(exports, \"PermissionFlag\", {\n enumerable: true,\n get: function () {\n return _util.PermissionFlag;\n }\n});\nObject.defineProperty(exports, \"removeNullCharacters\", {\n enumerable: true,\n get: function () {\n return _util.removeNullCharacters;\n }\n});\nObject.defineProperty(exports, \"shadow\", {\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n});\nObject.defineProperty(exports, \"UnexpectedResponseException\", {\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\n }\n});\nObject.defineProperty(exports, \"UNSUPPORTED_FEATURES\", {\n enumerable: true,\n get: function () {\n return _util.UNSUPPORTED_FEATURES;\n }\n});\nObject.defineProperty(exports, \"Util\", {\n enumerable: true,\n get: function () {\n return _util.Util;\n }\n});\nObject.defineProperty(exports, \"VerbosityLevel\", {\n enumerable: true,\n get: function () {\n return _util.VerbosityLevel;\n }\n});\nObject.defineProperty(exports, \"AnnotationLayer\", {\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n});\nObject.defineProperty(exports, \"apiCompatibilityParams\", {\n enumerable: true,\n get: function () {\n return _api_compatibility.apiCompatibilityParams;\n }\n});\nObject.defineProperty(exports, \"GlobalWorkerOptions\", {\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n});\nObject.defineProperty(exports, \"renderTextLayer\", {\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n});\nObject.defineProperty(exports, \"SVGGraphics\", {\n enumerable: true,\n get: function () {\n return _svg.SVGGraphics;\n }\n});\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _api = __w_pdfjs_require__(5);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _annotation_layer = __w_pdfjs_require__(19);\n\nvar _api_compatibility = __w_pdfjs_require__(9);\n\nvar _worker_options = __w_pdfjs_require__(12);\n\nvar _text_layer = __w_pdfjs_require__(20);\n\nvar _svg = __w_pdfjs_require__(21);\n\nconst pdfjsVersion = '2.6.347';\nconst pdfjsBuild = '3be9c65f';\n{\n const {\n isNodeJS\n } = __w_pdfjs_require__(4);\n\n if (isNodeJS) {\n const PDFNodeStream = __w_pdfjs_require__(22).PDFNodeStream;\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const PDFNetworkStream = __w_pdfjs_require__(25).PDFNetworkStream;\n\n let PDFFetchStream;\n\n if ((0, _display_utils.isFetchSupported)()) {\n PDFFetchStream = __w_pdfjs_require__(26).PDFFetchStream;\n }\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n if (PDFFetchStream && (0, _display_utils.isValidFetchUrl)(params.url)) {\n return new PDFFetchStream(params);\n }\n\n return new PDFNetworkStream(params);\n });\n }\n}\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addLinkAttributes = addLinkAttributes;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.isFetchSupported = isFetchSupported;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\nexports.deprecated = deprecated;\nexports.PDFDateString = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.BaseCMapReaderFactory = exports.DOMCanvasFactory = exports.BaseCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nexports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n\n create(width, height) {\n (0, _util.unreachable)(\"Abstract method `create` called.\");\n }\n\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n\n}\n\nexports.BaseCanvasFactory = BaseCanvasFactory;\n\nclass DOMCanvasFactory extends BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this._document = ownerDocument;\n }\n\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const canvas = this._document.createElement(\"canvas\");\n\n const context = canvas.getContext(\"2d\");\n canvas.width = width;\n canvas.height = height;\n return {\n canvas,\n context\n };\n }\n\n}\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = false\n }) {\n if (this.constructor === BaseCMapReaderFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n\n _fetchData(url, compressionType) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n\n}\n\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\n\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n if (isFetchSupported() && isValidFetchUrl(url, document.baseURI)) {\n return fetch(url).then(async response => {\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n\n let cMapData;\n\n if (this.isCompressed) {\n cMapData = new Uint8Array(await response.arrayBuffer());\n } else {\n cMapData = (0, _util.stringToBytes)(await response.text());\n }\n\n return {\n cMapData,\n compressionType\n };\n });\n }\n\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n\n if (this.isCompressed) {\n request.responseType = \"arraybuffer\";\n }\n\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n\n if (request.status === 200 || request.status === 0) {\n let cMapData;\n\n if (this.isCompressed && request.response) {\n cMapData = new Uint8Array(request.response);\n } else if (!this.isCompressed && request.responseText) {\n cMapData = (0, _util.stringToBytes)(request.responseText);\n }\n\n if (cMapData) {\n resolve({\n cMapData,\n compressionType\n });\n return;\n }\n }\n\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n });\n }\n\n}\n\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n\nclass DOMSVGFactory {\n create(width, height) {\n (0, _util.assert)(width > 0 && height > 0, \"Invalid SVG dimensions\");\n const svg = document.createElementNS(SVG_NS, \"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n svg.setAttribute(\"width\", width + \"px\");\n svg.setAttribute(\"height\", height + \"px\");\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", \"0 0 \" + width + \" \" + height);\n return svg;\n }\n\n createElement(type) {\n (0, _util.assert)(typeof type === \"string\", \"Invalid SVG element type\");\n return document.createElementNS(SVG_NS, type);\n }\n\n}\n\nexports.DOMSVGFactory = DOMSVGFactory;\n\nclass PageViewport {\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\n\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n\n convertToViewportRectangle(rect) {\n const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n\n const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n\n convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n\n}\n\nexports.PageViewport = PageViewport;\n\nclass RenderingCancelledException extends _util.BaseException {\n constructor(msg, type) {\n super(msg);\n this.type = type;\n }\n\n}\n\nexports.RenderingCancelledException = RenderingCancelledException;\nconst LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n};\nexports.LinkTarget = LinkTarget;\n\nfunction addLinkAttributes(link, {\n url,\n target,\n rel,\n enabled = true\n} = {}) {\n (0, _util.assert)(url && typeof url === \"string\", 'addLinkAttributes: A valid \"url\" parameter must provided.');\n const urlNullRemoved = (0, _util.removeNullCharacters)(url);\n\n if (enabled) {\n link.href = link.title = urlNullRemoved;\n } else {\n link.href = \"\";\n link.title = `Disabled: ${urlNullRemoved}`;\n\n link.onclick = () => {\n return false;\n };\n }\n\n let targetStr = \"\";\n\n switch (target) {\n case LinkTarget.NONE:\n break;\n\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n\n link.target = targetStr;\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\n\nfunction getFilenameFromUrl(url) {\n const anchor = url.indexOf(\"#\");\n const query = url.indexOf(\"?\");\n const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf(\"/\", end) + 1, end);\n}\n\nclass StatTimer {\n constructor() {\n this.started = Object.create(null);\n this.times = [];\n }\n\n time(name) {\n if (name in this.started) {\n (0, _util.warn)(`Timer is already running for ${name}`);\n }\n\n this.started[name] = Date.now();\n }\n\n timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(`Timer has not been started for ${name}`);\n }\n\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n\n toString() {\n const outBuf = [];\n let longest = 0;\n\n for (const time of this.times) {\n const name = time.name;\n\n if (name.length > longest) {\n longest = name.length;\n }\n }\n\n for (const time of this.times) {\n const duration = time.end - time.start;\n outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\\n`);\n }\n\n return outBuf.join(\"\");\n }\n\n}\n\nexports.StatTimer = StatTimer;\n\nfunction isFetchSupported() {\n return typeof fetch !== \"undefined\" && typeof Response !== \"undefined\" && \"body\" in Response.prototype && typeof ReadableStream !== \"undefined\";\n}\n\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch (ex) {\n return false;\n }\n}\n\nfunction loadScript(src) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n script.onload = resolve;\n\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n\n (document.head || document.documentElement).appendChild(script);\n });\n}\n\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || !(0, _util.isString)(input)) {\n return null;\n }\n\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n }\n\n const matches = pdfDateStringRegex.exec(input);\n\n if (!matches) {\n return null;\n }\n\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n\n}\n\nexports.PDFDateString = PDFDateString;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isBool = isBool;\nexports.isNum = isNum;\nexports.isString = isString;\nexports.isSameOrigin = isSameOrigin;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.removeNullCharacters = removeNullCharacters;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nexports.unreachable = unreachable;\nexports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = exports.BaseException = void 0;\n\n__w_pdfjs_require__(3);\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\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};\nexports.PermissionFlag = PermissionFlag;\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};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\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};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\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};\nexports.AnnotationFlag = AnnotationFlag;\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};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\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\"\n};\nexports.StreamType = StreamType;\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};\nexports.FontType = FontType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\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};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\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 errorMarkedContent: \"errorMarkedContent\"\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\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\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\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\nfunction isSameOrigin(baseUrl, otherUrl) {\n let base;\n\n try {\n base = new URL(baseUrl);\n\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n\n try {\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\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 function BaseException(message) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n\n this.message = message;\n this.name = this.constructor.name;\n }\n\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg);\n this.code = code;\n }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg);\n this.details = details;\n }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg);\n this.status = status;\n }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {}\n\nexports.AbortException = AbortException;\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\n return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && typeof bytes === \"object\" && bytes.length !== undefined, \"Invalid argument for bytesToString\");\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n const strBuf = [];\n\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\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\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n\n return bytes;\n}\n\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n assert(arr.byteLength !== undefined, \"arrayByteLength - invalid argument.\");\n return arr.byteLength;\n}\n\nfunction arraysToBytes(arr) {\n const length = arr.length;\n\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n let resultLength = 0;\n\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n\n let pos = 0;\n const data = new Uint8Array(resultLength);\n\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nconst IsLittleEndianCached = {\n get value() {\n return shadow(this, \"value\", isLittleEndian());\n }\n\n};\nexports.IsLittleEndianCached = IsLittleEndianCached;\n\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch (e) {\n return false;\n }\n}\n\nconst IsEvalSupportedCached = {\n get value() {\n return shadow(this, \"value\", isEvalSupported());\n }\n\n};\nexports.IsEvalSupportedCached = IsEvalSupportedCached;\nconst rgbBuf = [\"rgb(\", 0, \",\", 0, \",\", 0, \")\"];\n\nclass Util {\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 static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n\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 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 [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n\n static apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n }\n\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\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 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 return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n static normalizeRect(rect) {\n const r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n }\n\n static intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\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 rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return null;\n }\n\n if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return null;\n }\n\n return result;\n }\n\n}\n\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];\n\nfunction stringToPDFString(str) {\n const length = str.length,\n strBuf = [];\n\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i + 1) << 8 | str.charCodeAt(i)));\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\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n return str.replace(/([\\(\\)\\\\])/g, \"\\\\$1\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isBool(v) {\n return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n return typeof v === \"number\";\n}\n\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n return arr1.every(function (element, index) {\n return element === arr2[index];\n });\n}\n\nfunction getModificationDate(date = new Date(Date.now())) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), (date.getUTCDate() + 1).toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\n\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n }\n\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nconst createObjectURL = function createObjectURLClosure() {\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n const blob = new Blob([data], {\n type: contentType\n });\n return URL.createObjectURL(blob);\n }\n\n let buffer = `data:${contentType};base64,`;\n\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\n return buffer;\n };\n}();\n\nexports.createObjectURL = createObjectURL;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _is_node = __w_pdfjs_require__(4);\n\n;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getDocument = getDocument;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _font_loader = __w_pdfjs_require__(6);\n\nvar _node_utils = __w_pdfjs_require__(7);\n\nvar _annotation_storage = __w_pdfjs_require__(8);\n\nvar _api_compatibility = __w_pdfjs_require__(9);\n\nvar _canvas = __w_pdfjs_require__(10);\n\nvar _worker_options = __w_pdfjs_require__(12);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(13);\n\nvar _metadata = __w_pdfjs_require__(14);\n\nvar _optional_content_config = __w_pdfjs_require__(16);\n\nvar _transport_stream = __w_pdfjs_require__(17);\n\nvar _webgl = __w_pdfjs_require__(18);\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nconst DefaultCanvasFactory = _is_node.isNodeJS ? _node_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory;\nconst DefaultCMapReaderFactory = _is_node.isNodeJS ? _node_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory;\nlet createPDFNetworkStream;\n\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n let source;\n\n if (typeof src === \"string\") {\n source = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n source = {\n data: src\n };\n } else if (src instanceof PDFDataRangeTransport) {\n source = {\n range: src\n };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, \" + \"need either Uint8Array, string or a parameter object\");\n }\n\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n\n source = src;\n }\n\n const params = Object.create(null);\n let rangeTransport = null,\n worker = null;\n\n for (const key in source) {\n if (key === \"url\" && typeof window !== \"undefined\") {\n params[key] = new URL(source[key], window.location).href;\n continue;\n } else if (key === \"range\") {\n rangeTransport = source[key];\n continue;\n } else if (key === \"worker\") {\n worker = source[key];\n continue;\n } else if (key === \"data\" && !(source[key] instanceof Uint8Array)) {\n const pdfBytes = source[key];\n\n if (typeof pdfBytes === \"string\") {\n params[key] = (0, _util.stringToBytes)(pdfBytes);\n } else if (typeof pdfBytes === \"object\" && pdfBytes !== null && !isNaN(pdfBytes.length)) {\n params[key] = new Uint8Array(pdfBytes);\n } else if ((0, _util.isArrayBuffer)(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error(\"Invalid PDF binary data: either typed array, \" + \"string or array-like object is expected in the \" + \"data property.\");\n }\n\n continue;\n }\n\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;\n }\n\n if (typeof params.ownerDocument === \"undefined\") {\n params.ownerDocument = globalThis.document;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n (0, _util.setVerbosityLevel)(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n\n const docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId);\n\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n });\n }\n\n resolve(networkStream);\n });\n return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n const transport = new WorkerTransport(messageHandler, task, networkStream, params);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\n\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed\"));\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n }\n\n return worker.messageHandler.sendWithPromise(\"GetDocRequest\", {\n docId,\n apiVersion: '2.6.347',\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n postMessageTransfers: worker.postMessageTransfers,\n docBaseUrl: source.docBaseUrl,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n fontExtraProperties: source.fontExtraProperties\n }).then(function (workerId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n return workerId;\n });\n}\n\nconst PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {\n let nextDocumentId = 0;\n\n class PDFDocumentLoadingTask {\n constructor() {\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = \"d\" + nextDocumentId++;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n this.onUnsupportedFeature = null;\n }\n\n get promise() {\n return this._capability.promise;\n }\n\n destroy() {\n this.destroyed = true;\n const transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();\n return transportDestroyed.then(() => {\n this._transport = null;\n\n if (this._worker) {\n this._worker.destroy();\n\n this._worker = null;\n }\n });\n }\n\n }\n\n return PDFDocumentLoadingTask;\n}();\n\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = (0, _util.createPromiseCapability)();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n\n}\n\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\n\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n get annotationStorage() {\n return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\n }\n\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n get fingerprint() {\n return this._pdfInfo.fingerprint;\n }\n\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n getOutline() {\n return this._transport.getOutline();\n }\n\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n getData() {\n return this._transport.getData();\n }\n\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n getStats() {\n return this._transport.getStats();\n }\n\n cleanup() {\n return this._transport.startCleanup();\n }\n\n destroy() {\n return this.loadingTask.destroy();\n }\n\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n get loadingTask() {\n return this._transport.loadingTask;\n }\n\n saveDocument(annotationStorage) {\n return this._transport.saveDocument(annotationStorage);\n }\n\n}\n\nexports.PDFDocumentProxy = PDFDocumentProxy;\n\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this.destroyed = false;\n }\n\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n get ref() {\n return this._pageInfo.ref;\n }\n\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n get view() {\n return this._pageInfo.view;\n }\n\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = {}) {\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n getAnnotations({\n intent = null\n } = {}) {\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this._transport.getAnnotations(this._pageIndex, intent);\n this.annotationsIntent = intent;\n }\n\n return this.annotationsPromise;\n }\n\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n enableWebGL = false,\n renderInteractiveForms = false,\n transform = null,\n imageLayer = null,\n canvasFactory = null,\n background = null,\n annotationStorage = null,\n optionalContentConfigPromise = null\n }) {\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const renderingIntent = intent === \"print\" ? \"print\" : \"display\";\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(renderingIntent);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(renderingIntent, intentState);\n }\n\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({\n ownerDocument: this._ownerDocument\n });\n const webGLContext = new _webgl.WebGLContext({\n enable: enableWebGL\n });\n\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n renderInteractiveForms: renderInteractiveForms === true,\n annotationStorage: annotationStorage && annotationStorage.getAll() || null\n });\n }\n\n const complete = error => {\n const i = intentState.renderTasks.indexOf(internalRenderTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n\n if (this.cleanupAfterRender || renderingIntent === \"print\") {\n this.pendingCleanup = true;\n }\n\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n\n this._stats.timeEnd(\"Overall\");\n }\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n webGLContext,\n useRequestAnimationFrame: renderingIntent !== \"print\",\n pdfBug: this._pdfBug\n });\n\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n\n intentState.renderTasks.push(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n\n getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n const i = intentState.renderTasks.indexOf(opListTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n const renderingIntent = \"oplist\";\n\n let intentState = this._intentStates.get(renderingIntent);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(renderingIntent, intentState);\n }\n\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n intentState.renderTasks = [];\n intentState.renderTasks.push(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent\n });\n }\n\n return intentState.opListReadCapability.promise;\n }\n\n streamTextContent({\n normalizeWhitespace = false,\n disableCombineTextItems = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n\n size(textContent) {\n return textContent.items.length;\n }\n\n });\n }\n\n getTextContent(params = {}) {\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\n\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n\n _destroy() {\n this.destroyed = true;\n this._transport.pageCache[this._pageIndex] = null;\n const waitOn = [];\n\n for (const [intent, intentState] of this._intentStates) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n\n if (intent === \"oplist\") {\n continue;\n }\n\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n\n this.objs.clear();\n this.annotationsPromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup) {\n return false;\n }\n\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.length !== 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n\n this._intentStates.clear();\n\n this.objs.clear();\n this.annotationsPromise = null;\n\n if (resetStats && this._stats) {\n this._stats = new _display_utils.StatTimer();\n }\n\n this.pendingCleanup = false;\n return true;\n }\n\n _startRenderPage(transparency, intent) {\n const intentState = this._intentStates.get(intent);\n\n if (!intentState) {\n return;\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n _pumpOperatorList(args) {\n (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected \"intent\" argument.');\n\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", args);\n\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(args.intent);\n\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n\n if (this._transport.destroyed) {\n return;\n }\n\n this._renderPageChunk(value, intentState);\n\n pump();\n }, reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n\n pump();\n }\n\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n (0, _util.assert)(reason instanceof Error || typeof reason === \"object\" && reason !== null, 'PDFPageProxy._abortOperatorList: Expected \"reason\" argument.');\n\n if (!intentState.streamReader) {\n return;\n }\n\n if (!force) {\n if (intentState.renderTasks.length !== 0) {\n return;\n }\n\n if (reason instanceof _display_utils.RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n\n intentState.streamReader.cancel(new _util.AbortException(reason && reason.message));\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n for (const [intent, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(intent);\n\n break;\n }\n }\n\n this.cleanup();\n }\n\n get stats() {\n return this._stats;\n }\n\n}\n\nexports.PDFPageProxy = PDFPageProxy;\n\nclass LoopbackPort {\n constructor(defer = true) {\n this._listeners = [];\n this._defer = defer;\n this._deferred = Promise.resolve(undefined);\n }\n\n postMessage(obj, transfers) {\n function cloneValue(value) {\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n\n if (cloned.has(value)) {\n return cloned.get(value);\n }\n\n let buffer, result;\n\n if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {\n const transferable = transfers && transfers.includes(buffer);\n\n if (transferable) {\n result = new value.constructor(buffer, value.byteOffset, value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n\n cloned.set(value, result);\n return result;\n }\n\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result);\n\n for (const i in value) {\n let desc,\n p = value;\n\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n\n if (typeof desc.value === \"undefined\") {\n continue;\n }\n\n if (typeof desc.value === \"function\") {\n if (value.hasOwnProperty && value.hasOwnProperty(i)) {\n throw new Error(`LoopbackPort.postMessage - cannot clone: ${value[i]}`);\n }\n\n continue;\n }\n\n result[i] = cloneValue(desc.value);\n }\n\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach(listener => {\n listener.call(this, {\n data: obj\n });\n });\n\n return;\n }\n\n const cloned = new WeakMap();\n const e = {\n data: cloneValue(obj)\n };\n\n this._deferred.then(() => {\n this._listeners.forEach(listener => {\n listener.call(this, e);\n });\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n\n}\n\nexports.LoopbackPort = LoopbackPort;\n\nconst PDFWorker = function PDFWorkerClosure() {\n const pdfWorkerPorts = new WeakMap();\n let isWorkerDisabled = false;\n let fallbackWorkerSrc;\n let nextFakeWorkerId = 0;\n let fakeWorkerCapability;\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n isWorkerDisabled = true;\n fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\" && \"currentScript\" in document) {\n const pdfjsFilePath = document.currentScript && document.currentScript.src;\n\n if (pdfjsFilePath) {\n fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n\n function getWorkerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n\n if (typeof fallbackWorkerSrc !== \"undefined\") {\n if (!_is_node.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n return fallbackWorkerSrc;\n }\n\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n function getMainThreadWorkerMessageHandler() {\n let mainWorkerMessageHandler;\n\n try {\n mainWorkerMessageHandler = globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler;\n } catch (ex) {}\n\n return mainWorkerMessageHandler || null;\n }\n\n function setupFakeWorkerGlobal() {\n if (fakeWorkerCapability) {\n return fakeWorkerCapability.promise;\n }\n\n fakeWorkerCapability = (0, _util.createPromiseCapability)();\n\n const loader = async function () {\n const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n const worker = eval(\"require\")(getWorkerSrc());\n return worker.WorkerMessageHandler;\n }\n\n await (0, _display_utils.loadScript)(getWorkerSrc());\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n\n loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject);\n return fakeWorkerCapability.promise;\n }\n\n function createCDNWrapper(url) {\n const wrapper = \"importScripts('\" + url + \"');\";\n return URL.createObjectURL(new Blob([wrapper]));\n }\n\n class PDFWorker {\n constructor({\n name = null,\n port = null,\n verbosity = (0, _util.getVerbosityLevel)()\n } = {}) {\n if (port && pdfWorkerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.postMessageTransfers = true;\n this.verbosity = verbosity;\n this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n pdfWorkerPorts.set(port, this);\n\n this._initializeFromPort(port);\n\n return;\n }\n\n this._initialize();\n }\n\n get promise() {\n return this._readyCapability.promise;\n }\n\n get port() {\n return this._port;\n }\n\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n\n this._messageHandler.on(\"ready\", function () {});\n\n this._readyCapability.resolve();\n }\n\n _initialize() {\n if (typeof Worker !== \"undefined\" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {\n let workerSrc = getWorkerSrc();\n\n try {\n if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {\n workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n\n const worker = new Worker(workerSrc);\n const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n if (!data.supportTransfers) {\n this.postMessageTransfers = false;\n }\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n try {\n sendTest();\n } catch (e) {\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]);\n\n try {\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n } catch (ex) {\n (0, _util.warn)(\"Cannot use postMessage transfers.\");\n testObj[0] = 0;\n messageHandler.send(\"test\", testObj);\n }\n };\n\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n isWorkerDisabled = true;\n }\n\n setupFakeWorkerGlobal().then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n\n return;\n }\n\n const port = new LoopbackPort();\n this._port = port;\n const id = \"fake\" + nextFakeWorkerId++;\n const workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n const messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n\n destroy() {\n this.destroyed = true;\n\n if (this._webWorker) {\n this._webWorker.terminate();\n\n this._webWorker = null;\n }\n\n pdfWorkerPorts.delete(this._port);\n this._port = null;\n\n if (this._messageHandler) {\n this._messageHandler.destroy();\n\n this._messageHandler = null;\n }\n }\n\n static fromPort(params) {\n if (!params || !params.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n\n if (pdfWorkerPorts.has(params.port)) {\n return pdfWorkerPorts.get(params.port);\n }\n\n return new PDFWorker(params);\n }\n\n static getWorkerSrc() {\n return getWorkerSrc();\n }\n\n }\n\n return PDFWorker;\n}();\n\nexports.PDFWorker = PDFWorker;\n\nclass WorkerTransport {\n constructor(messageHandler, loadingTask, networkStream, params) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n docId: loadingTask.docId,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n ownerDocument: params.ownerDocument\n });\n this._params = params;\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked\n });\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.pageCache = [];\n this.pagePromises = [];\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n }\n\n const waitOn = [];\n this.pageCache.forEach(function (page) {\n if (page) {\n waitOn.push(page._destroy());\n }\n });\n this.pageCache.length = 0;\n this.pagePromises.length = 0;\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.fontLoader.clear();\n\n if (this._networkStream) {\n this._networkStream.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n }\n\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = (0, _util.createPromiseCapability)();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress && loadingTask.onProgress) {\n loadingTask.onProgress(this._lastProgress);\n }\n\n fullReader.onProgress = evt => {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n };\n }\n\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n }\n\n if (!(reason instanceof Error)) {\n const msg = \"DocException - expected a valid Error.\";\n (0, _util.warn)(msg);\n }\n\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this._passwordCapability = (0, _util.createPromiseCapability)();\n\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n this._passwordCapability.resolve({\n password\n });\n };\n\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this._passwordCapability.reject(ex);\n }\n } else {\n this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n\n return this._passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.length,\n total: data.length\n });\n }\n\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n\n const page = this.pageCache[data.pageIndex];\n\n page._startRenderPage(data.transparency, data.intent);\n });\n messageHandler.on(\"commonobj\", data => {\n if (this.destroyed) {\n return;\n }\n\n const [id, type, exportedData] = data;\n\n if (this.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Font\":\n const params = this._params;\n\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n (0, _util.warn)(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n let fontRegistry = null;\n\n if (params.pdfBug && globalThis.FontInspector && globalThis.FontInspector.enabled) {\n fontRegistry = {\n registerFont(font, url) {\n globalThis.FontInspector.fontAdded(font, url);\n }\n\n };\n }\n\n const font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry\n });\n this.fontLoader.bind(font).catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", {\n id\n });\n }).finally(() => {\n if (!params.fontExtraProperties && font.data) {\n font.data = null;\n }\n\n this.commonObjs.resolve(id, font);\n });\n break;\n\n case \"FontPath\":\n case \"Image\":\n this.commonObjs.resolve(id, exportedData);\n break;\n\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n messageHandler.on(\"obj\", data => {\n if (this.destroyed) {\n return undefined;\n }\n\n const [id, pageIndex, type, imageData] = data;\n const pageProxy = this.pageCache[pageIndex];\n\n if (pageProxy.objs.has(id)) {\n return undefined;\n }\n\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n\n if (imageData && \"data\" in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n\n break;\n\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n\n return undefined;\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.loaded,\n total: data.total\n });\n }\n });\n messageHandler.on(\"UnsupportedFeature\", this._onUnsupportedFeature.bind(this));\n messageHandler.on(\"FetchBuiltInCMap\", (data, sink) => {\n if (this.destroyed) {\n sink.error(new Error(\"Worker was destroyed\"));\n return;\n }\n\n let fetched = false;\n\n sink.onPull = () => {\n if (fetched) {\n sink.close();\n return;\n }\n\n fetched = true;\n this.CMapReaderFactory.fetch(data).then(function (builtInCMap) {\n sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);\n }).catch(function (reason) {\n sink.error(reason);\n });\n };\n });\n }\n\n _onUnsupportedFeature({\n featureId\n }) {\n if (this.destroyed) {\n return;\n }\n\n if (this.loadingTask.onUnsupportedFeature) {\n this.loadingTask.onUnsupportedFeature(featureId);\n }\n }\n\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request\"));\n }\n\n const pageIndex = pageNumber - 1;\n\n if (pageIndex in this.pagePromises) {\n return this.pagePromises[pageIndex];\n }\n\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.ownerDocument, this._params.pdfBug);\n this.pageCache[pageIndex] = page;\n return page;\n });\n this.pagePromises[pageIndex] = promise;\n return promise;\n }\n\n getPageIndex(ref) {\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n ref\n }).catch(function (reason) {\n return Promise.reject(new Error(reason));\n });\n }\n\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n\n saveDocument(annotationStorage) {\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n numPages: this._numPages,\n annotationStorage: annotationStorage && annotationStorage.getAll() || null,\n filename: this._fullReader ? this._fullReader.filename : null\n }).finally(() => {\n if (annotationStorage) {\n annotationStorage.resetModified();\n }\n });\n }\n\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n\n getJavaScript() {\n return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n }\n\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n\n getOptionalContentConfig() {\n return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(results => {\n return new _optional_content_config.OptionalContentConfig(results);\n });\n }\n\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n\n getMetadata() {\n return this.messageHandler.sendWithPromise(\"GetMetadata\", null).then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader ? this._fullReader.filename : null\n };\n });\n }\n\n getStats() {\n return this.messageHandler.sendWithPromise(\"GetStats\", null);\n }\n\n startCleanup() {\n return this.messageHandler.sendWithPromise(\"Cleanup\", null).then(() => {\n for (let i = 0, ii = this.pageCache.length; i < ii; i++) {\n const page = this.pageCache[i];\n\n if (page) {\n const cleanupSuccessful = page.cleanup();\n\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${i + 1} is currently rendering.`);\n }\n }\n }\n\n this.commonObjs.clear();\n this.fontLoader.clear();\n });\n }\n\n get loadingParams() {\n const params = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch: params.disableAutoFetch,\n disableFontFace: params.disableFontFace\n });\n }\n\n}\n\nclass PDFObjects {\n constructor() {\n this._objs = Object.create(null);\n }\n\n _ensureObj(objId) {\n if (this._objs[objId]) {\n return this._objs[objId];\n }\n\n return this._objs[objId] = {\n capability: (0, _util.createPromiseCapability)(),\n data: null,\n resolved: false\n };\n }\n\n get(objId, callback = null) {\n if (callback) {\n this._ensureObj(objId).capability.promise.then(callback);\n\n return null;\n }\n\n const obj = this._objs[objId];\n\n if (!obj || !obj.resolved) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n\n return obj.data;\n }\n\n has(objId) {\n const obj = this._objs[objId];\n return obj ? obj.resolved : false;\n }\n\n resolve(objId, data) {\n const obj = this._ensureObj(objId);\n\n obj.resolved = true;\n obj.data = data;\n obj.capability.resolve(data);\n }\n\n clear() {\n this._objs = Object.create(null);\n }\n\n}\n\nclass RenderTask {\n constructor(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n\n get promise() {\n return this._internalRenderTask.capability.promise;\n }\n\n cancel() {\n this._internalRenderTask.cancel();\n }\n\n}\n\nconst InternalRenderTask = function InternalRenderTaskClosure() {\n const canvasInRendering = new WeakSet();\n\n class InternalRenderTask {\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n operatorList,\n pageIndex,\n canvasFactory,\n webGLContext,\n useRequestAnimationFrame = false,\n pdfBug = false\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this._pdfBug = pdfBug;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n get completed() {\n return this.capability.promise.catch(function () {});\n }\n\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\n if (this.cancelled) {\n return;\n }\n\n if (this._canvas) {\n if (canvasInRendering.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n\n canvasInRendering.add(this._canvas);\n }\n\n if (this._pdfBug && globalThis.StepperManager && globalThis.StepperManager.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n\n const {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n } = this.params;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer, optionalContentConfig);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n\n cancel(error = null) {\n this.running = false;\n this.cancelled = true;\n\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n\n this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, \"canvas\"));\n }\n\n operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n\n return;\n }\n\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n\n if (this.running) {\n return;\n }\n\n this._continue();\n }\n\n _continue() {\n this.running = true;\n\n if (this.cancelled) {\n return;\n }\n\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this.cancel.bind(this));\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this));\n }\n }\n\n async _next() {\n if (this.cancelled) {\n return;\n }\n\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n\n this.callback();\n }\n }\n }\n\n }\n\n return InternalRenderTask;\n}();\n\nconst version = '2.6.347';\nexports.version = version;\nconst build = '3be9c65f';\nexports.build = build;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontLoader = exports.FontFaceObject = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass BaseFontLoader {\n constructor({\n docId,\n onUnsupportedFeature,\n ownerDocument = globalThis.document\n }) {\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)(\"Cannot initialize BaseFontLoader.\");\n }\n\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this._document = ownerDocument;\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n\n this._document.fonts.add(nativeFontFace);\n }\n\n insertRule(rule) {\n let styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = this._document.createElement(\"style\");\n styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n\n this._document.documentElement.getElementsByTagName(\"head\")[0].appendChild(styleElement);\n }\n\n const styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n\n clear() {\n this.nativeFontFaces.forEach(nativeFontFace => {\n this._document.fonts.delete(nativeFontFace);\n });\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n\n async bind(font) {\n if (font.attached || font.missingFile) {\n return;\n }\n\n font.attached = true;\n\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative\n });\n\n (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n\n return;\n }\n\n const rule = font.createFontFaceRule();\n\n if (rule) {\n this.insertRule(rule);\n\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n\n this._prepareFontLoadEvent([rule], [font], request);\n });\n }\n }\n\n _queueLoadingCallback(callback) {\n (0, _util.unreachable)(\"Abstract method `_queueLoadingCallback`.\");\n }\n\n get isFontLoadingAPISupported() {\n const supported = typeof this._document !== \"undefined\" && !!this._document.fonts;\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", supported);\n }\n\n get isSyncFontLoadingSupported() {\n (0, _util.unreachable)(\"Abstract method `isSyncFontLoadingSupported`.\");\n }\n\n get _loadTestFont() {\n (0, _util.unreachable)(\"Abstract method `_loadTestFont`.\");\n }\n\n _prepareFontLoadEvent(rules, fontsToLoad, request) {\n (0, _util.unreachable)(\"Abstract method `_prepareFontLoadEvent`.\");\n }\n\n}\n\nlet FontLoader;\nexports.FontLoader = FontLoader;\n{\n exports.FontLoader = FontLoader = class GenericFontLoader extends BaseFontLoader {\n constructor(params) {\n super(params);\n this.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\n this.loadTestFontId = 0;\n }\n\n get isSyncFontLoadingSupported() {\n let supported = false;\n\n if (typeof navigator === \"undefined\") {\n supported = true;\n } else {\n const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n if (m && m[1] >= 14) {\n supported = true;\n }\n }\n\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n\n _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n\n while (context.requests.length > 0 && context.requests[0].done) {\n const otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n\n const context = this.loadingContext;\n const request = {\n id: `pdfjs-font-loading-${context.nextRequestId++}`,\n done: false,\n complete: completeRequest,\n callback\n };\n context.requests.push(request);\n return request;\n }\n\n get _loadTestFont() {\n const getLoadTestFont = function () {\n return atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n };\n\n return (0, _util.shadow)(this, \"_loadTestFont\", getLoadTestFont());\n }\n\n _prepareFontLoadEvent(rules, fonts, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n\n let i, ii;\n\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n\n function isFontReady(name, callback) {\n called++;\n\n if (called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const names = [];\n\n for (i = 0, ii = fonts.length; i < ii; i++) {\n names.push(fonts[i].loadedName);\n }\n\n names.push(loadTestFontId);\n\n const div = this._document.createElement(\"div\");\n\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n\n for (i = 0, ii = names.length; i < ii; ++i) {\n const span = this._document.createElement(\"span\");\n\n span.textContent = \"Hi\";\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n\n this._document.body.appendChild(div);\n\n isFontReady(loadTestFontId, () => {\n this._document.body.removeChild(div);\n\n request.complete();\n });\n }\n\n };\n}\n\nclass FontFaceObject {\n constructor(translatedData, {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n onUnsupportedFeature = null,\n fontRegistry = null\n }) {\n this.compiledGlyphs = Object.create(null);\n\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n const nativeFontFace = new FontFace(this.loadedName, this.data, {});\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n\n return nativeFontFace;\n }\n\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n const data = (0, _util.bytesToString)(new Uint8Array(this.data));\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n\n return rule;\n }\n\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n\n let cmds, current;\n\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n\n if (this._onUnsupportedFeature) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath\n });\n }\n\n (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n\n if (this.isEvalSupported && _util.IsEvalSupportedCached.value) {\n let args,\n js = \"\";\n\n for (let i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n\n if (current.args !== undefined) {\n args = current.args.join(\",\");\n } else {\n args = \"\";\n }\n\n js += \"c.\" + current.cmd + \"(\" + args + \");\\n\";\n }\n\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", js);\n }\n\n return this.compiledGlyphs[character] = function (c, size) {\n for (let i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n\n}\n\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NodeCMapReaderFactory = exports.NodeCanvasFactory = void 0;\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _util = __w_pdfjs_require__(2);\n\nlet NodeCanvasFactory = class {\n constructor() {\n (0, _util.unreachable)(\"Not implemented: NodeCanvasFactory\");\n }\n\n};\nexports.NodeCanvasFactory = NodeCanvasFactory;\nlet NodeCMapReaderFactory = class {\n constructor() {\n (0, _util.unreachable)(\"Not implemented: NodeCMapReaderFactory\");\n }\n\n};\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\n\nif (_is_node.isNodeJS) {\n exports.NodeCanvasFactory = NodeCanvasFactory = class extends _display_utils.BaseCanvasFactory {\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const Canvas = require(\"canvas\");\n\n const canvas = Canvas.createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\")\n };\n }\n\n };\n exports.NodeCMapReaderFactory = NodeCMapReaderFactory = class extends _display_utils.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return new Promise((resolve, reject) => {\n const fs = require(\"fs\");\n\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n\n resolve({\n cMapData: new Uint8Array(data),\n compressionType\n });\n });\n });\n }\n\n };\n}\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AnnotationStorage = void 0;\n\nclass AnnotationStorage {\n constructor() {\n this._storage = new Map();\n this._modified = false;\n this.onSetModified = null;\n this.onResetModified = null;\n }\n\n getOrCreateValue(key, defaultValue) {\n if (this._storage.has(key)) {\n return this._storage.get(key);\n }\n\n this._storage.set(key, defaultValue);\n\n return defaultValue;\n }\n\n setValue(key, value) {\n if (this._storage.get(key) !== value) {\n this._setModified();\n }\n\n this._storage.set(key, value);\n }\n\n getAll() {\n if (this._storage.size === 0) {\n return null;\n }\n\n return Object.fromEntries(this._storage);\n }\n\n get size() {\n return this._storage.size;\n }\n\n _setModified() {\n if (!this._modified) {\n this._modified = true;\n\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n\n resetModified() {\n if (this._modified) {\n this._modified = false;\n\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n\n}\n\nexports.AnnotationStorage = AnnotationStorage;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.apiCompatibilityParams = void 0;\n\nvar _is_node = __w_pdfjs_require__(4);\n\nconst compatibilityParams = Object.create(null);\n{\n (function checkFontFace() {\n if (_is_node.isNodeJS) {\n compatibilityParams.disableFontFace = true;\n }\n })();\n}\nconst apiCompatibilityParams = Object.freeze(compatibilityParams);\nexports.apiCompatibilityParams = apiCompatibilityParams;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CanvasGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _pattern_helper = __w_pdfjs_require__(11);\n\nvar MIN_FONT_SIZE = 16;\nvar MAX_FONT_SIZE = 100;\nvar MAX_GROUP_SIZE = 4096;\nvar MIN_WIDTH_FACTOR = 0.65;\nvar COMPILE_TYPE3_GLYPHS = true;\nvar MAX_SIZE_TO_COMPILE = 1000;\nvar FULL_CHUNK_HEIGHT = 16;\n\nfunction addContextCurrentTransform(ctx) {\n if (!ctx.mozCurrentTransform) {\n ctx._originalSave = ctx.save;\n ctx._originalRestore = ctx.restore;\n ctx._originalRotate = ctx.rotate;\n ctx._originalScale = ctx.scale;\n ctx._originalTranslate = ctx.translate;\n ctx._originalTransform = ctx.transform;\n ctx._originalSetTransform = ctx.setTransform;\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n Object.defineProperty(ctx, \"mozCurrentTransform\", {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n }\n });\n Object.defineProperty(ctx, \"mozCurrentTransformInverse\", {\n get: function getCurrentTransformInverse() {\n var m = this._transformMatrix;\n var a = m[0],\n b = m[1],\n c = m[2],\n d = m[3],\n e = m[4],\n f = m[5];\n var ad_bc = a * d - b * c;\n var bc_ad = b * c - a * d;\n return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];\n }\n });\n\n ctx.save = function ctxSave() {\n var old = this._transformMatrix;\n\n this._transformStack.push(old);\n\n this._transformMatrix = old.slice(0, 6);\n\n this._originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n var prev = this._transformStack.pop();\n\n if (prev) {\n this._transformMatrix = prev;\n\n this._originalRestore();\n }\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n var m = this._transformMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n\n this._originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n var m = this._transformMatrix;\n m[0] = m[0] * x;\n m[1] = m[1] * x;\n m[2] = m[2] * y;\n m[3] = m[3] * y;\n\n this._originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];\n\n ctx._originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n\n ctx._originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.rotate = function ctxRotate(angle) {\n var cosValue = Math.cos(angle);\n var sinValue = Math.sin(angle);\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];\n\n this._originalRotate(angle);\n };\n }\n}\n\nvar CachedCanvases = function CachedCanvasesClosure() {\n function CachedCanvases(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n\n CachedCanvases.prototype = {\n getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {\n var canvasEntry;\n\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n\n return canvasEntry;\n },\n\n clear() {\n for (var id in this.cache) {\n var canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n\n };\n return CachedCanvases;\n}();\n\nfunction compileType3Glyph(imgData) {\n var POINT_TO_PROCESS_LIMIT = 1000;\n var width = imgData.width,\n height = imgData.height;\n var i,\n j,\n j0,\n width1 = width + 1;\n var points = new Uint8Array(width1 * (height + 1));\n var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n var lineSize = width + 7 & ~7,\n data0 = imgData.data;\n var data = new Uint8Array(lineSize * height),\n pos = 0,\n ii;\n\n for (i = 0, ii = data0.length; i < ii; i++) {\n var mask = 128,\n elem = data0[i];\n\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n var count = 0;\n pos = 0;\n\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n\n var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n\n pos = lineSize * (height - 1);\n j0 = i * width1;\n\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n var outlines = [];\n\n for (i = 0; count && i <= height; i++) {\n var p = i * width1;\n var end = p + width;\n\n while (p < end && !points[p]) {\n p++;\n }\n\n if (p === end) {\n continue;\n }\n\n var coords = [p % width1, i];\n var type = points[p],\n p0 = p,\n pp;\n\n do {\n var step = steps[type];\n\n do {\n p += step;\n } while (!points[p]);\n\n pp = points[p];\n\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n\n coords.push(p % width1);\n coords.push(p / width1 | 0);\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n\n outlines.push(coords);\n --i;\n }\n\n var drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n\n for (let k = 0, kk = outlines.length; k < kk; k++) {\n var o = outlines[k];\n c.moveTo(o[0], o[1]);\n\n for (let l = 2, ll = o.length; l < ll; l += 2) {\n c.lineTo(o[l], o[l + 1]);\n }\n }\n\n c.fill();\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n}\n\nvar CanvasExtraState = function CanvasExtraStateClosure() {\n function CanvasExtraState() {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.resumeSMaskCtx = null;\n this.transferMaps = null;\n }\n\n CanvasExtraState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n },\n setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n };\n return CanvasExtraState;\n}();\n\nvar CanvasGraphics = function CanvasGraphicsClosure() {\n var EXECUTION_TIME = 15;\n var EXECUTION_STEPS = 10;\n\n function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer, optionalContentConfig) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState();\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.contentVisible = true;\n this.markedContentStack = [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n\n if (canvasCtx) {\n addContextCurrentTransform(canvasCtx);\n }\n\n this._cachedGetSinglePixelWidth = null;\n }\n\n function putBinaryImageData(ctx, imgData, transferMaps = null) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0,\n destPos;\n var src = imgData.data;\n var dest = chunkImgData.data;\n var i, j, thisChunkHeight, elemsInThisChunk;\n let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray;\n\n if (transferMaps) {\n switch (transferMaps.length) {\n case 1:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[0];\n transferMapBlue = transferMaps[0];\n transferMapGray = transferMaps[0];\n break;\n\n case 4:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[1];\n transferMapBlue = transferMaps[2];\n transferMapGray = transferMaps[3];\n break;\n }\n }\n\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n var srcLength = src.byteLength;\n var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n var dest32DataLength = dest32.length;\n var fullSrcDiff = width + 7 >> 3;\n var white = 0xffffffff;\n var black = _util.IsLittleEndianCached.value ? 0xff000000 : 0x000000ff;\n\n if (transferMapGray) {\n if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n [white, black] = [black, white];\n }\n }\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n\n for (j = 0; j < thisChunkHeight; j++) {\n var srcDiff = srcLength - srcPos;\n let k = 0;\n var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n var kEndUnrolled = kEnd & ~7;\n var mask = 0;\n var srcByte = 0;\n\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n\n if (hasTransferMaps) {\n for (let k = 0; k < destPos; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n }\n\n function putBinaryImageMask(ctx, imgData) {\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0;\n var src = imgData.data;\n var dest = chunkImgData.data;\n\n for (var i = 0; i < totalChunks; i++) {\n var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n var destPos = 3;\n\n for (var j = 0; j < thisChunkHeight; j++) {\n var mask = 0;\n\n for (var k = 0; k < width; k++) {\n if (!mask) {\n var elem = src[srcPos++];\n mask = 128;\n }\n\n dest[destPos] = elem & mask ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n }\n\n function copyCtxState(sourceCtx, destCtx) {\n var properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\"];\n\n for (var i = 0, ii = properties.length; i < ii; i++) {\n var property = properties[i];\n\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n }\n\n function resetCtxToDefault(ctx) {\n ctx.strokeStyle = \"#000000\";\n ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n }\n\n function composeSMaskBackdrop(bytes, r0, g0, b0) {\n var length = bytes.length;\n\n for (var i = 3; i < length; i += 4) {\n var alpha = bytes[i];\n\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n var alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n }\n\n function composeSMaskAlpha(maskData, layerData, transferMap) {\n var length = maskData.length;\n var scale = 1 / 255;\n\n for (var i = 3; i < length; i += 4) {\n var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n }\n\n function composeSMaskLuminosity(maskData, layerData, transferMap) {\n var length = maskData.length;\n\n for (var i = 3; i < length; i += 4) {\n var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n }\n\n function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) {\n var hasBackdrop = !!backdrop;\n var r0 = hasBackdrop ? backdrop[0] : 0;\n var g0 = hasBackdrop ? backdrop[1] : 0;\n var b0 = hasBackdrop ? backdrop[2] : 0;\n var composeFn;\n\n if (subtype === \"Luminosity\") {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n var PIXELS_TO_PROCESS = 1048576;\n var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n\n for (var row = 0; row < height; row += chunkSize) {\n var chunkHeight = Math.min(chunkSize, height - row);\n var maskData = maskCtx.getImageData(0, row, width, chunkHeight);\n var layerData = layerCtx.getImageData(0, row, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n\n composeFn(maskData.data, layerData.data, transferMap);\n maskCtx.putImageData(layerData, 0, row);\n }\n }\n\n function composeSMask(ctx, smask, layerCtx, webGLContext) {\n var mask = smask.canvas;\n var maskCtx = smask.context;\n ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);\n var backdrop = smask.backdrop || null;\n\n if (!smask.transferMap && webGLContext.isEnabled) {\n const composed = webGLContext.composeSMask({\n layer: layerCtx.canvas,\n mask,\n properties: {\n subtype: smask.subtype,\n backdrop\n }\n });\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(composed, smask.offsetX, smask.offsetY);\n return;\n }\n\n genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap);\n ctx.drawImage(mask, 0, 0);\n }\n\n var LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n var LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n var NORMAL_CLIP = {};\n var EO_CLIP = {};\n CanvasGraphics.prototype = {\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n var width = this.ctx.canvas.width;\n var height = this.ctx.canvas.height;\n this.ctx.save();\n this.ctx.fillStyle = background || \"rgb(255, 255, 255)\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n\n if (transparency) {\n var transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n }\n\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n },\n\n executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var i = executionStartIdx || 0;\n var argsArrayLen = argsArray.length;\n\n if (argsArrayLen === i) {\n return i;\n }\n\n var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n var steps = 0;\n var commonObjs = this.commonObjs;\n var objs = this.objs;\n var fnId;\n\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n\n fnId = fnArray[i];\n\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n\n i++;\n\n if (i === argsArrayLen) {\n return i;\n }\n\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n\n steps = 0;\n }\n }\n },\n endDrawing: function CanvasGraphics_endDrawing() {\n if (this.current.activeSMask !== null) {\n this.endSMaskGroup();\n }\n\n this.ctx.restore();\n\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n\n this.cachedCanvases.clear();\n this.webGLContext.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n },\n setLineWidth: function CanvasGraphics_setLineWidth(width) {\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n },\n setLineCap: function CanvasGraphics_setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n },\n setLineJoin: function CanvasGraphics_setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n },\n setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n },\n setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {\n var ctx = this.ctx;\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n },\n\n setRenderingIntent(intent) {},\n\n setFlatness(flatness) {},\n\n setGState: function CanvasGraphics_setGState(states) {\n for (var i = 0, ii = states.length; i < ii; i++) {\n var state = states[i];\n var key = state[0];\n var value = state[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n\n case \"CA\":\n this.current.strokeAlpha = state[1];\n break;\n\n case \"ca\":\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n\n case \"SMask\":\n if (this.current.activeSMask) {\n if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {\n this.suspendSMaskGroup();\n } else {\n this.endSMaskGroup();\n }\n }\n\n this.current.activeSMask = value ? this.tempSMask : null;\n\n if (this.current.activeSMask) {\n this.beginSMaskGroup();\n }\n\n this.tempSMask = null;\n break;\n\n case \"TR\":\n this.current.transferMaps = value;\n }\n }\n },\n beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\n var activeSMask = this.current.activeSMask;\n var drawnWidth = activeSMask.canvas.width;\n var drawnHeight = activeSMask.canvas.height;\n var cacheId = \"smaskGroupAt\" + this.groupLevel;\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var currentCtx = this.ctx;\n var currentTransform = currentCtx.mozCurrentTransform;\n this.ctx.save();\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);\n groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n this.ctx.save();\n copyCtxState(groupCtx, this.ctx);\n this.current.resumeSMaskCtx = groupCtx;\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\n groupCtx.save();\n groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);\n groupCtx.restore();\n },\n resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.current.resumeSMaskCtx;\n var currentCtx = this.ctx;\n this.ctx = groupCtx;\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n endSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n copyCtxState(groupCtx, this.ctx);\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\n },\n save: function CanvasGraphics_save() {\n this.ctx.save();\n var old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n this.current.resumeSMaskCtx = null;\n },\n restore: function CanvasGraphics_restore() {\n if (this.current.resumeSMaskCtx) {\n this.resumeSMaskGroup();\n }\n\n if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) {\n this.endSMaskGroup();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n this.ctx.restore();\n this.pendingClip = null;\n this._cachedGetSinglePixelWidth = null;\n }\n },\n transform: function CanvasGraphics_transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedGetSinglePixelWidth = null;\n },\n constructPath: function CanvasGraphics_constructPath(ops, args) {\n var ctx = this.ctx;\n var current = this.current;\n var x = current.x,\n y = current.y;\n\n for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n\n if (width === 0 && ctx.lineWidth < this.getSinglePixelWidth()) {\n width = this.getSinglePixelWidth();\n }\n\n if (height === 0 && ctx.lineWidth < this.getSinglePixelWidth()) {\n height = this.getSinglePixelWidth();\n }\n\n var xw = x + width;\n var yh = y + height;\n ctx.moveTo(x, y);\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n ctx.lineTo(x, y);\n ctx.closePath();\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n j += 4;\n break;\n\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n\n current.setCurrentPoint(x, y);\n },\n closePath: function CanvasGraphics_closePath() {\n this.ctx.closePath();\n },\n stroke: function CanvasGraphics_stroke(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n var ctx = this.ctx;\n var strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n\n if (this.contentVisible) {\n if (strokeColor && strokeColor.hasOwnProperty(\"type\") && strokeColor.type === \"Pattern\") {\n ctx.save();\n const transform = ctx.mozCurrentTransform;\n\n const scale = _util.Util.singularValueDecompose2dScale(transform)[0];\n\n ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth * scale);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);\n ctx.stroke();\n }\n }\n\n if (consumePath) {\n this.consumePath();\n }\n\n ctx.globalAlpha = this.current.fillAlpha;\n },\n closeStroke: function CanvasGraphics_closeStroke() {\n this.closePath();\n this.stroke();\n },\n fill: function CanvasGraphics_fill(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n\n if (this.baseTransform) {\n ctx.setTransform.apply(ctx, this.baseTransform);\n }\n\n ctx.fillStyle = fillColor.getPattern(ctx, this);\n needRestore = true;\n }\n\n if (this.contentVisible) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n\n if (needRestore) {\n ctx.restore();\n }\n\n if (consumePath) {\n this.consumePath();\n }\n },\n eoFill: function CanvasGraphics_eoFill() {\n this.pendingEOFill = true;\n this.fill();\n },\n fillStroke: function CanvasGraphics_fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n },\n eoFillStroke: function CanvasGraphics_eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n },\n closeFillStroke: function CanvasGraphics_closeFillStroke() {\n this.closePath();\n this.fillStroke();\n },\n closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n },\n endPath: function CanvasGraphics_endPath() {\n this.consumePath();\n },\n clip: function CanvasGraphics_clip() {\n this.pendingClip = NORMAL_CLIP;\n },\n eoClip: function CanvasGraphics_eoClip() {\n this.pendingClip = EO_CLIP;\n },\n beginText: function CanvasGraphics_beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n endText: function CanvasGraphics_endText() {\n var paths = this.pendingTextPaths;\n var ctx = this.ctx;\n\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n\n for (var i = 0; i < paths.length; i++) {\n var path = paths[i];\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n },\n setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n },\n setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n },\n setHScale: function CanvasGraphics_setHScale(scale) {\n this.current.textHScale = scale / 100;\n },\n setLeading: function CanvasGraphics_setLeading(leading) {\n this.current.leading = -leading;\n },\n setFont: function CanvasGraphics_setFont(fontRefName, size) {\n var fontObj = this.commonObjs.get(fontRefName);\n var current = this.current;\n\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n this.current.font = fontObj;\n this.current.fontSize = size;\n\n if (fontObj.isType3Font) {\n return;\n }\n\n var name = fontObj.loadedName || \"sans-serif\";\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n var italic = fontObj.italic ? \"italic\" : \"normal\";\n var typeface = `\"${name}\", ${fontObj.fallbackName}`;\n let browserFontSize = size;\n\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n },\n setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n },\n setTextRise: function CanvasGraphics_setTextRise(rise) {\n this.current.textRise = rise;\n },\n moveText: function CanvasGraphics_moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n },\n setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n },\n setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.sqrt(a * a + b * b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n nextLine: function CanvasGraphics_nextLine() {\n this.moveText(0, this.current.leading);\n },\n\n paintChar(character, x, y, patternTransform) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var textRenderingMode = current.textRenderingMode;\n var fontSize = current.fontSize / current.fontSizeScale;\n var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n var addToPath;\n\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n\n if (isAddToPathSet) {\n var paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x,\n y,\n fontSize,\n addToPath\n });\n }\n },\n\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n var data = ctx.getImageData(0, 0, 10, 10).data;\n var enabled = false;\n\n for (var i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n },\n\n showText: function CanvasGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n var fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return undefined;\n }\n\n var ctx = this.ctx;\n var fontSizeScale = current.fontSizeScale;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var glyphsLength = glyphs.length;\n var vertical = font.vertical;\n var spacingDir = vertical ? 1 : -1;\n var defaultVMetrics = font.defaultVMetrics;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n let patternTransform;\n\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n\n var lineWidth = current.lineWidth;\n var scale = current.textMatrixScale;\n\n if (scale === 0 || lineWidth === 0) {\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n this._cachedGetSinglePixelWidth = null;\n lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;\n }\n } else {\n lineWidth /= scale;\n }\n\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n\n ctx.lineWidth = lineWidth;\n var x = 0,\n i;\n\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n var restoreNeeded = false;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var character = glyph.fontChar;\n var accent = glyph.accent;\n var scaledX, scaledY, scaledAccentX, scaledAccentY;\n var width = glyph.width;\n\n if (vertical) {\n var vmetric, vx, vy;\n vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (font.remeasure && width > 0) {\n var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n var characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n\n if (accent) {\n scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n\n var charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n ctx.restore();\n },\n showType3Text: function CanvasGraphics_showType3Text(glyphs) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n var fontDirection = current.fontDirection;\n var spacingDir = font.vertical ? 1 : -1;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var textHScale = current.textHScale * fontDirection;\n var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var glyphsLength = glyphs.length;\n var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n var i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var operatorList = font.charProcOperatorList[glyph.operatorListId];\n\n if (!operatorList) {\n (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n\n var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n\n ctx.restore();\n this.processingType3 = null;\n },\n setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {},\n setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n },\n getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {\n var pattern;\n\n if (IR[0] === \"TilingPattern\") {\n var color = IR[1];\n var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();\n var canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext);\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR);\n }\n\n return pattern;\n },\n setStrokeColorN: function CanvasGraphics_setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n },\n setFillColorN: function CanvasGraphics_setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n },\n setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n },\n setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n },\n shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n if (!this.contentVisible) {\n return;\n }\n\n var ctx = this.ctx;\n this.save();\n var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR);\n ctx.fillStyle = pattern.getPattern(ctx, this, true);\n var inv = ctx.mozCurrentTransformInverse;\n\n if (inv) {\n var canvas = ctx.canvas;\n var width = canvas.width;\n var height = canvas.height;\n\n var bl = _util.Util.applyTransform([0, 0], inv);\n\n var br = _util.Util.applyTransform([0, height], inv);\n\n var ul = _util.Util.applyTransform([width, 0], inv);\n\n var ur = _util.Util.applyTransform([width, height], inv);\n\n var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.restore();\n },\n beginInlineImage: function CanvasGraphics_beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n },\n beginImageData: function CanvasGraphics_beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n },\n paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n\n this.baseTransform = this.ctx.mozCurrentTransform;\n\n if (bbox) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.clip();\n this.endPath();\n }\n },\n paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n },\n beginGroup: function CanvasGraphics_beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n var currentCtx = this.ctx;\n\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n\n var currentTransform = currentCtx.mozCurrentTransform;\n\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n\n var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);\n\n var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n var scaleX = 1,\n scaleY = 1;\n\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n\n var cacheId = \"groupAt\" + this.groupLevel;\n\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n }\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n this.current.activeSMask = null;\n },\n endGroup: function CanvasGraphics_endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.groupLevel--;\n var groupCtx = this.ctx;\n this.ctx = this.groupStack.pop();\n\n if (this.ctx.imageSmoothingEnabled !== undefined) {\n this.ctx.imageSmoothingEnabled = false;\n } else {\n this.ctx.mozImageSmoothingEnabled = false;\n }\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n } else {\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n }\n\n this.restore();\n },\n beginAnnotations: function CanvasGraphics_beginAnnotations() {\n this.save();\n\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n },\n endAnnotations: function CanvasGraphics_endAnnotations() {\n this.restore();\n },\n beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) {\n this.save();\n resetCtxToDefault(this.ctx);\n this.current = new CanvasExtraState();\n\n if (Array.isArray(rect) && rect.length === 4) {\n var width = rect[2] - rect[0];\n var height = rect[3] - rect[1];\n this.ctx.rect(rect[0], rect[1], width, height);\n this.clip();\n this.endPath();\n }\n\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n },\n endAnnotation: function CanvasGraphics_endAnnotation() {\n this.restore();\n },\n paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n\n var ctx = this.ctx;\n var width = img.width,\n height = img.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var glyph = this.processingType3;\n\n if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n glyph.compiled = compileType3Glyph({\n data: img.data,\n width,\n height\n });\n } else {\n glyph.compiled = null;\n }\n }\n\n if (glyph && glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n this.paintInlineImageXObject(maskCanvas.canvas);\n },\n\n paintImageMaskXObjectRepeat(imgData, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, imgData);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n var ctx = this.ctx;\n\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n ctx.save();\n ctx.transform(scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n\n paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n\n for (var i = 0, ii = images.length; i < ii; i++) {\n var image = images[i];\n var width = image.width,\n height = image.height;\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, image);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n },\n paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n var width = imgData.width;\n var height = imgData.height;\n var map = [];\n\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n\n this.paintInlineImageXObjectGroup(imgData, map);\n },\n paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n\n var width = imgData.width;\n var height = imgData.height;\n var ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n var currentTransform = ctx.mozCurrentTransformInverse;\n var a = currentTransform[0],\n b = currentTransform[1];\n var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n var c = currentTransform[2],\n d = currentTransform[3];\n var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n var imgToPaint, tmpCanvas;\n\n if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n imgToPaint = tmpCanvas.canvas;\n }\n\n var paintWidth = width,\n paintHeight = height;\n var tmpCanvasId = \"prescale1\";\n\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n var newWidth = paintWidth,\n newHeight = paintHeight;\n\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n imgToPaint = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n\n ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: width / currentTransform[0],\n height: height / currentTransform[3]\n });\n }\n\n this.restore();\n },\n paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n\n var ctx = this.ctx;\n var w = imgData.width;\n var h = imgData.height;\n var tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n\n for (var i = 0, ii = map.length; i < ii; i++) {\n var entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h\n });\n }\n\n ctx.restore();\n }\n },\n paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n\n this.ctx.fillRect(0, 0, 1, 1);\n },\n markPoint: function CanvasGraphics_markPoint(tag) {},\n markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},\n beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n },\n beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n\n this.contentVisible = this.isContentVisible();\n },\n endMarkedContent: function CanvasGraphics_endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n },\n beginCompat: function CanvasGraphics_beginCompat() {},\n endCompat: function CanvasGraphics_endCompat() {},\n consumePath: function CanvasGraphics_consumePath() {\n var ctx = this.ctx;\n\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n\n this.pendingClip = null;\n }\n\n ctx.beginPath();\n },\n\n getSinglePixelWidth(scale) {\n if (this._cachedGetSinglePixelWidth === null) {\n const inverse = this.ctx.mozCurrentTransformInverse;\n this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3]));\n }\n\n return this._cachedGetSinglePixelWidth;\n },\n\n getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {\n var transform = this.ctx.mozCurrentTransform;\n return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];\n },\n isContentVisible: function CanvasGraphics_isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n\n return true;\n }\n };\n\n for (var op in _util.OPS) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n\n return CanvasGraphics;\n}();\n\nexports.CanvasGraphics = CanvasGraphics;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getShadingPatternFromIR = getShadingPatternFromIR;\nexports.TilingPattern = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar ShadingIRs = {};\n\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox || typeof Path2D === \"undefined\") {\n return;\n }\n\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\n\nShadingIRs.RadialAxial = {\n fromIR: function RadialAxial_fromIR(raw) {\n var type = raw[1];\n var bbox = raw[2];\n var colorStops = raw[3];\n var p0 = raw[4];\n var p1 = raw[5];\n var r0 = raw[6];\n var r1 = raw[7];\n return {\n type: \"Pattern\",\n getPattern: function RadialAxial_getPattern(ctx) {\n applyBoundingBox(ctx, bbox);\n var grad;\n\n if (type === \"axial\") {\n grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);\n } else if (type === \"radial\") {\n grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);\n }\n\n for (var i = 0, ii = colorStops.length; i < ii; ++i) {\n var c = colorStops[i];\n grad.addColorStop(c[0], c[1]);\n }\n\n return grad;\n }\n };\n }\n};\n\nvar createMeshCanvas = function createMeshCanvasClosure() {\n function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n var coords = context.coords,\n colors = context.colors;\n var bytes = data.data,\n rowSize = data.width * 4;\n var tmp;\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n var x1 = (coords[p1] + context.offsetX) * context.scaleX;\n var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n var x2 = (coords[p2] + context.offsetX) * context.scaleX;\n var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n var x3 = (coords[p3] + context.offsetX) * context.scaleX;\n var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n\n if (y1 >= y3) {\n return;\n }\n\n var c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n var c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n var c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n var minY = Math.round(y1),\n maxY = Math.round(y3);\n var xa, car, cag, cab;\n var xb, cbr, cbg, cbb;\n\n for (var y = minY; y <= maxY; y++) {\n if (y < y2) {\n let k;\n\n if (y < y1) {\n k = 0;\n } else if (y1 === y2) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y2);\n }\n\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n\n let k;\n\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n var x1_ = Math.round(Math.min(xa, xb));\n var x2_ = Math.round(Math.max(xa, xb));\n var j = rowSize * y + x1_ * 4;\n\n for (var x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n }\n\n function drawFigure(data, figure, context) {\n var ps = figure.coords;\n var cs = figure.colors;\n var i, ii;\n\n switch (figure.type) {\n case \"lattice\":\n var verticesPerRow = figure.verticesPerRow;\n var rows = Math.floor(ps.length / verticesPerRow) - 1;\n var cols = verticesPerRow - 1;\n\n for (i = 0; i < rows; i++) {\n var q = i * verticesPerRow;\n\n for (var j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n\n break;\n\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n\n break;\n\n default:\n throw new Error(\"illegal figure\");\n }\n }\n\n function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) {\n var EXPECTED_SCALE = 1.1;\n var MAX_PATTERN_SIZE = 3000;\n var BORDER_SIZE = 2;\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var boundsWidth = Math.ceil(bounds[2]) - offsetX;\n var boundsHeight = Math.ceil(bounds[3]) - offsetY;\n var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var scaleX = boundsWidth / width;\n var scaleY = boundsHeight / height;\n var context = {\n coords,\n colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n var paddedWidth = width + BORDER_SIZE * 2;\n var paddedHeight = height + BORDER_SIZE * 2;\n var canvas, tmpCanvas, i, ii;\n\n if (webGLContext.isEnabled) {\n canvas = webGLContext.drawFigures({\n width,\n height,\n backgroundColor,\n figures,\n context\n });\n tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n } else {\n tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n var tmpCtx = tmpCanvas.context;\n var data = tmpCtx.createImageData(width, height);\n\n if (backgroundColor) {\n var bytes = data.data;\n\n for (i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n\n for (i = 0; i < figures.length; i++) {\n drawFigure(data, figures[i], context);\n }\n\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n }\n\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n\n return createMeshCanvas;\n}();\n\nShadingIRs.Mesh = {\n fromIR: function Mesh_fromIR(raw) {\n var coords = raw[2];\n var colors = raw[3];\n var figures = raw[4];\n var bounds = raw[5];\n var matrix = raw[6];\n var bbox = raw[7];\n var background = raw[8];\n return {\n type: \"Pattern\",\n getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {\n applyBoundingBox(ctx, bbox);\n var scale;\n\n if (shadingFill) {\n scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n\n if (matrix) {\n var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);\n\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);\n\n if (!shadingFill) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n\n if (matrix) {\n ctx.transform.apply(ctx, matrix);\n }\n }\n\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n };\n }\n};\nShadingIRs.Dummy = {\n fromIR: function Dummy_fromIR() {\n return {\n type: \"Pattern\",\n getPattern: function Dummy_fromIR_getPattern() {\n return \"hotpink\";\n }\n };\n }\n};\n\nfunction getShadingPatternFromIR(raw) {\n var shadingIR = ShadingIRs[raw[0]];\n\n if (!shadingIR) {\n throw new Error(`Unknown IR type: ${raw[0]}`);\n }\n\n return shadingIR.fromIR(raw);\n}\n\nvar TilingPattern = function TilingPatternClosure() {\n var PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n };\n var MAX_PATTERN_SIZE = 3000;\n\n function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n this.type = \"Pattern\";\n this.ctx = ctx;\n }\n\n TilingPattern.prototype = {\n createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {\n var operatorList = this.operatorList;\n var bbox = this.bbox;\n var xstep = this.xstep;\n var ystep = this.ystep;\n var paintType = this.paintType;\n var tilingType = this.tilingType;\n var color = this.color;\n var canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n var x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n\n var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n\n var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n var tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n var tmpCtx = tmpCanvas.context;\n var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n graphics.transform(1, 0, 0, 1, -x0, -y0);\n this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n graphics.executeOperatorList(operatorList);\n this.ctx.transform(1, 0, 0, 1, x0, y0);\n this.ctx.scale(1 / dimx.scale, 1 / dimy.scale);\n return tmpCanvas.canvas;\n },\n getSizeAndScale: function TilingPattern_getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize);\n var size = Math.ceil(step * scale);\n\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n\n return {\n scale,\n size\n };\n },\n clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {\n if (Array.isArray(bbox) && bbox.length === 4) {\n var bboxWidth = x1 - x0;\n var bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.clip();\n graphics.endPath();\n }\n },\n setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n\n switch (paintType) {\n case PaintType.COLORED:\n var ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n\n case PaintType.UNCOLORED:\n var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]);\n\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n\n default:\n throw new _util.FormatError(`Unsupported paint type: ${paintType}`);\n }\n },\n getPattern: function TilingPattern_getPattern(ctx, owner) {\n ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.baseTransform);\n ctx.transform.apply(ctx, this.matrix);\n var temporaryPatternCanvas = this.createPatternCanvas(owner);\n return ctx.createPattern(temporaryPatternCanvas, \"repeat\");\n }\n };\n return TilingPattern;\n}();\n\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\nGlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? \"\" : GlobalWorkerOptions.workerSrc;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\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 (typeof reason !== \"object\" || reason === null) {\n return reason;\n }\n\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n\n default:\n return new _util.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\n if (data.targetName !== this.sourceName) {\n return;\n }\n\n if (data.stream) {\n this._processStreamMessage(data);\n\n return;\n }\n\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\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\n return;\n }\n\n const action = this.actionHandler[data.action];\n\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\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(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\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 return;\n }\n\n if (data.streamId) {\n this._createStreamSink(data);\n\n return;\n }\n\n action(data.data);\n };\n\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n const ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n\n ah[actionName] = handler;\n }\n\n send(actionName, data, transfers) {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = (0, _util.createPromiseCapability)();\n this.callbackCapabilities[callbackId] = capability;\n\n try {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n\n return capability.promise;\n }\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 return new ReadableStream({\n start: controller => {\n const startCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n\n this._postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = (0, _util.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 return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = (0, _util.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 cancelCapability.promise;\n }\n }, queueingStrategy);\n }\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 const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n self._postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\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 (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n if (this.isCancelled) {\n return;\n }\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: (0, _util.createPromiseCapability)(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\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(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\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 _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(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].pullCall.resolve();\n } else {\n this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL:\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\n if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[streamId].sinkCapability.resolve();\n }\n\n this.streamSinks[streamId].desiredSize = data.desiredSize;\n const {\n onPull\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onPull && onPull());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\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 break;\n\n case StreamKind.ENQUEUE:\n (0, _util.assert)(this.streamControllers[streamId], \"enqueue should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].controller.enqueue(data.chunk);\n break;\n\n case StreamKind.CLOSE:\n (0, _util.assert)(this.streamControllers[streamId], \"close should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].isClosed = true;\n this.streamControllers[streamId].controller.close();\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.ERROR:\n (0, _util.assert)(this.streamControllers[streamId], \"error should have stream controller\");\n this.streamControllers[streamId].controller.error(wrapReason(data.reason));\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].cancelCall.resolve();\n } else {\n this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason));\n }\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL:\n if (!this.streamSinks[streamId]) {\n break;\n }\n\n const {\n onCancel\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onCancel && onCancel(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\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 this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason));\n this.streamSinks[streamId].isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n async _deleteStreamController(streamId) {\n await Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) {\n return capability && capability.promise;\n }));\n delete this.streamControllers[streamId];\n }\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}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Metadata = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _xml_parser = __w_pdfjs_require__(15);\n\nclass Metadata {\n constructor(data) {\n (0, _util.assert)(typeof data === \"string\", \"Metadata: input is not a string\");\n data = this._repair(data);\n const parser = new _xml_parser.SimpleXMLParser();\n const xmlDocument = parser.parseFromString(data);\n this._metadataMap = new Map();\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _repair(data) {\n return data.replace(/^[^<]+/, \"\").replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n const bytes = codes.replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n switch (name) {\n case \"amp\":\n return \"&\";\n\n case \"apos\":\n return \"'\";\n\n case \"gt\":\n return \">\";\n\n case \"lt\":\n return \"<\";\n\n case \"quot\":\n return '\"';\n }\n\n throw new Error(`_repair: ${name} isn't defined.`);\n });\n let chars = \"\";\n\n for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n\n if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {\n chars += String.fromCharCode(code);\n } else {\n chars += \"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\";\n }\n }\n\n return \">\" + chars;\n });\n }\n\n _parse(xmlDocument) {\n let rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n rdf = rdf.firstChild;\n\n while (rdf && rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n rdf = rdf.nextSibling;\n }\n }\n\n const nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n\n if (!rdf || nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n return;\n }\n\n const children = rdf.childNodes;\n\n for (let i = 0, ii = children.length; i < ii; i++) {\n const desc = children[i];\n\n if (desc.nodeName.toLowerCase() !== \"rdf:description\") {\n continue;\n }\n\n for (let j = 0, jj = desc.childNodes.length; j < jj; j++) {\n if (desc.childNodes[j].nodeName.toLowerCase() !== \"#text\") {\n const entry = desc.childNodes[j];\n const name = entry.nodeName.toLowerCase();\n\n this._metadataMap.set(name, entry.textContent.trim());\n }\n }\n }\n }\n\n get(name) {\n return this._metadataMap.has(name) ? this._metadataMap.get(name) : null;\n }\n\n getAll() {\n return Object.fromEntries(this._metadataMap);\n }\n\n has(name) {\n return this._metadataMap.has(name);\n }\n\n}\n\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SimpleXMLParser = void 0;\nconst XMLParserErrorCode = {\n NoError: 0,\n EndOfDocument: -1,\n UnterminatedCdat: -2,\n UnterminatedXmlDeclaration: -3,\n UnterminatedDoctypeDeclaration: -4,\n UnterminatedComment: -5,\n MalformedElement: -6,\n OutOfMemory: -7,\n UnterminatedAttributeValue: -8,\n UnterminatedElement: -9,\n ElementNeverBegun: -10\n};\n\nfunction isWhitespace(s, index) {\n const ch = s[index];\n return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\n\nfunction isWhitespaceString(s) {\n for (let i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n\n return true;\n}\n\nclass XMLParserBase {\n _resolveEntities(s) {\n return s.replace(/&([^;]+);/g, (all, entity) => {\n if (entity.substring(0, 2) === \"#x\") {\n return String.fromCharCode(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === \"#\") {\n return String.fromCharCode(parseInt(entity.substring(1), 10));\n }\n\n switch (entity) {\n case \"lt\":\n return \"<\";\n\n case \"gt\":\n return \">\";\n\n case \"amp\":\n return \"&\";\n\n case \"quot\":\n return '\"';\n }\n\n return this.onResolveEntity(entity);\n });\n }\n\n _parseContent(s, start) {\n const attributes = [];\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"/\") {\n ++pos;\n }\n\n const name = s.substring(start, pos);\n skipWs();\n\n while (pos < s.length && s[pos] !== \">\" && s[pos] !== \"/\" && s[pos] !== \"?\") {\n skipWs();\n let attrName = \"\",\n attrValue = \"\";\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n attrName += s[pos];\n ++pos;\n }\n\n skipWs();\n\n if (s[pos] !== \"=\") {\n return null;\n }\n\n ++pos;\n skipWs();\n const attrEndChar = s[pos];\n\n if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n return null;\n }\n\n const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n\n if (attrEndIndex < 0) {\n return null;\n }\n\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue)\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n\n return {\n name,\n attributes,\n parsed: pos - start\n };\n }\n\n _parseProcessingInstruction(s, start) {\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"/\") {\n ++pos;\n }\n\n const name = s.substring(start, pos);\n skipWs();\n const attrStart = pos;\n\n while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n ++pos;\n }\n\n const value = s.substring(attrStart, pos);\n return {\n name,\n value,\n parsed: pos - start\n };\n }\n\n parseXml(s) {\n let i = 0;\n\n while (i < s.length) {\n const ch = s[i];\n let j = i;\n\n if (ch === \"<\") {\n ++j;\n const ch2 = s[j];\n let q;\n\n switch (ch2) {\n case \"/\":\n ++j;\n q = s.indexOf(\">\", j);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n\n case \"?\":\n ++j;\n\n const pi = this._parseProcessingInstruction(s, j);\n\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n\n case \"!\":\n if (s.substring(j + 1, j + 3) === \"--\") {\n q = s.indexOf(\"-->\", j + 3);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n q = s.indexOf(\"]]>\", j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n const q2 = s.indexOf(\"[\", j + 8);\n let complexDoctype = false;\n q = s.indexOf(\">\", j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n if (q2 > 0 && q > q2) {\n q = s.indexOf(\"]>\", j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n complexDoctype = true;\n }\n\n const doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n\n break;\n\n default:\n const content = this._parseContent(s, j);\n\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n\n let isClosed = false;\n\n if (s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\") {\n isClosed = true;\n } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== \">\") {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n\n this.onBeginElement(content.name, content.attributes, isClosed);\n j += content.parsed + (isClosed ? 2 : 1);\n break;\n }\n } else {\n while (j < s.length && s[j] !== \"<\") {\n j++;\n }\n\n const text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n\n i = j;\n }\n }\n\n onResolveEntity(name) {\n return `&${name};`;\n }\n\n onPi(name, value) {}\n\n onComment(text) {}\n\n onCdata(text) {}\n\n onDoctype(doctypeContent) {}\n\n onText(text) {}\n\n onBeginElement(name, attributes, isEmpty) {}\n\n onEndElement(name) {}\n\n onError(code) {}\n\n}\n\nclass SimpleDOMNode {\n constructor(nodeName, nodeValue) {\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n Object.defineProperty(this, \"parentNode\", {\n value: null,\n writable: true\n });\n }\n\n get firstChild() {\n return this.childNodes && this.childNodes[0];\n }\n\n get nextSibling() {\n const childNodes = this.parentNode.childNodes;\n\n if (!childNodes) {\n return undefined;\n }\n\n const index = childNodes.indexOf(this);\n\n if (index === -1) {\n return undefined;\n }\n\n return childNodes[index + 1];\n }\n\n get textContent() {\n if (!this.childNodes) {\n return this.nodeValue || \"\";\n }\n\n return this.childNodes.map(function (child) {\n return child.textContent;\n }).join(\"\");\n }\n\n hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n constructor() {\n super();\n this._currentFragment = null;\n this._stack = null;\n this._errorCode = XMLParserErrorCode.NoError;\n }\n\n parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n const [documentElement] = this._currentFragment;\n\n if (!documentElement) {\n return undefined;\n }\n\n return {\n documentElement\n };\n }\n\n onResolveEntity(name) {\n switch (name) {\n case \"apos\":\n return \"'\";\n }\n\n return super.onResolveEntity(name);\n }\n\n onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n\n const node = new SimpleDOMNode(\"#text\", text);\n\n this._currentFragment.push(node);\n }\n\n onCdata(text) {\n const node = new SimpleDOMNode(\"#text\", text);\n\n this._currentFragment.push(node);\n }\n\n onBeginElement(name, attributes, isEmpty) {\n const node = new SimpleDOMNode(name);\n node.childNodes = [];\n\n this._currentFragment.push(node);\n\n if (isEmpty) {\n return;\n }\n\n this._stack.push(this._currentFragment);\n\n this._currentFragment = node.childNodes;\n }\n\n onEndElement(name) {\n this._currentFragment = this._stack.pop() || [];\n const lastElement = this._currentFragment[this._currentFragment.length - 1];\n\n if (!lastElement) {\n return;\n }\n\n for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n lastElement.childNodes[i].parentNode = lastElement;\n }\n }\n\n onError(code) {\n this._errorCode = code;\n }\n\n}\n\nexports.SimpleXMLParser = SimpleXMLParser;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OptionalContentConfig = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass OptionalContentGroup {\n constructor(name, intent) {\n this.visible = true;\n this.name = name;\n this.intent = intent;\n }\n\n}\n\nclass OptionalContentConfig {\n constructor(data) {\n this.name = null;\n this.creator = null;\n this._order = null;\n this._groups = new Map();\n\n if (data === null) {\n return;\n }\n\n this.name = data.name;\n this.creator = data.creator;\n this._order = data.order;\n\n for (const group of data.groups) {\n this._groups.set(group.id, new OptionalContentGroup(group.name, group.intent));\n }\n\n if (data.baseState === \"OFF\") {\n for (const group of this._groups) {\n group.visible = false;\n }\n }\n\n for (const on of data.on) {\n this._groups.get(on).visible = true;\n }\n\n for (const off of data.off) {\n this._groups.get(off).visible = false;\n }\n }\n\n isVisible(group) {\n if (group.type === \"OCG\") {\n if (!this._groups.has(group.id)) {\n (0, _util.warn)(`Optional content group not found: ${group.id}`);\n return true;\n }\n\n return this._groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n (0, _util.warn)(\"Visibility expression not supported yet.\");\n }\n\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (this._groups.get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!this._groups.get(id).visible) {\n return false;\n }\n }\n\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!this._groups.get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (this._groups.get(id).visible) {\n return false;\n }\n }\n\n return true;\n }\n\n (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n\n (0, _util.warn)(`Unknown group type ${group.type}.`);\n return true;\n }\n\n setVisibility(id, visible = true) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return;\n }\n\n this._groups.get(id).visible = !!visible;\n }\n\n getOrder() {\n if (!this._groups.size) {\n return null;\n }\n\n if (this._order) {\n return this._order.slice();\n }\n\n return Array.from(this._groups.keys());\n }\n\n getGroups() {\n if (!this._groups.size) {\n return null;\n }\n\n return Object.fromEntries(this._groups);\n }\n\n getGroup(id) {\n return this._groups.get(id) || null;\n }\n\n}\n\nexports.OptionalContentConfig = OptionalContentConfig;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFDataTransportStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass PDFDataTransportStream {\n constructor(params, pdfDataRangeTransport) {\n (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n this._queuedChunks = [];\n this._progressiveDone = params.progressiveDone || false;\n const initialData = params.initialData;\n\n if (initialData && initialData.length > 0) {\n const buffer = new Uint8Array(initialData).buffer;\n\n this._queuedChunks.push(buffer);\n }\n\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !params.disableStream;\n this._isRangeSupported = !params.disableRange;\n this._contentLength = params.length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n\n _onReceiveData(args) {\n const buffer = new Uint8Array(args.chunk).buffer;\n\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n\n rangeReader._enqueue(buffer);\n\n return true;\n });\n\n (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n\n _onProgress(evt) {\n if (evt.total === undefined) {\n const firstReader = this._rangeReaders[0];\n\n if (firstReader && firstReader.onProgress) {\n firstReader.onProgress({\n loaded: evt.loaded\n });\n }\n } else {\n const fullReader = this._fullRequestReader;\n\n if (fullReader && fullReader.onProgress) {\n fullReader.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n }\n\n _onProgressiveDone() {\n if (this._fullRequestReader) {\n this._fullRequestReader.progressiveDone();\n }\n\n this._progressiveDone = true;\n }\n\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone);\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n\n this._rangeReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeReaders.slice(0);\n\n readers.forEach(function (rangeReader) {\n rangeReader.cancel(reason);\n });\n\n this._pdfDataRangeTransport.abort();\n }\n\n}\n\nexports.PDFDataTransportStream = PDFDataTransportStream;\n\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n\n this._loaded += chunk.byteLength;\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n\n get contentLength() {\n return this._stream._contentLength;\n }\n\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n\n progressiveDone() {\n if (this._done) {\n return;\n }\n\n this._done = true;\n }\n\n}\n\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n\n this._done = true;\n\n this._stream._removeRangeReader(this);\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n this._stream._removeRangeReader(this);\n }\n\n}\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WebGLContext = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass WebGLContext {\n constructor({\n enable = false\n }) {\n this._enabled = enable === true;\n }\n\n get isEnabled() {\n let enabled = this._enabled;\n\n if (enabled) {\n enabled = WebGLUtils.tryInitGL();\n }\n\n return (0, _util.shadow)(this, \"isEnabled\", enabled);\n }\n\n composeSMask({\n layer,\n mask,\n properties\n }) {\n return WebGLUtils.composeSMask(layer, mask, properties);\n }\n\n drawFigures({\n width,\n height,\n backgroundColor,\n figures,\n context\n }) {\n return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);\n }\n\n clear() {\n WebGLUtils.cleanup();\n }\n\n}\n\nexports.WebGLContext = WebGLContext;\n\nvar WebGLUtils = function WebGLUtilsClosure() {\n function loadShader(gl, code, shaderType) {\n var shader = gl.createShader(shaderType);\n gl.shaderSource(shader, code);\n gl.compileShader(shader);\n var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n\n if (!compiled) {\n var errorMsg = gl.getShaderInfoLog(shader);\n throw new Error(\"Error during shader compilation: \" + errorMsg);\n }\n\n return shader;\n }\n\n function createVertexShader(gl, code) {\n return loadShader(gl, code, gl.VERTEX_SHADER);\n }\n\n function createFragmentShader(gl, code) {\n return loadShader(gl, code, gl.FRAGMENT_SHADER);\n }\n\n function createProgram(gl, shaders) {\n var program = gl.createProgram();\n\n for (var i = 0, ii = shaders.length; i < ii; ++i) {\n gl.attachShader(program, shaders[i]);\n }\n\n gl.linkProgram(program);\n var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n\n if (!linked) {\n var errorMsg = gl.getProgramInfoLog(program);\n throw new Error(\"Error during program linking: \" + errorMsg);\n }\n\n return program;\n }\n\n function createTexture(gl, image, textureId) {\n gl.activeTexture(textureId);\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n return texture;\n }\n\n var currentGL, currentCanvas;\n\n function generateGL() {\n if (currentGL) {\n return;\n }\n\n currentCanvas = document.createElement(\"canvas\");\n currentGL = currentCanvas.getContext(\"webgl\", {\n premultipliedalpha: false\n });\n }\n\n var smaskVertexShaderCode = \"\\\n attribute vec2 a_position; \\\n attribute vec2 a_texCoord; \\\n \\\n uniform vec2 u_resolution; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_texCoord = a_texCoord; \\\n } \";\n var smaskFragmentShaderCode = \"\\\n precision mediump float; \\\n \\\n uniform vec4 u_backdrop; \\\n uniform int u_subtype; \\\n uniform sampler2D u_image; \\\n uniform sampler2D u_mask; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec4 imageColor = texture2D(u_image, v_texCoord); \\\n vec4 maskColor = texture2D(u_mask, v_texCoord); \\\n if (u_backdrop.a > 0.0) { \\\n maskColor.rgb = maskColor.rgb * maskColor.a + \\\n u_backdrop.rgb * (1.0 - maskColor.a); \\\n } \\\n float lum; \\\n if (u_subtype == 0) { \\\n lum = maskColor.a; \\\n } else { \\\n lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \\\n maskColor.b * 0.11; \\\n } \\\n imageColor.a *= lum; \\\n imageColor.rgb *= imageColor.a; \\\n gl_FragColor = imageColor; \\\n } \";\n var smaskCache = null;\n\n function initSmaskGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, smaskVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n cache.positionLocation = gl.getAttribLocation(program, \"a_position\");\n cache.backdropLocation = gl.getUniformLocation(program, \"u_backdrop\");\n cache.subtypeLocation = gl.getUniformLocation(program, \"u_subtype\");\n var texCoordLocation = gl.getAttribLocation(program, \"a_texCoord\");\n var texLayerLocation = gl.getUniformLocation(program, \"u_image\");\n var texMaskLocation = gl.getUniformLocation(program, \"u_mask\");\n var texCoordBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(texCoordLocation);\n gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n gl.uniform1i(texLayerLocation, 0);\n gl.uniform1i(texMaskLocation, 1);\n smaskCache = cache;\n }\n\n function composeSMask(layer, mask, properties) {\n var width = layer.width,\n height = layer.height;\n\n if (!smaskCache) {\n initSmaskGL();\n }\n\n var cache = smaskCache,\n canvas = cache.canvas,\n gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n\n if (properties.backdrop) {\n gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1);\n } else {\n gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);\n }\n\n gl.uniform1i(cache.subtypeLocation, properties.subtype === \"Luminosity\" ? 1 : 0);\n var texture = createTexture(gl, layer, gl.TEXTURE0);\n var maskTexture = createTexture(gl, mask, gl.TEXTURE1);\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n gl.clearColor(0, 0, 0, 0);\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n gl.clear(gl.COLOR_BUFFER_BIT);\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n gl.flush();\n gl.deleteTexture(texture);\n gl.deleteTexture(maskTexture);\n gl.deleteBuffer(buffer);\n return canvas;\n }\n\n var figuresVertexShaderCode = \"\\\n attribute vec2 a_position; \\\n attribute vec3 a_color; \\\n \\\n uniform vec2 u_resolution; \\\n uniform vec2 u_scale; \\\n uniform vec2 u_offset; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n vec2 position = (a_position + u_offset) * u_scale; \\\n vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_color = vec4(a_color / 255.0, 1.0); \\\n } \";\n var figuresFragmentShaderCode = \"\\\n precision mediump float; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n gl_FragColor = v_color; \\\n } \";\n var figuresCache = null;\n\n function initFiguresGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, figuresVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n cache.scaleLocation = gl.getUniformLocation(program, \"u_scale\");\n cache.offsetLocation = gl.getUniformLocation(program, \"u_offset\");\n cache.positionLocation = gl.getAttribLocation(program, \"a_position\");\n cache.colorLocation = gl.getAttribLocation(program, \"a_color\");\n figuresCache = cache;\n }\n\n function drawFigures(width, height, backgroundColor, figures, context) {\n if (!figuresCache) {\n initFiguresGL();\n }\n\n var cache = figuresCache,\n canvas = cache.canvas,\n gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n var count = 0;\n var i, ii, rows;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n switch (figures[i].type) {\n case \"lattice\":\n rows = figures[i].coords.length / figures[i].verticesPerRow | 0;\n count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;\n break;\n\n case \"triangles\":\n count += figures[i].coords.length;\n break;\n }\n }\n\n var coords = new Float32Array(count * 2);\n var colors = new Uint8Array(count * 3);\n var coordsMap = context.coords,\n colorsMap = context.colors;\n var pIndex = 0,\n cIndex = 0;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n\n switch (figure.type) {\n case \"lattice\":\n var cols = figure.verticesPerRow;\n rows = ps.length / cols | 0;\n\n for (var row = 1; row < rows; row++) {\n var offset = row * cols + 1;\n\n for (var col = 1; col < cols; col++, offset++) {\n coords[pIndex] = coordsMap[ps[offset - cols - 1]];\n coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];\n coords[pIndex + 2] = coordsMap[ps[offset - cols]];\n coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];\n coords[pIndex + 4] = coordsMap[ps[offset - 1]];\n coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];\n colors[cIndex] = colorsMap[cs[offset - cols - 1]];\n colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];\n colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];\n colors[cIndex + 3] = colorsMap[cs[offset - cols]];\n colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];\n colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];\n colors[cIndex + 6] = colorsMap[cs[offset - 1]];\n colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];\n colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];\n coords[pIndex + 6] = coords[pIndex + 2];\n coords[pIndex + 7] = coords[pIndex + 3];\n coords[pIndex + 8] = coords[pIndex + 4];\n coords[pIndex + 9] = coords[pIndex + 5];\n coords[pIndex + 10] = coordsMap[ps[offset]];\n coords[pIndex + 11] = coordsMap[ps[offset] + 1];\n colors[cIndex + 9] = colors[cIndex + 3];\n colors[cIndex + 10] = colors[cIndex + 4];\n colors[cIndex + 11] = colors[cIndex + 5];\n colors[cIndex + 12] = colors[cIndex + 6];\n colors[cIndex + 13] = colors[cIndex + 7];\n colors[cIndex + 14] = colors[cIndex + 8];\n colors[cIndex + 15] = colorsMap[cs[offset]];\n colors[cIndex + 16] = colorsMap[cs[offset] + 1];\n colors[cIndex + 17] = colorsMap[cs[offset] + 2];\n pIndex += 12;\n cIndex += 18;\n }\n }\n\n break;\n\n case \"triangles\":\n for (var j = 0, jj = ps.length; j < jj; j++) {\n coords[pIndex] = coordsMap[ps[j]];\n coords[pIndex + 1] = coordsMap[ps[j] + 1];\n colors[cIndex] = colorsMap[cs[j]];\n colors[cIndex + 1] = colorsMap[cs[j] + 1];\n colors[cIndex + 2] = colorsMap[cs[j] + 2];\n pIndex += 2;\n cIndex += 3;\n }\n\n break;\n }\n }\n\n if (backgroundColor) {\n gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);\n } else {\n gl.clearColor(0, 0, 0, 0);\n }\n\n gl.clear(gl.COLOR_BUFFER_BIT);\n var coordsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n var colorsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.colorLocation);\n gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0);\n gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);\n gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);\n gl.drawArrays(gl.TRIANGLES, 0, count);\n gl.flush();\n gl.deleteBuffer(coordsBuffer);\n gl.deleteBuffer(colorsBuffer);\n return canvas;\n }\n\n return {\n tryInitGL() {\n try {\n generateGL();\n return !!currentGL;\n } catch (ex) {}\n\n return false;\n },\n\n composeSMask,\n drawFigures,\n\n cleanup() {\n if (smaskCache && smaskCache.canvas) {\n smaskCache.canvas.width = 0;\n smaskCache.canvas.height = 0;\n }\n\n if (figuresCache && figuresCache.canvas) {\n figuresCache.canvas.width = 0;\n figuresCache.canvas.height = 0;\n }\n\n smaskCache = null;\n figuresCache = null;\n }\n\n };\n}();\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AnnotationLayer = void 0;\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _annotation_storage = __w_pdfjs_require__(8);\n\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case _util.AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n\n return new PushButtonWidgetAnnotationElement(parameters);\n\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n\n return new WidgetAnnotationElement(parameters);\n\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n\n}\n\nclass AnnotationElement {\n constructor(parameters, isRenderable = false, ignoreBorder = false) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderInteractiveForms = parameters.renderInteractiveForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n }\n\n _createContainer(ignoreBorder = false) {\n const data = this.data,\n page = this.page,\n viewport = this.viewport;\n const container = document.createElement(\"section\");\n let width = data.rect[2] - data.rect[0];\n let height = data.rect[3] - data.rect[1];\n container.setAttribute(\"data-annotation-id\", data.id);\n\n const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\n container.style.transform = `matrix(${viewport.transform.join(\",\")})`;\n container.style.transformOrigin = `-${rect[0]}px -${rect[1]}px`;\n\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n\n if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {\n width = width - 2 * data.borderStyle.width;\n height = height - 2 * data.borderStyle.width;\n }\n\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `${horizontalRadius}px / ${verticalRadius}px`;\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n\n default:\n break;\n }\n\n if (data.color) {\n container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = `${rect[0]}px`;\n container.style.top = `${rect[1]}px`;\n container.style.width = `${width}px`;\n container.style.height = `${height}px`;\n return container;\n }\n\n _createPopup(container, trigger, data) {\n if (!trigger) {\n trigger = document.createElement(\"div\");\n trigger.style.height = container.style.height;\n trigger.style.width = container.style.width;\n container.appendChild(trigger);\n }\n\n const popupElement = new PopupElement({\n container,\n trigger,\n color: data.color,\n title: data.title,\n modificationDate: data.modificationDate,\n contents: data.contents,\n hideWrapper: true\n });\n const popup = popupElement.render();\n popup.style.left = container.style.width;\n container.appendChild(popup);\n }\n\n render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);\n super(parameters, isRenderable);\n }\n\n render() {\n this.container.className = \"linkAnnotation\";\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n\n if (data.url) {\n (0, _display_utils.addLinkAttributes)(link, {\n url: data.url,\n target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget,\n rel: linkService.externalLinkRel,\n enabled: linkService.externalLinkEnabled\n });\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n } else {\n this._bindLink(link, data.dest);\n }\n\n this.container.appendChild(link);\n return this.container;\n }\n\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n\n link.onclick = () => {\n if (destination) {\n this.linkService.navigateTo(destination);\n }\n\n return false;\n };\n\n if (destination) {\n link.className = \"internalLink\";\n }\n }\n\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n\n link.className = \"internalLink\";\n }\n\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable);\n }\n\n render() {\n this.container.className = \"textAnnotation\";\n const image = document.createElement(\"img\");\n image.style.height = this.container.style.height;\n image.style.width = this.container.style.width;\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, image, this.data);\n }\n\n this.container.appendChild(image);\n return this.container;\n }\n\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n return this.container;\n }\n\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, isRenderable);\n }\n\n render() {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.className = \"textWidgetAnnotation\";\n let element = null;\n\n if (this.renderInteractiveForms) {\n const textContent = storage.getOrCreateValue(id, this.data.fieldValue);\n\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = textContent;\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", textContent);\n }\n\n element.addEventListener(\"input\", function (event) {\n storage.setValue(id, event.target.value);\n });\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / this.data.maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n let font = null;\n\n if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) {\n font = this.page.commonObjs.get(this.data.fontRefName);\n }\n\n this._setTextStyle(element, font);\n }\n\n if (this.data.textAlignment !== null) {\n element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n\n _setTextStyle(element, font) {\n const style = element.style;\n style.fontSize = `${this.data.fontSize}px`;\n style.direction = this.data.fontDirection < 0 ? \"rtl\" : \"ltr\";\n\n if (!font) {\n return;\n }\n\n let bold = \"normal\";\n\n if (font.black) {\n bold = \"900\";\n } else if (font.bold) {\n bold = \"bold\";\n }\n\n style.fontWeight = bold;\n style.fontStyle = font.italic ? \"italic\" : \"normal\";\n const fontFamily = font.loadedName ? `\"${font.loadedName}\", ` : \"\";\n const fallbackName = font.fallbackName || \"Helvetica, sans-serif\";\n style.fontFamily = fontFamily + fallbackName;\n }\n\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n const value = storage.getOrCreateValue(id, data.fieldValue && data.fieldValue !== \"Off\");\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n const element = document.createElement(\"input\");\n element.disabled = data.readOnly;\n element.type = \"checkbox\";\n element.name = this.data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.addEventListener(\"change\", function (event) {\n storage.setValue(id, event.target.checked);\n });\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n render() {\n this.container.className = \"buttonWidgetAnnotation radioButton\";\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n const value = storage.getOrCreateValue(id, data.fieldValue === data.buttonValue);\n const element = document.createElement(\"input\");\n element.disabled = data.readOnly;\n element.type = \"radio\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.addEventListener(\"change\", function (event) {\n const name = event.target.name;\n\n for (const radio of document.getElementsByName(name)) {\n if (radio !== event.target) {\n storage.setValue(radio.parentNode.getAttribute(\"data-annotation-id\"), false);\n }\n }\n\n storage.setValue(id, event.target.checked);\n });\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n render() {\n const container = super.render();\n container.className = \"buttonWidgetAnnotation pushButton\";\n return container;\n }\n\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n render() {\n this.container.className = \"choiceWidgetAnnotation\";\n const storage = this.annotationStorage;\n const id = this.data.id;\n storage.getOrCreateValue(id, this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null);\n const selectElement = document.createElement(\"select\");\n selectElement.disabled = this.data.readOnly;\n selectElement.name = this.data.fieldName;\n\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n\n if (this.data.fieldValue.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n }\n\n selectElement.appendChild(optionElement);\n }\n\n selectElement.addEventListener(\"input\", function (event) {\n const options = event.target.options;\n const value = options[options.selectedIndex].value;\n storage.setValue(id, value);\n });\n this.container.appendChild(selectElement);\n return this.container;\n }\n\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable);\n }\n\n render() {\n const IGNORE_TYPES = [\"Line\", \"Square\", \"Circle\", \"PolyLine\", \"Polygon\", \"Ink\"];\n this.container.className = \"popupAnnotation\";\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n const selector = `[data-annotation-id=\"${this.data.parentId}\"]`;\n const parentElement = this.layer.querySelector(selector);\n\n if (!parentElement) {\n return this.container;\n }\n\n const popup = new PopupElement({\n container: this.container,\n trigger: parentElement,\n color: this.data.color,\n title: this.data.title,\n modificationDate: this.data.modificationDate,\n contents: this.data.contents\n });\n const parentLeft = parseFloat(parentElement.style.left);\n const parentWidth = parseFloat(parentElement.style.width);\n this.container.style.transformOrigin = `-${parentLeft + parentWidth}px -${parentElement.style.top}`;\n this.container.style.left = `${parentLeft + parentWidth}px`;\n this.container.appendChild(popup.render());\n return this.container;\n }\n\n}\n\nclass PopupElement {\n constructor(parameters) {\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.title = parameters.title;\n this.modificationDate = parameters.modificationDate;\n this.contents = parameters.contents;\n this.hideWrapper = parameters.hideWrapper || false;\n this.pinned = false;\n }\n\n render() {\n const BACKGROUND_ENLIGHT = 0.7;\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"popupWrapper\";\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.setAttribute(\"hidden\", true);\n const popup = document.createElement(\"div\");\n popup.className = \"popup\";\n const color = this.color;\n\n if (color) {\n const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0);\n }\n\n const title = document.createElement(\"h1\");\n title.textContent = this.title;\n popup.appendChild(title);\n\n const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n\n if (dateObject) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.textContent = \"{{date}}, {{time}}\";\n modificationDate.dataset.l10nId = \"annotation_date_string\";\n modificationDate.dataset.l10nArgs = JSON.stringify({\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n popup.appendChild(modificationDate);\n }\n\n const contents = this._formatContents(this.contents);\n\n popup.appendChild(contents);\n this.trigger.addEventListener(\"click\", this._toggle.bind(this));\n this.trigger.addEventListener(\"mouseover\", this._show.bind(this, false));\n this.trigger.addEventListener(\"mouseout\", this._hide.bind(this, false));\n popup.addEventListener(\"click\", this._hide.bind(this, true));\n wrapper.appendChild(popup);\n return wrapper;\n }\n\n _formatContents(contents) {\n const p = document.createElement(\"p\");\n const lines = contents.split(/(?:\\r\\n?|\\n)/);\n\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.appendChild(document.createTextNode(line));\n\n if (i < ii - 1) {\n p.appendChild(document.createElement(\"br\"));\n }\n }\n\n return p;\n }\n\n _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n\n _show(pin = false) {\n if (pin) {\n this.pinned = true;\n }\n\n if (this.hideElement.hasAttribute(\"hidden\")) {\n this.hideElement.removeAttribute(\"hidden\");\n this.container.style.zIndex += 1;\n }\n }\n\n _hide(unpin = true) {\n if (unpin) {\n this.pinned = false;\n }\n\n if (!this.hideElement.hasAttribute(\"hidden\") && !this.pinned) {\n this.hideElement.setAttribute(\"hidden\", true);\n this.container.style.zIndex -= 1;\n }\n }\n\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"freeTextAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"lineAnnotation\";\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n const line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n svg.appendChild(line);\n this.container.append(svg);\n\n this._createPopup(this.container, line, data);\n\n return this.container;\n }\n\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"squareAnnotation\";\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n const borderWidth = data.borderStyle.width;\n const square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"none\");\n svg.appendChild(square);\n this.container.append(svg);\n\n this._createPopup(this.container, square, data);\n\n return this.container;\n }\n\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"circleAnnotation\";\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n const borderWidth = data.borderStyle.width;\n const circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"none\");\n svg.appendChild(circle);\n this.container.append(svg);\n\n this._createPopup(this.container, circle, data);\n\n return this.container;\n }\n\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n let points = [];\n\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"none\");\n svg.appendChild(polyline);\n this.container.append(svg);\n\n this._createPopup(this.container, polyline, data);\n\n return this.container;\n }\n\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"caretAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n for (const inkList of data.inkLists) {\n let points = [];\n\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"none\");\n\n this._createPopup(this.container, polyline, data);\n\n svg.appendChild(polyline);\n }\n\n this.container.append(svg);\n return this.container;\n }\n\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"highlightAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"underlineAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"squigglyAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"strikeoutAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"stampAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, true);\n const {\n filename,\n content\n } = this.data.file;\n this.filename = (0, _display_utils.getFilenameFromUrl)(filename);\n this.content = content;\n\n if (this.linkService.eventBus) {\n this.linkService.eventBus.dispatch(\"fileattachmentannotation\", {\n source: this,\n id: (0, _util.stringToPDFString)(filename),\n filename,\n content\n });\n }\n }\n\n render() {\n this.container.className = \"fileAttachmentAnnotation\";\n const trigger = document.createElement(\"div\");\n trigger.style.height = this.container.style.height;\n trigger.style.width = this.container.style.width;\n trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n if (!this.data.hasPopup && (this.data.title || this.data.contents)) {\n this._createPopup(this.container, trigger, this.data);\n }\n\n this.container.appendChild(trigger);\n return this.container;\n }\n\n _download() {\n if (!this.downloadManager) {\n (0, _util.warn)(\"Download cannot be started due to unavailable download manager\");\n return;\n }\n\n this.downloadManager.downloadData(this.content, this.filename, \"\");\n }\n\n}\n\nclass AnnotationLayer {\n static render(parameters) {\n const sortedAnnotations = [],\n popupAnnotations = [];\n\n for (const data of parameters.annotations) {\n if (!data) {\n continue;\n }\n\n if (data.annotationType === _util.AnnotationType.POPUP) {\n popupAnnotations.push(data);\n continue;\n }\n\n sortedAnnotations.push(data);\n }\n\n if (popupAnnotations.length) {\n sortedAnnotations.push(...popupAnnotations);\n }\n\n for (const data of sortedAnnotations) {\n const element = AnnotationElementFactory.create({\n data,\n layer: parameters.div,\n page: parameters.page,\n viewport: parameters.viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || \"\",\n renderInteractiveForms: typeof parameters.renderInteractiveForms === \"boolean\" ? parameters.renderInteractiveForms : true,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage()\n });\n\n if (element.isRenderable) {\n parameters.div.appendChild(element.render());\n }\n }\n }\n\n static update(parameters) {\n for (const data of parameters.annotations) {\n const element = parameters.div.querySelector(`[data-annotation-id=\"${data.id}\"]`);\n\n if (element) {\n element.style.transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n }\n }\n\n parameters.div.removeAttribute(\"hidden\");\n }\n\n}\n\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.renderTextLayer = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar renderTextLayer = function renderTextLayerClosure() {\n var MAX_TEXT_DIVS_TO_RENDER = 100000;\n var NonWhitespaceRegexp = /\\S/;\n\n function isAllWhitespace(str) {\n return !NonWhitespaceRegexp.test(str);\n }\n\n function appendText(task, geom, styles) {\n var textDiv = document.createElement(\"span\");\n var textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n isWhitespace: false,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1\n };\n\n task._textDivs.push(textDiv);\n\n if (isAllWhitespace(geom.str)) {\n textDivProperties.isWhitespace = true;\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n return;\n }\n\n var tx = _util.Util.transform(task._viewport.transform, geom.transform);\n\n var angle = Math.atan2(tx[1], tx[0]);\n var style = styles[geom.fontName];\n\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n\n var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);\n var fontAscent = fontHeight;\n\n if (style.ascent) {\n fontAscent = style.ascent * fontAscent;\n } else if (style.descent) {\n fontAscent = (1 + style.descent) * fontAscent;\n }\n\n let left, top;\n\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n\n textDiv.style.left = `${left}px`;\n textDiv.style.top = `${top}px`;\n textDiv.style.fontSize = `${fontHeight}px`;\n textDiv.style.fontFamily = style.fontFamily;\n textDiv.textContent = geom.str;\n\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n\n let shouldScaleText = false;\n\n if (geom.str.length > 1) {\n shouldScaleText = true;\n } else if (geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n\n if (shouldScaleText) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection) {\n var angleCos = 1,\n angleSin = 0;\n\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n\n var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n var divHeight = fontHeight;\n var m, b;\n\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n } else {\n b = [left, top, left + divWidth, top + divHeight];\n }\n\n task._bounds.push({\n left: b[0],\n top: b[1],\n right: b[2],\n bottom: b[3],\n div: textDiv,\n size: [divWidth, divHeight],\n m\n });\n }\n }\n\n function render(task) {\n if (task._canceled) {\n return;\n }\n\n var textDivs = task._textDivs;\n var capability = task._capability;\n var textDivsLength = textDivs.length;\n\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n\n if (!task._textContentStream) {\n for (var i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n\n task._renderingDone = true;\n capability.resolve();\n }\n\n function findPositiveMin(ts, offset, count) {\n let result = 0;\n\n for (let i = 0; i < count; i++) {\n const t = ts[offset++];\n\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n\n return result;\n }\n\n function expand(task) {\n var bounds = task._bounds;\n var viewport = task._viewport;\n var expanded = expandBounds(viewport.width, viewport.height, bounds);\n\n for (var i = 0; i < expanded.length; i++) {\n var div = bounds[i].div;\n\n var divProperties = task._textDivProperties.get(div);\n\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n\n task._textDivProperties.set(div, divProperties);\n\n continue;\n }\n\n var e = expanded[i],\n b = bounds[i];\n var m = b.m,\n c = m[0],\n s = m[1];\n var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n var ts = new Float64Array(64);\n points.forEach(function (p, j) {\n var t = _util.Util.applyTransform(p, m);\n\n ts[j + 0] = c && (e.left - t[0]) / c;\n ts[j + 4] = s && (e.top - t[1]) / s;\n ts[j + 8] = c && (e.right - t[0]) / c;\n ts[j + 12] = s && (e.bottom - t[1]) / s;\n ts[j + 16] = s && (e.left - t[0]) / -s;\n ts[j + 20] = c && (e.top - t[1]) / c;\n ts[j + 24] = s && (e.right - t[0]) / -s;\n ts[j + 28] = c && (e.bottom - t[1]) / c;\n ts[j + 32] = c && (e.left - t[0]) / -c;\n ts[j + 36] = s && (e.top - t[1]) / -s;\n ts[j + 40] = c && (e.right - t[0]) / -c;\n ts[j + 44] = s && (e.bottom - t[1]) / -s;\n ts[j + 48] = s && (e.left - t[0]) / s;\n ts[j + 52] = c && (e.top - t[1]) / -c;\n ts[j + 56] = s && (e.right - t[0]) / s;\n ts[j + 60] = c && (e.bottom - t[1]) / -c;\n });\n var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n\n task._textDivProperties.set(div, divProperties);\n }\n }\n\n function expandBounds(width, height, boxes) {\n var bounds = boxes.map(function (box, i) {\n return {\n x1: box.left,\n y1: box.top,\n x2: box.right,\n y2: box.bottom,\n index: i,\n x1New: undefined,\n x2New: undefined\n };\n });\n expandBoundsLTR(width, bounds);\n var expanded = new Array(boxes.length);\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0\n };\n });\n boxes.map(function (box, i) {\n var e = expanded[i],\n b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n });\n return expanded;\n }\n\n function expandBoundsLTR(width, bounds) {\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n var fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0\n };\n var horizon = [{\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary\n }];\n bounds.forEach(function (boundary) {\n var i = 0;\n\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n\n var j = horizon.length - 1;\n\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n var horizonPart, affectedBoundary;\n var q,\n k,\n maxXNew = -Infinity;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var xNew;\n\n if (affectedBoundary.x2 > boundary.x1) {\n xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n xNew = affectedBoundary.x2New;\n }\n\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n boundary.x1New = maxXNew;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n if (affectedBoundary.x2 > boundary.x1) {\n if (affectedBoundary.index > boundary.index) {\n affectedBoundary.x2New = affectedBoundary.x2;\n }\n } else {\n affectedBoundary.x2New = maxXNew;\n }\n } else if (affectedBoundary.x2New > maxXNew) {\n affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n var changedHorizon = [],\n lastBoundary = null;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n\n if (lastBoundary === useBoundary) {\n changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n } else {\n changedHorizon.push({\n start: horizonPart.start,\n end: horizonPart.end,\n boundary: useBoundary\n });\n lastBoundary = useBoundary;\n }\n }\n\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary\n });\n }\n\n if (boundary.y2 < horizon[j].end) {\n changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary\n });\n }\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n\n var used = false;\n\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));\n });\n horizon.forEach(function (horizonPart) {\n var affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n });\n }\n\n function TextLayerRenderTask({\n textContent,\n textContentStream,\n container,\n viewport,\n textDivs,\n textContentItemsStr,\n enhanceTextSelection\n }) {\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._document = container.ownerDocument;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!(globalThis.FontInspector && globalThis.FontInspector.enabled);\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = (0, _util.createPromiseCapability)();\n this._renderTimer = null;\n this._bounds = [];\n\n this._capability.promise.finally(() => {\n if (this._layoutTextCtx) {\n this._layoutTextCtx.canvas.width = 0;\n this._layoutTextCtx.canvas.height = 0;\n this._layoutTextCtx = null;\n }\n }).catch(() => {});\n }\n\n TextLayerRenderTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n\n cancel: function TextLayer_cancel() {\n this._canceled = true;\n\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\"));\n\n this._reader = null;\n }\n\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n\n this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n },\n\n _processItems(items, styleCache) {\n for (let i = 0, len = items.length; i < len; i++) {\n this._textContentItemsStr.push(items[i].str);\n\n appendText(this, items[i], styleCache);\n }\n },\n\n _layoutText(textDiv) {\n const textDivProperties = this._textDivProperties.get(textDiv);\n\n if (textDivProperties.isWhitespace) {\n return;\n }\n\n let transform = \"\";\n\n if (textDivProperties.canvasWidth !== 0) {\n const {\n fontSize,\n fontFamily\n } = textDiv.style;\n\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = `${fontSize} ${fontFamily}`;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n\n const {\n width\n } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n if (width > 0) {\n textDivProperties.scale = textDivProperties.canvasWidth / width;\n transform = `scaleX(${textDivProperties.scale})`;\n }\n }\n\n if (textDivProperties.angle !== 0) {\n transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n }\n\n if (transform.length > 0) {\n if (this._enhanceTextSelection) {\n textDivProperties.originalTransform = transform;\n }\n\n textDiv.style.transform = transform;\n }\n\n this._textDivProperties.set(textDiv, textDivProperties);\n\n this._container.appendChild(textDiv);\n },\n\n _render: function TextLayer_render(timeout) {\n const capability = (0, _util.createPromiseCapability)();\n let styleCache = Object.create(null);\n\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.mozOpaque = true;\n this._layoutTextCtx = canvas.getContext(\"2d\", {\n alpha: false\n });\n\n if (this._textContent) {\n const textItems = this._textContent.items;\n const textStyles = this._textContent.styles;\n\n this._processItems(textItems, textStyles);\n\n capability.resolve();\n } else if (this._textContentStream) {\n const pump = () => {\n this._reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n\n this._processItems(value.items, styleCache);\n\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\"' + \" parameters specified.\");\n }\n\n capability.promise.then(() => {\n styleCache = null;\n\n if (!timeout) {\n render(this);\n } else {\n this._renderTimer = setTimeout(() => {\n render(this);\n this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n },\n expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n\n const transformBuf = [],\n paddingBuf = [];\n\n for (var i = 0, ii = this._textDivs.length; i < ii; i++) {\n const div = this._textDivs[i];\n\n const divProps = this._textDivProperties.get(div);\n\n if (divProps.isWhitespace) {\n continue;\n }\n\n if (expandDivs) {\n transformBuf.length = 0;\n paddingBuf.length = 0;\n\n if (divProps.originalTransform) {\n transformBuf.push(divProps.originalTransform);\n }\n\n if (divProps.paddingTop > 0) {\n paddingBuf.push(`${divProps.paddingTop}px`);\n transformBuf.push(`translateY(${-divProps.paddingTop}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingRight > 0) {\n paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingBottom > 0) {\n paddingBuf.push(`${divProps.paddingBottom}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingLeft > 0) {\n paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);\n transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n div.style.padding = paddingBuf.join(\" \");\n\n if (transformBuf.length) {\n div.style.transform = transformBuf.join(\" \");\n }\n } else {\n div.style.padding = null;\n div.style.transform = divProps.originalTransform;\n }\n }\n }\n };\n\n function renderTextLayer(renderParameters) {\n var task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection\n });\n\n task._render(renderParameters.timeout);\n\n return task;\n }\n\n return renderTextLayer;\n}();\n\nexports.renderTextLayer = renderTextLayer;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SVGGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nlet SVGGraphics = function () {\n throw new Error(\"Not implemented: SVGGraphics\");\n};\n\nexports.SVGGraphics = SVGGraphics;\n{\n const SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n };\n const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n const convertImgDataToPng = function () {\n const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n const CHUNK_WRAPPER_SIZE = 12;\n const crcTable = new Int32Array(256);\n\n for (let i = 0; i < 256; i++) {\n let c = i;\n\n for (let h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedb88320 ^ c >> 1 & 0x7fffffff;\n } else {\n c = c >> 1 & 0x7fffffff;\n }\n }\n\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n let crc = -1;\n\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n const crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n\n return b << 16 | a;\n }\n\n function deflateSync(literals) {\n if (!_is_node.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n\n try {\n let input;\n\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = Buffer.from(literals);\n }\n\n const output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n let pos = 0;\n\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n const adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n\n default:\n throw new Error(\"invalid format\");\n }\n\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n\n for (let y = 0; y < height; y++) {\n offsetLiterals++;\n\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n\n const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n const idat = deflateSync(literals);\n const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n return (0, _util.createObjectURL)(data, \"image/png\", forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n }();\n\n class SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = \"\";\n }\n\n clone() {\n return Object.create(this);\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n }\n\n function opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n\n for (const opListElement of opList) {\n if (opListElement.fn === \"save\") {\n opTree.push({\n fnId: 92,\n fn: \"group\",\n items: []\n });\n tmp.push(opTree);\n opTree = opTree[opTree.length - 1].items;\n continue;\n }\n\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n\n return opTree;\n }\n\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const s = value.toFixed(10);\n let i = s.length - 1;\n\n if (s[i] !== \"0\") {\n return s;\n }\n\n do {\n i--;\n } while (s[i] === \"0\");\n\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n }\n\n function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = Math.acos(m[0]) * 180 / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n }\n\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n }\n\n let clipCount = 0;\n let maskCount = 0;\n let shadingCount = 0;\n exports.SVGGraphics = SVGGraphics = class SVGGraphics {\n constructor(commonObjs, objs, forceDataSchema = false) {\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n\n for (const op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n const promise = new Promise(resolve => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n\n return Promise.all(this.current.dependencies);\n }\n\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n\n const svgElement = this._initialize(viewport);\n\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i]\n });\n }\n\n return opListToTree(opList);\n }\n\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n\n case _util.OPS.dependency:\n break;\n\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.endText:\n this.endText();\n break;\n\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n\n case _util.OPS.fill:\n this.fill();\n break;\n\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n\n case _util.OPS.stroke:\n this.stroke();\n break;\n\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n\n case _util.OPS.closePath:\n this.closePath();\n break;\n\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n\n case _util.OPS.endPath:\n this.endPath();\n break;\n\n case 92:\n this.group(opTreeElement.items);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.sqrt(a * a + b * b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.appendChild(current.tspan);\n }\n\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return;\n }\n\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n let x = 0;\n\n for (const glyph of glyphs) {\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\n\n if (vertical) {\n let vx;\n const vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n\n current.tspan.textContent += character;\n } else {}\n\n let charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n }\n\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n\n if (vertical) {\n current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n let textMatrix = current.textMatrix;\n\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, \"transform\", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.appendChild(current.tspan);\n current.txtgrp.appendChild(current.txtElement);\n\n this._ensureTransformGroup().appendChild(current.txtElement);\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\"addFontStyle: No font data available, \" + 'ensure that the \"fontExtraProperties\" API parameter is set.');\n }\n\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.appendChild(this.cssStyle);\n }\n\n const url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` src: url(${url}); }\\n`;\n }\n\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n\n if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n current.ycoords = [];\n }\n\n endText() {\n const current = this.current;\n\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeCssRgb(r, g, b);\n }\n\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n\n setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeCssRgb(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n\n shadingFill(args) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n\n const inv = _util.Util.inverseTransform(this.transformMatrix);\n\n const bl = _util.Util.applyTransform([0, 0], inv);\n\n const br = _util.Util.applyTransform([0, height], inv);\n\n const ul = _util.Util.applyTransform([width, 0], inv);\n\n const ur = _util.Util.applyTransform([width, height], inv);\n\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n\n return this._makeShadingPattern(args);\n }\n\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || _util.IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n const tilingId = `shading${shadingCount++}`;\n\n const [tx0, ty0] = _util.Util.applyTransform([x0, y0], matrix);\n\n const [tx1, ty1] = _util.Util.applyTransform([x1, y1], matrix);\n\n const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\n\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n const tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", `${tx0}`);\n tiling.setAttributeNS(null, \"y\", `${ty0}`);\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n\n if (paintType === 2) {\n const cssColor = _util.Util.makeCssRgb(...color);\n\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.appendChild(bbox.childNodes[0]);\n this.defs.appendChild(tiling);\n return `url(#${tilingId})`;\n }\n\n _makeShadingPattern(args) {\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\n\n switch (args[1]) {\n case \"axial\":\n const point0 = args[4];\n const point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n\n case \"radial\":\n const focalPoint = args[4];\n const circlePoint = args[5];\n const focalRadius = args[6];\n const circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.appendChild(stop);\n }\n\n this.defs.appendChild(gradient);\n return `url(#${shadingId})`;\n\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n\n case \"Dummy\":\n return \"hotpink\";\n\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x,\n y = current.y;\n let d = [];\n let j = 0;\n\n for (const op of ops) {\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n\n d = d.join(\" \");\n\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n\n this._ensureTransformGroup().appendChild(current.path);\n }\n\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n\n endPath() {\n const current = this.current;\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n const clipElement = current.element.cloneNode(true);\n\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n current.clipGroup = null;\n this.extraStack.forEach(function (prev) {\n prev.clipGroup = null;\n });\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n\n current.activeClipUrl = `url(#${clipId})`;\n this.tgrp = null;\n }\n\n clip(type) {\n this.pendingClip = type;\n }\n\n closePath() {\n const current = this.current;\n\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setRenderingIntent(intent) {}\n\n setFlatness(flatness) {}\n\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value);\n break;\n\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n\n case \"ca\":\n this.setFillAlpha(value);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n\n fill() {\n const current = this.current;\n\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n\n stroke() {\n const current = this.current;\n\n if (current.element) {\n this._setStrokeAttributes(current.element);\n\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n\n eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fill();\n }\n\n fillStroke() {\n this.stroke();\n this.fill();\n }\n\n eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fillStroke();\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n paintImageXObject(objId) {\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n const imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(null, \"transform\", `scale(${pf(1 / width)} ${pf(-1 / height)})`);\n\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n }\n\n paintImageMaskXObject(imgData) {\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n this.defs.appendChild(mask);\n\n this._ensureTransformGroup().appendChild(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {}\n\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.appendChild(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.appendChild(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.appendChild(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n\n return this.current.clipGroup;\n }\n\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n\n return this.tgrp;\n }\n\n };\n}\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFNodeStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(23);\n\n;\n\nconst fs = require(\"fs\");\n\nconst http = require(\"http\");\n\nconst https = require(\"https\");\n\nconst url = require(\"url\");\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n const parsedUrl = url.parse(sourceUrl);\n\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n\n return parsedUrl;\n}\n\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n\n this._rangeRequestReaders.push(rangeReader);\n\n return rangeReader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFNodeStream = PDFNodeStream;\n\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.createPromiseCapability)();\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers\n };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._headersCapability.resolve();\n\n this._setReadableStream(response);\n\n const getResponseHeader = name => {\n return this._readableStream.headers[name.toLowerCase()];\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n\n this._headersCapability.reject(reason);\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n this._httpHeaders[property] = value;\n }\n\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n\n this._setReadableStream(response);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(`Missing PDF \"${path}\".`);\n }\n\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._contentLength = stat.size;\n\n this._setReadableStream(fs.createReadStream(path));\n\n this._headersCapability.resolve();\n });\n }\n\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n\n}\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _content_disposition = __w_pdfjs_require__(24);\n\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n (0, _util.assert)(rangeChunkSize > 0, \"Range chunk size must be larger than zero\");\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n\n if (contentDisposition) {\n let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n\n if (/\\.pdf$/i.test(filename)) {\n return filename;\n }\n }\n\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n\n return new _util.UnexpectedResponseException(\"Unexpected server response (\" + status + ') while retrieving PDF \"' + url + '\".', status);\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n tmp = rfc2231getparam(contentDisposition);\n\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const bytes = Array.from(value, function (ch) {\n return ch.charCodeAt(0) & 0xff;\n });\n value = decoder.decode(new Uint8Array(bytes));\n needsEncodingFixup = false;\n } catch (e) {\n if (/^utf-?8$/i.test(encoding)) {\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {}\n }\n }\n }\n\n return value;\n }\n\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n\n return value;\n }\n\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n\n if (n in matches) {\n if (n === 0) {\n break;\n }\n\n continue;\n }\n\n matches[n] = [quot, part];\n }\n\n const parts = [];\n\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n\n if (quot) {\n part = unescape(part);\n\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n\n parts.push(part);\n }\n\n return parts.join(\"\");\n }\n\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n\n parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n }\n\n value = parts.join('\"');\n }\n\n return value;\n }\n\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n\n if (encodingend === -1) {\n return extvalue;\n }\n\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replace(/_/g, \" \");\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n\n try {\n text = atob(text);\n } catch (e) {}\n\n return textdecode(charset, text);\n });\n }\n\n return \"\";\n}\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFNetworkStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(23);\n\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n\n if (typeof data !== \"string\") {\n return data;\n }\n\n const array = (0, _util.stringToBytes)(data);\n return array.buffer;\n}\n\nclass NetworkManager {\n constructor(url, args) {\n this.url = url;\n args = args || {};\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || {};\n this.withCredentials = args.withCredentials || false;\n\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n\n return this.request(args);\n }\n\n requestFull(listeners) {\n return this.request(listeners);\n }\n\n request(args) {\n const xhr = this.getXhr();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n xhr.setRequestHeader(property, value);\n }\n\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n\n xhr.responseType = \"arraybuffer\";\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n if (pendingRequest.onProgress) {\n pendingRequest.onProgress(evt);\n }\n }\n\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n const xhr = pendingRequest.xhr;\n\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n if (xhr.status === 0 && this.isHttp) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n const chunk = getArrayBuffer(xhr);\n\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n }\n\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n\n}\n\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFNetworkStream = PDFNetworkStream;\n\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n }\n\n _onDone(args) {\n if (args) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: args.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(args.chunk);\n }\n }\n\n this._done = true;\n\n if (this._cachedChunks.length > 0) {\n return;\n }\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n\n _onError(status) {\n const url = this._url;\n const exception = (0, _network_utils.createResponseStatusError)(status, url);\n this._storedError = exception;\n\n this._headersReceivedCapability.reject(exception);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.reject(exception);\n });\n\n this._requests = [];\n this._cachedChunks = [];\n }\n\n _onProgress(data) {\n if (this.onProgress) {\n this.onProgress({\n loaded: data.loaded,\n total: data.lengthComputable ? data.total : this._contentLength\n });\n }\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._headersReceivedCapability.reject(reason);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n\n this._fullRequestReader = null;\n }\n\n}\n\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _close() {\n if (this.onClosed) {\n this.onClosed(this);\n }\n }\n\n _onDone(data) {\n const chunk = data.chunk;\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n this._close();\n }\n\n _onProgress(evt) {\n if (!this.isStreamingSupported && this.onProgress) {\n this.onProgress({\n loaded: evt.loaded\n });\n }\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n\n this._close();\n }\n\n}\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFFetchStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(23);\n\n;\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController && abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\n\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n headers.append(property, value);\n }\n\n return headers;\n}\n\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader ? this._fullRequestReader._loaded : 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFFetchStream = PDFFetchStream;\n\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._reader = response.body.getReader();\n\n this._headersCapability.resolve();\n\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._isStreamingSupported = !source.disableStream;\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._headers = createHeaders(this._stream.httpHeaders);\n\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._readCapability.resolve();\n\n this._reader = response.body.getReader();\n }).catch(reason => {\n if (reason && reason.name === \"AbortError\") {\n return;\n }\n\n throw reason;\n });\n this.onProgress = null;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf.js.map"],"sourceRoot":""}