{"version":3,"sources":["webpack://mainstage/./node_modules/@themainstage/pdfjs-dist/build/pdf.worker.js","webpack://mainstage/webpack/bootstrap","webpack://mainstage/webpack/startup"],"names":["factory","__webpack_modules__","__unused_webpack_module","exports","__w_pdfjs_require__","Object","defineProperty","value","WorkerTask","WorkerMessageHandler","maybePort","_util","_primitives","_pdf_manager","_writer","_is_node","_message_handler","_worker_stream","_core_utils","name","this","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","property","push","length","join","ReadableStream","docId","docBaseUrl","workerHandlerName","MessageHandler","ensureNotTerminated","startWorkerTask","task","finishWorkerTask","finish","i","indexOf","splice","async","loadDocument","recoveryMode","ensureDoc","numPages","fingerprint","isPureXfa","Promise","all","getPdfManager","evaluatorOptions","enableXfa","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","readChunk","done","pdfFile","arraysToBytes","warn","flushChunks","arrayByteLength","total","Math","max","read","e","cancelAllRequests","getPage","pageIndex","page","ensure","rotate","ref","userUnit","view","pageRef","Ref","get","num","gen","ensureCatalog","id","jsActions","requestLoadedStream","onLoadedStream","stream","bytes","ensureXRef","intent","getAnnotationsData","annotationStorage","filename","promises","save","finally","acroForm","xref","startXRef","refs","newRefs","filter","x","reduce","a","b","concat","xfa","Dict","xfaDatasets","Array","isArray","ii","newXrefInfo","create","trailer","infoObj","xrefInfo","forEach","key","isString","stringToPDFString","rootRef","getRaw","encrypt","newRef","getNewRef","infoRef","info","fileIds","resetNewRef","incrementalUpdate","originalData","datasetsRef","sink","start","VerbosityLevel","INFOS","Date","now","getOperatorList","renderInteractiveForms","operatorListInfo","close","featureId","UNSUPPORTED_FEATURES","errorOperatorList","error","onPull","desiredSize","onCancel","extractTextContent","normalizeWhitespace","combineTextItems","fontFallback","cleanup","waitOn","terminate","AbortException","cleanupPromise","clearPrimitiveCaches","finished","destroy","onSuccess","doc","pdfInfo","onFailure","PasswordException","code","sendWithPromise","updatePassword","pdfManagerReady","InvalidPDFException","MissingPDFException","UnexpectedResponseException","UnknownErrorException","message","toString","XRefParseException","maxImageSize","disableFontFace","ignoreErrors","isEvalSupported","fontExtraProperties","byteLength","setupDoc","setup","window","isNodeJS","self","postMessage","initializeFromPort","arr","resultLength","pos","item","stringToBytes","itemLength","set","assert","bytesToString","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","min","chunk","subarray","createObjectURL","contentType","forceDataSchema","URL","Blob","type","digits","buffer","b1","b2","b3","capability","isSettled","createValidAbsoluteUrl","url","baseUrl","absoluteUrl","protocol","_isValidProtocol","escapeString","str","replace","match","getModificationDate","date","getUTCFullYear","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","msg","console","log","isArrayBuffer","v","isArrayEqual","arr1","arr2","isAscii","test","isBool","isNum","isSameOrigin","otherUrl","base","origin","other","objectFromMap","map","obj","objectSize","keys","removeNullCharacters","NullCharactersRegExp","level","Number","isInteger","shadow","string32","charCodeAt","PDFStringTranslateTable","charAt","stringToUTF16BEString","buf","char","stringToUTF8String","decodeURIComponent","escape","unreachable","utf8StringToString","unescape","encodeURIComponent","Util","TextRenderingMode","StreamType","PermissionFlag","PasswordResponses","PageActionEventType","OPS","IsLittleEndianCached","IsEvalSupportedCached","ImageKind","IDENTITY_MATRIX","FormatError","FontType","FONT_IDENTITY_MATRIX","DocumentActionEventType","CMapCompressionType","BaseException","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","AnnotationActionEventType","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","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","WC","WS","DS","WP","DP","O","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","cond","prop","enumerable","configurable","writable","constructor","prototype","super","details","status","buffer8","Uint32Array","isLittleEndian","Function","hexNumbers","n","r","g","m1","m2","p","m","d","p1","applyTransform","p2","slice","p3","p4","transpose","c","first","second","sqrt","sx","sy","rect","rect1","rect2","compare","orderedX","sort","orderedY","result","normalizeRect","__unused_webpack_exports","process","versions","nw","electron","Cmd","_clearCache","Name","isCmd","cmd","isDict","isName","isEOF","EOF","isRef","isRefsEqual","v1","v2","isStream","getBytes","RefSetCache","RefSet","nameCache","nameValue","cmdCache","cmdValue","nonSerializable","_map","objId","suppressEncryption","__nonSerializable__","assignXref","newXref","key1","key2","key3","fetch","fetchAsync","getKeys","getRawValues","values","has","callback","empty","emptyDict","merge","dictArray","mergeSubDicts","mergedDict","dict","entries","size","properties","Map","subDict","clear","refCache","refValue","parent","_set","Set","add","delete","aliasRef","_chunked_stream","_document","_stream","parseDocBaseUrl","href","BasePdfManager","_docId","_password","_docBaseUrl","args","pdfDocument","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","bind","chunkData","_requestChunks","requestId","chunksNeeded","hasChunk","chunksToRequest","requestIds","groupedChunksToRequest","groupChunks","groupedChunk","sendRequest","getBeginChunk","getEndChunk","ranges","range","includes","groupedChunks","prevChunk","isProgressive","onReceiveProgressiveData","loadedRequests","nextEmptyChunk","lastChunk","err","collectActions","eventType","actions","additionalActionsDicts","getInheritableProperty","stopWhenFound","additionalActions","action","actionDict","parents","list","_collectJS","Action","encodeToXmlString","codePointAt","entity","XMLEntities","substring","toUpperCase","escapePDFName","getArrayLookupTableFactory","initializer","lookup","getLookupTableFactory","isWhiteSpace","ch","log2","parseXFAPath","path","positionPattern","split","component","parseInt","readInt8","offset","readUint16","readUint32","toRomanNumerals","number","lowerCase","romanBuf","ROMAN_NUMBER_MAP","romanStr","toLowerCase","XRefEntryException","getArray","visited","put","entry","element","js","remove","Page","_obj","_annotation","_crypto","_parser","_operator_list","_evaluator","_factory","LETTER_SIZE_MEDIABOX","isAnnotationRenderable","annotation","viewable","printable","pageDict","globalIdFactory","fontCache","builtInCMapCache","globalImageCache","nonBlendModesSet","xfaFactory","resourcesPromise","idCounters","_localIdFactory","_getInheritableProperty","xfaData","width","height","attributes","style","box","_getBoundingBox","mediaBox","cropBox","intersect","content","streams","fetchIfRef","StreamsSequenceStream","NullStream","partialEvaluator","PartialEvaluator","idFactory","options","_parsedAnnotations","annotations","newRefsPromises","ObjectLoader","resources","load","contentStreamPromise","loadResources","pageListPromise","contentStream","opList","OperatorList","transparency","hasBlendModes","operatorList","pageOpList","flush","totalLength","opListPromises","isHidden","opLists","addOp","addOpList","getTextContent","annotationsData","annots","parsedAnnotations","annotationPromises","annotationRef","AnnotationFactory","PDF_HEADER_SIGNATURE","STARTXREF_SIGNATURE","ENDOBJ_SIGNATURE","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","isNaN","moveStart","setStartXRef","numberPages","fields","recursionDepth","every","field","_hasOnlyDocumentSignatures","isSignature","isInvisible","template","datasets","config","connectionSet","localeSet","stylesheet","isEmpty","_","hasOwnProperty","formInfo","hasXfa","hasAcroForm","XFAFactory","hasFields","hasOnlyDocumentSignatures","DocumentInfoValidators","Title","Author","Subject","Keywords","Creator","Producer","CreationDate","ModDate","Trapped","docInfo","PDFFormatVersion","IsLinearized","IsAcroFormPresent","IsXFAPresent","IsCollectionPresent","collection","infoDict","customValue","Custom","hash","idArray","calculateMD5","getByteRange","fingerprintBuf","hex","objectNumberFirst","pageKidsCountCache","getPageDict","pageFirst","_getLinearizationPage","fieldRef","partName","getFieldObject","kids","kid","_collectFieldObjects","allFields","fieldPromises","allPromises","fieldObjects","some","fieldObject","object","calculationOrder","ids","FileSpec","_colorspace","_image_utils","_metadata_parser","fetchDestination","dest","_catDict","getCatalogObj","GlobalImageCache","streamRef","encryptMetadata","metadata","subtype","MetadataParser","serializable","markInfo","_readMarkInfo","assign","Marked","UserProperties","Suspects","pagesObj","_readDocumentOutline","root","items","queue","processed","blackColor","shift","outlineDict","parseDestDictionary","destDict","resultObj","title","flags","color","count","rgbColor","ColorSpace","singletons","rgb","getRgb","outlineItem","unsafeUrl","newWindow","bold","italic","permissions","_readPermissions","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","prefix","nums","NumberTree","currentLabel","currentIndex","labelDict","s","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","openAction","attachments","fs","appendIfJavaScriptDict","jsDict","_collectJavaScript","val","translatedFonts","translatedFont","loadedName","fallback","cacheKey","nodesToVisit","visitedNodes","currentPageIndex","next","currentNode","pop","last","kidRef","parentRef","node","getAsync","kidPromises","pagesBeforeRef","params","actionType","actionName","startsWith","addDefaultProtocolToUrl","urlDict","remoteDest","JSON","stringify","namedAction","jsAction","jsUrl","RegExp","exec","tryConvertUrlEncoding","xrefstms","_cacheMap","stats","streamTypes","fontTypes","_newRefNum","startXRefQueue","trailerDict","indexObjects","readXRef","fileId","CipherTransformFactory","processXRefTable","parser","tableState","entryNum","streamPos","lexer","parserBuf1","buf1","parserBuf2","buf2","readXRefTable","getObj","firstEntryNum","entryCount","free","uncompressed","processXRefStream","streamParameters","byteWidths","streamState","entryRanges","readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","readToken","token","skipUntil","what","dataLength","skipped","objRegExp","endobjRegExp","nestedObjRegExp","trailerBytes","startxrefBytes","objBytes","xrefBytes","trailers","xrefStms","startPos","endPos","checkPos","tokenStr","objToken","xrefTagOffset","Parser","Lexer","allowStreams","rootDict","pagesDict","pagesCount","startXRefParsedCache","topDict","getEntry","xrefEntry","cacheEntry","fetchUncompressed","fetchCompressed","makeSubStream","obj1","obj2","obj3","createCipherTransform","tableOffset","offsets","NameOrNumberTree","_type","kidsOrEntries","loopCount","l","limits","tmp","currentKey","mm","description","contentAvailable","pickPlatformItem","_filename","contentRef","fileObj","addChildren","rawValue","refSet","_walk","nodesToRevisit","pendingRequests","getBaseStreams","baseStreams","foundMissingData","requestRanges","_ccitt_stream","_jbig2_stream","_jpeg_stream","_jpx_stream","computeAdler32","bytesLength","imageCache","refill","cipherTransform","makeInlineImage","array","makeStream","decryptString","maybeEIPos","state","followingBytes","knownCommands","nextObj","peekObj","endOffset","peekByte","markerLength","foundEOI","getUint16","findDefaultInlineStreamEnd","inlineStreamSkipEI","tildePos","maybeEI","dictLength","beginInlineImagePos","filterName","filterZero","findDCTDecodeInlineStreamEnd","findASCII85DecodeInlineStreamEnd","findASCIIHexDecodeInlineStreamEnd","imageStream","imageBytes","initialStreamPos","dictBytes","createStream","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","firstDigit","secondDigit","isFirstHex","_hexStringWarn","comment","getNumber","getString","getName","getHexString","knownCommandFound","possibleCommand","getInt","linDict","allowZeroValue","hints","hintsLength","index","hint","getHints","endFirst","mainXRefEntriesOffset","StringStream","DecryptStream","DecodeStream","arrayBuffer","getInt32","call","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","code2","t","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","maxDecodeLength","digit","repeatHeader","cachedData","bitsCached","maxLzwDictionarySize","lzwState","codeLength","nextCode","dictionaryValues","dictionaryLengths","Uint16Array","dictionaryPrevCodes","currentSequence","currentSequenceLength","readBits","lastCode","q","estimatedDecodedSize","blockSize","prevCode","decodedLength","currentBufferLength","hasPrev","_ccitt","ccittFaxDecoder","CCITTFaxDecoder","EndOfLine","EncodedByteAlign","Columns","Rows","EndOfBlock","BlackIs1","readNextChar","ccittEOF","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","decodeBitmap","mmr","templateIndex","prediction","at","decodingContext","decodeMMRBitmap","Reader","contextLabel","pixel","row1","row2","bitmap","decodeBitmapTemplate0","useskip","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","i0","j0","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeTextRegion","huffman","refinement","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","symbolCodeLength","transposed","dsOffset","referenceCorner","combinationOperator","huffmanTables","refinementTemplateIndex","refinementAt","logStripSize","huffmanInput","stripT","tableDeltaT","decode","firstS","currentS","tableFirstS","currentT","symbolId","symbolIDTable","applyRefinement","symbolBitmap","symbolWidth","symbolHeight","rdw","rdh","s2","t2","symbolRow","offsetT","offsetS","maxWidth","deltaS","tableDeltaS","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionMmr","RegionSegmentInformationFieldLength","searchPattern","headerEnd","readSegments","header","segments","segment","randomAccess","processSegment","visitor","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","numberOfExportedSymbols","numberOfNewSymbols","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","patternWidth","patternHeight","maxPatternIndex","halftoneRegion","halftoneRegionFlags","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","genericRegion","genericRegionSegmentFlags","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","SimpleSegmentVisitor","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","line","children","isLeaf","HuffmanTable","lines","prefixCodesDone","assignPrefixCodes","rootNode","buildTree","onPageInformation","currentPageInfo","rowSize","drawBitmap","regionInfo","mask","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","arguments","onSymbolDictionary","currentSegment","referredSegments","customTables","tableDeltaHeight","tableDeltaWidth","tableBitmapSize","tableAggregateInstances","customIndex","getStandardTable","getCustomHuffmanTable","getSymbolDictionaryHuffmanTables","symbols","referredSymbols","newSymbols","currentHeight","tableB1","symbolWidths","currentWidth","totalWidth","firstSymbol","deltaWidth","numberOfInstances","rdx","rdy","bitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMax","bitmapWidth","xMin","exportedSymbols","currentFlag","totalSymbolsLength","runLength","decodeSymbolDictionary","onImmediateTextRegion","numberOfSymbols","reader","runCodesTable","repeatedLength","numberOfRepeats","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","patterns","patternBitmap","decodePatternDictionary","regionWidth","regionHeight","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","decodeHalftoneRegion","onImmediateHalftoneRegion","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","decodeTablesSegment","htOffset","decodeNode","linesLength","prefixLengthMax","histogram","currentCode","currentTemp","currentLength","firstCode","standardTablesCache","currentByte","endOfBlock","lookForEOFLimit","numBits","parseJbig2Chunks","imgData","numberOfPages","bitPacked","parseJbig2","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","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","successiveACNextValue","eobrun","successiveACState","decodeMcu","mcu","mcuCol","blockCol","h","decodeBlock","decodeFn","componentsLength","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","z","offsetZ","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","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","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_","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","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","initializeTile","qcdOrQcc","QCC","QCD","COC","headerSize","lbox","tbox","jumpDataLength","method","colorspace","parseCodestream","headerType","parseImageProperties","newByte","doNotRecover","sqcd","spqcdSize","mainHeader","isSigned","qcd","noQuantization","spqcd","cqcc","qcc","cod","scod","multipleComponentTransform","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","precinctsSize","unsupported","partIndex","partsCount","resultImages","transformedTiles","y2","tile0","out","fourComponents","y0items","y1items","y2items","y3items","component0","alpha01","transformComponents","levelsLength","levels","currentLevel","defaultValue","stopValue","propagateValues","levelIndex","currentValue","UNIFORM_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","i1","decodeSignBit","contribution","sign0","sign1","significance1","decoded","horizontalContribution","indexNext","width4","index0","iNext","oneRowDown","twoRowsDown","threeRowsDown","indexBase","checkAllEmpty","i2","Transform","u0","ll","iterate","extend","j1","j2","hl_lh_hh","u","llWidth","llHeight","llItems","rowBuffer","numBuffers","colBuffers","currentBuffer","current","alpha","beta","gamma","calculateSHA384","PDF20","PDF17","calculateSHA512","calculateSHA256","ARCFourCipher","AES256Cipher","AES128Cipher","keyLength","tmp2","encryptBlock","h0","h1","h2","h3","paddedLength","padded","w","f","rotateArg","Word64","highInteger","lowInteger","high","low","word","places","lowAdd","highAdd","rotr","maj","sigma","sigmaPrime","littleSigma","h4","h5","h6","h7","t1","and","not","xor","rotateRight","shiftRight","littleSigmaPrime","mode384","tmp3","tmp1","copyTo","NullCipher","AESBaseCipher","_s","_inv_s","_mix","_mixCol","bufferPosition","cipherKey","_keySize","_cyclesOfRepetition","s0","s1","s3","finalize","sourceLength","iv","plain","_decrypt","_key","outputLength","lastBlock","psLen","decryptBlock","_decryptBlock2","cipher","_encrypt","_rcon","_expandKey","rcon","t3","t4","ownerValidationSalt","userBytes","ownerPassword","hashData","userValidationSalt","userPassword","ownerKeySalt","ownerEncryption","userKeySalt","userEncryption","calculatePDF20Hash","combinedLength","combinedArray","writeOffset","k1","remainder","concatBytes","CipherTransform","stringCipherConstructor","streamCipherConstructor","StringCipherConstructor","StreamCipherConstructor","strLen","pad","padEnd","crypto","getRandomValues","random","defaultPasswordBytes","prepareKeyData","revision","hashDataSize","keyLengthInBytes","checkData","encryptionKey","derivedKey","identityName","buildObjectKey","isAes","buildCipherConstructor","cf","cfm","cryptFilter","algorithm","cfDict","streamCryptoName","handlerDict","passwordBytes","fileIdBytes","uBytes","perms","passwordLength","pdfAlgorithm","checkUserPassword","getUserKey","checkOwnerPassword","getOwnerKey","createEncryptionKey20","decodeUserPassword","stmf","strf","eff","cipherConstructor","numComps","srcOffset","getRgbItem","destOffset","inputLength","decodeMap","bpc","isDefaultDecode","originalWidth","originalHeight","actualHeight","comps","rgbBuf","numComponentColors","needsResizing","isPassthrough","allColors","colorMap","getRgbBuffer","rgbPos","destPos","w1","w2","xRatio","yRatio","oldIndex","newIndex","xScaled","w1Scanline","resizeRgbImage","localColorSpaceCache","parsedColorSpace","csName","csRef","localColorSpace","getByRef","getByName","cs","pdfFunctionFactory","_parse","_cache","cachedColorSpace","getCached","gray","cmyk","PatternCS","colorSpaces","resourcesCS","mode","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","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","matrixProduct","sRGBTransferFunction","adjustToRange","decodeL","A","B","AGR","GR","BGG","GG","CGB","GB","MXA","MXB","MXC","MYA","MYB","MYC","Z","MZA","MZB","MZC","XYZ","XYZ_Flat","sourceWhitePoint","XYZ_In","LMS","LMS_Flat","convertToFlat","normalizeWhitePointToFlat","XYZ_Black","sourceBlackPoint","zeroDecodeL","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","compensateBlackPoint","XYZ_D65","LMS_D65","convertToD65","normalizeWhitePointToD65","SRGB","fn_g","high1","low2","high2","maxVal","Ls","as","bs","amin","amax","bmin","bmax","M","N","LocalTilingPatternCache","LocalImageCache","LocalGStateCache","LocalFunctionCache","LocalColorSpaceCache","BaseLocalCache","onlyRefs","_nameRefMap","_imageMap","_imageCache","_refCache","byteSize","imageData","MIN_IMAGES_TO_CACHE","_byteSize","MAX_BYTE_SIZE","pageIndexSet","NUM_PAGES_THRESHOLD","_cacheLimitReached","onlyData","_xml_parser","_repair","xmlDocument","SimpleXMLParser","lowerCaseName","parseFromString","_metadataMap","_data","d1","d2","d3","nodeName","childNodes","hasChildNodes","seqNode","sequence","_getSequence","textContent","trim","rdf","documentElement","firstChild","nextSibling","desc","_parseArray","parsedData","rawData","XMLParserErrorCode","XMLParserBase","SimpleDOMNode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","fromCodePoint","onResolveEntity","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","_resolveEntities","parsed","attrStart","onError","onEndElement","pi","_parseProcessingInstruction","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","_parseContent","isClosed","onBeginElement","text","onText","nodeValue","parentNode","child","paths","stack","siblingPos","searchNode","res","attribute","dump","hasAttributes","_currentFragment","_stack","_errorCode","_hasAttributes","_lowerCaseName","parseXml","isWhitespaceString","lastElement","getQuadPoints","MarkupAnnotation","AnnotationBorderStyle","Annotation","_default_appearance","getRgbColor","quadPoints","quadPointsLists","quadPointsList","maxY","mX","MX","mY","MY","quadPoint","MIN_VALUE","getTransformMatrix","bbox","getAxialAlignedBoundingBox","collectFields","createObjId","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","WidgetAnnotation","PopupAnnotation","FreeTextAnnotation","LineAnnotation","SquareAnnotation","CircleAnnotation","PolylineAnnotation","PolygonAnnotation","CaretAnnotation","InkAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","StampAnnotation","FileAttachmentAnnotation","setContents","setModificationDate","setFlags","setRectangle","setColor","setBorderStyle","setAppearance","_streams","appearance","annotationFlags","borderStyle","contents","hasAppearance","modificationDate","kidIds","fieldName","_constructFieldName","_fallbackFontDict","flag","_hasFlag","storageEntry","hidden","_isViewable","_isPrintable","dictType","setWidth","setStyle","setDashArray","setHorizontalCornerRadius","setVerticalCornerRadius","appearanceStates","normalAppearanceState","evaluator","renderForms","appearanceDict","fallbackFontDict","unshift","loopDict","dashArray","horizontalCornerRadius","verticalCornerRadius","maxHeight","isValid","allZeros","radius","rawIRT","inReplyTo","rt","replyType","setCreationDate","creationDate","hasPopup","extra","strokeColor","fillColor","blendMode","pointsCallback","pointsArray","points","formDict","appearanceStreamDict","appearanceStream","gsDict","stateDict","annotationType","fieldValue","_decodeFormValue","defaultFieldValue","alternativeText","defaultAppearance","_defaultAppearance","defaultAppearanceData","parseDefaultAppearance","localResources","acroFormResources","appearanceResources","_fieldResources","mergedResources","fieldFlags","readOnly","hasFieldFlag","formValue","_hasText","_getAppearance","AP","originalTransform","newTransform","encryptString","_getSaveFieldResources","bufferOriginal","writeDict","bufferNew","isPassword","lineCount","multiLine","totalHeight","fontSize","_computeFontSize","_getFontData","descent","vPadding","abs","alignment","textAlignment","_getMultilineAppearance","encodedString","encodeString","comb","_getCombAppearance","_renderText","initialState","fontName","handleSetFont","roundWithOneDigit","FONT_FACTOR","lineHeight","numberOfLines","fontColor","createDefaultAppearance","hPadding","glyphs","charsToGlyphs","glyph","toFixed","localFont","acroFormFont","subFontDict","subResourcesDict","maximumLength","combWidth","positions","getCharPositions","_splitLine","padding","lastSpacePosInStringStart","lastSpacePosInStringEnd","lastSpacePos","startChunk","glyphWidth","unicode","multiline","charLimit","editable","checkedAppearance","uncheckedAppearance","checkBox","radioButton","pushButton","isTooltipOnly","_processCheckBox","_processRadioButton","_processPushButton","savedAppearance","_saveCheckbox","_saveRadioButton","exportValue","buttonValue","parentBuffer","parentTransform","customAppearance","normalAppearance","exportValues","fieldParent","fieldParentValue","option","isOptionArray","displayValue","combo","multiSelect","numItems","multipleSelection","stateModel","parentItem","parentSubtype","parentType","rawParent","parentId","parentRect","parentFlags","lineCoordinates","from","borderWidth","_setDefaultAppearance","interiorColor","controlPointsDistance","tan","xMid","yMid","xOffset","yOffset","vertices","rawVertices","inkLists","rawInkLists","dy","xEnd","file","colorCmd","DefaultAppearanceEvaluator","EvaluatorPreprocessor","operation","fn","savedStatesDepth","_cmap","_fonts","_encodings","_unicode","_standard_fonts","_pattern","_function","_bidi","_glyphlist","_metrics","_murmurhash","_image","DefaultPartialEvaluatorOptions","freeze","PatternType","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","sendWithStream","getReader","pump","compressionType","xobj","optionalContent","parseMarkedContentProps","groupOptions","isolated","knockout","groupSubtype","colorSpace","parseColorSpace","backdrop","cacheGlobally","transfers","image","isInline","localImageCache","imageRef","bitStrideLength","imgArray","PDFImage","createMask","imageIsFromDecodeStream","inverseDecode","cached","softMask","imageObj","_pdfFunctionFactory","createImageData","getDocId","shouldCache","addDependency","buildImage","addByteSize","_sendImgData","addPageIndex","setData","stateManager","smaskContent","smaskOptions","transferObj","isPDFFunction","transferFn","transferMap","buildFormXObject","clone","tr","transferArray","transferMaps","numFns","numEffectfulFns","pattern","patternDict","localTilingPatternCache","tilingOpList","patternResources","operatorListIR","getIR","tilingPatternIR","getTilingPatternIR","addDependencies","dependencies","fontArgs","fontRef","loadFont","translated","isType3Font","loadType3Data","type3Dependencies","TranslatedFont","ErrorFont","extraProperties","chars","textRenderingMode","fillColorSpace","buildFontPaths","gState","localGStateCache","gStateRef","isSimpleGState","gStateObj","gStateKeys","handleSMask","handleTransferFunction","errorFont","fontRes","fontCapability","preEvaluatedFont","preEvaluateFont","descriptor","fontID","fontRefIsRef","fontAliases","aliasFontRef","putAlias","createFontId","translateFont","fontType","fontFile3","getFontType","parsingText","lastIndex","fnArray","opArgs","argsArray","parseAsync","patternName","localTilingPattern","typeNum","handleTilingType","shading","Pattern","parseShading","contentProperties","optionalContentType","optionalContentGroups","groupIds","ocg","expression","policy","EvalState","xobjs","StateManager","preprocessor","timeSlotManager","closePendingRestoreOPS","argument","promiseBody","ready","stop","localImage","resolveXObject","rejectXObject","globalImage","buildPaintImageXObject","ensureStateFont","handleText","combinedGlyphs","arrLength","arrItem","strokeColorSpace","handleColorN","shadingRes","localGStateObj","resolveGState","rejectGState","extGState","buildPath","seenStyles","TextState","WhitespaceRegexp","styles","textContentItem","vertical","lastAdvanceWidth","lastAdvanceHeight","textAdvanceScale","spaceWidth","fakeSpaceMin","Infinity","fakeMultiSpaceMin","fakeMultiSpaceMax","textRunBreakAllowed","emptyXObjectCache","emptyGStateCache","textState","ensureTextContentItem","fontFamily","fallbackName","ascent","tsm","textHScale","textRise","fontMatrix","glyphHeight","trm","ctm","textMatrix","hypot","scaleLineX","textLineMatrix","scaleCtmX","isMonospace","replaceWhitespace","buildTextContentItem","textChunk","vmetric","glyphUnicode","NormalizedUnicodes","getNormalizedUnicodes","reverseIfRtl","charSpacing","isSpace","wordSpacing","addFakeSpaces","tx","ty","translateTextMatrix","fakeSpaces","flushTextContentItem","bidiResult","bidi","dir","enqueueChunk","enqueue","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","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","search","monospace","lookupName","getStdFontMap","Metrics","getMetrics","isSerifFont","glyphWidths","widthsByGlyphName","uint8array","df","MurmurHash3_64","update","diffLength","diffBuf","diffEntry","hexdigest","maxCharIndex","Serif","getSymbolsFonts","extractDataStructures","newProperties","Font","baseFont","fontNameStr","baseFontStr","fontFile","length1","length2","length3","fixedPitch","xHeight","capHeight","italicAngle","cidEncoding","extractWidths","fontChar","renderer","hasBuiltPath","getPathJs","accent","_extraProperties","type3Loaded","sent","exportData","glyphCacheValues","type3Options","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcOperatorList","glyphStream","_removeType3ColorOperators","dummyOperatorList","gStateKey","stateStack","old","txDiff","tyDiff","denominator","getOPMap","numArgs","variableArgs","J","ri","gs","Q","cm","re","S","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","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","BinaryCMapStream","readByte","readNumber","sp","readHexNumber","dataSize","subitemsCount","readHex","mapOne","readSigned","mapCidRange","readHexSigned","mapBfRange","readString","strToInt","expectString","expectInt","parseBfChar","parseBfRange","mapBfRangeToArray","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","previous","embeddedUseCMap","objLoop","extendCMap","createBuiltInCMap","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","recoverGlyphName","Glyph","operatorListId","isInFont","matchesForCache","OpenTypeFileBuilder","writeInt16","writeInt32","writeData","sfnt","tables","getSearchParams","entriesCount","entrySize","maxPower2","searchRange","rangeShift","toArray","tablesNames","tableName","numTables","tableOffsets","searchParams","checksum","addTable","tag","missingFile","glyphCache","toFontChar","fallbackToSystemFont","fileType","fileSubtype","isTrueTypeFile","isTrueTypeCollectionFile","isOpenTypeFile","isType1File","isCFFFile","getFontFileType","mimetype","cff","CFFFont","Type1Font","convert","checkAndRepair","isOpenType","seacMap","int16","signedInt16","string16","safeString16","buildToFontChar","adjustMapping","charCodeToGlyphId","hasGlyph","newGlyphZeroId","newMap","privateUseAreaIndex","nextAvailableFontCharCode","privateUseOffetEnd","originalCharCode","glyphId","fontCharCode","createCmapTable","numGlyphs","codeIndices","getRanges","bmpLength","trailingRangesCount","segCount","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","bias","contiguous","format314","format31012","header31012","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","FontRendererFactory","exportDataProperties","stdFontMap","nonStdFontMap","getNonStdFontMap","isStandardFont","isMappedToStandardFont","isNarrow","remeasure","GlyphMapForStandardFonts","getGlyphMapForStandardFonts","SupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForArialBlack","SupplementalGlyphMapForCalibri","getSupplementalGlyphMapForCalibri","unicodeCharCode","getDingbatsGlyphsUnicode","VALID_TABLES","readTables","head","hhea","hmtx","maxp","post","readTableEntry","previousPosition","readOpenTypeHeader","ttf","entrySelector","sanitizeGlyph","sourceStart","sourceEnd","destStart","hintsValid","glyphProfile","sizeOfInstructions","glyf","contoursCount","flagsCount","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xLength","yLength","xyLength","repeat","glyphDataLength","readNameTable","numRecords","stringsStart","records","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","cffFile","ttcData","ttc","numFonts","offsetTable","ttcTag","majorVersion","minorVersion","dsigTag","dsigLength","dsigOffset","readTrueTypeCollectionHeader","potentialHeader","potentialTables","nameEntry","readTrueTypeCollectionData","isTrueType","loca","isComposite","fpgm","prep","numGlyphsOut","dupFirstEntry","maxFunctionDefs","maxSizeOfInstructions","cvt","checkInvalidFunctions","cvtData","sanitizeTTPrograms","numOfMetrics","numMissing","sanitizeMetrics","locaLength","indexToLocFormat","numGlyphsPlusOne","sanitizeHead","missingGlyphs","isGlyphLocationsLong","glyphsInfo","itemSize","itemDecode","itemEncode","locaDataSize","locaData","oldGlyfData","oldGlyfDataLength","newGlyfData","locaEntries","simpleGlyph","firstEntryLength","sanitizeGlyphLocations","metricsOverride","propertiesObj","maxpNumGlyphs","glyphNames","valid","glyphNameIndexes","customNames","stringLength","readPostScriptTable","isCidToGidMapEmpty","cmapTable","platformId","encodingId","mappings","hasShortCmap","potentialTable","canBreak","useTable","format","segIndex","offsetsCount","rangeOffset","offsetIndex","readCmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","cmapMappingsLength","standardGlyphName","unicodeOrCharCode","glyphZeroId","newMapping","os2","selection","validateOS2Table","CFFParser","duplicateFirstGlyph","compiler","CFFCompiler","compile","namePrototype","builder","tableTag","builtInEncoding","amend","adjustToUnicode","mapping","getGlyphMapping","hasGlyphId","getCharCodes","charCodes","createCharCode","seacs","charset","getCharset","seac","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","baseFontCharCode","accentFontCharCode","cffWidths","charstring","possibleSpaceReplacements","charCodeOf","widthCode","mapSpecialUnicodeValues","charsCache","charsCacheKey","readCharCode","_charToGlyph","buffers","currentBuf","hasCurrentBufErrors","getCharCodeLength","type1FontGlyphMapping","findBlock","streamBytes","startIndex","streamBytesLength","headerBlockLength","pfbHeader","pfbHeaderPresent","headerBlock","suggestedLength","headerBytes","headerBytesLength","EEXEC_SIGNATURE","streamStartPos","getHeaderBlock","Type1Parser","extractFontHeader","eexecBytes","eexecBlock","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","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","offsetSize","offsetStart","offsetEnd","Type","cffDict","pair","setByKey","callDepth","stackSize","validationCommand","subrNumber","parseCharString","hasVStems","firstStackClearing","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","parentDict","emptyPrivateDictionary","privateOffset","removeByName","privateDictEnd","dictData","subrsOffset","relativeOffset","CFFCharsetPredefinedTypes","ISO_ADOBE","ISOAdobeCharset","EXPERT","ExpertCharset","EXPERT_SUBSET","ExpertSubsetCharset","raw","predefined","ExpertEncoding","dataStart","glyphsCount","rangesCount","gid","supplementsCount","sid","readSupplement","CFFEncoding","glyphZero","objects","CFFDict","keyToNameMap","nameToKeyMap","defaults","types","opcodes","valueLength","layout","createTables","glyphIndex","CFFOffsetTracker","location","dataOffset","offset1","offset2","offset3","offset4","compileHeader","compileNameIndex","xuid","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","encodingName","MacExpertEncoding","__webpack_exports__","_core_utils_js__WEBPACK_IMPORTED_MODULE_0__","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","Symbol","ZapfDingbats","getSpecialPUASymbols","nameLen","hexStr","UnicodeRanges","charsLength","isRTLRangeFor","getLong","getUshort","getSubroutineBias","numSubrs","parseCmap","idDelta","idOffset","parseCff","gsubrs","isCFFCIDFont","lookupCmap","compileGlyf","cmds","quadraticCurveTo","xa","ya","numberOfContours","arg1","arg2","scale01","scale10","subglyph","endPtsOfContours","numberOfPoints","startPoint","endPoint","contour","compileCharString","charStringCode","bezierCurveTo","stems","xb","yb","y3","subrCode","stackClean","subrsBias","achar","bchar","glyphNameMap","gsubrsBias","NOOP","CompiledFont","compiledGlyphs","compiledCharCodeToGlyphId","compileGlyph","compileGlyphImpl","TrueTypeCompiled","Type2Compiled","cffInfo","parseGlyfTable","Type1CharString","COMMAND_MAP","lsb","flexing","encoded","wx","sbx","executeCommand","asb","sby","num2","num1","flexArgs","howManyArgs","command","keepStack","stackLength","isHexDigit","discardNumber","decrypted","isSpecial","encrypted","isBinary","digit1","digit2","decryptAscii","getToken","lenIV","program","readInt","readCharStrings","blueArray","readNumberArray","readBoolean","charString","charStringObject","encodingArg","xstep","ystep","paintType","tilingType","ShadingType","getPattern","ctx","Shadings","RadialAxial","Mesh","Dummy","coordsArr","shadingType","t0","domainArr","extendStart","extendEnd","extendArr","r1","r2","distance","fnObj","createFromArray","colorStops","ratio","cssColor","makeHexColor","background","SMALL_NUMBER","r0","singularValueDecompose2dScale","MeshStreamReader","tmpCompsBuf","csNumComps","tmpCsCompsBuf","colorFn","align","readFlag","bitsPerFlag","readCoordinate","bitsPerCoordinate","xi","yi","readComponents","ci","getB","lut","t_","buildB","buildFigureFromPatch","mesh","figure","figures","coords","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","bounds","splitYBy","verticesPerRow","figureCoords","figureColors","cl","cr","c0","c1","c2","c3","bRow","bCol","newColor","updateBounds","patchMesh","operators","ps","verticesLeft","hasData","coord","decodeType4Shading","decodeType5Shading","tmp4","decodeType6Shading","decodeType7Shading","coordsPacked","xy","colorsPacked","packData","fnDict","PostScriptEvaluator","PostScriptCompiler","_ps_parser","toNumberArray","cachedFunction","parsedFunction","PDFFunction","parseArray","fnRef","localFunction","_localFunctionCache","outputSize","bps","sampleMul","strBytes","strIdx","typeFn","constructSampled","constructInterpolated","constructStiched","constructPostScript","IR","constructSampledFromIR","constructInterpolatedFromIR","constructStichedFromIR","constructPostScriptFromIR","fromIR","toMultiArray","domain","inputSize","encode","getSampleArray","interpolate","xmin","xmax","ymin","ymax","samples","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","cache_available","cachedValue","execute","stackIndex","bound","PostScriptStack","initialStack","operator","counter","atan","copy","cos","roll","LN10","sin","AstNode","AstArgument","visitArgument","AstLiteral","visitLiteral","AstBinaryOperation","visitBinaryOperation","AstMin","visitMin","AstVariable","visitVariable","AstVariableDefinition","variable","visitVariableDefinition","ExpressionBuilderVisitor","parts","literal","visit","definition","buildAddOperation","buildMulOperation","buildSubOperation","buildMinOperation","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","startLevel","isLTR","strLength","createBidiText","numBidi","charType","baseTypes","arabicTypes","isOdd","sor","eor","lastType","findUnequal","before","after","setValues","isEven","highestLevel","lowestOddLevel","reverseValues","temp","Courier","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","H","I","P","R","T","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","o","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","Idieresis","eacute","abreve","uhungarumlaut","ecaron","Ydieresis","divide","Yacute","Acircumflex","aacute","Ucircumflex","yacute","scommaaccent","ecircumflex","Uring","Udieresis","aogonek","Uacute","uogonek","Edieresis","Dcroat","commaaccent","copyright","Emacron","ccaron","aring","Ncommaaccent","lacute","agrave","Tcommaaccent","Cacute","atilde","Edotaccent","scaron","scedilla","iacute","lozenge","Rcaron","Gcommaaccent","ucircumflex","acircumflex","Amacron","rcaron","ccedilla","Zdotaccent","Thorn","Omacron","Racute","Sacute","dcaron","Umacron","uring","threesuperior","Ograve","Agrave","Abreve","multiply","uacute","Tcaron","partialdiff","ydieresis","Nacute","icircumflex","Ecircumflex","adieresis","edieresis","cacute","nacute","umacron","Ncaron","Iacute","plusminus","brokenbar","registered","Gbreve","Idotaccent","summation","Egrave","racute","omacron","Zacute","Zcaron","greaterequal","Eth","Ccedilla","lcommaaccent","tcaron","eogonek","Uogonek","Aacute","Adieresis","egrave","zacute","iogonek","Oacute","oacute","amacron","sacute","idieresis","Ocircumflex","Ugrave","Delta","thorn","twosuperior","Odieresis","igrave","ohungarumlaut","Eogonek","dcroat","threequarters","Scedilla","lcaron","Kcommaaccent","Lacute","trademark","edotaccent","Igrave","Imacron","Lcaron","onehalf","lessequal","ocircumflex","ntilde","Uhungarumlaut","Eacute","emacron","gbreve","onequarter","Scaron","Scommaaccent","Ohungarumlaut","degree","ograve","Ccaron","ugrave","radical","Dcaron","rcommaaccent","Ntilde","otilde","Rcommaaccent","Lcommaaccent","Atilde","Aogonek","Aring","Otilde","zdotaccent","Ecaron","Iogonek","kcommaaccent","minus","Icircumflex","ncaron","tcommaaccent","logicalnot","odieresis","udieresis","notequal","gcommaaccent","eth","zcaron","ncommaaccent","onesuperior","imacron","Euro","universal","existential","suchthat","asteriskmath","congruent","Alpha","Beta","Chi","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","therefore","perpendicular","radicalex","chi","phi","eta","iota","phi1","kappa","lambda","omicron","theta","rho","tau","upsilon","omega1","omega","psi","zeta","similar","Upsilon1","minute","infinity","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","proportional","equivalence","approxequal","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","notelement","gradient","registerserif","copyrightserif","trademarkserif","product","dotmath","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","angleleft","registersans","copyrightsans","trademarksans","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt","apple","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","SEED","MASK_HIGH","MASK_LOW","seed","blockCounts","tailLength","dataUint32","k2","C1","C2","C1_LOW","C2_LOW","hex1","hex2","QueueOptimizer","addState","parentState","checkFn","iterateFn","processFn","InitialState","iCurr","lastProcessed","curr","iFirstSave","iFirstTransform","iFirstPIIXO","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","kind","iFirstPIMXO","imageMask","handlePaintSolidColorImageMask","iTransform","transformArgs","isSameImage","firstPIMXOArg0","firstTransformArg0","firstTransformArg1","firstTransformArg2","firstTransformArg3","iPIMXO","images","maskParams","firstPIXOArg0","iFirstSetFont","firstSetFontArg0","firstSetFontArg1","iFirstBeginText","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","iFirst","iEndText","_optimize","NullOptimizer","streamSink","_streamSink","optimizer","_totalLength","weight","_resolved","CHUNK_SIZE","_transfers","decodeAndClamp","addend","coefficient","resizeImageMask","isMask","matte","needsDecode","decodeCoefficients","decodeAddends","isIndexed","smaskData","maskData","computedLength","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","xml","updatedXml","updateXFA","refForXrefTable","baseOffset","xrefTableData","indexes","maxOffset","md5","filesize","time","md5Buffer","md5BufferLen","writeString","computeMD5","sizes","tableLength","bufferLen","footer","objOffset","writeInt","writeValue","writeArray","roundedValue","numberToString","string","writeStream","_xfa_object","_bind","XFAParser","_createDocument","form","Binder","pages","$toHTML","XmlObject","XFAObjectArray","XFAObject","XFAAttribute","StringObject","OptionObject","Option10","Option01","IntegerObject","ContentObject","$uid","$toStyle","$text","$setValue","$setSetAttributes","$setId","$resolvePrototypes","$removeChild","$onText","$onChildCheck","$onChild","$nsAttributes","$nodeName","$namespaceId","$isTransparent","$isDescendent","$isDataValue","$insertAt","$indexOf","$hasSettableValue","$hasItem","$global","$getRealChildrenByNameIt","$getParent","$getChildrenByNameIt","$getChildrenByName","$getChildrenByClass","$getChildren","$getAttributeIt","$finalize","$extra","$dump","$data","$content","$consumed","$clone","$cleanup","$clean","$childrenToHTML","$appendChild","_utils","_namespaces","$lastAttribute","_applyPrototype","_attributes","_attributeNames","_children","_cloneAttribute","_dataValue","_defaultValue","_getPrototype","_getUnsetAttributes","_hasChildren","_max","_options","_parent","_setAttributes","_validator","uid","nsId","hasChildren","NamespaceIds","clean","getPrototypeOf","getOwnPropertyNames","dumped","include","html","use","protoAttributes","allAttr","setAttr","ancestors","protoProto","newAncestors","unsetAttrName","protoValue","$symbol","getOwnPropertySymbols","clonedChild","allTransparent","dataNode","skipConsumed","$name","getKeyword","validate","validator","getInteger","getBBox","def","getMeasurement","getColor","getFloat","getRatio","den","getRelevant","excluded","viewname","getStringOption","dimConverters","pt","in","measurementPattern","valueStr","unit","conv","$buildXFAObject","ns","pdf","sourceSet","xdc","xdp","xfdf","xhtml","xmpmeta","_template","_som","createText","Text","emptyMerge","_mergeMode","_isConsumeData","_bindElement","formNode","picture","Field","ui","choiceList","open","_isMatchTemplate","global","generator","target","connection","setProperty","targetNode","targetParent","SetProperty","BindItems","attrs","Reflect","construct","bindItems","Items","labelRef","valueRef","labelNode","valueNode","label","matches","baseClone","_bindValue","_setProperties","_bindItems","occur","initial","dataName","uselessNodes","_createOccurrences","mergeMode","_getOccurInfo","createDataNode","_findDataByNameToConsume","_bindOccurrences","Value","TemplateNamespace","Template","_html_utils","TEMPLATE_NS_ID","_setValue","templateNode","AppearanceFilter","usehref","Arc","circular","hand","startAngle","sweepAngle","edge","Area","colSpan","relevant","extras","area","draw","exObject","exclGroup","subform","subformSet","Assist","role","speak","toolTip","Barcode","charEncoding","dataColumnCount","dataPrep","dataRowCount","endChar","errorCorrectionLevel","moduleHeight","moduleWidth","printCheckDigit","rowColumnRatio","startChar","textLocation","truncate","upsMode","wideNarrowRatio","Bind","Bookend","leader","BooleanElement","Border","break","presence","corner","margin","margins","edgeStyles","cornerStyles","topInset","rightInset","bottomInset","leftInset","thickness","borderColor","borderRadius","Break","afterTarget","beforeTarget","bookendLeader","bookendTrailer","overflowLeader","overflowTarget","overflowTrailer","startNew","BreakAfter","targetType","script","BreakBefore","Button","highlight","class","Calculate","Caption","placement","reserve","para","toStyle","measureToString","Certificate","Certificates","credentialServerPolicy","urlPolicy","encryption","issuers","keyUsage","oids","signing","subjectDNs","CheckButton","mark","shape","border","ChoiceList","commitOn","textEntry","multiple","Color","cSpace","Comb","numberOfCells","Connect","usage","ContentArea","Corner","inverted","DateElement","DateTime","DateTimeEdit","hScrollPolicy","picker","Decimal","fracDigits","leadDigits","DefaultUi","Desc","boolean","dateTime","decimal","exData","float","integer","DigestMethod","DigestMethods","digestMethod","Draw","anchorType","hAlign","locale","maxW","minH","minW","assist","caption","keep","traversal","clazz","xfaName","Edge","cap","linecap","Encoding","Encodings","Encrypt","certificate","EncryptData","manifest","Encryption","EncryptionMethod","EncryptionMethods","encryptionMethod","Event","activity","listen","encryptData","signData","submit","ExData","maxLength","rid","transferEncoding","ExObject","archive","classId","codeBase","codeType","ExclGroup","access","accessKey","connect","event","nodeBoolean","Execute","executeType","runAt","Extras","borderWidths","marginWidths","paddingTop","paddingRight","paddingBottom","paddingLeft","flexDirection","Fill","linear","radial","solid","stipple","Filter","addRevocationInfo","appearanceFilter","certificates","digestMethods","encryptionMethods","lockDocument","mdp","reasons","timeStamp","Float","baselineShift","fontHorizontalScale","fontVerticalScale","kerningMode","letterSpacing","lineThrough","lineThroughPeriod","overline","overlinePeriod","posture","typeface","underline","underlinePeriod","backgroundClip","verticalAlign","fontKerning","textDecoration","textDecorationStyle","fontStyle","fontWeight","Format","Handler","Hyphenation","excludeAllCaps","excludeInitialCap","hyphenate","pushCharacterCount","remainCharacterCount","wordCharacterCount","Image","aspect","atob","blob","ImageEdit","Integer","Issuers","Keep","intact","KeyUsage","crlSign","dataEncipherment","decipherOnly","digitalSignature","encipherOnly","keyAgreement","keyCertSign","keyEncipherment","nonRepudiation","Line","slope","Linear","startColor","LockDocument","Manifest","Margin","marginLeft","marginRight","marginTop","marginBottom","Mdp","signatureType","Medium","imagingBBox","long","orientation","short","stock","trayIn","trayOut","Message","NumericEdit","Occur","Oid","Oids","oid","Overflow","PageArea","blankOrNotBlank","initialNumber","numbered","oddOrEven","pagePosition","medium","contentArea","PageSet","duplexImposition","relation","pageArea","pageSet","Para","orphans","preserve","radixOffset","spaceAbove","spaceBelow","tabDefault","tabStops","textIndent","vAlign","widows","hyphenation","tabSize","hyphenatation","PasswordEdit","passwordChar","endColor","Picture","Proto","arc","barcode","bookend","breakAfter","breakBefore","button","checkButton","dateTimeEdit","defaultUi","imageEdit","numericEdit","overflow","passwordEdit","subjectDN","textEdit","traverse","variables","Radial","Reason","Reasons","Rectangle","RefElement","binding","SignData","Signature","Signing","Solid","Speak","disable","priority","Stipple","rate","bgColor","Subform","allowMacro","columnWidths","restoreState","scope","pageNumber","pageAreas","layoutClass","SubformSet","SubjectDN","delimiter","kv","SubjectDNs","Submit","embedPDF","textEncoding","xdpContent","baseProfile","maxChars","TextEdit","allowRichText","vScrollPolicy","Time","TimeStamp","server","ToolTip","Traversal","Traverse","Ui","Validate","formatTest","nullTest","scriptTest","valueName","Variables","newStyle","converters","transformOrigin","visibility","display","container","parseExpression","shortcuts","cacheName","isFinite","createNodes","somCache","dotDotAllowed","useCache","isQualified","acc","namePattern","indexPattern","host","dataWindow","WeakMap","formCalc","spos","_builder","Builder","_ids","_current","buildRoot","_whiteRegex","tagName","namespace","prefixes","attributeObj","nsAttrs","attributesObj","_mkAttributes","nsPrefix","_getNameAndPrefix","build","_setup","_unknown","Root","Empty","_namespaceStack","_namespacePrefixes","_nextNsId","_currentNamespace","UnknownNamespace","hasNamespaceDef","_searchNamespace","_addNamespacePrefix","dataTemplate","NamespaceSetUp","xfaAttrs","_getNamespaceToUse","namespaceToUse","hasNamespace","nsName","prefixStack","_config","_connection_set","_datasets","_locale_set","_signature","_stylesheet","_xdp","_xhtml","ConfigNamespace","ConnectionSetNamespace","DatasetsNamespace","LocaleSetNamespace","SignatureNamespace","StylesheetNamespace","XdpNamespace","XhtmlNamespace","CONFIG_NS_ID","Acrobat","acrobat7","autoSave","common","validateApprovalSignatures","submitUrl","Acrobat7","dynamicRender","ADBE_JSConsole","ADBE_JSDebugger","AddSilentPrint","AddViewerPreferences","AdjustData","AdobeExtensionLevel","Agent","AlwaysEmbed","Amd","Attributes","AutoSave","Base","BatchOutput","BehaviorOverride","Cache","templateCache","Change","Common","messaging","suppressBanner","validationMessaging","versionControl","Compress","CompressLogicalStructure","CompressObjectStream","Compression","compressLogicalStructure","compressObjectStream","Config","acrobat","present","trace","agent","Conformance","ContentCopy","Copies","CurrentPage","Data","adjustData","incrementalLoad","outputXSL","startNode","uri","xsl","excludeNS","Debug","DefaultTypeface","writingScript","Destination","DocumentAssembly","Driver","fontInfo","DuplexOption","DynamicRender","Embed","encryptionLevel","EncryptionLevel","Enforce","Equate","force","to","EquateRange","_unicodeRange","unicodeRange","unicodeRegex","Exclude","ExcludeNS","FlipLabel","FontInfo","embed","subsetBelow","alwaysEmbed","defaultTypeface","neverEmbed","FormFieldFilling","GroupParent","IfEmpty","IncludeXDPContent","IncrementalLoad","IncrementalMerge","Interactive","Jog","LabelPrinter","batchOutput","flipLabel","Layout","Level","Linearized","Locale","LocaleSet","Log","threshold","MapElement","equate","equateRange","MediumInfo","msgId","severity","Messaging","Mode","ModifyAnnots","MsgId","NameAttr","NeverEmbed","NumberOfCopies","OpenAction","destination","Output","OutputBin","OutputXSL","Overprint","Packets","PageOffset","PageRange","numbers","Pagination","PaginationOverride","Part","Pcl","jog","mediumInfo","outputBin","pageOffset","staple","Pdf","adobeExtensionLevel","compression","interactive","linearized","pdfa","producer","renderPolicy","scriptModel","silentPrint","submitFormat","tagged","viewerPreferences","Pdfa","amd","conformance","includeXDPContent","part","Permissions","accessibleContent","change","contentCopy","documentAssembly","formFieldFilling","modifyAnnots","plaintextMetadata","print","printHighQuality","PlaintextMetadata","Presence","Present","behaviorOverride","copies","incrementalMerge","overprint","pagination","paginationOverride","driver","labelPrinter","pcl","webClient","zpl","Print","PrintHighQuality","PrinterName","Ps","Range","Record","Relevant","Rename","RenderPolicy","RunScripts","currentPage","exclude","runScripts","ScriptModel","Severity","SilentPrint","addSilentPrint","printerName","Staple","StartNode","StartPage","SubmitFormat","SubmitUrl","SubsetBelow","SuppressBanner","Tagged","startPage","Threshold","To","TemplateCache","maxEntries","Trace","groupParent","ifEmpty","nameAttr","rename","whitespace","Uri","ValidateApprovalSignatures","ValidationMessaging","Version","VersionControl","outputBelow","sourceAbove","sourceBelow","ViewerPreferences","addViewerPreferences","duplexOption","enforce","numberOfCopies","pageRange","pickTrayByPDFSize","printScaling","WebClient","Whitespace","Window","Xdc","Xdp","packets","Xsl","debug","Zpl","CONNECTION_SET_NS_ID","ConnectionSet","wsdlConnection","xmlConnection","xsdConnection","EffectiveInputPolicy","EffectiveOutputPolicy","Operation","RootElement","SoapAction","SoapAddress","WsdlAddress","WsdlConnection","dataDescription","effectiveInputPolicy","effectiveOutputPolicy","soapAction","soapAddress","wsdlAddress","XmlConnection","XsdConnection","rootElement","DATASETS_NS_ID","Datasets","LOCALE_SET_NS_ID","CalendarSymbols","dayNames","eraNames","meridiemNames","monthNames","CurrencySymbol","CurrencySymbols","currencySymbol","DatePattern","DatePatterns","datePattern","DateTimeSymbols","Day","DayNames","abbr","day","Era","EraNames","era","calendarSymbols","currencySymbols","datePatterns","dateTimeSymbols","numberPatterns","numberSymbols","timePatterns","typeFaces","Meridiem","MeridiemNames","meridiem","Month","MonthNames","month","NumberPattern","NumberPatterns","numberPattern","NumberSymbol","NumberSymbols","numberSymbol","TimePattern","TimePatterns","timePattern","TypeFace","TypeFaces","typeFace","SIGNATURE_NS_ID","STYLESHEET_NS_ID","Stylesheet","XDP_NS_ID","uuid","XHTML_NS_ID","VALID_STYLES","checkStyle","Body","Br","Html","Li","Ol","Span","Sub","Sup","Ul","namespaceId","CallbackKind","StreamKind","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","_processStreamMessage","cbSourceName","cbTargetName","_createStreamSink","addEventListener","ah","_postMessage","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","pull","pullCapability","cancel","cancelCapability","isCancelled","lastDesiredSize","sinkCapability","success","_deleteStreamController","allSettled","removeEventListener","_msgHandler","_contentLength","_fullRequestReader","_rangeRequestReaders","PDFWorkerStreamReader","PDFWorkerStreamRangeReader","_isRangeSupported","_isStreamingSupported","readableStream","_reader","_headersReady","__webpack_module_cache__","moduleId","cachedModule","module","toStringTag","_worker","__webpack_require__"],"mappings":"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S,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,OAA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EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,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,IAdzB,GAcwC,CAAC,IAdzC,GAcwD,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,KAC53CC,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,CAAC,EAAG,IAAK,CAAC,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64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,GAAI,EACJ64C,EAAG,GACF,CACD74C,GAAI,EACJ64C,EAAG,GACF,CACD74C,GAAI,EACJ64C,EAAG,GACF,CACD74C,GAAI,EACJ64C,EAAG,IACD,CAAC,CACH74C,GAAI,EACJ64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,GAAI,EACJ64C,GAAI,GACH,CACD74C,GAAI,EACJ64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,GAAI,EACJ64C,EAAG,GACF,CACD74C,GAAI,EACJ64C,EAAG,GACF,CACD74C,GAAI,EACJ64C,EAAG,IACD,CAAC,CACH74C,GAAI,EACJ64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,GAAI,EACJ64C,GAAI,GACH,CACD74C,GAAI,EACJ64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,GAAI,EACJ64C,EAAG,GACF,CACD74C,GAAI,EACJ64C,EAAG,IACD,CAAC,CACH74C,GAAI,EACJ64C,GAAI,GACH,CACD74C,GAAI,EACJ64C,GAAI,GACH,CACD74C,GAAI,EACJ64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,EAAG,EACH64C,GAAI,GACH,CACD74C,GAAI,EACJ64C,EAAG,GACF,CACD74C,GAAI,EACJ64C,EAAG,GACF,CACD74C,GAAI,EACJ64C,EAAG,GACF,CACD74C,GAAI,EACJ64C,EAAG,KAEDC,EAAsB,CAAC,CACzBC,OAAQ,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NC,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,IA2Gdp0D,EAAQ0hD,kBAxGR,MACE,YAAY9/C,EAAMsJ,EAAO4hB,GACvB7rB,KAAKW,KAAOA,EACZX,KAAKozD,GAAKnpD,EACVjK,KAAKqzD,QAAUxnC,EACf7rB,KAAKszD,MAAQ3yD,EAAKsJ,GAClBjK,KAAKuzD,KAAO,EACZvzD,KAAKwzD,SACLxzD,KAAKszD,MAAQtzD,KAAKszD,OAAS,EAAI,MAAStzD,KAAKuzD,MAAQ,EAAI,IACzDvzD,KAAKuzD,KAAOvzD,KAAKuzD,MAAQ,EAAI,MAC7BvzD,KAAKyzD,IAAM,EACXzzD,KAAKkI,EAAI,MAGX,SACE,MAAMvH,EAAOX,KAAKW,KAClB,IAAIyyD,EAAKpzD,KAAKozD,GAEG,MAAbzyD,EAAKyyD,GACHzyD,EAAKyyD,EAAK,GAAK,KACjBpzD,KAAKuzD,MAAQ,MACbvzD,KAAKyzD,GAAK,IAEVL,IACApzD,KAAKuzD,MAAQ5yD,EAAKyyD,IAAO,EACzBpzD,KAAKyzD,GAAK,EACVzzD,KAAKozD,GAAKA,IAGZA,IACApzD,KAAKuzD,MAAQH,EAAKpzD,KAAKqzD,QAAU1yD,EAAKyyD,IAAO,EAAI,MACjDpzD,KAAKyzD,GAAK,EACVzzD,KAAKozD,GAAKA,GAGRpzD,KAAKuzD,KAAO,QACdvzD,KAAKszD,OAAStzD,KAAKuzD,MAAQ,GAC3BvzD,KAAKuzD,MAAQ,OAIjB,QAAQrT,EAAUtyC,GAChB,IAAI8lD,EAAWxT,EAAStyC,IAAQ,EAC5B+lD,EAAyB,EAAhBzT,EAAStyC,GACtB,MAAMgmD,EAAab,EAAQW,GACrBG,EAAQD,EAAWZ,GACzB,IAAIxtC,EACAtd,EAAIlI,KAAKkI,EAAI2rD,EAEjB,GAAI7zD,KAAKszD,MAAQO,EACX3rD,EAAI2rD,GACN3rD,EAAI2rD,EACJruC,EAAImuC,EACJD,EAAWE,EAAWX,OAEtB/qD,EAAI2rD,EACJruC,EAAI,EAAImuC,EAEsB,IAA1BC,EAAWT,aACbQ,EAASnuC,GAGXkuC,EAAWE,EAAWV,UAEnB,CAGL,GAFAlzD,KAAKszD,OAASO,EAEO,KAAZ,MAAJ3rD,GAEH,OADAlI,KAAKkI,EAAIA,EACFyrD,EAGLzrD,EAAI2rD,GACNruC,EAAI,EAAImuC,EAEsB,IAA1BC,EAAWT,aACbQ,EAASnuC,GAGXkuC,EAAWE,EAAWV,OAEtB1tC,EAAImuC,EACJD,EAAWE,EAAWX,MAI1B,GACkB,IAAZjzD,KAAKyzD,IACPzzD,KAAKwzD,SAGPtrD,IAAM,EACNlI,KAAKszD,MAAQtzD,KAAKszD,OAAS,EAAI,MAAStzD,KAAKuzD,MAAQ,GAAK,EAC1DvzD,KAAKuzD,KAAOvzD,KAAKuzD,MAAQ,EAAI,MAC7BvzD,KAAKyzD,WACmB,KAAZ,MAAJvrD,IAIV,OAFAlI,KAAKkI,EAAIA,EACTg4C,EAAStyC,GAAO8lD,GAAY,EAAIC,EACzBnuC,KASL,CAAE1mB,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAc,CAC3CI,OAAO,IAETJ,EAAQ2zC,gBAAa,EAErB,IAAIznB,EAAUjsB,EAAoB,IAE9BQ,EAAcR,EAAoB,GAElC80D,EAAO90D,EAAoB,IAE3BO,EAAQP,EAAoB,GAEhC,MAAM0zC,EAAa,WACjB,SAASA,EAAW1rC,EAAQgrC,EAAahoB,EAAMyd,GAC7C,IAAIxV,EAEJ,MAAoC,KAA5BA,EAAKjrB,EAAO2mB,YAClB,GAAW,MAAPsE,EAAa,CACfjrB,EAAOizB,MAAM,GACb,MAIJj6B,KAAKgH,OAASA,EACdhH,KAAKgyC,YAAcA,EACnBhyC,KAAKgqB,KAAOA,EACZhqB,KAAKynC,OAASA,EAEdxc,EAAQuqB,aAAaG,KAAK31C,KAAMgyC,GAkElC,OA/DAU,EAAWluB,UAAYvlB,OAAO2J,OAAOqiB,EAAQuqB,aAAahxB,WAC1DvlB,OAAOC,eAAewzC,EAAWluB,UAAW,QAAS,CACnDhe,IAAK,WACH,OAAO,EAAIjH,EAAMiT,QAAQxS,KAAM,QAASA,KAAKgH,OAAOkhB,SAASloB,KAAKgyC,eAEpE3tB,cAAc,IAGhBquB,EAAWluB,UAAU2xB,aAAe,SAAUC,KAE9C1D,EAAWluB,UAAU0xB,UAAY,WAC/B,GAAIl2C,KAAKg2C,IACP,OAGF,MAAM+d,EAAc,CAClBC,qBAAiB7lD,EACjB8lD,oBAAgB9lD,GAEZ+lD,EAAYl0D,KAAKgqB,KAAKqJ,SAAS,SAAU,KAE/C,GAAIrzB,KAAKm0D,UAAY3rD,MAAMC,QAAQyrD,GAAY,CAC7C,MAAME,EAAmBp0D,KAAKgqB,KAAKxjB,IAAI,qBAAuB,EACxD6tD,EAAkBH,EAAUryD,OAC5Bic,EAAY,IAAI24B,WAAW4d,GACjC,IAAIC,GAAkB,EACtB,MAAMC,GAAY,GAAKH,GAAoB,EAE3C,IAAK,IAAI3xD,EAAI,EAAGA,EAAI4xD,EAAiB5xD,GAAK,EACxCqb,EAAUrb,GAAyC,KAAnCyxD,EAAUzxD,EAAI,GAAKyxD,EAAUzxD,IAAY,EACzDqb,EAAUrb,EAAI,GAAKyxD,EAAUzxD,GAAK8xD,EAAW,EAExB,MAAjBz2C,EAAUrb,IAAmC,IAArBqb,EAAUrb,EAAI,KACxC6xD,GAAkB,GAIlBA,IACFP,EAAYC,gBAAkBl2C,GAIlC,IAAI,EAAIte,EAAYioB,QAAQznB,KAAKynC,QAAS,CACxC,MAAMwsB,EAAiBj0D,KAAKynC,OAAOjhC,IAAI,kBAEnC8L,OAAOC,UAAU0hD,KACnBF,EAAYE,eAAiBA,GAIjC,MAAMO,EAAY,IAAIV,EAAKW,UAAUV,GACrCS,EAAUh7B,MAAMx5B,KAAKiH,OACrB,MAAMtG,EAAO6zD,EAAUE,QAAQ,CAC7Br/B,MAAOr1B,KAAK20D,UACZr/B,OAAQt1B,KAAK40D,WACbT,SAAUn0D,KAAKm0D,SACfU,aAAa,IAEf70D,KAAKoP,OAASzO,EACdX,KAAK+1C,aAAep1C,EAAKkB,OACzB7B,KAAKg2C,KAAM,GAGNtD,EAlFU,GAqFnB3zC,EAAQ2zC,WAAaA,GAIf,CAAE5zC,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAc,CAC3CI,OAAO,IAETJ,EAAQ01D,eAAY,EAEpB,IAAIl1D,EAAQP,EAAoB,GAE5Bc,EAAcd,EAAoB,GAEtC,MAAM81D,UAAkBv1D,EAAMgV,cAC5B,YAAY1D,GACV4T,MAAM,eAAe5T,MAKzB,MAAMkkD,UAAuBx1D,EAAMgV,cACjC,YAAY7H,EAASsoD,GACnBvwC,MAAM/X,GACN1M,KAAKg1D,UAAYA,GAKrB,MAAMC,UAAuB11D,EAAMgV,eAEnC,IAAIkgD,EAAY,WACd,IAAIS,EAAY,IAAIt0D,WAAW,CAAC,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAC9Qu0D,EAAU,KACVC,EAAU,IACVC,EAAU,KACVC,EAAU,KACVC,EAAU,KACVC,EAAU,KACVC,EAAW,KACXC,EAAa,KAEjB,SAASjB,GAAU,gBACjBT,EAAkB,KAAI,eACtBC,GAAiB,GACf,IACFj0D,KAAK21D,iBAAmB3B,EACxBh0D,KAAK41D,gBAAkB3B,EAGzB,SAAS4B,EAAkBpd,EAAalvB,GAOtC,IANA,IAEI9mB,EACAy2B,EAHA2f,EAAI,EACJ3sC,EAAO,GAGPrK,EAAS,GAENA,EAAS,IAAM42C,EAAY52C,EAAS,IACzCA,IAGFqK,EAAKtK,KAAK,CACRmqD,SAAU,GACV9W,MAAO,IAET,IACI8G,EADAz2B,EAAIpZ,EAAK,GAGb,IAAKzJ,EAAI,EAAGA,EAAIZ,EAAQY,IAAK,CAC3B,IAAKy2B,EAAI,EAAGA,EAAIuf,EAAYh2C,GAAIy2B,IAAK,CAInC,KAHA5T,EAAIpZ,EAAK+6B,OACP8kB,SAASzmC,EAAE2vB,OAAS1rB,EAAOsvB,GAEtBvzB,EAAE2vB,MAAQ,GACf3vB,EAAIpZ,EAAK+6B,MAMX,IAHA3hB,EAAE2vB,QACF/oC,EAAKtK,KAAK0jB,GAEHpZ,EAAKrK,QAAUY,GACpByJ,EAAKtK,KAAKm6C,EAAI,CACZgQ,SAAU,GACV9W,MAAO,IAET3vB,EAAEymC,SAASzmC,EAAE2vB,OAAS8G,EAAEgQ,SACxBzmC,EAAIy2B,EAGNlD,IAGEp2C,EAAI,EAAIZ,IACVqK,EAAKtK,KAAKm6C,EAAI,CACZgQ,SAAU,GACV9W,MAAO,IAET3vB,EAAEymC,SAASzmC,EAAE2vB,OAAS8G,EAAEgQ,SACxBzmC,EAAIy2B,GAIR,OAAO7vC,EAAK,GAAG6/C,SAGjB,SAAS+J,EAAqBvjC,EAAWyrB,EAAK+X,GAC5C,OAAO,KAAOxjC,EAAUyjC,cAAgB,GAAKhY,EAAM+X,GAGrD,SAASE,EAAWt1D,EAAM+xB,EAAQwjC,EAAOC,EAAYC,EAAeC,EAAeC,EAAaC,EAAgBC,EAAYC,GAAiB,GAC3I,IAAIC,EAAcR,EAAMQ,YACpBC,EAAcT,EAAMS,YACxB,MAAMC,EAAclkC,EACpB,IAAImkC,EAAW,EACXC,EAAY,EAEhB,SAASxW,IACP,GAAIwW,EAAY,EAEd,OADAA,IACOD,GAAYC,EAAY,EAKjC,GAFAD,EAAWl2D,EAAK+xB,KAEC,MAAbmkC,EAAmB,CACrB,IAAIE,EAAWp2D,EAAK+xB,KAEpB,GAAIqkC,EAAU,CACZ,GAAiB,MAAbA,GAAqBN,EAAgB,CACvC/jC,GAAU,EACV,MAAMsiC,GAAY,EAAIl1D,EAAY6yB,YAAYhyB,EAAM+xB,GAGpD,GAFAA,GAAU,EAENsiC,EAAY,GAAKA,IAAckB,EAAMlB,UACvC,MAAM,IAAID,EAAe,oDAAqDC,QAE3E,GAAiB,MAAb+B,EAAmB,CAC5B,GAAIN,EAAgB,CAClB,MAAMO,EAAiBC,GAAgC,IAApBf,EAAMgB,UAAkB,EAAI,GAE/D,GAAIF,EAAiB,GAAKvxD,KAAK0xD,MAAMjB,EAAMlB,UAAYgC,IAAmB,GACxE,MAAM,IAAIjC,EAAe,wGAA8GiC,GAI3I,MAAM,IAAI/B,EAAe,qDAG3B,MAAM,IAAIH,EAAU,sBAAsB+B,GAAY,EAAIE,GAAUpqD,SAAS,QAKjF,OADAmqD,EAAY,EACLD,IAAa,EAGtB,SAASO,EAAcC,GAGrB,IAFA,IAAIhwB,EAAOgwB,IAEE,CAGX,cAFAhwB,EAAOA,EAAKiZ,OAGV,IAAK,SACH,OAAOjZ,EAET,IAAK,SACH,SAGJ,MAAM,IAAIytB,EAAU,6BAIxB,SAASwC,EAAQz1D,GAGf,IAFA,IAAIojB,EAAI,EAEDpjB,EAAS,GACdojB,EAAIA,GAAK,EAAIq7B,IACbz+C,IAGF,OAAOojB,EAGT,SAASsyC,EAAiB11D,GACxB,GAAe,IAAXA,EACF,OAAqB,IAAdy+C,IAAkB,GAAK,EAGhC,IAAIr7B,EAAIqyC,EAAQz1D,GAEhB,OAAIojB,GAAK,GAAKpjB,EAAS,EACdojB,EAGFA,IAAM,GAAKpjB,GAAU,EAwC9B,IAkCI21D,EAlCAC,EAAS,EAiCTC,EAAoB,EAmFxB,IAAIT,EAAW,EAEf,SAASU,EAAUplC,EAAW+yB,EAAQsS,EAAK5Z,EAAK+X,GAC9C,IACI8B,EAASD,EAAMlB,EACnBO,GAFaW,EAAMlB,EAAc,GAEbnkC,EAAUthB,EAAI+sC,EAClC,IAAI8Z,EAAWD,EAAStlC,EAAUwlC,EAAIhC,EAEtCzQ,EAAO/yB,EADaujC,EAAqBvjC,EAAW0kC,EAAUa,IAIhE,SAASE,EAAYzlC,EAAW+yB,EAAQsS,GACtCX,EAAWW,EAAMrlC,EAAUyjC,cAAgB,EAC3C,IAAI8B,EAAWF,EAAMrlC,EAAUyjC,cAE/B1Q,EAAO/yB,EADaujC,EAAqBvjC,EAAW0kC,EAAUa,IAIhE,IACIvlC,EAAW9vB,EAAGy2B,EAAG2f,EAAG5zB,EACpBgzC,EAFAC,EAAmB/B,EAAWt0D,OAM9Bo2D,EAFAtB,EACoB,IAAlBN,EAC4B,IAAnBE,EAtJf,SAAuBhkC,EAAW4lC,GAChC,IAAIrgB,EAAIsf,EAAc7kC,EAAU6lC,gBAC5BC,EAAa,IAANvgB,EAAU,EAAIyf,EAAiBzf,IAAM0e,EAChDjkC,EAAU+lC,UAAUH,GAAe5lC,EAAUgmC,MAAQF,GAGvD,SAA4B9lC,EAAW4lC,GACrC5lC,EAAU+lC,UAAUH,IAAgB7X,KAAakW,GAiJjB,IAAnBD,EA5If,SAAuBhkC,EAAW4lC,GAChC,GAAIV,EAAS,EACXA,SAOF,IAHA,IAAI5e,EAAIwd,EACJzwD,EAAI0wD,EAEDzd,GAAKjzC,GAAG,CACb,IAAI4yD,EAAKpB,EAAc7kC,EAAUkmC,gBAC7Bz0B,EAAS,GAALw0B,EACJtzC,EAAIszC,GAAM,EAEd,GAAU,IAANx0B,EAAJ,CAWA,IAAI00B,EAAIxD,EADRrc,GAAK3zB,GAELqN,EAAU+lC,UAAUH,EAAcO,GAAKnB,EAAiBvzB,IAAM,GAAKwyB,GACnE3d,QAbA,CACE,GAAI3zB,EAAI,GAAI,CACVuyC,EAASH,EAAQpyC,IAAM,GAAKA,GAAK,EACjC,MAGF2zB,GAAK,MAcX,SAA4BtmB,EAAW4lC,GAOrC,IANA,IAGIn0B,EACAw0B,EAJA3f,EAAIwd,EACJzwD,EAAI0wD,EACJpxC,EAAI,EAID2zB,GAAKjzC,GAAG,CACb,MAAM+yD,EAAUR,EAAcjD,EAAUrc,GAClCtF,EAAOhhB,EAAU+lC,UAAUK,GAAW,GAAK,EAAI,EAErD,OAAQjB,GACN,KAAK,EAKH,GAFAxyC,GAFAszC,EAAKpB,EAAc7kC,EAAUkmC,kBAEnB,EAEA,KAHVz0B,EAAS,GAALw0B,GAIEtzC,EAAI,IACNuyC,EAASH,EAAQpyC,IAAM,GAAKA,GAC5BwyC,EAAoB,IAEpBxyC,EAAI,GACJwyC,EAAoB,OAEjB,CACL,GAAU,IAAN1zB,EACF,MAAM,IAAI8wB,EAAU,wBAGtB0C,EAAwBD,EAAiBvzB,GACzC0zB,EAAoBxyC,EAAI,EAAI,EAG9B,SAEF,KAAK,EACL,KAAK,EACCqN,EAAU+lC,UAAUK,GACtBpmC,EAAU+lC,UAAUK,IAAYplB,GAAQ+M,KAAakW,GAI3C,MAFVtxC,IAGEwyC,EAA0C,IAAtBA,EAA0B,EAAI,GAItD,MAEF,KAAK,EACCnlC,EAAU+lC,UAAUK,GACtBpmC,EAAU+lC,UAAUK,IAAYplB,GAAQ+M,KAAakW,IAErDjkC,EAAU+lC,UAAUK,GAAWnB,GAAyBhB,EACxDkB,EAAoB,GAGtB,MAEF,KAAK,EACCnlC,EAAU+lC,UAAUK,KACtBpmC,EAAU+lC,UAAUK,IAAYplB,GAAQ+M,KAAakW,IAM3D3d,IAGwB,IAAtB6e,GAGa,MAFfD,IAGEC,EAAoB,IApJ1B,SAAwBnlC,EAAW4lC,GACjC,IAAIrgB,EAAIsf,EAAc7kC,EAAU6lC,gBAC5BC,EAAa,IAANvgB,EAAU,EAAIyf,EAAiBzf,GAC1CvlB,EAAU+lC,UAAUH,GAAe5lC,EAAUgmC,MAAQF,EAGrD,IAFA,IAAIxf,EAAI,EAEDA,EAAI,IAAI,CACb,IAAI2f,EAAKpB,EAAc7kC,EAAUkmC,gBAC7Bz0B,EAAS,GAALw0B,EACJtzC,EAAIszC,GAAM,EAEd,GAAU,IAANx0B,EAAJ,CAUA,IAAI00B,EAAIxD,EADRrc,GAAK3zB,GAELqN,EAAU+lC,UAAUH,EAAcO,GAAKnB,EAAiBvzB,GACxD6U,QAZA,CACE,GAAI3zB,EAAI,GACN,MAGF2zB,GAAK,MAyKX,IACI+f,EACAC,EAQAd,EAAG9mD,EAVH2mD,EAAM,EAYV,IAPEiB,EADuB,IAArBX,EACY/B,EAAW,GAAGH,cAAgBG,EAAW,GAAG2C,gBAE5CpC,EAAcR,EAAM6C,cAK7BnB,GAAOiB,GAAa,CACzB,IAAIG,EAAY5C,EAAgB3wD,KAAKiJ,IAAImqD,EAAcjB,EAAKxB,GAAiByC,EAE7E,GAAIG,EAAY,EAAG,CACjB,IAAKv2D,EAAI,EAAGA,EAAIy1D,EAAkBz1D,IAChC0zD,EAAW1zD,GAAG81D,KAAO,EAKvB,GAFAd,EAAS,EAEgB,IAArBS,EAGF,IAFA3lC,EAAY4jC,EAAW,GAElBlxC,EAAI,EAAGA,EAAI+zC,EAAW/zC,IACzB+yC,EAAYzlC,EAAW0lC,EAAUL,GACjCA,SAGF,IAAK3yC,EAAI,EAAGA,EAAI+zC,EAAW/zC,IAAK,CAC9B,IAAKxiB,EAAI,EAAGA,EAAIy1D,EAAkBz1D,IAKhC,IAHAs1D,GADAxlC,EAAY4jC,EAAW1zD,IACTs1D,EACd9mD,EAAIshB,EAAUthB,EAETioB,EAAI,EAAGA,EAAIjoB,EAAGioB,IACjB,IAAK2f,EAAI,EAAGA,EAAIkf,EAAGlf,IACjB8e,EAAUplC,EAAW0lC,EAAUL,EAAK1+B,EAAG2f,GAK7C+e,KAQN,GAHAd,EAAY,IACZ8B,EAAaK,EAAmBt4D,EAAM+xB,IAGpC,MAGF,GAAIkmC,EAAWM,QAAS,CACtB,MAAMC,EAAaH,EAAY,EAAI,aAAe,aAClD,EAAIz5D,EAAM8F,MAAM,gBAAgB8zD,kCAA2CP,EAAWM,WACtFxmC,EAASkmC,EAAWlmC,OAGtB,KAAIkmC,EAAWQ,QAAU,OAAUR,EAAWQ,QAAU,OAGtD,MAFA1mC,GAAU,EAMd,OAAOA,EAASkkC,EAGlB,SAASyC,EAAmB9mC,EAAW+mC,EAAmBh0C,GACxD,IAEIi0C,EAAIxxC,EAAIC,EAAIwxC,EAAIC,EAAIC,EAAIC,EAAIC,EAC5BC,EAAIp0C,EAAIE,EAAIE,EAAIC,EAAIg0C,EAAIC,EAAIC,EAC5BliB,EAJAmiB,EAAK1nC,EAAU2nC,kBACf5B,EAAY/lC,EAAU+lC,UAK1B,IAAK2B,EACH,MAAM,IAAInF,EAAU,wCAGtB,IAAK,IAAI9W,EAAM,EAAGA,EAAM,GAAIA,GAAO,EACjC6b,EAAKvB,EAAUgB,EAAoBtb,GACnCv4B,EAAK6yC,EAAUgB,EAAoBtb,EAAM,GACzCr4B,EAAK2yC,EAAUgB,EAAoBtb,EAAM,GACzCn4B,EAAKyyC,EAAUgB,EAAoBtb,EAAM,GACzCl4B,EAAKwyC,EAAUgB,EAAoBtb,EAAM,GACzC8b,EAAKxB,EAAUgB,EAAoBtb,EAAM,GACzC+b,EAAKzB,EAAUgB,EAAoBtb,EAAM,GACzCgc,EAAK1B,EAAUgB,EAAoBtb,EAAM,GACzC6b,GAAMI,EAAGjc,GAEkC,KAAtCv4B,EAAKE,EAAKE,EAAKC,EAAKg0C,EAAKC,EAAKC,IAanCv0C,GAAMw0C,EAAGjc,EAAM,GACfr4B,GAAMs0C,EAAGjc,EAAM,GACfn4B,GAAMo0C,EAAGjc,EAAM,GACfl4B,GAAMm0C,EAAGjc,EAAM,GACf8b,GAAMG,EAAGjc,EAAM,GACf+b,GAAME,EAAGjc,EAAM,GACfgc,GAAMC,EAAGjc,EAAM,GAUfj2B,GADAwxC,GARAA,EAAK9D,EAAWoE,EAAK,KAAO,IAC5B9xC,EAAK0tC,EAAW3vC,EAAK,KAAO,GAOb,GAAK,GACViC,EACV+vB,GARA9vB,EAAKrC,GAQI6vC,GAPTgE,EAAKO,GAOmBxE,EAAU,KAAO,EACzCvtC,EAAKA,EAAKutC,EAAUiE,EAAKhE,EAAU,KAAO,EAG1CmE,GADAF,GATAA,EAAK/D,GAAcjwC,EAAKu0C,GAAM,KAAO,IAGrCL,EAAKG,GAAM,GAMI,GAAK,GACVH,EAEVD,GADAE,GAVAA,EAAKlE,GAAcjwC,EAAKu0C,GAAM,KAAO,IACrCN,EAAK7zC,GAAM,GASI,GAAK,GACV6zC,EAEVF,GADAD,EAAKA,GALLC,EAAK1hB,GAKU,GAAK,GACV0hB,EAEVxxC,GADAD,EAAKA,EAAKC,EAAK,GAAK,GACVA,EACV8vB,EAAI2hB,EAAKnE,EAAUsE,EAAKvE,EAAU,MAAQ,GAC1CoE,EAAKA,EAAKpE,EAAUuE,EAAKtE,EAAU,MAAQ,GAC3CsE,EAAK9hB,EACLA,EAAI4hB,EAAKtE,EAAUuE,EAAKxE,EAAU,MAAQ,GAC1CuE,EAAKA,EAAKvE,EAAUwE,EAAKvE,EAAU,MAAQ,GAC3CuE,EAAK7hB,EACLxyB,EAAE04B,GAAOub,EAAKK,EACdt0C,EAAE04B,EAAM,GAAKub,EAAKK,EAClBt0C,EAAE04B,EAAM,GAAKj2B,EAAK4xC,EAClBr0C,EAAE04B,EAAM,GAAKj2B,EAAK4xC,EAClBr0C,EAAE04B,EAAM,GAAKh2B,EAAK0xC,EAClBp0C,EAAE04B,EAAM,GAAKh2B,EAAK0xC,EAClBp0C,EAAE04B,EAAM,GAAKwb,EAAKC,EAClBn0C,EAAE04B,EAAM,GAAKwb,EAAKC,IArDhB3hB,EAAI2d,EAAWoE,EAAK,KAAO,GAC3Bv0C,EAAE04B,GAAOlG,EACTxyB,EAAE04B,EAAM,GAAKlG,EACbxyB,EAAE04B,EAAM,GAAKlG,EACbxyB,EAAE04B,EAAM,GAAKlG,EACbxyB,EAAE04B,EAAM,GAAKlG,EACbxyB,EAAE04B,EAAM,GAAKlG,EACbxyB,EAAE04B,EAAM,GAAKlG,EACbxyB,EAAE04B,EAAM,GAAKlG,GAgDjB,IAAK,IAAIie,EAAM,EAAGA,EAAM,IAAKA,EAC3B8D,EAAKv0C,EAAEywC,GASoC,MAR3CtwC,EAAKH,EAAEywC,EAAM,KACbpwC,EAAKL,EAAEywC,EAAM,MACblwC,EAAKP,EAAEywC,EAAM,MACbjwC,EAAKR,EAAEywC,EAAM,MACb+D,EAAKx0C,EAAEywC,EAAM,MACbgE,EAAKz0C,EAAEywC,EAAM,MACbiE,EAAK10C,EAAEywC,EAAM,OAiCbhuC,GADAwxC,EAA0B,OAR1BA,EAAK9D,EAAWoE,EAAK,MAAQ,KAC7B9xC,EAAK0tC,EAAW3vC,EAAK,MAAQ,IAOb,GAAK,IACXiC,EACV+vB,GARA9vB,EAAKrC,GAQI6vC,GAPTgE,EAAKO,GAOmBxE,EAAU,MAAQ,GAC1CvtC,EAAKA,EAAKutC,EAAUiE,EAAKhE,EAAU,MAAQ,GAC3CgE,EAAK1hB,EAEL6hB,GADAF,GATAA,EAAK/D,GAAcjwC,EAAKu0C,GAAM,MAAQ,KAGtCL,EAAKG,GAMU,GAAK,GACVH,EAEVD,GADAE,GAVAA,EAAKlE,GAAcjwC,EAAKu0C,GAAM,MAAQ,KACtCN,EAAK7zC,GASU,GAAK,GACV6zC,EAKV5hB,EAAI2hB,EAAKnE,EAAUsE,EAAKvE,EAAU,MAAQ,GAC1CoE,EAAKA,EAAKpE,EAAUuE,EAAKtE,EAAU,MAAQ,GAC3CsE,EAAK9hB,EACLA,EAAI4hB,EAAKtE,EAAUuE,EAAKxE,EAAU,MAAQ,GAC1CuE,EAAKA,EAAKvE,EAAUwE,EAAKvE,EAAU,MAAQ,IAE3CyE,GAVAN,EAAKA,EAAKC,EAAK,GAAK,GAUVI,GASD,GACPC,EAAK,EACIA,GAAM,KACfA,EAAK,IAELA,IAAO,GAZTp0C,GAVAsC,EAAKA,EAAKC,EAAK,GAAK,IAOpB2xC,EAAK7hB,IAkBI,GACPryB,EAAK,EACIA,GAAM,KACfA,EAAK,IAELA,IAAO,GAlBTE,GAXAqC,EAAKD,EAAKC,GAWA0xC,GAqBD,GACP/zC,EAAK,EACIA,GAAM,KACfA,EAAK,IAELA,IAAO,GAxBTE,GAfA2zC,EAAKD,EAAKC,GAeAC,GA2BD,GACP5zC,EAAK,EACIA,GAAM,KACfA,EAAK,IAELA,IAAO,GA/BTC,EAAK0zC,EAAKC,GAkCD,GACP3zC,EAAK,EACIA,GAAM,KACfA,EAAK,IAELA,IAAO,GAzCTg0C,EAAK9xC,EAAK0xC,GA4CD,GACPI,EAAK,EACIA,GAAM,KACfA,EAAK,IAELA,IAAO,GAnDTC,EAAKhyC,EAAK4xC,GAsDD,GACPI,EAAK,EACIA,GAAM,KACfA,EAAK,IAELA,IAAO,GA7DTC,EAAKT,EAAKK,GAgED,GACPI,EAAK,EACIA,GAAM,KACfA,EAAK,IAELA,IAAO,EAGT1B,EAAUgB,EAAoBvD,GAAO8D,EACrCvB,EAAUgB,EAAoBvD,EAAM,GAAKtwC,EACzC6yC,EAAUgB,EAAoBvD,EAAM,IAAMpwC,EAC1C2yC,EAAUgB,EAAoBvD,EAAM,IAAMlwC,EAC1CyyC,EAAUgB,EAAoBvD,EAAM,IAAMjwC,EAC1CwyC,EAAUgB,EAAoBvD,EAAM,IAAM+D,EAC1CxB,EAAUgB,EAAoBvD,EAAM,IAAMgE,EAC1CzB,EAAUgB,EAAoBvD,EAAM,IAAMiE,IA7HtCliB,GAHFA,EAAI2d,EAAWoE,EAAK,MAAQ,KAEnB,KACH,EACK/hB,GAAK,KACV,IAEAA,EAAI,MAAQ,EAGlBwgB,EAAUgB,EAAoBvD,GAAOje,EACrCwgB,EAAUgB,EAAoBvD,EAAM,GAAKje,EACzCwgB,EAAUgB,EAAoBvD,EAAM,IAAMje,EAC1CwgB,EAAUgB,EAAoBvD,EAAM,IAAMje,EAC1CwgB,EAAUgB,EAAoBvD,EAAM,IAAMje,EAC1CwgB,EAAUgB,EAAoBvD,EAAM,IAAMje,EAC1CwgB,EAAUgB,EAAoBvD,EAAM,IAAMje,EAC1CwgB,EAAUgB,EAAoBvD,EAAM,IAAMje,GAmHhD,SAASqiB,EAAmBjE,EAAO3jC,GAKjC,IAJA,IAAIyjC,EAAgBzjC,EAAUyjC,cAC1B8C,EAAkBvmC,EAAUumC,gBAC5BsB,EAAoB,IAAIC,WAAW,IAE9BpD,EAAW,EAAGA,EAAW6B,EAAiB7B,IACjD,IAAK,IAAIa,EAAW,EAAGA,EAAW9B,EAAe8B,IAE/CuB,EAAmB9mC,EADNujC,EAAqBvjC,EAAW0kC,EAAUa,GACjBsC,GAI1C,OAAO7nC,EAAU+lC,UAGnB,SAASW,EAAmBt4D,EAAM25D,EAAYzuB,EAAWyuB,GACvD,MAAMC,EAAS55D,EAAKkB,OAAS,EAC7B,IAAI24D,EAAS3uB,EAAWyuB,EAAazuB,EAAWyuB,EAEhD,GAAIA,GAAcC,EAChB,OAAO,KAGT,IAAIE,GAAgB,EAAI36D,EAAY6yB,YAAYhyB,EAAM25D,GAEtD,GAAIG,GAAiB,OAAUA,GAAiB,MAC9C,MAAO,CACLvB,QAAS,KACTE,OAAQqB,EACR/nC,OAAQ4nC,GAMZ,IAFA,IAAII,GAAY,EAAI56D,EAAY6yB,YAAYhyB,EAAM65D,KAEzCE,GAAa,OAAUA,GAAa,QAAS,CACpD,KAAMF,GAAUD,EACd,OAAO,KAGTG,GAAY,EAAI56D,EAAY6yB,YAAYhyB,EAAM65D,GAGhD,MAAO,CACLtB,QAASuB,EAAc9tD,SAAS,IAChCysD,OAAQsB,EACRhoC,OAAQ8nC,GAogBZ,OAhgBA/F,EAAUjwC,UAAY,CACpB,MAAM7jB,GAAM,aACVg6D,EAAe,MACb,IACF,SAASC,IACP,MAAM/4D,GAAS,EAAI/B,EAAY6yB,YAAYhyB,EAAM+xB,GAEjD,IAAIyd,GADJzd,GAAU,GACe7wB,EAAS,EAClC,IAAI+2D,EAAaK,EAAmBt4D,EAAMwvC,EAAWzd,GAEjDkmC,GAAcA,EAAWM,WAC3B,EAAI35D,EAAM8F,MAAM,wDAA0DuzD,EAAWM,SACrF/oB,EAAYyoB,EAAWlmC,QAGzB,IAAIgd,EAAQ/uC,EAAKiO,SAAS8jB,EAAQyd,GAElC,OADAzd,GAAUgd,EAAM7tC,OACT6tC,EAGT,SAASmrB,EAAkB3E,GAIzB,IAHA,IAAIQ,EAAcjxD,KAAKsnB,KAAKmpC,EAAM4E,eAAiB,EAAI5E,EAAM6E,MACzDhC,EAAgBtzD,KAAKsnB,KAAKmpC,EAAMlB,UAAY,EAAIkB,EAAM8E,MAEjDv4D,EAAI,EAAGA,EAAIyzD,EAAMC,WAAWt0D,OAAQY,IAAK,CAChD8vB,EAAY2jC,EAAMC,WAAW1zD,GAC7B,IAAIuzD,EAAgBvwD,KAAKsnB,KAAKtnB,KAAKsnB,KAAKmpC,EAAM4E,eAAiB,GAAKvoC,EAAUwlC,EAAI7B,EAAM6E,MACpFjC,EAAkBrzD,KAAKsnB,KAAKtnB,KAAKsnB,KAAKmpC,EAAMlB,UAAY,GAAKziC,EAAUthB,EAAIilD,EAAM8E,MACjFC,EAAsBvE,EAAcnkC,EAAUwlC,EAE9CmD,EADwBnC,EAAgBxmC,EAAUthB,EAC/B,IAA8BgqD,EAAsB,GAC3E1oC,EAAU+lC,UAAY,IAAI+B,WAAWa,GACrC3oC,EAAUyjC,cAAgBA,EAC1BzjC,EAAUumC,gBAAkBA,EAG9B5C,EAAMQ,YAAcA,EACpBR,EAAM6C,cAAgBA,EAGxB,IAGI7C,EAAOE,EAHP1jC,EAAS,EACTyoC,EAAO,KACPC,EAAQ,KAEZ,IAAIC,EAAgB,EACpB,IAAIC,EAAqB,GACrBC,EAAkB,GAClBC,EAAkB,GACtB,IAAI5C,GAAa,EAAI94D,EAAY6yB,YAAYhyB,EAAM+xB,GAGnD,GAFAA,GAAU,EAES,QAAfkmC,EACF,MAAM,IAAI9D,EAAU,iBAGtB8D,GAAa,EAAI94D,EAAY6yB,YAAYhyB,EAAM+xB,GAC/CA,GAAU,EAEV+oC,EAAY,KAAsB,QAAf7C,GAAuB,CACxC,IAAIn2D,EAAGy2B,EAAGyU,EAEV,OAAQirB,GACN,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACH,IAAI8C,EAAUd,IAEK,QAAfhC,GACiB,KAAf8C,EAAQ,IAA8B,KAAfA,EAAQ,IAA8B,KAAfA,EAAQ,IAA8B,KAAfA,EAAQ,IAA8B,IAAfA,EAAQ,KACtGP,EAAO,CACLzhC,QAAS,CACPiiC,MAAOD,EAAQ,GACfE,MAAOF,EAAQ,IAEjBG,aAAcH,EAAQ,GACtBI,SAAUJ,EAAQ,IAAM,EAAIA,EAAQ,GACpCK,SAAUL,EAAQ,KAAO,EAAIA,EAAQ,IACrCM,WAAYN,EAAQ,IACpBO,YAAaP,EAAQ,IACrBQ,UAAWR,EAAQ9sD,SAAS,GAAI,GAAK,EAAI8sD,EAAQ,IAAMA,EAAQ,OAKlD,QAAf9C,GACiB,KAAf8C,EAAQ,IAA8B,MAAfA,EAAQ,IAA8B,MAAfA,EAAQ,IAA8B,KAAfA,EAAQ,IAA8B,MAAfA,EAAQ,KACtGN,EAAQ,CACN1hC,QAASgiC,EAAQ,IAAM,EAAIA,EAAQ,GACnCS,OAAQT,EAAQ,IAAM,EAAIA,EAAQ,GAClCU,OAAQV,EAAQ,IAAM,EAAIA,EAAQ,IAClCW,cAAeX,EAAQ,MAK7B,MAEF,KAAK,MAMH,IAHA,IAAIY,GAF6B,EAAIx8D,EAAY6yB,YAAYhyB,EAAM+xB,IACnEA,GAAU,GACsD,EAGzDA,EAAS4pC,GAAuB,CACrC,IAAIC,EAAwB57D,EAAK+xB,KAC7B8pC,EAAY,IAAI/gB,YAAY,IAEhC,GAAI8gB,GAAyB,IAAM,EACjC,IAAKrjC,EAAI,EAAGA,EAAI,GAAIA,IAElBsjC,EADItH,EAAUh8B,IACCv4B,EAAK+xB,SAEjB,IAAI6pC,GAAyB,IAAM,EAOxC,MAAM,IAAIzH,EAAU,4BANpB,IAAK57B,EAAI,EAAGA,EAAI,GAAIA,IAElBsjC,EADItH,EAAUh8B,KACC,EAAIp5B,EAAY6yB,YAAYhyB,EAAM+xB,GACjDA,GAAU,EAMd4oC,EAA2C,GAAxBiB,GAA8BC,EAGnD,MAEF,KAAK,MACL,KAAK,MACL,KAAK,MACH,GAAItG,EACF,MAAM,IAAIpB,EAAU,qCAGtBpiC,GAAU,GACVwjC,EAAQ,IACFuG,SAA0B,QAAf7D,EACjB1C,EAAMS,YAA6B,QAAfiC,EACpB1C,EAAMgB,UAAYv2D,EAAK+xB,KACvB,MAAMgqC,GAAe,EAAI58D,EAAY6yB,YAAYhyB,EAAM+xB,GACvDA,GAAU,EACVwjC,EAAMlB,UAAY2F,GAAgB+B,EAClCxG,EAAM4E,gBAAiB,EAAIh7D,EAAY6yB,YAAYhyB,EAAM+xB,GACzDA,GAAU,EACVwjC,EAAMC,WAAa,GACnBD,EAAMyG,aAAe,GACrB,IACIC,EADAC,EAAkBl8D,EAAK+xB,KAEvBqoC,EAAO,EACPC,EAAO,EAEX,IAAKv4D,EAAI,EAAGA,EAAIo6D,EAAiBp6D,IAAK,CACpCm6D,EAAcj8D,EAAK+xB,GACnB,IAAIqlC,EAAIp3D,EAAK+xB,EAAS,IAAM,EACxBzhB,EAAuB,GAAnBtQ,EAAK+xB,EAAS,GAElBqoC,EAAOhD,IACTgD,EAAOhD,GAGLiD,EAAO/pD,IACT+pD,EAAO/pD,GAGT,IAAI6rD,EAAMn8D,EAAK+xB,EAAS,GACxBib,EAAIuoB,EAAMC,WAAWv0D,KAAK,CACxBm2D,IACA9mD,IACA8rD,eAAgBD,EAChB5C,kBAAmB,OAErBhE,EAAMyG,aAAaC,GAAejvB,EAAI,EACtCjb,GAAU,EAGZwjC,EAAM6E,KAAOA,EACb7E,EAAM8E,KAAOA,EACbH,EAAkB3E,GAClB,MAEF,KAAK,MACH,MAAM8G,GAAgB,EAAIl9D,EAAY6yB,YAAYhyB,EAAM+xB,GAGxD,IAFAA,GAAU,EAELjwB,EAAI,EAAGA,EAAIu6D,GAAgB,CAC9B,IAAIC,EAAmBt8D,EAAK+xB,KACxB+lB,EAAc,IAAI73C,WAAW,IAC7Bs8D,EAAgB,EAEpB,IAAKhkC,EAAI,EAAGA,EAAI,GAAIA,IAAKxG,IACvBwqC,GAAiBzkB,EAAYvf,GAAKv4B,EAAK+xB,GAGzC,IAAIyqC,EAAgB,IAAIv8D,WAAWs8D,GAEnC,IAAKhkC,EAAI,EAAGA,EAAIgkC,EAAehkC,IAAKxG,IAClCyqC,EAAcjkC,GAAKv4B,EAAK+xB,GAG1BjwB,GAAK,GAAKy6D,GACTD,GAAoB,IAAM,EAAIzB,EAAkBD,GAAoC,GAAnB0B,GAAyBpH,EAAkBpd,EAAa0kB,GAG5H,MAEF,KAAK,MACHzqC,GAAU,EACV0jC,GAAgB,EAAIt2D,EAAY6yB,YAAYhyB,EAAM+xB,GAClDA,GAAU,EACV,MAEF,KAAK,MACH,MAAM+jC,EAAqC,MAAlB4E,IAAwBV,EACjDjoC,GAAU,EACV,IAEIH,EAFA6qC,EAAiBz8D,EAAK+xB,KACtByjC,EAAa,GAGjB,IAAK1zD,EAAI,EAAGA,EAAI26D,EAAgB36D,IAAK,CACnC,MAAMwyC,EAAQt0C,EAAK+xB,KACnB,IAAI2qC,EAAiBnH,EAAMyG,aAAa1nB,IACxC1iB,EAAY2jC,EAAMC,WAAWkH,IACnBpoB,MAAQA,EAClB,IAAIqoB,EAAY38D,EAAK+xB,KACrBH,EAAU6lC,eAAiBoD,EAAgB8B,GAAa,GACxD/qC,EAAUkmC,eAAiB8C,EAA4B,GAAZ+B,GAC3CnH,EAAWv0D,KAAK2wB,GAGlB,IAAI8jC,EAAgB11D,EAAK+xB,KACrB4jC,EAAc31D,EAAK+xB,KACnB6qC,EAA0B58D,EAAK+xB,KAEnC,IACE,IAAI0N,EAAY61B,EAAWt1D,EAAM+xB,EAAQwjC,EAAOC,EAAYC,EAAeC,EAAeC,EAAaiH,GAA2B,EAA6B,GAA1BA,EAA8B9G,GACnK/jC,GAAU0N,EACV,MAAOv8B,GACP,GAAIA,aAAckxD,EAEhB,OADA,EAAIx1D,EAAM8F,MAAM,GAAGxB,EAAG6I,qDACf1M,KAAKw5B,MAAM74B,EAAM,CACtBg6D,aAAc92D,EAAGmxD,YAEd,GAAInxD,aAAcoxD,EAAgB,EACvC,EAAI11D,EAAM8F,MAAM,GAAGxB,EAAG6I,mDACtB,MAAM+uD,EAGR,MAAM53D,EAGR,MAEF,KAAK,MACH6uB,GAAU,EACV,MAEF,KAAK,MACkB,MAAjB/xB,EAAK+xB,IACPA,IAGF,MAEF,QACE,MAAM8qC,GAAiBvE,EAAmBt4D,EAAM+xB,EAAS,EAAGA,EAAS,GAErE,GAAI8qC,IAAkBA,GAAetE,QAAS,EAC5C,EAAI35D,EAAM8F,MAAM,yDAA2Dm4D,GAAetE,SAC1FxmC,EAAS8qC,GAAe9qC,OACxB,MAGF,IAAK8qC,IAAkB9qC,GAAU/xB,EAAKkB,OAAS,EAAG,EAChD,EAAItC,EAAM8F,MAAM,+FAChB,MAAMo2D,EAGR,MAAM,IAAI3G,EAAU,qCAAuC8D,EAAWjsD,SAAS,KAGnFisD,GAAa,EAAI94D,EAAY6yB,YAAYhyB,EAAM+xB,GAC/CA,GAAU,EASZ,IANA1yB,KAAKq1B,MAAQ6gC,EAAM4E,eACnB96D,KAAKs1B,OAAS4gC,EAAMlB,UACpBh1D,KAAKm7D,KAAOA,EACZn7D,KAAKo7D,MAAQA,EACbp7D,KAAKm2D,WAAa,GAEb1zD,EAAI,EAAGA,EAAIyzD,EAAMC,WAAWt0D,OAAQY,IAAK,CAE5C,IAAIy3D,EAAoBoB,GADxB/oC,EAAY2jC,EAAMC,WAAW1zD,IACwBs6D,gBAEjD7C,IACF3nC,EAAU2nC,kBAAoBA,GAGhCl6D,KAAKm2D,WAAWv0D,KAAK,CACnBqzC,MAAO1iB,EAAU0iB,MACjBwoB,OAAQtD,EAAmBjE,EAAO3jC,GAClCmrC,OAAQnrC,EAAUwlC,EAAI7B,EAAM6E,KAC5B4C,OAAQprC,EAAUthB,EAAIilD,EAAM8E,KAC5BhF,cAAezjC,EAAUyjC,cACzB8C,gBAAiBvmC,EAAUumC,kBAI/B94D,KAAK49D,cAAgB59D,KAAKm2D,WAAWt0D,QAIvC,wBAAwBwzB,EAAOC,EAAQu/B,GAAc,GACnD,IAEItiC,EAAWsrC,EAAiBC,EAAiBC,EAC7C/1D,EAAG64C,EAAGp+C,EAAGy2B,EAAG2f,EACZ5D,EAEAwoB,EANAC,EAAS19D,KAAKq1B,MAAQA,EACtBsoC,EAAS39D,KAAKs1B,OAASA,EAIvB5C,EAAS,EAETkrC,EAAgB59D,KAAKm2D,WAAWt0D,OAChCqpC,EAAa7V,EAAQC,EAASsoC,EAC9Bj9D,EAAO,IAAIotB,kBAAkBmd,GAC7B8yB,EAAoB,IAAIn5C,YAAYwQ,GACpC4oC,EAAW,WACf,IAAIC,EAEJ,IAAKz7D,EAAI,EAAGA,EAAIm7D,EAAen7D,IAAK,CAQlC,GANAo7D,GADAtrC,EAAYvyB,KAAKm2D,WAAW1zD,IACAi7D,OAASA,EACrCI,EAAkBvrC,EAAUorC,OAASA,EACrCjrC,EAASjwB,EACTg7D,EAASlrC,EAAUkrC,OACnBM,EAAoBxrC,EAAUyjC,cAAgB,GAAK,EAE/C6H,IAAoBK,EAAqB,CAC3C,IAAKl2D,EAAI,EAAGA,EAAIqtB,EAAOrtB,IACrBkxB,EAAI,EAAIlxB,EAAI61D,EACZG,EAAkBh2D,IAAMkxB,EAAI+kC,IAAa,EAAQ,EAAJ/kC,EAG/CglC,EAAsBL,EAGxB,IAAKhd,EAAI,EAAGA,EAAIvrB,EAAQurB,IAItB,IAFA5L,EAAQ8oB,IADR7kC,EAAI,EAAI2nB,EAAIid,GACqBG,IAAiB,EAAJ/kC,IAAU,EAEnDlxB,EAAI,EAAGA,EAAIqtB,EAAOrtB,IACrBrH,EAAK+xB,GAAU+qC,EAAOxoB,EAAQ+oB,EAAkBh2D,IAChD0qB,GAAUkrC,EAKhB,IAAI9/C,EAAY9d,KAAK21D,iBAMrB,GAJKd,GAAiC,IAAlB+I,GAAwB9/C,IAC1CA,EAAY,IAAI24B,WAAW,EAAE,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,OAGjE34B,EACF,IAAKrb,EAAI,EAAGA,EAAIyoC,GACd,IAAKhS,EAAI,EAAG2f,EAAI,EAAG3f,EAAI0kC,EAAe1kC,IAAKz2B,IAAKo2C,GAAK,EACnDl4C,EAAK8B,IAAM9B,EAAK8B,GAAKqb,EAAU+6B,IAAM,GAAK/6B,EAAU+6B,EAAI,GAK9D,OAAOl4C,GAGT,+BACE,OAAIX,KAAKo7D,QACEp7D,KAAKo7D,MAAMiB,cAGK,IAAvBr8D,KAAK49D,cACsB,IAAzB59D,KAAK41D,kBAE+B,KAA7B51D,KAAKm2D,WAAW,GAAGlhB,OAA+C,KAA7Bj1C,KAAKm2D,WAAW,GAAGlhB,OAA+C,KAA7Bj1C,KAAKm2D,WAAW,GAAGlhB,OAO7E,IAAzBj1C,KAAK41D,iBAOXuI,iBAAkB,SAAyBx9D,GAGzC,IAFA,IAAIy9D,EAAGC,EAAIC,EAEF77D,EAAI,EAAGZ,EAASlB,EAAKkB,OAAQY,EAAIZ,EAAQY,GAAK,EACrD27D,EAAIz9D,EAAK8B,GACT47D,EAAK19D,EAAK8B,EAAI,GACd67D,EAAK39D,EAAK8B,EAAI,GACd9B,EAAK8B,GAAK27D,EAAI,QAAU,MAAQE,EAChC39D,EAAK8B,EAAI,GAAK27D,EAAI,QAAU,KAAQC,EAAK,KAAQC,EACjD39D,EAAK8B,EAAI,GAAK27D,EAAI,QAAU,MAAQC,EAGtC,OAAO19D,GAET49D,kBAAmB,SAA0B59D,GAI3C,IAHA,IAAIy9D,EAAGC,EAAIC,EAAIzlB,EACXnmB,EAAS,EAEJjwB,EAAI,EAAGZ,EAASlB,EAAKkB,OAAQY,EAAIZ,EAAQY,GAAK,EACrD27D,EAAIz9D,EAAK8B,GACT47D,EAAK19D,EAAK8B,EAAI,GACd67D,EAAK39D,EAAK8B,EAAI,GACdo2C,EAAIl4C,EAAK8B,EAAI,GACb9B,EAAK+xB,KAA+B2rC,IAAO,oBAAsBA,EAAK,oBAAuBC,EAAK,mBAAqBF,EAAI,mBAAsBvlB,EAAI,kBAAnI,gBAAwJylB,IAAO,oBAAuBA,EAAK,oBAAuBF,EAAI,mBAAsBvlB,EAAI,kBAAoBulB,GAAK,oBAAuBA,EAAI,mBAAsBvlB,EAAI,iBAAoBA,IAAM,oBAAuBA,EAAI,kBACrYl4C,EAAK+xB,KAAY,iBAAmB2rC,GAAM,oBAAsBA,EAAK,oBAAuBC,EAAK,oBAAuBF,EAAI,oBAAuBvlB,EAAI,kBAAqBylB,IAAO,oBAAuBA,EAAK,mBAAsBF,EAAI,oBAAuBvlB,EAAI,kBAAqBulB,GAAK,mBAAsBA,EAAI,mBAAsBvlB,EAAI,iBAAoBA,IAAM,oBAAuBA,EAAI,kBACvYl4C,EAAK+xB,KAA+B2rC,IAAO,oBAAuBA,EAAK,oBAAsBC,EAAK,kBAAqBF,EAAI,mBAAsBvlB,EAAI,kBAAnI,gBAAwJylB,IAAO,oBAAsBA,EAAK,oBAAuBF,EAAI,oBAAuBvlB,EAAI,kBAAqBulB,GAAK,mBAAsBA,EAAI,mBAAsBvlB,EAAI,kBAAqBA,IAAM,oBAAuBA,EAAI,iBAGxY,OAAOl4C,EAAKiO,SAAS,EAAG8jB,IAE1B8rC,mBAAoB,SAA2B79D,GAG7C,IAFA,IAAIy9D,EAAGC,EAAIC,EAEF77D,EAAI,EAAGZ,EAASlB,EAAKkB,OAAQY,EAAIZ,EAAQY,GAAK,EACrD27D,EAAIz9D,EAAK8B,GACT47D,EAAK19D,EAAK8B,EAAI,GACd67D,EAAK39D,EAAK8B,EAAI,GACd9B,EAAK8B,GAAK,QAAU27D,EAAI,MAAQE,EAChC39D,EAAK8B,EAAI,GAAK,QAAU27D,EAAI,KAAQC,EAAK,KAAQC,EACjD39D,EAAK8B,EAAI,GAAK,QAAU27D,EAAI,MAAQC,EAGtC,OAAO19D,GAET89D,kBAAmB,SAA0B99D,GAI3C,IAHA,IAAIqlB,EAAGT,EAAGs7B,EAAGhI,EACTnmB,EAAS,EAEJjwB,EAAI,EAAGZ,EAASlB,EAAKkB,OAAQY,EAAIZ,EAAQY,GAAK,EACrDujB,EAAIrlB,EAAK8B,GACT8iB,EAAI5kB,EAAK8B,EAAI,GACbo+C,EAAIlgD,EAAK8B,EAAI,GACbo2C,EAAIl4C,EAAK8B,EAAI,GACb9B,EAAK+xB,KAAY,IAAM1M,IAAM,qBAAyBA,EAAI,qBAAwBT,EAAI,qBAAwBs7B,EAAI,oBAAuBhI,EAAI,oBAAsBtzB,GAAK,sBAA0BA,EAAI,qBAAyBs7B,EAAI,qBAAwBhI,EAAI,oBAAuBgI,IAAM,qBAAyBA,EAAI,qBAAwBhI,EAAI,mBAAsBA,GAAK,qBAAwBA,EAAI,mBAC5Yl4C,EAAK+xB,KAAY,IAAM1M,GAAK,sBAAyBA,EAAI,oBAAuBT,EAAI,sBAAyBs7B,EAAI,qBAAwBhI,EAAI,mBAAsBtzB,IAAM,sBAAyBA,EAAI,qBAAwBs7B,EAAI,qBAAwBhI,EAAI,mBAAsBgI,GAAK,qBAAyBA,EAAI,sBAAyBhI,EAAI,oBAAuBA,GAAK,qBAAyBA,EAAI,mBAC5Yl4C,EAAK+xB,KAAY,IAAM1M,GAAK,sBAA0BA,EAAI,sBAAyBT,EAAI,qBAAwBs7B,EAAI,sBAA2BhI,EAAI,oBAAuBtzB,GAAK,sBAAyBA,EAAI,qBAAwBs7B,EAAI,qBAAwBhI,EAAI,oBAAuBgI,GAAK,qBAAuBA,EAAI,qBAAwBhI,EAAI,mBAAsBA,GAAK,qBAAwBA,EAAI,mBAG/Y,OAAOl4C,EAAKiO,SAAS,EAAG8jB,IAG1B,SAAQ,MACN2C,EAAK,OACLC,EAAM,SACN6+B,GAAW,EAAK,YAChBU,GAAc,IAEd,GAAI70D,KAAK49D,cAAgB,EACvB,MAAM,IAAI9I,EAAU,0BAGtB,IAAIn0D,EAAOX,KAAK0+D,wBAAwBrpC,EAAOC,EAAQu/B,GAEvD,GAA2B,IAAvB70D,KAAK49D,eAAuBzJ,EAAU,CAKxC,IAJA,IAAIjpB,EAAavqC,EAAKkB,OAClB88D,EAAU,IAAI5wC,kBAA+B,EAAbmd,GAChCxY,EAAS,EAEJjwB,EAAI,EAAGA,EAAIyoC,EAAYzoC,IAAK,CACnC,IAAIm8D,EAAYj+D,EAAK8B,GACrBk8D,EAAQjsC,KAAYksC,EACpBD,EAAQjsC,KAAYksC,EACpBD,EAAQjsC,KAAYksC,EAGtB,OAAOD,EACF,GAA2B,IAAvB3+D,KAAK49D,eAAuB59D,KAAK6+D,yBAC1C,OAAO7+D,KAAKm+D,iBAAiBx9D,GACxB,GAA2B,IAAvBX,KAAK49D,cAAqB,CACnC,GAAI59D,KAAK6+D,yBACP,OAAI1K,EACKn0D,KAAKu+D,kBAAkB59D,GAGzBX,KAAKw+D,mBAAmB79D,GAC1B,GAAIwzD,EACT,OAAOn0D,KAAKy+D,kBAAkB99D,GAIlC,OAAOA,IAIJ8zD,EAxrCO,GA2rChB11D,EAAQ01D,UAAYA,GAId,CAAE31D,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAc,CAC3CI,OAAO,IAETJ,EAAQ4zC,eAAY,EAEpB,IAAI1nB,EAAUjsB,EAAoB,IAE9B8/D,EAAO9/D,EAAoB,IAE3BO,EAAQP,EAAoB,GAEhC,MAAM2zC,EAAY,WAChB,SAASA,EAAU3rC,EAAQgrC,EAAahoB,EAAMyd,GAC5CznC,KAAKgH,OAASA,EACdhH,KAAKgyC,YAAcA,EACnBhyC,KAAKgqB,KAAOA,EACZhqB,KAAKynC,OAASA,EAEdxc,EAAQuqB,aAAaG,KAAK31C,KAAMgyC,GAyDlC,OAtDAW,EAAUnuB,UAAYvlB,OAAO2J,OAAOqiB,EAAQuqB,aAAahxB,WACzDvlB,OAAOC,eAAeyzC,EAAUnuB,UAAW,QAAS,CAClDhe,IAAK,WACH,OAAO,EAAIjH,EAAMiT,QAAQxS,KAAM,QAASA,KAAKgH,OAAOkhB,SAASloB,KAAKgyC,eAEpE3tB,cAAc,IAGhBsuB,EAAUnuB,UAAU2xB,aAAe,SAAUC,KAE7CzD,EAAUnuB,UAAU0xB,UAAY,WAC9B,GAAIl2C,KAAKg2C,IACP,OAGF,MAAM+oB,EAAW,IAAID,EAAKE,SAC1BD,EAASvlC,MAAMx5B,KAAKiH,OACpB,MAAMouB,EAAQ0pC,EAAS1pC,MACjBC,EAASypC,EAASzpC,OAClBunC,EAAkBkC,EAASlC,gBAC3BoC,EAAYF,EAASG,MAAMr9D,OAEjC,GAAkB,IAAdo9D,EACFj/D,KAAKoP,OAAS2vD,EAASG,MAAM,GAAGh/B,UAC3B,CACL,MAAMv/B,EAAO,IAAIotB,kBAAkBsH,EAAQC,EAASunC,GAEpD,IAAK,IAAIhkB,EAAI,EAAGA,EAAIomB,EAAWpmB,IAAK,CAClC,MAAMsmB,EAAiBJ,EAASG,MAAMrmB,GAChCumB,EAAYD,EAAe9pC,MAC3BgqC,EAAaF,EAAe7pC,OAC5BgqC,EAAWH,EAAe9kB,KAC1BklB,EAAUJ,EAAeK,IACzBC,EAAMN,EAAej/B,MAC3B,IAAIw/B,EAAc,EACdC,GAAgBtqC,EAAQkqC,EAAUD,GAAYzC,EAClD,MAAM+C,EAAavqC,EAAQwnC,EACrBgD,EAAcT,EAAYvC,EAEhC,IAAK,IAAI3jC,EAAI,EAAGA,EAAImmC,EAAYnmC,IAAK,CACnC,MAAMqgB,EAAWkmB,EAAI7wD,SAAS8wD,EAAaA,EAAcG,GACzDl/D,EAAKqN,IAAIurC,EAAUomB,GACnBD,GAAeG,EACfF,GAAgBC,GAIpB5/D,KAAKoP,OAASzO,EAGhBX,KAAK+1C,aAAe/1C,KAAKoP,OAAOvN,OAChC7B,KAAKg2C,KAAM,GAGNrD,EAhES,GAmElB5zC,EAAQ4zC,UAAYA,GAId,CAAE7zC,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAc,CAC3CI,OAAO,IAETJ,EAAQigE,cAAW,EAEnB,IAAIz/D,EAAQP,EAAoB,GAE5Bc,EAAcd,EAAoB,GAElC0gD,EAAsB1gD,EAAoB,IAE9C,MAAM8gE,UAAiBvgE,EAAMgV,cAC3B,YAAY1D,GACV4T,MAAM,cAAc5T,MAKxB,IAAImuD,EAAW,WACb,IAAIe,EAAmB,CACrBC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,GAGN,SAASnB,IACPh/D,KAAKogE,sBAAuB,EAwb9B,SAASC,EAA6B9tC,EAAW+tC,GAC/C/tC,EAAUguC,GAAK96D,KAAKsnB,KAAKuzC,EAAIE,MAAQjuC,EAAUkuC,OAC/CluC,EAAUmuC,GAAKj7D,KAAKsnB,KAAKuzC,EAAIK,KAAOpuC,EAAUkuC,OAC9CluC,EAAUquC,GAAKn7D,KAAKsnB,KAAKuzC,EAAIO,MAAQtuC,EAAUuuC,OAC/CvuC,EAAUwuC,GAAKt7D,KAAKsnB,KAAKuzC,EAAIU,KAAOzuC,EAAUuuC,OAC9CvuC,EAAU8C,MAAQ9C,EAAUmuC,GAAKnuC,EAAUguC,GAC3ChuC,EAAU+C,OAAS/C,EAAUwuC,GAAKxuC,EAAUquC,GAG9C,SAASK,EAAmBC,EAAS/K,GAOnC,IANA,IACIgL,EADAb,EAAMY,EAAQE,IAEdlC,EAAQ,GACRmC,EAAY57D,KAAKsnB,MAAMuzC,EAAIK,KAAOL,EAAIgB,QAAUhB,EAAIiB,OACpDC,EAAY/7D,KAAKsnB,MAAMuzC,EAAIU,KAAOV,EAAImB,QAAUnB,EAAIoB,OAE/C3lB,EAAI,EAAGA,EAAIylB,EAAWzlB,IAC7B,IAAK,IAAIz2B,EAAI,EAAGA,EAAI+7C,EAAW/7C,KAC7B67C,EAAO,IACFQ,IAAMl8D,KAAKC,IAAI46D,EAAIgB,OAASh8C,EAAIg7C,EAAIiB,MAAOjB,EAAIE,OACpDW,EAAKS,IAAMn8D,KAAKC,IAAI46D,EAAImB,OAAS1lB,EAAIukB,EAAIoB,MAAOpB,EAAIO,OACpDM,EAAKU,IAAMp8D,KAAKiJ,IAAI4xD,EAAIgB,QAAUh8C,EAAI,GAAKg7C,EAAIiB,MAAOjB,EAAIK,MAC1DQ,EAAKW,IAAMr8D,KAAKiJ,IAAI4xD,EAAImB,QAAU1lB,EAAI,GAAKukB,EAAIoB,MAAOpB,EAAIU,MAC1DG,EAAK9rC,MAAQ8rC,EAAKU,IAAMV,EAAKQ,IAC7BR,EAAK7rC,OAAS6rC,EAAKW,IAAMX,EAAKS,IAC9BT,EAAKhL,WAAa,GAClB+I,EAAMt9D,KAAKu/D,GAIfD,EAAQhC,MAAQA,EAGhB,IAFA,IAESz8D,EAAI,EAAGiG,EAFM43D,EAAIyB,KAEYt/D,EAAIiG,EAAIjG,IAG5C,IAFA,IAAI8vB,EAAY4jC,EAAW1zD,GAElBy2B,EAAI,EAAGuL,EAAKy6B,EAAMr9D,OAAQq3B,EAAIuL,EAAIvL,IAAK,CAC9C,IAAI8oC,EAAgB,GACpBb,EAAOjC,EAAMhmC,GACb8oC,EAAcC,KAAOx8D,KAAKsnB,KAAKo0C,EAAKQ,IAAMpvC,EAAUkuC,OACpDuB,EAAcE,KAAOz8D,KAAKsnB,KAAKo0C,EAAKS,IAAMrvC,EAAUuuC,OACpDkB,EAAcG,KAAO18D,KAAKsnB,KAAKo0C,EAAKU,IAAMtvC,EAAUkuC,OACpDuB,EAAcI,KAAO38D,KAAKsnB,KAAKo0C,EAAKW,IAAMvvC,EAAUuuC,OACpDkB,EAAc3sC,MAAQ2sC,EAAcG,KAAOH,EAAcC,KACzDD,EAAc1sC,OAAS0sC,EAAcI,KAAOJ,EAAcE,KAC1Df,EAAKhL,WAAW1zD,GAAKu/D,GAK3B,SAASK,EAAoBnB,EAAS3uC,EAAWrN,GAC/C,IAAIo9C,EAAW/vC,EAAUgwC,sBACrB17C,EAAS,GAYb,OAVKy7C,EAASE,iCAIZ37C,EAAO47C,IAAMH,EAASI,eAAex9C,GAAGu9C,IACxC57C,EAAO87C,IAAML,EAASI,eAAex9C,GAAGy9C,MAJxC97C,EAAO47C,IAAM,GACb57C,EAAO87C,IAAM,IAMf97C,EAAO+7C,KAAO19C,EAAI,EAAIzf,KAAKiJ,IAAI4zD,EAASO,IAAKh8C,EAAO47C,IAAM,GAAKh9D,KAAKiJ,IAAI4zD,EAASO,IAAKh8C,EAAO47C,KAC7F57C,EAAOi8C,KAAO59C,EAAI,EAAIzf,KAAKiJ,IAAI4zD,EAASS,IAAKl8C,EAAO87C,IAAM,GAAKl9D,KAAKiJ,IAAI4zD,EAASS,IAAKl8C,EAAO87C,KACtF97C,EAGT,SAASm8C,EAAe9B,EAAS+B,EAAYC,GAC3C,IAAIC,EAAgB,GAAKD,EAAWT,IAChCW,EAAiB,GAAKF,EAAWP,IACjCU,EAAoC,IAAxBJ,EAAWK,SACvBC,EAAyB,GAAKL,EAAWT,KAAOY,EAAY,GAAK,GACjEG,EAA0B,GAAKN,EAAWP,KAAOU,EAAY,GAAK,GAClEI,EAAmBR,EAAWS,KAAOT,EAAWU,KAAOl+D,KAAKsnB,KAAKk2C,EAAWS,KAAOP,GAAiB19D,KAAK4nB,MAAM41C,EAAWU,KAAOR,GAAiB,EAClJS,EAAmBX,EAAWY,KAAOZ,EAAWa,KAAOr+D,KAAKsnB,KAAKk2C,EAAWY,KAAOT,GAAkB39D,KAAK4nB,MAAM41C,EAAWa,KAAOV,GAAkB,EACpJW,EAAeN,EAAmBG,EACtCX,EAAWe,mBAAqB,CAC9Bb,gBACAC,iBACAK,mBACAG,mBACAG,eACAR,yBACAC,2BAIJ,SAASS,EAAgB/C,EAASgD,EAAShB,GACzC,IAWIzgE,EAAGy2B,EAAGirC,EAAWC,EAXjBxB,EAAOM,EAAWN,KAClBE,EAAOI,EAAWJ,KAClBuB,EAAiB,GAAKzB,EACtB0B,EAAkB,GAAKxB,EACvByB,EAAOL,EAAQM,MAAQ5B,EACvB6B,EAAOP,EAAQQ,MAAQ5B,EACvB6B,EAAOT,EAAQU,KAAOP,EAAiB,GAAKzB,EAC5CiC,EAAOX,EAAQY,KAAOR,EAAkB,GAAKxB,EAC7CkB,EAAqBE,EAAQjB,WAAWe,mBACxCe,EAAa,GACbC,EAAY,GAGhB,IAAK9rC,EAAIurC,EAAMvrC,EAAI2rC,EAAM3rC,IACvB,IAAKz2B,EAAI8hE,EAAM9hE,EAAIkiE,EAAMliE,IAoBvB,IAnBA0hE,EAAY,CACVc,IAAKxiE,EACLyiE,IAAKhsC,EACLsrC,KAAMH,EAAiB5hE,EACvBiiE,KAAMJ,EAAkBprC,EACxB0rC,KAAMP,GAAkB5hE,EAAI,GAC5BqiE,KAAMR,GAAmBprC,EAAI,KAErBisC,MAAQ1/D,KAAKC,IAAIw+D,EAAQM,KAAML,EAAUK,MACnDL,EAAUiB,MAAQ3/D,KAAKC,IAAIw+D,EAAQQ,KAAMP,EAAUO,MACnDP,EAAUkB,MAAQ5/D,KAAKiJ,IAAIw1D,EAAQU,KAAMT,EAAUS,MACnDT,EAAUmB,MAAQ7/D,KAAKiJ,IAAIw1D,EAAQY,KAAMX,EAAUW,MAGnDV,EAFS3+D,KAAK4nB,OAAO82C,EAAUgB,MAAQjB,EAAQM,MAAQR,EAAmBT,wBACjE99D,KAAK4nB,OAAO82C,EAAUiB,MAAQlB,EAAQQ,MAAQV,EAAmBR,yBAC/CQ,EAAmBP,iBAC9CU,EAAUC,eAAiBA,EAC3BD,EAAUoB,YAAcrB,EAAQh1D,KAChCi1D,EAAUqB,OAAS,IAEfrB,EAAUkB,OAASlB,EAAUgB,OAAShB,EAAUmB,OAASnB,EAAUiB,OAAvE,CAIAL,EAAWnjE,KAAKuiE,GAChB,IAAIsB,EAAWT,EAAUZ,QAERj2D,IAAbs3D,GACEhjE,EAAIgjE,EAASC,OACfD,EAASC,OAASjjE,EACTA,EAAIgjE,EAASE,SACtBF,EAASE,OAASljE,GAGhBy2B,EAAIusC,EAASG,OACfH,EAASC,OAASxsC,EACTA,EAAIusC,EAASI,SACtBJ,EAASI,OAAS3sC,IAGpB8rC,EAAUZ,GAAkBqB,EAAW,CACrCC,OAAQjjE,EACRmjE,OAAQ1sC,EACRysC,OAAQljE,EACRojE,OAAQ3sC,GAIZirC,EAAUsB,SAAWA,EAIzBvB,EAAQ4B,oBAAsB,CAC5BzB,eAAgBzB,EAChB0B,gBAAiBxB,EACjBiD,iBAAkBpB,EAAOJ,EAAO,EAChCyB,iBAAkBnB,EAAOJ,EAAO,GAElCP,EAAQa,WAAaA,EACrBb,EAAQc,UAAYA,EAGtB,SAASiB,EAAahD,EAAYmB,EAAgB8B,GAIhD,IAHA,IAAIC,EAAqB,GACrBC,EAAWnD,EAAWmD,SAEjB3jE,EAAI,EAAGiG,EAAK09D,EAASvkE,OAAQY,EAAIiG,EAAIjG,IAI5C,IAHA,IACIsiE,EADUqB,EAAS3jE,GACEsiE,WAEhB7rC,EAAI,EAAGuL,EAAKsgC,EAAWljE,OAAQq3B,EAAIuL,EAAIvL,IAAK,CACnD,IAAIirC,EAAYY,EAAW7rC,GAEvBirC,EAAUC,iBAAmBA,GAIjC+B,EAAmBvkE,KAAKuiE,GAI5B,MAAO,CACL+B,cACAnB,WAAYoB,GAIhB,SAASE,EAAyCnF,GAQhD,IAPA,IAAIZ,EAAMY,EAAQE,IACdkF,EAAYpF,EAAQqF,YAAYtxB,MAChCksB,EAAOD,EAAQhC,MAAMoH,GACrBE,EAAcrF,EAAKsF,6BAA6BD,YAChD3J,EAAkByD,EAAIyB,KACtB2E,EAA8B,EAEzB3qB,EAAI,EAAGA,EAAI8gB,EAAiB9gB,IACnC2qB,EAA8BjhE,KAAKC,IAAIghE,EAA6BvF,EAAKhL,WAAWpa,GAAGwmB,sBAAsBoE,0BAG/G,IAAIh5B,EAAI,EACJzoB,EAAI,EACJziB,EAAI,EACJo2C,EAAI,EAER74C,KAAK4mE,WAAa,WAChB,KAAOj5B,EAAI64B,EAAa74B,IAAK,CAC3B,KAAOzoB,GAAKwhD,EAA6BxhD,IAAK,CAC5C,KAAOziB,EAAIo6D,EAAiBp6D,IAAK,CAC/B,IAAI8vB,EAAY4uC,EAAKhL,WAAW1zD,GAEhC,KAAIyiB,EAAIqN,EAAUgwC,sBAAsBoE,0BAAxC,CAOA,IAHA,IAAI1D,EAAa1wC,EAAUs0C,YAAY3hD,GACnC6+C,EAAed,EAAWe,mBAAmBD,aAE1ClrB,EAAIkrB,GAAe,CACxB,IAAI+C,EAASb,EAAahD,EAAYpqB,EAAGlL,GAEzC,OADAkL,IACOiuB,EAGTjuB,EAAI,GAGNp2C,EAAI,EAGNyiB,EAAI,EAGN,MAAM,IAAI46C,EAAS,mBAIvB,SAASiH,EAAyC7F,GAQhD,IAPA,IAAIZ,EAAMY,EAAQE,IACdkF,EAAYpF,EAAQqF,YAAYtxB,MAChCksB,EAAOD,EAAQhC,MAAMoH,GACrBE,EAAcrF,EAAKsF,6BAA6BD,YAChD3J,EAAkByD,EAAIyB,KACtB2E,EAA8B,EAEzB3qB,EAAI,EAAGA,EAAI8gB,EAAiB9gB,IACnC2qB,EAA8BjhE,KAAKC,IAAIghE,EAA6BvF,EAAKhL,WAAWpa,GAAGwmB,sBAAsBoE,0BAG/G,IAAIzhD,EAAI,EACJyoB,EAAI,EACJlrC,EAAI,EACJo2C,EAAI,EAER74C,KAAK4mE,WAAa,WAChB,KAAO1hD,GAAKwhD,EAA6BxhD,IAAK,CAC5C,KAAOyoB,EAAI64B,EAAa74B,IAAK,CAC3B,KAAOlrC,EAAIo6D,EAAiBp6D,IAAK,CAC/B,IAAI8vB,EAAY4uC,EAAKhL,WAAW1zD,GAEhC,KAAIyiB,EAAIqN,EAAUgwC,sBAAsBoE,0BAAxC,CAOA,IAHA,IAAI1D,EAAa1wC,EAAUs0C,YAAY3hD,GACnC6+C,EAAed,EAAWe,mBAAmBD,aAE1ClrB,EAAIkrB,GAAe,CACxB,IAAI+C,EAASb,EAAahD,EAAYpqB,EAAGlL,GAEzC,OADAkL,IACOiuB,EAGTjuB,EAAI,GAGNp2C,EAAI,EAGNkrC,EAAI,EAGN,MAAM,IAAImyB,EAAS,mBAIvB,SAASkH,EAAyC9F,GAChD,IAKIvzB,EAAGzoB,EAAGc,EAAGV,EALTg7C,EAAMY,EAAQE,IACdkF,EAAYpF,EAAQqF,YAAYtxB,MAChCksB,EAAOD,EAAQhC,MAAMoH,GACrBE,EAAcrF,EAAKsF,6BAA6BD,YAChD3J,EAAkByD,EAAIyB,KAEtB2E,EAA8B,EAElC,IAAK1gD,EAAI,EAAGA,EAAI62C,EAAiB72C,IAAK,CACpC,MAAMuM,EAAY4uC,EAAKhL,WAAWnwC,GAClC0gD,EAA8BjhE,KAAKC,IAAIghE,EAA6Bn0C,EAAUgwC,sBAAsBoE,0BAGtG,IAAIM,EAAyB,IAAIxwB,WAAWiwB,EAA8B,GAE1E,IAAKxhD,EAAI,EAAGA,GAAKwhD,IAA+BxhD,EAAG,CACjD,IAAIgiD,EAAkB,EAEtB,IAAKlhD,EAAI,EAAGA,EAAI62C,IAAmB72C,EAAG,CACpC,IAAI6gD,EAAc1F,EAAKhL,WAAWnwC,GAAG6gD,YAEjC3hD,EAAI2hD,EAAYhlE,SAClBqlE,EAAkBzhE,KAAKC,IAAIwhE,EAAiBL,EAAY3hD,GAAG8+C,mBAAmBD,eAIlFkD,EAAuB/hD,GAAKgiD,EAG9Bv5B,EAAI,EACJzoB,EAAI,EACJc,EAAI,EACJV,EAAI,EAEJtlB,KAAK4mE,WAAa,WAChB,KAAO1hD,GAAKwhD,EAA6BxhD,IAAK,CAC5C,KAAOI,EAAI2hD,EAAuB/hD,GAAII,IAAK,CACzC,KAAOU,EAAI62C,EAAiB72C,IAAK,CAC/B,MAAMuM,EAAY4uC,EAAKhL,WAAWnwC,GAElC,KAAId,EAAIqN,EAAUgwC,sBAAsBoE,0BAAxC,CAIA,IAAI1D,EAAa1wC,EAAUs0C,YAAY3hD,GACnC6+C,EAAed,EAAWe,mBAAmBD,aAEjD,KAAIz+C,GAAKy+C,GAAT,CAIA,KAAOp2B,EAAI64B,GAAc,CACvB,IAAIM,EAASb,EAAahD,EAAY39C,EAAGqoB,GAEzC,OADAA,IACOm5B,EAGTn5B,EAAI,IAGN3nB,EAAI,EAGNV,EAAI,EAGN,MAAM,IAAIw6C,EAAS,mBAIvB,SAASqH,EAAyCjG,GAChD,IAAIZ,EAAMY,EAAQE,IACdkF,EAAYpF,EAAQqF,YAAYtxB,MAChCksB,EAAOD,EAAQhC,MAAMoH,GACrBE,EAAcrF,EAAKsF,6BAA6BD,YAChD3J,EAAkByD,EAAIyB,KACtBW,EAAiB0E,EAA6BjG,GAC9CkG,EAA0B3E,EAC1B/0B,EAAI,EACJzoB,EAAI,EACJc,EAAI,EACJshD,EAAK,EACLC,EAAK,EAETvnE,KAAK4mE,WAAa,WAChB,KAAOW,EAAKF,EAAwBG,WAAYD,IAAM,CACpD,KAAOD,EAAKD,EAAwBI,WAAYH,IAAM,CACpD,KAAOthD,EAAI62C,EAAiB72C,IAAK,CAI/B,IAHA,IAAIuM,EAAY4uC,EAAKhL,WAAWnwC,GAC5B2gD,EAA2Bp0C,EAAUgwC,sBAAsBoE,yBAExDzhD,GAAKyhD,EAA0BzhD,IAAK,CACzC,IAAI+9C,EAAa1wC,EAAUs0C,YAAY3hD,GACnCwiD,EAAmBhF,EAAevM,WAAWnwC,GAAG6gD,YAAY3hD,GAC5D2zB,EAAI8uB,EAAwBL,EAAIC,EAAIG,EAAkBL,EAAyBpE,GAEnF,GAAU,OAANpqB,EAAJ,CAIA,KAAOlL,EAAI64B,GAAc,CACvB,IAAIM,EAASb,EAAahD,EAAYpqB,EAAGlL,GAEzC,OADAA,IACOm5B,EAGTn5B,EAAI,GAGNzoB,EAAI,EAGNc,EAAI,EAGNshD,EAAK,EAGP,MAAM,IAAIxH,EAAS,mBAIvB,SAAS8H,EAAyC1G,GAChD,IAAIZ,EAAMY,EAAQE,IACdkF,EAAYpF,EAAQqF,YAAYtxB,MAChCksB,EAAOD,EAAQhC,MAAMoH,GACrBE,EAAcrF,EAAKsF,6BAA6BD,YAChD3J,EAAkByD,EAAIyB,KACtBW,EAAiB0E,EAA6BjG,GAC9CxzB,EAAI,EACJzoB,EAAI,EACJc,EAAI,EACJshD,EAAK,EACLC,EAAK,EAETvnE,KAAK4mE,WAAa,WAChB,KAAO5gD,EAAI62C,IAAmB72C,EAAG,CAK/B,IAJA,IAAIuM,EAAY4uC,EAAKhL,WAAWnwC,GAC5BqhD,EAA0B3E,EAAevM,WAAWnwC,GACpD2gD,EAA2Bp0C,EAAUgwC,sBAAsBoE,yBAExDY,EAAKF,EAAwBG,WAAYD,IAAM,CACpD,KAAOD,EAAKD,EAAwBI,WAAYH,IAAM,CACpD,KAAOpiD,GAAKyhD,EAA0BzhD,IAAK,CACzC,IAAI+9C,EAAa1wC,EAAUs0C,YAAY3hD,GACnCwiD,EAAmBL,EAAwBR,YAAY3hD,GACvD2zB,EAAI8uB,EAAwBL,EAAIC,EAAIG,EAAkBL,EAAyBpE,GAEnF,GAAU,OAANpqB,EAAJ,CAIA,KAAOlL,EAAI64B,GAAc,CACvB,IAAIM,EAASb,EAAahD,EAAYpqB,EAAGlL,GAEzC,OADAA,IACOm5B,EAGTn5B,EAAI,GAGNzoB,EAAI,EAGNoiD,EAAK,EAGPC,EAAK,EAGP,MAAM,IAAIzH,EAAS,mBAIvB,SAAS6H,EAAwBE,EAASC,EAASJ,EAAkBK,EAAwB9E,GAC3F,IAAI+E,EAAOH,EAAUE,EAAuBE,SACxCC,EAAOJ,EAAUC,EAAuBI,UAE5C,GAAIH,EAAON,EAAiBryC,QAAU,GAAK6yC,EAAOR,EAAiBpyC,SAAW,EAC5E,OAAO,KAGT,IAAI8yC,EAAwBF,EAAOR,EAAiBryC,MAAQ4tC,EAAWe,mBAAmBP,iBAC1F,OAAOuE,EAAON,EAAiBpyC,OAAS8yC,EAG1C,SAAShB,EAA6BjG,GAQpC,IAPA,IAAItE,EAAkBsE,EAAKhL,WAAWt0D,OAClComE,EAAW31D,OAAO+1D,UAClBF,EAAY71D,OAAO+1D,UACnBZ,EAAa,EACbD,EAAa,EACbc,EAAmB,IAAI9/D,MAAMq0D,GAExB72C,EAAI,EAAGA,EAAI62C,EAAiB72C,IAAK,CAUxC,IATA,IAAIuM,EAAY4uC,EAAKhL,WAAWnwC,GAC5B2gD,EAA2Bp0C,EAAUgwC,sBAAsBoE,yBAC3D4B,EAAoB,IAAI//D,MAAMm+D,EAA2B,GACzD6B,EAA2Bl2D,OAAO+1D,UAClCI,EAA4Bn2D,OAAO+1D,UACnCK,EAA6B,EAC7BC,EAA6B,EAC7BC,EAAQ,EAEH1jD,EAAIyhD,EAA0BzhD,GAAK,IAAKA,EAAG,CAClD,IAAI+9C,EAAa1wC,EAAUs0C,YAAY3hD,GACnC2jD,EAAyBD,EAAQ3F,EAAWe,mBAAmBb,cAC/D2F,EAA0BF,EAAQ3F,EAAWe,mBAAmBZ,eACpEoF,EAA2B/iE,KAAKiJ,IAAI85D,EAA0BK,GAC9DJ,EAA4BhjE,KAAKiJ,IAAI+5D,EAA2BK,GAChEJ,EAA6BjjE,KAAKC,IAAIgjE,EAA4BzF,EAAWe,mBAAmBP,kBAChGkF,EAA6BljE,KAAKC,IAAIijE,EAA4B1F,EAAWe,mBAAmBJ,kBAChG2E,EAAkBrjD,GAAK,CACrBmQ,MAAOwzC,EACPvzC,OAAQwzC,GAEVF,IAAU,EAGZX,EAAWxiE,KAAKiJ,IAAIu5D,EAAUO,GAC9BL,EAAY1iE,KAAKiJ,IAAIy5D,EAAWM,GAChChB,EAAahiE,KAAKC,IAAI+hE,EAAYiB,GAClClB,EAAa/hE,KAAKC,IAAI8hE,EAAYmB,GAClCL,EAAiBtiD,GAAK,CACpB6gD,YAAa0B,EACbN,SAAUO,EACVL,UAAWM,EACXhB,WAAYiB,EACZlB,WAAYmB,GAIhB,MAAO,CACLxS,WAAYmS,EACZL,WACAE,YACAV,aACAD,cAIJ,SAASuB,EAAa7H,GAMpB,IALA,IAAIZ,EAAMY,EAAQE,IACdkF,EAAYpF,EAAQqF,YAAYtxB,MAChCksB,EAAOD,EAAQhC,MAAMoH,GACrBzJ,EAAkByD,EAAIyB,KAEjB/7C,EAAI,EAAGA,EAAI62C,EAAiB72C,IAAK,CAMxC,IALA,IAAIuM,EAAY4uC,EAAKhL,WAAWnwC,GAC5B2gD,EAA2Bp0C,EAAUgwC,sBAAsBoE,yBAC3DE,EAAc,GACdT,EAAW,GAENlhD,EAAI,EAAGA,GAAKyhD,EAA0BzhD,IAAK,CAClD,IAUIg/C,EAVA8E,EAAmB3G,EAAoBnB,EAAS3uC,EAAWrN,GAC3D+9C,EAAa,GACb2F,EAAQ,GAAKjC,EAA2BzhD,EAU5C,GATA+9C,EAAWU,KAAOl+D,KAAKsnB,KAAKwF,EAAU0vC,KAAO2G,GAC7C3F,EAAWa,KAAOr+D,KAAKsnB,KAAKwF,EAAU2vC,KAAO0G,GAC7C3F,EAAWS,KAAOj+D,KAAKsnB,KAAKwF,EAAU4vC,KAAOyG,GAC7C3F,EAAWY,KAAOp+D,KAAKsnB,KAAKwF,EAAU6vC,KAAOwG,GAC7C3F,EAAWK,SAAWp+C,EACtB89C,EAAe9B,EAAS+B,EAAY+F,GACpCnC,EAAYjlE,KAAKqhE,GAGP,IAAN/9C,GACFg/C,EAAU,IACFh1D,KAAO,KACfg1D,EAAQM,KAAO/+D,KAAKsnB,KAAKwF,EAAU0vC,KAAO2G,GAC1C1E,EAAQQ,KAAOj/D,KAAKsnB,KAAKwF,EAAU2vC,KAAO0G,GAC1C1E,EAAQU,KAAOn/D,KAAKsnB,KAAKwF,EAAU4vC,KAAOyG,GAC1C1E,EAAQY,KAAOr/D,KAAKsnB,KAAKwF,EAAU6vC,KAAOwG,GAC1C1E,EAAQjB,WAAaA,EACrBgB,EAAgB/C,EAASgD,EAAS8E,GAClC5C,EAASxkE,KAAKsiE,GACdjB,EAAWmD,SAAW,CAAClC,OAClB,CACL,IAAI+E,EAAS,GAAKtC,EAA2BzhD,EAAI,EAC7CgkD,EAAqB,IACzBhF,EAAU,IACFh1D,KAAO,KACfg1D,EAAQM,KAAO/+D,KAAKsnB,KAAKwF,EAAU0vC,KAAOgH,EAAS,IACnD/E,EAAQQ,KAAOj/D,KAAKsnB,KAAKwF,EAAU2vC,KAAO+G,GAC1C/E,EAAQU,KAAOn/D,KAAKsnB,KAAKwF,EAAU4vC,KAAO8G,EAAS,IACnD/E,EAAQY,KAAOr/D,KAAKsnB,KAAKwF,EAAU6vC,KAAO6G,GAC1C/E,EAAQjB,WAAaA,EACrBgB,EAAgB/C,EAASgD,EAAS8E,GAClC5C,EAASxkE,KAAKsiE,GACdgF,EAAmBtnE,KAAKsiE,IACxBA,EAAU,IACFh1D,KAAO,KACfg1D,EAAQM,KAAO/+D,KAAKsnB,KAAKwF,EAAU0vC,KAAOgH,GAC1C/E,EAAQQ,KAAOj/D,KAAKsnB,KAAKwF,EAAU2vC,KAAO+G,EAAS,IACnD/E,EAAQU,KAAOn/D,KAAKsnB,KAAKwF,EAAU4vC,KAAO8G,GAC1C/E,EAAQY,KAAOr/D,KAAKsnB,KAAKwF,EAAU6vC,KAAO6G,EAAS,IACnD/E,EAAQjB,WAAaA,EACrBgB,EAAgB/C,EAASgD,EAAS8E,GAClC5C,EAASxkE,KAAKsiE,GACdgF,EAAmBtnE,KAAKsiE,IACxBA,EAAU,IACFh1D,KAAO,KACfg1D,EAAQM,KAAO/+D,KAAKsnB,KAAKwF,EAAU0vC,KAAOgH,EAAS,IACnD/E,EAAQQ,KAAOj/D,KAAKsnB,KAAKwF,EAAU2vC,KAAO+G,EAAS,IACnD/E,EAAQU,KAAOn/D,KAAKsnB,KAAKwF,EAAU4vC,KAAO8G,EAAS,IACnD/E,EAAQY,KAAOr/D,KAAKsnB,KAAKwF,EAAU6vC,KAAO6G,EAAS,IACnD/E,EAAQjB,WAAaA,EACrBgB,EAAgB/C,EAASgD,EAAS8E,GAClC5C,EAASxkE,KAAKsiE,GACdgF,EAAmBtnE,KAAKsiE,GACxBjB,EAAWmD,SAAW8C,GAI1B32C,EAAUs0C,YAAcA,EACxBt0C,EAAU6zC,SAAWA,EAGvB,IAAI+C,EAAmBhI,EAAKsF,6BAA6B0C,iBAEzD,OAAQA,GACN,KAAK,EACHhI,EAAKiI,gBAAkB,IAAI/C,EAAyCnF,GACpE,MAEF,KAAK,EACHC,EAAKiI,gBAAkB,IAAIrC,EAAyC7F,GACpE,MAEF,KAAK,EACHC,EAAKiI,gBAAkB,IAAIpC,EAAyC9F,GACpE,MAEF,KAAK,EACHC,EAAKiI,gBAAkB,IAAIjC,EAAyCjG,GACpE,MAEF,KAAK,EACHC,EAAKiI,gBAAkB,IAAIxB,EAAyC1G,GACpE,MAEF,QACE,MAAM,IAAIpB,EAAS,iCAAiCqJ,MAI1D,SAASE,EAAiBnI,EAASvgE,EAAM+xB,EAAQwY,GAC/C,IACI97B,EADAoe,EAAW,EAEX87C,EAAa,EACbC,GAAc,EAElB,SAAS1tB,EAAS/a,GAChB,KAAOwoC,EAAaxoC,GAAO,CACzB,IAAI34B,EAAIxH,EAAK+xB,EAASlF,GACtBA,IAEI+7C,GACFn6D,EAASA,GAAU,EAAIjH,EACvBmhE,GAAc,EACdC,GAAc,IAEdn6D,EAASA,GAAU,EAAIjH,EACvBmhE,GAAc,GAGN,MAANnhE,IACFohE,GAAc,GAKlB,OAAOn6D,KADPk6D,GAAcxoC,IACkB,GAAKA,GAAS,EAGhD,SAAS0oC,EAAkBrqE,GACzB,OAAoC,MAAhCwB,EAAK+xB,EAASlF,EAAW,IAAe7sB,EAAK+xB,EAASlF,KAAcruB,GACtEsqE,EAAU,IACH,GAC8B,MAA5B9oE,EAAK+xB,EAASlF,IAAsB7sB,EAAK+xB,EAASlF,EAAW,KAAOruB,IAC7EsqE,EAAU,IACH,GAMX,SAASA,EAAU3oC,GACjBtT,GAAYsT,EAGd,SAAS4oC,IACPJ,EAAa,EAETC,IACF/7C,IACA+7C,GAAc,GAIlB,SAASI,IACP,GAAoB,IAAhB9tB,EAAS,GACX,OAAO,EAGT,GAAoB,IAAhBA,EAAS,GACX,OAAO,EAGT,IAAI18C,EAAQ08C,EAAS,GAErB,OAAI18C,EAAQ,EACHA,EAAQ,GAGjBA,EAAQ08C,EAAS,IAEL,GACH18C,EAAQ,GAGjBA,EAAQ08C,EAAS,IACF,GASjB,IANA,IAAIyqB,EAAYpF,EAAQqF,YAAYtxB,MAChCksB,EAAOD,EAAQhC,MAAMoH,GACrBsD,EAAgB1I,EAAQ2I,IAAID,cAC5BE,EAAgB5I,EAAQ2I,IAAIC,cAC5BV,EAAkBjI,EAAKiI,gBAEpB57C,EAAW0d,GAAY,CAC5Bw+B,IAEIE,GAAiBJ,EAAkB,MACrCC,EAAU,GAGZ,IAAI3C,EAASsC,EAAgBxC,aAE7B,GAAK/qB,EAAS,GAAd,CAQA,IAJA,IAEIsoB,EAFA+B,EAAcY,EAAOZ,YACrB/lC,EAAQ,GAGH19B,EAAI,EAAGiG,EAAKo+D,EAAO/B,WAAWljE,OAAQY,EAAIiG,EAAIjG,IAAK,CAE1D,IAAIgjE,GADJtB,EAAY2C,EAAO/B,WAAWtiE,IACLgjE,SACrBsE,EAAkB5F,EAAUc,IAAMQ,EAASC,OAC3CsE,EAAe7F,EAAUe,IAAMO,EAASG,OACxCqE,GAAoB,EACpBC,GAAqB,EAGzB,QAA2B/7D,IAAvBg2D,EAAUgG,SACZF,IAAsBpuB,EAAS,OAC1B,CAEL,IAAIuuB,EAAeC,EAEnB,QAA+Bl8D,KAH/Bs3D,EAAWtB,EAAUsB,UAGR2E,cACXA,EAAgB3E,EAAS2E,kBACpB,CACL,IAAI/0C,EAAQowC,EAASE,OAASF,EAASC,OAAS,EAC5CpwC,EAASmwC,EAASI,OAASJ,EAASG,OAAS,EACjDwE,EAAgB,IAAIE,EAAcj1C,EAAOC,EAAQ4wC,GACjDmE,EAAoB,IAAIE,EAAQl1C,EAAOC,GACvCmwC,EAAS2E,cAAgBA,EACzB3E,EAAS4E,kBAAoBA,EAG/B,GAAID,EAAcvwC,MAAMkwC,EAAiBC,EAAc9D,GACrD,OAAa,CACX,IAAIrqB,EAAS,GAQN,CACLuuB,EAAcI,eAAetE,GAC7B,MAPA,IAFckE,EAAcK,YAEZ,CACdtG,EAAUgG,UAAW,EACrBF,EAAoBC,GAAqB,EACzC,QAUV,GAAKD,EAAL,CAIA,GAAIC,EAAoB,CAItB,KAHAG,EAAoB5E,EAAS4E,mBACXxwC,MAAMkwC,EAAiBC,KAGvC,GAAInuB,EAAS,IAGX,IAFcwuB,EAAkBI,YAG9B,WAGFJ,EAAkBG,iBAItBrG,EAAUuG,cAAgBL,EAAkBlrE,MAK9C,IAFA,IAAIwrE,EAAehB,IAEZ9tB,EAAS,IACdsoB,EAAUqB,SAGZ,IAAIoF,GAAmB,EAAI9qE,EAAYoyB,MAAMy4C,GAEzCE,EAAkBhvB,GADV8uB,EAAe,GAAKC,EAAmBA,EAAmB,EAAIA,GAAoBzG,EAAUqB,QAExGrlC,EAAMv+B,KAAK,CACTuiE,YACAwG,eACAz/B,WAAY2/B,KAUhB,IANAnB,IAEII,GACFN,EAAkB,KAGbrpC,EAAMt+B,OAAS,GAAG,CACvB,IAAIipE,EAAa3qC,EAAMG,aAGAnyB,KAFvBg2D,EAAY2G,EAAW3G,WAETxjE,OACZwjE,EAAUxjE,KAAO,IAGnBwjE,EAAUxjE,KAAKiB,KAAK,CAClBjB,OACAsJ,MAAOyoB,EAASlF,EAChB3B,IAAK6G,EAASlF,EAAWs9C,EAAW5/B,WACpCy/B,aAAcG,EAAWH,eAE3Bn9C,GAAYs9C,EAAW5/B,aAI3B,OAAO1d,EAGT,SAASu9C,EAAiBC,EAAcC,EAAYC,EAAahH,EAASiH,EAAOC,EAAIC,EAAYC,GAQ/F,IAPA,IAAI/K,EAAK2D,EAAQM,KACb5D,EAAKsD,EAAQQ,KACbrvC,EAAQ6uC,EAAQU,KAAOV,EAAQM,KAC/BO,EAAab,EAAQa,WACrBwG,EAAmC,MAA3BrH,EAAQh1D,KAAK0D,OAAO,GAAa,EAAI,EAC7C44D,EAAoC,MAA3BtH,EAAQh1D,KAAK0D,OAAO,GAAaq4D,EAAa,EAElDxoE,EAAI,EAAGiG,EAAKq8D,EAAWljE,OAAQY,EAAIiG,IAAMjG,EAAG,CACnD,IAAI0hE,EAAYY,EAAWtiE,GACvBgpE,EAAatH,EAAUkB,MAAQlB,EAAUgB,MACzCuG,EAAcvH,EAAUmB,MAAQnB,EAAUiB,MAE9C,GAAmB,IAAfqG,GAAoC,IAAhBC,QAIDv9D,IAAnBg2D,EAAUxjE,KAAd,CAIA,IAAIgrE,EAAUC,EACdD,EAAW,IAAIE,EAASJ,EAAYC,EAAavH,EAAUoB,YAAapB,EAAUuG,cAAeU,GACjGQ,EAAwB,EACxB,IAGI1yC,EAAGuL,EAAIqnC,EAHPnrE,EAAOwjE,EAAUxjE,KACjB62B,EAAc,EACdmzC,EAAe,EAGnB,IAAKzxC,EAAI,EAAGuL,EAAK9jC,EAAKkB,OAAQq3B,EAAIuL,EAAIvL,IAEpC1B,IADAs0C,EAAWnrE,EAAKu4B,IACQrN,IAAMigD,EAAS7hE,MACvC0gE,GAAgBmB,EAASnB,aAG3B,IAAIoB,EAAc,IAAInrE,WAAW42B,GAC7BhK,EAAW,EAEf,IAAK0L,EAAI,EAAGuL,EAAK9jC,EAAKkB,OAAQq3B,EAAIuL,EAAIvL,IAAK,CAEzC,IAAIvqB,GADJm9D,EAAWnrE,EAAKu4B,IACKv4B,KAAKiO,SAASk9D,EAAS7hE,MAAO6hE,EAASjgD,KAC5DkgD,EAAY/9D,IAAIW,EAAO6e,GACvBA,GAAY7e,EAAM9M,OAGpB,IAAIo+C,EAAU,IAAIP,EAAoBe,kBAAkBsrB,EAAa,EAAGv0C,GAGxE,IAFAm0C,EAASK,WAAW/rB,GAEf/mB,EAAI,EAAGA,EAAIyxC,EAAczxC,IAAK,CACjC,OAAQ0yC,GACN,KAAK,EACHD,EAASM,iCACT,MAEF,KAAK,EACHN,EAASO,6BACT,MAEF,KAAK,EACHP,EAASQ,iBAELb,GACFK,EAASS,0BAMfR,GAAyBA,EAAwB,GAAK,EAGxD,IAKI/yB,EAAG5zB,EAAGonD,EALN35C,EAASyxC,EAAUgB,MAAQ5E,GAAM4D,EAAUiB,MAAQxE,GAAMvrC,EACzDke,EAAOo4B,EAASW,gBAChBC,EAAYZ,EAASa,qBACrBC,EAAcd,EAASc,YACvBC,EAAsBrB,EAAa,EAAI,GAE3C79C,EAAW,EACX,IAAIm/C,EAA8B,OAAjBzI,EAAQh1D,KAEzB,IAAKgqB,EAAI,EAAGA,EAAIwyC,EAAaxyC,IAAK,CAChC,IACI0zC,EAAc,GADRl6C,EAAS2C,EAAQ,IACE41C,EAAa51C,GAASk2C,EAAQC,EAE3D,IAAK3yB,EAAI,EAAGA,EAAI4yB,EAAY5yB,IAAK,CAG/B,GAAU,KAFV5zB,EAAIsnD,EAAU/+C,IAED,CACXvI,GAAKA,EAAIynD,GAAuBvB,EAET,IAAnB53B,EAAK/lB,KACPvI,GAAKA,GAGPonD,EAAKI,EAAYj/C,GACjB,IAAI5f,EAAM++D,EAAaC,GAAel6C,GAAU,GAAKA,EAGnDs4C,EAAap9D,GADXy9D,GAAcgB,GAAMjB,EACFnmD,EAEAA,GAAK,GAAKmmD,EAAKiB,GAIvC35C,IACAlF,IAGFkF,GAAU2C,EAAQo2C,KAKxB,SAASoB,EAAc3L,EAASC,EAAMn7C,GAepC,IAdA,IAAIuM,EAAY4uC,EAAKhL,WAAWnwC,GAC5Bu8C,EAAwBhwC,EAAUgwC,sBAClCuK,EAAyBv6C,EAAUu6C,uBACnCnG,EAA2BpE,EAAsBoE,yBACjDoG,EAASD,EAAuBE,OAChCC,EAAkBH,EAAuBG,gBACzCC,EAAYJ,EAAuBI,UACnC5B,EAAyB/I,EAAsB+I,uBAC/CpU,EAAYgK,EAAQ/K,WAAWnwC,GAAGkxC,UAClCmU,EAAa9I,EAAsB4K,yBACnCrvD,EAAYutD,EAAa,IAAI+B,EAAwB,IAAIC,EACzDC,EAAsB,GACtBnlE,EAAI,EAEC1F,EAAI,EAAGA,GAAKkkE,EAA0BlkE,IAAK,CAMlD,IALA,IAAIwgE,EAAa1wC,EAAUs0C,YAAYpkE,GACnC4yB,EAAQ4tC,EAAWS,KAAOT,EAAWU,KACrCruC,EAAS2tC,EAAWY,KAAOZ,EAAWa,KACtCkH,EAAe,IAAIuC,aAAal4C,EAAQC,GAEnC4D,EAAI,EAAGuL,EAAKw+B,EAAWmD,SAASvkE,OAAQq3B,EAAIuL,EAAIvL,IAAK,CAC5D,IAAIs0C,EAAIC,EAEHR,GAIHO,EAAKT,EAAO5kE,GAAGqlE,GACfC,EAAUV,EAAO5kE,GAAGslE,QACpBtlE,MALAqlE,EAAKT,EAAO,GAAGS,GACfC,EAAUV,EAAO,GAAGU,SAAWhrE,EAAI,EAAI,EAAIA,EAAI,IAOjD,IAAIyhE,EAAUjB,EAAWmD,SAASltC,GAC9Bw0C,EAAW3N,EAAiBmE,EAAQh1D,MAGxC67D,EAAiBC,EAAc31C,EAAOC,EAAQ4uC,EAFlCmH,EAAa,EAAI,IAAMnU,EAAYwW,EAAWD,IAAY,EAAID,EAAK,MACtEN,EAAYO,EAAU,EACmCpC,EAAYC,GAGhFgC,EAAoB1rE,KAAK,CACvByzB,QACAC,SACA4K,MAAO8qC,IAIX,IAAInkD,EAAS/I,EAAU6vD,UAAUL,EAAqB/6C,EAAU0vC,KAAM1vC,EAAU2vC,MAChF,MAAO,CACL7nB,KAAM9nB,EAAU0vC,KAChBzC,IAAKjtC,EAAU2vC,KACf7sC,MAAOxO,EAAOwO,MACdC,OAAQzO,EAAOyO,OACf4K,MAAOrZ,EAAOqZ,OA6FlB,SAAS0tC,EAAe1M,EAASoF,GAK/B,IAJA,IACIzJ,EADMqE,EAAQE,IACQW,KACtBZ,EAAOD,EAAQhC,MAAMoH,GAEhBtgD,EAAI,EAAGA,EAAI62C,EAAiB72C,IAAK,CACxC,IAAIuM,EAAY4uC,EAAKhL,WAAWnwC,GAC5B6nD,OAA0C1/D,IAA/B+yD,EAAQqF,YAAYuH,IAAI9nD,GAAmBk7C,EAAQqF,YAAYuH,IAAI9nD,GAAKk7C,EAAQqF,YAAYwH,IAC3Gx7C,EAAUu6C,uBAAyBe,EACnC,IAAIvL,OAA0Cn0D,IAA/B+yD,EAAQqF,YAAYyH,IAAIhoD,GAAmBk7C,EAAQqF,YAAYyH,IAAIhoD,GAAKk7C,EAAQqF,YAAYsD,IAC3Gt3C,EAAUgwC,sBAAwBD,EAGpCnB,EAAKsF,6BAA+BvF,EAAQqF,YAAYsD,IAnhD1D7K,EAASx6C,UAAY,CACnBgV,MAAO,SAAwB74B,GAG7B,GAAa,SAFF,EAAIb,EAAY6yB,YAAYhyB,EAAM,GAU7C,IAHA,IAAI6sB,EAAW,EACX3rB,EAASlB,EAAKkB,OAEX2rB,EAAW3rB,GAAQ,CACxB,IAAIosE,EAAa,EACbC,GAAO,EAAIpuE,EAAY8yB,YAAYjyB,EAAM6sB,GACzC2gD,GAAO,EAAIruE,EAAY8yB,YAAYjyB,EAAM6sB,EAAW,GAaxD,GAZAA,GAAYygD,EAEC,IAATC,IACFA,EAAqD,YAA9C,EAAIpuE,EAAY8yB,YAAYjyB,EAAM6sB,IAAyB,EAAI1tB,EAAY8yB,YAAYjyB,EAAM6sB,EAAW,GAC/GA,GAAY,EACZygD,GAAc,GAGH,IAATC,IACFA,EAAOrsE,EAAS2rB,EAAWygD,GAGzBC,EAAOD,EACT,MAAM,IAAInO,EAAS,0BAGrB,IAAI50B,EAAagjC,EAAOD,EACpBG,GAAiB,EAErB,OAAQD,GACN,KAAK,WACHC,GAAiB,EACjB,MAEF,KAAK,WACH,IAAIC,EAAS1tE,EAAK6sB,GAElB,GAAe,IAAX6gD,EAAc,CAChB,IAAIC,GAAa,EAAIxuE,EAAY8yB,YAAYjyB,EAAM6sB,EAAW,GAE9D,OAAQ8gD,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACH,MAEF,SACE,EAAI/uE,EAAM8F,MAAM,sBAAwBipE,SAGxB,IAAXD,IACT,EAAI9uE,EAAMmK,MAAM,6BAGlB,MAEF,KAAK,WACH1J,KAAKuuE,gBAAgB5tE,EAAM6sB,EAAUA,EAAW0d,GAChD,MAEF,KAAK,UACiD,aAAhD,EAAIprC,EAAY8yB,YAAYjyB,EAAM6sB,KACpC,EAAIjuB,EAAM8F,MAAM,yBAGlB,MAEF,KAAK,WACL,KAAK,WACL,KAAK,WACL,KAAK,WACL,KAAK,WACH,MAEF,QACE,IAAImpE,EAAangE,OAAOC,aAAa6/D,GAAQ,GAAK,IAAMA,GAAQ,GAAK,IAAMA,GAAQ,EAAI,IAAa,IAAPA,IAC7F,EAAI5uE,EAAM8F,MAAM,2BAA6B8oE,EAAO,KAAOK,EAAa,KAIxEJ,IACF5gD,GAAY0d,QAlFdlrC,KAAKuuE,gBAAgB5tE,EAAM,EAAGA,EAAKkB,SAsFvC4sE,qBAAsB,SAAuCznE,GAG3D,IAFA,IAAI0nE,EAAU1nE,EAAO2mB,UAEd+gD,GAAW,GAKhB,GAAa,SAJCA,GAEQ,GADtBA,EAAU1nE,EAAO2mB,YAGI,CACnB3mB,EAAOizB,KAAK,GACZ,IAAI0mC,EAAO35D,EAAO0uC,aAAe,EAC7BsrB,EAAOh6D,EAAO0uC,aAAe,EAC7B8qB,EAAQx5D,EAAO0uC,aAAe,EAC9BmrB,EAAQ75D,EAAO0uC,aAAe,EAClC1uC,EAAOizB,KAAK,IACZ,IAAI8nC,EAAO/6D,EAAOupC,YAKlB,OAJAvwC,KAAKq1B,MAAQsrC,EAAOH,EACpBxgE,KAAKs1B,OAAS0rC,EAAOH,EACrB7gE,KAAK68D,gBAAkBkF,OACvB/hE,KAAKo0D,iBAAmB,GAK5B,MAAM,IAAI0L,EAAS,uCAErByO,gBAAiB,SAAkC5tE,EAAMsJ,EAAO4hB,GAC9D,IAAIq1C,EAAU,GACVyN,GAAe,EAEnB,IAGE,IAFA,IAAInhD,EAAWvjB,EAERujB,EAAW,EAAI3B,GAAK,CACzB,IAAI3f,GAAO,EAAIpM,EAAY6yB,YAAYhyB,EAAM6sB,GAC7CA,GAAY,EACZ,IACI0L,EACA01C,EACA7B,EACA8B,EACA5B,EACA9L,EANAt/D,EAAS,EAQb,OAAQqK,GACN,KAAK,MACHg1D,EAAQ4N,YAAa,EACrB,MAEF,KAAK,MACH,MAEF,KAAK,MACHjtE,GAAS,EAAI/B,EAAY6yB,YAAYhyB,EAAM6sB,GAC3C,IAAI8yC,EAAM,GACVA,EAAIK,MAAO,EAAI7gE,EAAY8yB,YAAYjyB,EAAM6sB,EAAW,GACxD8yC,EAAIU,MAAO,EAAIlhE,EAAY8yB,YAAYjyB,EAAM6sB,EAAW,GACxD8yC,EAAIE,OAAQ,EAAI1gE,EAAY8yB,YAAYjyB,EAAM6sB,EAAW,IACzD8yC,EAAIO,OAAQ,EAAI/gE,EAAY8yB,YAAYjyB,EAAM6sB,EAAW,IACzD8yC,EAAIiB,OAAQ,EAAIzhE,EAAY8yB,YAAYjyB,EAAM6sB,EAAW,IACzD8yC,EAAIoB,OAAQ,EAAI5hE,EAAY8yB,YAAYjyB,EAAM6sB,EAAW,IACzD8yC,EAAIgB,QAAS,EAAIxhE,EAAY8yB,YAAYjyB,EAAM6sB,EAAW,IAC1D8yC,EAAImB,QAAS,EAAI3hE,EAAY8yB,YAAYjyB,EAAM6sB,EAAW,IAC1D,IAAIqvC,GAAkB,EAAI/8D,EAAY6yB,YAAYhyB,EAAM6sB,EAAW,IACnE8yC,EAAIyB,KAAOlF,EACX,IAAI1G,EAAa,GACjBj9B,EAAI1L,EAAW,GAEf,IAAK,IAAI/qB,EAAI,EAAGA,EAAIo6D,EAAiBp6D,IAAK,CACxC,IAAI8vB,EAAY,CACd2kC,UAA8B,GAAR,IAAVv2D,EAAKu4B,IACjB61C,YAAuB,IAAVpuE,EAAKu4B,IAClBunC,MAAO9/D,EAAKu4B,EAAI,GAChB4nC,MAAOngE,EAAKu4B,EAAI,IAElBA,GAAK,EACLmnC,EAA6B9tC,EAAW+tC,GACxCnK,EAAWv0D,KAAK2wB,GAGlB2uC,EAAQE,IAAMd,EACdY,EAAQ/K,WAAaA,EACrB8K,EAAmBC,EAAS/K,GAC5B+K,EAAQ4M,IAAM,GACd5M,EAAQ8M,IAAM,GACd,MAEF,KAAK,MACHnsE,GAAS,EAAI/B,EAAY6yB,YAAYhyB,EAAM6sB,GAC3C,IAAIwhD,EAAM,GAIV,OAHA91C,EAAI1L,EAAW,EAGA,IAFfohD,EAAOjuE,EAAKu4B,OAGV,KAAK,EACH21C,EAAY,EACZ5B,GAAkB,EAClB,MAEF,KAAK,EACH4B,EAAY,GACZ5B,GAAkB,EAClB,MAEF,KAAK,EACH4B,EAAY,GACZ5B,GAAkB,EAClB,MAEF,QACE,MAAM,IAAI3sE,MAAM,sBAAwBsuE,GAQ5C,IALAI,EAAIC,eAA+B,IAAdJ,EACrBG,EAAI/B,gBAAkBA,EACtB+B,EAAI9B,UAAY0B,GAAQ,EACxB7B,EAAS,GAEF7zC,EAAIr3B,EAAS2rB,GAAU,CAC5B,IAAI0hD,EAAQ,GAEM,IAAdL,GACFK,EAAMzB,QAAU9sE,EAAKu4B,MAAQ,EAC7Bg2C,EAAM1B,GAAK,IAEX0B,EAAMzB,QAAU9sE,EAAKu4B,IAAM,EAC3Bg2C,EAAM1B,IAAgB,EAAV7sE,EAAKu4B,KAAa,EAAIv4B,EAAKu4B,EAAI,GAC3CA,GAAK,GAGP6zC,EAAOnrE,KAAKstE,GAGdF,EAAIhC,OAASD,EAET7L,EAAQ4N,WACV5N,EAAQ6M,IAAMiB,GAEd9N,EAAQqF,YAAYwH,IAAMiB,EAC1B9N,EAAQqF,YAAYuH,IAAM,IAG5B,MAEF,KAAK,MACHjsE,GAAS,EAAI/B,EAAY6yB,YAAYhyB,EAAM6sB,GAC3C,IAEI2hD,EAFAC,EAAM,GAaV,OAZAl2C,EAAI1L,EAAW,EAGX0zC,EAAQE,IAAIW,KAAO,IACrBoN,EAAOxuE,EAAKu4B,MAEZi2C,GAAO,EAAIrvE,EAAY6yB,YAAYhyB,EAAMu4B,GACzCA,GAAK,GAKQ,IAFf01C,EAAOjuE,EAAKu4B,OAGV,KAAK,EACH21C,EAAY,EACZ5B,GAAkB,EAClB,MAEF,KAAK,EACH4B,EAAY,GACZ5B,GAAkB,EAClB,MAEF,KAAK,EACH4B,EAAY,GACZ5B,GAAkB,EAClB,MAEF,QACE,MAAM,IAAI3sE,MAAM,sBAAwBsuE,GAQ5C,IALAQ,EAAIH,eAA+B,IAAdJ,EACrBO,EAAInC,gBAAkBA,EACtBmC,EAAIlC,UAAY0B,GAAQ,EACxB7B,EAAS,GAEF7zC,EAAIr3B,EAAS2rB,GAClB0hD,EAAQ,GAEU,IAAdL,GACFK,EAAMzB,QAAU9sE,EAAKu4B,MAAQ,EAC7Bg2C,EAAM1B,GAAK,IAEX0B,EAAMzB,QAAU9sE,EAAKu4B,IAAM,EAC3Bg2C,EAAM1B,IAAgB,EAAV7sE,EAAKu4B,KAAa,EAAIv4B,EAAKu4B,EAAI,GAC3CA,GAAK,GAGP6zC,EAAOnrE,KAAKstE,GAGdE,EAAIpC,OAASD,EAET7L,EAAQ4N,WACV5N,EAAQ4M,IAAIqB,GAAQC,EAEpBlO,EAAQqF,YAAYuH,IAAIqB,GAAQC,EAGlC,MAEF,KAAK,MACHvtE,GAAS,EAAI/B,EAAY6yB,YAAYhyB,EAAM6sB,GAC3C,IAAI6hD,EAAM,GACVn2C,EAAI1L,EAAW,EACf,IAAI8hD,EAAO3uE,EAAKu4B,KAChBm2C,EAAI7M,mCAA4C,EAAP8M,GACzCD,EAAIzF,iBAA0B,EAAP0F,GACvBD,EAAIvF,iBAA0B,EAAPwF,GACvBD,EAAIlG,iBAAmBxoE,EAAKu4B,KAC5Bm2C,EAAI7I,aAAc,EAAI1mE,EAAY6yB,YAAYhyB,EAAMu4B,GACpDA,GAAK,EACLm2C,EAAIE,2BAA6B5uE,EAAKu4B,KACtCm2C,EAAI1I,yBAA2BhmE,EAAKu4B,KACpCm2C,EAAIxM,IAA0B,GAAP,GAAZliE,EAAKu4B,MAChBm2C,EAAItM,IAA0B,GAAP,GAAZpiE,EAAKu4B,MAChB,IAAIs2C,EAAa7uE,EAAKu4B,KAStB,GARAm2C,EAAII,mCAAkD,EAAbD,GACzCH,EAAIK,6BAA4C,EAAbF,GACnCH,EAAIM,+BAA8C,EAAbH,GACrCH,EAAIO,oBAAmC,EAAbJ,GAC1BH,EAAIQ,0BAAyC,GAAbL,GAChCH,EAAI/D,0BAAyC,GAAbkE,GAChCH,EAAIlC,yBAA2BxsE,EAAKu4B,KAEhCm2C,EAAI7M,gCAAiC,CAGvC,IAFA,IAAIE,EAAiB,GAEdxpC,EAAIr3B,EAAS2rB,GAAU,CAC5B,IAAIsiD,EAAgBnvE,EAAKu4B,KACzBwpC,EAAe9gE,KAAK,CAClB6gE,IAAqB,GAAhBqN,EACLnN,IAAKmN,GAAiB,IAI1BT,EAAI3M,eAAiBA,EAGvB,IAAIqN,EAAc,GAEdV,EAAII,iCACNM,EAAYnuE,KAAK,mCAGfytE,EAAIK,2BACNK,EAAYnuE,KAAK,6BAGfytE,EAAIM,6BACNI,EAAYnuE,KAAK,+BAGfytE,EAAIO,kBACNG,EAAYnuE,KAAK,oBAGfytE,EAAIQ,wBACNE,EAAYnuE,KAAK,0BAGfmuE,EAAYluE,OAAS,IACvB8sE,GAAe,GACf,EAAIpvE,EAAM8F,MAAM,iCAAiC0qE,EAAYjuE,KAAK,YAGhEo/D,EAAQ4N,WACV5N,EAAQ2I,IAAMwF,GAEdnO,EAAQqF,YAAYsD,IAAMwF,EAC1BnO,EAAQqF,YAAYyH,IAAM,IAG5B,MAEF,KAAK,MACHnsE,GAAS,EAAI/B,EAAY6yB,YAAYhyB,EAAM6sB,IAC3C2zC,EAAO,IACFlsB,OAAQ,EAAIn1C,EAAY6yB,YAAYhyB,EAAM6sB,EAAW,GAC1D2zC,EAAKt/D,QAAS,EAAI/B,EAAY8yB,YAAYjyB,EAAM6sB,EAAW,GAC3D2zC,EAAK9N,QAAU8N,EAAKt/D,OAAS2rB,EAAW,EACxC2zC,EAAK6O,UAAYrvE,EAAK6sB,EAAW,GACjC2zC,EAAK8O,WAAatvE,EAAK6sB,EAAW,GAClC0zC,EAAQ4N,YAAa,EAEE,IAAnB3N,EAAK6O,YACP7O,EAAK0I,IAAM3I,EAAQ2I,IACnB1I,EAAK6M,IAAM9M,EAAQ8M,IAAIpoD,MAAM,GAC7Bu7C,EAAK4M,IAAM7M,EAAQ6M,IACnB5M,EAAK2M,IAAM5M,EAAQ4M,IAAIloD,MAAM,IAG/Bs7C,EAAQqF,YAAcpF,EACtB,MAEF,KAAK,MAGoB,KAFvBA,EAAOD,EAAQqF,aAENyJ,YACPpC,EAAe1M,EAASC,EAAKlsB,OAC7B8zB,EAAa7H,IAIfmI,EAAiBnI,EAASvgE,EAAM6sB,EADhC3rB,EAASs/D,EAAK9N,QAAU7lC,GAExB,MAEF,KAAK,OACH,EAAIjuB,EAAM8F,MAAM,yDAElB,KAAK,MACL,KAAK,MACL,KAAK,MACL,KAAK,MACHxD,GAAS,EAAI/B,EAAY6yB,YAAYhyB,EAAM6sB,GAC3C,MAEF,QACE,MAAM,IAAIltB,MAAM,4BAA8B4L,EAAKS,SAAS,KAGhE6gB,GAAY3rB,GAEd,MAAO+D,GACP,GAAI+oE,GAAgB3uE,KAAKogE,qBACvB,MAAM,IAAIN,EAASl6D,EAAE8G,UAErB,EAAInN,EAAM8F,MAAM,iCAAiCO,EAAE8G,aAIvD1M,KAAKk/D,MA+/BT,SAA6BgC,GAM3B,IALA,IAAIZ,EAAMY,EAAQE,IACdjL,EAAa+K,EAAQ/K,WACrB0G,EAAkByD,EAAIyB,KACtBmO,EAAe,GAEVztE,EAAI,EAAGiG,EAAKw4D,EAAQhC,MAAMr9D,OAAQY,EAAIiG,EAAIjG,IAAK,CACtD,IAEIujB,EAFAm7C,EAAOD,EAAQhC,MAAMz8D,GACrB0tE,EAAmB,GAGvB,IAAKnqD,EAAI,EAAGA,EAAI62C,EAAiB72C,IAC/BmqD,EAAiBnqD,GAAK6mD,EAAc3L,EAASC,EAAMn7C,GAGrD,IASIsa,EAAO5N,EAEPwG,EACAuL,EACAm8B,EACAG,EACAqP,EAfAC,EAAQF,EAAiB,GACzBG,EAAM,IAAIviD,kBAAkBsiD,EAAMnwC,MAAMr+B,OAASg7D,GACjDh2C,EAAS,CACXwzB,KAAMg2B,EAAMh2B,KACZmlB,IAAK6Q,EAAM7Q,IACXnqC,MAAOg7C,EAAMh7C,MACbC,OAAQ+6C,EAAM/6C,OACd4K,MAAOowC,GAGL1iE,EAAM,EAOV,GAAIuzD,EAAKsF,6BAA6B8I,2BAA4B,CAChE,IAAIgB,EAAqC,IAApB1T,EACjB2T,EAAUL,EAAiB,GAAGjwC,MAC9BuwC,EAAUN,EAAiB,GAAGjwC,MAC9BwwC,EAAUP,EAAiB,GAAGjwC,MAC9BywC,EAAUJ,EAAiBJ,EAAiB,GAAGjwC,MAAQ,KAE3DxN,EAA0B,IAAhB,MADV4N,EAAQ61B,EAAW,GAAGe,UAAY,IAElC,IAAI0Z,EAAazP,EAAKhL,WAAW,GAC7B0a,EAAUhU,EAAkB,EAGhC,GAFAp4B,EAAK+rC,EAAQ3uE,OAER+uE,EAAWrO,sBAAsB4K,yBAUpC,IAAKj0C,EAAI,EAAGA,EAAIuL,EAAIvL,IAAKtrB,GAAOijE,EAAS,CACvCjQ,EAAK4P,EAAQt3C,GAAKxG,EAClBquC,EAAK0P,EAAQv3C,GAEb,MAAM/T,EAAIy7C,IADVwP,EAAKM,EAAQx3C,IACQ6nC,GAAM,GAC3BuP,EAAI1iE,KAASuX,EAAIirD,GAAM9vC,EACvBgwC,EAAI1iE,KAASuX,GAAKmb,EAClBgwC,EAAI1iE,KAASuX,EAAI47C,GAAMzgC,OAhBzB,IAAKpH,EAAI,EAAGA,EAAIuL,EAAIvL,IAAKtrB,GAAOijE,EAC9BjQ,EAAK4P,EAAQt3C,GAAKxG,EAClBquC,EAAK0P,EAAQv3C,GACbk3C,EAAKM,EAAQx3C,GACbo3C,EAAI1iE,KAASgzD,EAAK,MAAQwP,GAAM9vC,EAChCgwC,EAAI1iE,KAASgzD,EAAK,OAAUG,EAAK,OAAUqP,GAAM9vC,EACjDgwC,EAAI1iE,KAASgzD,EAAK,MAAQG,GAAMzgC,EAcpC,GAAIiwC,EACF,IAAKr3C,EAAI,EAAGtrB,EAAM,EAAGsrB,EAAIuL,EAAIvL,IAAKtrB,GAAO,EACvC0iE,EAAI1iE,GAAO+iE,EAAQz3C,GAAKxG,GAAU4N,OAItC,IAAKta,EAAI,EAAGA,EAAI62C,EAAiB72C,IAAK,CACpC,IAAIka,EAAQiwC,EAAiBnqD,GAAGka,MAIhC,IAFAxN,EAA0B,IAAhB,MADV4N,EAAQ61B,EAAWnwC,GAAGkxC,UAAY,IAG7BtpD,EAAMoY,EAAGkT,EAAI,EAAGuL,EAAKvE,EAAMr+B,OAAQq3B,EAAIuL,EAAIvL,IAC9Co3C,EAAI1iE,GAAOsyB,EAAMhH,GAAKxG,GAAU4N,EAChC1yB,GAAOivD,EAKbqT,EAAatuE,KAAKilB,GAGpB,OAAOqpD,EArlCQY,CAAoB5P,GACjClhE,KAAKq1B,MAAQ6rC,EAAQE,IAAIT,KAAOO,EAAQE,IAAIZ,MAC5CxgE,KAAKs1B,OAAS4rC,EAAQE,IAAIJ,KAAOE,EAAQE,IAAIP,MAC7C7gE,KAAK68D,gBAAkBqE,EAAQE,IAAIW,OAqmCvC,IAAIwI,EAAU,WACZ,SAASA,EAAQl1C,EAAOC,GACtB,IAAIy7C,GAAe,EAAIjxE,EAAYoyB,MAAMzsB,KAAKC,IAAI2vB,EAAOC,IAAW,EACpEt1B,KAAKgxE,OAAS,GAEd,IAAK,IAAIvuE,EAAI,EAAGA,EAAIsuE,EAActuE,IAAK,CACrC,IAAI4P,EAAQ,CACVgjB,QACAC,SACA4K,MAAO,IAETlgC,KAAKgxE,OAAOpvE,KAAKyQ,GACjBgjB,EAAQ5vB,KAAKsnB,KAAKsI,EAAQ,GAC1BC,EAAS7vB,KAAKsnB,KAAKuI,EAAS,IAoDhC,OAhDAi1C,EAAQ/lD,UAAY,CAClBqV,MAAO,SAAuBp3B,EAAGy2B,GAK/B,IAJA,IAEI7mB,EAFA4+D,EAAe,EACf9xE,EAAQ,EAGL8xE,EAAejxE,KAAKgxE,OAAOnvE,QAAQ,CAExC,IAAIozC,EAAQxyC,EAAIy2B,GADhB7mB,EAAQrS,KAAKgxE,OAAOC,IACM57C,MAE1B,QAA2BlnB,IAAvBkE,EAAM6tB,MAAM+U,GAAsB,CACpC91C,EAAQkT,EAAM6tB,MAAM+U,GACpB,MAGF5iC,EAAM4iC,MAAQA,EACdxyC,IAAM,EACNy2B,IAAM,EACN+3C,IAGFA,KACA5+D,EAAQrS,KAAKgxE,OAAOC,IACd/wC,MAAM7tB,EAAM4iC,OAAS91C,EAC3Ba,KAAKixE,aAAeA,SACbjxE,KAAKb,OAEdqrE,eAAgB,WACd,IAAIn4D,EAAQrS,KAAKgxE,OAAOhxE,KAAKixE,cAC7B5+D,EAAM6tB,MAAM7tB,EAAM4iC,UAEpBw1B,UAAW,WACT,IAAIwG,EAAejxE,KAAKixE,aACpB5+D,EAAQrS,KAAKgxE,OAAOC,GACpB9xE,EAAQkT,EAAM6tB,MAAM7tB,EAAM4iC,OAG9B,QAFAg8B,EAEmB,GACjBjxE,KAAKb,MAAQA,GACN,IAGTa,KAAKixE,aAAeA,GACpB5+D,EAAQrS,KAAKgxE,OAAOC,IACd/wC,MAAM7tB,EAAM4iC,OAAS91C,GACpB,KAGJorE,EAjEK,GAoEVD,EAAgB,WAClB,SAASA,EAAcj1C,EAAOC,EAAQ47C,GACpC,IAAIH,GAAe,EAAIjxE,EAAYoyB,MAAMzsB,KAAKC,IAAI2vB,EAAOC,IAAW,EACpEt1B,KAAKgxE,OAAS,GAEd,IAAK,IAAIvuE,EAAI,EAAGA,EAAIsuE,EAActuE,IAAK,CAGrC,IAFA,IAAIy9B,EAAQ,IAAIt/B,WAAWy0B,EAAQC,GAE1B4D,EAAI,EAAGuL,EAAKvE,EAAMr+B,OAAQq3B,EAAIuL,EAAIvL,IACzCgH,EAAMhH,GAAKg4C,EAGb,IAAI7+D,EAAQ,CACVgjB,QACAC,SACA4K,SAEFlgC,KAAKgxE,OAAOpvE,KAAKyQ,GACjBgjB,EAAQ5vB,KAAKsnB,KAAKsI,EAAQ,GAC1BC,EAAS7vB,KAAKsnB,KAAKuI,EAAS,IAgEhC,OA5DAg1C,EAAc9lD,UAAY,CACxBqV,MAAO,SAA6Bp3B,EAAGy2B,EAAGi4C,GAGxC,IAFA,IAAIF,EAAe,EAEZA,EAAejxE,KAAKgxE,OAAOnvE,QAAQ,CACxC,IAAIwQ,EAAQrS,KAAKgxE,OAAOC,GACpBh8B,EAAQxyC,EAAIy2B,EAAI7mB,EAAMgjB,MAC1BhjB,EAAM4iC,MAAQA,EACd,IAAI91C,EAAQkT,EAAM6tB,MAAM+U,GAExB,GAAc,MAAV91C,EACF,MAGF,GAAIA,EAAQgyE,EAGV,OAFAnxE,KAAKixE,aAAeA,EACpBjxE,KAAKoxE,mBACE,EAGT3uE,IAAM,EACNy2B,IAAM,EACN+3C,IAIF,OADAjxE,KAAKixE,aAAeA,EAAe,GAC5B,GAETzG,eAAgB,SAAsC2G,GACpD,IAAI9+D,EAAQrS,KAAKgxE,OAAOhxE,KAAKixE,cAC7B5+D,EAAM6tB,MAAM7tB,EAAM4iC,OAASk8B,EAAY,EACvCnxE,KAAKoxE,mBAEPA,gBAAiB,WAKf,IAJA,IAAIC,EAAarxE,KAAKixE,aAClB5+D,EAAQrS,KAAKgxE,OAAOK,GACpBC,EAAej/D,EAAM6tB,MAAM7tB,EAAM4iC,SAE5Bo8B,GAAc,IACrBh/D,EAAQrS,KAAKgxE,OAAOK,IACdnxC,MAAM7tB,EAAM4iC,OAASq8B,GAG/B7G,UAAW,WACT,IAAIwG,EAAejxE,KAAKixE,aACpB5+D,EAAQrS,KAAKgxE,OAAOC,GACpB9xE,EAAQkT,EAAM6tB,MAAM7tB,EAAM4iC,OAI9B,OAHA5iC,EAAM6tB,MAAM7tB,EAAM4iC,OAAS,QAC3Bg8B,EAEmB,KAInBjxE,KAAKixE,aAAeA,GACpB5+D,EAAQrS,KAAKgxE,OAAOC,IACd/wC,MAAM7tB,EAAM4iC,OAAS91C,GACpB,KAGJmrE,EAnFW,GAsFhBuB,EAAW,WACb,IAAI0F,EAAkB,GAElBC,EAAuB,IAAI5wE,WAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACrQ6wE,EAAiB,IAAI7wE,WAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAC/P8wE,EAAiB,IAAI9wE,WAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAEnQ,SAASirE,EAASx2C,EAAOC,EAAQ4uC,EAASwG,EAAeU,GAGvD,IAAIuG,EAFJ3xE,KAAKq1B,MAAQA,EACbr1B,KAAKs1B,OAASA,EAIZq8C,EADc,OAAZzN,EACkBwN,EACC,OAAZxN,EACWuN,EAEAD,EAGtBxxE,KAAK2xE,kBAAoBA,EACzB,IAAIC,EAAmBv8C,EAAQC,EAG/B,IAAIk3C,EAFJxsE,KAAK6xE,sBAAwB,IAAIjxE,WAAWgxE,GAC5C5xE,KAAKssE,gBAAkB,IAAI1rE,WAAWgxE,GAIpCpF,EADEpB,EAAK,GACgB,IAAIvmD,YAAY+sD,GAC9BxG,EAAK,EACS,IAAI3vB,YAAYm2B,GAEhB,IAAIhxE,WAAWgxE,GAGxC5xE,KAAKwsE,qBAAuBA,EAC5BxsE,KAAK8xE,gBAAkB,IAAIlxE,WAAWgxE,GACtC,IAAInF,EAAc,IAAI7rE,WAAWgxE,GAEjC,GAAsB,IAAlBlH,EACF,IAAK,IAAIjoE,EAAI,EAAGA,EAAImvE,EAAkBnvE,IACpCgqE,EAAYhqE,GAAKioE,EAIrB1qE,KAAKysE,YAAcA,EACnBzsE,KAAK65B,QAuSP,OApSAgyC,EAASrnD,UAAY,CACnBwnD,WAAY,SAA6B/rB,GACvCjgD,KAAKigD,QAAUA,GAEjBpmB,MAAO,WACL75B,KAAKkgD,SAAW,IAAIM,UAAU,IAC9BxgD,KAAKkgD,SAAS,GAAK,EACnBlgD,KAAKkgD,SAASqxB,IAAmB,GACjCvxE,KAAKkgD,SAtDe,IAsDe,GAErC6xB,yBAA0B,SAA2C/zB,EAAKg0B,EAAQ/8B,GAChF,IAKIxyC,EALAovE,EAAwB7xE,KAAK6xE,sBAC7Bx8C,EAAQr1B,KAAKq1B,MACbC,EAASt1B,KAAKs1B,OACd+kB,EAAO23B,EAAS,EAChBzG,EAAQyG,EAAS,EAAI38C,EAGrB2oB,EAAM,IACRv7C,EAAIwyC,EAAQ5f,EAERglB,IACFw3B,EAAsBpvE,EAAI,IAAM,IAG9B8oE,IACFsG,EAAsBpvE,EAAI,IAAM,IAGlCovE,EAAsBpvE,IAAM,GAG1Bu7C,EAAM,EAAI1oB,IACZ7yB,EAAIwyC,EAAQ5f,EAERglB,IACFw3B,EAAsBpvE,EAAI,IAAM,IAG9B8oE,IACFsG,EAAsBpvE,EAAI,IAAM,IAGlCovE,EAAsBpvE,IAAM,GAG1B43C,IACFw3B,EAAsB58B,EAAQ,IAAM,GAGlCs2B,IACFsG,EAAsB58B,EAAQ,IAAM,GAGtC48B,EAAsB58B,IAAU,KAElCg3B,+BAAgC,WAe9B,IAdA,IAAIhsB,EAAUjgD,KAAKigD,QACf5qB,EAAQr1B,KAAKq1B,MACbC,EAASt1B,KAAKs1B,OACdk3C,EAAuBxsE,KAAKwsE,qBAC5BF,EAAkBtsE,KAAKssE,gBACvBuF,EAAwB7xE,KAAK6xE,sBAC7BC,EAAkB9xE,KAAK8xE,gBACvB5xB,EAAWlgD,KAAKkgD,SAChB+xB,EAASjyE,KAAK2xE,kBACdlF,EAAczsE,KAAKysE,YAKd3pB,EAAK,EAAGA,EAAKxtB,EAAQwtB,GAAM,EAClC,IAAK,IAAI5pB,EAAI,EAAGA,EAAI7D,EAAO6D,IAGzB,IAFA,IAAI+b,EAAQ6N,EAAKztB,EAAQ6D,EAEhBg5C,EAAK,EAAGA,EAAK,EAAGA,IAAMj9B,GAAS5f,EAAO,CAC7C,IAAI5yB,EAAIqgD,EAAKovB,EAEb,GAAIzvE,GAAK6yB,EACP,MAKF,GAFAw8C,EAAgB78B,KAfK,GAiBjBu3B,EAAqBv3B,IAAW48B,EAAsB58B,GAA1D,CAIA,IAAI0M,EAAeswB,EAAOJ,EAAsB58B,IAGhD,GAFegL,EAAQK,QAAQJ,EAAUyB,GAE3B,CACZ,IAAIpO,EAAOvzC,KAAKmyE,cAAc1vE,EAAGy2B,EAAG+b,GACpCq3B,EAAgBr3B,GAAS1B,EACzBi5B,EAAqBv3B,GAAS,EAC9Bj1C,KAAK+xE,yBAAyBtvE,EAAGy2B,EAAG+b,GACpC68B,EAAgB78B,IA3BI,EA8BtBw3B,EAAYx3B,KACZ68B,EAAgB78B,IAhCF,KAqCtBk9B,cAAe,SAAgCn0B,EAAKg0B,EAAQ/8B,GAC1D,IAIIm9B,EAAcC,EAAOC,EAAOC,EAC5B5wB,EAAc6wB,EALdn9C,EAAQr1B,KAAKq1B,MACbC,EAASt1B,KAAKs1B,OACdk3C,EAAuBxsE,KAAKwsE,qBAC5BF,EAAkBtsE,KAAKssE,gBAG3BiG,EAAgBP,EAAS,GAAyC,IAApCxF,EAAqBv3B,EAAQ,GAEvD+8B,EAAS,EAAI38C,GAA6C,IAApCm3C,EAAqBv3B,EAAQ,IACrDq9B,EAAQhG,EAAgBr3B,EAAQ,GAI9Bm9B,EAFEG,EAEa,EAAID,GADnBD,EAAQ/F,EAAgBr3B,EAAQ,IAGjB,EAAIq9B,EAAQA,GAI7BF,EAFSG,EAEM,GADfF,EAAQ/F,EAAgBr3B,EAAQ,IACLo9B,EAEZ,EAGjB,IAAII,EAAyB,EAAIL,EA2BjC,OA1BAG,EAAgBv0B,EAAM,GAA6C,IAAxCwuB,EAAqBv3B,EAAQ5f,GAEpD2oB,EAAM,EAAI1oB,GAAkD,IAAxCk3C,EAAqBv3B,EAAQ5f,IACnDi9C,EAAQhG,EAAgBr3B,EAAQ5f,GAI9B+8C,EAFEG,EAEa,EAAID,GADnBD,EAAQ/F,EAAgBr3B,EAAQ5f,IACGo9C,EAEpB,EAAIH,EAAQA,EAAQG,GAIrCL,EAFSG,EAEM,GADfF,EAAQ/F,EAAgBr3B,EAAQ5f,IACLg9C,EAAQI,EAEpBA,EAGbL,GAAgB,GAClBzwB,EAAe,EAAIywB,EACnBI,EAAUxyE,KAAKigD,QAAQK,QAAQtgD,KAAKkgD,SAAUyB,KAE9CA,EAAe,EAAIywB,EACnBI,EAA8D,EAApDxyE,KAAKigD,QAAQK,QAAQtgD,KAAKkgD,SAAUyB,IAGzC6wB,GAETtG,2BAA4B,WAc1B,IAbA,IAaqBwG,EAbjBzyB,EAAUjgD,KAAKigD,QACf5qB,EAAQr1B,KAAKq1B,MACbC,EAASt1B,KAAKs1B,OACdk3C,EAAuBxsE,KAAKwsE,qBAC5BqF,EAAwB7xE,KAAK6xE,sBAC7B3xB,EAAWlgD,KAAKkgD,SAChBusB,EAAczsE,KAAKysE,YACnBqF,EAAkB9xE,KAAK8xE,gBAGvBjwE,EAASwzB,EAAQC,EACjBq9C,EAAiB,EAARt9C,EAEJu9C,EAAS,EAAcA,EAAS/wE,EAAQ+wE,EAASF,EAAW,CACnEA,EAAYjtE,KAAKiJ,IAAI7M,EAAQ+wE,EAASD,GAEtC,IAAK,IAAIz5C,EAAI,EAAGA,EAAI7D,EAAO6D,IACzB,IAAK,IAAI+b,EAAQ29B,EAAS15C,EAAG+b,EAAQy9B,EAAWz9B,GAAS5f,EACvD,GAAKm3C,EAAqBv3B,IAAuD,KAVnE,EAUuB68B,EAAgB78B,IAArD,CAIA,IAAI0M,EAAe,GAEsC,KAfnC,EAejBmwB,EAAgB78B,MACnB68B,EAAgB78B,IAhBI,EAkBpB0M,EAAgC,KADkB,IAA/BkwB,EAAsB58B,IACL,GAAK,IAG3C,IAAIoL,EAAMJ,EAAQK,QAAQJ,EAAUyB,GACpC6qB,EAAqBv3B,GAASu3B,EAAqBv3B,IAAU,EAAIoL,EACjEosB,EAAYx3B,KACZ68B,EAAgB78B,IAzBF,KA8BtBk3B,eAAgB,WAkBd,IAjBA,IAeI0G,EAfA5yB,EAAUjgD,KAAKigD,QACf5qB,EAAQr1B,KAAKq1B,MACbC,EAASt1B,KAAKs1B,OACdu8C,EAAwB7xE,KAAK6xE,sBAC7BrF,EAAuBxsE,KAAKwsE,qBAC5BF,EAAkBtsE,KAAKssE,gBACvBpsB,EAAWlgD,KAAKkgD,SAChB+xB,EAASjyE,KAAK2xE,kBACdlF,EAAczsE,KAAKysE,YACnBqF,EAAkB9xE,KAAK8xE,gBAGvBgB,EAAaz9C,EACb09C,EAAsB,EAAR19C,EACd29C,EAAwB,EAAR39C,EAGXytB,EAAK,EAAGA,EAAKxtB,EAAQwtB,EAAK+vB,EAAO,CACxCA,EAAQptE,KAAKiJ,IAAIo0C,EAAK,EAAGxtB,GAIzB,IAHA,IAAI29C,EAAYnwB,EAAKztB,EACjB69C,EAAgBpwB,EAAK,EAAIxtB,EAEpB4D,EAAI,EAAGA,EAAI7D,EAAO6D,IAAK,CAC9B,IAKIqa,EALAq/B,EAASK,EAAY/5C,EAErBg5C,EAAK,EACLj9B,EAAQ29B,EACRnwE,EAAIqgD,EAGR,GANeowB,GAA6C,IAA5BpB,EAAgBc,IAA0D,IAAzCd,EAAgBc,EAASE,IAA+D,IAA1ChB,EAAgBc,EAASG,IAAkE,IAA5CjB,EAAgBc,EAASI,IAA0D,IAAlCnB,EAAsBe,IAAgE,IAA/Cf,EAAsBe,EAASE,IAAqE,IAAhDjB,EAAsBe,EAASG,IAAwE,IAAlDlB,EAAsBe,EAASI,GAMhX,CAGZ,IAF+B/yB,EAAQK,QAAQJ,EApRjC,IAsRiB,CAC7BusB,EAAYmG,KACZnG,EAAYmG,EAASE,KACrBrG,EAAYmG,EAASG,KACrBtG,EAAYmG,EAASI,KACrB,SAKS,KAFXd,EAAKjyB,EAAQK,QAAQJ,EAAUqxB,IAAoB,EAAItxB,EAAQK,QAAQJ,EAAUqxB,MAG/E9uE,EAAIqgD,EAAKovB,EACTj9B,GAASi9B,EAAK78C,GAGhBke,EAAOvzC,KAAKmyE,cAAc1vE,EAAGy2B,EAAG+b,GAChCq3B,EAAgBr3B,GAAS1B,EACzBi5B,EAAqBv3B,GAAS,EAC9Bj1C,KAAK+xE,yBAAyBtvE,EAAGy2B,EAAG+b,GACpC68B,EAAgB78B,IAzCM,EA0CtBA,EAAQ29B,EAER,IAAK,IAAIO,EAAKrwB,EAAIqwB,GAAM1wE,EAAG0wE,IAAMl+B,GAAS5f,EACxCo3C,EAAYx3B,KAGdi9B,IAGF,IAAKzvE,EAAIqgD,EAAKovB,EAAIzvE,EAAIowE,EAAOpwE,IAAKwyC,GAAS5f,EACzC,IAAIm3C,EAAqBv3B,IAAuD,KArDlE,EAqDsB68B,EAAgB78B,IAApD,CAIA,IAAI0M,EAAeswB,EAAOJ,EAAsB58B,IAG/B,IAFFgL,EAAQK,QAAQJ,EAAUyB,KAGvCpO,EAAOvzC,KAAKmyE,cAAc1vE,EAAGy2B,EAAG+b,GAChCq3B,EAAgBr3B,GAAS1B,EACzBi5B,EAAqBv3B,GAAS,EAC9Bj1C,KAAK+xE,yBAAyBtvE,EAAGy2B,EAAG+b,GACpC68B,EAAgB78B,IAhEI,GAmEtBw3B,EAAYx3B,SAKpBm3B,wBAAyB,WACvB,IAAInsB,EAAUjgD,KAAKigD,QACfC,EAAWlgD,KAAKkgD,SAGpB,GAAe,MAFFD,EAAQK,QAAQJ,EAAUqxB,IAAoB,EAAItxB,EAAQK,QAAQJ,EAAUqxB,IAAoB,EAAItxB,EAAQK,QAAQJ,EAAUqxB,IAAoB,EAAItxB,EAAQK,QAAQJ,EAAUqxB,IAG3L,MAAM,IAAIzR,EAAS,iCAIlB+L,EApVM,GAuVXuH,EAAY,WACd,SAASA,KAsHT,OApHAA,EAAU5uD,UAAUmpD,UAAY,SAA4BvH,EAAUiN,EAAI9Z,GAGxE,IAFA,IAAI+Z,EAAKlN,EAAS,GAET3jE,EAAI,EAAGiG,EAAK09D,EAASvkE,OAAQY,EAAIiG,EAAIjG,IAC5C6wE,EAAKtzE,KAAKuzE,QAAQD,EAAIlN,EAAS3jE,GAAI4wE,EAAI9Z,GAGzC,OAAO+Z,GAGTF,EAAU5uD,UAAUgvD,OAAS,SAAgBpkE,EAAQsjB,EAAQxI,GAC3D,IAAIgoD,EAAKx/C,EAAS,EACd+gD,EAAK/gD,EAAS,EACdygD,EAAKzgD,EAASxI,EAAO,EACrBwpD,EAAKhhD,EAASxI,EAClB9a,EAAO8iE,KAAQ9iE,EAAOqkE,KACtBrkE,EAAOskE,KAAQtkE,EAAO+jE,KACtB/jE,EAAO8iE,KAAQ9iE,EAAOqkE,KACtBrkE,EAAOskE,KAAQtkE,EAAO+jE,KACtB/jE,EAAO8iE,KAAQ9iE,EAAOqkE,KACtBrkE,EAAOskE,KAAQtkE,EAAO+jE,KACtB/jE,EAAO8iE,GAAM9iE,EAAOqkE,GACpBrkE,EAAOskE,GAAMtkE,EAAO+jE,IAGtBC,EAAU5uD,UAAU+uD,QAAU,SAA2BD,EAAIK,EAAUN,EAAI9Z,GACzE,IAMI92D,EAAGy2B,EAAG2f,EAAGlL,EAAGimC,EAAG3iE,EANf4iE,EAAUP,EAAGj+C,MACby+C,EAAWR,EAAGh+C,OACdy+C,EAAUT,EAAGpzC,MACb7K,EAAQs+C,EAASt+C,MACjBC,EAASq+C,EAASr+C,OAClB4K,EAAQyzC,EAASzzC,MAGrB,IAAK2Y,EAAI,EAAGp2C,EAAI,EAAGA,EAAIqxE,EAAUrxE,IAG/B,IAFAkrC,EAAQ,EAAJlrC,EAAQ4yB,EAEP6D,EAAI,EAAGA,EAAI26C,EAAS36C,IAAK2f,IAAKlL,GAAK,EACtCzN,EAAMyN,GAAKomC,EAAQl7B,GAIvBk7B,EAAUT,EAAGpzC,MAAQ,KACrB,IACI8zC,EAAY,IAAIzG,aAAal4C,EAAQ,GAEzC,GAAc,IAAVA,GACF,GAAiB,KAAP,EAALg+C,GACH,IAAKpiE,EAAI,EAAG4nC,EAAI,EAAG5nC,EAAIqkB,EAAQrkB,IAAK4nC,GAAKxjB,EACvC6K,EAAM2Y,IAAM,QAIhB,IAAK5nC,EAAI,EAAG4nC,EAAI,EAAG5nC,EAAIqkB,EAAQrkB,IAAK4nC,GAAKxjB,EACvC2+C,EAAUhmE,IAAIkyB,EAAMtxB,SAASiqC,EAAGA,EAAIxjB,GAXpB,GAYhBr1B,KAAKwzE,OAAOQ,EAZI,EAYsB3+C,GACtCr1B,KAAK+H,OAAOisE,EAbI,EAasB3+C,GACtC6K,EAAMlyB,IAAIgmE,EAAUplE,SAdJ,IAc4CymB,GAAQwjB,GAIxE,IAAIo7B,EAAa,GACbC,EAAa,GAEjB,IAAKzxE,EAAI,EAAGA,EAAIwxE,EAAYxxE,IAC1ByxE,EAAWtyE,KAAK,IAAI2rE,aAAaj4C,EAAS,IAG5C,IAAIntB,EACAgsE,EAAgB,EAGpB,GAFAb,EA3BoB,EA2BCh+C,EAEN,IAAXA,GACF,GAAiB,KAAP,EAALikC,GACH,IAAKqa,EAAI,EAAGA,EAAIv+C,EAAOu+C,IACrB1zC,EAAM0zC,IAAM,QAIhB,IAAKA,EAAI,EAAGA,EAAIv+C,EAAOu+C,IAAK,CAC1B,GAAsB,IAAlBO,EAAqB,CAGvB,IAFAF,EAAaxuE,KAAKiJ,IAAI2mB,EAAQu+C,EAAGK,GAE5Bp7B,EAAI+6B,EAAGjmC,EAxCE,EAwCiBA,EAAI2lC,EAAIz6B,GAAKxjB,EAAOsY,IACjD,IAAKxlC,EAAI,EAAGA,EAAI8rE,EAAY9rE,IAC1B+rE,EAAW/rE,GAAGwlC,GAAKzN,EAAM2Y,EAAI1wC,GAIjCgsE,EAAgBF,EAIlB,IAAI7kE,EAAS8kE,IADbC,GAKA,GAHAn0E,KAAKwzE,OAAOpkE,EAnDI,EAmDmBkmB,GACnCt1B,KAAK+H,OAAOqH,EApDI,EAoDmBkmB,GAEb,IAAlB6+C,EAGF,IAFAt7B,EAAI+6B,EAAIK,EAAa,EAEhBtmC,EAzDS,EAyDUA,EAAI2lC,EAAIz6B,GAAKxjB,EAAOsY,IAC1C,IAAKxlC,EAAI,EAAGA,EAAI8rE,EAAY9rE,IAC1B+3B,EAAM2Y,EAAI1wC,GAAK+rE,EAAW/rE,GAAGwlC,GAOvC,MAAO,CACLtY,QACAC,SACA4K,UAIGkzC,EAvHO,GA0HZ/F,EAAwB,WAC1B,SAASA,IACP+F,EAAUz9B,KAAK31C,MAwFjB,OArFAqtE,EAAsB7oD,UAAYvlB,OAAO2J,OAAOwqE,EAAU5uD,WAE1D6oD,EAAsB7oD,UAAUzc,OAAS,SAAqCC,EAAG0qB,EAAQ7wB,GACvF,IAEIq3B,EAAGjU,EAAGmvD,EAASrtC,EAFf6Q,EAAM/1C,GAAU,EAGhBwyE,GAAS,kBACTC,GAAQ,iBACRC,EAAQ,iBACRpJ,EAAQ,iBACRjwD,EAAI,kBAIR,IAFAge,GARAxG,GAAkB,GAQL,EAERzN,EAAI2yB,EAAM,EAAG3yB,IAAKiU,GAAK,EAC1BlxB,EAAEkxB,IAJK,kBAUT,IAFAk7C,EAAUjJ,EAAQnjE,GADlBkxB,EAAIxG,EAAS,GACW,GAEnBzN,EAAI2yB,EAAM,EAAG3yB,MAChB8hB,EAAOokC,EAAQnjE,EAAEkxB,EAAI,GACrBlxB,EAAEkxB,GAAKhe,EAAIlT,EAAEkxB,GAAKk7C,EAAUrtC,EAExB9hB,KAJiBiU,GAAK,EAMxBk7C,EAAUjJ,EAAQnjE,GADlBkxB,GAAK,GACmB,GACxBlxB,EAAEkxB,GAAKhe,EAAIlT,EAAEkxB,GAAKk7C,EAAUrtC,EAShC,IAFAqtC,EAAUG,EAAQvsE,GADlBkxB,EAAIxG,EAAS,GACW,GAEnBzN,EAAI2yB,EAAM,EAAG3yB,MAChB8hB,EAAOwtC,EAAQvsE,EAAEkxB,EAAI,GACrBlxB,EAAEkxB,IAAMk7C,EAAUrtC,EAEd9hB,KAJiBiU,GAAK,EAMxBk7C,EAAUG,EAAQvsE,GADlBkxB,GAAK,GACmB,GACxBlxB,EAAEkxB,IAAMk7C,EAAUrtC,EAStB,IAFAqtC,EAAUE,EAAOtsE,GADjBkxB,EAAIxG,GACmB,GAElBzN,EAAI2yB,EAAM,EAAG3yB,MAChB8hB,EAAOutC,EAAOtsE,EAAEkxB,EAAI,GACpBlxB,EAAEkxB,IAAMk7C,EAAUrtC,EAEd9hB,KAJiBiU,GAAK,EAMxBk7C,EAAUE,EAAOtsE,GADjBkxB,GAAK,GACkB,GACvBlxB,EAAEkxB,IAAMk7C,EAAUrtC,EAMtB,GAAY,IAAR6Q,EAIF,IAFAw8B,EAAUC,EAAQrsE,GADlBkxB,EAAIxG,EAAS,GACW,GAEnBzN,EAAI2yB,EAAK3yB,MACZ8hB,EAAOstC,EAAQrsE,EAAEkxB,EAAI,GACrBlxB,EAAEkxB,IAAMk7C,EAAUrtC,EAEd9hB,KAJaiU,GAAK,EAMpBk7C,EAAUC,EAAQrsE,GADlBkxB,GAAK,GACmB,GACxBlxB,EAAEkxB,IAAMk7C,EAAUrtC,GAQnBsmC,EA1FmB,GA6FxBD,EAAsB,WACxB,SAASA,IACPgG,EAAUz9B,KAAK31C,MAmBjB,OAhBAotE,EAAoB5oD,UAAYvlB,OAAO2J,OAAOwqE,EAAU5uD,WAExD4oD,EAAoB5oD,UAAUzc,OAAS,SAAmCC,EAAG0qB,EAAQ7wB,GACnF,IAEIq3B,EAAGjU,EAFH2yB,EAAM/1C,GAAU,EAIpB,IAAKq3B,EAHLxG,GAAkB,EAGDzN,EAAI2yB,EAAM,EAAG3yB,IAAKiU,GAAK,EACtClxB,EAAEkxB,IAAMlxB,EAAEkxB,EAAI,GAAKlxB,EAAEkxB,EAAI,GAAK,GAAK,EAGrC,IAAKA,EAAIxG,EAAS,EAAGzN,EAAI2yB,EAAK3yB,IAAKiU,GAAK,EACtClxB,EAAEkxB,IAAMlxB,EAAEkxB,EAAI,GAAKlxB,EAAEkxB,EAAI,IAAM,GAI5Bk0C,EArBiB,GAwB1B,OAAOpO,EAlwEM,GAqwEfjgE,EAAQigE,SAAWA,GAIb,CAAElgE,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAc,CAC3CI,OAAO,IAETJ,EAAQy1E,gBAAkBA,EAC1Bz1E,EAAQ01E,MAAQ11E,EAAQ21E,MAAQ31E,EAAQoqC,uBAAyBpqC,EAAQ41E,gBAAkB51E,EAAQ61E,gBAAkB71E,EAAQm+B,aAAen+B,EAAQ81E,cAAgB91E,EAAQ+1E,aAAe/1E,EAAQg2E,kBAAe,EAElN,IAAIx1E,EAAQP,EAAoB,GAE5BQ,EAAcR,EAAoB,GAElCisB,EAAUjsB,EAAoB,IAElC,MAAM61E,EACJ,YAAY5rE,GACVjJ,KAAKkI,EAAI,EACTlI,KAAKmI,EAAI,EACT,IACI1F,EAEAorC,EAHA7J,EAAI,IAAIpjC,WAAW,KAEnBs4B,EAAI,EAEJ87C,EAAY/rE,EAAIpH,OAEpB,IAAKY,EAAI,EAAGA,EAAI,MAAOA,EACrBuhC,EAAEvhC,GAAKA,EAGT,IAAKA,EAAI,EAAGA,EAAI,MAAOA,EAErBy2B,EAAIA,GADJ2U,EAAM7J,EAAEvhC,IACMwG,EAAIxG,EAAIuyE,GAAa,IACnChxC,EAAEvhC,GAAKuhC,EAAE9K,GACT8K,EAAE9K,GAAK2U,EAGT7tC,KAAKgkC,EAAIA,EAGX,aAAarjC,GACX,IAAI8B,EAEAorC,EACAonC,EAFAhwD,EAAItkB,EAAKkB,OAGTqG,EAAIlI,KAAKkI,EACTC,EAAInI,KAAKmI,EACT67B,EAAIhkC,KAAKgkC,EACTy5B,EAAS,IAAI78D,WAAWqkB,GAE5B,IAAKxiB,EAAI,EAAGA,EAAIwiB,IAAKxiB,EAInBwyE,EAAOjxC,EADP77B,EAAIA,GADJ0lC,EAAM7J,EADN97B,EAAIA,EAAI,EAAI,MAEE,KAEd87B,EAAE97B,GAAK+sE,EACPjxC,EAAE77B,GAAK0lC,EACP4vB,EAAOh7D,GAAK9B,EAAK8B,GAAKuhC,EAAE6J,EAAMonC,EAAO,KAKvC,OAFAj1E,KAAKkI,EAAIA,EACTlI,KAAKmI,EAAIA,EACFs1D,EAGT,aAAa98D,GACX,OAAOX,KAAKk1E,aAAav0E,GAG3B,QAAQA,GACN,OAAOX,KAAKk1E,aAAav0E,IAK7B5B,EAAQ81E,cAAgBA,EAExB,IACM3vD,EACA2zB,EAFF3b,GACEhY,EAAI,IAAItkB,WAAW,CAAC,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,KAC5Pi4C,EAAI,IAAIpC,WAAW,EAAE,WAAY,UAAW,WAAY,YAAa,UAAW,YAAa,YAAa,SAAU,YAAa,YAAa,OAAQ,WAAY,YAAa,UAAW,WAAY,YAAa,WAAY,WAAY,WAAY,WAAY,UAAW,UAAW,WAAY,UAAW,WAAY,YAAa,UAAW,YAAa,YAAa,SAAU,YAAa,YAAa,QAAS,WAAY,YAAa,UAAW,WAAY,YAAa,WAAY,WAAY,WAAY,WAAY,UAAW,UAAW,WAAY,UAAW,WAAY,WAAY,UAAW,YAAa,YAAa,SAAU,YAAa,YAAa,SAAU,WAAY,YAAa,UAAW,WAAY,YAAa,WAAY,WAAY,WAAY,YAErwB,SAAc91C,EAAM+xB,EAAQ7wB,GAC1B,IAMIY,EAAGy2B,EAAGjU,EANNkwD,EAAK,WACLC,GAAM,UACNC,GAAM,WACNC,EAAK,UACLC,EAAe1zE,EAAS,IAAK,GAC7B2zE,EAAS,IAAI50E,WAAW20E,GAG5B,IAAK9yE,EAAI,EAAGA,EAAIZ,IAAUY,EACxB+yE,EAAO/yE,GAAK9B,EAAK+xB,KAMnB,IAHA8iD,EAAO/yE,KAAO,IACdwiB,EAAIswD,EAAe,EAEZ9yE,EAAIwiB,GACTuwD,EAAO/yE,KAAO,EAGhB+yE,EAAO/yE,KAAOZ,GAAU,EAAI,IAC5B2zE,EAAO/yE,KAAOZ,GAAU,EAAI,IAC5B2zE,EAAO/yE,KAAOZ,GAAU,GAAK,IAC7B2zE,EAAO/yE,KAAOZ,GAAU,GAAK,IAC7B2zE,EAAO/yE,KAAOZ,IAAW,GAAK,IAC9B2zE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd,IAAIgzE,EAAI,IAAIh/B,WAAW,IAEvB,IAAKh0C,EAAI,EAAGA,EAAI8yE,GAAe,CAC7B,IAAKr8C,EAAI,EAAGA,EAAI,KAAMA,EAAGz2B,GAAK,EAC5BgzE,EAAEv8C,GAAKs8C,EAAO/yE,GAAK+yE,EAAO/yE,EAAI,IAAM,EAAI+yE,EAAO/yE,EAAI,IAAM,GAAK+yE,EAAO/yE,EAAI,IAAM,GAGjF,IAIIizE,EACAvwD,EALAjd,EAAIitE,EACJhtE,EAAIitE,EACJpvD,EAAIqvD,EACJ7vD,EAAI8vD,EAIR,IAAKp8C,EAAI,EAAGA,EAAI,KAAMA,EAAG,CACnBA,EAAI,IACNw8C,EAAIvtE,EAAI6d,GAAK7d,EAAIqd,EACjBL,EAAI+T,GACKA,EAAI,IACbw8C,EAAIlwD,EAAIrd,GAAKqd,EAAIQ,EACjBb,EAAI,EAAI+T,EAAI,EAAI,IACPA,EAAI,IACbw8C,EAAIvtE,EAAI6d,EAAIR,EACZL,EAAI,EAAI+T,EAAI,EAAI,KAEhBw8C,EAAI1vD,GAAK7d,GAAKqd,GACdL,EAAI,EAAI+T,EAAI,IAGd,IAAI2U,EAAMroB,EACNmwD,EAAYztE,EAAIwtE,EAAI78B,EAAE3f,GAAKu8C,EAAEtwD,GAAK,EAClCjf,EAASgf,EAAEgU,GACf1T,EAAIQ,EACJA,EAAI7d,EACJA,EAAIA,GAAKwtE,GAAazvE,EAASyvE,IAAc,GAAKzvE,GAAU,EAC5DgC,EAAI2lC,EAGNsnC,EAAKA,EAAKjtE,EAAI,EACdktE,EAAKA,EAAKjtE,EAAI,EACdktE,EAAKA,EAAKrvD,EAAI,EACdsvD,EAAKA,EAAK9vD,EAAI,EAGhB,OAAO,IAAI5kB,WAAW,CAAM,IAALu0E,EAAWA,GAAM,EAAI,IAAMA,GAAM,GAAK,IAAMA,IAAO,GAAK,IAAW,IAALC,EAAWA,GAAM,EAAI,IAAMA,GAAM,GAAK,IAAMA,IAAO,GAAK,IAAW,IAALC,EAAWA,GAAM,EAAI,IAAMA,GAAM,GAAK,IAAMA,IAAO,GAAK,IAAW,IAALC,EAAWA,GAAM,EAAI,IAAMA,GAAM,GAAK,IAAMA,IAAO,GAAK,QAM7Qv2E,EAAQm+B,aAAeA,EAEvB,MAAM04C,EACJ,YAAYC,EAAaC,GACvB91E,KAAK+1E,KAAqB,EAAdF,EACZ71E,KAAKg2E,IAAmB,EAAbF,EAGb,IAAIG,GACFj2E,KAAK+1E,MAAQE,EAAKF,KAClB/1E,KAAKg2E,KAAOC,EAAKD,IAGnB,IAAIC,GACFj2E,KAAK+1E,MAAQE,EAAKF,KAClB/1E,KAAKg2E,KAAOC,EAAKD,IAGnB,GAAGC,GACDj2E,KAAK+1E,MAAQE,EAAKF,KAClB/1E,KAAKg2E,KAAOC,EAAKD,IAGnB,WAAWE,GACLA,GAAU,IACZl2E,KAAKg2E,IAAMh2E,KAAK+1E,OAASG,EAAS,GAAK,EACvCl2E,KAAK+1E,KAAO,IAEZ/1E,KAAKg2E,IAAMh2E,KAAKg2E,MAAQE,EAASl2E,KAAK+1E,MAAQ,GAAKG,EACnDl2E,KAAK+1E,KAAO/1E,KAAK+1E,OAASG,EAAS,GAIvC,UAAUA,GACJA,GAAU,IACZl2E,KAAK+1E,KAAO/1E,KAAKg2E,KAAOE,EAAS,GACjCl2E,KAAKg2E,IAAM,IAEXh2E,KAAK+1E,KAAO/1E,KAAK+1E,MAAQG,EAASl2E,KAAKg2E,MAAQ,GAAKE,EACpDl2E,KAAKg2E,IAAMh2E,KAAKg2E,KAAOE,GAI3B,YAAYA,GACV,IAAIF,EAAKD,EAEI,GAATG,GACFH,EAAO/1E,KAAKg2E,IACZA,EAAMh2E,KAAK+1E,OAEXC,EAAMh2E,KAAKg2E,IACXD,EAAO/1E,KAAK+1E,MAGdG,GAAU,GACVl2E,KAAKg2E,IAAMA,IAAQE,EAASH,GAAQ,GAAKG,EACzCl2E,KAAK+1E,KAAOA,IAASG,EAASF,GAAO,GAAKE,EAG5C,MACEl2E,KAAK+1E,MAAQ/1E,KAAK+1E,KAClB/1E,KAAKg2E,KAAOh2E,KAAKg2E,IAGnB,IAAIC,GACF,IAAIE,GAAUn2E,KAAKg2E,MAAQ,IAAMC,EAAKD,MAAQ,GAC1CI,GAAWp2E,KAAK+1E,OAAS,IAAME,EAAKF,OAAS,GAE7CI,EAAS,aACXC,GAAW,GAGbp2E,KAAKg2E,IAAe,EAATG,EACXn2E,KAAK+1E,KAAiB,EAAVK,EAGd,OAAOnvE,EAAOyrB,GACZzrB,EAAMyrB,GAAU1yB,KAAK+1E,OAAS,GAAK,IACnC9uE,EAAMyrB,EAAS,GAAK1yB,KAAK+1E,MAAQ,GAAK,IACtC9uE,EAAMyrB,EAAS,GAAK1yB,KAAK+1E,MAAQ,EAAI,IACrC9uE,EAAMyrB,EAAS,GAAiB,IAAZ1yB,KAAK+1E,KACzB9uE,EAAMyrB,EAAS,GAAK1yB,KAAKg2E,MAAQ,GAAK,IACtC/uE,EAAMyrB,EAAS,GAAK1yB,KAAKg2E,KAAO,GAAK,IACrC/uE,EAAMyrB,EAAS,GAAK1yB,KAAKg2E,KAAO,EAAI,IACpC/uE,EAAMyrB,EAAS,GAAgB,IAAX1yB,KAAKg2E,IAG3B,OAAOC,GACLj2E,KAAK+1E,KAAOE,EAAKF,KACjB/1E,KAAKg2E,IAAMC,EAAKD,KAKpB,IAAIpB,EAAkB,WACpB,SAASyB,EAAKruE,EAAGid,GACf,OAAOjd,IAAMid,EAAIjd,GAAK,GAAKid,EAG7B,SAASgN,EAAGjqB,EAAG64C,EAAG6X,GAChB,OAAO1wD,EAAI64C,GAAK74C,EAAI0wD,EAGtB,SAAS4d,EAAItuE,EAAG64C,EAAG6X,GACjB,OAAO1wD,EAAI64C,EAAI74C,EAAI0wD,EAAI7X,EAAI6X,EAG7B,SAAS6d,EAAMvuE,GACb,OAAOquE,EAAKruE,EAAG,GAAKquE,EAAKruE,EAAG,IAAMquE,EAAKruE,EAAG,IAG5C,SAASwuE,EAAWxuE,GAClB,OAAOquE,EAAKruE,EAAG,GAAKquE,EAAKruE,EAAG,IAAMquE,EAAKruE,EAAG,IAG5C,SAASyuE,EAAYzuE,GACnB,OAAOquE,EAAKruE,EAAG,GAAKquE,EAAKruE,EAAG,IAAMA,IAAM,EAO1C,IAAI6wC,EAAI,CAAC,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAmF7vB,OAjFA,SAAcl4C,EAAM+xB,EAAQ7wB,GAC1B,IAUIY,EAAGy2B,EAAGjU,EAVNkwD,EAAK,WACLC,EAAK,WACLC,EAAK,WACLC,EAAK,WACLoB,EAAK,WACLC,EAAK,WACLC,EAAK,UACLC,EAAK,WACLtB,EAA8C,GAA/B9vE,KAAKsnB,MAAMlrB,EAAS,GAAK,IACxC2zE,EAAS,IAAI50E,WAAW20E,GAG5B,IAAK9yE,EAAI,EAAGA,EAAIZ,IAAUY,EACxB+yE,EAAO/yE,GAAK9B,EAAK+xB,KAMnB,IAHA8iD,EAAO/yE,KAAO,IACdwiB,EAAIswD,EAAe,EAEZ9yE,EAAIwiB,GACTuwD,EAAO/yE,KAAO,EAGhB+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAOZ,IAAW,GAAK,IAC9B2zE,EAAO/yE,KAAOZ,GAAU,GAAK,IAC7B2zE,EAAO/yE,KAAOZ,GAAU,GAAK,IAC7B2zE,EAAO/yE,KAAOZ,GAAU,EAAI,IAC5B2zE,EAAO/yE,KAAOZ,GAAU,EAAI,IAC5B,IAtCwBmG,EAsCpBytE,EAAI,IAAI5wD,YAAY,IAExB,IAAKpiB,EAAI,EAAGA,EAAI8yE,GAAe,CAC7B,IAAKr8C,EAAI,EAAGA,EAAI,KAAMA,EACpBu8C,EAAEv8C,GAAKs8C,EAAO/yE,IAAM,GAAK+yE,EAAO/yE,EAAI,IAAM,GAAK+yE,EAAO/yE,EAAI,IAAM,EAAI+yE,EAAO/yE,EAAI,GAC/EA,GAAK,EAGP,IAAKy2B,EAAI,GAAIA,EAAI,KAAMA,EACrBu8C,EAAEv8C,GAAkF,GA9CjFm9C,EADiBruE,EA+CIytE,EAAEv8C,EAAI,GA9CnB,IAAMm9C,EAAKruE,EAAG,IAAMA,IAAM,IA8CDytE,EAAEv8C,EAAI,GAAKu9C,EAAYhB,EAAEv8C,EAAI,KAAOu8C,EAAEv8C,EAAI,IAGhF,IAQI49C,EACA1wB,EATAl+C,EAAIitE,EACJhtE,EAAIitE,EACJpvD,EAAIqvD,EACJ7vD,EAAI8vD,EACJ1vE,EAAI8wE,EACJhB,EAAIiB,EACJxxD,EAAIyxD,EACJ7e,EAAI8e,EAIR,IAAK39C,EAAI,EAAGA,EAAI,KAAMA,EACpB49C,EAAK/e,EAAIye,EAAW5wE,GAAKqsB,EAAGrsB,EAAG8vE,EAAGvwD,GAAK0zB,EAAE3f,GAAKu8C,EAAEv8C,GAChDktB,EAAKmwB,EAAMruE,GAAKouE,EAAIpuE,EAAGC,EAAG6d,GAC1B+xC,EAAI5yC,EACJA,EAAIuwD,EACJA,EAAI9vE,EACJA,EAAI4f,EAAIsxD,EAAK,EACbtxD,EAAIQ,EACJA,EAAI7d,EACJA,EAAID,EACJA,EAAI4uE,EAAK1wB,EAAK,EAGhB+uB,EAAKA,EAAKjtE,EAAI,EACdktE,EAAKA,EAAKjtE,EAAI,EACdktE,EAAKA,EAAKrvD,EAAI,EACdsvD,EAAKA,EAAK9vD,EAAI,EACdkxD,EAAKA,EAAK9wE,EAAI,EACd+wE,EAAKA,EAAKjB,EAAI,EACdkB,EAAKA,EAAKzxD,EAAI,EACd0xD,EAAKA,EAAK9e,EAAI,EAGhB,OAAO,IAAIn3D,WAAW,CAACu0E,GAAM,GAAK,IAAMA,GAAM,GAAK,IAAMA,GAAM,EAAI,IAAW,IAALA,EAAWC,GAAM,GAAK,IAAMA,GAAM,GAAK,IAAMA,GAAM,EAAI,IAAW,IAALA,EAAWC,GAAM,GAAK,IAAMA,GAAM,GAAK,IAAMA,GAAM,EAAI,IAAW,IAALA,EAAWC,GAAM,GAAK,IAAMA,GAAM,GAAK,IAAMA,GAAM,EAAI,IAAW,IAALA,EAAWoB,GAAM,GAAK,IAAMA,GAAM,GAAK,IAAMA,GAAM,EAAI,IAAW,IAALA,EAAWC,GAAM,GAAK,IAAMA,GAAM,GAAK,IAAMA,GAAM,EAAI,IAAW,IAALA,EAAWC,GAAM,GAAK,IAAMA,GAAM,GAAK,IAAMA,GAAM,EAAI,IAAW,IAALA,EAAWC,GAAM,GAAK,IAAMA,GAAM,GAAK,IAAMA,GAAM,EAAI,IAAW,IAALA,KA7Gle,GAmHtB93E,EAAQ61E,gBAAkBA,EAE1B,IAAID,EAAkB,WACpB,SAAS1iD,EAAGpL,EAAQ7e,EAAG64C,EAAG6X,EAAG7qB,GAC3BhnB,EAAO8Y,OAAO33B,GACd6e,EAAOkwD,IAAIl2B,GACXhT,EAAIlO,OAAO33B,GACX6lC,EAAImpC,MACJnpC,EAAIkpC,IAAIre,GACR7xC,EAAOowD,IAAIppC,GAGb,SAASyoC,EAAIzvD,EAAQ7e,EAAG64C,EAAG6X,EAAG7qB,GAC5BhnB,EAAO8Y,OAAO33B,GACd6e,EAAOkwD,IAAIl2B,GACXhT,EAAIlO,OAAO33B,GACX6lC,EAAIkpC,IAAIre,GACR7xC,EAAOowD,IAAIppC,GACXA,EAAIlO,OAAOkhB,GACXhT,EAAIkpC,IAAIre,GACR7xC,EAAOowD,IAAIppC,GAGb,SAAS0oC,EAAM1vD,EAAQ7e,EAAG6lC,GACxBhnB,EAAO8Y,OAAO33B,GACd6e,EAAOqwD,YAAY,IACnBrpC,EAAIlO,OAAO33B,GACX6lC,EAAIqpC,YAAY,IAChBrwD,EAAOowD,IAAIppC,GACXA,EAAIlO,OAAO33B,GACX6lC,EAAIqpC,YAAY,IAChBrwD,EAAOowD,IAAIppC,GAGb,SAAS2oC,EAAW3vD,EAAQ7e,EAAG6lC,GAC7BhnB,EAAO8Y,OAAO33B,GACd6e,EAAOqwD,YAAY,IACnBrpC,EAAIlO,OAAO33B,GACX6lC,EAAIqpC,YAAY,IAChBrwD,EAAOowD,IAAIppC,GACXA,EAAIlO,OAAO33B,GACX6lC,EAAIqpC,YAAY,IAChBrwD,EAAOowD,IAAIppC,GAGb,SAAS4oC,EAAY5vD,EAAQ7e,EAAG6lC,GAC9BhnB,EAAO8Y,OAAO33B,GACd6e,EAAOqwD,YAAY,GACnBrpC,EAAIlO,OAAO33B,GACX6lC,EAAIqpC,YAAY,GAChBrwD,EAAOowD,IAAIppC,GACXA,EAAIlO,OAAO33B,GACX6lC,EAAIspC,WAAW,GACftwD,EAAOowD,IAAIppC,GAGb,SAASupC,EAAiBvwD,EAAQ7e,EAAG6lC,GACnChnB,EAAO8Y,OAAO33B,GACd6e,EAAOqwD,YAAY,IACnBrpC,EAAIlO,OAAO33B,GACX6lC,EAAIqpC,YAAY,IAChBrwD,EAAOowD,IAAIppC,GACXA,EAAIlO,OAAO33B,GACX6lC,EAAIspC,WAAW,GACftwD,EAAOowD,IAAIppC,GAGb,IAAIgL,EAAI,CAAC,IAAI+8B,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,WAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,UAAY,WAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,WAAa,IAAIA,EAAO,UAAY,WAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,aAiK5zF,OA/JA,SAAcj1E,EAAM+xB,EAAQ7wB,EAAQw1E,GAAU,GAC5C,IAAIlC,EAAIC,EAAIC,EAAIC,EAAIoB,EAAIC,EAAIC,EAAIC,EAE3BQ,GAUHlC,EAAK,IAAIS,EAAO,WAAY,YAC5BR,EAAK,IAAIQ,EAAO,WAAY,WAC5BP,EAAK,IAAIO,EAAO,WAAY,WAC5BN,EAAK,IAAIM,EAAO,UAAY,YAC5Bc,EAAK,IAAId,EAAO,WAAY,YAC5Be,EAAK,IAAIf,EAAO,WAAY,YAC5BgB,EAAK,IAAIhB,EAAO,WAAY,YAC5BiB,EAAK,IAAIjB,EAAO,WAAY,cAhB5BT,EAAK,IAAIS,EAAO,WAAY,YAC5BR,EAAK,IAAIQ,EAAO,WAAY,YAC5BP,EAAK,IAAIO,EAAO,WAAY,YAC5BN,EAAK,IAAIM,EAAO,WAAY,YAC5Bc,EAAK,IAAId,EAAO,WAAY,YAC5Be,EAAK,IAAIf,EAAO,WAAY,WAC5BgB,EAAK,IAAIhB,EAAO,UAAY,YAC5BiB,EAAK,IAAIjB,EAAO,WAAY,YAY9B,IAEInzE,EAAGy2B,EAAGjU,EAFNswD,EAAgD,IAAjC9vE,KAAKsnB,MAAMlrB,EAAS,IAAM,KACzC2zE,EAAS,IAAI50E,WAAW20E,GAG5B,IAAK9yE,EAAI,EAAGA,EAAIZ,IAAUY,EACxB+yE,EAAO/yE,GAAK9B,EAAK+xB,KAMnB,IAHA8iD,EAAO/yE,KAAO,IACdwiB,EAAIswD,EAAe,GAEZ9yE,EAAIwiB,GACTuwD,EAAO/yE,KAAO,EAGhB+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAO,EACd+yE,EAAO/yE,KAAOZ,IAAW,GAAK,IAC9B2zE,EAAO/yE,KAAOZ,GAAU,GAAK,IAC7B2zE,EAAO/yE,KAAOZ,GAAU,GAAK,IAC7B2zE,EAAO/yE,KAAOZ,GAAU,EAAI,IAC5B2zE,EAAO/yE,KAAOZ,GAAU,EAAI,IAC5B,IAAI4zE,EAAI,IAAIjtE,MAAM,IAElB,IAAK/F,EAAI,EAAGA,EAAI,GAAIA,IAClBgzE,EAAEhzE,GAAK,IAAImzE,EAAO,EAAG,GAGvB,IAYI0B,EA8DAzwD,EA1EA3e,EAAI,IAAI0tE,EAAO,EAAG,GAClBztE,EAAI,IAAIytE,EAAO,EAAG,GAClB5vD,EAAI,IAAI4vD,EAAO,EAAG,GAClBpwD,EAAI,IAAIowD,EAAO,EAAG,GAClBhwE,EAAI,IAAIgwE,EAAO,EAAG,GAClBF,EAAI,IAAIE,EAAO,EAAG,GAClBzwD,EAAI,IAAIywD,EAAO,EAAG,GAClB7d,EAAI,IAAI6d,EAAO,EAAG,GAClBkB,EAAK,IAAIlB,EAAO,EAAG,GACnBxvB,EAAK,IAAIwvB,EAAO,EAAG,GACnB2B,EAAO,IAAI3B,EAAO,EAAG,GACrBX,EAAO,IAAIW,EAAO,EAAG,GAGzB,IAAKnzE,EAAI,EAAGA,EAAI8yE,GAAe,CAC7B,IAAKr8C,EAAI,EAAGA,EAAI,KAAMA,EACpBu8C,EAAEv8C,GAAG68C,KAAOP,EAAO/yE,IAAM,GAAK+yE,EAAO/yE,EAAI,IAAM,GAAK+yE,EAAO/yE,EAAI,IAAM,EAAI+yE,EAAO/yE,EAAI,GACpFgzE,EAAEv8C,GAAG88C,IAAMR,EAAO/yE,EAAI,IAAM,GAAK+yE,EAAO/yE,EAAI,IAAM,GAAK+yE,EAAO/yE,EAAI,IAAM,EAAI+yE,EAAO/yE,EAAI,GACvFA,GAAK,EAGP,IAAKy2B,EAAI,GAAIA,EAAI,KAAMA,EAErBk+C,EADAE,EAAO7B,EAAEv8C,GACcu8C,EAAEv8C,EAAI,GAAI+7C,GACjCqC,EAAK1sD,IAAI6qD,EAAEv8C,EAAI,IACfu9C,EAAYc,EAAM9B,EAAEv8C,EAAI,IAAK+7C,GAC7BqC,EAAK1sD,IAAI2sD,GACTD,EAAK1sD,IAAI6qD,EAAEv8C,EAAI,KAYjB,IATAhxB,EAAEy3B,OAAOw1C,GACThtE,EAAEw3B,OAAOy1C,GACTpvD,EAAE2Z,OAAO01C,GACT7vD,EAAEma,OAAO21C,GACT1vE,EAAE+5B,OAAO+2C,GACThB,EAAE/1C,OAAOg3C,GACTxxD,EAAEwa,OAAOi3C,GACT7e,EAAEp4B,OAAOk3C,GAEJ39C,EAAI,EAAGA,EAAI,KAAMA,EACpB49C,EAAGn3C,OAAOo4B,GACVye,EAAWe,EAAM3xE,EAAGqvE,GACpB6B,EAAGlsD,IAAI2sD,GACPtlD,EAAGslD,EAAM3xE,EAAG8vE,EAAGvwD,EAAG8vD,GAClB6B,EAAGlsD,IAAI2sD,GACPT,EAAGlsD,IAAIiuB,EAAE3f,IACT49C,EAAGlsD,IAAI6qD,EAAEv8C,IACTq9C,EAAMnwB,EAAIl+C,EAAG+sE,GACbqB,EAAIiB,EAAMrvE,EAAGC,EAAG6d,EAAGivD,GACnB7uB,EAAGx7B,IAAI2sD,GACPD,EAAOvf,EACPA,EAAI5yC,EACJA,EAAIuwD,EACJA,EAAI9vE,EACJ4f,EAAEoF,IAAIksD,GACNlxE,EAAI4f,EACJA,EAAIQ,EACJA,EAAI7d,EACJA,EAAID,EACJovE,EAAK33C,OAAOm3C,GACZQ,EAAK1sD,IAAIw7B,GACTl+C,EAAIovE,EAGNnC,EAAGvqD,IAAI1iB,GACPktE,EAAGxqD,IAAIziB,GACPktE,EAAGzqD,IAAI5E,GACPsvD,EAAG1qD,IAAIpF,GACPkxD,EAAG9rD,IAAIhlB,GACP+wE,EAAG/rD,IAAI8qD,GACPkB,EAAGhsD,IAAIzF,GACP0xD,EAAGjsD,IAAImtC,GAyBT,OApBKsf,GAWHxwD,EAAS,IAAIjmB,WAAW,IACxBu0E,EAAGqC,OAAO3wD,EAAQ,GAClBuuD,EAAGoC,OAAO3wD,EAAQ,GAClBwuD,EAAGmC,OAAO3wD,EAAQ,IAClByuD,EAAGkC,OAAO3wD,EAAQ,IAClB6vD,EAAGc,OAAO3wD,EAAQ,IAClB8vD,EAAGa,OAAO3wD,EAAQ,MAhBlBA,EAAS,IAAIjmB,WAAW,IACxBu0E,EAAGqC,OAAO3wD,EAAQ,GAClBuuD,EAAGoC,OAAO3wD,EAAQ,GAClBwuD,EAAGmC,OAAO3wD,EAAQ,IAClByuD,EAAGkC,OAAO3wD,EAAQ,IAClB6vD,EAAGc,OAAO3wD,EAAQ,IAClB8vD,EAAGa,OAAO3wD,EAAQ,IAClB+vD,EAAGY,OAAO3wD,EAAQ,IAClBgwD,EAAGW,OAAO3wD,EAAQ,KAWbA,GA/NW,GAuOtB,SAAS2tD,EAAgB7zE,EAAM+xB,EAAQ7wB,GACrC,OAAO8yE,EAAgBh0E,EAAM+xB,EAAQ7wB,GAAQ,GAH/C9C,EAAQ41E,gBAAkBA,EAM1B,MAAM8C,EACJ,aAAa92E,GACX,OAAOA,EAGT,QAAQA,GACN,OAAOA,GAKX,MAAM+2E,EACJ,cACM13E,KAAKukB,cAAgBmzD,IACvB,EAAIn4E,EAAM4T,aAAa,oCAGzBnT,KAAK23E,GAAK,IAAI/2E,WAAW,CAAC,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,EAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,EAAM,IAAM,GAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,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,KACphDZ,KAAK43E,OAAS,IAAIh3E,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,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IA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iBACA,KACA,cACA,KACA,kBACA,KACA,cACA,KACA,SACA,IACA,UACA,KACA,cACA,IACA,mBACA,KACA,sBACA,KACA,mBACA,KACA,uBACA,KACA,mBACA,MACA,mBACA,KACA,QACA,MACA,aACA,MACA,YACA,KACA,YACA,IACA,YACA,IACA,oBACA,KACA,kBACA,IACA,iBACA,MACA,YACA,KACA,aACA,IACA,SACA,IACA,cACA,MACA,aACA,KACA,cACA,KACA,iBACA,IACA,QACA,IACA,aACA,IACA,UACA,IACA,aACA,MACA,UACA,IACA,QACA,IACA,aACA,IACA,aACA,KACA,aACA,MACA,SACA,MACA,SACA,IACA,cACA,MACA,cACA,KACA,IACA,GACA,UACA,KACA,aACA,KACA,YACA,KACA,aACA,KACA,cACA,KACA,OACA,IACA,QACA,IACA,aACA,KACA,aACA,MACA,aACA,MACA,SACA,MACA,UACA,IACA,IACA,GACA,aACA,KACA,SACA,IACA,QACA,MACA,aACA,MACA,SACA,IACA,WACA,IACA,gBACA,KACA,gBACA,MACA,UACA,KACA,cACA,IACA,OACA,IACA,aACA,IACA,eACA,MACA,cACA,KACA,uBACA,KACA,cACA,KACA,gCACA,KACA,uBACA,KACA,sBACA,KACA,eACA,KACA,wBACA,KACA,4BACA,KACA,MACA,IACA,QACA,IACA,kBACA,MACA,aACA,MACA,aACA,KACA,SACA,MACA,IACA,GACA,KACA,IACA,UACA,IACA,aACA,KACA,WACA,IACA,SACA,IACA,WACA,KACA,UACA,KACA,mBACA,KACA,SACA,IACA,aACA,KACA,YACA,KACA,aACA,KACA,YACA,KACA,QACA,KACA,aACA,IACA,QACA,IACA,WACA,MACA,gBACA,MACA,gBACA,MACA,gBACA,MACA,eACA,IACA,cACA,KACA,aACA,KACA,aACA,MACA,iBACA,MACA,SACA,IACA,SACA,MACA,UACA,IACA,KACA,IACA,UACA,IACA,uBACA,KACA,cACA,KACA,eACA,KACA,IACA,GACA,SACA,IACA,cACA,MACA,SACA,IACA,SACA,IACA,gBACA,KACA,cACA,KACA,UACA,KACA,cACA,IACA,mBACA,KACA,mBACA,KACA,sBACA,KACA,mBACA,KACA,uBACA,KACA,mBACA,MACA,mBACA,KACA,YACA,KACA,YACA,IACA,YACA,IACA,iBACA,MACA,OACA,IACA,aACA,IACA,YACA,KACA,aACA,KACA,SACA,IACA,cACA,MACA,aACA,KACA,aACA,KACA,aACA,KACA,iBACA,IACA,oBACA,KACA,aACA,KACA,cACA,KACA,UACA,IACA,eACA,KACA,eACA,KACA,aACA,KACA,aACA,MACA,aACA,KACA,sBACA,KACA,MACA,IACA,gBACA,KACA,iBACA,KACA,UACA,IACA,QACA,IACA,UACA,IACA,eACA,IACA,aACA,KACA,YACA,IACA,oBACA,KACA,aACA,KACA,sBACA,KACA,MACA,IACA,SACA,MACA,MACA,IACA,aACA,KACA,WACA,IACA,MACA,IACA,WACA,MACA,SACA,KACA,cACA,KACA,OACA,KACA,MACA,IACA,WACA,IACA,cACA,IACA,IACA,GACA,UACA,KACA,aACA,KACA,cACA,KACA,YACA,IACA,QACA,IACA,eACA,KACA,YACA,KACA,aACA,MACA,YACA,KACA,SACA,MACA,IACA,GACA,WACA,MACA,SACA,IACA,QACA,IACA,eACA,IACA,eACA,KACA,SACA,IACA,SACA,IACA,WACA,IACA,UACA,KACA,cACA,IACA,eACA,IACA,OACA,IACA,aACA,IACA,aACA,KACA,eACA,KACA,wBACA,KACA,oBACA,KACA,oBACA,KACA,QACA,IACA,cACA,KACA,cACA,KACA,UACA,KACA,aACA,MACA,QACA,MACA,aACA,MACA,SACA,MACA,aACA,IACA,UACA,IACA,IACA,GACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,KACA,WACA,MACA,sBACA,KACA,sBACA,KACA,mBACA,KACA,OACA,IACA,cACA,KACA,WACA,KACA,UACA,KACA,cACA,IACA,YACA,KACA,aACA,KACA,YACA,KACA,aACA,MACA,aACA,KACA,aACA,IACA,SACA,MACA,eACA,MACA,oBACA,MACA,WACA,MACA,IACA,GACA,aACA,KACA,KACA,IACA,aACA,KACA,SACA,IACA,cACA,MACA,SACA,IACA,SACA,IACA,UACA,KACA,cACA,IACA,mBACA,MACA,YACA,KACA,YACA,IACA,YACA,IACA,iBACA,KACA,oBACA,KACA,iBACA,MACA,OACA,IACA,aACA,IACA,YACA,KACA,kBACA,KACA,aACA,KACA,WACA,KACA,SACA,IACA,cACA,MACA,aACA,KACA,aACA,KACA,iBACA,IACA,kBACA,KACA,UACA,IACA,kBACA,KACA,aACA,MACA,cACA,KACA,aACA,KACA,UACA,IACA,OACA,IACA,cACA,IACA,eACA,IACA,YACA,IACA,SACA,MACA,UACA,IACA,SACA,IACA,cACA,KACA,kBACA,KACA,0BACA,KACA,IACA,GACA,aACA,KACA,UACA,KACA,cACA,IACA,aACA,KACA,eACA,KACA,aACA,MACA,SACA,MACA,IACA,GACA,WACA,MACA,WACA,MACA,oBACA,KACA,SACA,KACA,aACA,KACA,sBACA,KACA,iBACA,KACA,QACA,IACA,mBACA,KACA,2BACA,KACA,SACA,IACA,WACA,IACA,UACA,KACA,eACA,IACA,YACA,KACA,cACA,KACA,cACA,KACA,cACA,KACA,aACA,IACA,QACA,IACA,cACA,KACA,aACA,KACA,aACA,MACA,gBACA,KACA,aACA,IACA,cACA,KACA,SACA,MACA,IACA,GACA,KACA,IACA,KACA,MACA,SACA,IACA,SACA,IACA,SACA,IACA,WACA,IACA,UACA,KACA,mBACA,KACA,eACA,IACA,OACA,IACA,aACA,IACA,YACA,KACA,kBACA,KACA,eACA,KACA,KACA,IACA,cACA,KACA,aACA,KACA,aACA,MACA,SACA,IACA,cACA,MACA,SACA,MACA,IACA,GACA,WACA,MACA,SACA,MACA,cACA,MACA,SACA,KACA,UACA,KACA,aACA,KACA,YACA,KACA,cACA,KACA,aACA,MACA,SACA,MACA,UACA,IACA,KACA,IACA,IACA,GACA,KACA,IACA,SACA,IACA,SACA,IACA,WACA,IACA,UACA,KACA,mBACA,KACA,eACA,IACA,aACA,KACA,YACA,KACA,YACA,IACA,YACA,KACA,KACA,IACA,cACA,KACA,aACA,KACA,aACA,MACA,cACA,KACA,SACA,MACA,SACA,IACA,cACA,MACA,KACA,IACA,IACA,GACA,KACA,IACA,UACA,MACA,SACA,IACA,cACA,MACA,kBACA,KACA,0BACA,KACA,SACA,IACA,SACA,IACA,iBACA,IACA,UACA,KACA,cACA,IACA,mBACA,KACA,sBACA,KACA,mBACA,KACA,uBACA,KACA,mBACA,MACA,mBACA,KACA,YACA,KACA,YACA,IACA,YACA,IACA,YACA,IACA,oBACA,KACA,iBACA,MACA,YACA,KACA,cACA,MACA,SACA,IACA,cACA,MACA,aACA,KACA,MACA,KACA,aACA,KACA,QACA,IACA,aACA,KACA,gBACA,KACA,aACA,KACA,iBACA,KACA,aACA,KACA,gBACA,IACA,KACA,IACA,iBACA,IACA,UACA,IACA,eACA,KACA,eACA,KACA,QACA,KACA,gBACA,KACA,aACA,IACA,qBACA,KACA,qBACA,KACA,aACA,IACA,UACA,IACA,eACA,IACA,aACA,MACA,WACA,KACA,UACA,IACA,gBACA,IACA,QACA,IACA,SACA,IACA,cACA,IACA,cACA,MACA,SACA,MACA,eACA,IACA,aACA,KACA,SACA,IACA,cACA,KACA,iBACA,KACA,cACA,MACA,IACA,GACA,SACA,KACA,UACA,KACA,aACA,KACA,aACA,KACA,cACA,KACA,uBACA,KACA,MACA,IACA,QACA,IACA,KACA,IACA,eACA,KACA,aACA,MACA,MACA,IACA,cACA,KACA,SACA,MACA,IACA,GACA,UACA,KACA,aACA,MACA,SACA,MACA,IACA,GACA,aACA,KACA,SACA,IACA,SACA,IACA,WACA,IACA,UACA,KACA,eACA,IACA,YACA,IACA,aACA,KACA,YACA,KACA,kBACA,KACA,cACA,KACA,WACA,KACA,MACA,IACA,YACA,MACA,iBACA,IACA,aACA,KACA,aACA,MACA,SACA,MACA,iBACA,IACA,yBACA,IACA,IACA,GACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,SACA,IACA,kBACA,KACA,aACA,IACA,SACA,IACA,kBACA,KACA,cACA,MACA,WACA,IACA,QACA,IACA,gBACA,KACA,wBACA,KACA,UACA,KACA,cACA,IACA,eACA,IACA,aACA,KACA,YACA,KACA,qBACA,KACA,cACA,KACA,aACA,KACA,cACA,KACA,cACA,KACA,gBACA,KACA,aACA,IACA,eACA,KACA,cACA,KACA,QACA,IACA,WACA,KACA,aACA,MACA,mBACA,KACA,SACA,MACA,cACA,IACA,IACA,GACA,MACA,IACA,OACA,IACA,SACA,IACA,WACA,IACA,UACA,KACA,mBACA,KACA,eACA,IACA,aACA,KACA,YACA,KACA,aACA,KACA,sBACA,KACA,WACA,KACA,gBACA,KACA,QACA,IACA,QACA,IACA,QACA,IACA,aACA,MACA,aACA,KACA,aACA,MACA,eACA,KACA,aACA,KACA,aACA,MACA,aACA,KACA,WACA,IACA,UACA,IACA,UACA,IACA,iBACA,IACA,cACA,KACA,eACA,KACA,SACA,MACA,cACA,KACA,WACA,KACA,IACA,GACA,SACA,IACA,cACA,MACA,SACA,IACA,SACA,IACA,UACA,KACA,cACA,IACA,mBACA,KACA,mBACA,MACA,YACA,KACA,YACA,IACA,YACA,IACA,YACA,IACA,iBACA,IACA,iBACA,KACA,iBACA,IACA,oBACA,KACA,iBACA,IACA,kBACA,IACA,iBACA,MACA,YACA,KACA,SACA,IACA,cACA,MACA,aACA,KACA,QACA,IACA,aACA,KACA,gBACA,KACA,aACA,KACA,iBACA,KACA,aACA,KACA,gBACA,IACA,wBACA,KACA,iBACA,IACA,aACA,KACA,UACA,IACA,kBACA,KACA,kBACA,KACA,aACA,MACA,UACA,IACA,UACA,IACA,WACA,IACA,8BACA,IACA,iBACA,IACA,kBACA,IACA,iCACA,IACA,oBACA,IACA,eACA,IACA,QACA,IACA,iBACA,KACA,SACA,MACA,oBACA,KACA,0BACA,KACA,SACA,IACA,cACA,KACA,cACA,KACA,IACA,GACA,UACA,KACA,YACA,KACA,aACA,KACA,cACA,KACA,QACA,IACA,aACA,MACA,aACA,KACA,SACA,MACA,SACA,KACA,IACA,GACA,SACA,KACA,UACA,KACA,cACA,IACA,YACA,KACA,aACA,KACA,YACA,KACA,SACA,KACA,aACA,MACA,SACA,MACA,IACA,GACA,UACA,KACA,YACA,KACA,aACA,KACA,cACA,KACA,KACA,IACA,aACA,MACA,SACA,MACA,IACA,GACA,SACA,IACA,cACA,MACA,cACA,KACA,UACA,KACA,cACA,IACA,YACA,IACA,iBACA,MACA,aACA,KACA,YACA,KACA,eACA,KACA,uBACA,KACA,SACA,KACA,QACA,IACA,aACA,KACA,aACA,KACA,aACA,KACA,eACA,KACA,aACA,MACA,SACA,MACA,SACA,KACA,iBACA,KACA,yBACA,KACA,oBACA,KACA,4BACA,KACA,IACA,GACA,aACA,KACA,SACA,IACA,SACA,IACA,cACA,MACA,UACA,KACA,cACA,KACA,OACA,IACA,aACA,IACA,YACA,KACA,aACA,KACA,sBACA,KACA,qBACA,KACA,OACA,IACA,cACA,KACA,mBACA,KACA,cACA,KACA,uBACA,KACA,sBACA,KACA,aACA,KACA,aACA,MACA,SACA,MACA,UACA,IACA,IACA,GACA,YACA,KACA,SACA,IACA,SACA,KACA,aACA,KACA,aACA,KACA,kBACA,KACA,aACA,MACA,qBACA,KACA,kBACA,KACA,sBACA,KACA,2BACA,KACA,uBACA,KACA,WACA,KACA,YACA,MACA,SACA,IACA,cACA,KACA,iBACA,KACA,iBACA,KACA,cACA,KACA,kBACA,KACA,cACA,KACA,SACA,IACA,UACA,KACA,cACA,IACA,mBACA,KACA,sBACA,KACA,mBACA,KACA,uBACA,KACA,mBACA,KACA,QACA,IACA,gBACA,IACA,WACA,IACA,YACA,IACA,YACA,KACA,cACA,IACA,eACA,IACA,YACA,KACA,YACA,IACA,gBACA,KACA,QACA,KACA,YACA,IACA,oBACA,KACA,kBACA,IACA,YACA,KACA,aACA,IACA,KACA,IACA,UACA,IACA,WACA,MACA,WACA,IACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,MACA,YACA,MACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,MACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,MACA,YACA,MACA,YACA,KACA,UACA,KACA,UACA,KACA,UACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,MACA,YACA,MACA,YACA,MACA,YACA,MACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,MACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,IACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,KACA,YACA,IACA,SACA,IACA,YACA,KACA,YACA,KACA,YACA,MACA,aACA,KACA,YACA,KACA,aACA,MACA,SACA,KACA,cACA,KACA,aACA,KACA,aACA,KACA,kBACA,KACA,YACA,KACA,iBACA,MACA,mBACA,MACA,kBACA,MACA,iBACA,IACA,qBACA,KACA,kBACA,KACA,sBACA,KACA,YACA,MACA,qBACA,MACA,UACA,MACA,OACA,KACA,aACA,KACA,mBACA,MACA,kBACA,MACA,uBACA,KACA,4BACA,MACA,uBACA,KACA,4BACA,MACA,aACA,KACA,kBACA,MACA,uBACA,KACA,4BACA,MACA,oBACA,KACA,yBACA,MACA,2BACA,MACA,0BACA,MACA,kBACA,MACA,mBACA,MACA,QACA,KACA,WACA,KACA,QACA,IACA,aACA,IACA,UACA,IACA,aACA,MACA,YACA,GACA,qBACA,MACA,iBACA,MACA,WACA,MACA,aACA,MACA,cACA,MACA,iBACA,MACA,kBACA,MACA,iBACA,KACA,QACA,KACA,mBACA,MACA,2BACA,MACA,oBACA,MACA,4BACA,MACA,YACA,KACA,aACA,KACA,WACA,KACA,YACA,IACA,eACA,KACA,kBACA,KACA,eACA,KACA,mBACA,KACA,UACA,IACA,eACA,MACA,SACA,KACA,qBACA,KACA,gBACA,IACA,QACA,MACA,aACA,KACA,cACA,KACA,qBACA,KACA,qBACA,KACA,eACA,MACA,cACA,MACA,MACA,KACA,iBACA,KACA,QACA,IACA,aACA,IACA,aACA,KACA,YACA,KACA,gBACA,KACA,gBACA,KACA,iBACA,KACA,cACA,KACA,eACA,KACA,eACA,KACA,eACA,KACA,gBACA,KACA,aACA,KACA,YACA,KACA,gBACA,KACA,iBACA,KACA,iBACA,KACA,mBACA,IACA,mBACA,IACA,oBACA,IACA,iBACA,IACA,eACA,MACA,YACA,KACA,eACA,KACA,qBACA,KACA,qBACA,KACA,iBACA,KACA,aACA,KACA,sBACA,KACA,kBACA,MACA,qBACA,KACA,kBACA,KACA,eACA,KACA,gBACA,KACA,UACA,KACA,YACA,KACA,eACA,KACA,kBACA,KACA,cACA,KACA,oBACA,KACA,eACA,KACA,eACA,KACA,cACA,MACA,cACA,GACA,uBACA,MACA,aACA,IACA,sBACA,MACA,UACA,IACA,gBACA,IACA,iBACA,MACA,iBACA,MACA,0BACA,MACA,WACA,GACA,uBACA,KACA,iBACA,KACA,eACA,KACA,oBACA,MACA,gBACA,MACA,WACA,KACA,YACA,MACA,sBACA,KACA,KACA,GACA,SACA,IACA,cACA,MACA,UACA,MACA,UACA,IACA,YACA,KACA,aACA,MACA,SACA,KACA,aACA,KACA,aACA,KACA,sBACA,KACA,kBACA,KACA,qBACA,KACA,kBACA,KACA,sBACA,KACA,eACA,KACA,cACA,KACA,OACA,KACA,mBACA,MACA,aACA,KACA,IACA,GACA,YACA,KACA,YACA,GACA,qBACA,MACA,SACA,KACA,aACA,KACA,aACA,KACA,aACA,MACA,WACA,KACA,aACA,MACA,MACA,IACA,eACA,MACA,YACA,MACA,UACA,KACA,aACA,KACA,YACA,KACA,uBACA,KACA,UACA,KACA,aACA,KACA,YACA,KACA,iBACA,MACA,mBACA,MACA,aACA,MACA,kBACA,MACA,uBACA,MACA,wBACA,MACA,qBACA,MACA,aACA,MACA,cACA,KACA,MACA,KACA,OACA,IACA,kBACA,IACA,YACA,MACA,kBACA,MACA,YACA,KACA,gBACA,MACA,aACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,QACA,IACA,aACA,MACA,aACA,MACA,gBACA,IACA,gBACA,KACA,aACA,MACA,cACA,KACA,eACA,KACA,4BACA,KACA,2BACA,KACA,4BACA,KACA,6BACA,MACA,qCACA,MACA,8BACA,MACA,sCACA,MACA,yBACA,KACA,0BACA,KACA,iBACA,KACA,4BACA,KACA,6BACA,KACA,mBACA,KACA,mBACA,KACA,cACA,KACA,YACA,KACA,yBACA,KACA,0BACA,KACA,+BACA,KACA,0BACA,KACA,QACA,KACA,aACA,KACA,QACA,KACA,aACA,MACA,eACA,KACA,aACA,MACA,aACA,MACA,SACA,KACA,WACA,MACA,UACA,MACA,YACA,IACA,cACA,MACA,eACA,MACA,qBACA,MACA,iBACA,MACA,cACA,MACA,oBACA,MACA,aACA,IACA,eACA,MACA,gBACA,MACA,sBACA,MACA,kBACA,MACA,eACA,MACA,qBACA,MACA,cACA,GACA,gBACA,MACA,gBACA,MACA,uBACA,MACA,gBACA,MACA,eACA,GACA,iBACA,MACA,iBACA,MACA,wBACA,MACA,iBACA,MACA,QACA,IACA,gBACA,IACA,WACA,IACA,wBACA,IACA,mBACA,IACA,yBACA,IACA,iBACA,IACA,yBACA,IACA,YACA,IACA,UACA,IACA,YACA,MACA,UACA,IACA,aACA,MACA,aACA,MACA,SACA,KACA,gBACA,KACA,iBACA,KACA,WACA,KACA,IACA,GACA,aACA,KACA,YACA,KACA,SACA,IACA,SACA,KACA,aACA,KACA,aACA,KACA,YACA,MACA,qBACA,KACA,iBACA,IACA,kBACA,KACA,sBACA,KACA,WACA,KACA,SACA,KACA,QACA,IACA,gBACA,IACA,WACA,IACA,iBACA,KACA,YACA,MACA,SACA,IACA,WACA,IACA,gBACA,KACA,UACA,KACA,cACA,IACA,QACA,IACA,OACA,IACA,aACA,IACA,WACA,MACA,UACA,IACA,aACA,IACA,OACA,IACA,aACA,KACA,eACA,MACA,gBACA,MACA,eACA,MACA,eACA,MACA,cACA,KACA,aACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,aACA,MACA,uBACA,KACA,YACA,MACA,cACA,KACA,gCACA,KACA,uBACA,KACA,sBACA,KACA,eACA,KACA,wBACA,KACA,4BACA,KACA,MACA,IACA,uBACA,MACA,sBACA,MACA,sBACA,MACA,gBACA,MACA,qBACA,MACA,eACA,KACA,cACA,KACA,eACA,KACA,cACA,KACA,QACA,IACA,qBACA,MACA,oBACA,MACA,oBACA,MACA,cACA,MACA,mBACA,MACA,oBACA,MACA,SACA,KACA,eACA,IACA,iBACA,KACA,WACA,KACA,aACA,KACA,mBACA,MACA,0BACA,KACA,2BACA,KACA,aACA,IACA,qBACA,IACA,gBACA,IACA,QACA,KACA,gBACA,IACA,cACA,IACA,eACA,IACA,iBACA,IACA,OACA,KACA,gBACA,KACA,gBACA,KACA,gBACA,MACA,aACA,MACA,kBACA,MACA,aACA,KACA,QACA,GACA,gBACA,KACA,iBACA,MACA,YACA,KACA,aACA,MACA,yBACA,IACA,qBACA,IACA,QACA,GACA,gBACA,IACA,qBACA,IACA,cACA,MACA,cACA,KACA,gBACA,KACA,gBACA,MACA,iBACA,MACA,wBACA,IACA,mBACA,IACA,aACA,MACA,gBACA,MACA,sBACA,IACA,iBACA,IACA,UACA,KACA,YACA,KACA,kBACA,KACA,UACA,KACA,aACA,EACA,aACA,EACA,YACA,EACA,aACA,GACA,YACA,GACA,aACA,GACA,aACA,GACA,aACA,GACA,aACA,GACA,aACA,IACA,aACA,GACA,YACA,GACA,aACA,EACA,aACA,EACA,aACA,GACA,aACA,GACA,aACA,EACA,YACA,GACA,YACA,GACA,YACA,GACA,YACA,EACA,YACA,GACA,aACA,GACA,cACA,EACA,YACA,GACA,YACA,GACA,YACA,GACA,aACA,EACA,aACA,EACA,aACA,GACA,aACA,GACA,YACA,GACA,YACA,GACA,YACA,IACA,gBACA,MACA,iBACA,MACA,oBACA,MACA,6BACA,MACA,4BACA,MACA,qBACA,MACA,8BACA,MACA,6BACA,MACA,oBACA,MACA,WACA,MACA,gBACA,MACA,SACA,KACA,WACA,KACA,aACA,IACA,WACA,KACA,UACA,KACA,WACA,IACA,WACA,MACA,UACA,MACA,WACA,MACA,UACA,MACA,IACA,IACA,aACA,KACA,YACA,KACA,YACA,KACA,SACA,KACA,iBACA,MACA,mBACA,MACA,kBACA,MACA,SACA,KACA,eACA,KACA,SACA,KACA,YACA,KACA,aACA,KACA,aACA,KACA,aACA,MACA,aACA,MACA,YACA,KACA,QACA,KACA,cACA,MACA,oBACA,MACA,cACA,KACA,iBACA,MACA,cACA,KACA,iBACA,KACA,uBACA,KACA,iBACA,KACA,QACA,KACA,cACA,KACA,kBACA,KACA,2BACA,KACA,WACA,MACA,sBACA,MACA,8BACA,MACA,uBACA,MACA,+BACA,MACA,0BACA,IACA,eACA,KACA,gBACA,KACA,WACA,KACA,WACA,MACA,cACA,IACA,cACA,KACA,aACA,KACA,gBACA,IACA,iBACA,IACA,cACA,IACA,iBACA,KACA,0BACA,IACA,YACA,MACA,WACA,MACA,SACA,IACA,WACA,KACA,UACA,KACA,mBACA,KACA,SACA,IACA,aACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,aACA,KACA,kBACA,MACA,YACA,KACA,cACA,KACA,WACA,KACA,eACA,KACA,eACA,KACA,aACA,KACA,YACA,KACA,yBACA,KACA,0BACA,KACA,aACA,KACA,SACA,IACA,aACA,KACA,aACA,MACA,YACA,KACA,aACA,MACA,aACA,KACA,cACA,KACA,QACA,IACA,cACA,IACA,sCACA,KACA,OACA,IACA,aACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,QACA,IACA,iBACA,IACA,oBACA,IACA,UACA,KACA,mBACA,KACA,WACA,IACA,gBACA,MACA,mBACA,IACA,cACA,IACA,gBACA,MACA,gBACA,IACA,aACA,MACA,aACA,MACA,YACA,MACA,SACA,IACA,UACA,KACA,gBACA,KACA,cACA,KACA,UACA,KACA,aACA,KACA,WACA,MACA,UACA,IACA,aACA,MACA,UACA,KACA,cACA,KACA,YACA,KACA,aACA,MACA,aACA,MACA,SACA,GACA,iBACA,MACA,kBACA,MACA,iBACA,MACA,cACA,MACA,iBACA,MACA,OACA,KACA,aACA,MACA,YACA,IACA,eACA,IACA,cACA,IACA,eACA,IACA,cACA,MACA,WACA,IACA,WACA,MACA,qBACA,IACA,UACA,KACA,eACA,KACA,iBACA,MACA,uBACA,MACA,mBACA,IACA,cACA,IACA,SACA,KACA,YACA,MACA,QACA,IACA,UACA,IACA,aACA,MACA,aACA,MACA,KACA,IACA,WACA,IACA,UACA,IACA,SACA,IACA,uBACA,KACA,cACA,KACA,eACA,KACA,IACA,IACA,SACA,IACA,QACA,KACA,WACA,KACA,YACA,MACA,SACA,IACA,cACA,KACA,kBACA,KACA,uBACA,KACA,2BACA,KACA,SACA,IACA,gBACA,KACA,cACA,KACA,kBACA,KACA,UACA,KACA,cACA,IACA,mBACA,KACA,mBACA,KACA,sBACA,KACA,mBACA,KACA,uBACA,KACA,mBACA,KACA,YACA,KACA,YACA,IACA,QACA,KACA,YACA,IACA,OACA,IACA,aACA,IACA,YACA,KACA,aACA,KACA,kBACA,KACA,aACA,KACA,SACA,IACA,YACA,KACA,aACA,KACA,aACA,MACA,YACA,MACA,aACA,KACA,aACA,MACA,QACA,GACA,cACA,KACA,eACA,KACA,cACA,KACA,8BACA,MACA,YACA,KACA,iBACA,KACA,gBACA,KACA,iBACA,KACA,gBACA,KACA,gBACA,KACA,kBACA,KACA,gBACA,MACA,mBACA,KACA,wBACA,MACA,gBACA,KACA,iBACA,MACA,gBACA,MACA,aACA,KACA,cACA,KACA,eACA,KACA,aACA,KACA,gBACA,KACA,YACA,KACA,iBACA,IACA,oBACA,KACA,YACA,MACA,qBACA,MACA,kBACA,KACA,UACA,MACA,aACA,KACA,UACA,KACA,eACA,KACA,cACA,KACA,eACA,KACA,cACA,KACA,WACA,KACA,mBACA,KACA,UACA,IACA,eACA,KACA,eACA,KACA,aACA,KACA,SACA,KACA,iBACA,MACA,aACA,MACA,uBACA,KACA,WACA,KACA,aACA,MACA,aACA,KACA,SACA,KACA,iBACA,MACA,sBACA,KACA,MACA,IACA,cACA,MACA,gBACA,KACA,iBACA,KACA,UACA,KACA,UACA,IACA,WACA,MACA,QACA,IACA,cACA,IACA,gBACA,IACA,sBACA,IACA,oBACA,IACA,SACA,KACA,UACA,IACA,eACA,IACA,QACA,GACA,iBACA,MACA,aACA,MACA,gBACA,KACA,cACA,KACA,aACA,MACA,aACA,KACA,YACA,IACA,oBACA,KACA,aACA,KACA,sBACA,KACA,MACA,IACA,UACA,IACA,aACA,KACA,sBACA,KACA,kBACA,IACA,mBACA,IACA,iBACA,MACA,iBACA,MACA,0BACA,MACA,YACA,KACA,YACA,MACA,MACA,IACA,aACA,KACA,WACA,IACA,MACA,IACA,SACA,KACA,cACA,KACA,qBACA,KACA,yBACA,KACA,gBACA,KACA,oBACA,KACA,UACA,IACA,WACA,MACA,OACA,KACA,oBACA,KACA,iBACA,KACA,qBACA,KACA,SACA,GACA,iBACA,KACA,YACA,KACA,aACA,IACA,kBACA,MACA,kBACA,MACA,cACA,MACA,cACA,KACA,MACA,IACA,WACA,IACA,UACA,IACA,cACA,IACA,UACA,IACA,IACA,IACA,SACA,KACA,aACA,KACA,aACA,KACA,cACA,KACA,iBACA,KACA,iBACA,KACA,YACA,MACA,UACA,KACA,aACA,KACA,YACA,KACA,cACA,KACA,iBACA,MACA,mBACA,MACA,kBACA,MACA,YACA,IACA,SACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,gBACA,KACA,eACA,KACA,gBACA,KACA,aACA,KACA,YACA,KACA,aACA,KACA,WACA,KACA,iBACA,MACA,uBACA,MACA,iBACA,KACA,WACA,KACA,iBACA,KACA,WACA,KACA,iBACA,KACA,UACA,KACA,gBACA,KACA,aACA,KACA,mBACA,KACA,mBACA,IACA,UACA,KACA,eACA,KACA,OACA,GACA,aACA,KACA,cACA,KACA,aACA,KACA,6BACA,MACA,WACA,KACA,cACA,KACA,eACA,KACA,eACA,KACA,iBACA,KACA,eACA,MACA,uBACA,MACA,eACA,KACA,gBACA,MACA,eACA,MACA,YACA,KACA,aACA,KACA,cACA,KACA,YACA,KACA,eACA,KACA,WACA,KACA,KACA,MACA,SACA,IACA,aACA,MACA,WACA,MACA,YACA,KACA,WACA,KACA,cACA,KACA,SACA,KACA,OACA,GACA,aACA,KACA,cACA,KACA,aACA,KACA,6BACA,MACA,WACA,KACA,eACA,KACA,eACA,KACA,iBACA,KACA,eACA,MACA,uBACA,MACA,eACA,KACA,gBACA,MACA,uBACA,KACA,eACA,MACA,YACA,KACA,aACA,KACA,cACA,KACA,YACA,KACA,eACA,KACA,iBACA,KACA,gBACA,KACA,iBACA,KACA,WACA,KACA,oBACA,IACA,SACA,KACA,WACA,KACA,QACA,KACA,IACA,IACA,YACA,KACA,SACA,IACA,SACA,KACA,YACA,KACA,iBACA,MACA,mBACA,MACA,kBACA,MACA,aACA,KACA,aACA,KACA,aACA,MACA,aACA,MACA,QACA,IACA,kBACA,IACA,gBACA,IACA,eACA,KACA,YACA,MACA,SACA,IACA,SACA,IACA,WACA,IACA,UACA,KACA,cACA,IACA,eACA,IACA,OACA,IACA,aACA,IACA,aACA,KACA,aACA,MACA,aACA,MACA,qBACA,KACA,qBACA,KACA,eACA,KACA,qBACA,KACA,aACA,IACA,wBACA,KACA,kBACA,KACA,WACA,MACA,aACA,KACA,eACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,cACA,KACA,mBACA,MACA,qBACA,MACA,oBACA,MACA,wBACA,KACA,oBACA,KACA,oBACA,KACA,WACA,KACA,eACA,KACA,QACA,IACA,YACA,MACA,aACA,MACA,aACA,MACA,cACA,KACA,QACA,KACA,cACA,MACA,oBACA,MACA,cACA,KACA,cACA,KACA,wBACA,IACA,cACA,IACA,sBACA,IACA,iBACA,IACA,sBACA,IACA,yBACA,IACA,8BACA,IACA,oBACA,IACA,4BACA,IACA,UACA,KACA,aACA,MACA,aACA,MACA,aACA,MACA,SACA,KACA,YACA,MACA,WACA,KACA,QACA,GACA,gBACA,IACA,WACA,IACA,YACA,IACA,YACA,KACA,cACA,IACA,iBACA,MACA,eACA,IACA,UACA,GACA,eACA,KACA,qBACA,KACA,mBACA,MACA,sBACA,KACA,gBACA,KACA,mBACA,KACA,eACA,MACA,UACA,IACA,UACA,IACA,aACA,MACA,gBACA,IACA,iBACA,IACA,gBACA,KACA,iBACA,KACA,aACA,MACA,eACA,MACA,WACA,MACA,IACA,IACA,sBACA,KACA,iBACA,KACA,YACA,KACA,sBACA,KACA,SACA,KACA,aACA,KACA,aACA,KACA,YACA,KACA,iBACA,MACA,mBACA,MACA,aACA,MACA,kBACA,MACA,cACA,MACA,aACA,MACA,sBACA,MACA,iBACA,KACA,cACA,KACA,iBACA,KACA,eACA,MACA,mBACA,KACA,oBACA,KACA,qBACA,KACA,WACA,MACA,aACA,KACA,eACA,KACA,eACA,KACA,eACA,KACA,mBACA,KACA,yBACA,KACA,0BACA,KACA,uBACA,KACA,cACA,KACA,gBACA,KACA,gBACA,KACA,gBACA,KACA,oBACA,KACA,0BACA,KACA,2BACA,KACA,wBACA,KACA,aACA,KACA,eACA,KACA,eACA,KACA,eACA,KACA,mBACA,KACA,yBACA,KACA,0BACA,KACA,uBACA,KACA,OACA,IACA,YACA,MACA,cACA,KACA,WACA,KACA,UACA,KACA,cACA,IACA,YACA,KACA,aACA,KACA,YACA,KACA,KACA,KACA,QACA,KACA,iBACA,KACA,iBACA,KACA,WACA,MACA,iBACA,MACA,kBACA,KACA,YACA,KACA,WACA,KACA,uBACA,MACA,uBACA,MACA,iBACA,MACA,2BACA,MACA,8BACA,MACA,yBACA,MACA,mBACA,MACA,aACA,MACA,wBACA,MACA,kBACA,MACA,kBACA,MACA,aACA,MACA,sBACA,MACA,kBACA,MACA,WACA,IACA,eACA,MACA,MACA,KACA,YACA,KACA,QACA,IACA,gBACA,IACA,qBACA,MACA,oBACA,MACA,oBACA,MACA,cACA,MACA,mBACA,MACA,aACA,MACA,aACA,MACA,sBACA,MACA,QACA,KACA,UACA,KACA,UACA,KACA,UACA,KACA,cACA,KACA,oBACA,KACA,qBACA,KACA,kBACA,KACA,aACA,KACA,aACA,MACA,aACA,KACA,YACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,QACA,KACA,UACA,KACA,UACA,KACA,UACA,KACA,cACA,KACA,oBACA,KACA,qBACA,KACA,kBACA,KACA,eACA,KACA,gBACA,IACA,UACA,IACA,0BACA,IACA,wBACA,IACA,aACA,MACA,aACA,KACA,gBACA,KACA,UACA,IACA,aACA,KACA,QACA,KACA,SACA,KACA,YACA,IACA,UACA,IACA,aACA,MACA,eACA,MACA,aACA,MACA,sBACA,MACA,eACA,IACA,kBACA,IACA,KACA,IACA,SACA,GACA,iBACA,MACA,kBACA,MACA,cACA,MACA,iBACA,MACA,YACA,KACA,IACA,IACA,SACA,IACA,aACA,KACA,WACA,KACA,YACA,MACA,SACA,IACA,SACA,IACA,UACA,KACA,cACA,IACA,YACA,KACA,YACA,IACA,uBACA,MACA,sBACA,MACA,2BACA,MACA,uBACA,MACA,0BACA,MACA,mBACA,MACA,mBACA,MACA,uBACA,MACA,iCACA,MACA,2BACA,MACA,wBACA,MACA,6BACA,MACA,6BACA,MACA,2BACA,MACA,6BACA,MACA,4BACA,MACA,uBACA,MACA,uBACA,MACA,wBACA,MACA,2BACA,MACA,yBACA,MACA,wBACA,MACA,wBACA,MACA,uBACA,MACA,4BACA,MACA,wBACA,MACA,uBACA,MACA,uBACA,MACA,oBACA,MACA,yBACA,MACA,wBACA,MACA,4BACA,MACA,2BACA,MACA,yBACA,MACA,0BACA,MACA,uBACA,MACA,0BACA,MACA,mBACA,MACA,0BACA,MACA,wBACA,MACA,wBACA,MACA,sBACA,MACA,4BACA,MACA,wBACA,MACA,uBACA,MACA,kBACA,MACA,uBACA,MACA,sBACA,MACA,sBACA,MACA,qBACA,MACA,uBACA,MACA,sBACA,MACA,QACA,KACA,YACA,IACA,iBACA,KACA,oBACA,KACA,YACA,KACA,kBACA,KACA,aACA,KACA,qBACA,MACA,oBACA,MACA,oBACA,MACA,cACA,MACA,mBACA,MACA,SACA,IACA,YACA,KACA,YACA,KACA,YACA,MACA,aACA,KACA,YACA,KACA,aACA,KACA,SACA,KACA,aACA,KACA,aACA,KACA,kBACA,KACA,iBACA,IACA,kBACA,KACA,qBACA,KACA,kBACA,KACA,sBACA,KACA,KACA,IACA,YACA,MACA,qBACA,MACA,UACA,MACA,OACA,IACA,aACA,KACA,UACA,IACA,kBACA,KACA,4BACA,KACA,iBACA,KACA,aACA,MACA,YACA,KACA,WACA,KACA,cACA,KACA,WACA,KACA,iBACA,KACA,aACA,KACA,aACA,MACA,cACA,KACA,aACA,KACA,eACA,KACA,aACA,MACA,YACA,KACA,YACA,KACA,eACA,KACA,aACA,KACA,UACA,IACA,OACA,IACA,eACA,IACA,oBACA,IACA,YACA,IACA,YACA,IACA,SACA,KACA,cACA,KACA,iBACA,MACA,iBACA,MACA,0BACA,MACA,gBACA,KACA,UACA,IACA,YACA,MACA,oBACA,MACA,oBACA,MACA,SACA,IACA,cACA,KACA,aACA,MACA,aACA,KACA,oBACA,KACA,iBACA,KACA,qBACA,KACA,kBACA,KACA,0BACA,KACA,IACA,IACA,aACA,KACA,YACA,KACA,SACA,KACA,aACA,KACA,aACA,KACA,YACA,MACA,SACA,IACA,UACA,KACA,cACA,IACA,eACA,IACA,iBACA,IACA,aACA,KACA,aACA,KACA,kBACA,MACA,oBACA,MACA,mBACA,MACA,YACA,KACA,iBACA,MACA,aACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,eACA,KACA,MACA,MACA,aACA,MACA,SACA,KACA,YACA,IACA,IACA,IACA,oBACA,KACA,YACA,KACA,SACA,KACA,aACA,KACA,sBACA,KACA,SACA,KACA,MACA,KACA,YACA,KACA,YACA,MACA,kBACA,MACA,iBACA,MACA,YACA,KACA,mBACA,MACA,kBACA,MACA,gBACA,MACA,aACA,KACA,aACA,KACA,aACA,MACA,iBACA,KACA,aACA,MACA,sBACA,MACA,QACA,IACA,mBACA,KACA,sBACA,MACA,wBACA,MACA,sBACA,MACA,2BACA,MACA,gBACA,MACA,oBACA,KACA,iCACA,KACA,kBACA,MACA,WACA,MACA,cACA,KACA,iBACA,KACA,mBACA,KACA,+BACA,MACA,2BACA,KACA,YACA,MACA,aACA,MACA,SACA,IACA,WACA,IACA,UACA,KACA,eACA,IACA,YACA,KACA,cACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,cACA,KACA,kBACA,MACA,eACA,IACA,aACA,KACA,cACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,aACA,KACA,kBACA,MACA,oBACA,MACA,mBACA,MACA,aACA,IACA,WACA,KACA,eACA,KACA,uBACA,MACA,sBACA,MACA,sBACA,MACA,gBACA,MACA,qBACA,MACA,cACA,KACA,cACA,KACA,eACA,KACA,eACA,KACA,aACA,KACA,QACA,IACA,iBACA,KACA,YACA,MACA,aACA,MACA,aACA,MACA,sBACA,MACA,mBACA,MACA,oBACA,MACA,aACA,MACA,sBACA,MACA,qBACA,MACA,qBACA,MACA,eACA,MACA,oBACA,MACA,mBACA,MACA,cACA,KACA,aACA,KACA,WACA,MACA,gBACA,MACA,aACA,MACA,kBACA,MACA,aACA,MACA,aACA,MACA,YACA,KACA,aACA,MACA,sBACA,MACA,cACA,MACA,gBACA,KACA,uBACA,MACA,aACA,IACA,SACA,KACA,YACA,MACA,cACA,KACA,WACA,MACA,UACA,IACA,aACA,MACA,aACA,MACA,sBACA,MACA,WACA,MACA,WACA,MACA,IACA,IACA,YACA,KACA,SACA,IACA,SACA,KACA,aACA,KACA,aACA,KACA,kBACA,KACA,qBACA,MACA,+BACA,MACA,kCACA,MACA,+BACA,MACA,kCACA,MACA,wBACA,MACA,+BACA,MACA,kCACA,MACA,YACA,KACA,SACA,IACA,eACA,IACA,QACA,KACA,cACA,MACA,oBACA,MACA,cACA,KACA,iBACA,MACA,sBACA,MACA,mBACA,MACA,uBACA,MACA,uBACA,MACA,0BACA,MACA,kBACA,MACA,0BACA,MACA,uBACA,MACA,cACA,KACA,OACA,IACA,QACA,IACA,YACA,MACA,SACA,IACA,WACA,IACA,UACA,KACA,mBACA,KACA,eACA,IACA,OACA,IACA,aACA,IACA,YACA,KACA,kBACA,KACA,oBACA,IACA,mBACA,IACA,OACA,GACA,YACA,KACA,qBACA,KACA,gBACA,MACA,mBACA,KACA,gBACA,KACA,gBACA,KACA,YACA,MACA,OACA,IACA,UACA,KACA,iBACA,IACA,OACA,KACA,eACA,KACA,KACA,IACA,cACA,KACA,KACA,MACA,UACA,KACA,cACA,KACA,aACA,KACA,WACA,KACA,mBACA,KACA,gBACA,KACA,4BACA,KACA,yBACA,KACA,eACA,IACA,aACA,MACA,WACA,MACA,cACA,KACA,aACA,KACA,aACA,IACA,qBACA,KACA,YACA,KACA,aACA,KACA,QACA,IACA,oBACA,MACA,aACA,IACA,gBACA,MACA,UACA,KACA,SACA,KACA,SACA,IACA,UACA,KACA,YACA,MACA,UACA,KACA,SACA,KACA,kBACA,KACA,eACA,KACA,2BACA,KACA,wBACA,KACA,WACA,MACA,IACA,IACA,YACA,KACA,SACA,IACA,iBACA,IACA,YACA,IACA,eACA,IACA,kBACA,MACA,SACA,KACA,SACA,KACA,aACA,KACA,aACA,KACA,iBACA,KACA,qBACA,KACA,aACA,MACA,yBACA,MACA,0BACA,MACA,kBACA,KACA,2BACA,MACA,mBACA,MACA,oBACA,MACA,YACA,KACA,qBACA,MACA,qBACA,MACA,iBACA,KACA,oBACA,MACA,gBACA,KACA,oBACA,MACA,qBACA,MACA,aACA,KACA,sBACA,MACA,oBACA,MACA,qBACA,MACA,aACA,KACA,sBACA,MACA,eACA,KACA,aACA,MACA,sBACA,MACA,OACA,KACA,gBACA,MACA,cACA,KACA,OACA,KACA,qBACA,KACA,WACA,MACA,YACA,MACA,WACA,MACA,UACA,KACA,eACA,MACA,aACA,KACA,YACA,KACA,aACA,KACA,kBACA,MACA,oBACA,MACA,mBACA,MACA,wBACA,MACA,yBACA,MACA,gBACA,MACA,aACA,MACA,iBACA,MACA,aACA,MACA,sBACA,MACA,MACA,KACA,YACA,MACA,kBACA,MACA,YACA,KACA,cACA,KACA,eACA,KACA,qBACA,KACA,yBACA,KACA,mBACA,KACA,QACA,IACA,YACA,MACA,6BACA,MACA,SACA,IACA,qBACA,MACA,oBACA,MACA,oBACA,MACA,cACA,MACA,qBACA,MACA,mBACA,MACA,mBACA,MACA,kBACA,MACA,aACA,MACA,aACA,MACA,sBACA,MACA,QACA,KACA,gBACA,IACA,cACA,KACA,WACA,IACA,YACA,KACA,SACA,KACA,kBACA,MACA,aACA,MACA,iBACA,IACA,WACA,MACA,gBACA,MACA,aACA,MACA,kBACA,MACA,aACA,MACA,aACA,MACA,aACA,MACA,sBACA,MACA,YACA,MACA,WACA,KACA,eACA,MACA,sBACA,MACA,SACA,KACA,YACA,MACA,WACA,MACA,YACA,MACA,UACA,IACA,KACA,IACA,MACA,IACA,YACA,MACA,cACA,KACA,WACA,KACA,YACA,MACA,UACA,IACA,YACA,MACA,aACA,MACA,aACA,MACA,sBACA,MACA,YACA,MACA,WACA,IACA,YACA,MACA,cACA,KACA,kBACA,KACA,cACA,KACA,iBACA,KACA,gBACA,KACA,iBACA,KACA,YACA,MACA,YACA,MACA,YACA,MACA,eACA,MACA,WACA,MACA,eACA,MACA,WACA,MACA,IACA,IACA,YACA,KACA,QACA,KACA,SACA,IACA,SACA,KACA,aACA,KACA,aACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,cACA,IACA,WACA,MACA,YACA,MACA,UACA,IACA,SACA,IACA,WACA,IACA,UACA,KACA,mBACA,KACA,eACA,IACA,aACA,KACA,YACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,gBACA,KACA,WACA,MACA,aACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,aACA,KACA,YACA,MACA,YACA,IACA,iBACA,IACA,qBACA,MACA,oBACA,MACA,mBACA,MACA,oBACA,MACA,mBACA,MACA,cACA,MACA,qBACA,MACA,mBACA,MACA,kBACA,MACA,oBACA,MACA,aACA,MACA,aACA,MACA,sBACA,MACA,mBACA,MACA,eACA,KACA,OACA,GACA,aACA,KACA,cACA,KACA,aACA,KACA,6BACA,MACA,WACA,KACA,eACA,KACA,eACA,KACA,iBACA,KACA,eACA,MACA,uBACA,MACA,eACA,KACA,gBACA,MACA,eACA,MACA,YACA,KACA,aACA,KACA,cACA,KACA,YACA,KACA,eACA,KACA,iBACA,KACA,gBACA,KACA,iBACA,KACA,WACA,KACA,KACA,IACA,cACA,KACA,YACA,MACA,qBACA,MACA,gBACA,IACA,aACA,KACA,aACA,MACA,WACA,MACA,aACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,WACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,mBACA,IACA,YACA,KACA,WACA,KACA,aACA,KACA,kBACA,MACA,mBACA,KACA,wBACA,MACA,oBACA,MACA,wBACA,MACA,yBACA,MACA,mBACA,MACA,wBACA,MACA,yBACA,MACA,sBACA,MACA,cACA,KACA,aACA,KACA,eACA,KACA,WACA,KACA,aACA,KACA,qBACA,KACA,oBACA,KACA,eACA,KACA,UACA,KACA,kBACA,KACA,cACA,KACA,cACA,KACA,YACA,KACA,cACA,KACA,cACA,KACA,cACA,KACA,SACA,KACA,WACA,MACA,YACA,KACA,SACA,IACA,KACA,IACA,aACA,MACA,aACA,MACA,sBACA,MACA,eACA,KACA,YACA,KACA,gBACA,KACA,gBACA,KACA,aACA,GACA,sBACA,MACA,kBACA,MACA,mBACA,IACA,wBACA,IACA,SACA,KACA,MACA,KACA,YACA,MACA,kBACA,MACA,YACA,KACA,WACA,MACA,WACA,MACA,aACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,IACA,IACA,SACA,IACA,WACA,KACA,UACA,IACA,kBACA,KACA,0BACA,KACA,WACA,KACA,YACA,MACA,SACA,IACA,cACA,KACA,kBACA,KACA,uBACA,KACA,2BACA,KACA,SACA,IACA,UACA,KACA,cACA,IACA,mBACA,KACA,sBACA,KACA,mBACA,KACA,uBACA,KACA,mBACA,KACA,YACA,KACA,YACA,IACA,YACA,IACA,QACA,KACA,YACA,IACA,oBACA,KACA,YACA,KACA,KACA,IACA,WACA,MACA,SACA,IACA,YACA,IACA,SACA,IACA,YACA,KACA,aACA,KACA,YACA,MACA,aACA,KACA,QACA,IACA,aACA,KACA,gBACA,KACA,aACA,KACA,iBACA,KACA,aACA,KACA,gBACA,IACA,KACA,IACA,iBACA,IACA,YACA,MACA,qBACA,MACA,UACA,MACA,YACA,KACA,UACA,IACA,eACA,KACA,eACA,KACA,SACA,KACA,QACA,IACA,SACA,IACA,gBACA,KACA,mBACA,IACA,qBACA,KACA,qBACA,KACA,aACA,IACA,aACA,KACA,UACA,IACA,eACA,IACA,aACA,MACA,MACA,GACA,YACA,KACA,aACA,KACA,YACA,KACA,4BACA,MACA,UACA,KACA,iBACA,KACA,YACA,KACA,YACA,MACA,cACA,KACA,cACA,KACA,gBACA,KACA,UACA,IACA,cACA,MACA,sBACA,MACA,cACA,KACA,eACA,MACA,sBACA,KACA,cACA,MACA,WACA,KACA,YACA,KACA,aACA,KACA,aACA,IACA,WACA,KACA,cACA,IACA,UACA,KACA,WACA,KACA,UACA,IACA,gBACA,IACA,aACA,KACA,kBACA,KACA,QACA,IACA,SACA,KACA,aACA,KACA,SACA,KACA,cACA,IACA,eACA,IACA,aACA,KACA,aACA,KACA,sBACA,KACA,SACA,IACA,cACA,IACA,iBACA,MACA,iBACA,MACA,0BACA,MACA,eACA,IACA,YACA,MACA,aACA,KACA,SACA,IACA,cACA,KACA,iBACA,KACA,aACA,MACA,WACA,KACA,qBACA,MACA,cACA,IACA,iBACA,MACA,kBACA,MACA,eACA,MACA,YACA,IACA,oBACA,KACA,iBACA,KACA,qBACA,KACA,IACA,IACA,eACA,MACA,iBACA,MACA,YACA,KACA,SACA,KACA,SACA,KACA,WACA,KACA,SACA,KACA,aACA,KACA,aACA,KACA,aACA,MACA,gBACA,KACA,aACA,MACA,4BACA,KACA,mBACA,KACA,gBACA,MACA,YACA,IACA,WACA,KACA,YACA,GACA,wBACA,MACA,cACA,MACA,cACA,MACA,oBACA,KACA,qBACA,MACA,iBACA,MACA,oBACA,KACA,cACA,MACA,oBACA,MACA,aACA,GACA,yBACA,MACA,eACA,MACA,eACA,MACA,qBACA,KACA,sBACA,MACA,kBACA,MACA,qBACA,KACA,eACA,MACA,qBACA,MACA,cACA,KACA,cACA,KACA,eACA,KACA,WACA,MACA,QACA,KACA,UACA,KACA,UACA,KACA,UACA,KACA,cACA,KACA,oBACA,KACA,qBACA,KACA,kBACA,KACA,cACA,KACA,YACA,MACA,UACA,KACA,aACA,KACA,KACA,KACA,aACA,KACA,WACA,MACA,iBACA,MACA,cACA,MACA,sBACA,MACA,YACA,KACA,cACA,KACA,WACA,KACA,iBACA,MACA,mBACA,MACA,aACA,MACA,kBACA,MACA,aACA,MACA,uBACA,KACA,eACA,MACA,UACA,GACA,gBACA,KACA,mBACA,MACA,eACA,MACA,SACA,GACA,iBACA,KACA,iBACA,IACA,kBACA,MACA,iBACA,MACA,kBACA,MACA,cACA,MACA,iBACA,MACA,sBACA,IACA,gBACA,KACA,cACA,KACA,SACA,KACA,WACA,MACA,aACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,MACA,IACA,OACA,IACA,uBACA,MACA,sBACA,MACA,sBACA,MACA,gBACA,MACA,qBACA,MACA,WACA,IACA,cACA,KACA,iBACA,IACA,QACA,IACA,cACA,KACA,eACA,KACA,iBACA,KACA,KACA,IACA,qBACA,MACA,oBACA,MACA,mBACA,MACA,oBACA,MACA,oBACA,MACA,cACA,MACA,mBACA,MACA,wBACA,MACA,kBACA,MACA,wBACA,MACA,qBACA,MACA,oBACA,MACA,aACA,MACA,aACA,MACA,gBACA,IACA,eACA,KACA,OACA,GACA,eACA,IACA,aACA,KACA,YACA,IACA,UACA,IACA,gBACA,MACA,YACA,MACA,eACA,KACA,aACA,MACA,WACA,MACA,aACA,MACA,yBACA,KACA,yBACA,KACA,0BACA,KACA,uBACA,KACA,aACA,MACA,YACA,KACA,aACA,MACA,iBACA,MACA,SACA,KACA,WACA,KACA,eACA,KACA,WACA,IACA,gBACA,KACA,UACA,KACA,aACA,KACA,gBACA,MACA,YACA,KACA,eACA,KACA,iBACA,KACA,aACA,KACA,eACA,KACA,MACA,IACA,cACA,KACA,2BACA,KACA,WACA,MACA,aACA,MACA,aACA,MACA,WACA,MACA,WACA,MACA,IACA,IACA,SACA,KACA,cACA,KACA,YACA,KACA,iBACA,MACA,mBACA,MACA,kBACA,MACA,SACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,eACA,KACA,qBACA,KACA,oBACA,KACA,0BACA,KACA,2BACA,KACA,wBACA,KACA,sBACA,KACA,mBACA,KACA,mBACA,KACA,YACA,MACA,UACA,KACA,QACA,IACA,aACA,MACA,MACA,KACA,YACA,MACA,kBACA,MACA,YACA,KACA,SACA,KACA,cACA,KACA,SACA,KACA,WACA,KACA,WACA,KACA,WACA,KACA,eACA,KACA,qBACA,KACA,sBACA,KACA,mBACA,KACA,WACA,GACA,iBACA,KACA,mBACA,KACA,eACA,IACA,oBACA,MACA,gBACA,IACA,oBACA,MACA,gBACA,MACA,WACA,GACA,eACA,KACA,eACA,KACA,oBACA,MACA,gBACA,MACA,wBACA,MACA,gBACA,KACA,YACA,KACA,oBACA,KACA,gBACA,KACA,aACA,KACA,cACA,IACA,iBACA,KACA,cACA,GACA,uBACA,MACA,IACA,IACA,aACA,KACA,YACA,KACA,SACA,IACA,SACA,KACA,UACA,KACA,YACA,MACA,iBACA,MACA,wBACA,MACA,YACA,MACA,OACA,KACA,aACA,KACA,aACA,KACA,aACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,yBACA,KACA,0BACA,KACA,WACA,IACA,QACA,KACA,YACA,MACA,SACA,IACA,WACA,IACA,UACA,KACA,eACA,IACA,YACA,IACA,aACA,KACA,YACA,KACA,kBACA,KACA,gBACA,KACA,eACA,KACA,iBACA,KACA,aACA,IACA,eACA,MACA,gBACA,MACA,YACA,KACA,cACA,KACA,iBACA,MACA,aACA,MACA,aACA,MACA,sBACA,MACA,OACA,KACA,mBACA,MACA,aACA,KACA,gBACA,KACA,cACA,KACA,qBACA,KACA,gBACA,KACA,YACA,IACA,oBACA,IACA,aACA,KACA,UACA,KACA,MACA,IACA,QACA,IACA,cACA,IACA,sBACA,IACA,iBACA,KACA,gBACA,IACA,qBACA,MACA,oBACA,MACA,oBACA,MACA,mBACA,MACA,oBACA,MACA,wBACA,MACA,cACA,MACA,mBACA,MACA,qBACA,MACA,mBACA,MACA,qBACA,MACA,mBACA,MACA,uBACA,MACA,kBACA,MACA,qBACA,MACA,oBACA,MACA,yBACA,MACA,aACA,KACA,oBACA,IACA,gBACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,OACA,IACA,eACA,IACA,UACA,IACA,eACA,IACA,uBACA,KACA,uBACA,IACA,uBACA,IACA,gBACA,IACA,wBACA,IACA,wBACA,IACA,iBACA,IACA,gBACA,MACA,aACA,KACA,WACA,IACA,iBACA,IACA,aACA,MACA,aACA,MACA,aACA,MACA,sBACA,MACA,YACA,KACA,SACA,KACA,aACA,KACA,UACA,KACA,cACA,KACA,aACA,KACA,kBACA,MACA,mBACA,KACA,gBACA,KACA,oBACA,KACA,4BACA,KACA,yBACA,KACA,6BACA,KACA,YACA,MACA,UACA,KACA,UACA,IACA,kBACA,IACA,aACA,MACA,aACA,MACA,sBACA,MACA,mBACA,KACA,mBACA,KACA,SACA,MACA,SACA,KACA,kBACA,KACA,eACA,KACA,mBACA,KACA,2BACA,KACA,wBACA,KACA,4BACA,KACA,IACA,IACA,YACA,KACA,SACA,IACA,kBACA,KACA,YACA,KACA,SACA,KACA,iBACA,MACA,mBACA,MACA,kBACA,MACA,aACA,KACA,aACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,kCACA,MACA,SACA,KACA,eACA,MACA,qBACA,MACA,eACA,KACA,aACA,KACA,aACA,KACA,qBACA,KACA,oBACA,KACA,aACA,KACA,YACA,KACA,YACA,KACA,iBACA,MACA,aACA,KACA,gBACA,MACA,YACA,KACA,YACA,KACA,kBACA,MACA,cACA,KACA,iBACA,MACA,aACA,KACA,YACA,KACA,aACA,KACA,YACA,MACA,SACA,IACA,kBACA,KACA,WACA,IACA,QACA,IACA,gBACA,KACA,wBACA,KACA,YACA,IACA,UACA,KACA,cACA,IACA,eACA,IACA,aACA,KACA,YACA,KACA,qBACA,KACA,kBACA,IACA,SACA,KACA,oBACA,IACA,UACA,IACA,aACA,KACA,kBACA,MACA,oBACA,MACA,mBACA,MACA,QACA,KACA,UACA,KACA,UACA,KACA,UACA,KACA,cACA,KACA,oBACA,KACA,qBACA,KACA,gBACA,KACA,kBACA,KACA,cACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,YACA,GACA,kBACA,KACA,qBACA,MACA,iBACA,MACA,qBACA,MACA,8BACA,MACA,cACA,MACA,cACA,MACA,QACA,GACA,cACA,KACA,eACA,KACA,cACA,KACA,8BACA,MACA,YACA,KACA,eACA,KACA,gBACA,KACA,gBACA,KACA,kBACA,KACA,gBACA,MACA,wBACA,MACA,gBACA,KACA,iBACA,MACA,gBACA,MACA,aACA,KACA,cACA,KACA,eACA,KACA,aACA,KACA,gBACA,KACA,kBACA,KACA,iBACA,KACA,kBACA,KACA,YACA,KACA,YACA,IACA,cACA,KACA,aACA,KACA,cACA,KACA,eACA,KACA,oBACA,MACA,uBACA,MACA,oBACA,MACA,oBACA,MACA,uBACA,MACA,QACA,KACA,YACA,KACA,aACA,KACA,cACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,mBACA,KACA,aACA,MACA,gBACA,KACA,cACA,KACA,mBACA,MACA,qBACA,MACA,oBACA,MACA,aACA,IACA,SACA,KACA,eACA,KACA,QACA,KACA,WACA,KACA,UACA,KACA,UACA,KACA,UACA,KACA,cACA,KACA,oBACA,KACA,qBACA,KACA,kBACA,KACA,eACA,KACA,cACA,KACA,OACA,KACA,aACA,MACA,mBACA,MACA,oBACA,MACA,0BACA,MACA,mBACA,MACA,yBACA,MACA,gBACA,KACA,aACA,KACA,cACA,MACA,oBACA,MACA,aACA,MACA,mBACA,MACA,QACA,IACA,QACA,IACA,SACA,IACA,aACA,IACA,yBACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,cACA,KACA,kBACA,KACA,UACA,KACA,eACA,KACA,oBACA,MACA,mBACA,MACA,kBACA,MACA,mBACA,MACA,mBACA,MACA,aACA,MACA,kBACA,MACA,kBACA,MACA,kBACA,MACA,mBACA,MACA,MACA,GACA,YACA,KACA,aACA,KACA,YACA,KACA,4BACA,MACA,UACA,KACA,cACA,KACA,cACA,KACA,gBACA,KACA,cACA,MACA,sBACA,MACA,cACA,KACA,eACA,MACA,cACA,MACA,WACA,KACA,YACA,KACA,aACA,KACA,WACA,KACA,cACA,KACA,gBACA,KACA,oCACA,KACA,eACA,KACA,gBACA,KACA,UACA,KACA,QACA,GACA,iBACA,MACA,QACA,IACA,iBACA,KACA,YACA,KACA,aACA,MACA,iBACA,KACA,aACA,IACA,mBACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,wBACA,IACA,yBACA,IACA,aACA,KACA,aACA,KACA,WACA,KACA,YACA,KACA,QACA,GACA,kBACA,GACA,QACA,KACA,iBACA,KACA,iBACA,KACA,SACA,KACA,iBACA,IACA,WACA,MACA,WACA,MACA,+BACA,KACA,uBACA,KACA,WACA,MACA,WACA,MACA,kBACA,MACA,WACA,MACA,YACA,MACA,WACA,MACA,YACA,MACA,WACA,MACA,iBACA,MACA,iCACA,KACA,kCACA,KACA,kCACA,KACA,qBACA,KACA,4BACA,KACA,WACA,MACA,aACA,KACA,UACA,KACA,cACA,KACA,mBACA,MACA,mBACA,MACA,mBACA,MACA,oBACA,MACA,mBACA,MACA,mBACA,MACA,kBACA,MACA,oBACA,MACA,YACA,MACA,WACA,IACA,oBACA,MACA,uBACA,IACA,wBACA,IACA,SACA,KACA,iBACA,KACA,gBACA,KACA,WACA,KACA,WACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,cACA,KACA,YACA,KACA,MACA,KACA,WACA,KACA,mBACA,KACA,kBACA,KACA,WACA,MACA,kBACA,MACA,IACA,IACA,YACA,KACA,WACA,KACA,WACA,KACA,SACA,KACA,aACA,KACA,aACA,KACA,YACA,KACA,iBACA,MACA,mBACA,MACA,aACA,MACA,kBACA,MACA,mBACA,MACA,aACA,MACA,sBACA,MACA,gBACA,KACA,MACA,IACA,MACA,KACA,WACA,MACA,YACA,MACA,kBACA,MACA,YACA,KACA,OACA,IACA,YACA,MACA,SACA,IACA,SACA,IACA,WACA,IACA,cACA,KACA,mBACA,MACA,qBACA,MACA,oBACA,MACA,UACA,KACA,mBACA,KACA,eACA,IACA,YACA,KACA,aACA,KACA,YACA,KACA,aACA,KACA,sBACA,KACA,YACA,KACA,iBACA,MACA,sBACA,MACA,uBACA,MACA,mBACA,MACA,aACA,MACA,uBACA,MACA,wBACA,MACA,mBACA,KACA,wBACA,MACA,kBACA,MACA,uBACA,MACA,wBACA,MACA,qBACA,MACA,aACA,MACA,sBACA,MACA,YACA,KACA,iBACA,KACA,sBACA,KACA,sBACA,KACA,YACA,KACA,sBACA,MACA,WACA,KACA,YACA,KACA,WACA,KACA,OACA,IACA,MACA,KACA,YACA,MACA,kBACA,MACA,YACA,KACA,gBACA,KACA,cACA,KACA,kBACA,KACA,aACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,aACA,KACA,kBACA,MACA,yBACA,MACA,0BACA,MACA,kBACA,KACA,2BACA,MACA,aACA,KACA,kBACA,MACA,oBACA,MACA,mBACA,MACA,cACA,KACA,YACA,KACA,QACA,IACA,SACA,IACA,mBACA,IACA,uBACA,MACA,sBACA,MACA,sBACA,MACA,gBACA,MACA,qBACA,MACA,iBACA,KACA,gBACA,KACA,iBACA,KACA,oBACA,KACA,QACA,IACA,iBACA,KACA,QACA,IACA,gBACA,KACA,cACA,KACA,eACA,KACA,eACA,KACA,mBACA,KACA,2BACA,KACA,4BACA,KACA,QACA,GACA,cACA,KACA,eACA,KACA,cACA,KACA,8BACA,MACA,YACA,KACA,eACA,KACA,gBACA,KACA,gBACA,KACA,kBACA,KACA,gBACA,MACA,wBACA,MACA,gBACA,KACA,iBACA,MACA,wBACA,KACA,gBACA,MACA,aACA,KACA,cACA,KACA,eACA,KACA,gBACA,IACA,sBACA,MACA,aACA,KACA,gBACA,IACA,YACA,KACA,YACA,MACA,aACA,MACA,aACA,MACA,sBACA,MACA,sBACA,MACA,qBACA,MACA,qBACA,MACA,eACA,MACA,oBACA,MACA,QACA,IACA,gBACA,IACA,WACA,IACA,YACA,IACA,iBACA,IACA,gBACA,KACA,kBACA,IACA,mBACA,IACA,cACA,KACA,eACA,KACA,mBACA,KACA,gBACA,KACA,mBACA,KACA,eACA,KACA,aACA,KACA,aACA,MACA,aACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,sBACA,IACA,qBACA,IACA,iBACA,IACA,gBACA,IACA,gBACA,IACA,WACA,IACA,UACA,IACA,UACA,IACA,QACA,IACA,YACA,MACA,cACA,KACA,2BACA,MACA,gCACA,MACA,mCACA,MACA,4BACA,MACA,iCACA,MACA,oCACA,MACA,YACA,KACA,eACA,IACA,SACA,KACA,YACA,KACA,gBACA,MACA,iBACA,MACA,iBACA,IACA,UACA,KACA,UACA,KACA,UACA,KACA,UACA,KACA,KACA,IACA,QACA,KACA,cACA,MACA,oBACA,MACA,cACA,KACA,cACA,KACA,QACA,KACA,UACA,KACA,UACA,KACA,UACA,KACA,cACA,KACA,oBACA,KACA,qBACA,KACA,kBACA,KACA,eACA,KACA,YACA,MACA,aACA,KACA,UACA,KACA,cACA,KACA,cACA,KACA,aACA,KACA,kBACA,MACA,oBACA,MACA,mBACA,MACA,cACA,KACA,WACA,KACA,eACA,KACA,eACA,KACA,UACA,IACA,aACA,MACA,aACA,MACA,sBACA,MACA,kBACA,MACA,kBACA,MACA,2BACA,MACA,eACA,KACA,cACA,KACA,eACA,KACA,cACA,KACA,eACA,KACA,iBACA,MACA,cACA,KACA,eACA,KACA,MACA,GACA,YACA,KACA,aACA,KACA,YACA,KACA,4BACA,MACA,UACA,KACA,iBACA,KACA,eACA,KACA,uBACA,MACA,cACA,KACA,cACA,KACA,gBACA,KACA,cACA,MACA,sBACA,MACA,cACA,KACA,eACA,MACA,sBACA,KACA,cACA,MACA,WACA,KACA,YACA,KACA,aACA,KACA,WACA,KACA,YACA,IACA,cACA,IACA,UACA,KACA,YACA,KACA,IACA,IACA,SACA,IACA,OACA,IACA,WACA,KACA,YACA,MACA,SACA,IACA,SACA,IACA,UACA,KACA,cACA,IACA,mBACA,KACA,YACA,KACA,aACA,KACA,YACA,IACA,YACA,IACA,QACA,KACA,YACA,IACA,iBACA,IACA,iBACA,KACA,iBACA,IACA,oBACA,KACA,iBACA,IACA,kBACA,IACA,YACA,KACA,SACA,IACA,YACA,KACA,YACA,KACA,YACA,MACA,aACA,KACA,QACA,IACA,aACA,KACA,gBACA,KACA,aACA,KACA,iBACA,KACA,aACA,KACA,gBACA,IACA,wBACA,KACA,iBACA,IACA,YACA,MACA,qBACA,MACA,aACA,KACA,UACA,MACA,UACA,IACA,kBACA,KACA,kBACA,KACA,iBACA,KACA,aACA,MACA,aACA,GACA,gBACA,KACA,sBACA,MACA,qBACA,MACA,iBACA,MACA,QACA,KACA,YACA,KACA,UACA,IACA,SACA,KACA,UACA,KACA,iBACA,KACA,UACA,IACA,kBACA,IACA,uBACA,IACA,eACA,IACA,eACA,IACA,iBACA,IACA,YACA,IACA,cACA,KACA,QACA,IACA,iBACA,KACA,iBACA,MACA,iBACA,MACA,0BACA,MACA,oBACA,KACA,0BACA,KACA,SACA,IACA,cACA,KACA,cACA,KACA,YACA,KACA,SACA,KACA,aACA,KACA,aACA,KACA,kBACA,KACA,qBACA,KACA,kBACA,KACA,sBACA,KACA,oBACA,KACA,iBACA,KACA,qBACA,KACA,IACA,IACA,SACA,KACA,aACA,KACA,aACA,KACA,aACA,MACA,MACA,KACA,YACA,MACA,cACA,MACA,kBACA,MACA,YACA,KACA,WACA,MACA,iBACA,MACA,eACA,KACA,eACA,KACA,UACA,KACA,YACA,KACA,aACA,KACA,YACA,KACA,iBACA,MACA,mBACA,MACA,kBACA,MACA,aACA,MACA,QACA,KACA,cACA,IACA,uBACA,IACA,uBACA,IACA,qBACA,IACA,kBACA,IACA,cACA,KACA,QACA,IACA,aACA,MACA,gBACA,KACA,aACA,KACA,iBACA,KACA,iBACA,KACA,cACA,KACA,kBACA,KACA,aACA,MACA,aACA,KACA,0BACA,MACA,0BACA,MACA,iBACA,MACA,0BACA,MACA,aACA,MACA,SACA,KACA,SACA,KACA,UACA,IACA,aACA,MACA,aACA,MACA,IACA,IACA,SACA,KACA,YACA,MACA,aACA,MACA,aACA,MACA,sBACA,MACA,WACA,MACA,kBACA,MACA,kBACA,MACA,cACA,MACA,WACA,MACA,yBACA,MACA,YACA,KACA,iBACA,MACA,sBACA,KACA,2BACA,MACA,WACA,MACA,UACA,KACA,cACA,IACA,YACA,KACA,aACA,KACA,YACA,KACA,aACA,MACA,cACA,KACA,aACA,MACA,WACA,MACA,YACA,MACA,SACA,KACA,cACA,KACA,cACA,KACA,qBACA,KACA,yBACA,MACA,iCACA,MACA,0BACA,MACA,kCACA,MACA,eACA,KACA,0CACA,KACA,iCACA,KACA,4BACA,KACA,iCACA,KACA,4BACA,KACA,6BACA,MACA,8BACA,MACA,kCACA,KACA,6BACA,KACA,mBACA,KACA,mBACA,KACA,cACA,KACA,YACA,KACA,iBACA,KACA,gCACA,MACA,iCACA,MACA,+BACA,KACA,0BACA,KACA,aACA,MACA,aACA,MACA,WACA,MACA,aACA,MACA,aACA,MACA,aACA,MACA,sBACA,MACA,MACA,KACA,eACA,MACA,aACA,KACA,SACA,KACA,QACA,KACA,YACA,IACA,UACA,IACA,OACA,IACA,IACA,IACA,YACA,IACA,YACA,MACA,UACA,KACA,YACA,KACA,aACA,KACA,cACA,KACA,KACA,IACA,aACA,MACA,SACA,KACA,YACA,IACA,IACA,IACA,cACA,MACA,YACA,KACA,SACA,IACA,SACA,KACA,YACA,MACA,aACA,KACA,aACA,KACA,aACA,MACA,aACA,MACA,sBACA,MACA,WACA,MACA,eACA,KACA,kBACA,MACA,kBACA,MACA,2BACA,MACA,cACA,KACA,UACA,KACA,cACA,IACA,YACA,IACA,aACA,KACA,YACA,KACA,YACA,KACA,kBACA,KACA,uBACA,MACA,iBACA,MACA,sBACA,KACA,2BACA,MACA,6BACA,MACA,4BACA,MACA,mBACA,MACA,kBACA,MACA,uBACA,MACA,wBACA,MACA,qBACA,MACA,0BACA,KACA,WACA,MACA,MACA,IACA,eACA,MACA,YACA,MACA,oBACA,MACA,qBACA,KACA,yBACA,KACA,eACA,KACA,uBACA,KACA,iBACA,MACA,wBACA,MACA,qBACA,MACA,cACA,KACA,SACA,KACA,QACA,IACA,aACA,KACA,aACA,KACA,aACA,KACA,WACA,MACA,UACA,KACA,eACA,KACA,aACA,MACA,MACA,KACA,YACA,MACA,kBACA,MACA,YACA,KACA,eACA,KACA,oBACA,MACA,aACA,MACA,YACA,MACA,aACA,MACA,sBACA,MACA,WACA,MACA,kBACA,MACA,kBACA,MACA,2BACA,MACA,WACA,KACA,cACA,MACA,aACA,MACA,YACA,KACA,aACA,KACA,SACA,KACA,gBACA,IACA,wBACA,IACA,KACA,IACA,QACA,KACA,YACA,IACA,SACA,KACA,UACA,IACA,aACA,MACA,YACA,MACA,aACA,MACA,sBACA,MACA,WACA,MACA,iBACA,KACA,yBACA,KACA,oBACA,KACA,4BACA,KACA,kBACA,MACA,kBACA,MACA,2BACA,MACA,aACA,MACA,cACA,MACA,aACA,KACA,UACA,KACA,IACA,IACA,aACA,KACA,SACA,IACA,SACA,KACA,aACA,KACA,YACA,KACA,iBACA,MACA,mBACA,MACA,aACA,MACA,kBACA,MACA,aACA,KACA,kBACA,MACA,aACA,MACA,mBACA,KACA,mBACA,KACA,cACA,KACA,QACA,KACA,cACA,MACA,oBACA,MACA,cACA,KACA,YACA,MACA,SACA,IACA,UACA,KACA,cACA,KACA,QACA,IACA,OACA,IACA,aACA,IACA,YACA,KACA,aACA,KACA,sBACA,KACA,qBACA,KACA,aACA,MACA,aACA,MACA,OACA,GACA,aACA,KACA,cACA,KACA,WACA,KACA,eACA,KACA,eACA,KACA,iBACA,KACA,eACA,KACA,gBACA,MACA,eACA,MACA,cACA,KACA,eACA,KACA,WACA,KACA,kBACA,MACA,qBACA,KACA,iBACA,KACA,OACA,IACA,aACA,MACA,cACA,KACA,mBACA,KACA,cACA,KACA,uBACA,KACA,sBACA,KACA,aACA,MACA,aACA,MACA,cACA,KACA,aACA,KACA,aACA,MACA,aACA,MACA,aACA,MACA,SACA,KACA,iBACA,IACA,UACA,IACA,aACA,MACA,aACA,MACA,UACA,EACA,oBACA,KACA,oBACA,KACA,qBACA,KACA,qBACA,KACA,qBACA,KACA,qBACA,KACA,sBACA,KACA,sBACA,KACA,gBACA,KACA,iBACA,KACA,mBACA,KACA,mBACA,KACA,iBACA,KACA,iBACA,KACA,oBACA,KACA,oBACA,KACA,iBACA,KACA,iBACA,KACA,eACA,KACA,eACA,KACA,gBACA,KACA,gBACA,KACA,SACA,KACA,oBACA,MACA,qBACA,MACA,kBACA,MACA,mBACA,MACA,eACA,IACA,eACA,IACA,gBACA,IACA,gBACA,IACA,gBACA,IACA,gBACA,IACA,iBACA,IACA,iBACA,IACA,iBACA,GACA,iBACA,GACA,kBACA,GACA,kBACA,GACA,kBACA,GACA,kBACA,GACA,mBACA,GACA,mBACA,GACA,iBACA,KACA,iBACA,KACA,kBACA,KACA,kBACA,KACA,kBACA,KACA,kBACA,KACA,mBACA,KACA,mBACA,KACA,mBACA,KACA,gBACA,KACA,wBACA,KACA,qBACA,KACA,oBACA,KACA,iBACA,KACA,sBACA,KACA,mBACA,KACA,mBACA,KACA,gBACA,KACA,eACA,KACA,eACA,KACA,gBACA,KACA,gBACA,KACA,gBACA,KACA,gBACA,KACA,iBACA,KACA,iBACA,KACA,UACA,IACA,WACA,IACA,YACA,IACA,WACA,KACA,kBACA,KACA,eACA,KACA,sBACA,KACA,mBACA,KACA,oBACA,KACA,iBACA,KACA,mBACA,KACA,gBACA,KACA,eACA,GACA,eACA,GACA,gBACA,GACA,gBACA,GACA,gBACA,GACA,gBACA,GACA,iBACA,GACA,iBACA,GACA,QACA,KACA,iBACA,KACA,cACA,KACA,aACA,KACA,aACA,KACA,cACA,KACA,cACA,KACA,YACA,KACA,YACA,KACA,gBACA,KACA,WACA,GACA,WACA,GACA,YACA,GACA,YACA,GACA,mBACA,KACA,gBACA,KACA,YACA,IACA,aACA,IACA,cACA,IACA,eACA,KACA,oBACA,KACA,iBACA,KACA,iBACA,KACA,cACA,KACA,YACA,KACA,gBACA,KACA,gBACA,SAGI+zF,GAA2B,EAAGsY,EAA4CrsG,6BAA4B,WAC3G,MAAO,CACN,QACA,GACA,KACA,KACA,KACA,KACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,KACA,OACA,KACA,OACA,KACA,MACA,KACA,MACA,KACA,MACA,KACA,MACA,KACA,MACA,KACA,MACA,KACA,OACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,KACA,MACA,KACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,KACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,KACA,MACA,KACA,MACA,KACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,KACA,OACA,KACA,OACA,KACA,OACA,KACA,OACA,KACA,OACA,KACA,OACA,KACA,OACA,KACA,OACA,KACA,OACA,KACA,OACA,KACA,OACA,KACA,OACA,KACA,OACA,KACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,KACA,OACA,KACA,OACA,KACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UACA,OAOI,CAAE9yB,EAAyBC,EAASC,KAI1CC,OAAOC,eAAeH,EAAS,aAAc,CAC3CI,OAAO,IAETJ,EAAQm0G,gBAAkBn0G,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,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,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,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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IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,CACCD,MAAO,KACPC,IAAK,MAEN,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,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,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,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,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,OACPC,IAAK,QAEN,CACCD,MAAO,OACPC,IAAK,QAEN,CACCD,MAAO,QACPC,IAAK,SAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,OACPC,IAAK,QAEN,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,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,OACPC,IAAK,QAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,OACPC,IAAK,QAEN,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,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,KACPC,IAAK,OAEN,CACCD,MAAO,MACPC,IAAK,OAEN,CACCD,MAAO,OACPC,IAAK,SAGP,SAAS03F,EAAmBpkH,GAC3B,IAAK,IAAIsD,EAAI,EAAGiG,EAAKi8H,EAAc9iI,OAAQY,EAAIiG,EAAIjG,IAAK,CACvD,MAAMqtB,EAAQ60G,EAAcliI,GAC5B,GAAItD,GAAS2wB,EAAMlE,OAASzsB,EAAQ2wB,EAAMjE,IACzC,OAAOppB,EAGT,OAAQ,EAaT,MAAM4oG,GAAwB,EAAG4yB,EAA4CrsG,6BAA4B,WACxG,MAAO,CACN,OACA,UACA,OACA,UACA,OACA,UACA,OACA,SACA,OACA,UACA,SACA,KACA,SACA,KACA,SACA,QACA,SACA,QACA,SACA,UACA,SACA,IACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,IACA,SACA,IACA,SACA,IACA,SACA,IACA,SACA,IACA,SACA,IACA,SACA,IACA,SACA,IACA,SACA,UACA,SACA,IACA,SACA,KACA,SACA,MACA,SACA,eACA,SACA,qBACA,SACA,eACA,SACA,qBACA,SACA,KACA,SACA,UACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,2BACA,SACA,IACA,SACA,KACA,SACA,MACA,SACA,MACA,SACA,QACA,SACA,MACA,SACA,MACA,SACA,SACA,SACA,QACA,SACA,KACA,SACA,MACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,MACA,SACA,IACA,SACA,KACA,SACA,MACA,SACA,KACA,SACA,IACA,SACA,KACA,SACA,MACA,SACA,OACA,SACA,KACA,SACA,IACA,SACA,KACA,SACA,MACA,SACA,IACA,SACA,IACA,SACA,IACA,SACA,IACA,SACA,IACA,SACA,KACA,SACA,MACA,SACA,KACA,SACA,IACA,SACA,KACA,SACA,MACA,SACA,OACA,SACA,KACA,SACA,IACA,SACA,KACA,SACA,MACA,SACA,IACA,SACA,IACA,SACA,IACA,SACA,IACA,SACA,eACA,SACA,qBACA,SACA,eACA,SACA,qBACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,2BACA,SACA,MACA,SACA,KACA,SACA,MACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,iBACA,SACA,iBACA,SACA,iBACA,SACA,iBACA,SACA,iBACA,SACA,iBACA,SACA,iBACA,SACA,iBACA,SACA,iBACA,SACA,iBACA,SACA,iBACA,SACA,iBACA,SACA,iBACA,SACA,iBACA,SACA,iBACA,SACA,mCACA,SACA,6BACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,WACA,SACA,KACA,SACA,KACA,SACA,KACA,SACA,MACA,SACA,MACA,SACA,UACA,SACA,KACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,gBACA,SACA,gBACA,SACA,gBACA,SACA,gBACA,SACA,gBACA,SACA,gBACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,eACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,qBACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,IACA,SACA,IACA,SACA,IACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SA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KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,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,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,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,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,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,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,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,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MA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","file":"js/pdf.worker-fe6932106a10eca4f24c.worker.js","sourcesContent":["/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @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 /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.WorkerTask = exports.WorkerMessageHandler = 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__(48);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(69);\n\nvar _worker_stream = __w_pdfjs_require__(70);\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.8.337';\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\") {\n throw new Error(\"The browser/environment lacks native support for critical \" + \"functionality used by the PDF.js library (e.g. `ReadableStream`); \" + \"please use a `legacy`-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, isPureXfa] = await Promise.all([pdfManager.ensureDoc(\"numPages\"), pdfManager.ensureDoc(\"fingerprint\"), pdfManager.ensureDoc(\"isPureXfa\")]);\n return {\n numPages,\n fingerprint,\n isPureXfa\n };\n }\n\n function getPdfManager(data, evaluatorOptions, enableXfa) {\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, enableXfa, 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, enableXfa, 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, enableXfa, 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, data.enableXfa).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(\"GetDocJSActions\", function wphSetupGetDocJSActions(data) {\n return pdfManager.ensureCatalog(\"jsActions\");\n });\n handler.on(\"GetPageJSActions\", function ({\n pageIndex\n }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return page.jsActions;\n });\n });\n handler.on(\"GetPageXfa\", function wphSetupGetXfa({\n pageIndex\n }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return pdfManager.ensure(page, \"xfaData\");\n });\n });\n handler.on(\"GetIsPureXfa\", function wphSetupGetIsPureXfa(data) {\n return pdfManager.ensureDoc(\"isPureXfa\");\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(\"GetMarkInfo\", function wphSetupGetMarkInfo(data) {\n return pdfManager.ensureCatalog(\"markInfo\");\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(\"GetFieldObjects\", function (data) {\n return pdfManager.ensureDoc(\"fieldObjects\");\n });\n handler.on(\"HasJSActions\", function (data) {\n return pdfManager.ensureDoc(\"hasJSActions\");\n });\n handler.on(\"GetCalculationOrderIds\", function (data) {\n return pdfManager.ensureDoc(\"calculationOrderIds\");\n });\n handler.on(\"SaveDocument\", function ({\n numPages,\n annotationStorage,\n filename\n }) {\n pdfManager.requestLoadedStream();\n const promises = [pdfManager.onLoadedStream(), pdfManager.ensureCatalog(\"acroForm\"), pdfManager.ensureDoc(\"xref\"), pdfManager.ensureDoc(\"startXRef\")];\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 startWorkerTask(task);\n return page.save(handler, task, annotationStorage).finally(function () {\n finishWorkerTask(task);\n });\n }));\n }\n\n return Promise.all(promises).then(function ([stream, acroForm, xref, startXRef, ...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 xfa = acroForm instanceof _primitives.Dict && acroForm.get(\"XFA\") || [];\n let xfaDatasets = null;\n\n if (Array.isArray(xfa)) {\n for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n if (xfa[i] === \"datasets\") {\n xfaDatasets = xfa[i + 1];\n }\n }\n } else {\n (0, _util.warn)(\"Unsupported XFA type.\");\n }\n\n let newXrefInfo = Object.create(null);\n\n if (xref.trailer) {\n const infoObj = Object.create(null);\n const xrefInfo = xref.trailer.get(\"Info\") || null;\n\n if (xrefInfo instanceof _primitives.Dict) {\n xrefInfo.forEach((key, value) => {\n if ((0, _util.isString)(key) && (0, _util.isString)(value)) {\n infoObj[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: infoObj,\n fileIds: xref.trailer.getRaw(\"ID\") || null,\n startXRef,\n filename\n };\n }\n\n xref.resetNewRef();\n return (0, _writer.incrementalUpdate)({\n originalData: stream.bytes,\n xrefInfo: newXrefInfo,\n newRefs,\n xref,\n datasetsRef: xfaDatasets\n });\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 });\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createObjectURL = createObjectURL;\nexports.createPromiseCapability = createPromiseCapability;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isAscii = isAscii;\nexports.isBool = isBool;\nexports.isNum = isNum;\nexports.isSameOrigin = isSameOrigin;\nexports.isString = isString;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.removeNullCharacters = removeNullCharacters;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF16BEString = stringToUTF16BEString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nexports.VerbosityLevel = exports.Util = exports.UNSUPPORTED_FEATURES = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.IsLittleEndianCached = exports.IsEvalSupportedCached = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = 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 AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\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 objectSize(obj) {\n return Object.keys(obj).length;\n}\n\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n\n for (const [key, value] of map) {\n obj[key] = value;\n }\n\n return obj;\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 hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, \"0\"));\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\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) ** 2 - 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(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(String.fromCharCode(char >> 8 & 0xff));\n buf.push(String.fromCharCode(char & 0xff));\n }\n\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isBool(v) {\n return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n return typeof v === \"number\";\n}\n\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().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\nfunction createObjectURL(data, contentType = \"\", forceDataSchema = false) {\n if (URL.createObjectURL && !forceDataSchema) {\n return URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n }\n\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\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/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\n\nvar _is_node = __w_pdfjs_require__(4);\n\n;\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, exports) => {\n\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.clearPrimitiveCaches = clearPrimitiveCaches;\nexports.isCmd = isCmd;\nexports.isDict = isDict;\nexports.isEOF = isEOF;\nexports.isName = isName;\nexports.isRef = isRef;\nexports.isRefsEqual = isRefsEqual;\nexports.isStream = isStream;\nexports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.EOF = exports.Dict = exports.Cmd = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst EOF = {};\nexports.EOF = EOF;\n\nconst 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 const 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\nconst 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 const 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\nconst Dict = function DictClosure() {\n const 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 (const key in this._map) {\n callback(key, this.get(key));\n }\n }\n };\n\n Dict.empty = function () {\n const emptyDict = new Dict(null);\n\n emptyDict.set = (key, value) => {\n (0, _util.unreachable)(\"Should not call `set` on the empty dictionary.\");\n };\n\n return emptyDict;\n }();\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\nconst 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(parent = null) {\n this._set = new Set(parent && parent._set);\n }\n\n has(ref) {\n return this._set.has(ref.toString());\n }\n\n put(ref) {\n this._set.add(ref.toString());\n }\n\n remove(ref) {\n this._set.delete(ref.toString());\n }\n\n forEach(callback) {\n for (const ref of this._set.values()) {\n callback(ref);\n }\n }\n\n clear() {\n this._set.clear();\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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\nfunction parseDocBaseUrl(url) {\n if (url) {\n const absoluteUrl = (0, _util.createValidAbsoluteUrl)(url);\n\n if (absoluteUrl) {\n return absoluteUrl.href;\n }\n\n (0, _util.warn)(`Invalid absolute docBaseUrl: \"${url}\".`);\n }\n\n return null;\n}\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 return this._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, enableXfa, docBaseUrl) {\n super();\n this._docId = docId;\n this._password = password;\n this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n this.evaluatorOptions = evaluatorOptions;\n this.enableXfa = enableXfa;\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, enableXfa, docBaseUrl) {\n super();\n this._docId = docId;\n this._password = args.password;\n this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n this.msgHandler = args.msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n this.enableXfa = enableXfa;\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.collectActions = collectActions;\nexports.encodeToXmlString = encodeToXmlString;\nexports.escapePDFName = escapePDFName;\nexports.getArrayLookupTableFactory = getArrayLookupTableFactory;\nexports.getInheritableProperty = getInheritableProperty;\nexports.getLookupTableFactory = getLookupTableFactory;\nexports.isWhiteSpace = isWhiteSpace;\nexports.log2 = log2;\nexports.parseXFAPath = parseXFAPath;\nexports.readInt8 = readInt8;\nexports.readUint16 = readUint16;\nexports.readUint32 = readUint32;\nexports.toRomanNumerals = toRomanNumerals;\nexports.XRefParseException = exports.XRefEntryException = exports.MissingDataException = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\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\nfunction getArrayLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n let arr = initializer();\n initializer = null;\n lookup = Object.create(null);\n\n for (let i = 0, ii = arr.length; i < ii; i += 2) {\n lookup[arr[i]] = arr[i + 1];\n }\n\n arr = 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 let values;\n const visited = new _primitives.RefSet();\n\n while (dict instanceof _primitives.Dict && !(dict.objId && visited.has(dict.objId))) {\n if (dict.objId) {\n visited.put(dict.objId);\n }\n\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 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\nfunction parseXFAPath(path) {\n const positionPattern = /(.+)\\[([0-9]+)\\]$/;\n return path.split(\".\").map(component => {\n const m = component.match(positionPattern);\n\n if (m) {\n return {\n name: m[1],\n pos: parseInt(m[2], 10)\n };\n }\n\n return {\n name: component,\n pos: 0\n };\n });\n}\n\nfunction escapePDFName(str) {\n const buffer = [];\n let start = 0;\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n\n if (char < 0x21 || char > 0x7e || char === 0x23 || char === 0x28 || char === 0x29 || char === 0x3c || char === 0x3e || char === 0x5b || char === 0x5d || char === 0x7b || char === 0x7d || char === 0x2f || char === 0x25) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n\n buffer.push(`#${char.toString(16)}`);\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n\n return buffer.join(\"\");\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n if (!entry) {\n return;\n }\n\n let parent = null;\n\n if ((0, _primitives.isRef)(entry)) {\n if (parents.has(entry)) {\n return;\n }\n\n parent = entry;\n parents.put(parent);\n entry = xref.fetch(entry);\n }\n\n if (Array.isArray(entry)) {\n for (const element of entry) {\n _collectJS(element, xref, list, parents);\n }\n } else if (entry instanceof _primitives.Dict) {\n if ((0, _primitives.isName)(entry.get(\"S\"), \"JavaScript\") && entry.has(\"JS\")) {\n const js = entry.get(\"JS\");\n let code;\n\n if ((0, _primitives.isStream)(js)) {\n code = (0, _util.bytesToString)(js.getBytes());\n } else {\n code = js;\n }\n\n code = (0, _util.stringToPDFString)(code);\n\n if (code) {\n list.push(code);\n }\n }\n\n _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n }\n\n if (parent) {\n parents.remove(parent);\n }\n}\n\nfunction collectActions(xref, dict, eventType) {\n const actions = Object.create(null);\n const additionalActionsDicts = getInheritableProperty({\n dict,\n key: \"AA\",\n stopWhenFound: false\n });\n\n if (additionalActionsDicts) {\n for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n const additionalActions = additionalActionsDicts[i];\n\n if (!(additionalActions instanceof _primitives.Dict)) {\n continue;\n }\n\n for (const key of additionalActions.getKeys()) {\n const action = eventType[key];\n\n if (!action) {\n continue;\n }\n\n const actionDict = additionalActions.getRaw(key);\n const parents = new _primitives.RefSet();\n const list = [];\n\n _collectJS(actionDict, xref, list, parents);\n\n if (list.length > 0) {\n actions[action] = list;\n }\n }\n }\n }\n\n if (dict.has(\"A\")) {\n const actionDict = dict.get(\"A\");\n const parents = new _primitives.RefSet();\n const list = [];\n\n _collectJS(actionDict, xref, list, parents);\n\n if (list.length > 0) {\n actions.Action = list;\n }\n }\n\n return (0, _util.objectSize)(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n 0x3c: \"<\",\n 0x3e: \">\",\n 0x26: \"&\",\n 0x22: \""\",\n 0x27: \"'\"\n};\n\nfunction encodeToXmlString(str) {\n const buffer = [];\n let start = 0;\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n\n if (0x20 <= char && char <= 0x7e) {\n const entity = XMLEntities[char];\n\n if (entity) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n\n buffer.push(entity);\n start = i + 1;\n }\n } else {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n\n buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n i++;\n }\n\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n\n return buffer.join(\"\");\n}\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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__(27);\n\nvar _crypto = __w_pdfjs_require__(22);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _operator_list = __w_pdfjs_require__(46);\n\nvar _evaluator = __w_pdfjs_require__(29);\n\nvar _factory = __w_pdfjs_require__(49);\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 nonBlendModesSet,\n xfaFactory\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.nonBlendModesSet = nonBlendModesSet;\n this.evaluatorOptions = pdfManager.evaluatorOptions;\n this.resourcesPromise = null;\n this.xfaFactory = xfaFactory;\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 if (this.xfaData) {\n const {\n width,\n height\n } = this.xfaData.attributes.style;\n return [0, 0, parseInt(width), parseInt(height)];\n }\n\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 get xfaData() {\n if (this.xfaFactory) {\n return (0, _util.shadow)(this, \"xfaData\", this.xfaFactory.getPage(this.pageIndex));\n }\n\n return (0, _util.shadow)(this, \"xfaData\", null);\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, this.nonBlendModesSet),\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) && !annotation.isHidden(annotationStorage)) {\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 const annots = this._getInheritableProperty(\"Annots\");\n\n return (0, _util.shadow)(this, \"annotations\", Array.isArray(annots) ? 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, false).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 get jsActions() {\n const actions = (0, _core_utils.collectActions)(this.xref, this.pageDict, _util.PageActionEventType);\n return (0, _util.shadow)(this, \"jsActions\", actions);\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 if (this.xfaFactory) {\n return (0, _util.shadow)(this, \"numPages\", this.xfaFactory.numberPages);\n }\n\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\n if (!Array.isArray(fields)) {\n return false;\n }\n\n return fields.every(field => {\n field = this.xref.fetchIfRef(field);\n\n if (!(field instanceof _primitives.Dict)) {\n return false;\n }\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 xfaData() {\n const acroForm = this.catalog.acroForm;\n\n if (!acroForm) {\n return null;\n }\n\n const xfa = acroForm.get(\"XFA\");\n const entries = {\n \"xdp:xdp\": \"\",\n template: \"\",\n datasets: \"\",\n config: \"\",\n connectionSet: \"\",\n localeSet: \"\",\n stylesheet: \"\",\n \"/xdp:xdp\": \"\"\n };\n\n if ((0, _primitives.isStream)(xfa) && !xfa.isEmpty) {\n try {\n entries[\"xdp:xdp\"] = (0, _util.stringToUTF8String)((0, _util.bytesToString)(xfa.getBytes()));\n return entries;\n } catch (_) {\n (0, _util.warn)(\"XFA - Invalid utf-8 string.\");\n return null;\n }\n }\n\n if (!Array.isArray(xfa) || xfa.length === 0) {\n return null;\n }\n\n for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n let name;\n\n if (i === 0) {\n name = \"xdp:xdp\";\n } else if (i === ii - 2) {\n name = \"/xdp:xdp\";\n } else {\n name = xfa[i];\n }\n\n if (!entries.hasOwnProperty(name)) {\n continue;\n }\n\n const data = this.xref.fetchIfRef(xfa[i + 1]);\n\n if (!(0, _primitives.isStream)(data) || data.isEmpty) {\n continue;\n }\n\n try {\n entries[name] = (0, _util.stringToUTF8String)((0, _util.bytesToString)(data.getBytes()));\n } catch (_) {\n (0, _util.warn)(\"XFA - Invalid utf-8 string.\");\n return null;\n }\n }\n\n return entries;\n }\n\n get xfaFactory() {\n if (this.pdfManager.enableXfa && this.formInfo.hasXfa && !this.formInfo.hasAcroForm) {\n const data = this.xfaData;\n return (0, _util.shadow)(this, \"xfaFactory\", data ? new _factory.XFAFactory(data) : null);\n }\n\n return (0, _util.shadow)(this, \"xfaFaxtory\", null);\n }\n\n get isPureXfa() {\n return this.xfaFactory !== null;\n }\n\n get formInfo() {\n const formInfo = {\n hasFields: false,\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 fields = acroForm.get(\"Fields\");\n const hasFields = Array.isArray(fields) && fields.length > 0;\n formInfo.hasFields = hasFields;\n const xfa = acroForm.get(\"XFA\");\n formInfo.hasXfa = Array.isArray(xfa) && xfa.length > 0 || (0, _primitives.isStream)(xfa) && !xfa.isEmpty;\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.warn)(`Cannot fetch form information: \"${ex}\".`);\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\n if (this.xfaFactory) {\n return Promise.resolve(new Page({\n pdfManager: this.pdfManager,\n xref: this.xref,\n pageIndex,\n pageDict: _primitives.Dict.empty,\n ref: null,\n globalIdFactory: this._globalIdFactory,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n globalImageCache: catalog.globalImageCache,\n nonBlendModesSet: catalog.nonBlendModesSet,\n xfaFactory: this.xfaFactory\n }));\n }\n\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 nonBlendModesSet: catalog.nonBlendModesSet,\n xfaFactory: null\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 _collectFieldObjects(name, fieldRef, promises) {\n const field = this.xref.fetchIfRef(fieldRef);\n\n if (field.has(\"T\")) {\n const partName = (0, _util.stringToPDFString)(field.get(\"T\"));\n\n if (name === \"\") {\n name = partName;\n } else {\n name = `${name}.${partName}`;\n }\n }\n\n if (!promises.has(name)) {\n promises.set(name, []);\n }\n\n promises.get(name).push(_annotation.AnnotationFactory.create(this.xref, fieldRef, this.pdfManager, this._localIdFactory, true).then(annotation => annotation && annotation.getFieldObject()).catch(function (reason) {\n (0, _util.warn)(`_collectFieldObjects: \"${reason}\".`);\n return null;\n }));\n\n if (field.has(\"Kids\")) {\n const kids = field.get(\"Kids\");\n\n for (const kid of kids) {\n this._collectFieldObjects(name, kid, promises);\n }\n }\n }\n\n get fieldObjects() {\n if (!this.formInfo.hasFields) {\n return (0, _util.shadow)(this, \"fieldObjects\", Promise.resolve(null));\n }\n\n const allFields = Object.create(null);\n const fieldPromises = new Map();\n\n for (const fieldRef of this.catalog.acroForm.get(\"Fields\")) {\n this._collectFieldObjects(\"\", fieldRef, fieldPromises);\n }\n\n const allPromises = [];\n\n for (const [name, promises] of fieldPromises) {\n allPromises.push(Promise.all(promises).then(fields => {\n fields = fields.filter(field => !!field);\n\n if (fields.length > 0) {\n allFields[name] = fields;\n }\n }));\n }\n\n return (0, _util.shadow)(this, \"fieldObjects\", Promise.all(allPromises).then(() => allFields));\n }\n\n get hasJSActions() {\n return (0, _util.shadow)(this, \"hasJSActions\", this.fieldObjects.then(fieldObjects => {\n return fieldObjects !== null && Object.values(fieldObjects).some(fieldObject => fieldObject.some(object => object.actions !== null)) || !!this.catalog.jsActions;\n }));\n }\n\n get calculationOrderIds() {\n const acroForm = this.catalog.acroForm;\n\n if (!acroForm || !acroForm.has(\"CO\")) {\n return (0, _util.shadow)(this, \"calculationOrderIds\", null);\n }\n\n const calculationOrder = acroForm.get(\"CO\");\n\n if (!Array.isArray(calculationOrder) || calculationOrder.length === 0) {\n return (0, _util.shadow)(this, \"calculationOrderIds\", null);\n }\n\n const ids = calculationOrder.filter(_primitives.isRef).map(ref => ref.toString());\n\n if (ids.length === 0) {\n return (0, _util.shadow)(this, \"calculationOrderIds\", null);\n }\n\n return (0, _util.shadow)(this, \"calculationOrderIds\", ids);\n }\n\n}\n\nexports.PDFDocument = PDFDocument;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XRef = exports.ObjectLoader = exports.FileSpec = exports.Catalog = 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 _parser = __w_pdfjs_require__(11);\n\nvar _crypto = __w_pdfjs_require__(22);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _image_utils = __w_pdfjs_require__(24);\n\nvar _metadata_parser = __w_pdfjs_require__(25);\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 this.nonBlendModesSet = new _primitives.RefSet();\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 = null;\n\n if ((0, _primitives.isStream)(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 const data = (0, _util.stringToUTF8String)((0, _util.bytesToString)(stream.getBytes()));\n\n if (data) {\n metadata = new _metadata_parser.MetadataParser(data).serializable;\n }\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 markInfo() {\n let markInfo = null;\n\n try {\n markInfo = this._readMarkInfo();\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(\"Unable to read mark info.\");\n }\n\n return (0, _util.shadow)(this, \"markInfo\", markInfo);\n }\n\n _readMarkInfo() {\n const obj = this._catDict.get(\"MarkInfo\");\n\n if (!(0, _primitives.isDict)(obj)) {\n return null;\n }\n\n const markInfo = Object.assign(Object.create(null), {\n Marked: false,\n UserProperties: false,\n Suspects: false\n });\n\n for (const key in markInfo) {\n if (!obj.has(key)) {\n continue;\n }\n\n const value = obj.get(key);\n\n if (!(0, _util.isBool)(value)) {\n continue;\n }\n\n markInfo[key] = value;\n }\n\n return markInfo;\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 const openAction = Object.create(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 openAction.dest = resultObj.dest;\n } else if (resultObj.action) {\n openAction.action = resultObj.action;\n }\n } else if (Array.isArray(obj)) {\n openAction.dest = obj;\n }\n\n return (0, _util.shadow)(this, \"openAction\", (0, _util.objectSize)(openAction) > 0 ? openAction : null);\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 _collectJavaScript() {\n const obj = this._catDict.get(\"Names\");\n\n let javaScript = null;\n\n function appendIfJavaScriptDict(name, 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 === null) {\n javaScript = Object.create(null);\n }\n\n javaScript[name] = (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(name, 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\", openAction);\n }\n\n return javaScript;\n }\n\n get javaScript() {\n const javaScript = this._collectJavaScript();\n\n return (0, _util.shadow)(this, \"javaScript\", javaScript ? Object.values(javaScript) : null);\n }\n\n get jsActions() {\n const js = this._collectJavaScript();\n\n let actions = (0, _core_utils.collectActions)(this.xref, this._catDict, _util.DocumentActionEventType);\n\n if (!actions && js) {\n actions = Object.create(null);\n }\n\n if (actions && js) {\n for (const [key, val] of Object.entries(js)) {\n if (key in actions) {\n actions[key].push(val);\n } else {\n actions[key] = [val];\n }\n }\n }\n\n return (0, _util.shadow)(this, \"jsActions\", actions);\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 this.nonBlendModesSet.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.cacheKey;\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)) {\n if (destDict.has(\"Dest\")) {\n action = destDict.get(\"Dest\");\n } else {\n action = destDict.get(\"AA\");\n\n if ((0, _primitives.isDict)(action)) {\n if (action.has(\"D\")) {\n action = action.get(\"D\");\n } else if (action.has(\"U\")) {\n action = action.get(\"U\");\n }\n }\n }\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 if (actionName === \"JavaScript\" || actionName === \"ResetForm\" || actionName === \"SubmitForm\") {\n break;\n }\n\n (0, _util.warn)(`parseDestDictionary - unsupported action: \"${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 for (let 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 (let 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 try {\n const rootDict = dict.get(\"Root\");\n\n if (!(rootDict instanceof _primitives.Dict)) {\n continue;\n }\n\n const pagesDict = rootDict.get(\"Pages\");\n\n if (!(pagesDict instanceof _primitives.Dict)) {\n continue;\n }\n\n const pagesCount = pagesDict.get(\"Count\");\n\n if (!Number.isInteger(pagesCount)) {\n continue;\n }\n } catch (ex) {\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 let parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream),\n xref: this,\n allowStreams: true\n });\n const nums = new Array(n);\n const offsets = 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 offsets[i] = offset;\n }\n\n const start = (stream.start || 0) + first;\n const entries = new Array(n);\n\n for (let i = 0; i < n; ++i) {\n const length = i < n - 1 ? offsets[i + 1] - offsets[i] : undefined;\n\n if (length < 0) {\n throw new _util.FormatError(\"Invalid offset in the ObjStm stream.\");\n }\n\n parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream.makeSubStream(start + offsets[i], length, stream.dict)),\n xref: this,\n allowStreams: true\n });\n const obj = parser.getObj();\n entries[i] = obj;\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 (0, _util.warn)(`ObjectLoader._walk - requesting all data: \"${ex}\".`);\n this.refSet = null;\n const {\n manager\n } = this.xref.stream;\n return manager.requestAllChunks();\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StringStream = exports.StreamsSequenceStream = exports.Stream = exports.RunLengthStream = exports.PredictorStream = exports.NullStream = exports.LZWStream = exports.FlateStream = exports.DecryptStream = exports.DecodeStream = 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 length() {\n (0, _util.unreachable)(\"Should not access DecodeStream.length\");\n },\n\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 if (length === undefined) {\n while (!this.eof) {\n this.readBlock();\n }\n } else {\n var end = start + length;\n\n while (this.bufferLength <= end && !this.eof) {\n this.readBlock();\n }\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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\nconst 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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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/***/ ((__unused_webpack_module, exports) => {\n\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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 (!nextFileMarker || 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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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 (0, _util.warn)(`JPX: 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 0xff53:\n (0, _util.warn)(\"JPX: Codestream code 0xFF53 (COC) is not implemented.\");\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 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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.calculateSHA384 = calculateSHA384;\nexports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.calculateSHA512 = exports.calculateSHA256 = exports.calculateMD5 = 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\nclass ARCFourCipher {\n constructor(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 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 decryptBlock(data) {\n return this.encryptBlock(data);\n }\n\n encrypt(data) {\n return this.encryptBlock(data);\n }\n\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\nclass Word64 {\n constructor(highInteger, lowInteger) {\n this.high = highInteger | 0;\n this.low = lowInteger | 0;\n }\n\n and(word) {\n this.high &= word.high;\n this.low &= word.low;\n }\n\n xor(word) {\n this.high ^= word.high;\n this.low ^= word.low;\n }\n\n or(word) {\n this.high |= word.high;\n this.low |= word.low;\n }\n\n shiftRight(places) {\n if (places >= 32) {\n this.low = this.high >>> places - 32 | 0;\n this.high = 0;\n } else {\n this.low = this.low >>> places | this.high << 32 - places;\n this.high = this.high >>> places | 0;\n }\n }\n\n shiftLeft(places) {\n if (places >= 32) {\n this.high = this.low << places - 32;\n this.low = 0;\n } else {\n this.high = this.high << places | this.low >>> 32 - places;\n this.low = this.low << places;\n }\n }\n\n rotateRight(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\n not() {\n this.high = ~this.high;\n this.low = ~this.low;\n }\n\n 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\n copyTo(bytes, offset) {\n bytes[offset] = this.high >>> 24 & 0xff;\n bytes[offset + 1] = this.high >> 16 & 0xff;\n bytes[offset + 2] = this.high >> 8 & 0xff;\n bytes[offset + 3] = this.high & 0xff;\n bytes[offset + 4] = this.low >>> 24 & 0xff;\n bytes[offset + 5] = this.low >> 16 & 0xff;\n bytes[offset + 6] = this.low >> 8 & 0xff;\n bytes[offset + 7] = this.low & 0xff;\n }\n\n assign(word) {\n this.high = word.high;\n this.low = word.low;\n }\n\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 = false) {\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\nfunction calculateSHA384(data, offset, length) {\n return calculateSHA512(data, offset, length, true);\n}\n\nclass NullCipher {\n decryptBlock(data) {\n return data;\n }\n\n encrypt(data) {\n return data;\n }\n\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\nclass PDF17 {\n 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 (0, _util.isArrayEqual)(result, ownerPassword);\n }\n\n 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 (0, _util.isArrayEqual)(result, userPassword);\n }\n\n 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\n 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}\n\nexports.PDF17 = PDF17;\n\nvar PDF20 = function PDF20Closure() {\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 const combinedLength = password.length + k.length + userBytes.length,\n combinedArray = new Uint8Array(combinedLength);\n let writeOffset = 0;\n combinedArray.set(password, writeOffset);\n writeOffset += password.length;\n combinedArray.set(k, writeOffset);\n writeOffset += k.length;\n combinedArray.set(userBytes, writeOffset);\n var k1 = new Uint8Array(combinedLength * 64);\n\n for (var j = 0, pos = 0; j < 64; j++, pos += combinedLength) {\n k1.set(combinedArray, 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 class PDF20 {\n hash(password, concatBytes, userBytes) {\n return calculatePDF20Hash(password, concatBytes, userBytes);\n }\n\n 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 (0, _util.isArrayEqual)(result, ownerPassword);\n }\n\n 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 (0, _util.isArrayEqual)(result, userPassword);\n }\n\n 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\n 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 }\n\n return PDF20;\n}();\n\nexports.PDF20 = PDF20;\n\nclass CipherTransform {\n constructor(stringCipherConstructor, streamCipherConstructor) {\n this.StringCipherConstructor = stringCipherConstructor;\n this.StreamCipherConstructor = streamCipherConstructor;\n }\n\n 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\n 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\n 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}\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 buildObjectKey(num, gen, encryptionKey, isAes = false) {\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 class CipherTransformFactory {\n constructor(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 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 }\n\n return CipherTransformFactory;\n}();\n\nexports.CipherTransformFactory = CipherTransformFactory;\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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 ** 3;\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.LocalTilingPatternCache = exports.LocalImageCache = exports.LocalGStateCache = exports.LocalFunctionCache = exports.LocalColorSpaceCache = exports.GlobalImageCache = 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 LocalTilingPatternCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (!name) {\n throw new Error('LocalTilingPatternCache.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.LocalTilingPatternCache = LocalTilingPatternCache;\n\nclass GlobalImageCache {\n static get NUM_PAGES_THRESHOLD() {\n return (0, _util.shadow)(this, \"NUM_PAGES_THRESHOLD\", 2);\n }\n\n static get MIN_IMAGES_TO_CACHE() {\n return (0, _util.shadow)(this, \"MIN_IMAGES_TO_CACHE\", 10);\n }\n\n static get MAX_BYTE_SIZE() {\n return (0, _util.shadow)(this, \"MAX_BYTE_SIZE\", 40e6);\n }\n\n constructor() {\n this._refCache = new _primitives.RefSetCache();\n this._imageCache = new _primitives.RefSetCache();\n }\n\n get _byteSize() {\n let byteSize = 0;\n\n this._imageCache.forEach(imageData => {\n byteSize += imageData.byteSize;\n });\n\n return byteSize;\n }\n\n get _cacheLimitReached() {\n if (this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) {\n return false;\n }\n\n if (this._byteSize < GlobalImageCache.MAX_BYTE_SIZE) {\n return false;\n }\n\n return true;\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._cacheLimitReached) {\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 addByteSize(ref, byteSize) {\n const imageData = this._imageCache.get(ref);\n\n if (!imageData) {\n return;\n }\n\n if (imageData.byteSize) {\n return;\n }\n\n imageData.byteSize = byteSize;\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 const imageData = this._imageCache.get(ref);\n\n if (!imageData) {\n return null;\n }\n\n pageIndexSet.add(pageIndex);\n return imageData;\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._cacheLimitReached) {\n (0, _util.warn)(\"GlobalImageCache.setData - cache limit reached.\");\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/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MetadataParser = void 0;\n\nvar _xml_parser = __w_pdfjs_require__(26);\n\nclass MetadataParser {\n constructor(data) {\n data = this._repair(data);\n const parser = new _xml_parser.SimpleXMLParser({\n lowerCaseName: true\n });\n const xmlDocument = parser.parseFromString(data);\n this._metadataMap = new Map();\n this._data = data;\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 const charBuf = [];\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 charBuf.push(String.fromCharCode(code));\n } else {\n charBuf.push(\"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\");\n }\n }\n\n return \">\" + charBuf.join(\"\");\n });\n }\n\n _getSequence(entry) {\n const name = entry.nodeName;\n\n if (name !== \"rdf:bag\" && name !== \"rdf:seq\" && name !== \"rdf:alt\") {\n return null;\n }\n\n return entry.childNodes.filter(node => node.nodeName === \"rdf:li\");\n }\n\n _parseArray(entry) {\n if (!entry.hasChildNodes()) {\n return;\n }\n\n const [seqNode] = entry.childNodes;\n const sequence = this._getSequence(seqNode) || [];\n\n this._metadataMap.set(entry.nodeName, sequence.map(node => node.textContent.trim()));\n }\n\n _parse(xmlDocument) {\n let rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName !== \"rdf:rdf\") {\n rdf = rdf.firstChild;\n\n while (rdf && rdf.nodeName !== \"rdf:rdf\") {\n rdf = rdf.nextSibling;\n }\n }\n\n if (!rdf || rdf.nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n return;\n }\n\n for (const desc of rdf.childNodes) {\n if (desc.nodeName !== \"rdf:description\") {\n continue;\n }\n\n for (const entry of desc.childNodes) {\n const name = entry.nodeName;\n\n switch (name) {\n case \"#text\":\n continue;\n\n case \"dc:creator\":\n case \"dc:subject\":\n this._parseArray(entry);\n\n continue;\n }\n\n this._metadataMap.set(name, entry.textContent.trim());\n }\n }\n }\n\n get serializable() {\n return {\n parsedData: this._metadataMap,\n rawData: this._data\n };\n }\n\n}\n\nexports.MetadataParser = MetadataParser;\n\n/***/ }),\n/* 26 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XMLParserErrorCode = exports.XMLParserBase = exports.SimpleXMLParser = exports.SimpleDOMNode = void 0;\n\nvar _core_utils = __w_pdfjs_require__(8);\n\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};\nexports.XMLParserErrorCode = XMLParserErrorCode;\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.fromCodePoint(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === \"#\") {\n return String.fromCodePoint(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 case \"apos\":\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\nexports.XMLParserBase = XMLParserBase;\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 searchNode(paths, pos) {\n if (pos >= paths.length) {\n return this;\n }\n\n const component = paths[pos];\n const stack = [];\n let node = this;\n\n while (true) {\n if (component.name === node.nodeName) {\n if (component.pos === 0) {\n const res = node.searchNode(paths, pos + 1);\n\n if (res !== null) {\n return res;\n }\n } else if (stack.length === 0) {\n return null;\n } else {\n const [parent] = stack.pop();\n let siblingPos = 0;\n\n for (const child of parent.childNodes) {\n if (component.name === child.nodeName) {\n if (siblingPos === component.pos) {\n return child.searchNode(paths, pos + 1);\n }\n\n siblingPos++;\n }\n }\n\n return node.searchNode(paths, pos + 1);\n }\n }\n\n if (node.childNodes && node.childNodes.length !== 0) {\n stack.push([node, 0]);\n node = node.childNodes[0];\n } else if (stack.length === 0) {\n return null;\n } else {\n while (stack.length !== 0) {\n const [parent, currentPos] = stack.pop();\n const newPos = currentPos + 1;\n\n if (newPos < parent.childNodes.length) {\n stack.push([parent, newPos]);\n node = parent.childNodes[newPos];\n break;\n }\n }\n\n if (stack.length === 0) {\n return null;\n }\n }\n }\n }\n\n dump(buffer) {\n if (this.nodeName === \"#text\") {\n buffer.push((0, _core_utils.encodeToXmlString)(this.nodeValue));\n return;\n }\n\n buffer.push(`<${this.nodeName}`);\n\n if (this.attributes) {\n for (const attribute of this.attributes) {\n buffer.push(` ${attribute.name}=\"${(0, _core_utils.encodeToXmlString)(attribute.value)}\"`);\n }\n }\n\n if (this.hasChildNodes()) {\n buffer.push(\">\");\n\n for (const child of this.childNodes) {\n child.dump(buffer);\n }\n\n buffer.push(``);\n } else if (this.nodeValue) {\n buffer.push(`>${(0, _core_utils.encodeToXmlString)(this.nodeValue)}`);\n } else {\n buffer.push(\"/>\");\n }\n }\n\n}\n\nexports.SimpleDOMNode = SimpleDOMNode;\n\nclass SimpleXMLParser extends XMLParserBase {\n constructor({\n hasAttributes = false,\n lowerCaseName = false\n }) {\n super();\n this._currentFragment = null;\n this._stack = null;\n this._errorCode = XMLParserErrorCode.NoError;\n this._hasAttributes = hasAttributes;\n this._lowerCaseName = lowerCaseName;\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 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 if (this._lowerCaseName) {\n name = name.toLowerCase();\n }\n\n const node = new SimpleDOMNode(name);\n node.childNodes = [];\n\n if (this._hasAttributes) {\n node.attributes = attributes;\n }\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/* 27 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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 _core_utils = __w_pdfjs_require__(8);\n\nvar _default_appearance = __w_pdfjs_require__(28);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _operator_list = __w_pdfjs_require__(46);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _writer = __w_pdfjs_require__(48);\n\nclass AnnotationFactory {\n static create(xref, ref, pdfManager, idFactory, collectFields) {\n return pdfManager.ensureCatalog(\"acroForm\").then(acroForm => {\n return pdfManager.ensure(this, \"_create\", [xref, ref, pdfManager, idFactory, acroForm, collectFields]);\n });\n }\n\n static _create(xref, ref, pdfManager, idFactory, acroForm, collectFields) {\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 collectFields\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 (!collectFields) {\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\n return new Annotation(parameters);\n }\n }\n\n}\n\nexports.AnnotationFactory = AnnotationFactory;\n\nfunction getRgbColor(color) {\n const rgbColor = new Uint8ClampedArray(3);\n\n if (!Array.isArray(color)) {\n return rgbColor;\n }\n\n switch (color.length) {\n case 0:\n return null;\n\n case 1:\n _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n\n return rgbColor;\n\n case 3:\n _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n\n return rgbColor;\n\n case 4:\n _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n\n return rgbColor;\n\n default:\n return rgbColor;\n }\n}\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 === 0 || 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 (rect !== null && (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.map(quadPointsList => {\n const [minX, maxX, minY, maxY] = quadPointsList.reduce(([mX, MX, mY, MY], quadPoint) => [Math.min(mX, quadPoint.x), Math.max(MX, quadPoint.x), Math.min(mY, quadPoint.y), Math.max(MY, quadPoint.y)], [Number.MAX_VALUE, Number.MIN_VALUE, Number.MAX_VALUE, Number.MIN_VALUE]);\n return [{\n x: minX,\n y: maxY\n }, {\n x: maxX,\n y: maxY\n }, {\n x: minX,\n y: minY\n }, {\n x: maxX,\n y: minY\n }];\n });\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._streams = [];\n\n if (this.appearance) {\n this._streams.push(this.appearance);\n }\n\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 if (params.collectFields) {\n const kids = dict.get(\"Kids\");\n\n if (Array.isArray(kids)) {\n const kidIds = [];\n\n for (const kid of kids) {\n if ((0, _primitives.isRef)(kid)) {\n kidIds.push(kid.toString());\n }\n }\n\n if (kidIds.length !== 0) {\n this.data.kidIds = kidIds;\n }\n }\n\n this.data.actions = (0, _core_utils.collectActions)(params.xref, dict, _util.AnnotationActionEventType);\n this.data.fieldName = this._constructFieldName(dict);\n }\n\n this._fallbackFontDict = null;\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.NOVIEW);\n }\n\n _isPrintable(flags) {\n return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE);\n }\n\n isHidden(annotationStorage) {\n const storageEntry = annotationStorage && annotationStorage.get(this.data.id);\n\n if (storageEntry && storageEntry.hidden !== undefined) {\n return storageEntry.hidden;\n }\n\n return this._hasFlag(this.flags, _util.AnnotationFlag.HIDDEN);\n }\n\n get viewable() {\n if (this.data.quadPoints === null) {\n return false;\n }\n\n if (this.flags === 0) {\n return true;\n }\n\n return this._isViewable(this.flags);\n }\n\n get printable() {\n if (this.data.quadPoints === null) {\n return false;\n }\n\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 this.color = getRgbColor(color);\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 fallbackFontDict: this._fallbackFontDict\n }).then(() => {\n opList.addOp(_util.OPS.endAnnotation, []);\n this.reset();\n return opList;\n });\n });\n }\n\n async save(evaluator, task, annotationStorage) {\n return null;\n }\n\n getFieldObject() {\n if (this.data.kidIds) {\n return {\n id: this.data.id,\n actions: this.data.actions,\n name: this.data.fieldName,\n type: \"\",\n kidIds: this.data.kidIds\n };\n }\n\n return null;\n }\n\n reset() {\n for (const stream of this._streams) {\n stream.reset();\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 const visited = new _primitives.RefSet();\n\n if (dict.objId) {\n visited.put(dict.objId);\n }\n\n while (loopDict.has(\"Parent\")) {\n loopDict = loopDict.get(\"Parent\");\n\n if (!(loopDict instanceof _primitives.Dict) || loopDict.objId && visited.has(loopDict.objId)) {\n break;\n }\n\n if (loopDict.objId) {\n visited.put(loopDict.objId);\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}\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 _setDefaultAppearance({\n xref,\n extra,\n strokeColor,\n fillColor,\n blendMode,\n pointsCallback\n }) {\n let minX = Number.MAX_VALUE;\n let minY = Number.MAX_VALUE;\n let maxX = Number.MIN_VALUE;\n let maxY = Number.MIN_VALUE;\n const buffer = [\"q\"];\n\n if (extra) {\n buffer.push(extra);\n }\n\n if (strokeColor) {\n buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`);\n }\n\n if (fillColor) {\n buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`);\n }\n\n let pointsArray = this.data.quadPoints;\n\n if (!pointsArray) {\n pointsArray = [[{\n x: this.rectangle[0],\n y: this.rectangle[3]\n }, {\n x: this.rectangle[2],\n y: this.rectangle[3]\n }, {\n x: this.rectangle[0],\n y: this.rectangle[1]\n }, {\n x: this.rectangle[2],\n y: this.rectangle[1]\n }]];\n }\n\n for (const points of pointsArray) {\n const [mX, MX, mY, MY] = pointsCallback(buffer, points);\n minX = Math.min(minX, mX);\n maxX = Math.max(maxX, MX);\n minY = Math.min(minY, mY);\n maxY = Math.max(maxY, MY);\n }\n\n buffer.push(\"Q\");\n const formDict = new _primitives.Dict(xref);\n const appearanceStreamDict = new _primitives.Dict(xref);\n appearanceStreamDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n const appearanceStream = new _stream.StringStream(buffer.join(\" \"));\n appearanceStream.dict = appearanceStreamDict;\n formDict.set(\"Fm0\", appearanceStream);\n const gsDict = new _primitives.Dict(xref);\n\n if (blendMode) {\n gsDict.set(\"BM\", _primitives.Name.get(blendMode));\n }\n\n const stateDict = new _primitives.Dict(xref);\n stateDict.set(\"GS0\", gsDict);\n const resources = new _primitives.Dict(xref);\n resources.set(\"ExtGState\", stateDict);\n resources.set(\"XObject\", formDict);\n const appearanceDict = new _primitives.Dict(xref);\n appearanceDict.set(\"Resources\", resources);\n const bbox = this.data.rect = [minX, minY, maxX, maxY];\n appearanceDict.set(\"BBox\", bbox);\n this.appearance = new _stream.StringStream(\"/GS0 gs /Fm0 Do\");\n this.appearance.dict = appearanceDict;\n\n this._streams.push(this.appearance, appearanceStream);\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\n if (data.fieldName === undefined) {\n data.fieldName = this._constructFieldName(dict);\n }\n\n if (data.actions === undefined) {\n data.actions = (0, _core_utils.collectActions)(params.xref, dict, _util.AnnotationActionEventType);\n }\n\n const fieldValue = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"V\",\n getArray: true\n });\n data.fieldValue = this._decodeFormValue(fieldValue);\n const defaultFieldValue = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"DV\",\n getArray: true\n });\n data.defaultFieldValue = this._decodeFormValue(defaultFieldValue);\n data.alternativeText = (0, _util.stringToPDFString)(dict.get(\"TU\") || \"\");\n const defaultAppearance = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"DA\"\n }) || params.acroForm.get(\"DA\");\n this._defaultAppearance = (0, _util.isString)(defaultAppearance) ? defaultAppearance : \"\";\n data.defaultAppearanceData = (0, _default_appearance.parseDefaultAppearance)(this._defaultAppearance);\n const fieldType = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"FT\"\n });\n data.fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n const localResources = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"DR\"\n });\n const acroFormResources = params.acroForm.get(\"DR\");\n const appearanceResources = this.appearance && this.appearance.dict.get(\"Resources\");\n this._fieldResources = {\n localResources,\n acroFormResources,\n appearanceResources,\n mergedResources: _primitives.Dict.merge({\n xref: params.xref,\n dictArray: [localResources, appearanceResources, acroFormResources],\n mergeSubDicts: true\n })\n };\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 data.hidden = this._hasFlag(data.annotationFlags, _util.AnnotationFlag.HIDDEN);\n\n if (data.fieldType === \"Sig\") {\n data.fieldValue = null;\n this.setFlags(_util.AnnotationFlag.HIDDEN);\n data.hidden = true;\n }\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._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.mergedResources,\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 (!annotationStorage) {\n return null;\n }\n\n const storageEntry = annotationStorage.get(this.data.id);\n const value = storageEntry && storageEntry.value;\n\n if (value === this.data.fieldValue || value === undefined) {\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 {\n xref\n } = evaluator;\n const dict = 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 xfa = {\n path: (0, _util.stringToPDFString)(dict.get(\"T\") || \"\"),\n value\n };\n const newRef = xref.getNewRef();\n const AP = new _primitives.Dict(xref);\n AP.set(\"N\", newRef);\n const encrypt = 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\", (0, _util.isAscii)(value) ? value : (0, _util.stringToUTF16BEString)(value));\n dict.set(\"AP\", AP);\n dict.set(\"M\", `D:${(0, _util.getModificationDate)()}`);\n const appearanceDict = new _primitives.Dict(xref);\n appearanceDict.set(\"Length\", appearance.length);\n appearanceDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n appearanceDict.set(\"Resources\", this._getSaveFieldResources(xref));\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 xfa\n }, {\n ref: newRef,\n data: bufferNew.join(\"\"),\n xfa: null\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 storageEntry = annotationStorage.get(this.data.id);\n let value = storageEntry && storageEntry.value;\n\n if (value === undefined) {\n return null;\n }\n\n value = value.trim();\n\n if (value === \"\") {\n return \"\";\n }\n\n let lineCount = -1;\n\n if (this.data.multiLine) {\n lineCount = value.split(/\\r\\n|\\r|\\n/).length;\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\n if (!this._defaultAppearance) {\n this.data.defaultAppearanceData = (0, _default_appearance.parseDefaultAppearance)(this._defaultAppearance = \"/Helvetica 0 Tf 0 g\");\n }\n\n const [defaultAppearance, fontSize] = this._computeFontSize(totalHeight, lineCount);\n\n const font = await this._getFontData(evaluator, task);\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 alignment = this.data.textAlignment;\n\n if (this.data.multiLine) {\n return this._getMultilineAppearance(defaultAppearance, value, font, fontSize, totalWidth, totalHeight, alignment, hPadding, vPadding);\n }\n\n const encodedString = font.encodeString(value).join(\"\");\n\n if (this.data.comb) {\n return this._getCombAppearance(defaultAppearance, font, encodedString, totalWidth, 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)(encodedString)}) Tj` + \" ET Q EMC\";\n }\n\n const renderedText = this._renderText(encodedString, 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 font: null,\n\n clone() {\n return this;\n }\n\n };\n const {\n fontName,\n fontSize\n } = this.data.defaultAppearanceData;\n await evaluator.handleSetFont(this._fieldResources.mergedResources, [fontName && _primitives.Name.get(fontName), fontSize], null, operatorList, task, initialState, null);\n return initialState.font;\n }\n\n _computeFontSize(height, lineCount) {\n let {\n fontSize\n } = this.data.defaultAppearanceData;\n\n if (!fontSize) {\n const roundWithOneDigit = x => Math.round(x * 10) / 10;\n\n const FONT_FACTOR = 0.8;\n\n if (lineCount === -1) {\n fontSize = roundWithOneDigit(FONT_FACTOR * height);\n } else {\n fontSize = 10;\n let lineHeight = fontSize / FONT_FACTOR;\n let numberOfLines = Math.round(height / lineHeight);\n numberOfLines = Math.max(numberOfLines, lineCount);\n lineHeight = height / numberOfLines;\n fontSize = roundWithOneDigit(FONT_FACTOR * lineHeight);\n }\n\n const {\n fontName,\n fontColor\n } = this.data.defaultAppearanceData;\n this._defaultAppearance = (0, _default_appearance.createDefaultAppearance)({\n fontSize,\n fontName,\n fontColor\n });\n }\n\n return [this._defaultAppearance, 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 _getSaveFieldResources(xref) {\n const {\n localResources,\n appearanceResources,\n acroFormResources\n } = this._fieldResources;\n const fontName = this.data.defaultAppearanceData && this.data.defaultAppearanceData.fontName;\n\n if (!fontName) {\n return localResources || _primitives.Dict.empty;\n }\n\n for (const resources of [localResources, appearanceResources]) {\n if (resources instanceof _primitives.Dict) {\n const localFont = resources.get(\"Font\");\n\n if (localFont instanceof _primitives.Dict && localFont.has(fontName)) {\n return resources;\n }\n }\n }\n\n if (acroFormResources instanceof _primitives.Dict) {\n const acroFormFont = acroFormResources.get(\"Font\");\n\n if (acroFormFont instanceof _primitives.Dict && acroFormFont.has(fontName)) {\n const subFontDict = new _primitives.Dict(xref);\n subFontDict.set(fontName, acroFormFont.getRaw(fontName));\n const subResourcesDict = new _primitives.Dict(xref);\n subResourcesDict.set(\"Font\", subFontDict);\n return _primitives.Dict.merge({\n xref,\n dictArray: [subResourcesDict, localResources],\n mergeSubDicts: true\n });\n }\n }\n\n return localResources || _primitives.Dict.empty;\n }\n\n getFieldObject() {\n if (this.data.fieldType === \"Sig\") {\n return {\n id: this.data.id,\n value: null,\n type: \"signature\"\n };\n }\n\n return null;\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, font, text, width, hPadding, vPadding) {\n const combWidth = (width / this.data.maxLen).toFixed(2);\n const buf = [];\n const positions = font.getCharPositions(text);\n\n for (const [start, end] of positions) {\n buf.push(`(${(0, _util.escapeString)(text.substring(start, end))}) 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 line = font.encodeString(line).join(\"\");\n const glyphs = font.charsToGlyphs(line);\n\n if (glyphs.length <= 1) {\n return [line];\n }\n\n const positions = font.getCharPositions(line);\n const scale = fontSize / 1000;\n const chunks = [];\n let lastSpacePosInStringStart = -1,\n lastSpacePosInStringEnd = -1,\n lastSpacePos = -1,\n startChunk = 0,\n currentWidth = 0;\n\n for (let i = 0, ii = glyphs.length; i < ii; i++) {\n const [start, end] = positions[i];\n const glyph = glyphs[i];\n const glyphWidth = glyph.width * scale;\n\n if (glyph.unicode === \" \") {\n if (currentWidth + glyphWidth > width) {\n chunks.push(line.substring(startChunk, start));\n startChunk = start;\n currentWidth = glyphWidth;\n lastSpacePosInStringStart = -1;\n lastSpacePos = -1;\n } else {\n currentWidth += glyphWidth;\n lastSpacePosInStringStart = start;\n lastSpacePosInStringEnd = end;\n lastSpacePos = i;\n }\n } else {\n if (currentWidth + glyphWidth > width) {\n if (lastSpacePosInStringStart !== -1) {\n chunks.push(line.substring(startChunk, lastSpacePosInStringEnd));\n startChunk = lastSpacePosInStringEnd;\n i = lastSpacePos + 1;\n lastSpacePosInStringStart = -1;\n currentWidth = 0;\n } else {\n chunks.push(line.substring(startChunk, start));\n startChunk = start;\n currentWidth = glyphWidth;\n }\n } else {\n currentWidth += glyphWidth;\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 getFieldObject() {\n return {\n id: this.data.id,\n value: this.data.fieldValue,\n defaultValue: this.data.defaultFieldValue,\n multiline: this.data.multiLine,\n password: this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD),\n charLimit: this.data.maxLen,\n comb: this.data.comb,\n editable: !this.data.readOnly,\n hidden: this.data.hidden,\n name: this.data.fieldName,\n rect: this.data.rect,\n actions: this.data.actions,\n type: \"text\"\n };\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 this.data.isTooltipOnly = false;\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 storageEntry = annotationStorage.get(this.data.id);\n const value = storageEntry && storageEntry.value;\n\n if (value === undefined) {\n return super.getOperatorList(evaluator, task, renderForms, annotationStorage);\n }\n\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 null;\n }\n\n async _saveCheckbox(evaluator, task, annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n\n const storageEntry = annotationStorage.get(this.data.id);\n const value = storageEntry && storageEntry.value;\n\n if (value === undefined) {\n return null;\n }\n\n const defaultValue = this.data.fieldValue && this.data.fieldValue !== \"Off\";\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 xfa = {\n path: (0, _util.stringToPDFString)(dict.get(\"T\") || \"\"),\n value: value ? this.data.exportValue : \"\"\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 xfa\n }];\n }\n\n async _saveRadioButton(evaluator, task, annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n\n const storageEntry = annotationStorage.get(this.data.id);\n const value = storageEntry && storageEntry.value;\n\n if (value === undefined) {\n return null;\n }\n\n const defaultValue = this.data.fieldValue === this.data.buttonValue;\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 xfa = {\n path: (0, _util.stringToPDFString)(dict.get(\"T\") || \"\"),\n value: value ? this.data.buttonValue : \"\"\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 xfa\n }];\n\n if (parentBuffer !== null) {\n newRefs.push({\n ref: this.parent,\n data: parentBuffer.join(\"\"),\n xfa: null\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 this._streams.push(this.checkedAppearance);\n\n if (this.uncheckedAppearance) {\n this._streams.push(this.uncheckedAppearance);\n }\n\n this._fallbackFontDict = this.fallbackFontDict;\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)) {\n this.parent = params.dict.getRaw(\"Parent\");\n const fieldParentValue = fieldParent.get(\"V\");\n\n if ((0, _primitives.isName)(fieldParentValue)) {\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 = this._decodeFormValue(key);\n break;\n }\n }\n\n this.checkedAppearance = normalAppearance.get(this.data.buttonValue);\n this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n\n this._streams.push(this.checkedAppearance);\n\n if (this.uncheckedAppearance) {\n this._streams.push(this.uncheckedAppearance);\n }\n\n this._fallbackFontDict = this.fallbackFontDict;\n }\n\n _processPushButton(params) {\n if (!params.dict.has(\"A\") && !params.dict.has(\"AA\") && !this.data.alternativeText) {\n (0, _util.warn)(\"Push buttons without action dictionaries are not supported\");\n return;\n }\n\n this.data.isTooltipOnly = !params.dict.has(\"A\") && !params.dict.has(\"AA\");\n\n _obj.Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl\n });\n }\n\n getFieldObject() {\n let type = \"button\";\n let exportValues;\n\n if (this.data.checkBox) {\n type = \"checkbox\";\n exportValues = this.data.exportValue;\n } else if (this.data.radioButton) {\n type = \"radiobutton\";\n exportValues = this.data.buttonValue;\n }\n\n return {\n id: this.data.id,\n value: this.data.fieldValue || \"Off\",\n defaultValue: this.data.defaultFieldValue,\n exportValues,\n editable: !this.data.readOnly,\n name: this.data.fieldName,\n rect: this.data.rect,\n hidden: this.data.hidden,\n actions: this.data.actions,\n type\n };\n }\n\n get fallbackFontDict() {\n const dict = new _primitives.Dict();\n dict.set(\"BaseFont\", _primitives.Name.get(\"ZapfDingbats\"));\n dict.set(\"Type\", _primitives.Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", _primitives.Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", _primitives.Name.get(\"ZapfDingbatsEncoding\"));\n return (0, _util.shadow)(this, \"fallbackFontDict\", dict);\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 getFieldObject() {\n const type = this.data.combo ? \"combobox\" : \"listbox\";\n const value = this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null;\n return {\n id: this.data.id,\n value,\n defaultValue: this.data.defaultFieldValue,\n editable: !this.data.readOnly,\n name: this.data.fieldName,\n rect: this.data.rect,\n numItems: this.data.fieldValue.length,\n multipleSelection: this.data.multiSelect,\n hidden: this.data.hidden,\n actions: this.data.actions,\n items: this.data.options,\n type\n };\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 parentRect = parentItem.getArray(\"Rect\");\n\n if (Array.isArray(parentRect) && parentRect.length === 4) {\n this.data.parentRect = _util.Util.normalizeRect(parentRect);\n } else {\n this.data.parentRect = [0, 0, 0, 0];\n }\n\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 const lineCoordinates = parameters.dict.getArray(\"L\");\n this.data.lineCoordinates = _util.Util.normalizeRect(lineCoordinates);\n\n if (!this.appearance) {\n const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n const borderWidth = this.borderStyle.width;\n\n if ((0, _util.isArrayEqual)(this.rectangle, [0, 0, 0, 0])) {\n this.rectangle = [this.data.lineCoordinates[0] - 2 * borderWidth, this.data.lineCoordinates[1] - 2 * borderWidth, this.data.lineCoordinates[2] + 2 * borderWidth, this.data.lineCoordinates[3] + 2 * borderWidth];\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${borderWidth} w`,\n strokeColor,\n pointsCallback: (buffer, points) => {\n buffer.push(`${lineCoordinates[0]} ${lineCoordinates[1]} m`);\n buffer.push(`${lineCoordinates[2]} ${lineCoordinates[3]} l`);\n buffer.push(\"S\");\n return [points[0].x - borderWidth, points[1].x + borderWidth, points[3].y - borderWidth, points[1].y + borderWidth];\n }\n });\n }\n }\n\n}\n\nclass SquareAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.SQUARE;\n\n if (!this.appearance) {\n const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n let fillColor = null;\n let interiorColor = parameters.dict.getArray(\"IC\");\n\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor);\n fillColor = interiorColor ? Array.from(interiorColor).map(c => c / 255) : null;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${this.borderStyle.width} w`,\n strokeColor,\n fillColor,\n pointsCallback: (buffer, points) => {\n const x = points[2].x + this.borderStyle.width / 2;\n const y = points[2].y + this.borderStyle.width / 2;\n const width = points[3].x - points[2].x - this.borderStyle.width;\n const height = points[1].y - points[3].y - this.borderStyle.width;\n buffer.push(`${x} ${y} ${width} ${height} re`);\n\n if (fillColor) {\n buffer.push(\"B\");\n } else {\n buffer.push(\"S\");\n }\n\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n }\n });\n }\n }\n\n}\n\nclass CircleAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.CIRCLE;\n\n if (!this.appearance) {\n const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n let fillColor = null;\n let interiorColor = parameters.dict.getArray(\"IC\");\n\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor);\n fillColor = interiorColor ? Array.from(interiorColor).map(c => c / 255) : null;\n }\n\n const controlPointsDistance = 4 / 3 * Math.tan(Math.PI / (2 * 4));\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${this.borderStyle.width} w`,\n strokeColor,\n fillColor,\n pointsCallback: (buffer, points) => {\n const x0 = points[0].x + this.borderStyle.width / 2;\n const y0 = points[0].y - this.borderStyle.width / 2;\n const x1 = points[3].x - this.borderStyle.width / 2;\n const y1 = points[3].y + this.borderStyle.width / 2;\n const xMid = x0 + (x1 - x0) / 2;\n const yMid = y0 + (y1 - y0) / 2;\n const xOffset = (x1 - x0) / 2 * controlPointsDistance;\n const yOffset = (y1 - y0) / 2 * controlPointsDistance;\n buffer.push(`${xMid} ${y1} m`);\n buffer.push(`${xMid + xOffset} ${y1} ${x1} ${yMid + yOffset} ${x1} ${yMid} c`);\n buffer.push(`${x1} ${yMid - yOffset} ${xMid + xOffset} ${y0} ${xMid} ${y0} c`);\n buffer.push(`${xMid - xOffset} ${y0} ${x0} ${yMid - yOffset} ${x0} ${yMid} c`);\n buffer.push(`${x0} ${yMid + yOffset} ${xMid - xOffset} ${y1} ${xMid} ${y1} c`);\n buffer.push(\"h\");\n\n if (fillColor) {\n buffer.push(\"B\");\n } else {\n buffer.push(\"S\");\n }\n\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n }\n });\n }\n }\n\n}\n\nclass PolylineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.POLYLINE;\n this.data.vertices = [];\n const rawVertices = parameters.dict.getArray(\"Vertices\");\n\n if (!Array.isArray(rawVertices)) {\n return;\n }\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 this.data.inkLists = [];\n const rawInkLists = parameters.dict.getArray(\"InkList\");\n\n if (!Array.isArray(rawInkLists)) {\n return;\n }\n\n const xref = parameters.xref;\n\n for (let i = 0, ii = rawInkLists.length; i < ii; ++i) {\n this.data.inkLists.push([]);\n\n for (let j = 0, jj = rawInkLists[i].length; j < jj; j += 2) {\n this.data.inkLists[i].push({\n x: xref.fetchIfRef(rawInkLists[i][j]),\n y: xref.fetchIfRef(rawInkLists[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 = this.data.quadPoints = getQuadPoints(parameters.dict, null);\n\n if (quadPoints) {\n if (!this.appearance) {\n const fillColor = this.color ? Array.from(this.color).map(c => c / 255) : [1, 1, 0];\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n fillColor,\n blendMode: \"Multiply\",\n pointsCallback: (buffer, points) => {\n buffer.push(`${points[0].x} ${points[0].y} m`);\n buffer.push(`${points[1].x} ${points[1].y} l`);\n buffer.push(`${points[3].x} ${points[3].y} l`);\n buffer.push(`${points[2].x} ${points[2].y} l`);\n buffer.push(\"f\");\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n }\n });\n }\n } else {\n this.data.hasPopup = false;\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 = this.data.quadPoints = getQuadPoints(parameters.dict, null);\n\n if (quadPoints) {\n if (!this.appearance) {\n const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n pointsCallback: (buffer, points) => {\n buffer.push(`${points[2].x} ${points[2].y} m`);\n buffer.push(`${points[3].x} ${points[3].y} l`);\n buffer.push(\"S\");\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n }\n });\n }\n } else {\n this.data.hasPopup = false;\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 = this.data.quadPoints = getQuadPoints(parameters.dict, null);\n\n if (quadPoints) {\n if (!this.appearance) {\n const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n pointsCallback: (buffer, points) => {\n const dy = (points[0].y - points[2].y) / 6;\n let shift = dy;\n let x = points[2].x;\n const y = points[2].y;\n const xEnd = points[3].x;\n buffer.push(`${x} ${y + shift} m`);\n\n do {\n x += 2;\n shift = shift === 0 ? dy : 0;\n buffer.push(`${x} ${y + shift} l`);\n } while (x < xEnd);\n\n buffer.push(\"S\");\n return [points[2].x, xEnd, y - 2 * dy, y + 2 * dy];\n }\n });\n }\n } else {\n this.data.hasPopup = false;\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 = this.data.quadPoints = getQuadPoints(parameters.dict, null);\n\n if (quadPoints) {\n if (!this.appearance) {\n const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n pointsCallback: (buffer, points) => {\n buffer.push(`${(points[0].x + points[2].x) / 2}` + ` ${(points[0].y + points[2].y) / 2} m`);\n buffer.push(`${(points[1].x + points[3].x) / 2}` + ` ${(points[1].y + points[3].y) / 2} l`);\n buffer.push(\"S\");\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n }\n });\n }\n } else {\n this.data.hasPopup = false;\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/* 28 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createDefaultAppearance = createDefaultAppearance;\nexports.parseDefaultAppearance = parseDefaultAppearance;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _evaluator = __w_pdfjs_require__(29);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _stream = __w_pdfjs_require__(12);\n\nclass DefaultAppearanceEvaluator extends _evaluator.EvaluatorPreprocessor {\n constructor(str) {\n super(new _stream.StringStream(str));\n }\n\n parse() {\n const operation = {\n fn: 0,\n args: []\n };\n const result = {\n fontSize: 0,\n fontName: \"\",\n fontColor: new Uint8ClampedArray(3)\n };\n\n try {\n while (true) {\n operation.args.length = 0;\n\n if (!this.read(operation)) {\n break;\n }\n\n if (this.savedStatesDepth !== 0) {\n continue;\n }\n\n const {\n fn,\n args\n } = operation;\n\n switch (fn | 0) {\n case _util.OPS.setFont:\n const [fontName, fontSize] = args;\n\n if (fontName instanceof _primitives.Name) {\n result.fontName = fontName.name;\n }\n\n if (typeof fontSize === \"number\" && fontSize > 0) {\n result.fontSize = fontSize;\n }\n\n break;\n\n case _util.OPS.setFillRGBColor:\n _colorspace.ColorSpace.singletons.rgb.getRgbItem(args, 0, result.fontColor, 0);\n\n break;\n\n case _util.OPS.setFillGray:\n _colorspace.ColorSpace.singletons.gray.getRgbItem(args, 0, result.fontColor, 0);\n\n break;\n\n case _util.OPS.setFillColorSpace:\n _colorspace.ColorSpace.singletons.cmyk.getRgbItem(args, 0, result.fontColor, 0);\n\n break;\n }\n }\n } catch (reason) {\n (0, _util.warn)(`parseDefaultAppearance - ignoring errors: \"${reason}\".`);\n }\n\n return result;\n }\n\n}\n\nfunction parseDefaultAppearance(str) {\n return new DefaultAppearanceEvaluator(str).parse();\n}\n\nfunction createDefaultAppearance({\n fontSize,\n fontName,\n fontColor\n}) {\n let colorCmd;\n\n if (fontColor.every(c => c === 0)) {\n colorCmd = \"0 g\";\n } else {\n colorCmd = Array.from(fontColor).map(c => (c / 255).toFixed(2)).join(\" \") + \" rg\";\n }\n\n return `/${(0, _core_utils.escapePDFName)(fontName)} ${fontSize} Tf ${colorCmd}`;\n}\n\n/***/ }),\n/* 29 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PartialEvaluator = exports.EvaluatorPreprocessor = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cmap = __w_pdfjs_require__(30);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _fonts = __w_pdfjs_require__(31);\n\nvar _encodings = __w_pdfjs_require__(34);\n\nvar _unicode = __w_pdfjs_require__(37);\n\nvar _standard_fonts = __w_pdfjs_require__(36);\n\nvar _pattern = __w_pdfjs_require__(40);\n\nvar _function = __w_pdfjs_require__(41);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _image_utils = __w_pdfjs_require__(24);\n\nvar _bidi = __w_pdfjs_require__(43);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _glyphlist = __w_pdfjs_require__(35);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _metrics = __w_pdfjs_require__(44);\n\nvar _murmurhash = __w_pdfjs_require__(45);\n\nvar _operator_list = __w_pdfjs_require__(46);\n\nvar _image = __w_pdfjs_require__(47);\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, nonBlendModesSet) {\n if (!(resources instanceof _primitives.Dict)) {\n return false;\n }\n\n if (resources.objId && nonBlendModesSet.has(resources.objId)) {\n return false;\n }\n\n const processed = new _primitives.RefSet(nonBlendModesSet);\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 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 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 processed.forEach(ref => {\n nonBlendModesSet.put(ref);\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\n if (cacheKey && imageRef && cacheGlobally) {\n this.globalImageCache.addByteSize(imageRef, imgData.data.length);\n }\n\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 byteSize: 0\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, color, resources, pattern, patternDict, operatorList, task, cacheKey, localTilingPatternCache) {\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 const operatorListIR = tilingOpList.getIR();\n const tilingPatternIR = (0, _pattern.getTilingPatternIR)(operatorListIR, patternDict, color);\n operatorList.addDependencies(tilingOpList.dependencies);\n operatorList.addOp(fn, tilingPatternIR);\n\n if (cacheKey) {\n localTilingPatternCache.set(cacheKey, patternDict.objId, {\n operatorListIR,\n dict: patternDict\n });\n }\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.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, fallbackFontDict = null) {\n const fontName = fontArgs && fontArgs[0] instanceof _primitives.Name ? fontArgs[0].name : null;\n return this.loadFont(fontName, fontRef, resources, fallbackFontDict).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 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, fallbackFontDict = null) {\n const errorFont = async () => {\n return 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\n if (fallbackFontDict) {\n fontRef = fallbackFontDict;\n } else {\n fontRef = PartialEvaluator.fallbackFontDict;\n }\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.cacheKey && this.fontCache.has(font.cacheKey)) {\n return this.fontCache.get(font.cacheKey);\n }\n\n var fontCapability = (0, _util.createPromiseCapability)();\n let preEvaluatedFont;\n\n try {\n preEvaluatedFont = this.preEvaluateFont(font);\n } catch (reason) {\n (0, _util.warn)(`loadFont - preEvaluateFont failed: \"${reason}\".`);\n return errorFont();\n }\n\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 font.cacheKey = `cacheKey_${fontID}`;\n this.fontCache.put(font.cacheKey, 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 this.translateFont(preEvaluatedFont).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 (0, _util.warn)(`loadFont - translateFont failed: \"${reason}\".`);\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 handleColorN(operatorList, fn, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache) {\n const patternName = args.pop();\n\n if (patternName instanceof _primitives.Name) {\n const name = patternName.name;\n const localTilingPattern = localTilingPatternCache.getByName(name);\n\n if (localTilingPattern) {\n try {\n const color = cs.base ? cs.base.getRgb(args, 0) : null;\n const tilingPatternIR = (0, _pattern.getTilingPatternIR)(localTilingPattern.operatorListIR, localTilingPattern.dict, color);\n operatorList.addOp(fn, tilingPatternIR);\n return undefined;\n } catch (ex) {}\n }\n\n let pattern = patterns.get(name);\n\n if (pattern) {\n var dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern;\n var typeNum = dict.get(\"PatternType\");\n\n if (typeNum === PatternType.TILING) {\n const color = cs.base ? cs.base.getRgb(args, 0) : null;\n return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task, name, localTilingPatternCache);\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\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 fallbackFontDict = 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 const localTilingPatternCache = new _image_utils.LocalTilingPatternCache();\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, fallbackFontDict).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, localTilingPatternCache));\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, localTilingPatternCache));\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 = new Set()\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 const font = textState.font,\n loadedName = font.loadedName;\n\n if (!seenStyles.has(loadedName)) {\n seenStyles.add(loadedName);\n textContent.styles[loadedName] = {\n fontFamily: font.fallbackName,\n ascent: font.ascent,\n descent: font.descent,\n vertical: font.vertical\n };\n }\n\n textContentItem.fontName = 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.hypot(trm[2], trm[3]);\n textContentItem.vertical = false;\n } else {\n textContentItem.width = Math.hypot(trm[0], trm[1]);\n textContentItem.height = 0;\n textContentItem.vertical = true;\n }\n\n const scaleLineX = Math.hypot(textState.textLineMatrix[0], textState.textLineMatrix[1]);\n const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\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 const globalImage = self.globalImageCache.getData(xobj, self.pageIndex);\n\n if (globalImage) {\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 = Object.create(null);\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\n if (!(dict instanceof _primitives.Dict)) {\n throw new _util.FormatError(\"Descendant font is not a dictionary.\");\n }\n\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 async 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 let fontFile;\n\n try {\n fontFile = descriptor.get(\"FontFile\", \"FontFile2\", \"FontFile3\");\n } catch (ex) {\n if (!this.options.ignoreErrors) {\n throw ex;\n }\n\n (0, _util.warn)(`translateFont - fetching \"${fontName.name}\" font file: \"${ex}\".`);\n fontFile = new _stream.NullStream();\n }\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\n if (composite) {\n const cidEncoding = baseDict.get(\"Encoding\");\n\n if ((0, _primitives.isName)(cidEncoding)) {\n properties.cidEncoding = cidEncoding.name;\n }\n\n const cMap = await _cmap.CMapFactory.create({\n encoding: cidEncoding,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null\n });\n properties.cMap = cMap;\n properties.vertical = properties.cMap.vertical;\n }\n\n return this.extractDataStructures(dict, baseDict, properties).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(() => {\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(() => {\n if (operatorList.fnArray[0] === _util.OPS.setCharWidthAndBounds) {\n this._removeType3ColorOperators(operatorList);\n }\n\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 _removeType3ColorOperators(operatorList) {\n let i = 1,\n ii = operatorList.length;\n\n while (i < ii) {\n switch (operatorList.fnArray[i]) {\n case _util.OPS.setStrokeColorSpace:\n case _util.OPS.setFillColorSpace:\n case _util.OPS.setStrokeColor:\n case _util.OPS.setStrokeColorN:\n case _util.OPS.setFillColor:\n case _util.OPS.setFillColorN:\n case _util.OPS.setStrokeGray:\n case _util.OPS.setFillGray:\n case _util.OPS.setStrokeRGBColor:\n case _util.OPS.setFillRGBColor:\n case _util.OPS.setStrokeCMYKColor:\n case _util.OPS.setFillCMYKColor:\n case _util.OPS.shadingFill:\n case _util.OPS.setRenderingIntent:\n operatorList.fnArray.splice(i, 1);\n operatorList.argsArray.splice(i, 1);\n ii--;\n continue;\n\n case _util.OPS.setGState:\n const [gStateObj] = operatorList.argsArray[i];\n let j = 0,\n jj = gStateObj.length;\n\n while (j < jj) {\n const [gStateKey] = gStateObj[j];\n\n switch (gStateKey) {\n case \"TR\":\n case \"TR2\":\n case \"HT\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n gStateObj.splice(j, 1);\n jj--;\n continue;\n }\n\n j++;\n }\n\n break;\n }\n\n i++;\n }\n }\n\n}\n\nclass StateManager {\n constructor(initialState = new EvalState()) {\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 = new 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\nexports.EvaluatorPreprocessor = EvaluatorPreprocessor;\n\n/***/ }),\n/* 30 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.IdentityCMap = exports.CMapFactory = 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 getCharCodeLength(charCode) {\n const codespaceRanges = this.codespaceRanges;\n\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\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 (charCode >= low && charCode <= high) {\n return n + 1;\n }\n }\n }\n\n return 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 class BinaryCMapStream {\n constructor(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 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 class BinaryCMapReader {\n async process(data, cMap, extend) {\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(\"BinaryCMapReader.process: 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 throw new Error(`BinaryCMapReader.process - unknown type: ${type}`);\n }\n }\n\n if (useCMap) {\n return extend(useCMap);\n }\n\n return cMap;\n }\n\n }\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 async 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 cMap;\n }\n\n async function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n cMap.useCMap = await createBuiltInCMap(useCMap, fetchBuiltInCMap);\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 async function createBuiltInCMap(name, fetchBuiltInCMap) {\n if (name === \"Identity-H\") {\n return new IdentityCMap(false, 2);\n } else if (name === \"Identity-V\") {\n return new IdentityCMap(true, 2);\n }\n\n if (!BUILT_IN_CMAPS.includes(name)) {\n throw new Error(\"Unknown CMap name: \" + name);\n }\n\n if (!fetchBuiltInCMap) {\n throw new Error(\"Built-in CMap parameters are not provided.\");\n }\n\n const {\n cMapData,\n compressionType\n } = await fetchBuiltInCMap(name);\n var cMap = new CMap(true);\n\n if (compressionType === _util.CMapCompressionType.BINARY) {\n return new BinaryCMapReader().process(cMapData, cMap, 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 throw new Error(\"TODO: Only BINARY/NONE CMap compression is currently supported.\");\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 const parsedCMap = await parseCMap(new CMap(), new _parser.Lexer(encoding), fetchBuiltInCMap, useCMap);\n\n if (parsedCMap.isIdentityCMap) {\n return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n }\n\n return parsedCMap;\n }\n\n throw new Error(\"Encoding required.\");\n }\n\n };\n}();\n\nexports.CMapFactory = CMapFactory;\n\n/***/ }),\n/* 31 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getFontType = getFontType;\nexports.ToUnicodeMap = exports.SEAC_ANALYSIS_ENABLED = exports.IdentityToUnicodeMap = exports.FontFlags = exports.Font = exports.ErrorFont = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cff_parser = __w_pdfjs_require__(32);\n\nvar _glyphlist = __w_pdfjs_require__(35);\n\nvar _encodings = __w_pdfjs_require__(34);\n\nvar _standard_fonts = __w_pdfjs_require__(36);\n\nvar _unicode = __w_pdfjs_require__(37);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _font_renderer = __w_pdfjs_require__(38);\n\nvar _cmap = __w_pdfjs_require__(30);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _type1_parser = __w_pdfjs_require__(39);\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.capHeight = properties.capHeight / PDF_GLYPH_SPACE_UNITS;\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(properties);\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(properties);\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(properties) {\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 const isStandardFont = !!stdFontMap[fontName];\n const isMappedToStandardFont = !!(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 const isNarrow = name.search(/Narrow/g) !== -1;\n this.remeasure = (!isStandardFont || isNarrow) && Object.keys(this.widths).length > 0;\n\n if ((isStandardFont || isMappedToStandardFont) && type === \"CIDFontType2\" && this.cidEncoding.startsWith(\"Identity-\")) {\n const GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)(),\n cidToGidMap = properties.cidToGidMap;\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 if (cidToGidMap) {\n for (const charCode in map) {\n const cid = map[charCode];\n\n if (cidToGidMap[cid] !== undefined) {\n map[+charCode] = cidToGidMap[cid];\n }\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\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 || this.differences.length)) {\n for (let i = 0; i < 256; ++i) {\n if (charCodeToGlyphId[i] !== undefined) {\n continue;\n }\n\n glyphName = this.differences[i] || baseEncoding[i];\n\n if (!glyphName) {\n continue;\n }\n\n const glyphId = properties.glyphNames.indexOf(glyphName);\n\n if (glyphId > 0 && hasGlyph(glyphId)) {\n charCodeToGlyphId[i] = glyphId;\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(charcode, isSpace = false) {\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\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 getCharPositions(chars) {\n const positions = [];\n\n if (this.cMap) {\n const c = Object.create(null);\n let i = 0;\n\n while (i < chars.length) {\n this.cMap.readCharCode(chars, i, c);\n const length = c.length;\n positions.push([i, i + length]);\n i += length;\n }\n } else {\n for (let i = 0, ii = chars.length; i < ii; ++i) {\n positions.push([i, i + 1]);\n }\n }\n\n return positions;\n },\n\n get glyphCacheValues() {\n return Object.values(this.glyphCache);\n },\n\n encodeString(str) {\n const buffers = [];\n const currentBuf = [];\n\n const hasCurrentBufErrors = () => buffers.length % 2 === 1;\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const unicode = str.codePointAt(i);\n\n if (unicode > 0xd7ff && (unicode < 0xe000 || unicode > 0xfffd)) {\n i++;\n }\n\n if (this.toUnicode) {\n const char = String.fromCodePoint(unicode);\n const charCode = this.toUnicode.charCodeOf(char);\n\n if (charCode !== -1) {\n if (hasCurrentBufErrors()) {\n buffers.push(currentBuf.join(\"\"));\n currentBuf.length = 0;\n }\n\n const charCodeLength = this.cMap ? this.cMap.getCharCodeLength(charCode) : 1;\n\n for (let j = charCodeLength - 1; j >= 0; j--) {\n currentBuf.push(String.fromCharCode(charCode >> 8 * j & 0xff));\n }\n\n continue;\n }\n }\n\n if (!hasCurrentBufErrors()) {\n buffers.push(currentBuf.join(\"\"));\n currentBuf.length = 0;\n }\n\n currentBuf.push(String.fromCodePoint(unicode));\n }\n\n buffers.push(currentBuf.join(\"\"));\n return buffers;\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 encodeString: function ErrorFont_encodeString(chars) {\n return [chars];\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/* 32 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CFFTopDict = exports.CFFStrings = exports.CFFStandardStrings = exports.CFFPrivateDict = exports.CFFParser = exports.CFFIndex = exports.CFFHeader = exports.CFFFDSelect = exports.CFFCompiler = exports.CFFCharset = exports.CFF = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _charsets = __w_pdfjs_require__(33);\n\nvar _encodings = __w_pdfjs_require__(34);\n\nconst MAX_SUBR_NESTING = 10;\nconst 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\nconst CFFParser = function CFFParserClosure() {\n const 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 const 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 const properties = this.properties;\n const cff = new CFF();\n this.cff = cff;\n const header = this.parseHeader();\n const nameIndex = this.parseIndex(header.endPos);\n const topDictIndex = this.parseIndex(nameIndex.endPos);\n const stringIndex = this.parseIndex(topDictIndex.endPos);\n const globalSubrIndex = this.parseIndex(stringIndex.endPos);\n const topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n const 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 const charStringOffset = topDict.getByName(\"CharStrings\");\n const charStringIndex = this.parseIndex(charStringOffset).obj;\n const fontMatrix = topDict.getByName(\"FontMatrix\");\n\n if (fontMatrix) {\n properties.fontMatrix = fontMatrix;\n }\n\n const 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 let charset, encoding;\n\n if (cff.isCIDFont) {\n const fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n\n for (let i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n const dictRaw = fdArrayIndex.get(i);\n const 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 const 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 let bytes = this.bytes;\n const bytesLength = bytes.length;\n let 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 const major = bytes[0];\n const minor = bytes[1];\n const hdrSize = bytes[2];\n const offSize = bytes[3];\n const header = new CFFHeader(major, minor, hdrSize, offSize);\n return {\n obj: header,\n endPos: hdrSize\n };\n }\n\n parseDict(dict) {\n let pos = 0;\n\n function parseOperand() {\n let 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 let str = \"\";\n const eof = 15;\n const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n const length = dict.length;\n\n while (pos < length) {\n const b = dict[pos++];\n const b1 = b >> 4;\n const 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 let operands = [];\n const entries = [];\n pos = 0;\n const end = dict.length;\n\n while (pos < end) {\n let 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 const cffIndex = new CFFIndex();\n const bytes = this.bytes;\n const count = bytes[pos++] << 8 | bytes[pos++];\n const offsets = [];\n let end = pos;\n let i, ii;\n\n if (count !== 0) {\n const offsetSize = bytes[pos++];\n const startPos = pos + (count + 1) * offsetSize - 1;\n\n for (i = 0, ii = count + 1; i < ii; ++i) {\n let offset = 0;\n\n for (let 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 const offsetStart = offsets[i];\n const 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 const names = [];\n\n for (let i = 0, ii = index.count; i < ii; ++i) {\n const name = index.get(i);\n names.push((0, _util.bytesToString)(name));\n }\n\n return names;\n }\n\n parseStringIndex(index) {\n const strings = new CFFStrings();\n\n for (let i = 0, ii = index.count; i < ii; ++i) {\n const data = index.get(i);\n strings.add((0, _util.bytesToString)(data));\n }\n\n return strings;\n }\n\n createDict(Type, dict, strings) {\n const cffDict = new Type(strings);\n\n for (let i = 0, ii = dict.length; i < ii; ++i) {\n const pair = dict[i];\n const key = pair[0];\n const 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 let stackSize = state.stackSize;\n const stack = state.stack;\n const length = data.length;\n\n for (let j = 0; j < length;) {\n const value = data[j++];\n let validationCommand = null;\n\n if (value === 12) {\n const 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 let 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 let bias = 32768;\n\n if (subrsIndex.count < 1240) {\n bias = 107;\n } else if (subrsIndex.count < 33900) {\n bias = 1131;\n }\n\n const 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 const 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 const seacs = [];\n const widths = [];\n const count = charStrings.count;\n\n for (let i = 0; i < count; i++) {\n const charstring = charStrings.get(i);\n const 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 let valid = true;\n let localSubrToUse = null;\n let privateDictToUse = privateDict;\n\n if (fdSelect && fdArray.length) {\n const 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 const 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 const privateOffset = parentDict.getByName(\"Private\");\n\n if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n parentDict.removeByName(\"Private\");\n return;\n }\n\n const size = privateOffset[0];\n const offset = privateOffset[1];\n\n if (size === 0 || offset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n const privateDictEnd = offset + size;\n const dictData = this.bytes.subarray(offset, privateDictEnd);\n const dict = this.parseDict(dictData);\n const privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings);\n parentDict.privateDict = privateDict;\n\n if (!privateDict.getByName(\"Subrs\")) {\n return;\n }\n\n const subrsOffset = privateDict.getByName(\"Subrs\");\n const relativeOffset = offset + subrsOffset;\n\n if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n const 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 const bytes = this.bytes;\n const start = pos;\n const format = bytes[pos++];\n const charset = [cid ? 0 : \".notdef\"];\n let 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 const end = pos;\n const raw = bytes.subarray(start, end);\n return new CFFCharset(false, format, charset, raw);\n }\n\n parseEncoding(pos, properties, strings, charset) {\n const encoding = Object.create(null);\n const bytes = this.bytes;\n let predefined = false;\n let format, i, ii;\n let raw = null;\n\n function readSupplement() {\n const supplementsCount = bytes[pos++];\n\n for (i = 0; i < supplementsCount; i++) {\n const code = bytes[pos++];\n const 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 const baseEncoding = pos ? _encodings.ExpertEncoding : _encodings.StandardEncoding;\n\n for (i = 0, ii = charset.length; i < ii; i++) {\n const index = baseEncoding.indexOf(charset[i]);\n\n if (index !== -1) {\n encoding[index] = i;\n }\n }\n } else {\n const dataStart = pos;\n format = bytes[pos++];\n\n switch (format & 0x7f) {\n case 0:\n const 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 const rangesCount = bytes[pos++];\n let gid = 1;\n\n for (i = 0; i < rangesCount; i++) {\n const start = bytes[pos++];\n const left = bytes[pos++];\n\n for (let 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 const 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 const bytes = this.bytes;\n const format = bytes[pos++];\n const fdSelect = [];\n let i;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; ++i) {\n const id = bytes[pos++];\n fdSelect.push(id);\n }\n\n break;\n\n case 3:\n const rangesCount = bytes[pos++] << 8 | bytes[pos++];\n\n for (i = 0; i < rangesCount; ++i) {\n let 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 const fdIndex = bytes[pos++];\n const next = bytes[pos] << 8 | bytes[pos + 1];\n\n for (let 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 const 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 const 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 const valueLength = value.length;\n\n if (valueLength === 0) {\n return true;\n }\n\n for (let 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 const 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 const 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 const tables = {\n keyToNameMap: {},\n nameToKeyMap: {},\n defaults: {},\n types: {},\n opcodes: {},\n order: []\n };\n\n for (let i = 0, ii = layout.length; i < ii; ++i) {\n const entry = layout[i];\n const 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\nconst CFFTopDict = function CFFTopDictClosure() {\n const 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 let 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\nconst CFFPrivateDict = function CFFPrivateDictClosure() {\n const 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 let 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;\nconst 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 (const 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 const data = output.data;\n const dataOffset = this.offsets[key];\n const size = 5;\n\n for (let i = 0, ii = values.length; i < ii; ++i) {\n const offset0 = i * size + dataOffset;\n const offset1 = offset0 + 1;\n const offset2 = offset0 + 2;\n const offset3 = offset0 + 3;\n const 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 const 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 const cff = this.cff;\n const 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 const header = this.compileHeader(cff.header);\n output.add(header);\n const nameIndex = this.compileNameIndex(cff.names);\n output.add(nameIndex);\n\n if (cff.isCIDFont) {\n if (cff.topDict.hasName(\"FontMatrix\")) {\n const base = cff.topDict.getByName(\"FontMatrix\");\n cff.topDict.removeByName(\"FontMatrix\");\n\n for (let i = 0, ii = cff.fdArray.length; i < ii; i++) {\n const subDict = cff.fdArray[i];\n let 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 const xuid = cff.topDict.getByName(\"XUID\");\n\n if (xuid && xuid.length > 16) {\n cff.topDict.removeByName(\"XUID\");\n }\n\n cff.topDict.setByName(\"charset\", 0);\n let compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont);\n output.add(compiled.output);\n const topDictTracker = compiled.trackers[0];\n const stringIndex = this.compileStringIndex(cff.strings.strings);\n output.add(stringIndex);\n const 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 const encoding = this.compileEncoding(cff.encoding);\n topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n output.add(encoding);\n }\n }\n\n const charset = this.compileCharset(cff.charset, cff.charStrings.count, cff.strings, cff.isCIDFont);\n topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n output.add(charset);\n const 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 const 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 const 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 let value = num.toString();\n const m = CFFCompiler.EncodeFloatRegExp.exec(value);\n\n if (m) {\n const epsilon = parseFloat(\"1e\" + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(num * epsilon) / epsilon).toString();\n }\n\n let nibbles = \"\";\n let i, ii;\n\n for (i = 0, ii = value.length; i < ii; ++i) {\n const 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 const 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 let 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, 4, header.offSize];\n }\n\n compileNameIndex(names) {\n const nameIndex = new CFFIndex();\n\n for (let i = 0, ii = names.length; i < ii; ++i) {\n const name = names[i];\n const length = Math.min(name.length, 127);\n let sanitizedName = new Array(length);\n\n for (let j = 0; j < length; j++) {\n let 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 const fontDictTrackers = [];\n let fdArrayIndex = new CFFIndex();\n\n for (let i = 0, ii = dicts.length; i < ii; ++i) {\n const 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 const fontDictTracker = new CFFOffsetTracker();\n const 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 (let i = 0, ii = dicts.length; i < ii; ++i) {\n const fontDict = dicts[i];\n const privateDict = fontDict.privateDict;\n\n if (!privateDict || !fontDict.hasName(\"Private\")) {\n throw new _util.FormatError(\"There must be a private dictionary.\");\n }\n\n const privateDictTracker = new CFFOffsetTracker();\n const privateDictData = this.compileDict(privateDict, privateDictTracker);\n let 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 const 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 let out = [];\n const order = dict.order;\n\n for (let i = 0; i < order.length; ++i) {\n const key = order[i];\n\n if (!(key in dict.values)) {\n continue;\n }\n\n let values = dict.values[key];\n let 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 (let j = 0, jj = types.length; j < jj; ++j) {\n const type = types[j];\n const 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 const 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 (let 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 const stringIndex = new CFFIndex();\n\n for (let 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 const globalSubrIndex = this.cff.globalSubrIndex;\n this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n }\n\n compileCharStrings(charStrings) {\n const charStringsIndex = new CFFIndex();\n\n for (let i = 0; i < charStrings.count; i++) {\n const 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 const out = [];\n\n for (let 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 const objects = index.objects;\n const count = objects.length;\n\n if (count === 0) {\n return [0, 0, 0];\n }\n\n const data = [count >> 8 & 0xff, count & 0xff];\n let lastOffset = 1,\n i;\n\n for (i = 0; i < count; ++i) {\n lastOffset += objects[i].length;\n }\n\n let 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 let 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 (let 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/* 33 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.ISOAdobeCharset = exports.ExpertSubsetCharset = exports.ExpertCharset = 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/* 34 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getEncoding = getEncoding;\nexports.ZapfDingbatsEncoding = exports.WinAnsiEncoding = exports.SymbolSetEncoding = exports.StandardEncoding = exports.MacRomanEncoding = exports.ExpertEncoding = 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/* 35 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__.r(__webpack_exports__);\n/* harmony export */ __w_pdfjs_require__.d(__webpack_exports__, {\n/* harmony export */ \"getDingbatsGlyphsUnicode\": () => (/* binding */ getDingbatsGlyphsUnicode),\n/* harmony export */ \"getGlyphsUnicode\": () => (/* binding */ getGlyphsUnicode)\n/* harmony export */ });\n/* harmony import */ var _core_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __w_pdfjs_require__(8);\n\nconst getGlyphsUnicode = (0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getArrayLookupTableFactory)(function () {\n return [\n \"A\",\n 0x0041,\n \"AE\",\n 0x00c6,\n \"AEacute\",\n 0x01fc,\n \"AEmacron\",\n 0x01e2,\n \"AEsmall\",\n 0xf7e6,\n \"Aacute\",\n 0x00c1,\n \"Aacutesmall\",\n 0xf7e1,\n \"Abreve\",\n 0x0102,\n \"Abreveacute\",\n 0x1eae,\n \"Abrevecyrillic\",\n 0x04d0,\n \"Abrevedotbelow\",\n 0x1eb6,\n \"Abrevegrave\",\n 0x1eb0,\n \"Abrevehookabove\",\n 0x1eb2,\n \"Abrevetilde\",\n 0x1eb4,\n \"Acaron\",\n 0x01cd,\n \"Acircle\",\n 0x24b6,\n \"Acircumflex\",\n 0x00c2,\n \"Acircumflexacute\",\n 0x1ea4,\n \"Acircumflexdotbelow\",\n 0x1eac,\n \"Acircumflexgrave\",\n 0x1ea6,\n \"Acircumflexhookabove\",\n 0x1ea8,\n \"Acircumflexsmall\",\n 0xf7e2,\n \"Acircumflextilde\",\n 0x1eaa,\n \"Acute\",\n 0xf6c9,\n \"Acutesmall\",\n 0xf7b4,\n \"Acyrillic\",\n 0x0410,\n \"Adblgrave\",\n 0x0200,\n \"Adieresis\",\n 0x00c4,\n \"Adieresiscyrillic\",\n 0x04d2,\n \"Adieresismacron\",\n 0x01de,\n \"Adieresissmall\",\n 0xf7e4,\n \"Adotbelow\",\n 0x1ea0,\n \"Adotmacron\",\n 0x01e0,\n \"Agrave\",\n 0x00c0,\n \"Agravesmall\",\n 0xf7e0,\n \"Ahookabove\",\n 0x1ea2,\n \"Aiecyrillic\",\n 0x04d4,\n \"Ainvertedbreve\",\n 0x0202,\n \"Alpha\",\n 0x0391,\n \"Alphatonos\",\n 0x0386,\n \"Amacron\",\n 0x0100,\n \"Amonospace\",\n 0xff21,\n \"Aogonek\",\n 0x0104,\n \"Aring\",\n 0x00c5,\n \"Aringacute\",\n 0x01fa,\n \"Aringbelow\",\n 0x1e00,\n \"Aringsmall\",\n 0xf7e5,\n \"Asmall\",\n 0xf761,\n \"Atilde\",\n 0x00c3,\n \"Atildesmall\",\n 0xf7e3,\n \"Aybarmenian\",\n 0x0531,\n \"B\",\n 0x0042,\n \"Bcircle\",\n 0x24b7,\n \"Bdotaccent\",\n 0x1e02,\n \"Bdotbelow\",\n 0x1e04,\n \"Becyrillic\",\n 0x0411,\n \"Benarmenian\",\n 0x0532,\n \"Beta\",\n 0x0392,\n \"Bhook\",\n 0x0181,\n \"Blinebelow\",\n 0x1e06,\n \"Bmonospace\",\n 0xff22,\n \"Brevesmall\",\n 0xf6f4,\n \"Bsmall\",\n 0xf762,\n \"Btopbar\",\n 0x0182,\n \"C\",\n 0x0043,\n \"Caarmenian\",\n 0x053e,\n \"Cacute\",\n 0x0106,\n \"Caron\",\n 0xf6ca,\n \"Caronsmall\",\n 0xf6f5,\n \"Ccaron\",\n 0x010c,\n \"Ccedilla\",\n 0x00c7,\n \"Ccedillaacute\",\n 0x1e08,\n \"Ccedillasmall\",\n 0xf7e7,\n \"Ccircle\",\n 0x24b8,\n \"Ccircumflex\",\n 0x0108,\n \"Cdot\",\n 0x010a,\n \"Cdotaccent\",\n 0x010a,\n \"Cedillasmall\",\n 0xf7b8,\n \"Chaarmenian\",\n 0x0549,\n \"Cheabkhasiancyrillic\",\n 0x04bc,\n \"Checyrillic\",\n 0x0427,\n \"Chedescenderabkhasiancyrillic\",\n 0x04be,\n \"Chedescendercyrillic\",\n 0x04b6,\n \"Chedieresiscyrillic\",\n 0x04f4,\n \"Cheharmenian\",\n 0x0543,\n \"Chekhakassiancyrillic\",\n 0x04cb,\n \"Cheverticalstrokecyrillic\",\n 0x04b8,\n \"Chi\",\n 0x03a7,\n \"Chook\",\n 0x0187,\n \"Circumflexsmall\",\n 0xf6f6,\n \"Cmonospace\",\n 0xff23,\n \"Coarmenian\",\n 0x0551,\n \"Csmall\",\n 0xf763,\n \"D\",\n 0x0044,\n \"DZ\",\n 0x01f1,\n \"DZcaron\",\n 0x01c4,\n \"Daarmenian\",\n 0x0534,\n \"Dafrican\",\n 0x0189,\n \"Dcaron\",\n 0x010e,\n \"Dcedilla\",\n 0x1e10,\n \"Dcircle\",\n 0x24b9,\n \"Dcircumflexbelow\",\n 0x1e12,\n \"Dcroat\",\n 0x0110,\n \"Ddotaccent\",\n 0x1e0a,\n \"Ddotbelow\",\n 0x1e0c,\n \"Decyrillic\",\n 0x0414,\n \"Deicoptic\",\n 0x03ee,\n \"Delta\",\n 0x2206,\n \"Deltagreek\",\n 0x0394,\n \"Dhook\",\n 0x018a,\n \"Dieresis\",\n 0xf6cb,\n \"DieresisAcute\",\n 0xf6cc,\n \"DieresisGrave\",\n 0xf6cd,\n \"Dieresissmall\",\n 0xf7a8,\n \"Digammagreek\",\n 0x03dc,\n \"Djecyrillic\",\n 0x0402,\n \"Dlinebelow\",\n 0x1e0e,\n \"Dmonospace\",\n 0xff24,\n \"Dotaccentsmall\",\n 0xf6f7,\n \"Dslash\",\n 0x0110,\n \"Dsmall\",\n 0xf764,\n \"Dtopbar\",\n 0x018b,\n \"Dz\",\n 0x01f2,\n \"Dzcaron\",\n 0x01c5,\n \"Dzeabkhasiancyrillic\",\n 0x04e0,\n \"Dzecyrillic\",\n 0x0405,\n \"Dzhecyrillic\",\n 0x040f,\n \"E\",\n 0x0045,\n \"Eacute\",\n 0x00c9,\n \"Eacutesmall\",\n 0xf7e9,\n \"Ebreve\",\n 0x0114,\n \"Ecaron\",\n 0x011a,\n \"Ecedillabreve\",\n 0x1e1c,\n \"Echarmenian\",\n 0x0535,\n \"Ecircle\",\n 0x24ba,\n \"Ecircumflex\",\n 0x00ca,\n \"Ecircumflexacute\",\n 0x1ebe,\n \"Ecircumflexbelow\",\n 0x1e18,\n \"Ecircumflexdotbelow\",\n 0x1ec6,\n \"Ecircumflexgrave\",\n 0x1ec0,\n \"Ecircumflexhookabove\",\n 0x1ec2,\n \"Ecircumflexsmall\",\n 0xf7ea,\n \"Ecircumflextilde\",\n 0x1ec4,\n \"Ecyrillic\",\n 0x0404,\n \"Edblgrave\",\n 0x0204,\n \"Edieresis\",\n 0x00cb,\n \"Edieresissmall\",\n 0xf7eb,\n \"Edot\",\n 0x0116,\n \"Edotaccent\",\n 0x0116,\n \"Edotbelow\",\n 0x1eb8,\n \"Efcyrillic\",\n 0x0424,\n \"Egrave\",\n 0x00c8,\n \"Egravesmall\",\n 0xf7e8,\n \"Eharmenian\",\n 0x0537,\n \"Ehookabove\",\n 0x1eba,\n \"Eightroman\",\n 0x2167,\n \"Einvertedbreve\",\n 0x0206,\n \"Eiotifiedcyrillic\",\n 0x0464,\n \"Elcyrillic\",\n 0x041b,\n \"Elevenroman\",\n 0x216a,\n \"Emacron\",\n 0x0112,\n \"Emacronacute\",\n 0x1e16,\n \"Emacrongrave\",\n 0x1e14,\n \"Emcyrillic\",\n 0x041c,\n \"Emonospace\",\n 0xff25,\n \"Encyrillic\",\n 0x041d,\n \"Endescendercyrillic\",\n 0x04a2,\n \"Eng\",\n 0x014a,\n \"Enghecyrillic\",\n 0x04a4,\n \"Enhookcyrillic\",\n 0x04c7,\n \"Eogonek\",\n 0x0118,\n \"Eopen\",\n 0x0190,\n \"Epsilon\",\n 0x0395,\n \"Epsilontonos\",\n 0x0388,\n \"Ercyrillic\",\n 0x0420,\n \"Ereversed\",\n 0x018e,\n \"Ereversedcyrillic\",\n 0x042d,\n \"Escyrillic\",\n 0x0421,\n \"Esdescendercyrillic\",\n 0x04aa,\n \"Esh\",\n 0x01a9,\n \"Esmall\",\n 0xf765,\n \"Eta\",\n 0x0397,\n \"Etarmenian\",\n 0x0538,\n \"Etatonos\",\n 0x0389,\n \"Eth\",\n 0x00d0,\n \"Ethsmall\",\n 0xf7f0,\n \"Etilde\",\n 0x1ebc,\n \"Etildebelow\",\n 0x1e1a,\n \"Euro\",\n 0x20ac,\n \"Ezh\",\n 0x01b7,\n \"Ezhcaron\",\n 0x01ee,\n \"Ezhreversed\",\n 0x01b8,\n \"F\",\n 0x0046,\n \"Fcircle\",\n 0x24bb,\n \"Fdotaccent\",\n 0x1e1e,\n \"Feharmenian\",\n 0x0556,\n \"Feicoptic\",\n 0x03e4,\n \"Fhook\",\n 0x0191,\n \"Fitacyrillic\",\n 0x0472,\n \"Fiveroman\",\n 0x2164,\n \"Fmonospace\",\n 0xff26,\n \"Fourroman\",\n 0x2163,\n \"Fsmall\",\n 0xf766,\n \"G\",\n 0x0047,\n \"GBsquare\",\n 0x3387,\n \"Gacute\",\n 0x01f4,\n \"Gamma\",\n 0x0393,\n \"Gammaafrican\",\n 0x0194,\n \"Gangiacoptic\",\n 0x03ea,\n \"Gbreve\",\n 0x011e,\n \"Gcaron\",\n 0x01e6,\n \"Gcedilla\",\n 0x0122,\n \"Gcircle\",\n 0x24bc,\n \"Gcircumflex\",\n 0x011c,\n \"Gcommaaccent\",\n 0x0122,\n \"Gdot\",\n 0x0120,\n \"Gdotaccent\",\n 0x0120,\n \"Gecyrillic\",\n 0x0413,\n \"Ghadarmenian\",\n 0x0542,\n \"Ghemiddlehookcyrillic\",\n 0x0494,\n \"Ghestrokecyrillic\",\n 0x0492,\n \"Gheupturncyrillic\",\n 0x0490,\n \"Ghook\",\n 0x0193,\n \"Gimarmenian\",\n 0x0533,\n \"Gjecyrillic\",\n 0x0403,\n \"Gmacron\",\n 0x1e20,\n \"Gmonospace\",\n 0xff27,\n \"Grave\",\n 0xf6ce,\n \"Gravesmall\",\n 0xf760,\n \"Gsmall\",\n 0xf767,\n \"Gsmallhook\",\n 0x029b,\n \"Gstroke\",\n 0x01e4,\n \"H\",\n 0x0048,\n \"H18533\",\n 0x25cf,\n \"H18543\",\n 0x25aa,\n \"H18551\",\n 0x25ab,\n \"H22073\",\n 0x25a1,\n \"HPsquare\",\n 0x33cb,\n \"Haabkhasiancyrillic\",\n 0x04a8,\n \"Hadescendercyrillic\",\n 0x04b2,\n \"Hardsigncyrillic\",\n 0x042a,\n \"Hbar\",\n 0x0126,\n \"Hbrevebelow\",\n 0x1e2a,\n \"Hcedilla\",\n 0x1e28,\n \"Hcircle\",\n 0x24bd,\n \"Hcircumflex\",\n 0x0124,\n \"Hdieresis\",\n 0x1e26,\n \"Hdotaccent\",\n 0x1e22,\n \"Hdotbelow\",\n 0x1e24,\n \"Hmonospace\",\n 0xff28,\n \"Hoarmenian\",\n 0x0540,\n \"Horicoptic\",\n 0x03e8,\n \"Hsmall\",\n 0xf768,\n \"Hungarumlaut\",\n 0xf6cf,\n \"Hungarumlautsmall\",\n 0xf6f8,\n \"Hzsquare\",\n 0x3390,\n \"I\",\n 0x0049,\n \"IAcyrillic\",\n 0x042f,\n \"IJ\",\n 0x0132,\n \"IUcyrillic\",\n 0x042e,\n \"Iacute\",\n 0x00cd,\n \"Iacutesmall\",\n 0xf7ed,\n \"Ibreve\",\n 0x012c,\n \"Icaron\",\n 0x01cf,\n \"Icircle\",\n 0x24be,\n \"Icircumflex\",\n 0x00ce,\n \"Icircumflexsmall\",\n 0xf7ee,\n \"Icyrillic\",\n 0x0406,\n \"Idblgrave\",\n 0x0208,\n \"Idieresis\",\n 0x00cf,\n \"Idieresisacute\",\n 0x1e2e,\n \"Idieresiscyrillic\",\n 0x04e4,\n \"Idieresissmall\",\n 0xf7ef,\n \"Idot\",\n 0x0130,\n \"Idotaccent\",\n 0x0130,\n \"Idotbelow\",\n 0x1eca,\n \"Iebrevecyrillic\",\n 0x04d6,\n \"Iecyrillic\",\n 0x0415,\n \"Ifraktur\",\n 0x2111,\n \"Igrave\",\n 0x00cc,\n \"Igravesmall\",\n 0xf7ec,\n \"Ihookabove\",\n 0x1ec8,\n \"Iicyrillic\",\n 0x0418,\n \"Iinvertedbreve\",\n 0x020a,\n \"Iishortcyrillic\",\n 0x0419,\n \"Imacron\",\n 0x012a,\n \"Imacroncyrillic\",\n 0x04e2,\n \"Imonospace\",\n 0xff29,\n \"Iniarmenian\",\n 0x053b,\n \"Iocyrillic\",\n 0x0401,\n \"Iogonek\",\n 0x012e,\n \"Iota\",\n 0x0399,\n \"Iotaafrican\",\n 0x0196,\n \"Iotadieresis\",\n 0x03aa,\n \"Iotatonos\",\n 0x038a,\n \"Ismall\",\n 0xf769,\n \"Istroke\",\n 0x0197,\n \"Itilde\",\n 0x0128,\n \"Itildebelow\",\n 0x1e2c,\n \"Izhitsacyrillic\",\n 0x0474,\n \"Izhitsadblgravecyrillic\",\n 0x0476,\n \"J\",\n 0x004a,\n \"Jaarmenian\",\n 0x0541,\n \"Jcircle\",\n 0x24bf,\n \"Jcircumflex\",\n 0x0134,\n \"Jecyrillic\",\n 0x0408,\n \"Jheharmenian\",\n 0x054b,\n \"Jmonospace\",\n 0xff2a,\n \"Jsmall\",\n 0xf76a,\n \"K\",\n 0x004b,\n \"KBsquare\",\n 0x3385,\n \"KKsquare\",\n 0x33cd,\n \"Kabashkircyrillic\",\n 0x04a0,\n \"Kacute\",\n 0x1e30,\n \"Kacyrillic\",\n 0x041a,\n \"Kadescendercyrillic\",\n 0x049a,\n \"Kahookcyrillic\",\n 0x04c3,\n \"Kappa\",\n 0x039a,\n \"Kastrokecyrillic\",\n 0x049e,\n \"Kaverticalstrokecyrillic\",\n 0x049c,\n \"Kcaron\",\n 0x01e8,\n \"Kcedilla\",\n 0x0136,\n \"Kcircle\",\n 0x24c0,\n \"Kcommaaccent\",\n 0x0136,\n \"Kdotbelow\",\n 0x1e32,\n \"Keharmenian\",\n 0x0554,\n \"Kenarmenian\",\n 0x053f,\n \"Khacyrillic\",\n 0x0425,\n \"Kheicoptic\",\n 0x03e6,\n \"Khook\",\n 0x0198,\n \"Kjecyrillic\",\n 0x040c,\n \"Klinebelow\",\n 0x1e34,\n \"Kmonospace\",\n 0xff2b,\n \"Koppacyrillic\",\n 0x0480,\n \"Koppagreek\",\n 0x03de,\n \"Ksicyrillic\",\n 0x046e,\n \"Ksmall\",\n 0xf76b,\n \"L\",\n 0x004c,\n \"LJ\",\n 0x01c7,\n \"LL\",\n 0xf6bf,\n \"Lacute\",\n 0x0139,\n \"Lambda\",\n 0x039b,\n \"Lcaron\",\n 0x013d,\n \"Lcedilla\",\n 0x013b,\n \"Lcircle\",\n 0x24c1,\n \"Lcircumflexbelow\",\n 0x1e3c,\n \"Lcommaaccent\",\n 0x013b,\n \"Ldot\",\n 0x013f,\n \"Ldotaccent\",\n 0x013f,\n \"Ldotbelow\",\n 0x1e36,\n \"Ldotbelowmacron\",\n 0x1e38,\n \"Liwnarmenian\",\n 0x053c,\n \"Lj\",\n 0x01c8,\n \"Ljecyrillic\",\n 0x0409,\n \"Llinebelow\",\n 0x1e3a,\n \"Lmonospace\",\n 0xff2c,\n \"Lslash\",\n 0x0141,\n \"Lslashsmall\",\n 0xf6f9,\n \"Lsmall\",\n 0xf76c,\n \"M\",\n 0x004d,\n \"MBsquare\",\n 0x3386,\n \"Macron\",\n 0xf6d0,\n \"Macronsmall\",\n 0xf7af,\n \"Macute\",\n 0x1e3e,\n \"Mcircle\",\n 0x24c2,\n \"Mdotaccent\",\n 0x1e40,\n \"Mdotbelow\",\n 0x1e42,\n \"Menarmenian\",\n 0x0544,\n \"Mmonospace\",\n 0xff2d,\n \"Msmall\",\n 0xf76d,\n \"Mturned\",\n 0x019c,\n \"Mu\",\n 0x039c,\n \"N\",\n 0x004e,\n \"NJ\",\n 0x01ca,\n \"Nacute\",\n 0x0143,\n \"Ncaron\",\n 0x0147,\n \"Ncedilla\",\n 0x0145,\n \"Ncircle\",\n 0x24c3,\n \"Ncircumflexbelow\",\n 0x1e4a,\n \"Ncommaaccent\",\n 0x0145,\n \"Ndotaccent\",\n 0x1e44,\n \"Ndotbelow\",\n 0x1e46,\n \"Nhookleft\",\n 0x019d,\n \"Nineroman\",\n 0x2168,\n \"Nj\",\n 0x01cb,\n \"Njecyrillic\",\n 0x040a,\n \"Nlinebelow\",\n 0x1e48,\n \"Nmonospace\",\n 0xff2e,\n \"Nowarmenian\",\n 0x0546,\n \"Nsmall\",\n 0xf76e,\n \"Ntilde\",\n 0x00d1,\n \"Ntildesmall\",\n 0xf7f1,\n \"Nu\",\n 0x039d,\n \"O\",\n 0x004f,\n \"OE\",\n 0x0152,\n \"OEsmall\",\n 0xf6fa,\n \"Oacute\",\n 0x00d3,\n \"Oacutesmall\",\n 0xf7f3,\n \"Obarredcyrillic\",\n 0x04e8,\n \"Obarreddieresiscyrillic\",\n 0x04ea,\n \"Obreve\",\n 0x014e,\n \"Ocaron\",\n 0x01d1,\n \"Ocenteredtilde\",\n 0x019f,\n \"Ocircle\",\n 0x24c4,\n \"Ocircumflex\",\n 0x00d4,\n \"Ocircumflexacute\",\n 0x1ed0,\n \"Ocircumflexdotbelow\",\n 0x1ed8,\n \"Ocircumflexgrave\",\n 0x1ed2,\n \"Ocircumflexhookabove\",\n 0x1ed4,\n \"Ocircumflexsmall\",\n 0xf7f4,\n \"Ocircumflextilde\",\n 0x1ed6,\n \"Ocyrillic\",\n 0x041e,\n \"Odblacute\",\n 0x0150,\n \"Odblgrave\",\n 0x020c,\n \"Odieresis\",\n 0x00d6,\n \"Odieresiscyrillic\",\n 0x04e6,\n \"Odieresissmall\",\n 0xf7f6,\n \"Odotbelow\",\n 0x1ecc,\n \"Ogoneksmall\",\n 0xf6fb,\n \"Ograve\",\n 0x00d2,\n \"Ogravesmall\",\n 0xf7f2,\n \"Oharmenian\",\n 0x0555,\n \"Ohm\",\n 0x2126,\n \"Ohookabove\",\n 0x1ece,\n \"Ohorn\",\n 0x01a0,\n \"Ohornacute\",\n 0x1eda,\n \"Ohorndotbelow\",\n 0x1ee2,\n \"Ohorngrave\",\n 0x1edc,\n \"Ohornhookabove\",\n 0x1ede,\n \"Ohorntilde\",\n 0x1ee0,\n \"Ohungarumlaut\",\n 0x0150,\n \"Oi\",\n 0x01a2,\n \"Oinvertedbreve\",\n 0x020e,\n \"Omacron\",\n 0x014c,\n \"Omacronacute\",\n 0x1e52,\n \"Omacrongrave\",\n 0x1e50,\n \"Omega\",\n 0x2126,\n \"Omegacyrillic\",\n 0x0460,\n \"Omegagreek\",\n 0x03a9,\n \"Omegaroundcyrillic\",\n 0x047a,\n \"Omegatitlocyrillic\",\n 0x047c,\n \"Omegatonos\",\n 0x038f,\n \"Omicron\",\n 0x039f,\n \"Omicrontonos\",\n 0x038c,\n \"Omonospace\",\n 0xff2f,\n \"Oneroman\",\n 0x2160,\n \"Oogonek\",\n 0x01ea,\n \"Oogonekmacron\",\n 0x01ec,\n \"Oopen\",\n 0x0186,\n \"Oslash\",\n 0x00d8,\n \"Oslashacute\",\n 0x01fe,\n \"Oslashsmall\",\n 0xf7f8,\n \"Osmall\",\n 0xf76f,\n \"Ostrokeacute\",\n 0x01fe,\n \"Otcyrillic\",\n 0x047e,\n \"Otilde\",\n 0x00d5,\n \"Otildeacute\",\n 0x1e4c,\n \"Otildedieresis\",\n 0x1e4e,\n \"Otildesmall\",\n 0xf7f5,\n \"P\",\n 0x0050,\n \"Pacute\",\n 0x1e54,\n \"Pcircle\",\n 0x24c5,\n \"Pdotaccent\",\n 0x1e56,\n \"Pecyrillic\",\n 0x041f,\n \"Peharmenian\",\n 0x054a,\n \"Pemiddlehookcyrillic\",\n 0x04a6,\n \"Phi\",\n 0x03a6,\n \"Phook\",\n 0x01a4,\n \"Pi\",\n 0x03a0,\n \"Piwrarmenian\",\n 0x0553,\n \"Pmonospace\",\n 0xff30,\n \"Psi\",\n 0x03a8,\n \"Psicyrillic\",\n 0x0470,\n \"Psmall\",\n 0xf770,\n \"Q\",\n 0x0051,\n \"Qcircle\",\n 0x24c6,\n \"Qmonospace\",\n 0xff31,\n \"Qsmall\",\n 0xf771,\n \"R\",\n 0x0052,\n \"Raarmenian\",\n 0x054c,\n \"Racute\",\n 0x0154,\n \"Rcaron\",\n 0x0158,\n \"Rcedilla\",\n 0x0156,\n \"Rcircle\",\n 0x24c7,\n \"Rcommaaccent\",\n 0x0156,\n \"Rdblgrave\",\n 0x0210,\n \"Rdotaccent\",\n 0x1e58,\n \"Rdotbelow\",\n 0x1e5a,\n \"Rdotbelowmacron\",\n 0x1e5c,\n \"Reharmenian\",\n 0x0550,\n \"Rfraktur\",\n 0x211c,\n \"Rho\",\n 0x03a1,\n \"Ringsmall\",\n 0xf6fc,\n \"Rinvertedbreve\",\n 0x0212,\n \"Rlinebelow\",\n 0x1e5e,\n \"Rmonospace\",\n 0xff32,\n \"Rsmall\",\n 0xf772,\n \"Rsmallinverted\",\n 0x0281,\n \"Rsmallinvertedsuperior\",\n 0x02b6,\n \"S\",\n 0x0053,\n \"SF010000\",\n 0x250c,\n \"SF020000\",\n 0x2514,\n \"SF030000\",\n 0x2510,\n \"SF040000\",\n 0x2518,\n \"SF050000\",\n 0x253c,\n \"SF060000\",\n 0x252c,\n \"SF070000\",\n 0x2534,\n \"SF080000\",\n 0x251c,\n \"SF090000\",\n 0x2524,\n \"SF100000\",\n 0x2500,\n \"SF110000\",\n 0x2502,\n \"SF190000\",\n 0x2561,\n \"SF200000\",\n 0x2562,\n \"SF210000\",\n 0x2556,\n \"SF220000\",\n 0x2555,\n \"SF230000\",\n 0x2563,\n \"SF240000\",\n 0x2551,\n \"SF250000\",\n 0x2557,\n \"SF260000\",\n 0x255d,\n \"SF270000\",\n 0x255c,\n \"SF280000\",\n 0x255b,\n \"SF360000\",\n 0x255e,\n \"SF370000\",\n 0x255f,\n \"SF380000\",\n 0x255a,\n \"SF390000\",\n 0x2554,\n \"SF400000\",\n 0x2569,\n \"SF410000\",\n 0x2566,\n \"SF420000\",\n 0x2560,\n \"SF430000\",\n 0x2550,\n \"SF440000\",\n 0x256c,\n \"SF450000\",\n 0x2567,\n \"SF460000\",\n 0x2568,\n \"SF470000\",\n 0x2564,\n \"SF480000\",\n 0x2565,\n \"SF490000\",\n 0x2559,\n \"SF500000\",\n 0x2558,\n \"SF510000\",\n 0x2552,\n \"SF520000\",\n 0x2553,\n \"SF530000\",\n 0x256b,\n \"SF540000\",\n 0x256a,\n \"Sacute\",\n 0x015a,\n \"Sacutedotaccent\",\n 0x1e64,\n \"Sampigreek\",\n 0x03e0,\n \"Scaron\",\n 0x0160,\n \"Scarondotaccent\",\n 0x1e66,\n \"Scaronsmall\",\n 0xf6fd,\n \"Scedilla\",\n 0x015e,\n \"Schwa\",\n 0x018f,\n \"Schwacyrillic\",\n 0x04d8,\n \"Schwadieresiscyrillic\",\n 0x04da,\n \"Scircle\",\n 0x24c8,\n \"Scircumflex\",\n 0x015c,\n \"Scommaaccent\",\n 0x0218,\n \"Sdotaccent\",\n 0x1e60,\n \"Sdotbelow\",\n 0x1e62,\n \"Sdotbelowdotaccent\",\n 0x1e68,\n \"Seharmenian\",\n 0x054d,\n \"Sevenroman\",\n 0x2166,\n \"Shaarmenian\",\n 0x0547,\n \"Shacyrillic\",\n 0x0428,\n \"Shchacyrillic\",\n 0x0429,\n \"Sheicoptic\",\n 0x03e2,\n \"Shhacyrillic\",\n 0x04ba,\n \"Shimacoptic\",\n 0x03ec,\n \"Sigma\",\n 0x03a3,\n \"Sixroman\",\n 0x2165,\n \"Smonospace\",\n 0xff33,\n \"Softsigncyrillic\",\n 0x042c,\n \"Ssmall\",\n 0xf773,\n \"Stigmagreek\",\n 0x03da,\n \"T\",\n 0x0054,\n \"Tau\",\n 0x03a4,\n \"Tbar\",\n 0x0166,\n \"Tcaron\",\n 0x0164,\n \"Tcedilla\",\n 0x0162,\n \"Tcircle\",\n 0x24c9,\n \"Tcircumflexbelow\",\n 0x1e70,\n \"Tcommaaccent\",\n 0x0162,\n \"Tdotaccent\",\n 0x1e6a,\n \"Tdotbelow\",\n 0x1e6c,\n \"Tecyrillic\",\n 0x0422,\n \"Tedescendercyrillic\",\n 0x04ac,\n \"Tenroman\",\n 0x2169,\n \"Tetsecyrillic\",\n 0x04b4,\n \"Theta\",\n 0x0398,\n \"Thook\",\n 0x01ac,\n \"Thorn\",\n 0x00de,\n \"Thornsmall\",\n 0xf7fe,\n \"Threeroman\",\n 0x2162,\n \"Tildesmall\",\n 0xf6fe,\n \"Tiwnarmenian\",\n 0x054f,\n \"Tlinebelow\",\n 0x1e6e,\n \"Tmonospace\",\n 0xff34,\n \"Toarmenian\",\n 0x0539,\n \"Tonefive\",\n 0x01bc,\n \"Tonesix\",\n 0x0184,\n \"Tonetwo\",\n 0x01a7,\n \"Tretroflexhook\",\n 0x01ae,\n \"Tsecyrillic\",\n 0x0426,\n \"Tshecyrillic\",\n 0x040b,\n \"Tsmall\",\n 0xf774,\n \"Twelveroman\",\n 0x216b,\n \"Tworoman\",\n 0x2161,\n \"U\",\n 0x0055,\n \"Uacute\",\n 0x00da,\n \"Uacutesmall\",\n 0xf7fa,\n \"Ubreve\",\n 0x016c,\n \"Ucaron\",\n 0x01d3,\n \"Ucircle\",\n 0x24ca,\n \"Ucircumflex\",\n 0x00db,\n \"Ucircumflexbelow\",\n 0x1e76,\n \"Ucircumflexsmall\",\n 0xf7fb,\n \"Ucyrillic\",\n 0x0423,\n \"Udblacute\",\n 0x0170,\n \"Udblgrave\",\n 0x0214,\n \"Udieresis\",\n 0x00dc,\n \"Udieresisacute\",\n 0x01d7,\n \"Udieresisbelow\",\n 0x1e72,\n \"Udieresiscaron\",\n 0x01d9,\n \"Udieresiscyrillic\",\n 0x04f0,\n \"Udieresisgrave\",\n 0x01db,\n \"Udieresismacron\",\n 0x01d5,\n \"Udieresissmall\",\n 0xf7fc,\n \"Udotbelow\",\n 0x1ee4,\n \"Ugrave\",\n 0x00d9,\n \"Ugravesmall\",\n 0xf7f9,\n \"Uhookabove\",\n 0x1ee6,\n \"Uhorn\",\n 0x01af,\n \"Uhornacute\",\n 0x1ee8,\n \"Uhorndotbelow\",\n 0x1ef0,\n \"Uhorngrave\",\n 0x1eea,\n \"Uhornhookabove\",\n 0x1eec,\n \"Uhorntilde\",\n 0x1eee,\n \"Uhungarumlaut\",\n 0x0170,\n \"Uhungarumlautcyrillic\",\n 0x04f2,\n \"Uinvertedbreve\",\n 0x0216,\n \"Ukcyrillic\",\n 0x0478,\n \"Umacron\",\n 0x016a,\n \"Umacroncyrillic\",\n 0x04ee,\n \"Umacrondieresis\",\n 0x1e7a,\n \"Umonospace\",\n 0xff35,\n \"Uogonek\",\n 0x0172,\n \"Upsilon\",\n 0x03a5,\n \"Upsilon1\",\n 0x03d2,\n \"Upsilonacutehooksymbolgreek\",\n 0x03d3,\n \"Upsilonafrican\",\n 0x01b1,\n \"Upsilondieresis\",\n 0x03ab,\n \"Upsilondieresishooksymbolgreek\",\n 0x03d4,\n \"Upsilonhooksymbol\",\n 0x03d2,\n \"Upsilontonos\",\n 0x038e,\n \"Uring\",\n 0x016e,\n \"Ushortcyrillic\",\n 0x040e,\n \"Usmall\",\n 0xf775,\n \"Ustraightcyrillic\",\n 0x04ae,\n \"Ustraightstrokecyrillic\",\n 0x04b0,\n \"Utilde\",\n 0x0168,\n \"Utildeacute\",\n 0x1e78,\n \"Utildebelow\",\n 0x1e74,\n \"V\",\n 0x0056,\n \"Vcircle\",\n 0x24cb,\n \"Vdotbelow\",\n 0x1e7e,\n \"Vecyrillic\",\n 0x0412,\n \"Vewarmenian\",\n 0x054e,\n \"Vhook\",\n 0x01b2,\n \"Vmonospace\",\n 0xff36,\n \"Voarmenian\",\n 0x0548,\n \"Vsmall\",\n 0xf776,\n \"Vtilde\",\n 0x1e7c,\n \"W\",\n 0x0057,\n \"Wacute\",\n 0x1e82,\n \"Wcircle\",\n 0x24cc,\n \"Wcircumflex\",\n 0x0174,\n \"Wdieresis\",\n 0x1e84,\n \"Wdotaccent\",\n 0x1e86,\n \"Wdotbelow\",\n 0x1e88,\n \"Wgrave\",\n 0x1e80,\n \"Wmonospace\",\n 0xff37,\n \"Wsmall\",\n 0xf777,\n \"X\",\n 0x0058,\n \"Xcircle\",\n 0x24cd,\n \"Xdieresis\",\n 0x1e8c,\n \"Xdotaccent\",\n 0x1e8a,\n \"Xeharmenian\",\n 0x053d,\n \"Xi\",\n 0x039e,\n \"Xmonospace\",\n 0xff38,\n \"Xsmall\",\n 0xf778,\n \"Y\",\n 0x0059,\n \"Yacute\",\n 0x00dd,\n \"Yacutesmall\",\n 0xf7fd,\n \"Yatcyrillic\",\n 0x0462,\n \"Ycircle\",\n 0x24ce,\n \"Ycircumflex\",\n 0x0176,\n \"Ydieresis\",\n 0x0178,\n \"Ydieresissmall\",\n 0xf7ff,\n \"Ydotaccent\",\n 0x1e8e,\n \"Ydotbelow\",\n 0x1ef4,\n \"Yericyrillic\",\n 0x042b,\n \"Yerudieresiscyrillic\",\n 0x04f8,\n \"Ygrave\",\n 0x1ef2,\n \"Yhook\",\n 0x01b3,\n \"Yhookabove\",\n 0x1ef6,\n \"Yiarmenian\",\n 0x0545,\n \"Yicyrillic\",\n 0x0407,\n \"Yiwnarmenian\",\n 0x0552,\n \"Ymonospace\",\n 0xff39,\n \"Ysmall\",\n 0xf779,\n \"Ytilde\",\n 0x1ef8,\n \"Yusbigcyrillic\",\n 0x046a,\n \"Yusbigiotifiedcyrillic\",\n 0x046c,\n \"Yuslittlecyrillic\",\n 0x0466,\n \"Yuslittleiotifiedcyrillic\",\n 0x0468,\n \"Z\",\n 0x005a,\n \"Zaarmenian\",\n 0x0536,\n \"Zacute\",\n 0x0179,\n \"Zcaron\",\n 0x017d,\n \"Zcaronsmall\",\n 0xf6ff,\n \"Zcircle\",\n 0x24cf,\n \"Zcircumflex\",\n 0x1e90,\n \"Zdot\",\n 0x017b,\n \"Zdotaccent\",\n 0x017b,\n \"Zdotbelow\",\n 0x1e92,\n \"Zecyrillic\",\n 0x0417,\n \"Zedescendercyrillic\",\n 0x0498,\n \"Zedieresiscyrillic\",\n 0x04de,\n \"Zeta\",\n 0x0396,\n \"Zhearmenian\",\n 0x053a,\n \"Zhebrevecyrillic\",\n 0x04c1,\n \"Zhecyrillic\",\n 0x0416,\n \"Zhedescendercyrillic\",\n 0x0496,\n \"Zhedieresiscyrillic\",\n 0x04dc,\n \"Zlinebelow\",\n 0x1e94,\n \"Zmonospace\",\n 0xff3a,\n \"Zsmall\",\n 0xf77a,\n \"Zstroke\",\n 0x01b5,\n \"a\",\n 0x0061,\n \"aabengali\",\n 0x0986,\n \"aacute\",\n 0x00e1,\n \"aadeva\",\n 0x0906,\n \"aagujarati\",\n 0x0a86,\n \"aagurmukhi\",\n 0x0a06,\n \"aamatragurmukhi\",\n 0x0a3e,\n \"aarusquare\",\n 0x3303,\n \"aavowelsignbengali\",\n 0x09be,\n \"aavowelsigndeva\",\n 0x093e,\n \"aavowelsigngujarati\",\n 0x0abe,\n \"abbreviationmarkarmenian\",\n 0x055f,\n \"abbreviationsigndeva\",\n 0x0970,\n \"abengali\",\n 0x0985,\n \"abopomofo\",\n 0x311a,\n \"abreve\",\n 0x0103,\n \"abreveacute\",\n 0x1eaf,\n \"abrevecyrillic\",\n 0x04d1,\n \"abrevedotbelow\",\n 0x1eb7,\n \"abrevegrave\",\n 0x1eb1,\n \"abrevehookabove\",\n 0x1eb3,\n \"abrevetilde\",\n 0x1eb5,\n \"acaron\",\n 0x01ce,\n \"acircle\",\n 0x24d0,\n \"acircumflex\",\n 0x00e2,\n \"acircumflexacute\",\n 0x1ea5,\n \"acircumflexdotbelow\",\n 0x1ead,\n \"acircumflexgrave\",\n 0x1ea7,\n \"acircumflexhookabove\",\n 0x1ea9,\n \"acircumflextilde\",\n 0x1eab,\n \"acute\",\n 0x00b4,\n \"acutebelowcmb\",\n 0x0317,\n \"acutecmb\",\n 0x0301,\n \"acutecomb\",\n 0x0301,\n \"acutedeva\",\n 0x0954,\n \"acutelowmod\",\n 0x02cf,\n \"acutetonecmb\",\n 0x0341,\n \"acyrillic\",\n 0x0430,\n \"adblgrave\",\n 0x0201,\n \"addakgurmukhi\",\n 0x0a71,\n \"adeva\",\n 0x0905,\n \"adieresis\",\n 0x00e4,\n \"adieresiscyrillic\",\n 0x04d3,\n \"adieresismacron\",\n 0x01df,\n \"adotbelow\",\n 0x1ea1,\n \"adotmacron\",\n 0x01e1,\n \"ae\",\n 0x00e6,\n \"aeacute\",\n 0x01fd,\n \"aekorean\",\n 0x3150,\n \"aemacron\",\n 0x01e3,\n \"afii00208\",\n 0x2015,\n \"afii08941\",\n 0x20a4,\n \"afii10017\",\n 0x0410,\n \"afii10018\",\n 0x0411,\n \"afii10019\",\n 0x0412,\n \"afii10020\",\n 0x0413,\n \"afii10021\",\n 0x0414,\n \"afii10022\",\n 0x0415,\n \"afii10023\",\n 0x0401,\n \"afii10024\",\n 0x0416,\n \"afii10025\",\n 0x0417,\n \"afii10026\",\n 0x0418,\n \"afii10027\",\n 0x0419,\n \"afii10028\",\n 0x041a,\n \"afii10029\",\n 0x041b,\n \"afii10030\",\n 0x041c,\n \"afii10031\",\n 0x041d,\n \"afii10032\",\n 0x041e,\n \"afii10033\",\n 0x041f,\n \"afii10034\",\n 0x0420,\n \"afii10035\",\n 0x0421,\n \"afii10036\",\n 0x0422,\n \"afii10037\",\n 0x0423,\n \"afii10038\",\n 0x0424,\n \"afii10039\",\n 0x0425,\n \"afii10040\",\n 0x0426,\n \"afii10041\",\n 0x0427,\n \"afii10042\",\n 0x0428,\n \"afii10043\",\n 0x0429,\n \"afii10044\",\n 0x042a,\n \"afii10045\",\n 0x042b,\n \"afii10046\",\n 0x042c,\n \"afii10047\",\n 0x042d,\n \"afii10048\",\n 0x042e,\n \"afii10049\",\n 0x042f,\n \"afii10050\",\n 0x0490,\n \"afii10051\",\n 0x0402,\n \"afii10052\",\n 0x0403,\n \"afii10053\",\n 0x0404,\n \"afii10054\",\n 0x0405,\n \"afii10055\",\n 0x0406,\n \"afii10056\",\n 0x0407,\n \"afii10057\",\n 0x0408,\n \"afii10058\",\n 0x0409,\n \"afii10059\",\n 0x040a,\n \"afii10060\",\n 0x040b,\n \"afii10061\",\n 0x040c,\n \"afii10062\",\n 0x040e,\n \"afii10063\",\n 0xf6c4,\n \"afii10064\",\n 0xf6c5,\n \"afii10065\",\n 0x0430,\n \"afii10066\",\n 0x0431,\n \"afii10067\",\n 0x0432,\n \"afii10068\",\n 0x0433,\n \"afii10069\",\n 0x0434,\n \"afii10070\",\n 0x0435,\n \"afii10071\",\n 0x0451,\n \"afii10072\",\n 0x0436,\n \"afii10073\",\n 0x0437,\n \"afii10074\",\n 0x0438,\n \"afii10075\",\n 0x0439,\n \"afii10076\",\n 0x043a,\n \"afii10077\",\n 0x043b,\n \"afii10078\",\n 0x043c,\n \"afii10079\",\n 0x043d,\n \"afii10080\",\n 0x043e,\n \"afii10081\",\n 0x043f,\n \"afii10082\",\n 0x0440,\n \"afii10083\",\n 0x0441,\n \"afii10084\",\n 0x0442,\n \"afii10085\",\n 0x0443,\n \"afii10086\",\n 0x0444,\n \"afii10087\",\n 0x0445,\n \"afii10088\",\n 0x0446,\n \"afii10089\",\n 0x0447,\n \"afii10090\",\n 0x0448,\n \"afii10091\",\n 0x0449,\n \"afii10092\",\n 0x044a,\n \"afii10093\",\n 0x044b,\n \"afii10094\",\n 0x044c,\n \"afii10095\",\n 0x044d,\n \"afii10096\",\n 0x044e,\n \"afii10097\",\n 0x044f,\n \"afii10098\",\n 0x0491,\n \"afii10099\",\n 0x0452,\n \"afii10100\",\n 0x0453,\n \"afii10101\",\n 0x0454,\n \"afii10102\",\n 0x0455,\n \"afii10103\",\n 0x0456,\n \"afii10104\",\n 0x0457,\n \"afii10105\",\n 0x0458,\n \"afii10106\",\n 0x0459,\n \"afii10107\",\n 0x045a,\n \"afii10108\",\n 0x045b,\n \"afii10109\",\n 0x045c,\n \"afii10110\",\n 0x045e,\n \"afii10145\",\n 0x040f,\n \"afii10146\",\n 0x0462,\n \"afii10147\",\n 0x0472,\n \"afii10148\",\n 0x0474,\n \"afii10192\",\n 0xf6c6,\n \"afii10193\",\n 0x045f,\n \"afii10194\",\n 0x0463,\n \"afii10195\",\n 0x0473,\n \"afii10196\",\n 0x0475,\n \"afii10831\",\n 0xf6c7,\n \"afii10832\",\n 0xf6c8,\n \"afii10846\",\n 0x04d9,\n \"afii299\",\n 0x200e,\n \"afii300\",\n 0x200f,\n \"afii301\",\n 0x200d,\n \"afii57381\",\n 0x066a,\n \"afii57388\",\n 0x060c,\n \"afii57392\",\n 0x0660,\n \"afii57393\",\n 0x0661,\n \"afii57394\",\n 0x0662,\n \"afii57395\",\n 0x0663,\n \"afii57396\",\n 0x0664,\n \"afii57397\",\n 0x0665,\n \"afii57398\",\n 0x0666,\n \"afii57399\",\n 0x0667,\n \"afii57400\",\n 0x0668,\n \"afii57401\",\n 0x0669,\n \"afii57403\",\n 0x061b,\n \"afii57407\",\n 0x061f,\n \"afii57409\",\n 0x0621,\n \"afii57410\",\n 0x0622,\n \"afii57411\",\n 0x0623,\n \"afii57412\",\n 0x0624,\n \"afii57413\",\n 0x0625,\n \"afii57414\",\n 0x0626,\n \"afii57415\",\n 0x0627,\n \"afii57416\",\n 0x0628,\n \"afii57417\",\n 0x0629,\n \"afii57418\",\n 0x062a,\n \"afii57419\",\n 0x062b,\n \"afii57420\",\n 0x062c,\n \"afii57421\",\n 0x062d,\n \"afii57422\",\n 0x062e,\n \"afii57423\",\n 0x062f,\n \"afii57424\",\n 0x0630,\n \"afii57425\",\n 0x0631,\n \"afii57426\",\n 0x0632,\n \"afii57427\",\n 0x0633,\n \"afii57428\",\n 0x0634,\n \"afii57429\",\n 0x0635,\n \"afii57430\",\n 0x0636,\n \"afii57431\",\n 0x0637,\n \"afii57432\",\n 0x0638,\n \"afii57433\",\n 0x0639,\n \"afii57434\",\n 0x063a,\n \"afii57440\",\n 0x0640,\n \"afii57441\",\n 0x0641,\n \"afii57442\",\n 0x0642,\n \"afii57443\",\n 0x0643,\n \"afii57444\",\n 0x0644,\n \"afii57445\",\n 0x0645,\n \"afii57446\",\n 0x0646,\n \"afii57448\",\n 0x0648,\n \"afii57449\",\n 0x0649,\n \"afii57450\",\n 0x064a,\n \"afii57451\",\n 0x064b,\n \"afii57452\",\n 0x064c,\n \"afii57453\",\n 0x064d,\n \"afii57454\",\n 0x064e,\n \"afii57455\",\n 0x064f,\n \"afii57456\",\n 0x0650,\n \"afii57457\",\n 0x0651,\n \"afii57458\",\n 0x0652,\n \"afii57470\",\n 0x0647,\n \"afii57505\",\n 0x06a4,\n \"afii57506\",\n 0x067e,\n \"afii57507\",\n 0x0686,\n \"afii57508\",\n 0x0698,\n \"afii57509\",\n 0x06af,\n \"afii57511\",\n 0x0679,\n \"afii57512\",\n 0x0688,\n \"afii57513\",\n 0x0691,\n \"afii57514\",\n 0x06ba,\n \"afii57519\",\n 0x06d2,\n \"afii57534\",\n 0x06d5,\n \"afii57636\",\n 0x20aa,\n \"afii57645\",\n 0x05be,\n \"afii57658\",\n 0x05c3,\n \"afii57664\",\n 0x05d0,\n \"afii57665\",\n 0x05d1,\n \"afii57666\",\n 0x05d2,\n \"afii57667\",\n 0x05d3,\n \"afii57668\",\n 0x05d4,\n \"afii57669\",\n 0x05d5,\n \"afii57670\",\n 0x05d6,\n \"afii57671\",\n 0x05d7,\n \"afii57672\",\n 0x05d8,\n \"afii57673\",\n 0x05d9,\n \"afii57674\",\n 0x05da,\n \"afii57675\",\n 0x05db,\n \"afii57676\",\n 0x05dc,\n \"afii57677\",\n 0x05dd,\n \"afii57678\",\n 0x05de,\n \"afii57679\",\n 0x05df,\n \"afii57680\",\n 0x05e0,\n \"afii57681\",\n 0x05e1,\n \"afii57682\",\n 0x05e2,\n \"afii57683\",\n 0x05e3,\n \"afii57684\",\n 0x05e4,\n \"afii57685\",\n 0x05e5,\n \"afii57686\",\n 0x05e6,\n \"afii57687\",\n 0x05e7,\n \"afii57688\",\n 0x05e8,\n \"afii57689\",\n 0x05e9,\n \"afii57690\",\n 0x05ea,\n \"afii57694\",\n 0xfb2a,\n \"afii57695\",\n 0xfb2b,\n \"afii57700\",\n 0xfb4b,\n \"afii57705\",\n 0xfb1f,\n \"afii57716\",\n 0x05f0,\n \"afii57717\",\n 0x05f1,\n \"afii57718\",\n 0x05f2,\n \"afii57723\",\n 0xfb35,\n \"afii57793\",\n 0x05b4,\n \"afii57794\",\n 0x05b5,\n \"afii57795\",\n 0x05b6,\n \"afii57796\",\n 0x05bb,\n \"afii57797\",\n 0x05b8,\n \"afii57798\",\n 0x05b7,\n \"afii57799\",\n 0x05b0,\n \"afii57800\",\n 0x05b2,\n \"afii57801\",\n 0x05b1,\n \"afii57802\",\n 0x05b3,\n \"afii57803\",\n 0x05c2,\n \"afii57804\",\n 0x05c1,\n \"afii57806\",\n 0x05b9,\n \"afii57807\",\n 0x05bc,\n \"afii57839\",\n 0x05bd,\n \"afii57841\",\n 0x05bf,\n \"afii57842\",\n 0x05c0,\n \"afii57929\",\n 0x02bc,\n \"afii61248\",\n 0x2105,\n \"afii61289\",\n 0x2113,\n \"afii61352\",\n 0x2116,\n \"afii61573\",\n 0x202c,\n \"afii61574\",\n 0x202d,\n \"afii61575\",\n 0x202e,\n \"afii61664\",\n 0x200c,\n \"afii63167\",\n 0x066d,\n \"afii64937\",\n 0x02bd,\n \"agrave\",\n 0x00e0,\n \"agujarati\",\n 0x0a85,\n \"agurmukhi\",\n 0x0a05,\n \"ahiragana\",\n 0x3042,\n \"ahookabove\",\n 0x1ea3,\n \"aibengali\",\n 0x0990,\n \"aibopomofo\",\n 0x311e,\n \"aideva\",\n 0x0910,\n \"aiecyrillic\",\n 0x04d5,\n \"aigujarati\",\n 0x0a90,\n \"aigurmukhi\",\n 0x0a10,\n \"aimatragurmukhi\",\n 0x0a48,\n \"ainarabic\",\n 0x0639,\n \"ainfinalarabic\",\n 0xfeca,\n \"aininitialarabic\",\n 0xfecb,\n \"ainmedialarabic\",\n 0xfecc,\n \"ainvertedbreve\",\n 0x0203,\n \"aivowelsignbengali\",\n 0x09c8,\n \"aivowelsigndeva\",\n 0x0948,\n \"aivowelsigngujarati\",\n 0x0ac8,\n \"akatakana\",\n 0x30a2,\n \"akatakanahalfwidth\",\n 0xff71,\n \"akorean\",\n 0x314f,\n \"alef\",\n 0x05d0,\n \"alefarabic\",\n 0x0627,\n \"alefdageshhebrew\",\n 0xfb30,\n \"aleffinalarabic\",\n 0xfe8e,\n \"alefhamzaabovearabic\",\n 0x0623,\n \"alefhamzaabovefinalarabic\",\n 0xfe84,\n \"alefhamzabelowarabic\",\n 0x0625,\n \"alefhamzabelowfinalarabic\",\n 0xfe88,\n \"alefhebrew\",\n 0x05d0,\n \"aleflamedhebrew\",\n 0xfb4f,\n \"alefmaddaabovearabic\",\n 0x0622,\n \"alefmaddaabovefinalarabic\",\n 0xfe82,\n \"alefmaksuraarabic\",\n 0x0649,\n \"alefmaksurafinalarabic\",\n 0xfef0,\n \"alefmaksurainitialarabic\",\n 0xfef3,\n \"alefmaksuramedialarabic\",\n 0xfef4,\n \"alefpatahhebrew\",\n 0xfb2e,\n \"alefqamatshebrew\",\n 0xfb2f,\n \"aleph\",\n 0x2135,\n \"allequal\",\n 0x224c,\n \"alpha\",\n 0x03b1,\n \"alphatonos\",\n 0x03ac,\n \"amacron\",\n 0x0101,\n \"amonospace\",\n 0xff41,\n \"ampersand\",\n 0x0026,\n \"ampersandmonospace\",\n 0xff06,\n \"ampersandsmall\",\n 0xf726,\n \"amsquare\",\n 0x33c2,\n \"anbopomofo\",\n 0x3122,\n \"angbopomofo\",\n 0x3124,\n \"angbracketleft\",\n 0x3008,\n \"angbracketright\",\n 0x3009,\n \"angkhankhuthai\",\n 0x0e5a,\n \"angle\",\n 0x2220,\n \"anglebracketleft\",\n 0x3008,\n \"anglebracketleftvertical\",\n 0xfe3f,\n \"anglebracketright\",\n 0x3009,\n \"anglebracketrightvertical\",\n 0xfe40,\n \"angleleft\",\n 0x2329,\n \"angleright\",\n 0x232a,\n \"angstrom\",\n 0x212b,\n \"anoteleia\",\n 0x0387,\n \"anudattadeva\",\n 0x0952,\n \"anusvarabengali\",\n 0x0982,\n \"anusvaradeva\",\n 0x0902,\n \"anusvaragujarati\",\n 0x0a82,\n \"aogonek\",\n 0x0105,\n \"apaatosquare\",\n 0x3300,\n \"aparen\",\n 0x249c,\n \"apostrophearmenian\",\n 0x055a,\n \"apostrophemod\",\n 0x02bc,\n \"apple\",\n 0xf8ff,\n \"approaches\",\n 0x2250,\n \"approxequal\",\n 0x2248,\n \"approxequalorimage\",\n 0x2252,\n \"approximatelyequal\",\n 0x2245,\n \"araeaekorean\",\n 0x318e,\n \"araeakorean\",\n 0x318d,\n \"arc\",\n 0x2312,\n \"arighthalfring\",\n 0x1e9a,\n \"aring\",\n 0x00e5,\n \"aringacute\",\n 0x01fb,\n \"aringbelow\",\n 0x1e01,\n \"arrowboth\",\n 0x2194,\n \"arrowdashdown\",\n 0x21e3,\n \"arrowdashleft\",\n 0x21e0,\n \"arrowdashright\",\n 0x21e2,\n \"arrowdashup\",\n 0x21e1,\n \"arrowdblboth\",\n 0x21d4,\n \"arrowdbldown\",\n 0x21d3,\n \"arrowdblleft\",\n 0x21d0,\n \"arrowdblright\",\n 0x21d2,\n \"arrowdblup\",\n 0x21d1,\n \"arrowdown\",\n 0x2193,\n \"arrowdownleft\",\n 0x2199,\n \"arrowdownright\",\n 0x2198,\n \"arrowdownwhite\",\n 0x21e9,\n \"arrowheaddownmod\",\n 0x02c5,\n \"arrowheadleftmod\",\n 0x02c2,\n \"arrowheadrightmod\",\n 0x02c3,\n \"arrowheadupmod\",\n 0x02c4,\n \"arrowhorizex\",\n 0xf8e7,\n \"arrowleft\",\n 0x2190,\n \"arrowleftdbl\",\n 0x21d0,\n \"arrowleftdblstroke\",\n 0x21cd,\n \"arrowleftoverright\",\n 0x21c6,\n \"arrowleftwhite\",\n 0x21e6,\n \"arrowright\",\n 0x2192,\n \"arrowrightdblstroke\",\n 0x21cf,\n \"arrowrightheavy\",\n 0x279e,\n \"arrowrightoverleft\",\n 0x21c4,\n \"arrowrightwhite\",\n 0x21e8,\n \"arrowtableft\",\n 0x21e4,\n \"arrowtabright\",\n 0x21e5,\n \"arrowup\",\n 0x2191,\n \"arrowupdn\",\n 0x2195,\n \"arrowupdnbse\",\n 0x21a8,\n \"arrowupdownbase\",\n 0x21a8,\n \"arrowupleft\",\n 0x2196,\n \"arrowupleftofdown\",\n 0x21c5,\n \"arrowupright\",\n 0x2197,\n \"arrowupwhite\",\n 0x21e7,\n \"arrowvertex\",\n 0xf8e6,\n \"asciicircum\",\n 0x005e,\n \"asciicircummonospace\",\n 0xff3e,\n \"asciitilde\",\n 0x007e,\n \"asciitildemonospace\",\n 0xff5e,\n \"ascript\",\n 0x0251,\n \"ascriptturned\",\n 0x0252,\n \"asmallhiragana\",\n 0x3041,\n \"asmallkatakana\",\n 0x30a1,\n \"asmallkatakanahalfwidth\",\n 0xff67,\n \"asterisk\",\n 0x002a,\n \"asteriskaltonearabic\",\n 0x066d,\n \"asteriskarabic\",\n 0x066d,\n \"asteriskmath\",\n 0x2217,\n \"asteriskmonospace\",\n 0xff0a,\n \"asterisksmall\",\n 0xfe61,\n \"asterism\",\n 0x2042,\n \"asuperior\",\n 0xf6e9,\n \"asymptoticallyequal\",\n 0x2243,\n \"at\",\n 0x0040,\n \"atilde\",\n 0x00e3,\n \"atmonospace\",\n 0xff20,\n \"atsmall\",\n 0xfe6b,\n \"aturned\",\n 0x0250,\n \"aubengali\",\n 0x0994,\n \"aubopomofo\",\n 0x3120,\n \"audeva\",\n 0x0914,\n \"augujarati\",\n 0x0a94,\n \"augurmukhi\",\n 0x0a14,\n \"aulengthmarkbengali\",\n 0x09d7,\n \"aumatragurmukhi\",\n 0x0a4c,\n \"auvowelsignbengali\",\n 0x09cc,\n \"auvowelsigndeva\",\n 0x094c,\n \"auvowelsigngujarati\",\n 0x0acc,\n \"avagrahadeva\",\n 0x093d,\n \"aybarmenian\",\n 0x0561,\n \"ayin\",\n 0x05e2,\n \"ayinaltonehebrew\",\n 0xfb20,\n \"ayinhebrew\",\n 0x05e2,\n \"b\",\n 0x0062,\n \"babengali\",\n 0x09ac,\n \"backslash\",\n 0x005c,\n \"backslashmonospace\",\n 0xff3c,\n \"badeva\",\n 0x092c,\n \"bagujarati\",\n 0x0aac,\n \"bagurmukhi\",\n 0x0a2c,\n \"bahiragana\",\n 0x3070,\n \"bahtthai\",\n 0x0e3f,\n \"bakatakana\",\n 0x30d0,\n \"bar\",\n 0x007c,\n \"barmonospace\",\n 0xff5c,\n \"bbopomofo\",\n 0x3105,\n \"bcircle\",\n 0x24d1,\n \"bdotaccent\",\n 0x1e03,\n \"bdotbelow\",\n 0x1e05,\n \"beamedsixteenthnotes\",\n 0x266c,\n \"because\",\n 0x2235,\n \"becyrillic\",\n 0x0431,\n \"beharabic\",\n 0x0628,\n \"behfinalarabic\",\n 0xfe90,\n \"behinitialarabic\",\n 0xfe91,\n \"behiragana\",\n 0x3079,\n \"behmedialarabic\",\n 0xfe92,\n \"behmeeminitialarabic\",\n 0xfc9f,\n \"behmeemisolatedarabic\",\n 0xfc08,\n \"behnoonfinalarabic\",\n 0xfc6d,\n \"bekatakana\",\n 0x30d9,\n \"benarmenian\",\n 0x0562,\n \"bet\",\n 0x05d1,\n \"beta\",\n 0x03b2,\n \"betasymbolgreek\",\n 0x03d0,\n \"betdagesh\",\n 0xfb31,\n \"betdageshhebrew\",\n 0xfb31,\n \"bethebrew\",\n 0x05d1,\n \"betrafehebrew\",\n 0xfb4c,\n \"bhabengali\",\n 0x09ad,\n \"bhadeva\",\n 0x092d,\n \"bhagujarati\",\n 0x0aad,\n \"bhagurmukhi\",\n 0x0a2d,\n \"bhook\",\n 0x0253,\n \"bihiragana\",\n 0x3073,\n \"bikatakana\",\n 0x30d3,\n \"bilabialclick\",\n 0x0298,\n \"bindigurmukhi\",\n 0x0a02,\n \"birusquare\",\n 0x3331,\n \"blackcircle\",\n 0x25cf,\n \"blackdiamond\",\n 0x25c6,\n \"blackdownpointingtriangle\",\n 0x25bc,\n \"blackleftpointingpointer\",\n 0x25c4,\n \"blackleftpointingtriangle\",\n 0x25c0,\n \"blacklenticularbracketleft\",\n 0x3010,\n \"blacklenticularbracketleftvertical\",\n 0xfe3b,\n \"blacklenticularbracketright\",\n 0x3011,\n \"blacklenticularbracketrightvertical\",\n 0xfe3c,\n \"blacklowerlefttriangle\",\n 0x25e3,\n \"blacklowerrighttriangle\",\n 0x25e2,\n \"blackrectangle\",\n 0x25ac,\n \"blackrightpointingpointer\",\n 0x25ba,\n \"blackrightpointingtriangle\",\n 0x25b6,\n \"blacksmallsquare\",\n 0x25aa,\n \"blacksmilingface\",\n 0x263b,\n \"blacksquare\",\n 0x25a0,\n \"blackstar\",\n 0x2605,\n \"blackupperlefttriangle\",\n 0x25e4,\n \"blackupperrighttriangle\",\n 0x25e5,\n \"blackuppointingsmalltriangle\",\n 0x25b4,\n \"blackuppointingtriangle\",\n 0x25b2,\n \"blank\",\n 0x2423,\n \"blinebelow\",\n 0x1e07,\n \"block\",\n 0x2588,\n \"bmonospace\",\n 0xff42,\n \"bobaimaithai\",\n 0x0e1a,\n \"bohiragana\",\n 0x307c,\n \"bokatakana\",\n 0x30dc,\n \"bparen\",\n 0x249d,\n \"bqsquare\",\n 0x33c3,\n \"braceex\",\n 0xf8f4,\n \"braceleft\",\n 0x007b,\n \"braceleftbt\",\n 0xf8f3,\n \"braceleftmid\",\n 0xf8f2,\n \"braceleftmonospace\",\n 0xff5b,\n \"braceleftsmall\",\n 0xfe5b,\n \"bracelefttp\",\n 0xf8f1,\n \"braceleftvertical\",\n 0xfe37,\n \"braceright\",\n 0x007d,\n \"bracerightbt\",\n 0xf8fe,\n \"bracerightmid\",\n 0xf8fd,\n \"bracerightmonospace\",\n 0xff5d,\n \"bracerightsmall\",\n 0xfe5c,\n \"bracerighttp\",\n 0xf8fc,\n \"bracerightvertical\",\n 0xfe38,\n \"bracketleft\",\n 0x005b,\n \"bracketleftbt\",\n 0xf8f0,\n \"bracketleftex\",\n 0xf8ef,\n \"bracketleftmonospace\",\n 0xff3b,\n \"bracketlefttp\",\n 0xf8ee,\n \"bracketright\",\n 0x005d,\n \"bracketrightbt\",\n 0xf8fb,\n \"bracketrightex\",\n 0xf8fa,\n \"bracketrightmonospace\",\n 0xff3d,\n \"bracketrighttp\",\n 0xf8f9,\n \"breve\",\n 0x02d8,\n \"brevebelowcmb\",\n 0x032e,\n \"brevecmb\",\n 0x0306,\n \"breveinvertedbelowcmb\",\n 0x032f,\n \"breveinvertedcmb\",\n 0x0311,\n \"breveinverteddoublecmb\",\n 0x0361,\n \"bridgebelowcmb\",\n 0x032a,\n \"bridgeinvertedbelowcmb\",\n 0x033a,\n \"brokenbar\",\n 0x00a6,\n \"bstroke\",\n 0x0180,\n \"bsuperior\",\n 0xf6ea,\n \"btopbar\",\n 0x0183,\n \"buhiragana\",\n 0x3076,\n \"bukatakana\",\n 0x30d6,\n \"bullet\",\n 0x2022,\n \"bulletinverse\",\n 0x25d8,\n \"bulletoperator\",\n 0x2219,\n \"bullseye\",\n 0x25ce,\n \"c\",\n 0x0063,\n \"caarmenian\",\n 0x056e,\n \"cabengali\",\n 0x099a,\n \"cacute\",\n 0x0107,\n \"cadeva\",\n 0x091a,\n \"cagujarati\",\n 0x0a9a,\n \"cagurmukhi\",\n 0x0a1a,\n \"calsquare\",\n 0x3388,\n \"candrabindubengali\",\n 0x0981,\n \"candrabinducmb\",\n 0x0310,\n \"candrabindudeva\",\n 0x0901,\n \"candrabindugujarati\",\n 0x0a81,\n \"capslock\",\n 0x21ea,\n \"careof\",\n 0x2105,\n \"caron\",\n 0x02c7,\n \"caronbelowcmb\",\n 0x032c,\n \"caroncmb\",\n 0x030c,\n \"carriagereturn\",\n 0x21b5,\n \"cbopomofo\",\n 0x3118,\n \"ccaron\",\n 0x010d,\n \"ccedilla\",\n 0x00e7,\n \"ccedillaacute\",\n 0x1e09,\n \"ccircle\",\n 0x24d2,\n \"ccircumflex\",\n 0x0109,\n \"ccurl\",\n 0x0255,\n \"cdot\",\n 0x010b,\n \"cdotaccent\",\n 0x010b,\n \"cdsquare\",\n 0x33c5,\n \"cedilla\",\n 0x00b8,\n \"cedillacmb\",\n 0x0327,\n \"cent\",\n 0x00a2,\n \"centigrade\",\n 0x2103,\n \"centinferior\",\n 0xf6df,\n \"centmonospace\",\n 0xffe0,\n \"centoldstyle\",\n 0xf7a2,\n \"centsuperior\",\n 0xf6e0,\n \"chaarmenian\",\n 0x0579,\n \"chabengali\",\n 0x099b,\n \"chadeva\",\n 0x091b,\n \"chagujarati\",\n 0x0a9b,\n \"chagurmukhi\",\n 0x0a1b,\n \"chbopomofo\",\n 0x3114,\n \"cheabkhasiancyrillic\",\n 0x04bd,\n \"checkmark\",\n 0x2713,\n \"checyrillic\",\n 0x0447,\n \"chedescenderabkhasiancyrillic\",\n 0x04bf,\n \"chedescendercyrillic\",\n 0x04b7,\n \"chedieresiscyrillic\",\n 0x04f5,\n \"cheharmenian\",\n 0x0573,\n \"chekhakassiancyrillic\",\n 0x04cc,\n \"cheverticalstrokecyrillic\",\n 0x04b9,\n \"chi\",\n 0x03c7,\n \"chieuchacirclekorean\",\n 0x3277,\n \"chieuchaparenkorean\",\n 0x3217,\n \"chieuchcirclekorean\",\n 0x3269,\n \"chieuchkorean\",\n 0x314a,\n \"chieuchparenkorean\",\n 0x3209,\n \"chochangthai\",\n 0x0e0a,\n \"chochanthai\",\n 0x0e08,\n \"chochingthai\",\n 0x0e09,\n \"chochoethai\",\n 0x0e0c,\n \"chook\",\n 0x0188,\n \"cieucacirclekorean\",\n 0x3276,\n \"cieucaparenkorean\",\n 0x3216,\n \"cieuccirclekorean\",\n 0x3268,\n \"cieuckorean\",\n 0x3148,\n \"cieucparenkorean\",\n 0x3208,\n \"cieucuparenkorean\",\n 0x321c,\n \"circle\",\n 0x25cb,\n \"circlecopyrt\",\n 0x00a9,\n \"circlemultiply\",\n 0x2297,\n \"circleot\",\n 0x2299,\n \"circleplus\",\n 0x2295,\n \"circlepostalmark\",\n 0x3036,\n \"circlewithlefthalfblack\",\n 0x25d0,\n \"circlewithrighthalfblack\",\n 0x25d1,\n \"circumflex\",\n 0x02c6,\n \"circumflexbelowcmb\",\n 0x032d,\n \"circumflexcmb\",\n 0x0302,\n \"clear\",\n 0x2327,\n \"clickalveolar\",\n 0x01c2,\n \"clickdental\",\n 0x01c0,\n \"clicklateral\",\n 0x01c1,\n \"clickretroflex\",\n 0x01c3,\n \"club\",\n 0x2663,\n \"clubsuitblack\",\n 0x2663,\n \"clubsuitwhite\",\n 0x2667,\n \"cmcubedsquare\",\n 0x33a4,\n \"cmonospace\",\n 0xff43,\n \"cmsquaredsquare\",\n 0x33a0,\n \"coarmenian\",\n 0x0581,\n \"colon\",\n 0x003a,\n \"colonmonetary\",\n 0x20a1,\n \"colonmonospace\",\n 0xff1a,\n \"colonsign\",\n 0x20a1,\n \"colonsmall\",\n 0xfe55,\n \"colontriangularhalfmod\",\n 0x02d1,\n \"colontriangularmod\",\n 0x02d0,\n \"comma\",\n 0x002c,\n \"commaabovecmb\",\n 0x0313,\n \"commaaboverightcmb\",\n 0x0315,\n \"commaaccent\",\n 0xf6c3,\n \"commaarabic\",\n 0x060c,\n \"commaarmenian\",\n 0x055d,\n \"commainferior\",\n 0xf6e1,\n \"commamonospace\",\n 0xff0c,\n \"commareversedabovecmb\",\n 0x0314,\n \"commareversedmod\",\n 0x02bd,\n \"commasmall\",\n 0xfe50,\n \"commasuperior\",\n 0xf6e2,\n \"commaturnedabovecmb\",\n 0x0312,\n \"commaturnedmod\",\n 0x02bb,\n \"compass\",\n 0x263c,\n \"congruent\",\n 0x2245,\n \"contourintegral\",\n 0x222e,\n \"control\",\n 0x2303,\n \"controlACK\",\n 0x0006,\n \"controlBEL\",\n 0x0007,\n \"controlBS\",\n 0x0008,\n \"controlCAN\",\n 0x0018,\n \"controlCR\",\n 0x000d,\n \"controlDC1\",\n 0x0011,\n \"controlDC2\",\n 0x0012,\n \"controlDC3\",\n 0x0013,\n \"controlDC4\",\n 0x0014,\n \"controlDEL\",\n 0x007f,\n \"controlDLE\",\n 0x0010,\n \"controlEM\",\n 0x0019,\n \"controlENQ\",\n 0x0005,\n \"controlEOT\",\n 0x0004,\n \"controlESC\",\n 0x001b,\n \"controlETB\",\n 0x0017,\n \"controlETX\",\n 0x0003,\n \"controlFF\",\n 0x000c,\n \"controlFS\",\n 0x001c,\n \"controlGS\",\n 0x001d,\n \"controlHT\",\n 0x0009,\n \"controlLF\",\n 0x000a,\n \"controlNAK\",\n 0x0015,\n \"controlNULL\",\n 0x0000,\n \"controlRS\",\n 0x001e,\n \"controlSI\",\n 0x000f,\n \"controlSO\",\n 0x000e,\n \"controlSOT\",\n 0x0002,\n \"controlSTX\",\n 0x0001,\n \"controlSUB\",\n 0x001a,\n \"controlSYN\",\n 0x0016,\n \"controlUS\",\n 0x001f,\n \"controlVT\",\n 0x000b,\n \"copyright\",\n 0x00a9,\n \"copyrightsans\",\n 0xf8e9,\n \"copyrightserif\",\n 0xf6d9,\n \"cornerbracketleft\",\n 0x300c,\n \"cornerbracketlefthalfwidth\",\n 0xff62,\n \"cornerbracketleftvertical\",\n 0xfe41,\n \"cornerbracketright\",\n 0x300d,\n \"cornerbracketrighthalfwidth\",\n 0xff63,\n \"cornerbracketrightvertical\",\n 0xfe42,\n \"corporationsquare\",\n 0x337f,\n \"cosquare\",\n 0x33c7,\n \"coverkgsquare\",\n 0x33c6,\n \"cparen\",\n 0x249e,\n \"cruzeiro\",\n 0x20a2,\n \"cstretched\",\n 0x0297,\n \"curlyand\",\n 0x22cf,\n \"curlyor\",\n 0x22ce,\n \"currency\",\n 0x00a4,\n \"cyrBreve\",\n 0xf6d1,\n \"cyrFlex\",\n 0xf6d2,\n \"cyrbreve\",\n 0xf6d4,\n \"cyrflex\",\n 0xf6d5,\n \"d\",\n 0x0064,\n \"daarmenian\",\n 0x0564,\n \"dabengali\",\n 0x09a6,\n \"dadarabic\",\n 0x0636,\n \"dadeva\",\n 0x0926,\n \"dadfinalarabic\",\n 0xfebe,\n \"dadinitialarabic\",\n 0xfebf,\n \"dadmedialarabic\",\n 0xfec0,\n \"dagesh\",\n 0x05bc,\n \"dageshhebrew\",\n 0x05bc,\n \"dagger\",\n 0x2020,\n \"daggerdbl\",\n 0x2021,\n \"dagujarati\",\n 0x0aa6,\n \"dagurmukhi\",\n 0x0a26,\n \"dahiragana\",\n 0x3060,\n \"dakatakana\",\n 0x30c0,\n \"dalarabic\",\n 0x062f,\n \"dalet\",\n 0x05d3,\n \"daletdagesh\",\n 0xfb33,\n \"daletdageshhebrew\",\n 0xfb33,\n \"dalethebrew\",\n 0x05d3,\n \"dalfinalarabic\",\n 0xfeaa,\n \"dammaarabic\",\n 0x064f,\n \"dammalowarabic\",\n 0x064f,\n \"dammatanaltonearabic\",\n 0x064c,\n \"dammatanarabic\",\n 0x064c,\n \"danda\",\n 0x0964,\n \"dargahebrew\",\n 0x05a7,\n \"dargalefthebrew\",\n 0x05a7,\n \"dasiapneumatacyrilliccmb\",\n 0x0485,\n \"dblGrave\",\n 0xf6d3,\n \"dblanglebracketleft\",\n 0x300a,\n \"dblanglebracketleftvertical\",\n 0xfe3d,\n \"dblanglebracketright\",\n 0x300b,\n \"dblanglebracketrightvertical\",\n 0xfe3e,\n \"dblarchinvertedbelowcmb\",\n 0x032b,\n \"dblarrowleft\",\n 0x21d4,\n \"dblarrowright\",\n 0x21d2,\n \"dbldanda\",\n 0x0965,\n \"dblgrave\",\n 0xf6d6,\n \"dblgravecmb\",\n 0x030f,\n \"dblintegral\",\n 0x222c,\n \"dbllowline\",\n 0x2017,\n \"dbllowlinecmb\",\n 0x0333,\n \"dbloverlinecmb\",\n 0x033f,\n \"dblprimemod\",\n 0x02ba,\n \"dblverticalbar\",\n 0x2016,\n \"dblverticallineabovecmb\",\n 0x030e,\n \"dbopomofo\",\n 0x3109,\n \"dbsquare\",\n 0x33c8,\n \"dcaron\",\n 0x010f,\n \"dcedilla\",\n 0x1e11,\n \"dcircle\",\n 0x24d3,\n \"dcircumflexbelow\",\n 0x1e13,\n \"dcroat\",\n 0x0111,\n \"ddabengali\",\n 0x09a1,\n \"ddadeva\",\n 0x0921,\n \"ddagujarati\",\n 0x0aa1,\n \"ddagurmukhi\",\n 0x0a21,\n \"ddalarabic\",\n 0x0688,\n \"ddalfinalarabic\",\n 0xfb89,\n \"dddhadeva\",\n 0x095c,\n \"ddhabengali\",\n 0x09a2,\n \"ddhadeva\",\n 0x0922,\n \"ddhagujarati\",\n 0x0aa2,\n \"ddhagurmukhi\",\n 0x0a22,\n \"ddotaccent\",\n 0x1e0b,\n \"ddotbelow\",\n 0x1e0d,\n \"decimalseparatorarabic\",\n 0x066b,\n \"decimalseparatorpersian\",\n 0x066b,\n \"decyrillic\",\n 0x0434,\n \"degree\",\n 0x00b0,\n \"dehihebrew\",\n 0x05ad,\n \"dehiragana\",\n 0x3067,\n \"deicoptic\",\n 0x03ef,\n \"dekatakana\",\n 0x30c7,\n \"deleteleft\",\n 0x232b,\n \"deleteright\",\n 0x2326,\n \"delta\",\n 0x03b4,\n \"deltaturned\",\n 0x018d,\n \"denominatorminusonenumeratorbengali\",\n 0x09f8,\n \"dezh\",\n 0x02a4,\n \"dhabengali\",\n 0x09a7,\n \"dhadeva\",\n 0x0927,\n \"dhagujarati\",\n 0x0aa7,\n \"dhagurmukhi\",\n 0x0a27,\n \"dhook\",\n 0x0257,\n \"dialytikatonos\",\n 0x0385,\n \"dialytikatonoscmb\",\n 0x0344,\n \"diamond\",\n 0x2666,\n \"diamondsuitwhite\",\n 0x2662,\n \"dieresis\",\n 0x00a8,\n \"dieresisacute\",\n 0xf6d7,\n \"dieresisbelowcmb\",\n 0x0324,\n \"dieresiscmb\",\n 0x0308,\n \"dieresisgrave\",\n 0xf6d8,\n \"dieresistonos\",\n 0x0385,\n \"dihiragana\",\n 0x3062,\n \"dikatakana\",\n 0x30c2,\n \"dittomark\",\n 0x3003,\n \"divide\",\n 0x00f7,\n \"divides\",\n 0x2223,\n \"divisionslash\",\n 0x2215,\n \"djecyrillic\",\n 0x0452,\n \"dkshade\",\n 0x2593,\n \"dlinebelow\",\n 0x1e0f,\n \"dlsquare\",\n 0x3397,\n \"dmacron\",\n 0x0111,\n \"dmonospace\",\n 0xff44,\n \"dnblock\",\n 0x2584,\n \"dochadathai\",\n 0x0e0e,\n \"dodekthai\",\n 0x0e14,\n \"dohiragana\",\n 0x3069,\n \"dokatakana\",\n 0x30c9,\n \"dollar\",\n 0x0024,\n \"dollarinferior\",\n 0xf6e3,\n \"dollarmonospace\",\n 0xff04,\n \"dollaroldstyle\",\n 0xf724,\n \"dollarsmall\",\n 0xfe69,\n \"dollarsuperior\",\n 0xf6e4,\n \"dong\",\n 0x20ab,\n \"dorusquare\",\n 0x3326,\n \"dotaccent\",\n 0x02d9,\n \"dotaccentcmb\",\n 0x0307,\n \"dotbelowcmb\",\n 0x0323,\n \"dotbelowcomb\",\n 0x0323,\n \"dotkatakana\",\n 0x30fb,\n \"dotlessi\",\n 0x0131,\n \"dotlessj\",\n 0xf6be,\n \"dotlessjstrokehook\",\n 0x0284,\n \"dotmath\",\n 0x22c5,\n \"dottedcircle\",\n 0x25cc,\n \"doubleyodpatah\",\n 0xfb1f,\n \"doubleyodpatahhebrew\",\n 0xfb1f,\n \"downtackbelowcmb\",\n 0x031e,\n \"downtackmod\",\n 0x02d5,\n \"dparen\",\n 0x249f,\n \"dsuperior\",\n 0xf6eb,\n \"dtail\",\n 0x0256,\n \"dtopbar\",\n 0x018c,\n \"duhiragana\",\n 0x3065,\n \"dukatakana\",\n 0x30c5,\n \"dz\",\n 0x01f3,\n \"dzaltone\",\n 0x02a3,\n \"dzcaron\",\n 0x01c6,\n \"dzcurl\",\n 0x02a5,\n \"dzeabkhasiancyrillic\",\n 0x04e1,\n \"dzecyrillic\",\n 0x0455,\n \"dzhecyrillic\",\n 0x045f,\n \"e\",\n 0x0065,\n \"eacute\",\n 0x00e9,\n \"earth\",\n 0x2641,\n \"ebengali\",\n 0x098f,\n \"ebopomofo\",\n 0x311c,\n \"ebreve\",\n 0x0115,\n \"ecandradeva\",\n 0x090d,\n \"ecandragujarati\",\n 0x0a8d,\n \"ecandravowelsigndeva\",\n 0x0945,\n \"ecandravowelsigngujarati\",\n 0x0ac5,\n \"ecaron\",\n 0x011b,\n \"ecedillabreve\",\n 0x1e1d,\n \"echarmenian\",\n 0x0565,\n \"echyiwnarmenian\",\n 0x0587,\n \"ecircle\",\n 0x24d4,\n \"ecircumflex\",\n 0x00ea,\n \"ecircumflexacute\",\n 0x1ebf,\n \"ecircumflexbelow\",\n 0x1e19,\n \"ecircumflexdotbelow\",\n 0x1ec7,\n \"ecircumflexgrave\",\n 0x1ec1,\n \"ecircumflexhookabove\",\n 0x1ec3,\n \"ecircumflextilde\",\n 0x1ec5,\n \"ecyrillic\",\n 0x0454,\n \"edblgrave\",\n 0x0205,\n \"edeva\",\n 0x090f,\n \"edieresis\",\n 0x00eb,\n \"edot\",\n 0x0117,\n \"edotaccent\",\n 0x0117,\n \"edotbelow\",\n 0x1eb9,\n \"eegurmukhi\",\n 0x0a0f,\n \"eematragurmukhi\",\n 0x0a47,\n \"efcyrillic\",\n 0x0444,\n \"egrave\",\n 0x00e8,\n \"egujarati\",\n 0x0a8f,\n \"eharmenian\",\n 0x0567,\n \"ehbopomofo\",\n 0x311d,\n \"ehiragana\",\n 0x3048,\n \"ehookabove\",\n 0x1ebb,\n \"eibopomofo\",\n 0x311f,\n \"eight\",\n 0x0038,\n \"eightarabic\",\n 0x0668,\n \"eightbengali\",\n 0x09ee,\n \"eightcircle\",\n 0x2467,\n \"eightcircleinversesansserif\",\n 0x2791,\n \"eightdeva\",\n 0x096e,\n \"eighteencircle\",\n 0x2471,\n \"eighteenparen\",\n 0x2485,\n \"eighteenperiod\",\n 0x2499,\n \"eightgujarati\",\n 0x0aee,\n \"eightgurmukhi\",\n 0x0a6e,\n \"eighthackarabic\",\n 0x0668,\n \"eighthangzhou\",\n 0x3028,\n \"eighthnotebeamed\",\n 0x266b,\n \"eightideographicparen\",\n 0x3227,\n \"eightinferior\",\n 0x2088,\n \"eightmonospace\",\n 0xff18,\n \"eightoldstyle\",\n 0xf738,\n \"eightparen\",\n 0x247b,\n \"eightperiod\",\n 0x248f,\n \"eightpersian\",\n 0x06f8,\n \"eightroman\",\n 0x2177,\n \"eightsuperior\",\n 0x2078,\n \"eightthai\",\n 0x0e58,\n \"einvertedbreve\",\n 0x0207,\n \"eiotifiedcyrillic\",\n 0x0465,\n \"ekatakana\",\n 0x30a8,\n \"ekatakanahalfwidth\",\n 0xff74,\n \"ekonkargurmukhi\",\n 0x0a74,\n \"ekorean\",\n 0x3154,\n \"elcyrillic\",\n 0x043b,\n \"element\",\n 0x2208,\n \"elevencircle\",\n 0x246a,\n \"elevenparen\",\n 0x247e,\n \"elevenperiod\",\n 0x2492,\n \"elevenroman\",\n 0x217a,\n \"ellipsis\",\n 0x2026,\n \"ellipsisvertical\",\n 0x22ee,\n \"emacron\",\n 0x0113,\n \"emacronacute\",\n 0x1e17,\n \"emacrongrave\",\n 0x1e15,\n \"emcyrillic\",\n 0x043c,\n \"emdash\",\n 0x2014,\n \"emdashvertical\",\n 0xfe31,\n \"emonospace\",\n 0xff45,\n \"emphasismarkarmenian\",\n 0x055b,\n \"emptyset\",\n 0x2205,\n \"enbopomofo\",\n 0x3123,\n \"encyrillic\",\n 0x043d,\n \"endash\",\n 0x2013,\n \"endashvertical\",\n 0xfe32,\n \"endescendercyrillic\",\n 0x04a3,\n \"eng\",\n 0x014b,\n \"engbopomofo\",\n 0x3125,\n \"enghecyrillic\",\n 0x04a5,\n \"enhookcyrillic\",\n 0x04c8,\n \"enspace\",\n 0x2002,\n \"eogonek\",\n 0x0119,\n \"eokorean\",\n 0x3153,\n \"eopen\",\n 0x025b,\n \"eopenclosed\",\n 0x029a,\n \"eopenreversed\",\n 0x025c,\n \"eopenreversedclosed\",\n 0x025e,\n \"eopenreversedhook\",\n 0x025d,\n \"eparen\",\n 0x24a0,\n \"epsilon\",\n 0x03b5,\n \"epsilontonos\",\n 0x03ad,\n \"equal\",\n 0x003d,\n \"equalmonospace\",\n 0xff1d,\n \"equalsmall\",\n 0xfe66,\n \"equalsuperior\",\n 0x207c,\n \"equivalence\",\n 0x2261,\n \"erbopomofo\",\n 0x3126,\n \"ercyrillic\",\n 0x0440,\n \"ereversed\",\n 0x0258,\n \"ereversedcyrillic\",\n 0x044d,\n \"escyrillic\",\n 0x0441,\n \"esdescendercyrillic\",\n 0x04ab,\n \"esh\",\n 0x0283,\n \"eshcurl\",\n 0x0286,\n \"eshortdeva\",\n 0x090e,\n \"eshortvowelsigndeva\",\n 0x0946,\n \"eshreversedloop\",\n 0x01aa,\n \"eshsquatreversed\",\n 0x0285,\n \"esmallhiragana\",\n 0x3047,\n \"esmallkatakana\",\n 0x30a7,\n \"esmallkatakanahalfwidth\",\n 0xff6a,\n \"estimated\",\n 0x212e,\n \"esuperior\",\n 0xf6ec,\n \"eta\",\n 0x03b7,\n \"etarmenian\",\n 0x0568,\n \"etatonos\",\n 0x03ae,\n \"eth\",\n 0x00f0,\n \"etilde\",\n 0x1ebd,\n \"etildebelow\",\n 0x1e1b,\n \"etnahtafoukhhebrew\",\n 0x0591,\n \"etnahtafoukhlefthebrew\",\n 0x0591,\n \"etnahtahebrew\",\n 0x0591,\n \"etnahtalefthebrew\",\n 0x0591,\n \"eturned\",\n 0x01dd,\n \"eukorean\",\n 0x3161,\n \"euro\",\n 0x20ac,\n \"evowelsignbengali\",\n 0x09c7,\n \"evowelsigndeva\",\n 0x0947,\n \"evowelsigngujarati\",\n 0x0ac7,\n \"exclam\",\n 0x0021,\n \"exclamarmenian\",\n 0x055c,\n \"exclamdbl\",\n 0x203c,\n \"exclamdown\",\n 0x00a1,\n \"exclamdownsmall\",\n 0xf7a1,\n \"exclammonospace\",\n 0xff01,\n \"exclamsmall\",\n 0xf721,\n \"existential\",\n 0x2203,\n \"ezh\",\n 0x0292,\n \"ezhcaron\",\n 0x01ef,\n \"ezhcurl\",\n 0x0293,\n \"ezhreversed\",\n 0x01b9,\n \"ezhtail\",\n 0x01ba,\n \"f\",\n 0x0066,\n \"fadeva\",\n 0x095e,\n \"fagurmukhi\",\n 0x0a5e,\n \"fahrenheit\",\n 0x2109,\n \"fathaarabic\",\n 0x064e,\n \"fathalowarabic\",\n 0x064e,\n \"fathatanarabic\",\n 0x064b,\n \"fbopomofo\",\n 0x3108,\n \"fcircle\",\n 0x24d5,\n \"fdotaccent\",\n 0x1e1f,\n \"feharabic\",\n 0x0641,\n \"feharmenian\",\n 0x0586,\n \"fehfinalarabic\",\n 0xfed2,\n \"fehinitialarabic\",\n 0xfed3,\n \"fehmedialarabic\",\n 0xfed4,\n \"feicoptic\",\n 0x03e5,\n \"female\",\n 0x2640,\n \"ff\",\n 0xfb00,\n \"f_f\",\n 0xfb00,\n \"ffi\",\n 0xfb03,\n \"ffl\",\n 0xfb04,\n \"fi\",\n 0xfb01,\n \"fifteencircle\",\n 0x246e,\n \"fifteenparen\",\n 0x2482,\n \"fifteenperiod\",\n 0x2496,\n \"figuredash\",\n 0x2012,\n \"filledbox\",\n 0x25a0,\n \"filledrect\",\n 0x25ac,\n \"finalkaf\",\n 0x05da,\n \"finalkafdagesh\",\n 0xfb3a,\n \"finalkafdageshhebrew\",\n 0xfb3a,\n \"finalkafhebrew\",\n 0x05da,\n \"finalmem\",\n 0x05dd,\n \"finalmemhebrew\",\n 0x05dd,\n \"finalnun\",\n 0x05df,\n \"finalnunhebrew\",\n 0x05df,\n \"finalpe\",\n 0x05e3,\n \"finalpehebrew\",\n 0x05e3,\n \"finaltsadi\",\n 0x05e5,\n \"finaltsadihebrew\",\n 0x05e5,\n \"firsttonechinese\",\n 0x02c9,\n \"fisheye\",\n 0x25c9,\n \"fitacyrillic\",\n 0x0473,\n \"five\",\n 0x0035,\n \"fivearabic\",\n 0x0665,\n \"fivebengali\",\n 0x09eb,\n \"fivecircle\",\n 0x2464,\n \"fivecircleinversesansserif\",\n 0x278e,\n \"fivedeva\",\n 0x096b,\n \"fiveeighths\",\n 0x215d,\n \"fivegujarati\",\n 0x0aeb,\n \"fivegurmukhi\",\n 0x0a6b,\n \"fivehackarabic\",\n 0x0665,\n \"fivehangzhou\",\n 0x3025,\n \"fiveideographicparen\",\n 0x3224,\n \"fiveinferior\",\n 0x2085,\n \"fivemonospace\",\n 0xff15,\n \"fiveoldstyle\",\n 0xf735,\n \"fiveparen\",\n 0x2478,\n \"fiveperiod\",\n 0x248c,\n \"fivepersian\",\n 0x06f5,\n \"fiveroman\",\n 0x2174,\n \"fivesuperior\",\n 0x2075,\n \"fivethai\",\n 0x0e55,\n \"fl\",\n 0xfb02,\n \"florin\",\n 0x0192,\n \"fmonospace\",\n 0xff46,\n \"fmsquare\",\n 0x3399,\n \"fofanthai\",\n 0x0e1f,\n \"fofathai\",\n 0x0e1d,\n \"fongmanthai\",\n 0x0e4f,\n \"forall\",\n 0x2200,\n \"four\",\n 0x0034,\n \"fourarabic\",\n 0x0664,\n \"fourbengali\",\n 0x09ea,\n \"fourcircle\",\n 0x2463,\n \"fourcircleinversesansserif\",\n 0x278d,\n \"fourdeva\",\n 0x096a,\n \"fourgujarati\",\n 0x0aea,\n \"fourgurmukhi\",\n 0x0a6a,\n \"fourhackarabic\",\n 0x0664,\n \"fourhangzhou\",\n 0x3024,\n \"fourideographicparen\",\n 0x3223,\n \"fourinferior\",\n 0x2084,\n \"fourmonospace\",\n 0xff14,\n \"fournumeratorbengali\",\n 0x09f7,\n \"fouroldstyle\",\n 0xf734,\n \"fourparen\",\n 0x2477,\n \"fourperiod\",\n 0x248b,\n \"fourpersian\",\n 0x06f4,\n \"fourroman\",\n 0x2173,\n \"foursuperior\",\n 0x2074,\n \"fourteencircle\",\n 0x246d,\n \"fourteenparen\",\n 0x2481,\n \"fourteenperiod\",\n 0x2495,\n \"fourthai\",\n 0x0e54,\n \"fourthtonechinese\",\n 0x02cb,\n \"fparen\",\n 0x24a1,\n \"fraction\",\n 0x2044,\n \"franc\",\n 0x20a3,\n \"g\",\n 0x0067,\n \"gabengali\",\n 0x0997,\n \"gacute\",\n 0x01f5,\n \"gadeva\",\n 0x0917,\n \"gafarabic\",\n 0x06af,\n \"gaffinalarabic\",\n 0xfb93,\n \"gafinitialarabic\",\n 0xfb94,\n \"gafmedialarabic\",\n 0xfb95,\n \"gagujarati\",\n 0x0a97,\n \"gagurmukhi\",\n 0x0a17,\n \"gahiragana\",\n 0x304c,\n \"gakatakana\",\n 0x30ac,\n \"gamma\",\n 0x03b3,\n \"gammalatinsmall\",\n 0x0263,\n \"gammasuperior\",\n 0x02e0,\n \"gangiacoptic\",\n 0x03eb,\n \"gbopomofo\",\n 0x310d,\n \"gbreve\",\n 0x011f,\n \"gcaron\",\n 0x01e7,\n \"gcedilla\",\n 0x0123,\n \"gcircle\",\n 0x24d6,\n \"gcircumflex\",\n 0x011d,\n \"gcommaaccent\",\n 0x0123,\n \"gdot\",\n 0x0121,\n \"gdotaccent\",\n 0x0121,\n \"gecyrillic\",\n 0x0433,\n \"gehiragana\",\n 0x3052,\n \"gekatakana\",\n 0x30b2,\n \"geometricallyequal\",\n 0x2251,\n \"gereshaccenthebrew\",\n 0x059c,\n \"gereshhebrew\",\n 0x05f3,\n \"gereshmuqdamhebrew\",\n 0x059d,\n \"germandbls\",\n 0x00df,\n \"gershayimaccenthebrew\",\n 0x059e,\n \"gershayimhebrew\",\n 0x05f4,\n \"getamark\",\n 0x3013,\n \"ghabengali\",\n 0x0998,\n \"ghadarmenian\",\n 0x0572,\n \"ghadeva\",\n 0x0918,\n \"ghagujarati\",\n 0x0a98,\n \"ghagurmukhi\",\n 0x0a18,\n \"ghainarabic\",\n 0x063a,\n \"ghainfinalarabic\",\n 0xfece,\n \"ghaininitialarabic\",\n 0xfecf,\n \"ghainmedialarabic\",\n 0xfed0,\n \"ghemiddlehookcyrillic\",\n 0x0495,\n \"ghestrokecyrillic\",\n 0x0493,\n \"gheupturncyrillic\",\n 0x0491,\n \"ghhadeva\",\n 0x095a,\n \"ghhagurmukhi\",\n 0x0a5a,\n \"ghook\",\n 0x0260,\n \"ghzsquare\",\n 0x3393,\n \"gihiragana\",\n 0x304e,\n \"gikatakana\",\n 0x30ae,\n \"gimarmenian\",\n 0x0563,\n \"gimel\",\n 0x05d2,\n \"gimeldagesh\",\n 0xfb32,\n \"gimeldageshhebrew\",\n 0xfb32,\n \"gimelhebrew\",\n 0x05d2,\n \"gjecyrillic\",\n 0x0453,\n \"glottalinvertedstroke\",\n 0x01be,\n \"glottalstop\",\n 0x0294,\n \"glottalstopinverted\",\n 0x0296,\n \"glottalstopmod\",\n 0x02c0,\n \"glottalstopreversed\",\n 0x0295,\n \"glottalstopreversedmod\",\n 0x02c1,\n \"glottalstopreversedsuperior\",\n 0x02e4,\n \"glottalstopstroke\",\n 0x02a1,\n \"glottalstopstrokereversed\",\n 0x02a2,\n \"gmacron\",\n 0x1e21,\n \"gmonospace\",\n 0xff47,\n \"gohiragana\",\n 0x3054,\n \"gokatakana\",\n 0x30b4,\n \"gparen\",\n 0x24a2,\n \"gpasquare\",\n 0x33ac,\n \"gradient\",\n 0x2207,\n \"grave\",\n 0x0060,\n \"gravebelowcmb\",\n 0x0316,\n \"gravecmb\",\n 0x0300,\n \"gravecomb\",\n 0x0300,\n \"gravedeva\",\n 0x0953,\n \"gravelowmod\",\n 0x02ce,\n \"gravemonospace\",\n 0xff40,\n \"gravetonecmb\",\n 0x0340,\n \"greater\",\n 0x003e,\n \"greaterequal\",\n 0x2265,\n \"greaterequalorless\",\n 0x22db,\n \"greatermonospace\",\n 0xff1e,\n \"greaterorequivalent\",\n 0x2273,\n \"greaterorless\",\n 0x2277,\n \"greateroverequal\",\n 0x2267,\n \"greatersmall\",\n 0xfe65,\n \"gscript\",\n 0x0261,\n \"gstroke\",\n 0x01e5,\n \"guhiragana\",\n 0x3050,\n \"guillemotleft\",\n 0x00ab,\n \"guillemotright\",\n 0x00bb,\n \"guilsinglleft\",\n 0x2039,\n \"guilsinglright\",\n 0x203a,\n \"gukatakana\",\n 0x30b0,\n \"guramusquare\",\n 0x3318,\n \"gysquare\",\n 0x33c9,\n \"h\",\n 0x0068,\n \"haabkhasiancyrillic\",\n 0x04a9,\n \"haaltonearabic\",\n 0x06c1,\n \"habengali\",\n 0x09b9,\n \"hadescendercyrillic\",\n 0x04b3,\n \"hadeva\",\n 0x0939,\n \"hagujarati\",\n 0x0ab9,\n \"hagurmukhi\",\n 0x0a39,\n \"haharabic\",\n 0x062d,\n \"hahfinalarabic\",\n 0xfea2,\n \"hahinitialarabic\",\n 0xfea3,\n \"hahiragana\",\n 0x306f,\n \"hahmedialarabic\",\n 0xfea4,\n \"haitusquare\",\n 0x332a,\n \"hakatakana\",\n 0x30cf,\n \"hakatakanahalfwidth\",\n 0xff8a,\n \"halantgurmukhi\",\n 0x0a4d,\n \"hamzaarabic\",\n 0x0621,\n \"hamzalowarabic\",\n 0x0621,\n \"hangulfiller\",\n 0x3164,\n \"hardsigncyrillic\",\n 0x044a,\n \"harpoonleftbarbup\",\n 0x21bc,\n \"harpoonrightbarbup\",\n 0x21c0,\n \"hasquare\",\n 0x33ca,\n \"hatafpatah\",\n 0x05b2,\n \"hatafpatah16\",\n 0x05b2,\n \"hatafpatah23\",\n 0x05b2,\n \"hatafpatah2f\",\n 0x05b2,\n \"hatafpatahhebrew\",\n 0x05b2,\n \"hatafpatahnarrowhebrew\",\n 0x05b2,\n \"hatafpatahquarterhebrew\",\n 0x05b2,\n \"hatafpatahwidehebrew\",\n 0x05b2,\n \"hatafqamats\",\n 0x05b3,\n \"hatafqamats1b\",\n 0x05b3,\n \"hatafqamats28\",\n 0x05b3,\n \"hatafqamats34\",\n 0x05b3,\n \"hatafqamatshebrew\",\n 0x05b3,\n \"hatafqamatsnarrowhebrew\",\n 0x05b3,\n \"hatafqamatsquarterhebrew\",\n 0x05b3,\n \"hatafqamatswidehebrew\",\n 0x05b3,\n \"hatafsegol\",\n 0x05b1,\n \"hatafsegol17\",\n 0x05b1,\n \"hatafsegol24\",\n 0x05b1,\n \"hatafsegol30\",\n 0x05b1,\n \"hatafsegolhebrew\",\n 0x05b1,\n \"hatafsegolnarrowhebrew\",\n 0x05b1,\n \"hatafsegolquarterhebrew\",\n 0x05b1,\n \"hatafsegolwidehebrew\",\n 0x05b1,\n \"hbar\",\n 0x0127,\n \"hbopomofo\",\n 0x310f,\n \"hbrevebelow\",\n 0x1e2b,\n \"hcedilla\",\n 0x1e29,\n \"hcircle\",\n 0x24d7,\n \"hcircumflex\",\n 0x0125,\n \"hdieresis\",\n 0x1e27,\n \"hdotaccent\",\n 0x1e23,\n \"hdotbelow\",\n 0x1e25,\n \"he\",\n 0x05d4,\n \"heart\",\n 0x2665,\n \"heartsuitblack\",\n 0x2665,\n \"heartsuitwhite\",\n 0x2661,\n \"hedagesh\",\n 0xfb34,\n \"hedageshhebrew\",\n 0xfb34,\n \"hehaltonearabic\",\n 0x06c1,\n \"heharabic\",\n 0x0647,\n \"hehebrew\",\n 0x05d4,\n \"hehfinalaltonearabic\",\n 0xfba7,\n \"hehfinalalttwoarabic\",\n 0xfeea,\n \"hehfinalarabic\",\n 0xfeea,\n \"hehhamzaabovefinalarabic\",\n 0xfba5,\n \"hehhamzaaboveisolatedarabic\",\n 0xfba4,\n \"hehinitialaltonearabic\",\n 0xfba8,\n \"hehinitialarabic\",\n 0xfeeb,\n \"hehiragana\",\n 0x3078,\n \"hehmedialaltonearabic\",\n 0xfba9,\n \"hehmedialarabic\",\n 0xfeec,\n \"heiseierasquare\",\n 0x337b,\n \"hekatakana\",\n 0x30d8,\n \"hekatakanahalfwidth\",\n 0xff8d,\n \"hekutaarusquare\",\n 0x3336,\n \"henghook\",\n 0x0267,\n \"herutusquare\",\n 0x3339,\n \"het\",\n 0x05d7,\n \"hethebrew\",\n 0x05d7,\n \"hhook\",\n 0x0266,\n \"hhooksuperior\",\n 0x02b1,\n \"hieuhacirclekorean\",\n 0x327b,\n \"hieuhaparenkorean\",\n 0x321b,\n \"hieuhcirclekorean\",\n 0x326d,\n \"hieuhkorean\",\n 0x314e,\n \"hieuhparenkorean\",\n 0x320d,\n \"hihiragana\",\n 0x3072,\n \"hikatakana\",\n 0x30d2,\n \"hikatakanahalfwidth\",\n 0xff8b,\n \"hiriq\",\n 0x05b4,\n \"hiriq14\",\n 0x05b4,\n \"hiriq21\",\n 0x05b4,\n \"hiriq2d\",\n 0x05b4,\n \"hiriqhebrew\",\n 0x05b4,\n \"hiriqnarrowhebrew\",\n 0x05b4,\n \"hiriqquarterhebrew\",\n 0x05b4,\n \"hiriqwidehebrew\",\n 0x05b4,\n \"hlinebelow\",\n 0x1e96,\n \"hmonospace\",\n 0xff48,\n \"hoarmenian\",\n 0x0570,\n \"hohipthai\",\n 0x0e2b,\n \"hohiragana\",\n 0x307b,\n \"hokatakana\",\n 0x30db,\n \"hokatakanahalfwidth\",\n 0xff8e,\n \"holam\",\n 0x05b9,\n \"holam19\",\n 0x05b9,\n \"holam26\",\n 0x05b9,\n \"holam32\",\n 0x05b9,\n \"holamhebrew\",\n 0x05b9,\n \"holamnarrowhebrew\",\n 0x05b9,\n \"holamquarterhebrew\",\n 0x05b9,\n \"holamwidehebrew\",\n 0x05b9,\n \"honokhukthai\",\n 0x0e2e,\n \"hookabovecomb\",\n 0x0309,\n \"hookcmb\",\n 0x0309,\n \"hookpalatalizedbelowcmb\",\n 0x0321,\n \"hookretroflexbelowcmb\",\n 0x0322,\n \"hoonsquare\",\n 0x3342,\n \"horicoptic\",\n 0x03e9,\n \"horizontalbar\",\n 0x2015,\n \"horncmb\",\n 0x031b,\n \"hotsprings\",\n 0x2668,\n \"house\",\n 0x2302,\n \"hparen\",\n 0x24a3,\n \"hsuperior\",\n 0x02b0,\n \"hturned\",\n 0x0265,\n \"huhiragana\",\n 0x3075,\n \"huiitosquare\",\n 0x3333,\n \"hukatakana\",\n 0x30d5,\n \"hukatakanahalfwidth\",\n 0xff8c,\n \"hungarumlaut\",\n 0x02dd,\n \"hungarumlautcmb\",\n 0x030b,\n \"hv\",\n 0x0195,\n \"hyphen\",\n 0x002d,\n \"hypheninferior\",\n 0xf6e5,\n \"hyphenmonospace\",\n 0xff0d,\n \"hyphensmall\",\n 0xfe63,\n \"hyphensuperior\",\n 0xf6e6,\n \"hyphentwo\",\n 0x2010,\n \"i\",\n 0x0069,\n \"iacute\",\n 0x00ed,\n \"iacyrillic\",\n 0x044f,\n \"ibengali\",\n 0x0987,\n \"ibopomofo\",\n 0x3127,\n \"ibreve\",\n 0x012d,\n \"icaron\",\n 0x01d0,\n \"icircle\",\n 0x24d8,\n \"icircumflex\",\n 0x00ee,\n \"icyrillic\",\n 0x0456,\n \"idblgrave\",\n 0x0209,\n \"ideographearthcircle\",\n 0x328f,\n \"ideographfirecircle\",\n 0x328b,\n \"ideographicallianceparen\",\n 0x323f,\n \"ideographiccallparen\",\n 0x323a,\n \"ideographiccentrecircle\",\n 0x32a5,\n \"ideographicclose\",\n 0x3006,\n \"ideographiccomma\",\n 0x3001,\n \"ideographiccommaleft\",\n 0xff64,\n \"ideographiccongratulationparen\",\n 0x3237,\n \"ideographiccorrectcircle\",\n 0x32a3,\n \"ideographicearthparen\",\n 0x322f,\n \"ideographicenterpriseparen\",\n 0x323d,\n \"ideographicexcellentcircle\",\n 0x329d,\n \"ideographicfestivalparen\",\n 0x3240,\n \"ideographicfinancialcircle\",\n 0x3296,\n \"ideographicfinancialparen\",\n 0x3236,\n \"ideographicfireparen\",\n 0x322b,\n \"ideographichaveparen\",\n 0x3232,\n \"ideographichighcircle\",\n 0x32a4,\n \"ideographiciterationmark\",\n 0x3005,\n \"ideographiclaborcircle\",\n 0x3298,\n \"ideographiclaborparen\",\n 0x3238,\n \"ideographicleftcircle\",\n 0x32a7,\n \"ideographiclowcircle\",\n 0x32a6,\n \"ideographicmedicinecircle\",\n 0x32a9,\n \"ideographicmetalparen\",\n 0x322e,\n \"ideographicmoonparen\",\n 0x322a,\n \"ideographicnameparen\",\n 0x3234,\n \"ideographicperiod\",\n 0x3002,\n \"ideographicprintcircle\",\n 0x329e,\n \"ideographicreachparen\",\n 0x3243,\n \"ideographicrepresentparen\",\n 0x3239,\n \"ideographicresourceparen\",\n 0x323e,\n \"ideographicrightcircle\",\n 0x32a8,\n \"ideographicsecretcircle\",\n 0x3299,\n \"ideographicselfparen\",\n 0x3242,\n \"ideographicsocietyparen\",\n 0x3233,\n \"ideographicspace\",\n 0x3000,\n \"ideographicspecialparen\",\n 0x3235,\n \"ideographicstockparen\",\n 0x3231,\n \"ideographicstudyparen\",\n 0x323b,\n \"ideographicsunparen\",\n 0x3230,\n \"ideographicsuperviseparen\",\n 0x323c,\n \"ideographicwaterparen\",\n 0x322c,\n \"ideographicwoodparen\",\n 0x322d,\n \"ideographiczero\",\n 0x3007,\n \"ideographmetalcircle\",\n 0x328e,\n \"ideographmooncircle\",\n 0x328a,\n \"ideographnamecircle\",\n 0x3294,\n \"ideographsuncircle\",\n 0x3290,\n \"ideographwatercircle\",\n 0x328c,\n \"ideographwoodcircle\",\n 0x328d,\n \"ideva\",\n 0x0907,\n \"idieresis\",\n 0x00ef,\n \"idieresisacute\",\n 0x1e2f,\n \"idieresiscyrillic\",\n 0x04e5,\n \"idotbelow\",\n 0x1ecb,\n \"iebrevecyrillic\",\n 0x04d7,\n \"iecyrillic\",\n 0x0435,\n \"ieungacirclekorean\",\n 0x3275,\n \"ieungaparenkorean\",\n 0x3215,\n \"ieungcirclekorean\",\n 0x3267,\n \"ieungkorean\",\n 0x3147,\n \"ieungparenkorean\",\n 0x3207,\n \"igrave\",\n 0x00ec,\n \"igujarati\",\n 0x0a87,\n \"igurmukhi\",\n 0x0a07,\n \"ihiragana\",\n 0x3044,\n \"ihookabove\",\n 0x1ec9,\n \"iibengali\",\n 0x0988,\n \"iicyrillic\",\n 0x0438,\n \"iideva\",\n 0x0908,\n \"iigujarati\",\n 0x0a88,\n \"iigurmukhi\",\n 0x0a08,\n \"iimatragurmukhi\",\n 0x0a40,\n \"iinvertedbreve\",\n 0x020b,\n \"iishortcyrillic\",\n 0x0439,\n \"iivowelsignbengali\",\n 0x09c0,\n \"iivowelsigndeva\",\n 0x0940,\n \"iivowelsigngujarati\",\n 0x0ac0,\n \"ij\",\n 0x0133,\n \"ikatakana\",\n 0x30a4,\n \"ikatakanahalfwidth\",\n 0xff72,\n \"ikorean\",\n 0x3163,\n \"ilde\",\n 0x02dc,\n \"iluyhebrew\",\n 0x05ac,\n \"imacron\",\n 0x012b,\n \"imacroncyrillic\",\n 0x04e3,\n \"imageorapproximatelyequal\",\n 0x2253,\n \"imatragurmukhi\",\n 0x0a3f,\n \"imonospace\",\n 0xff49,\n \"increment\",\n 0x2206,\n \"infinity\",\n 0x221e,\n \"iniarmenian\",\n 0x056b,\n \"integral\",\n 0x222b,\n \"integralbottom\",\n 0x2321,\n \"integralbt\",\n 0x2321,\n \"integralex\",\n 0xf8f5,\n \"integraltop\",\n 0x2320,\n \"integraltp\",\n 0x2320,\n \"intersection\",\n 0x2229,\n \"intisquare\",\n 0x3305,\n \"invbullet\",\n 0x25d8,\n \"invcircle\",\n 0x25d9,\n \"invsmileface\",\n 0x263b,\n \"iocyrillic\",\n 0x0451,\n \"iogonek\",\n 0x012f,\n \"iota\",\n 0x03b9,\n \"iotadieresis\",\n 0x03ca,\n \"iotadieresistonos\",\n 0x0390,\n \"iotalatin\",\n 0x0269,\n \"iotatonos\",\n 0x03af,\n \"iparen\",\n 0x24a4,\n \"irigurmukhi\",\n 0x0a72,\n \"ismallhiragana\",\n 0x3043,\n \"ismallkatakana\",\n 0x30a3,\n \"ismallkatakanahalfwidth\",\n 0xff68,\n \"issharbengali\",\n 0x09fa,\n \"istroke\",\n 0x0268,\n \"isuperior\",\n 0xf6ed,\n \"iterationhiragana\",\n 0x309d,\n \"iterationkatakana\",\n 0x30fd,\n \"itilde\",\n 0x0129,\n \"itildebelow\",\n 0x1e2d,\n \"iubopomofo\",\n 0x3129,\n \"iucyrillic\",\n 0x044e,\n \"ivowelsignbengali\",\n 0x09bf,\n \"ivowelsigndeva\",\n 0x093f,\n \"ivowelsigngujarati\",\n 0x0abf,\n \"izhitsacyrillic\",\n 0x0475,\n \"izhitsadblgravecyrillic\",\n 0x0477,\n \"j\",\n 0x006a,\n \"jaarmenian\",\n 0x0571,\n \"jabengali\",\n 0x099c,\n \"jadeva\",\n 0x091c,\n \"jagujarati\",\n 0x0a9c,\n \"jagurmukhi\",\n 0x0a1c,\n \"jbopomofo\",\n 0x3110,\n \"jcaron\",\n 0x01f0,\n \"jcircle\",\n 0x24d9,\n \"jcircumflex\",\n 0x0135,\n \"jcrossedtail\",\n 0x029d,\n \"jdotlessstroke\",\n 0x025f,\n \"jecyrillic\",\n 0x0458,\n \"jeemarabic\",\n 0x062c,\n \"jeemfinalarabic\",\n 0xfe9e,\n \"jeeminitialarabic\",\n 0xfe9f,\n \"jeemmedialarabic\",\n 0xfea0,\n \"jeharabic\",\n 0x0698,\n \"jehfinalarabic\",\n 0xfb8b,\n \"jhabengali\",\n 0x099d,\n \"jhadeva\",\n 0x091d,\n \"jhagujarati\",\n 0x0a9d,\n \"jhagurmukhi\",\n 0x0a1d,\n \"jheharmenian\",\n 0x057b,\n \"jis\",\n 0x3004,\n \"jmonospace\",\n 0xff4a,\n \"jparen\",\n 0x24a5,\n \"jsuperior\",\n 0x02b2,\n \"k\",\n 0x006b,\n \"kabashkircyrillic\",\n 0x04a1,\n \"kabengali\",\n 0x0995,\n \"kacute\",\n 0x1e31,\n \"kacyrillic\",\n 0x043a,\n \"kadescendercyrillic\",\n 0x049b,\n \"kadeva\",\n 0x0915,\n \"kaf\",\n 0x05db,\n \"kafarabic\",\n 0x0643,\n \"kafdagesh\",\n 0xfb3b,\n \"kafdageshhebrew\",\n 0xfb3b,\n \"kaffinalarabic\",\n 0xfeda,\n \"kafhebrew\",\n 0x05db,\n \"kafinitialarabic\",\n 0xfedb,\n \"kafmedialarabic\",\n 0xfedc,\n \"kafrafehebrew\",\n 0xfb4d,\n \"kagujarati\",\n 0x0a95,\n \"kagurmukhi\",\n 0x0a15,\n \"kahiragana\",\n 0x304b,\n \"kahookcyrillic\",\n 0x04c4,\n \"kakatakana\",\n 0x30ab,\n \"kakatakanahalfwidth\",\n 0xff76,\n \"kappa\",\n 0x03ba,\n \"kappasymbolgreek\",\n 0x03f0,\n \"kapyeounmieumkorean\",\n 0x3171,\n \"kapyeounphieuphkorean\",\n 0x3184,\n \"kapyeounpieupkorean\",\n 0x3178,\n \"kapyeounssangpieupkorean\",\n 0x3179,\n \"karoriisquare\",\n 0x330d,\n \"kashidaautoarabic\",\n 0x0640,\n \"kashidaautonosidebearingarabic\",\n 0x0640,\n \"kasmallkatakana\",\n 0x30f5,\n \"kasquare\",\n 0x3384,\n \"kasraarabic\",\n 0x0650,\n \"kasratanarabic\",\n 0x064d,\n \"kastrokecyrillic\",\n 0x049f,\n \"katahiraprolongmarkhalfwidth\",\n 0xff70,\n \"kaverticalstrokecyrillic\",\n 0x049d,\n \"kbopomofo\",\n 0x310e,\n \"kcalsquare\",\n 0x3389,\n \"kcaron\",\n 0x01e9,\n \"kcedilla\",\n 0x0137,\n \"kcircle\",\n 0x24da,\n \"kcommaaccent\",\n 0x0137,\n \"kdotbelow\",\n 0x1e33,\n \"keharmenian\",\n 0x0584,\n \"kehiragana\",\n 0x3051,\n \"kekatakana\",\n 0x30b1,\n \"kekatakanahalfwidth\",\n 0xff79,\n \"kenarmenian\",\n 0x056f,\n \"kesmallkatakana\",\n 0x30f6,\n \"kgreenlandic\",\n 0x0138,\n \"khabengali\",\n 0x0996,\n \"khacyrillic\",\n 0x0445,\n \"khadeva\",\n 0x0916,\n \"khagujarati\",\n 0x0a96,\n \"khagurmukhi\",\n 0x0a16,\n \"khaharabic\",\n 0x062e,\n \"khahfinalarabic\",\n 0xfea6,\n \"khahinitialarabic\",\n 0xfea7,\n \"khahmedialarabic\",\n 0xfea8,\n \"kheicoptic\",\n 0x03e7,\n \"khhadeva\",\n 0x0959,\n \"khhagurmukhi\",\n 0x0a59,\n \"khieukhacirclekorean\",\n 0x3278,\n \"khieukhaparenkorean\",\n 0x3218,\n \"khieukhcirclekorean\",\n 0x326a,\n \"khieukhkorean\",\n 0x314b,\n \"khieukhparenkorean\",\n 0x320a,\n \"khokhaithai\",\n 0x0e02,\n \"khokhonthai\",\n 0x0e05,\n \"khokhuatthai\",\n 0x0e03,\n \"khokhwaithai\",\n 0x0e04,\n \"khomutthai\",\n 0x0e5b,\n \"khook\",\n 0x0199,\n \"khorakhangthai\",\n 0x0e06,\n \"khzsquare\",\n 0x3391,\n \"kihiragana\",\n 0x304d,\n \"kikatakana\",\n 0x30ad,\n \"kikatakanahalfwidth\",\n 0xff77,\n \"kiroguramusquare\",\n 0x3315,\n \"kiromeetorusquare\",\n 0x3316,\n \"kirosquare\",\n 0x3314,\n \"kiyeokacirclekorean\",\n 0x326e,\n \"kiyeokaparenkorean\",\n 0x320e,\n \"kiyeokcirclekorean\",\n 0x3260,\n \"kiyeokkorean\",\n 0x3131,\n \"kiyeokparenkorean\",\n 0x3200,\n \"kiyeoksioskorean\",\n 0x3133,\n \"kjecyrillic\",\n 0x045c,\n \"klinebelow\",\n 0x1e35,\n \"klsquare\",\n 0x3398,\n \"kmcubedsquare\",\n 0x33a6,\n \"kmonospace\",\n 0xff4b,\n \"kmsquaredsquare\",\n 0x33a2,\n \"kohiragana\",\n 0x3053,\n \"kohmsquare\",\n 0x33c0,\n \"kokaithai\",\n 0x0e01,\n \"kokatakana\",\n 0x30b3,\n \"kokatakanahalfwidth\",\n 0xff7a,\n \"kooposquare\",\n 0x331e,\n \"koppacyrillic\",\n 0x0481,\n \"koreanstandardsymbol\",\n 0x327f,\n \"koroniscmb\",\n 0x0343,\n \"kparen\",\n 0x24a6,\n \"kpasquare\",\n 0x33aa,\n \"ksicyrillic\",\n 0x046f,\n \"ktsquare\",\n 0x33cf,\n \"kturned\",\n 0x029e,\n \"kuhiragana\",\n 0x304f,\n \"kukatakana\",\n 0x30af,\n \"kukatakanahalfwidth\",\n 0xff78,\n \"kvsquare\",\n 0x33b8,\n \"kwsquare\",\n 0x33be,\n \"l\",\n 0x006c,\n \"labengali\",\n 0x09b2,\n \"lacute\",\n 0x013a,\n \"ladeva\",\n 0x0932,\n \"lagujarati\",\n 0x0ab2,\n \"lagurmukhi\",\n 0x0a32,\n \"lakkhangyaothai\",\n 0x0e45,\n \"lamaleffinalarabic\",\n 0xfefc,\n \"lamalefhamzaabovefinalarabic\",\n 0xfef8,\n \"lamalefhamzaaboveisolatedarabic\",\n 0xfef7,\n \"lamalefhamzabelowfinalarabic\",\n 0xfefa,\n \"lamalefhamzabelowisolatedarabic\",\n 0xfef9,\n \"lamalefisolatedarabic\",\n 0xfefb,\n \"lamalefmaddaabovefinalarabic\",\n 0xfef6,\n \"lamalefmaddaaboveisolatedarabic\",\n 0xfef5,\n \"lamarabic\",\n 0x0644,\n \"lambda\",\n 0x03bb,\n \"lambdastroke\",\n 0x019b,\n \"lamed\",\n 0x05dc,\n \"lameddagesh\",\n 0xfb3c,\n \"lameddageshhebrew\",\n 0xfb3c,\n \"lamedhebrew\",\n 0x05dc,\n \"lamfinalarabic\",\n 0xfede,\n \"lamhahinitialarabic\",\n 0xfcca,\n \"laminitialarabic\",\n 0xfedf,\n \"lamjeeminitialarabic\",\n 0xfcc9,\n \"lamkhahinitialarabic\",\n 0xfccb,\n \"lamlamhehisolatedarabic\",\n 0xfdf2,\n \"lammedialarabic\",\n 0xfee0,\n \"lammeemhahinitialarabic\",\n 0xfd88,\n \"lammeeminitialarabic\",\n 0xfccc,\n \"largecircle\",\n 0x25ef,\n \"lbar\",\n 0x019a,\n \"lbelt\",\n 0x026c,\n \"lbopomofo\",\n 0x310c,\n \"lcaron\",\n 0x013e,\n \"lcedilla\",\n 0x013c,\n \"lcircle\",\n 0x24db,\n \"lcircumflexbelow\",\n 0x1e3d,\n \"lcommaaccent\",\n 0x013c,\n \"ldot\",\n 0x0140,\n \"ldotaccent\",\n 0x0140,\n \"ldotbelow\",\n 0x1e37,\n \"ldotbelowmacron\",\n 0x1e39,\n \"leftangleabovecmb\",\n 0x031a,\n \"lefttackbelowcmb\",\n 0x0318,\n \"less\",\n 0x003c,\n \"lessequal\",\n 0x2264,\n \"lessequalorgreater\",\n 0x22da,\n \"lessmonospace\",\n 0xff1c,\n \"lessorequivalent\",\n 0x2272,\n \"lessorgreater\",\n 0x2276,\n \"lessoverequal\",\n 0x2266,\n \"lesssmall\",\n 0xfe64,\n \"lezh\",\n 0x026e,\n \"lfblock\",\n 0x258c,\n \"lhookretroflex\",\n 0x026d,\n \"lira\",\n 0x20a4,\n \"liwnarmenian\",\n 0x056c,\n \"lj\",\n 0x01c9,\n \"ljecyrillic\",\n 0x0459,\n \"ll\",\n 0xf6c0,\n \"lladeva\",\n 0x0933,\n \"llagujarati\",\n 0x0ab3,\n \"llinebelow\",\n 0x1e3b,\n \"llladeva\",\n 0x0934,\n \"llvocalicbengali\",\n 0x09e1,\n \"llvocalicdeva\",\n 0x0961,\n \"llvocalicvowelsignbengali\",\n 0x09e3,\n \"llvocalicvowelsigndeva\",\n 0x0963,\n \"lmiddletilde\",\n 0x026b,\n \"lmonospace\",\n 0xff4c,\n \"lmsquare\",\n 0x33d0,\n \"lochulathai\",\n 0x0e2c,\n \"logicaland\",\n 0x2227,\n \"logicalnot\",\n 0x00ac,\n \"logicalnotreversed\",\n 0x2310,\n \"logicalor\",\n 0x2228,\n \"lolingthai\",\n 0x0e25,\n \"longs\",\n 0x017f,\n \"lowlinecenterline\",\n 0xfe4e,\n \"lowlinecmb\",\n 0x0332,\n \"lowlinedashed\",\n 0xfe4d,\n \"lozenge\",\n 0x25ca,\n \"lparen\",\n 0x24a7,\n \"lslash\",\n 0x0142,\n \"lsquare\",\n 0x2113,\n \"lsuperior\",\n 0xf6ee,\n \"ltshade\",\n 0x2591,\n \"luthai\",\n 0x0e26,\n \"lvocalicbengali\",\n 0x098c,\n \"lvocalicdeva\",\n 0x090c,\n \"lvocalicvowelsignbengali\",\n 0x09e2,\n \"lvocalicvowelsigndeva\",\n 0x0962,\n \"lxsquare\",\n 0x33d3,\n \"m\",\n 0x006d,\n \"mabengali\",\n 0x09ae,\n \"macron\",\n 0x00af,\n \"macronbelowcmb\",\n 0x0331,\n \"macroncmb\",\n 0x0304,\n \"macronlowmod\",\n 0x02cd,\n \"macronmonospace\",\n 0xffe3,\n \"macute\",\n 0x1e3f,\n \"madeva\",\n 0x092e,\n \"magujarati\",\n 0x0aae,\n \"magurmukhi\",\n 0x0a2e,\n \"mahapakhhebrew\",\n 0x05a4,\n \"mahapakhlefthebrew\",\n 0x05a4,\n \"mahiragana\",\n 0x307e,\n \"maichattawalowleftthai\",\n 0xf895,\n \"maichattawalowrightthai\",\n 0xf894,\n \"maichattawathai\",\n 0x0e4b,\n \"maichattawaupperleftthai\",\n 0xf893,\n \"maieklowleftthai\",\n 0xf88c,\n \"maieklowrightthai\",\n 0xf88b,\n \"maiekthai\",\n 0x0e48,\n \"maiekupperleftthai\",\n 0xf88a,\n \"maihanakatleftthai\",\n 0xf884,\n \"maihanakatthai\",\n 0x0e31,\n \"maitaikhuleftthai\",\n 0xf889,\n \"maitaikhuthai\",\n 0x0e47,\n \"maitholowleftthai\",\n 0xf88f,\n \"maitholowrightthai\",\n 0xf88e,\n \"maithothai\",\n 0x0e49,\n \"maithoupperleftthai\",\n 0xf88d,\n \"maitrilowleftthai\",\n 0xf892,\n \"maitrilowrightthai\",\n 0xf891,\n \"maitrithai\",\n 0x0e4a,\n \"maitriupperleftthai\",\n 0xf890,\n \"maiyamokthai\",\n 0x0e46,\n \"makatakana\",\n 0x30de,\n \"makatakanahalfwidth\",\n 0xff8f,\n \"male\",\n 0x2642,\n \"mansyonsquare\",\n 0x3347,\n \"maqafhebrew\",\n 0x05be,\n \"mars\",\n 0x2642,\n \"masoracirclehebrew\",\n 0x05af,\n \"masquare\",\n 0x3383,\n \"mbopomofo\",\n 0x3107,\n \"mbsquare\",\n 0x33d4,\n \"mcircle\",\n 0x24dc,\n \"mcubedsquare\",\n 0x33a5,\n \"mdotaccent\",\n 0x1e41,\n \"mdotbelow\",\n 0x1e43,\n \"meemarabic\",\n 0x0645,\n \"meemfinalarabic\",\n 0xfee2,\n \"meeminitialarabic\",\n 0xfee3,\n \"meemmedialarabic\",\n 0xfee4,\n \"meemmeeminitialarabic\",\n 0xfcd1,\n \"meemmeemisolatedarabic\",\n 0xfc48,\n \"meetorusquare\",\n 0x334d,\n \"mehiragana\",\n 0x3081,\n \"meizierasquare\",\n 0x337e,\n \"mekatakana\",\n 0x30e1,\n \"mekatakanahalfwidth\",\n 0xff92,\n \"mem\",\n 0x05de,\n \"memdagesh\",\n 0xfb3e,\n \"memdageshhebrew\",\n 0xfb3e,\n \"memhebrew\",\n 0x05de,\n \"menarmenian\",\n 0x0574,\n \"merkhahebrew\",\n 0x05a5,\n \"merkhakefulahebrew\",\n 0x05a6,\n \"merkhakefulalefthebrew\",\n 0x05a6,\n \"merkhalefthebrew\",\n 0x05a5,\n \"mhook\",\n 0x0271,\n \"mhzsquare\",\n 0x3392,\n \"middledotkatakanahalfwidth\",\n 0xff65,\n \"middot\",\n 0x00b7,\n \"mieumacirclekorean\",\n 0x3272,\n \"mieumaparenkorean\",\n 0x3212,\n \"mieumcirclekorean\",\n 0x3264,\n \"mieumkorean\",\n 0x3141,\n \"mieumpansioskorean\",\n 0x3170,\n \"mieumparenkorean\",\n 0x3204,\n \"mieumpieupkorean\",\n 0x316e,\n \"mieumsioskorean\",\n 0x316f,\n \"mihiragana\",\n 0x307f,\n \"mikatakana\",\n 0x30df,\n \"mikatakanahalfwidth\",\n 0xff90,\n \"minus\",\n 0x2212,\n \"minusbelowcmb\",\n 0x0320,\n \"minuscircle\",\n 0x2296,\n \"minusmod\",\n 0x02d7,\n \"minusplus\",\n 0x2213,\n \"minute\",\n 0x2032,\n \"miribaarusquare\",\n 0x334a,\n \"mirisquare\",\n 0x3349,\n \"mlonglegturned\",\n 0x0270,\n \"mlsquare\",\n 0x3396,\n \"mmcubedsquare\",\n 0x33a3,\n \"mmonospace\",\n 0xff4d,\n \"mmsquaredsquare\",\n 0x339f,\n \"mohiragana\",\n 0x3082,\n \"mohmsquare\",\n 0x33c1,\n \"mokatakana\",\n 0x30e2,\n \"mokatakanahalfwidth\",\n 0xff93,\n \"molsquare\",\n 0x33d6,\n \"momathai\",\n 0x0e21,\n \"moverssquare\",\n 0x33a7,\n \"moverssquaredsquare\",\n 0x33a8,\n \"mparen\",\n 0x24a8,\n \"mpasquare\",\n 0x33ab,\n \"mssquare\",\n 0x33b3,\n \"msuperior\",\n 0xf6ef,\n \"mturned\",\n 0x026f,\n \"mu\",\n 0x00b5,\n \"mu1\",\n 0x00b5,\n \"muasquare\",\n 0x3382,\n \"muchgreater\",\n 0x226b,\n \"muchless\",\n 0x226a,\n \"mufsquare\",\n 0x338c,\n \"mugreek\",\n 0x03bc,\n \"mugsquare\",\n 0x338d,\n \"muhiragana\",\n 0x3080,\n \"mukatakana\",\n 0x30e0,\n \"mukatakanahalfwidth\",\n 0xff91,\n \"mulsquare\",\n 0x3395,\n \"multiply\",\n 0x00d7,\n \"mumsquare\",\n 0x339b,\n \"munahhebrew\",\n 0x05a3,\n \"munahlefthebrew\",\n 0x05a3,\n \"musicalnote\",\n 0x266a,\n \"musicalnotedbl\",\n 0x266b,\n \"musicflatsign\",\n 0x266d,\n \"musicsharpsign\",\n 0x266f,\n \"mussquare\",\n 0x33b2,\n \"muvsquare\",\n 0x33b6,\n \"muwsquare\",\n 0x33bc,\n \"mvmegasquare\",\n 0x33b9,\n \"mvsquare\",\n 0x33b7,\n \"mwmegasquare\",\n 0x33bf,\n \"mwsquare\",\n 0x33bd,\n \"n\",\n 0x006e,\n \"nabengali\",\n 0x09a8,\n \"nabla\",\n 0x2207,\n \"nacute\",\n 0x0144,\n \"nadeva\",\n 0x0928,\n \"nagujarati\",\n 0x0aa8,\n \"nagurmukhi\",\n 0x0a28,\n \"nahiragana\",\n 0x306a,\n \"nakatakana\",\n 0x30ca,\n \"nakatakanahalfwidth\",\n 0xff85,\n \"napostrophe\",\n 0x0149,\n \"nasquare\",\n 0x3381,\n \"nbopomofo\",\n 0x310b,\n \"nbspace\",\n 0x00a0,\n \"ncaron\",\n 0x0148,\n \"ncedilla\",\n 0x0146,\n \"ncircle\",\n 0x24dd,\n \"ncircumflexbelow\",\n 0x1e4b,\n \"ncommaaccent\",\n 0x0146,\n \"ndotaccent\",\n 0x1e45,\n \"ndotbelow\",\n 0x1e47,\n \"nehiragana\",\n 0x306d,\n \"nekatakana\",\n 0x30cd,\n \"nekatakanahalfwidth\",\n 0xff88,\n \"newsheqelsign\",\n 0x20aa,\n \"nfsquare\",\n 0x338b,\n \"ngabengali\",\n 0x0999,\n \"ngadeva\",\n 0x0919,\n \"ngagujarati\",\n 0x0a99,\n \"ngagurmukhi\",\n 0x0a19,\n \"ngonguthai\",\n 0x0e07,\n \"nhiragana\",\n 0x3093,\n \"nhookleft\",\n 0x0272,\n \"nhookretroflex\",\n 0x0273,\n \"nieunacirclekorean\",\n 0x326f,\n \"nieunaparenkorean\",\n 0x320f,\n \"nieuncieuckorean\",\n 0x3135,\n \"nieuncirclekorean\",\n 0x3261,\n \"nieunhieuhkorean\",\n 0x3136,\n \"nieunkorean\",\n 0x3134,\n \"nieunpansioskorean\",\n 0x3168,\n \"nieunparenkorean\",\n 0x3201,\n \"nieunsioskorean\",\n 0x3167,\n \"nieuntikeutkorean\",\n 0x3166,\n \"nihiragana\",\n 0x306b,\n \"nikatakana\",\n 0x30cb,\n \"nikatakanahalfwidth\",\n 0xff86,\n \"nikhahitleftthai\",\n 0xf899,\n \"nikhahitthai\",\n 0x0e4d,\n \"nine\",\n 0x0039,\n \"ninearabic\",\n 0x0669,\n \"ninebengali\",\n 0x09ef,\n \"ninecircle\",\n 0x2468,\n \"ninecircleinversesansserif\",\n 0x2792,\n \"ninedeva\",\n 0x096f,\n \"ninegujarati\",\n 0x0aef,\n \"ninegurmukhi\",\n 0x0a6f,\n \"ninehackarabic\",\n 0x0669,\n \"ninehangzhou\",\n 0x3029,\n \"nineideographicparen\",\n 0x3228,\n \"nineinferior\",\n 0x2089,\n \"ninemonospace\",\n 0xff19,\n \"nineoldstyle\",\n 0xf739,\n \"nineparen\",\n 0x247c,\n \"nineperiod\",\n 0x2490,\n \"ninepersian\",\n 0x06f9,\n \"nineroman\",\n 0x2178,\n \"ninesuperior\",\n 0x2079,\n \"nineteencircle\",\n 0x2472,\n \"nineteenparen\",\n 0x2486,\n \"nineteenperiod\",\n 0x249a,\n \"ninethai\",\n 0x0e59,\n \"nj\",\n 0x01cc,\n \"njecyrillic\",\n 0x045a,\n \"nkatakana\",\n 0x30f3,\n \"nkatakanahalfwidth\",\n 0xff9d,\n \"nlegrightlong\",\n 0x019e,\n \"nlinebelow\",\n 0x1e49,\n \"nmonospace\",\n 0xff4e,\n \"nmsquare\",\n 0x339a,\n \"nnabengali\",\n 0x09a3,\n \"nnadeva\",\n 0x0923,\n \"nnagujarati\",\n 0x0aa3,\n \"nnagurmukhi\",\n 0x0a23,\n \"nnnadeva\",\n 0x0929,\n \"nohiragana\",\n 0x306e,\n \"nokatakana\",\n 0x30ce,\n \"nokatakanahalfwidth\",\n 0xff89,\n \"nonbreakingspace\",\n 0x00a0,\n \"nonenthai\",\n 0x0e13,\n \"nonuthai\",\n 0x0e19,\n \"noonarabic\",\n 0x0646,\n \"noonfinalarabic\",\n 0xfee6,\n \"noonghunnaarabic\",\n 0x06ba,\n \"noonghunnafinalarabic\",\n 0xfb9f,\n \"nooninitialarabic\",\n 0xfee7,\n \"noonjeeminitialarabic\",\n 0xfcd2,\n \"noonjeemisolatedarabic\",\n 0xfc4b,\n \"noonmedialarabic\",\n 0xfee8,\n \"noonmeeminitialarabic\",\n 0xfcd5,\n \"noonmeemisolatedarabic\",\n 0xfc4e,\n \"noonnoonfinalarabic\",\n 0xfc8d,\n \"notcontains\",\n 0x220c,\n \"notelement\",\n 0x2209,\n \"notelementof\",\n 0x2209,\n \"notequal\",\n 0x2260,\n \"notgreater\",\n 0x226f,\n \"notgreaternorequal\",\n 0x2271,\n \"notgreaternorless\",\n 0x2279,\n \"notidentical\",\n 0x2262,\n \"notless\",\n 0x226e,\n \"notlessnorequal\",\n 0x2270,\n \"notparallel\",\n 0x2226,\n \"notprecedes\",\n 0x2280,\n \"notsubset\",\n 0x2284,\n \"notsucceeds\",\n 0x2281,\n \"notsuperset\",\n 0x2285,\n \"nowarmenian\",\n 0x0576,\n \"nparen\",\n 0x24a9,\n \"nssquare\",\n 0x33b1,\n \"nsuperior\",\n 0x207f,\n \"ntilde\",\n 0x00f1,\n \"nu\",\n 0x03bd,\n \"nuhiragana\",\n 0x306c,\n \"nukatakana\",\n 0x30cc,\n \"nukatakanahalfwidth\",\n 0xff87,\n \"nuktabengali\",\n 0x09bc,\n \"nuktadeva\",\n 0x093c,\n \"nuktagujarati\",\n 0x0abc,\n \"nuktagurmukhi\",\n 0x0a3c,\n \"numbersign\",\n 0x0023,\n \"numbersignmonospace\",\n 0xff03,\n \"numbersignsmall\",\n 0xfe5f,\n \"numeralsigngreek\",\n 0x0374,\n \"numeralsignlowergreek\",\n 0x0375,\n \"numero\",\n 0x2116,\n \"nun\",\n 0x05e0,\n \"nundagesh\",\n 0xfb40,\n \"nundageshhebrew\",\n 0xfb40,\n \"nunhebrew\",\n 0x05e0,\n \"nvsquare\",\n 0x33b5,\n \"nwsquare\",\n 0x33bb,\n \"nyabengali\",\n 0x099e,\n \"nyadeva\",\n 0x091e,\n \"nyagujarati\",\n 0x0a9e,\n \"nyagurmukhi\",\n 0x0a1e,\n \"o\",\n 0x006f,\n \"oacute\",\n 0x00f3,\n \"oangthai\",\n 0x0e2d,\n \"obarred\",\n 0x0275,\n \"obarredcyrillic\",\n 0x04e9,\n \"obarreddieresiscyrillic\",\n 0x04eb,\n \"obengali\",\n 0x0993,\n \"obopomofo\",\n 0x311b,\n \"obreve\",\n 0x014f,\n \"ocandradeva\",\n 0x0911,\n \"ocandragujarati\",\n 0x0a91,\n \"ocandravowelsigndeva\",\n 0x0949,\n \"ocandravowelsigngujarati\",\n 0x0ac9,\n \"ocaron\",\n 0x01d2,\n \"ocircle\",\n 0x24de,\n \"ocircumflex\",\n 0x00f4,\n \"ocircumflexacute\",\n 0x1ed1,\n \"ocircumflexdotbelow\",\n 0x1ed9,\n \"ocircumflexgrave\",\n 0x1ed3,\n \"ocircumflexhookabove\",\n 0x1ed5,\n \"ocircumflextilde\",\n 0x1ed7,\n \"ocyrillic\",\n 0x043e,\n \"odblacute\",\n 0x0151,\n \"odblgrave\",\n 0x020d,\n \"odeva\",\n 0x0913,\n \"odieresis\",\n 0x00f6,\n \"odieresiscyrillic\",\n 0x04e7,\n \"odotbelow\",\n 0x1ecd,\n \"oe\",\n 0x0153,\n \"oekorean\",\n 0x315a,\n \"ogonek\",\n 0x02db,\n \"ogonekcmb\",\n 0x0328,\n \"ograve\",\n 0x00f2,\n \"ogujarati\",\n 0x0a93,\n \"oharmenian\",\n 0x0585,\n \"ohiragana\",\n 0x304a,\n \"ohookabove\",\n 0x1ecf,\n \"ohorn\",\n 0x01a1,\n \"ohornacute\",\n 0x1edb,\n \"ohorndotbelow\",\n 0x1ee3,\n \"ohorngrave\",\n 0x1edd,\n \"ohornhookabove\",\n 0x1edf,\n \"ohorntilde\",\n 0x1ee1,\n \"ohungarumlaut\",\n 0x0151,\n \"oi\",\n 0x01a3,\n \"oinvertedbreve\",\n 0x020f,\n \"okatakana\",\n 0x30aa,\n \"okatakanahalfwidth\",\n 0xff75,\n \"okorean\",\n 0x3157,\n \"olehebrew\",\n 0x05ab,\n \"omacron\",\n 0x014d,\n \"omacronacute\",\n 0x1e53,\n \"omacrongrave\",\n 0x1e51,\n \"omdeva\",\n 0x0950,\n \"omega\",\n 0x03c9,\n \"omega1\",\n 0x03d6,\n \"omegacyrillic\",\n 0x0461,\n \"omegalatinclosed\",\n 0x0277,\n \"omegaroundcyrillic\",\n 0x047b,\n \"omegatitlocyrillic\",\n 0x047d,\n \"omegatonos\",\n 0x03ce,\n \"omgujarati\",\n 0x0ad0,\n \"omicron\",\n 0x03bf,\n \"omicrontonos\",\n 0x03cc,\n \"omonospace\",\n 0xff4f,\n \"one\",\n 0x0031,\n \"onearabic\",\n 0x0661,\n \"onebengali\",\n 0x09e7,\n \"onecircle\",\n 0x2460,\n \"onecircleinversesansserif\",\n 0x278a,\n \"onedeva\",\n 0x0967,\n \"onedotenleader\",\n 0x2024,\n \"oneeighth\",\n 0x215b,\n \"onefitted\",\n 0xf6dc,\n \"onegujarati\",\n 0x0ae7,\n \"onegurmukhi\",\n 0x0a67,\n \"onehackarabic\",\n 0x0661,\n \"onehalf\",\n 0x00bd,\n \"onehangzhou\",\n 0x3021,\n \"oneideographicparen\",\n 0x3220,\n \"oneinferior\",\n 0x2081,\n \"onemonospace\",\n 0xff11,\n \"onenumeratorbengali\",\n 0x09f4,\n \"oneoldstyle\",\n 0xf731,\n \"oneparen\",\n 0x2474,\n \"oneperiod\",\n 0x2488,\n \"onepersian\",\n 0x06f1,\n \"onequarter\",\n 0x00bc,\n \"oneroman\",\n 0x2170,\n \"onesuperior\",\n 0x00b9,\n \"onethai\",\n 0x0e51,\n \"onethird\",\n 0x2153,\n \"oogonek\",\n 0x01eb,\n \"oogonekmacron\",\n 0x01ed,\n \"oogurmukhi\",\n 0x0a13,\n \"oomatragurmukhi\",\n 0x0a4b,\n \"oopen\",\n 0x0254,\n \"oparen\",\n 0x24aa,\n \"openbullet\",\n 0x25e6,\n \"option\",\n 0x2325,\n \"ordfeminine\",\n 0x00aa,\n \"ordmasculine\",\n 0x00ba,\n \"orthogonal\",\n 0x221f,\n \"oshortdeva\",\n 0x0912,\n \"oshortvowelsigndeva\",\n 0x094a,\n \"oslash\",\n 0x00f8,\n \"oslashacute\",\n 0x01ff,\n \"osmallhiragana\",\n 0x3049,\n \"osmallkatakana\",\n 0x30a9,\n \"osmallkatakanahalfwidth\",\n 0xff6b,\n \"ostrokeacute\",\n 0x01ff,\n \"osuperior\",\n 0xf6f0,\n \"otcyrillic\",\n 0x047f,\n \"otilde\",\n 0x00f5,\n \"otildeacute\",\n 0x1e4d,\n \"otildedieresis\",\n 0x1e4f,\n \"oubopomofo\",\n 0x3121,\n \"overline\",\n 0x203e,\n \"overlinecenterline\",\n 0xfe4a,\n \"overlinecmb\",\n 0x0305,\n \"overlinedashed\",\n 0xfe49,\n \"overlinedblwavy\",\n 0xfe4c,\n \"overlinewavy\",\n 0xfe4b,\n \"overscore\",\n 0x00af,\n \"ovowelsignbengali\",\n 0x09cb,\n \"ovowelsigndeva\",\n 0x094b,\n \"ovowelsigngujarati\",\n 0x0acb,\n \"p\",\n 0x0070,\n \"paampssquare\",\n 0x3380,\n \"paasentosquare\",\n 0x332b,\n \"pabengali\",\n 0x09aa,\n \"pacute\",\n 0x1e55,\n \"padeva\",\n 0x092a,\n \"pagedown\",\n 0x21df,\n \"pageup\",\n 0x21de,\n \"pagujarati\",\n 0x0aaa,\n \"pagurmukhi\",\n 0x0a2a,\n \"pahiragana\",\n 0x3071,\n \"paiyannoithai\",\n 0x0e2f,\n \"pakatakana\",\n 0x30d1,\n \"palatalizationcyrilliccmb\",\n 0x0484,\n \"palochkacyrillic\",\n 0x04c0,\n \"pansioskorean\",\n 0x317f,\n \"paragraph\",\n 0x00b6,\n \"parallel\",\n 0x2225,\n \"parenleft\",\n 0x0028,\n \"parenleftaltonearabic\",\n 0xfd3e,\n \"parenleftbt\",\n 0xf8ed,\n \"parenleftex\",\n 0xf8ec,\n \"parenleftinferior\",\n 0x208d,\n \"parenleftmonospace\",\n 0xff08,\n \"parenleftsmall\",\n 0xfe59,\n \"parenleftsuperior\",\n 0x207d,\n \"parenlefttp\",\n 0xf8eb,\n \"parenleftvertical\",\n 0xfe35,\n \"parenright\",\n 0x0029,\n \"parenrightaltonearabic\",\n 0xfd3f,\n \"parenrightbt\",\n 0xf8f8,\n \"parenrightex\",\n 0xf8f7,\n \"parenrightinferior\",\n 0x208e,\n \"parenrightmonospace\",\n 0xff09,\n \"parenrightsmall\",\n 0xfe5a,\n \"parenrightsuperior\",\n 0x207e,\n \"parenrighttp\",\n 0xf8f6,\n \"parenrightvertical\",\n 0xfe36,\n \"partialdiff\",\n 0x2202,\n \"paseqhebrew\",\n 0x05c0,\n \"pashtahebrew\",\n 0x0599,\n \"pasquare\",\n 0x33a9,\n \"patah\",\n 0x05b7,\n \"patah11\",\n 0x05b7,\n \"patah1d\",\n 0x05b7,\n \"patah2a\",\n 0x05b7,\n \"patahhebrew\",\n 0x05b7,\n \"patahnarrowhebrew\",\n 0x05b7,\n \"patahquarterhebrew\",\n 0x05b7,\n \"patahwidehebrew\",\n 0x05b7,\n \"pazerhebrew\",\n 0x05a1,\n \"pbopomofo\",\n 0x3106,\n \"pcircle\",\n 0x24df,\n \"pdotaccent\",\n 0x1e57,\n \"pe\",\n 0x05e4,\n \"pecyrillic\",\n 0x043f,\n \"pedagesh\",\n 0xfb44,\n \"pedageshhebrew\",\n 0xfb44,\n \"peezisquare\",\n 0x333b,\n \"pefinaldageshhebrew\",\n 0xfb43,\n \"peharabic\",\n 0x067e,\n \"peharmenian\",\n 0x057a,\n \"pehebrew\",\n 0x05e4,\n \"pehfinalarabic\",\n 0xfb57,\n \"pehinitialarabic\",\n 0xfb58,\n \"pehiragana\",\n 0x307a,\n \"pehmedialarabic\",\n 0xfb59,\n \"pekatakana\",\n 0x30da,\n \"pemiddlehookcyrillic\",\n 0x04a7,\n \"perafehebrew\",\n 0xfb4e,\n \"percent\",\n 0x0025,\n \"percentarabic\",\n 0x066a,\n \"percentmonospace\",\n 0xff05,\n \"percentsmall\",\n 0xfe6a,\n \"period\",\n 0x002e,\n \"periodarmenian\",\n 0x0589,\n \"periodcentered\",\n 0x00b7,\n \"periodhalfwidth\",\n 0xff61,\n \"periodinferior\",\n 0xf6e7,\n \"periodmonospace\",\n 0xff0e,\n \"periodsmall\",\n 0xfe52,\n \"periodsuperior\",\n 0xf6e8,\n \"perispomenigreekcmb\",\n 0x0342,\n \"perpendicular\",\n 0x22a5,\n \"perthousand\",\n 0x2030,\n \"peseta\",\n 0x20a7,\n \"pfsquare\",\n 0x338a,\n \"phabengali\",\n 0x09ab,\n \"phadeva\",\n 0x092b,\n \"phagujarati\",\n 0x0aab,\n \"phagurmukhi\",\n 0x0a2b,\n \"phi\",\n 0x03c6,\n \"phi1\",\n 0x03d5,\n \"phieuphacirclekorean\",\n 0x327a,\n \"phieuphaparenkorean\",\n 0x321a,\n \"phieuphcirclekorean\",\n 0x326c,\n \"phieuphkorean\",\n 0x314d,\n \"phieuphparenkorean\",\n 0x320c,\n \"philatin\",\n 0x0278,\n \"phinthuthai\",\n 0x0e3a,\n \"phisymbolgreek\",\n 0x03d5,\n \"phook\",\n 0x01a5,\n \"phophanthai\",\n 0x0e1e,\n \"phophungthai\",\n 0x0e1c,\n \"phosamphaothai\",\n 0x0e20,\n \"pi\",\n 0x03c0,\n \"pieupacirclekorean\",\n 0x3273,\n \"pieupaparenkorean\",\n 0x3213,\n \"pieupcieuckorean\",\n 0x3176,\n \"pieupcirclekorean\",\n 0x3265,\n \"pieupkiyeokkorean\",\n 0x3172,\n \"pieupkorean\",\n 0x3142,\n \"pieupparenkorean\",\n 0x3205,\n \"pieupsioskiyeokkorean\",\n 0x3174,\n \"pieupsioskorean\",\n 0x3144,\n \"pieupsiostikeutkorean\",\n 0x3175,\n \"pieupthieuthkorean\",\n 0x3177,\n \"pieuptikeutkorean\",\n 0x3173,\n \"pihiragana\",\n 0x3074,\n \"pikatakana\",\n 0x30d4,\n \"pisymbolgreek\",\n 0x03d6,\n \"piwrarmenian\",\n 0x0583,\n \"plus\",\n 0x002b,\n \"plusbelowcmb\",\n 0x031f,\n \"pluscircle\",\n 0x2295,\n \"plusminus\",\n 0x00b1,\n \"plusmod\",\n 0x02d6,\n \"plusmonospace\",\n 0xff0b,\n \"plussmall\",\n 0xfe62,\n \"plussuperior\",\n 0x207a,\n \"pmonospace\",\n 0xff50,\n \"pmsquare\",\n 0x33d8,\n \"pohiragana\",\n 0x307d,\n \"pointingindexdownwhite\",\n 0x261f,\n \"pointingindexleftwhite\",\n 0x261c,\n \"pointingindexrightwhite\",\n 0x261e,\n \"pointingindexupwhite\",\n 0x261d,\n \"pokatakana\",\n 0x30dd,\n \"poplathai\",\n 0x0e1b,\n \"postalmark\",\n 0x3012,\n \"postalmarkface\",\n 0x3020,\n \"pparen\",\n 0x24ab,\n \"precedes\",\n 0x227a,\n \"prescription\",\n 0x211e,\n \"primemod\",\n 0x02b9,\n \"primereversed\",\n 0x2035,\n \"product\",\n 0x220f,\n \"projective\",\n 0x2305,\n \"prolongedkana\",\n 0x30fc,\n \"propellor\",\n 0x2318,\n \"propersubset\",\n 0x2282,\n \"propersuperset\",\n 0x2283,\n \"proportion\",\n 0x2237,\n \"proportional\",\n 0x221d,\n \"psi\",\n 0x03c8,\n \"psicyrillic\",\n 0x0471,\n \"psilipneumatacyrilliccmb\",\n 0x0486,\n \"pssquare\",\n 0x33b0,\n \"puhiragana\",\n 0x3077,\n \"pukatakana\",\n 0x30d7,\n \"pvsquare\",\n 0x33b4,\n \"pwsquare\",\n 0x33ba,\n \"q\",\n 0x0071,\n \"qadeva\",\n 0x0958,\n \"qadmahebrew\",\n 0x05a8,\n \"qafarabic\",\n 0x0642,\n \"qaffinalarabic\",\n 0xfed6,\n \"qafinitialarabic\",\n 0xfed7,\n \"qafmedialarabic\",\n 0xfed8,\n \"qamats\",\n 0x05b8,\n \"qamats10\",\n 0x05b8,\n \"qamats1a\",\n 0x05b8,\n \"qamats1c\",\n 0x05b8,\n \"qamats27\",\n 0x05b8,\n \"qamats29\",\n 0x05b8,\n \"qamats33\",\n 0x05b8,\n \"qamatsde\",\n 0x05b8,\n \"qamatshebrew\",\n 0x05b8,\n \"qamatsnarrowhebrew\",\n 0x05b8,\n \"qamatsqatanhebrew\",\n 0x05b8,\n \"qamatsqatannarrowhebrew\",\n 0x05b8,\n \"qamatsqatanquarterhebrew\",\n 0x05b8,\n \"qamatsqatanwidehebrew\",\n 0x05b8,\n \"qamatsquarterhebrew\",\n 0x05b8,\n \"qamatswidehebrew\",\n 0x05b8,\n \"qarneyparahebrew\",\n 0x059f,\n \"qbopomofo\",\n 0x3111,\n \"qcircle\",\n 0x24e0,\n \"qhook\",\n 0x02a0,\n \"qmonospace\",\n 0xff51,\n \"qof\",\n 0x05e7,\n \"qofdagesh\",\n 0xfb47,\n \"qofdageshhebrew\",\n 0xfb47,\n \"qofhebrew\",\n 0x05e7,\n \"qparen\",\n 0x24ac,\n \"quarternote\",\n 0x2669,\n \"qubuts\",\n 0x05bb,\n \"qubuts18\",\n 0x05bb,\n \"qubuts25\",\n 0x05bb,\n \"qubuts31\",\n 0x05bb,\n \"qubutshebrew\",\n 0x05bb,\n \"qubutsnarrowhebrew\",\n 0x05bb,\n \"qubutsquarterhebrew\",\n 0x05bb,\n \"qubutswidehebrew\",\n 0x05bb,\n \"question\",\n 0x003f,\n \"questionarabic\",\n 0x061f,\n \"questionarmenian\",\n 0x055e,\n \"questiondown\",\n 0x00bf,\n \"questiondownsmall\",\n 0xf7bf,\n \"questiongreek\",\n 0x037e,\n \"questionmonospace\",\n 0xff1f,\n \"questionsmall\",\n 0xf73f,\n \"quotedbl\",\n 0x0022,\n \"quotedblbase\",\n 0x201e,\n \"quotedblleft\",\n 0x201c,\n \"quotedblmonospace\",\n 0xff02,\n \"quotedblprime\",\n 0x301e,\n \"quotedblprimereversed\",\n 0x301d,\n \"quotedblright\",\n 0x201d,\n \"quoteleft\",\n 0x2018,\n \"quoteleftreversed\",\n 0x201b,\n \"quotereversed\",\n 0x201b,\n \"quoteright\",\n 0x2019,\n \"quoterightn\",\n 0x0149,\n \"quotesinglbase\",\n 0x201a,\n \"quotesingle\",\n 0x0027,\n \"quotesinglemonospace\",\n 0xff07,\n \"r\",\n 0x0072,\n \"raarmenian\",\n 0x057c,\n \"rabengali\",\n 0x09b0,\n \"racute\",\n 0x0155,\n \"radeva\",\n 0x0930,\n \"radical\",\n 0x221a,\n \"radicalex\",\n 0xf8e5,\n \"radoverssquare\",\n 0x33ae,\n \"radoverssquaredsquare\",\n 0x33af,\n \"radsquare\",\n 0x33ad,\n \"rafe\",\n 0x05bf,\n \"rafehebrew\",\n 0x05bf,\n \"ragujarati\",\n 0x0ab0,\n \"ragurmukhi\",\n 0x0a30,\n \"rahiragana\",\n 0x3089,\n \"rakatakana\",\n 0x30e9,\n \"rakatakanahalfwidth\",\n 0xff97,\n \"ralowerdiagonalbengali\",\n 0x09f1,\n \"ramiddlediagonalbengali\",\n 0x09f0,\n \"ramshorn\",\n 0x0264,\n \"ratio\",\n 0x2236,\n \"rbopomofo\",\n 0x3116,\n \"rcaron\",\n 0x0159,\n \"rcedilla\",\n 0x0157,\n \"rcircle\",\n 0x24e1,\n \"rcommaaccent\",\n 0x0157,\n \"rdblgrave\",\n 0x0211,\n \"rdotaccent\",\n 0x1e59,\n \"rdotbelow\",\n 0x1e5b,\n \"rdotbelowmacron\",\n 0x1e5d,\n \"referencemark\",\n 0x203b,\n \"reflexsubset\",\n 0x2286,\n \"reflexsuperset\",\n 0x2287,\n \"registered\",\n 0x00ae,\n \"registersans\",\n 0xf8e8,\n \"registerserif\",\n 0xf6da,\n \"reharabic\",\n 0x0631,\n \"reharmenian\",\n 0x0580,\n \"rehfinalarabic\",\n 0xfeae,\n \"rehiragana\",\n 0x308c,\n \"rekatakana\",\n 0x30ec,\n \"rekatakanahalfwidth\",\n 0xff9a,\n \"resh\",\n 0x05e8,\n \"reshdageshhebrew\",\n 0xfb48,\n \"reshhebrew\",\n 0x05e8,\n \"reversedtilde\",\n 0x223d,\n \"reviahebrew\",\n 0x0597,\n \"reviamugrashhebrew\",\n 0x0597,\n \"revlogicalnot\",\n 0x2310,\n \"rfishhook\",\n 0x027e,\n \"rfishhookreversed\",\n 0x027f,\n \"rhabengali\",\n 0x09dd,\n \"rhadeva\",\n 0x095d,\n \"rho\",\n 0x03c1,\n \"rhook\",\n 0x027d,\n \"rhookturned\",\n 0x027b,\n \"rhookturnedsuperior\",\n 0x02b5,\n \"rhosymbolgreek\",\n 0x03f1,\n \"rhotichookmod\",\n 0x02de,\n \"rieulacirclekorean\",\n 0x3271,\n \"rieulaparenkorean\",\n 0x3211,\n \"rieulcirclekorean\",\n 0x3263,\n \"rieulhieuhkorean\",\n 0x3140,\n \"rieulkiyeokkorean\",\n 0x313a,\n \"rieulkiyeoksioskorean\",\n 0x3169,\n \"rieulkorean\",\n 0x3139,\n \"rieulmieumkorean\",\n 0x313b,\n \"rieulpansioskorean\",\n 0x316c,\n \"rieulparenkorean\",\n 0x3203,\n \"rieulphieuphkorean\",\n 0x313f,\n \"rieulpieupkorean\",\n 0x313c,\n \"rieulpieupsioskorean\",\n 0x316b,\n \"rieulsioskorean\",\n 0x313d,\n \"rieulthieuthkorean\",\n 0x313e,\n \"rieultikeutkorean\",\n 0x316a,\n \"rieulyeorinhieuhkorean\",\n 0x316d,\n \"rightangle\",\n 0x221f,\n \"righttackbelowcmb\",\n 0x0319,\n \"righttriangle\",\n 0x22bf,\n \"rihiragana\",\n 0x308a,\n \"rikatakana\",\n 0x30ea,\n \"rikatakanahalfwidth\",\n 0xff98,\n \"ring\",\n 0x02da,\n \"ringbelowcmb\",\n 0x0325,\n \"ringcmb\",\n 0x030a,\n \"ringhalfleft\",\n 0x02bf,\n \"ringhalfleftarmenian\",\n 0x0559,\n \"ringhalfleftbelowcmb\",\n 0x031c,\n \"ringhalfleftcentered\",\n 0x02d3,\n \"ringhalfright\",\n 0x02be,\n \"ringhalfrightbelowcmb\",\n 0x0339,\n \"ringhalfrightcentered\",\n 0x02d2,\n \"rinvertedbreve\",\n 0x0213,\n \"rittorusquare\",\n 0x3351,\n \"rlinebelow\",\n 0x1e5f,\n \"rlongleg\",\n 0x027c,\n \"rlonglegturned\",\n 0x027a,\n \"rmonospace\",\n 0xff52,\n \"rohiragana\",\n 0x308d,\n \"rokatakana\",\n 0x30ed,\n \"rokatakanahalfwidth\",\n 0xff9b,\n \"roruathai\",\n 0x0e23,\n \"rparen\",\n 0x24ad,\n \"rrabengali\",\n 0x09dc,\n \"rradeva\",\n 0x0931,\n \"rragurmukhi\",\n 0x0a5c,\n \"rreharabic\",\n 0x0691,\n \"rrehfinalarabic\",\n 0xfb8d,\n \"rrvocalicbengali\",\n 0x09e0,\n \"rrvocalicdeva\",\n 0x0960,\n \"rrvocalicgujarati\",\n 0x0ae0,\n \"rrvocalicvowelsignbengali\",\n 0x09c4,\n \"rrvocalicvowelsigndeva\",\n 0x0944,\n \"rrvocalicvowelsigngujarati\",\n 0x0ac4,\n \"rsuperior\",\n 0xf6f1,\n \"rtblock\",\n 0x2590,\n \"rturned\",\n 0x0279,\n \"rturnedsuperior\",\n 0x02b4,\n \"ruhiragana\",\n 0x308b,\n \"rukatakana\",\n 0x30eb,\n \"rukatakanahalfwidth\",\n 0xff99,\n \"rupeemarkbengali\",\n 0x09f2,\n \"rupeesignbengali\",\n 0x09f3,\n \"rupiah\",\n 0xf6dd,\n \"ruthai\",\n 0x0e24,\n \"rvocalicbengali\",\n 0x098b,\n \"rvocalicdeva\",\n 0x090b,\n \"rvocalicgujarati\",\n 0x0a8b,\n \"rvocalicvowelsignbengali\",\n 0x09c3,\n \"rvocalicvowelsigndeva\",\n 0x0943,\n \"rvocalicvowelsigngujarati\",\n 0x0ac3,\n \"s\",\n 0x0073,\n \"sabengali\",\n 0x09b8,\n \"sacute\",\n 0x015b,\n \"sacutedotaccent\",\n 0x1e65,\n \"sadarabic\",\n 0x0635,\n \"sadeva\",\n 0x0938,\n \"sadfinalarabic\",\n 0xfeba,\n \"sadinitialarabic\",\n 0xfebb,\n \"sadmedialarabic\",\n 0xfebc,\n \"sagujarati\",\n 0x0ab8,\n \"sagurmukhi\",\n 0x0a38,\n \"sahiragana\",\n 0x3055,\n \"sakatakana\",\n 0x30b5,\n \"sakatakanahalfwidth\",\n 0xff7b,\n \"sallallahoualayhewasallamarabic\",\n 0xfdfa,\n \"samekh\",\n 0x05e1,\n \"samekhdagesh\",\n 0xfb41,\n \"samekhdageshhebrew\",\n 0xfb41,\n \"samekhhebrew\",\n 0x05e1,\n \"saraaathai\",\n 0x0e32,\n \"saraaethai\",\n 0x0e41,\n \"saraaimaimalaithai\",\n 0x0e44,\n \"saraaimaimuanthai\",\n 0x0e43,\n \"saraamthai\",\n 0x0e33,\n \"saraathai\",\n 0x0e30,\n \"saraethai\",\n 0x0e40,\n \"saraiileftthai\",\n 0xf886,\n \"saraiithai\",\n 0x0e35,\n \"saraileftthai\",\n 0xf885,\n \"saraithai\",\n 0x0e34,\n \"saraothai\",\n 0x0e42,\n \"saraueeleftthai\",\n 0xf888,\n \"saraueethai\",\n 0x0e37,\n \"saraueleftthai\",\n 0xf887,\n \"sarauethai\",\n 0x0e36,\n \"sarauthai\",\n 0x0e38,\n \"sarauuthai\",\n 0x0e39,\n \"sbopomofo\",\n 0x3119,\n \"scaron\",\n 0x0161,\n \"scarondotaccent\",\n 0x1e67,\n \"scedilla\",\n 0x015f,\n \"schwa\",\n 0x0259,\n \"schwacyrillic\",\n 0x04d9,\n \"schwadieresiscyrillic\",\n 0x04db,\n \"schwahook\",\n 0x025a,\n \"scircle\",\n 0x24e2,\n \"scircumflex\",\n 0x015d,\n \"scommaaccent\",\n 0x0219,\n \"sdotaccent\",\n 0x1e61,\n \"sdotbelow\",\n 0x1e63,\n \"sdotbelowdotaccent\",\n 0x1e69,\n \"seagullbelowcmb\",\n 0x033c,\n \"second\",\n 0x2033,\n \"secondtonechinese\",\n 0x02ca,\n \"section\",\n 0x00a7,\n \"seenarabic\",\n 0x0633,\n \"seenfinalarabic\",\n 0xfeb2,\n \"seeninitialarabic\",\n 0xfeb3,\n \"seenmedialarabic\",\n 0xfeb4,\n \"segol\",\n 0x05b6,\n \"segol13\",\n 0x05b6,\n \"segol1f\",\n 0x05b6,\n \"segol2c\",\n 0x05b6,\n \"segolhebrew\",\n 0x05b6,\n \"segolnarrowhebrew\",\n 0x05b6,\n \"segolquarterhebrew\",\n 0x05b6,\n \"segoltahebrew\",\n 0x0592,\n \"segolwidehebrew\",\n 0x05b6,\n \"seharmenian\",\n 0x057d,\n \"sehiragana\",\n 0x305b,\n \"sekatakana\",\n 0x30bb,\n \"sekatakanahalfwidth\",\n 0xff7e,\n \"semicolon\",\n 0x003b,\n \"semicolonarabic\",\n 0x061b,\n \"semicolonmonospace\",\n 0xff1b,\n \"semicolonsmall\",\n 0xfe54,\n \"semivoicedmarkkana\",\n 0x309c,\n \"semivoicedmarkkanahalfwidth\",\n 0xff9f,\n \"sentisquare\",\n 0x3322,\n \"sentosquare\",\n 0x3323,\n \"seven\",\n 0x0037,\n \"sevenarabic\",\n 0x0667,\n \"sevenbengali\",\n 0x09ed,\n \"sevencircle\",\n 0x2466,\n \"sevencircleinversesansserif\",\n 0x2790,\n \"sevendeva\",\n 0x096d,\n \"seveneighths\",\n 0x215e,\n \"sevengujarati\",\n 0x0aed,\n \"sevengurmukhi\",\n 0x0a6d,\n \"sevenhackarabic\",\n 0x0667,\n \"sevenhangzhou\",\n 0x3027,\n \"sevenideographicparen\",\n 0x3226,\n \"seveninferior\",\n 0x2087,\n \"sevenmonospace\",\n 0xff17,\n \"sevenoldstyle\",\n 0xf737,\n \"sevenparen\",\n 0x247a,\n \"sevenperiod\",\n 0x248e,\n \"sevenpersian\",\n 0x06f7,\n \"sevenroman\",\n 0x2176,\n \"sevensuperior\",\n 0x2077,\n \"seventeencircle\",\n 0x2470,\n \"seventeenparen\",\n 0x2484,\n \"seventeenperiod\",\n 0x2498,\n \"seventhai\",\n 0x0e57,\n \"sfthyphen\",\n 0x00ad,\n \"shaarmenian\",\n 0x0577,\n \"shabengali\",\n 0x09b6,\n \"shacyrillic\",\n 0x0448,\n \"shaddaarabic\",\n 0x0651,\n \"shaddadammaarabic\",\n 0xfc61,\n \"shaddadammatanarabic\",\n 0xfc5e,\n \"shaddafathaarabic\",\n 0xfc60,\n \"shaddakasraarabic\",\n 0xfc62,\n \"shaddakasratanarabic\",\n 0xfc5f,\n \"shade\",\n 0x2592,\n \"shadedark\",\n 0x2593,\n \"shadelight\",\n 0x2591,\n \"shademedium\",\n 0x2592,\n \"shadeva\",\n 0x0936,\n \"shagujarati\",\n 0x0ab6,\n \"shagurmukhi\",\n 0x0a36,\n \"shalshelethebrew\",\n 0x0593,\n \"shbopomofo\",\n 0x3115,\n \"shchacyrillic\",\n 0x0449,\n \"sheenarabic\",\n 0x0634,\n \"sheenfinalarabic\",\n 0xfeb6,\n \"sheeninitialarabic\",\n 0xfeb7,\n \"sheenmedialarabic\",\n 0xfeb8,\n \"sheicoptic\",\n 0x03e3,\n \"sheqel\",\n 0x20aa,\n \"sheqelhebrew\",\n 0x20aa,\n \"sheva\",\n 0x05b0,\n \"sheva115\",\n 0x05b0,\n \"sheva15\",\n 0x05b0,\n \"sheva22\",\n 0x05b0,\n \"sheva2e\",\n 0x05b0,\n \"shevahebrew\",\n 0x05b0,\n \"shevanarrowhebrew\",\n 0x05b0,\n \"shevaquarterhebrew\",\n 0x05b0,\n \"shevawidehebrew\",\n 0x05b0,\n \"shhacyrillic\",\n 0x04bb,\n \"shimacoptic\",\n 0x03ed,\n \"shin\",\n 0x05e9,\n \"shindagesh\",\n 0xfb49,\n \"shindageshhebrew\",\n 0xfb49,\n \"shindageshshindot\",\n 0xfb2c,\n \"shindageshshindothebrew\",\n 0xfb2c,\n \"shindageshsindot\",\n 0xfb2d,\n \"shindageshsindothebrew\",\n 0xfb2d,\n \"shindothebrew\",\n 0x05c1,\n \"shinhebrew\",\n 0x05e9,\n \"shinshindot\",\n 0xfb2a,\n \"shinshindothebrew\",\n 0xfb2a,\n \"shinsindot\",\n 0xfb2b,\n \"shinsindothebrew\",\n 0xfb2b,\n \"shook\",\n 0x0282,\n \"sigma\",\n 0x03c3,\n \"sigma1\",\n 0x03c2,\n \"sigmafinal\",\n 0x03c2,\n \"sigmalunatesymbolgreek\",\n 0x03f2,\n \"sihiragana\",\n 0x3057,\n \"sikatakana\",\n 0x30b7,\n \"sikatakanahalfwidth\",\n 0xff7c,\n \"siluqhebrew\",\n 0x05bd,\n \"siluqlefthebrew\",\n 0x05bd,\n \"similar\",\n 0x223c,\n \"sindothebrew\",\n 0x05c2,\n \"siosacirclekorean\",\n 0x3274,\n \"siosaparenkorean\",\n 0x3214,\n \"sioscieuckorean\",\n 0x317e,\n \"sioscirclekorean\",\n 0x3266,\n \"sioskiyeokkorean\",\n 0x317a,\n \"sioskorean\",\n 0x3145,\n \"siosnieunkorean\",\n 0x317b,\n \"siosparenkorean\",\n 0x3206,\n \"siospieupkorean\",\n 0x317d,\n \"siostikeutkorean\",\n 0x317c,\n \"six\",\n 0x0036,\n \"sixarabic\",\n 0x0666,\n \"sixbengali\",\n 0x09ec,\n \"sixcircle\",\n 0x2465,\n \"sixcircleinversesansserif\",\n 0x278f,\n \"sixdeva\",\n 0x096c,\n \"sixgujarati\",\n 0x0aec,\n \"sixgurmukhi\",\n 0x0a6c,\n \"sixhackarabic\",\n 0x0666,\n \"sixhangzhou\",\n 0x3026,\n \"sixideographicparen\",\n 0x3225,\n \"sixinferior\",\n 0x2086,\n \"sixmonospace\",\n 0xff16,\n \"sixoldstyle\",\n 0xf736,\n \"sixparen\",\n 0x2479,\n \"sixperiod\",\n 0x248d,\n \"sixpersian\",\n 0x06f6,\n \"sixroman\",\n 0x2175,\n \"sixsuperior\",\n 0x2076,\n \"sixteencircle\",\n 0x246f,\n \"sixteencurrencydenominatorbengali\",\n 0x09f9,\n \"sixteenparen\",\n 0x2483,\n \"sixteenperiod\",\n 0x2497,\n \"sixthai\",\n 0x0e56,\n \"slash\",\n 0x002f,\n \"slashmonospace\",\n 0xff0f,\n \"slong\",\n 0x017f,\n \"slongdotaccent\",\n 0x1e9b,\n \"smileface\",\n 0x263a,\n \"smonospace\",\n 0xff53,\n \"sofpasuqhebrew\",\n 0x05c3,\n \"softhyphen\",\n 0x00ad,\n \"softsigncyrillic\",\n 0x044c,\n \"sohiragana\",\n 0x305d,\n \"sokatakana\",\n 0x30bd,\n \"sokatakanahalfwidth\",\n 0xff7f,\n \"soliduslongoverlaycmb\",\n 0x0338,\n \"solidusshortoverlaycmb\",\n 0x0337,\n \"sorusithai\",\n 0x0e29,\n \"sosalathai\",\n 0x0e28,\n \"sosothai\",\n 0x0e0b,\n \"sosuathai\",\n 0x0e2a,\n \"space\",\n 0x0020,\n \"spacehackarabic\",\n 0x0020,\n \"spade\",\n 0x2660,\n \"spadesuitblack\",\n 0x2660,\n \"spadesuitwhite\",\n 0x2664,\n \"sparen\",\n 0x24ae,\n \"squarebelowcmb\",\n 0x033b,\n \"squarecc\",\n 0x33c4,\n \"squarecm\",\n 0x339d,\n \"squarediagonalcrosshatchfill\",\n 0x25a9,\n \"squarehorizontalfill\",\n 0x25a4,\n \"squarekg\",\n 0x338f,\n \"squarekm\",\n 0x339e,\n \"squarekmcapital\",\n 0x33ce,\n \"squareln\",\n 0x33d1,\n \"squarelog\",\n 0x33d2,\n \"squaremg\",\n 0x338e,\n \"squaremil\",\n 0x33d5,\n \"squaremm\",\n 0x339c,\n \"squaremsquared\",\n 0x33a1,\n \"squareorthogonalcrosshatchfill\",\n 0x25a6,\n \"squareupperlefttolowerrightfill\",\n 0x25a7,\n \"squareupperrighttolowerleftfill\",\n 0x25a8,\n \"squareverticalfill\",\n 0x25a5,\n \"squarewhitewithsmallblack\",\n 0x25a3,\n \"srsquare\",\n 0x33db,\n \"ssabengali\",\n 0x09b7,\n \"ssadeva\",\n 0x0937,\n \"ssagujarati\",\n 0x0ab7,\n \"ssangcieuckorean\",\n 0x3149,\n \"ssanghieuhkorean\",\n 0x3185,\n \"ssangieungkorean\",\n 0x3180,\n \"ssangkiyeokkorean\",\n 0x3132,\n \"ssangnieunkorean\",\n 0x3165,\n \"ssangpieupkorean\",\n 0x3143,\n \"ssangsioskorean\",\n 0x3146,\n \"ssangtikeutkorean\",\n 0x3138,\n \"ssuperior\",\n 0xf6f2,\n \"sterling\",\n 0x00a3,\n \"sterlingmonospace\",\n 0xffe1,\n \"strokelongoverlaycmb\",\n 0x0336,\n \"strokeshortoverlaycmb\",\n 0x0335,\n \"subset\",\n 0x2282,\n \"subsetnotequal\",\n 0x228a,\n \"subsetorequal\",\n 0x2286,\n \"succeeds\",\n 0x227b,\n \"suchthat\",\n 0x220b,\n \"suhiragana\",\n 0x3059,\n \"sukatakana\",\n 0x30b9,\n \"sukatakanahalfwidth\",\n 0xff7d,\n \"sukunarabic\",\n 0x0652,\n \"summation\",\n 0x2211,\n \"sun\",\n 0x263c,\n \"superset\",\n 0x2283,\n \"supersetnotequal\",\n 0x228b,\n \"supersetorequal\",\n 0x2287,\n \"svsquare\",\n 0x33dc,\n \"syouwaerasquare\",\n 0x337c,\n \"t\",\n 0x0074,\n \"tabengali\",\n 0x09a4,\n \"tackdown\",\n 0x22a4,\n \"tackleft\",\n 0x22a3,\n \"tadeva\",\n 0x0924,\n \"tagujarati\",\n 0x0aa4,\n \"tagurmukhi\",\n 0x0a24,\n \"taharabic\",\n 0x0637,\n \"tahfinalarabic\",\n 0xfec2,\n \"tahinitialarabic\",\n 0xfec3,\n \"tahiragana\",\n 0x305f,\n \"tahmedialarabic\",\n 0xfec4,\n \"taisyouerasquare\",\n 0x337d,\n \"takatakana\",\n 0x30bf,\n \"takatakanahalfwidth\",\n 0xff80,\n \"tatweelarabic\",\n 0x0640,\n \"tau\",\n 0x03c4,\n \"tav\",\n 0x05ea,\n \"tavdages\",\n 0xfb4a,\n \"tavdagesh\",\n 0xfb4a,\n \"tavdageshhebrew\",\n 0xfb4a,\n \"tavhebrew\",\n 0x05ea,\n \"tbar\",\n 0x0167,\n \"tbopomofo\",\n 0x310a,\n \"tcaron\",\n 0x0165,\n \"tccurl\",\n 0x02a8,\n \"tcedilla\",\n 0x0163,\n \"tcheharabic\",\n 0x0686,\n \"tchehfinalarabic\",\n 0xfb7b,\n \"tchehinitialarabic\",\n 0xfb7c,\n \"tchehmedialarabic\",\n 0xfb7d,\n \"tcircle\",\n 0x24e3,\n \"tcircumflexbelow\",\n 0x1e71,\n \"tcommaaccent\",\n 0x0163,\n \"tdieresis\",\n 0x1e97,\n \"tdotaccent\",\n 0x1e6b,\n \"tdotbelow\",\n 0x1e6d,\n \"tecyrillic\",\n 0x0442,\n \"tedescendercyrillic\",\n 0x04ad,\n \"teharabic\",\n 0x062a,\n \"tehfinalarabic\",\n 0xfe96,\n \"tehhahinitialarabic\",\n 0xfca2,\n \"tehhahisolatedarabic\",\n 0xfc0c,\n \"tehinitialarabic\",\n 0xfe97,\n \"tehiragana\",\n 0x3066,\n \"tehjeeminitialarabic\",\n 0xfca1,\n \"tehjeemisolatedarabic\",\n 0xfc0b,\n \"tehmarbutaarabic\",\n 0x0629,\n \"tehmarbutafinalarabic\",\n 0xfe94,\n \"tehmedialarabic\",\n 0xfe98,\n \"tehmeeminitialarabic\",\n 0xfca4,\n \"tehmeemisolatedarabic\",\n 0xfc0e,\n \"tehnoonfinalarabic\",\n 0xfc73,\n \"tekatakana\",\n 0x30c6,\n \"tekatakanahalfwidth\",\n 0xff83,\n \"telephone\",\n 0x2121,\n \"telephoneblack\",\n 0x260e,\n \"telishagedolahebrew\",\n 0x05a0,\n \"telishaqetanahebrew\",\n 0x05a9,\n \"tencircle\",\n 0x2469,\n \"tenideographicparen\",\n 0x3229,\n \"tenparen\",\n 0x247d,\n \"tenperiod\",\n 0x2491,\n \"tenroman\",\n 0x2179,\n \"tesh\",\n 0x02a7,\n \"tet\",\n 0x05d8,\n \"tetdagesh\",\n 0xfb38,\n \"tetdageshhebrew\",\n 0xfb38,\n \"tethebrew\",\n 0x05d8,\n \"tetsecyrillic\",\n 0x04b5,\n \"tevirhebrew\",\n 0x059b,\n \"tevirlefthebrew\",\n 0x059b,\n \"thabengali\",\n 0x09a5,\n \"thadeva\",\n 0x0925,\n \"thagujarati\",\n 0x0aa5,\n \"thagurmukhi\",\n 0x0a25,\n \"thalarabic\",\n 0x0630,\n \"thalfinalarabic\",\n 0xfeac,\n \"thanthakhatlowleftthai\",\n 0xf898,\n \"thanthakhatlowrightthai\",\n 0xf897,\n \"thanthakhatthai\",\n 0x0e4c,\n \"thanthakhatupperleftthai\",\n 0xf896,\n \"theharabic\",\n 0x062b,\n \"thehfinalarabic\",\n 0xfe9a,\n \"thehinitialarabic\",\n 0xfe9b,\n \"thehmedialarabic\",\n 0xfe9c,\n \"thereexists\",\n 0x2203,\n \"therefore\",\n 0x2234,\n \"theta\",\n 0x03b8,\n \"theta1\",\n 0x03d1,\n \"thetasymbolgreek\",\n 0x03d1,\n \"thieuthacirclekorean\",\n 0x3279,\n \"thieuthaparenkorean\",\n 0x3219,\n \"thieuthcirclekorean\",\n 0x326b,\n \"thieuthkorean\",\n 0x314c,\n \"thieuthparenkorean\",\n 0x320b,\n \"thirteencircle\",\n 0x246c,\n \"thirteenparen\",\n 0x2480,\n \"thirteenperiod\",\n 0x2494,\n \"thonangmonthothai\",\n 0x0e11,\n \"thook\",\n 0x01ad,\n \"thophuthaothai\",\n 0x0e12,\n \"thorn\",\n 0x00fe,\n \"thothahanthai\",\n 0x0e17,\n \"thothanthai\",\n 0x0e10,\n \"thothongthai\",\n 0x0e18,\n \"thothungthai\",\n 0x0e16,\n \"thousandcyrillic\",\n 0x0482,\n \"thousandsseparatorarabic\",\n 0x066c,\n \"thousandsseparatorpersian\",\n 0x066c,\n \"three\",\n 0x0033,\n \"threearabic\",\n 0x0663,\n \"threebengali\",\n 0x09e9,\n \"threecircle\",\n 0x2462,\n \"threecircleinversesansserif\",\n 0x278c,\n \"threedeva\",\n 0x0969,\n \"threeeighths\",\n 0x215c,\n \"threegujarati\",\n 0x0ae9,\n \"threegurmukhi\",\n 0x0a69,\n \"threehackarabic\",\n 0x0663,\n \"threehangzhou\",\n 0x3023,\n \"threeideographicparen\",\n 0x3222,\n \"threeinferior\",\n 0x2083,\n \"threemonospace\",\n 0xff13,\n \"threenumeratorbengali\",\n 0x09f6,\n \"threeoldstyle\",\n 0xf733,\n \"threeparen\",\n 0x2476,\n \"threeperiod\",\n 0x248a,\n \"threepersian\",\n 0x06f3,\n \"threequarters\",\n 0x00be,\n \"threequartersemdash\",\n 0xf6de,\n \"threeroman\",\n 0x2172,\n \"threesuperior\",\n 0x00b3,\n \"threethai\",\n 0x0e53,\n \"thzsquare\",\n 0x3394,\n \"tihiragana\",\n 0x3061,\n \"tikatakana\",\n 0x30c1,\n \"tikatakanahalfwidth\",\n 0xff81,\n \"tikeutacirclekorean\",\n 0x3270,\n \"tikeutaparenkorean\",\n 0x3210,\n \"tikeutcirclekorean\",\n 0x3262,\n \"tikeutkorean\",\n 0x3137,\n \"tikeutparenkorean\",\n 0x3202,\n \"tilde\",\n 0x02dc,\n \"tildebelowcmb\",\n 0x0330,\n \"tildecmb\",\n 0x0303,\n \"tildecomb\",\n 0x0303,\n \"tildedoublecmb\",\n 0x0360,\n \"tildeoperator\",\n 0x223c,\n \"tildeoverlaycmb\",\n 0x0334,\n \"tildeverticalcmb\",\n 0x033e,\n \"timescircle\",\n 0x2297,\n \"tipehahebrew\",\n 0x0596,\n \"tipehalefthebrew\",\n 0x0596,\n \"tippigurmukhi\",\n 0x0a70,\n \"titlocyrilliccmb\",\n 0x0483,\n \"tiwnarmenian\",\n 0x057f,\n \"tlinebelow\",\n 0x1e6f,\n \"tmonospace\",\n 0xff54,\n \"toarmenian\",\n 0x0569,\n \"tohiragana\",\n 0x3068,\n \"tokatakana\",\n 0x30c8,\n \"tokatakanahalfwidth\",\n 0xff84,\n \"tonebarextrahighmod\",\n 0x02e5,\n \"tonebarextralowmod\",\n 0x02e9,\n \"tonebarhighmod\",\n 0x02e6,\n \"tonebarlowmod\",\n 0x02e8,\n \"tonebarmidmod\",\n 0x02e7,\n \"tonefive\",\n 0x01bd,\n \"tonesix\",\n 0x0185,\n \"tonetwo\",\n 0x01a8,\n \"tonos\",\n 0x0384,\n \"tonsquare\",\n 0x3327,\n \"topatakthai\",\n 0x0e0f,\n \"tortoiseshellbracketleft\",\n 0x3014,\n \"tortoiseshellbracketleftsmall\",\n 0xfe5d,\n \"tortoiseshellbracketleftvertical\",\n 0xfe39,\n \"tortoiseshellbracketright\",\n 0x3015,\n \"tortoiseshellbracketrightsmall\",\n 0xfe5e,\n \"tortoiseshellbracketrightvertical\",\n 0xfe3a,\n \"totaothai\",\n 0x0e15,\n \"tpalatalhook\",\n 0x01ab,\n \"tparen\",\n 0x24af,\n \"trademark\",\n 0x2122,\n \"trademarksans\",\n 0xf8ea,\n \"trademarkserif\",\n 0xf6db,\n \"tretroflexhook\",\n 0x0288,\n \"triagdn\",\n 0x25bc,\n \"triaglf\",\n 0x25c4,\n \"triagrt\",\n 0x25ba,\n \"triagup\",\n 0x25b2,\n \"ts\",\n 0x02a6,\n \"tsadi\",\n 0x05e6,\n \"tsadidagesh\",\n 0xfb46,\n \"tsadidageshhebrew\",\n 0xfb46,\n \"tsadihebrew\",\n 0x05e6,\n \"tsecyrillic\",\n 0x0446,\n \"tsere\",\n 0x05b5,\n \"tsere12\",\n 0x05b5,\n \"tsere1e\",\n 0x05b5,\n \"tsere2b\",\n 0x05b5,\n \"tserehebrew\",\n 0x05b5,\n \"tserenarrowhebrew\",\n 0x05b5,\n \"tserequarterhebrew\",\n 0x05b5,\n \"tserewidehebrew\",\n 0x05b5,\n \"tshecyrillic\",\n 0x045b,\n \"tsuperior\",\n 0xf6f3,\n \"ttabengali\",\n 0x099f,\n \"ttadeva\",\n 0x091f,\n \"ttagujarati\",\n 0x0a9f,\n \"ttagurmukhi\",\n 0x0a1f,\n \"tteharabic\",\n 0x0679,\n \"ttehfinalarabic\",\n 0xfb67,\n \"ttehinitialarabic\",\n 0xfb68,\n \"ttehmedialarabic\",\n 0xfb69,\n \"tthabengali\",\n 0x09a0,\n \"tthadeva\",\n 0x0920,\n \"tthagujarati\",\n 0x0aa0,\n \"tthagurmukhi\",\n 0x0a20,\n \"tturned\",\n 0x0287,\n \"tuhiragana\",\n 0x3064,\n \"tukatakana\",\n 0x30c4,\n \"tukatakanahalfwidth\",\n 0xff82,\n \"tusmallhiragana\",\n 0x3063,\n \"tusmallkatakana\",\n 0x30c3,\n \"tusmallkatakanahalfwidth\",\n 0xff6f,\n \"twelvecircle\",\n 0x246b,\n \"twelveparen\",\n 0x247f,\n \"twelveperiod\",\n 0x2493,\n \"twelveroman\",\n 0x217b,\n \"twentycircle\",\n 0x2473,\n \"twentyhangzhou\",\n 0x5344,\n \"twentyparen\",\n 0x2487,\n \"twentyperiod\",\n 0x249b,\n \"two\",\n 0x0032,\n \"twoarabic\",\n 0x0662,\n \"twobengali\",\n 0x09e8,\n \"twocircle\",\n 0x2461,\n \"twocircleinversesansserif\",\n 0x278b,\n \"twodeva\",\n 0x0968,\n \"twodotenleader\",\n 0x2025,\n \"twodotleader\",\n 0x2025,\n \"twodotleadervertical\",\n 0xfe30,\n \"twogujarati\",\n 0x0ae8,\n \"twogurmukhi\",\n 0x0a68,\n \"twohackarabic\",\n 0x0662,\n \"twohangzhou\",\n 0x3022,\n \"twoideographicparen\",\n 0x3221,\n \"twoinferior\",\n 0x2082,\n \"twomonospace\",\n 0xff12,\n \"twonumeratorbengali\",\n 0x09f5,\n \"twooldstyle\",\n 0xf732,\n \"twoparen\",\n 0x2475,\n \"twoperiod\",\n 0x2489,\n \"twopersian\",\n 0x06f2,\n \"tworoman\",\n 0x2171,\n \"twostroke\",\n 0x01bb,\n \"twosuperior\",\n 0x00b2,\n \"twothai\",\n 0x0e52,\n \"twothirds\",\n 0x2154,\n \"u\",\n 0x0075,\n \"uacute\",\n 0x00fa,\n \"ubar\",\n 0x0289,\n \"ubengali\",\n 0x0989,\n \"ubopomofo\",\n 0x3128,\n \"ubreve\",\n 0x016d,\n \"ucaron\",\n 0x01d4,\n \"ucircle\",\n 0x24e4,\n \"ucircumflex\",\n 0x00fb,\n \"ucircumflexbelow\",\n 0x1e77,\n \"ucyrillic\",\n 0x0443,\n \"udattadeva\",\n 0x0951,\n \"udblacute\",\n 0x0171,\n \"udblgrave\",\n 0x0215,\n \"udeva\",\n 0x0909,\n \"udieresis\",\n 0x00fc,\n \"udieresisacute\",\n 0x01d8,\n \"udieresisbelow\",\n 0x1e73,\n \"udieresiscaron\",\n 0x01da,\n \"udieresiscyrillic\",\n 0x04f1,\n \"udieresisgrave\",\n 0x01dc,\n \"udieresismacron\",\n 0x01d6,\n \"udotbelow\",\n 0x1ee5,\n \"ugrave\",\n 0x00f9,\n \"ugujarati\",\n 0x0a89,\n \"ugurmukhi\",\n 0x0a09,\n \"uhiragana\",\n 0x3046,\n \"uhookabove\",\n 0x1ee7,\n \"uhorn\",\n 0x01b0,\n \"uhornacute\",\n 0x1ee9,\n \"uhorndotbelow\",\n 0x1ef1,\n \"uhorngrave\",\n 0x1eeb,\n \"uhornhookabove\",\n 0x1eed,\n \"uhorntilde\",\n 0x1eef,\n \"uhungarumlaut\",\n 0x0171,\n \"uhungarumlautcyrillic\",\n 0x04f3,\n \"uinvertedbreve\",\n 0x0217,\n \"ukatakana\",\n 0x30a6,\n \"ukatakanahalfwidth\",\n 0xff73,\n \"ukcyrillic\",\n 0x0479,\n \"ukorean\",\n 0x315c,\n \"umacron\",\n 0x016b,\n \"umacroncyrillic\",\n 0x04ef,\n \"umacrondieresis\",\n 0x1e7b,\n \"umatragurmukhi\",\n 0x0a41,\n \"umonospace\",\n 0xff55,\n \"underscore\",\n 0x005f,\n \"underscoredbl\",\n 0x2017,\n \"underscoremonospace\",\n 0xff3f,\n \"underscorevertical\",\n 0xfe33,\n \"underscorewavy\",\n 0xfe4f,\n \"union\",\n 0x222a,\n \"universal\",\n 0x2200,\n \"uogonek\",\n 0x0173,\n \"uparen\",\n 0x24b0,\n \"upblock\",\n 0x2580,\n \"upperdothebrew\",\n 0x05c4,\n \"upsilon\",\n 0x03c5,\n \"upsilondieresis\",\n 0x03cb,\n \"upsilondieresistonos\",\n 0x03b0,\n \"upsilonlatin\",\n 0x028a,\n \"upsilontonos\",\n 0x03cd,\n \"uptackbelowcmb\",\n 0x031d,\n \"uptackmod\",\n 0x02d4,\n \"uragurmukhi\",\n 0x0a73,\n \"uring\",\n 0x016f,\n \"ushortcyrillic\",\n 0x045e,\n \"usmallhiragana\",\n 0x3045,\n \"usmallkatakana\",\n 0x30a5,\n \"usmallkatakanahalfwidth\",\n 0xff69,\n \"ustraightcyrillic\",\n 0x04af,\n \"ustraightstrokecyrillic\",\n 0x04b1,\n \"utilde\",\n 0x0169,\n \"utildeacute\",\n 0x1e79,\n \"utildebelow\",\n 0x1e75,\n \"uubengali\",\n 0x098a,\n \"uudeva\",\n 0x090a,\n \"uugujarati\",\n 0x0a8a,\n \"uugurmukhi\",\n 0x0a0a,\n \"uumatragurmukhi\",\n 0x0a42,\n \"uuvowelsignbengali\",\n 0x09c2,\n \"uuvowelsigndeva\",\n 0x0942,\n \"uuvowelsigngujarati\",\n 0x0ac2,\n \"uvowelsignbengali\",\n 0x09c1,\n \"uvowelsigndeva\",\n 0x0941,\n \"uvowelsigngujarati\",\n 0x0ac1,\n \"v\",\n 0x0076,\n \"vadeva\",\n 0x0935,\n \"vagujarati\",\n 0x0ab5,\n \"vagurmukhi\",\n 0x0a35,\n \"vakatakana\",\n 0x30f7,\n \"vav\",\n 0x05d5,\n \"vavdagesh\",\n 0xfb35,\n \"vavdagesh65\",\n 0xfb35,\n \"vavdageshhebrew\",\n 0xfb35,\n \"vavhebrew\",\n 0x05d5,\n \"vavholam\",\n 0xfb4b,\n \"vavholamhebrew\",\n 0xfb4b,\n \"vavvavhebrew\",\n 0x05f0,\n \"vavyodhebrew\",\n 0x05f1,\n \"vcircle\",\n 0x24e5,\n \"vdotbelow\",\n 0x1e7f,\n \"vecyrillic\",\n 0x0432,\n \"veharabic\",\n 0x06a4,\n \"vehfinalarabic\",\n 0xfb6b,\n \"vehinitialarabic\",\n 0xfb6c,\n \"vehmedialarabic\",\n 0xfb6d,\n \"vekatakana\",\n 0x30f9,\n \"venus\",\n 0x2640,\n \"verticalbar\",\n 0x007c,\n \"verticallineabovecmb\",\n 0x030d,\n \"verticallinebelowcmb\",\n 0x0329,\n \"verticallinelowmod\",\n 0x02cc,\n \"verticallinemod\",\n 0x02c8,\n \"vewarmenian\",\n 0x057e,\n \"vhook\",\n 0x028b,\n \"vikatakana\",\n 0x30f8,\n \"viramabengali\",\n 0x09cd,\n \"viramadeva\",\n 0x094d,\n \"viramagujarati\",\n 0x0acd,\n \"visargabengali\",\n 0x0983,\n \"visargadeva\",\n 0x0903,\n \"visargagujarati\",\n 0x0a83,\n \"vmonospace\",\n 0xff56,\n \"voarmenian\",\n 0x0578,\n \"voicediterationhiragana\",\n 0x309e,\n \"voicediterationkatakana\",\n 0x30fe,\n \"voicedmarkkana\",\n 0x309b,\n \"voicedmarkkanahalfwidth\",\n 0xff9e,\n \"vokatakana\",\n 0x30fa,\n \"vparen\",\n 0x24b1,\n \"vtilde\",\n 0x1e7d,\n \"vturned\",\n 0x028c,\n \"vuhiragana\",\n 0x3094,\n \"vukatakana\",\n 0x30f4,\n \"w\",\n 0x0077,\n \"wacute\",\n 0x1e83,\n \"waekorean\",\n 0x3159,\n \"wahiragana\",\n 0x308f,\n \"wakatakana\",\n 0x30ef,\n \"wakatakanahalfwidth\",\n 0xff9c,\n \"wakorean\",\n 0x3158,\n \"wasmallhiragana\",\n 0x308e,\n \"wasmallkatakana\",\n 0x30ee,\n \"wattosquare\",\n 0x3357,\n \"wavedash\",\n 0x301c,\n \"wavyunderscorevertical\",\n 0xfe34,\n \"wawarabic\",\n 0x0648,\n \"wawfinalarabic\",\n 0xfeee,\n \"wawhamzaabovearabic\",\n 0x0624,\n \"wawhamzaabovefinalarabic\",\n 0xfe86,\n \"wbsquare\",\n 0x33dd,\n \"wcircle\",\n 0x24e6,\n \"wcircumflex\",\n 0x0175,\n \"wdieresis\",\n 0x1e85,\n \"wdotaccent\",\n 0x1e87,\n \"wdotbelow\",\n 0x1e89,\n \"wehiragana\",\n 0x3091,\n \"weierstrass\",\n 0x2118,\n \"wekatakana\",\n 0x30f1,\n \"wekorean\",\n 0x315e,\n \"weokorean\",\n 0x315d,\n \"wgrave\",\n 0x1e81,\n \"whitebullet\",\n 0x25e6,\n \"whitecircle\",\n 0x25cb,\n \"whitecircleinverse\",\n 0x25d9,\n \"whitecornerbracketleft\",\n 0x300e,\n \"whitecornerbracketleftvertical\",\n 0xfe43,\n \"whitecornerbracketright\",\n 0x300f,\n \"whitecornerbracketrightvertical\",\n 0xfe44,\n \"whitediamond\",\n 0x25c7,\n \"whitediamondcontainingblacksmalldiamond\",\n 0x25c8,\n \"whitedownpointingsmalltriangle\",\n 0x25bf,\n \"whitedownpointingtriangle\",\n 0x25bd,\n \"whiteleftpointingsmalltriangle\",\n 0x25c3,\n \"whiteleftpointingtriangle\",\n 0x25c1,\n \"whitelenticularbracketleft\",\n 0x3016,\n \"whitelenticularbracketright\",\n 0x3017,\n \"whiterightpointingsmalltriangle\",\n 0x25b9,\n \"whiterightpointingtriangle\",\n 0x25b7,\n \"whitesmallsquare\",\n 0x25ab,\n \"whitesmilingface\",\n 0x263a,\n \"whitesquare\",\n 0x25a1,\n \"whitestar\",\n 0x2606,\n \"whitetelephone\",\n 0x260f,\n \"whitetortoiseshellbracketleft\",\n 0x3018,\n \"whitetortoiseshellbracketright\",\n 0x3019,\n \"whiteuppointingsmalltriangle\",\n 0x25b5,\n \"whiteuppointingtriangle\",\n 0x25b3,\n \"wihiragana\",\n 0x3090,\n \"wikatakana\",\n 0x30f0,\n \"wikorean\",\n 0x315f,\n \"wmonospace\",\n 0xff57,\n \"wohiragana\",\n 0x3092,\n \"wokatakana\",\n 0x30f2,\n \"wokatakanahalfwidth\",\n 0xff66,\n \"won\",\n 0x20a9,\n \"wonmonospace\",\n 0xffe6,\n \"wowaenthai\",\n 0x0e27,\n \"wparen\",\n 0x24b2,\n \"wring\",\n 0x1e98,\n \"wsuperior\",\n 0x02b7,\n \"wturned\",\n 0x028d,\n \"wynn\",\n 0x01bf,\n \"x\",\n 0x0078,\n \"xabovecmb\",\n 0x033d,\n \"xbopomofo\",\n 0x3112,\n \"xcircle\",\n 0x24e7,\n \"xdieresis\",\n 0x1e8d,\n \"xdotaccent\",\n 0x1e8b,\n \"xeharmenian\",\n 0x056d,\n \"xi\",\n 0x03be,\n \"xmonospace\",\n 0xff58,\n \"xparen\",\n 0x24b3,\n \"xsuperior\",\n 0x02e3,\n \"y\",\n 0x0079,\n \"yaadosquare\",\n 0x334e,\n \"yabengali\",\n 0x09af,\n \"yacute\",\n 0x00fd,\n \"yadeva\",\n 0x092f,\n \"yaekorean\",\n 0x3152,\n \"yagujarati\",\n 0x0aaf,\n \"yagurmukhi\",\n 0x0a2f,\n \"yahiragana\",\n 0x3084,\n \"yakatakana\",\n 0x30e4,\n \"yakatakanahalfwidth\",\n 0xff94,\n \"yakorean\",\n 0x3151,\n \"yamakkanthai\",\n 0x0e4e,\n \"yasmallhiragana\",\n 0x3083,\n \"yasmallkatakana\",\n 0x30e3,\n \"yasmallkatakanahalfwidth\",\n 0xff6c,\n \"yatcyrillic\",\n 0x0463,\n \"ycircle\",\n 0x24e8,\n \"ycircumflex\",\n 0x0177,\n \"ydieresis\",\n 0x00ff,\n \"ydotaccent\",\n 0x1e8f,\n \"ydotbelow\",\n 0x1ef5,\n \"yeharabic\",\n 0x064a,\n \"yehbarreearabic\",\n 0x06d2,\n \"yehbarreefinalarabic\",\n 0xfbaf,\n \"yehfinalarabic\",\n 0xfef2,\n \"yehhamzaabovearabic\",\n 0x0626,\n \"yehhamzaabovefinalarabic\",\n 0xfe8a,\n \"yehhamzaaboveinitialarabic\",\n 0xfe8b,\n \"yehhamzaabovemedialarabic\",\n 0xfe8c,\n \"yehinitialarabic\",\n 0xfef3,\n \"yehmedialarabic\",\n 0xfef4,\n \"yehmeeminitialarabic\",\n 0xfcdd,\n \"yehmeemisolatedarabic\",\n 0xfc58,\n \"yehnoonfinalarabic\",\n 0xfc94,\n \"yehthreedotsbelowarabic\",\n 0x06d1,\n \"yekorean\",\n 0x3156,\n \"yen\",\n 0x00a5,\n \"yenmonospace\",\n 0xffe5,\n \"yeokorean\",\n 0x3155,\n \"yeorinhieuhkorean\",\n 0x3186,\n \"yerahbenyomohebrew\",\n 0x05aa,\n \"yerahbenyomolefthebrew\",\n 0x05aa,\n \"yericyrillic\",\n 0x044b,\n \"yerudieresiscyrillic\",\n 0x04f9,\n \"yesieungkorean\",\n 0x3181,\n \"yesieungpansioskorean\",\n 0x3183,\n \"yesieungsioskorean\",\n 0x3182,\n \"yetivhebrew\",\n 0x059a,\n \"ygrave\",\n 0x1ef3,\n \"yhook\",\n 0x01b4,\n \"yhookabove\",\n 0x1ef7,\n \"yiarmenian\",\n 0x0575,\n \"yicyrillic\",\n 0x0457,\n \"yikorean\",\n 0x3162,\n \"yinyang\",\n 0x262f,\n \"yiwnarmenian\",\n 0x0582,\n \"ymonospace\",\n 0xff59,\n \"yod\",\n 0x05d9,\n \"yoddagesh\",\n 0xfb39,\n \"yoddageshhebrew\",\n 0xfb39,\n \"yodhebrew\",\n 0x05d9,\n \"yodyodhebrew\",\n 0x05f2,\n \"yodyodpatahhebrew\",\n 0xfb1f,\n \"yohiragana\",\n 0x3088,\n \"yoikorean\",\n 0x3189,\n \"yokatakana\",\n 0x30e8,\n \"yokatakanahalfwidth\",\n 0xff96,\n \"yokorean\",\n 0x315b,\n \"yosmallhiragana\",\n 0x3087,\n \"yosmallkatakana\",\n 0x30e7,\n \"yosmallkatakanahalfwidth\",\n 0xff6e,\n \"yotgreek\",\n 0x03f3,\n \"yoyaekorean\",\n 0x3188,\n \"yoyakorean\",\n 0x3187,\n \"yoyakthai\",\n 0x0e22,\n \"yoyingthai\",\n 0x0e0d,\n \"yparen\",\n 0x24b4,\n \"ypogegrammeni\",\n 0x037a,\n \"ypogegrammenigreekcmb\",\n 0x0345,\n \"yr\",\n 0x01a6,\n \"yring\",\n 0x1e99,\n \"ysuperior\",\n 0x02b8,\n \"ytilde\",\n 0x1ef9,\n \"yturned\",\n 0x028e,\n \"yuhiragana\",\n 0x3086,\n \"yuikorean\",\n 0x318c,\n \"yukatakana\",\n 0x30e6,\n \"yukatakanahalfwidth\",\n 0xff95,\n \"yukorean\",\n 0x3160,\n \"yusbigcyrillic\",\n 0x046b,\n \"yusbigiotifiedcyrillic\",\n 0x046d,\n \"yuslittlecyrillic\",\n 0x0467,\n \"yuslittleiotifiedcyrillic\",\n 0x0469,\n \"yusmallhiragana\",\n 0x3085,\n \"yusmallkatakana\",\n 0x30e5,\n \"yusmallkatakanahalfwidth\",\n 0xff6d,\n \"yuyekorean\",\n 0x318b,\n \"yuyeokorean\",\n 0x318a,\n \"yyabengali\",\n 0x09df,\n \"yyadeva\",\n 0x095f,\n \"z\",\n 0x007a,\n \"zaarmenian\",\n 0x0566,\n \"zacute\",\n 0x017a,\n \"zadeva\",\n 0x095b,\n \"zagurmukhi\",\n 0x0a5b,\n \"zaharabic\",\n 0x0638,\n \"zahfinalarabic\",\n 0xfec6,\n \"zahinitialarabic\",\n 0xfec7,\n \"zahiragana\",\n 0x3056,\n \"zahmedialarabic\",\n 0xfec8,\n \"zainarabic\",\n 0x0632,\n \"zainfinalarabic\",\n 0xfeb0,\n \"zakatakana\",\n 0x30b6,\n \"zaqefgadolhebrew\",\n 0x0595,\n \"zaqefqatanhebrew\",\n 0x0594,\n \"zarqahebrew\",\n 0x0598,\n \"zayin\",\n 0x05d6,\n \"zayindagesh\",\n 0xfb36,\n \"zayindageshhebrew\",\n 0xfb36,\n \"zayinhebrew\",\n 0x05d6,\n \"zbopomofo\",\n 0x3117,\n \"zcaron\",\n 0x017e,\n \"zcircle\",\n 0x24e9,\n \"zcircumflex\",\n 0x1e91,\n \"zcurl\",\n 0x0291,\n \"zdot\",\n 0x017c,\n \"zdotaccent\",\n 0x017c,\n \"zdotbelow\",\n 0x1e93,\n \"zecyrillic\",\n 0x0437,\n \"zedescendercyrillic\",\n 0x0499,\n \"zedieresiscyrillic\",\n 0x04df,\n \"zehiragana\",\n 0x305c,\n \"zekatakana\",\n 0x30bc,\n \"zero\",\n 0x0030,\n \"zeroarabic\",\n 0x0660,\n \"zerobengali\",\n 0x09e6,\n \"zerodeva\",\n 0x0966,\n \"zerogujarati\",\n 0x0ae6,\n \"zerogurmukhi\",\n 0x0a66,\n \"zerohackarabic\",\n 0x0660,\n \"zeroinferior\",\n 0x2080,\n \"zeromonospace\",\n 0xff10,\n \"zerooldstyle\",\n 0xf730,\n \"zeropersian\",\n 0x06f0,\n \"zerosuperior\",\n 0x2070,\n \"zerothai\",\n 0x0e50,\n \"zerowidthjoiner\",\n 0xfeff,\n \"zerowidthnonjoiner\",\n 0x200c,\n \"zerowidthspace\",\n 0x200b,\n \"zeta\",\n 0x03b6,\n \"zhbopomofo\",\n 0x3113,\n \"zhearmenian\",\n 0x056a,\n \"zhebrevecyrillic\",\n 0x04c2,\n \"zhecyrillic\",\n 0x0436,\n \"zhedescendercyrillic\",\n 0x0497,\n \"zhedieresiscyrillic\",\n 0x04dd,\n \"zihiragana\",\n 0x3058,\n \"zikatakana\",\n 0x30b8,\n \"zinorhebrew\",\n 0x05ae,\n \"zlinebelow\",\n 0x1e95,\n \"zmonospace\",\n 0xff5a,\n \"zohiragana\",\n 0x305e,\n \"zokatakana\",\n 0x30be,\n \"zparen\",\n 0x24b5,\n \"zretroflexhook\",\n 0x0290,\n \"zstroke\",\n 0x01b6,\n \"zuhiragana\",\n 0x305a,\n \"zukatakana\",\n 0x30ba,\n \".notdef\",\n 0x0000,\n \"angbracketleftbig\",\n 0x2329,\n \"angbracketleftBig\",\n 0x2329,\n \"angbracketleftbigg\",\n 0x2329,\n \"angbracketleftBigg\",\n 0x2329,\n \"angbracketrightBig\",\n 0x232a,\n \"angbracketrightbig\",\n 0x232a,\n \"angbracketrightBigg\",\n 0x232a,\n \"angbracketrightbigg\",\n 0x232a,\n \"arrowhookleft\",\n 0x21aa,\n \"arrowhookright\",\n 0x21a9,\n \"arrowlefttophalf\",\n 0x21bc,\n \"arrowleftbothalf\",\n 0x21bd,\n \"arrownortheast\",\n 0x2197,\n \"arrownorthwest\",\n 0x2196,\n \"arrowrighttophalf\",\n 0x21c0,\n \"arrowrightbothalf\",\n 0x21c1,\n \"arrowsoutheast\",\n 0x2198,\n \"arrowsouthwest\",\n 0x2199,\n \"backslashbig\",\n 0x2216,\n \"backslashBig\",\n 0x2216,\n \"backslashBigg\",\n 0x2216,\n \"backslashbigg\",\n 0x2216,\n \"bardbl\",\n 0x2016,\n \"bracehtipdownleft\",\n 0xfe37,\n \"bracehtipdownright\",\n 0xfe37,\n \"bracehtipupleft\",\n 0xfe38,\n \"bracehtipupright\",\n 0xfe38,\n \"braceleftBig\",\n 0x007b,\n \"braceleftbig\",\n 0x007b,\n \"braceleftbigg\",\n 0x007b,\n \"braceleftBigg\",\n 0x007b,\n \"bracerightBig\",\n 0x007d,\n \"bracerightbig\",\n 0x007d,\n \"bracerightbigg\",\n 0x007d,\n \"bracerightBigg\",\n 0x007d,\n \"bracketleftbig\",\n 0x005b,\n \"bracketleftBig\",\n 0x005b,\n \"bracketleftbigg\",\n 0x005b,\n \"bracketleftBigg\",\n 0x005b,\n \"bracketrightBig\",\n 0x005d,\n \"bracketrightbig\",\n 0x005d,\n \"bracketrightbigg\",\n 0x005d,\n \"bracketrightBigg\",\n 0x005d,\n \"ceilingleftbig\",\n 0x2308,\n \"ceilingleftBig\",\n 0x2308,\n \"ceilingleftBigg\",\n 0x2308,\n \"ceilingleftbigg\",\n 0x2308,\n \"ceilingrightbig\",\n 0x2309,\n \"ceilingrightBig\",\n 0x2309,\n \"ceilingrightbigg\",\n 0x2309,\n \"ceilingrightBigg\",\n 0x2309,\n \"circledotdisplay\",\n 0x2299,\n \"circledottext\",\n 0x2299,\n \"circlemultiplydisplay\",\n 0x2297,\n \"circlemultiplytext\",\n 0x2297,\n \"circleplusdisplay\",\n 0x2295,\n \"circleplustext\",\n 0x2295,\n \"contintegraldisplay\",\n 0x222e,\n \"contintegraltext\",\n 0x222e,\n \"coproductdisplay\",\n 0x2210,\n \"coproducttext\",\n 0x2210,\n \"floorleftBig\",\n 0x230a,\n \"floorleftbig\",\n 0x230a,\n \"floorleftbigg\",\n 0x230a,\n \"floorleftBigg\",\n 0x230a,\n \"floorrightbig\",\n 0x230b,\n \"floorrightBig\",\n 0x230b,\n \"floorrightBigg\",\n 0x230b,\n \"floorrightbigg\",\n 0x230b,\n \"hatwide\",\n 0x0302,\n \"hatwider\",\n 0x0302,\n \"hatwidest\",\n 0x0302,\n \"intercal\",\n 0x1d40,\n \"integraldisplay\",\n 0x222b,\n \"integraltext\",\n 0x222b,\n \"intersectiondisplay\",\n 0x22c2,\n \"intersectiontext\",\n 0x22c2,\n \"logicalanddisplay\",\n 0x2227,\n \"logicalandtext\",\n 0x2227,\n \"logicalordisplay\",\n 0x2228,\n \"logicalortext\",\n 0x2228,\n \"parenleftBig\",\n 0x0028,\n \"parenleftbig\",\n 0x0028,\n \"parenleftBigg\",\n 0x0028,\n \"parenleftbigg\",\n 0x0028,\n \"parenrightBig\",\n 0x0029,\n \"parenrightbig\",\n 0x0029,\n \"parenrightBigg\",\n 0x0029,\n \"parenrightbigg\",\n 0x0029,\n \"prime\",\n 0x2032,\n \"productdisplay\",\n 0x220f,\n \"producttext\",\n 0x220f,\n \"radicalbig\",\n 0x221a,\n \"radicalBig\",\n 0x221a,\n \"radicalBigg\",\n 0x221a,\n \"radicalbigg\",\n 0x221a,\n \"radicalbt\",\n 0x221a,\n \"radicaltp\",\n 0x221a,\n \"radicalvertex\",\n 0x221a,\n \"slashbig\",\n 0x002f,\n \"slashBig\",\n 0x002f,\n \"slashBigg\",\n 0x002f,\n \"slashbigg\",\n 0x002f,\n \"summationdisplay\",\n 0x2211,\n \"summationtext\",\n 0x2211,\n \"tildewide\",\n 0x02dc,\n \"tildewider\",\n 0x02dc,\n \"tildewidest\",\n 0x02dc,\n \"uniondisplay\",\n 0x22c3,\n \"unionmultidisplay\",\n 0x228e,\n \"unionmultitext\",\n 0x228e,\n \"unionsqdisplay\",\n 0x2294,\n \"unionsqtext\",\n 0x2294,\n \"uniontext\",\n 0x22c3,\n \"vextenddouble\",\n 0x2225,\n \"vextendsingle\",\n 0x2223\n ];\n});\nconst getDingbatsGlyphsUnicode = (0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getArrayLookupTableFactory)(function () {\n return [\n \"space\",\n 0x0020,\n \"a1\",\n 0x2701,\n \"a2\",\n 0x2702,\n \"a202\",\n 0x2703,\n \"a3\",\n 0x2704,\n \"a4\",\n 0x260e,\n \"a5\",\n 0x2706,\n \"a119\",\n 0x2707,\n \"a118\",\n 0x2708,\n \"a117\",\n 0x2709,\n \"a11\",\n 0x261b,\n \"a12\",\n 0x261e,\n \"a13\",\n 0x270c,\n \"a14\",\n 0x270d,\n \"a15\",\n 0x270e,\n \"a16\",\n 0x270f,\n \"a105\",\n 0x2710,\n \"a17\",\n 0x2711,\n \"a18\",\n 0x2712,\n \"a19\",\n 0x2713,\n \"a20\",\n 0x2714,\n \"a21\",\n 0x2715,\n \"a22\",\n 0x2716,\n \"a23\",\n 0x2717,\n \"a24\",\n 0x2718,\n \"a25\",\n 0x2719,\n \"a26\",\n 0x271a,\n \"a27\",\n 0x271b,\n \"a28\",\n 0x271c,\n \"a6\",\n 0x271d,\n \"a7\",\n 0x271e,\n \"a8\",\n 0x271f,\n \"a9\",\n 0x2720,\n \"a10\",\n 0x2721,\n \"a29\",\n 0x2722,\n \"a30\",\n 0x2723,\n \"a31\",\n 0x2724,\n \"a32\",\n 0x2725,\n \"a33\",\n 0x2726,\n \"a34\",\n 0x2727,\n \"a35\",\n 0x2605,\n \"a36\",\n 0x2729,\n \"a37\",\n 0x272a,\n \"a38\",\n 0x272b,\n \"a39\",\n 0x272c,\n \"a40\",\n 0x272d,\n \"a41\",\n 0x272e,\n \"a42\",\n 0x272f,\n \"a43\",\n 0x2730,\n \"a44\",\n 0x2731,\n \"a45\",\n 0x2732,\n \"a46\",\n 0x2733,\n \"a47\",\n 0x2734,\n \"a48\",\n 0x2735,\n \"a49\",\n 0x2736,\n \"a50\",\n 0x2737,\n \"a51\",\n 0x2738,\n \"a52\",\n 0x2739,\n \"a53\",\n 0x273a,\n \"a54\",\n 0x273b,\n \"a55\",\n 0x273c,\n \"a56\",\n 0x273d,\n \"a57\",\n 0x273e,\n \"a58\",\n 0x273f,\n \"a59\",\n 0x2740,\n \"a60\",\n 0x2741,\n \"a61\",\n 0x2742,\n \"a62\",\n 0x2743,\n \"a63\",\n 0x2744,\n \"a64\",\n 0x2745,\n \"a65\",\n 0x2746,\n \"a66\",\n 0x2747,\n \"a67\",\n 0x2748,\n \"a68\",\n 0x2749,\n \"a69\",\n 0x274a,\n \"a70\",\n 0x274b,\n \"a71\",\n 0x25cf,\n \"a72\",\n 0x274d,\n \"a73\",\n 0x25a0,\n \"a74\",\n 0x274f,\n \"a203\",\n 0x2750,\n \"a75\",\n 0x2751,\n \"a204\",\n 0x2752,\n \"a76\",\n 0x25b2,\n \"a77\",\n 0x25bc,\n \"a78\",\n 0x25c6,\n \"a79\",\n 0x2756,\n \"a81\",\n 0x25d7,\n \"a82\",\n 0x2758,\n \"a83\",\n 0x2759,\n \"a84\",\n 0x275a,\n \"a97\",\n 0x275b,\n \"a98\",\n 0x275c,\n \"a99\",\n 0x275d,\n \"a100\",\n 0x275e,\n \"a101\",\n 0x2761,\n \"a102\",\n 0x2762,\n \"a103\",\n 0x2763,\n \"a104\",\n 0x2764,\n \"a106\",\n 0x2765,\n \"a107\",\n 0x2766,\n \"a108\",\n 0x2767,\n \"a112\",\n 0x2663,\n \"a111\",\n 0x2666,\n \"a110\",\n 0x2665,\n \"a109\",\n 0x2660,\n \"a120\",\n 0x2460,\n \"a121\",\n 0x2461,\n \"a122\",\n 0x2462,\n \"a123\",\n 0x2463,\n \"a124\",\n 0x2464,\n \"a125\",\n 0x2465,\n \"a126\",\n 0x2466,\n \"a127\",\n 0x2467,\n \"a128\",\n 0x2468,\n \"a129\",\n 0x2469,\n \"a130\",\n 0x2776,\n \"a131\",\n 0x2777,\n \"a132\",\n 0x2778,\n \"a133\",\n 0x2779,\n \"a134\",\n 0x277a,\n \"a135\",\n 0x277b,\n \"a136\",\n 0x277c,\n \"a137\",\n 0x277d,\n \"a138\",\n 0x277e,\n \"a139\",\n 0x277f,\n \"a140\",\n 0x2780,\n \"a141\",\n 0x2781,\n \"a142\",\n 0x2782,\n \"a143\",\n 0x2783,\n \"a144\",\n 0x2784,\n \"a145\",\n 0x2785,\n \"a146\",\n 0x2786,\n \"a147\",\n 0x2787,\n \"a148\",\n 0x2788,\n \"a149\",\n 0x2789,\n \"a150\",\n 0x278a,\n \"a151\",\n 0x278b,\n \"a152\",\n 0x278c,\n \"a153\",\n 0x278d,\n \"a154\",\n 0x278e,\n \"a155\",\n 0x278f,\n \"a156\",\n 0x2790,\n \"a157\",\n 0x2791,\n \"a158\",\n 0x2792,\n \"a159\",\n 0x2793,\n \"a160\",\n 0x2794,\n \"a161\",\n 0x2192,\n \"a163\",\n 0x2194,\n \"a164\",\n 0x2195,\n \"a196\",\n 0x2798,\n \"a165\",\n 0x2799,\n \"a192\",\n 0x279a,\n \"a166\",\n 0x279b,\n \"a167\",\n 0x279c,\n \"a168\",\n 0x279d,\n \"a169\",\n 0x279e,\n \"a170\",\n 0x279f,\n \"a171\",\n 0x27a0,\n \"a172\",\n 0x27a1,\n \"a173\",\n 0x27a2,\n \"a162\",\n 0x27a3,\n \"a174\",\n 0x27a4,\n \"a175\",\n 0x27a5,\n \"a176\",\n 0x27a6,\n \"a177\",\n 0x27a7,\n \"a178\",\n 0x27a8,\n \"a179\",\n 0x27a9,\n \"a193\",\n 0x27aa,\n \"a180\",\n 0x27ab,\n \"a199\",\n 0x27ac,\n \"a181\",\n 0x27ad,\n \"a200\",\n 0x27ae,\n \"a182\",\n 0x27af,\n \"a201\",\n 0x27b1,\n \"a183\",\n 0x27b2,\n \"a184\",\n 0x27b3,\n \"a197\",\n 0x27b4,\n \"a185\",\n 0x27b5,\n \"a194\",\n 0x27b6,\n \"a198\",\n 0x27b7,\n \"a186\",\n 0x27b8,\n \"a195\",\n 0x27b9,\n \"a187\",\n 0x27ba,\n \"a188\",\n 0x27bb,\n \"a189\",\n 0x27bc,\n \"a190\",\n 0x27bd,\n \"a191\",\n 0x27be,\n \"a89\",\n 0x2768,\n \"a90\",\n 0x2769,\n \"a93\",\n 0x276a,\n \"a94\",\n 0x276b,\n \"a91\",\n 0x276c,\n \"a92\",\n 0x276d,\n \"a205\",\n 0x276e,\n \"a85\",\n 0x276f,\n \"a206\",\n 0x2770,\n \"a86\",\n 0x2771,\n \"a87\",\n 0x2772,\n \"a88\",\n 0x2773,\n \"a95\",\n 0x2774,\n \"a96\",\n 0x2775,\n \".notdef\",\n 0x0000\n ];\n});\n\n\n/***/ }),\n/* 36 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getSymbolsFonts = exports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getStdFontMap = exports.getSerifFonts = exports.getNonStdFontMap = exports.getGlyphMapForStandardFonts = 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/* 37 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__.r(__webpack_exports__);\n/* harmony export */ __w_pdfjs_require__.d(__webpack_exports__, {\n/* harmony export */ \"getNormalizedUnicodes\": () => (/* binding */ getNormalizedUnicodes),\n/* harmony export */ \"getUnicodeForGlyph\": () => (/* binding */ getUnicodeForGlyph),\n/* harmony export */ \"getUnicodeRangeFor\": () => (/* binding */ getUnicodeRangeFor),\n/* harmony export */ \"mapSpecialUnicodeValues\": () => (/* binding */ mapSpecialUnicodeValues),\n/* harmony export */ \"reverseIfRtl\": () => (/* binding */ reverseIfRtl)\n/* harmony export */ });\n/* harmony import */ var _core_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __w_pdfjs_require__(8);\n\nconst getSpecialPUASymbols = (0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.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 let unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n return unicode;\n }\n if (!name) {\n return -1;\n }\n if (name[0] === \"u\") {\n const nameLen = name.length;\n let 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}\nconst 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 (let i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n const range = UnicodeRanges[i];\n if (value >= range.begin && value < range.end) {\n return i;\n }\n }\n return -1;\n}\nfunction isRTLRangeFor(value) {\n let 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}\nconst getNormalizedUnicodes = (0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getArrayLookupTableFactory)(function () {\n return [\n \"\\u00A8\",\n \"\\u0020\\u0308\",\n \"\\u00AF\",\n \"\\u0020\\u0304\",\n \"\\u00B4\",\n \"\\u0020\\u0301\",\n \"\\u00B5\",\n \"\\u03BC\",\n \"\\u00B8\",\n \"\\u0020\\u0327\",\n \"\\u0132\",\n \"\\u0049\\u004A\",\n \"\\u0133\",\n \"\\u0069\\u006A\",\n \"\\u013F\",\n \"\\u004C\\u00B7\",\n \"\\u0140\",\n \"\\u006C\\u00B7\",\n \"\\u0149\",\n \"\\u02BC\\u006E\",\n \"\\u017F\",\n \"\\u0073\",\n \"\\u01C4\",\n \"\\u0044\\u017D\",\n \"\\u01C5\",\n \"\\u0044\\u017E\",\n \"\\u01C6\",\n \"\\u0064\\u017E\",\n \"\\u01C7\",\n \"\\u004C\\u004A\",\n \"\\u01C8\",\n \"\\u004C\\u006A\",\n \"\\u01C9\",\n \"\\u006C\\u006A\",\n \"\\u01CA\",\n \"\\u004E\\u004A\",\n \"\\u01CB\",\n \"\\u004E\\u006A\",\n \"\\u01CC\",\n \"\\u006E\\u006A\",\n \"\\u01F1\",\n \"\\u0044\\u005A\",\n \"\\u01F2\",\n \"\\u0044\\u007A\",\n \"\\u01F3\",\n \"\\u0064\\u007A\",\n \"\\u02D8\",\n \"\\u0020\\u0306\",\n \"\\u02D9\",\n \"\\u0020\\u0307\",\n \"\\u02DA\",\n \"\\u0020\\u030A\",\n \"\\u02DB\",\n \"\\u0020\\u0328\",\n \"\\u02DC\",\n \"\\u0020\\u0303\",\n \"\\u02DD\",\n \"\\u0020\\u030B\",\n \"\\u037A\",\n \"\\u0020\\u0345\",\n \"\\u0384\",\n \"\\u0020\\u0301\",\n \"\\u03D0\",\n \"\\u03B2\",\n \"\\u03D1\",\n \"\\u03B8\",\n \"\\u03D2\",\n \"\\u03A5\",\n \"\\u03D5\",\n \"\\u03C6\",\n \"\\u03D6\",\n \"\\u03C0\",\n \"\\u03F0\",\n \"\\u03BA\",\n \"\\u03F1\",\n \"\\u03C1\",\n \"\\u03F2\",\n \"\\u03C2\",\n \"\\u03F4\",\n \"\\u0398\",\n \"\\u03F5\",\n \"\\u03B5\",\n \"\\u03F9\",\n \"\\u03A3\",\n \"\\u0587\",\n \"\\u0565\\u0582\",\n \"\\u0675\",\n \"\\u0627\\u0674\",\n \"\\u0676\",\n \"\\u0648\\u0674\",\n \"\\u0677\",\n \"\\u06C7\\u0674\",\n \"\\u0678\",\n \"\\u064A\\u0674\",\n \"\\u0E33\",\n \"\\u0E4D\\u0E32\",\n \"\\u0EB3\",\n \"\\u0ECD\\u0EB2\",\n \"\\u0EDC\",\n \"\\u0EAB\\u0E99\",\n \"\\u0EDD\",\n \"\\u0EAB\\u0EA1\",\n \"\\u0F77\",\n \"\\u0FB2\\u0F81\",\n \"\\u0F79\",\n \"\\u0FB3\\u0F81\",\n \"\\u1E9A\",\n \"\\u0061\\u02BE\",\n \"\\u1FBD\",\n \"\\u0020\\u0313\",\n \"\\u1FBF\",\n \"\\u0020\\u0313\",\n \"\\u1FC0\",\n \"\\u0020\\u0342\",\n \"\\u1FFE\",\n \"\\u0020\\u0314\",\n \"\\u2002\",\n \"\\u0020\",\n \"\\u2003\",\n \"\\u0020\",\n \"\\u2004\",\n \"\\u0020\",\n \"\\u2005\",\n \"\\u0020\",\n \"\\u2006\",\n \"\\u0020\",\n \"\\u2008\",\n \"\\u0020\",\n \"\\u2009\",\n \"\\u0020\",\n \"\\u200A\",\n \"\\u0020\",\n \"\\u2017\",\n \"\\u0020\\u0333\",\n \"\\u2024\",\n \"\\u002E\",\n \"\\u2025\",\n \"\\u002E\\u002E\",\n \"\\u2026\",\n \"\\u002E\\u002E\\u002E\",\n \"\\u2033\",\n \"\\u2032\\u2032\",\n \"\\u2034\",\n \"\\u2032\\u2032\\u2032\",\n \"\\u2036\",\n \"\\u2035\\u2035\",\n \"\\u2037\",\n \"\\u2035\\u2035\\u2035\",\n \"\\u203C\",\n \"\\u0021\\u0021\",\n \"\\u203E\",\n \"\\u0020\\u0305\",\n \"\\u2047\",\n \"\\u003F\\u003F\",\n \"\\u2048\",\n \"\\u003F\\u0021\",\n \"\\u2049\",\n \"\\u0021\\u003F\",\n \"\\u2057\",\n \"\\u2032\\u2032\\u2032\\u2032\",\n \"\\u205F\",\n \"\\u0020\",\n \"\\u20A8\",\n \"\\u0052\\u0073\",\n \"\\u2100\",\n \"\\u0061\\u002F\\u0063\",\n \"\\u2101\",\n \"\\u0061\\u002F\\u0073\",\n \"\\u2103\",\n \"\\u00B0\\u0043\",\n \"\\u2105\",\n \"\\u0063\\u002F\\u006F\",\n \"\\u2106\",\n \"\\u0063\\u002F\\u0075\",\n \"\\u2107\",\n \"\\u0190\",\n \"\\u2109\",\n \"\\u00B0\\u0046\",\n \"\\u2116\",\n \"\\u004E\\u006F\",\n \"\\u2121\",\n \"\\u0054\\u0045\\u004C\",\n \"\\u2135\",\n \"\\u05D0\",\n \"\\u2136\",\n \"\\u05D1\",\n \"\\u2137\",\n \"\\u05D2\",\n \"\\u2138\",\n \"\\u05D3\",\n \"\\u213B\",\n \"\\u0046\\u0041\\u0058\",\n \"\\u2160\",\n \"\\u0049\",\n \"\\u2161\",\n \"\\u0049\\u0049\",\n \"\\u2162\",\n \"\\u0049\\u0049\\u0049\",\n \"\\u2163\",\n \"\\u0049\\u0056\",\n \"\\u2164\",\n \"\\u0056\",\n \"\\u2165\",\n \"\\u0056\\u0049\",\n \"\\u2166\",\n \"\\u0056\\u0049\\u0049\",\n \"\\u2167\",\n \"\\u0056\\u0049\\u0049\\u0049\",\n \"\\u2168\",\n \"\\u0049\\u0058\",\n \"\\u2169\",\n \"\\u0058\",\n \"\\u216A\",\n \"\\u0058\\u0049\",\n \"\\u216B\",\n \"\\u0058\\u0049\\u0049\",\n \"\\u216C\",\n \"\\u004C\",\n \"\\u216D\",\n \"\\u0043\",\n \"\\u216E\",\n \"\\u0044\",\n \"\\u216F\",\n \"\\u004D\",\n \"\\u2170\",\n \"\\u0069\",\n \"\\u2171\",\n \"\\u0069\\u0069\",\n \"\\u2172\",\n \"\\u0069\\u0069\\u0069\",\n \"\\u2173\",\n \"\\u0069\\u0076\",\n \"\\u2174\",\n \"\\u0076\",\n \"\\u2175\",\n \"\\u0076\\u0069\",\n \"\\u2176\",\n \"\\u0076\\u0069\\u0069\",\n \"\\u2177\",\n \"\\u0076\\u0069\\u0069\\u0069\",\n \"\\u2178\",\n \"\\u0069\\u0078\",\n \"\\u2179\",\n \"\\u0078\",\n \"\\u217A\",\n \"\\u0078\\u0069\",\n \"\\u217B\",\n \"\\u0078\\u0069\\u0069\",\n \"\\u217C\",\n \"\\u006C\",\n \"\\u217D\",\n \"\\u0063\",\n \"\\u217E\",\n \"\\u0064\",\n \"\\u217F\",\n \"\\u006D\",\n \"\\u222C\",\n \"\\u222B\\u222B\",\n \"\\u222D\",\n \"\\u222B\\u222B\\u222B\",\n \"\\u222F\",\n \"\\u222E\\u222E\",\n \"\\u2230\",\n \"\\u222E\\u222E\\u222E\",\n \"\\u2474\",\n \"\\u0028\\u0031\\u0029\",\n \"\\u2475\",\n \"\\u0028\\u0032\\u0029\",\n \"\\u2476\",\n \"\\u0028\\u0033\\u0029\",\n \"\\u2477\",\n \"\\u0028\\u0034\\u0029\",\n \"\\u2478\",\n \"\\u0028\\u0035\\u0029\",\n \"\\u2479\",\n \"\\u0028\\u0036\\u0029\",\n \"\\u247A\",\n \"\\u0028\\u0037\\u0029\",\n \"\\u247B\",\n \"\\u0028\\u0038\\u0029\",\n \"\\u247C\",\n \"\\u0028\\u0039\\u0029\",\n \"\\u247D\",\n \"\\u0028\\u0031\\u0030\\u0029\",\n \"\\u247E\",\n \"\\u0028\\u0031\\u0031\\u0029\",\n \"\\u247F\",\n \"\\u0028\\u0031\\u0032\\u0029\",\n \"\\u2480\",\n \"\\u0028\\u0031\\u0033\\u0029\",\n \"\\u2481\",\n \"\\u0028\\u0031\\u0034\\u0029\",\n \"\\u2482\",\n \"\\u0028\\u0031\\u0035\\u0029\",\n \"\\u2483\",\n \"\\u0028\\u0031\\u0036\\u0029\",\n \"\\u2484\",\n \"\\u0028\\u0031\\u0037\\u0029\",\n \"\\u2485\",\n \"\\u0028\\u0031\\u0038\\u0029\",\n \"\\u2486\",\n \"\\u0028\\u0031\\u0039\\u0029\",\n \"\\u2487\",\n \"\\u0028\\u0032\\u0030\\u0029\",\n \"\\u2488\",\n \"\\u0031\\u002E\",\n \"\\u2489\",\n \"\\u0032\\u002E\",\n \"\\u248A\",\n \"\\u0033\\u002E\",\n \"\\u248B\",\n \"\\u0034\\u002E\",\n \"\\u248C\",\n \"\\u0035\\u002E\",\n \"\\u248D\",\n \"\\u0036\\u002E\",\n \"\\u248E\",\n \"\\u0037\\u002E\",\n \"\\u248F\",\n \"\\u0038\\u002E\",\n \"\\u2490\",\n \"\\u0039\\u002E\",\n \"\\u2491\",\n \"\\u0031\\u0030\\u002E\",\n \"\\u2492\",\n \"\\u0031\\u0031\\u002E\",\n \"\\u2493\",\n \"\\u0031\\u0032\\u002E\",\n \"\\u2494\",\n \"\\u0031\\u0033\\u002E\",\n \"\\u2495\",\n \"\\u0031\\u0034\\u002E\",\n \"\\u2496\",\n \"\\u0031\\u0035\\u002E\",\n \"\\u2497\",\n \"\\u0031\\u0036\\u002E\",\n \"\\u2498\",\n \"\\u0031\\u0037\\u002E\",\n \"\\u2499\",\n \"\\u0031\\u0038\\u002E\",\n \"\\u249A\",\n \"\\u0031\\u0039\\u002E\",\n \"\\u249B\",\n \"\\u0032\\u0030\\u002E\",\n \"\\u249C\",\n \"\\u0028\\u0061\\u0029\",\n \"\\u249D\",\n \"\\u0028\\u0062\\u0029\",\n \"\\u249E\",\n \"\\u0028\\u0063\\u0029\",\n \"\\u249F\",\n \"\\u0028\\u0064\\u0029\",\n \"\\u24A0\",\n \"\\u0028\\u0065\\u0029\",\n \"\\u24A1\",\n \"\\u0028\\u0066\\u0029\",\n \"\\u24A2\",\n \"\\u0028\\u0067\\u0029\",\n \"\\u24A3\",\n \"\\u0028\\u0068\\u0029\",\n \"\\u24A4\",\n \"\\u0028\\u0069\\u0029\",\n \"\\u24A5\",\n \"\\u0028\\u006A\\u0029\",\n \"\\u24A6\",\n \"\\u0028\\u006B\\u0029\",\n \"\\u24A7\",\n \"\\u0028\\u006C\\u0029\",\n \"\\u24A8\",\n \"\\u0028\\u006D\\u0029\",\n \"\\u24A9\",\n \"\\u0028\\u006E\\u0029\",\n \"\\u24AA\",\n \"\\u0028\\u006F\\u0029\",\n \"\\u24AB\",\n \"\\u0028\\u0070\\u0029\",\n \"\\u24AC\",\n \"\\u0028\\u0071\\u0029\",\n \"\\u24AD\",\n \"\\u0028\\u0072\\u0029\",\n \"\\u24AE\",\n \"\\u0028\\u0073\\u0029\",\n \"\\u24AF\",\n \"\\u0028\\u0074\\u0029\",\n \"\\u24B0\",\n \"\\u0028\\u0075\\u0029\",\n \"\\u24B1\",\n \"\\u0028\\u0076\\u0029\",\n \"\\u24B2\",\n \"\\u0028\\u0077\\u0029\",\n \"\\u24B3\",\n \"\\u0028\\u0078\\u0029\",\n \"\\u24B4\",\n \"\\u0028\\u0079\\u0029\",\n \"\\u24B5\",\n \"\\u0028\\u007A\\u0029\",\n \"\\u2A0C\",\n \"\\u222B\\u222B\\u222B\\u222B\",\n \"\\u2A74\",\n \"\\u003A\\u003A\\u003D\",\n \"\\u2A75\",\n \"\\u003D\\u003D\",\n \"\\u2A76\",\n \"\\u003D\\u003D\\u003D\",\n \"\\u2E9F\",\n \"\\u6BCD\",\n \"\\u2EF3\",\n \"\\u9F9F\",\n \"\\u2F00\",\n \"\\u4E00\",\n \"\\u2F01\",\n \"\\u4E28\",\n \"\\u2F02\",\n \"\\u4E36\",\n \"\\u2F03\",\n \"\\u4E3F\",\n \"\\u2F04\",\n \"\\u4E59\",\n \"\\u2F05\",\n \"\\u4E85\",\n \"\\u2F06\",\n \"\\u4E8C\",\n \"\\u2F07\",\n \"\\u4EA0\",\n \"\\u2F08\",\n \"\\u4EBA\",\n \"\\u2F09\",\n \"\\u513F\",\n \"\\u2F0A\",\n \"\\u5165\",\n \"\\u2F0B\",\n \"\\u516B\",\n \"\\u2F0C\",\n \"\\u5182\",\n \"\\u2F0D\",\n \"\\u5196\",\n \"\\u2F0E\",\n \"\\u51AB\",\n \"\\u2F0F\",\n \"\\u51E0\",\n \"\\u2F10\",\n \"\\u51F5\",\n \"\\u2F11\",\n \"\\u5200\",\n \"\\u2F12\",\n \"\\u529B\",\n \"\\u2F13\",\n \"\\u52F9\",\n \"\\u2F14\",\n \"\\u5315\",\n \"\\u2F15\",\n \"\\u531A\",\n \"\\u2F16\",\n \"\\u5338\",\n \"\\u2F17\",\n \"\\u5341\",\n \"\\u2F18\",\n \"\\u535C\",\n \"\\u2F19\",\n \"\\u5369\",\n \"\\u2F1A\",\n \"\\u5382\",\n \"\\u2F1B\",\n \"\\u53B6\",\n \"\\u2F1C\",\n \"\\u53C8\",\n \"\\u2F1D\",\n \"\\u53E3\",\n \"\\u2F1E\",\n \"\\u56D7\",\n \"\\u2F1F\",\n \"\\u571F\",\n \"\\u2F20\",\n \"\\u58EB\",\n \"\\u2F21\",\n \"\\u5902\",\n \"\\u2F22\",\n \"\\u590A\",\n \"\\u2F23\",\n \"\\u5915\",\n \"\\u2F24\",\n \"\\u5927\",\n \"\\u2F25\",\n \"\\u5973\",\n \"\\u2F26\",\n \"\\u5B50\",\n \"\\u2F27\",\n \"\\u5B80\",\n \"\\u2F28\",\n \"\\u5BF8\",\n \"\\u2F29\",\n \"\\u5C0F\",\n \"\\u2F2A\",\n \"\\u5C22\",\n \"\\u2F2B\",\n \"\\u5C38\",\n \"\\u2F2C\",\n \"\\u5C6E\",\n \"\\u2F2D\",\n \"\\u5C71\",\n \"\\u2F2E\",\n \"\\u5DDB\",\n \"\\u2F2F\",\n \"\\u5DE5\",\n \"\\u2F30\",\n \"\\u5DF1\",\n \"\\u2F31\",\n \"\\u5DFE\",\n \"\\u2F32\",\n \"\\u5E72\",\n \"\\u2F33\",\n \"\\u5E7A\",\n \"\\u2F34\",\n \"\\u5E7F\",\n \"\\u2F35\",\n \"\\u5EF4\",\n \"\\u2F36\",\n \"\\u5EFE\",\n \"\\u2F37\",\n \"\\u5F0B\",\n \"\\u2F38\",\n \"\\u5F13\",\n \"\\u2F39\",\n \"\\u5F50\",\n \"\\u2F3A\",\n \"\\u5F61\",\n \"\\u2F3B\",\n \"\\u5F73\",\n \"\\u2F3C\",\n \"\\u5FC3\",\n \"\\u2F3D\",\n \"\\u6208\",\n \"\\u2F3E\",\n \"\\u6236\",\n \"\\u2F3F\",\n \"\\u624B\",\n \"\\u2F40\",\n \"\\u652F\",\n \"\\u2F41\",\n \"\\u6534\",\n \"\\u2F42\",\n \"\\u6587\",\n \"\\u2F43\",\n \"\\u6597\",\n \"\\u2F44\",\n \"\\u65A4\",\n \"\\u2F45\",\n \"\\u65B9\",\n \"\\u2F46\",\n \"\\u65E0\",\n \"\\u2F47\",\n \"\\u65E5\",\n \"\\u2F48\",\n \"\\u66F0\",\n \"\\u2F49\",\n \"\\u6708\",\n \"\\u2F4A\",\n \"\\u6728\",\n \"\\u2F4B\",\n \"\\u6B20\",\n \"\\u2F4C\",\n \"\\u6B62\",\n \"\\u2F4D\",\n \"\\u6B79\",\n \"\\u2F4E\",\n \"\\u6BB3\",\n \"\\u2F4F\",\n \"\\u6BCB\",\n \"\\u2F50\",\n \"\\u6BD4\",\n \"\\u2F51\",\n \"\\u6BDB\",\n \"\\u2F52\",\n \"\\u6C0F\",\n \"\\u2F53\",\n \"\\u6C14\",\n \"\\u2F54\",\n \"\\u6C34\",\n \"\\u2F55\",\n \"\\u706B\",\n \"\\u2F56\",\n \"\\u722A\",\n \"\\u2F57\",\n \"\\u7236\",\n \"\\u2F58\",\n \"\\u723B\",\n \"\\u2F59\",\n \"\\u723F\",\n \"\\u2F5A\",\n \"\\u7247\",\n \"\\u2F5B\",\n \"\\u7259\",\n \"\\u2F5C\",\n \"\\u725B\",\n \"\\u2F5D\",\n \"\\u72AC\",\n \"\\u2F5E\",\n \"\\u7384\",\n \"\\u2F5F\",\n \"\\u7389\",\n \"\\u2F60\",\n \"\\u74DC\",\n \"\\u2F61\",\n \"\\u74E6\",\n \"\\u2F62\",\n \"\\u7518\",\n \"\\u2F63\",\n \"\\u751F\",\n \"\\u2F64\",\n \"\\u7528\",\n \"\\u2F65\",\n \"\\u7530\",\n \"\\u2F66\",\n \"\\u758B\",\n \"\\u2F67\",\n \"\\u7592\",\n \"\\u2F68\",\n \"\\u7676\",\n \"\\u2F69\",\n \"\\u767D\",\n \"\\u2F6A\",\n \"\\u76AE\",\n \"\\u2F6B\",\n \"\\u76BF\",\n \"\\u2F6C\",\n \"\\u76EE\",\n \"\\u2F6D\",\n \"\\u77DB\",\n \"\\u2F6E\",\n \"\\u77E2\",\n \"\\u2F6F\",\n \"\\u77F3\",\n \"\\u2F70\",\n \"\\u793A\",\n \"\\u2F71\",\n \"\\u79B8\",\n \"\\u2F72\",\n \"\\u79BE\",\n \"\\u2F73\",\n \"\\u7A74\",\n \"\\u2F74\",\n \"\\u7ACB\",\n \"\\u2F75\",\n \"\\u7AF9\",\n \"\\u2F76\",\n \"\\u7C73\",\n \"\\u2F77\",\n \"\\u7CF8\",\n \"\\u2F78\",\n \"\\u7F36\",\n \"\\u2F79\",\n \"\\u7F51\",\n \"\\u2F7A\",\n \"\\u7F8A\",\n \"\\u2F7B\",\n \"\\u7FBD\",\n \"\\u2F7C\",\n \"\\u8001\",\n \"\\u2F7D\",\n \"\\u800C\",\n \"\\u2F7E\",\n \"\\u8012\",\n \"\\u2F7F\",\n \"\\u8033\",\n \"\\u2F80\",\n \"\\u807F\",\n \"\\u2F81\",\n \"\\u8089\",\n \"\\u2F82\",\n \"\\u81E3\",\n \"\\u2F83\",\n \"\\u81EA\",\n \"\\u2F84\",\n \"\\u81F3\",\n \"\\u2F85\",\n \"\\u81FC\",\n \"\\u2F86\",\n \"\\u820C\",\n \"\\u2F87\",\n \"\\u821B\",\n \"\\u2F88\",\n \"\\u821F\",\n \"\\u2F89\",\n \"\\u826E\",\n \"\\u2F8A\",\n \"\\u8272\",\n \"\\u2F8B\",\n \"\\u8278\",\n \"\\u2F8C\",\n \"\\u864D\",\n \"\\u2F8D\",\n \"\\u866B\",\n \"\\u2F8E\",\n \"\\u8840\",\n \"\\u2F8F\",\n \"\\u884C\",\n \"\\u2F90\",\n \"\\u8863\",\n \"\\u2F91\",\n \"\\u897E\",\n \"\\u2F92\",\n \"\\u898B\",\n \"\\u2F93\",\n \"\\u89D2\",\n \"\\u2F94\",\n \"\\u8A00\",\n \"\\u2F95\",\n \"\\u8C37\",\n \"\\u2F96\",\n \"\\u8C46\",\n \"\\u2F97\",\n \"\\u8C55\",\n \"\\u2F98\",\n \"\\u8C78\",\n \"\\u2F99\",\n \"\\u8C9D\",\n \"\\u2F9A\",\n \"\\u8D64\",\n \"\\u2F9B\",\n \"\\u8D70\",\n \"\\u2F9C\",\n \"\\u8DB3\",\n \"\\u2F9D\",\n \"\\u8EAB\",\n \"\\u2F9E\",\n \"\\u8ECA\",\n \"\\u2F9F\",\n \"\\u8F9B\",\n \"\\u2FA0\",\n \"\\u8FB0\",\n \"\\u2FA1\",\n \"\\u8FB5\",\n \"\\u2FA2\",\n \"\\u9091\",\n \"\\u2FA3\",\n \"\\u9149\",\n \"\\u2FA4\",\n \"\\u91C6\",\n \"\\u2FA5\",\n \"\\u91CC\",\n \"\\u2FA6\",\n \"\\u91D1\",\n \"\\u2FA7\",\n \"\\u9577\",\n \"\\u2FA8\",\n \"\\u9580\",\n \"\\u2FA9\",\n \"\\u961C\",\n \"\\u2FAA\",\n \"\\u96B6\",\n \"\\u2FAB\",\n \"\\u96B9\",\n \"\\u2FAC\",\n \"\\u96E8\",\n \"\\u2FAD\",\n \"\\u9751\",\n \"\\u2FAE\",\n \"\\u975E\",\n \"\\u2FAF\",\n \"\\u9762\",\n \"\\u2FB0\",\n \"\\u9769\",\n \"\\u2FB1\",\n \"\\u97CB\",\n \"\\u2FB2\",\n \"\\u97ED\",\n \"\\u2FB3\",\n \"\\u97F3\",\n \"\\u2FB4\",\n \"\\u9801\",\n \"\\u2FB5\",\n \"\\u98A8\",\n \"\\u2FB6\",\n \"\\u98DB\",\n \"\\u2FB7\",\n \"\\u98DF\",\n \"\\u2FB8\",\n \"\\u9996\",\n \"\\u2FB9\",\n \"\\u9999\",\n \"\\u2FBA\",\n \"\\u99AC\",\n \"\\u2FBB\",\n \"\\u9AA8\",\n \"\\u2FBC\",\n \"\\u9AD8\",\n \"\\u2FBD\",\n \"\\u9ADF\",\n \"\\u2FBE\",\n \"\\u9B25\",\n \"\\u2FBF\",\n \"\\u9B2F\",\n \"\\u2FC0\",\n \"\\u9B32\",\n \"\\u2FC1\",\n \"\\u9B3C\",\n \"\\u2FC2\",\n \"\\u9B5A\",\n \"\\u2FC3\",\n \"\\u9CE5\",\n \"\\u2FC4\",\n \"\\u9E75\",\n \"\\u2FC5\",\n \"\\u9E7F\",\n \"\\u2FC6\",\n \"\\u9EA5\",\n \"\\u2FC7\",\n \"\\u9EBB\",\n \"\\u2FC8\",\n \"\\u9EC3\",\n \"\\u2FC9\",\n \"\\u9ECD\",\n \"\\u2FCA\",\n \"\\u9ED1\",\n \"\\u2FCB\",\n \"\\u9EF9\",\n \"\\u2FCC\",\n \"\\u9EFD\",\n \"\\u2FCD\",\n \"\\u9F0E\",\n \"\\u2FCE\",\n \"\\u9F13\",\n \"\\u2FCF\",\n \"\\u9F20\",\n \"\\u2FD0\",\n \"\\u9F3B\",\n \"\\u2FD1\",\n \"\\u9F4A\",\n \"\\u2FD2\",\n \"\\u9F52\",\n \"\\u2FD3\",\n \"\\u9F8D\",\n \"\\u2FD4\",\n \"\\u9F9C\",\n \"\\u2FD5\",\n \"\\u9FA0\",\n \"\\u3036\",\n \"\\u3012\",\n \"\\u3038\",\n \"\\u5341\",\n \"\\u3039\",\n \"\\u5344\",\n \"\\u303A\",\n \"\\u5345\",\n \"\\u309B\",\n \"\\u0020\\u3099\",\n \"\\u309C\",\n \"\\u0020\\u309A\",\n \"\\u3131\",\n \"\\u1100\",\n \"\\u3132\",\n \"\\u1101\",\n \"\\u3133\",\n \"\\u11AA\",\n \"\\u3134\",\n \"\\u1102\",\n \"\\u3135\",\n \"\\u11AC\",\n \"\\u3136\",\n \"\\u11AD\",\n \"\\u3137\",\n \"\\u1103\",\n \"\\u3138\",\n \"\\u1104\",\n \"\\u3139\",\n \"\\u1105\",\n \"\\u313A\",\n \"\\u11B0\",\n \"\\u313B\",\n \"\\u11B1\",\n \"\\u313C\",\n \"\\u11B2\",\n \"\\u313D\",\n \"\\u11B3\",\n \"\\u313E\",\n \"\\u11B4\",\n \"\\u313F\",\n \"\\u11B5\",\n \"\\u3140\",\n \"\\u111A\",\n \"\\u3141\",\n \"\\u1106\",\n \"\\u3142\",\n \"\\u1107\",\n \"\\u3143\",\n \"\\u1108\",\n \"\\u3144\",\n \"\\u1121\",\n \"\\u3145\",\n \"\\u1109\",\n \"\\u3146\",\n \"\\u110A\",\n \"\\u3147\",\n \"\\u110B\",\n \"\\u3148\",\n \"\\u110C\",\n \"\\u3149\",\n \"\\u110D\",\n \"\\u314A\",\n \"\\u110E\",\n \"\\u314B\",\n \"\\u110F\",\n \"\\u314C\",\n \"\\u1110\",\n \"\\u314D\",\n \"\\u1111\",\n \"\\u314E\",\n \"\\u1112\",\n \"\\u314F\",\n \"\\u1161\",\n \"\\u3150\",\n \"\\u1162\",\n \"\\u3151\",\n \"\\u1163\",\n \"\\u3152\",\n \"\\u1164\",\n \"\\u3153\",\n \"\\u1165\",\n \"\\u3154\",\n \"\\u1166\",\n \"\\u3155\",\n \"\\u1167\",\n \"\\u3156\",\n \"\\u1168\",\n \"\\u3157\",\n \"\\u1169\",\n \"\\u3158\",\n \"\\u116A\",\n \"\\u3159\",\n \"\\u116B\",\n \"\\u315A\",\n \"\\u116C\",\n \"\\u315B\",\n \"\\u116D\",\n \"\\u315C\",\n \"\\u116E\",\n \"\\u315D\",\n \"\\u116F\",\n \"\\u315E\",\n \"\\u1170\",\n \"\\u315F\",\n \"\\u1171\",\n \"\\u3160\",\n \"\\u1172\",\n \"\\u3161\",\n \"\\u1173\",\n \"\\u3162\",\n \"\\u1174\",\n \"\\u3163\",\n \"\\u1175\",\n \"\\u3164\",\n \"\\u1160\",\n \"\\u3165\",\n \"\\u1114\",\n \"\\u3166\",\n \"\\u1115\",\n \"\\u3167\",\n \"\\u11C7\",\n \"\\u3168\",\n \"\\u11C8\",\n \"\\u3169\",\n \"\\u11CC\",\n \"\\u316A\",\n \"\\u11CE\",\n \"\\u316B\",\n \"\\u11D3\",\n \"\\u316C\",\n \"\\u11D7\",\n \"\\u316D\",\n \"\\u11D9\",\n \"\\u316E\",\n \"\\u111C\",\n \"\\u316F\",\n \"\\u11DD\",\n \"\\u3170\",\n \"\\u11DF\",\n \"\\u3171\",\n \"\\u111D\",\n \"\\u3172\",\n \"\\u111E\",\n \"\\u3173\",\n \"\\u1120\",\n \"\\u3174\",\n \"\\u1122\",\n \"\\u3175\",\n \"\\u1123\",\n \"\\u3176\",\n \"\\u1127\",\n \"\\u3177\",\n \"\\u1129\",\n \"\\u3178\",\n \"\\u112B\",\n \"\\u3179\",\n \"\\u112C\",\n \"\\u317A\",\n \"\\u112D\",\n \"\\u317B\",\n \"\\u112E\",\n \"\\u317C\",\n \"\\u112F\",\n \"\\u317D\",\n \"\\u1132\",\n \"\\u317E\",\n \"\\u1136\",\n \"\\u317F\",\n \"\\u1140\",\n \"\\u3180\",\n \"\\u1147\",\n \"\\u3181\",\n \"\\u114C\",\n \"\\u3182\",\n \"\\u11F1\",\n \"\\u3183\",\n \"\\u11F2\",\n \"\\u3184\",\n \"\\u1157\",\n \"\\u3185\",\n \"\\u1158\",\n \"\\u3186\",\n \"\\u1159\",\n \"\\u3187\",\n \"\\u1184\",\n \"\\u3188\",\n \"\\u1185\",\n \"\\u3189\",\n \"\\u1188\",\n \"\\u318A\",\n \"\\u1191\",\n \"\\u318B\",\n \"\\u1192\",\n \"\\u318C\",\n \"\\u1194\",\n \"\\u318D\",\n \"\\u119E\",\n \"\\u318E\",\n \"\\u11A1\",\n \"\\u3200\",\n \"\\u0028\\u1100\\u0029\",\n \"\\u3201\",\n \"\\u0028\\u1102\\u0029\",\n \"\\u3202\",\n \"\\u0028\\u1103\\u0029\",\n \"\\u3203\",\n \"\\u0028\\u1105\\u0029\",\n \"\\u3204\",\n \"\\u0028\\u1106\\u0029\",\n \"\\u3205\",\n \"\\u0028\\u1107\\u0029\",\n \"\\u3206\",\n \"\\u0028\\u1109\\u0029\",\n \"\\u3207\",\n \"\\u0028\\u110B\\u0029\",\n \"\\u3208\",\n \"\\u0028\\u110C\\u0029\",\n \"\\u3209\",\n \"\\u0028\\u110E\\u0029\",\n \"\\u320A\",\n \"\\u0028\\u110F\\u0029\",\n \"\\u320B\",\n \"\\u0028\\u1110\\u0029\",\n \"\\u320C\",\n \"\\u0028\\u1111\\u0029\",\n \"\\u320D\",\n \"\\u0028\\u1112\\u0029\",\n \"\\u320E\",\n \"\\u0028\\u1100\\u1161\\u0029\",\n \"\\u320F\",\n \"\\u0028\\u1102\\u1161\\u0029\",\n \"\\u3210\",\n \"\\u0028\\u1103\\u1161\\u0029\",\n \"\\u3211\",\n \"\\u0028\\u1105\\u1161\\u0029\",\n \"\\u3212\",\n \"\\u0028\\u1106\\u1161\\u0029\",\n \"\\u3213\",\n \"\\u0028\\u1107\\u1161\\u0029\",\n \"\\u3214\",\n \"\\u0028\\u1109\\u1161\\u0029\",\n \"\\u3215\",\n \"\\u0028\\u110B\\u1161\\u0029\",\n \"\\u3216\",\n \"\\u0028\\u110C\\u1161\\u0029\",\n \"\\u3217\",\n \"\\u0028\\u110E\\u1161\\u0029\",\n \"\\u3218\",\n \"\\u0028\\u110F\\u1161\\u0029\",\n \"\\u3219\",\n \"\\u0028\\u1110\\u1161\\u0029\",\n \"\\u321A\",\n \"\\u0028\\u1111\\u1161\\u0029\",\n \"\\u321B\",\n \"\\u0028\\u1112\\u1161\\u0029\",\n \"\\u321C\",\n \"\\u0028\\u110C\\u116E\\u0029\",\n \"\\u321D\",\n \"\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029\",\n \"\\u321E\",\n \"\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029\",\n \"\\u3220\",\n \"\\u0028\\u4E00\\u0029\",\n \"\\u3221\",\n \"\\u0028\\u4E8C\\u0029\",\n \"\\u3222\",\n \"\\u0028\\u4E09\\u0029\",\n \"\\u3223\",\n \"\\u0028\\u56DB\\u0029\",\n \"\\u3224\",\n \"\\u0028\\u4E94\\u0029\",\n \"\\u3225\",\n \"\\u0028\\u516D\\u0029\",\n \"\\u3226\",\n \"\\u0028\\u4E03\\u0029\",\n \"\\u3227\",\n \"\\u0028\\u516B\\u0029\",\n \"\\u3228\",\n \"\\u0028\\u4E5D\\u0029\",\n \"\\u3229\",\n \"\\u0028\\u5341\\u0029\",\n \"\\u322A\",\n \"\\u0028\\u6708\\u0029\",\n \"\\u322B\",\n \"\\u0028\\u706B\\u0029\",\n \"\\u322C\",\n \"\\u0028\\u6C34\\u0029\",\n \"\\u322D\",\n \"\\u0028\\u6728\\u0029\",\n \"\\u322E\",\n \"\\u0028\\u91D1\\u0029\",\n \"\\u322F\",\n \"\\u0028\\u571F\\u0029\",\n \"\\u3230\",\n \"\\u0028\\u65E5\\u0029\",\n \"\\u3231\",\n \"\\u0028\\u682A\\u0029\",\n \"\\u3232\",\n \"\\u0028\\u6709\\u0029\",\n \"\\u3233\",\n \"\\u0028\\u793E\\u0029\",\n \"\\u3234\",\n \"\\u0028\\u540D\\u0029\",\n \"\\u3235\",\n \"\\u0028\\u7279\\u0029\",\n \"\\u3236\",\n \"\\u0028\\u8CA1\\u0029\",\n \"\\u3237\",\n \"\\u0028\\u795D\\u0029\",\n \"\\u3238\",\n \"\\u0028\\u52B4\\u0029\",\n \"\\u3239\",\n \"\\u0028\\u4EE3\\u0029\",\n \"\\u323A\",\n \"\\u0028\\u547C\\u0029\",\n \"\\u323B\",\n \"\\u0028\\u5B66\\u0029\",\n \"\\u323C\",\n \"\\u0028\\u76E3\\u0029\",\n \"\\u323D\",\n \"\\u0028\\u4F01\\u0029\",\n \"\\u323E\",\n \"\\u0028\\u8CC7\\u0029\",\n \"\\u323F\",\n \"\\u0028\\u5354\\u0029\",\n \"\\u3240\",\n \"\\u0028\\u796D\\u0029\",\n \"\\u3241\",\n \"\\u0028\\u4F11\\u0029\",\n \"\\u3242\",\n \"\\u0028\\u81EA\\u0029\",\n \"\\u3243\",\n \"\\u0028\\u81F3\\u0029\",\n \"\\u32C0\",\n \"\\u0031\\u6708\",\n \"\\u32C1\",\n \"\\u0032\\u6708\",\n \"\\u32C2\",\n \"\\u0033\\u6708\",\n \"\\u32C3\",\n \"\\u0034\\u6708\",\n \"\\u32C4\",\n \"\\u0035\\u6708\",\n \"\\u32C5\",\n \"\\u0036\\u6708\",\n \"\\u32C6\",\n \"\\u0037\\u6708\",\n \"\\u32C7\",\n \"\\u0038\\u6708\",\n \"\\u32C8\",\n \"\\u0039\\u6708\",\n \"\\u32C9\",\n \"\\u0031\\u0030\\u6708\",\n \"\\u32CA\",\n \"\\u0031\\u0031\\u6708\",\n \"\\u32CB\",\n \"\\u0031\\u0032\\u6708\",\n \"\\u3358\",\n \"\\u0030\\u70B9\",\n \"\\u3359\",\n \"\\u0031\\u70B9\",\n \"\\u335A\",\n \"\\u0032\\u70B9\",\n \"\\u335B\",\n \"\\u0033\\u70B9\",\n \"\\u335C\",\n \"\\u0034\\u70B9\",\n \"\\u335D\",\n \"\\u0035\\u70B9\",\n \"\\u335E\",\n \"\\u0036\\u70B9\",\n \"\\u335F\",\n \"\\u0037\\u70B9\",\n \"\\u3360\",\n \"\\u0038\\u70B9\",\n \"\\u3361\",\n \"\\u0039\\u70B9\",\n \"\\u3362\",\n \"\\u0031\\u0030\\u70B9\",\n \"\\u3363\",\n \"\\u0031\\u0031\\u70B9\",\n \"\\u3364\",\n \"\\u0031\\u0032\\u70B9\",\n \"\\u3365\",\n \"\\u0031\\u0033\\u70B9\",\n \"\\u3366\",\n \"\\u0031\\u0034\\u70B9\",\n \"\\u3367\",\n \"\\u0031\\u0035\\u70B9\",\n \"\\u3368\",\n \"\\u0031\\u0036\\u70B9\",\n \"\\u3369\",\n \"\\u0031\\u0037\\u70B9\",\n \"\\u336A\",\n \"\\u0031\\u0038\\u70B9\",\n \"\\u336B\",\n \"\\u0031\\u0039\\u70B9\",\n \"\\u336C\",\n \"\\u0032\\u0030\\u70B9\",\n \"\\u336D\",\n \"\\u0032\\u0031\\u70B9\",\n \"\\u336E\",\n \"\\u0032\\u0032\\u70B9\",\n \"\\u336F\",\n \"\\u0032\\u0033\\u70B9\",\n \"\\u3370\",\n \"\\u0032\\u0034\\u70B9\",\n \"\\u33E0\",\n \"\\u0031\\u65E5\",\n \"\\u33E1\",\n \"\\u0032\\u65E5\",\n \"\\u33E2\",\n \"\\u0033\\u65E5\",\n \"\\u33E3\",\n \"\\u0034\\u65E5\",\n \"\\u33E4\",\n \"\\u0035\\u65E5\",\n \"\\u33E5\",\n \"\\u0036\\u65E5\",\n \"\\u33E6\",\n \"\\u0037\\u65E5\",\n \"\\u33E7\",\n \"\\u0038\\u65E5\",\n \"\\u33E8\",\n \"\\u0039\\u65E5\",\n \"\\u33E9\",\n \"\\u0031\\u0030\\u65E5\",\n \"\\u33EA\",\n \"\\u0031\\u0031\\u65E5\",\n \"\\u33EB\",\n \"\\u0031\\u0032\\u65E5\",\n \"\\u33EC\",\n \"\\u0031\\u0033\\u65E5\",\n \"\\u33ED\",\n \"\\u0031\\u0034\\u65E5\",\n \"\\u33EE\",\n \"\\u0031\\u0035\\u65E5\",\n \"\\u33EF\",\n \"\\u0031\\u0036\\u65E5\",\n \"\\u33F0\",\n \"\\u0031\\u0037\\u65E5\",\n \"\\u33F1\",\n \"\\u0031\\u0038\\u65E5\",\n \"\\u33F2\",\n \"\\u0031\\u0039\\u65E5\",\n \"\\u33F3\",\n \"\\u0032\\u0030\\u65E5\",\n \"\\u33F4\",\n \"\\u0032\\u0031\\u65E5\",\n \"\\u33F5\",\n \"\\u0032\\u0032\\u65E5\",\n \"\\u33F6\",\n \"\\u0032\\u0033\\u65E5\",\n \"\\u33F7\",\n \"\\u0032\\u0034\\u65E5\",\n \"\\u33F8\",\n \"\\u0032\\u0035\\u65E5\",\n \"\\u33F9\",\n \"\\u0032\\u0036\\u65E5\",\n \"\\u33FA\",\n \"\\u0032\\u0037\\u65E5\",\n \"\\u33FB\",\n \"\\u0032\\u0038\\u65E5\",\n \"\\u33FC\",\n \"\\u0032\\u0039\\u65E5\",\n \"\\u33FD\",\n \"\\u0033\\u0030\\u65E5\",\n \"\\u33FE\",\n \"\\u0033\\u0031\\u65E5\",\n \"\\uFB00\",\n \"\\u0066\\u0066\",\n \"\\uFB01\",\n \"\\u0066\\u0069\",\n \"\\uFB02\",\n \"\\u0066\\u006C\",\n \"\\uFB03\",\n \"\\u0066\\u0066\\u0069\",\n \"\\uFB04\",\n \"\\u0066\\u0066\\u006C\",\n \"\\uFB05\",\n \"\\u017F\\u0074\",\n \"\\uFB06\",\n \"\\u0073\\u0074\",\n \"\\uFB13\",\n \"\\u0574\\u0576\",\n \"\\uFB14\",\n \"\\u0574\\u0565\",\n \"\\uFB15\",\n \"\\u0574\\u056B\",\n \"\\uFB16\",\n \"\\u057E\\u0576\",\n \"\\uFB17\",\n \"\\u0574\\u056D\",\n \"\\uFB4F\",\n \"\\u05D0\\u05DC\",\n \"\\uFB50\",\n \"\\u0671\",\n \"\\uFB51\",\n \"\\u0671\",\n \"\\uFB52\",\n \"\\u067B\",\n \"\\uFB53\",\n \"\\u067B\",\n \"\\uFB54\",\n \"\\u067B\",\n \"\\uFB55\",\n \"\\u067B\",\n \"\\uFB56\",\n \"\\u067E\",\n \"\\uFB57\",\n \"\\u067E\",\n \"\\uFB58\",\n \"\\u067E\",\n \"\\uFB59\",\n \"\\u067E\",\n \"\\uFB5A\",\n \"\\u0680\",\n \"\\uFB5B\",\n \"\\u0680\",\n \"\\uFB5C\",\n \"\\u0680\",\n \"\\uFB5D\",\n \"\\u0680\",\n \"\\uFB5E\",\n \"\\u067A\",\n \"\\uFB5F\",\n \"\\u067A\",\n \"\\uFB60\",\n \"\\u067A\",\n \"\\uFB61\",\n \"\\u067A\",\n \"\\uFB62\",\n \"\\u067F\",\n \"\\uFB63\",\n \"\\u067F\",\n \"\\uFB64\",\n \"\\u067F\",\n \"\\uFB65\",\n \"\\u067F\",\n \"\\uFB66\",\n \"\\u0679\",\n \"\\uFB67\",\n \"\\u0679\",\n \"\\uFB68\",\n \"\\u0679\",\n \"\\uFB69\",\n \"\\u0679\",\n \"\\uFB6A\",\n \"\\u06A4\",\n \"\\uFB6B\",\n \"\\u06A4\",\n \"\\uFB6C\",\n \"\\u06A4\",\n \"\\uFB6D\",\n \"\\u06A4\",\n \"\\uFB6E\",\n \"\\u06A6\",\n \"\\uFB6F\",\n \"\\u06A6\",\n \"\\uFB70\",\n \"\\u06A6\",\n \"\\uFB71\",\n \"\\u06A6\",\n \"\\uFB72\",\n \"\\u0684\",\n \"\\uFB73\",\n \"\\u0684\",\n \"\\uFB74\",\n \"\\u0684\",\n \"\\uFB75\",\n \"\\u0684\",\n \"\\uFB76\",\n \"\\u0683\",\n \"\\uFB77\",\n \"\\u0683\",\n \"\\uFB78\",\n \"\\u0683\",\n \"\\uFB79\",\n \"\\u0683\",\n \"\\uFB7A\",\n \"\\u0686\",\n \"\\uFB7B\",\n \"\\u0686\",\n \"\\uFB7C\",\n \"\\u0686\",\n \"\\uFB7D\",\n \"\\u0686\",\n \"\\uFB7E\",\n \"\\u0687\",\n \"\\uFB7F\",\n \"\\u0687\",\n \"\\uFB80\",\n \"\\u0687\",\n \"\\uFB81\",\n \"\\u0687\",\n \"\\uFB82\",\n \"\\u068D\",\n \"\\uFB83\",\n \"\\u068D\",\n \"\\uFB84\",\n \"\\u068C\",\n \"\\uFB85\",\n \"\\u068C\",\n \"\\uFB86\",\n \"\\u068E\",\n \"\\uFB87\",\n \"\\u068E\",\n \"\\uFB88\",\n \"\\u0688\",\n \"\\uFB89\",\n \"\\u0688\",\n \"\\uFB8A\",\n \"\\u0698\",\n \"\\uFB8B\",\n \"\\u0698\",\n \"\\uFB8C\",\n \"\\u0691\",\n \"\\uFB8D\",\n \"\\u0691\",\n \"\\uFB8E\",\n \"\\u06A9\",\n \"\\uFB8F\",\n \"\\u06A9\",\n \"\\uFB90\",\n \"\\u06A9\",\n \"\\uFB91\",\n \"\\u06A9\",\n \"\\uFB92\",\n \"\\u06AF\",\n \"\\uFB93\",\n \"\\u06AF\",\n \"\\uFB94\",\n \"\\u06AF\",\n \"\\uFB95\",\n \"\\u06AF\",\n \"\\uFB96\",\n \"\\u06B3\",\n \"\\uFB97\",\n \"\\u06B3\",\n \"\\uFB98\",\n \"\\u06B3\",\n \"\\uFB99\",\n \"\\u06B3\",\n \"\\uFB9A\",\n \"\\u06B1\",\n \"\\uFB9B\",\n \"\\u06B1\",\n \"\\uFB9C\",\n \"\\u06B1\",\n \"\\uFB9D\",\n \"\\u06B1\",\n \"\\uFB9E\",\n \"\\u06BA\",\n \"\\uFB9F\",\n \"\\u06BA\",\n \"\\uFBA0\",\n \"\\u06BB\",\n \"\\uFBA1\",\n \"\\u06BB\",\n \"\\uFBA2\",\n \"\\u06BB\",\n \"\\uFBA3\",\n \"\\u06BB\",\n \"\\uFBA4\",\n \"\\u06C0\",\n \"\\uFBA5\",\n \"\\u06C0\",\n \"\\uFBA6\",\n \"\\u06C1\",\n \"\\uFBA7\",\n \"\\u06C1\",\n \"\\uFBA8\",\n \"\\u06C1\",\n \"\\uFBA9\",\n \"\\u06C1\",\n \"\\uFBAA\",\n \"\\u06BE\",\n \"\\uFBAB\",\n \"\\u06BE\",\n \"\\uFBAC\",\n \"\\u06BE\",\n \"\\uFBAD\",\n \"\\u06BE\",\n \"\\uFBAE\",\n \"\\u06D2\",\n \"\\uFBAF\",\n \"\\u06D2\",\n \"\\uFBB0\",\n \"\\u06D3\",\n \"\\uFBB1\",\n \"\\u06D3\",\n \"\\uFBD3\",\n \"\\u06AD\",\n \"\\uFBD4\",\n \"\\u06AD\",\n \"\\uFBD5\",\n \"\\u06AD\",\n \"\\uFBD6\",\n \"\\u06AD\",\n \"\\uFBD7\",\n \"\\u06C7\",\n \"\\uFBD8\",\n \"\\u06C7\",\n \"\\uFBD9\",\n \"\\u06C6\",\n \"\\uFBDA\",\n \"\\u06C6\",\n \"\\uFBDB\",\n \"\\u06C8\",\n \"\\uFBDC\",\n \"\\u06C8\",\n \"\\uFBDD\",\n \"\\u0677\",\n \"\\uFBDE\",\n \"\\u06CB\",\n \"\\uFBDF\",\n \"\\u06CB\",\n \"\\uFBE0\",\n \"\\u06C5\",\n \"\\uFBE1\",\n \"\\u06C5\",\n \"\\uFBE2\",\n \"\\u06C9\",\n \"\\uFBE3\",\n \"\\u06C9\",\n \"\\uFBE4\",\n \"\\u06D0\",\n \"\\uFBE5\",\n \"\\u06D0\",\n \"\\uFBE6\",\n \"\\u06D0\",\n \"\\uFBE7\",\n \"\\u06D0\",\n \"\\uFBE8\",\n \"\\u0649\",\n \"\\uFBE9\",\n \"\\u0649\",\n \"\\uFBEA\",\n \"\\u0626\\u0627\",\n \"\\uFBEB\",\n \"\\u0626\\u0627\",\n \"\\uFBEC\",\n \"\\u0626\\u06D5\",\n \"\\uFBED\",\n \"\\u0626\\u06D5\",\n \"\\uFBEE\",\n \"\\u0626\\u0648\",\n \"\\uFBEF\",\n \"\\u0626\\u0648\",\n \"\\uFBF0\",\n \"\\u0626\\u06C7\",\n \"\\uFBF1\",\n \"\\u0626\\u06C7\",\n \"\\uFBF2\",\n \"\\u0626\\u06C6\",\n \"\\uFBF3\",\n \"\\u0626\\u06C6\",\n \"\\uFBF4\",\n \"\\u0626\\u06C8\",\n \"\\uFBF5\",\n \"\\u0626\\u06C8\",\n \"\\uFBF6\",\n \"\\u0626\\u06D0\",\n \"\\uFBF7\",\n \"\\u0626\\u06D0\",\n \"\\uFBF8\",\n \"\\u0626\\u06D0\",\n \"\\uFBF9\",\n \"\\u0626\\u0649\",\n \"\\uFBFA\",\n \"\\u0626\\u0649\",\n \"\\uFBFB\",\n \"\\u0626\\u0649\",\n \"\\uFBFC\",\n \"\\u06CC\",\n \"\\uFBFD\",\n \"\\u06CC\",\n \"\\uFBFE\",\n \"\\u06CC\",\n \"\\uFBFF\",\n \"\\u06CC\",\n \"\\uFC00\",\n \"\\u0626\\u062C\",\n \"\\uFC01\",\n \"\\u0626\\u062D\",\n \"\\uFC02\",\n \"\\u0626\\u0645\",\n \"\\uFC03\",\n \"\\u0626\\u0649\",\n \"\\uFC04\",\n \"\\u0626\\u064A\",\n \"\\uFC05\",\n \"\\u0628\\u062C\",\n \"\\uFC06\",\n \"\\u0628\\u062D\",\n \"\\uFC07\",\n \"\\u0628\\u062E\",\n \"\\uFC08\",\n \"\\u0628\\u0645\",\n \"\\uFC09\",\n \"\\u0628\\u0649\",\n \"\\uFC0A\",\n \"\\u0628\\u064A\",\n \"\\uFC0B\",\n \"\\u062A\\u062C\",\n \"\\uFC0C\",\n \"\\u062A\\u062D\",\n \"\\uFC0D\",\n \"\\u062A\\u062E\",\n \"\\uFC0E\",\n \"\\u062A\\u0645\",\n \"\\uFC0F\",\n \"\\u062A\\u0649\",\n \"\\uFC10\",\n \"\\u062A\\u064A\",\n \"\\uFC11\",\n \"\\u062B\\u062C\",\n \"\\uFC12\",\n \"\\u062B\\u0645\",\n \"\\uFC13\",\n \"\\u062B\\u0649\",\n \"\\uFC14\",\n \"\\u062B\\u064A\",\n \"\\uFC15\",\n \"\\u062C\\u062D\",\n \"\\uFC16\",\n \"\\u062C\\u0645\",\n \"\\uFC17\",\n \"\\u062D\\u062C\",\n \"\\uFC18\",\n \"\\u062D\\u0645\",\n \"\\uFC19\",\n \"\\u062E\\u062C\",\n \"\\uFC1A\",\n \"\\u062E\\u062D\",\n \"\\uFC1B\",\n \"\\u062E\\u0645\",\n \"\\uFC1C\",\n \"\\u0633\\u062C\",\n \"\\uFC1D\",\n \"\\u0633\\u062D\",\n \"\\uFC1E\",\n \"\\u0633\\u062E\",\n \"\\uFC1F\",\n \"\\u0633\\u0645\",\n \"\\uFC20\",\n \"\\u0635\\u062D\",\n \"\\uFC21\",\n \"\\u0635\\u0645\",\n \"\\uFC22\",\n \"\\u0636\\u062C\",\n \"\\uFC23\",\n \"\\u0636\\u062D\",\n \"\\uFC24\",\n \"\\u0636\\u062E\",\n \"\\uFC25\",\n \"\\u0636\\u0645\",\n \"\\uFC26\",\n \"\\u0637\\u062D\",\n \"\\uFC27\",\n \"\\u0637\\u0645\",\n \"\\uFC28\",\n \"\\u0638\\u0645\",\n \"\\uFC29\",\n \"\\u0639\\u062C\",\n \"\\uFC2A\",\n \"\\u0639\\u0645\",\n \"\\uFC2B\",\n \"\\u063A\\u062C\",\n \"\\uFC2C\",\n \"\\u063A\\u0645\",\n \"\\uFC2D\",\n \"\\u0641\\u062C\",\n \"\\uFC2E\",\n \"\\u0641\\u062D\",\n \"\\uFC2F\",\n \"\\u0641\\u062E\",\n \"\\uFC30\",\n \"\\u0641\\u0645\",\n \"\\uFC31\",\n \"\\u0641\\u0649\",\n \"\\uFC32\",\n \"\\u0641\\u064A\",\n \"\\uFC33\",\n \"\\u0642\\u062D\",\n \"\\uFC34\",\n \"\\u0642\\u0645\",\n \"\\uFC35\",\n \"\\u0642\\u0649\",\n \"\\uFC36\",\n \"\\u0642\\u064A\",\n \"\\uFC37\",\n \"\\u0643\\u0627\",\n \"\\uFC38\",\n \"\\u0643\\u062C\",\n \"\\uFC39\",\n \"\\u0643\\u062D\",\n \"\\uFC3A\",\n \"\\u0643\\u062E\",\n \"\\uFC3B\",\n \"\\u0643\\u0644\",\n \"\\uFC3C\",\n \"\\u0643\\u0645\",\n \"\\uFC3D\",\n \"\\u0643\\u0649\",\n \"\\uFC3E\",\n \"\\u0643\\u064A\",\n \"\\uFC3F\",\n \"\\u0644\\u062C\",\n \"\\uFC40\",\n \"\\u0644\\u062D\",\n \"\\uFC41\",\n \"\\u0644\\u062E\",\n \"\\uFC42\",\n \"\\u0644\\u0645\",\n \"\\uFC43\",\n \"\\u0644\\u0649\",\n \"\\uFC44\",\n \"\\u0644\\u064A\",\n \"\\uFC45\",\n \"\\u0645\\u062C\",\n \"\\uFC46\",\n \"\\u0645\\u062D\",\n \"\\uFC47\",\n \"\\u0645\\u062E\",\n \"\\uFC48\",\n \"\\u0645\\u0645\",\n \"\\uFC49\",\n \"\\u0645\\u0649\",\n \"\\uFC4A\",\n \"\\u0645\\u064A\",\n \"\\uFC4B\",\n \"\\u0646\\u062C\",\n \"\\uFC4C\",\n \"\\u0646\\u062D\",\n \"\\uFC4D\",\n \"\\u0646\\u062E\",\n \"\\uFC4E\",\n \"\\u0646\\u0645\",\n \"\\uFC4F\",\n \"\\u0646\\u0649\",\n \"\\uFC50\",\n \"\\u0646\\u064A\",\n \"\\uFC51\",\n \"\\u0647\\u062C\",\n \"\\uFC52\",\n \"\\u0647\\u0645\",\n \"\\uFC53\",\n \"\\u0647\\u0649\",\n \"\\uFC54\",\n \"\\u0647\\u064A\",\n \"\\uFC55\",\n \"\\u064A\\u062C\",\n \"\\uFC56\",\n \"\\u064A\\u062D\",\n \"\\uFC57\",\n \"\\u064A\\u062E\",\n \"\\uFC58\",\n \"\\u064A\\u0645\",\n \"\\uFC59\",\n \"\\u064A\\u0649\",\n \"\\uFC5A\",\n \"\\u064A\\u064A\",\n \"\\uFC5B\",\n \"\\u0630\\u0670\",\n \"\\uFC5C\",\n \"\\u0631\\u0670\",\n \"\\uFC5D\",\n \"\\u0649\\u0670\",\n \"\\uFC5E\",\n \"\\u0020\\u064C\\u0651\",\n \"\\uFC5F\",\n \"\\u0020\\u064D\\u0651\",\n \"\\uFC60\",\n \"\\u0020\\u064E\\u0651\",\n \"\\uFC61\",\n \"\\u0020\\u064F\\u0651\",\n \"\\uFC62\",\n \"\\u0020\\u0650\\u0651\",\n \"\\uFC63\",\n \"\\u0020\\u0651\\u0670\",\n \"\\uFC64\",\n \"\\u0626\\u0631\",\n \"\\uFC65\",\n \"\\u0626\\u0632\",\n \"\\uFC66\",\n \"\\u0626\\u0645\",\n \"\\uFC67\",\n \"\\u0626\\u0646\",\n \"\\uFC68\",\n \"\\u0626\\u0649\",\n \"\\uFC69\",\n \"\\u0626\\u064A\",\n \"\\uFC6A\",\n \"\\u0628\\u0631\",\n \"\\uFC6B\",\n \"\\u0628\\u0632\",\n \"\\uFC6C\",\n \"\\u0628\\u0645\",\n \"\\uFC6D\",\n \"\\u0628\\u0646\",\n \"\\uFC6E\",\n \"\\u0628\\u0649\",\n \"\\uFC6F\",\n \"\\u0628\\u064A\",\n \"\\uFC70\",\n \"\\u062A\\u0631\",\n \"\\uFC71\",\n \"\\u062A\\u0632\",\n \"\\uFC72\",\n \"\\u062A\\u0645\",\n \"\\uFC73\",\n \"\\u062A\\u0646\",\n \"\\uFC74\",\n \"\\u062A\\u0649\",\n \"\\uFC75\",\n \"\\u062A\\u064A\",\n \"\\uFC76\",\n \"\\u062B\\u0631\",\n \"\\uFC77\",\n \"\\u062B\\u0632\",\n \"\\uFC78\",\n \"\\u062B\\u0645\",\n \"\\uFC79\",\n \"\\u062B\\u0646\",\n \"\\uFC7A\",\n \"\\u062B\\u0649\",\n \"\\uFC7B\",\n \"\\u062B\\u064A\",\n \"\\uFC7C\",\n \"\\u0641\\u0649\",\n \"\\uFC7D\",\n \"\\u0641\\u064A\",\n \"\\uFC7E\",\n \"\\u0642\\u0649\",\n \"\\uFC7F\",\n \"\\u0642\\u064A\",\n \"\\uFC80\",\n \"\\u0643\\u0627\",\n \"\\uFC81\",\n \"\\u0643\\u0644\",\n \"\\uFC82\",\n \"\\u0643\\u0645\",\n \"\\uFC83\",\n \"\\u0643\\u0649\",\n \"\\uFC84\",\n \"\\u0643\\u064A\",\n \"\\uFC85\",\n \"\\u0644\\u0645\",\n \"\\uFC86\",\n \"\\u0644\\u0649\",\n \"\\uFC87\",\n \"\\u0644\\u064A\",\n \"\\uFC88\",\n \"\\u0645\\u0627\",\n \"\\uFC89\",\n \"\\u0645\\u0645\",\n \"\\uFC8A\",\n \"\\u0646\\u0631\",\n \"\\uFC8B\",\n \"\\u0646\\u0632\",\n \"\\uFC8C\",\n \"\\u0646\\u0645\",\n \"\\uFC8D\",\n \"\\u0646\\u0646\",\n \"\\uFC8E\",\n \"\\u0646\\u0649\",\n \"\\uFC8F\",\n \"\\u0646\\u064A\",\n \"\\uFC90\",\n \"\\u0649\\u0670\",\n \"\\uFC91\",\n \"\\u064A\\u0631\",\n \"\\uFC92\",\n \"\\u064A\\u0632\",\n \"\\uFC93\",\n \"\\u064A\\u0645\",\n \"\\uFC94\",\n \"\\u064A\\u0646\",\n \"\\uFC95\",\n \"\\u064A\\u0649\",\n \"\\uFC96\",\n \"\\u064A\\u064A\",\n \"\\uFC97\",\n \"\\u0626\\u062C\",\n \"\\uFC98\",\n \"\\u0626\\u062D\",\n \"\\uFC99\",\n \"\\u0626\\u062E\",\n \"\\uFC9A\",\n \"\\u0626\\u0645\",\n \"\\uFC9B\",\n \"\\u0626\\u0647\",\n \"\\uFC9C\",\n \"\\u0628\\u062C\",\n \"\\uFC9D\",\n \"\\u0628\\u062D\",\n \"\\uFC9E\",\n \"\\u0628\\u062E\",\n \"\\uFC9F\",\n \"\\u0628\\u0645\",\n \"\\uFCA0\",\n \"\\u0628\\u0647\",\n \"\\uFCA1\",\n \"\\u062A\\u062C\",\n \"\\uFCA2\",\n \"\\u062A\\u062D\",\n \"\\uFCA3\",\n \"\\u062A\\u062E\",\n \"\\uFCA4\",\n \"\\u062A\\u0645\",\n \"\\uFCA5\",\n \"\\u062A\\u0647\",\n \"\\uFCA6\",\n \"\\u062B\\u0645\",\n \"\\uFCA7\",\n \"\\u062C\\u062D\",\n \"\\uFCA8\",\n \"\\u062C\\u0645\",\n \"\\uFCA9\",\n \"\\u062D\\u062C\",\n \"\\uFCAA\",\n \"\\u062D\\u0645\",\n \"\\uFCAB\",\n \"\\u062E\\u062C\",\n \"\\uFCAC\",\n \"\\u062E\\u0645\",\n \"\\uFCAD\",\n \"\\u0633\\u062C\",\n \"\\uFCAE\",\n \"\\u0633\\u062D\",\n \"\\uFCAF\",\n \"\\u0633\\u062E\",\n \"\\uFCB0\",\n \"\\u0633\\u0645\",\n \"\\uFCB1\",\n \"\\u0635\\u062D\",\n \"\\uFCB2\",\n \"\\u0635\\u062E\",\n \"\\uFCB3\",\n \"\\u0635\\u0645\",\n \"\\uFCB4\",\n \"\\u0636\\u062C\",\n \"\\uFCB5\",\n \"\\u0636\\u062D\",\n \"\\uFCB6\",\n \"\\u0636\\u062E\",\n \"\\uFCB7\",\n \"\\u0636\\u0645\",\n \"\\uFCB8\",\n \"\\u0637\\u062D\",\n \"\\uFCB9\",\n \"\\u0638\\u0645\",\n \"\\uFCBA\",\n \"\\u0639\\u062C\",\n \"\\uFCBB\",\n \"\\u0639\\u0645\",\n \"\\uFCBC\",\n \"\\u063A\\u062C\",\n \"\\uFCBD\",\n \"\\u063A\\u0645\",\n \"\\uFCBE\",\n \"\\u0641\\u062C\",\n \"\\uFCBF\",\n \"\\u0641\\u062D\",\n \"\\uFCC0\",\n \"\\u0641\\u062E\",\n \"\\uFCC1\",\n \"\\u0641\\u0645\",\n \"\\uFCC2\",\n \"\\u0642\\u062D\",\n \"\\uFCC3\",\n \"\\u0642\\u0645\",\n \"\\uFCC4\",\n \"\\u0643\\u062C\",\n \"\\uFCC5\",\n \"\\u0643\\u062D\",\n \"\\uFCC6\",\n \"\\u0643\\u062E\",\n \"\\uFCC7\",\n \"\\u0643\\u0644\",\n \"\\uFCC8\",\n \"\\u0643\\u0645\",\n \"\\uFCC9\",\n \"\\u0644\\u062C\",\n \"\\uFCCA\",\n \"\\u0644\\u062D\",\n \"\\uFCCB\",\n \"\\u0644\\u062E\",\n \"\\uFCCC\",\n \"\\u0644\\u0645\",\n \"\\uFCCD\",\n \"\\u0644\\u0647\",\n \"\\uFCCE\",\n \"\\u0645\\u062C\",\n \"\\uFCCF\",\n \"\\u0645\\u062D\",\n \"\\uFCD0\",\n \"\\u0645\\u062E\",\n \"\\uFCD1\",\n \"\\u0645\\u0645\",\n \"\\uFCD2\",\n \"\\u0646\\u062C\",\n \"\\uFCD3\",\n \"\\u0646\\u062D\",\n \"\\uFCD4\",\n \"\\u0646\\u062E\",\n \"\\uFCD5\",\n \"\\u0646\\u0645\",\n \"\\uFCD6\",\n \"\\u0646\\u0647\",\n \"\\uFCD7\",\n \"\\u0647\\u062C\",\n \"\\uFCD8\",\n \"\\u0647\\u0645\",\n \"\\uFCD9\",\n \"\\u0647\\u0670\",\n \"\\uFCDA\",\n \"\\u064A\\u062C\",\n \"\\uFCDB\",\n \"\\u064A\\u062D\",\n \"\\uFCDC\",\n \"\\u064A\\u062E\",\n \"\\uFCDD\",\n \"\\u064A\\u0645\",\n \"\\uFCDE\",\n \"\\u064A\\u0647\",\n \"\\uFCDF\",\n \"\\u0626\\u0645\",\n \"\\uFCE0\",\n \"\\u0626\\u0647\",\n \"\\uFCE1\",\n \"\\u0628\\u0645\",\n \"\\uFCE2\",\n \"\\u0628\\u0647\",\n \"\\uFCE3\",\n \"\\u062A\\u0645\",\n \"\\uFCE4\",\n \"\\u062A\\u0647\",\n \"\\uFCE5\",\n \"\\u062B\\u0645\",\n \"\\uFCE6\",\n \"\\u062B\\u0647\",\n \"\\uFCE7\",\n \"\\u0633\\u0645\",\n \"\\uFCE8\",\n \"\\u0633\\u0647\",\n \"\\uFCE9\",\n \"\\u0634\\u0645\",\n \"\\uFCEA\",\n \"\\u0634\\u0647\",\n \"\\uFCEB\",\n \"\\u0643\\u0644\",\n \"\\uFCEC\",\n \"\\u0643\\u0645\",\n \"\\uFCED\",\n \"\\u0644\\u0645\",\n \"\\uFCEE\",\n \"\\u0646\\u0645\",\n \"\\uFCEF\",\n \"\\u0646\\u0647\",\n \"\\uFCF0\",\n \"\\u064A\\u0645\",\n \"\\uFCF1\",\n \"\\u064A\\u0647\",\n \"\\uFCF2\",\n \"\\u0640\\u064E\\u0651\",\n \"\\uFCF3\",\n \"\\u0640\\u064F\\u0651\",\n \"\\uFCF4\",\n \"\\u0640\\u0650\\u0651\",\n \"\\uFCF5\",\n \"\\u0637\\u0649\",\n \"\\uFCF6\",\n \"\\u0637\\u064A\",\n \"\\uFCF7\",\n \"\\u0639\\u0649\",\n \"\\uFCF8\",\n \"\\u0639\\u064A\",\n \"\\uFCF9\",\n \"\\u063A\\u0649\",\n \"\\uFCFA\",\n \"\\u063A\\u064A\",\n \"\\uFCFB\",\n \"\\u0633\\u0649\",\n \"\\uFCFC\",\n \"\\u0633\\u064A\",\n \"\\uFCFD\",\n \"\\u0634\\u0649\",\n \"\\uFCFE\",\n \"\\u0634\\u064A\",\n \"\\uFCFF\",\n \"\\u062D\\u0649\",\n \"\\uFD00\",\n \"\\u062D\\u064A\",\n \"\\uFD01\",\n \"\\u062C\\u0649\",\n \"\\uFD02\",\n \"\\u062C\\u064A\",\n \"\\uFD03\",\n \"\\u062E\\u0649\",\n \"\\uFD04\",\n \"\\u062E\\u064A\",\n \"\\uFD05\",\n \"\\u0635\\u0649\",\n \"\\uFD06\",\n \"\\u0635\\u064A\",\n \"\\uFD07\",\n \"\\u0636\\u0649\",\n \"\\uFD08\",\n \"\\u0636\\u064A\",\n \"\\uFD09\",\n \"\\u0634\\u062C\",\n \"\\uFD0A\",\n \"\\u0634\\u062D\",\n \"\\uFD0B\",\n \"\\u0634\\u062E\",\n \"\\uFD0C\",\n \"\\u0634\\u0645\",\n \"\\uFD0D\",\n \"\\u0634\\u0631\",\n \"\\uFD0E\",\n \"\\u0633\\u0631\",\n \"\\uFD0F\",\n \"\\u0635\\u0631\",\n \"\\uFD10\",\n \"\\u0636\\u0631\",\n \"\\uFD11\",\n \"\\u0637\\u0649\",\n \"\\uFD12\",\n \"\\u0637\\u064A\",\n \"\\uFD13\",\n \"\\u0639\\u0649\",\n \"\\uFD14\",\n \"\\u0639\\u064A\",\n \"\\uFD15\",\n \"\\u063A\\u0649\",\n \"\\uFD16\",\n \"\\u063A\\u064A\",\n \"\\uFD17\",\n \"\\u0633\\u0649\",\n \"\\uFD18\",\n \"\\u0633\\u064A\",\n \"\\uFD19\",\n \"\\u0634\\u0649\",\n \"\\uFD1A\",\n \"\\u0634\\u064A\",\n \"\\uFD1B\",\n \"\\u062D\\u0649\",\n \"\\uFD1C\",\n \"\\u062D\\u064A\",\n \"\\uFD1D\",\n \"\\u062C\\u0649\",\n \"\\uFD1E\",\n \"\\u062C\\u064A\",\n \"\\uFD1F\",\n \"\\u062E\\u0649\",\n \"\\uFD20\",\n \"\\u062E\\u064A\",\n \"\\uFD21\",\n \"\\u0635\\u0649\",\n \"\\uFD22\",\n \"\\u0635\\u064A\",\n \"\\uFD23\",\n \"\\u0636\\u0649\",\n \"\\uFD24\",\n \"\\u0636\\u064A\",\n \"\\uFD25\",\n \"\\u0634\\u062C\",\n \"\\uFD26\",\n \"\\u0634\\u062D\",\n \"\\uFD27\",\n \"\\u0634\\u062E\",\n \"\\uFD28\",\n \"\\u0634\\u0645\",\n \"\\uFD29\",\n \"\\u0634\\u0631\",\n \"\\uFD2A\",\n \"\\u0633\\u0631\",\n \"\\uFD2B\",\n \"\\u0635\\u0631\",\n \"\\uFD2C\",\n \"\\u0636\\u0631\",\n \"\\uFD2D\",\n \"\\u0634\\u062C\",\n \"\\uFD2E\",\n \"\\u0634\\u062D\",\n \"\\uFD2F\",\n \"\\u0634\\u062E\",\n \"\\uFD30\",\n \"\\u0634\\u0645\",\n \"\\uFD31\",\n \"\\u0633\\u0647\",\n \"\\uFD32\",\n \"\\u0634\\u0647\",\n \"\\uFD33\",\n \"\\u0637\\u0645\",\n \"\\uFD34\",\n \"\\u0633\\u062C\",\n \"\\uFD35\",\n \"\\u0633\\u062D\",\n \"\\uFD36\",\n \"\\u0633\\u062E\",\n \"\\uFD37\",\n \"\\u0634\\u062C\",\n \"\\uFD38\",\n \"\\u0634\\u062D\",\n \"\\uFD39\",\n \"\\u0634\\u062E\",\n \"\\uFD3A\",\n \"\\u0637\\u0645\",\n \"\\uFD3B\",\n \"\\u0638\\u0645\",\n \"\\uFD3C\",\n \"\\u0627\\u064B\",\n \"\\uFD3D\",\n \"\\u0627\\u064B\",\n \"\\uFD50\",\n \"\\u062A\\u062C\\u0645\",\n \"\\uFD51\",\n \"\\u062A\\u062D\\u062C\",\n \"\\uFD52\",\n \"\\u062A\\u062D\\u062C\",\n \"\\uFD53\",\n \"\\u062A\\u062D\\u0645\",\n \"\\uFD54\",\n \"\\u062A\\u062E\\u0645\",\n \"\\uFD55\",\n \"\\u062A\\u0645\\u062C\",\n \"\\uFD56\",\n \"\\u062A\\u0645\\u062D\",\n \"\\uFD57\",\n \"\\u062A\\u0645\\u062E\",\n \"\\uFD58\",\n \"\\u062C\\u0645\\u062D\",\n \"\\uFD59\",\n \"\\u062C\\u0645\\u062D\",\n \"\\uFD5A\",\n \"\\u062D\\u0645\\u064A\",\n \"\\uFD5B\",\n \"\\u062D\\u0645\\u0649\",\n \"\\uFD5C\",\n \"\\u0633\\u062D\\u062C\",\n \"\\uFD5D\",\n \"\\u0633\\u062C\\u062D\",\n \"\\uFD5E\",\n \"\\u0633\\u062C\\u0649\",\n \"\\uFD5F\",\n \"\\u0633\\u0645\\u062D\",\n \"\\uFD60\",\n \"\\u0633\\u0645\\u062D\",\n \"\\uFD61\",\n \"\\u0633\\u0645\\u062C\",\n \"\\uFD62\",\n \"\\u0633\\u0645\\u0645\",\n \"\\uFD63\",\n \"\\u0633\\u0645\\u0645\",\n \"\\uFD64\",\n \"\\u0635\\u062D\\u062D\",\n \"\\uFD65\",\n \"\\u0635\\u062D\\u062D\",\n \"\\uFD66\",\n \"\\u0635\\u0645\\u0645\",\n \"\\uFD67\",\n \"\\u0634\\u062D\\u0645\",\n \"\\uFD68\",\n \"\\u0634\\u062D\\u0645\",\n \"\\uFD69\",\n \"\\u0634\\u062C\\u064A\",\n \"\\uFD6A\",\n \"\\u0634\\u0645\\u062E\",\n \"\\uFD6B\",\n \"\\u0634\\u0645\\u062E\",\n \"\\uFD6C\",\n \"\\u0634\\u0645\\u0645\",\n \"\\uFD6D\",\n \"\\u0634\\u0645\\u0645\",\n \"\\uFD6E\",\n \"\\u0636\\u062D\\u0649\",\n \"\\uFD6F\",\n \"\\u0636\\u062E\\u0645\",\n \"\\uFD70\",\n \"\\u0636\\u062E\\u0645\",\n \"\\uFD71\",\n \"\\u0637\\u0645\\u062D\",\n \"\\uFD72\",\n \"\\u0637\\u0645\\u062D\",\n \"\\uFD73\",\n \"\\u0637\\u0645\\u0645\",\n \"\\uFD74\",\n \"\\u0637\\u0645\\u064A\",\n \"\\uFD75\",\n \"\\u0639\\u062C\\u0645\",\n \"\\uFD76\",\n \"\\u0639\\u0645\\u0645\",\n \"\\uFD77\",\n \"\\u0639\\u0645\\u0645\",\n \"\\uFD78\",\n \"\\u0639\\u0645\\u0649\",\n \"\\uFD79\",\n \"\\u063A\\u0645\\u0645\",\n \"\\uFD7A\",\n \"\\u063A\\u0645\\u064A\",\n \"\\uFD7B\",\n \"\\u063A\\u0645\\u0649\",\n \"\\uFD7C\",\n \"\\u0641\\u062E\\u0645\",\n \"\\uFD7D\",\n \"\\u0641\\u062E\\u0645\",\n \"\\uFD7E\",\n \"\\u0642\\u0645\\u062D\",\n \"\\uFD7F\",\n \"\\u0642\\u0645\\u0645\",\n \"\\uFD80\",\n \"\\u0644\\u062D\\u0645\",\n \"\\uFD81\",\n \"\\u0644\\u062D\\u064A\",\n \"\\uFD82\",\n \"\\u0644\\u062D\\u0649\",\n \"\\uFD83\",\n \"\\u0644\\u062C\\u062C\",\n \"\\uFD84\",\n \"\\u0644\\u062C\\u062C\",\n \"\\uFD85\",\n \"\\u0644\\u062E\\u0645\",\n \"\\uFD86\",\n \"\\u0644\\u062E\\u0645\",\n \"\\uFD87\",\n \"\\u0644\\u0645\\u062D\",\n \"\\uFD88\",\n \"\\u0644\\u0645\\u062D\",\n \"\\uFD89\",\n \"\\u0645\\u062D\\u062C\",\n \"\\uFD8A\",\n \"\\u0645\\u062D\\u0645\",\n \"\\uFD8B\",\n \"\\u0645\\u062D\\u064A\",\n \"\\uFD8C\",\n \"\\u0645\\u062C\\u062D\",\n \"\\uFD8D\",\n \"\\u0645\\u062C\\u0645\",\n \"\\uFD8E\",\n \"\\u0645\\u062E\\u062C\",\n \"\\uFD8F\",\n \"\\u0645\\u062E\\u0645\",\n \"\\uFD92\",\n \"\\u0645\\u062C\\u062E\",\n \"\\uFD93\",\n \"\\u0647\\u0645\\u062C\",\n \"\\uFD94\",\n \"\\u0647\\u0645\\u0645\",\n \"\\uFD95\",\n \"\\u0646\\u062D\\u0645\",\n \"\\uFD96\",\n \"\\u0646\\u062D\\u0649\",\n \"\\uFD97\",\n \"\\u0646\\u062C\\u0645\",\n \"\\uFD98\",\n \"\\u0646\\u062C\\u0645\",\n \"\\uFD99\",\n \"\\u0646\\u062C\\u0649\",\n \"\\uFD9A\",\n \"\\u0646\\u0645\\u064A\",\n \"\\uFD9B\",\n \"\\u0646\\u0645\\u0649\",\n \"\\uFD9C\",\n \"\\u064A\\u0645\\u0645\",\n \"\\uFD9D\",\n \"\\u064A\\u0645\\u0645\",\n \"\\uFD9E\",\n \"\\u0628\\u062E\\u064A\",\n \"\\uFD9F\",\n \"\\u062A\\u062C\\u064A\",\n \"\\uFDA0\",\n \"\\u062A\\u062C\\u0649\",\n \"\\uFDA1\",\n \"\\u062A\\u062E\\u064A\",\n \"\\uFDA2\",\n \"\\u062A\\u062E\\u0649\",\n \"\\uFDA3\",\n \"\\u062A\\u0645\\u064A\",\n \"\\uFDA4\",\n \"\\u062A\\u0645\\u0649\",\n \"\\uFDA5\",\n \"\\u062C\\u0645\\u064A\",\n \"\\uFDA6\",\n \"\\u062C\\u062D\\u0649\",\n \"\\uFDA7\",\n \"\\u062C\\u0645\\u0649\",\n \"\\uFDA8\",\n \"\\u0633\\u062E\\u0649\",\n \"\\uFDA9\",\n \"\\u0635\\u062D\\u064A\",\n \"\\uFDAA\",\n \"\\u0634\\u062D\\u064A\",\n \"\\uFDAB\",\n \"\\u0636\\u062D\\u064A\",\n \"\\uFDAC\",\n \"\\u0644\\u062C\\u064A\",\n \"\\uFDAD\",\n \"\\u0644\\u0645\\u064A\",\n \"\\uFDAE\",\n \"\\u064A\\u062D\\u064A\",\n \"\\uFDAF\",\n \"\\u064A\\u062C\\u064A\",\n \"\\uFDB0\",\n \"\\u064A\\u0645\\u064A\",\n \"\\uFDB1\",\n \"\\u0645\\u0645\\u064A\",\n \"\\uFDB2\",\n \"\\u0642\\u0645\\u064A\",\n \"\\uFDB3\",\n \"\\u0646\\u062D\\u064A\",\n \"\\uFDB4\",\n \"\\u0642\\u0645\\u062D\",\n \"\\uFDB5\",\n \"\\u0644\\u062D\\u0645\",\n \"\\uFDB6\",\n \"\\u0639\\u0645\\u064A\",\n \"\\uFDB7\",\n \"\\u0643\\u0645\\u064A\",\n \"\\uFDB8\",\n \"\\u0646\\u062C\\u062D\",\n \"\\uFDB9\",\n \"\\u0645\\u062E\\u064A\",\n \"\\uFDBA\",\n \"\\u0644\\u062C\\u0645\",\n \"\\uFDBB\",\n \"\\u0643\\u0645\\u0645\",\n \"\\uFDBC\",\n \"\\u0644\\u062C\\u0645\",\n \"\\uFDBD\",\n \"\\u0646\\u062C\\u062D\",\n \"\\uFDBE\",\n \"\\u062C\\u062D\\u064A\",\n \"\\uFDBF\",\n \"\\u062D\\u062C\\u064A\",\n \"\\uFDC0\",\n \"\\u0645\\u062C\\u064A\",\n \"\\uFDC1\",\n \"\\u0641\\u0645\\u064A\",\n \"\\uFDC2\",\n \"\\u0628\\u062D\\u064A\",\n \"\\uFDC3\",\n \"\\u0643\\u0645\\u0645\",\n \"\\uFDC4\",\n \"\\u0639\\u062C\\u0645\",\n \"\\uFDC5\",\n \"\\u0635\\u0645\\u0645\",\n \"\\uFDC6\",\n \"\\u0633\\u062E\\u064A\",\n \"\\uFDC7\",\n \"\\u0646\\u062C\\u064A\",\n \"\\uFE49\",\n \"\\u203E\",\n \"\\uFE4A\",\n \"\\u203E\",\n \"\\uFE4B\",\n \"\\u203E\",\n \"\\uFE4C\",\n \"\\u203E\",\n \"\\uFE4D\",\n \"\\u005F\",\n \"\\uFE4E\",\n \"\\u005F\",\n \"\\uFE4F\",\n \"\\u005F\",\n \"\\uFE80\",\n \"\\u0621\",\n \"\\uFE81\",\n \"\\u0622\",\n \"\\uFE82\",\n \"\\u0622\",\n \"\\uFE83\",\n \"\\u0623\",\n \"\\uFE84\",\n \"\\u0623\",\n \"\\uFE85\",\n \"\\u0624\",\n \"\\uFE86\",\n \"\\u0624\",\n \"\\uFE87\",\n \"\\u0625\",\n \"\\uFE88\",\n \"\\u0625\",\n \"\\uFE89\",\n \"\\u0626\",\n \"\\uFE8A\",\n \"\\u0626\",\n \"\\uFE8B\",\n \"\\u0626\",\n \"\\uFE8C\",\n \"\\u0626\",\n \"\\uFE8D\",\n \"\\u0627\",\n \"\\uFE8E\",\n \"\\u0627\",\n \"\\uFE8F\",\n \"\\u0628\",\n \"\\uFE90\",\n \"\\u0628\",\n \"\\uFE91\",\n \"\\u0628\",\n \"\\uFE92\",\n \"\\u0628\",\n \"\\uFE93\",\n \"\\u0629\",\n \"\\uFE94\",\n \"\\u0629\",\n \"\\uFE95\",\n \"\\u062A\",\n \"\\uFE96\",\n \"\\u062A\",\n \"\\uFE97\",\n \"\\u062A\",\n \"\\uFE98\",\n \"\\u062A\",\n \"\\uFE99\",\n \"\\u062B\",\n \"\\uFE9A\",\n \"\\u062B\",\n \"\\uFE9B\",\n \"\\u062B\",\n \"\\uFE9C\",\n \"\\u062B\",\n \"\\uFE9D\",\n \"\\u062C\",\n \"\\uFE9E\",\n \"\\u062C\",\n \"\\uFE9F\",\n \"\\u062C\",\n \"\\uFEA0\",\n \"\\u062C\",\n \"\\uFEA1\",\n \"\\u062D\",\n \"\\uFEA2\",\n \"\\u062D\",\n \"\\uFEA3\",\n \"\\u062D\",\n \"\\uFEA4\",\n \"\\u062D\",\n \"\\uFEA5\",\n \"\\u062E\",\n \"\\uFEA6\",\n \"\\u062E\",\n \"\\uFEA7\",\n \"\\u062E\",\n \"\\uFEA8\",\n \"\\u062E\",\n \"\\uFEA9\",\n \"\\u062F\",\n \"\\uFEAA\",\n \"\\u062F\",\n \"\\uFEAB\",\n \"\\u0630\",\n \"\\uFEAC\",\n \"\\u0630\",\n \"\\uFEAD\",\n \"\\u0631\",\n \"\\uFEAE\",\n \"\\u0631\",\n \"\\uFEAF\",\n \"\\u0632\",\n \"\\uFEB0\",\n \"\\u0632\",\n \"\\uFEB1\",\n \"\\u0633\",\n \"\\uFEB2\",\n \"\\u0633\",\n \"\\uFEB3\",\n \"\\u0633\",\n \"\\uFEB4\",\n \"\\u0633\",\n \"\\uFEB5\",\n \"\\u0634\",\n \"\\uFEB6\",\n \"\\u0634\",\n \"\\uFEB7\",\n \"\\u0634\",\n \"\\uFEB8\",\n \"\\u0634\",\n \"\\uFEB9\",\n \"\\u0635\",\n \"\\uFEBA\",\n \"\\u0635\",\n \"\\uFEBB\",\n \"\\u0635\",\n \"\\uFEBC\",\n \"\\u0635\",\n \"\\uFEBD\",\n \"\\u0636\",\n \"\\uFEBE\",\n \"\\u0636\",\n \"\\uFEBF\",\n \"\\u0636\",\n \"\\uFEC0\",\n \"\\u0636\",\n \"\\uFEC1\",\n \"\\u0637\",\n \"\\uFEC2\",\n \"\\u0637\",\n \"\\uFEC3\",\n \"\\u0637\",\n \"\\uFEC4\",\n \"\\u0637\",\n \"\\uFEC5\",\n \"\\u0638\",\n \"\\uFEC6\",\n \"\\u0638\",\n \"\\uFEC7\",\n \"\\u0638\",\n \"\\uFEC8\",\n \"\\u0638\",\n \"\\uFEC9\",\n \"\\u0639\",\n \"\\uFECA\",\n \"\\u0639\",\n \"\\uFECB\",\n \"\\u0639\",\n \"\\uFECC\",\n \"\\u0639\",\n \"\\uFECD\",\n \"\\u063A\",\n \"\\uFECE\",\n \"\\u063A\",\n \"\\uFECF\",\n \"\\u063A\",\n \"\\uFED0\",\n \"\\u063A\",\n \"\\uFED1\",\n \"\\u0641\",\n \"\\uFED2\",\n \"\\u0641\",\n \"\\uFED3\",\n \"\\u0641\",\n \"\\uFED4\",\n \"\\u0641\",\n \"\\uFED5\",\n \"\\u0642\",\n \"\\uFED6\",\n \"\\u0642\",\n \"\\uFED7\",\n \"\\u0642\",\n \"\\uFED8\",\n \"\\u0642\",\n \"\\uFED9\",\n \"\\u0643\",\n \"\\uFEDA\",\n \"\\u0643\",\n \"\\uFEDB\",\n \"\\u0643\",\n \"\\uFEDC\",\n \"\\u0643\",\n \"\\uFEDD\",\n \"\\u0644\",\n \"\\uFEDE\",\n \"\\u0644\",\n \"\\uFEDF\",\n \"\\u0644\",\n \"\\uFEE0\",\n \"\\u0644\",\n \"\\uFEE1\",\n \"\\u0645\",\n \"\\uFEE2\",\n \"\\u0645\",\n \"\\uFEE3\",\n \"\\u0645\",\n \"\\uFEE4\",\n \"\\u0645\",\n \"\\uFEE5\",\n \"\\u0646\",\n \"\\uFEE6\",\n \"\\u0646\",\n \"\\uFEE7\",\n \"\\u0646\",\n \"\\uFEE8\",\n \"\\u0646\",\n \"\\uFEE9\",\n \"\\u0647\",\n \"\\uFEEA\",\n \"\\u0647\",\n \"\\uFEEB\",\n \"\\u0647\",\n \"\\uFEEC\",\n \"\\u0647\",\n \"\\uFEED\",\n \"\\u0648\",\n \"\\uFEEE\",\n \"\\u0648\",\n \"\\uFEEF\",\n \"\\u0649\",\n \"\\uFEF0\",\n \"\\u0649\",\n \"\\uFEF1\",\n \"\\u064A\",\n \"\\uFEF2\",\n \"\\u064A\",\n \"\\uFEF3\",\n \"\\u064A\",\n \"\\uFEF4\",\n \"\\u064A\",\n \"\\uFEF5\",\n \"\\u0644\\u0622\",\n \"\\uFEF6\",\n \"\\u0644\\u0622\",\n \"\\uFEF7\",\n \"\\u0644\\u0623\",\n \"\\uFEF8\",\n \"\\u0644\\u0623\",\n \"\\uFEF9\",\n \"\\u0644\\u0625\",\n \"\\uFEFA\",\n \"\\u0644\\u0625\",\n \"\\uFEFB\",\n \"\\u0644\\u0627\",\n \"\\uFEFC\",\n \"\\u0644\\u0627\"\n ];\n});\nfunction reverseIfRtl(chars) {\n const charsLength = chars.length;\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n return chars;\n }\n const buf = [];\n for (let ii = charsLength - 1; ii >= 0; ii--) {\n buf.push(chars[ii]);\n }\n return buf.join(\"\");\n}\n\n\n/***/ }),\n/* 38 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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__(32);\n\nvar _glyphlist = __w_pdfjs_require__(35);\n\nvar _encodings = __w_pdfjs_require__(34);\n\nvar _stream = __w_pdfjs_require__(12);\n\nconst 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 const offset = getUshort(data, start + 2) === 1 ? getLong(data, start + 8) : getLong(data, start + 16);\n const format = getUshort(data, start + offset);\n let ranges, p, i;\n\n if (format === 4) {\n getUshort(data, start + offset + 2);\n const 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 let idOffset = getUshort(data, p);\n\n if (idOffset === 0) {\n continue;\n }\n\n ranges[i].ids = [];\n\n for (let 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 const 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 const properties = {};\n const parser = new _cff_parser.CFFParser(new _stream.Stream(data, start, end - start), properties, seacAnalysisEnabled);\n const 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 let 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 const glyphs = [];\n let startOffset = itemDecode(loca, 0);\n\n for (let j = itemSize; j < loca.length; j += itemSize) {\n const 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 const code = unicode.codePointAt(0);\n let gid = 0,\n l = 0,\n r = ranges.length - 1;\n\n while (l < r) {\n const 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 let i = 0;\n const numberOfContours = (code[i] << 24 | code[i + 1] << 16) >> 16;\n let flags;\n let x = 0,\n y = 0;\n i += 10;\n\n if (numberOfContours < 0) {\n do {\n flags = code[i] << 8 | code[i + 1];\n const glyphIndex = code[i + 2] << 8 | code[i + 3];\n i += 4;\n let 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 let 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 const 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 const endPtsOfContours = [];\n let 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 const instructionLength = code[i] << 8 | code[i + 1];\n i += 2 + instructionLength;\n const numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n const points = [];\n\n while (points.length < numberOfPoints) {\n flags = code[i++];\n let 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 let startPoint = 0;\n\n for (i = 0; i < numberOfContours; i++) {\n const endPoint = endPtsOfContours[i];\n const 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 const 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 const stack = [];\n let x = 0,\n y = 0;\n let stems = 0;\n\n function parse(code) {\n let i = 0;\n\n while (i < code.length) {\n let stackClean = false;\n let v = code[i++];\n let 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 const 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 const achar = stack.pop();\n const 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 let 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 const data = new Uint8Array(font.data);\n let cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n const numTables = getUshort(data, 4);\n\n for (let i = 0, p = 12; i < numTables; i++, p += 16) {\n const tag = (0, _util.bytesToString)(data.subarray(p, p + 4));\n const offset = getLong(data, p + 8);\n const 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 const 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/* 39 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Type1Parser = void 0;\n\nvar _encodings = __w_pdfjs_require__(34);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst HINTING_ENABLED = false;\n\nconst Type1CharString = function Type1CharStringClosure() {\n const 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 class Type1CharString {\n constructor() {\n this.width = 0;\n this.lsb = 0;\n this.flexing = false;\n this.output = [];\n this.stack = [];\n }\n\n convert(encoded, subrs, seacAnalysisEnabled) {\n const count = encoded.length;\n let error = false;\n let wx, sbx, subrNumber;\n\n for (let i = 0; i < count; i++) {\n let 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 const 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 const 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 const num2 = this.stack.pop();\n const 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 const numArgs = this.stack.pop();\n\n if (subrNumber === 0 && numArgs === 3) {\n const 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 const stackLength = this.stack.length;\n\n if (howManyArgs > stackLength) {\n return true;\n }\n\n const start = stackLength - howManyArgs;\n\n for (let i = start; i < stackLength; i++) {\n let 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\n return Type1CharString;\n}();\n\nconst Type1Parser = function Type1ParserClosure() {\n const EEXEC_ENCRYPT_KEY = 55665;\n const 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 const c1 = 52845,\n c2 = 22719;\n let r = key | 0,\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 const count = data.length - discardNumber;\n const decrypted = new Uint8Array(count);\n\n for (i = discardNumber, j = 0; j < count; i++, j++) {\n const 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 const c1 = 52845,\n c2 = 22719;\n let r = key | 0;\n const count = data.length,\n maybeLength = count >>> 1;\n const decrypted = new Uint8Array(maybeLength);\n let i, j;\n\n for (i = 0, j = 0; i < count; i++) {\n const digit1 = data[i];\n\n if (!isHexDigit(digit1)) {\n continue;\n }\n\n i++;\n let digit2;\n\n while (i < count && !isHexDigit(digit2 = data[i])) {\n i++;\n }\n\n if (i < count) {\n const 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 class Type1Parser {\n constructor(stream, encrypted, seacAnalysisEnabled) {\n if (encrypted) {\n const data = stream.getBytes();\n const 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 readNumberArray() {\n this.getToken();\n const array = [];\n\n while (true) {\n const 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\n readNumber() {\n const token = this.getToken();\n return parseFloat(token || 0);\n }\n\n readInt() {\n const token = this.getToken();\n return parseInt(token || 0, 10) | 0;\n }\n\n readBoolean() {\n const token = this.getToken();\n return token === \"true\" ? 1 : 0;\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 === -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 let 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\n readCharStrings(bytes, lenIV) {\n if (lenIV === -1) {\n return bytes;\n }\n\n return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n }\n\n extractFontProgram(properties) {\n const stream = this.stream;\n const subrs = [],\n charstrings = [];\n const privateData = Object.create(null);\n privateData.lenIV = 4;\n const program = {\n subrs: [],\n charstrings: [],\n properties: {\n privateData\n }\n };\n let 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 const 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 const 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 (let i = 0; i < charstrings.length; i++) {\n const glyph = charstrings[i].glyph;\n encoded = charstrings[i].encoded;\n const charString = new Type1CharString();\n const error = charString.convert(encoded, subrs, this.seacAnalysisEnabled);\n let 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\n extractFontHeader(properties) {\n let 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 const matrix = this.readNumberArray();\n properties.fontMatrix = matrix;\n break;\n\n case \"Encoding\":\n const encodingArg = this.getToken();\n let encoding;\n\n if (!/^\\d+$/.test(encodingArg)) {\n encoding = (0, _encodings.getEncoding)(encodingArg);\n } else {\n encoding = [];\n const size = parseInt(encodingArg, 10) | 0;\n this.getToken();\n\n for (let 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 const index = this.readInt();\n this.getToken();\n const glyph = this.getToken();\n encoding[index] = glyph;\n this.getToken();\n }\n }\n\n properties.builtInEncoding = encoding;\n break;\n\n case \"FontBBox\":\n const 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 }\n\n return Type1Parser;\n}();\n\nexports.Type1Parser = Type1Parser;\n\n/***/ }),\n/* 40 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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\nconst 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\nconst 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 const dict = (0, _primitives.isStream)(shading) ? shading.dict : shading;\n const 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;\nconst 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 let t0 = 0.0,\n t1 = 1.0;\n\n if (dict.has(\"Domain\")) {\n const domainArr = dict.getArray(\"Domain\");\n t0 = domainArr[0];\n t1 = domainArr[1];\n }\n\n let extendStart = false,\n extendEnd = false;\n\n if (dict.has(\"Extend\")) {\n const extendArr = dict.getArray(\"Extend\");\n extendStart = extendArr[0];\n extendEnd = extendArr[1];\n }\n\n if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) {\n const [x1, y1, r1, x2, y2, r2] = this.coordsArr;\n const distance = Math.hypot(x1 - x2, 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 const fnObj = dict.getRaw(\"Function\");\n const fn = pdfFunctionFactory.createFromArray(fnObj);\n const NUMBER_OF_SAMPLES = 10;\n const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n const colorStops = this.colorStops = [];\n\n if (t0 >= t1 || step <= 0) {\n (0, _util.info)(\"Bad shading domain.\");\n return;\n }\n\n const color = new Float32Array(cs.numComps),\n ratio = new Float32Array(1);\n let 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 const cssColor = _util.Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n\n colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]);\n }\n\n let background = \"transparent\";\n\n if (dict.has(\"Background\")) {\n rgbColor = cs.getRgb(dict.get(\"Background\"), 0);\n background = _util.Util.makeHexColor(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 const coordsArr = this.coordsArr;\n const shadingType = this.shadingType;\n let 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 const 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 const 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 const numComps = context.numComps;\n this.tmpCompsBuf = new Float32Array(numComps);\n const 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 const 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 let buffer = this.buffer;\n let 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 const 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 const bitsPerCoordinate = this.context.bitsPerCoordinate;\n const xi = this.readBits(bitsPerCoordinate);\n const yi = this.readBits(bitsPerCoordinate);\n const decode = this.context.decode;\n const 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 const numComps = this.context.numComps;\n const bitsPerComponent = this.context.bitsPerComponent;\n const scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10;\n const decode = this.context.decode;\n const components = this.tmpCompsBuf;\n\n for (let i = 0, j = 4; i < numComps; i++, j += 2) {\n const ci = this.readBits(bitsPerComponent);\n components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n }\n\n const 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 const coords = mesh.coords;\n const colors = mesh.colors;\n const operators = [];\n const ps = [];\n let verticesLeft = 0;\n\n while (reader.hasData) {\n const f = reader.readFlag();\n const coord = reader.readCoordinate();\n const 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 const coords = mesh.coords;\n const colors = mesh.colors;\n const ps = [];\n\n while (reader.hasData) {\n const coord = reader.readCoordinate();\n const 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 const MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;\n const MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;\n const TRIANGLE_DENSITY = 20;\n\n const getB = function getBClosure() {\n function buildB(count) {\n const lut = [];\n\n for (let i = 0; i <= count; i++) {\n const 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 const 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 const figure = mesh.figures[index];\n (0, _util.assert)(figure.type === \"patch\", \"Unexpected patch mesh figure\");\n const coords = mesh.coords,\n colors = mesh.colors;\n const pi = figure.coords;\n const ci = figure.colors;\n const figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n const figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n const figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n const figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n let 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 let 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 const verticesPerRow = splitXBy + 1;\n const figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n const figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n let k = 0;\n const cl = new Uint8Array(3),\n cr = new Uint8Array(3);\n const c0 = colors[ci[0]],\n c1 = colors[ci[1]],\n c2 = colors[ci[2]],\n c3 = colors[ci[3]];\n const bRow = getB(splitYBy),\n bCol = getB(splitXBy);\n\n for (let 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 (let col = 0; col <= splitXBy; col++, k++) {\n if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) {\n continue;\n }\n\n let x = 0,\n y = 0;\n let q = 0;\n\n for (let i = 0; i <= 3; i++) {\n for (let j = 0; j <= 3; j++, q++) {\n const 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 const 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 const coords = mesh.coords;\n const colors = mesh.colors;\n const ps = new Int32Array(16);\n const cs = new Int32Array(4);\n\n while (reader.hasData) {\n const f = reader.readFlag();\n\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError(\"Unknown type6 flag\");\n }\n\n const pi = coords.length;\n\n for (let i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n\n const ci = colors.length;\n\n for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n\n let 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 const coords = mesh.coords;\n const colors = mesh.colors;\n const ps = new Int32Array(16);\n const cs = new Int32Array(4);\n\n while (reader.hasData) {\n const f = reader.readFlag();\n\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError(\"Unknown type7 flag\");\n }\n\n const pi = coords.length;\n\n for (let i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n\n const ci = colors.length;\n\n for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n\n let 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 let minX = mesh.coords[0][0],\n minY = mesh.coords[0][1],\n maxX = minX,\n maxY = minY;\n\n for (let i = 1, ii = mesh.coords.length; i < ii; i++) {\n const 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 let i, ii, j, jj;\n const coords = mesh.coords;\n const coordsPacked = new Float32Array(coords.length * 2);\n\n for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n const xy = coords[i];\n coordsPacked[j++] = xy[0];\n coordsPacked[j++] = xy[1];\n }\n\n mesh.coords = coordsPacked;\n const colors = mesh.colors;\n const colorsPacked = new Uint8Array(colors.length * 3);\n\n for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n const 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 const figures = mesh.figures;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n const 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 const 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 const fnObj = dict.getRaw(\"Function\");\n const fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n this.coords = [];\n this.colors = [];\n this.figures = [];\n const 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 const reader = new MeshStreamReader(stream, decodeContext);\n let 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 const 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 (let 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, color) {\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\", color, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType];\n}\n\n/***/ }),\n/* 41 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isPDFFunction = isPDFFunction;\nexports.PostScriptEvaluator = exports.PostScriptCompiler = 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__(42);\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 }\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 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 this._localFunctionCache.set(null, fnRef, parsedFunction);\n }\n }\n\n get _localFunctionCache() {\n return (0, _util.shadow)(this, \"_localFunctionCache\", new _image_utils.LocalFunctionCache());\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 class PostScriptStack {\n constructor(initialStack) {\n this.stack = !initialStack ? [] : Array.prototype.slice.call(initialStack, 0);\n }\n\n 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\n pop() {\n if (this.stack.length <= 0) {\n throw new Error(\"PostScript function stack underflow.\");\n }\n\n return this.stack.pop();\n }\n\n 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\n index(n) {\n this.push(this.stack[this.stack.length - n - 1]);\n }\n\n 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 }\n\n return PostScriptStack;\n}();\n\nclass PostScriptEvaluator {\n constructor(operators) {\n this.operators = operators;\n }\n\n 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}\n\nexports.PostScriptEvaluator = PostScriptEvaluator;\n\nvar PostScriptCompiler = function PostScriptCompilerClosure() {\n class AstNode {\n constructor(type) {\n this.type = type;\n }\n\n visit(visitor) {\n (0, _util.unreachable)(\"abstract method\");\n }\n\n }\n\n class AstArgument extends AstNode {\n constructor(index, min, max) {\n super(\"args\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitArgument(this);\n }\n\n }\n\n class AstLiteral extends AstNode {\n constructor(number) {\n super(\"literal\");\n this.number = number;\n this.min = number;\n this.max = number;\n }\n\n visit(visitor) {\n visitor.visitLiteral(this);\n }\n\n }\n\n class AstBinaryOperation extends AstNode {\n constructor(op, arg1, arg2, min, max) {\n super(\"binary\");\n this.op = op;\n this.arg1 = arg1;\n this.arg2 = arg2;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitBinaryOperation(this);\n }\n\n }\n\n class AstMin extends AstNode {\n constructor(arg, max) {\n super(\"max\");\n this.arg = arg;\n this.min = arg.min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitMin(this);\n }\n\n }\n\n class AstVariable extends AstNode {\n constructor(index, min, max) {\n super(\"var\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitVariable(this);\n }\n\n }\n\n class AstVariableDefinition extends AstNode {\n constructor(variable, arg) {\n super(\"definition\");\n this.variable = variable;\n this.arg = arg;\n }\n\n visit(visitor) {\n visitor.visitVariableDefinition(this);\n }\n\n }\n\n class ExpressionBuilderVisitor {\n constructor() {\n this.parts = [];\n }\n\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 class PostScriptCompiler {\n 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 }\n\n return PostScriptCompiler;\n}();\n\nexports.PostScriptCompiler = PostScriptCompiler;\n\n/***/ }),\n/* 42 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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/* 43 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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/* 44 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getMetrics = void 0;\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nconst 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/* 45 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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.slice();\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/* 46 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.OperatorList = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst QueueOptimizer = function QueueOptimizerClosure() {\n function addState(parentState, pattern, checkFn, iterateFn, processFn) {\n let state = parentState;\n\n for (let i = 0, ii = pattern.length - 1; i < ii; i++) {\n const 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 const iFirstPIMXO = iFirstSave + 2;\n let i;\n\n for (i = 0; i < count; i++) {\n const arg = argsArray[iFirstPIMXO + 4 * i];\n const 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 const InitialState = [];\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], null, function iterateInlineImageGroup(context, i) {\n const fnArray = context.fnArray;\n const iFirstSave = context.iCurr - 3;\n const 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 const MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n const MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n const MAX_WIDTH = 1000;\n const IMAGE_PADDING = 1;\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIIXO = curr - 1;\n const 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 let maxX = 0;\n const map = [];\n let maxLineHeight = 0;\n let currentX = IMAGE_PADDING,\n currentY = IMAGE_PADDING;\n\n for (let q = 0; q < count; q++) {\n const transform = argsArray[iFirstTransform + (q << 2)];\n const 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 const imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n const imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n const imgData = new Uint8ClampedArray(imgWidth * imgHeight * 4);\n const imgRowSize = imgWidth << 2;\n\n for (let q = 0; q < count; q++) {\n const data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n const rowSize = map[q].w << 2;\n let dataOffset = 0;\n let offset = map[q].x + map[q].y * imgWidth << 2;\n imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n\n for (let 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 const fnArray = context.fnArray;\n const iFirstSave = context.iCurr - 3;\n const 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 const MIN_IMAGES_IN_MASKS_BLOCK = 10;\n const MAX_IMAGES_IN_MASKS_BLOCK = 100;\n const MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIMXO = curr - 1;\n let 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 let isSameImage = false;\n let iTransform, transformArgs;\n const 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 let iPIMXO = iFirstPIMXO + 4;\n\n for (let 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 const positions = new Float32Array(count * 2);\n iTransform = iFirstTransform;\n\n for (let 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 const images = [];\n\n for (let q = 0; q < count; q++) {\n transformArgs = argsArray[iFirstTransform + (q << 2)];\n const 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 const argsArray = context.argsArray;\n const iFirstTransform = context.iCurr - 2;\n return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0;\n }, function iterateImageGroup(context, i) {\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const iFirstSave = context.iCurr - 3;\n const 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 const iFirstTransform = context.iCurr - 2;\n const firstTransformArg0 = argsArray[iFirstTransform][0];\n const 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 const iFirstPIXO = context.iCurr - 1;\n const 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 const MIN_IMAGES_IN_BLOCK = 3;\n const MAX_IMAGES_IN_BLOCK = 1000;\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIXO = curr - 1;\n const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n const firstTransformArg0 = argsArray[iFirstTransform][0];\n const firstTransformArg3 = argsArray[iFirstTransform][3];\n const 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 const positions = new Float32Array(count * 2);\n let iTransform = iFirstTransform;\n\n for (let q = 0; q < count; q++, iTransform += 4) {\n const transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n const 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 const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const iFirstSave = context.iCurr - 4;\n const 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 const iFirstSetFont = context.iCurr - 3;\n const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n const 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 const MIN_CHARS_IN_BLOCK = 3;\n const MAX_CHARS_IN_BLOCK = 1000;\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstBeginText = curr - 4;\n const iFirstSetFont = curr - 3;\n const iFirstSetTextMatrix = curr - 2;\n const iFirstShowText = curr - 1;\n const iFirstEndText = curr;\n const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n let 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 let 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 let iEndText = iFirst + 4;\n\n for (let 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\nconst 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\nconst OperatorList = function OperatorListClosure() {\n const CHUNK_SIZE = 1000;\n const 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 (let 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/* 47 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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/* 48 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.incrementalUpdate = incrementalUpdate;\nexports.writeDict = writeDict;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _xml_parser = __w_pdfjs_require__(26);\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(` /${(0, _core_utils.escapePDFName)(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(`/${(0, _core_utils.escapePDFName)(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 updateXFA(datasetsRef, newRefs, xref) {\n if (datasetsRef === null || xref === null) {\n return;\n }\n\n const datasets = xref.fetchIfRef(datasetsRef);\n const str = (0, _util.bytesToString)(datasets.getBytes());\n const xml = new _xml_parser.SimpleXMLParser({\n hasAttributes: true\n }).parseFromString(str);\n\n for (const {\n xfa\n } of newRefs) {\n if (!xfa) {\n continue;\n }\n\n const {\n path,\n value\n } = xfa;\n\n if (!path) {\n continue;\n }\n\n const node = xml.documentElement.searchNode((0, _core_utils.parseXFAPath)(path), 0);\n\n if (node) {\n node.childNodes = [new _xml_parser.SimpleDOMNode(\"#text\", value)];\n } else {\n (0, _util.warn)(`Node not found for path: ${path}`);\n }\n }\n\n const buffer = [];\n xml.documentElement.dump(buffer);\n let updatedXml = buffer.join(\"\");\n const encrypt = xref.encrypt;\n\n if (encrypt) {\n const transform = encrypt.createCipherTransform(datasetsRef.num, datasetsRef.gen);\n updatedXml = transform.encryptString(updatedXml);\n }\n\n const data = `${datasetsRef.num} ${datasetsRef.gen} obj\\n` + `<< /Type /EmbeddedFile /Length ${updatedXml.length}>>\\nstream\\n` + updatedXml + \"\\nendstream\\nendobj\\n\";\n newRefs.push({\n ref: datasetsRef,\n data\n });\n}\n\nfunction incrementalUpdate({\n originalData,\n xrefInfo,\n newRefs,\n xref = null,\n datasetsRef = null\n}) {\n updateXFA(datasetsRef, newRefs, xref);\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/* 49 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XFAFactory = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nvar _bind = __w_pdfjs_require__(53);\n\nvar _parser = __w_pdfjs_require__(57);\n\nclass XFAFactory {\n constructor(data) {\n try {\n this.root = new _parser.XFAParser().parse(XFAFactory._createDocument(data));\n this.form = new _bind.Binder(this.root).bind();\n this.pages = this.form[_xfa_object.$toHTML]();\n } catch (e) {\n console.log(e);\n }\n }\n\n getPage(pageIndex) {\n return this.pages.children[pageIndex];\n }\n\n get numberPages() {\n return this.pages.children.length;\n }\n\n static _createDocument(data) {\n if (!data[\"/xdp:xdp\"]) {\n return data[\"xdp:xdp\"];\n }\n\n return Object.values(data).join(\"\");\n }\n\n}\n\nexports.XFAFactory = XFAFactory;\n\n/***/ }),\n/* 50 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XmlObject = exports.XFAObjectArray = exports.XFAObject = exports.XFAAttribute = exports.StringObject = exports.OptionObject = exports.Option10 = exports.Option01 = exports.IntegerObject = exports.ContentObject = exports.$uid = exports.$toStyle = exports.$toHTML = exports.$text = exports.$setValue = exports.$setSetAttributes = exports.$setId = exports.$resolvePrototypes = exports.$removeChild = exports.$onText = exports.$onChildCheck = exports.$onChild = exports.$nsAttributes = exports.$nodeName = exports.$namespaceId = exports.$isTransparent = exports.$isDescendent = exports.$isDataValue = exports.$insertAt = exports.$indexOf = exports.$hasSettableValue = exports.$hasItem = exports.$global = exports.$getRealChildrenByNameIt = exports.$getParent = exports.$getChildrenByNameIt = exports.$getChildrenByName = exports.$getChildrenByClass = exports.$getChildren = exports.$getAttributeIt = exports.$finalize = exports.$extra = exports.$dump = exports.$data = exports.$content = exports.$consumed = exports.$clone = exports.$cleanup = exports.$clean = exports.$childrenToHTML = exports.$appendChild = void 0;\n\nvar _utils = __w_pdfjs_require__(51);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _namespaces = __w_pdfjs_require__(52);\n\nconst $appendChild = Symbol();\nexports.$appendChild = $appendChild;\nconst $childrenToHTML = Symbol();\nexports.$childrenToHTML = $childrenToHTML;\nconst $clean = Symbol();\nexports.$clean = $clean;\nconst $cleanup = Symbol();\nexports.$cleanup = $cleanup;\nconst $clone = Symbol();\nexports.$clone = $clone;\nconst $consumed = Symbol();\nexports.$consumed = $consumed;\nconst $content = Symbol(\"content\");\nexports.$content = $content;\nconst $data = Symbol(\"data\");\nexports.$data = $data;\nconst $dump = Symbol();\nexports.$dump = $dump;\nconst $extra = Symbol(\"extra\");\nexports.$extra = $extra;\nconst $finalize = Symbol();\nexports.$finalize = $finalize;\nconst $getAttributeIt = Symbol();\nexports.$getAttributeIt = $getAttributeIt;\nconst $getChildrenByClass = Symbol();\nexports.$getChildrenByClass = $getChildrenByClass;\nconst $getChildrenByName = Symbol();\nexports.$getChildrenByName = $getChildrenByName;\nconst $getChildrenByNameIt = Symbol();\nexports.$getChildrenByNameIt = $getChildrenByNameIt;\nconst $getRealChildrenByNameIt = Symbol();\nexports.$getRealChildrenByNameIt = $getRealChildrenByNameIt;\nconst $getChildren = Symbol();\nexports.$getChildren = $getChildren;\nconst $getParent = Symbol();\nexports.$getParent = $getParent;\nconst $global = Symbol();\nexports.$global = $global;\nconst $hasItem = Symbol();\nexports.$hasItem = $hasItem;\nconst $hasSettableValue = Symbol();\nexports.$hasSettableValue = $hasSettableValue;\nconst $indexOf = Symbol();\nexports.$indexOf = $indexOf;\nconst $insertAt = Symbol();\nexports.$insertAt = $insertAt;\nconst $isDataValue = Symbol();\nexports.$isDataValue = $isDataValue;\nconst $isDescendent = Symbol();\nexports.$isDescendent = $isDescendent;\nconst $isTransparent = Symbol();\nexports.$isTransparent = $isTransparent;\nconst $lastAttribute = Symbol();\nconst $namespaceId = Symbol(\"namespaceId\");\nexports.$namespaceId = $namespaceId;\nconst $nodeName = Symbol(\"nodeName\");\nexports.$nodeName = $nodeName;\nconst $nsAttributes = Symbol();\nexports.$nsAttributes = $nsAttributes;\nconst $onChild = Symbol();\nexports.$onChild = $onChild;\nconst $onChildCheck = Symbol();\nexports.$onChildCheck = $onChildCheck;\nconst $onText = Symbol();\nexports.$onText = $onText;\nconst $removeChild = Symbol();\nexports.$removeChild = $removeChild;\nconst $resolvePrototypes = Symbol();\nexports.$resolvePrototypes = $resolvePrototypes;\nconst $setId = Symbol();\nexports.$setId = $setId;\nconst $setSetAttributes = Symbol();\nexports.$setSetAttributes = $setSetAttributes;\nconst $setValue = Symbol();\nexports.$setValue = $setValue;\nconst $text = Symbol();\nexports.$text = $text;\nconst $toHTML = Symbol();\nexports.$toHTML = $toHTML;\nconst $toStyle = Symbol();\nexports.$toStyle = $toStyle;\nconst $uid = Symbol(\"uid\");\nexports.$uid = $uid;\n\nconst _applyPrototype = Symbol();\n\nconst _attributes = Symbol();\n\nconst _attributeNames = Symbol();\n\nconst _children = Symbol(\"_children\");\n\nconst _cloneAttribute = Symbol();\n\nconst _dataValue = Symbol();\n\nconst _defaultValue = Symbol();\n\nconst _getPrototype = Symbol();\n\nconst _getUnsetAttributes = Symbol();\n\nconst _hasChildren = Symbol();\n\nconst _max = Symbol();\n\nconst _options = Symbol();\n\nconst _parent = Symbol(\"parent\");\n\nconst _setAttributes = Symbol();\n\nconst _validator = Symbol();\n\nlet uid = 0;\n\nclass XFAObject {\n constructor(nsId, name, hasChildren = false) {\n this[$namespaceId] = nsId;\n this[$nodeName] = name;\n this[_hasChildren] = hasChildren;\n this[_parent] = null;\n this[_children] = [];\n this[$uid] = `${name}${uid++}`;\n }\n\n [$onChild](child) {\n if (!this[_hasChildren] || !this[$onChildCheck](child)) {\n return false;\n }\n\n const name = child[$nodeName];\n const node = this[name];\n\n if (node instanceof XFAObjectArray) {\n if (node.push(child)) {\n this[$appendChild](child);\n return true;\n }\n } else {\n if (node !== null) {\n this[$removeChild](node);\n }\n\n this[name] = child;\n this[$appendChild](child);\n return true;\n }\n\n let id = \"\";\n\n if (this.id) {\n id = ` (id: ${this.id})`;\n } else if (this.name) {\n id = ` (name: ${this.name} ${this.h.value})`;\n }\n\n (0, _util.warn)(`XFA - node \"${this[$nodeName]}\"${id} has already enough \"${name}\"!`);\n return false;\n }\n\n [$onChildCheck](child) {\n return this.hasOwnProperty(child[$nodeName]) && child[$namespaceId] === this[$namespaceId];\n }\n\n [$setId](ids) {\n if (this.id && this[$namespaceId] === _namespaces.NamespaceIds.template.id) {\n ids.set(this.id, this);\n }\n }\n\n [$appendChild](child) {\n child[_parent] = this;\n\n this[_children].push(child);\n }\n\n [$removeChild](child) {\n const i = this[_children].indexOf(child);\n\n this[_children].splice(i, 1);\n }\n\n [$hasSettableValue]() {\n return this.hasOwnProperty(\"value\");\n }\n\n [$setValue](_) {}\n\n [$onText](_) {}\n\n [$finalize]() {}\n\n [$clean](builder) {\n delete this[_hasChildren];\n\n if (this[$cleanup]) {\n builder.clean(this[$cleanup]);\n delete this[$cleanup];\n }\n }\n\n [$hasItem]() {\n return false;\n }\n\n [$indexOf](child) {\n return this[_children].indexOf(child);\n }\n\n [$insertAt](i, child) {\n child[_parent] = this;\n\n this[_children].splice(i, 0, child);\n }\n\n [$isTransparent]() {\n return this.name === \"\";\n }\n\n [$lastAttribute]() {\n return \"\";\n }\n\n [$text]() {\n if (this[_children].length === 0) {\n return this[$content];\n }\n\n return this[_children].map(c => c[$text]()).join(\"\");\n }\n\n get [_attributeNames]() {\n const proto = Object.getPrototypeOf(this);\n\n if (!proto._attributes) {\n const attributes = proto._attributes = new Set();\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (this[name] === null || this[name] instanceof XFAObject || this[name] instanceof XFAObjectArray) {\n break;\n }\n\n attributes.add(name);\n }\n }\n\n return (0, _util.shadow)(this, _attributeNames, proto._attributes);\n }\n\n [$isDescendent](parent) {\n let node = this;\n\n while (node) {\n if (node === parent) {\n return true;\n }\n\n node = node[$getParent]();\n }\n\n return false;\n }\n\n [$getParent]() {\n return this[_parent];\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[name];\n }\n\n [$dump]() {\n const dumped = Object.create(null);\n\n if (this[$content]) {\n dumped.$content = this[$content];\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n const value = this[name];\n\n if (value === null) {\n continue;\n }\n\n if (value instanceof XFAObject) {\n dumped[name] = value[$dump]();\n } else if (value instanceof XFAObjectArray) {\n if (!value.isEmpty()) {\n dumped[name] = value.dump();\n }\n } else {\n dumped[name] = value;\n }\n }\n\n return dumped;\n }\n\n [$toStyle]() {\n return null;\n }\n\n [$toHTML]() {\n return null;\n }\n\n [$childrenToHTML]({\n filter = null,\n include = true\n }) {\n const res = [];\n this[$getChildren]().forEach(node => {\n if (!filter || include === filter.has(node[$nodeName])) {\n const html = node[$toHTML]();\n\n if (html) {\n res.push(html);\n }\n }\n });\n return res;\n }\n\n [$setSetAttributes](attributes) {\n if (attributes.use || attributes.id) {\n this[_setAttributes] = new Set(Object.keys(attributes));\n }\n }\n\n [_getUnsetAttributes](protoAttributes) {\n const allAttr = this[_attributeNames];\n const setAttr = this[_setAttributes];\n return [...protoAttributes].filter(x => allAttr.has(x) && !setAttr.has(x));\n }\n\n [$resolvePrototypes](ids, ancestors = new Set()) {\n for (const child of this[_children]) {\n const proto = child[_getPrototype](ids, ancestors);\n\n if (proto) {\n child[_applyPrototype](proto, ids, ancestors);\n } else {\n child[$resolvePrototypes](ids, ancestors);\n }\n }\n }\n\n [_getPrototype](ids, ancestors) {\n const {\n use\n } = this;\n\n if (use && use.startsWith(\"#\")) {\n const id = use.slice(1);\n const proto = ids.get(id);\n this.use = \"\";\n\n if (!proto) {\n (0, _util.warn)(`XFA - Invalid prototype id: ${id}.`);\n return null;\n }\n\n if (proto[$nodeName] !== this[$nodeName]) {\n (0, _util.warn)(`XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`);\n return null;\n }\n\n if (ancestors.has(proto)) {\n (0, _util.warn)(`XFA - Cycle detected in prototypes use.`);\n return null;\n }\n\n ancestors.add(proto);\n\n const protoProto = proto[_getPrototype](ids, ancestors);\n\n if (!protoProto) {\n ancestors.delete(proto);\n return proto;\n }\n\n proto[_applyPrototype](protoProto, ids, ancestors);\n\n ancestors.delete(proto);\n return proto;\n }\n\n return null;\n }\n\n [_applyPrototype](proto, ids, ancestors) {\n if (ancestors.has(proto)) {\n (0, _util.warn)(`XFA - Cycle detected in prototypes use.`);\n return;\n }\n\n if (!this[$content] && proto[$content]) {\n this[$content] = proto[$content];\n }\n\n const newAncestors = new Set(ancestors);\n newAncestors.add(proto);\n\n for (const unsetAttrName of this[_getUnsetAttributes](proto[_setAttributes])) {\n this[unsetAttrName] = proto[unsetAttrName];\n\n if (this[_setAttributes]) {\n this[_setAttributes].add(unsetAttrName);\n }\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (this[_attributeNames].has(name)) {\n continue;\n }\n\n const value = this[name];\n const protoValue = proto[name];\n\n if (value instanceof XFAObjectArray) {\n for (const child of value[_children]) {\n child[$resolvePrototypes](ids, ancestors);\n }\n\n for (let i = value[_children].length, ii = protoValue[_children].length; i < ii; i++) {\n const child = proto[_children][i][$clone]();\n\n if (value.push(child)) {\n child[_parent] = this;\n\n this[_children].push(child);\n\n child[$resolvePrototypes](ids, newAncestors);\n } else {\n break;\n }\n }\n\n continue;\n }\n\n if (value !== null) {\n value[$resolvePrototypes](ids, ancestors);\n continue;\n }\n\n if (protoValue !== null) {\n const child = protoValue[$clone]();\n child[_parent] = this;\n this[name] = child;\n\n this[_children].push(child);\n\n child[$resolvePrototypes](ids, newAncestors);\n }\n }\n }\n\n static [_cloneAttribute](obj) {\n if (Array.isArray(obj)) {\n return obj.map(x => XFAObject[_cloneAttribute](x));\n }\n\n if (obj instanceof Object) {\n return Object.assign({}, obj);\n }\n\n return obj;\n }\n\n [$clone]() {\n const clone = Object.create(Object.getPrototypeOf(this));\n\n for (const $symbol of Object.getOwnPropertySymbols(this)) {\n try {\n clone[$symbol] = this[$symbol];\n } catch (_) {\n (0, _util.shadow)(clone, $symbol, this[$symbol]);\n }\n }\n\n clone[_children] = [];\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (this[_attributeNames].has(name)) {\n clone[name] = XFAObject[_cloneAttribute](this[name]);\n continue;\n }\n\n const value = this[name];\n\n if (value instanceof XFAObjectArray) {\n clone[name] = new XFAObjectArray(value[_max]);\n } else {\n clone[name] = null;\n }\n }\n\n for (const child of this[_children]) {\n const name = child[$nodeName];\n const clonedChild = child[$clone]();\n\n clone[_children].push(clonedChild);\n\n clonedChild[_parent] = clone;\n\n if (clone[name] === null) {\n clone[name] = clonedChild;\n } else {\n clone[name][_children].push(clonedChild);\n }\n }\n\n return clone;\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[_children].filter(c => c[$nodeName] === name);\n }\n\n [$getChildrenByClass](name) {\n return this[name];\n }\n\n [$getChildrenByName](name, allTransparent, first = true) {\n return Array.from(this[$getChildrenByNameIt](name, allTransparent, first));\n }\n\n *[$getChildrenByNameIt](name, allTransparent, first = true) {\n if (name === \"parent\") {\n yield this[_parent];\n return;\n }\n\n for (const child of this[_children]) {\n if (child[$nodeName] === name) {\n yield child;\n }\n\n if (child.name === name) {\n yield child;\n }\n\n if (allTransparent || child[$isTransparent]()) {\n yield* child[$getChildrenByNameIt](name, allTransparent, false);\n }\n }\n\n if (first && this[_attributeNames].has(name)) {\n yield new XFAAttribute(this, name, this[name]);\n }\n }\n\n}\n\nexports.XFAObject = XFAObject;\n\nclass XFAObjectArray {\n constructor(max = Infinity) {\n this[_max] = max;\n this[_children] = [];\n }\n\n push(child) {\n const len = this[_children].length;\n\n if (len <= this[_max]) {\n this[_children].push(child);\n\n return true;\n }\n\n (0, _util.warn)(`XFA - node \"${child[$nodeName]}\" accepts no more than ${this[_max]} children`);\n return false;\n }\n\n isEmpty() {\n return this[_children].length === 0;\n }\n\n dump() {\n return this[_children].length === 1 ? this[_children][0][$dump]() : this[_children].map(x => x[$dump]());\n }\n\n [$clone]() {\n const clone = new XFAObjectArray(this[_max]);\n clone[_children] = this[_children].map(c => c[$clone]());\n return clone;\n }\n\n get children() {\n return this[_children];\n }\n\n clear() {\n this[_children].length = 0;\n }\n\n}\n\nexports.XFAObjectArray = XFAObjectArray;\n\nclass XFAAttribute {\n constructor(node, name, value) {\n this[_parent] = node;\n this[$nodeName] = name;\n this[$content] = value;\n this[$consumed] = false;\n }\n\n [$getParent]() {\n return this[_parent];\n }\n\n [$isDataValue]() {\n return true;\n }\n\n [$text]() {\n return this[$content];\n }\n\n [$isDescendent](parent) {\n return this[_parent] === parent || this[_parent][$isDescendent](parent);\n }\n\n}\n\nexports.XFAAttribute = XFAAttribute;\n\nclass XmlObject extends XFAObject {\n constructor(nsId, name, attributes = {}) {\n super(nsId, name);\n this[$content] = \"\";\n this[_dataValue] = null;\n\n if (name !== \"#text\") {\n const map = new Map();\n this[_attributes] = map;\n\n for (const [attrName, value] of Object.entries(attributes)) {\n map.set(attrName, new XFAAttribute(this, attrName, value));\n }\n\n if (attributes.hasOwnProperty($nsAttributes)) {\n const dataNode = attributes[$nsAttributes].xfa.dataNode;\n\n if (dataNode !== undefined) {\n if (dataNode === \"dataGroup\") {\n this[_dataValue] = false;\n } else if (dataNode === \"dataValue\") {\n this[_dataValue] = true;\n }\n }\n }\n }\n\n this[$consumed] = false;\n }\n\n [$onChild](child) {\n if (this[$content]) {\n const node = new XmlObject(this[$namespaceId], \"#text\");\n this[$appendChild](node);\n node[$content] = this[$content];\n this[$content] = \"\";\n }\n\n this[$appendChild](child);\n return true;\n }\n\n [$onText](str) {\n this[$content] += str;\n }\n\n [$finalize]() {\n if (this[$content] && this[_children].length > 0) {\n const node = new XmlObject(this[$namespaceId], \"#text\");\n this[$appendChild](node);\n node[$content] = this[$content];\n delete this[$content];\n }\n }\n\n [$toHTML]() {\n if (this[$nodeName] === \"#text\") {\n return {\n name: \"#text\",\n value: this[$content]\n };\n }\n\n return null;\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[_children].filter(c => c[$nodeName] === name);\n }\n\n [$getChildrenByClass](name) {\n const value = this[_attributes].get(name);\n\n if (value !== undefined) {\n return value;\n }\n\n return this[$getChildren](name);\n }\n\n *[$getChildrenByNameIt](name, allTransparent) {\n const value = this[_attributes].get(name);\n\n if (value) {\n yield value;\n }\n\n for (const child of this[_children]) {\n if (child[$nodeName] === name) {\n yield child;\n }\n\n if (allTransparent) {\n yield* child[$getChildrenByNameIt](name, allTransparent);\n }\n }\n }\n\n *[$getAttributeIt](name, skipConsumed) {\n const value = this[_attributes].get(name);\n\n if (value && (!skipConsumed || !value[$consumed])) {\n yield value;\n }\n\n for (const child of this[_children]) {\n yield* child[$getAttributeIt](name, skipConsumed);\n }\n }\n\n *[$getRealChildrenByNameIt](name, allTransparent, skipConsumed) {\n for (const child of this[_children]) {\n if (child[$nodeName] === name && (!skipConsumed || !child[$consumed])) {\n yield child;\n }\n\n if (allTransparent) {\n yield* child[$getRealChildrenByNameIt](name, allTransparent, skipConsumed);\n }\n }\n }\n\n [$isDataValue]() {\n if (this[_dataValue] === null) {\n return this[_children].length === 0;\n }\n\n return this[_dataValue];\n }\n\n [$dump]() {\n const dumped = Object.create(null);\n\n if (this[$content]) {\n dumped.$content = this[$content];\n }\n\n dumped.$name = this[$nodeName];\n dumped.children = [];\n\n for (const child of this[_children]) {\n dumped.children.push(child[$dump]());\n }\n\n dumped.attributes = Object.create(null);\n\n for (const [name, value] of this[_attributes]) {\n dumped.attributes[name] = value[$content];\n }\n\n return dumped;\n }\n\n}\n\nexports.XmlObject = XmlObject;\n\nclass ContentObject extends XFAObject {\n constructor(nsId, name) {\n super(nsId, name);\n this[$content] = \"\";\n }\n\n [$onText](text) {\n this[$content] += text;\n }\n\n [$finalize]() {}\n\n}\n\nexports.ContentObject = ContentObject;\n\nclass OptionObject extends ContentObject {\n constructor(nsId, name, options) {\n super(nsId, name);\n this[_options] = options;\n }\n\n [$finalize]() {\n this[$content] = (0, _utils.getKeyword)({\n data: this[$content],\n defaultValue: this[_options][0],\n validate: k => this[_options].includes(k)\n });\n }\n\n [$clean](builder) {\n super[$clean](builder);\n delete this[_options];\n }\n\n}\n\nexports.OptionObject = OptionObject;\n\nclass StringObject extends ContentObject {\n [$finalize]() {\n this[$content] = this[$content].trim();\n }\n\n}\n\nexports.StringObject = StringObject;\n\nclass IntegerObject extends ContentObject {\n constructor(nsId, name, defaultValue, validator) {\n super(nsId, name);\n this[_defaultValue] = defaultValue;\n this[_validator] = validator;\n }\n\n [$finalize]() {\n this[$content] = (0, _utils.getInteger)({\n data: this[$content],\n defaultValue: this[_defaultValue],\n validate: this[_validator]\n });\n }\n\n [$clean](builder) {\n super[$clean](builder);\n delete this[_defaultValue];\n delete this[_validator];\n }\n\n}\n\nexports.IntegerObject = IntegerObject;\n\nclass Option01 extends IntegerObject {\n constructor(nsId, name) {\n super(nsId, name, 0, n => n === 1);\n }\n\n}\n\nexports.Option01 = Option01;\n\nclass Option10 extends IntegerObject {\n constructor(nsId, name) {\n super(nsId, name, 1, n => n === 0);\n }\n\n}\n\nexports.Option10 = Option10;\n\n/***/ }),\n/* 51 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getBBox = getBBox;\nexports.getColor = getColor;\nexports.getFloat = getFloat;\nexports.getInteger = getInteger;\nexports.getKeyword = getKeyword;\nexports.getMeasurement = getMeasurement;\nexports.getRatio = getRatio;\nexports.getRelevant = getRelevant;\nexports.getStringOption = getStringOption;\nconst dimConverters = {\n pt: x => x,\n cm: x => x / 2.54 * 72,\n mm: x => x / (10 * 2.54) * 72,\n in: x => x * 72\n};\nconst measurementPattern = /([+-]?[0-9]+\\.?[0-9]*)(.*)/;\n\nfunction getInteger({\n data,\n defaultValue,\n validate\n}) {\n if (!data) {\n return defaultValue;\n }\n\n data = data.trim();\n const n = parseInt(data, 10);\n\n if (!isNaN(n) && validate(n)) {\n return n;\n }\n\n return defaultValue;\n}\n\nfunction getFloat({\n data,\n defaultValue,\n validate\n}) {\n if (!data) {\n return defaultValue;\n }\n\n data = data.trim();\n const n = parseFloat(data);\n\n if (!isNaN(n) && validate(n)) {\n return n;\n }\n\n return defaultValue;\n}\n\nfunction getKeyword({\n data,\n defaultValue,\n validate\n}) {\n if (!data) {\n return defaultValue;\n }\n\n data = data.trim();\n\n if (validate(data)) {\n return data;\n }\n\n return defaultValue;\n}\n\nfunction getStringOption(data, options) {\n return getKeyword({\n data,\n defaultValue: options[0],\n validate: k => options.includes(k)\n });\n}\n\nfunction getMeasurement(str, def = \"0\") {\n def = def || \"0\";\n\n if (!str) {\n return getMeasurement(def);\n }\n\n const match = str.trim().match(measurementPattern);\n\n if (!match) {\n return getMeasurement(def);\n }\n\n const [, valueStr, unit] = match;\n const value = parseFloat(valueStr);\n\n if (isNaN(value)) {\n return getMeasurement(def);\n }\n\n if (value === 0) {\n return 0;\n }\n\n const conv = dimConverters[unit];\n\n if (conv) {\n return conv(value);\n }\n\n return value;\n}\n\nfunction getRatio(data) {\n if (!data) {\n return {\n num: 1,\n den: 1\n };\n }\n\n const ratio = data.trim().split(/\\s*:\\s*/).map(x => parseFloat(x)).filter(x => !isNaN(x));\n\n if (ratio.length === 1) {\n ratio.push(1);\n }\n\n if (ratio.length === 0) {\n return {\n num: 1,\n den: 1\n };\n }\n\n const [num, den] = ratio;\n return {\n num,\n den\n };\n}\n\nfunction getRelevant(data) {\n if (!data) {\n return [];\n }\n\n return data.trim().split(/\\s+/).map(e => {\n return {\n excluded: e[0] === \"-\",\n viewname: e.substring(1)\n };\n });\n}\n\nfunction getColor(data, def = [0, 0, 0]) {\n let [r, g, b] = def;\n\n if (!data) {\n return {\n r,\n g,\n b\n };\n }\n\n const color = data.trim().split(/\\s*,\\s*/).map(c => Math.min(Math.max(0, parseInt(c.trim(), 10)), 255)).map(c => isNaN(c) ? 0 : c);\n\n if (color.length < 3) {\n return {\n r,\n g,\n b\n };\n }\n\n [r, g, b] = color;\n return {\n r,\n g,\n b\n };\n}\n\nfunction getBBox(data) {\n const def = -1;\n\n if (!data) {\n return {\n x: def,\n y: def,\n width: def,\n height: def\n };\n }\n\n const bbox = data.trim().split(/\\s*,\\s*/).map(m => getMeasurement(m, \"-1\"));\n\n if (bbox.length < 4 || bbox[2] < 0 || bbox[3] < 0) {\n return {\n x: def,\n y: def,\n width: def,\n height: def\n };\n }\n\n const [x, y, width, height] = bbox;\n return {\n x,\n y,\n width,\n height\n };\n}\n\n/***/ }),\n/* 52 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NamespaceIds = exports.$buildXFAObject = void 0;\nconst $buildXFAObject = Symbol();\nexports.$buildXFAObject = $buildXFAObject;\nconst NamespaceIds = {\n config: {\n id: 0,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xci/\")\n },\n connectionSet: {\n id: 1,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-connection-set/\")\n },\n datasets: {\n id: 2,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-data/\")\n },\n form: {\n id: 3,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-form/\")\n },\n localeSet: {\n id: 4,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-locale-set/\")\n },\n pdf: {\n id: 5,\n check: ns => ns === \"http://ns.adobe.com/xdp/pdf/\"\n },\n signature: {\n id: 6,\n check: ns => ns === \"http://www.w3.org/2000/09/xmldsig#\"\n },\n sourceSet: {\n id: 7,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-source-set/\")\n },\n stylesheet: {\n id: 8,\n check: ns => ns === \"http://www.w3.org/1999/XSL/Transform\"\n },\n template: {\n id: 9,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-template/\")\n },\n xdc: {\n id: 10,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xdc/\")\n },\n xdp: {\n id: 11,\n check: ns => ns === \"http://ns.adobe.com/xdp/\"\n },\n xfdf: {\n id: 12,\n check: ns => ns === \"http://ns.adobe.com/xfdf/\"\n },\n xhtml: {\n id: 13,\n check: ns => ns === \"http://www.w3.org/1999/xhtml\"\n },\n xmpmeta: {\n id: 14,\n check: ns => ns === \"http://ns.adobe.com/xmpmeta/\"\n }\n};\nexports.NamespaceIds = NamespaceIds;\n\n/***/ }),\n/* 53 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Binder = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nvar _template = __w_pdfjs_require__(54);\n\nvar _som = __w_pdfjs_require__(56);\n\nvar _namespaces = __w_pdfjs_require__(52);\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction createText(content) {\n const node = new _template.Text({});\n node[_xfa_object.$content] = content;\n return node;\n}\n\nclass Binder {\n constructor(root) {\n this.root = root;\n this.datasets = root.datasets;\n\n if (root.datasets && root.datasets.data) {\n this.emptyMerge = false;\n this.data = root.datasets.data;\n } else {\n this.emptyMerge = true;\n this.data = new _xfa_object.XmlObject(_namespaces.NamespaceIds.datasets.id, \"data\");\n }\n\n this.root.form = this.form = root.template[_xfa_object.$clone]();\n }\n\n _isConsumeData() {\n return !this.emptyMerge && this._mergeMode;\n }\n\n _isMatchTemplate() {\n return !this._isConsumeData();\n }\n\n bind() {\n this._bindElement(this.form, this.data);\n\n return this.form;\n }\n\n getData() {\n return this.data;\n }\n\n _bindValue(formNode, data, picture) {\n if (formNode[_xfa_object.$hasSettableValue]()) {\n if (data[_xfa_object.$isDataValue]()) {\n const value = data[_xfa_object.$content].trim();\n\n formNode[_xfa_object.$setValue](createText(value));\n\n formNode[_xfa_object.$data] = data;\n } else if (formNode instanceof _template.Field && formNode.ui && formNode.ui.choiceList && formNode.ui.choiceList.open === \"multiSelect\") {\n const value = data[_xfa_object.$getChildren]().map(child => child[_xfa_object.$content].trim()).join(\"\\n\");\n\n formNode[_xfa_object.$setValue](createText(value));\n\n formNode[_xfa_object.$data] = data;\n } else if (this._isConsumeData()) {\n (0, _util.warn)(`XFA - Nodes haven't the same type.`);\n }\n } else if (!data[_xfa_object.$isDataValue]() || this._isMatchTemplate()) {\n this._bindElement(formNode, data);\n\n formNode[_xfa_object.$data] = data;\n } else {\n (0, _util.warn)(`XFA - Nodes haven't the same type.`);\n }\n }\n\n _findDataByNameToConsume(name, dataNode, global) {\n if (!name) {\n return null;\n }\n\n let generator, match;\n\n for (let i = 0; i < 3; i++) {\n generator = dataNode[_xfa_object.$getRealChildrenByNameIt](name, false, true);\n match = generator.next().value;\n\n if (match) {\n return match;\n }\n\n if (dataNode[_xfa_object.$namespaceId] === _namespaces.NamespaceIds.datasets.id && dataNode[_xfa_object.$nodeName] === \"data\") {\n break;\n }\n\n dataNode = dataNode[_xfa_object.$getParent]();\n }\n\n if (!global) {\n return null;\n }\n\n generator = this.datasets[_xfa_object.$getRealChildrenByNameIt](name, false, false);\n\n while (true) {\n match = generator.next().value;\n\n if (!match) {\n break;\n }\n\n if (match[_xfa_object.$global]) {\n return match;\n }\n }\n\n generator = this.data[_xfa_object.$getAttributeIt](name, true);\n match = generator.next().value;\n\n if (match && match[_xfa_object.$isDataValue]()) {\n return match;\n }\n\n return null;\n }\n\n _setProperties(formNode, dataNode) {\n if (!formNode.hasOwnProperty(\"setProperty\")) {\n return;\n }\n\n for (const {\n ref,\n target,\n connection\n } of formNode.setProperty.children) {\n if (connection) {\n continue;\n }\n\n if (!ref) {\n continue;\n }\n\n const [node] = (0, _som.searchNode)(this.root, dataNode, ref, false, false);\n\n if (!node) {\n (0, _util.warn)(`XFA - Invalid reference: ${ref}.`);\n continue;\n }\n\n if (!node[_xfa_object.$isDescendent](this.data)) {\n (0, _util.warn)(`XFA - Invalid node: must be a data node.`);\n continue;\n }\n\n const [targetNode] = (0, _som.searchNode)(this.root, formNode, target, false, false);\n\n if (!targetNode) {\n (0, _util.warn)(`XFA - Invalid target: ${target}.`);\n continue;\n }\n\n if (!targetNode[_xfa_object.$isDescendent](formNode)) {\n (0, _util.warn)(`XFA - Invalid target: must be a property or subproperty.`);\n continue;\n }\n\n const targetParent = targetNode[_xfa_object.$getParent]();\n\n if (targetNode instanceof _template.SetProperty || targetParent instanceof _template.SetProperty) {\n (0, _util.warn)(`XFA - Invalid target: cannot be a setProperty or one of its properties.`);\n continue;\n }\n\n if (targetNode instanceof _template.BindItems || targetParent instanceof _template.BindItems) {\n (0, _util.warn)(`XFA - Invalid target: cannot be a bindItems or one of its properties.`);\n continue;\n }\n\n const content = node[_xfa_object.$text]();\n\n const name = targetNode[_xfa_object.$nodeName];\n\n if (targetNode instanceof _xfa_object.XFAAttribute) {\n const attrs = Object.create(null);\n attrs[name] = content;\n const obj = Reflect.construct(Object.getPrototypeOf(targetParent).constructor, [attrs]);\n targetParent[name] = obj[name];\n continue;\n }\n\n if (!targetNode.hasOwnProperty(_xfa_object.$content)) {\n (0, _util.warn)(`XFA - Invalid node to use in setProperty`);\n continue;\n }\n\n targetNode[_xfa_object.$data] = node;\n targetNode[_xfa_object.$content] = content;\n\n targetNode[_xfa_object.$finalize]();\n }\n }\n\n _bindItems(formNode, dataNode) {\n if (!formNode.hasOwnProperty(\"items\") || !formNode.hasOwnProperty(\"bindItems\") || formNode.bindItems.isEmpty()) {\n return;\n }\n\n for (const item of formNode.items.children) {\n formNode[_xfa_object.$removeChild](item);\n }\n\n formNode.items.clear();\n const labels = new _template.Items({});\n const values = new _template.Items({});\n\n formNode[_xfa_object.$appendChild](labels);\n\n formNode.items.push(labels);\n\n formNode[_xfa_object.$appendChild](values);\n\n formNode.items.push(values);\n\n for (const {\n ref,\n labelRef,\n valueRef,\n connection\n } of formNode.bindItems.children) {\n if (connection) {\n continue;\n }\n\n if (!ref) {\n continue;\n }\n\n const nodes = (0, _som.searchNode)(this.root, dataNode, ref, false, false);\n\n if (!nodes) {\n (0, _util.warn)(`XFA - Invalid reference: ${ref}.`);\n continue;\n }\n\n for (const node of nodes) {\n if (!node[_xfa_object.$isDescendent](this.datasets)) {\n (0, _util.warn)(`XFA - Invalid ref (${ref}): must be a datasets child.`);\n continue;\n }\n\n const [labelNode] = (0, _som.searchNode)(this.root, node, labelRef, true, false);\n\n if (!labelNode) {\n (0, _util.warn)(`XFA - Invalid label: ${labelRef}.`);\n continue;\n }\n\n if (!labelNode[_xfa_object.$isDescendent](this.datasets)) {\n (0, _util.warn)(`XFA - Invalid label: must be a datasets child.`);\n continue;\n }\n\n const [valueNode] = (0, _som.searchNode)(this.root, node, valueRef, true, false);\n\n if (!valueNode) {\n (0, _util.warn)(`XFA - Invalid value: ${valueRef}.`);\n continue;\n }\n\n if (!valueNode[_xfa_object.$isDescendent](this.datasets)) {\n (0, _util.warn)(`XFA - Invalid value: must be a datasets child.`);\n continue;\n }\n\n const label = createText(labelNode[_xfa_object.$text]());\n const value = createText(valueNode[_xfa_object.$text]());\n\n labels[_xfa_object.$appendChild](label);\n\n labels.text.push(label);\n\n values[_xfa_object.$appendChild](value);\n\n values.text.push(value);\n }\n }\n }\n\n _bindOccurrences(formNode, matches, picture) {\n let baseClone;\n\n if (matches.length > 1) {\n baseClone = formNode[_xfa_object.$clone]();\n }\n\n this._bindValue(formNode, matches[0], picture);\n\n this._setProperties(formNode, matches[0]);\n\n this._bindItems(formNode, matches[0]);\n\n if (matches.length === 1) {\n return;\n }\n\n const parent = formNode[_xfa_object.$getParent]();\n\n const name = formNode[_xfa_object.$nodeName];\n\n const pos = parent[_xfa_object.$indexOf](formNode);\n\n for (let i = 1, ii = matches.length; i < ii; i++) {\n const match = matches[i];\n\n const clone = baseClone[_xfa_object.$clone]();\n\n clone.occur.min = 1;\n clone.occur.max = 1;\n clone.occur.initial = 1;\n parent[name].push(clone);\n\n parent[_xfa_object.$insertAt](pos + i, clone);\n\n this._bindValue(clone, match, picture);\n\n this._setProperties(clone, match);\n\n this._bindItems(clone, match);\n }\n }\n\n _createOccurrences(formNode) {\n if (!this.emptyMerge) {\n return;\n }\n\n const {\n occur\n } = formNode;\n\n if (!occur || occur.initial <= 1) {\n return;\n }\n\n const parent = formNode[_xfa_object.$getParent]();\n\n const name = formNode[_xfa_object.$nodeName];\n\n for (let i = 0, ii = occur.initial; i < ii; i++) {\n const clone = formNode[_xfa_object.$clone]();\n\n clone.occur.min = 1;\n clone.occur.max = 1;\n clone.occur.initial = 1;\n parent[name].push(clone);\n\n parent[_xfa_object.$appendChild](clone);\n }\n }\n\n _getOccurInfo(formNode) {\n const {\n occur\n } = formNode;\n const dataName = formNode.name;\n\n if (!occur || !dataName) {\n return [1, 1];\n }\n\n const max = occur.max === -1 ? Infinity : occur.max;\n return [occur.min, max];\n }\n\n _bindElement(formNode, dataNode) {\n const uselessNodes = [];\n\n this._createOccurrences(formNode);\n\n for (const child of formNode[_xfa_object.$getChildren]()) {\n if (child[_xfa_object.$data]) {\n continue;\n }\n\n if (this._mergeMode === undefined && child[_xfa_object.$nodeName] === \"subform\") {\n this._mergeMode = child.mergeMode === \"consumeData\";\n }\n\n let global = false;\n let picture = null;\n let ref = null;\n let match = null;\n\n if (child.bind) {\n switch (child.bind.match) {\n case \"none\":\n continue;\n\n case \"global\":\n global = true;\n break;\n\n case \"dataRef\":\n if (!child.bind.ref) {\n (0, _util.warn)(`XFA - ref is empty in node ${child[_xfa_object.$nodeName]}.`);\n continue;\n }\n\n ref = child.bind.ref;\n break;\n\n default:\n break;\n }\n\n if (child.bind.picture) {\n picture = child.bind.picture[_xfa_object.$content];\n }\n }\n\n const [min, max] = this._getOccurInfo(child);\n\n if (ref) {\n match = (0, _som.searchNode)(this.root, dataNode, ref, true, false);\n\n if (match === null) {\n match = (0, _som.createDataNode)(this.data, dataNode, ref);\n\n if (this._isConsumeData()) {\n match[_xfa_object.$consumed] = true;\n }\n\n match = [match];\n } else {\n if (this._isConsumeData()) {\n match = match.filter(node => !node[_xfa_object.$consumed]);\n }\n\n if (match.length > max) {\n match = match.slice(0, max);\n } else if (match.length === 0) {\n match = null;\n }\n\n if (match && this._isConsumeData()) {\n match.forEach(node => {\n node[_xfa_object.$consumed] = true;\n });\n }\n }\n } else {\n if (!child.name) {\n this._bindElement(child, dataNode);\n\n continue;\n }\n\n if (this._isConsumeData()) {\n const matches = [];\n\n while (matches.length < max) {\n const found = this._findDataByNameToConsume(child.name, dataNode, global);\n\n if (!found) {\n break;\n }\n\n found[_xfa_object.$consumed] = true;\n matches.push(found);\n }\n\n match = matches.length > 0 ? matches : null;\n } else {\n match = dataNode[_xfa_object.$getRealChildrenByNameIt](child.name, false, false).next().value;\n\n if (!match) {\n match = new _xfa_object.XmlObject(dataNode[_xfa_object.$namespaceId], child.name);\n\n dataNode[_xfa_object.$appendChild](match);\n }\n\n match = [match];\n }\n }\n\n if (match) {\n if (match.length < min) {\n (0, _util.warn)(`XFA - Must have at least ${min} occurrences: ${formNode[_xfa_object.$nodeName]}.`);\n continue;\n }\n\n this._bindOccurrences(child, match, picture);\n } else if (min > 0) {\n this._bindElement(child, dataNode);\n } else {\n uselessNodes.push(child);\n }\n }\n\n uselessNodes.forEach(node => node[_xfa_object.$getParent]()[_xfa_object.$removeChild](node));\n }\n\n}\n\nexports.Binder = Binder;\n\n/***/ }),\n/* 54 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Value = exports.Text = exports.TemplateNamespace = exports.Template = exports.SetProperty = exports.Items = exports.Field = exports.BindItems = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nvar _namespaces = __w_pdfjs_require__(52);\n\nvar _utils = __w_pdfjs_require__(51);\n\nvar _html_utils = __w_pdfjs_require__(55);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst TEMPLATE_NS_ID = _namespaces.NamespaceIds.template.id;\n\nfunction _setValue(templateNode, value) {\n if (!templateNode.value) {\n const nodeValue = new Value({});\n\n templateNode[_xfa_object.$appendChild](nodeValue);\n\n templateNode.value = nodeValue;\n }\n\n templateNode.value[_xfa_object.$setValue](value);\n}\n\nclass AppearanceFilter extends _xfa_object.StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"appearanceFilter\");\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Arc extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"arc\", true);\n this.circular = (0, _utils.getInteger)({\n data: attributes.circular,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.hand = (0, _utils.getStringOption)(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.startAngle = (0, _utils.getFloat)({\n data: attributes.startAngle,\n defaultValue: 0,\n validate: x => true\n });\n this.sweepAngle = (0, _utils.getFloat)({\n data: attributes.sweepAngle,\n defaultValue: 360,\n validate: x => true\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.edge = null;\n this.fill = null;\n }\n\n}\n\nclass Area extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"area\", true);\n this.colSpan = (0, _utils.getInteger)({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1\n });\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n this.desc = null;\n this.extras = null;\n this.area = new _xfa_object.XFAObjectArray();\n this.draw = new _xfa_object.XFAObjectArray();\n this.exObject = new _xfa_object.XFAObjectArray();\n this.exclGroup = new _xfa_object.XFAObjectArray();\n this.field = new _xfa_object.XFAObjectArray();\n this.subform = new _xfa_object.XFAObjectArray();\n this.subformSet = new _xfa_object.XFAObjectArray();\n }\n\n [_xfa_object.$isTransparent]() {\n return true;\n }\n\n}\n\nclass Assist extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"assist\", true);\n this.id = attributes.id || \"\";\n this.role = attributes.role || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.speak = null;\n this.toolTip = null;\n }\n\n}\n\nclass Barcode extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"barcode\", true);\n this.charEncoding = (0, _utils.getKeyword)({\n data: attributes.charEncoding ? attributes.charEncoding.toLowerCase() : \"\",\n defaultValue: \"\",\n validate: k => [\"utf-8\", \"big-five\", \"fontspecific\", \"gbk\", \"gb-18030\", \"gb-2312\", \"ksc-5601\", \"none\", \"shift-jis\", \"ucs-2\", \"utf-16\"].includes(k) || k.match(/iso-8859-[0-9]{2}/)\n });\n this.checksum = (0, _utils.getStringOption)(attributes.checksum, [\"none\", \"1mod10\", \"1mod10_1mod11\", \"2mod10\", \"auto\"]);\n this.dataColumnCount = (0, _utils.getInteger)({\n data: attributes.dataColumnCount,\n defaultValue: -1,\n validate: x => x >= 0\n });\n this.dataLength = (0, _utils.getInteger)({\n data: attributes.dataLength,\n defaultValue: -1,\n validate: x => x >= 0\n });\n this.dataPrep = (0, _utils.getStringOption)(attributes.dataPrep, [\"none\", \"flateCompress\"]);\n this.dataRowCount = (0, _utils.getInteger)({\n data: attributes.dataRowCount,\n defaultValue: -1,\n validate: x => x >= 0\n });\n this.endChar = attributes.endChar || \"\";\n this.errorCorrectionLevel = (0, _utils.getInteger)({\n data: attributes.errorCorrectionLevel,\n defaultValue: -1,\n validate: x => x >= 0 && x <= 8\n });\n this.id = attributes.id || \"\";\n this.moduleHeight = (0, _utils.getMeasurement)(attributes.moduleHeight, \"5mm\");\n this.moduleWidth = (0, _utils.getMeasurement)(attributes.moduleWidth, \"0.25mm\");\n this.printCheckDigit = (0, _utils.getInteger)({\n data: attributes.printCheckDigit,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.rowColumnRatio = (0, _utils.getRatio)(attributes.rowColumnRatio);\n this.startChar = attributes.startChar || \"\";\n this.textLocation = (0, _utils.getStringOption)(attributes.textLocation, [\"below\", \"above\", \"aboveEmbedded\", \"belowEmbedded\", \"none\"]);\n this.truncate = (0, _utils.getInteger)({\n data: attributes.truncate,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.type = (0, _utils.getStringOption)(attributes.type ? attributes.type.toLowerCase() : \"\", [\"aztec\", \"codabar\", \"code2of5industrial\", \"code2of5interleaved\", \"code2of5matrix\", \"code2of5standard\", \"code3of9\", \"code3of9extended\", \"code11\", \"code49\", \"code93\", \"code128\", \"code128a\", \"code128b\", \"code128c\", \"code128sscc\", \"datamatrix\", \"ean8\", \"ean8add2\", \"ean8add5\", \"ean13\", \"ean13add2\", \"ean13add5\", \"ean13pwcd\", \"fim\", \"logmars\", \"maxicode\", \"msi\", \"pdf417\", \"pdf417macro\", \"plessey\", \"postauscust2\", \"postauscust3\", \"postausreplypaid\", \"postausstandard\", \"postukrm4scc\", \"postusdpbc\", \"postusimb\", \"postusstandard\", \"postus5zip\", \"qrcode\", \"rfid\", \"rss14\", \"rss14expanded\", \"rss14limited\", \"rss14stacked\", \"rss14stackedomni\", \"rss14truncated\", \"telepen\", \"ucc128\", \"ucc128random\", \"ucc128sscc\", \"upca\", \"upcaadd2\", \"upcaadd5\", \"upcapwcd\", \"upce\", \"upceadd2\", \"upceadd5\", \"upcean2\", \"upcean5\", \"upsmaxicode\"]);\n this.upsMode = (0, _utils.getStringOption)(attributes.upsMode, [\"usCarrier\", \"internationalCarrier\", \"secureSymbol\", \"standardSymbol\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.wideNarrowRatio = (0, _utils.getRatio)(attributes.wideNarrowRatio);\n this.encrypt = null;\n this.extras = null;\n }\n\n}\n\nclass Bind extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bind\", true);\n this.match = (0, _utils.getStringOption)(attributes.match, [\"once\", \"dataRef\", \"global\", \"none\"]);\n this.ref = attributes.ref || \"\";\n this.picture = null;\n }\n\n}\n\nclass BindItems extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bindItems\");\n this.connection = attributes.connection || \"\";\n this.labelRef = attributes.labelRef || \"\";\n this.ref = attributes.ref || \"\";\n this.valueRef = attributes.valueRef || \"\";\n }\n\n}\n\nexports.BindItems = BindItems;\n\nclass Bookend extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bookend\");\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass BooleanElement extends _xfa_object.Option01 {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"boolean\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [_xfa_object.$toHTML]() {\n return this[_xfa_object.$content] === 1;\n }\n\n}\n\nclass Border extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"border\", true);\n this.break = (0, _utils.getStringOption)(attributes.break, [\"close\", \"open\"]);\n this.hand = (0, _utils.getStringOption)(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.corner = new _xfa_object.XFAObjectArray(4);\n this.edge = new _xfa_object.XFAObjectArray(4);\n this.extras = null;\n this.fill = null;\n this.margin = null;\n }\n\n [_xfa_object.$toStyle](widths, margins) {\n const edgeStyles = this.edge.children.map(node => node[_xfa_object.$toStyle]());\n const cornerStyles = this.edge.children.map(node => node[_xfa_object.$toStyle]());\n let style;\n\n if (this.margin) {\n style = this.margin[_xfa_object.$toStyle]();\n\n if (margins) {\n margins.push(this.margin.topInset, this.margin.rightInset, this.margin.bottomInset, this.margin.leftInset);\n }\n } else {\n style = Object.create(null);\n\n if (margins) {\n margins.push(0, 0, 0, 0);\n }\n }\n\n if (this.fill) {\n Object.assign(style, this.fill[_xfa_object.$toStyle]());\n }\n\n if (edgeStyles.length > 0) {\n if (widths) {\n this.edge.children.forEach(node => widths.push(node.thickness));\n\n if (widths.length < 4) {\n const last = widths[widths.length - 1];\n\n for (let i = widths.length; i < 4; i++) {\n widths.push(last);\n }\n }\n }\n\n if (edgeStyles.length === 2 || edgeStyles.length === 3) {\n const last = edgeStyles[edgeStyles.length - 1];\n\n for (let i = edgeStyles.length; i < 4; i++) {\n edgeStyles.push(last);\n }\n }\n\n style.borderWidth = edgeStyles.map(s => s.width).join(\" \");\n style.borderColor = edgeStyles.map(s => s.color).join(\" \");\n style.borderStyle = edgeStyles.map(s => s.style).join(\" \");\n } else {\n if (widths) {\n widths.push(0, 0, 0, 0);\n }\n }\n\n if (cornerStyles.length > 0) {\n if (cornerStyles.length === 2 || cornerStyles.length === 3) {\n const last = cornerStyles[cornerStyles.length - 1];\n\n for (let i = cornerStyles.length; i < 4; i++) {\n cornerStyles.push(last);\n }\n }\n\n style.borderRadius = cornerStyles.map(s => s.radius).join(\" \");\n }\n\n switch (this.presence) {\n case \"invisible\":\n case \"hidden\":\n style.borderStyle = \"\";\n break;\n\n case \"inactive\":\n style.borderStyle = \"none\";\n break;\n }\n\n return style;\n }\n\n}\n\nclass Break extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"break\", true);\n this.after = (0, _utils.getStringOption)(attributes.after, [\"auto\", \"contentArea\", \"pageArea\", \"pageEven\", \"pageOdd\"]);\n this.afterTarget = attributes.afterTarget || \"\";\n this.before = (0, _utils.getStringOption)(attributes.before, [\"auto\", \"contentArea\", \"pageArea\", \"pageEven\", \"pageOdd\"]);\n this.beforeTarget = attributes.beforeTarget || \"\";\n this.bookendLeader = attributes.bookendLeader || \"\";\n this.bookendTrailer = attributes.bookendTrailer || \"\";\n this.id = attributes.id || \"\";\n this.overflowLeader = attributes.overflowLeader || \"\";\n this.overflowTarget = attributes.overflowTarget || \"\";\n this.overflowTrailer = attributes.overflowTrailer || \"\";\n this.startNew = (0, _utils.getInteger)({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n}\n\nclass BreakAfter extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"breakAfter\", true);\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.startNew = (0, _utils.getInteger)({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.target = attributes.target || \"\";\n this.targetType = (0, _utils.getStringOption)(attributes.targetType, [\"auto\", \"contentArea\", \"pageArea\", \"pageEven\", \"pageOdd\"]);\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.script = null;\n }\n\n}\n\nclass BreakBefore extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"breakBefore\", true);\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.startNew = (0, _utils.getInteger)({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.target = attributes.target || \"\";\n this.targetType = (0, _utils.getStringOption)(attributes.targetType, [\"auto\", \"contentArea\", \"pageArea\", \"pageEven\", \"pageOdd\"]);\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.script = null;\n }\n\n}\n\nclass Button extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"button\", true);\n this.highlight = (0, _utils.getStringOption)(attributes.highlight, [\"inverted\", \"none\", \"outline\", \"push\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [_xfa_object.$toHTML]() {\n return {\n name: \"button\",\n attributes: {\n class: \"xfaButton\",\n style: {}\n }\n };\n }\n\n}\n\nclass Calculate extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"calculate\", true);\n this.id = attributes.id || \"\";\n this.override = (0, _utils.getStringOption)(attributes.override, [\"disabled\", \"error\", \"ignore\", \"warning\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.message = null;\n this.script = null;\n }\n\n}\n\nclass Caption extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"caption\", true);\n this.id = attributes.id || \"\";\n this.placement = (0, _utils.getStringOption)(attributes.placement, [\"left\", \"bottom\", \"inline\", \"right\", \"top\"]);\n this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n this.reserve = (0, _utils.getMeasurement)(attributes.reserve);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.font = null;\n this.margin = null;\n this.para = null;\n this.value = null;\n }\n\n [_xfa_object.$setValue](value) {\n _setValue(this, value);\n }\n\n [_xfa_object.$toHTML]() {\n if (!this.value) {\n return null;\n }\n\n const value = this.value[_xfa_object.$toHTML]();\n\n if (!value) {\n return null;\n }\n\n const children = [];\n\n if (typeof value === \"string\") {\n children.push({\n name: \"#text\",\n value\n });\n } else {\n children.push(value);\n }\n\n const style = (0, _html_utils.toStyle)(this, \"font\", \"margin\", \"para\", \"visibility\");\n\n switch (this.placement) {\n case \"left\":\n case \"right\":\n style.minWidth = (0, _html_utils.measureToString)(this.reserve);\n break;\n\n case \"top\":\n case \"bottom\":\n style.minHeight = (0, _html_utils.measureToString)(this.reserve);\n break;\n }\n\n return {\n name: \"div\",\n attributes: {\n style\n },\n children\n };\n }\n\n}\n\nclass Certificate extends _xfa_object.StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"certificate\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Certificates extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"certificates\", true);\n this.credentialServerPolicy = (0, _utils.getStringOption)(attributes.credentialServerPolicy, [\"optional\", \"required\"]);\n this.id = attributes.id || \"\";\n this.url = attributes.url || \"\";\n this.urlPolicy = attributes.urlPolicy || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encryption = null;\n this.issuers = null;\n this.keyUsage = null;\n this.oids = null;\n this.signing = null;\n this.subjectDNs = null;\n }\n\n}\n\nclass CheckButton extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"checkButton\", true);\n this.id = attributes.id || \"\";\n this.mark = (0, _utils.getStringOption)(attributes.mark, [\"default\", \"check\", \"circle\", \"cross\", \"diamond\", \"square\", \"star\"]);\n this.shape = (0, _utils.getStringOption)(attributes.shape, [\"square\", \"round\"]);\n this.size = (0, _utils.getMeasurement)(attributes.size, \"10pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [_xfa_object.$toHTML]() {\n const style = (0, _html_utils.toStyle)(this, \"border\", \"margin\");\n const size = (0, _html_utils.measureToString)(this.size);\n style.width = style.height = size;\n let mark, radius;\n\n if (this.shape === \"square\") {\n mark = \"■\";\n radius = \"10%\";\n } else {\n mark = \"●\";\n radius = \"50%\";\n }\n\n if (!style.borderRadius) {\n style.borderRadius = radius;\n }\n\n if (this.mark !== \"default\") {\n switch (this.mark) {\n case \"check\":\n mark = \"✓\";\n break;\n\n case \"circle\":\n mark = \"●\";\n break;\n\n case \"cross\":\n mark = \"✕\";\n break;\n\n case \"diamond\":\n mark = \"♦\";\n break;\n\n case \"square\":\n mark = \"■\";\n break;\n\n case \"star\":\n mark = \"★\";\n break;\n }\n }\n\n if (size !== \"10px\") {\n style.fontSize = size;\n style.lineHeight = size;\n style.width = size;\n style.height = size;\n }\n\n return {\n name: \"label\",\n attributes: {\n class: \"xfaLabel\"\n },\n children: [{\n name: \"input\",\n attributes: {\n class: \"xfaCheckbox\",\n type: \"checkbox\"\n }\n }, {\n name: \"span\",\n attributes: {\n class: \"xfaCheckboxMark\",\n mark,\n style\n }\n }]\n };\n }\n\n}\n\nclass ChoiceList extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"choiceList\", true);\n this.commitOn = (0, _utils.getStringOption)(attributes.commitOn, [\"select\", \"exit\"]);\n this.id = attributes.id || \"\";\n this.open = (0, _utils.getStringOption)(attributes.open, [\"userControl\", \"always\", \"multiSelect\", \"onEntry\"]);\n this.textEntry = (0, _utils.getInteger)({\n data: attributes.textEntry,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [_xfa_object.$toHTML]() {\n const style = (0, _html_utils.toStyle)(this, \"border\", \"margin\");\n return {\n name: \"label\",\n attributes: {\n class: \"xfaLabel\"\n },\n children: [{\n name: \"select\",\n attributes: {\n class: \"xfaSxelect\",\n multiple: this.open === \"multiSelect\",\n style\n }\n }]\n };\n }\n\n}\n\nclass Color extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"color\", true);\n this.cSpace = (0, _utils.getStringOption)(attributes.cSpace, [\"SRGB\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.value = (0, _utils.getColor)(attributes.value);\n this.extras = null;\n }\n\n [_xfa_object.$hasSettableValue]() {\n return false;\n }\n\n [_xfa_object.$toStyle]() {\n return _util.Util.makeHexColor(this.value.r, this.value.g, this.value.b);\n }\n\n}\n\nclass Comb extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"comb\");\n this.id = attributes.id || \"\";\n this.numberOfCells = (0, _utils.getInteger)({\n data: attributes.numberOfCells,\n defaultValue: 0,\n validate: x => x >= 0\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Connect extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"connect\", true);\n this.connection = attributes.connection || \"\";\n this.id = attributes.id || \"\";\n this.ref = attributes.ref || \"\";\n this.usage = (0, _utils.getStringOption)(attributes.usage, [\"exportAndImport\", \"exportOnly\", \"importOnly\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.picture = null;\n }\n\n}\n\nclass ContentArea extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"contentArea\", true);\n this.h = (0, _utils.getMeasurement)(attributes.h);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = (0, _utils.getMeasurement)(attributes.w);\n this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n this.desc = null;\n this.extras = null;\n }\n\n [_xfa_object.$toHTML]() {\n const left = (0, _html_utils.measureToString)(this.x);\n const top = (0, _html_utils.measureToString)(this.y);\n const style = {\n position: \"absolute\",\n left,\n top,\n width: (0, _html_utils.measureToString)(this.w),\n height: (0, _html_utils.measureToString)(this.h)\n };\n return {\n name: \"div\",\n children: [],\n attributes: {\n style,\n class: \"xfaContentarea\",\n id: this[_xfa_object.$uid]\n }\n };\n }\n\n}\n\nclass Corner extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"corner\", true);\n this.id = attributes.id || \"\";\n this.inverted = (0, _utils.getInteger)({\n data: attributes.inverted,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.join = (0, _utils.getStringOption)(attributes.join, [\"square\", \"round\"]);\n this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n this.radius = (0, _utils.getMeasurement)(attributes.radius);\n this.stroke = (0, _utils.getStringOption)(attributes.stroke, [\"solid\", \"dashDot\", \"dashDotDot\", \"dashed\", \"dotted\", \"embossed\", \"etched\", \"lowered\", \"raised\"]);\n this.thickness = (0, _utils.getMeasurement)(attributes.thickness, \"0.5pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [_xfa_object.$toStyle]() {\n const style = (0, _html_utils.toStyle)(this, \"visibility\");\n style.radius = (0, _html_utils.measureToString)(this.radius);\n return style;\n }\n\n}\n\nclass DateElement extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"date\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [_xfa_object.$finalize]() {\n this[_xfa_object.$content] = new Date(this[_xfa_object.$content].trim());\n }\n\n [_xfa_object.$toHTML]() {\n return this[_xfa_object.$content].toString();\n }\n\n}\n\nclass DateTime extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"dateTime\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [_xfa_object.$finalize]() {\n this[_xfa_object.$content] = new Date(this[_xfa_object.$content].trim());\n }\n\n [_xfa_object.$toHTML]() {\n return this[_xfa_object.$content].toString();\n }\n\n}\n\nclass DateTimeEdit extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"dateTimeEdit\", true);\n this.hScrollPolicy = (0, _utils.getStringOption)(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n this.id = attributes.id || \"\";\n this.picker = (0, _utils.getStringOption)(attributes.picker, [\"host\", \"none\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [_xfa_object.$toHTML]() {\n const style = (0, _html_utils.toStyle)(this, \"border\", \"font\", \"margin\");\n const html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n class: \"xfaTextfield\",\n style\n }\n };\n return {\n name: \"label\",\n attributes: {\n class: \"xfaLabel\"\n },\n children: [html]\n };\n }\n\n}\n\nclass Decimal extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"decimal\");\n this.fracDigits = (0, _utils.getInteger)({\n data: attributes.fracDigits,\n defaultValue: 2,\n validate: x => true\n });\n this.id = attributes.id || \"\";\n this.leadDigits = (0, _utils.getInteger)({\n data: attributes.leadDigits,\n defaultValue: -1,\n validate: x => true\n });\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [_xfa_object.$finalize]() {\n const number = parseFloat(this[_xfa_object.$content].trim());\n this[_xfa_object.$content] = isNaN(number) ? null : number;\n }\n\n [_xfa_object.$toHTML]() {\n return this[_xfa_object.$content] !== null ? this[_xfa_object.$content].toString() : \"\";\n }\n\n}\n\nclass DefaultUi extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"defaultUi\", true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n}\n\nclass Desc extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"desc\", true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new _xfa_object.XFAObjectArray();\n this.date = new _xfa_object.XFAObjectArray();\n this.dateTime = new _xfa_object.XFAObjectArray();\n this.decimal = new _xfa_object.XFAObjectArray();\n this.exData = new _xfa_object.XFAObjectArray();\n this.float = new _xfa_object.XFAObjectArray();\n this.image = new _xfa_object.XFAObjectArray();\n this.integer = new _xfa_object.XFAObjectArray();\n this.text = new _xfa_object.XFAObjectArray();\n this.time = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass DigestMethod extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"digestMethod\", [\"\", \"SHA1\", \"SHA256\", \"SHA512\", \"RIPEMD160\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass DigestMethods extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"digestMethods\", true);\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.digestMethod = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Draw extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"draw\", true);\n this.anchorType = (0, _utils.getStringOption)(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n this.colSpan = (0, _utils.getInteger)({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: x => x >= 1\n });\n this.h = attributes.h ? (0, _utils.getMeasurement)(attributes.h) : \"\";\n this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n this.id = attributes.id || \"\";\n this.locale = attributes.locale || \"\";\n this.maxH = (0, _utils.getMeasurement)(attributes.maxH, \"0pt\");\n this.maxW = (0, _utils.getMeasurement)(attributes.maxW, \"0pt\");\n this.minH = (0, _utils.getMeasurement)(attributes.minH, \"0pt\");\n this.minW = (0, _utils.getMeasurement)(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n this.rotate = (0, _utils.getInteger)({\n data: attributes.rotate,\n defaultValue: 0,\n validate: x => x % 90 === 0\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? (0, _utils.getMeasurement)(attributes.w) : \"\";\n this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n this.assist = null;\n this.border = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.font = null;\n this.keep = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.ui = null;\n this.value = null;\n this.setProperty = new _xfa_object.XFAObjectArray();\n }\n\n [_xfa_object.$setValue](value) {\n _setValue(this, value);\n }\n\n [_xfa_object.$toHTML]() {\n if (!this.value) {\n return null;\n }\n\n const style = (0, _html_utils.toStyle)(this, \"font\", \"dimensions\", \"position\", \"presence\", \"rotate\", \"anchorType\");\n const clazz = [\"xfaDraw\"];\n\n if (this.font) {\n clazz.push(\"xfaFont\");\n }\n\n const attributes = {\n style,\n id: this[_xfa_object.$uid],\n class: clazz.join(\" \")\n };\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n return {\n name: \"div\",\n attributes,\n children: []\n };\n }\n\n}\n\nclass Edge extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"edge\", true);\n this.cap = (0, _utils.getStringOption)(attributes.cap, [\"square\", \"butt\", \"round\"]);\n this.id = attributes.id || \"\";\n this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n this.stroke = (0, _utils.getStringOption)(attributes.stroke, [\"solid\", \"dashDot\", \"dashDotDot\", \"dashed\", \"dotted\", \"embossed\", \"etched\", \"lowered\", \"raised\"]);\n this.thickness = (0, _utils.getMeasurement)(attributes.thickness, \"0.5pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [_xfa_object.$toStyle]() {\n const style = (0, _html_utils.toStyle)(this, \"visibility\");\n Object.assign(style, {\n linecap: this.cap,\n width: (0, _html_utils.measureToString)(this.thickness),\n color: this.color ? this.color[_xfa_object.$toHTML]() : \"#000000\",\n style: \"\"\n });\n\n if (this.presence !== \"visible\") {\n style.style = \"none\";\n } else {\n switch (this.stroke) {\n case \"solid\":\n style.style = \"solid\";\n break;\n\n case \"dashDot\":\n style.style = \"dashed\";\n break;\n\n case \"dashDotDot\":\n style.style = \"dashed\";\n break;\n\n case \"dashed\":\n style.style = \"dashed\";\n break;\n\n case \"dotted\":\n style.style = \"dotted\";\n break;\n\n case \"embossed\":\n style.style = \"ridge\";\n break;\n\n case \"etched\":\n style.style = \"groove\";\n break;\n\n case \"lowered\":\n style.style = \"inset\";\n break;\n\n case \"raised\":\n style.style = \"outset\";\n break;\n }\n }\n\n return style;\n }\n\n}\n\nclass Encoding extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encoding\", [\"adbe.x509.rsa_sha1\", \"adbe.pkcs7.detached\", \"adbe.pkcs7.sha1\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Encodings extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encodings\", true);\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encoding = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Encrypt extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encrypt\", true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = null;\n }\n\n}\n\nclass EncryptData extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptData\", true);\n this.id = attributes.id || \"\";\n this.operation = (0, _utils.getStringOption)(attributes.operation, [\"encrypt\", \"decrypt\"]);\n this.target = attributes.target || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.filter = null;\n this.manifest = null;\n }\n\n}\n\nclass Encryption extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryption\", true);\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass EncryptionMethod extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptionMethod\", [\"\", \"AES256-CBC\", \"TRIPLEDES-CBC\", \"AES128-CBC\", \"AES192-CBC\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass EncryptionMethods extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptionMethods\", true);\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encryptionMethod = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Event extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"event\", true);\n this.activity = (0, _utils.getStringOption)(attributes.activity, [\"click\", \"change\", \"docClose\", \"docReady\", \"enter\", \"exit\", \"full\", \"indexChange\", \"initialize\", \"mouseDown\", \"mouseEnter\", \"mouseExit\", \"mouseUp\", \"postExecute\", \"postOpen\", \"postPrint\", \"postSave\", \"postSign\", \"postSubmit\", \"preExecute\", \"preOpen\", \"prePrint\", \"preSave\", \"preSign\", \"preSubmit\", \"ready\", \"validationState\"]);\n this.id = attributes.id || \"\";\n this.listen = (0, _utils.getStringOption)(attributes.listen, [\"refOnly\", \"refAndDescendents\"]);\n this.name = attributes.name || \"\";\n this.ref = attributes.ref || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.encryptData = null;\n this.execute = null;\n this.script = null;\n this.signData = null;\n this.submit = null;\n }\n\n}\n\nclass ExData extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exData\");\n this.contentType = attributes.contentType || \"\";\n this.href = attributes.href || \"\";\n this.id = attributes.id || \"\";\n this.maxLength = (0, _utils.getInteger)({\n data: attributes.maxLength,\n defaultValue: -1,\n validate: x => x >= -1\n });\n this.name = attributes.name || \"\";\n this.rid = attributes.rid || \"\";\n this.transferEncoding = (0, _utils.getStringOption)(attributes.transferEncoding, [\"none\", \"base64\", \"package\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [_xfa_object.$onChild](child) {\n if (this.contentType === \"text/html\" && child[_xfa_object.$namespaceId] === _namespaces.NamespaceIds.xhtml.id) {\n this[_xfa_object.$content] = child;\n return true;\n }\n\n if (this.contentType === \"text/xml\") {\n this[_xfa_object.$content] = child;\n return true;\n }\n\n return false;\n }\n\n}\n\nclass ExObject extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exObject\", true);\n this.archive = attributes.archive || \"\";\n this.classId = attributes.classId || \"\";\n this.codeBase = attributes.codeBase || \"\";\n this.codeType = attributes.codeType || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.boolean = new _xfa_object.XFAObjectArray();\n this.date = new _xfa_object.XFAObjectArray();\n this.dateTime = new _xfa_object.XFAObjectArray();\n this.decimal = new _xfa_object.XFAObjectArray();\n this.exData = new _xfa_object.XFAObjectArray();\n this.exObject = new _xfa_object.XFAObjectArray();\n this.float = new _xfa_object.XFAObjectArray();\n this.image = new _xfa_object.XFAObjectArray();\n this.integer = new _xfa_object.XFAObjectArray();\n this.text = new _xfa_object.XFAObjectArray();\n this.time = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass ExclGroup extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exclGroup\", true);\n this.access = (0, _utils.getStringOption)(attributes.access, [\"open\", \"nonInteractive\", \"protected\", \"readOnly\"]);\n this.accessKey = attributes.accessKey || \"\";\n this.anchorType = (0, _utils.getStringOption)(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n this.colSpan = (0, _utils.getInteger)({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: x => x >= 1\n });\n this.h = attributes.h ? (0, _utils.getMeasurement)(attributes.h) : \"\";\n this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n this.id = attributes.id || \"\";\n this.layout = (0, _utils.getStringOption)(attributes.layout, [\"position\", \"lr-tb\", \"rl-row\", \"rl-tb\", \"row\", \"table\", \"tb\"]);\n this.maxH = (0, _utils.getMeasurement)(attributes.maxH, \"0pt\");\n this.maxW = (0, _utils.getMeasurement)(attributes.maxW, \"0pt\");\n this.minH = (0, _utils.getMeasurement)(attributes.minH, \"0pt\");\n this.minW = (0, _utils.getMeasurement)(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? (0, _utils.getMeasurement)(attributes.w) : \"\";\n this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.border = null;\n this.calculate = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.validate = null;\n this.connect = new _xfa_object.XFAObjectArray();\n this.event = new _xfa_object.XFAObjectArray();\n this.field = new _xfa_object.XFAObjectArray();\n this.setProperty = new _xfa_object.XFAObjectArray();\n }\n\n [_xfa_object.$hasSettableValue]() {\n return true;\n }\n\n [_xfa_object.$setValue](value) {\n for (const field of this.field.children) {\n if (!field.value) {\n const nodeValue = new Value({});\n\n field[_xfa_object.$appendChild](nodeValue);\n\n field.value = nodeValue;\n }\n\n const nodeBoolean = new BooleanElement({});\n nodeBoolean[_xfa_object.$content] = 0;\n\n for (const item of field.items.children) {\n if (item[_xfa_object.$hasItem](value)) {\n nodeBoolean[_xfa_object.$content] = 1;\n break;\n }\n }\n\n field.value[_xfa_object.$setValue](nodeBoolean);\n }\n }\n\n [_xfa_object.$toHTML]() {\n if (!this.value) {\n return null;\n }\n\n const style = (0, _html_utils.toStyle)(this, \"dimensions\", \"position\", \"anchorType\");\n const attributes = {\n style,\n id: this[_xfa_object.$uid],\n class: \"xfaExclgroup\"\n };\n\n const children = this[_xfa_object.$childrenToHTML]({\n filter: new Set([\"field\"]),\n include: true\n });\n\n return {\n name: \"div\",\n attributes,\n children\n };\n }\n\n}\n\nclass Execute extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"execute\");\n this.connection = attributes.connection || \"\";\n this.executeType = (0, _utils.getStringOption)(attributes.executeType, [\"import\", \"remerge\"]);\n this.id = attributes.id || \"\";\n this.runAt = (0, _utils.getStringOption)(attributes.runAt, [\"client\", \"both\", \"server\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Extras extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"extras\", true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new _xfa_object.XFAObjectArray();\n this.date = new _xfa_object.XFAObjectArray();\n this.dateTime = new _xfa_object.XFAObjectArray();\n this.decimal = new _xfa_object.XFAObjectArray();\n this.exData = new _xfa_object.XFAObjectArray();\n this.extras = new _xfa_object.XFAObjectArray();\n this.float = new _xfa_object.XFAObjectArray();\n this.image = new _xfa_object.XFAObjectArray();\n this.integer = new _xfa_object.XFAObjectArray();\n this.text = new _xfa_object.XFAObjectArray();\n this.time = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Field extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"field\", true);\n this.access = (0, _utils.getStringOption)(attributes.access, [\"open\", \"nonInteractive\", \"protected\", \"readOnly\"]);\n this.accessKey = attributes.accessKey || \"\";\n this.anchorType = (0, _utils.getStringOption)(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n this.colSpan = (0, _utils.getInteger)({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: x => x >= 1\n });\n this.h = attributes.h ? (0, _utils.getMeasurement)(attributes.h) : \"\";\n this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n this.id = attributes.id || \"\";\n this.locale = attributes.locale || \"\";\n this.maxH = (0, _utils.getMeasurement)(attributes.maxH, \"0pt\");\n this.maxW = (0, _utils.getMeasurement)(attributes.maxW, \"0pt\");\n this.minH = (0, _utils.getMeasurement)(attributes.minH, \"0pt\");\n this.minW = (0, _utils.getMeasurement)(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n this.rotate = (0, _utils.getInteger)({\n data: attributes.rotate,\n defaultValue: 0,\n validate: x => x % 90 === 0\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? (0, _utils.getMeasurement)(attributes.w) : \"\";\n this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.border = null;\n this.calculate = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.font = null;\n this.format = null;\n this.items = new _xfa_object.XFAObjectArray(2);\n this.keep = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.ui = null;\n this.validate = null;\n this.value = null;\n this.bindItems = new _xfa_object.XFAObjectArray();\n this.connect = new _xfa_object.XFAObjectArray();\n this.event = new _xfa_object.XFAObjectArray();\n this.setProperty = new _xfa_object.XFAObjectArray();\n }\n\n [_xfa_object.$setValue](value) {\n _setValue(this, value);\n }\n\n [_xfa_object.$toHTML]() {\n if (!this.ui) {\n return null;\n }\n\n const style = (0, _html_utils.toStyle)(this, \"font\", \"dimensions\", \"position\", \"rotate\", \"anchorType\", \"presence\");\n const borderWidths = [];\n const marginWidths = [];\n\n if (this.border) {\n Object.assign(style, this.border[_xfa_object.$toStyle](borderWidths, marginWidths));\n }\n\n if (this.margin) {\n style.paddingTop = (0, _html_utils.measureToString)(this.margin.topInset - borderWidths[0] - marginWidths[0]);\n style.paddingRight = (0, _html_utils.measureToString)(this.margin.rightInset - borderWidths[1] - marginWidths[1]);\n style.paddingBottom = (0, _html_utils.measureToString)(this.margin.bottomInset - borderWidths[2] - marginWidths[2]);\n style.paddingLeft = (0, _html_utils.measureToString)(this.margin.leftInset - borderWidths[3] - marginWidths[3]);\n } else {\n style.paddingTop = (0, _html_utils.measureToString)(-borderWidths[0] - marginWidths[0]);\n style.paddingRight = (0, _html_utils.measureToString)(-borderWidths[1] - marginWidths[1]);\n style.paddingBottom = (0, _html_utils.measureToString)(-borderWidths[2] - marginWidths[2]);\n style.paddingLeft = (0, _html_utils.measureToString)(-borderWidths[3] - marginWidths[3]);\n }\n\n const clazz = [\"xfaField\"];\n\n if (this.font) {\n clazz.push(\"xfaFont\");\n }\n\n const attributes = {\n style,\n id: this[_xfa_object.$uid],\n class: clazz.join(\" \")\n };\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const children = [];\n const html = {\n name: \"div\",\n attributes,\n children\n };\n const ui = this.ui ? this.ui[_xfa_object.$toHTML]() : null;\n\n if (!ui) {\n return html;\n }\n\n if (!ui.attributes.style) {\n ui.attributes.style = Object.create(null);\n }\n\n children.push(ui);\n\n if (this.value && ui.name !== \"button\") {\n ui.children[0].attributes.value = this.value[_xfa_object.$toHTML]();\n }\n\n const caption = this.caption ? this.caption[_xfa_object.$toHTML]() : null;\n\n if (!caption) {\n return html;\n }\n\n if (ui.name === \"button\") {\n ui.attributes.style.background = style.color;\n delete style.color;\n\n if (caption.name === \"div\") {\n caption.name = \"span\";\n }\n\n ui.children = [caption];\n return html;\n }\n\n ui.children.splice(0, 0, caption);\n\n switch (this.caption.placement) {\n case \"left\":\n ui.attributes.style.flexDirection = \"row\";\n break;\n\n case \"right\":\n ui.attributes.style.flexDirection = \"row-reverse\";\n break;\n\n case \"top\":\n ui.attributes.style.flexDirection = \"column\";\n break;\n\n case \"bottom\":\n ui.attributes.style.flexDirection = \"column-reverse\";\n break;\n\n case \"inline\":\n delete ui.attributes.class;\n caption.attributes.style.float = \"left\";\n break;\n }\n\n return html;\n }\n\n}\n\nexports.Field = Field;\n\nclass Fill extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"fill\", true);\n this.id = attributes.id || \"\";\n this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n this.linear = null;\n this.pattern = null;\n this.radial = null;\n this.solid = null;\n this.stipple = null;\n }\n\n [_xfa_object.$toStyle]() {\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"extras\" || name === \"color\") {\n continue;\n }\n\n const obj = this[name];\n\n if (!(obj instanceof _xfa_object.XFAObject)) {\n continue;\n }\n\n return {\n color: obj[_xfa_object.$toStyle](this.color)\n };\n }\n\n return {\n color: this.color ? this.color[_xfa_object.$toStyle]() : \"#000000\"\n };\n }\n\n}\n\nclass Filter extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"filter\", true);\n this.addRevocationInfo = (0, _utils.getStringOption)(attributes.addRevocationInfo, [\"\", \"required\", \"optional\", \"none\"]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.version = (0, _utils.getInteger)({\n data: this.version,\n defaultValue: 5,\n validate: x => x >= 1 && x <= 5\n });\n this.appearanceFilter = null;\n this.certificates = null;\n this.digestMethods = null;\n this.encodings = null;\n this.encryptionMethods = null;\n this.handler = null;\n this.lockDocument = null;\n this.mdp = null;\n this.reasons = null;\n this.timeStamp = null;\n }\n\n}\n\nclass Float extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"float\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [_xfa_object.$finalize]() {\n const number = parseFloat(this[_xfa_object.$content].trim());\n this[_xfa_object.$content] = isNaN(number) ? null : number;\n }\n\n [_xfa_object.$toHTML]() {\n return this[_xfa_object.$content] !== null ? this[_xfa_object.$content].toString() : \"\";\n }\n\n}\n\nclass Font extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"font\", true);\n this.baselineShift = (0, _utils.getMeasurement)(attributes.baselineShift);\n this.fontHorizontalScale = (0, _utils.getFloat)({\n data: attributes.fontHorizontalScale,\n defaultValue: 100,\n validate: x => x >= 0\n });\n this.fontVerticalScale = (0, _utils.getFloat)({\n data: attributes.fontVerticalScale,\n defaultValue: 100,\n validate: x => x >= 0\n });\n this.id = attributes.id || \"\";\n this.kerningMode = (0, _utils.getStringOption)(attributes.kerningMode, [\"none\", \"pair\"]);\n this.letterSpacing = (0, _utils.getMeasurement)(attributes.letterSpacing, \"0\");\n this.lineThrough = (0, _utils.getInteger)({\n data: attributes.lineThrough,\n defaultValue: 0,\n validate: x => x === 1 || x === 2\n });\n this.lineThroughPeriod = (0, _utils.getStringOption)(attributes.lineThroughPeriod, [\"all\", \"word\"]);\n this.overline = (0, _utils.getInteger)({\n data: attributes.overline,\n defaultValue: 0,\n validate: x => x === 1 || x === 2\n });\n this.overlinePeriod = (0, _utils.getStringOption)(attributes.overlinePeriod, [\"all\", \"word\"]);\n this.posture = (0, _utils.getStringOption)(attributes.posture, [\"normal\", \"italic\"]);\n this.size = (0, _utils.getMeasurement)(attributes.size, \"10pt\");\n this.typeface = attributes.typeface || \"\";\n this.underline = (0, _utils.getInteger)({\n data: attributes.underline,\n defaultValue: 0,\n validate: x => x === 1 || x === 2\n });\n this.underlinePeriod = (0, _utils.getStringOption)(attributes.underlinePeriod, [\"all\", \"word\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.weight = (0, _utils.getStringOption)(attributes.weight, [\"normal\", \"bold\"]);\n this.extras = null;\n this.fill = null;\n }\n\n [_xfa_object.$toStyle]() {\n const style = (0, _html_utils.toStyle)(this, \"fill\");\n\n if (style.color) {\n if (!style.color.startsWith(\"#\")) {\n style.backgroundClip = \"text\";\n style.background = style.color;\n style.color = \"transparent\";\n } else if (style.color === \"#000000\") {\n delete style.color;\n }\n }\n\n if (this.baselineShift) {\n style.verticalAlign = (0, _html_utils.measureToString)(this.baselineShift);\n }\n\n if (this.kerningMode !== \"none\") {\n style.fontKerning = \"normal\";\n }\n\n if (this.letterSpacing) {\n style.letterSpacing = (0, _html_utils.measureToString)(this.letterSpacing);\n }\n\n if (this.lineThrough !== 0) {\n style.textDecoration = \"line-through\";\n\n if (this.lineThrough === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n if (this.overline !== 0) {\n style.textDecoration = \"overline\";\n\n if (this.overline === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n if (this.posture !== \"normal\") {\n style.fontStyle = this.posture;\n }\n\n const fontSize = (0, _html_utils.measureToString)(this.size);\n\n if (fontSize !== \"10px\") {\n style.fontSize = fontSize;\n }\n\n style.fontFamily = this.typeface;\n\n if (this.underline !== 0) {\n style.textDecoration = \"underline\";\n\n if (this.underline === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n if (this.weight !== \"normal\") {\n style.fontWeight = this.weight;\n }\n\n return style;\n }\n\n}\n\nclass Format extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"format\", true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.picture = null;\n }\n\n}\n\nclass Handler extends _xfa_object.StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"handler\");\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Hyphenation extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"hyphenation\");\n this.excludeAllCaps = (0, _utils.getInteger)({\n data: attributes.excludeAllCaps,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.excludeInitialCap = (0, _utils.getInteger)({\n data: attributes.excludeInitialCap,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.hyphenate = (0, _utils.getInteger)({\n data: attributes.hyphenate,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.id = attributes.id || \"\";\n this.pushCharacterCount = (0, _utils.getInteger)({\n data: attributes.pushCharacterCount,\n defaultValue: 3,\n validate: x => x >= 0\n });\n this.remainCharacterCount = (0, _utils.getInteger)({\n data: attributes.remainCharacterCount,\n defaultValue: 3,\n validate: x => x >= 0\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.wordCharacterCount = (0, _utils.getInteger)({\n data: attributes.wordCharacterCount,\n defaultValue: 7,\n validate: x => x >= 0\n });\n }\n\n}\n\nclass Image extends _xfa_object.StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"image\");\n this.aspect = (0, _utils.getStringOption)(attributes.aspect, [\"fit\", \"actual\", \"height\", \"none\", \"width\"]);\n this.contentType = attributes.contentType || \"\";\n this.href = attributes.href || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.transferEncoding = (0, _utils.getStringOption)(attributes.transferEncoding, [\"base64\", \"none\", \"package\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [_xfa_object.$toHTML]() {\n const html = {\n name: \"img\",\n attributes: {\n style: {}\n }\n };\n\n if (this.href) {\n html.attributes.src = new URL(this.href);\n return html;\n }\n\n if (this.transferEncoding === \"base64\") {\n const buffer = Uint8Array.from(atob(this[_xfa_object.$content]), c => c.charCodeAt(0));\n const blob = new Blob([buffer], {\n type: this.contentType\n });\n html.attributes.src = URL.createObjectURL(blob);\n return html;\n }\n\n return null;\n }\n\n}\n\nclass ImageEdit extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"imageEdit\", true);\n this.data = (0, _utils.getStringOption)(attributes.data, [\"link\", \"embed\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n}\n\nclass Integer extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"integer\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [_xfa_object.$finalize]() {\n const number = parseInt(this[_xfa_object.$content].trim(), 10);\n this[_xfa_object.$content] = isNaN(number) ? null : number;\n }\n\n [_xfa_object.$toHTML]() {\n return this[_xfa_object.$content] !== null ? this[_xfa_object.$content].toString() : \"\";\n }\n\n}\n\nclass Issuers extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"issuers\", true);\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Items extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"items\", true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n this.ref = attributes.ref || \"\";\n this.save = (0, _utils.getInteger)({\n data: attributes.save,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new _xfa_object.XFAObjectArray();\n this.date = new _xfa_object.XFAObjectArray();\n this.dateTime = new _xfa_object.XFAObjectArray();\n this.decimal = new _xfa_object.XFAObjectArray();\n this.exData = new _xfa_object.XFAObjectArray();\n this.float = new _xfa_object.XFAObjectArray();\n this.image = new _xfa_object.XFAObjectArray();\n this.integer = new _xfa_object.XFAObjectArray();\n this.text = new _xfa_object.XFAObjectArray();\n this.time = new _xfa_object.XFAObjectArray();\n }\n\n [_xfa_object.$hasItem](value) {\n return this.hasOwnProperty(value[_xfa_object.$nodeName]) && this[value[_xfa_object.$nodeName]].children.some(node => node[_xfa_object.$content] === value[_xfa_object.$content]);\n }\n\n}\n\nexports.Items = Items;\n\nclass Keep extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"keep\", true);\n this.id = attributes.id || \"\";\n const options = [\"none\", \"contentArea\", \"pageArea\"];\n this.intact = (0, _utils.getStringOption)(attributes.intact, options);\n this.next = (0, _utils.getStringOption)(attributes.next, options);\n this.previous = (0, _utils.getStringOption)(attributes.previous, options);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n}\n\nclass KeyUsage extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"keyUsage\");\n const options = [\"\", \"yes\", \"no\"];\n this.crlSign = (0, _utils.getStringOption)(attributes.crlSign, options);\n this.dataEncipherment = (0, _utils.getStringOption)(attributes.dataEncipherment, options);\n this.decipherOnly = (0, _utils.getStringOption)(attributes.decipherOnly, options);\n this.digitalSignature = (0, _utils.getStringOption)(attributes.digitalSignature, options);\n this.encipherOnly = (0, _utils.getStringOption)(attributes.encipherOnly, options);\n this.id = attributes.id || \"\";\n this.keyAgreement = (0, _utils.getStringOption)(attributes.keyAgreement, options);\n this.keyCertSign = (0, _utils.getStringOption)(attributes.keyCertSign, options);\n this.keyEncipherment = (0, _utils.getStringOption)(attributes.keyEncipherment, options);\n this.nonRepudiation = (0, _utils.getStringOption)(attributes.nonRepudiation, options);\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Line extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"line\", true);\n this.hand = (0, _utils.getStringOption)(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.slope = (0, _utils.getStringOption)(attributes.slope, [\"\\\\\", \"/\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.edge = null;\n }\n\n}\n\nclass Linear extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"linear\", true);\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"toRight\", \"toBottom\", \"toLeft\", \"toTop\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [_xfa_object.$toStyle](startColor) {\n startColor = startColor ? startColor[_xfa_object.$toStyle]() : \"#FFFFFF\";\n const transf = this.type.replace(/([RBLT])/, \" $1\").toLowerCase();\n const endColor = this.color ? this.color[_xfa_object.$toStyle]() : \"#000000\";\n return `linear-gradient(${transf}, ${startColor}, ${endColor})`;\n }\n\n}\n\nclass LockDocument extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"lockDocument\");\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [_xfa_object.$finalize]() {\n this[_xfa_object.$content] = (0, _utils.getStringOption)(this[_xfa_object.$content], [\"auto\", \"0\", \"1\"]);\n }\n\n}\n\nclass Manifest extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"manifest\", true);\n this.action = (0, _utils.getStringOption)(attributes.action, [\"include\", \"all\", \"exclude\"]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.ref = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Margin extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"margin\", true);\n this.bottomInset = (0, _utils.getMeasurement)(attributes.bottomInset, \"0\");\n this.id = attributes.id || \"\";\n this.leftInset = (0, _utils.getMeasurement)(attributes.leftInset, \"0\");\n this.rightInset = (0, _utils.getMeasurement)(attributes.rightInset, \"0\");\n this.topInset = (0, _utils.getMeasurement)(attributes.topInset, \"0\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [_xfa_object.$toStyle]() {\n return {\n marginLeft: (0, _html_utils.measureToString)(this.leftInset),\n marginRight: (0, _html_utils.measureToString)(this.rightInset),\n marginTop: (0, _html_utils.measureToString)(this.topInset),\n marginBottom: (0, _html_utils.measureToString)(this.bottomInset)\n };\n }\n\n}\n\nclass Mdp extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"mdp\");\n this.id = attributes.id || \"\";\n this.permissions = (0, _utils.getInteger)({\n data: attributes.permissions,\n defaultValue: 2,\n validate: x => x === 1 || x === 3\n });\n this.signatureType = (0, _utils.getStringOption)(attributes.signatureType, [\"filler\", \"author\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Medium extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"medium\");\n this.id = attributes.id || \"\";\n this.imagingBBox = (0, _utils.getBBox)(attributes.imagingBBox);\n this.long = (0, _utils.getMeasurement)(attributes.long);\n this.orientation = (0, _utils.getStringOption)(attributes.orientation, [\"portrait\", \"landscape\"]);\n this.short = (0, _utils.getMeasurement)(attributes.short);\n this.stock = attributes.stock || \"\";\n this.trayIn = (0, _utils.getStringOption)(attributes.trayIn, [\"auto\", \"delegate\", \"pageFront\"]);\n this.trayOut = (0, _utils.getStringOption)(attributes.trayOut, [\"auto\", \"delegate\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Message extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"message\", true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.text = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass NumericEdit extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"numericEdit\", true);\n this.hScrollPolicy = (0, _utils.getStringOption)(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [_xfa_object.$toHTML]() {\n const style = (0, _html_utils.toStyle)(this, \"border\", \"font\", \"margin\");\n const html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n class: \"xfaTextfield\",\n style\n }\n };\n return {\n name: \"label\",\n attributes: {\n class: \"xfaLabel\"\n },\n children: [html]\n };\n }\n\n}\n\nclass Occur extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"occur\", true);\n this.id = attributes.id || \"\";\n this.initial = (0, _utils.getInteger)({\n data: attributes.initial,\n defaultValue: 1,\n validate: x => true\n });\n this.max = (0, _utils.getInteger)({\n data: attributes.max,\n defaultValue: 1,\n validate: x => true\n });\n this.min = (0, _utils.getInteger)({\n data: attributes.min,\n defaultValue: 1,\n validate: x => true\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n}\n\nclass Oid extends _xfa_object.StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"oid\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Oids extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"oids\", true);\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.oid = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Overflow extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"overflow\");\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.target = attributes.target || \"\";\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass PageArea extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pageArea\", true);\n this.blankOrNotBlank = (0, _utils.getStringOption)(attributes.blankOrNotBlank, [\"any\", \"blank\", \"notBlank\"]);\n this.id = attributes.id || \"\";\n this.initialNumber = (0, _utils.getInteger)({\n data: attributes.initialNumber,\n defaultValue: 1,\n validate: x => true\n });\n this.name = attributes.name || \"\";\n this.numbered = (0, _utils.getInteger)({\n data: attributes.numbered,\n defaultValue: 1,\n validate: x => true\n });\n this.oddOrEven = (0, _utils.getStringOption)(attributes.oddOrEven, [\"any\", \"even\", \"odd\"]);\n this.pagePosition = (0, _utils.getStringOption)(attributes.pagePosition, [\"any\", \"first\", \"last\", \"only\", \"rest\"]);\n this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.desc = null;\n this.extras = null;\n this.medium = null;\n this.occur = null;\n this.area = new _xfa_object.XFAObjectArray();\n this.contentArea = new _xfa_object.XFAObjectArray();\n this.draw = new _xfa_object.XFAObjectArray();\n this.exclGroup = new _xfa_object.XFAObjectArray();\n this.field = new _xfa_object.XFAObjectArray();\n this.subform = new _xfa_object.XFAObjectArray();\n }\n\n [_xfa_object.$toHTML]() {\n if (this.contentArea.children.length === 0) {\n return null;\n }\n\n const children = this[_xfa_object.$childrenToHTML]({\n filter: new Set([\"area\", \"draw\", \"field\", \"subform\", \"contentArea\"]),\n include: true\n });\n\n const contentArea = children.find(node => node.attributes.class === \"xfaContentarea\");\n const style = Object.create(null);\n\n if (this.medium && this.medium.short && this.medium.long) {\n style.width = (0, _html_utils.measureToString)(this.medium.short);\n style.height = (0, _html_utils.measureToString)(this.medium.long);\n } else {}\n\n return {\n name: \"div\",\n children,\n attributes: {\n id: this[_xfa_object.$uid],\n style\n },\n contentArea\n };\n }\n\n}\n\nclass PageSet extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pageSet\", true);\n this.duplexImposition = (0, _utils.getStringOption)(attributes.duplexImposition, [\"longEdge\", \"shortEdge\"]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relation = (0, _utils.getStringOption)(attributes.relation, [\"orderedOccurrence\", \"duplexPaginated\", \"simplexPaginated\"]);\n this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.occur = null;\n this.pageArea = new _xfa_object.XFAObjectArray();\n this.pageSet = new _xfa_object.XFAObjectArray();\n }\n\n [_xfa_object.$toHTML]() {\n return {\n name: \"div\",\n children: this[_xfa_object.$childrenToHTML]({\n filter: new Set([\"pageArea\", \"pageSet\"]),\n include: true\n }),\n attributes: {\n id: this[_xfa_object.$uid]\n }\n };\n }\n\n}\n\nclass Para extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"para\", true);\n this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n this.id = attributes.id || \"\";\n this.lineHeight = (0, _utils.getMeasurement)(attributes.lineHeight, \"0pt\");\n this.marginLeft = (0, _utils.getMeasurement)(attributes.marginLeft, \"0\");\n this.marginRight = (0, _utils.getMeasurement)(attributes.marginRight, \"0\");\n this.orphans = (0, _utils.getInteger)({\n data: attributes.orphans,\n defaultValue: 0,\n validate: x => x >= 0\n });\n this.preserve = attributes.preserve || \"\";\n this.radixOffset = (0, _utils.getMeasurement)(attributes.radixOffset, \"0\");\n this.spaceAbove = (0, _utils.getMeasurement)(attributes.spaceAbove, \"0\");\n this.spaceBelow = (0, _utils.getMeasurement)(attributes.spaceBelow, \"0\");\n this.tabDefault = attributes.tabDefault ? (0, _utils.getMeasurement)(this.tabDefault) : null;\n this.tabStops = (attributes.tabStops || \"\").trim().split(/\\s+/).map((x, i) => i % 2 === 1 ? (0, _utils.getMeasurement)(x) : x);\n this.textIndent = (0, _utils.getMeasurement)(attributes.textIndent, \"0\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.vAlign = (0, _utils.getStringOption)(attributes.vAlign, [\"top\", \"bottom\", \"middle\"]);\n this.widows = (0, _utils.getInteger)({\n data: attributes.widows,\n defaultValue: 0,\n validate: x => x >= 0\n });\n this.hyphenation = null;\n }\n\n [_xfa_object.$toHTML]() {\n const style = {\n marginLeft: (0, _html_utils.measureToString)(this.marginLeft),\n marginRight: (0, _html_utils.measureToString)(this.marginRight),\n paddingTop: (0, _html_utils.measureToString)(this.spaceAbove),\n paddingBottom: (0, _html_utils.measureToString)(this.spaceBelow),\n textIndent: (0, _html_utils.measureToString)(this.textIndent),\n verticalAlign: this.vAlign\n };\n\n if (this.lineHeight.value >= 0) {\n style.lineHeight = (0, _html_utils.measureToString)(this.lineHeight);\n }\n\n if (this.tabDefault) {\n style.tabSize = (0, _html_utils.measureToString)(this.tabDefault);\n }\n\n if (this.tabStops.length > 0) {}\n\n if (this.hyphenatation) {\n Object.assign(style, this.hyphenatation[_xfa_object.$toHTML]());\n }\n\n return style;\n }\n\n}\n\nclass PasswordEdit extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"passwordEdit\", true);\n this.hScrollPolicy = (0, _utils.getStringOption)(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n this.id = attributes.id || \"\";\n this.passwordChar = attributes.passwordChar || \"*\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n}\n\nclass Pattern extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pattern\", true);\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"crossHatch\", \"crossDiagonal\", \"diagonalLeft\", \"diagonalRight\", \"horizontal\", \"vertical\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [_xfa_object.$toStyle](startColor) {\n startColor = startColor ? startColor[_xfa_object.$toStyle]() : \"#FFFFFF\";\n const endColor = this.color ? this.color[_xfa_object.$toStyle]() : \"#000000\";\n const width = 5;\n const cmd = \"repeating-linear-gradient\";\n const colors = `${startColor},${startColor} ${width}px,${endColor} ${width}px,${endColor} ${2 * width}px`;\n\n switch (this.type) {\n case \"crossHatch\":\n return `${cmd}(to top,${colors}) ${cmd}(to right,${colors})`;\n\n case \"crossDiagonal\":\n return `${cmd}(45deg,${colors}) ${cmd}(-45deg,${colors})`;\n\n case \"diagonalLeft\":\n return `${cmd}(45deg,${colors})`;\n\n case \"diagonalRight\":\n return `${cmd}(-45deg,${colors})`;\n\n case \"horizontal\":\n return `${cmd}(to top,${colors})`;\n\n case \"vertical\":\n return `${cmd}(to right,${colors})`;\n }\n\n return \"\";\n }\n\n}\n\nclass Picture extends _xfa_object.StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"picture\");\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Proto extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"proto\", true);\n this.appearanceFilter = new _xfa_object.XFAObjectArray();\n this.arc = new _xfa_object.XFAObjectArray();\n this.area = new _xfa_object.XFAObjectArray();\n this.assist = new _xfa_object.XFAObjectArray();\n this.barcode = new _xfa_object.XFAObjectArray();\n this.bindItems = new _xfa_object.XFAObjectArray();\n this.bookend = new _xfa_object.XFAObjectArray();\n this.boolean = new _xfa_object.XFAObjectArray();\n this.border = new _xfa_object.XFAObjectArray();\n this.break = new _xfa_object.XFAObjectArray();\n this.breakAfter = new _xfa_object.XFAObjectArray();\n this.breakBefore = new _xfa_object.XFAObjectArray();\n this.button = new _xfa_object.XFAObjectArray();\n this.calculate = new _xfa_object.XFAObjectArray();\n this.caption = new _xfa_object.XFAObjectArray();\n this.certificate = new _xfa_object.XFAObjectArray();\n this.certificates = new _xfa_object.XFAObjectArray();\n this.checkButton = new _xfa_object.XFAObjectArray();\n this.choiceList = new _xfa_object.XFAObjectArray();\n this.color = new _xfa_object.XFAObjectArray();\n this.comb = new _xfa_object.XFAObjectArray();\n this.connect = new _xfa_object.XFAObjectArray();\n this.contentArea = new _xfa_object.XFAObjectArray();\n this.corner = new _xfa_object.XFAObjectArray();\n this.date = new _xfa_object.XFAObjectArray();\n this.dateTime = new _xfa_object.XFAObjectArray();\n this.dateTimeEdit = new _xfa_object.XFAObjectArray();\n this.decimal = new _xfa_object.XFAObjectArray();\n this.defaultUi = new _xfa_object.XFAObjectArray();\n this.desc = new _xfa_object.XFAObjectArray();\n this.digestMethod = new _xfa_object.XFAObjectArray();\n this.digestMethods = new _xfa_object.XFAObjectArray();\n this.draw = new _xfa_object.XFAObjectArray();\n this.edge = new _xfa_object.XFAObjectArray();\n this.encoding = new _xfa_object.XFAObjectArray();\n this.encodings = new _xfa_object.XFAObjectArray();\n this.encrypt = new _xfa_object.XFAObjectArray();\n this.encryptData = new _xfa_object.XFAObjectArray();\n this.encryption = new _xfa_object.XFAObjectArray();\n this.encryptionMethod = new _xfa_object.XFAObjectArray();\n this.encryptionMethods = new _xfa_object.XFAObjectArray();\n this.event = new _xfa_object.XFAObjectArray();\n this.exData = new _xfa_object.XFAObjectArray();\n this.exObject = new _xfa_object.XFAObjectArray();\n this.exclGroup = new _xfa_object.XFAObjectArray();\n this.execute = new _xfa_object.XFAObjectArray();\n this.extras = new _xfa_object.XFAObjectArray();\n this.field = new _xfa_object.XFAObjectArray();\n this.fill = new _xfa_object.XFAObjectArray();\n this.filter = new _xfa_object.XFAObjectArray();\n this.float = new _xfa_object.XFAObjectArray();\n this.font = new _xfa_object.XFAObjectArray();\n this.format = new _xfa_object.XFAObjectArray();\n this.handler = new _xfa_object.XFAObjectArray();\n this.hyphenation = new _xfa_object.XFAObjectArray();\n this.image = new _xfa_object.XFAObjectArray();\n this.imageEdit = new _xfa_object.XFAObjectArray();\n this.integer = new _xfa_object.XFAObjectArray();\n this.issuers = new _xfa_object.XFAObjectArray();\n this.items = new _xfa_object.XFAObjectArray();\n this.keep = new _xfa_object.XFAObjectArray();\n this.keyUsage = new _xfa_object.XFAObjectArray();\n this.line = new _xfa_object.XFAObjectArray();\n this.linear = new _xfa_object.XFAObjectArray();\n this.lockDocument = new _xfa_object.XFAObjectArray();\n this.manifest = new _xfa_object.XFAObjectArray();\n this.margin = new _xfa_object.XFAObjectArray();\n this.mdp = new _xfa_object.XFAObjectArray();\n this.medium = new _xfa_object.XFAObjectArray();\n this.message = new _xfa_object.XFAObjectArray();\n this.numericEdit = new _xfa_object.XFAObjectArray();\n this.occur = new _xfa_object.XFAObjectArray();\n this.oid = new _xfa_object.XFAObjectArray();\n this.oids = new _xfa_object.XFAObjectArray();\n this.overflow = new _xfa_object.XFAObjectArray();\n this.pageArea = new _xfa_object.XFAObjectArray();\n this.pageSet = new _xfa_object.XFAObjectArray();\n this.para = new _xfa_object.XFAObjectArray();\n this.passwordEdit = new _xfa_object.XFAObjectArray();\n this.pattern = new _xfa_object.XFAObjectArray();\n this.picture = new _xfa_object.XFAObjectArray();\n this.radial = new _xfa_object.XFAObjectArray();\n this.reason = new _xfa_object.XFAObjectArray();\n this.reasons = new _xfa_object.XFAObjectArray();\n this.rectangle = new _xfa_object.XFAObjectArray();\n this.ref = new _xfa_object.XFAObjectArray();\n this.script = new _xfa_object.XFAObjectArray();\n this.setProperty = new _xfa_object.XFAObjectArray();\n this.signData = new _xfa_object.XFAObjectArray();\n this.signature = new _xfa_object.XFAObjectArray();\n this.signing = new _xfa_object.XFAObjectArray();\n this.solid = new _xfa_object.XFAObjectArray();\n this.speak = new _xfa_object.XFAObjectArray();\n this.stipple = new _xfa_object.XFAObjectArray();\n this.subform = new _xfa_object.XFAObjectArray();\n this.subformSet = new _xfa_object.XFAObjectArray();\n this.subjectDN = new _xfa_object.XFAObjectArray();\n this.subjectDNs = new _xfa_object.XFAObjectArray();\n this.submit = new _xfa_object.XFAObjectArray();\n this.text = new _xfa_object.XFAObjectArray();\n this.textEdit = new _xfa_object.XFAObjectArray();\n this.time = new _xfa_object.XFAObjectArray();\n this.timeStamp = new _xfa_object.XFAObjectArray();\n this.toolTip = new _xfa_object.XFAObjectArray();\n this.traversal = new _xfa_object.XFAObjectArray();\n this.traverse = new _xfa_object.XFAObjectArray();\n this.ui = new _xfa_object.XFAObjectArray();\n this.validate = new _xfa_object.XFAObjectArray();\n this.value = new _xfa_object.XFAObjectArray();\n this.variables = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Radial extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"radial\", true);\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"toEdge\", \"toCenter\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [_xfa_object.$toStyle](startColor) {\n startColor = startColor ? startColor[_xfa_object.$toStyle]() : \"#FFFFFF\";\n const endColor = this.color ? this.color[_xfa_object.$toStyle]() : \"#000000\";\n const colors = this.type === \"toEdge\" ? `${startColor},${endColor}` : `${endColor},${startColor}`;\n return `radial-gradient(circle to center, ${colors})`;\n }\n\n}\n\nclass Reason extends _xfa_object.StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"reason\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Reasons extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"reasons\", true);\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.reason = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Rectangle extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"rectangle\", true);\n this.hand = (0, _utils.getStringOption)(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.corner = new _xfa_object.XFAObjectArray(4);\n this.edge = new _xfa_object.XFAObjectArray(4);\n this.fill = null;\n }\n\n}\n\nclass RefElement extends _xfa_object.StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"ref\");\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Script extends _xfa_object.StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"script\");\n this.binding = attributes.binding || \"\";\n this.contentType = attributes.contentType || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.runAt = (0, _utils.getStringOption)(attributes.runAt, [\"client\", \"both\", \"server\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass SetProperty extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"setProperty\");\n this.connection = attributes.connection || \"\";\n this.ref = attributes.ref || \"\";\n this.target = attributes.target || \"\";\n }\n\n}\n\nexports.SetProperty = SetProperty;\n\nclass SignData extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signData\", true);\n this.id = attributes.id || \"\";\n this.operation = (0, _utils.getStringOption)(attributes.operation, [\"sign\", \"clear\", \"verify\"]);\n this.ref = attributes.ref || \"\";\n this.target = attributes.target || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.filter = null;\n this.manifest = null;\n }\n\n}\n\nclass Signature extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signature\", true);\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"PDF1.3\", \"PDF1.6\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.filter = null;\n this.manifest = null;\n this.margin = null;\n }\n\n}\n\nclass Signing extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signing\", true);\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Solid extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"solid\", true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [_xfa_object.$toStyle](startColor) {\n return startColor ? startColor[_xfa_object.$toStyle]() : \"#FFFFFF\";\n }\n\n}\n\nclass Speak extends _xfa_object.StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"speak\");\n this.disable = (0, _utils.getInteger)({\n data: attributes.disable,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.id = attributes.id || \"\";\n this.priority = (0, _utils.getStringOption)(attributes.priority, [\"custom\", \"caption\", \"name\", \"toolTip\"]);\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Stipple extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"stipple\", true);\n this.id = attributes.id || \"\";\n this.rate = (0, _utils.getInteger)({\n data: attributes.rate,\n defaultValue: 50,\n validate: x => x >= 0 && x <= 100\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [_xfa_object.$toStyle](bgColor) {\n const alpha = this.rate / 100;\n return _util.Util.makeHexColor(Math.round(bgColor.value.r * (1 - alpha) + this.value.r * alpha), Math.round(bgColor.value.g * (1 - alpha) + this.value.g * alpha), Math.round(bgColor.value.b * (1 - alpha) + this.value.b * alpha));\n }\n\n}\n\nclass Subform extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subform\", true);\n this.access = (0, _utils.getStringOption)(attributes.access, [\"open\", \"nonInteractive\", \"protected\", \"readOnly\"]);\n this.allowMacro = (0, _utils.getInteger)({\n data: attributes.allowMacro,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.anchorType = (0, _utils.getStringOption)(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n this.colSpan = (0, _utils.getInteger)({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: x => x >= 1\n });\n this.columnWidths = (attributes.columnWidths || \"\").trim().split(/\\s+/).map(x => x === \"-1\" ? -1 : (0, _utils.getMeasurement)(x));\n this.h = attributes.h ? (0, _utils.getMeasurement)(attributes.h) : \"\";\n this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n this.id = attributes.id || \"\";\n this.layout = (0, _utils.getStringOption)(attributes.layout, [\"position\", \"lr-tb\", \"rl-row\", \"rl-tb\", \"row\", \"table\", \"tb\"]);\n this.locale = attributes.locale || \"\";\n this.maxH = (0, _utils.getMeasurement)(attributes.maxH, \"0pt\");\n this.maxW = (0, _utils.getMeasurement)(attributes.maxW, \"0pt\");\n this.mergeMode = (0, _utils.getStringOption)(attributes.mergeMode, [\"consumeData\", \"matchTemplate\"]);\n this.minH = (0, _utils.getMeasurement)(attributes.minH, \"0pt\");\n this.minW = (0, _utils.getMeasurement)(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n this.restoreState = (0, _utils.getStringOption)(attributes.restoreState, [\"manual\", \"auto\"]);\n this.scope = (0, _utils.getStringOption)(attributes.scope, [\"name\", \"none\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? (0, _utils.getMeasurement)(attributes.w) : \"\";\n this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.bookend = null;\n this.border = null;\n this.break = null;\n this.calculate = null;\n this.desc = null;\n this.extras = null;\n this.keep = null;\n this.margin = null;\n this.occur = null;\n this.overflow = null;\n this.pageSet = null;\n this.para = null;\n this.traversal = null;\n this.validate = null;\n this.variables = null;\n this.area = new _xfa_object.XFAObjectArray();\n this.breakAfter = new _xfa_object.XFAObjectArray();\n this.breakBefore = new _xfa_object.XFAObjectArray();\n this.connect = new _xfa_object.XFAObjectArray();\n this.draw = new _xfa_object.XFAObjectArray();\n this.event = new _xfa_object.XFAObjectArray();\n this.exObject = new _xfa_object.XFAObjectArray();\n this.exclGroup = new _xfa_object.XFAObjectArray();\n this.field = new _xfa_object.XFAObjectArray();\n this.proto = new _xfa_object.XFAObjectArray();\n this.setProperty = new _xfa_object.XFAObjectArray();\n this.subform = new _xfa_object.XFAObjectArray();\n this.subformSet = new _xfa_object.XFAObjectArray();\n }\n\n [_xfa_object.$toHTML]() {\n this[_xfa_object.$extra] = Object.create(null);\n\n const parent = this[_xfa_object.$getParent]();\n\n let page = null;\n\n if (parent[_xfa_object.$nodeName] === \"template\") {\n if (this.pageSet !== null) {\n this[_xfa_object.$extra].pageNumber = 0;\n } else {\n (0, _util.warn)(\"XFA - No pageSet in root subform\");\n }\n } else if (parent[_xfa_object.$extra] && parent[_xfa_object.$extra].pageNumber !== undefined) {\n const pageNumber = parent[_xfa_object.$extra].pageNumber;\n const pageAreas = parent.pageSet.pageArea.children;\n parent[_xfa_object.$extra].pageNumber = (parent[_xfa_object.$extra].pageNumber + 1) % pageAreas.length;\n page = pageAreas[pageNumber][_xfa_object.$toHTML]();\n }\n\n const style = (0, _html_utils.toStyle)(this, \"dimensions\", \"position\", \"presence\");\n const clazz = [\"xfaSubform\"];\n const cl = (0, _html_utils.layoutClass)(this);\n\n if (cl) {\n clazz.push(cl);\n }\n\n const attributes = {\n style,\n id: this[_xfa_object.$uid],\n class: clazz.join(\" \")\n };\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const children = this[_xfa_object.$childrenToHTML]({\n filter: new Set([\"area\", \"draw\", \"field\", \"subform\", \"subformSet\"]),\n include: true\n });\n\n const html = {\n name: \"div\",\n attributes,\n children\n };\n\n if (page) {\n page.contentArea.children.push(html);\n delete page.contentArea;\n return page;\n }\n\n return html;\n }\n\n}\n\nclass SubformSet extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subformSet\", true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relation = (0, _utils.getStringOption)(attributes.relation, [\"ordered\", \"choice\", \"unordered\"]);\n this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.bookend = null;\n this.break = null;\n this.desc = null;\n this.extras = null;\n this.occur = null;\n this.overflow = null;\n this.breakAfter = new _xfa_object.XFAObjectArray();\n this.breakBefore = new _xfa_object.XFAObjectArray();\n this.subform = new _xfa_object.XFAObjectArray();\n this.subformSet = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass SubjectDN extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subjectDN\");\n this.delimiter = attributes.delimiter || \",\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [_xfa_object.$finalize]() {\n this[_xfa_object.$content] = new Map(this[_xfa_object.$content].split(this.delimiter).map(kv => {\n kv = kv.split(\"=\", 2);\n kv[0] = kv[0].trim();\n return kv;\n }));\n }\n\n}\n\nclass SubjectDNs extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subjectDNs\", true);\n this.id = attributes.id || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.subjectDN = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Submit extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"submit\", true);\n this.embedPDF = (0, _utils.getInteger)({\n data: attributes.embedPDF,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.format = (0, _utils.getStringOption)(attributes.format, [\"xdp\", \"formdata\", \"pdf\", \"urlencoded\", \"xfd\", \"xml\"]);\n this.id = attributes.id || \"\";\n this.target = attributes.target || \"\";\n this.textEncoding = (0, _utils.getKeyword)({\n data: attributes.textEncoding ? attributes.textEncoding.toLowerCase() : \"\",\n defaultValue: \"\",\n validate: k => [\"utf-8\", \"big-five\", \"fontspecific\", \"gbk\", \"gb-18030\", \"gb-2312\", \"ksc-5601\", \"none\", \"shift-jis\", \"ucs-2\", \"utf-16\"].includes(k) || k.match(/iso-8859-[0-9]{2}/)\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.xdpContent = attributes.xdpContent || \"\";\n this.encrypt = null;\n this.encryptData = new _xfa_object.XFAObjectArray();\n this.signData = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Template extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"template\", true);\n this.baseProfile = (0, _utils.getStringOption)(attributes.baseProfile, [\"full\", \"interactiveForms\"]);\n this.extras = null;\n this.subform = new _xfa_object.XFAObjectArray();\n }\n\n [_xfa_object.$finalize]() {\n if (this.subform.children.length === 0) {\n (0, _util.warn)(\"XFA - No subforms in template node.\");\n }\n\n if (this.subform.children.length >= 2) {\n (0, _util.warn)(\"XFA - Several subforms in template node: please file a bug.\");\n }\n }\n\n [_xfa_object.$toHTML]() {\n if (this.subform.children.length > 0) {\n return this.subform.children[0][_xfa_object.$toHTML]();\n }\n\n return {\n name: \"div\",\n children: []\n };\n }\n\n}\n\nexports.Template = Template;\n\nclass Text extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"text\");\n this.id = attributes.id || \"\";\n this.maxChars = (0, _utils.getInteger)({\n data: attributes.maxChars,\n defaultValue: 0,\n validate: x => x >= 0\n });\n this.name = attributes.name || \"\";\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [_xfa_object.$onChild](child) {\n if (child[_xfa_object.$namespaceId] === _namespaces.NamespaceIds.xhtml.id) {\n this[_xfa_object.$content] = child;\n return true;\n }\n\n (0, _util.warn)(`XFA - Invalid content in Text: ${child[_xfa_object.$nodeName]}.`);\n return false;\n }\n\n [_xfa_object.$toHTML]() {\n if (typeof this[_xfa_object.$content] === \"string\") {\n return this[_xfa_object.$content];\n }\n\n return this[_xfa_object.$content][_xfa_object.$toHTML]();\n }\n\n}\n\nexports.Text = Text;\n\nclass TextEdit extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"textEdit\", true);\n this.allowRichText = (0, _utils.getInteger)({\n data: attributes.allowRichText,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.hScrollPolicy = (0, _utils.getStringOption)(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n this.id = attributes.id || \"\";\n this.multiLine = (0, _utils.getInteger)({\n data: attributes.multiLine,\n defaultValue: 1,\n validate: x => x === 0\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.vScrollPolicy = (0, _utils.getStringOption)(attributes.vScrollPolicy, [\"auto\", \"off\", \"on\"]);\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [_xfa_object.$toHTML]() {\n const style = (0, _html_utils.toStyle)(this, \"border\", \"font\", \"margin\");\n let html;\n\n if (this.multiline === 1) {\n html = {\n name: \"textarea\",\n attributes: {\n style\n }\n };\n } else {\n html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n class: \"xfaTextfield\",\n style\n }\n };\n }\n\n return {\n name: \"label\",\n attributes: {\n class: \"xfaLabel\"\n },\n children: [html]\n };\n }\n\n}\n\nclass Time extends _xfa_object.StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"time\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [_xfa_object.$finalize]() {\n this[_xfa_object.$content] = new Date(this[_xfa_object.$content]);\n }\n\n [_xfa_object.$toHTML]() {\n return this[_xfa_object.$content].toString();\n }\n\n}\n\nclass TimeStamp extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"timeStamp\");\n this.id = attributes.id || \"\";\n this.server = attributes.server || \"\";\n this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass ToolTip extends _xfa_object.StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"toolTip\");\n this.id = attributes.id || \"\";\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Traversal extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"traversal\", true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.traverse = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Traverse extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"traverse\", true);\n this.id = attributes.id || \"\";\n this.operation = (0, _utils.getStringOption)(attributes.operation, [\"next\", \"back\", \"down\", \"first\", \"left\", \"right\", \"up\"]);\n this.ref = attributes.ref || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.script = null;\n }\n\n get name() {\n return this.operation;\n }\n\n [_xfa_object.$isTransparent]() {\n return false;\n }\n\n}\n\nclass Ui extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"ui\", true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.picture = null;\n this.barcode = null;\n this.button = null;\n this.checkButton = null;\n this.choiceList = null;\n this.dateTimeEdit = null;\n this.defaultUi = null;\n this.imageEdit = null;\n this.numericEdit = null;\n this.passwordEdit = null;\n this.signature = null;\n this.textEdit = null;\n }\n\n [_xfa_object.$toHTML]() {\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"extras\" || name === \"picture\") {\n continue;\n }\n\n const obj = this[name];\n\n if (!(obj instanceof _xfa_object.XFAObject)) {\n continue;\n }\n\n return obj[_xfa_object.$toHTML]();\n }\n\n return null;\n }\n\n}\n\nclass Validate extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"validate\", true);\n this.formatTest = (0, _utils.getStringOption)(attributes.formatTest, [\"warning\", \"disabled\", \"error\"]);\n this.id = attributes.id || \"\";\n this.nullTest = (0, _utils.getStringOption)(attributes.nullTest, [\"disabled\", \"error\", \"warning\"]);\n this.scriptTest = (0, _utils.getStringOption)(attributes.scriptTest, [\"error\", \"disabled\", \"warning\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.message = null;\n this.picture = null;\n this.script = null;\n }\n\n}\n\nclass Value extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"value\", true);\n this.id = attributes.id || \"\";\n this.override = (0, _utils.getInteger)({\n data: attributes.override,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.arc = null;\n this.boolean = null;\n this.date = null;\n this.dateTime = null;\n this.decimal = null;\n this.exData = null;\n this.float = null;\n this.image = null;\n this.integer = null;\n this.line = null;\n this.rectangle = null;\n this.text = null;\n this.time = null;\n }\n\n [_xfa_object.$setValue](value) {\n const valueName = value[_xfa_object.$nodeName];\n\n if (this[valueName] !== null) {\n this[valueName][_xfa_object.$content] = value[_xfa_object.$content];\n return;\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n const obj = this[name];\n\n if (obj instanceof _xfa_object.XFAObject) {\n this[name] = null;\n\n this[_xfa_object.$removeChild](obj);\n }\n }\n\n this[value[_xfa_object.$nodeName]] = value;\n\n this[_xfa_object.$appendChild](value);\n }\n\n [_xfa_object.$toHTML]() {\n for (const name of Object.getOwnPropertyNames(this)) {\n const obj = this[name];\n\n if (!(obj instanceof _xfa_object.XFAObject)) {\n continue;\n }\n\n return obj[_xfa_object.$toHTML]();\n }\n\n return null;\n }\n\n}\n\nexports.Value = Value;\n\nclass Variables extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"variables\", true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new _xfa_object.XFAObjectArray();\n this.date = new _xfa_object.XFAObjectArray();\n this.dateTime = new _xfa_object.XFAObjectArray();\n this.decimal = new _xfa_object.XFAObjectArray();\n this.exData = new _xfa_object.XFAObjectArray();\n this.float = new _xfa_object.XFAObjectArray();\n this.image = new _xfa_object.XFAObjectArray();\n this.integer = new _xfa_object.XFAObjectArray();\n this.manifest = new _xfa_object.XFAObjectArray();\n this.script = new _xfa_object.XFAObjectArray();\n this.text = new _xfa_object.XFAObjectArray();\n this.time = new _xfa_object.XFAObjectArray();\n }\n\n [_xfa_object.$isTransparent]() {\n return true;\n }\n\n}\n\nclass TemplateNamespace {\n static [_namespaces.$buildXFAObject](name, attributes) {\n if (TemplateNamespace.hasOwnProperty(name)) {\n const node = TemplateNamespace[name](attributes);\n\n node[_xfa_object.$setSetAttributes](attributes);\n\n return node;\n }\n\n return undefined;\n }\n\n static appearanceFilter(attrs) {\n return new AppearanceFilter(attrs);\n }\n\n static arc(attrs) {\n return new Arc(attrs);\n }\n\n static area(attrs) {\n return new Area(attrs);\n }\n\n static assist(attrs) {\n return new Assist(attrs);\n }\n\n static barcode(attrs) {\n return new Barcode(attrs);\n }\n\n static bind(attrs) {\n return new Bind(attrs);\n }\n\n static bindItems(attrs) {\n return new BindItems(attrs);\n }\n\n static bookend(attrs) {\n return new Bookend(attrs);\n }\n\n static boolean(attrs) {\n return new BooleanElement(attrs);\n }\n\n static border(attrs) {\n return new Border(attrs);\n }\n\n static break(attrs) {\n return new Break(attrs);\n }\n\n static breakAfter(attrs) {\n return new BreakAfter(attrs);\n }\n\n static breakBefore(attrs) {\n return new BreakBefore(attrs);\n }\n\n static button(attrs) {\n return new Button(attrs);\n }\n\n static calculate(attrs) {\n return new Calculate(attrs);\n }\n\n static caption(attrs) {\n return new Caption(attrs);\n }\n\n static certificate(attrs) {\n return new Certificate(attrs);\n }\n\n static certificates(attrs) {\n return new Certificates(attrs);\n }\n\n static checkButton(attrs) {\n return new CheckButton(attrs);\n }\n\n static choiceList(attrs) {\n return new ChoiceList(attrs);\n }\n\n static color(attrs) {\n return new Color(attrs);\n }\n\n static comb(attrs) {\n return new Comb(attrs);\n }\n\n static connect(attrs) {\n return new Connect(attrs);\n }\n\n static contentArea(attrs) {\n return new ContentArea(attrs);\n }\n\n static corner(attrs) {\n return new Corner(attrs);\n }\n\n static date(attrs) {\n return new DateElement(attrs);\n }\n\n static dateTime(attrs) {\n return new DateTime(attrs);\n }\n\n static dateTimeEdit(attrs) {\n return new DateTimeEdit(attrs);\n }\n\n static decimal(attrs) {\n return new Decimal(attrs);\n }\n\n static defaultUi(attrs) {\n return new DefaultUi(attrs);\n }\n\n static desc(attrs) {\n return new Desc(attrs);\n }\n\n static digestMethod(attrs) {\n return new DigestMethod(attrs);\n }\n\n static digestMethods(attrs) {\n return new DigestMethods(attrs);\n }\n\n static draw(attrs) {\n return new Draw(attrs);\n }\n\n static edge(attrs) {\n return new Edge(attrs);\n }\n\n static encoding(attrs) {\n return new Encoding(attrs);\n }\n\n static encodings(attrs) {\n return new Encodings(attrs);\n }\n\n static encrypt(attrs) {\n return new Encrypt(attrs);\n }\n\n static encryptData(attrs) {\n return new EncryptData(attrs);\n }\n\n static encryption(attrs) {\n return new Encryption(attrs);\n }\n\n static encryptionMethod(attrs) {\n return new EncryptionMethod(attrs);\n }\n\n static encryptionMethods(attrs) {\n return new EncryptionMethods(attrs);\n }\n\n static event(attrs) {\n return new Event(attrs);\n }\n\n static exData(attrs) {\n return new ExData(attrs);\n }\n\n static exObject(attrs) {\n return new ExObject(attrs);\n }\n\n static exclGroup(attrs) {\n return new ExclGroup(attrs);\n }\n\n static execute(attrs) {\n return new Execute(attrs);\n }\n\n static extras(attrs) {\n return new Extras(attrs);\n }\n\n static field(attrs) {\n return new Field(attrs);\n }\n\n static fill(attrs) {\n return new Fill(attrs);\n }\n\n static filter(attrs) {\n return new Filter(attrs);\n }\n\n static float(attrs) {\n return new Float(attrs);\n }\n\n static font(attrs) {\n return new Font(attrs);\n }\n\n static format(attrs) {\n return new Format(attrs);\n }\n\n static handler(attrs) {\n return new Handler(attrs);\n }\n\n static hyphenation(attrs) {\n return new Hyphenation(attrs);\n }\n\n static image(attrs) {\n return new Image(attrs);\n }\n\n static imageEdit(attrs) {\n return new ImageEdit(attrs);\n }\n\n static integer(attrs) {\n return new Integer(attrs);\n }\n\n static issuers(attrs) {\n return new Issuers(attrs);\n }\n\n static items(attrs) {\n return new Items(attrs);\n }\n\n static keep(attrs) {\n return new Keep(attrs);\n }\n\n static keyUsage(attrs) {\n return new KeyUsage(attrs);\n }\n\n static line(attrs) {\n return new Line(attrs);\n }\n\n static linear(attrs) {\n return new Linear(attrs);\n }\n\n static lockDocument(attrs) {\n return new LockDocument(attrs);\n }\n\n static manifest(attrs) {\n return new Manifest(attrs);\n }\n\n static margin(attrs) {\n return new Margin(attrs);\n }\n\n static mdp(attrs) {\n return new Mdp(attrs);\n }\n\n static medium(attrs) {\n return new Medium(attrs);\n }\n\n static message(attrs) {\n return new Message(attrs);\n }\n\n static numericEdit(attrs) {\n return new NumericEdit(attrs);\n }\n\n static occur(attrs) {\n return new Occur(attrs);\n }\n\n static oid(attrs) {\n return new Oid(attrs);\n }\n\n static oids(attrs) {\n return new Oids(attrs);\n }\n\n static overflow(attrs) {\n return new Overflow(attrs);\n }\n\n static pageArea(attrs) {\n return new PageArea(attrs);\n }\n\n static pageSet(attrs) {\n return new PageSet(attrs);\n }\n\n static para(attrs) {\n return new Para(attrs);\n }\n\n static passwordEdit(attrs) {\n return new PasswordEdit(attrs);\n }\n\n static pattern(attrs) {\n return new Pattern(attrs);\n }\n\n static picture(attrs) {\n return new Picture(attrs);\n }\n\n static proto(attrs) {\n return new Proto(attrs);\n }\n\n static radial(attrs) {\n return new Radial(attrs);\n }\n\n static reason(attrs) {\n return new Reason(attrs);\n }\n\n static reasons(attrs) {\n return new Reasons(attrs);\n }\n\n static rectangle(attrs) {\n return new Rectangle(attrs);\n }\n\n static ref(attrs) {\n return new RefElement(attrs);\n }\n\n static script(attrs) {\n return new Script(attrs);\n }\n\n static setProperty(attrs) {\n return new SetProperty(attrs);\n }\n\n static signData(attrs) {\n return new SignData(attrs);\n }\n\n static signature(attrs) {\n return new Signature(attrs);\n }\n\n static signing(attrs) {\n return new Signing(attrs);\n }\n\n static solid(attrs) {\n return new Solid(attrs);\n }\n\n static speak(attrs) {\n return new Speak(attrs);\n }\n\n static stipple(attrs) {\n return new Stipple(attrs);\n }\n\n static subform(attrs) {\n return new Subform(attrs);\n }\n\n static subformSet(attrs) {\n return new SubformSet(attrs);\n }\n\n static subjectDN(attrs) {\n return new SubjectDN(attrs);\n }\n\n static subjectDNs(attrs) {\n return new SubjectDNs(attrs);\n }\n\n static submit(attrs) {\n return new Submit(attrs);\n }\n\n static template(attrs) {\n return new Template(attrs);\n }\n\n static text(attrs) {\n return new Text(attrs);\n }\n\n static textEdit(attrs) {\n return new TextEdit(attrs);\n }\n\n static time(attrs) {\n return new Time(attrs);\n }\n\n static timeStamp(attrs) {\n return new TimeStamp(attrs);\n }\n\n static toolTip(attrs) {\n return new ToolTip(attrs);\n }\n\n static traversal(attrs) {\n return new Traversal(attrs);\n }\n\n static traverse(attrs) {\n return new Traverse(attrs);\n }\n\n static ui(attrs) {\n return new Ui(attrs);\n }\n\n static validate(attrs) {\n return new Validate(attrs);\n }\n\n static value(attrs) {\n return new Value(attrs);\n }\n\n static variables(attrs) {\n return new Variables(attrs);\n }\n\n}\n\nexports.TemplateNamespace = TemplateNamespace;\n\n/***/ }),\n/* 55 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.layoutClass = layoutClass;\nexports.measureToString = measureToString;\nexports.toStyle = toStyle;\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction measureToString(m) {\n if (typeof m === \"string\") {\n return \"0px\";\n }\n\n return Number.isInteger(m) ? `${m}px` : `${m.toFixed(2)}px`;\n}\n\nconst converters = {\n anchorType(node, style) {\n if (!(\"transform\" in style)) {\n style.transform = \"\";\n }\n\n switch (node.anchorType) {\n case \"bottomCenter\":\n style.transform += \"translate(-50%, -100%)\";\n break;\n\n case \"bottomLeft\":\n style.transform += \"translate(0,-100%)\";\n break;\n\n case \"bottomRight\":\n style.transform += \"translate(-100%,-100%)\";\n break;\n\n case \"middleCenter\":\n style.transform += \"translate(-50%,-50%)\";\n break;\n\n case \"middleLeft\":\n style.transform += \"translate(0,-50%)\";\n break;\n\n case \"middleRight\":\n style.transform += \"translate(-100%,-50%)\";\n break;\n\n case \"topCenter\":\n style.transform += \"translate(-50%,0)\";\n break;\n\n case \"topRight\":\n style.transform += \"translate(-100%,0)\";\n break;\n }\n },\n\n dimensions(node, style) {\n if (node.w) {\n style.width = measureToString(node.w);\n } else {\n style.width = \"auto\";\n\n if (node.maxW > 0) {\n style.maxWidth = measureToString(node.maxW);\n }\n\n style.minWidth = measureToString(node.minW);\n }\n\n if (node.h) {\n style.height = measureToString(node.h);\n } else {\n style.height = \"auto\";\n\n if (node.maxH > 0) {\n style.maxHeight = measureToString(node.maxH);\n }\n\n style.minHeight = measureToString(node.minH);\n }\n },\n\n position(node, style) {\n const parent = node[_xfa_object.$getParent]();\n\n if (parent && parent.layout && parent.layout !== \"position\") {\n return;\n }\n\n style.position = \"absolute\";\n style.left = measureToString(node.x);\n style.top = measureToString(node.y);\n },\n\n rotate(node, style) {\n if (node.rotate) {\n if (!(\"transform\" in style)) {\n style.transform = \"\";\n }\n\n style.transform += `rotate(-${node.rotate}deg)`;\n style.transformOrigin = \"top left\";\n }\n },\n\n presence(node, style) {\n switch (node.presence) {\n case \"invisible\":\n style.visibility = \"hidden\";\n break;\n\n case \"hidden\":\n case \"inactive\":\n style.display = \"none\";\n break;\n }\n }\n\n};\n\nfunction layoutClass(node) {\n switch (node.layout) {\n case \"position\":\n return \"xfaPosition\";\n\n case \"lr-tb\":\n return \"xfaLrTb\";\n\n case \"rl-row\":\n return \"xfaRlRow\";\n\n case \"rl-tb\":\n return \"xfaRlTb\";\n\n case \"row\":\n return \"xfaRow\";\n\n case \"table\":\n return \"xfaTable\";\n\n case \"tb\":\n return \"xfaTb\";\n\n default:\n return \"xfaPosition\";\n }\n}\n\nfunction toStyle(node, ...names) {\n const style = Object.create(null);\n\n for (const name of names) {\n const value = node[name];\n\n if (value === null) {\n continue;\n }\n\n if (value instanceof _xfa_object.XFAObject) {\n const newStyle = value[_xfa_object.$toStyle]();\n\n if (newStyle) {\n Object.assign(style, newStyle);\n } else {\n (0, _util.warn)(`(DEBUG) - XFA - style for ${name} not implemented yet`);\n }\n\n continue;\n }\n\n if (converters.hasOwnProperty(name)) {\n converters[name](node, style);\n }\n }\n\n return style;\n}\n\n/***/ }),\n/* 56 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createDataNode = createDataNode;\nexports.searchNode = searchNode;\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst namePattern = /^[^.[]+/;\nconst indexPattern = /^[^\\]]+/;\nconst operators = {\n dot: 0,\n dotDot: 1,\n dotHash: 2,\n dotBracket: 3,\n dotParen: 4\n};\nconst shortcuts = new Map([[\"$data\", (root, current) => root.datasets.data], [\"$template\", (root, current) => root.template], [\"$connectionSet\", (root, current) => root.connectionSet], [\"$form\", (root, current) => root.form], [\"$layout\", (root, current) => root.layout], [\"$host\", (root, current) => root.host], [\"$dataWindow\", (root, current) => root.dataWindow], [\"$event\", (root, current) => root.event], [\"!\", (root, current) => root.datasets], [\"$xfa\", (root, current) => root], [\"xfa\", (root, current) => root], [\"$\", (root, current) => current]]);\nconst somCache = new WeakMap();\n\nfunction parseIndex(index) {\n index = index.trim();\n\n if (index === \"*\") {\n return Infinity;\n }\n\n return parseInt(index, 10) || 0;\n}\n\nfunction parseExpression(expr, dotDotAllowed) {\n let match = expr.match(namePattern);\n\n if (!match) {\n return null;\n }\n\n let [name] = match;\n const parsed = [{\n name,\n cacheName: \".\" + name,\n index: 0,\n js: null,\n formCalc: null,\n operator: operators.dot\n }];\n let pos = name.length;\n\n while (pos < expr.length) {\n const spos = pos;\n const char = expr.charAt(pos++);\n\n if (char === \"[\") {\n match = expr.slice(pos).match(indexPattern);\n\n if (!match) {\n (0, _util.warn)(\"XFA - Invalid index in SOM expression\");\n return null;\n }\n\n parsed[parsed.length - 1].index = parseIndex(match[0]);\n pos += match[0].length + 1;\n continue;\n }\n\n let operator;\n\n switch (expr.charAt(pos)) {\n case \".\":\n if (!dotDotAllowed) {\n return null;\n }\n\n pos++;\n operator = operators.dotDot;\n break;\n\n case \"#\":\n pos++;\n operator = operators.dotHash;\n break;\n\n case \"[\":\n operator = operators.dotBracket;\n break;\n\n case \"(\":\n operator = operators.dotParen;\n break;\n\n default:\n operator = operators.dot;\n break;\n }\n\n match = expr.slice(pos).match(namePattern);\n\n if (!match) {\n break;\n }\n\n [name] = match;\n pos += name.length;\n parsed.push({\n name,\n cacheName: expr.slice(spos, pos),\n operator,\n index: 0,\n js: null,\n formCalc: null\n });\n }\n\n return parsed;\n}\n\nfunction searchNode(root, container, expr, dotDotAllowed = true, useCache = true) {\n const parsed = parseExpression(expr, dotDotAllowed);\n\n if (!parsed) {\n return null;\n }\n\n const fn = shortcuts.get(parsed[0].name);\n let i = 0;\n let isQualified;\n\n if (fn) {\n isQualified = true;\n root = [fn(root, container)];\n i = 1;\n } else {\n isQualified = container === null;\n root = [container || root];\n }\n\n for (let ii = parsed.length; i < ii; i++) {\n const {\n name,\n cacheName,\n operator,\n index\n } = parsed[i];\n const nodes = [];\n\n for (const node of root) {\n if (!(node instanceof _xfa_object.XFAObject)) {\n continue;\n }\n\n let children, cached;\n\n if (useCache) {\n cached = somCache.get(node);\n\n if (!cached) {\n cached = new Map();\n somCache.set(node, cached);\n }\n\n children = cached.get(cacheName);\n }\n\n if (!children) {\n switch (operator) {\n case operators.dot:\n children = node[_xfa_object.$getChildrenByName](name, false);\n break;\n\n case operators.dotDot:\n children = node[_xfa_object.$getChildrenByName](name, true);\n break;\n\n case operators.dotHash:\n children = node[_xfa_object.$getChildrenByClass](name);\n\n if (children instanceof _xfa_object.XFAObjectArray) {\n children = children.children;\n } else {\n children = [children];\n }\n\n break;\n\n default:\n break;\n }\n\n if (useCache) {\n cached.set(cacheName, children);\n }\n }\n\n if (children.length > 0) {\n nodes.push(children);\n }\n }\n\n if (nodes.length === 0 && !isQualified && i === 0) {\n const parent = container[_xfa_object.$getParent]();\n\n container = parent;\n\n if (!container) {\n return null;\n }\n\n i = -1;\n root = [container];\n continue;\n }\n\n if (isFinite(index)) {\n root = nodes.filter(node => index < node.length).map(node => node[index]);\n } else {\n root = nodes.reduce((acc, node) => acc.concat(node), []);\n }\n }\n\n if (root.length === 0) {\n return null;\n }\n\n return root;\n}\n\nfunction createNodes(root, path) {\n let node = null;\n\n for (const {\n name,\n index\n } of path) {\n for (let i = 0; i <= index; i++) {\n node = new _xfa_object.XmlObject(root[_xfa_object.$namespaceId], name);\n\n root[_xfa_object.$appendChild](node);\n }\n\n root = node;\n }\n\n return node;\n}\n\nfunction createDataNode(root, container, expr) {\n const parsed = parseExpression(expr);\n\n if (!parsed) {\n return null;\n }\n\n if (parsed.some(x => x.operator === operators.dotDot)) {\n return null;\n }\n\n const fn = shortcuts.get(parsed[0].name);\n let i = 0;\n\n if (fn) {\n root = fn(root, container);\n i = 1;\n } else {\n root = container || root;\n }\n\n for (let ii = parsed.length; i < ii; i++) {\n const {\n cacheName,\n index\n } = parsed[i];\n\n if (!isFinite(index)) {\n parsed[i].index = 0;\n return createNodes(root, parsed.slice(i));\n }\n\n const cached = somCache.get(root);\n\n if (!cached) {\n (0, _util.warn)(`XFA - createDataNode must be called after searchNode.`);\n return null;\n }\n\n const children = cached.get(cacheName);\n\n if (children.length === 0) {\n return createNodes(root, parsed.slice(i));\n }\n\n if (index < children.length) {\n const child = children[index];\n\n if (!(child instanceof _xfa_object.XFAObject)) {\n (0, _util.warn)(`XFA - Cannot create a node.`);\n return null;\n }\n\n root = child;\n } else {\n parsed[i].index = children.length - index;\n return createNodes(root, parsed.slice(i));\n }\n }\n\n return null;\n}\n\n/***/ }),\n/* 57 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XFAParser = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nvar _xml_parser = __w_pdfjs_require__(26);\n\nvar _builder = __w_pdfjs_require__(58);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass XFAParser extends _xml_parser.XMLParserBase {\n constructor() {\n super();\n this._builder = new _builder.Builder();\n this._stack = [];\n this._ids = new Map();\n this._current = this._builder.buildRoot(this._ids);\n this._errorCode = _xml_parser.XMLParserErrorCode.NoError;\n this._whiteRegex = /^\\s+$/;\n }\n\n parse(data) {\n this.parseXml(data);\n\n if (this._errorCode !== _xml_parser.XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n this._current[_xfa_object.$finalize]();\n\n return this._current.element;\n }\n\n onText(text) {\n if (this._whiteRegex.test(text)) {\n return;\n }\n\n this._current[_xfa_object.$onText](text.trim());\n }\n\n onCdata(text) {\n this._current[_xfa_object.$onText](text);\n }\n\n _mkAttributes(attributes, tagName) {\n let namespace = null;\n let prefixes = null;\n const attributeObj = Object.create({});\n\n for (const {\n name,\n value\n } of attributes) {\n if (name === \"xmlns\") {\n if (!namespace) {\n namespace = value;\n } else {\n (0, _util.warn)(`XFA - multiple namespace definition in <${tagName}>`);\n }\n } else if (name.startsWith(\"xmlns:\")) {\n const prefix = name.substring(\"xmlns:\".length);\n\n if (!prefixes) {\n prefixes = [];\n }\n\n prefixes.push({\n prefix,\n value\n });\n } else {\n const i = name.indexOf(\":\");\n\n if (i === -1) {\n attributeObj[name] = value;\n } else {\n let nsAttrs = attributeObj[_xfa_object.$nsAttributes];\n\n if (!nsAttrs) {\n nsAttrs = attributeObj[_xfa_object.$nsAttributes] = Object.create(null);\n }\n\n const [ns, attrName] = [name.slice(0, i), name.slice(i + 1)];\n let attrs = nsAttrs[ns];\n\n if (!attrs) {\n attrs = nsAttrs[ns] = Object.create(null);\n }\n\n attrs[attrName] = value;\n }\n }\n }\n\n return [namespace, prefixes, attributeObj];\n }\n\n _getNameAndPrefix(name) {\n const i = name.indexOf(\":\");\n\n if (i === -1) {\n return [name, null];\n }\n\n return [name.substring(i + 1), name.substring(0, i)];\n }\n\n onBeginElement(tagName, attributes, isEmpty) {\n const [namespace, prefixes, attributesObj] = this._mkAttributes(attributes, tagName);\n\n const [name, nsPrefix] = this._getNameAndPrefix(tagName);\n\n const node = this._builder.build({\n nsPrefix,\n name,\n attributes: attributesObj,\n namespace,\n prefixes\n });\n\n if (isEmpty) {\n node[_xfa_object.$finalize]();\n\n if (this._current[_xfa_object.$onChild](node)) {\n node[_xfa_object.$setId](this._ids);\n }\n\n node[_xfa_object.$clean](this._builder);\n\n return;\n }\n\n this._stack.push(this._current);\n\n this._current = node;\n }\n\n onEndElement(name) {\n const node = this._current;\n\n node[_xfa_object.$finalize]();\n\n this._current = this._stack.pop();\n\n if (this._current[_xfa_object.$onChild](node)) {\n node[_xfa_object.$setId](this._ids);\n }\n\n node[_xfa_object.$clean](this._builder);\n }\n\n onError(code) {\n this._errorCode = code;\n }\n\n}\n\nexports.XFAParser = XFAParser;\n\n/***/ }),\n/* 58 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Builder = void 0;\n\nvar _namespaces = __w_pdfjs_require__(52);\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nvar _setup = __w_pdfjs_require__(59);\n\nvar _template = __w_pdfjs_require__(54);\n\nvar _unknown = __w_pdfjs_require__(68);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst _ids = Symbol();\n\nclass Root extends _xfa_object.XFAObject {\n constructor(ids) {\n super(-1, \"root\", Object.create(null));\n this.element = null;\n this[_ids] = ids;\n }\n\n [_xfa_object.$onChild](child) {\n this.element = child;\n return true;\n }\n\n [_xfa_object.$finalize]() {\n super[_xfa_object.$finalize]();\n\n if (this.element.template instanceof _template.Template) {\n this.element.template[_xfa_object.$resolvePrototypes](this[_ids]);\n }\n }\n\n}\n\nclass Empty extends _xfa_object.XFAObject {\n constructor() {\n super(-1, \"\", Object.create(null));\n }\n\n [_xfa_object.$onChild](_) {\n return false;\n }\n\n}\n\nclass Builder {\n constructor() {\n this._namespaceStack = [];\n this._namespacePrefixes = new Map();\n this._namespaces = new Map();\n this._nextNsId = Math.max(...Object.values(_namespaces.NamespaceIds).map(({\n id\n }) => id));\n this._currentNamespace = new _unknown.UnknownNamespace(++this._nextNsId);\n }\n\n buildRoot(ids) {\n return new Root(ids);\n }\n\n build({\n nsPrefix,\n name,\n attributes,\n namespace,\n prefixes\n }) {\n const hasNamespaceDef = namespace !== null;\n\n if (hasNamespaceDef) {\n this._namespaceStack.push(this._currentNamespace);\n\n this._currentNamespace = this._searchNamespace(namespace);\n }\n\n if (prefixes) {\n this._addNamespacePrefix(prefixes);\n }\n\n if (attributes.hasOwnProperty(_xfa_object.$nsAttributes)) {\n const dataTemplate = _setup.NamespaceSetUp.datasets;\n const nsAttrs = attributes[_xfa_object.$nsAttributes];\n let xfaAttrs = null;\n\n for (const [ns, attrs] of Object.entries(nsAttrs)) {\n const nsToUse = this._getNamespaceToUse(ns);\n\n if (nsToUse === dataTemplate) {\n xfaAttrs = {\n xfa: attrs\n };\n break;\n }\n }\n\n if (xfaAttrs) {\n attributes[_xfa_object.$nsAttributes] = xfaAttrs;\n } else {\n delete attributes[_xfa_object.$nsAttributes];\n }\n }\n\n const namespaceToUse = this._getNamespaceToUse(nsPrefix);\n\n const node = namespaceToUse && namespaceToUse[_namespaces.$buildXFAObject](name, attributes) || new Empty();\n\n if (hasNamespaceDef || prefixes) {\n node[_xfa_object.$cleanup] = {\n hasNamespace: hasNamespaceDef,\n prefixes\n };\n }\n\n return node;\n }\n\n _searchNamespace(nsName) {\n let ns = this._namespaces.get(nsName);\n\n if (ns) {\n return ns;\n }\n\n for (const [name, {\n check\n }] of Object.entries(_namespaces.NamespaceIds)) {\n if (check(nsName)) {\n ns = _setup.NamespaceSetUp[name];\n\n if (ns) {\n this._namespaces.set(nsName, ns);\n\n return ns;\n }\n\n break;\n }\n }\n\n ns = new _unknown.UnknownNamespace(++this._nextNsId);\n\n this._namespaces.set(nsName, ns);\n\n return ns;\n }\n\n _addNamespacePrefix(prefixes) {\n for (const {\n prefix,\n value\n } of prefixes) {\n const namespace = this._searchNamespace(value);\n\n let prefixStack = this._namespacePrefixes.get(prefix);\n\n if (!prefixStack) {\n prefixStack = [];\n\n this._namespacePrefixes.set(prefix, prefixStack);\n }\n\n prefixStack.push(namespace);\n }\n }\n\n _getNamespaceToUse(prefix) {\n if (!prefix) {\n return this._currentNamespace;\n }\n\n const prefixStack = this._namespacePrefixes.get(prefix);\n\n if (prefixStack && prefixStack.length > 0) {\n return prefixStack[prefixStack.length - 1];\n }\n\n (0, _util.warn)(`Unknown namespace prefix: ${prefix}.`);\n return null;\n }\n\n clean(data) {\n const {\n hasNamespace,\n prefixes\n } = data;\n\n if (hasNamespace) {\n this._currentNamespace = this._namespaceStack.pop();\n }\n\n if (prefixes) {\n prefixes.forEach(({\n prefix\n }) => {\n this._namespacePrefixes.get(prefix).pop();\n });\n }\n }\n\n}\n\nexports.Builder = Builder;\n\n/***/ }),\n/* 59 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NamespaceSetUp = void 0;\n\nvar _config = __w_pdfjs_require__(60);\n\nvar _connection_set = __w_pdfjs_require__(61);\n\nvar _datasets = __w_pdfjs_require__(62);\n\nvar _locale_set = __w_pdfjs_require__(63);\n\nvar _signature = __w_pdfjs_require__(64);\n\nvar _stylesheet = __w_pdfjs_require__(65);\n\nvar _template = __w_pdfjs_require__(54);\n\nvar _xdp = __w_pdfjs_require__(66);\n\nvar _xhtml = __w_pdfjs_require__(67);\n\nconst NamespaceSetUp = {\n config: _config.ConfigNamespace,\n connection: _connection_set.ConnectionSetNamespace,\n datasets: _datasets.DatasetsNamespace,\n localeSet: _locale_set.LocaleSetNamespace,\n signature: _signature.SignatureNamespace,\n stylesheet: _stylesheet.StylesheetNamespace,\n template: _template.TemplateNamespace,\n xdp: _xdp.XdpNamespace,\n xhtml: _xhtml.XhtmlNamespace\n};\nexports.NamespaceSetUp = NamespaceSetUp;\n\n/***/ }),\n/* 60 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.ConfigNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(52);\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nvar _utils = __w_pdfjs_require__(51);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CONFIG_NS_ID = _namespaces.NamespaceIds.config.id;\n\nclass Acrobat extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"acrobat\", true);\n this.acrobat7 = null;\n this.autoSave = null;\n this.common = null;\n this.validate = null;\n this.validateApprovalSignatures = null;\n this.submitUrl = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Acrobat7 extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"acrobat7\", true);\n this.dynamicRender = null;\n }\n\n}\n\nclass ADBE_JSConsole extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ADBE_JSConsole\", [\"delegate\", \"Enable\", \"Disable\"]);\n }\n\n}\n\nclass ADBE_JSDebugger extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ADBE_JSDebugger\", [\"delegate\", \"Enable\", \"Disable\"]);\n }\n\n}\n\nclass AddSilentPrint extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"addSilentPrint\");\n }\n\n}\n\nclass AddViewerPreferences extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"addViewerPreferences\");\n }\n\n}\n\nclass AdjustData extends _xfa_object.Option10 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"adjustData\");\n }\n\n}\n\nclass AdobeExtensionLevel extends _xfa_object.IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"adobeExtensionLevel\", 0, n => n >= 1 && n <= 8);\n }\n\n}\n\nclass Agent extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"agent\", true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.common = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass AlwaysEmbed extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"alwaysEmbed\");\n }\n\n}\n\nclass Amd extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"amd\");\n }\n\n}\n\nclass Area extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"area\");\n this.level = (0, _utils.getInteger)({\n data: attributes.level,\n defaultValue: 0,\n validator: n => n >= 1 && n <= 3\n });\n this.name = (0, _utils.getStringOption)(attributes.name, [\"\", \"barcode\", \"coreinit\", \"deviceDriver\", \"font\", \"general\", \"layout\", \"merge\", \"script\", \"signature\", \"sourceSet\", \"templateCache\"]);\n }\n\n}\n\nclass Attributes extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"attributes\", [\"preserve\", \"delegate\", \"ignore\"]);\n }\n\n}\n\nclass AutoSave extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"autoSave\", [\"disabled\", \"enabled\"]);\n }\n\n}\n\nclass Base extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"base\");\n }\n\n}\n\nclass BatchOutput extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"batchOutput\");\n this.format = (0, _utils.getStringOption)(attributes.format, [\"none\", \"concat\", \"zip\", \"zipCompress\"]);\n }\n\n}\n\nclass BehaviorOverride extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"behaviorOverride\");\n }\n\n [_xfa_object.$finalize]() {\n this[_xfa_object.$content] = new Map(this[_xfa_object.$content].trim().split(/\\s+/).filter(x => !!x && x.include(\":\")).map(x => x.split(\":\", 2)));\n }\n\n}\n\nclass Cache extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"cache\", true);\n this.templateCache = null;\n }\n\n}\n\nclass Change extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"change\");\n }\n\n}\n\nclass Common extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"common\", true);\n this.data = null;\n this.locale = null;\n this.localeSet = null;\n this.messaging = null;\n this.suppressBanner = null;\n this.template = null;\n this.validationMessaging = null;\n this.versionControl = null;\n this.log = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Compress extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compress\");\n this.scope = (0, _utils.getStringOption)(attributes.scope, [\"imageOnly\", \"document\"]);\n }\n\n}\n\nclass CompressLogicalStructure extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compressLogicalStructure\");\n }\n\n}\n\nclass CompressObjectStream extends _xfa_object.Option10 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compressObjectStream\");\n }\n\n}\n\nclass Compression extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compression\", true);\n this.compressLogicalStructure = null;\n this.compressObjectStream = null;\n this.level = null;\n this.type = null;\n }\n\n}\n\nclass Config extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"config\", true);\n this.acrobat = null;\n this.present = null;\n this.trace = null;\n this.agent = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Conformance extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"conformance\", [\"A\", \"B\"]);\n }\n\n}\n\nclass ContentCopy extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"contentCopy\");\n }\n\n}\n\nclass Copies extends _xfa_object.IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"copies\", 1, n => n >= 1);\n }\n\n}\n\nclass Creator extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"creator\");\n }\n\n}\n\nclass CurrentPage extends _xfa_object.IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"currentPage\", 0, n => n >= 0);\n }\n\n}\n\nclass Data extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"data\", true);\n this.adjustData = null;\n this.attributes = null;\n this.incrementalLoad = null;\n this.outputXSL = null;\n this.range = null;\n this.record = null;\n this.startNode = null;\n this.uri = null;\n this.window = null;\n this.xsl = null;\n this.excludeNS = new _xfa_object.XFAObjectArray();\n this.transform = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Debug extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"debug\", true);\n this.uri = null;\n }\n\n}\n\nclass DefaultTypeface extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"defaultTypeface\");\n this.writingScript = (0, _utils.getStringOption)(attributes.writingScript, [\"*\", \"Arabic\", \"Cyrillic\", \"EastEuropeanRoman\", \"Greek\", \"Hebrew\", \"Japanese\", \"Korean\", \"Roman\", \"SimplifiedChinese\", \"Thai\", \"TraditionalChinese\", \"Vietnamese\"]);\n }\n\n}\n\nclass Destination extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"destination\", [\"pdf\", \"pcl\", \"ps\", \"webClient\", \"zpl\"]);\n }\n\n}\n\nclass DocumentAssembly extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"documentAssembly\");\n }\n\n}\n\nclass Driver extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"driver\", true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.fontInfo = null;\n this.xdc = null;\n }\n\n}\n\nclass DuplexOption extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"duplexOption\", [\"simplex\", \"duplexFlipLongEdge\", \"duplexFlipShortEdge\"]);\n }\n\n}\n\nclass DynamicRender extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"dynamicRender\", [\"forbidden\", \"required\"]);\n }\n\n}\n\nclass Embed extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"embed\");\n }\n\n}\n\nclass Encrypt extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encrypt\");\n }\n\n}\n\nclass Encryption extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encryption\", true);\n this.encrypt = null;\n this.encryptionLevel = null;\n this.permissions = null;\n }\n\n}\n\nclass EncryptionLevel extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encryptionLevel\", [\"40bit\", \"128bit\"]);\n }\n\n}\n\nclass Enforce extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"enforce\");\n }\n\n}\n\nclass Equate extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"equate\");\n this.force = (0, _utils.getInteger)({\n data: attributes.force,\n defaultValue: 1,\n validator: n => n === 0\n });\n this.from = attributes.from || \"\";\n this.to = attributes.to || \"\";\n }\n\n}\n\nclass EquateRange extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"equateRange\");\n this.from = attributes.from || \"\";\n this.to = attributes.to || \"\";\n this._unicodeRange = attributes.unicodeRange || \"\";\n }\n\n get unicodeRange() {\n const ranges = [];\n const unicodeRegex = /U\\+([0-9a-fA-F]+)/;\n const unicodeRange = this._unicodeRange;\n\n for (let range of unicodeRange.split(\",\").map(x => x.trim()).filter(x => !!x)) {\n range = range.split(\"-\", 2).map(x => {\n const found = x.match(unicodeRegex);\n\n if (!found) {\n return 0;\n }\n\n return parseInt(found[1], 16);\n });\n\n if (range.length === 1) {\n range.push(range[0]);\n }\n\n ranges.push(range);\n }\n\n return (0, _util.shadow)(this, \"unicodeRange\", ranges);\n }\n\n}\n\nclass Exclude extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"exclude\");\n }\n\n [_xfa_object.$finalize]() {\n this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s+/).filter(x => x && [\"calculate\", \"close\", \"enter\", \"exit\", \"initialize\", \"ready\", \"validate\"].includes(x));\n }\n\n}\n\nclass ExcludeNS extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"excludeNS\");\n }\n\n}\n\nclass FlipLabel extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"flipLabel\", [\"usePrinterSetting\", \"on\", \"off\"]);\n }\n\n}\n\nclass FontInfo extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"fontInfo\", true);\n this.embed = null;\n this.map = null;\n this.subsetBelow = null;\n this.alwaysEmbed = new _xfa_object.XFAObjectArray();\n this.defaultTypeface = new _xfa_object.XFAObjectArray();\n this.neverEmbed = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass FormFieldFilling extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"formFieldFilling\");\n }\n\n}\n\nclass GroupParent extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"groupParent\");\n }\n\n}\n\nclass IfEmpty extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ifEmpty\", [\"dataValue\", \"dataGroup\", \"ignore\", \"remove\"]);\n }\n\n}\n\nclass IncludeXDPContent extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"includeXDPContent\");\n }\n\n}\n\nclass IncrementalLoad extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"incrementalLoad\", [\"none\", \"forwardOnly\"]);\n }\n\n}\n\nclass IncrementalMerge extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"incrementalMerge\");\n }\n\n}\n\nclass Interactive extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"interactive\");\n }\n\n}\n\nclass Jog extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"jog\", [\"usePrinterSetting\", \"none\", \"pageSet\"]);\n }\n\n}\n\nclass LabelPrinter extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"labelPrinter\", true);\n this.name = (0, _utils.getStringOption)(attributes.name, [\"zpl\", \"dpl\", \"ipl\", \"tcpl\"]);\n this.batchOutput = null;\n this.flipLabel = null;\n this.fontInfo = null;\n this.xdc = null;\n }\n\n}\n\nclass Layout extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"layout\", [\"paginate\", \"panel\"]);\n }\n\n}\n\nclass Level extends _xfa_object.IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"level\", 0, n => n > 0);\n }\n\n}\n\nclass Linearized extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"linearized\");\n }\n\n}\n\nclass Locale extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"locale\");\n }\n\n}\n\nclass LocaleSet extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"localeSet\");\n }\n\n}\n\nclass Log extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"log\", true);\n this.mode = null;\n this.threshold = null;\n this.to = null;\n this.uri = null;\n }\n\n}\n\nclass MapElement extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"map\", true);\n this.equate = new _xfa_object.XFAObjectArray();\n this.equateRange = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass MediumInfo extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"mediumInfo\", true);\n this.map = null;\n }\n\n}\n\nclass Message extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"message\", true);\n this.msgId = null;\n this.severity = null;\n }\n\n}\n\nclass Messaging extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"messaging\", true);\n this.message = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Mode extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"mode\", [\"append\", \"overwrite\"]);\n }\n\n}\n\nclass ModifyAnnots extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"modifyAnnots\");\n }\n\n}\n\nclass MsgId extends _xfa_object.IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"msgId\", 1, n => n >= 1);\n }\n\n}\n\nclass NameAttr extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"nameAttr\");\n }\n\n}\n\nclass NeverEmbed extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"neverEmbed\");\n }\n\n}\n\nclass NumberOfCopies extends _xfa_object.IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"numberOfCopies\", null, n => n >= 2 && n <= 5);\n }\n\n}\n\nclass OpenAction extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"openAction\", true);\n this.destination = null;\n }\n\n}\n\nclass Output extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"output\", true);\n this.to = null;\n this.type = null;\n this.uri = null;\n }\n\n}\n\nclass OutputBin extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"outputBin\");\n }\n\n}\n\nclass OutputXSL extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"outputXSL\", true);\n this.uri = null;\n }\n\n}\n\nclass Overprint extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"overprint\", [\"none\", \"both\", \"draw\", \"field\"]);\n }\n\n}\n\nclass Packets extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"packets\");\n }\n\n [_xfa_object.$finalize]() {\n if (this[_xfa_object.$content] === \"*\") {\n return;\n }\n\n this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s+/).filter(x => [\"config\", \"datasets\", \"template\", \"xfdf\", \"xslt\"].includes(x));\n }\n\n}\n\nclass PageOffset extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pageOffset\");\n this.x = (0, _utils.getInteger)({\n data: attributes.x,\n defaultValue: \"useXDCSetting\",\n validator: n => true\n });\n this.y = (0, _utils.getInteger)({\n data: attributes.y,\n defaultValue: \"useXDCSetting\",\n validator: n => true\n });\n }\n\n}\n\nclass PageRange extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pageRange\");\n }\n\n [_xfa_object.$finalize]() {\n const numbers = this[_xfa_object.$content].trim().split(/\\s+/).map(x => parseInt(x, 10));\n\n const ranges = [];\n\n for (let i = 0, ii = numbers.length; i < ii; i += 2) {\n ranges.push(numbers.slice(i, i + 2));\n }\n\n this[_xfa_object.$content] = ranges;\n }\n\n}\n\nclass Pagination extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pagination\", [\"simplex\", \"duplexShortEdge\", \"duplexLongEdge\"]);\n }\n\n}\n\nclass PaginationOverride extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"paginationOverride\", [\"none\", \"forceDuplex\", \"forceDuplexLongEdge\", \"forceDuplexShortEdge\", \"forceSimplex\"]);\n }\n\n}\n\nclass Part extends _xfa_object.IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"part\", 1, n => false);\n }\n\n}\n\nclass Pcl extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pcl\", true);\n this.name = attributes.name || \"\";\n this.batchOutput = null;\n this.fontInfo = null;\n this.jog = null;\n this.mediumInfo = null;\n this.outputBin = null;\n this.pageOffset = null;\n this.staple = null;\n this.xdc = null;\n }\n\n}\n\nclass Pdf extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pdf\", true);\n this.name = attributes.name || \"\";\n this.adobeExtensionLevel = null;\n this.batchOutput = null;\n this.compression = null;\n this.creator = null;\n this.encryption = null;\n this.fontInfo = null;\n this.interactive = null;\n this.linearized = null;\n this.openAction = null;\n this.pdfa = null;\n this.producer = null;\n this.renderPolicy = null;\n this.scriptModel = null;\n this.silentPrint = null;\n this.submitFormat = null;\n this.tagged = null;\n this.version = null;\n this.viewerPreferences = null;\n this.xdc = null;\n }\n\n}\n\nclass Pdfa extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pdfa\", true);\n this.amd = null;\n this.conformance = null;\n this.includeXDPContent = null;\n this.part = null;\n }\n\n}\n\nclass Permissions extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"permissions\", true);\n this.accessibleContent = null;\n this.change = null;\n this.contentCopy = null;\n this.documentAssembly = null;\n this.formFieldFilling = null;\n this.modifyAnnots = null;\n this.plaintextMetadata = null;\n this.print = null;\n this.printHighQuality = null;\n }\n\n}\n\nclass PickTrayByPDFSize extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pickTrayByPDFSize\");\n }\n\n}\n\nclass Picture extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"picture\");\n }\n\n}\n\nclass PlaintextMetadata extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"plaintextMetadata\");\n }\n\n}\n\nclass Presence extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"presence\", [\"preserve\", \"dissolve\", \"dissolveStructure\", \"ignore\", \"remove\"]);\n }\n\n}\n\nclass Present extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"present\", true);\n this.behaviorOverride = null;\n this.cache = null;\n this.common = null;\n this.copies = null;\n this.destination = null;\n this.incrementalMerge = null;\n this.layout = null;\n this.output = null;\n this.overprint = null;\n this.pagination = null;\n this.paginationOverride = null;\n this.script = null;\n this.validate = null;\n this.xdp = null;\n this.driver = new _xfa_object.XFAObjectArray();\n this.labelPrinter = new _xfa_object.XFAObjectArray();\n this.pcl = new _xfa_object.XFAObjectArray();\n this.pdf = new _xfa_object.XFAObjectArray();\n this.ps = new _xfa_object.XFAObjectArray();\n this.submitUrl = new _xfa_object.XFAObjectArray();\n this.webClient = new _xfa_object.XFAObjectArray();\n this.zpl = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Print extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"print\");\n }\n\n}\n\nclass PrintHighQuality extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printHighQuality\");\n }\n\n}\n\nclass PrintScaling extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printScaling\", [\"appdefault\", \"noScaling\"]);\n }\n\n}\n\nclass PrinterName extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printerName\");\n }\n\n}\n\nclass Producer extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"producer\");\n }\n\n}\n\nclass Ps extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ps\", true);\n this.name = attributes.name || \"\";\n this.batchOutput = null;\n this.fontInfo = null;\n this.jog = null;\n this.mediumInfo = null;\n this.outputBin = null;\n this.staple = null;\n this.xdc = null;\n }\n\n}\n\nclass Range extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"range\");\n }\n\n [_xfa_object.$finalize]() {\n this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s*,\\s*/, 2).map(range => range.split(\"-\").map(x => parseInt(x.trim(), 10))).filter(range => range.every(x => !isNaN(x))).map(range => {\n if (range.length === 1) {\n range.push(range[0]);\n }\n\n return range;\n });\n }\n\n}\n\nclass Record extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"record\");\n }\n\n [_xfa_object.$finalize]() {\n this[_xfa_object.$content] = this[_xfa_object.$content].trim();\n const n = parseInt(this[_xfa_object.$content], 10);\n\n if (!isNaN(n) && n >= 0) {\n this[_xfa_object.$content] = n;\n }\n }\n\n}\n\nclass Relevant extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"relevant\");\n }\n\n [_xfa_object.$finalize]() {\n this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s+/);\n }\n\n}\n\nclass Rename extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"rename\");\n }\n\n [_xfa_object.$finalize]() {\n this[_xfa_object.$content] = this[_xfa_object.$content].trim();\n\n if (this[_xfa_object.$content].toLowerCase().startsWith(\"xml\") || this[_xfa_object.$content].match(new RegExp(\"[\\\\p{L}_][\\\\p{L}\\\\d._\\\\p{M}-]*\", \"u\"))) {\n (0, _util.warn)(\"XFA - Rename: invalid XFA name\");\n }\n }\n\n}\n\nclass RenderPolicy extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"renderPolicy\", [\"server\", \"client\"]);\n }\n\n}\n\nclass RunScripts extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"runScripts\", [\"both\", \"client\", \"none\", \"server\"]);\n }\n\n}\n\nclass Script extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"script\", true);\n this.currentPage = null;\n this.exclude = null;\n this.runScripts = null;\n }\n\n}\n\nclass ScriptModel extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"scriptModel\", [\"XFA\", \"none\"]);\n }\n\n}\n\nclass Severity extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"severity\", [\"ignore\", \"error\", \"information\", \"trace\", \"warning\"]);\n }\n\n}\n\nclass SilentPrint extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"silentPrint\", true);\n this.addSilentPrint = null;\n this.printerName = null;\n }\n\n}\n\nclass Staple extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"staple\");\n this.mode = (0, _utils.getStringOption)(attributes.mode, [\"usePrinterSetting\", \"on\", \"off\"]);\n }\n\n}\n\nclass StartNode extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"startNode\");\n }\n\n}\n\nclass StartPage extends _xfa_object.IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"startPage\", 0, n => true);\n }\n\n}\n\nclass SubmitFormat extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"submitFormat\", [\"html\", \"delegate\", \"fdf\", \"xml\", \"pdf\"]);\n }\n\n}\n\nclass SubmitUrl extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"submitUrl\");\n }\n\n}\n\nclass SubsetBelow extends _xfa_object.IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"subsetBelow\", 100, n => n >= 0 && n <= 100);\n }\n\n}\n\nclass SuppressBanner extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"suppressBanner\");\n }\n\n}\n\nclass Tagged extends _xfa_object.Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"tagged\");\n }\n\n}\n\nclass Template extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"template\", true);\n this.base = null;\n this.relevant = null;\n this.startPage = null;\n this.uri = null;\n this.xsl = null;\n }\n\n}\n\nclass Threshold extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"threshold\", [\"trace\", \"error\", \"information\", \"warning\"]);\n }\n\n}\n\nclass To extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"to\", [\"null\", \"memory\", \"stderr\", \"stdout\", \"system\", \"uri\"]);\n }\n\n}\n\nclass TemplateCache extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"templateCache\");\n this.maxEntries = (0, _utils.getInteger)({\n data: attributes.maxEntries,\n defaultValue: 5,\n validator: n => n >= 0\n });\n }\n\n}\n\nclass Trace extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"trace\", true);\n this.area = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Transform extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"transform\", true);\n this.groupParent = null;\n this.ifEmpty = null;\n this.nameAttr = null;\n this.picture = null;\n this.presence = null;\n this.rename = null;\n this.whitespace = null;\n }\n\n}\n\nclass Type extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"type\", [\"none\", \"ascii85\", \"asciiHex\", \"ccittfax\", \"flate\", \"lzw\", \"runLength\", \"native\", \"xdp\", \"mergedXDP\"]);\n }\n\n}\n\nclass Uri extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"uri\");\n }\n\n}\n\nclass Validate extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validate\", [\"preSubmit\", \"prePrint\", \"preExecute\", \"preSave\"]);\n }\n\n}\n\nclass ValidateApprovalSignatures extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validateApprovalSignatures\");\n }\n\n [_xfa_object.$finalize]() {\n this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s+/).filter(x => [\"docReady\", \"postSign\"].includes(x));\n }\n\n}\n\nclass ValidationMessaging extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validationMessaging\", [\"allMessagesIndividually\", \"allMessagesTogether\", \"firstMessageOnly\", \"noMessages\"]);\n }\n\n}\n\nclass Version extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"version\", [\"1.7\", \"1.6\", \"1.5\", \"1.4\", \"1.3\", \"1.2\"]);\n }\n\n}\n\nclass VersionControl extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"VersionControl\");\n this.outputBelow = (0, _utils.getStringOption)(attributes.outputBelow, [\"warn\", \"error\", \"update\"]);\n this.sourceAbove = (0, _utils.getStringOption)(attributes.sourceAbove, [\"warn\", \"error\"]);\n this.sourceBelow = (0, _utils.getStringOption)(attributes.sourceBelow, [\"update\", \"maintain\"]);\n }\n\n}\n\nclass ViewerPreferences extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"viewerPreferences\", true);\n this.ADBE_JSConsole = null;\n this.ADBE_JSDebugger = null;\n this.addViewerPreferences = null;\n this.duplexOption = null;\n this.enforce = null;\n this.numberOfCopies = null;\n this.pageRange = null;\n this.pickTrayByPDFSize = null;\n this.printScaling = null;\n }\n\n}\n\nclass WebClient extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"webClient\", true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.fontInfo = null;\n this.xdc = null;\n }\n\n}\n\nclass Whitespace extends _xfa_object.OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"whitespace\", [\"preserve\", \"ltrim\", \"normalize\", \"rtrim\", \"trim\"]);\n }\n\n}\n\nclass Window extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"window\");\n }\n\n [_xfa_object.$finalize]() {\n const pair = this[_xfa_object.$content].trim().split(/\\s*,\\s*/, 2).map(x => parseInt(x, 10));\n\n if (pair.some(x => isNaN(x))) {\n this[_xfa_object.$content] = [0, 0];\n return;\n }\n\n if (pair.length === 1) {\n pair.push(pair[0]);\n }\n\n this[_xfa_object.$content] = pair;\n }\n\n}\n\nclass Xdc extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xdc\", true);\n this.uri = new _xfa_object.XFAObjectArray();\n this.xsl = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Xdp extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xdp\", true);\n this.packets = null;\n }\n\n}\n\nclass Xsl extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xsl\", true);\n this.debug = null;\n this.uri = null;\n }\n\n}\n\nclass Zpl extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"zpl\", true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.batchOutput = null;\n this.flipLabel = null;\n this.fontInfo = null;\n this.xdc = null;\n }\n\n}\n\nclass ConfigNamespace {\n static [_namespaces.$buildXFAObject](name, attributes) {\n if (ConfigNamespace.hasOwnProperty(name)) {\n return ConfigNamespace[name](attributes);\n }\n\n return undefined;\n }\n\n static acrobat(attrs) {\n return new Acrobat(attrs);\n }\n\n static acrobat7(attrs) {\n return new Acrobat7(attrs);\n }\n\n static ADBE_JSConsole(attrs) {\n return new ADBE_JSConsole(attrs);\n }\n\n static ADBE_JSDebugger(attrs) {\n return new ADBE_JSDebugger(attrs);\n }\n\n static addSilentPrint(attrs) {\n return new AddSilentPrint(attrs);\n }\n\n static addViewerPreferences(attrs) {\n return new AddViewerPreferences(attrs);\n }\n\n static adjustData(attrs) {\n return new AdjustData(attrs);\n }\n\n static adobeExtensionLevel(attrs) {\n return new AdobeExtensionLevel(attrs);\n }\n\n static agent(attrs) {\n return new Agent(attrs);\n }\n\n static alwaysEmbed(attrs) {\n return new AlwaysEmbed(attrs);\n }\n\n static amd(attrs) {\n return new Amd(attrs);\n }\n\n static area(attrs) {\n return new Area(attrs);\n }\n\n static attributes(attrs) {\n return new Attributes(attrs);\n }\n\n static autoSave(attrs) {\n return new AutoSave(attrs);\n }\n\n static base(attrs) {\n return new Base(attrs);\n }\n\n static batchOutput(attrs) {\n return new BatchOutput(attrs);\n }\n\n static behaviorOverride(attrs) {\n return new BehaviorOverride(attrs);\n }\n\n static cache(attrs) {\n return new Cache(attrs);\n }\n\n static change(attrs) {\n return new Change(attrs);\n }\n\n static common(attrs) {\n return new Common(attrs);\n }\n\n static compress(attrs) {\n return new Compress(attrs);\n }\n\n static compressLogicalStructure(attrs) {\n return new CompressLogicalStructure(attrs);\n }\n\n static compressObjectStream(attrs) {\n return new CompressObjectStream(attrs);\n }\n\n static compression(attrs) {\n return new Compression(attrs);\n }\n\n static config(attrs) {\n return new Config(attrs);\n }\n\n static conformance(attrs) {\n return new Conformance(attrs);\n }\n\n static contentCopy(attrs) {\n return new ContentCopy(attrs);\n }\n\n static copies(attrs) {\n return new Copies(attrs);\n }\n\n static creator(attrs) {\n return new Creator(attrs);\n }\n\n static currentPage(attrs) {\n return new CurrentPage(attrs);\n }\n\n static data(attrs) {\n return new Data(attrs);\n }\n\n static debug(attrs) {\n return new Debug(attrs);\n }\n\n static defaultTypeface(attrs) {\n return new DefaultTypeface(attrs);\n }\n\n static destination(attrs) {\n return new Destination(attrs);\n }\n\n static documentAssembly(attrs) {\n return new DocumentAssembly(attrs);\n }\n\n static driver(attrs) {\n return new Driver(attrs);\n }\n\n static duplexOption(attrs) {\n return new DuplexOption(attrs);\n }\n\n static dynamicRender(attrs) {\n return new DynamicRender(attrs);\n }\n\n static embed(attrs) {\n return new Embed(attrs);\n }\n\n static encrypt(attrs) {\n return new Encrypt(attrs);\n }\n\n static encryption(attrs) {\n return new Encryption(attrs);\n }\n\n static encryptionLevel(attrs) {\n return new EncryptionLevel(attrs);\n }\n\n static enforce(attrs) {\n return new Enforce(attrs);\n }\n\n static equate(attrs) {\n return new Equate(attrs);\n }\n\n static equateRange(attrs) {\n return new EquateRange(attrs);\n }\n\n static exclude(attrs) {\n return new Exclude(attrs);\n }\n\n static excludeNS(attrs) {\n return new ExcludeNS(attrs);\n }\n\n static flipLabel(attrs) {\n return new FlipLabel(attrs);\n }\n\n static fontInfo(attrs) {\n return new FontInfo(attrs);\n }\n\n static formFieldFilling(attrs) {\n return new FormFieldFilling(attrs);\n }\n\n static groupParent(attrs) {\n return new GroupParent(attrs);\n }\n\n static ifEmpty(attrs) {\n return new IfEmpty(attrs);\n }\n\n static includeXDPContent(attrs) {\n return new IncludeXDPContent(attrs);\n }\n\n static incrementalLoad(attrs) {\n return new IncrementalLoad(attrs);\n }\n\n static incrementalMerge(attrs) {\n return new IncrementalMerge(attrs);\n }\n\n static interactive(attrs) {\n return new Interactive(attrs);\n }\n\n static jog(attrs) {\n return new Jog(attrs);\n }\n\n static labelPrinter(attrs) {\n return new LabelPrinter(attrs);\n }\n\n static layout(attrs) {\n return new Layout(attrs);\n }\n\n static level(attrs) {\n return new Level(attrs);\n }\n\n static linearized(attrs) {\n return new Linearized(attrs);\n }\n\n static locale(attrs) {\n return new Locale(attrs);\n }\n\n static localeSet(attrs) {\n return new LocaleSet(attrs);\n }\n\n static log(attrs) {\n return new Log(attrs);\n }\n\n static map(attrs) {\n return new MapElement(attrs);\n }\n\n static mediumInfo(attrs) {\n return new MediumInfo(attrs);\n }\n\n static message(attrs) {\n return new Message(attrs);\n }\n\n static messaging(attrs) {\n return new Messaging(attrs);\n }\n\n static mode(attrs) {\n return new Mode(attrs);\n }\n\n static modifyAnnots(attrs) {\n return new ModifyAnnots(attrs);\n }\n\n static msgId(attrs) {\n return new MsgId(attrs);\n }\n\n static nameAttr(attrs) {\n return new NameAttr(attrs);\n }\n\n static neverEmbed(attrs) {\n return new NeverEmbed(attrs);\n }\n\n static numberOfCopies(attrs) {\n return new NumberOfCopies(attrs);\n }\n\n static openAction(attrs) {\n return new OpenAction(attrs);\n }\n\n static output(attrs) {\n return new Output(attrs);\n }\n\n static outputBin(attrs) {\n return new OutputBin(attrs);\n }\n\n static outputXSL(attrs) {\n return new OutputXSL(attrs);\n }\n\n static overprint(attrs) {\n return new Overprint(attrs);\n }\n\n static packets(attrs) {\n return new Packets(attrs);\n }\n\n static pageOffset(attrs) {\n return new PageOffset(attrs);\n }\n\n static pageRange(attrs) {\n return new PageRange(attrs);\n }\n\n static pagination(attrs) {\n return new Pagination(attrs);\n }\n\n static paginationOverride(attrs) {\n return new PaginationOverride(attrs);\n }\n\n static part(attrs) {\n return new Part(attrs);\n }\n\n static pcl(attrs) {\n return new Pcl(attrs);\n }\n\n static pdf(attrs) {\n return new Pdf(attrs);\n }\n\n static pdfa(attrs) {\n return new Pdfa(attrs);\n }\n\n static permissions(attrs) {\n return new Permissions(attrs);\n }\n\n static pickTrayByPDFSize(attrs) {\n return new PickTrayByPDFSize(attrs);\n }\n\n static picture(attrs) {\n return new Picture(attrs);\n }\n\n static plaintextMetadata(attrs) {\n return new PlaintextMetadata(attrs);\n }\n\n static presence(attrs) {\n return new Presence(attrs);\n }\n\n static present(attrs) {\n return new Present(attrs);\n }\n\n static print(attrs) {\n return new Print(attrs);\n }\n\n static printHighQuality(attrs) {\n return new PrintHighQuality(attrs);\n }\n\n static printScaling(attrs) {\n return new PrintScaling(attrs);\n }\n\n static printerName(attrs) {\n return new PrinterName(attrs);\n }\n\n static producer(attrs) {\n return new Producer(attrs);\n }\n\n static ps(attrs) {\n return new Ps(attrs);\n }\n\n static range(attrs) {\n return new Range(attrs);\n }\n\n static record(attrs) {\n return new Record(attrs);\n }\n\n static relevant(attrs) {\n return new Relevant(attrs);\n }\n\n static rename(attrs) {\n return new Rename(attrs);\n }\n\n static renderPolicy(attrs) {\n return new RenderPolicy(attrs);\n }\n\n static runScripts(attrs) {\n return new RunScripts(attrs);\n }\n\n static script(attrs) {\n return new Script(attrs);\n }\n\n static scriptModel(attrs) {\n return new ScriptModel(attrs);\n }\n\n static severity(attrs) {\n return new Severity(attrs);\n }\n\n static silentPrint(attrs) {\n return new SilentPrint(attrs);\n }\n\n static staple(attrs) {\n return new Staple(attrs);\n }\n\n static startNode(attrs) {\n return new StartNode(attrs);\n }\n\n static startPage(attrs) {\n return new StartPage(attrs);\n }\n\n static submitFormat(attrs) {\n return new SubmitFormat(attrs);\n }\n\n static submitUrl(attrs) {\n return new SubmitUrl(attrs);\n }\n\n static subsetBelow(attrs) {\n return new SubsetBelow(attrs);\n }\n\n static suppressBanner(attrs) {\n return new SuppressBanner(attrs);\n }\n\n static tagged(attrs) {\n return new Tagged(attrs);\n }\n\n static template(attrs) {\n return new Template(attrs);\n }\n\n static templateCache(attrs) {\n return new TemplateCache(attrs);\n }\n\n static threshold(attrs) {\n return new Threshold(attrs);\n }\n\n static to(attrs) {\n return new To(attrs);\n }\n\n static trace(attrs) {\n return new Trace(attrs);\n }\n\n static transform(attrs) {\n return new Transform(attrs);\n }\n\n static type(attrs) {\n return new Type(attrs);\n }\n\n static uri(attrs) {\n return new Uri(attrs);\n }\n\n static validate(attrs) {\n return new Validate(attrs);\n }\n\n static validateApprovalSignatures(attrs) {\n return new ValidateApprovalSignatures(attrs);\n }\n\n static validationMessaging(attrs) {\n return new ValidationMessaging(attrs);\n }\n\n static version(attrs) {\n return new Version(attrs);\n }\n\n static versionControl(attrs) {\n return new VersionControl(attrs);\n }\n\n static viewerPreferences(attrs) {\n return new ViewerPreferences(attrs);\n }\n\n static webClient(attrs) {\n return new WebClient(attrs);\n }\n\n static whitespace(attrs) {\n return new Whitespace(attrs);\n }\n\n static window(attrs) {\n return new Window(attrs);\n }\n\n static xdc(attrs) {\n return new Xdc(attrs);\n }\n\n static xdp(attrs) {\n return new Xdp(attrs);\n }\n\n static xsl(attrs) {\n return new Xsl(attrs);\n }\n\n static zpl(attrs) {\n return new Zpl(attrs);\n }\n\n}\n\nexports.ConfigNamespace = ConfigNamespace;\n\n/***/ }),\n/* 61 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.ConnectionSetNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(52);\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nconst CONNECTION_SET_NS_ID = _namespaces.NamespaceIds.connectionSet.id;\n\nclass ConnectionSet extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"connectionSet\", true);\n this.wsdlConnection = new _xfa_object.XFAObjectArray();\n this.xmlConnection = new _xfa_object.XFAObjectArray();\n this.xsdConnection = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass EffectiveInputPolicy extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"effectiveInputPolicy\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass EffectiveOutputPolicy extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"effectiveOutputPolicy\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Operation extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"operation\");\n this.id = attributes.id || \"\";\n this.input = attributes.input || \"\";\n this.name = attributes.name || \"\";\n this.output = attributes.output || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass RootElement extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"rootElement\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass SoapAction extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"soapAction\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass SoapAddress extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"soapAddress\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass Uri extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"uri\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass WsdlAddress extends _xfa_object.StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"wsdlAddress\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n}\n\nclass WsdlConnection extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"wsdlConnection\", true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.effectiveInputPolicy = null;\n this.effectiveOutputPolicy = null;\n this.operation = null;\n this.soapAction = null;\n this.soapAddress = null;\n this.wsdlAddress = null;\n }\n\n}\n\nclass XmlConnection extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"xmlConnection\", true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.uri = null;\n }\n\n}\n\nclass XsdConnection extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"xsdConnection\", true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.rootElement = null;\n this.uri = null;\n }\n\n}\n\nclass ConnectionSetNamespace {\n static [_namespaces.$buildXFAObject](name, attributes) {\n if (ConnectionSetNamespace.hasOwnProperty(name)) {\n return ConnectionSetNamespace[name](attributes);\n }\n\n return undefined;\n }\n\n static connectionSet(attrs) {\n return new ConnectionSet(attrs);\n }\n\n static effectiveInputPolicy(attrs) {\n return new EffectiveInputPolicy(attrs);\n }\n\n static effectiveOutputPolicy(attrs) {\n return new EffectiveOutputPolicy(attrs);\n }\n\n static operation(attrs) {\n return new Operation(attrs);\n }\n\n static rootElement(attrs) {\n return new RootElement(attrs);\n }\n\n static soapAction(attrs) {\n return new SoapAction(attrs);\n }\n\n static soapAddress(attrs) {\n return new SoapAddress(attrs);\n }\n\n static uri(attrs) {\n return new Uri(attrs);\n }\n\n static wsdlAddress(attrs) {\n return new WsdlAddress(attrs);\n }\n\n static wsdlConnection(attrs) {\n return new WsdlConnection(attrs);\n }\n\n static xmlConnection(attrs) {\n return new XmlConnection(attrs);\n }\n\n static xsdConnection(attrs) {\n return new XsdConnection(attrs);\n }\n\n}\n\nexports.ConnectionSetNamespace = ConnectionSetNamespace;\n\n/***/ }),\n/* 62 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.DatasetsNamespace = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nvar _namespaces = __w_pdfjs_require__(52);\n\nconst DATASETS_NS_ID = _namespaces.NamespaceIds.datasets.id;\n\nclass Data extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(DATASETS_NS_ID, \"data\", attributes);\n }\n\n}\n\nclass Datasets extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(DATASETS_NS_ID, \"datasets\", true);\n this.data = null;\n this.Signature = null;\n }\n\n [_xfa_object.$onChild](child) {\n const name = child[_xfa_object.$nodeName];\n\n if (name === \"data\" && child[_xfa_object.$namespaceId] === DATASETS_NS_ID || name === \"Signature\" && child[_xfa_object.$namespaceId] === _namespaces.NamespaceIds.signature.id) {\n this[name] = child;\n } else {\n child[_xfa_object.$global] = true;\n }\n\n this[_xfa_object.$appendChild](child);\n }\n\n}\n\nclass DatasetsNamespace {\n static [_namespaces.$buildXFAObject](name, attributes) {\n if (DatasetsNamespace.hasOwnProperty(name)) {\n return DatasetsNamespace[name](attributes);\n }\n\n return undefined;\n }\n\n static datasets(attributes) {\n return new Datasets(attributes);\n }\n\n static data(attributes) {\n return new Data(attributes);\n }\n\n}\n\nexports.DatasetsNamespace = DatasetsNamespace;\n\n/***/ }),\n/* 63 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.LocaleSetNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(52);\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nvar _utils = __w_pdfjs_require__(51);\n\nconst LOCALE_SET_NS_ID = _namespaces.NamespaceIds.localeSet.id;\n\nclass CalendarSymbols extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"calendarSymbols\", true);\n this.name = \"gregorian\";\n this.dayNames = new _xfa_object.XFAObjectArray(2);\n this.eraNames = null;\n this.meridiemNames = null;\n this.monthNames = new _xfa_object.XFAObjectArray(2);\n }\n\n}\n\nclass CurrencySymbol extends _xfa_object.StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"currencySymbol\");\n this.name = (0, _utils.getStringOption)(attributes.name, [\"symbol\", \"isoname\", \"decimal\"]);\n }\n\n}\n\nclass CurrencySymbols extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"currencySymbols\", true);\n this.currencySymbol = new _xfa_object.XFAObjectArray(3);\n }\n\n}\n\nclass DatePattern extends _xfa_object.StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"datePattern\");\n this.name = (0, _utils.getStringOption)(attributes.name, [\"full\", \"long\", \"med\", \"short\"]);\n }\n\n}\n\nclass DatePatterns extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"datePatterns\", true);\n this.datePattern = new _xfa_object.XFAObjectArray(4);\n }\n\n}\n\nclass DateTimeSymbols extends _xfa_object.ContentObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"dateTimeSymbols\");\n }\n\n}\n\nclass Day extends _xfa_object.StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"day\");\n }\n\n}\n\nclass DayNames extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"dayNames\", true);\n this.abbr = (0, _utils.getInteger)({\n data: attributes.abbr,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.day = new _xfa_object.XFAObjectArray(7);\n }\n\n}\n\nclass Era extends _xfa_object.StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"era\");\n }\n\n}\n\nclass EraNames extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"eraNames\", true);\n this.era = new _xfa_object.XFAObjectArray(2);\n }\n\n}\n\nclass Locale extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"locale\", true);\n this.desc = attributes.desc || \"\";\n this.name = \"isoname\";\n this.calendarSymbols = null;\n this.currencySymbols = null;\n this.datePatterns = null;\n this.dateTimeSymbols = null;\n this.numberPatterns = null;\n this.numberSymbols = null;\n this.timePatterns = null;\n this.typeFaces = null;\n }\n\n}\n\nclass LocaleSet extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"localeSet\", true);\n this.locale = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass Meridiem extends _xfa_object.StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"meridiem\");\n }\n\n}\n\nclass MeridiemNames extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"meridiemNames\", true);\n this.meridiem = new _xfa_object.XFAObjectArray(2);\n }\n\n}\n\nclass Month extends _xfa_object.StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"month\");\n }\n\n}\n\nclass MonthNames extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"monthNames\", true);\n this.abbr = (0, _utils.getInteger)({\n data: attributes.abbr,\n defaultValue: 0,\n validate: x => x === 1\n });\n this.month = new _xfa_object.XFAObjectArray(12);\n }\n\n}\n\nclass NumberPattern extends _xfa_object.StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberPattern\");\n this.name = (0, _utils.getStringOption)(attributes.name, [\"full\", \"long\", \"med\", \"short\"]);\n }\n\n}\n\nclass NumberPatterns extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberPatterns\", true);\n this.numberPattern = new _xfa_object.XFAObjectArray(4);\n }\n\n}\n\nclass NumberSymbol extends _xfa_object.StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberSymbol\");\n this.name = (0, _utils.getStringOption)(attributes.name, [\"decimal\", \"grouping\", \"percent\", \"minus\", \"zero\"]);\n }\n\n}\n\nclass NumberSymbols extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberSymbols\", true);\n this.numberSymbol = new _xfa_object.XFAObjectArray(5);\n }\n\n}\n\nclass TimePattern extends _xfa_object.StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"timePattern\");\n this.name = (0, _utils.getStringOption)(attributes.name, [\"full\", \"long\", \"med\", \"short\"]);\n }\n\n}\n\nclass TimePatterns extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"timePatterns\", true);\n this.timePattern = new _xfa_object.XFAObjectArray(4);\n }\n\n}\n\nclass TypeFace extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"typeFace\", true);\n this.name = attributes.name | \"\";\n }\n\n}\n\nclass TypeFaces extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"typeFaces\", true);\n this.typeFace = new _xfa_object.XFAObjectArray();\n }\n\n}\n\nclass LocaleSetNamespace {\n static [_namespaces.$buildXFAObject](name, attributes) {\n if (LocaleSetNamespace.hasOwnProperty(name)) {\n return LocaleSetNamespace[name](attributes);\n }\n\n return undefined;\n }\n\n static calendarSymbols(attrs) {\n return new CalendarSymbols(attrs);\n }\n\n static currencySymbol(attrs) {\n return new CurrencySymbol(attrs);\n }\n\n static currencySymbols(attrs) {\n return new CurrencySymbols(attrs);\n }\n\n static datePattern(attrs) {\n return new DatePattern(attrs);\n }\n\n static datePatterns(attrs) {\n return new DatePatterns(attrs);\n }\n\n static dateTimeSymbols(attrs) {\n return new DateTimeSymbols(attrs);\n }\n\n static day(attrs) {\n return new Day(attrs);\n }\n\n static dayNames(attrs) {\n return new DayNames(attrs);\n }\n\n static era(attrs) {\n return new Era(attrs);\n }\n\n static eraNames(attrs) {\n return new EraNames(attrs);\n }\n\n static locale(attrs) {\n return new Locale(attrs);\n }\n\n static localeSet(attrs) {\n return new LocaleSet(attrs);\n }\n\n static meridiem(attrs) {\n return new Meridiem(attrs);\n }\n\n static meridiemNames(attrs) {\n return new MeridiemNames(attrs);\n }\n\n static month(attrs) {\n return new Month(attrs);\n }\n\n static monthNames(attrs) {\n return new MonthNames(attrs);\n }\n\n static numberPattern(attrs) {\n return new NumberPattern(attrs);\n }\n\n static numberPatterns(attrs) {\n return new NumberPatterns(attrs);\n }\n\n static numberSymbol(attrs) {\n return new NumberSymbol(attrs);\n }\n\n static numberSymbols(attrs) {\n return new NumberSymbols(attrs);\n }\n\n static timePattern(attrs) {\n return new TimePattern(attrs);\n }\n\n static timePatterns(attrs) {\n return new TimePatterns(attrs);\n }\n\n static typeFace(attrs) {\n return new TypeFace(attrs);\n }\n\n static typeFaces(attrs) {\n return new TypeFaces(attrs);\n }\n\n}\n\nexports.LocaleSetNamespace = LocaleSetNamespace;\n\n/***/ }),\n/* 64 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SignatureNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(52);\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nconst SIGNATURE_NS_ID = _namespaces.NamespaceIds.signature.id;\n\nclass Signature extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(SIGNATURE_NS_ID, \"signature\", true);\n }\n\n}\n\nclass SignatureNamespace {\n static [_namespaces.$buildXFAObject](name, attributes) {\n if (SignatureNamespace.hasOwnProperty(name)) {\n return SignatureNamespace[name](attributes);\n }\n\n return undefined;\n }\n\n static signature(attributes) {\n return new Signature(attributes);\n }\n\n}\n\nexports.SignatureNamespace = SignatureNamespace;\n\n/***/ }),\n/* 65 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StylesheetNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(52);\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nconst STYLESHEET_NS_ID = _namespaces.NamespaceIds.stylesheet.id;\n\nclass Stylesheet extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(STYLESHEET_NS_ID, \"stylesheet\", true);\n }\n\n}\n\nclass StylesheetNamespace {\n static [_namespaces.$buildXFAObject](name, attributes) {\n if (StylesheetNamespace.hasOwnProperty(name)) {\n return StylesheetNamespace[name](attributes);\n }\n\n return undefined;\n }\n\n static stylesheet(attributes) {\n return new Stylesheet(attributes);\n }\n\n}\n\nexports.StylesheetNamespace = StylesheetNamespace;\n\n/***/ }),\n/* 66 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XdpNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(52);\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nconst XDP_NS_ID = _namespaces.NamespaceIds.xdp.id;\n\nclass Xdp extends _xfa_object.XFAObject {\n constructor(attributes) {\n super(XDP_NS_ID, \"xdp\", true);\n this.uuid = attributes.uuid || \"\";\n this.timeStamp = attributes.timeStamp || \"\";\n this.config = null;\n this.connectionSet = null;\n this.datasets = null;\n this.localeSet = null;\n this.stylesheet = new _xfa_object.XFAObjectArray();\n this.template = null;\n }\n\n [_xfa_object.$onChildCheck](child) {\n const ns = _namespaces.NamespaceIds[child[_xfa_object.$nodeName]];\n return ns && child[_xfa_object.$namespaceId] === ns.id;\n }\n\n}\n\nclass XdpNamespace {\n static [_namespaces.$buildXFAObject](name, attributes) {\n if (XdpNamespace.hasOwnProperty(name)) {\n return XdpNamespace[name](attributes);\n }\n\n return undefined;\n }\n\n static xdp(attributes) {\n return new Xdp(attributes);\n }\n\n}\n\nexports.XdpNamespace = XdpNamespace;\n\n/***/ }),\n/* 67 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XhtmlNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(52);\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nconst XHTML_NS_ID = _namespaces.NamespaceIds.xhtml.id;\nconst VALID_STYLES = new Set([\"color\", \"font\", \"font-family\", \"font-size\", \"font-stretch\", \"font-style\", \"font-weight\", \"margin\", \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"letter-spacing\", \"line-height\", \"orphans\", \"page-break-after\", \"page-break-before\", \"page-break-inside\", \"tab-interval\", \"tab-stop\", \"text-decoration\", \"text-indent\", \"vertical-align\", \"widows\", \"kerning-mode\", \"xfa-font-horizontal-scale\", \"xfa-font-vertical-scale\", \"xfa-tab-stops\"]);\n\nfunction checkStyle(style) {\n if (!style) {\n return \"\";\n }\n\n return style.trim().split(/\\s*;\\s*/).filter(s => !!s).map(s => s.split(/\\s*:\\s*/, 2)).filter(([key]) => VALID_STYLES.has(key)).map(kv => kv.join(\":\")).join(\";\");\n}\n\nclass A extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(XHTML_NS_ID, \"a\");\n this.href = attributes.href || \"\";\n this.style = checkStyle(attributes.style);\n }\n\n}\n\nclass B extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(XHTML_NS_ID, \"b\");\n this.style = checkStyle(attributes.style);\n }\n\n}\n\nclass Body extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(XHTML_NS_ID, \"body\");\n this.style = checkStyle(attributes.style);\n }\n\n}\n\nclass Br extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(XHTML_NS_ID, \"br\");\n this.style = checkStyle(attributes.style);\n }\n\n [_xfa_object.$text]() {\n return \"\\n\";\n }\n\n}\n\nclass Html extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(XHTML_NS_ID, \"html\");\n this.style = checkStyle(attributes.style);\n }\n\n}\n\nclass I extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(XHTML_NS_ID, \"i\");\n this.style = checkStyle(attributes.style);\n }\n\n}\n\nclass Li extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(XHTML_NS_ID, \"li\");\n this.style = checkStyle(attributes.style);\n }\n\n}\n\nclass Ol extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(XHTML_NS_ID, \"ol\");\n this.style = checkStyle(attributes.style);\n }\n\n}\n\nclass P extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(XHTML_NS_ID, \"p\");\n this.style = checkStyle(attributes.style);\n }\n\n}\n\nclass Span extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(XHTML_NS_ID, \"span\");\n this.style = checkStyle(attributes.style);\n }\n\n}\n\nclass Sub extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(XHTML_NS_ID, \"sub\");\n this.style = checkStyle(attributes.style);\n }\n\n}\n\nclass Sup extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(XHTML_NS_ID, \"sup\");\n this.style = checkStyle(attributes.style);\n }\n\n}\n\nclass Ul extends _xfa_object.XmlObject {\n constructor(attributes) {\n super(XHTML_NS_ID, \"ul\");\n this.style = checkStyle(attributes.style);\n }\n\n}\n\nclass XhtmlNamespace {\n static [_namespaces.$buildXFAObject](name, attributes) {\n if (XhtmlNamespace.hasOwnProperty(name)) {\n return XhtmlNamespace[name](attributes);\n }\n\n return undefined;\n }\n\n static a(attributes) {\n return new A(attributes);\n }\n\n static b(attributes) {\n return new B(attributes);\n }\n\n static body(attributes) {\n return new Body(attributes);\n }\n\n static br(attributes) {\n return new Br(attributes);\n }\n\n static html(attributes) {\n return new Html(attributes);\n }\n\n static i(attributes) {\n return new I(attributes);\n }\n\n static li(attributes) {\n return new Li(attributes);\n }\n\n static ol(attributes) {\n return new Ol(attributes);\n }\n\n static p(attributes) {\n return new P(attributes);\n }\n\n static span(attributes) {\n return new Span(attributes);\n }\n\n static sub(attributes) {\n return new Sub(attributes);\n }\n\n static sup(attributes) {\n return new Sup(attributes);\n }\n\n static ul(attributes) {\n return new Ul(attributes);\n }\n\n}\n\nexports.XhtmlNamespace = XhtmlNamespace;\n\n/***/ }),\n/* 68 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.UnknownNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(52);\n\nvar _xfa_object = __w_pdfjs_require__(50);\n\nclass UnknownNamespace {\n constructor(nsId) {\n this.namespaceId = nsId;\n }\n\n [_namespaces.$buildXFAObject](name, attributes) {\n return new _xfa_object.XmlObject(this.namespaceId, name, attributes);\n }\n\n}\n\nexports.UnknownNamespace = UnknownNamespace;\n\n/***/ }),\n/* 69 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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/* 70 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\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/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__w_pdfjs_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__w_pdfjs_require__.o(definition, key) && !__w_pdfjs_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__w_pdfjs_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__w_pdfjs_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\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.8.337';\nconst pdfjsBuild = 'a1c9e01ed';\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=pdf.worker.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(57);\n"],"sourceRoot":""}