{"version":3,"sources":["webpack:///./node_modules/pdfjs-dist/build/pdf.worker.js"],"names":["root","factory","module","exports","this","modules","installedModules","__w_pdfjs_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","pdfjsCoreWorker","WorkerMessageHandler","WorkerTask","undefined","_typeof","iterator","obj","constructor","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","next","done","push","length","err","Array","isArray","TypeError","_util","_pdf_manager","_is_node","_is_node2","_interopRequireDefault","_message_handler","_primitives","default","terminated","_capability","createPromiseCapability","promise","finish","resolve","terminate","ensureNotTerminated","Error","PDFWorkerStream","msgHandler","_msgHandler","_contentLength","_fullRequestReader","_rangeRequestReaders","PDFWorkerStreamReader","_this","_isRangeSupported","_isStreamingSupported","readableStream","sendWithStream","_reader","getReader","_headersReady","sendWithPromise","then","data","isStreamingSupported","isRangeSupported","contentLength","PDFWorkerStreamRangeReader","begin","end","onProgress","getFullReader","assert","getRangeReader","reader","cancelAllRequests","reason","cancel","readers","slice","forEach","read","_ref","buffer","_ref2","setup","handler","port","testMessageProcessed","on","Uint8Array","supportTransfers","postMessageTransfers","xhr","XMLHttpRequest","responseExists","responseType","e","send","supportTypedArray","setVerbosityLevel","verbosity","createDocumentHandler","docParams","pdfManager","cancelXHRs","WorkerTasks","apiVersion","workerVersion","docId","docBaseUrl","workerHandlerName","MessageHandler","startWorkerTask","task","finishWorkerTask","indexOf","splice","loadDocument","recoveryMode","loadDocumentCapability","parseSuccess","Promise","all","ensureDoc","_ref3","_ref4","numPages","fingerprint","parseFailure","reject","getPdfManager","evaluatorOptions","pdfManagerCapability","source","LocalPdfManager","password","ex","pdfStream","cachedChunks","fullRequest","headersReady","disableAutoFetch","NetworkPdfManager","url","rangeChunkSize","sendProgressiveData","catch","loaded","flushChunks","pdfFile","arraysToBytes","warn","readPromise","readChunk","chunk","arrayByteLength","total","Math","max","setupDoc","onSuccess","doc","pdfInfo","onFailure","PasswordException","code","updatePassword","pdfManagerReady","boundException","InvalidPDFException","MissingPDFException","UnexpectedResponseException","UnknownErrorException","message","toString","XRefParseException","requestLoadedStream","onLoadedStream","forceDataSchema","disableCreateObjectURL","maxImageSize","disableFontFace","nativeImageDecoderSupport","ignoreErrors","isEvalSupported","newPdfManager","stream","bytes","byteLength","getPage","pageIndex","page","ensure","_ref5","_ref6","rotate","ref","userUnit","view","Ref","num","gen","catalog","pdfDocument","getPageIndex","ensureCatalog","id","xref","stats","_ref7","intent","getAnnotationsData","pageNum","start","Date","now","getOperatorList","renderInteractiveForms","operatorList","info","totalLength","featureId","UNSUPPORTED_FEATURES","unknown","wrappedException","minimumStackMessage","stack","error","sink","onPull","desiredSize","onCancel","extractTextContent","normalizeWhitespace","combineTextItems","close","cleanup","waitOn","finished","destroy","initializeFromPort","isMessagePort","maybePort","postMessage","window","self","unreachable","utf8StringToString","stringToUTF8String","stringToPDFString","stringToBytes","string32","shadow","URL","ReadableStream","removeNullCharacters","readUint32","readUint16","readInt8","log2","isLittleEndian","createValidAbsoluteUrl","isSameOrigin","isSpace","isString","isNum","isEmptyObj","isBool","isArrayBuffer","getVerbosityLevel","getLookupTableFactory","getInheritableProperty","deprecated","createObjectURL","bytesToString","FormatError","toRomanNumerals","Util","TextRenderingMode","StreamType","PermissionFlag","PasswordResponses","NativeImageDecoding","MissingDataException","AbortException","CMapCompressionType","ImageKind","FontType","AnnotationType","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","VerbosityLevel","OPS","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","_streams_polyfill","_url_polyfill","NONE","DECODE","DISPLAY","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","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RL","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","INFOS","BINARY","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","forms","javaScript","smask","shadingPattern","font","NEED_PASSWORD","INCORRECT_PASSWORD","level","Number","isInteger","msg","console","log","details","cond","baseUrl","otherUrl","base","origin","other","_isValidProtocol","protocol","absoluteUrl","prop","configurable","writable","initializer","lookup","status","NullCharactersRegExp","str","replace","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","min","subarray","join","charCodeAt","item","itemLength","resultLength","ii","pos","set","x","ceil","offset","buffer8","view32","Uint32Array","Function","dict","_ref$getArray","getArray","_ref$stopWhenFound","stopWhenFound","LOOP_LIMIT","loopCount","values","rgbBuf","makeCssRgb","g","b","m1","m2","applyTransform","xt","yt","applyInverseTransform","getAxialAlignedBoundingBox","p1","p2","p3","p4","inverseTransform","apply3dTransform","v","singularValueDecompose2dScale","transpose","a","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","compare","orderedX","sort","orderedY","result","ROMAN_NUMBER_MAP","number","lowerCase","arguments","romanBuf","romanStr","toLowerCase","PDFStringTranslateTable","charAt","decodeURIComponent","escape","unescape","encodeURIComponent","ch","capability","digits","contentType","blob","Blob","type","b1","b2","b3","d1","d2","d3","d4","globalScope","_pdfjsCompatibilityChecked","isNodeJS","hasDOM","document","btoa","chars","Buffer","from","atob","input","scripts","getElementsByTagName","Element","remove","parentNode","removeChild","div","createElement","classList","toggle","originalDOMTokenListToggle","DOMTokenList","token","force","includes","assign","isNaN","WeakMap","codePointAt","fromCodePoint","global","process","$export","context","INCLUDES","P","F","searchString","core","hide","redefine","ctx","PROTOTYPE","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","target","expProto","U","W","R","__g","version","__e","dP","createDesc","f","anObject","IE8_DOM_DEFINE","toPrimitive","O","Attributes","isObject","it","exec","is","fn","val","valueOf","bitmap","has","SRC","TO_STRING","$toString","TPL","split","inspectSource","safe","isFunction","px","random","concat","aFunction","that","isRegExp","defined","NAME","cof","MATCH","store","uid","_Symbol","USE_SYMBOL","$exports","SHARED","copyright","KEY","re","$includes","el","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","index","IObject","propertyIsEnumerable","toInteger","floor","UNSCOPABLES","ArrayProto","getKeys","gOPS","pIE","toObject","$assign","A","K","k","keys","T","aLen","getSymbols","isEnum","j","$keys","enumBugKeys","arrayIndexOf","IE_PROTO","names","shared","getOwnPropertySymbols","LN2","isFinite","classof","test","TAG","ARG","tryGet","callee","$at","iterated","_t","point","LIBRARY","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","Constructor","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","descriptor","dPs","Empty","_createDict","iframeDocument","iframe","lt","gt","style","display","appendChild","src","contentWindow","open","write","Properties","defineProperties","documentElement","def","tag","stat","ObjectProto","$iterators","wks","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","addToUnscopables","step","_k","Arguments","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","anInstance","forOf","speciesConstructor","microtask","newPromiseCapabilityModule","perform","userAgent","promiseResolve","PROMISE","versions","v8","$Promise","isNode","empty","newPromiseCapability","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","chain","_c","_v","ok","run","reaction","exited","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","_a","onrejectionhandled","$reject","_w","$resolve","wrapper","executor","onFulfilled","onRejected","C","$$reject","iter","iterable","remaining","$index","alreadyCalled","race","forbiddenField","isArrayIter","getIterFn","BREAK","RETURN","_exports","iterFn","ret","getIteratorMethod","SPECIES","D","defer","channel","invoke","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","listener","event","args","nextTick","port2","port1","onmessage","addEventListener","importScripts","setTimeout","clear","un","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","last","flush","parent","navigator","standalone","node","createTextNode","observe","characterData","PromiseCapability","$$resolve","promiseCapability","DESCRIPTORS","SAFE_CLOSING","riter","skipClosing","onFinally","callbackfn","InternalMap","each","meta","weak","fails","validate","WEAK_MAP","getWeak","isExtensible","uncaughtFrozenStore","ufstore","tmp","$WeakMap","freeze","getConstructor","NEED","method","_f","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","res","original","arg","META","setDesc","FREEZE","preventExtensions","setMeta","w","fastKey","onFreeze","redefineAll","createArrayMethod","$has","arrayFind","arrayFindIndex","_l","UncaughtFrozenStore","findUncaughtFrozen","entry","ADDER","$iterDetect","inheritIfRequired","common","IS_WEAK","fixMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","setPrototypeOf","check","buggy","__proto__","gOPD","getOwnPropertyDescriptor","COLLECTION","of","mapping","cb","mapFn","nextItem","$fromCodePoint","RangeError","$fails","wksExt","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$DP","gOPN","$Symbol","$JSON","JSON","_stringify","stringify","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","$defineProperty","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","getOwnPropertyNames","replacer","$replacer","symbols","windowNames","getWindowNames","hiddenKeys","$values","isEntries","isReadableStreamSupported","controller","_typeof2","_require","IsPropertyKey","argument","Call","V","typeIsObject","createDataProperty","createArrayFromList","elements","ArrayBufferCopy","dest","destOffset","srcOffset","CreateIterResultObject","IsFiniteNonNegativeNumber","Infinity","InvokeOrNoop","PromiseInvokeOrNoop","returnValueE","PromiseInvokeOrPerformFallback","argsF","methodE","TransferArrayBuffer","ValidateAndNormalizeHighWaterMark","highWaterMark","ValidateAndNormalizeQueuingStrategy","size","rethrowAssertionErrorRejection","AssertionError","_createClass","props","protoProps","staticProps","_classCallCheck","_require2","_require3","DequeueValue","EnqueueValueWithSize","PeekQueueValue","ResetQueue","WritableStream","underlyingSink","_ref$highWaterMark","_state","_storedError","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","WritableStreamDefaultController","__startSteps","IsWritableStream","streamBrandCheckException","IsWritableStreamLocked","WritableStreamAbort","AcquireWritableStreamDefaultWriter","WritableStreamDefaultWriter","state","wasAlreadyErroring","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","WritableStreamAddWriteRequest","writeRequest","WritableStreamDealWithRejection","WritableStreamFinishErroring","writer","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","_started","__errorSteps","storedError","abortRequest","WritableStreamRejectCloseAndClosedPromiseIfNeeded","__abortSteps","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamFinishInFlightClose","defaultWriterClosedPromiseResolve","WritableStreamFinishInFlightCloseWithError","WritableStreamCloseQueuedOrInFlight","WritableStreamMarkCloseRequestInFlight","WritableStreamMarkFirstWriteRequestInFlight","shift","defaultWriterClosedPromiseReject","_closedPromise","WritableStreamUpdateBackpressure","backpressure","defaultWriterReadyPromiseReset","defaultWriterReadyPromiseResolve","WritableStreamDefaultControllerError","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","_ownerWritableStream","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","_readyPromise","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterGetDesiredSize","closeRequest","WritableStreamDefaultControllerClose","WritableStreamDefaultWriterEnsureClosedPromiseRejected","_closedPromiseState","defaultWriterClosedPromiseResetToRejected","_readyPromiseState","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamDefaultControllerWrite","_controlledWritableStream","_underlyingSink","_queue","_queueTotalSize","normalizedStrategy","_strategySize","_strategyHWM","WritableStreamDefaultControllerGetBackpressure","IsWritableStreamDefaultController","startResult","WritableStreamDefaultControllerAdvanceQueueIfNeeded","strategySize","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","writeRecord","enqueueE","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","sinkClosePromise","sinkWritePromise","_closedPromise_resolve","_closedPromise_reject","_readyPromise_resolve","_readyPromise_reject","container","pair","_require4","_require5","underlyingSource","_disturbed","_readableStreamController","typeString","ReadableByteStreamController","ReadableStreamDefaultController","IsReadableStream","IsReadableStreamLocked","ReadableStreamCancel","AcquireReadableStreamDefaultReader","AcquireReadableStreamBYOBReader","options","readable","pipeTo","ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue","preventClose","preventAbort","preventCancel","Boolean","shuttingDown","currentWrite","pipeLoop","ReadableStreamDefaultReaderRead","isOrBecomesErrored","shutdownWithAction","shutdown","isOrBecomesClosed","destClosed","waitForWritesToFinish","oldCurrentWrite","action","originalIsError","originalError","doTheRest","finalize","newError","isError","ReadableStreamReaderGenericRelease","branches","ReadableStreamTee","ReadableStreamBYOBReader","ReadableStreamDefaultReader","IsReadableStreamDisturbed","cloneForBranch2","teeState","closedOrErrored","canceled1","canceled2","reason1","reason2","pull","create_ReadableStreamTeePullFunction","_teeState","_cloneForBranch2","cancel1","create_ReadableStreamTeeBranch1CancelFunction","_stream","cancel2","create_ReadableStreamTeeBranch2CancelFunction","underlyingSource1","branch1Stream","underlyingSource2","branch2Stream","_branch1","_branch2","ReadableStreamDefaultControllerError","branch1","branch2","ReadableStreamDefaultControllerClose","value1","value2","ReadableStreamDefaultControllerEnqueue","compositeReason","cancelResult","ReadableStreamAddReadIntoRequest","IsReadableStreamBYOBReader","readIntoRequest","_readIntoRequests","ReadableStreamAddReadRequest","IsReadableStreamDefaultReader","readRequest","_readRequests","ReadableStreamClose","sourceCancelPromise","__cancelSteps","defaultReaderClosedPromiseResolve","ReadableStreamError","defaultReaderClosedPromiseReject","ReadableStreamFulfillReadIntoRequest","ReadableStreamFulfillReadRequest","ReadableStreamGetNumReadIntoRequests","ReadableStreamGetNumReadRequests","ReadableStreamHasBYOBReader","ReadableStreamHasDefaultReader","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamReaderGenericInitialize","defaultReaderBrandCheckException","_ownerReadableStream","readerLockException","ReadableStreamReaderGenericCancel","IsReadableByteStreamController","byobReaderBrandCheckException","ArrayBuffer","isView","ReadableStreamBYOBReaderRead","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","defaultReaderClosedPromiseResetToRejected","ReadableByteStreamControllerPullInto","__pullSteps","_controlledReadableStream","_underlyingSource","_closeRequested","_pullAgain","_pulling","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerErrorIfNeeded","IsReadableStreamDefaultController","defaultControllerBrandCheckException","pendingPromise","shouldPull","ReadableStreamDefaultControllerShouldCallPull","pullPromise","ReadableStreamBYOBRequest","_associatedReadableByteStreamController","_view","bytesWritten","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","ReadableByteStreamControllerRespond","ReadableByteStreamControllerRespondWithNewView","underlyingByteSource","_underlyingByteSource","ReadableByteStreamControllerClearPendingPullIntos","autoAllocateChunkSize","_autoAllocateChunkSize","_pendingPullIntos","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerError","byteStreamControllerBrandCheckException","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","firstDescriptor","bytesFilled","ReadableByteStreamControllerHandleQueueDrain","byteOffset","viewE","bufferE","pullIntoDescriptor","elementSize","ctor","readerType","_byobRequest","ReadableByteStreamControllerGetDesiredSize","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableByteStreamControllerCommitPullIntoDescriptor","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","DataView","BYTES_PER_ELEMENT","emptyView","ReadableByteStreamControllerRespondInClosedState","ReadableByteStreamControllerRespondInReadableState","remainderSize","remainder","ReadableByteStreamControllerRespondInternal","firstPendingPullInto","transferredBuffer","transferredView","transformStream","writableStream","TransformStream","TransformStreamCloseReadable","_errored","_readableClosed","TransformStreamCloseReadableInternal","TransformStreamEnqueueToReadable","_readableController","TransformStreamErrorIfNeeded","maybeBackpressure","TransformStreamSetBackpressure","TransformStreamError","TransformStreamErrorInternal","_writableDone","_writableController","TransformStreamReadableReadyPromise","_backpressureChangePromise","_backpressureChangePromise_resolve","resolution","TransformStreamDefaultTransform","transformStreamController","_controlledTransformStream","TransformStreamTransform","_transforming","transformer","_transformer","_transformStreamController","transformPromise","IsTransformStreamDefaultController","IsTransformStream","TransformStreamSink","startPromise","_transformStream","_startPromise","flushPromise","TransformStreamSource","TransformStreamDefaultController","readableController","readableStrategy","writableStrategy","startPromise_resolve","_readable","_writable","isURLSupported","u","pathname","href","PolyfillURL","OriginalURL","revokeObjectURL","relative","relativePathDotMapping","isRelativeScheme","scheme","invalid","_isInvalid","IDNAToASCII","h","percentEscape","unicode","percentEscapeQuery","EOF","ALPHA","ALPHANUMERIC","parse","stateOverride","errors","cursor","seenAt","seenBracket","loop","_scheme","_isRelative","_query","_fragment","_schemeData","_host","_port","_path","_username","_password","nextC","nextNextC","pop","cp","tempC","temp","parseInt","JURL","_url","authority","host","_","_regenerator","_regenerator2","_chunked_stream","_document","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","_asyncToGenerator","BasePdfManager","mark","_callee","_context","prev","stop","_x","_x2","_x3","_docId","_docBaseUrl","_BasePdfManager","Stream","PDFDocument","_loadedStreamPromise","_callee2","_context2","abrupt","_x4","_x5","_x6","_BasePdfManager2","pdfNetworkStream","_this2","streamManager","ChunkedStreamManager","getStream","_callee3","_context3","t0","requestRange","_x7","_x8","_x9","requestAllChunks","onReceiveData","abort","hadRuntime","regeneratorRuntime","oldRuntime","Op","hasOwn","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","awrap","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","reverse","Context","reset","skipTempReset","sent","_sent","delegate","tryEntries","resetTryEntry","rootEntry","rootRecord","completion","rval","dispatchException","exception","handle","loc","caught","record","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","finallyEntry","complete","afterLoc","thrown","delegateYield","resultName","nextLoc","protoGenerator","generator","_invoke","makeInvokeMethod","tryCatch","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegateResult","maybeInvokeDelegate","return","pushTryEntry","locs","iteratorMethod","webpackPolyfill","deprecate","paths","children","ChunkedStream","manager","loadedChunks","numChunksLoaded","numChunks","progressiveDataLength","lastSuccessfulEnsureByteChunk","getMissingChunks","chunks","getBaseStreams","allChunksLoaded","curChunk","beginChunk","endChunk","onReceiveProgressiveData","position","ensureByte","ensureRange","nextEmptyChunk","hasChunk","getByte","getUint16","b0","getInt32","getBytes","forceClamped","strEnd","_subarray","Uint8ClampedArray","peekByte","peekedByte","peekBytes","getByteRange","skip","moveStart","makeSubStream","ChunkedStreamSubstream","missingChunks","subStream","currRequestId","chunksNeededByRequest","requestsByChunk","promisesByRequest","aborted","_loadedStreamCapability","sendRequest","rangeReader","chunkData","_requestChunks","requestId","chunksNeeded","chunksToRequest","groupedChunksToRequest","groupChunks","groupedChunk","getBeginChunk","getEndChunk","requestRanges","ranges","groupedChunks","prevChunk","bytesLoaded","isProgressive","loadedRequests","requestIds","lastChunk","onError","Page","_obj","_annotation","_crypto","_parser","_operator_list","_evaluator","_function","DEFAULT_USER_UNIT","LETTER_SIZE_MEDIABOX","isAnnotationRenderable","annotation","viewable","printable","pageDict","fontCache","builtInCMapCache","pdfFunctionFactory","resourcesPromise","uniquePrefix","idCounters","idFactory","createObjId","_getInheritableProperty","isDict","Dict","merge","mediaBox","cropBox","intersection","getContentStream","content","streams","fetchIfRef","StreamsSequenceStream","isStream","NullStream","loadResources","objectLoader","ObjectLoader","resources","load","contentStreamPromise","partialEvaluator","PartialEvaluator","dataPromises","pageListPromise","contentStream","opList","OperatorList","transparency","hasBlendModes","_parsedAnnotations","pageOpList","annotations","opListPromises","opLists","addOp","addOpList","_this3","_ref8","_ref9","getTextContent","annotationsData","_this4","parsedAnnotations","annotationRefs","annotationPromises","AnnotationFactory","filter","FINGERPRINT_FIRST_BYTES","EMPTY_FINGERPRINT","XRef","PDFFunctionFactory","_pagePromises","find","needle","limit","backwards","lastIndexOf","DocumentInfoValidators","Title","Author","Subject","Keywords","Creator","Producer","CreationDate","ModDate","Trapped","isName","catDict","pdfFormatVersion","acroForm","xfa","fields","linearization","Linearization","startXRef","found","checkHeader","MAX_VERSION_LENGTH","substring","parseStartXRef","setStartXRef","Catalog","docInfo","PDFFormatVersion","IsLinearized","IsAcroFormPresent","IsXFAPresent","infoDict","trailer","hash","fileID","idArray","calculateMD5","hex","_getLinearizationPage","pageFirst","objectNumberFirst","fetchAsync","pageKidsCountCache","put","getPageDict","_this5","_ref10","_ref11","FileSpec","_colorspace","fetchDestination","getCatalogObj","RefSetCache","Map","getRaw","isRef","items","processed","RefSet","blackColor","outlineDict","parseDestDictionary","destDict","resultObj","title","flags","color","rgbColor","ColorSpace","singletons","rgb","getRgb","outlineItem","unsafeUrl","newWindow","count","bold","italic","encrypt","pow","permissions","destinationId","_readDests","NameTree","pageLabels","prefix","numberTree","NumberTree","nums","getAll","currentLabel","currentIndex","labelDict","st","LIMIT","A_UPPER_CASE","A_LOWER_CASE","baseCharCode","letterIndex","character","charBuf","jj","promises","translatedFonts","translated","nodesToVisit","currentPageIndex","_loop","currentNode","objId","kids","_ret","pageRef","pagesBeforeRef","kidRef","parentRef","isRefsEqual","getAsync","kidPromises","kid","_args","streamRef","suppressEncryption","encryptMetadata","fetch","metadata","subtype","pagesObj","_readDocumentOutline","_readPermissions","toplevelPagesDict","dests","_readPageLabels","pageMode","attachments","nameTree","fs","serializable","appendIfJavaScriptDict","jsDict","js","openActionDict","actionType","params","addDefaultProtocolToUrl","tryConvertUrlEncoding","actionName","urlDict","remoteDest","namedAction","jsAction","URL_OPEN_METHODS","regex","RegExp","jsUrl","xrefstms","cache","streamTypes","fontTypes","startXRefQueue","trailerDict","indexObjects","readXRef","assignXref","ids","fileId","CipherTransformFactory","processXRefTable","parser","tableState","entryNum","streamPos","lexer","parserBuf1","buf1","parserBuf2","buf2","readXRefTable","isCmd","getObj","firstEntryNum","entryCount","free","uncompressed","processXRefStream","streamParameters","byteWidths","range","streamState","entryRanges","readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","TAB","LF","CR","SPACE","PERCENT","LT","readToken","skipUntil","what","dataLength","skipped","objRegExp","endobjRegExp","nestedObjRegExp","CHECK_CONTENT_LENGTH","trailerBytes","startxrefBytes","objBytes","xrefBytes","trailers","xrefStms","startPos","endPos","checkPos","tokenStr","objToken","xrefTagOffset","Parser","Lexer","rootDict","startXRefParsedCache","topDict","getEntry","xrefEntry","cacheEntry","fetchUncompressed","fetchCompressed","obj1","obj2","obj3","cmd","createCipherTransform","tableOffset","allowStreams","fetchIfRefAsync","NameOrNumberTree","_type","_kids","_i2","_ii","kidsOrEntries","MAX_LEVELS","_kids2","limits","_r","_m","currentKey","_NameOrNumberTree","_NameOrNumberTree2","description","contentAvailable","pickPlatformItem","_filename","filename","contentRef","fileObj","mayHaveChildren","addChildren","dictKeys","rawValue","_i3","_ii2","refSet","_walk","nodesToRevisit","pendingRequests","_currentNode","baseStreams","foundMissingData","_i4","_ii3","Name","nameCache","nameValue","Cmd","cmdCache","cmdValue","nonSerializable","_map","__nonSerializable__","newXref","key1","key2","key3","callback","dictArray","mergedDict","keyName","putAlias","aliasRef","thisArg","isEOF","v1","v2","_ccitt_stream","_jbig2_stream","_jpeg_stream","_jpx_stream","MAX_LENGTH_TO_CACHE","MAX_ADLER32_LENGTH","computeAdler32","bytesLength","imageCache","refill","tryShift","cipherTransform","makeInlineImage","array","makeStream","decryptString","findDefaultInlineStreamEnd","I","NUL","maybeEIPos","followingBytes","findDCTDecodeInlineStreamEnd","markerLength","foundEOI","inlineStreamSkipEI","findASCII85DecodeInlineStreamEnd","TILDE","GT","findASCIIHexDecodeInlineStreamEnd","dictLength","beginInlineImagePos","filterName","filterZero","imageStream","cacheKey","imageBytes","initialStreamPos","dictBytes","createStream","_findStreamLength","signature","SCAN_BLOCK_LENGTH","signatureLength","scanBytes","scanLength","skipToNextLine","nextChar","ENDSTREAM_SIGNATURE","actualLength","MAX_TRUNCATION","TRUNCATED_SIGNATURE","maybeLength","lastByte","makeFilter","filterArray","paramsArray","xrefStreamStats","PredictorStream","FlateStream","earlyChange","LZWStream","JpegStream","JpxStream","Ascii85Stream","AsciiHexStream","CCITTFaxStream","RunLengthStream","Jbig2Stream","knownCommands","specialChars","toHexDigit","currentChar","peekChar","getNumber","eNotation","divideBy","sign","baseValue","powerValue","powerValueSign","currentDigit","getString","numParen","charBuffered","getName","previousCh","x2","getHexString","firstDigit","secondDigit","isFirstHex","comment","knownCommandFound","possibleCommand","getInt","allowZeroValue","linDict","getHints","hintsLength","hints","endFirst","mainXRefEntriesOffset","StringStream","DecodeStream","DecryptStream","_toConsumableArray","arr2","arrayBuffer","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","hdr","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","bitsLength","bitsOffset","codeLengths","repeatLength","code1","dist","blockLen","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","TILDA_CHAR","Z_LOWER_CHAR","UPSTREAM_BLOCK_SIZE","maxDecodeLength","digit","repeatHeader","cachedData","bitsCached","maxLzwDictionarySize","lzwState","codeLength","nextCode","dictionaryValues","dictionaryLengths","Uint16Array","dictionaryPrevCodes","currentSequence","currentSequenceLength","readBits","lastCode","q","blockSize","estimatedDecodedSize","decodedSizeDelta","prevCode","decodedLength","currentBufferLength","hasPrev","_ccitt","ccittFaxDecoder","CCITTFaxDecoder","EndOfLine","EncodedByteAlign","Columns","Rows","EndOfBlock","BlackIs1","readNextChar","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","encoding","eoline","byteAlign","rows","eoblock","black","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","_lookBits","_eatBits","refPos","blackPixels","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","_findTableCode","limitValue","_jbig","jbig2Image","Jbig2Image","globalsStream","globals","parseChunks","_arithmetic_decoder","Jbig2Error","ContextCache","DecodingContext","decodeInteger","contextCache","procedure","decoder","contexts","getContexts","bit","readBit","decodeIAID","Int8Array","ArithmeticDecoder","SegmentTypes","CodingTemplates","y","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","width","height","decodingContext","contextLabel","pixel","row1","row2","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","at","Reader","decodeMMRBitmap","useskip","template","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","i0","j0","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","decode","currentWidth","totalWidth","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","symbol","bitmapSize","tableBitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","s2","t2","symbolRow","offsetT","offsetS","maxWidth","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patterns","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","header","segments","segment","randomAccess","processSegment","visitor","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","SimpleSegmentVisitor","parseJbig2","numberOfPages","_visitor$currentPageI","currentPageInfo","bitPacked","imgData","mask","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","line","isLeaf","HuffmanTable","lines","prefixCodesDone","assignPrefixCodes","rootNode","buildTree","decodeTablesSegment","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onPatternDictionary","onImmediateHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","decodeNode","htOffset","linesLength","prefixLengthMax","histogram","currentLength","firstCode","currentCode","currentTemp","standardTablesCache","currentByte","getCustomHuffmanTable","numberOfSymbols","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","lookForEOFLimit","numBits","_parseJbig","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","getIR","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","_ref$decodeTransform","_ref$colorTransform","_decodeTransform","_colorTransform","buildHuffmanTable","getBlockBufferOffset","component","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","decodeHuffman","tree","receive","receiveAndExtend","decodeBaseline","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACNextValue","successiveACState","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockRow","blockCol","decodeBlock","decodeFn","componentsLength","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","marker","quantizeAndInverse","blockBufferOffset","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","qt","quantizationTable","buildComponentData","computationBuffer","Int16Array","currentPos","peekUint16","maxPos","newPos","currentMarker","newMarker","_ref2$dnlScanLines","dnlScanLines","readDataBlock","endOffset","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","precision","sofScanLines","componentIds","componentId","componentsCount","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","nextFileMarker","output","scaleX","scaleY","numComponents","_getLinearizedBlockData","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","_convertYccToRgb","Y","Cb","Cr","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","scale","_ref3$forceRGB","_ref3$isSourcePDF","rgbData","grayColor","_isColorConversionNeeded","_jpx","jpxImage","JpxImage","tileCount","tiles","tileComponents","tileWidth","tileHeight","tileLeft","tileTop","top","srcPosition","dataPosition","imgRowSize","tileRowSize","JpxError","SubbandsGainLog2","failOnCorruptedImage","calculateComponentDimensions","siz","x0","XOsiz","XRsiz","x1","Xsiz","y0","YOsiz","YRsiz","y1","Ysiz","calculateTileGrids","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","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblock","precinctNumber","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","currentTile","layersCount","codingStyleDefaultParameters","maxDecompositionLevelsCount","decompositionLevelsCount","nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","py","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","posX","minWidth","posY","minHeight","startPrecinctRowIndex","MAX_VALUE","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","widthCurrentResolution","heightCurrentResolution","buildPackets","blocksDimensions","bscale","resolutionSubbands","progressionOrder","packetsIterator","parseTilePackets","bufferSize","skipNextBit","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","sopMarkerUsed","COD","ephMarkerUsed","valueReady","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","inclusionTree","zeroBitPlanesTree","InclusionTree","TagTree","incrementValue","nextLevel","included","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","segmentationSymbolUsed","right","bottom","blockWidth","blockHeight","bitModel","currentCodingpassType","BitModel","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","nb","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","interleave","levelOffset","transformTile","quantizationParameters","spqcds","SPqcds","scalarExpounded","guardBits","reversibleTransformation","ReversibleTransform","IrreversibleTransform","subbandCoefficients","Float32Array","mu","epsilon","gainLog2","calculate","transformComponents","resultImages","transformedTiles","y2","tile0","multipleComponentTransform","fourComponents","y0items","y1items","y2items","y3items","component0","alpha01","initializeTile","qcdOrQcc","QCC","QCD","COC","headerSize","lbox","tbox","jumpDataLength","colorspace","parseCodestream","headerType","parseImageProperties","newByte","oldByte","doNotRecover","sqcd","spqcdSize","mainHeader","isSigned","qcd","noQuantization","spqcd","cqcc","qcc","cod","scod","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","precinctsSize","unsupported","partIndex","partsCount","levelsLength","levels","currentLevel","defaultValue","stopValue","propagateValues","levelIndex","currentValue","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","decoded","horizontalContribution","indexNext","width4","index0","significance","iNext","oneRowDown","twoRowsDown","threeRowsDown","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","iterate","extend","j1","j2","hl_lh_hh","llWidth","llHeight","llItems","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","current","alpha","beta","gamma","K_","calculateSHA512","calculateSHA384","calculateSHA256","PDF20","PDF17","ARCFourCipher","AES256Cipher","AES128Cipher","keyLength","encryptBlock","tmp2","decryptBlock","h0","h1","h2","h3","paddedLength","padded","rotateArg","Word64","highInteger","lowInteger","high","low","and","word","xor","or","shiftRight","places","shiftLeft","rotateRight","not","add","lowAdd","highAdd","copyTo","rotr","maj","sigma","sigmaPrime","littleSigma","littleSigmaPrime","h4","h5","h6","h7","t1","mode384","tmp3","tmp1","NullCipher","AESBaseCipher","_inv_s","_mix","_mixCol","bufferPosition","cipherKey","_keySize","_cyclesOfRepetition","_j","_j2","_j3","s0","s1","s3","_j4","_j5","_j6","_j7","_j8","_j9","_k2","sourceLength","iv","plain","_decrypt","_key","outputLength","lastBlock","psLen","_j10","_decryptBlock2","cipher","_encrypt","_j11","_AESBaseCipher","_rcon","_expandKey","rcon","t3","t4","_AESBaseCipher2","compareByteArrays","array1","array2","checkOwnerPassword","ownerValidationSalt","userBytes","ownerPassword","hashData","checkUserPassword","userValidationSalt","userPassword","getOwnerKey","ownerKeySalt","ownerEncryption","getUserKey","userKeySalt","userEncryption","concatArrays","calculatePDF20Hash","arrayLength","k1","concatBytes","CipherTransform","stringCipherConstructor","streamCipherConstructor","StringCipherConstructor","StreamCipherConstructor","defaultPasswordBytes","createEncryptionKey20","revision","uBytes","perms","passwordLength","pdfAlgorithm","prepareKeyData","hashDataSize","keyLengthInBytes","checkData","encryptionKey","derivedKey","decodeUserPassword","identityName","algorithm","cfDict","streamCryptoName","handlerDict","passwordBytes","fileIdBytes","decodedPassword","cf","stmf","strf","eff","buildObjectKey","isAes","buildCipherConstructor","cfm","cryptFilter","cipherConstructor","resizeRgbImage","w1","w2","COMPONENTS","xRatio","yRatio","newIndex","oldIndex","xScaled","w1Scanline","numComps","getRgbItem","inputLength","originalWidth","originalHeight","actualHeight","bpc","comps","numComponentColors","needsResizing","isPassthrough","allColors","colorMap","getRgbBuffer","rgbPos","destPos","_destPos","_rgbPos","cs","IR","parseToIR","fromIR","whitePoint","blackPoint","gray","cmyk","CalGrayCS","matrix","CalRGBCS","basePatternCS","PatternCS","baseIndexedCS","hiVal","IndexedCS","alt","tintFn","AlternateCS","LabCS","colorSpaces","resCS","altIR","altCS","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","_ColorSpace","tmpBuf","baseNumComps","usesZeroToOneRange","baseBuf","scaled","tinted","getOutputLength","decodeMap","isDefaultDecode","_ColorSpace2","baseCS","_ColorSpace3","highVal","outputDelta","lookupPos","_ColorSpace4","_ColorSpace5","convertToRgb","srcScale","_ColorSpace6","AG","L","YW","_ColorSpace7","_this7","XW","ZW","XB","YB","ZB","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","matrixProduct","convertToFlat","sourceWhitePoint","LMS","convertToD65","D65X","D65Y","D65Z","sRGBTransferFunction","adjustToRange","decodeL","compensateBlackPoint","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","LMS_D65","AGR","GR","BGG","GG","CGB","GB","X","MXA","MXB","MXC","MYA","MYB","MYC","Z","MZA","MZB","MZC","XYZ","XYZ_Black","XYZ_D65","SRGB","_ColorSpace8","_this8","fn_g","high1","low2","high2","maxVal","Ls","as","bs","amin","amax","bmin","bmax","M","N","_ColorSpace9","_this9","AnnotationBorderStyle","Annotation","_get","receiver","desc","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","WidgetAnnotation","PopupAnnotation","LineAnnotation","SquareAnnotation","CircleAnnotation","PolylineAnnotation","PolygonAnnotation","InkAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","StampAnnotation","FileAttachmentAnnotation","getTransformMatrix","bbox","bounds","maxY","setFlags","setRectangle","setColor","setBorderStyle","setAppearance","annotationFlags","borderStyle","hasAppearance","appearance","flag","_hasFlag","dictType","setWidth","setStyle","setDashArray","setHorizontalCornerRadius","setVerticalCornerRadius","appearanceStates","normalAppearanceState","hasPopup","contents","evaluator","renderForms","appearanceDict","_isViewable","_isPrintable","dashArray","horizontalCornerRadius","verticalCornerRadius","isValid","allZeros","element","validNumber","radius","_Annotation","annotationType","fieldName","_constructFieldName","fieldValue","alternativeText","defaultAppearance","fieldResources","fieldFlags","readOnly","hasFieldFlag","unshift","loopDict","_WidgetAnnotation","alignment","textAlignment","maximumLength","multiLine","comb","_WidgetAnnotation2","checkBox","radioButton","pushButton","_processCheckBox","_processRadioButton","_processPushButton","customAppearance","exportValueOptionsDict","exportValues","hasCorrectOptionCount","exportValue","buttonValue","fieldParent","fieldParentValue","_WidgetAnnotation3","option","isOptionArray","displayValue","combo","multiSelect","_Annotation2","DEFAULT_ICON_SIZE","_this6","_preparePopup","_Annotation3","_Annotation4","parentItem","parentSubtype","parentType","parentId","parentFlags","_Annotation5","lineCoordinates","_Annotation6","_this10","_Annotation7","_this11","_Annotation8","_this12","rawVertices","vertices","_PolylineAnnotation","_this13","_Annotation9","_this14","originalInkLists","inkLists","_Annotation10","_this15","_Annotation11","_this16","_Annotation12","_this17","_Annotation13","_this18","_Annotation14","_this19","_Annotation15","_this20","file","QueueOptimizer","addState","parentState","pattern","checkFn","iterateFn","processFn","handlePaintSolidColorImageMask","iFirstSave","fnArray","argsArray","iFirstPIMXO","imageMask","InitialState","iCurr","match","lastProcessed","MIN_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_WIDTH","IMAGE_PADDING","curr","iFirstTransform","iFirstPIIXO","map","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","dataOffset","MIN_IMAGES_IN_MASKS_BLOCK","MAX_IMAGES_IN_MASKS_BLOCK","MAX_SAME_IMAGES_IN_MASKS_BLOCK","iTransform","transformArgs","isSameImage","firstPIMXOArg0","firstTransformArg0","firstTransformArg3","iPIMXO","positions","images","maskParams","iFirstPIXO","firstPIXOArg0","MIN_IMAGES_IN_BLOCK","MAX_IMAGES_IN_BLOCK","iFirstSetFont","firstSetFontArg0","firstSetFontArg1","MIN_CHARS_IN_BLOCK","MAX_CHARS_IN_BLOCK","iFirstBeginText","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","iFirst","iEndText","_optimize","NullOptimizer","CHUNK_SIZE","CHUNK_SIZE_ABOUT","getTransfers","transfers","cached","messageHandler","optimizer","dependencies","_totalLength","weight","addDependency","addDependencies","_cmap","_fonts","_encodings","_unicode","_standard_fonts","_pattern","_bidi","_glyphlist","_metrics","_murmurhash","_image","DefaultPartialEvaluatorOptions","NativeImageDecoder","_ref$forceDataSchema","_ref3$options","fetchBuiltInCMap","compressionType","canDecode","image","isDecodable","colorSpace","isSupported","TIME_SLOT_DURATION_MS","CHECK_TIME_EVERY","TimeSlotManager","normalizeBlendMode","checked","endTime","deferred","TILING_PATTERN","SHADING_PATTERN","clone","newOptions","newEvaluator","nodes","graphicStates","graphicStatesKeys","graphicState","bm","xObjects","xObjectsKeys","xObject","xResources","buildFormXObject","xobj","initialState","group","groupOptions","isolated","knockout","groupSubtype","backdrop","buildPaintImageXObject","_ref5$isInline","isInline","_ref5$forceDisableNat","forceDisableNativeImageDecoder","bitStrideLength","imgArray","PDFImage","createMask","imageIsFromDecodeStream","inverseDecode","softMask","SMALL_IMAGE_DIMENSIONS","imageObj","createImageData","nativeImageDecoder","buildImage","nativeDecoder","handleSMask","stateManager","smaskContent","smaskOptions","transferObj","isPDFFunction","transferFn","transferMap","handleTilingType","patternDict","tilingOpList","resourcesArray","patternResources","getTilingPatternIR","tilingPatternIR","handleSetFont","fontArgs","fontRef","fontName","loadFont","isType3Font","loadType3Data","TranslatedFont","ErrorFont","loadedName","handleText","glyphs","charsToGlyphs","isAddToPathSet","textRenderingMode","fillColorSpace","buildPath","fontChar","renderer","hasBuiltPath","path","getPathJs","glyph","accent","gState","gStateObj","gStateKeys","errorFont","fontRes","fontID","translatedPromise","fontCapability","preEvaluatedFont","preEvaluateFont","fontRefIsRef","fontAliases","aliasFontRef","Font","getFontID","translateFont","translatedFont","fontType","xrefFontStats","fontFile3","getFontType","lastIndex","opArgs","handleColorN","patternName","typeNum","shading","Pattern","parseShading","_ref6$initialState","EvalState","xobjs","StateManager","preprocessor","EvaluatorPreprocessor","timeSlotManager","closePendingRestoreOPS","savedStatesDepth","promiseBody","operation","resolveXObject","rejectXObject","fontSize","combinedGlyphs","arrLength","arrItem","strokeColorSpace","shadingRes","patternIR","dictName","extGState","_ref7$stateManager","_ref7$normalizeWhites","_ref7$combineTextItem","_ref7$seenStyles","seenStyles","TextState","textState","WhitespaceRegexp","textContent","styles","textContentItem","vertical","lastAdvanceWidth","lastAdvanceHeight","textAdvanceScale","spaceWidth","fakeSpaceMin","fakeMultiSpaceMin","fakeMultiSpaceMax","textRunBreakAllowed","SPACE_FACTOR","MULTI_SPACE_FACTOR","MULTI_SPACE_FACTOR_MAX","skipEmptyXObjs","ensureTextContentItem","fontFamily","fallbackName","ascent","descent","tsm","textHScale","textRise","fontMatrix","glyphHeight","trm","ctm","textMatrix","textLineMatrix","scaleLineX","scaleCtmX","isMonospace","replaceWhitespace","runBidiTransform","textChunk","bidiResult","bidi","dir","buildTextContentItem","glyphWidth","vmetric","glyphUnicode","NormalizedUnicodes","getNormalizedUnicodes","reverseIfRtl","charSpacing","wordSpacing","addFakeSpaces","tx","ty","w0","translateTextMatrix","abs","fakeSpaces","round","flushTextContentItem","enqueueChunk","advance","fontNameArg","fontSizeArg","leading","isSameTextLine","translateTextLineMatrix","carriageReturn","calcTextLineMatrixAdvance","setTextLineMatrix","breakTextRun","currentState","xObjStateManager","sinkWrapper","enqueueInvoked","gStateFont","extractDataStructures","baseDict","properties","toUnicode","toUnicodePromise","readToUnicode","composite","cidSystemInfo","registry","ordering","supplement","cidToGidMap","readCidToGidMap","differences","baseEncodingName","diffEncoding","defaultEncoding","getEncoding","isSymbolicFont","FontFlags","Symbolic","isNonsymbolicFont","Nonsymbolic","StandardEncoding","WinAnsiEncoding","MacRomanEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","hasEncoding","buildToUnicode","_buildSimpleFontToUnicode","charcode","glyphName","glyphsUnicodeMap","getGlyphsUnicode","getUnicodeForGlyph","baseEncoding","ToUnicodeMap","hasIncludedToUnicodeMap","fallbackToUnicode","cMap","builtInCMap","IdentityCMap","ucs2CMapName","CMapFactory","useCMap","ucs2CMap","cid","ucs2","IdentityToUnicodeMap","firstChar","lastChar","cmapObj","cmap","getMap","charCode","cidToGidStream","glyphsData","glyphID","extractWidths","defaultVMetrics","widths","glyphsWidths","defaultWidth","glyphsVMetrics","vmetrics","parseFloat","baseFontName","metrics","getBaseFontMetrics","buildCharCodeToWidth","firstWidth","FixedPitch","isSerifFont","fontNameWoStyle","getSerifFonts","search","monospace","stdFontMap","getStdFontMap","lookupName","Metrics","getMetrics","glyphWidths","widthsByGlyphName","uint8array","df","MurmurHash3_64","update","diffLength","diffBuf","diffEntry","hexdigest","maxCharIndex","Serif","getSymbolsFonts","baseFont","fontNameStr","baseFontStr","cMapPromise","fontFile","length1","length2","length3","wideChars","fixedPitch","xHeight","capHeight","italicAngle","cidEncoding","type3Loaded","fontData","exportData","parentOperatorList","type3Options","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcKeys","charProcOperatorList","_loop2","glyphStream","stateStack","old","txDiff","tyDiff","denominator","calcRenderMatrix","getOPMap","numArgs","variableArgs","MAX_INVALID_PATH_OPS","opMap","nonProcessedArgs","_numInvalidPathOPS","opSpec","argsLength","partialMsg","preprocessCommand","CMap","BUILT_IN_CMAPS","codespaceRanges","numCodespaceRanges","dstLow","dst","nn","codespaceRange","_CMap","addCodespaceRange","BinaryCMapReader","hexToInt","hexToStr","addHex","incHex","MAX_NUM_SIZE","MAX_ENCODED_NUM_SIZE","BinaryCMapStream","processBinaryCMap","readByte","char","sequence","dataSize","ucs2DataSize","subitemsCount","readNumber","readHex","readHexNumber","mapOne","readSigned","mapCidRange","readHexSigned","mapBfRange","readString","sp","strToInt","expectString","expectInt","parseBfChar","parseBfRange","mapBfRangeToArray","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","previous","embeddedUseCMap","objLoop","extendCMap","createBuiltInCMap","newCMap","useCodespaceRanges","contains","cMapData","parsedCMap","isIdentityCMap","SEAC_ANALYSIS_ENABLED","_cff_parser","_font_renderer","_type1_parser","PRIVATE_USE_AREAS","PDF_GLYPH_SPACE_UNITS","Script","Italic","AllCap","SmallCap","ForceBold","MacStandardGlyphOrdering","adjustWidths","adjustToUnicode","builtInEncoding","amend","recoverGlyphName","Glyph","operatorListId","isInFont","matchesForCache","charCodeOf","OpenTypeFileBuilder","writeInt16","writeInt32","writeData","sfnt","tables","getSearchParams","entriesCount","entrySize","maxPower2","searchRange","rangeShift","OTF_HEADER_SIZE","OTF_TABLE_ENTRY_SIZE","toArray","tablesNames","tableName","numTables","tableOffsets","searchParams","checksum","quad","addTable","sizes","missingFile","glyphCache","toFontChar","isEmpty","fallbackToSystemFont","_getFontFileType","getFontFileType","_getFontFileType2","mimetype","cff","CFFFont","Type1Font","convert","checkAndRepair","isOpenType","seacMap","int16","writeSignedInt16","signedInt16","int32","string16","safeString16","isTrueTypeFile","isTrueTypeCollectionFile","isOpenTypeFile","isType1File","isCFFFile","fileType","fileSubtype","buildToFontChar","adjustMapping","charCodeToGlyphId","hasGlyph","newGlyphZeroId","newMap","privateUseAreaIndex","nextAvailableFontCharCode","privateUseOffetEnd","originalCharCode","glyphId","fontCharCode","getRanges","numGlyphs","codeIndices","createCmapTable","bmpLength","trailingRangesCount","segCount","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","bias","contiguous","startCode","format314","format31012","header31012","validateOS2Table","os2","selection","usWinAscent","createOS2Table","charstrings","override","unitsPerEm","yMax","yMin","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","getUnicodeRangeFor","ascentScaled","typoAscent","typoDescent","winAscent","winDescent","createPostTable","angle","createNameTable","strings","stringsUnicode","strBufUnicode","platforms","encodings","languages","namesRecordCount","nameTable","strOffset","strs","nameRecord","ID","FontRendererFactory","nonStdFontMap","getNonStdFontMap","isStandardFont","remeasure","GlyphMapForStandardFonts","getGlyphMapForStandardFonts","SupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForArialBlack","SupplementalGlyphMapForCalibri","getSupplementalGlyphMapForCalibri","isIdentityUnicode","unicodeCharCode","getDingbatsGlyphsUnicode","VALID_TABLES","readTables","readTableEntry","previousPosition","readOpenTypeHeader","ttf","entrySelector","readTrueTypeCollectionHeader","ttc","ttcTag","majorVersion","minorVersion","numFonts","offsetTable","dsigTag","dsigLength","dsigOffset","readTrueTypeCollectionData","_readTrueTypeCollecti","potentialHeader","potentialTables","readNameTable","nameEntry","readCmapTable","platformId","encodingId","mappings","hasShortCmap","potentialTable","canBreak","useTable","format","segIndex","offsetsCount","rangeOffset","offsetIndex","offsets","sanitizeMetrics","numOfMetrics","numOfSidebearings","numMissing","sanitizeGlyph","sourceStart","sourceEnd","hintsValid","glyphProfile","sizeOfInstructions","glyf","contoursCount","flagsCount","endPoint","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xyLength","repeat","glyphDataLength","sanitizeHead","locaLength","indexToLocFormat","numGlyphsPlusOne","sanitizeGlyphLocations","loca","isGlyphLocationsLong","dupFirstEntry","maxSizeOfInstructions","itemSize","itemDecode","itemEncode","numGlyphsOut","locaData","locaDataSize","oldGlyfData","oldGlyfDataLength","newGlyfData","writeOffset","missingGlyphs","simpleGlyph","firstEntryLength","readPostScriptTable","post","maxpNumGlyphs","glyphNames","valid","glyphNameIndexes","customNames","stringLength","FORMAT_0_HEADER_LENGTH","numRecords","stringsStart","records","NAME_RECORD_LENGTH","platform","language","nameIndex","TTOpsStackDeltas","sanitizeTTProgram","ttContext","funcId","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","op","functionsStackDeltas","stackTop","functionsDefined","functionsUsed","newStackLength","stackDelta","NaN","foldTTTable","checkInvalidFunctions","maxFunctionDefs","sanitizeTTPrograms","fpgm","prep","cvt","cvtData","ttcData","cffFile","isTrueType","isComposite","maxZones","glyphsInfo","metricsOverride","isCidToGidMapEmpty","cmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","cmapMappingsLength","standardGlyphName","unicodeOrCharCode","glyphZeroId","newMapping","CFFParser","duplicateFirstGlyph","compiler","CFFCompiler","compile","namePrototype","builder","tableTag","getGlyphMapping","hasGlyphId","getCharCodes","charCodes","createCharCode","seacs","charset","getCharset","seac","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","baseFontCharCode","accentFontCharCode","tan","cffWidths","hmtx","charstring","_shadowWidth","possibleSpaceReplacements","charToGlyph","widthCode","mapSpecialUnicodeValues","charsCache","charsCacheKey","readCharCode","type1FontGlyphMapping","findBlock","streamBytes","startIndex","streamBytesLength","getHeaderBlock","suggestedLength","headerBytes","headerBytesLength","block","EEXEC_SIGNATURE","streamStartPos","getEexecBlock","eexecBytes","PFB_HEADER_SIZE","headerBlockLength","eexecBlockLength","pfbHeader","pfbHeaderPresent","headerBlock","headerBlockParser","Type1Parser","extractFontHeader","eexecBlock","eexecBlockParser","extractFontProgram","type2Charstrings","getType2Charstrings","subrs","getType2Subrs","getSeacs","type1Charstrings","type1Subrs","type2Subrs","CFF","CFFHeader","CFFTopDict","setByName","CFFStrings","globalSubrIndex","CFFIndex","charsetArray","CFFStandardStrings","CFFCharset","charStringsIndex","charStrings","privateDict","CFFPrivateDict","field","privateData","subrIndex","subrsIndex","charsets","isCIDFont","CFFFDSelect","_charsets","MAX_SUBR_NESTING","CharstringValidationData","stackClearing","stem","resetStack","undefStack","CharstringValidationData12","stackFn","seacAnalysisEnabled","parseHeader","parseIndex","topDictIndex","stringIndex","topDictParsed","parseDict","createDict","parseNameIndex","parseStringIndex","parsePrivateDict","hasName","charStringOffset","getByName","charStringIndex","fontBBox","fdArrayIndex","dictRaw","fontDict","fdArray","parseCharsets","fdSelect","parseFDSelect","parseEncoding","charStringsAndSeacs","parseCharStrings","localSubrIndex","hdrSize","offSize","parseOperand","parseFloatOperand","operands","cffIndex","offsetSize","offsetStart","offsetEnd","Type","cffDict","setByKey","parseCharString","callDepth","stackSize","validationCommand","subrNumber","firstStackClearing","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","emptyPrivateDictionary","parentDict","privateOffset","privateDictEnd","dictData","subrsOffset","relativeOffset","removeByName","CFFCharsetPredefinedTypes","ISO_ADOBE","ISOAdobeCharset","EXPERT","ExpertCharset","EXPERT_SUBSET","ExpertSubsetCharset","raw","predefined","readSupplement","supplementsCount","sid","ExpertEncoding","dataStart","glyphsCount","rangesCount","gid","CFFEncoding","glyphZero","objects","CFFDict","keyToNameMap","nameToKeyMap","defaults","types","opcodes","order","valueLength","createTables","layout","glyphIndex","CFFOffsetTracker","isTracking","track","location","setEntryLocation","offset1","offset2","offset3","offset4","compileHeader","compileNameIndex","subDict","compiled","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeNumber","encodeFloat","encodeInteger","nibbles","sanitizedName","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","privateDictTracker","privateDictData","offsetTracker","compileGlobalSubrIndex","writeByteArray","compileTypedArray","lastFD","currentFD","numRanges","lastOffset","MacExpertEncoding","encodingName","getSpecialPUASymbols","hexStr","nameLen","toUpperCase","UnicodeRanges","isRTLRangeFor","charsLength","getLong","getUshort","parseCmap","idDelta","idOffset","groups","parseCff","gsubrs","isCFFCIDFont","parseGlyfTable","lookupCmap","compileGlyf","cmds","quadraticCurveTo","xa","ya","numberOfContours","arg1","arg2","scale01","scale10","subglyph","endPtsOfContours","instructionLength","numberOfPoints","points","startPoint","contour","compileCharString","stems","bezierCurveTo","xb","yb","y3","subrCode","stackClean","numSubrs","subrsBias","achar","bchar","glyphNameMap","gsubrsBias","NOOP","CompiledFont","compiledGlyphs","compiledCharCodeToGlyphId","compileGlyph","compileGlyphImpl","TrueTypeCompiled","_CompiledFont","Type2Compiled","_CompiledFont2","cffInfo","HINTING_ENABLED","Type1CharString","COMMAND_MAP","lsb","flexing","encoded","wx","sbx","executeCommand","hstem","vstem","dy","vmoveto","rlineto","hlineto","vlineto","rrcurveto","hmoveto","endchar","rmoveto","vhcurveto","hvcurveto","sby","num2","num1","flexArgs","flex","howManyArgs","command","keepStack","stackLength","EEXEC_ENCRYPT_KEY","CHAR_STRS_ENCRYPT_KEY","isHexDigit","discardNumber","c1","c2","decrypted","decryptAscii","digit1","digit2","isSpecial","encrypted","isBinary","readNumberArray","getToken","readInt","readBoolean","readCharStrings","lenIV","program","blueArray","charString","encodingArg","ShadingType","FUNCTION_BASED","AXIAL","RADIAL","FREE_FORM_MESH","LATTICE_FORM_MESH","COONS_PATCH_MESH","TENSOR_PATCH_MESH","getPattern","Shadings","RadialAxial","Mesh","Dummy","xstep","ystep","paintType","tilingType","SMALL_NUMBER","coordsArr","shadingType","domainArr","extendStart","extendEnd","extendArr","r1","r2","distance","fnObj","createFromArray","colorStops","ratio","cssColor","background","r0","MeshStreamReader","tmpCompsBuf","csNumComps","tmpCsCompsBuf","colorFn","decodeType4Shading","mesh","coords","operators","ps","verticesLeft","hasData","readFlag","coord","readCoordinate","readComponents","align","figures","decodeType5Shading","verticesPerRow","bitsPerFlag","bitsPerCoordinate","xi","yi","ci","MIN_SPLIT_PATCH_CHUNKS_AMOUNT","MAX_SPLIT_PATCH_CHUNKS_AMOUNT","TRIANGLE_DENSITY","getB","buildB","lut","t_","buildFigureFromPatch","figure","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","splitYBy","figureCoords","figureColors","cl","cr","c0","c3","bRow","bCol","newColor","decodeType6Shading","tmp4","decodeType7Shading","updateBounds","packData","coordsPacked","xy","colorsPacked","decodeContext","patchMesh","baseTypes","arabicTypes","isOdd","isEven","findUnequal","setValues","reverseValues","createBidiText","isLTR","startLevel","strLength","numBidi","charType","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","PostScriptCompiler","PostScriptEvaluator","_ps_parser","IsEvalSupportedCached","_ref$isEvalSupported","PDFFunction","parseArray","toNumberArray","CONSTRUCT_SAMPLED","CONSTRUCT_INTERPOLATED","CONSTRUCT_STICHED","CONSTRUCT_POSTSCRIPT","getSampleArray","outputSize","bps","sampleMul","strBytes","strIdx","constructSampled","constructInterpolated","constructStiched","constructPostScript","typeFn","constructSampledFromIR","constructInterpolatedFromIR","constructStichedFromIR","constructPostScriptFromIR","toMultiArray","inputSize","encode","samples","interpolate","xmin","xmax","ymin","ymax","cubeVertices","cubeN","Float64Array","cubeVertex","domain_2i","domain_2i_1","size_i","e0","n0","n1","rj","fnRefs","fns","dmin","dmax","rmin","rmax","_ref12","PostScriptLexer","PostScriptParser","_ref13","numOutputs","numInputs","MAX_CACHE_SIZE","cache_available","cachedValue","execute","stackIndex","bound","fnDict","PostScriptStack","MAX_STACK_SIZE","initialStack","copy","roll","operator","atan","cos","LN10","sin","AstNode","AstArgument","AstLiteral","AstBinaryOperation","AstMin","AstVariable","AstVariableDefinition","variable","ExpressionBuilderVisitor","parts","buildAddOperation","buildMulOperation","buildSubOperation","buildMinOperation","visit","visitArgument","visitLiteral","visitBinaryOperation","visitMin","visitVariable","visitVariableDefinition","literal","definition","ast1","ast2","tmpVar","instructions","lastRegister","instruction","statementBuilder","expr","nextToken","accept","expect","PostScriptTokenTypes","LBRACE","parseBlock","RBRACE","NUMBER","OPERATOR","parseCondition","conditionLocation","IF","jumpLocation","endOfTrue","IFELSE","PostScriptToken","opCache","getOperator","opValue","seed","MASK_HIGH","MASK_LOW","SEED","blockCounts","tailLength","dataUint32","k2","C1","C2","C1_LOW","C2_LOW","handleImageData","decodeAndClamp","addend","coefficient","resizeImageMask","_ref$isInline","_ref$smask","_ref$mask","_ref$isMask","isMask","matte","needsDecode","decodeCoefficients","decodeAddends","maskDict","smaskPromise","maskPromise","_ref2$isInline","_ref2$nativeDecoder","imagePromise","imageData","smaskData","maskData","computedLength","haveFullData","decodeBuffer","getComponents","buf","bufferPos","rowComps","loop1End","loop2End","remainingBits","fillOpacity","rgbaBuf","alphaBuf","sw","sh","fillGrayBuffer","opacity","imageOffset","maskOffset","undoPreblend","matteRgb","matteR","matteG","matteB","forceRGBA","getImageBytes","newArray","imageLength","maybeUndoPreblend","fillRgb","resolveCall","wrapReason","makeReasonSerializable","resolveOrReject","success","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbacksCapabilities","ah","actionHandler","_onComObjOnMessage","_processStreamMessage","isReply","_sourceName","_targetName","_createStreamSink","scope","queueingStrategy","startCapability","startCall","isClosed","pullCapability","pullCall","cancelCapability","cancelCall","sendStreamRequest","streamSink","isCancelled","lastDesiredSize","sinkCapability","sendStreamResponse","deleteStreamController","removeEventListener"],"mappings":"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OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,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AAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGD,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGD,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,IAC/wEQ,EAAc,CAAC,EAAE,GAAI,GAAI,CAAC,GAAIZ,GAAW,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,OAC9Wa,EAAc,CAAC,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IACx3IC,EAAc,CAAC,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,GAAId,GAAW,CAAC,GAAIA,GAAW,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAC53Ce,EAAc,CAAC,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,KACjwDC,EAAc,CAAC,EAAE,GAAI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k1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,GAAI,EACJk1D,GAAI,GACH,CACDl1D,GAAI,EACJk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,GAAI,EACJk1D,EAAG,GACF,CACDl1D,GAAI,EACJk1D,EAAG,GACF,CACDl1D,GAAI,EACJk1D,EAAG,GACF,CACDl1D,GAAI,EACJk1D,EAAG,IACD,CAAC,CACHl1D,GAAI,EACJk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,GAAI,EACJk1D,GAAI,GACH,CACDl1D,GAAI,EACJk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,GAAI,EACJk1D,EAAG,GACF,CACDl1D,GAAI,EACJk1D,EAAG,GACF,CACDl1D,GAAI,EACJk1D,EAAG,IACD,CAAC,CACHl1D,GAAI,EACJk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,GAAI,EACJk1D,GAAI,GACH,CACDl1D,GAAI,EACJk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,GAAI,EACJk1D,EAAG,GACF,CACDl1D,GAAI,EACJk1D,EAAG,IACD,CAAC,CACHl1D,GAAI,EACJk1D,GAAI,GACH,CACDl1D,GAAI,EACJk1D,GAAI,GACH,CACDl1D,GAAI,EACJk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,EAAG,EACHk1D,GAAI,GACH,CACDl1D,GAAI,EACJk1D,EAA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,EACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,G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M,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,KACphD1H,KAAKyxG,OAAS,IAAI/pG,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,IAA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K,EACLsgI,YAAY,GACX,CACD50I,GAAI,YACJsU,IAAK,EACLsgI,YAAY,GACX,KAAM,CACP50I,GAAI,WACJsU,IAAK,EACLugI,YAAY,GACX,CACD70I,GAAI,SACJsU,IAAK,EACLugI,YAAY,GACX,KAAM,KAAM,CACb70I,GAAI,UACJsU,IAAK,EACLogI,eAAe,GACd,KAAM,KAAM,KAAM,CACnB10I,GAAI,UACJsU,IAAK,EACLogI,eAAe,EACfC,MAAM,GACL,CACD30I,GAAI,WACJsU,IAAK,EACLogI,eAAe,GACd,CACD10I,GAAI,WACJsU,IAAK,EACLogI,eAAe,GACd,CACD10I,GAAI,UACJsU,IAAK,EACLogI,eAAe,GACd,CACD10I,GAAI,UACJsU,IAAK,EACLogI,eAAe,GACd,CACD10I,GAAI,UACJsU,IAAK,EACLogI,eAAe,EACfC,MAAM,GACL,CACD30I,GAAI,aACJsU,IAAK,EACLsgI,YAAY,GACX,CACD50I,GAAI,aACJsU,IAAK,EACLsgI,YAAY,GACX,CACD50I,GAAI,YACJsU,IAAK,EACLsgI,YAAY,GACX,CACD50I,GAAI,YACJsU,IAAK,EACLsgI,YAAY,GACX,KAAM,CACP50I,GAAI,YACJsU,IAAK,EACLugI,YAAY,GACX,CACD70I,GAAI,YACJsU,IAAK,EACLsgI,YAAY,GACX,CACD50I,GAAI,YACJsU,IAAK,EACLsgI,YAAY,IAEVE,EAA6B,CAAC,KAAM,KAAM,KAAM,CAClD90I,GAAI,MACJsU,IAAK,EACL24H,YAAa,GACZ,CACDjtI,GAAI,KACJsU,IAAK,EACL24H,YAAa,GACZ,CACDjtI,GAAI,MACJsU,IAAK,EACL24H,WAAY,GACX,KAAM,KAAM,KAAM,CACnBjtI,GAAI,MACJsU,IAAK,EACL24H,WAAY,GACX,CACDjtI,GAAI,MACJsU,IAAK,EACL24H,YAAa,EACb8H,QAAS,SAAmB3zI,EAAO6f,GACjC7f,EAAM6f,EAAQ,GAAK7f,EAAM6f,EAAQ,GAAK7f,EAAM6f,EAAQ,KAErD,CACDjhB,GAAI,MACJsU,IAAK,EACL24H,YAAa,EACb8H,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,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,MACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,MACjBA,EAAE,aAAe,MACjBA,EAAE,aAAe,KACjBA,EAAE,WAAa,KACfA,EAAE,WAAa,KACfA,EAAE,WAAa,KACfA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjBA,EAAE,aAAe,KACjB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,EAAE,OAAS,KACXA,EAAE,OAAS,MACXA,EAAE,OAAS,KACXA,EAAE,OAAS,MACXA,EAAE,QAAU,MACZA,EAAE,OAAS,MACXA,EAAE,QAAU,MACZA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,MACXA,EAAE,OAAS,KACXA,EAAE,OAAS,MACXA,EAAE,OAAS,MACXA,EAAE,OAAS,MACXA,EAAE,OAAS,MACXA,EAAE,OAAS,MACXA,EAAE,OAAS,MACXA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,MACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,KACZA,EAAE,QAAU,MACZA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ACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,MACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,MACVA,EAAE,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,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,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,MACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,QAERkzI,GAAuC,EAAI3wI,EAAMkP,wBAAuB,SAAUzR,GACpFA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,OAEPozI,GAAoC,EAAI7wI,EAAMkP,wBAAuB,SAAUzR,GACjFA,EAAE,GAAK,GACPA,EAAE,GAAK,GACPA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,IACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,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,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,MAEZvB,EAAQ4jI,cAAgBA,EACxB5jI,EAAQm0I,iBAAmBA,EAC3Bn0I,EAAQwjI,cAAgBA,EACxBxjI,EAAQ4kI,gBAAkBA,EAC1B5kI,EAAQu0I,4BAA8BA,EACtCv0I,EAAQy0I,qCAAuCA,EAC/Cz0I,EAAQ20I,kCAAoCA,GAItC,SAAU50I,EAAQC,EAASI,GAEjC,IAAI4S,EAAwB5S,EAAoB,GAAG4S,sBAC/Cu5I,EAAuBv5I,GAAsB,SAAUzR,GAC1DA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,QAEZ,SAASq+I,EAAwBrzI,GAChC,OAAIA,GAAQ,OAAUA,GAAQ,MACtB,EACGA,GAAQ,OAAUA,GAAQ,MAC7BggJ,IAAuBhgJ,IAASA,EACpB,MAATA,EACH,GAEDA,EAER,SAASy0H,EAAmBpgI,EAAMkgI,GACjC,IAAIngF,EAAUmgF,EAAiBlgI,GAC/B,QAAgB4B,IAAZm+C,EACH,OAAOA,EAER,IAAK//C,EACJ,OAAQ,EAET,GAAgB,MAAZA,EAAK,GAAY,CACpB,IAA2B4rJ,EAAvBC,EAAU7rJ,EAAK6C,OACnB,GAAgB,IAAZgpJ,GAA6B,MAAZ7rJ,EAAK,IAA0B,MAAZA,EAAK,GAC5C4rJ,EAAS5rJ,EAAK60D,UAAU,OAClB,MAAIg3F,GAAW,GAAKA,GAAW,GAGrC,OAAQ,EAFRD,EAAS5rJ,EAAK60D,UAAU,GAIzB,GAAI+2F,IAAWA,EAAOE,gBACrB/rG,EAAU4B,SAASiqG,EAAQ,IACvB7rG,GAAW,GACd,OAAOA,EAIV,OAAQ,EAET,IAAIgsG,EAAgB,CACnB,CACC,MAAS,EACT,IAAO,KAER,CACC,MAAS,IACT,IAAO,KAER,CACC,MAAS,IACT,IAAO,KAER,CACC,MAAS,IACT,IAAO,KAER,CACC,MAAS,IACT,IAAO,KAER,CACC,MAAS,IACT,IAAO,KAER,CACC,MAAS,IACT,IAAO,KAER,CACC,MAAS,IACT,IAAO,MAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,OACT,IAAO,QAER,CACC,MAAS,OACT,IAAO,QAER,CACC,MAAS,QACT,IAAO,SAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,OACT,IAAO,QAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,OACT,IAAO,QAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,OACT,IAAO,QAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,KACT,IAAO,MAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,KACT,IAAO,OAER,CACC,MAAS,MACT,IAAO,OAER,CACC,MAAS,OACT,IAAO,SAGT,SAAS/Z,EAAmBtxI,GAC3B,IAAK,IAAIhB,EAAI,EAAGujB,EAAK8oI,EAAclpJ,OAAQnD,EAAIujB,EAAIvjB,IAAK,CACvD,IAAIw/D,EAAQ6sF,EAAcrsJ,GAC1B,GAAIgB,GAASw+D,EAAMz5D,OAAS/E,EAAQw+D,EAAMx5D,IACzC,OAAOhG,EAGT,OAAQ,EAET,SAASssJ,EAActrJ,GACtB,IAAIw+D,EAAQ6sF,EAAc,IAC1B,OAAIrrJ,GAASw+D,EAAMz5D,OAAS/E,EAAQw+D,EAAMx5D,MAG1Cw5D,EAAQ6sF,EAAc,IAClBrrJ,GAASw+D,EAAMz5D,OAAS/E,EAAQw+D,EAAMx5D,KAK3C,IAAI02H,EAAwBhqH,GAAsB,SAAUzR,GAC3DA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,OACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,UACdA,EAAE,KAAY,SACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE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,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,K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AE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,QAAU,IACZA,EAAE,OAAS,IACXA,EAAE,QAAU,IACZA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,QAAU,IACZA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,QAAU,IACZA,EAAE,OAAS,IACXA,EAAE,QAAU,IACZA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,KACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EAAE,QAAU,IACZA,EA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","file":"js/pdfjsWorker.ca07910a.js","sourcesContent":["/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf.worker\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf.worker\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf.worker\"] = root.pdfjsWorker = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__w_pdfjs_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__w_pdfjs_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__w_pdfjs_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__w_pdfjs_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__w_pdfjs_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__w_pdfjs_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__w_pdfjs_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__w_pdfjs_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar pdfjsVersion = '2.0.943';\nvar pdfjsBuild = 'dc98bf76';\nvar pdfjsCoreWorker = __w_pdfjs_require__(1);\nexports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WorkerMessageHandler = exports.WorkerTask = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _pdf_manager = __w_pdfjs_require__(130);\n\nvar _is_node = __w_pdfjs_require__(5);\n\nvar _is_node2 = _interopRequireDefault(_is_node);\n\nvar _message_handler = __w_pdfjs_require__(172);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WorkerTask = function WorkerTaskClosure() {\n function WorkerTask(name) {\n this.name = name;\n this.terminated = false;\n this._capability = (0, _util.createPromiseCapability)();\n }\n WorkerTask.prototype = {\n get finished() {\n return this._capability.promise;\n },\n finish: function finish() {\n this._capability.resolve();\n },\n terminate: function terminate() {\n this.terminated = true;\n },\n ensureNotTerminated: function ensureNotTerminated() {\n if (this.terminated) {\n throw new Error('Worker task was terminated');\n }\n }\n };\n return WorkerTask;\n}();\n;\nvar PDFWorkerStream = function PDFWorkerStreamClosure() {\n function PDFWorkerStream(msgHandler) {\n this._msgHandler = msgHandler;\n this._contentLength = null;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n PDFWorkerStream.prototype = {\n getFullReader: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n return this._fullRequestReader;\n },\n getRangeReader: function getRangeReader(begin, end) {\n var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n this._rangeRequestReaders.push(reader);\n return reader;\n },\n cancelAllRequests: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n var readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n };\n function PDFWorkerStreamReader(msgHandler) {\n var _this = this;\n\n this._msgHandler = msgHandler;\n this._contentLength = null;\n this._isRangeSupported = false;\n this._isStreamingSupported = false;\n var readableStream = this._msgHandler.sendWithStream('GetReader');\n this._reader = readableStream.getReader();\n this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {\n _this._isStreamingSupported = data.isStreamingSupported;\n _this._isRangeSupported = data.isRangeSupported;\n _this._contentLength = data.contentLength;\n });\n }\n PDFWorkerStreamReader.prototype = {\n get headersReady() {\n return this._headersReady;\n },\n get contentLength() {\n return this._contentLength;\n },\n get isStreamingSupported() {\n return this._isStreamingSupported;\n },\n get isRangeSupported() {\n return this._isRangeSupported;\n },\n read: function read() {\n return this._reader.read().then(function (_ref) {\n var value = _ref.value,\n done = _ref.done;\n\n if (done) {\n return {\n value: undefined,\n done: true\n };\n }\n return {\n value: value.buffer,\n done: false\n };\n });\n },\n cancel: function cancel(reason) {\n this._reader.cancel(reason);\n }\n };\n function PDFWorkerStreamRangeReader(begin, end, msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {\n begin: begin,\n end: end\n });\n this._reader = readableStream.getReader();\n }\n PDFWorkerStreamRangeReader.prototype = {\n get isStreamingSupported() {\n return false;\n },\n read: function read() {\n return this._reader.read().then(function (_ref2) {\n var value = _ref2.value,\n done = _ref2.done;\n\n if (done) {\n return {\n value: undefined,\n done: true\n };\n }\n return {\n value: value.buffer,\n done: false\n };\n });\n },\n cancel: function cancel(reason) {\n this._reader.cancel(reason);\n }\n };\n return PDFWorkerStream;\n}();\nvar WorkerMessageHandler = {\n setup: function setup(handler, port) {\n var testMessageProcessed = false;\n handler.on('test', function wphSetupTest(data) {\n if (testMessageProcessed) {\n return;\n }\n testMessageProcessed = true;\n if (!(data instanceof Uint8Array)) {\n handler.send('test', false);\n return;\n }\n var supportTransfers = data[0] === 255;\n handler.postMessageTransfers = supportTransfers;\n var xhr = new XMLHttpRequest();\n var responseExists = 'response' in xhr;\n try {\n xhr.responseType;\n } catch (e) {\n responseExists = false;\n }\n if (!responseExists) {\n handler.send('test', false);\n return;\n }\n handler.send('test', {\n supportTypedArray: true,\n supportTransfers: 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 createDocumentHandler: function createDocumentHandler(docParams, port) {\n var pdfManager;\n var terminated = false;\n var cancelXHRs = null;\n var WorkerTasks = [];\n var apiVersion = docParams.apiVersion;\n var workerVersion = '2.0.943';\n if (apiVersion !== workerVersion) {\n throw new Error('The API version \"' + apiVersion + '\" does not match ' + ('the Worker version \"' + workerVersion + '\".'));\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 function ensureNotTerminated() {\n if (terminated) {\n throw new Error('Worker was terminated');\n }\n }\n function startWorkerTask(task) {\n WorkerTasks.push(task);\n }\n function finishWorkerTask(task) {\n task.finish();\n var i = WorkerTasks.indexOf(task);\n WorkerTasks.splice(i, 1);\n }\n function loadDocument(recoveryMode) {\n var loadDocumentCapability = (0, _util.createPromiseCapability)();\n var parseSuccess = function parseSuccess() {\n Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]).then(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n numPages = _ref4[0],\n fingerprint = _ref4[1];\n\n loadDocumentCapability.resolve({\n numPages: numPages,\n fingerprint: fingerprint\n });\n }, parseFailure);\n };\n var parseFailure = function parseFailure(e) {\n loadDocumentCapability.reject(e);\n };\n pdfManager.ensureDoc('checkHeader', []).then(function () {\n pdfManager.ensureDoc('parseStartXRef', []).then(function () {\n pdfManager.ensureDoc('parse', [recoveryMode]).then(parseSuccess, parseFailure);\n }, parseFailure);\n }, parseFailure);\n return loadDocumentCapability.promise;\n }\n function getPdfManager(data, evaluatorOptions) {\n var pdfManagerCapability = (0, _util.createPromiseCapability)();\n var pdfManager;\n var source = data.source;\n if (source.data) {\n try {\n pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);\n pdfManagerCapability.resolve(pdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n return pdfManagerCapability.promise;\n }\n var pdfStream,\n cachedChunks = [];\n try {\n pdfStream = new PDFWorkerStream(handler);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n return pdfManagerCapability.promise;\n }\n var fullRequest = pdfStream.getFullReader();\n fullRequest.headersReady.then(function () {\n if (!fullRequest.isRangeSupported) {\n return;\n }\n var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;\n pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {\n msgHandler: handler,\n url: source.url,\n password: source.password,\n length: fullRequest.contentLength,\n disableAutoFetch: disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize\n }, evaluatorOptions, docBaseUrl);\n for (var i = 0; i < cachedChunks.length; i++) {\n pdfManager.sendProgressiveData(cachedChunks[i]);\n }\n cachedChunks = [];\n pdfManagerCapability.resolve(pdfManager);\n cancelXHRs = null;\n }).catch(function (reason) {\n pdfManagerCapability.reject(reason);\n cancelXHRs = null;\n });\n var loaded = 0;\n var flushChunks = function flushChunks() {\n var pdfFile = (0, _util.arraysToBytes)(cachedChunks);\n if (source.length && pdfFile.length !== source.length) {\n (0, _util.warn)('reported HTTP length is different from actual');\n }\n try {\n pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);\n pdfManagerCapability.resolve(pdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n cachedChunks = [];\n };\n var readPromise = new Promise(function (resolve, reject) {\n var readChunk = function readChunk(chunk) {\n try {\n ensureNotTerminated();\n if (chunk.done) {\n if (!pdfManager) {\n flushChunks();\n }\n cancelXHRs = null;\n return;\n }\n var data = chunk.value;\n loaded += (0, _util.arrayByteLength)(data);\n if (!fullRequest.isStreamingSupported) {\n handler.send('DocProgress', {\n loaded: loaded,\n total: Math.max(loaded, fullRequest.contentLength || 0)\n });\n }\n if (pdfManager) {\n pdfManager.sendProgressiveData(data);\n } else {\n cachedChunks.push(data);\n }\n fullRequest.read().then(readChunk, reject);\n } catch (e) {\n reject(e);\n }\n };\n fullRequest.read().then(readChunk, reject);\n });\n readPromise.catch(function (e) {\n pdfManagerCapability.reject(e);\n cancelXHRs = null;\n });\n cancelXHRs = function cancelXHRs() {\n pdfStream.cancelAllRequests('abort');\n };\n return pdfManagerCapability.promise;\n }\n function setupDoc(data) {\n function onSuccess(doc) {\n ensureNotTerminated();\n handler.send('GetDoc', { pdfInfo: doc });\n }\n function onFailure(e) {\n ensureNotTerminated();\n if (e instanceof _util.PasswordException) {\n var task = new WorkerTask('PasswordException: response ' + e.code);\n startWorkerTask(task);\n handler.sendWithPromise('PasswordRequest', e).then(function (data) {\n finishWorkerTask(task);\n pdfManager.updatePassword(data.password);\n pdfManagerReady();\n }).catch(function (boundException) {\n finishWorkerTask(task);\n handler.send('PasswordException', boundException);\n }.bind(null, e));\n } else if (e instanceof _util.InvalidPDFException) {\n handler.send('InvalidPDF', e);\n } else if (e instanceof _util.MissingPDFException) {\n handler.send('MissingPDF', e);\n } else if (e instanceof _util.UnexpectedResponseException) {\n handler.send('UnexpectedResponse', e);\n } else {\n handler.send('UnknownError', new _util.UnknownErrorException(e.message, e.toString()));\n }\n }\n function pdfManagerReady() {\n ensureNotTerminated();\n loadDocument(false).then(onSuccess, function loadFailure(ex) {\n ensureNotTerminated();\n if (!(ex instanceof _util.XRefParseException)) {\n onFailure(ex);\n return;\n }\n pdfManager.requestLoadedStream();\n pdfManager.onLoadedStream().then(function () {\n ensureNotTerminated();\n loadDocument(true).then(onSuccess, onFailure);\n });\n }, onFailure);\n }\n ensureNotTerminated();\n var evaluatorOptions = {\n forceDataSchema: data.disableCreateObjectURL,\n maxImageSize: data.maxImageSize,\n disableFontFace: data.disableFontFace,\n nativeImageDecoderSupport: data.nativeImageDecoderSupport,\n ignoreErrors: data.ignoreErrors,\n isEvalSupported: data.isEvalSupported\n };\n getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {\n if (terminated) {\n newPdfManager.terminate();\n throw new Error('Worker was terminated');\n }\n pdfManager = newPdfManager;\n pdfManager.onLoadedStream().then(function (stream) {\n handler.send('DataLoaded', { length: stream.bytes.byteLength });\n });\n }).then(pdfManagerReady, onFailure);\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 (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 4),\n rotate = _ref6[0],\n ref = _ref6[1],\n userUnit = _ref6[2],\n view = _ref6[3];\n\n return {\n rotate: rotate,\n ref: ref,\n userUnit: userUnit,\n view: view\n };\n });\n });\n });\n handler.on('GetPageIndex', function wphSetupGetPageIndex(data) {\n var ref = new _primitives.Ref(data.ref.num, data.ref.gen);\n var catalog = pdfManager.pdfDocument.catalog;\n return catalog.getPageIndex(ref);\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('GetPageMode', function wphSetupGetPageMode(data) {\n return pdfManager.ensureCatalog('pageMode');\n });\n handler.on('GetAttachments', function wphSetupGetAttachments(data) {\n return pdfManager.ensureCatalog('attachments');\n });\n handler.on('GetJavaScript', function wphSetupGetJavaScript(data) {\n return pdfManager.ensureCatalog('javaScript');\n });\n handler.on('GetOutline', function wphSetupGetOutline(data) {\n return pdfManager.ensureCatalog('documentOutline');\n });\n handler.on('GetPermissions', function (data) {\n return pdfManager.ensureCatalog('permissions');\n });\n handler.on('GetMetadata', function wphSetupGetMetadata(data) {\n return Promise.all([pdfManager.ensureDoc('documentInfo'), pdfManager.ensureCatalog('metadata')]);\n });\n handler.on('GetData', function wphSetupGetData(data) {\n pdfManager.requestLoadedStream();\n return pdfManager.onLoadedStream().then(function (stream) {\n return stream.bytes;\n });\n });\n handler.on('GetStats', function wphSetupGetStats(data) {\n return pdfManager.pdfDocument.xref.stats;\n });\n handler.on('GetAnnotations', function (_ref7) {\n var pageIndex = _ref7.pageIndex,\n intent = _ref7.intent;\n\n return pdfManager.getPage(pageIndex).then(function (page) {\n return page.getAnnotationsData(intent);\n });\n });\n handler.on('RenderPageRequest', function wphSetupRenderPage(data) {\n var pageIndex = data.pageIndex;\n pdfManager.getPage(pageIndex).then(function (page) {\n var task = new WorkerTask('RenderPageRequest: page ' + pageIndex);\n startWorkerTask(task);\n var pageNum = pageIndex + 1;\n var start = Date.now();\n page.getOperatorList({\n handler: handler,\n task: task,\n intent: data.intent,\n renderInteractiveForms: data.renderInteractiveForms\n }).then(function (operatorList) {\n finishWorkerTask(task);\n (0, _util.info)('page=' + pageNum + ' - getOperatorList: time=' + (Date.now() - start) + 'ms, len=' + operatorList.totalLength);\n }, function (e) {\n finishWorkerTask(task);\n if (task.terminated) {\n return;\n }\n handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.unknown });\n var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()';\n var wrappedException;\n if (typeof e === 'string') {\n wrappedException = {\n message: e,\n stack: minimumStackMessage\n };\n } else if ((typeof e === 'undefined' ? 'undefined' : _typeof(e)) === 'object') {\n wrappedException = {\n message: e.message || e.toString(),\n stack: e.stack || minimumStackMessage\n };\n } else {\n wrappedException = {\n message: 'Unknown exception type: ' + (typeof e === 'undefined' ? 'undefined' : _typeof(e)),\n stack: minimumStackMessage\n };\n }\n handler.send('PageError', {\n pageNum: pageNum,\n error: wrappedException,\n intent: data.intent\n });\n });\n });\n }, this);\n handler.on('GetTextContent', function wphExtractText(data, sink) {\n var pageIndex = data.pageIndex;\n sink.onPull = function (desiredSize) {};\n sink.onCancel = function (reason) {};\n pdfManager.getPage(pageIndex).then(function (page) {\n var task = new WorkerTask('GetTextContent: page ' + pageIndex);\n startWorkerTask(task);\n var pageNum = pageIndex + 1;\n var start = Date.now();\n page.extractTextContent({\n handler: handler,\n task: task,\n sink: sink,\n normalizeWhitespace: data.normalizeWhitespace,\n combineTextItems: data.combineTextItems\n }).then(function () {\n finishWorkerTask(task);\n (0, _util.info)('text indexing: page=' + pageNum + ' - time=' + (Date.now() - start) + 'ms');\n sink.close();\n }, function (reason) {\n finishWorkerTask(task);\n if (task.terminated) {\n return;\n }\n sink.error(reason);\n throw reason;\n });\n });\n });\n handler.on('Cleanup', function wphCleanup(data) {\n return pdfManager.cleanup();\n });\n handler.on('Terminate', function wphTerminate(data) {\n terminated = true;\n if (pdfManager) {\n pdfManager.terminate();\n pdfManager = null;\n }\n if (cancelXHRs) {\n cancelXHRs();\n }\n var waitOn = [];\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 initializeFromPort: function initializeFromPort(port) {\n var handler = new _message_handler.MessageHandler('worker', 'main', port);\n WorkerMessageHandler.setup(handler, port);\n handler.send('ready', null);\n }\n};\nfunction isMessagePort(maybePort) {\n return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort;\n}\nif (typeof window === 'undefined' && !(0, _is_node2.default)() && typeof self !== 'undefined' && isMessagePort(self)) {\n WorkerMessageHandler.initializeFromPort(self);\n}\nexports.WorkerTask = WorkerTask;\nexports.WorkerMessageHandler = WorkerMessageHandler;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.unreachable = exports.warn = exports.utf8StringToString = exports.stringToUTF8String = exports.stringToPDFString = exports.stringToBytes = exports.string32 = exports.shadow = exports.setVerbosityLevel = exports.URL = exports.ReadableStream = exports.removeNullCharacters = exports.readUint32 = exports.readUint16 = exports.readInt8 = exports.log2 = exports.isEvalSupported = exports.isLittleEndian = exports.createValidAbsoluteUrl = exports.isSameOrigin = exports.isSpace = exports.isString = exports.isNum = exports.isEmptyObj = exports.isBool = exports.isArrayBuffer = exports.info = exports.getVerbosityLevel = exports.getLookupTableFactory = exports.getInheritableProperty = exports.deprecated = exports.createObjectURL = exports.createPromiseCapability = exports.bytesToString = exports.assert = exports.arraysToBytes = exports.arrayByteLength = exports.FormatError = exports.XRefParseException = exports.toRomanNumerals = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n__w_pdfjs_require__(3);\n\nvar _streams_polyfill = __w_pdfjs_require__(126);\n\nvar _url_polyfill = __w_pdfjs_require__(128);\n\nvar IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nvar FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nvar NativeImageDecoding = {\n NONE: 'none',\n DECODE: 'decode',\n DISPLAY: 'display'\n};\nvar 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};\nvar 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};\nvar ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nvar 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};\nvar 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};\nvar 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};\nvar AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nvar StreamType = {\n UNKNOWN: 0,\n FLATE: 1,\n LZW: 2,\n DCT: 3,\n JPX: 4,\n JBIG: 5,\n A85: 6,\n AHX: 7,\n CCF: 8,\n RL: 9\n};\nvar FontType = {\n UNKNOWN: 0,\n TYPE1: 1,\n TYPE1C: 2,\n CIDFONTTYPE0: 3,\n CIDFONTTYPE0C: 4,\n TRUETYPE: 5,\n CIDFONTTYPE2: 6,\n TYPE3: 7,\n OPENTYPE: 8,\n TYPE0: 9,\n MMTYPE1: 10\n};\nvar VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nvar CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nvar 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};\nvar UNSUPPORTED_FEATURES = {\n unknown: 'unknown',\n forms: 'forms',\n javaScript: 'javaScript',\n smask: 'smask',\n shadingPattern: 'shadingPattern',\n font: 'font'\n};\nvar PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nvar verbosity = VerbosityLevel.WARNINGS;\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\nfunction getVerbosityLevel() {\n return verbosity;\n}\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log('Info: ' + msg);\n }\n}\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log('Warning: ' + msg);\n }\n}\nfunction deprecated(details) {\n console.log('Deprecated API usage: ' + details);\n}\nfunction unreachable(msg) {\n throw new Error(msg);\n}\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\nfunction isSameOrigin(baseUrl, otherUrl) {\n try {\n var base = new _url_polyfill.URL(baseUrl);\n if (!base.origin || base.origin === 'null') {\n return false;\n }\n } catch (e) {\n return false;\n }\n var other = new _url_polyfill.URL(otherUrl, base);\n return base.origin === other.origin;\n}\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case 'http:':\n case 'https:':\n case 'ftp:':\n case 'mailto:':\n case 'tel:':\n return true;\n default:\n return false;\n }\n}\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n try {\n var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n return null;\n}\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: false\n });\n return value;\n}\nfunction getLookupTableFactory(initializer) {\n var lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\n };\n}\nvar PasswordException = function PasswordExceptionClosure() {\n function PasswordException(msg, code) {\n this.name = 'PasswordException';\n this.message = msg;\n this.code = code;\n }\n PasswordException.prototype = new Error();\n PasswordException.constructor = PasswordException;\n return PasswordException;\n}();\nvar UnknownErrorException = function UnknownErrorExceptionClosure() {\n function UnknownErrorException(msg, details) {\n this.name = 'UnknownErrorException';\n this.message = msg;\n this.details = details;\n }\n UnknownErrorException.prototype = new Error();\n UnknownErrorException.constructor = UnknownErrorException;\n return UnknownErrorException;\n}();\nvar InvalidPDFException = function InvalidPDFExceptionClosure() {\n function InvalidPDFException(msg) {\n this.name = 'InvalidPDFException';\n this.message = msg;\n }\n InvalidPDFException.prototype = new Error();\n InvalidPDFException.constructor = InvalidPDFException;\n return InvalidPDFException;\n}();\nvar MissingPDFException = function MissingPDFExceptionClosure() {\n function MissingPDFException(msg) {\n this.name = 'MissingPDFException';\n this.message = msg;\n }\n MissingPDFException.prototype = new Error();\n MissingPDFException.constructor = MissingPDFException;\n return MissingPDFException;\n}();\nvar UnexpectedResponseException = function UnexpectedResponseExceptionClosure() {\n function UnexpectedResponseException(msg, status) {\n this.name = 'UnexpectedResponseException';\n this.message = msg;\n this.status = status;\n }\n UnexpectedResponseException.prototype = new Error();\n UnexpectedResponseException.constructor = UnexpectedResponseException;\n return UnexpectedResponseException;\n}();\nvar MissingDataException = function MissingDataExceptionClosure() {\n function MissingDataException(begin, end) {\n this.begin = begin;\n this.end = end;\n this.message = 'Missing data [' + begin + ', ' + end + ')';\n }\n MissingDataException.prototype = new Error();\n MissingDataException.prototype.name = 'MissingDataException';\n MissingDataException.constructor = MissingDataException;\n return MissingDataException;\n}();\nvar XRefParseException = function XRefParseExceptionClosure() {\n function XRefParseException(msg) {\n this.message = msg;\n }\n XRefParseException.prototype = new Error();\n XRefParseException.prototype.name = 'XRefParseException';\n XRefParseException.constructor = XRefParseException;\n return XRefParseException;\n}();\nvar FormatError = function FormatErrorClosure() {\n function FormatError(msg) {\n this.message = msg;\n }\n FormatError.prototype = new Error();\n FormatError.prototype.name = 'FormatError';\n FormatError.constructor = FormatError;\n return FormatError;\n}();\nvar AbortException = function AbortExceptionClosure() {\n function AbortException(msg) {\n this.name = 'AbortException';\n this.message = msg;\n }\n AbortException.prototype = new Error();\n AbortException.constructor = AbortException;\n return AbortException;\n}();\nvar NullCharactersRegExp = /\\x00/g;\nfunction removeNullCharacters(str) {\n if (typeof str !== 'string') {\n warn('The argument for removeNullCharacters must be a string.');\n return str;\n }\n return str.replace(NullCharactersRegExp, '');\n}\nfunction bytesToString(bytes) {\n assert(bytes !== null && (typeof bytes === 'undefined' ? 'undefined' : _typeof(bytes)) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString');\n var length = bytes.length;\n var MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n var strBuf = [];\n for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n var chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join('');\n}\nfunction stringToBytes(str) {\n assert(typeof str === 'string', 'Invalid argument for stringToBytes');\n var length = str.length;\n var bytes = new Uint8Array(length);\n for (var i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xFF;\n }\n return bytes;\n}\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n}\nfunction arraysToBytes(arr) {\n if (arr.length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n var resultLength = 0;\n var i,\n ii = arr.length;\n var item, itemLength;\n for (i = 0; i < ii; i++) {\n item = arr[i];\n itemLength = arrayByteLength(item);\n resultLength += itemLength;\n }\n var pos = 0;\n var data = new Uint8Array(resultLength);\n for (i = 0; i < ii; i++) {\n item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === 'string') {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n return Math.ceil(Math.log2(x));\n}\nfunction readInt8(data, start) {\n return data[start] << 24 >> 24;\n}\nfunction readUint16(data, offset) {\n return data[offset] << 8 | data[offset + 1];\n}\nfunction readUint32(data, offset) {\n return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n}\nfunction isLittleEndian() {\n var buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n var view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\nfunction isEvalSupported() {\n try {\n new Function('');\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction getInheritableProperty(_ref) {\n var dict = _ref.dict,\n key = _ref.key,\n _ref$getArray = _ref.getArray,\n getArray = _ref$getArray === undefined ? false : _ref$getArray,\n _ref$stopWhenFound = _ref.stopWhenFound,\n stopWhenFound = _ref$stopWhenFound === undefined ? true : _ref$stopWhenFound;\n\n var LOOP_LIMIT = 100;\n var loopCount = 0;\n var values = void 0;\n while (dict) {\n var value = getArray ? dict.getArray(key) : dict.get(key);\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n if (!values) {\n values = [];\n }\n values.push(value);\n }\n if (++loopCount > LOOP_LIMIT) {\n warn('getInheritableProperty: maximum loop count exceeded for \"' + key + '\"');\n break;\n }\n dict = dict.get('Parent');\n }\n return values;\n}\nvar Util = function UtilClosure() {\n function Util() {}\n var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join('');\n };\n Util.transform = function Util_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 Util.applyTransform = function Util_applyTransform(p, m) {\n var xt = p[0] * m[0] + p[1] * m[2] + m[4];\n var yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n };\n Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {\n var d = m[0] * m[3] - m[1] * m[2];\n var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n };\n Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) {\n var p1 = Util.applyTransform(r, m);\n var p2 = Util.applyTransform(r.slice(2, 4), m);\n var p3 = Util.applyTransform([r[0], r[3]], m);\n var 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 Util.inverseTransform = function Util_inverseTransform(m) {\n var 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 Util.apply3dTransform = function Util_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 Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) {\n var transpose = [m[0], m[2], m[1], m[3]];\n var a = m[0] * transpose[0] + m[1] * transpose[2];\n var b = m[0] * transpose[1] + m[1] * transpose[3];\n var c = m[2] * transpose[0] + m[3] * transpose[2];\n var d = m[2] * transpose[1] + m[3] * transpose[3];\n var first = (a + d) / 2;\n var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n var sx = first + second || 1;\n var sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n };\n Util.normalizeRect = function Util_normalizeRect(rect) {\n var r = rect.slice(0);\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n };\n Util.intersect = function Util_intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),\n orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),\n result = [];\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\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 false;\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 false;\n }\n return result;\n };\n return Util;\n}();\nvar 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'];\nfunction toRomanNumerals(number) {\n var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n assert(Number.isInteger(number) && number > 0, 'The number should be a positive integer.');\n var pos = void 0,\n romanBuf = [];\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push('M');\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 var romanStr = romanBuf.join('');\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\nvar 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];\nfunction stringToPDFString(str) {\n var i,\n n = str.length,\n strBuf = [];\n if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n for (i = 2; i < n; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else {\n for (i = 0; i < n; ++i) {\n var code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n }\n return strBuf.join('');\n}\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\nfunction isEmptyObj(obj) {\n for (var key in obj) {\n return false;\n }\n return true;\n}\nfunction isBool(v) {\n return typeof v === 'boolean';\n}\nfunction isNum(v) {\n return typeof v === 'number';\n}\nfunction isString(v) {\n return typeof v === 'string';\n}\nfunction isArrayBuffer(v) {\n return (typeof v === 'undefined' ? 'undefined' : _typeof(v)) === 'object' && v !== null && v.byteLength !== undefined;\n}\nfunction isSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;\n}\nfunction createPromiseCapability() {\n var capability = {};\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = resolve;\n capability.reject = reject;\n });\n return capability;\n}\nvar createObjectURL = function createObjectURLClosure() {\n var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n return function createObjectURL(data, contentType) {\n var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!forceDataSchema && _url_polyfill.URL.createObjectURL) {\n var blob = new Blob([data], { type: contentType });\n return _url_polyfill.URL.createObjectURL(blob);\n }\n var buffer = 'data:' + contentType + ';base64,';\n for (var i = 0, ii = data.length; i < ii; i += 3) {\n var b1 = data[i] & 0xFF;\n var b2 = data[i + 1] & 0xFF;\n var b3 = data[i + 2] & 0xFF;\n var d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64;\n var d4 = i + 2 < ii ? b3 & 0x3F : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n };\n}();\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nexports.OPS = OPS;\nexports.VerbosityLevel = VerbosityLevel;\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nexports.AnnotationFlag = AnnotationFlag;\nexports.AnnotationType = AnnotationType;\nexports.FontType = FontType;\nexports.ImageKind = ImageKind;\nexports.CMapCompressionType = CMapCompressionType;\nexports.AbortException = AbortException;\nexports.InvalidPDFException = InvalidPDFException;\nexports.MissingDataException = MissingDataException;\nexports.MissingPDFException = MissingPDFException;\nexports.NativeImageDecoding = NativeImageDecoding;\nexports.PasswordException = PasswordException;\nexports.PasswordResponses = PasswordResponses;\nexports.PermissionFlag = PermissionFlag;\nexports.StreamType = StreamType;\nexports.TextRenderingMode = TextRenderingMode;\nexports.UnexpectedResponseException = UnexpectedResponseException;\nexports.UnknownErrorException = UnknownErrorException;\nexports.Util = Util;\nexports.toRomanNumerals = toRomanNumerals;\nexports.XRefParseException = XRefParseException;\nexports.FormatError = FormatError;\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.createObjectURL = createObjectURL;\nexports.deprecated = deprecated;\nexports.getInheritableProperty = getInheritableProperty;\nexports.getLookupTableFactory = getLookupTableFactory;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isBool = isBool;\nexports.isEmptyObj = isEmptyObj;\nexports.isNum = isNum;\nexports.isString = isString;\nexports.isSpace = isSpace;\nexports.isSameOrigin = isSameOrigin;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.isLittleEndian = isLittleEndian;\nexports.isEvalSupported = isEvalSupported;\nexports.log2 = log2;\nexports.readInt8 = readInt8;\nexports.readUint16 = readUint16;\nexports.readUint32 = readUint32;\nexports.removeNullCharacters = removeNullCharacters;\nexports.ReadableStream = _streams_polyfill.ReadableStream;\nexports.URL = _url_polyfill.URL;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nexports.unreachable = unreachable;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar globalScope = __w_pdfjs_require__(4);\nif (!globalScope._pdfjsCompatibilityChecked) {\n globalScope._pdfjsCompatibilityChecked = true;\n var isNodeJS = __w_pdfjs_require__(5);\n var hasDOM = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object';\n (function checkNodeBtoa() {\n if (globalScope.btoa || !isNodeJS()) {\n return;\n }\n globalScope.btoa = function (chars) {\n return Buffer.from(chars, 'binary').toString('base64');\n };\n })();\n (function checkNodeAtob() {\n if (globalScope.atob || !isNodeJS()) {\n return;\n }\n globalScope.atob = function (input) {\n return Buffer.from(input, 'base64').toString('binary');\n };\n })();\n (function checkCurrentScript() {\n if (!hasDOM) {\n return;\n }\n if ('currentScript' in document) {\n return;\n }\n Object.defineProperty(document, 'currentScript', {\n get: function get() {\n var scripts = document.getElementsByTagName('script');\n return scripts[scripts.length - 1];\n },\n\n enumerable: true,\n configurable: true\n });\n })();\n (function checkChildNodeRemove() {\n if (!hasDOM) {\n return;\n }\n if (typeof Element.prototype.remove !== 'undefined') {\n return;\n }\n Element.prototype.remove = function () {\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n })();\n (function checkDOMTokenListToggle() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n var div = document.createElement('div');\n if (div.classList.toggle('test', 0) === false) {\n return;\n }\n var originalDOMTokenListToggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token) {\n if (arguments.length > 1) {\n var force = !!arguments[1];\n return this[force ? 'add' : 'remove'](token), force;\n }\n return originalDOMTokenListToggle(token);\n };\n })();\n (function checkStringIncludes() {\n if (String.prototype.includes) {\n return;\n }\n __w_pdfjs_require__(6);\n })();\n (function checkArrayIncludes() {\n if (Array.prototype.includes) {\n return;\n }\n __w_pdfjs_require__(34);\n })();\n (function checkObjectAssign() {\n if (Object.assign) {\n return;\n }\n __w_pdfjs_require__(43);\n })();\n (function checkMathLog2() {\n if (Math.log2) {\n return;\n }\n Math.log2 = __w_pdfjs_require__(53);\n })();\n (function checkNumberIsNaN() {\n if (Number.isNaN) {\n return;\n }\n Number.isNaN = __w_pdfjs_require__(55);\n })();\n (function checkNumberIsInteger() {\n if (Number.isInteger) {\n return;\n }\n Number.isInteger = __w_pdfjs_require__(57);\n })();\n (function checkPromise() {\n if (globalScope.Promise) {\n return;\n }\n globalScope.Promise = __w_pdfjs_require__(60);\n })();\n (function checkWeakMap() {\n if (globalScope.WeakMap) {\n return;\n }\n globalScope.WeakMap = __w_pdfjs_require__(95);\n })();\n (function checkStringCodePointAt() {\n if (String.codePointAt) {\n return;\n }\n String.codePointAt = __w_pdfjs_require__(112);\n })();\n (function checkStringFromCodePoint() {\n if (String.fromCodePoint) {\n return;\n }\n String.fromCodePoint = __w_pdfjs_require__(114);\n })();\n (function checkSymbol() {\n if (globalScope.Symbol) {\n return;\n }\n __w_pdfjs_require__(116);\n })();\n (function checkObjectValues() {\n if (Object.values) {\n return;\n }\n Object.values = __w_pdfjs_require__(123);\n })();\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {};\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nmodule.exports = function isNodeJS() {\n return (typeof process === 'undefined' ? 'undefined' : _typeof(process)) === 'object' && process + '' === '[object process]';\n};\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(7);\nmodule.exports = __w_pdfjs_require__(10).String.includes;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(8);\nvar context = __w_pdfjs_require__(26);\nvar INCLUDES = 'includes';\n$export($export.P + $export.F * __w_pdfjs_require__(33)(INCLUDES), 'String', {\n includes: function includes(searchString) {\n return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(9);\nvar core = __w_pdfjs_require__(10);\nvar hide = __w_pdfjs_require__(11);\nvar redefine = __w_pdfjs_require__(21);\nvar ctx = __w_pdfjs_require__(24);\nvar PROTOTYPE = 'prototype';\nvar $export = function $export(type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n own = !IS_FORCED && target && target[key] !== undefined;\n out = (own ? target : source)[key];\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if (target) redefine(target, key, out, type & $export.U);\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n$export.F = 1;\n$export.G = 2;\n$export.S = 4;\n$export.P = 8;\n$export.B = 16;\n$export.W = 32;\n$export.U = 64;\n$export.R = 128;\nmodule.exports = $export;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif (typeof __g == 'number') __g = global;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar dP = __w_pdfjs_require__(12);\nvar createDesc = __w_pdfjs_require__(20);\nmodule.exports = __w_pdfjs_require__(16) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(13);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(15);\nvar toPrimitive = __w_pdfjs_require__(19);\nvar dP = Object.defineProperty;\nexports.f = __w_pdfjs_require__(16) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) {}\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(14);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nmodule.exports = function (it) {\n return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) === 'object' ? it !== null : typeof it === 'function';\n};\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = !__w_pdfjs_require__(16) && !__w_pdfjs_require__(17)(function () {\n return Object.defineProperty(__w_pdfjs_require__(18)('div'), 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n});\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = !__w_pdfjs_require__(17)(function () {\n return Object.defineProperty({}, 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n});\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(14);\nvar document = __w_pdfjs_require__(9).document;\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(14);\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(9);\nvar hide = __w_pdfjs_require__(11);\nvar has = __w_pdfjs_require__(22);\nvar SRC = __w_pdfjs_require__(23)('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n__w_pdfjs_require__(10).inspectSource = function (it) {\n return $toString.call(it);\n};\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar aFunction = __w_pdfjs_require__(25);\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1:\n return function (a) {\n return fn.call(that, a);\n };\n case 2:\n return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3:\n return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function () {\n return fn.apply(that, arguments);\n };\n};\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isRegExp = __w_pdfjs_require__(27);\nvar defined = __w_pdfjs_require__(32);\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(14);\nvar cof = __w_pdfjs_require__(28);\nvar MATCH = __w_pdfjs_require__(29)('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toString = {}.toString;\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar store = __w_pdfjs_require__(30)('wks');\nvar uid = __w_pdfjs_require__(23);\nvar _Symbol = __w_pdfjs_require__(9).Symbol;\nvar USE_SYMBOL = typeof _Symbol == 'function';\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name));\n};\n$exports.store = store;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar core = __w_pdfjs_require__(10);\nvar global = __w_pdfjs_require__(9);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __w_pdfjs_require__(31) ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = false;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar MATCH = __w_pdfjs_require__(29)('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) {}\n }\n return true;\n};\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(35);\nmodule.exports = __w_pdfjs_require__(10).Array.includes;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(8);\nvar $includes = __w_pdfjs_require__(36)(true);\n$export($export.P, 'Array', {\n includes: function includes(el) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n__w_pdfjs_require__(42)('includes');\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toIObject = __w_pdfjs_require__(37);\nvar toLength = __w_pdfjs_require__(39);\nvar toAbsoluteIndex = __w_pdfjs_require__(41);\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n if (value != value) return true;\n } else for (; length > index; index++) {\n if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n }\n }return !IS_INCLUDES && -1;\n };\n};\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar IObject = __w_pdfjs_require__(38);\nvar defined = __w_pdfjs_require__(32);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(28);\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(40);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0;\n};\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(40);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar UNSCOPABLES = __w_pdfjs_require__(29)('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(11)(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(44);\nmodule.exports = __w_pdfjs_require__(10).Object.assign;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(8);\n$export($export.S + $export.F, 'Object', { assign: __w_pdfjs_require__(45) });\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(46);\nvar gOPS = __w_pdfjs_require__(50);\nvar pIE = __w_pdfjs_require__(51);\nvar toObject = __w_pdfjs_require__(52);\nvar IObject = __w_pdfjs_require__(38);\nvar $assign = Object.assign;\nmodule.exports = !$assign || __w_pdfjs_require__(17)(function () {\n var A = {};\n var B = {};\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) {\n B[k] = k;\n });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) {\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n }\n }\n return T;\n} : $assign;\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(47);\nvar enumBugKeys = __w_pdfjs_require__(49);\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(22);\nvar toIObject = __w_pdfjs_require__(37);\nvar arrayIndexOf = __w_pdfjs_require__(36)(false);\nvar IE_PROTO = __w_pdfjs_require__(48)('IE_PROTO');\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) {\n if (key != IE_PROTO) has(O, key) && result.push(key);\n }while (names.length > i) {\n if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n }return result;\n};\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar shared = __w_pdfjs_require__(30)('keys');\nvar uid = __w_pdfjs_require__(23);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = Object.getOwnPropertySymbols;\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = {}.propertyIsEnumerable;\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar defined = __w_pdfjs_require__(32);\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(54);\nmodule.exports = __w_pdfjs_require__(10).Math.log2;\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(8);\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(56);\nmodule.exports = __w_pdfjs_require__(10).Number.isNaN;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(8);\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n return number != number;\n }\n});\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(58);\nmodule.exports = __w_pdfjs_require__(10).Number.isInteger;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(8);\n$export($export.S, 'Number', { isInteger: __w_pdfjs_require__(59) });\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(14);\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(61);\n__w_pdfjs_require__(63);\n__w_pdfjs_require__(73);\n__w_pdfjs_require__(76);\n__w_pdfjs_require__(93);\n__w_pdfjs_require__(94);\nmodule.exports = __w_pdfjs_require__(10).Promise;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar classof = __w_pdfjs_require__(62);\nvar test = {};\ntest[__w_pdfjs_require__(29)('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n __w_pdfjs_require__(21)(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(28);\nvar TAG = __w_pdfjs_require__(29)('toStringTag');\nvar ARG = cof(function () {\n return arguments;\n}()) == 'Arguments';\nvar tryGet = function tryGet(it, key) {\n try {\n return it[key];\n } catch (e) {}\n};\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $at = __w_pdfjs_require__(64)(true);\n__w_pdfjs_require__(65)(String, 'String', function (iterated) {\n this._t = String(iterated);\n this._i = 0;\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return {\n value: undefined,\n done: true\n };\n point = $at(O, index);\n this._i += point.length;\n return {\n value: point,\n done: false\n };\n});\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(40);\nvar defined = __w_pdfjs_require__(32);\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar LIBRARY = __w_pdfjs_require__(31);\nvar $export = __w_pdfjs_require__(8);\nvar redefine = __w_pdfjs_require__(21);\nvar hide = __w_pdfjs_require__(11);\nvar Iterators = __w_pdfjs_require__(66);\nvar $iterCreate = __w_pdfjs_require__(67);\nvar setToStringTag = __w_pdfjs_require__(71);\nvar getPrototypeOf = __w_pdfjs_require__(72);\nvar ITERATOR = __w_pdfjs_require__(29)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys());\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar returnThis = function returnThis() {\n return this;\n};\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function getMethod(kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS:\n return function keys() {\n return new Constructor(this, kind);\n };\n case VALUES:\n return function values() {\n return new Constructor(this, kind);\n };\n }\n return function entries() {\n return new Constructor(this, kind);\n };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n setToStringTag(IteratorPrototype, TAG, true);\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() {\n return $native.call(this);\n };\n }\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {};\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar create = __w_pdfjs_require__(68);\nvar descriptor = __w_pdfjs_require__(20);\nvar setToStringTag = __w_pdfjs_require__(71);\nvar IteratorPrototype = {};\n__w_pdfjs_require__(11)(IteratorPrototype, __w_pdfjs_require__(29)('iterator'), function () {\n return this;\n});\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(13);\nvar dPs = __w_pdfjs_require__(69);\nvar enumBugKeys = __w_pdfjs_require__(49);\nvar IE_PROTO = __w_pdfjs_require__(48)('IE_PROTO');\nvar Empty = function Empty() {};\nvar PROTOTYPE = 'prototype';\nvar _createDict = function createDict() {\n var iframe = __w_pdfjs_require__(18)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __w_pdfjs_require__(70).appendChild(iframe);\n iframe.src = 'javascript:';\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n _createDict = iframeDocument.F;\n while (i--) {\n delete _createDict[PROTOTYPE][enumBugKeys[i]];\n }return _createDict();\n};\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n result[IE_PROTO] = O;\n } else result = _createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar dP = __w_pdfjs_require__(12);\nvar anObject = __w_pdfjs_require__(13);\nvar getKeys = __w_pdfjs_require__(46);\nmodule.exports = __w_pdfjs_require__(16) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) {\n dP.f(O, P = keys[i++], Properties[P]);\n }return O;\n};\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar document = __w_pdfjs_require__(9).document;\nmodule.exports = document && document.documentElement;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar def = __w_pdfjs_require__(12).f;\nvar has = __w_pdfjs_require__(22);\nvar TAG = __w_pdfjs_require__(29)('toStringTag');\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {\n configurable: true,\n value: tag\n });\n};\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(22);\nvar toObject = __w_pdfjs_require__(52);\nvar IE_PROTO = __w_pdfjs_require__(48)('IE_PROTO');\nvar ObjectProto = Object.prototype;\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n }\n return O instanceof Object ? ObjectProto : null;\n};\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $iterators = __w_pdfjs_require__(74);\nvar getKeys = __w_pdfjs_require__(46);\nvar redefine = __w_pdfjs_require__(21);\nvar global = __w_pdfjs_require__(9);\nvar hide = __w_pdfjs_require__(11);\nvar Iterators = __w_pdfjs_require__(66);\nvar wks = __w_pdfjs_require__(29);\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\nvar DOMIterables = {\n CSSRuleList: true,\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true,\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true,\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) {\n if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n }\n}\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar addToUnscopables = __w_pdfjs_require__(42);\nvar step = __w_pdfjs_require__(75);\nvar Iterators = __w_pdfjs_require__(66);\nvar toIObject = __w_pdfjs_require__(37);\nmodule.exports = __w_pdfjs_require__(65)(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated);\n this._i = 0;\n this._k = kind;\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\nIterators.Arguments = Iterators.Array;\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (done, value) {\n return {\n value: value,\n done: !!done\n };\n};\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar LIBRARY = __w_pdfjs_require__(31);\nvar global = __w_pdfjs_require__(9);\nvar ctx = __w_pdfjs_require__(24);\nvar classof = __w_pdfjs_require__(62);\nvar $export = __w_pdfjs_require__(8);\nvar isObject = __w_pdfjs_require__(14);\nvar aFunction = __w_pdfjs_require__(25);\nvar anInstance = __w_pdfjs_require__(77);\nvar forOf = __w_pdfjs_require__(78);\nvar speciesConstructor = __w_pdfjs_require__(82);\nvar task = __w_pdfjs_require__(83).set;\nvar microtask = __w_pdfjs_require__(85)();\nvar newPromiseCapabilityModule = __w_pdfjs_require__(86);\nvar perform = __w_pdfjs_require__(87);\nvar userAgent = __w_pdfjs_require__(88);\nvar promiseResolve = __w_pdfjs_require__(89);\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function empty() {};\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\nvar USE_NATIVE = !!function () {\n try {\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(29)('species')] = function (exec) {\n exec(empty, empty);\n };\n return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) {}\n}();\nvar isThenable = function isThenable(it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function notify(promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function run(reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;else {\n if (domain) domain.enter();\n result = handler(value);\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) {\n run(chain[i++]);\n }promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function onUnhandled(promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({\n promise: promise,\n reason: value\n });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n }\n promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function isUnhandled(promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function onHandleUnhandled(promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({\n promise: promise,\n reason: promise._v\n });\n }\n });\n};\nvar $reject = function $reject(value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise;\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function $resolve(value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = {\n _w: promise,\n _d: false\n };\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({\n _w: promise,\n _d: false\n }, e);\n }\n};\nif (!USE_NATIVE) {\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n Internal = function Promise(executor) {\n this._c = [];\n this._a = undefined;\n this._s = 0;\n this._d = false;\n this._v = undefined;\n this._h = 0;\n this._n = false;\n };\n Internal.prototype = __w_pdfjs_require__(90)($Promise.prototype, {\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n 'catch': function _catch(onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function OwnPromiseCapability() {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) {\n return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);\n };\n}\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\n__w_pdfjs_require__(71)($Promise, PROMISE);\n__w_pdfjs_require__(91)(PROMISE);\nWrapper = __w_pdfjs_require__(10)[PROMISE];\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(92)(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {\n throw TypeError(name + ': incorrect invocation!');\n }\n return it;\n};\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(24);\nvar call = __w_pdfjs_require__(79);\nvar isArrayIter = __w_pdfjs_require__(80);\nvar anObject = __w_pdfjs_require__(13);\nvar toLength = __w_pdfjs_require__(39);\nvar getIterFn = __w_pdfjs_require__(81);\nvar BREAK = {};\nvar RETURN = {};\nvar _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () {\n return iterable;\n } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\n_exports.BREAK = BREAK;\n_exports.RETURN = RETURN;\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(13);\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar Iterators = __w_pdfjs_require__(66);\nvar ITERATOR = __w_pdfjs_require__(29)('iterator');\nvar ArrayProto = Array.prototype;\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar classof = __w_pdfjs_require__(62);\nvar ITERATOR = __w_pdfjs_require__(29)('iterator');\nvar Iterators = __w_pdfjs_require__(66);\nmodule.exports = __w_pdfjs_require__(10).getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];\n};\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(13);\nvar aFunction = __w_pdfjs_require__(25);\nvar SPECIES = __w_pdfjs_require__(29)('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(24);\nvar invoke = __w_pdfjs_require__(84);\nvar html = __w_pdfjs_require__(70);\nvar cel = __w_pdfjs_require__(18);\nvar global = __w_pdfjs_require__(9);\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function run() {\n var id = +this;\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function listener(event) {\n run.call(event.data);\n};\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) {\n args.push(arguments[i++]);\n }queue[++counter] = function () {\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n if (__w_pdfjs_require__(28)(process) == 'process') {\n defer = function defer(id) {\n process.nextTick(ctx(run, id, 1));\n };\n } else if (Dispatch && Dispatch.now) {\n defer = function defer(id) {\n Dispatch.now(ctx(run, id, 1));\n };\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function defer(id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function defer(id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n } else {\n defer = function defer(id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0:\n return un ? fn() : fn.call(that);\n case 1:\n return un ? fn(args[0]) : fn.call(that, args[0]);\n case 2:\n return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]);\n case 3:\n return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]);\n case 4:\n return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]);\n }\n return fn.apply(that, args);\n};\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(9);\nvar macrotask = __w_pdfjs_require__(83).set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = __w_pdfjs_require__(28)(process) == 'process';\nmodule.exports = function () {\n var head, last, notify;\n var flush = function flush() {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();else last = undefined;\n throw e;\n }\n }\n last = undefined;\n if (parent) parent.enter();\n };\n if (isNode) {\n notify = function notify() {\n process.nextTick(flush);\n };\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true });\n notify = function notify() {\n node.data = toggle = !toggle;\n };\n } else if (Promise && Promise.resolve) {\n var promise = Promise.resolve(undefined);\n notify = function notify() {\n promise.then(flush);\n };\n } else {\n notify = function notify() {\n macrotask.call(global, flush);\n };\n }\n return function (fn) {\n var task = {\n fn: fn,\n next: undefined\n };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n }\n last = task;\n };\n};\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar aFunction = __w_pdfjs_require__(25);\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (exec) {\n try {\n return {\n e: false,\n v: exec()\n };\n } catch (e) {\n return {\n e: true,\n v: e\n };\n }\n};\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(9);\nvar navigator = global.navigator;\nmodule.exports = navigator && navigator.userAgent || '';\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(13);\nvar isObject = __w_pdfjs_require__(14);\nvar newPromiseCapability = __w_pdfjs_require__(86);\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar redefine = __w_pdfjs_require__(21);\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n redefine(target, key, src[key], safe);\n }return target;\n};\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(9);\nvar dP = __w_pdfjs_require__(12);\nvar DESCRIPTORS = __w_pdfjs_require__(16);\nvar SPECIES = __w_pdfjs_require__(29)('species');\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function get() {\n return this;\n }\n });\n};\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ITERATOR = __w_pdfjs_require__(29)('iterator');\nvar SAFE_CLOSING = false;\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () {\n SAFE_CLOSING = true;\n };\n Array.from(riter, function () {\n throw 2;\n });\n} catch (e) {}\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () {\n return { done: safe = true };\n };\n arr[ITERATOR] = function () {\n return iter;\n };\n exec(arr);\n } catch (e) {}\n return safe;\n};\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(8);\nvar core = __w_pdfjs_require__(10);\nvar global = __w_pdfjs_require__(9);\nvar speciesConstructor = __w_pdfjs_require__(82);\nvar promiseResolve = __w_pdfjs_require__(89);\n$export($export.P + $export.R, 'Promise', {\n 'finally': function _finally(onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () {\n return x;\n });\n } : onFinally, isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () {\n throw e;\n });\n } : onFinally);\n }\n});\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(8);\nvar newPromiseCapability = __w_pdfjs_require__(86);\nvar perform = __w_pdfjs_require__(87);\n$export($export.S, 'Promise', {\n 'try': function _try(callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n }\n});\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(61);\n__w_pdfjs_require__(73);\n__w_pdfjs_require__(96);\n__w_pdfjs_require__(108);\n__w_pdfjs_require__(110);\nmodule.exports = __w_pdfjs_require__(10).WeakMap;\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar each = __w_pdfjs_require__(97)(0);\nvar redefine = __w_pdfjs_require__(21);\nvar meta = __w_pdfjs_require__(101);\nvar assign = __w_pdfjs_require__(45);\nvar weak = __w_pdfjs_require__(102);\nvar isObject = __w_pdfjs_require__(14);\nvar fails = __w_pdfjs_require__(17);\nvar validate = __w_pdfjs_require__(103);\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\nvar wrapper = function wrapper(get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\nvar methods = {\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\nvar $WeakMap = module.exports = __w_pdfjs_require__(104)(WEAK_MAP, wrapper, methods, weak, true, true);\nif (fails(function () {\n return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7;\n})) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n }\n return method.call(this, a, b);\n });\n });\n}\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(24);\nvar IObject = __w_pdfjs_require__(38);\nvar toObject = __w_pdfjs_require__(52);\nvar toLength = __w_pdfjs_require__(39);\nvar asc = __w_pdfjs_require__(98);\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (; length > index; index++) {\n if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res;else if (res) switch (TYPE) {\n case 3:\n return true;\n case 5:\n return val;\n case 6:\n return index;\n case 2:\n result.push(val);\n } else if (IS_EVERY) return false;\n }\n }\n }return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar speciesConstructor = __w_pdfjs_require__(99);\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(14);\nvar isArray = __w_pdfjs_require__(100);\nvar SPECIES = __w_pdfjs_require__(29)('species');\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n }\n return C === undefined ? Array : C;\n};\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(28);\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar META = __w_pdfjs_require__(23)('meta');\nvar isObject = __w_pdfjs_require__(14);\nvar has = __w_pdfjs_require__(22);\nvar setDesc = __w_pdfjs_require__(12).f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !__w_pdfjs_require__(17)(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function setMeta(it) {\n setDesc(it, META, {\n value: {\n i: 'O' + ++id,\n w: {}\n }\n });\n};\nvar fastKey = function fastKey(it, create) {\n if (!isObject(it)) return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n if (!isExtensible(it)) return 'F';\n if (!create) return 'E';\n setMeta(it);\n }\n return it[META].i;\n};\nvar getWeak = function getWeak(it, create) {\n if (!has(it, META)) {\n if (!isExtensible(it)) return true;\n if (!create) return false;\n setMeta(it);\n }\n return it[META].w;\n};\nvar onFreeze = function onFreeze(it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar redefineAll = __w_pdfjs_require__(90);\nvar getWeak = __w_pdfjs_require__(101).getWeak;\nvar anObject = __w_pdfjs_require__(13);\nvar isObject = __w_pdfjs_require__(14);\nvar anInstance = __w_pdfjs_require__(77);\nvar forOf = __w_pdfjs_require__(78);\nvar createArrayMethod = __w_pdfjs_require__(97);\nvar $has = __w_pdfjs_require__(22);\nvar validate = __w_pdfjs_require__(103);\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\nvar uncaughtFrozenStore = function uncaughtFrozenStore(that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function UncaughtFrozenStore() {\n this.a = [];\n};\nvar findUncaughtFrozen = function findUncaughtFrozen(store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function get(key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function has(key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function set(key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;else this.a.push([key, value]);\n },\n 'delete': function _delete(key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\nmodule.exports = {\n getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME;\n that._i = id++;\n that._l = undefined;\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n 'delete': function _delete(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function def(that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(14);\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(9);\nvar $export = __w_pdfjs_require__(8);\nvar redefine = __w_pdfjs_require__(21);\nvar redefineAll = __w_pdfjs_require__(90);\nvar meta = __w_pdfjs_require__(101);\nvar forOf = __w_pdfjs_require__(78);\nvar anInstance = __w_pdfjs_require__(77);\nvar isObject = __w_pdfjs_require__(14);\nvar fails = __w_pdfjs_require__(17);\nvar $iterDetect = __w_pdfjs_require__(92);\nvar setToStringTag = __w_pdfjs_require__(71);\nvar inheritIfRequired = __w_pdfjs_require__(105);\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function fixMethod(KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY, KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) {\n fn.call(this, a === 0 ? 0 : a);\n return this;\n } : function set(a, b) {\n fn.call(this, a === 0 ? 0 : a, b);\n return this;\n });\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n var THROWS_ON_PRIMITIVES = fails(function () {\n instance.has(1);\n });\n var ACCEPT_ITERABLES = $iterDetect(function (iter) {\n new C(iter);\n });\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n var $instance = new C();\n var index = 5;\n while (index--) {\n $instance[ADDER](index, index);\n }return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n setToStringTag(C, NAME);\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n return C;\n};\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(14);\nvar setPrototypeOf = __w_pdfjs_require__(106).set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n }\n return that;\n};\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(14);\nvar anObject = __w_pdfjs_require__(13);\nvar check = function check(O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) {\n try {\n set = __w_pdfjs_require__(24)(Function.call, __w_pdfjs_require__(107).f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) {\n buggy = true;\n }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar pIE = __w_pdfjs_require__(51);\nvar createDesc = __w_pdfjs_require__(20);\nvar toIObject = __w_pdfjs_require__(37);\nvar toPrimitive = __w_pdfjs_require__(19);\nvar has = __w_pdfjs_require__(22);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(15);\nvar gOPD = Object.getOwnPropertyDescriptor;\nexports.f = __w_pdfjs_require__(16) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) {}\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(109)('WeakMap');\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(8);\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, {\n of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) {\n A[length] = arguments[length];\n }return new this(A);\n }\n });\n};\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(111)('WeakMap');\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(8);\nvar aFunction = __w_pdfjs_require__(25);\nvar ctx = __w_pdfjs_require__(24);\nvar forOf = __w_pdfjs_require__(78);\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, {\n from: function from(source) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n }\n });\n};\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(113);\nmodule.exports = __w_pdfjs_require__(10).String.codePointAt;\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(8);\nvar $at = __w_pdfjs_require__(64)(false);\n$export($export.P, 'String', {\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(115);\nmodule.exports = __w_pdfjs_require__(10).String.fromCodePoint;\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(8);\nvar toAbsoluteIndex = __w_pdfjs_require__(41);\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n fromCodePoint: function fromCodePoint(x) {\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00));\n }\n return res.join('');\n }\n});\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(117);\n__w_pdfjs_require__(61);\nmodule.exports = __w_pdfjs_require__(10).Symbol;\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar global = __w_pdfjs_require__(9);\nvar has = __w_pdfjs_require__(22);\nvar DESCRIPTORS = __w_pdfjs_require__(16);\nvar $export = __w_pdfjs_require__(8);\nvar redefine = __w_pdfjs_require__(21);\nvar META = __w_pdfjs_require__(101).KEY;\nvar $fails = __w_pdfjs_require__(17);\nvar shared = __w_pdfjs_require__(30);\nvar setToStringTag = __w_pdfjs_require__(71);\nvar uid = __w_pdfjs_require__(23);\nvar wks = __w_pdfjs_require__(29);\nvar wksExt = __w_pdfjs_require__(118);\nvar wksDefine = __w_pdfjs_require__(119);\nvar enumKeys = __w_pdfjs_require__(120);\nvar isArray = __w_pdfjs_require__(100);\nvar anObject = __w_pdfjs_require__(13);\nvar isObject = __w_pdfjs_require__(14);\nvar toIObject = __w_pdfjs_require__(37);\nvar toPrimitive = __w_pdfjs_require__(19);\nvar createDesc = __w_pdfjs_require__(20);\nvar _create = __w_pdfjs_require__(68);\nvar gOPNExt = __w_pdfjs_require__(121);\nvar $GOPD = __w_pdfjs_require__(107);\nvar $DP = __w_pdfjs_require__(12);\nvar $keys = __w_pdfjs_require__(46);\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function get() {\n return dP(this, 'a', { value: 7 }).a;\n }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\nvar wrap = function wrap(tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\nvar isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) {\n return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n }\n return setSymbolDesc(it, key, D);\n }\n return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) {\n $defineProperty(it, key = keys[i++], P[key]);\n }return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n }\n return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n }\n return result;\n};\nif (!USE_NATIVE) {\n $Symbol = function _Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function $set(value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: $set\n });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __w_pdfjs_require__(122).f = gOPNExt.f = $getOwnPropertyNames;\n __w_pdfjs_require__(51).f = $propertyIsEnumerable;\n __w_pdfjs_require__(50).f = $getOwnPropertySymbols;\n if (DESCRIPTORS && !__w_pdfjs_require__(31)) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\nfor (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) {\n wks(es6Symbols[j++]);\n}for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) {\n wksDefine(wellKnownSymbols[k++]);\n}$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n 'for': function _for(key) {\n return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key);\n },\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) {\n if (SymbolRegistry[key] === sym) return key;\n }\n },\n useSetter: function useSetter() {\n setter = true;\n },\n useSimple: function useSimple() {\n setter = false;\n }\n});\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n create: $create,\n defineProperty: $defineProperty,\n defineProperties: $defineProperties,\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n getOwnPropertyNames: $getOwnPropertyNames,\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) {\n args.push(arguments[i++]);\n }$replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return;\n if (!isArray(replacer)) replacer = function replacer(key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(11)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\nsetToStringTag($Symbol, 'Symbol');\nsetToStringTag(Math, 'Math', true);\nsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = __w_pdfjs_require__(29);\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(9);\nvar core = __w_pdfjs_require__(10);\nvar LIBRARY = __w_pdfjs_require__(31);\nvar wksExt = __w_pdfjs_require__(118);\nvar defineProperty = __w_pdfjs_require__(12).f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(46);\nvar gOPS = __w_pdfjs_require__(50);\nvar pIE = __w_pdfjs_require__(51);\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) {\n if (isEnum.call(it, key = symbols[i++])) result.push(key);\n }\n }\n return result;\n};\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar toIObject = __w_pdfjs_require__(37);\nvar gOPN = __w_pdfjs_require__(122).f;\nvar toString = {}.toString;\nvar windowNames = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];\nvar getWindowNames = function getWindowNames(it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(47);\nvar hiddenKeys = __w_pdfjs_require__(49).concat('length', 'prototype');\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(124);\nmodule.exports = __w_pdfjs_require__(10).Object.values;\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(8);\nvar $values = __w_pdfjs_require__(125)(false);\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(46);\nvar toIObject = __w_pdfjs_require__(37);\nvar isEnum = __w_pdfjs_require__(51).f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }return result;\n };\n};\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isReadableStreamSupported = false;\nif (typeof ReadableStream !== 'undefined') {\n try {\n new ReadableStream({\n start: function start(controller) {\n controller.close();\n }\n });\n isReadableStreamSupported = true;\n } catch (e) {}\n}\nif (isReadableStreamSupported) {\n exports.ReadableStream = ReadableStream;\n} else {\n exports.ReadableStream = __w_pdfjs_require__(127).ReadableStream;\n}\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n(function (e, a) {\n for (var i in a) {\n e[i] = a[i];\n }\n})(exports, function (modules) {\n var installedModules = {};\n function __w_pdfjs_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: false,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n module.l = true;\n return module.exports;\n }\n __w_pdfjs_require__.m = modules;\n __w_pdfjs_require__.c = installedModules;\n __w_pdfjs_require__.i = function (value) {\n return value;\n };\n __w_pdfjs_require__.d = function (exports, name, getter) {\n if (!__w_pdfjs_require__.o(exports, name)) {\n Object.defineProperty(exports, name, {\n configurable: false,\n enumerable: true,\n get: getter\n });\n }\n };\n __w_pdfjs_require__.n = function (module) {\n var getter = module && module.__esModule ? function getDefault() {\n return module['default'];\n } : function getModuleExports() {\n return module;\n };\n __w_pdfjs_require__.d(getter, 'a', getter);\n return getter;\n };\n __w_pdfjs_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n __w_pdfjs_require__.p = \"\";\n return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);\n}([function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);\n };\n var _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n function IsPropertyKey(argument) {\n return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';\n }\n exports.typeIsObject = function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';\n };\n exports.createDataProperty = function (o, p, v) {\n assert(exports.typeIsObject(o));\n Object.defineProperty(o, p, {\n value: v,\n writable: true,\n enumerable: true,\n configurable: true\n });\n };\n exports.createArrayFromList = function (elements) {\n return elements.slice();\n };\n exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n };\n exports.CreateIterResultObject = function (value, done) {\n assert(typeof done === 'boolean');\n var obj = {};\n Object.defineProperty(obj, 'value', {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n });\n Object.defineProperty(obj, 'done', {\n value: done,\n enumerable: true,\n writable: true,\n configurable: true\n });\n return obj;\n };\n exports.IsFiniteNonNegativeNumber = function (v) {\n if (Number.isNaN(v)) {\n return false;\n }\n if (v === Infinity) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n };\n function Call(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\n }\n exports.InvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n var method = O[P];\n if (method === undefined) {\n return undefined;\n }\n return Call(method, O, args);\n };\n exports.PromiseInvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n try {\n return Promise.resolve(exports.InvokeOrNoop(O, P, args));\n } catch (returnValueE) {\n return Promise.reject(returnValueE);\n }\n };\n exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n assert(Array.isArray(argsF));\n var method = void 0;\n try {\n method = O[P];\n } catch (methodE) {\n return Promise.reject(methodE);\n }\n if (method === undefined) {\n return F.apply(null, argsF);\n }\n try {\n return Promise.resolve(Call(method, O, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n exports.TransferArrayBuffer = function (O) {\n return O.slice();\n };\n exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {\n highWaterMark = Number(highWaterMark);\n if (Number.isNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\n }\n return highWaterMark;\n };\n exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) {\n if (size !== undefined && typeof size !== 'function') {\n throw new TypeError('size property of a queuing strategy must be a function');\n }\n highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);\n return {\n size: size,\n highWaterMark: highWaterMark\n };\n };\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n function rethrowAssertionErrorRejection(e) {\n if (e && e.constructor === AssertionError) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n function AssertionError(message) {\n this.name = 'AssertionError';\n this.message = message || '';\n this.stack = new Error().stack;\n }\n AssertionError.prototype = Object.create(Error.prototype);\n AssertionError.prototype.constructor = AssertionError;\n function assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n }\n module.exports = {\n rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,\n AssertionError: AssertionError,\n assert: assert\n };\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var _require = __w_pdfjs_require__(0),\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n typeIsObject = _require.typeIsObject;\n var _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert,\n rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;\n var _require3 = __w_pdfjs_require__(3),\n DequeueValue = _require3.DequeueValue,\n EnqueueValueWithSize = _require3.EnqueueValueWithSize,\n PeekQueueValue = _require3.PeekQueueValue,\n ResetQueue = _require3.ResetQueue;\n var WritableStream = function () {\n function WritableStream() {\n var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n _ref$highWaterMark = _ref.highWaterMark,\n highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark;\n _classCallCheck(this, WritableStream);\n this._state = 'writable';\n this._storedError = undefined;\n this._writer = undefined;\n this._writableStreamController = undefined;\n this._writeRequests = [];\n this._inFlightWriteRequest = undefined;\n this._closeRequest = undefined;\n this._inFlightCloseRequest = undefined;\n this._pendingAbortRequest = undefined;\n this._backpressure = false;\n var type = underlyingSink.type;\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);\n this._writableStreamController.__startSteps();\n }\n _createClass(WritableStream, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('abort'));\n }\n if (IsWritableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));\n }\n return WritableStreamAbort(this, reason);\n }\n }, {\n key: 'getWriter',\n value: function getWriter() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('getWriter');\n }\n return AcquireWritableStreamDefaultWriter(this);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n return IsWritableStreamLocked(this);\n }\n }]);\n return WritableStream;\n }();\n module.exports = {\n AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter,\n IsWritableStream: IsWritableStream,\n IsWritableStreamLocked: IsWritableStreamLocked,\n WritableStream: WritableStream,\n WritableStreamAbort: WritableStreamAbort,\n WritableStreamDefaultControllerError: WritableStreamDefaultControllerError,\n WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight\n };\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return true;\n }\n function IsWritableStreamLocked(stream) {\n assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var state = stream._state;\n if (state === 'closed') {\n return Promise.resolve(undefined);\n }\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n var error = new TypeError('Requested to abort');\n if (stream._pendingAbortRequest !== undefined) {\n return Promise.reject(error);\n }\n assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');\n var wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n reason = undefined;\n }\n var promise = new Promise(function (resolve, reject) {\n stream._pendingAbortRequest = {\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n if (wasAlreadyErroring === false) {\n WritableStreamStartErroring(stream, error);\n }\n return promise;\n }\n function WritableStreamAddWriteRequest(stream) {\n assert(IsWritableStreamLocked(stream) === true);\n assert(stream._state === 'writable');\n var promise = new Promise(function (resolve, reject) {\n var writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n var state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n assert(state === 'erroring');\n WritableStreamFinishErroring(stream);\n }\n function WritableStreamStartErroring(stream, reason) {\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n assert(stream._state === 'writable', 'state must be writable');\n var controller = stream._writableStreamController;\n assert(controller !== undefined, 'controller must not be undefined');\n stream._state = 'erroring';\n stream._storedError = reason;\n var writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n WritableStreamFinishErroring(stream);\n }\n }\n function WritableStreamFinishErroring(stream) {\n assert(stream._state === 'erroring', 'stream._state === erroring');\n assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');\n stream._state = 'errored';\n stream._writableStreamController.__errorSteps();\n var storedError = stream._storedError;\n for (var i = 0; i < stream._writeRequests.length; i++) {\n var writeRequest = stream._writeRequests[i];\n writeRequest._reject(storedError);\n }\n stream._writeRequests = [];\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring === true) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);\n promise.then(function () {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, function (reason) {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n assert(stream._state === 'writable' || stream._state === 'erroring');\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n if (state === 'erroring') {\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n assert(stream._state === 'writable' || stream._state === 'erroring');\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamMarkCloseRequestInFlight(stream) {\n assert(stream._inFlightCloseRequest === undefined);\n assert(stream._closeRequest !== undefined);\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request');\n assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty');\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n assert(stream._state === 'errored', '_stream_.[[state]] is `\"errored\"`');\n if (stream._closeRequest !== undefined) {\n assert(stream._inFlightCloseRequest === undefined);\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n writer._closedPromise.catch(function () {});\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n assert(stream._state === 'writable');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n var writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure === true) {\n defaultWriterReadyPromiseReset(writer);\n } else {\n assert(backpressure === false);\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n stream._backpressure = backpressure;\n }\n var WritableStreamDefaultWriter = function () {\n function WritableStreamDefaultWriter(stream) {\n _classCallCheck(this, WritableStreamDefaultWriter);\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\n }\n if (IsWritableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n var state = stream._state;\n if (state === 'writable') {\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\n defaultWriterReadyPromiseInitialize(this);\n } else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n this._readyPromise.catch(function () {});\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n } else {\n assert(state === 'errored', 'state must be errored');\n var storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n this._readyPromise.catch(function () {});\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n this._closedPromise.catch(function () {});\n }\n }\n _createClass(WritableStreamDefaultWriter, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('abort'));\n }\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('abort'));\n }\n return WritableStreamDefaultWriterAbort(this, reason);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('close'));\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return Promise.reject(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\n return Promise.reject(new TypeError('cannot close an already-closing stream'));\n }\n return WritableStreamDefaultWriterClose(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\n }\n assert(stream._writer !== undefined);\n WritableStreamDefaultWriterRelease(this);\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('write'));\n }\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n return WritableStreamDefaultWriterWrite(this, chunk);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n return WritableStreamDefaultWriterGetDesiredSize(this);\n }\n }, {\n key: 'ready',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('ready'));\n }\n return this._readyPromise;\n }\n }]);\n return WritableStreamDefaultWriter;\n }();\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return true;\n }\n function WritableStreamDefaultWriterAbort(writer, reason) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed'));\n }\n assert(state === 'writable' || state === 'erroring');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n var promise = new Promise(function (resolve, reject) {\n var closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n if (stream._backpressure === true && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.resolve();\n }\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n assert(state === 'writable' || state === 'erroring');\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n } else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n writer._closedPromise.catch(function () {});\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n } else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n writer._readyPromise.catch(function () {});\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n function WritableStreamDefaultWriterRelease(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n assert(stream._writer === writer);\n var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var controller = stream._writableStreamController;\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n if (stream !== writer._ownerWritableStream) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n var state = stream._state;\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return Promise.reject(stream._storedError);\n }\n assert(state === 'writable');\n var promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n var WritableStreamDefaultController = function () {\n function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {\n _classCallCheck(this, WritableStreamDefaultController);\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');\n }\n if (stream._writableStreamController !== undefined) {\n throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');\n }\n this._controlledWritableStream = stream;\n this._underlyingSink = underlyingSink;\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n this._started = false;\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n var backpressure = WritableStreamDefaultControllerGetBackpressure(this);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n _createClass(WritableStreamDefaultController, [{\n key: 'error',\n value: function error(e) {\n if (IsWritableStreamDefaultController(this) === false) {\n throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\n }\n var state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n return;\n }\n WritableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__abortSteps',\n value: function __abortSteps(reason) {\n return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]);\n }\n }, {\n key: '__errorSteps',\n value: function __errorSteps() {\n ResetQueue(this);\n }\n }, {\n key: '__startSteps',\n value: function __startSteps() {\n var _this = this;\n var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);\n var stream = this._controlledWritableStream;\n Promise.resolve(startResult).then(function () {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this);\n }, function (r) {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDealWithRejection(stream, r);\n }).catch(rethrowAssertionErrorRejection);\n }\n }]);\n return WritableStreamDefaultController;\n }();\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, 'close', 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n var strategySize = controller._strategySize;\n if (strategySize === undefined) {\n return 1;\n }\n try {\n return strategySize(chunk);\n } catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n var writeRecord = { chunk: chunk };\n try {\n EnqueueValueWithSize(controller, writeRecord, chunkSize);\n } catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n var stream = controller._controlledWritableStream;\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {\n return false;\n }\n return true;\n }\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n var stream = controller._controlledWritableStream;\n if (controller._started === false) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return;\n }\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n var writeRecord = PeekQueueValue(controller);\n if (writeRecord === 'close') {\n WritableStreamDefaultControllerProcessClose(controller);\n } else {\n WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n function WritableStreamDefaultControllerProcessClose(controller) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');\n var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []);\n sinkClosePromise.then(function () {\n WritableStreamFinishInFlightClose(stream);\n }, function (reason) {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n }\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);\n sinkWritePromise.then(function () {\n WritableStreamFinishInFlightWrite(stream);\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n DequeueValue(controller);\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (reason) {\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n function WritableStreamDefaultControllerError(controller, error) {\n var stream = controller._controlledWritableStream;\n assert(stream._state === 'writable');\n WritableStreamStartErroring(stream, error);\n }\n function streamBrandCheckException(name) {\n return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');\n }\n function defaultWriterBrandCheckException(name) {\n return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = new Promise(function (resolve, reject) {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n writer._closedPromise = Promise.resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterClosedPromiseReject(writer, reason) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined');\n assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined');\n assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending');\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResolve(writer) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n writer._readyPromise = Promise.resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n function defaultWriterReadyPromiseReject(writer, reason) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseReset(writer) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseResolve(writer) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _require = __w_pdfjs_require__(0),\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;\n var _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert;\n exports.DequeueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.');\n var pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\n };\n exports.EnqueueValueWithSize = function (container, value, size) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].');\n size = Number(size);\n if (!IsFiniteNonNegativeNumber(size)) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({\n value: value,\n size: size\n });\n container._queueTotalSize += size;\n };\n exports.PeekQueueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.');\n var pair = container._queue[0];\n return pair.value;\n };\n exports.ResetQueue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n container._queue = [];\n container._queueTotalSize = 0;\n };\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var _require = __w_pdfjs_require__(0),\n ArrayBufferCopy = _require.ArrayBufferCopy,\n CreateIterResultObject = _require.CreateIterResultObject,\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber,\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n TransferArrayBuffer = _require.TransferArrayBuffer,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark;\n var _require2 = __w_pdfjs_require__(0),\n createArrayFromList = _require2.createArrayFromList,\n createDataProperty = _require2.createDataProperty,\n typeIsObject = _require2.typeIsObject;\n var _require3 = __w_pdfjs_require__(1),\n assert = _require3.assert,\n rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;\n var _require4 = __w_pdfjs_require__(3),\n DequeueValue = _require4.DequeueValue,\n EnqueueValueWithSize = _require4.EnqueueValueWithSize,\n ResetQueue = _require4.ResetQueue;\n var _require5 = __w_pdfjs_require__(2),\n AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter,\n IsWritableStream = _require5.IsWritableStream,\n IsWritableStreamLocked = _require5.IsWritableStreamLocked,\n WritableStreamAbort = _require5.WritableStreamAbort,\n WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight;\n var ReadableStream = function () {\n function ReadableStream() {\n var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n highWaterMark = _ref.highWaterMark;\n _classCallCheck(this, ReadableStream);\n this._state = 'readable';\n this._reader = undefined;\n this._storedError = undefined;\n this._disturbed = false;\n this._readableStreamController = undefined;\n var type = underlyingSource.type;\n var typeString = String(type);\n if (typeString === 'bytes') {\n if (highWaterMark === undefined) {\n highWaterMark = 0;\n }\n this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);\n } else if (type === undefined) {\n if (highWaterMark === undefined) {\n highWaterMark = 1;\n }\n this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);\n } else {\n throw new RangeError('Invalid type is specified');\n }\n }\n _createClass(ReadableStream, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('cancel'));\n }\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n return ReadableStreamCancel(this, reason);\n }\n }, {\n key: 'getReader',\n value: function getReader() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mode = _ref2.mode;\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('getReader');\n }\n if (mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n mode = String(mode);\n if (mode === 'byob') {\n return AcquireReadableStreamBYOBReader(this);\n }\n throw new RangeError('Invalid mode is specified');\n }\n }, {\n key: 'pipeThrough',\n value: function pipeThrough(_ref3, options) {\n var writable = _ref3.writable,\n readable = _ref3.readable;\n var promise = this.pipeTo(writable, options);\n ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);\n return readable;\n }\n }, {\n key: 'pipeTo',\n value: function pipeTo(dest) {\n var _this = this;\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n preventClose = _ref4.preventClose,\n preventAbort = _ref4.preventAbort,\n preventCancel = _ref4.preventCancel;\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('pipeTo'));\n }\n if (IsWritableStream(dest) === false) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\n }\n preventClose = Boolean(preventClose);\n preventAbort = Boolean(preventAbort);\n preventCancel = Boolean(preventCancel);\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(dest) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n var reader = AcquireReadableStreamDefaultReader(this);\n var writer = AcquireWritableStreamDefaultWriter(dest);\n var shuttingDown = false;\n var currentWrite = Promise.resolve();\n return new Promise(function (resolve, reject) {\n function pipeLoop() {\n currentWrite = Promise.resolve();\n if (shuttingDown === true) {\n return Promise.resolve();\n }\n return writer._readyPromise.then(function () {\n return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {\n var value = _ref5.value,\n done = _ref5.done;\n if (done === true) {\n return;\n }\n currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {});\n });\n }).then(pipeLoop);\n }\n isOrBecomesErrored(_this, reader._closedPromise, function (storedError) {\n if (preventAbort === false) {\n shutdownWithAction(function () {\n return WritableStreamAbort(dest, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n isOrBecomesClosed(_this, reader._closedPromise, function () {\n if (preventClose === false) {\n shutdownWithAction(function () {\n return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);\n });\n } else {\n shutdown();\n }\n });\n if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {\n var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, destClosed);\n }, true, destClosed);\n } else {\n shutdown(true, destClosed);\n }\n }\n pipeLoop().catch(function (err) {\n currentWrite = Promise.resolve();\n rethrowAssertionErrorRejection(err);\n });\n function waitForWritesToFinish() {\n var oldCurrentWrite = currentWrite;\n return currentWrite.then(function () {\n return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;\n });\n }\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n } else {\n promise.catch(action).catch(rethrowAssertionErrorRejection);\n }\n }\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n } else {\n promise.then(action).catch(rethrowAssertionErrorRejection);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(doTheRest);\n } else {\n doTheRest();\n }\n function doTheRest() {\n action().then(function () {\n return finalize(originalIsError, originalError);\n }, function (newError) {\n return finalize(true, newError);\n }).catch(rethrowAssertionErrorRejection);\n }\n }\n function shutdown(isError, error) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(function () {\n return finalize(isError, error);\n }).catch(rethrowAssertionErrorRejection);\n } else {\n finalize(isError, error);\n }\n }\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n if (isError) {\n reject(error);\n } else {\n resolve(undefined);\n }\n }\n });\n }\n }, {\n key: 'tee',\n value: function tee() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('tee');\n }\n var branches = ReadableStreamTee(this, false);\n return createArrayFromList(branches);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n return IsReadableStreamLocked(this);\n }\n }]);\n return ReadableStream;\n }();\n module.exports = {\n ReadableStream: ReadableStream,\n IsReadableStreamDisturbed: IsReadableStreamDisturbed,\n ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize\n };\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return true;\n }\n function IsReadableStreamDisturbed(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');\n return stream._disturbed;\n }\n function IsReadableStreamLocked(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');\n if (stream._reader === undefined) {\n return false;\n }\n return true;\n }\n function ReadableStreamTee(stream, cloneForBranch2) {\n assert(IsReadableStream(stream) === true);\n assert(typeof cloneForBranch2 === 'boolean');\n var reader = AcquireReadableStreamDefaultReader(stream);\n var teeState = {\n closedOrErrored: false,\n canceled1: false,\n canceled2: false,\n reason1: undefined,\n reason2: undefined\n };\n teeState.promise = new Promise(function (resolve) {\n teeState._resolve = resolve;\n });\n var pull = create_ReadableStreamTeePullFunction();\n pull._reader = reader;\n pull._teeState = teeState;\n pull._cloneForBranch2 = cloneForBranch2;\n var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();\n cancel1._stream = stream;\n cancel1._teeState = teeState;\n var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();\n cancel2._stream = stream;\n cancel2._teeState = teeState;\n var underlyingSource1 = Object.create(Object.prototype);\n createDataProperty(underlyingSource1, 'pull', pull);\n createDataProperty(underlyingSource1, 'cancel', cancel1);\n var branch1Stream = new ReadableStream(underlyingSource1);\n var underlyingSource2 = Object.create(Object.prototype);\n createDataProperty(underlyingSource2, 'pull', pull);\n createDataProperty(underlyingSource2, 'cancel', cancel2);\n var branch2Stream = new ReadableStream(underlyingSource2);\n pull._branch1 = branch1Stream._readableStreamController;\n pull._branch2 = branch2Stream._readableStreamController;\n reader._closedPromise.catch(function (r) {\n if (teeState.closedOrErrored === true) {\n return;\n }\n ReadableStreamDefaultControllerError(pull._branch1, r);\n ReadableStreamDefaultControllerError(pull._branch2, r);\n teeState.closedOrErrored = true;\n });\n return [branch1Stream, branch2Stream];\n }\n function create_ReadableStreamTeePullFunction() {\n function f() {\n var reader = f._reader,\n branch1 = f._branch1,\n branch2 = f._branch2,\n teeState = f._teeState;\n return ReadableStreamDefaultReaderRead(reader).then(function (result) {\n assert(typeIsObject(result));\n var value = result.value;\n var done = result.done;\n assert(typeof done === 'boolean');\n if (done === true && teeState.closedOrErrored === false) {\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerClose(branch1);\n }\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerClose(branch2);\n }\n teeState.closedOrErrored = true;\n }\n if (teeState.closedOrErrored === true) {\n return;\n }\n var value1 = value;\n var value2 = value;\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerEnqueue(branch1, value1);\n }\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerEnqueue(branch2, value2);\n }\n });\n }\n return f;\n }\n function create_ReadableStreamTeeBranch1CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n teeState.canceled1 = true;\n teeState.reason1 = reason;\n if (teeState.canceled2 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n teeState._resolve(cancelResult);\n }\n return teeState.promise;\n }\n return f;\n }\n function create_ReadableStreamTeeBranch2CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n teeState.canceled2 = true;\n teeState.reason2 = reason;\n if (teeState.canceled1 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n teeState._resolve(cancelResult);\n }\n return teeState.promise;\n }\n return f;\n }\n function ReadableStreamAddReadIntoRequest(stream) {\n assert(IsReadableStreamBYOBReader(stream._reader) === true);\n assert(stream._state === 'readable' || stream._state === 'closed');\n var promise = new Promise(function (resolve, reject) {\n var readIntoRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._reader._readIntoRequests.push(readIntoRequest);\n });\n return promise;\n }\n function ReadableStreamAddReadRequest(stream) {\n assert(IsReadableStreamDefaultReader(stream._reader) === true);\n assert(stream._state === 'readable');\n var promise = new Promise(function (resolve, reject) {\n var readRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._reader._readRequests.push(readRequest);\n });\n return promise;\n }\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return Promise.resolve(undefined);\n }\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n ReadableStreamClose(stream);\n var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);\n return sourceCancelPromise.then(function () {\n return undefined;\n });\n }\n function ReadableStreamClose(stream) {\n assert(stream._state === 'readable');\n stream._state = 'closed';\n var reader = stream._reader;\n if (reader === undefined) {\n return undefined;\n }\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var _resolve = reader._readRequests[i]._resolve;\n _resolve(CreateIterResultObject(undefined, true));\n }\n reader._readRequests = [];\n }\n defaultReaderClosedPromiseResolve(reader);\n return undefined;\n }\n function ReadableStreamError(stream, e) {\n assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');\n assert(stream._state === 'readable', 'state must be readable');\n stream._state = 'errored';\n stream._storedError = e;\n var reader = stream._reader;\n if (reader === undefined) {\n return undefined;\n }\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var readRequest = reader._readRequests[i];\n readRequest._reject(e);\n }\n reader._readRequests = [];\n } else {\n assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');\n for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {\n var readIntoRequest = reader._readIntoRequests[_i];\n readIntoRequest._reject(e);\n }\n reader._readIntoRequests = [];\n }\n defaultReaderClosedPromiseReject(reader, e);\n reader._closedPromise.catch(function () {});\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n var reader = stream._reader;\n assert(reader._readIntoRequests.length > 0);\n var readIntoRequest = reader._readIntoRequests.shift();\n readIntoRequest._resolve(CreateIterResultObject(chunk, done));\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n var reader = stream._reader;\n assert(reader._readRequests.length > 0);\n var readRequest = reader._readRequests.shift();\n readRequest._resolve(CreateIterResultObject(chunk, done));\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (IsReadableStreamBYOBReader(reader) === false) {\n return false;\n }\n return true;\n }\n function ReadableStreamHasDefaultReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (IsReadableStreamDefaultReader(reader) === false) {\n return false;\n }\n return true;\n }\n var ReadableStreamDefaultReader = function () {\n function ReadableStreamDefaultReader(stream) {\n _classCallCheck(this, ReadableStreamDefaultReader);\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\n }\n if (IsReadableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = [];\n }\n _createClass(ReadableStreamDefaultReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n return ReadableStreamDefaultReaderRead(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsReadableStreamDefaultReader(this) === false) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n }]);\n return ReadableStreamDefaultReader;\n }();\n var ReadableStreamBYOBReader = function () {\n function ReadableStreamBYOBReader(stream) {\n _classCallCheck(this, ReadableStreamBYOBReader);\n if (!IsReadableStream(stream)) {\n throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');\n }\n if (IsReadableByteStreamController(stream._readableStreamController) === false) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');\n }\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = [];\n }\n _createClass(ReadableStreamBYOBReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read(view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n if (!ArrayBuffer.isView(view)) {\n return Promise.reject(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return Promise.reject(new TypeError('view must have non-zero byteLength'));\n }\n return ReadableStreamBYOBReaderRead(this, view);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n }]);\n return ReadableStreamBYOBReader;\n }();\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return true;\n }\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return true;\n }\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n } else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n } else {\n assert(stream._state === 'errored', 'state must be errored');\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n reader._closedPromise.catch(function () {});\n }\n }\n function ReadableStreamReaderGenericCancel(reader, reason) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n assert(reader._ownerReadableStream !== undefined);\n assert(reader._ownerReadableStream._reader === reader);\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n } else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n }\n reader._closedPromise.catch(function () {});\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n function ReadableStreamBYOBReaderRead(reader, view) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n stream._disturbed = true;\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n }\n function ReadableStreamDefaultReaderRead(reader) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return Promise.resolve(CreateIterResultObject(undefined, true));\n }\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n assert(stream._state === 'readable');\n return stream._readableStreamController.__pullSteps();\n }\n var ReadableStreamDefaultController = function () {\n function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {\n _classCallCheck(this, ReadableStreamDefaultController);\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');\n }\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');\n }\n this._controlledReadableStream = stream;\n this._underlyingSource = underlyingSource;\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n this._started = false;\n this._closeRequested = false;\n this._pullAgain = false;\n this._pulling = false;\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n var controller = this;\n var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, r);\n }).catch(rethrowAssertionErrorRejection);\n }\n _createClass(ReadableStreamDefaultController, [{\n key: 'close',\n value: function close() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n ReadableStreamDefaultControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n var stream = this._controlledReadableStream;\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n ReadableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n ResetQueue(this);\n return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n if (this._queue.length > 0) {\n var chunk = DequeueValue(this);\n if (this._closeRequested === true && this._queue.length === 0) {\n ReadableStreamClose(stream);\n } else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n return Promise.resolve(CreateIterResultObject(chunk, false));\n }\n var pendingPromise = ReadableStreamAddReadRequest(stream);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n return pendingPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n }]);\n return ReadableStreamDefaultController;\n }();\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n assert(controller._pullAgain === false);\n controller._pulling = true;\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n return ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n return undefined;\n }, function (e) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, e);\n }).catch(rethrowAssertionErrorRejection);\n return undefined;\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n if (stream._state === 'closed' || stream._state === 'errored') {\n return false;\n }\n if (controller._closeRequested === true) {\n return false;\n }\n if (controller._started === false) {\n return false;\n }\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableStreamDefaultControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n controller._closeRequested = true;\n if (controller._queue.length === 0) {\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n } else {\n var chunkSize = 1;\n if (controller._strategySize !== undefined) {\n var strategySize = controller._strategySize;\n try {\n chunkSize = strategySize(chunk);\n } catch (chunkSizeE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n throw chunkSizeE;\n }\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n } catch (enqueueE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n return undefined;\n }\n function ReadableStreamDefaultControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n assert(stream._state === 'readable');\n ResetQueue(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableStreamDefaultControllerError(controller, e);\n }\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n var ReadableStreamBYOBRequest = function () {\n function ReadableStreamBYOBRequest(controller, view) {\n _classCallCheck(this, ReadableStreamBYOBRequest);\n this._associatedReadableByteStreamController = controller;\n this._view = view;\n }\n _createClass(ReadableStreamBYOBRequest, [{\n key: 'respond',\n value: function respond(bytesWritten) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n }\n }, {\n key: 'respondWithNewView',\n value: function respondWithNewView(view) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }, {\n key: 'view',\n get: function get() {\n return this._view;\n }\n }]);\n return ReadableStreamBYOBRequest;\n }();\n var ReadableByteStreamController = function () {\n function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {\n _classCallCheck(this, ReadableByteStreamController);\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');\n }\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source');\n }\n this._controlledReadableStream = stream;\n this._underlyingByteSource = underlyingByteSource;\n this._pullAgain = false;\n this._pulling = false;\n ReadableByteStreamControllerClearPendingPullIntos(this);\n this._queue = this._queueTotalSize = undefined;\n ResetQueue(this);\n this._closeRequested = false;\n this._started = false;\n this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\n var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\n throw new RangeError('autoAllocateChunkSize must be a positive integer');\n }\n }\n this._autoAllocateChunkSize = autoAllocateChunkSize;\n this._pendingPullIntos = [];\n var controller = this;\n var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, function (r) {\n if (stream._state === 'readable') {\n ReadableByteStreamControllerError(controller, r);\n }\n }).catch(rethrowAssertionErrorRejection);\n }\n _createClass(ReadableByteStreamController, [{\n key: 'close',\n value: function close() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n ReadableByteStreamControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\n }\n ReadableByteStreamControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('error');\n }\n var stream = this._controlledReadableStream;\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n ReadableByteStreamControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n if (this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n firstDescriptor.bytesFilled = 0;\n }\n ResetQueue(this);\n return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n assert(ReadableStreamHasDefaultReader(stream) === true);\n if (this._queueTotalSize > 0) {\n assert(ReadableStreamGetNumReadRequests(stream) === 0);\n var entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n var view = void 0;\n try {\n view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n } catch (viewE) {\n return Promise.reject(viewE);\n }\n return Promise.resolve(CreateIterResultObject(view, false));\n }\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n var buffer = void 0;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n } catch (bufferE) {\n return Promise.reject(bufferE);\n }\n var pullIntoDescriptor = {\n buffer: buffer,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n ctor: Uint8Array,\n readerType: 'default'\n };\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n var promise = ReadableStreamAddReadRequest(stream);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n return promise;\n }\n }, {\n key: 'byobRequest',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n this._byobRequest = new ReadableStreamBYOBRequest(this, view);\n }\n return this._byobRequest;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n }]);\n return ReadableByteStreamController;\n }();\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {\n return false;\n }\n return true;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return true;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n assert(controller._pullAgain === false);\n controller._pulling = true;\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableByteStreamControllerError(controller, e);\n }\n }).catch(rethrowAssertionErrorRejection);\n return undefined;\n }\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = [];\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n assert(stream._state !== 'errored', 'state must not be errored');\n var done = false;\n if (stream._state === 'closed') {\n assert(pullIntoDescriptor.bytesFilled === 0);\n done = true;\n }\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n } else {\n assert(pullIntoDescriptor.readerType === 'byob');\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n var bytesFilled = pullIntoDescriptor.bytesFilled;\n var elementSize = pullIntoDescriptor.elementSize;\n assert(bytesFilled <= pullIntoDescriptor.byteLength);\n assert(bytesFilled % elementSize === 0);\n return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength\n });\n controller._queueTotalSize += byteLength;\n }\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n var elementSize = pullIntoDescriptor.elementSize;\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n var totalBytesToCopyRemaining = maxBytesToCopy;\n var ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n var queue = controller._queue;\n while (totalBytesToCopyRemaining > 0) {\n var headOfQueue = queue[0];\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n } else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n if (ready === false) {\n assert(controller._queueTotalSize === 0, 'queue must be empty');\n assert(pullIntoDescriptor.bytesFilled > 0);\n assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);\n }\n return ready;\n }\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n pullIntoDescriptor.bytesFilled += size;\n }\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n assert(controller._controlledReadableStream._state === 'readable');\n if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\n ReadableStreamClose(controller._controlledReadableStream);\n } else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === undefined) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = undefined;\n controller._byobRequest = undefined;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n assert(controller._closeRequested === false);\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n var pullIntoDescriptor = controller._pendingPullIntos[0];\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view) {\n var stream = controller._controlledReadableStream;\n var elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n var ctor = view.constructor;\n var pullIntoDescriptor = {\n buffer: view.buffer,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize: elementSize,\n ctor: ctor,\n readerType: 'byob'\n };\n if (controller._pendingPullIntos.length > 0) {\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n return ReadableStreamAddReadIntoRequest(stream);\n }\n if (stream._state === 'closed') {\n var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n return Promise.resolve(CreateIterResultObject(emptyView, true));\n }\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n return Promise.resolve(CreateIterResultObject(filledView, false));\n }\n if (controller._closeRequested === true) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n return Promise.reject(e);\n }\n }\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n var promise = ReadableStreamAddReadIntoRequest(stream);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n return promise;\n }\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');\n var stream = controller._controlledReadableStream;\n if (ReadableStreamHasBYOBReader(stream) === true) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos[0];\n var stream = controller._controlledReadableStream;\n if (stream._state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n } else {\n assert(stream._state === 'readable');\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n var descriptor = controller._pendingPullIntos.shift();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested === true) {\n return false;\n }\n if (controller._started === false) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos[0];\n if (firstPendingPullInto.bytesFilled > 0) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n ReadableStreamClose(stream);\n }\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n var buffer = chunk.buffer;\n var byteOffset = chunk.byteOffset;\n var byteLength = chunk.byteLength;\n var transferredBuffer = TransferArrayBuffer(buffer);\n if (ReadableStreamHasDefaultReader(stream) === true) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n } else {\n assert(controller._queue.length === 0);\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n } else if (ReadableStreamHasBYOBReader(stream) === true) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n } else {\n assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n }\n function ReadableByteStreamControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n assert(stream._state === 'readable');\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n bytesWritten = Number(bytesWritten);\n if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n throw new RangeError('bytesWritten must be a finite');\n }\n assert(controller._pendingPullIntos.length > 0);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n assert(controller._pendingPullIntos.length > 0);\n var firstDescriptor = controller._pendingPullIntos[0];\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.byteLength !== view.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n firstDescriptor.buffer = view.buffer;\n ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n }\n function streamBrandCheckException(name) {\n return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');\n }\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n function defaultReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');\n }\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = new Promise(function (resolve, reject) {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n reader._closedPromise = Promise.reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n reader._closedPromise = Promise.resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n assert(reader._closedPromise_resolve === undefined);\n assert(reader._closedPromise_reject === undefined);\n reader._closedPromise = Promise.reject(reason);\n }\n function defaultReaderClosedPromiseResolve(reader) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function byobReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');\n }\n function defaultControllerBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');\n }\n function byobRequestBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');\n }\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');\n }\n function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {\n try {\n Promise.prototype.then.call(promise, undefined, function () {});\n } catch (e) {}\n }\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var transformStream = __w_pdfjs_require__(6);\n var readableStream = __w_pdfjs_require__(4);\n var writableStream = __w_pdfjs_require__(2);\n exports.TransformStream = transformStream.TransformStream;\n exports.ReadableStream = readableStream.ReadableStream;\n exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;\n exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;\n exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;\n exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;\n exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;\n exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;\n exports.IsWritableStream = writableStream.IsWritableStream;\n exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;\n exports.WritableStream = writableStream.WritableStream;\n exports.WritableStreamAbort = writableStream.WritableStreamAbort;\n exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;\n exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;\n exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;\n exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n var _require2 = __w_pdfjs_require__(0),\n InvokeOrNoop = _require2.InvokeOrNoop,\n PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,\n PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,\n typeIsObject = _require2.typeIsObject;\n var _require3 = __w_pdfjs_require__(4),\n ReadableStream = _require3.ReadableStream,\n ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize;\n var _require4 = __w_pdfjs_require__(2),\n WritableStream = _require4.WritableStream,\n WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;\n function TransformStreamCloseReadable(transformStream) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n TransformStreamCloseReadableInternal(transformStream);\n }\n function TransformStreamEnqueueToReadable(transformStream, chunk) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n var controller = transformStream._readableController;\n try {\n ReadableStreamDefaultControllerEnqueue(controller, chunk);\n } catch (e) {\n transformStream._readableClosed = true;\n TransformStreamErrorIfNeeded(transformStream, e);\n throw transformStream._storedError;\n }\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n var maybeBackpressure = desiredSize <= 0;\n if (maybeBackpressure === true && transformStream._backpressure === false) {\n TransformStreamSetBackpressure(transformStream, true);\n }\n }\n function TransformStreamError(transformStream, e) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n TransformStreamErrorInternal(transformStream, e);\n }\n function TransformStreamCloseReadableInternal(transformStream) {\n assert(transformStream._errored === false);\n assert(transformStream._readableClosed === false);\n try {\n ReadableStreamDefaultControllerClose(transformStream._readableController);\n } catch (e) {\n assert(false);\n }\n transformStream._readableClosed = true;\n }\n function TransformStreamErrorIfNeeded(transformStream, e) {\n if (transformStream._errored === false) {\n TransformStreamErrorInternal(transformStream, e);\n }\n }\n function TransformStreamErrorInternal(transformStream, e) {\n assert(transformStream._errored === false);\n transformStream._errored = true;\n transformStream._storedError = e;\n if (transformStream._writableDone === false) {\n WritableStreamDefaultControllerError(transformStream._writableController, e);\n }\n if (transformStream._readableClosed === false) {\n ReadableStreamDefaultControllerError(transformStream._readableController, e);\n }\n }\n function TransformStreamReadableReadyPromise(transformStream) {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n if (transformStream._backpressure === false) {\n return Promise.resolve();\n }\n assert(transformStream._backpressure === true, '_backpressure should have been initialized');\n return transformStream._backpressureChangePromise;\n }\n function TransformStreamSetBackpressure(transformStream, backpressure) {\n assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');\n if (transformStream._backpressureChangePromise !== undefined) {\n transformStream._backpressureChangePromise_resolve(backpressure);\n }\n transformStream._backpressureChangePromise = new Promise(function (resolve) {\n transformStream._backpressureChangePromise_resolve = resolve;\n });\n transformStream._backpressureChangePromise.then(function (resolution) {\n assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');\n });\n transformStream._backpressure = backpressure;\n }\n function TransformStreamDefaultTransform(chunk, transformStreamController) {\n var transformStream = transformStreamController._controlledTransformStream;\n TransformStreamEnqueueToReadable(transformStream, chunk);\n return Promise.resolve();\n }\n function TransformStreamTransform(transformStream, chunk) {\n assert(transformStream._errored === false);\n assert(transformStream._transforming === false);\n assert(transformStream._backpressure === false);\n transformStream._transforming = true;\n var transformer = transformStream._transformer;\n var controller = transformStream._transformStreamController;\n var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);\n return transformPromise.then(function () {\n transformStream._transforming = false;\n return TransformStreamReadableReadyPromise(transformStream);\n }, function (e) {\n TransformStreamErrorIfNeeded(transformStream, e);\n return Promise.reject(e);\n });\n }\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return true;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return true;\n }\n var TransformStreamSink = function () {\n function TransformStreamSink(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSink);\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n _createClass(TransformStreamSink, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n transformStream._writableController = c;\n return this._startPromise.then(function () {\n return TransformStreamReadableReadyPromise(transformStream);\n });\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n var transformStream = this._transformStream;\n return TransformStreamTransform(transformStream, chunk);\n }\n }, {\n key: 'abort',\n value: function abort() {\n var transformStream = this._transformStream;\n transformStream._writableDone = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted'));\n }\n }, {\n key: 'close',\n value: function close() {\n var transformStream = this._transformStream;\n assert(transformStream._transforming === false);\n transformStream._writableDone = true;\n var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);\n return flushPromise.then(function () {\n if (transformStream._errored === true) {\n return Promise.reject(transformStream._storedError);\n }\n if (transformStream._readableClosed === false) {\n TransformStreamCloseReadableInternal(transformStream);\n }\n return Promise.resolve();\n }).catch(function (r) {\n TransformStreamErrorIfNeeded(transformStream, r);\n return Promise.reject(transformStream._storedError);\n });\n }\n }]);\n return TransformStreamSink;\n }();\n var TransformStreamSource = function () {\n function TransformStreamSource(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSource);\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n _createClass(TransformStreamSource, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n transformStream._readableController = c;\n return this._startPromise.then(function () {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n if (transformStream._backpressure === true) {\n return Promise.resolve();\n }\n assert(transformStream._backpressure === false, '_backpressure should have been initialized');\n return transformStream._backpressureChangePromise;\n });\n }\n }, {\n key: 'pull',\n value: function pull() {\n var transformStream = this._transformStream;\n assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n TransformStreamSetBackpressure(transformStream, false);\n return transformStream._backpressureChangePromise;\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n var transformStream = this._transformStream;\n transformStream._readableClosed = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled'));\n }\n }]);\n return TransformStreamSource;\n }();\n var TransformStreamDefaultController = function () {\n function TransformStreamDefaultController(transformStream) {\n _classCallCheck(this, TransformStreamDefaultController);\n if (IsTransformStream(transformStream) === false) {\n throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');\n }\n if (transformStream._transformStreamController !== undefined) {\n throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');\n }\n this._controlledTransformStream = transformStream;\n }\n _createClass(TransformStreamDefaultController, [{\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n TransformStreamCloseReadable(this._controlledTransformStream);\n }\n }, {\n key: 'error',\n value: function error(reason) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n TransformStreamError(this._controlledTransformStream, reason);\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n var transformStream = this._controlledTransformStream;\n var readableController = transformStream._readableController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n }]);\n return TransformStreamDefaultController;\n }();\n var TransformStream = function () {\n function TransformStream() {\n var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, TransformStream);\n this._transformer = transformer;\n var readableStrategy = transformer.readableStrategy,\n writableStrategy = transformer.writableStrategy;\n this._transforming = false;\n this._errored = false;\n this._storedError = undefined;\n this._writableController = undefined;\n this._readableController = undefined;\n this._transformStreamController = undefined;\n this._writableDone = false;\n this._readableClosed = false;\n this._backpressure = undefined;\n this._backpressureChangePromise = undefined;\n this._backpressureChangePromise_resolve = undefined;\n this._transformStreamController = new TransformStreamDefaultController(this);\n var startPromise_resolve = void 0;\n var startPromise = new Promise(function (resolve) {\n startPromise_resolve = resolve;\n });\n var source = new TransformStreamSource(this, startPromise);\n this._readable = new ReadableStream(source, readableStrategy);\n var sink = new TransformStreamSink(this, startPromise);\n this._writable = new WritableStream(sink, writableStrategy);\n assert(this._writableController !== undefined);\n assert(this._readableController !== undefined);\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);\n TransformStreamSetBackpressure(this, desiredSize <= 0);\n var transformStream = this;\n var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);\n startPromise_resolve(startResult);\n startPromise.catch(function (e) {\n if (transformStream._errored === false) {\n transformStream._errored = true;\n transformStream._storedError = e;\n }\n });\n }\n _createClass(TransformStream, [{\n key: 'readable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('readable');\n }\n return this._readable;\n }\n }, {\n key: 'writable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('writable');\n }\n return this._writable;\n }\n }]);\n return TransformStream;\n }();\n module.exports = { TransformStream: TransformStream };\n function defaultControllerBrandCheckException(name) {\n return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');\n }\n function streamBrandCheckException(name) {\n return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');\n }\n}, function (module, exports, __w_pdfjs_require__) {\n module.exports = __w_pdfjs_require__(5);\n}]));\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n{\n var isURLSupported = false;\n try {\n if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) {\n var u = new URL('b', 'http://a');\n u.pathname = 'c%20d';\n isURLSupported = u.href === 'http://a/c%20d';\n }\n } catch (ex) {}\n if (isURLSupported) {\n exports.URL = URL;\n } else {\n var PolyfillURL = __w_pdfjs_require__(129).URL;\n var OriginalURL = __w_pdfjs_require__(4).URL;\n if (OriginalURL) {\n PolyfillURL.createObjectURL = function (blob) {\n return OriginalURL.createObjectURL.apply(OriginalURL, arguments);\n };\n PolyfillURL.revokeObjectURL = function (url) {\n OriginalURL.revokeObjectURL(url);\n };\n }\n exports.URL = PolyfillURL;\n }\n}\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n(function URLConstructorClosure() {\n 'use strict';\n\n var relative = Object.create(null);\n relative['ftp'] = 21;\n relative['file'] = 0;\n relative['gopher'] = 70;\n relative['http'] = 80;\n relative['https'] = 443;\n relative['ws'] = 80;\n relative['wss'] = 443;\n var relativePathDotMapping = Object.create(null);\n relativePathDotMapping['%2e'] = '.';\n relativePathDotMapping['.%2e'] = '..';\n relativePathDotMapping['%2e.'] = '..';\n relativePathDotMapping['%2e%2e'] = '..';\n function isRelativeScheme(scheme) {\n return relative[scheme] !== undefined;\n }\n function invalid() {\n clear.call(this);\n this._isInvalid = true;\n }\n function IDNAToASCII(h) {\n if (h === '') {\n invalid.call(this);\n }\n return h.toLowerCase();\n }\n function percentEscape(c) {\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) {\n return c;\n }\n return encodeURIComponent(c);\n }\n function percentEscapeQuery(c) {\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) {\n return c;\n }\n return encodeURIComponent(c);\n }\n var EOF,\n ALPHA = /[a-zA-Z]/,\n ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n function parse(input, stateOverride, base) {\n function err(message) {\n errors.push(message);\n }\n var state = stateOverride || 'scheme start',\n cursor = 0,\n buffer = '',\n seenAt = false,\n seenBracket = false,\n errors = [];\n loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) {\n var c = input[cursor];\n switch (state) {\n case 'scheme start':\n if (c && ALPHA.test(c)) {\n buffer += c.toLowerCase();\n state = 'scheme';\n } else if (!stateOverride) {\n buffer = '';\n state = 'no scheme';\n continue;\n } else {\n err('Invalid scheme.');\n break loop;\n }\n break;\n case 'scheme':\n if (c && ALPHANUMERIC.test(c)) {\n buffer += c.toLowerCase();\n } else if (c === ':') {\n this._scheme = buffer;\n buffer = '';\n if (stateOverride) {\n break loop;\n }\n if (isRelativeScheme(this._scheme)) {\n this._isRelative = true;\n }\n if (this._scheme === 'file') {\n state = 'relative';\n } else if (this._isRelative && base && base._scheme === this._scheme) {\n state = 'relative or authority';\n } else if (this._isRelative) {\n state = 'authority first slash';\n } else {\n state = 'scheme data';\n }\n } else if (!stateOverride) {\n buffer = '';\n cursor = 0;\n state = 'no scheme';\n continue;\n } else if (c === EOF) {\n break loop;\n } else {\n err('Code point not allowed in scheme: ' + c);\n break loop;\n }\n break;\n case 'scheme data':\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else {\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._schemeData += percentEscape(c);\n }\n }\n break;\n case 'no scheme':\n if (!base || !isRelativeScheme(base._scheme)) {\n err('Missing scheme.');\n invalid.call(this);\n } else {\n state = 'relative';\n continue;\n }\n break;\n case 'relative or authority':\n if (c === '/' && input[cursor + 1] === '/') {\n state = 'authority ignore slashes';\n } else {\n err('Expected /, got: ' + c);\n state = 'relative';\n continue;\n }\n break;\n case 'relative':\n this._isRelative = true;\n if (this._scheme !== 'file') {\n this._scheme = base._scheme;\n }\n if (c === EOF) {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._username = base._username;\n this._password = base._password;\n break loop;\n } else if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n state = 'relative slash';\n } else if (c === '?') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = '?';\n this._username = base._username;\n this._password = base._password;\n state = 'query';\n } else if (c === '#') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._fragment = '#';\n this._username = base._username;\n this._password = base._password;\n state = 'fragment';\n } else {\n var nextC = input[cursor + 1];\n var nextNextC = input[cursor + 2];\n if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\\\' && nextNextC !== '?' && nextNextC !== '#') {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n this._path = base._path.slice();\n this._path.pop();\n }\n state = 'relative path';\n continue;\n }\n break;\n case 'relative slash':\n if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n if (this._scheme === 'file') {\n state = 'file host';\n } else {\n state = 'authority ignore slashes';\n }\n } else {\n if (this._scheme !== 'file') {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n }\n state = 'relative path';\n continue;\n }\n break;\n case 'authority first slash':\n if (c === '/') {\n state = 'authority second slash';\n } else {\n err('Expected \\'/\\', got: ' + c);\n state = 'authority ignore slashes';\n continue;\n }\n break;\n case 'authority second slash':\n state = 'authority ignore slashes';\n if (c !== '/') {\n err('Expected \\'/\\', got: ' + c);\n continue;\n }\n break;\n case 'authority ignore slashes':\n if (c !== '/' && c !== '\\\\') {\n state = 'authority';\n continue;\n } else {\n err('Expected authority, got: ' + c);\n }\n break;\n case 'authority':\n if (c === '@') {\n if (seenAt) {\n err('@ already seen.');\n buffer += '%40';\n }\n seenAt = true;\n for (var i = 0; i < buffer.length; i++) {\n var cp = buffer[i];\n if (cp === '\\t' || cp === '\\n' || cp === '\\r') {\n err('Invalid whitespace in authority.');\n continue;\n }\n if (cp === ':' && this._password === null) {\n this._password = '';\n continue;\n }\n var tempC = percentEscape(cp);\n if (this._password !== null) {\n this._password += tempC;\n } else {\n this._username += tempC;\n }\n }\n buffer = '';\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n cursor -= buffer.length;\n buffer = '';\n state = 'host';\n continue;\n } else {\n buffer += c;\n }\n break;\n case 'file host':\n if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) {\n state = 'relative path';\n } else if (buffer.length === 0) {\n state = 'relative path start';\n } else {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n }\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid whitespace in file host.');\n } else {\n buffer += c;\n }\n break;\n case 'host':\n case 'hostname':\n if (c === ':' && !seenBracket) {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'port';\n if (stateOverride === 'hostname') {\n break loop;\n }\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n if (stateOverride) {\n break loop;\n }\n continue;\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n if (c === '[') {\n seenBracket = true;\n } else if (c === ']') {\n seenBracket = false;\n }\n buffer += c;\n } else {\n err('Invalid code point in host/hostname: ' + c);\n }\n break;\n case 'port':\n if (/[0-9]/.test(c)) {\n buffer += c;\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#' || stateOverride) {\n if (buffer !== '') {\n var temp = parseInt(buffer, 10);\n if (temp !== relative[this._scheme]) {\n this._port = temp + '';\n }\n buffer = '';\n }\n if (stateOverride) {\n break loop;\n }\n state = 'relative path start';\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid code point in port: ' + c);\n } else {\n invalid.call(this);\n }\n break;\n case 'relative path start':\n if (c === '\\\\') {\n err('\\'\\\\\\' not allowed in path.');\n }\n state = 'relative path';\n if (c !== '/' && c !== '\\\\') {\n continue;\n }\n break;\n case 'relative path':\n if (c === EOF || c === '/' || c === '\\\\' || !stateOverride && (c === '?' || c === '#')) {\n if (c === '\\\\') {\n err('\\\\ not allowed in relative path.');\n }\n var tmp;\n if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n buffer = tmp;\n }\n if (buffer === '..') {\n this._path.pop();\n if (c !== '/' && c !== '\\\\') {\n this._path.push('');\n }\n } else if (buffer === '.' && c !== '/' && c !== '\\\\') {\n this._path.push('');\n } else if (buffer !== '.') {\n if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') {\n buffer = buffer[0] + ':';\n }\n this._path.push(buffer);\n }\n buffer = '';\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n }\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n buffer += percentEscape(c);\n }\n break;\n case 'query':\n if (!stateOverride && c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._query += percentEscapeQuery(c);\n }\n break;\n case 'fragment':\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._fragment += c;\n }\n break;\n }\n cursor++;\n }\n }\n function clear() {\n this._scheme = '';\n this._schemeData = '';\n this._username = '';\n this._password = null;\n this._host = '';\n this._port = '';\n this._path = [];\n this._query = '';\n this._fragment = '';\n this._isInvalid = false;\n this._isRelative = false;\n }\n function JURL(url, base) {\n if (base !== undefined && !(base instanceof JURL)) {\n base = new JURL(String(base));\n }\n this._url = url;\n clear.call(this);\n var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n parse.call(this, input, null, base);\n }\n JURL.prototype = {\n toString: function toString() {\n return this.href;\n },\n\n get href() {\n if (this._isInvalid) {\n return this._url;\n }\n var authority = '';\n if (this._username !== '' || this._password !== null) {\n authority = this._username + (this._password !== null ? ':' + this._password : '') + '@';\n }\n return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;\n },\n set href(value) {\n clear.call(this);\n parse.call(this, value);\n },\n get protocol() {\n return this._scheme + ':';\n },\n set protocol(value) {\n if (this._isInvalid) {\n return;\n }\n parse.call(this, value + ':', 'scheme start');\n },\n get host() {\n return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;\n },\n set host(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'host');\n },\n get hostname() {\n return this._host;\n },\n set hostname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'hostname');\n },\n get port() {\n return this._port;\n },\n set port(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'port');\n },\n get pathname() {\n return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;\n },\n set pathname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n this._path = [];\n parse.call(this, value, 'relative path start');\n },\n get search() {\n return this._isInvalid || !this._query || this._query === '?' ? '' : this._query;\n },\n set search(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n this._query = '?';\n if (value[0] === '?') {\n value = value.slice(1);\n }\n parse.call(this, value, 'query');\n },\n get hash() {\n return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment;\n },\n set hash(value) {\n if (this._isInvalid) {\n return;\n }\n this._fragment = '#';\n if (value[0] === '#') {\n value = value.slice(1);\n }\n parse.call(this, value, 'fragment');\n },\n get origin() {\n var host;\n if (this._isInvalid || !this._scheme) {\n return '';\n }\n switch (this._scheme) {\n case 'data':\n case 'file':\n case 'javascript':\n case 'mailto':\n return 'null';\n case 'blob':\n try {\n return new JURL(this._schemeData).origin || 'null';\n } catch (_) {}\n return 'null';\n }\n host = this.host;\n if (!host) {\n return '';\n }\n return this._scheme + '://' + host;\n }\n };\n exports.URL = JURL;\n})();\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NetworkPdfManager = exports.LocalPdfManager = undefined;\n\nvar _regenerator = __w_pdfjs_require__(131);\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _chunked_stream = __w_pdfjs_require__(135);\n\nvar _document = __w_pdfjs_require__(136);\n\nvar _stream = __w_pdfjs_require__(140);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar BasePdfManager = function () {\n function BasePdfManager() {\n _classCallCheck(this, BasePdfManager);\n\n if (this.constructor === BasePdfManager) {\n (0, _util.unreachable)('Cannot initialize BasePdfManager.');\n }\n }\n\n _createClass(BasePdfManager, [{\n key: 'onLoadedStream',\n value: function onLoadedStream() {\n (0, _util.unreachable)('Abstract method `onLoadedStream` called');\n }\n }, {\n key: 'ensureDoc',\n value: function ensureDoc(prop, args) {\n return this.ensure(this.pdfDocument, prop, args);\n }\n }, {\n key: 'ensureXRef',\n value: function ensureXRef(prop, args) {\n return this.ensure(this.pdfDocument.xref, prop, args);\n }\n }, {\n key: 'ensureCatalog',\n value: function ensureCatalog(prop, args) {\n return this.ensure(this.pdfDocument.catalog, prop, args);\n }\n }, {\n key: 'getPage',\n value: function getPage(pageIndex) {\n return this.pdfDocument.getPage(pageIndex);\n }\n }, {\n key: 'cleanup',\n value: function cleanup() {\n return this.pdfDocument.cleanup();\n }\n }, {\n key: 'ensure',\n value: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee(obj, prop, args) {\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n (0, _util.unreachable)('Abstract method `ensure` called');\n\n case 1:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function ensure(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n }\n\n return ensure;\n }()\n }, {\n key: 'requestRange',\n value: function requestRange(begin, end) {\n (0, _util.unreachable)('Abstract method `requestRange` called');\n }\n }, {\n key: 'requestLoadedStream',\n value: function requestLoadedStream() {\n (0, _util.unreachable)('Abstract method `requestLoadedStream` called');\n }\n }, {\n key: 'sendProgressiveData',\n value: function sendProgressiveData(chunk) {\n (0, _util.unreachable)('Abstract method `sendProgressiveData` called');\n }\n }, {\n key: 'updatePassword',\n value: function updatePassword(password) {\n this._password = password;\n }\n }, {\n key: 'terminate',\n value: function terminate() {\n (0, _util.unreachable)('Abstract method `terminate` called');\n }\n }, {\n key: 'docId',\n get: function get() {\n return this._docId;\n }\n }, {\n key: 'password',\n get: function get() {\n return this._password;\n }\n }, {\n key: 'docBaseUrl',\n get: function get() {\n var docBaseUrl = null;\n if (this._docBaseUrl) {\n var absoluteUrl = (0, _util.createValidAbsoluteUrl)(this._docBaseUrl);\n if (absoluteUrl) {\n docBaseUrl = absoluteUrl.href;\n } else {\n (0, _util.warn)('Invalid absolute docBaseUrl: \"' + this._docBaseUrl + '\".');\n }\n }\n return (0, _util.shadow)(this, 'docBaseUrl', docBaseUrl);\n }\n }]);\n\n return BasePdfManager;\n}();\n\nvar LocalPdfManager = function (_BasePdfManager) {\n _inherits(LocalPdfManager, _BasePdfManager);\n\n function LocalPdfManager(docId, data, password, evaluatorOptions, docBaseUrl) {\n _classCallCheck(this, LocalPdfManager);\n\n var _this = _possibleConstructorReturn(this, (LocalPdfManager.__proto__ || Object.getPrototypeOf(LocalPdfManager)).call(this));\n\n _this._docId = docId;\n _this._password = password;\n _this._docBaseUrl = docBaseUrl;\n _this.evaluatorOptions = evaluatorOptions;\n var stream = new _stream.Stream(data);\n _this.pdfDocument = new _document.PDFDocument(_this, stream);\n _this._loadedStreamPromise = Promise.resolve(stream);\n return _this;\n }\n\n _createClass(LocalPdfManager, [{\n key: 'ensure',\n value: function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2(obj, prop, args) {\n var value;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n value = obj[prop];\n\n if (!(typeof value === 'function')) {\n _context2.next = 3;\n break;\n }\n\n return _context2.abrupt('return', value.apply(obj, args));\n\n case 3:\n return _context2.abrupt('return', value);\n\n case 4:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function ensure(_x4, _x5, _x6) {\n return _ref2.apply(this, arguments);\n }\n\n return ensure;\n }()\n }, {\n key: 'requestRange',\n value: function requestRange(begin, end) {\n return Promise.resolve();\n }\n }, {\n key: 'requestLoadedStream',\n value: function requestLoadedStream() {}\n }, {\n key: 'onLoadedStream',\n value: function onLoadedStream() {\n return this._loadedStreamPromise;\n }\n }, {\n key: 'terminate',\n value: function terminate() {}\n }]);\n\n return LocalPdfManager;\n}(BasePdfManager);\n\nvar NetworkPdfManager = function (_BasePdfManager2) {\n _inherits(NetworkPdfManager, _BasePdfManager2);\n\n function NetworkPdfManager(docId, pdfNetworkStream, args, evaluatorOptions, docBaseUrl) {\n _classCallCheck(this, NetworkPdfManager);\n\n var _this2 = _possibleConstructorReturn(this, (NetworkPdfManager.__proto__ || Object.getPrototypeOf(NetworkPdfManager)).call(this));\n\n _this2._docId = docId;\n _this2._password = args.password;\n _this2._docBaseUrl = docBaseUrl;\n _this2.msgHandler = args.msgHandler;\n _this2.evaluatorOptions = evaluatorOptions;\n _this2.streamManager = new _chunked_stream.ChunkedStreamManager(pdfNetworkStream, {\n msgHandler: args.msgHandler,\n url: args.url,\n length: args.length,\n disableAutoFetch: args.disableAutoFetch,\n rangeChunkSize: args.rangeChunkSize\n });\n _this2.pdfDocument = new _document.PDFDocument(_this2, _this2.streamManager.getStream());\n return _this2;\n }\n\n _createClass(NetworkPdfManager, [{\n key: 'ensure',\n value: function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee3(obj, prop, args) {\n var value;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n value = obj[prop];\n\n if (!(typeof value === 'function')) {\n _context3.next = 4;\n break;\n }\n\n return _context3.abrupt('return', value.apply(obj, args));\n\n case 4:\n return _context3.abrupt('return', value);\n\n case 7:\n _context3.prev = 7;\n _context3.t0 = _context3['catch'](0);\n\n if (_context3.t0 instanceof _util.MissingDataException) {\n _context3.next = 11;\n break;\n }\n\n throw _context3.t0;\n\n case 11:\n _context3.next = 13;\n return this.requestRange(_context3.t0.begin, _context3.t0.end);\n\n case 13:\n return _context3.abrupt('return', this.ensure(obj, prop, args));\n\n case 14:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this, [[0, 7]]);\n }));\n\n function ensure(_x7, _x8, _x9) {\n return _ref3.apply(this, arguments);\n }\n\n return ensure;\n }()\n }, {\n key: 'requestRange',\n value: function requestRange(begin, end) {\n return this.streamManager.requestRange(begin, end);\n }\n }, {\n key: 'requestLoadedStream',\n value: function requestLoadedStream() {\n this.streamManager.requestAllChunks();\n }\n }, {\n key: 'sendProgressiveData',\n value: function sendProgressiveData(chunk) {\n this.streamManager.onReceiveData({ chunk: chunk });\n }\n }, {\n key: 'onLoadedStream',\n value: function onLoadedStream() {\n return this.streamManager.onLoadedStream();\n }\n }, {\n key: 'terminate',\n value: function terminate() {\n this.streamManager.abort();\n }\n }]);\n\n return NetworkPdfManager;\n}(BasePdfManager);\n\nexports.LocalPdfManager = LocalPdfManager;\nexports.NetworkPdfManager = NetworkPdfManager;\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __w_pdfjs_require__(132);\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar g = function () {\n return this;\n}() || Function(\"return this\")();\nvar hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\ng.regeneratorRuntime = undefined;\nmodule.exports = __w_pdfjs_require__(133);\nif (hadRuntime) {\n g.regeneratorRuntime = oldRuntime;\n} else {\n try {\n delete g.regeneratorRuntime;\n } catch (e) {\n g.regeneratorRuntime = undefined;\n }\n}\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n!function (global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined;\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n var inModule = ( false ? undefined : _typeof(module)) === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n module.exports = runtime;\n }\n return;\n }\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n runtime.wrap = wrap;\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n IteratorPrototype = NativeIteratorPrototype;\n }\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\";\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n runtime.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n runtime.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n runtime.awrap = function (arg) {\n return { __await: arg };\n };\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value && (typeof value === \"undefined\" ? \"undefined\" : _typeof(value)) === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n return Promise.resolve(value).then(function (unwrapped) {\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n var previousPromise;\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n this._invoke = enqueue;\n }\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n runtime.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n return doneResult();\n }\n context.method = method;\n context.arg = arg;\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (context.method === \"next\") {\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n if (record.arg === ContinueSentinel) {\n continue;\n }\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n context.delegate = null;\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n if (context.method === \"throw\") {\n return ContinueSentinel;\n }\n }\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n var info = record.arg;\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n if (info.done) {\n context[delegate.resultName] = info.value;\n context.next = delegate.nextLoc;\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n return info;\n }\n context.delegate = null;\n return ContinueSentinel;\n }\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\";\n Gp[iteratorSymbol] = function () {\n return this;\n };\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n runtime.keys = function (object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n next.done = true;\n return next;\n };\n };\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n next.value = undefined;\n next.done = true;\n return next;\n };\n return next.next = next;\n }\n }\n return { next: doneResult };\n }\n runtime.values = values;\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n if (!skipTempReset) {\n for (var name in this) {\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n if (caught) {\n context.method = \"next\";\n context.arg = undefined;\n }\n return !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n if (entry.tryLoc === \"root\") {\n return handle(\"end\");\n }\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n finallyEntry = null;\n }\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n if (this.method === \"next\") {\n this.arg = undefined;\n }\n return ContinueSentinel;\n }\n };\n}(function () {\n return this;\n}() || Function(\"return this\")());\n/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(134)(module)))\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n module.paths = [];\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n return module;\n};\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChunkedStreamManager = exports.ChunkedStream = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar ChunkedStream = function ChunkedStreamClosure() {\n function ChunkedStream(length, chunkSize, manager) {\n this.bytes = new Uint8Array(length);\n this.start = 0;\n this.pos = 0;\n this.end = length;\n this.chunkSize = chunkSize;\n this.loadedChunks = [];\n this.numChunksLoaded = 0;\n this.numChunks = Math.ceil(length / chunkSize);\n this.manager = manager;\n this.progressiveDataLength = 0;\n this.lastSuccessfulEnsureByteChunk = -1;\n }\n ChunkedStream.prototype = {\n getMissingChunks: function ChunkedStream_getMissingChunks() {\n var chunks = [];\n for (var chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n chunks.push(chunk);\n }\n }\n return chunks;\n },\n getBaseStreams: function ChunkedStream_getBaseStreams() {\n return [this];\n },\n allChunksLoaded: function ChunkedStream_allChunksLoaded() {\n return this.numChunksLoaded === this.numChunks;\n },\n onReceiveData: function ChunkedStream_onReceiveData(begin, chunk) {\n var end = begin + chunk.byteLength;\n if (begin % this.chunkSize !== 0) {\n throw new Error('Bad begin offset: ' + begin);\n }\n var length = this.bytes.length;\n if (end % this.chunkSize !== 0 && end !== length) {\n throw new Error('Bad end offset: ' + end);\n }\n this.bytes.set(new Uint8Array(chunk), begin);\n var chunkSize = this.chunkSize;\n var beginChunk = Math.floor(begin / chunkSize);\n var endChunk = Math.floor((end - 1) / chunkSize) + 1;\n var curChunk;\n for (curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n if (!this.loadedChunks[curChunk]) {\n this.loadedChunks[curChunk] = true;\n ++this.numChunksLoaded;\n }\n }\n },\n onReceiveProgressiveData: function ChunkedStream_onReceiveProgressiveData(data) {\n var position = this.progressiveDataLength;\n var beginChunk = Math.floor(position / this.chunkSize);\n this.bytes.set(new Uint8Array(data), position);\n position += data.byteLength;\n this.progressiveDataLength = position;\n var endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize);\n var curChunk;\n for (curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n if (!this.loadedChunks[curChunk]) {\n this.loadedChunks[curChunk] = true;\n ++this.numChunksLoaded;\n }\n }\n },\n ensureByte: function ChunkedStream_ensureByte(pos) {\n var chunk = Math.floor(pos / this.chunkSize);\n if (chunk === this.lastSuccessfulEnsureByteChunk) {\n return;\n }\n if (!this.loadedChunks[chunk]) {\n throw new _util.MissingDataException(pos, pos + 1);\n }\n this.lastSuccessfulEnsureByteChunk = chunk;\n },\n ensureRange: function ChunkedStream_ensureRange(begin, end) {\n if (begin >= end) {\n return;\n }\n if (end <= this.progressiveDataLength) {\n return;\n }\n var chunkSize = this.chunkSize;\n var beginChunk = Math.floor(begin / chunkSize);\n var endChunk = Math.floor((end - 1) / chunkSize) + 1;\n for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n throw new _util.MissingDataException(begin, end);\n }\n }\n },\n nextEmptyChunk: function ChunkedStream_nextEmptyChunk(beginChunk) {\n var chunk,\n numChunks = this.numChunks;\n for (var i = 0; i < numChunks; ++i) {\n chunk = (beginChunk + i) % numChunks;\n if (!this.loadedChunks[chunk]) {\n return chunk;\n }\n }\n return null;\n },\n hasChunk: function ChunkedStream_hasChunk(chunk) {\n return !!this.loadedChunks[chunk];\n },\n get length() {\n return this.end - this.start;\n },\n get isEmpty() {\n return this.length === 0;\n },\n getByte: function ChunkedStream_getByte() {\n var pos = this.pos;\n if (pos >= this.end) {\n return -1;\n }\n this.ensureByte(pos);\n return this.bytes[this.pos++];\n },\n getUint16: function ChunkedStream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n },\n getInt32: function ChunkedStream_getInt32() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n var b2 = this.getByte();\n var b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n },\n getBytes: function getBytes(length) {\n var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var bytes = this.bytes;\n var pos = this.pos;\n var strEnd = this.end;\n if (!length) {\n this.ensureRange(pos, strEnd);\n var _subarray = bytes.subarray(pos, strEnd);\n return forceClamped ? new Uint8ClampedArray(_subarray) : _subarray;\n }\n var end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.ensureRange(pos, end);\n this.pos = end;\n var subarray = bytes.subarray(pos, end);\n return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n },\n\n peekByte: function ChunkedStream_peekByte() {\n var peekedByte = this.getByte();\n this.pos--;\n return peekedByte;\n },\n peekBytes: function peekBytes(length) {\n var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var bytes = this.getBytes(length, forceClamped);\n this.pos -= bytes.length;\n return bytes;\n },\n\n getByteRange: function ChunkedStream_getBytes(begin, end) {\n this.ensureRange(begin, end);\n return this.bytes.subarray(begin, end);\n },\n skip: function ChunkedStream_skip(n) {\n if (!n) {\n n = 1;\n }\n this.pos += n;\n },\n reset: function ChunkedStream_reset() {\n this.pos = this.start;\n },\n moveStart: function ChunkedStream_moveStart() {\n this.start = this.pos;\n },\n makeSubStream: function ChunkedStream_makeSubStream(start, length, dict) {\n this.ensureRange(start, start + length);\n function ChunkedStreamSubstream() {}\n ChunkedStreamSubstream.prototype = Object.create(this);\n ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n var chunkSize = this.chunkSize;\n var beginChunk = Math.floor(this.start / chunkSize);\n var endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n var missingChunks = [];\n for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n missingChunks.push(chunk);\n }\n }\n return missingChunks;\n };\n var 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 return ChunkedStream;\n}();\nvar ChunkedStreamManager = function ChunkedStreamManagerClosure() {\n function ChunkedStreamManager(pdfNetworkStream, args) {\n var chunkSize = args.rangeChunkSize;\n var length = args.length;\n this.stream = new ChunkedStream(length, chunkSize, this);\n this.length = length;\n this.chunkSize = chunkSize;\n this.pdfNetworkStream = pdfNetworkStream;\n this.url = args.url;\n this.disableAutoFetch = args.disableAutoFetch;\n this.msgHandler = args.msgHandler;\n this.currRequestId = 0;\n this.chunksNeededByRequest = Object.create(null);\n this.requestsByChunk = Object.create(null);\n this.promisesByRequest = Object.create(null);\n this.progressiveDataLength = 0;\n this.aborted = false;\n this._loadedStreamCapability = (0, _util.createPromiseCapability)();\n }\n ChunkedStreamManager.prototype = {\n onLoadedStream: function ChunkedStreamManager_getLoadedStream() {\n return this._loadedStreamCapability.promise;\n },\n sendRequest: function ChunkedStreamManager_sendRequest(begin, end) {\n var _this = this;\n\n var rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n if (!rangeReader.isStreamingSupported) {\n rangeReader.onProgress = this.onProgress.bind(this);\n }\n var chunks = [],\n loaded = 0;\n var manager = this;\n var promise = new Promise(function (resolve, reject) {\n var readChunk = function readChunk(chunk) {\n try {\n if (!chunk.done) {\n var data = chunk.value;\n chunks.push(data);\n loaded += (0, _util.arrayByteLength)(data);\n if (rangeReader.isStreamingSupported) {\n manager.onProgress({ loaded: loaded });\n }\n rangeReader.read().then(readChunk, reject);\n return;\n }\n var chunkData = (0, _util.arraysToBytes)(chunks);\n chunks = null;\n resolve(chunkData);\n } catch (e) {\n reject(e);\n }\n };\n rangeReader.read().then(readChunk, reject);\n });\n promise.then(function (data) {\n if (_this.aborted) {\n return;\n }\n _this.onReceiveData({\n chunk: data,\n begin: begin\n });\n });\n },\n requestAllChunks: function ChunkedStreamManager_requestAllChunks() {\n var missingChunks = this.stream.getMissingChunks();\n this._requestChunks(missingChunks);\n return this._loadedStreamCapability.promise;\n },\n _requestChunks: function ChunkedStreamManager_requestChunks(chunks) {\n var requestId = this.currRequestId++;\n var i, ii;\n var chunksNeeded = Object.create(null);\n this.chunksNeededByRequest[requestId] = chunksNeeded;\n for (i = 0, ii = chunks.length; i < ii; i++) {\n if (!this.stream.hasChunk(chunks[i])) {\n chunksNeeded[chunks[i]] = true;\n }\n }\n if ((0, _util.isEmptyObj)(chunksNeeded)) {\n return Promise.resolve();\n }\n var capability = (0, _util.createPromiseCapability)();\n this.promisesByRequest[requestId] = capability;\n var chunksToRequest = [];\n for (var chunk in chunksNeeded) {\n chunk = chunk | 0;\n if (!(chunk in this.requestsByChunk)) {\n this.requestsByChunk[chunk] = [];\n chunksToRequest.push(chunk);\n }\n this.requestsByChunk[chunk].push(requestId);\n }\n if (!chunksToRequest.length) {\n return capability.promise;\n }\n var groupedChunksToRequest = this.groupChunks(chunksToRequest);\n for (i = 0; i < groupedChunksToRequest.length; ++i) {\n var groupedChunk = groupedChunksToRequest[i];\n var begin = groupedChunk.beginChunk * this.chunkSize;\n var end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length);\n this.sendRequest(begin, end);\n }\n return capability.promise;\n },\n getStream: function ChunkedStreamManager_getStream() {\n return this.stream;\n },\n requestRange: function ChunkedStreamManager_requestRange(begin, end) {\n end = Math.min(end, this.length);\n var beginChunk = this.getBeginChunk(begin);\n var endChunk = this.getEndChunk(end);\n var chunks = [];\n for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n chunks.push(chunk);\n }\n return this._requestChunks(chunks);\n },\n requestRanges: function ChunkedStreamManager_requestRanges(ranges) {\n ranges = ranges || [];\n var chunksToRequest = [];\n for (var i = 0; i < ranges.length; i++) {\n var beginChunk = this.getBeginChunk(ranges[i].begin);\n var endChunk = this.getEndChunk(ranges[i].end);\n for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!chunksToRequest.includes(chunk)) {\n chunksToRequest.push(chunk);\n }\n }\n }\n chunksToRequest.sort(function (a, b) {\n return a - b;\n });\n return this._requestChunks(chunksToRequest);\n },\n groupChunks: function ChunkedStreamManager_groupChunks(chunks) {\n var groupedChunks = [];\n var beginChunk = -1;\n var prevChunk = -1;\n for (var i = 0; i < chunks.length; ++i) {\n var chunk = chunks[i];\n if (beginChunk < 0) {\n beginChunk = chunk;\n }\n if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n groupedChunks.push({\n beginChunk: beginChunk,\n endChunk: prevChunk + 1\n });\n beginChunk = chunk;\n }\n if (i + 1 === chunks.length) {\n groupedChunks.push({\n beginChunk: beginChunk,\n endChunk: chunk + 1\n });\n }\n prevChunk = chunk;\n }\n return groupedChunks;\n },\n onProgress: function ChunkedStreamManager_onProgress(args) {\n var bytesLoaded = this.stream.numChunksLoaded * this.chunkSize + args.loaded;\n this.msgHandler.send('DocProgress', {\n loaded: bytesLoaded,\n total: this.length\n });\n },\n onReceiveData: function ChunkedStreamManager_onReceiveData(args) {\n var chunk = args.chunk;\n var isProgressive = args.begin === undefined;\n var begin = isProgressive ? this.progressiveDataLength : args.begin;\n var end = begin + chunk.byteLength;\n var beginChunk = Math.floor(begin / this.chunkSize);\n var endChunk = end < this.length ? Math.floor(end / this.chunkSize) : Math.ceil(end / this.chunkSize);\n if (isProgressive) {\n this.stream.onReceiveProgressiveData(chunk);\n this.progressiveDataLength = end;\n } else {\n this.stream.onReceiveData(begin, chunk);\n }\n if (this.stream.allChunksLoaded()) {\n this._loadedStreamCapability.resolve(this.stream);\n }\n var loadedRequests = [];\n var i, requestId;\n for (chunk = beginChunk; chunk < endChunk; ++chunk) {\n var requestIds = this.requestsByChunk[chunk] || [];\n delete this.requestsByChunk[chunk];\n for (i = 0; i < requestIds.length; ++i) {\n requestId = requestIds[i];\n var chunksNeeded = this.chunksNeededByRequest[requestId];\n if (chunk in chunksNeeded) {\n delete chunksNeeded[chunk];\n }\n if (!(0, _util.isEmptyObj)(chunksNeeded)) {\n continue;\n }\n loadedRequests.push(requestId);\n }\n }\n if (!this.disableAutoFetch && (0, _util.isEmptyObj)(this.requestsByChunk)) {\n var nextEmptyChunk;\n if (this.stream.numChunksLoaded === 1) {\n var lastChunk = this.stream.numChunks - 1;\n if (!this.stream.hasChunk(lastChunk)) {\n nextEmptyChunk = lastChunk;\n }\n } else {\n nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n }\n if (Number.isInteger(nextEmptyChunk)) {\n this._requestChunks([nextEmptyChunk]);\n }\n }\n for (i = 0; i < loadedRequests.length; ++i) {\n requestId = loadedRequests[i];\n var capability = this.promisesByRequest[requestId];\n delete this.promisesByRequest[requestId];\n capability.resolve();\n }\n this.msgHandler.send('DocProgress', {\n loaded: this.stream.numChunksLoaded * this.chunkSize,\n total: this.length\n });\n },\n onError: function ChunkedStreamManager_onError(err) {\n this._loadedStreamCapability.reject(err);\n },\n getBeginChunk: function ChunkedStreamManager_getBeginChunk(begin) {\n var chunk = Math.floor(begin / this.chunkSize);\n return chunk;\n },\n getEndChunk: function ChunkedStreamManager_getEndChunk(end) {\n var chunk = Math.floor((end - 1) / this.chunkSize) + 1;\n return chunk;\n },\n abort: function ChunkedStreamManager_abort() {\n this.aborted = true;\n if (this.pdfNetworkStream) {\n this.pdfNetworkStream.cancelAllRequests('abort');\n }\n for (var requestId in this.promisesByRequest) {\n var capability = this.promisesByRequest[requestId];\n capability.reject(new Error('Request was aborted'));\n }\n }\n };\n return ChunkedStreamManager;\n}();\nexports.ChunkedStream = ChunkedStream;\nexports.ChunkedStreamManager = ChunkedStreamManager;\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFDocument = exports.Page = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _obj = __w_pdfjs_require__(137);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar _stream = __w_pdfjs_require__(140);\n\nvar _annotation = __w_pdfjs_require__(152);\n\nvar _crypto = __w_pdfjs_require__(150);\n\nvar _parser = __w_pdfjs_require__(139);\n\nvar _operator_list = __w_pdfjs_require__(153);\n\nvar _evaluator = __w_pdfjs_require__(154);\n\nvar _function = __w_pdfjs_require__(168);\n\nvar Page = function PageClosure() {\n var DEFAULT_USER_UNIT = 1.0;\n var LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n function isAnnotationRenderable(annotation, intent) {\n return intent === 'display' && annotation.viewable || intent === 'print' && annotation.printable;\n }\n function Page(_ref) {\n var pdfManager = _ref.pdfManager,\n xref = _ref.xref,\n pageIndex = _ref.pageIndex,\n pageDict = _ref.pageDict,\n ref = _ref.ref,\n fontCache = _ref.fontCache,\n builtInCMapCache = _ref.builtInCMapCache,\n pdfFunctionFactory = _ref.pdfFunctionFactory;\n\n this.pdfManager = pdfManager;\n this.pageIndex = pageIndex;\n this.pageDict = pageDict;\n this.xref = xref;\n this.ref = ref;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.pdfFunctionFactory = pdfFunctionFactory;\n this.evaluatorOptions = pdfManager.evaluatorOptions;\n this.resourcesPromise = null;\n var uniquePrefix = 'p' + this.pageIndex + '_';\n var idCounters = { obj: 0 };\n this.idFactory = {\n createObjId: function createObjId() {\n return uniquePrefix + ++idCounters.obj;\n }\n };\n }\n Page.prototype = {\n _getInheritableProperty: function _getInheritableProperty(key) {\n var getArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var value = (0, _util.getInheritableProperty)({\n dict: this.pageDict,\n key: key,\n getArray: getArray,\n stopWhenFound: false\n });\n if (!Array.isArray(value)) {\n return value;\n }\n if (value.length === 1 || !(0, _primitives.isDict)(value[0])) {\n return value[0];\n }\n return _primitives.Dict.merge(this.xref, value);\n },\n\n get content() {\n return this.pageDict.get('Contents');\n },\n get resources() {\n return (0, _util.shadow)(this, 'resources', this._getInheritableProperty('Resources') || _primitives.Dict.empty);\n },\n get mediaBox() {\n var mediaBox = this._getInheritableProperty('MediaBox', true);\n if (!Array.isArray(mediaBox) || mediaBox.length !== 4) {\n return (0, _util.shadow)(this, 'mediaBox', LETTER_SIZE_MEDIABOX);\n }\n return (0, _util.shadow)(this, 'mediaBox', mediaBox);\n },\n get cropBox() {\n var cropBox = this._getInheritableProperty('CropBox', true);\n if (!Array.isArray(cropBox) || cropBox.length !== 4) {\n return (0, _util.shadow)(this, 'cropBox', this.mediaBox);\n }\n return (0, _util.shadow)(this, 'cropBox', cropBox);\n },\n get userUnit() {\n var obj = this.pageDict.get('UserUnit');\n if (!(0, _util.isNum)(obj) || obj <= 0) {\n obj = DEFAULT_USER_UNIT;\n }\n return (0, _util.shadow)(this, 'userUnit', obj);\n },\n get view() {\n var mediaBox = this.mediaBox,\n cropBox = this.cropBox;\n if (mediaBox === cropBox) {\n return (0, _util.shadow)(this, 'view', mediaBox);\n }\n var intersection = _util.Util.intersect(cropBox, mediaBox);\n return (0, _util.shadow)(this, 'view', intersection || mediaBox);\n },\n get rotate() {\n var rotate = this._getInheritableProperty('Rotate') || 0;\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 return (0, _util.shadow)(this, 'rotate', rotate);\n },\n getContentStream: function Page_getContentStream() {\n var content = this.content;\n var stream;\n if (Array.isArray(content)) {\n var xref = this.xref;\n var i,\n n = content.length;\n var streams = [];\n for (i = 0; i < n; ++i) {\n streams.push(xref.fetchIfRef(content[i]));\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 return stream;\n },\n loadResources: function Page_loadResources(keys) {\n var _this = this;\n\n if (!this.resourcesPromise) {\n this.resourcesPromise = this.pdfManager.ensure(this, 'resources');\n }\n return this.resourcesPromise.then(function () {\n var objectLoader = new _obj.ObjectLoader(_this.resources, keys, _this.xref);\n return objectLoader.load();\n });\n },\n getOperatorList: function getOperatorList(_ref2) {\n var _this2 = this;\n\n var handler = _ref2.handler,\n task = _ref2.task,\n intent = _ref2.intent,\n renderInteractiveForms = _ref2.renderInteractiveForms;\n\n var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream');\n var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']);\n var partialEvaluator = new _evaluator.PartialEvaluator({\n pdfManager: this.pdfManager,\n xref: this.xref,\n handler: handler,\n pageIndex: this.pageIndex,\n idFactory: this.idFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n options: this.evaluatorOptions,\n pdfFunctionFactory: this.pdfFunctionFactory\n });\n var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n var pageListPromise = dataPromises.then(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 1),\n contentStream = _ref4[0];\n\n var opList = new _operator_list.OperatorList(intent, handler, _this2.pageIndex);\n handler.send('StartRenderPage', {\n transparency: partialEvaluator.hasBlendModes(_this2.resources),\n pageIndex: _this2.pageIndex,\n intent: intent\n });\n return partialEvaluator.getOperatorList({\n stream: contentStream,\n task: task,\n resources: _this2.resources,\n operatorList: opList\n }).then(function () {\n return opList;\n });\n });\n return Promise.all([pageListPromise, this._parsedAnnotations]).then(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n pageOpList = _ref6[0],\n annotations = _ref6[1];\n\n if (annotations.length === 0) {\n pageOpList.flush(true);\n return pageOpList;\n }\n var i,\n ii,\n opListPromises = [];\n for (i = 0, ii = annotations.length; i < ii; i++) {\n if (isAnnotationRenderable(annotations[i], intent)) {\n opListPromises.push(annotations[i].getOperatorList(partialEvaluator, task, renderInteractiveForms));\n }\n }\n return Promise.all(opListPromises).then(function (opLists) {\n pageOpList.addOp(_util.OPS.beginAnnotations, []);\n for (i = 0, ii = opLists.length; i < ii; i++) {\n pageOpList.addOpList(opLists[i]);\n }\n pageOpList.addOp(_util.OPS.endAnnotations, []);\n pageOpList.flush(true);\n return pageOpList;\n });\n });\n },\n extractTextContent: function extractTextContent(_ref7) {\n var _this3 = this;\n\n var handler = _ref7.handler,\n task = _ref7.task,\n normalizeWhitespace = _ref7.normalizeWhitespace,\n sink = _ref7.sink,\n combineTextItems = _ref7.combineTextItems;\n\n var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream');\n var resourcesPromise = this.loadResources(['ExtGState', 'XObject', 'Font']);\n var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n return dataPromises.then(function (_ref8) {\n var _ref9 = _slicedToArray(_ref8, 1),\n contentStream = _ref9[0];\n\n var partialEvaluator = new _evaluator.PartialEvaluator({\n pdfManager: _this3.pdfManager,\n xref: _this3.xref,\n handler: handler,\n pageIndex: _this3.pageIndex,\n idFactory: _this3.idFactory,\n fontCache: _this3.fontCache,\n builtInCMapCache: _this3.builtInCMapCache,\n options: _this3.evaluatorOptions,\n pdfFunctionFactory: _this3.pdfFunctionFactory\n });\n return partialEvaluator.getTextContent({\n stream: contentStream,\n task: task,\n resources: _this3.resources,\n normalizeWhitespace: normalizeWhitespace,\n combineTextItems: combineTextItems,\n sink: sink\n });\n });\n },\n getAnnotationsData: function getAnnotationsData(intent) {\n return this._parsedAnnotations.then(function (annotations) {\n var annotationsData = [];\n for (var i = 0, ii = annotations.length; i < ii; i++) {\n if (!intent || isAnnotationRenderable(annotations[i], intent)) {\n annotationsData.push(annotations[i].data);\n }\n }\n return annotationsData;\n });\n },\n\n get annotations() {\n return (0, _util.shadow)(this, 'annotations', this._getInheritableProperty('Annots') || []);\n },\n get _parsedAnnotations() {\n var _this4 = this;\n\n var parsedAnnotations = this.pdfManager.ensure(this, 'annotations').then(function () {\n var annotationRefs = _this4.annotations;\n var annotationPromises = [];\n for (var i = 0, ii = annotationRefs.length; i < ii; i++) {\n annotationPromises.push(_annotation.AnnotationFactory.create(_this4.xref, annotationRefs[i], _this4.pdfManager, _this4.idFactory));\n }\n return Promise.all(annotationPromises).then(function (annotations) {\n return annotations.filter(function isDefined(annotation) {\n return !!annotation;\n });\n }, function (reason) {\n (0, _util.warn)('_parsedAnnotations: \"' + reason + '\".');\n return [];\n });\n });\n return (0, _util.shadow)(this, '_parsedAnnotations', parsedAnnotations);\n }\n };\n return Page;\n}();\nvar PDFDocument = function PDFDocumentClosure() {\n var FINGERPRINT_FIRST_BYTES = 1024;\n var EMPTY_FINGERPRINT = '\\x00\\x00\\x00\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00';\n function PDFDocument(pdfManager, arg) {\n var stream;\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 if (stream.length <= 0) {\n throw new Error('PDFDocument: stream must have data');\n }\n this.pdfManager = pdfManager;\n this.stream = stream;\n this.xref = new _obj.XRef(stream, pdfManager);\n var evaluatorOptions = pdfManager.evaluatorOptions;\n this.pdfFunctionFactory = new _function.PDFFunctionFactory({\n xref: this.xref,\n isEvalSupported: evaluatorOptions.isEvalSupported\n });\n this._pagePromises = [];\n }\n function find(stream, needle, limit, backwards) {\n var pos = stream.pos;\n var end = stream.end;\n var strBuf = [];\n if (pos + limit > end) {\n limit = end - pos;\n }\n for (var n = 0; n < limit; ++n) {\n strBuf.push(String.fromCharCode(stream.getByte()));\n }\n var str = strBuf.join('');\n stream.pos = pos;\n var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle);\n if (index === -1) {\n return false;\n }\n stream.pos += index;\n return true;\n }\n var 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 PDFDocument.prototype = {\n parse: function PDFDocument_parse(recoveryMode) {\n this.setup(recoveryMode);\n var version = this.catalog.catDict.get('Version');\n if ((0, _primitives.isName)(version)) {\n this.pdfFormatVersion = version.name;\n }\n try {\n this.acroForm = this.catalog.catDict.get('AcroForm');\n if (this.acroForm) {\n this.xfa = this.acroForm.get('XFA');\n var fields = this.acroForm.get('Fields');\n if ((!fields || !Array.isArray(fields) || fields.length === 0) && !this.xfa) {\n this.acroForm = null;\n }\n }\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.info)('Something wrong with AcroForm entry');\n this.acroForm = null;\n }\n },\n get linearization() {\n var linearization = null;\n try {\n linearization = _parser.Linearization.create(this.stream);\n } catch (err) {\n if (err instanceof _util.MissingDataException) {\n throw err;\n }\n (0, _util.info)(err);\n }\n return (0, _util.shadow)(this, 'linearization', linearization);\n },\n get startXRef() {\n var stream = this.stream;\n var startXRef = 0;\n var linearization = this.linearization;\n if (linearization) {\n stream.reset();\n if (find(stream, 'endobj', 1024)) {\n startXRef = stream.pos + 6;\n }\n } else {\n var step = 1024;\n var found = false,\n pos = stream.end;\n while (!found && pos > 0) {\n pos -= step - 'startxref'.length;\n if (pos < 0) {\n pos = 0;\n }\n stream.pos = pos;\n found = find(stream, 'startxref', step, true);\n }\n if (found) {\n stream.skip(9);\n var ch;\n do {\n ch = stream.getByte();\n } while ((0, _util.isSpace)(ch));\n var str = '';\n while (ch >= 0x20 && ch <= 0x39) {\n str += String.fromCharCode(ch);\n ch = stream.getByte();\n }\n startXRef = parseInt(str, 10);\n if (isNaN(startXRef)) {\n startXRef = 0;\n }\n }\n }\n return (0, _util.shadow)(this, 'startXRef', startXRef);\n },\n checkHeader: function PDFDocument_checkHeader() {\n var stream = this.stream;\n stream.reset();\n if (find(stream, '%PDF-', 1024)) {\n stream.moveStart();\n var MAX_VERSION_LENGTH = 12;\n var version = '',\n ch;\n while ((ch = stream.getByte()) > 0x20) {\n if (version.length >= MAX_VERSION_LENGTH) {\n break;\n }\n version += String.fromCharCode(ch);\n }\n if (!this.pdfFormatVersion) {\n this.pdfFormatVersion = version.substring(5);\n }\n return;\n }\n },\n parseStartXRef: function PDFDocument_parseStartXRef() {\n var startXRef = this.startXRef;\n this.xref.setStartXRef(startXRef);\n },\n setup: function PDFDocument_setup(recoveryMode) {\n this.xref.parse(recoveryMode);\n this.catalog = new _obj.Catalog(this.pdfManager, this.xref);\n },\n get numPages() {\n var linearization = this.linearization;\n var num = linearization ? linearization.numPages : this.catalog.numPages;\n return (0, _util.shadow)(this, 'numPages', num);\n },\n get documentInfo() {\n var docInfo = {\n PDFFormatVersion: this.pdfFormatVersion,\n IsLinearized: !!this.linearization,\n IsAcroFormPresent: !!this.acroForm,\n IsXFAPresent: !!this.xfa\n };\n var infoDict = void 0;\n try {\n infoDict = this.xref.trailer.get('Info');\n } catch (err) {\n if (err instanceof _util.MissingDataException) {\n throw err;\n }\n (0, _util.info)('The document information dictionary is invalid.');\n }\n if ((0, _primitives.isDict)(infoDict)) {\n for (var key in DocumentInfoValidators) {\n if (infoDict.has(key)) {\n var value = infoDict.get(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 }\n }\n }\n return (0, _util.shadow)(this, 'documentInfo', docInfo);\n },\n get fingerprint() {\n var xref = this.xref,\n hash,\n fileID = '';\n var idArray = xref.trailer.get('ID');\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 if (this.stream.ensureRange) {\n this.stream.ensureRange(0, Math.min(FINGERPRINT_FIRST_BYTES, this.stream.end));\n }\n hash = (0, _crypto.calculateMD5)(this.stream.bytes.subarray(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES);\n }\n for (var i = 0, n = hash.length; i < n; i++) {\n var hex = hash[i].toString(16);\n fileID += hex.length === 1 ? '0' + hex : hex;\n }\n return (0, _util.shadow)(this, 'fingerprint', fileID);\n },\n _getLinearizationPage: function _getLinearizationPage(pageIndex) {\n var catalog = this.catalog,\n linearization = this.linearization;\n\n (0, _util.assert)(linearization && linearization.pageFirst === pageIndex);\n var ref = new _primitives.Ref(linearization.objectNumberFirst, 0);\n return this.xref.fetchAsync(ref).then(function (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 return [obj, ref];\n }\n throw new _util.FormatError('The Linearization dictionary doesn\\'t point ' + 'to a valid Page dictionary.');\n }).catch(function (reason) {\n (0, _util.info)(reason);\n return catalog.getPageDict(pageIndex);\n });\n },\n getPage: function getPage(pageIndex) {\n var _this5 = this;\n\n if (this._pagePromises[pageIndex] !== undefined) {\n return this._pagePromises[pageIndex];\n }\n var catalog = this.catalog,\n linearization = this.linearization;\n\n var promise = linearization && linearization.pageFirst === pageIndex ? this._getLinearizationPage(pageIndex) : catalog.getPageDict(pageIndex);\n return this._pagePromises[pageIndex] = promise.then(function (_ref10) {\n var _ref11 = _slicedToArray(_ref10, 2),\n pageDict = _ref11[0],\n ref = _ref11[1];\n\n return new Page({\n pdfManager: _this5.pdfManager,\n xref: _this5.xref,\n pageIndex: pageIndex,\n pageDict: pageDict,\n ref: ref,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n pdfFunctionFactory: _this5.pdfFunctionFactory\n });\n });\n },\n\n cleanup: function PDFDocument_cleanup() {\n return this.catalog.cleanup();\n }\n };\n return PDFDocument;\n}();\nexports.Page = Page;\nexports.PDFDocument = PDFDocument;\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FileSpec = exports.XRef = exports.ObjectLoader = exports.Catalog = undefined;\n\nvar _regenerator = __w_pdfjs_require__(131);\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar _parser = __w_pdfjs_require__(139);\n\nvar _chunked_stream = __w_pdfjs_require__(135);\n\nvar _crypto = __w_pdfjs_require__(150);\n\nvar _colorspace = __w_pdfjs_require__(151);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction fetchDestination(dest) {\n return (0, _primitives.isDict)(dest) ? dest.get('D') : dest;\n}\n\nvar Catalog = function () {\n function Catalog(pdfManager, xref) {\n _classCallCheck(this, Catalog);\n\n this.pdfManager = pdfManager;\n this.xref = xref;\n this.catDict = xref.getCatalogObj();\n if (!(0, _primitives.isDict)(this.catDict)) {\n throw new _util.FormatError('Catalog object is not a dictionary.');\n }\n this.fontCache = new _primitives.RefSetCache();\n this.builtInCMapCache = new Map();\n this.pageKidsCountCache = new _primitives.RefSetCache();\n }\n\n _createClass(Catalog, [{\n key: '_readDocumentOutline',\n value: function _readDocumentOutline() {\n var obj = this.catDict.get('Outlines');\n if (!(0, _primitives.isDict)(obj)) {\n return null;\n }\n obj = obj.getRaw('First');\n if (!(0, _primitives.isRef)(obj)) {\n return null;\n }\n var root = { items: [] };\n var queue = [{\n obj: obj,\n parent: root\n }];\n var processed = new _primitives.RefSet();\n processed.put(obj);\n var xref = this.xref,\n blackColor = new Uint8ClampedArray(3);\n while (queue.length > 0) {\n var i = queue.shift();\n var outlineDict = xref.fetchIfRef(i.obj);\n if (outlineDict === null) {\n continue;\n }\n if (!outlineDict.has('Title')) {\n throw new _util.FormatError('Invalid outline item encountered.');\n }\n var data = {\n url: null,\n dest: null\n };\n Catalog.parseDestDictionary({\n destDict: outlineDict,\n resultObj: data,\n docBaseUrl: this.pdfManager.docBaseUrl\n });\n var title = outlineDict.get('Title');\n var flags = outlineDict.get('F') || 0;\n var color = outlineDict.getArray('C');\n var rgbColor = blackColor;\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 var 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: outlineDict.get('Count'),\n bold: !!(flags & 2),\n italic: !!(flags & 1),\n items: []\n };\n i.parent.items.push(outlineItem);\n obj = outlineDict.getRaw('First');\n if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n queue.push({\n obj: obj,\n parent: outlineItem\n });\n processed.put(obj);\n }\n obj = outlineDict.getRaw('Next');\n if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n queue.push({\n obj: obj,\n parent: i.parent\n });\n processed.put(obj);\n }\n }\n return root.items.length > 0 ? root.items : null;\n }\n }, {\n key: '_readPermissions',\n value: function _readPermissions() {\n var encrypt = this.xref.trailer.get('Encrypt');\n if (!(0, _primitives.isDict)(encrypt)) {\n return null;\n }\n var flags = encrypt.get('P');\n if (!(0, _util.isNum)(flags)) {\n return null;\n }\n flags += Math.pow(2, 32);\n var permissions = [];\n for (var key in _util.PermissionFlag) {\n var value = _util.PermissionFlag[key];\n if (flags & value) {\n permissions.push(value);\n }\n }\n return permissions;\n }\n }, {\n key: 'getDestination',\n value: function getDestination(destinationId) {\n var obj = this._readDests();\n if (obj instanceof NameTree || obj instanceof _primitives.Dict) {\n return fetchDestination(obj.get(destinationId) || null);\n }\n return null;\n }\n }, {\n key: '_readDests',\n value: function _readDests() {\n var obj = this.catDict.get('Names');\n if (obj && obj.has('Dests')) {\n return new NameTree(obj.getRaw('Dests'), this.xref);\n } else if (this.catDict.has('Dests')) {\n return this.catDict.get('Dests');\n }\n }\n }, {\n key: '_readPageLabels',\n value: function _readPageLabels() {\n var obj = this.catDict.getRaw('PageLabels');\n if (!obj) {\n return null;\n }\n var pageLabels = new Array(this.numPages);\n var style = null,\n prefix = '';\n var numberTree = new NumberTree(obj, this.xref);\n var nums = numberTree.getAll();\n var currentLabel = '',\n currentIndex = 1;\n for (var i = 0, ii = this.numPages; i < ii; i++) {\n if (i in nums) {\n var labelDict = nums[i];\n if (!(0, _primitives.isDict)(labelDict)) {\n throw new _util.FormatError('PageLabel is not a dictionary.');\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 if (labelDict.has('S')) {\n var s = labelDict.get('S');\n if (!(0, _primitives.isName)(s)) {\n throw new _util.FormatError('Invalid style in PageLabel dictionary.');\n }\n style = s.name;\n } else {\n style = null;\n }\n if (labelDict.has('P')) {\n var p = labelDict.get('P');\n if (!(0, _util.isString)(p)) {\n throw new _util.FormatError('Invalid prefix in PageLabel dictionary.');\n }\n prefix = (0, _util.stringToPDFString)(p);\n } else {\n prefix = '';\n }\n if (labelDict.has('St')) {\n var st = labelDict.get('St');\n if (!(Number.isInteger(st) && st >= 1)) {\n throw new _util.FormatError('Invalid start in PageLabel dictionary.');\n }\n currentIndex = st;\n } else {\n currentIndex = 1;\n }\n }\n switch (style) {\n case 'D':\n currentLabel = currentIndex;\n break;\n case 'R':\n case 'r':\n currentLabel = (0, _util.toRomanNumerals)(currentIndex, style === 'r');\n break;\n case 'A':\n case 'a':\n var LIMIT = 26;\n var A_UPPER_CASE = 0x41,\n A_LOWER_CASE = 0x61;\n var baseCharCode = style === 'a' ? A_LOWER_CASE : A_UPPER_CASE;\n var letterIndex = currentIndex - 1;\n var character = String.fromCharCode(baseCharCode + letterIndex % LIMIT);\n var charBuf = [];\n for (var j = 0, jj = letterIndex / LIMIT | 0; j <= jj; j++) {\n charBuf.push(character);\n }\n currentLabel = charBuf.join('');\n break;\n default:\n if (style) {\n throw new _util.FormatError('Invalid style \"' + style + '\" in PageLabel dictionary.');\n }\n currentLabel = '';\n }\n pageLabels[i] = prefix + currentLabel;\n currentIndex++;\n }\n return pageLabels;\n }\n }, {\n key: 'cleanup',\n value: function cleanup() {\n var _this = this;\n\n this.pageKidsCountCache.clear();\n var promises = [];\n this.fontCache.forEach(function (promise) {\n promises.push(promise);\n });\n return Promise.all(promises).then(function (translatedFonts) {\n for (var i = 0, ii = translatedFonts.length; i < ii; i++) {\n var font = translatedFonts[i].dict;\n delete font.translated;\n }\n _this.fontCache.clear();\n _this.builtInCMapCache.clear();\n });\n }\n }, {\n key: 'getPageDict',\n value: function getPageDict(pageIndex) {\n var capability = (0, _util.createPromiseCapability)();\n var nodesToVisit = [this.catDict.getRaw('Pages')];\n var xref = this.xref,\n pageKidsCountCache = this.pageKidsCountCache;\n var count = void 0,\n currentPageIndex = 0;\n function next() {\n var _loop = function _loop() {\n var currentNode = nodesToVisit.pop();\n if ((0, _primitives.isRef)(currentNode)) {\n count = pageKidsCountCache.get(currentNode);\n if (count > 0 && currentPageIndex + count < pageIndex) {\n currentPageIndex += count;\n return 'continue';\n }\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 capability.resolve([obj, currentNode]);\n } else {\n currentPageIndex++;\n next();\n }\n return;\n }\n nodesToVisit.push(obj);\n next();\n }, capability.reject);\n return {\n v: void 0\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 v: void 0\n };\n }\n count = currentNode.get('Count');\n if (Number.isInteger(count) && count >= 0) {\n var objId = currentNode.objId;\n if (objId && !pageKidsCountCache.has(objId)) {\n pageKidsCountCache.put(objId, count);\n }\n if (currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n return 'continue';\n }\n }\n var kids = currentNode.get('Kids');\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 v: void 0\n };\n }\n currentPageIndex++;\n return 'continue';\n }\n capability.reject(new _util.FormatError('Page dictionary kids object is not an array.'));\n return {\n v: void 0\n };\n }\n for (var last = kids.length - 1; last >= 0; last--) {\n nodesToVisit.push(kids[last]);\n }\n };\n\n while (nodesToVisit.length) {\n var _ret = _loop();\n\n switch (_ret) {\n case 'continue':\n continue;\n\n default:\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n }\n }\n capability.reject(new Error('Page index ' + pageIndex + ' not found.'));\n }\n next();\n return capability.promise;\n }\n }, {\n key: 'getPageIndex',\n value: function getPageIndex(pageRef) {\n var xref = this.xref;\n function pagesBeforeRef(kidRef) {\n var total = 0,\n parentRef = void 0;\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 if (!node) {\n return null;\n }\n if (!(0, _primitives.isDict)(node)) {\n throw new _util.FormatError('Node must be a dictionary.');\n }\n parentRef = node.getRaw('Parent');\n return node.getAsync('Parent');\n }).then(function (parent) {\n if (!parent) {\n return null;\n }\n if (!(0, _primitives.isDict)(parent)) {\n throw new _util.FormatError('Parent must be a dictionary.');\n }\n return parent.getAsync('Kids');\n }).then(function (kids) {\n if (!kids) {\n return null;\n }\n var kidPromises = [];\n var found = false;\n for (var i = 0, ii = kids.length; i < ii; i++) {\n var kid = kids[i];\n if (!(0, _primitives.isRef)(kid)) {\n throw new _util.FormatError('Kid must be a reference.');\n }\n if ((0, _primitives.isRefsEqual)(kid, kidRef)) {\n found = true;\n break;\n }\n kidPromises.push(xref.fetchAsync(kid).then(function (kid) {\n if (!(0, _primitives.isDict)(kid)) {\n throw new _util.FormatError('Kid node must be a dictionary.');\n }\n if (kid.has('Count')) {\n total += kid.get('Count');\n } else {\n total++;\n }\n }));\n }\n if (!found) {\n throw new _util.FormatError('Kid reference not found in parent\\'s kids.');\n }\n return Promise.all(kidPromises).then(function () {\n return [total, parentRef];\n });\n });\n }\n var total = 0;\n function next(ref) {\n return pagesBeforeRef(ref).then(function (args) {\n if (!args) {\n return total;\n }\n\n var _args = _slicedToArray(args, 2),\n count = _args[0],\n parentRef = _args[1];\n\n total += count;\n return next(parentRef);\n });\n }\n return next(pageRef);\n }\n }, {\n key: 'metadata',\n get: function get() {\n var streamRef = this.catDict.getRaw('Metadata');\n if (!(0, _primitives.isRef)(streamRef)) {\n return (0, _util.shadow)(this, 'metadata', null);\n }\n var suppressEncryption = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata);\n var stream = this.xref.fetch(streamRef, suppressEncryption);\n var metadata = void 0;\n if (stream && (0, _primitives.isDict)(stream.dict)) {\n var type = stream.dict.get('Type');\n var subtype = stream.dict.get('Subtype');\n if ((0, _primitives.isName)(type, 'Metadata') && (0, _primitives.isName)(subtype, 'XML')) {\n try {\n metadata = (0, _util.stringToUTF8String)((0, _util.bytesToString)(stream.getBytes()));\n } catch (e) {\n if (e instanceof _util.MissingDataException) {\n throw e;\n }\n (0, _util.info)('Skipping invalid metadata.');\n }\n }\n }\n return (0, _util.shadow)(this, 'metadata', metadata);\n }\n }, {\n key: 'toplevelPagesDict',\n get: function get() {\n var pagesObj = this.catDict.get('Pages');\n if (!(0, _primitives.isDict)(pagesObj)) {\n throw new _util.FormatError('Invalid top-level pages dictionary.');\n }\n return (0, _util.shadow)(this, 'toplevelPagesDict', pagesObj);\n }\n }, {\n key: 'documentOutline',\n get: function get() {\n var obj = null;\n try {\n obj = this._readDocumentOutline();\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('Unable to read document outline.');\n }\n return (0, _util.shadow)(this, 'documentOutline', obj);\n }\n }, {\n key: 'permissions',\n get: function get() {\n var permissions = null;\n try {\n permissions = this._readPermissions();\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('Unable to read permissions.');\n }\n return (0, _util.shadow)(this, 'permissions', permissions);\n }\n }, {\n key: 'numPages',\n get: function get() {\n var obj = this.toplevelPagesDict.get('Count');\n if (!Number.isInteger(obj)) {\n throw new _util.FormatError('Page count in top-level pages dictionary is not an integer.');\n }\n return (0, _util.shadow)(this, 'numPages', obj);\n }\n }, {\n key: 'destinations',\n get: function get() {\n var obj = this._readDests(),\n dests = Object.create(null);\n if (obj instanceof NameTree) {\n var names = obj.getAll();\n for (var 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 return (0, _util.shadow)(this, 'destinations', dests);\n }\n }, {\n key: 'pageLabels',\n get: function get() {\n var obj = null;\n try {\n obj = this._readPageLabels();\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('Unable to read page labels.');\n }\n return (0, _util.shadow)(this, 'pageLabels', obj);\n }\n }, {\n key: 'pageMode',\n get: function get() {\n var obj = this.catDict.get('PageMode');\n var pageMode = 'UseNone';\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 return (0, _util.shadow)(this, 'pageMode', pageMode);\n }\n }, {\n key: 'attachments',\n get: function get() {\n var obj = this.catDict.get('Names');\n var attachments = null;\n if (obj && obj.has('EmbeddedFiles')) {\n var nameTree = new NameTree(obj.getRaw('EmbeddedFiles'), this.xref);\n var names = nameTree.getAll();\n for (var name in names) {\n var fs = new FileSpec(names[name], this.xref);\n if (!attachments) {\n attachments = Object.create(null);\n }\n attachments[(0, _util.stringToPDFString)(name)] = fs.serializable;\n }\n }\n return (0, _util.shadow)(this, 'attachments', attachments);\n }\n }, {\n key: 'javaScript',\n get: function get() {\n var obj = this.catDict.get('Names');\n var javaScript = null;\n function appendIfJavaScriptDict(jsDict) {\n var type = jsDict.get('S');\n if (!(0, _primitives.isName)(type, 'JavaScript')) {\n return;\n }\n var js = jsDict.get('JS');\n if ((0, _primitives.isStream)(js)) {\n js = (0, _util.bytesToString)(js.getBytes());\n } else if (!(0, _util.isString)(js)) {\n return;\n }\n if (!javaScript) {\n javaScript = [];\n }\n javaScript.push((0, _util.stringToPDFString)(js));\n }\n if (obj && obj.has('JavaScript')) {\n var nameTree = new NameTree(obj.getRaw('JavaScript'), this.xref);\n var names = nameTree.getAll();\n for (var name in names) {\n var jsDict = names[name];\n if ((0, _primitives.isDict)(jsDict)) {\n appendIfJavaScriptDict(jsDict);\n }\n }\n }\n var openActionDict = this.catDict.get('OpenAction');\n if ((0, _primitives.isDict)(openActionDict, 'Action')) {\n var actionType = openActionDict.get('S');\n if ((0, _primitives.isName)(actionType, 'Named')) {\n var action = openActionDict.get('N');\n if ((0, _primitives.isName)(action, 'Print')) {\n if (!javaScript) {\n javaScript = [];\n }\n javaScript.push('print({});');\n }\n } else {\n appendIfJavaScriptDict(openActionDict);\n }\n }\n return (0, _util.shadow)(this, 'javaScript', javaScript);\n }\n }], [{\n key: 'parseDestDictionary',\n value: function parseDestDictionary(params) {\n function addDefaultProtocolToUrl(url) {\n if (url.indexOf('www.') === 0) {\n return 'http://' + url;\n }\n return url;\n }\n function tryConvertUrlEncoding(url) {\n try {\n return (0, _util.stringToUTF8String)(url);\n } catch (e) {\n return url;\n }\n }\n var destDict = params.destDict;\n if (!(0, _primitives.isDict)(destDict)) {\n (0, _util.warn)('parseDestDictionary: `destDict` must be a dictionary.');\n return;\n }\n var resultObj = params.resultObj;\n if ((typeof resultObj === 'undefined' ? 'undefined' : _typeof(resultObj)) !== 'object') {\n (0, _util.warn)('parseDestDictionary: `resultObj` must be an object.');\n return;\n }\n var docBaseUrl = params.docBaseUrl || null;\n var action = destDict.get('A'),\n url = void 0,\n dest = void 0;\n if (!(0, _primitives.isDict)(action) && destDict.has('Dest')) {\n action = destDict.get('Dest');\n }\n if ((0, _primitives.isDict)(action)) {\n var actionType = action.get('S');\n if (!(0, _primitives.isName)(actionType)) {\n (0, _util.warn)('parseDestDictionary: Invalid type in Action dictionary.');\n return;\n }\n var actionName = actionType.name;\n switch (actionName) {\n case 'URI':\n url = action.get('URI');\n if ((0, _primitives.isName)(url)) {\n url = '/' + url.name;\n } else if ((0, _util.isString)(url)) {\n url = addDefaultProtocolToUrl(url);\n }\n break;\n case 'GoTo':\n dest = action.get('D');\n break;\n case 'Launch':\n case 'GoToR':\n var urlDict = action.get('F');\n if ((0, _primitives.isDict)(urlDict)) {\n url = urlDict.get('F') || null;\n } else if ((0, _util.isString)(urlDict)) {\n url = urlDict;\n }\n var remoteDest = action.get('D');\n if (remoteDest) {\n if ((0, _primitives.isName)(remoteDest)) {\n remoteDest = remoteDest.name;\n }\n if ((0, _util.isString)(url)) {\n var baseUrl = url.split('#')[0];\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 var newWindow = action.get('NewWindow');\n if ((0, _util.isBool)(newWindow)) {\n resultObj.newWindow = newWindow;\n }\n break;\n case 'Named':\n var namedAction = action.get('N');\n if ((0, _primitives.isName)(namedAction)) {\n resultObj.action = namedAction.name;\n }\n break;\n case 'JavaScript':\n var jsAction = action.get('JS');\n var js = void 0;\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 if (js) {\n var URL_OPEN_METHODS = ['app.launchURL', 'window.open'];\n var regex = new RegExp('^\\\\s*(' + URL_OPEN_METHODS.join('|').split('.').join('\\\\.') + ')\\\\((?:\\'|\\\")([^\\'\\\"]*)(?:\\'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))', 'i');\n var jsUrl = regex.exec((0, _util.stringToPDFString)(js));\n if (jsUrl && jsUrl[2]) {\n url = jsUrl[2];\n if (jsUrl[3] === 'true' && jsUrl[1] === 'app.launchURL') {\n resultObj.newWindow = true;\n }\n break;\n }\n }\n default:\n (0, _util.warn)('parseDestDictionary: unsupported action type \"' + actionName + '\".');\n break;\n }\n } else if (destDict.has('Dest')) {\n dest = destDict.get('Dest');\n }\n if ((0, _util.isString)(url)) {\n url = tryConvertUrlEncoding(url);\n var absoluteUrl = (0, _util.createValidAbsoluteUrl)(url, docBaseUrl);\n if (absoluteUrl) {\n resultObj.url = absoluteUrl.href;\n }\n resultObj.unsafeUrl = url;\n }\n if (dest) {\n if ((0, _primitives.isName)(dest)) {\n dest = dest.name;\n }\n if ((0, _util.isString)(dest) || Array.isArray(dest)) {\n resultObj.dest = dest;\n }\n }\n }\n }]);\n\n return Catalog;\n}();\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.cache = [];\n this.stats = {\n streamTypes: [],\n fontTypes: []\n };\n }\n XRef.prototype = {\n setStartXRef: function XRef_setStartXRef(startXRef) {\n this.startXRefQueue = [startXRef];\n },\n parse: function XRef_parse(recoveryMode) {\n var trailerDict;\n if (!recoveryMode) {\n trailerDict = this.readXRef();\n } else {\n (0, _util.warn)('Indexing all PDF objects');\n trailerDict = this.indexObjects();\n }\n trailerDict.assignXref(this);\n this.trailer = trailerDict;\n var encrypt = void 0;\n try {\n encrypt = trailerDict.get('Encrypt');\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('XRef.parse - Invalid \"Encrypt\" reference: \"' + ex + '\".');\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 var root = void 0;\n try {\n root = trailerDict.get('Root');\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('XRef.parse - Invalid \"Root\" reference: \"' + ex + '\".');\n }\n if ((0, _primitives.isDict)(root) && root.has('Pages')) {\n this.root = root;\n } else {\n if (!recoveryMode) {\n throw new _util.XRefParseException();\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 var obj = this.readXRefTable(parser);\n if (!(0, _primitives.isCmd)(obj, 'trailer')) {\n throw new _util.FormatError('Invalid XRef table: could not find trailer dictionary');\n }\n var dict = parser.getObj();\n if (!(0, _primitives.isDict)(dict) && dict.dict) {\n dict = dict.dict;\n }\n if (!(0, _primitives.isDict)(dict)) {\n throw new _util.FormatError('Invalid XRef table: could not parse trailer dictionary');\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 while (true) {\n if (!('firstEntryNum' in tableState) || !('entryCount' in tableState)) {\n if ((0, _primitives.isCmd)(obj = parser.getObj(), 'trailer')) {\n break;\n }\n tableState.firstEntryNum = obj;\n tableState.entryCount = parser.getObj();\n }\n var first = tableState.firstEntryNum;\n var count = tableState.entryCount;\n if (!Number.isInteger(first) || !Number.isInteger(count)) {\n throw new _util.FormatError('Invalid XRef table: wrong types in subsection header');\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 if ((0, _primitives.isCmd)(type, 'f')) {\n entry.free = true;\n } else if ((0, _primitives.isCmd)(type, 'n')) {\n entry.uncompressed = true;\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 if (i === 0 && entry.free && first === 1) {\n first = 0;\n }\n if (!this.entries[i + first]) {\n this.entries[i + first] = entry;\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 if (this.entries[0] && !this.entries[0].free) {\n throw new _util.FormatError('Invalid XRef table: unexpected first object');\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 if (!range) {\n range = [0, streamParameters.get('Size')];\n }\n this.streamState = {\n entryRanges: range,\n byteWidths: byteWidths,\n entryNum: 0,\n streamPos: stream.pos\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 while (entryRanges.length > 0) {\n var first = entryRanges[0];\n var n = entryRanges[1];\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new _util.FormatError('Invalid XRef range fields: ' + first + ', ' + 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 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 for (j = 0; j < typeFieldWidth; ++j) {\n type = type << 8 | stream.getByte();\n }\n if (typeFieldWidth === 0) {\n type = 1;\n }\n for (j = 0; j < offsetFieldWidth; ++j) {\n offset = offset << 8 | stream.getByte();\n }\n for (j = 0; j < generationFieldWidth; ++j) {\n generation = generation << 8 | stream.getByte();\n }\n var entry = {};\n entry.offset = offset;\n entry.gen = generation;\n switch (type) {\n case 0:\n entry.free = true;\n break;\n case 1:\n entry.uncompressed = true;\n break;\n case 2:\n break;\n default:\n throw new _util.FormatError('Invalid XRef entry type: ' + type);\n }\n if (!this.entries[first + i]) {\n this.entries[first + i] = entry;\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 function readToken(data, offset) {\n var token = '',\n ch = data[offset];\n while (ch !== LF && ch !== CR && ch !== LT) {\n if (++offset >= data.length) {\n break;\n }\n token += String.fromCharCode(ch);\n ch = data[offset];\n }\n return token;\n }\n function skipUntil(data, offset, what) {\n var length = what.length,\n dataLength = data.length;\n var skipped = 0;\n while (offset < dataLength) {\n var i = 0;\n while (i < length && data[offset + i] === what[i]) {\n ++i;\n }\n if (i >= length) {\n break;\n }\n offset++;\n skipped++;\n }\n return skipped;\n }\n var objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n var endobjRegExp = /\\bendobj[\\b\\s]$/;\n var nestedObjRegExp = /\\s+(\\d+\\s+\\d+\\s+obj[\\b\\s])$/;\n var 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 var 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 while (position < length) {\n var ch = buffer[position];\n if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n ++position;\n continue;\n }\n if (ch === PERCENT) {\n do {\n ++position;\n if (position >= length) {\n break;\n }\n ch = buffer[position];\n } while (ch !== LF && ch !== CR);\n continue;\n }\n var token = readToken(buffer, position);\n var m;\n if (token.indexOf('xref') === 0 && (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 if (typeof this.entries[m[1]] === 'undefined') {\n this.entries[m[1]] = {\n offset: position - stream.start,\n gen: m[2] | 0,\n uncompressed: true\n };\n }\n var contentLength = void 0,\n startPos = position + token.length;\n while (startPos < buffer.length) {\n var endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4;\n contentLength = endPos - position;\n var checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos);\n var tokenStr = (0, _util.bytesToString)(buffer.subarray(checkPos, endPos));\n if (endobjRegExp.test(tokenStr)) {\n break;\n } else {\n var objToken = nestedObjRegExp.exec(tokenStr);\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 startPos = endPos;\n }\n var content = buffer.subarray(position, position + contentLength);\n var xrefTagOffset = skipUntil(content, 0, xrefBytes);\n if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n xrefStms.push(position - stream.start);\n this.xrefstms[position - stream.start] = 1;\n }\n position += contentLength;\n } else if (token.indexOf('trailer') === 0 && (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 var i, ii;\n for (i = 0, ii = xrefStms.length; i < ii; ++i) {\n this.startXRefQueue.push(xrefStms[i]);\n this.readXRef(true);\n }\n var trailerDict = void 0;\n for (i = 0, ii = trailers.length; i < ii; ++i) {\n stream.pos = trailers[i];\n var parser = new _parser.Parser(new _parser.Lexer(stream), true, this, true);\n var obj = parser.getObj();\n if (!(0, _primitives.isCmd)(obj, 'trailer')) {\n continue;\n }\n var dict = parser.getObj();\n if (!(0, _primitives.isDict)(dict)) {\n continue;\n }\n var rootDict = void 0;\n try {\n rootDict = dict.get('Root');\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n continue;\n }\n if (!(0, _primitives.isDict)(rootDict) || !rootDict.has('Pages')) {\n continue;\n }\n if (dict.has('ID')) {\n return dict;\n }\n trailerDict = dict;\n }\n if (trailerDict) {\n return trailerDict;\n }\n throw new _util.InvalidPDFException('Invalid PDF structure');\n },\n readXRef: function XRef_readXRef(recoveryMode) {\n var stream = this.stream;\n var startXRefParsedCache = Object.create(null);\n try {\n while (this.startXRefQueue.length) {\n var startXRef = this.startXRefQueue[0];\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 startXRefParsedCache[startXRef] = true;\n stream.pos = startXRef + stream.start;\n var parser = new _parser.Parser(new _parser.Lexer(stream), true, this);\n var obj = parser.getObj();\n var dict;\n if ((0, _primitives.isCmd)(obj, 'xref')) {\n dict = this.processXRefTable(parser);\n if (!this.topDict) {\n this.topDict = dict;\n }\n obj = dict.get('XRefStm');\n if (Number.isInteger(obj)) {\n var pos = obj;\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 dict = this.processXRefStream(obj);\n if (!this.topDict) {\n this.topDict = dict;\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 obj = dict.get('Prev');\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 this.startXRefQueue.shift();\n }\n return this.topDict;\n } catch (e) {\n if (e instanceof _util.MissingDataException) {\n throw e;\n }\n (0, _util.info)('(while reading XRef): ' + e);\n }\n if (recoveryMode) {\n return;\n }\n throw new _util.XRefParseException();\n },\n getEntry: function XRef_getEntry(i) {\n var xrefEntry = this.entries[i];\n if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n return xrefEntry;\n }\n return null;\n },\n fetchIfRef: function XRef_fetchIfRef(obj, suppressEncryption) {\n if (!(0, _primitives.isRef)(obj)) {\n return obj;\n }\n return this.fetch(obj, suppressEncryption);\n },\n fetch: function XRef_fetch(ref, suppressEncryption) {\n if (!(0, _primitives.isRef)(ref)) {\n throw new Error('ref object is not a reference');\n }\n var num = ref.num;\n if (num in this.cache) {\n var cacheEntry = this.cache[num];\n if (cacheEntry instanceof _primitives.Dict && !cacheEntry.objId) {\n cacheEntry.objId = ref.toString();\n }\n return cacheEntry;\n }\n var xrefEntry = this.getEntry(num);\n if (xrefEntry === null) {\n return this.cache[num] = null;\n }\n if (xrefEntry.uncompressed) {\n xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n } else {\n xrefEntry = this.fetchCompressed(xrefEntry, suppressEncryption);\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 return xrefEntry;\n },\n fetchUncompressed: function XRef_fetchUncompressed(ref, xrefEntry, suppressEncryption) {\n var gen = ref.gen;\n var num = ref.num;\n if (xrefEntry.gen !== gen) {\n throw new _util.FormatError('inconsistent generation in XRef');\n }\n var stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start);\n var parser = new _parser.Parser(new _parser.Lexer(stream), true, this);\n var obj1 = parser.getObj();\n var obj2 = parser.getObj();\n var obj3 = parser.getObj();\n if (!Number.isInteger(obj1)) {\n obj1 = parseInt(obj1, 10);\n }\n if (!Number.isInteger(obj2)) {\n obj2 = parseInt(obj2, 10);\n }\n if (obj1 !== num || obj2 !== gen || !(0, _primitives.isCmd)(obj3)) {\n throw new _util.FormatError('bad XRef entry');\n }\n if (obj3.cmd !== 'obj') {\n if (obj3.cmd.indexOf('obj') === 0) {\n num = parseInt(obj3.cmd.substring(3), 10);\n if (!Number.isNaN(num)) {\n return num;\n }\n }\n throw new _util.FormatError('bad XRef entry');\n }\n if (this.encrypt && !suppressEncryption) {\n xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n } else {\n xrefEntry = parser.getObj();\n }\n if (!(0, _primitives.isStream)(xrefEntry)) {\n this.cache[num] = xrefEntry;\n }\n return xrefEntry;\n },\n fetchCompressed: function XRef_fetchCompressed(xrefEntry, suppressEncryption) {\n var tableOffset = xrefEntry.offset;\n var stream = this.fetch(new _primitives.Ref(tableOffset, 0));\n if (!(0, _primitives.isStream)(stream)) {\n throw new _util.FormatError('bad ObjStm stream');\n }\n var first = stream.dict.get('First');\n var n = stream.dict.get('N');\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new _util.FormatError('invalid first and n parameters for ObjStm stream');\n }\n var parser = new _parser.Parser(new _parser.Lexer(stream), false, this);\n parser.allowStreams = true;\n var i,\n entries = [],\n num,\n nums = [];\n for (i = 0; i < n; ++i) {\n num = parser.getObj();\n if (!Number.isInteger(num)) {\n throw new _util.FormatError('invalid object number in the ObjStm stream: ' + num);\n }\n nums.push(num);\n var offset = parser.getObj();\n if (!Number.isInteger(offset)) {\n throw new _util.FormatError('invalid object offset in the ObjStm stream: ' + offset);\n }\n }\n for (i = 0; i < n; ++i) {\n entries.push(parser.getObj());\n if ((0, _primitives.isCmd)(parser.buf1, 'endobj')) {\n parser.shift();\n }\n num = nums[i];\n var entry = this.entries[num];\n if (entry && entry.offset === tableOffset && entry.gen === i) {\n this.cache[num] = entries[i];\n }\n }\n xrefEntry = entries[xrefEntry.gen];\n if (xrefEntry === undefined) {\n throw new _util.FormatError('bad XRef entry for compressed object');\n }\n return xrefEntry;\n },\n fetchIfRefAsync: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee(obj, suppressEncryption) {\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if ((0, _primitives.isRef)(obj)) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt('return', obj);\n\n case 2:\n return _context.abrupt('return', this.fetchAsync(obj, suppressEncryption));\n\n case 3:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function fetchIfRefAsync(_x, _x2) {\n return _ref.apply(this, arguments);\n }\n\n return fetchIfRefAsync;\n }(),\n fetchAsync: function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2(ref, suppressEncryption) {\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n return _context2.abrupt('return', this.fetch(ref, suppressEncryption));\n\n case 4:\n _context2.prev = 4;\n _context2.t0 = _context2['catch'](0);\n\n if (_context2.t0 instanceof _util.MissingDataException) {\n _context2.next = 8;\n break;\n }\n\n throw _context2.t0;\n\n case 8:\n _context2.next = 10;\n return this.pdfManager.requestRange(_context2.t0.begin, _context2.t0.end);\n\n case 10:\n return _context2.abrupt('return', this.fetchAsync(ref, suppressEncryption));\n\n case 11:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this, [[0, 4]]);\n }));\n\n function fetchAsync(_x3, _x4) {\n return _ref2.apply(this, arguments);\n }\n\n return fetchAsync;\n }(),\n\n getCatalogObj: function XRef_getCatalogObj() {\n return this.root;\n }\n };\n return XRef;\n}();\n\nvar NameOrNumberTree = function () {\n function NameOrNumberTree(root, xref, type) {\n _classCallCheck(this, NameOrNumberTree);\n\n if (this.constructor === NameOrNumberTree) {\n (0, _util.unreachable)('Cannot initialize NameOrNumberTree.');\n }\n this.root = root;\n this.xref = xref;\n this._type = type;\n }\n\n _createClass(NameOrNumberTree, [{\n key: 'getAll',\n value: function getAll() {\n var dict = Object.create(null);\n if (!this.root) {\n return dict;\n }\n var xref = this.xref;\n var processed = new _primitives.RefSet();\n processed.put(this.root);\n var queue = [this.root];\n while (queue.length > 0) {\n var obj = xref.fetchIfRef(queue.shift());\n if (!(0, _primitives.isDict)(obj)) {\n continue;\n }\n if (obj.has('Kids')) {\n var _kids = obj.get('Kids');\n for (var i = 0, ii = _kids.length; i < ii; i++) {\n var kid = _kids[i];\n if (processed.has(kid)) {\n throw new _util.FormatError('Duplicate entry in \"' + this._type + '\" tree.');\n }\n queue.push(kid);\n processed.put(kid);\n }\n continue;\n }\n var entries = obj.get(this._type);\n if (Array.isArray(entries)) {\n for (var _i2 = 0, _ii = entries.length; _i2 < _ii; _i2 += 2) {\n dict[xref.fetchIfRef(entries[_i2])] = xref.fetchIfRef(entries[_i2 + 1]);\n }\n }\n }\n return dict;\n }\n }, {\n key: 'get',\n value: function get(key) {\n if (!this.root) {\n return null;\n }\n var xref = this.xref;\n var kidsOrEntries = xref.fetchIfRef(this.root);\n var loopCount = 0;\n var MAX_LEVELS = 10;\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 var _kids2 = kidsOrEntries.get('Kids');\n if (!Array.isArray(_kids2)) {\n return null;\n }\n var l = 0,\n r = _kids2.length - 1;\n while (l <= r) {\n var m = l + r >> 1;\n var kid = xref.fetchIfRef(_kids2[m]);\n var limits = kid.get('Limits');\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(_kids2[m]);\n break;\n }\n }\n if (l > r) {\n return null;\n }\n }\n var entries = kidsOrEntries.get(this._type);\n if (Array.isArray(entries)) {\n var _l = 0,\n _r = entries.length - 2;\n while (_l <= _r) {\n var _m = _l + _r & ~1;\n var currentKey = xref.fetchIfRef(entries[_m]);\n if (key < currentKey) {\n _r = _m - 2;\n } else if (key > currentKey) {\n _l = _m + 2;\n } else {\n return xref.fetchIfRef(entries[_m + 1]);\n }\n }\n }\n return null;\n }\n }]);\n\n return NameOrNumberTree;\n}();\n\nvar NameTree = function (_NameOrNumberTree) {\n _inherits(NameTree, _NameOrNumberTree);\n\n function NameTree(root, xref) {\n _classCallCheck(this, NameTree);\n\n return _possibleConstructorReturn(this, (NameTree.__proto__ || Object.getPrototypeOf(NameTree)).call(this, root, xref, 'Names'));\n }\n\n return NameTree;\n}(NameOrNumberTree);\n\nvar NumberTree = function (_NameOrNumberTree2) {\n _inherits(NumberTree, _NameOrNumberTree2);\n\n function NumberTree(root, xref) {\n _classCallCheck(this, NumberTree);\n\n return _possibleConstructorReturn(this, (NumberTree.__proto__ || Object.getPrototypeOf(NumberTree)).call(this, root, xref, 'Nums'));\n }\n\n return NumberTree;\n}(NameOrNumberTree);\n\nvar FileSpec = function FileSpecClosure() {\n function FileSpec(root, xref) {\n if (!root || !(0, _primitives.isDict)(root)) {\n return;\n }\n this.xref = xref;\n this.root = root;\n if (root.has('FS')) {\n this.fs = root.get('FS');\n }\n this.description = root.has('Desc') ? (0, _util.stringToPDFString)(root.get('Desc')) : '';\n if (root.has('RF')) {\n (0, _util.warn)('Related file specifications are not supported');\n }\n this.contentAvailable = true;\n if (!root.has('EF')) {\n this.contentAvailable = false;\n (0, _util.warn)('Non-embedded file specifications are not supported');\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 return null;\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 return this._filename;\n },\n get content() {\n if (!this.contentAvailable) {\n return null;\n }\n if (!this.contentRef && this.root) {\n this.contentRef = pickPlatformItem(this.root.get('EF'));\n }\n var content = null;\n if (this.contentRef) {\n var xref = this.xref;\n var fileObj = xref.fetchIfRef(this.contentRef);\n if (fileObj && (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 return content;\n },\n get serializable() {\n return {\n filename: this.filename,\n content: this.content\n };\n }\n };\n return FileSpec;\n}();\nvar ObjectLoader = function () {\n function mayHaveChildren(value) {\n return (0, _primitives.isRef)(value) || (0, _primitives.isDict)(value) || Array.isArray(value) || (0, _primitives.isStream)(value);\n }\n function addChildren(node, nodesToVisit) {\n if ((0, _primitives.isDict)(node) || (0, _primitives.isStream)(node)) {\n var dict = (0, _primitives.isDict)(node) ? node : node.dict;\n var dictKeys = dict.getKeys();\n for (var i = 0, ii = dictKeys.length; i < ii; i++) {\n var rawValue = dict.getRaw(dictKeys[i]);\n if (mayHaveChildren(rawValue)) {\n nodesToVisit.push(rawValue);\n }\n }\n } else if (Array.isArray(node)) {\n for (var _i3 = 0, _ii2 = node.length; _i3 < _ii2; _i3++) {\n var value = node[_i3];\n if (mayHaveChildren(value)) {\n nodesToVisit.push(value);\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 this.capability = null;\n }\n ObjectLoader.prototype = {\n load: function load() {\n this.capability = (0, _util.createPromiseCapability)();\n if (!(this.xref.stream instanceof _chunked_stream.ChunkedStream) || this.xref.stream.getMissingChunks().length === 0) {\n this.capability.resolve();\n return this.capability.promise;\n }\n var keys = this.keys,\n dict = this.dict;\n\n this.refSet = new _primitives.RefSet();\n var nodesToVisit = [];\n for (var i = 0, ii = keys.length; i < ii; i++) {\n var rawValue = dict.getRaw(keys[i]);\n if (rawValue !== undefined) {\n nodesToVisit.push(rawValue);\n }\n }\n this._walk(nodesToVisit);\n return this.capability.promise;\n },\n _walk: function _walk(nodesToVisit) {\n var _this4 = this;\n\n var nodesToRevisit = [];\n var pendingRequests = [];\n while (nodesToVisit.length) {\n var _currentNode = nodesToVisit.pop();\n if ((0, _primitives.isRef)(_currentNode)) {\n if (this.refSet.has(_currentNode)) {\n continue;\n }\n try {\n this.refSet.put(_currentNode);\n _currentNode = this.xref.fetch(_currentNode);\n } catch (ex) {\n if (!(ex instanceof _util.MissingDataException)) {\n throw ex;\n }\n nodesToRevisit.push(_currentNode);\n pendingRequests.push({\n begin: ex.begin,\n end: ex.end\n });\n }\n }\n if (_currentNode && _currentNode.getBaseStreams) {\n var baseStreams = _currentNode.getBaseStreams();\n var foundMissingData = false;\n for (var i = 0, ii = baseStreams.length; i < ii; i++) {\n var stream = baseStreams[i];\n if (stream.getMissingChunks && stream.getMissingChunks().length) {\n foundMissingData = true;\n pendingRequests.push({\n begin: stream.start,\n end: stream.end\n });\n }\n }\n if (foundMissingData) {\n nodesToRevisit.push(_currentNode);\n }\n }\n addChildren(_currentNode, nodesToVisit);\n }\n if (pendingRequests.length) {\n this.xref.stream.manager.requestRanges(pendingRequests).then(function () {\n for (var _i4 = 0, _ii3 = nodesToRevisit.length; _i4 < _ii3; _i4++) {\n var node = nodesToRevisit[_i4];\n if ((0, _primitives.isRef)(node)) {\n _this4.refSet.remove(node);\n }\n }\n _this4._walk(nodesToRevisit);\n }, this.capability.reject);\n return;\n }\n this.refSet = null;\n this.capability.resolve();\n }\n };\n return ObjectLoader;\n}();\nexports.Catalog = Catalog;\nexports.ObjectLoader = ObjectLoader;\nexports.XRef = XRef;\nexports.FileSpec = FileSpec;\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar EOF = {};\nvar Name = function NameClosure() {\n function Name(name) {\n this.name = name;\n }\n Name.prototype = {};\n var nameCache = Object.create(null);\n Name.get = function Name_get(name) {\n var nameValue = nameCache[name];\n return nameValue ? nameValue : nameCache[name] = new Name(name);\n };\n return Name;\n}();\nvar Cmd = function CmdClosure() {\n function Cmd(cmd) {\n this.cmd = cmd;\n }\n Cmd.prototype = {};\n var cmdCache = Object.create(null);\n Cmd.get = function Cmd_get(cmd) {\n var cmdValue = cmdCache[cmd];\n return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd);\n };\n return Cmd;\n}();\nvar Dict = function DictClosure() {\n var nonSerializable = function nonSerializableClosure() {\n return nonSerializable;\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 Dict.prototype = {\n assignXref: function Dict_assignXref(newXref) {\n this.xref = newXref;\n },\n get: function Dict_get(key1, key2, key3) {\n var value;\n var xref = this.xref,\n suppressEncryption = this.suppressEncryption;\n if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {\n return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n }\n if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {\n return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n }\n value = this._map[key3] || null;\n return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n },\n getAsync: function Dict_getAsync(key1, key2, key3) {\n var value;\n var xref = this.xref,\n suppressEncryption = this.suppressEncryption;\n if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {\n if (xref) {\n return xref.fetchIfRefAsync(value, suppressEncryption);\n }\n return Promise.resolve(value);\n }\n if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {\n if (xref) {\n return xref.fetchIfRefAsync(value, suppressEncryption);\n }\n return Promise.resolve(value);\n }\n value = this._map[key3] || null;\n if (xref) {\n return xref.fetchIfRefAsync(value, suppressEncryption);\n }\n return Promise.resolve(value);\n },\n getArray: function Dict_getArray(key1, key2, key3) {\n var value = this.get(key1, key2, key3);\n var xref = this.xref,\n suppressEncryption = this.suppressEncryption;\n if (!Array.isArray(value) || !xref) {\n return value;\n }\n value = value.slice();\n for (var i = 0, ii = value.length; i < ii; i++) {\n if (!isRef(value[i])) {\n continue;\n }\n value[i] = xref.fetch(value[i], suppressEncryption);\n }\n return value;\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 set: function Dict_set(key, value) {\n this._map[key] = value;\n },\n has: function Dict_has(key) {\n return key in this._map;\n },\n forEach: function Dict_forEach(callback) {\n for (var key in this._map) {\n callback(key, this.get(key));\n }\n }\n };\n Dict.empty = new Dict(null);\n Dict.merge = function (xref, dictArray) {\n var mergedDict = new Dict(xref);\n for (var i = 0, ii = dictArray.length; i < ii; i++) {\n var dict = dictArray[i];\n if (!isDict(dict)) {\n continue;\n }\n for (var keyName in dict._map) {\n if (mergedDict._map[keyName] !== undefined) {\n continue;\n }\n mergedDict._map[keyName] = dict._map[keyName];\n }\n }\n return mergedDict;\n };\n return Dict;\n}();\nvar Ref = function RefClosure() {\n function Ref(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n Ref.prototype = {\n toString: function Ref_toString() {\n var str = this.num + 'R';\n if (this.gen !== 0) {\n str += this.gen;\n }\n return str;\n }\n };\n return Ref;\n}();\nvar RefSet = function RefSetClosure() {\n function RefSet() {\n this.dict = Object.create(null);\n }\n RefSet.prototype = {\n has: function RefSet_has(ref) {\n return ref.toString() in this.dict;\n },\n put: function RefSet_put(ref) {\n this.dict[ref.toString()] = true;\n },\n remove: function RefSet_remove(ref) {\n delete this.dict[ref.toString()];\n }\n };\n return RefSet;\n}();\nvar RefSetCache = function RefSetCacheClosure() {\n function RefSetCache() {\n this.dict = Object.create(null);\n }\n RefSetCache.prototype = {\n get: function RefSetCache_get(ref) {\n return this.dict[ref.toString()];\n },\n has: function RefSetCache_has(ref) {\n return ref.toString() in this.dict;\n },\n put: function RefSetCache_put(ref, obj) {\n this.dict[ref.toString()] = obj;\n },\n putAlias: function RefSetCache_putAlias(ref, aliasRef) {\n this.dict[ref.toString()] = this.get(aliasRef);\n },\n forEach: function RefSetCache_forEach(fn, thisArg) {\n for (var i in this.dict) {\n fn.call(thisArg, this.dict[i]);\n }\n },\n clear: function RefSetCache_clear() {\n this.dict = Object.create(null);\n }\n };\n return RefSetCache;\n}();\nfunction isEOF(v) {\n return v === EOF;\n}\nfunction isName(v, name) {\n return v instanceof Name && (name === undefined || v.name === name);\n}\nfunction isCmd(v, cmd) {\n return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\nfunction isDict(v, type) {\n return v instanceof Dict && (type === undefined || isName(v.get('Type'), type));\n}\nfunction isRef(v) {\n return v instanceof Ref;\n}\nfunction isRefsEqual(v1, v2) {\n return v1.num === v2.num && v1.gen === v2.gen;\n}\nfunction isStream(v) {\n return (typeof v === 'undefined' ? 'undefined' : _typeof(v)) === 'object' && v !== null && v.getBytes !== undefined;\n}\nexports.EOF = EOF;\nexports.Cmd = Cmd;\nexports.Dict = Dict;\nexports.Name = Name;\nexports.Ref = Ref;\nexports.RefSet = RefSet;\nexports.RefSetCache = RefSetCache;\nexports.isEOF = isEOF;\nexports.isCmd = isCmd;\nexports.isDict = isDict;\nexports.isName = isName;\nexports.isRef = isRef;\nexports.isRefsEqual = isRefsEqual;\nexports.isStream = isStream;\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Parser = exports.Linearization = exports.Lexer = undefined;\n\nvar _stream = __w_pdfjs_require__(140);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar _ccitt_stream = __w_pdfjs_require__(141);\n\nvar _jbig2_stream = __w_pdfjs_require__(143);\n\nvar _jpeg_stream = __w_pdfjs_require__(146);\n\nvar _jpx_stream = __w_pdfjs_require__(148);\n\nvar MAX_LENGTH_TO_CACHE = 1000;\nvar MAX_ADLER32_LENGTH = 5552;\nfunction computeAdler32(bytes) {\n var bytesLength = bytes.length;\n var a = 1,\n b = 0;\n for (var i = 0; i < bytesLength; ++i) {\n a += bytes[i] & 0xFF;\n b += a;\n }\n return b % 65521 << 16 | a % 65521;\n}\nvar Parser = function ParserClosure() {\n function Parser(lexer, allowStreams, xref, recoveryMode) {\n this.lexer = lexer;\n this.allowStreams = allowStreams;\n this.xref = xref;\n this.recoveryMode = recoveryMode || false;\n this.imageCache = Object.create(null);\n this.refill();\n }\n Parser.prototype = {\n refill: function Parser_refill() {\n this.buf1 = this.lexer.getObj();\n this.buf2 = this.lexer.getObj();\n },\n shift: function Parser_shift() {\n if ((0, _primitives.isCmd)(this.buf2, '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 tryShift: function Parser_tryShift() {\n try {\n this.shift();\n return true;\n } catch (e) {\n if (e instanceof _util.MissingDataException) {\n throw e;\n }\n return false;\n }\n },\n getObj: function Parser_getObj(cipherTransform) {\n var buf1 = this.buf1;\n this.shift();\n if (buf1 instanceof _primitives.Cmd) {\n switch (buf1.cmd) {\n case 'BI':\n return this.makeInlineImage(cipherTransform);\n case '[':\n var array = [];\n while (!(0, _primitives.isCmd)(this.buf1, ']') && !(0, _primitives.isEOF)(this.buf1)) {\n array.push(this.getObj(cipherTransform));\n }\n if ((0, _primitives.isEOF)(this.buf1)) {\n if (!this.recoveryMode) {\n throw new _util.FormatError('End of file inside array');\n }\n return array;\n }\n this.shift();\n return array;\n case '<<':\n var dict = new _primitives.Dict(this.xref);\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 var key = this.buf1.name;\n this.shift();\n if ((0, _primitives.isEOF)(this.buf1)) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n if ((0, _primitives.isEOF)(this.buf1)) {\n if (!this.recoveryMode) {\n throw new _util.FormatError('End of file inside dictionary');\n }\n return dict;\n }\n if ((0, _primitives.isCmd)(this.buf2, 'stream')) {\n return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict;\n }\n this.shift();\n return dict;\n default:\n return buf1;\n }\n }\n if (Number.isInteger(buf1)) {\n var num = buf1;\n if (Number.isInteger(this.buf1) && (0, _primitives.isCmd)(this.buf2, 'R')) {\n var ref = new _primitives.Ref(num, this.buf1);\n this.shift();\n this.shift();\n return ref;\n }\n return num;\n }\n if ((0, _util.isString)(buf1)) {\n var str = buf1;\n if (cipherTransform) {\n str = cipherTransform.decryptString(str);\n }\n return str;\n }\n return buf1;\n },\n findDefaultInlineStreamEnd: function findDefaultInlineStreamEnd(stream) {\n var E = 0x45,\n I = 0x49,\n SPACE = 0x20,\n LF = 0xA,\n CR = 0xD;\n var n = 10,\n NUL = 0x0;\n var startPos = stream.pos,\n state = 0,\n ch = void 0,\n maybeEIPos = void 0;\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);\n if (ch === SPACE || ch === LF || ch === CR) {\n maybeEIPos = stream.pos;\n var followingBytes = stream.peekBytes(n);\n for (var i = 0, ii = followingBytes.length; i < ii; i++) {\n ch = followingBytes[i];\n if (ch === NUL && followingBytes[i + 1] !== NUL) {\n continue;\n }\n if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7F)) {\n state = 0;\n break;\n }\n }\n if (state === 2) {\n break;\n }\n } else {\n state = 0;\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 if (maybeEIPos) {\n (0, _util.warn)('... trying to recover by using the last \"EI\" occurrence.');\n stream.skip(-(stream.pos - maybeEIPos));\n }\n }\n return stream.pos - 4 - startPos;\n },\n\n findDCTDecodeInlineStreamEnd: function Parser_findDCTDecodeInlineStreamEnd(stream) {\n var startPos = stream.pos,\n foundEOI = false,\n b,\n markerLength,\n length;\n while ((b = stream.getByte()) !== -1) {\n if (b !== 0xFF) {\n continue;\n }\n switch (stream.getByte()) {\n case 0x00:\n break;\n case 0xFF:\n stream.skip(-1);\n break;\n case 0xD9:\n foundEOI = true;\n break;\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 if (markerLength > 2) {\n stream.skip(markerLength - 2);\n } else {\n stream.skip(-2);\n }\n break;\n }\n if (foundEOI) {\n break;\n }\n }\n length = stream.pos - startPos;\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 this.inlineStreamSkipEI(stream);\n return length;\n },\n findASCII85DecodeInlineStreamEnd: function Parser_findASCII85DecodeInlineStreamEnd(stream) {\n var TILDE = 0x7E,\n GT = 0x3E;\n var startPos = stream.pos,\n ch,\n length;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === TILDE && stream.peekByte() === GT) {\n stream.skip();\n break;\n }\n }\n length = stream.pos - startPos;\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 this.inlineStreamSkipEI(stream);\n return length;\n },\n findASCIIHexDecodeInlineStreamEnd: function Parser_findASCIIHexDecodeInlineStreamEnd(stream) {\n var GT = 0x3E;\n var startPos = stream.pos,\n ch,\n length;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === GT) {\n break;\n }\n }\n length = stream.pos - startPos;\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 this.inlineStreamSkipEI(stream);\n return length;\n },\n inlineStreamSkipEI: function Parser_inlineStreamSkipEI(stream) {\n var E = 0x45,\n I = 0x49;\n var state = 0,\n ch;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else if (state === 2) {\n break;\n }\n }\n },\n makeInlineImage: function Parser_makeInlineImage(cipherTransform) {\n var lexer = this.lexer;\n var stream = lexer.stream;\n var dict = new _primitives.Dict(this.xref),\n dictLength = void 0;\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 var key = this.buf1.name;\n this.shift();\n if ((0, _primitives.isEOF)(this.buf1)) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n if (lexer.beginInlineImagePos !== -1) {\n dictLength = stream.pos - lexer.beginInlineImagePos;\n }\n var filter = dict.get('Filter', 'F'),\n filterName;\n if ((0, _primitives.isName)(filter)) {\n filterName = filter.name;\n } else if (Array.isArray(filter)) {\n var filterZero = this.xref.fetchIfRef(filter[0]);\n if ((0, _primitives.isName)(filterZero)) {\n filterName = filterZero.name;\n }\n }\n var startPos = stream.pos,\n length = void 0;\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 var imageStream = stream.makeSubStream(startPos, length, dict);\n var cacheKey = void 0;\n if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) {\n var imageBytes = imageStream.getBytes();\n imageStream.reset();\n var initialStreamPos = stream.pos;\n stream.pos = lexer.beginInlineImagePos;\n var dictBytes = stream.getBytes(dictLength);\n stream.pos = initialStreamPos;\n cacheKey = computeAdler32(imageBytes) + '_' + computeAdler32(dictBytes);\n var cacheEntry = this.imageCache[cacheKey];\n if (cacheEntry !== undefined) {\n this.buf2 = _primitives.Cmd.get('EI');\n this.shift();\n cacheEntry.reset();\n return cacheEntry;\n }\n }\n if (cipherTransform) {\n imageStream = cipherTransform.createStream(imageStream, length);\n }\n imageStream = this.filter(imageStream, dict, length);\n imageStream.dict = dict;\n if (cacheKey !== undefined) {\n imageStream.cacheKey = 'inline_' + length + '_' + cacheKey;\n this.imageCache[cacheKey] = imageStream;\n }\n this.buf2 = _primitives.Cmd.get('EI');\n this.shift();\n return imageStream;\n },\n _findStreamLength: function _findStreamLength(startPos, signature) {\n var stream = this.lexer.stream;\n\n stream.pos = startPos;\n var SCAN_BLOCK_LENGTH = 2048;\n var signatureLength = signature.length;\n while (stream.pos < stream.end) {\n var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n var scanLength = scanBytes.length - signatureLength;\n if (scanLength <= 0) {\n break;\n }\n var pos = 0;\n while (pos < scanLength) {\n var j = 0;\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n stream.pos += pos;\n return stream.pos - startPos;\n }\n pos++;\n }\n stream.pos += scanLength;\n }\n return -1;\n },\n\n makeStream: function Parser_makeStream(dict, cipherTransform) {\n var lexer = this.lexer;\n var stream = lexer.stream;\n lexer.skipToNextLine();\n var startPos = stream.pos - 1;\n var length = dict.get('Length');\n if (!Number.isInteger(length)) {\n (0, _util.info)('Bad ' + length + ' attribute in stream');\n length = 0;\n }\n stream.pos = startPos + length;\n lexer.nextChar();\n if (this.tryShift() && (0, _primitives.isCmd)(this.buf2, 'endstream')) {\n this.shift();\n } else {\n var ENDSTREAM_SIGNATURE = new Uint8Array([0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D]);\n var actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n if (actualLength < 0) {\n var MAX_TRUNCATION = 1;\n for (var i = 1; i <= MAX_TRUNCATION; i++) {\n var end = ENDSTREAM_SIGNATURE.length - i;\n var TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n var maybeLength = this._findStreamLength(startPos, TRUNCATED_SIGNATURE);\n if (maybeLength >= 0) {\n var lastByte = stream.peekBytes(end + 1)[end];\n if (!(0, _util.isSpace)(lastByte)) {\n break;\n }\n (0, _util.info)('Found \"' + (0, _util.bytesToString)(TRUNCATED_SIGNATURE) + '\" when ' + 'searching for endstream command.');\n actualLength = maybeLength;\n break;\n }\n }\n if (actualLength < 0) {\n throw new _util.FormatError('Missing endstream command.');\n }\n }\n length = actualLength;\n lexer.nextChar();\n this.shift();\n this.shift();\n }\n this.shift();\n stream = stream.makeSubStream(startPos, length, dict);\n if (cipherTransform) {\n stream = cipherTransform.createStream(stream, length);\n }\n stream = this.filter(stream, dict, length);\n stream.dict = dict;\n return stream;\n },\n filter: function Parser_filter(stream, dict, length) {\n var filter = dict.get('Filter', 'F');\n var params = dict.get('DecodeParms', 'DP');\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 return this.makeFilter(stream, filter.name, length, params);\n }\n var maybeLength = length;\n if (Array.isArray(filter)) {\n var filterArray = filter;\n var paramsArray = params;\n for (var i = 0, ii = filterArray.length; i < ii; ++i) {\n filter = this.xref.fetchIfRef(filterArray[i]);\n if (!(0, _primitives.isName)(filter)) {\n throw new _util.FormatError('Bad filter name: ' + filter);\n }\n params = null;\n if (Array.isArray(paramsArray) && i in paramsArray) {\n params = this.xref.fetchIfRef(paramsArray[i]);\n }\n stream = this.makeFilter(stream, filter.name, maybeLength, params);\n maybeLength = null;\n }\n }\n return stream;\n },\n makeFilter: function Parser_makeFilter(stream, name, maybeLength, params) {\n if (maybeLength === 0) {\n (0, _util.warn)('Empty \"' + name + '\" stream.');\n return new _stream.NullStream();\n }\n try {\n var xrefStreamStats = this.xref.stats.streamTypes;\n if (name === 'FlateDecode' || name === 'Fl') {\n xrefStreamStats[_util.StreamType.FLATE] = true;\n if (params) {\n return new _stream.PredictorStream(new _stream.FlateStream(stream, maybeLength), maybeLength, params);\n }\n return new _stream.FlateStream(stream, maybeLength);\n }\n if (name === 'LZWDecode' || name === 'LZW') {\n xrefStreamStats[_util.StreamType.LZW] = true;\n var earlyChange = 1;\n if (params) {\n if (params.has('EarlyChange')) {\n earlyChange = params.get('EarlyChange');\n }\n return new _stream.PredictorStream(new _stream.LZWStream(stream, maybeLength, earlyChange), maybeLength, params);\n }\n return new _stream.LZWStream(stream, maybeLength, earlyChange);\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 if (name === 'JPXDecode' || name === 'JPX') {\n xrefStreamStats[_util.StreamType.JPX] = true;\n return new _jpx_stream.JpxStream(stream, maybeLength, stream.dict, params);\n }\n if (name === 'ASCII85Decode' || name === 'A85') {\n xrefStreamStats[_util.StreamType.A85] = true;\n return new _stream.Ascii85Stream(stream, maybeLength);\n }\n if (name === 'ASCIIHexDecode' || name === 'AHx') {\n xrefStreamStats[_util.StreamType.AHX] = true;\n return new _stream.AsciiHexStream(stream, maybeLength);\n }\n if (name === 'CCITTFaxDecode' || name === 'CCF') {\n xrefStreamStats[_util.StreamType.CCF] = true;\n return new _ccitt_stream.CCITTFaxStream(stream, maybeLength, params);\n }\n if (name === 'RunLengthDecode' || name === 'RL') {\n xrefStreamStats[_util.StreamType.RL] = true;\n return new _stream.RunLengthStream(stream, maybeLength);\n }\n if (name === 'JBIG2Decode') {\n xrefStreamStats[_util.StreamType.JBIG] = true;\n return new _jbig2_stream.Jbig2Stream(stream, maybeLength, stream.dict, params);\n }\n (0, _util.warn)('filter \"' + name + '\" not supported yet');\n return stream;\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('Invalid stream: \\\"' + ex + '\\\"');\n return new _stream.NullStream();\n }\n }\n };\n return Parser;\n}();\nvar Lexer = function LexerClosure() {\n function Lexer(stream, knownCommands) {\n this.stream = stream;\n this.nextChar();\n this.strBuf = [];\n this.knownCommands = knownCommands;\n this.beginInlineImagePos = -1;\n }\n var 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 function toHexDigit(ch) {\n if (ch >= 0x30 && ch <= 0x39) {\n return ch & 0x0F;\n }\n if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n return (ch & 0x0F) + 9;\n }\n return -1;\n }\n Lexer.prototype = {\n nextChar: function Lexer_nextChar() {\n return this.currentChar = this.stream.getByte();\n },\n peekChar: function Lexer_peekChar() {\n return this.stream.peekByte();\n },\n getNumber: function Lexer_getNumber() {\n var ch = this.currentChar;\n var eNotation = false;\n var divideBy = 0;\n var sign = 0;\n if (ch === 0x2D) {\n sign = -1;\n ch = this.nextChar();\n if (ch === 0x2D) {\n ch = this.nextChar();\n }\n } else if (ch === 0x2B) {\n sign = 1;\n ch = this.nextChar();\n }\n if (ch === 0x0A || ch === 0x0D) {\n do {\n ch = this.nextChar();\n } while (ch === 0x0A || ch === 0x0D);\n }\n if (ch === 0x2E) {\n divideBy = 10;\n ch = this.nextChar();\n }\n if (ch < 0x30 || ch > 0x39) {\n if (divideBy === 10 && sign === 0 && ((0, _util.isSpace)(ch) || ch === -1)) {\n (0, _util.warn)('Lexer.getNumber - treating a single decimal point as zero.');\n return 0;\n }\n throw new _util.FormatError('Invalid number: ' + String.fromCharCode(ch) + ' (charCode ' + ch + ')');\n }\n sign = sign || 1;\n var baseValue = ch - 0x30;\n var powerValue = 0;\n var powerValueSign = 1;\n while ((ch = this.nextChar()) >= 0) {\n if (0x30 <= ch && ch <= 0x39) {\n var currentDigit = ch - 0x30;\n if (eNotation) {\n powerValue = powerValue * 10 + currentDigit;\n } else {\n if (divideBy !== 0) {\n divideBy *= 10;\n }\n baseValue = baseValue * 10 + currentDigit;\n }\n } else if (ch === 0x2E) {\n if (divideBy === 0) {\n divideBy = 1;\n } else {\n break;\n }\n } else if (ch === 0x2D) {\n (0, _util.warn)('Badly formatted number');\n } else if (ch === 0x45 || ch === 0x65) {\n ch = this.peekChar();\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 eNotation = true;\n } else {\n break;\n }\n }\n if (divideBy !== 0) {\n baseValue /= divideBy;\n }\n if (eNotation) {\n baseValue *= Math.pow(10, powerValueSign * powerValue);\n }\n return sign * baseValue;\n },\n getString: function Lexer_getString() {\n var numParen = 1;\n var done = false;\n var strBuf = this.strBuf;\n strBuf.length = 0;\n var ch = this.nextChar();\n while (true) {\n var charBuffered = false;\n switch (ch | 0) {\n case -1:\n (0, _util.warn)('Unterminated string');\n done = true;\n break;\n case 0x28:\n ++numParen;\n strBuf.push('(');\n break;\n case 0x29:\n if (--numParen === 0) {\n this.nextChar();\n done = true;\n } else {\n strBuf.push(')');\n }\n break;\n case 0x5C:\n ch = this.nextChar();\n switch (ch) {\n case -1:\n (0, _util.warn)('Unterminated string');\n done = true;\n break;\n case 0x6E:\n strBuf.push('\\n');\n break;\n case 0x72:\n strBuf.push('\\r');\n break;\n case 0x74:\n strBuf.push('\\t');\n break;\n case 0x62:\n strBuf.push('\\b');\n break;\n case 0x66:\n strBuf.push('\\f');\n break;\n case 0x5C:\n case 0x28:\n case 0x29:\n strBuf.push(String.fromCharCode(ch));\n break;\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n var x = ch & 0x0F;\n ch = this.nextChar();\n charBuffered = true;\n if (ch >= 0x30 && ch <= 0x37) {\n x = (x << 3) + (ch & 0x0F);\n ch = this.nextChar();\n if (ch >= 0x30 && ch <= 0x37) {\n charBuffered = false;\n x = (x << 3) + (ch & 0x0F);\n }\n }\n strBuf.push(String.fromCharCode(x));\n break;\n case 0x0D:\n if (this.peekChar() === 0x0A) {\n this.nextChar();\n }\n break;\n case 0x0A:\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n if (done) {\n break;\n }\n if (!charBuffered) {\n ch = this.nextChar();\n }\n }\n return strBuf.join('');\n },\n getName: function Lexer_getName() {\n var ch, previousCh;\n var strBuf = this.strBuf;\n strBuf.length = 0;\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n if (ch === 0x23) {\n ch = this.nextChar();\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 var x = toHexDigit(ch);\n if (x !== -1) {\n previousCh = ch;\n ch = this.nextChar();\n var x2 = toHexDigit(ch);\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 if (specialChars[ch]) {\n break;\n }\n strBuf.push(String.fromCharCode(ch));\n continue;\n }\n strBuf.push(String.fromCharCode(x << 4 | x2));\n } else {\n strBuf.push('#', String.fromCharCode(ch));\n }\n } else {\n strBuf.push(String.fromCharCode(ch));\n }\n }\n if (strBuf.length > 127) {\n (0, _util.warn)('name token is longer than allowed by the spec: ' + strBuf.length);\n }\n return _primitives.Name.get(strBuf.join(''));\n },\n getHexString: function Lexer_getHexString() {\n var strBuf = this.strBuf;\n strBuf.length = 0;\n var ch = this.currentChar;\n var isFirstHex = true;\n var firstDigit;\n var secondDigit;\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 if (firstDigit === -1) {\n (0, _util.warn)('Ignoring invalid character \"' + ch + '\" in hex string');\n ch = this.nextChar();\n continue;\n }\n } else {\n secondDigit = toHexDigit(ch);\n if (secondDigit === -1) {\n (0, _util.warn)('Ignoring invalid character \"' + ch + '\" in hex string');\n ch = this.nextChar();\n continue;\n }\n strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit));\n }\n isFirstHex = !isFirstHex;\n ch = this.nextChar();\n }\n }\n return strBuf.join('');\n },\n getObj: function Lexer_getObj() {\n var comment = false;\n var ch = this.currentChar;\n while (true) {\n if (ch < 0) {\n return _primitives.EOF;\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 ch = this.nextChar();\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 case 0x28:\n return this.getString();\n case 0x2F:\n return this.getName();\n case 0x5B:\n this.nextChar();\n return _primitives.Cmd.get('[');\n case 0x5D:\n this.nextChar();\n return _primitives.Cmd.get(']');\n case 0x3C:\n ch = this.nextChar();\n if (ch === 0x3C) {\n this.nextChar();\n return _primitives.Cmd.get('<<');\n }\n return this.getHexString();\n case 0x3E:\n ch = this.nextChar();\n if (ch === 0x3E) {\n this.nextChar();\n return _primitives.Cmd.get('>>');\n }\n return _primitives.Cmd.get('>');\n case 0x7B:\n this.nextChar();\n return _primitives.Cmd.get('{');\n case 0x7D:\n this.nextChar();\n return _primitives.Cmd.get('}');\n case 0x29:\n this.nextChar();\n throw new _util.FormatError('Illegal character: ' + ch);\n }\n var str = String.fromCharCode(ch);\n var knownCommands = this.knownCommands;\n var knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n var possibleCommand = str + String.fromCharCode(ch);\n if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n break;\n }\n if (str.length === 128) {\n throw new _util.FormatError('Command token too long: ' + str.length);\n }\n str = possibleCommand;\n knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n }\n if (str === 'true') {\n return true;\n }\n if (str === 'false') {\n return false;\n }\n if (str === 'null') {\n return null;\n }\n if (str === 'BI') {\n this.beginInlineImagePos = this.stream.pos;\n }\n return _primitives.Cmd.get(str);\n },\n skipToNextLine: function Lexer_skipToNextLine() {\n var ch = this.currentChar;\n while (ch >= 0) {\n if (ch === 0x0D) {\n ch = this.nextChar();\n if (ch === 0x0A) {\n this.nextChar();\n }\n break;\n } else if (ch === 0x0A) {\n this.nextChar();\n break;\n }\n ch = this.nextChar();\n }\n }\n };\n return Lexer;\n}();\nvar Linearization = {\n create: function LinearizationCreate(stream) {\n function getInt(name, allowZeroValue) {\n var obj = linDict.get(name);\n if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n return obj;\n }\n throw new Error('The \"' + name + '\" parameter in the linearization ' + 'dictionary is invalid.');\n }\n function getHints() {\n var hints = linDict.get('H'),\n hintsLength,\n item;\n if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) {\n for (var index = 0; index < hintsLength; index++) {\n if (!(Number.isInteger(item = hints[index]) && item > 0)) {\n throw new Error('Hint (' + index + ') in the linearization dictionary is invalid.');\n }\n }\n return hints;\n }\n throw new Error('Hint array in the linearization dictionary is invalid.');\n }\n var parser = new Parser(new Lexer(stream), false, null);\n var obj1 = parser.getObj();\n var obj2 = parser.getObj();\n var obj3 = parser.getObj();\n var linDict = parser.getObj();\n var obj, length;\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('L')) !== stream.length) {\n throw new Error('The \"L\" parameter in the linearization dictionary ' + 'does not equal the stream length.');\n }\n return {\n length: length,\n hints: getHints(),\n objectNumberFirst: getInt('O'),\n endFirst: getInt('E'),\n numPages: getInt('N'),\n mainXRefEntriesOffset: getInt('T'),\n pageFirst: linDict.has('P') ? getInt('P', true) : 0\n };\n }\n};\nexports.Lexer = Lexer;\nexports.Linearization = Linearization;\nexports.Parser = Parser;\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LZWStream = exports.StringStream = exports.StreamsSequenceStream = exports.Stream = exports.RunLengthStream = exports.PredictorStream = exports.NullStream = exports.FlateStream = exports.DecodeStream = exports.DecryptStream = exports.AsciiHexStream = exports.Ascii85Stream = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\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 Stream.prototype = {\n get length() {\n return this.end - this.start;\n },\n get isEmpty() {\n return this.length === 0;\n },\n getByte: function Stream_getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.bytes[this.pos++];\n },\n getUint16: function Stream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n },\n getInt32: function Stream_getInt32() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n var b2 = this.getByte();\n var b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n },\n getBytes: function getBytes(length) {\n var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var bytes = this.bytes;\n var pos = this.pos;\n var strEnd = this.end;\n if (!length) {\n var _subarray = bytes.subarray(pos, strEnd);\n return forceClamped ? new Uint8ClampedArray(_subarray) : _subarray;\n }\n var end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.pos = end;\n var 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 this.pos--;\n return peekedByte;\n },\n peekBytes: function peekBytes(length) {\n var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var bytes = this.getBytes(length, forceClamped);\n this.pos -= bytes.length;\n return bytes;\n },\n\n skip: function Stream_skip(n) {\n if (!n) {\n n = 1;\n }\n this.pos += n;\n },\n reset: function Stream_reset() {\n this.pos = this.start;\n },\n moveStart: function Stream_moveStart() {\n this.start = this.pos;\n },\n makeSubStream: function Stream_makeSubStream(start, length, dict) {\n return new Stream(this.bytes.buffer, start, length, dict);\n }\n };\n return Stream;\n}();\nvar StringStream = function StringStreamClosure() {\n function StringStream(str) {\n var bytes = (0, _util.stringToBytes)(str);\n Stream.call(this, bytes);\n }\n StringStream.prototype = Stream.prototype;\n return StringStream;\n}();\nvar DecodeStream = function DecodeStreamClosure() {\n var emptyBuffer = new Uint8Array(0);\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 if (maybeMinBufferLength) {\n while (this.minBufferLength < maybeMinBufferLength) {\n this.minBufferLength *= 2;\n }\n }\n }\n DecodeStream.prototype = {\n get isEmpty() {\n while (!this.eof && this.bufferLength === 0) {\n this.readBlock();\n }\n return this.bufferLength === 0;\n },\n ensureBuffer: function DecodeStream_ensureBuffer(requested) {\n var buffer = this.buffer;\n if (requested <= buffer.byteLength) {\n return buffer;\n }\n var size = this.minBufferLength;\n while (size < requested) {\n size *= 2;\n }\n var buffer2 = new Uint8Array(size);\n buffer2.set(buffer);\n return this.buffer = buffer2;\n },\n getByte: function DecodeStream_getByte() {\n var pos = this.pos;\n while (this.bufferLength <= pos) {\n if (this.eof) {\n return -1;\n }\n this.readBlock();\n }\n return this.buffer[this.pos++];\n },\n getUint16: function DecodeStream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n },\n getInt32: function DecodeStream_getInt32() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n var b2 = this.getByte();\n var b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n },\n getBytes: function getBytes(length) {\n var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var end,\n pos = this.pos;\n if (length) {\n this.ensureBuffer(pos + length);\n end = pos + length;\n while (!this.eof && this.bufferLength < end) {\n this.readBlock();\n }\n var bufEnd = this.bufferLength;\n if (end > bufEnd) {\n end = bufEnd;\n }\n } else {\n while (!this.eof) {\n this.readBlock();\n }\n end = this.bufferLength;\n }\n this.pos = end;\n var 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 this.pos--;\n return peekedByte;\n },\n peekBytes: function peekBytes(length) {\n var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var bytes = this.getBytes(length, forceClamped);\n this.pos -= bytes.length;\n return bytes;\n },\n\n makeSubStream: function DecodeStream_makeSubStream(start, length, dict) {\n var end = start + length;\n while (this.bufferLength <= end && !this.eof) {\n this.readBlock();\n }\n return new Stream(this.buffer, start, length, dict);\n },\n skip: function DecodeStream_skip(n) {\n if (!n) {\n n = 1;\n }\n this.pos += n;\n },\n reset: function DecodeStream_reset() {\n this.pos = 0;\n },\n getBaseStreams: function DecodeStream_getBaseStreams() {\n if (this.str && this.str.getBaseStreams) {\n return this.str.getBaseStreams();\n }\n return [];\n }\n };\n return DecodeStream;\n}();\nvar StreamsSequenceStream = function StreamsSequenceStreamClosure() {\n function StreamsSequenceStream(streams) {\n this.streams = streams;\n var maybeLength = 0;\n for (var i = 0, ii = streams.length; i < ii; i++) {\n var stream = streams[i];\n if (stream instanceof DecodeStream) {\n maybeLength += stream._rawMinBufferLength;\n } else {\n maybeLength += stream.length;\n }\n }\n DecodeStream.call(this, maybeLength);\n }\n StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype);\n StreamsSequenceStream.prototype.readBlock = function streamSequenceStreamReadBlock() {\n var streams = this.streams;\n if (streams.length === 0) {\n this.eof = true;\n return;\n }\n var stream = streams.shift();\n var chunk = stream.getBytes();\n var bufferLength = this.bufferLength;\n var newLength = bufferLength + chunk.length;\n var buffer = this.ensureBuffer(newLength);\n buffer.set(chunk, bufferLength);\n this.bufferLength = newLength;\n };\n StreamsSequenceStream.prototype.getBaseStreams = function StreamsSequenceStream_getBaseStreams() {\n var baseStreams = [];\n for (var i = 0, ii = this.streams.length; i < ii; i++) {\n var stream = this.streams[i];\n if (stream.getBaseStreams) {\n baseStreams.push.apply(baseStreams, _toConsumableArray(stream.getBaseStreams()));\n }\n }\n return baseStreams;\n };\n return 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 function FlateStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n var cmf = str.getByte();\n var flg = str.getByte();\n if (cmf === -1 || flg === -1) {\n throw new _util.FormatError('Invalid header in flate stream: ' + cmf + ', ' + flg);\n }\n if ((cmf & 0x0f) !== 0x08) {\n throw new _util.FormatError('Unknown compression method in flate stream: ' + cmf + ', ' + flg);\n }\n if (((cmf << 8) + flg) % 31 !== 0) {\n throw new _util.FormatError('Bad FCHECK in flate stream: ' + cmf + ', ' + flg);\n }\n if (flg & 0x20) {\n throw new _util.FormatError('FDICT bit set in flate stream: ' + cmf + ', ' + flg);\n }\n this.codeSize = 0;\n this.codeBuf = 0;\n DecodeStream.call(this, maybeLength);\n }\n FlateStream.prototype = Object.create(DecodeStream.prototype);\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 while (codeSize < bits) {\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad encoding in flate stream');\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n b = codeBuf & (1 << bits) - 1;\n this.codeBuf = codeBuf >> bits;\n this.codeSize = codeSize -= bits;\n return b;\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 while (codeSize < maxLen) {\n if ((b = str.getByte()) === -1) {\n break;\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n var code = codes[codeBuf & (1 << maxLen) - 1];\n var codeLen = code >> 16;\n var codeVal = code & 0xffff;\n if (codeLen < 1 || codeSize < codeLen) {\n throw new _util.FormatError('Bad encoding in flate stream');\n }\n this.codeBuf = codeBuf >> codeLen;\n this.codeSize = codeSize - codeLen;\n return codeVal;\n };\n FlateStream.prototype.generateHuffmanTable = function flateStreamGenerateHuffmanTable(lengths) {\n var n = lengths.length;\n var maxLen = 0;\n var i;\n for (i = 0; i < n; ++i) {\n if (lengths[i] > maxLen) {\n maxLen = lengths[i];\n }\n }\n var size = 1 << maxLen;\n var codes = new Int32Array(size);\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 for (i = 0; i < len; ++i) {\n code2 = code2 << 1 | t & 1;\n t >>= 1;\n }\n for (i = code2; i < size; i += skip) {\n codes[i] = len << 16 | val;\n }\n ++code;\n }\n }\n }\n return [codes, maxLen];\n };\n FlateStream.prototype.readBlock = function FlateStream_readBlock() {\n var buffer, len;\n var str = this.str;\n var hdr = this.getBits(3);\n if (hdr & 1) {\n this.eof = true;\n }\n hdr >>= 1;\n if (hdr === 0) {\n var b;\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad block header in flate stream');\n }\n var blockLen = b;\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad block header in flate stream');\n }\n blockLen |= b << 8;\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad block header in flate stream');\n }\n var check = b;\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad block header in flate stream');\n }\n check |= b << 8;\n if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n throw new _util.FormatError('Bad uncompressed block length in flate stream');\n }\n this.codeBuf = 0;\n this.codeSize = 0;\n var bufferLength = this.bufferLength;\n buffer = this.ensureBuffer(bufferLength + blockLen);\n var end = bufferLength + blockLen;\n this.bufferLength = end;\n if (blockLen === 0) {\n if (str.peekByte() === -1) {\n this.eof = true;\n }\n } else {\n for (var n = bufferLength; n < end; ++n) {\n if ((b = str.getByte()) === -1) {\n this.eof = true;\n break;\n }\n buffer[n] = b;\n }\n }\n return;\n }\n var litCodeTable;\n var distCodeTable;\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 for (i = 0; i < numCodeLenCodes; ++i) {\n codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\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 while (i < codes) {\n var code = this.getCode(codeLenCodeTab);\n if (code === 16) {\n bitsLength = 2;\n bitsOffset = 3;\n what = len;\n } else if (code === 17) {\n bitsLength = 3;\n bitsOffset = 3;\n what = len = 0;\n } else if (code === 18) {\n bitsLength = 7;\n bitsOffset = 11;\n what = len = 0;\n } else {\n codeLengths[i++] = len = code;\n continue;\n }\n var repeatLength = this.getBits(bitsLength) + bitsOffset;\n while (repeatLength-- > 0) {\n codeLengths[i++] = what;\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 buffer = this.buffer;\n var limit = buffer ? buffer.length : 0;\n var pos = this.bufferLength;\n while (true) {\n var code1 = this.getCode(litCodeTable);\n if (code1 < 256) {\n if (pos + 1 >= limit) {\n buffer = this.ensureBuffer(pos + 1);\n limit = buffer.length;\n }\n buffer[pos++] = code1;\n continue;\n }\n if (code1 === 256) {\n this.bufferLength = pos;\n return;\n }\n code1 -= 257;\n code1 = lengthDecode[code1];\n var code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n len = (code1 & 0xffff) + code2;\n code1 = this.getCode(distCodeTable);\n code1 = distDecode[code1];\n code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n var dist = (code1 & 0xffff) + code2;\n if (pos + len >= limit) {\n buffer = this.ensureBuffer(pos + len);\n limit = buffer.length;\n }\n for (var k = 0; k < len; ++k, ++pos) {\n buffer[pos] = buffer[pos - dist];\n }\n }\n };\n return FlateStream;\n}();\nvar PredictorStream = function PredictorStreamClosure() {\n function PredictorStream(str, maybeLength, params) {\n if (!(0, _primitives.isDict)(params)) {\n return str;\n }\n var predictor = this.predictor = params.get('Predictor') || 1;\n if (predictor <= 1) {\n return str;\n }\n if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n throw new _util.FormatError('Unsupported predictor: ' + predictor);\n }\n if (predictor === 2) {\n this.readBlock = this.readBlockTiff;\n } else {\n this.readBlock = this.readBlockPng;\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 PredictorStream.prototype = Object.create(DecodeStream.prototype);\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 if (this.eof) {\n return;\n }\n var inbuf = 0,\n outbuf = 0;\n var inbits = 0,\n outbits = 0;\n var pos = bufferLength;\n var i;\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 for (; i < rowBytes; ++i) {\n buffer[pos] = buffer[pos - colors] + rawBytes[i];\n pos++;\n }\n } else if (bits === 16) {\n var bytesPerPixel = colors * 2;\n for (i = 0; i < bytesPerPixel; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n for (; i < rowBytes; i += 2) {\n var sum = ((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 for (i = 0; i < columns; ++i) {\n for (var kk = 0; kk < colors; ++kk) {\n if (inbits < bits) {\n inbuf = inbuf << 8 | rawBytes[j++] & 0xFF;\n inbits += 8;\n }\n compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask;\n inbits -= bits;\n outbuf = outbuf << bits | compArray[kk];\n outbits += bits;\n if (outbits >= 8) {\n buffer[k++] = outbuf >> outbits - 8 & 0xFF;\n outbits -= 8;\n }\n }\n }\n if (outbits > 0) {\n buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1);\n }\n }\n this.bufferLength += rowBytes;\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 if (this.eof) {\n return;\n }\n var bufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(bufferLength + rowBytes);\n var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n if (prevRow.length === 0) {\n prevRow = new Uint8Array(rowBytes);\n }\n var i,\n j = bufferLength,\n up,\n c;\n switch (predictor) {\n case 0:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n break;\n case 1:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xFF;\n j++;\n }\n break;\n case 2:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = prevRow[i] + rawBytes[i] & 0xFF;\n }\n break;\n case 3:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xFF;\n j++;\n }\n break;\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 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 if (pa < 0) {\n pa = -pa;\n }\n var pb = p - up;\n if (pb < 0) {\n pb = -pb;\n }\n var pc = p - upLeft;\n if (pc < 0) {\n pc = -pc;\n }\n c = rawBytes[i];\n if (pa <= pb && pa <= pc) {\n buffer[j++] = left + c;\n } else if (pb <= pc) {\n buffer[j++] = up + c;\n } else {\n buffer[j++] = upLeft + c;\n }\n }\n break;\n default:\n throw new _util.FormatError('Unsupported predictor: ' + predictor);\n }\n this.bufferLength += rowBytes;\n };\n return 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 var chunkSize = 512;\n DecryptStream.prototype = Object.create(DecodeStream.prototype);\n DecryptStream.prototype.readBlock = function DecryptStream_readBlock() {\n var chunk;\n if (this.initialized) {\n chunk = this.nextChunk;\n } else {\n chunk = this.str.getBytes(chunkSize);\n this.initialized = true;\n }\n if (!chunk || chunk.length === 0) {\n this.eof = true;\n return;\n }\n this.nextChunk = this.str.getBytes(chunkSize);\n var hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n 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 for (i = 0; i < n; i++) {\n buffer[bufferLength++] = chunk[i];\n }\n this.bufferLength = bufferLength;\n };\n return 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 if (maybeLength) {\n maybeLength = 0.8 * maybeLength;\n }\n DecodeStream.call(this, maybeLength);\n }\n Ascii85Stream.prototype = Object.create(DecodeStream.prototype);\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 while ((0, _util.isSpace)(c)) {\n c = str.getByte();\n }\n if (c === EOF || c === TILDA_CHAR) {\n this.eof = true;\n return;\n }\n var bufferLength = this.bufferLength,\n buffer;\n var i;\n if (c === Z_LOWER_CHAR) {\n buffer = this.ensureBuffer(bufferLength + 4);\n for (i = 0; i < 4; ++i) {\n buffer[bufferLength + i] = 0;\n }\n this.bufferLength += 4;\n } else {\n var input = this.input;\n input[0] = c;\n for (i = 1; i < 5; ++i) {\n c = str.getByte();\n while ((0, _util.isSpace)(c)) {\n c = str.getByte();\n }\n input[i] = c;\n if (c === EOF || c === TILDA_CHAR) {\n break;\n }\n }\n buffer = this.ensureBuffer(bufferLength + i - 1);\n this.bufferLength += i - 1;\n if (i < 5) {\n for (; i < 5; ++i) {\n input[i] = 0x21 + 84;\n }\n this.eof = true;\n }\n var t = 0;\n for (i = 0; i < 5; ++i) {\n t = t * 85 + (input[i] - 0x21);\n }\n for (i = 3; i >= 0; --i) {\n buffer[bufferLength + i] = t & 0xFF;\n t >>= 8;\n }\n }\n };\n return 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 if (maybeLength) {\n maybeLength = 0.5 * maybeLength;\n }\n DecodeStream.call(this, maybeLength);\n }\n AsciiHexStream.prototype = Object.create(DecodeStream.prototype);\n AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() {\n var UPSTREAM_BLOCK_SIZE = 8000;\n var bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n if (!bytes.length) {\n this.eof = true;\n return;\n }\n 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 for (var i = 0, ii = bytes.length; i < ii; i++) {\n var ch = bytes[i],\n digit;\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 if (firstDigit < 0) {\n firstDigit = digit;\n } else {\n buffer[bufferLength++] = firstDigit << 4 | digit;\n firstDigit = -1;\n }\n }\n if (firstDigit >= 0 && this.eof) {\n buffer[bufferLength++] = firstDigit << 4;\n firstDigit = -1;\n }\n this.firstDigit = firstDigit;\n this.bufferLength = bufferLength;\n };\n return 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 RunLengthStream.prototype = Object.create(DecodeStream.prototype);\n RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() {\n var repeatHeader = this.str.getBytes(2);\n if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n this.eof = true;\n return;\n }\n var buffer;\n var bufferLength = this.bufferLength;\n var n = repeatHeader[0];\n if (n < 128) {\n buffer = this.ensureBuffer(bufferLength + n + 1);\n buffer[bufferLength++] = repeatHeader[1];\n if (n > 0) {\n var source = this.str.getBytes(n);\n buffer.set(source, bufferLength);\n bufferLength += n;\n }\n } else {\n n = 257 - n;\n var b = repeatHeader[1];\n buffer = this.ensureBuffer(bufferLength + n + 1);\n for (var i = 0; i < n; i++) {\n buffer[bufferLength++] = b;\n }\n }\n this.bufferLength = bufferLength;\n };\n return 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: earlyChange,\n codeLength: 9,\n nextCode: 258,\n dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n currentSequence: new Uint8Array(maxLzwDictionarySize),\n currentSequenceLength: 0\n };\n for (var i = 0; i < 256; ++i) {\n lzwState.dictionaryValues[i] = i;\n lzwState.dictionaryLengths[i] = 1;\n }\n this.lzwState = lzwState;\n DecodeStream.call(this, maybeLength);\n }\n LZWStream.prototype = Object.create(DecodeStream.prototype);\n LZWStream.prototype.readBits = function LZWStream_readBits(n) {\n var bitsCached = this.bitsCached;\n var cachedData = this.cachedData;\n while (bitsCached < n) {\n var c = this.str.getByte();\n if (c === -1) {\n this.eof = true;\n return null;\n }\n cachedData = cachedData << 8 | c;\n bitsCached += 8;\n }\n this.bitsCached = bitsCached -= n;\n this.cachedData = cachedData;\n this.lastCode = null;\n return cachedData >>> bitsCached & (1 << n) - 1;\n };\n 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 if (!lzwState) {\n return;\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 for (i = 0; i < blockSize; i++) {\n var code = this.readBits(codeLength);\n var hasPrev = currentSequenceLength > 0;\n if (code < 256) {\n currentSequence[0] = code;\n currentSequenceLength = 1;\n } else if (code >= 258) {\n if (code < nextCode) {\n currentSequenceLength = dictionaryLengths[code];\n for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n currentSequence[j] = dictionaryValues[q];\n q = dictionaryPrevCodes[q];\n }\n } else {\n currentSequence[currentSequenceLength++] = currentSequence[0];\n }\n } else if (code === 256) {\n codeLength = 9;\n nextCode = 258;\n currentSequenceLength = 0;\n continue;\n } else {\n this.eof = true;\n delete this.lzwState;\n break;\n }\n 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 prevCode = code;\n decodedLength += currentSequenceLength;\n if (estimatedDecodedSize < decodedLength) {\n do {\n estimatedDecodedSize += decodedSizeDelta;\n } while (estimatedDecodedSize < decodedLength);\n buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n }\n for (j = 0; j < currentSequenceLength; j++) {\n buffer[currentBufferLength++] = currentSequence[j];\n }\n }\n lzwState.nextCode = nextCode;\n lzwState.codeLength = codeLength;\n lzwState.prevCode = prevCode;\n lzwState.currentSequenceLength = currentSequenceLength;\n this.bufferLength = currentBufferLength;\n };\n return LZWStream;\n}();\nvar NullStream = function NullStreamClosure() {\n function NullStream() {\n Stream.call(this, new Uint8Array(0));\n }\n NullStream.prototype = Stream.prototype;\n return NullStream;\n}();\nexports.Ascii85Stream = Ascii85Stream;\nexports.AsciiHexStream = AsciiHexStream;\nexports.DecryptStream = DecryptStream;\nexports.DecodeStream = DecodeStream;\nexports.FlateStream = FlateStream;\nexports.NullStream = NullStream;\nexports.PredictorStream = PredictorStream;\nexports.RunLengthStream = RunLengthStream;\nexports.Stream = Stream;\nexports.StreamsSequenceStream = StreamsSequenceStream;\nexports.StringStream = StringStream;\nexports.LZWStream = LZWStream;\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CCITTFaxStream = undefined;\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar _ccitt = __w_pdfjs_require__(142);\n\nvar _stream = __w_pdfjs_require__(140);\n\nvar CCITTFaxStream = function CCITTFaxStreamClosure() {\n function CCITTFaxStream(str, maybeLength, params) {\n this.str = str;\n this.dict = str.dict;\n if (!(0, _primitives.isDict)(params)) {\n params = _primitives.Dict.empty;\n }\n var source = {\n next: function next() {\n return str.getByte();\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 _stream.DecodeStream.call(this, maybeLength);\n }\n CCITTFaxStream.prototype = Object.create(_stream.DecodeStream.prototype);\n CCITTFaxStream.prototype.readBlock = function () {\n while (!this.eof) {\n var c = this.ccittFaxDecoder.readNextChar();\n if (c === -1) {\n this.eof = true;\n return;\n }\n this.ensureBuffer(this.bufferLength + 1);\n this.buffer[this.bufferLength++] = c;\n }\n };\n return CCITTFaxStream;\n}();\nexports.CCITTFaxStream = CCITTFaxStream;\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CCITTFaxDecoder = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar CCITTFaxDecoder = function CCITTFaxDecoder() {\n var ccittEOL = -2;\n var ccittEOF = -1;\n var twoDimPass = 0;\n var twoDimHoriz = 1;\n var twoDimVert0 = 2;\n var twoDimVertR1 = 3;\n var twoDimVertL1 = 4;\n var twoDimVertR2 = 5;\n var twoDimVertL2 = 6;\n var twoDimVertR3 = 7;\n var twoDimVertL3 = 8;\n var 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 var 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 var 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 var 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 var 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 var 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 function CCITTFaxDecoder(source) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!source || typeof source.next !== 'function') {\n throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n }\n this.source = source;\n this.eof = false;\n 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 var eoblock = options['EndOfBlock'];\n if (eoblock === null || eoblock === undefined) {\n eoblock = true;\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 var code1 = void 0;\n while ((code1 = this._lookBits(12)) === 0) {\n this._eatBits(1);\n }\n if (code1 === 1) {\n this._eatBits(12);\n }\n if (this.encoding > 0) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n }\n CCITTFaxDecoder.prototype = {\n readNextChar: function readNextChar() {\n if (this.eof) {\n return -1;\n }\n var refLine = this.refLine;\n var codingLine = this.codingLine;\n var columns = this.columns;\n var refPos = void 0,\n blackPixels = void 0,\n bits = void 0,\n i = void 0;\n if (this.outputBits === 0) {\n if (this.rowsDone) {\n this.eof = true;\n }\n if (this.eof) {\n return -1;\n }\n this.err = false;\n var code1 = void 0,\n code2 = void 0,\n code3 = void 0;\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\n }\n refLine[i++] = columns;\n refLine[i] = columns;\n codingLine[0] = 0;\n this.codingPos = 0;\n refPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = this._getTwoDimCode();\n switch (code1) {\n case twoDimPass:\n this._addPixels(refLine[refPos + 1], blackPixels);\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n break;\n case twoDimHoriz:\n code1 = code2 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n if (codingLine[this.codingPos] < columns) {\n this._addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1);\n }\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n break;\n case twoDimVertR3:\n this._addPixels(refLine[refPos] + 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR2:\n this._addPixels(refLine[refPos] + 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR1:\n this._addPixels(refLine[refPos] + 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVert0:\n this._addPixels(refLine[refPos], blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL3:\n this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL2:\n this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL1:\n this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case ccittEOF:\n this._addPixels(columns, 0);\n this.eof = true;\n break;\n default:\n (0, _util.info)('bad 2d code');\n this._addPixels(columns, 0);\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n blackPixels ^= 1;\n }\n }\n var gotEOL = false;\n if (this.byteAlign) {\n this.inputBits &= ~7;\n }\n if (!this.eoblock && this.row === this.rows - 1) {\n this.rowsDone = true;\n } else {\n code1 = this._lookBits(12);\n if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n }\n if (code1 === 1) {\n this._eatBits(12);\n gotEOL = true;\n } else if (code1 === ccittEOF) {\n this.eof = true;\n }\n }\n if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this._lookBits(12);\n if (code1 === 1) {\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this._lookBits(12);\n if (code1 !== 1) {\n (0, _util.info)('bad rtc code: ' + code1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n }\n }\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this._lookBits(13);\n if (code1 === ccittEOF) {\n this.eof = true;\n return -1;\n }\n if (code1 >> 1 === 1) {\n break;\n }\n this._eatBits(1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._eatBits(1);\n this.nextLine2D = !(code1 & 1);\n }\n }\n if (codingLine[0] > 0) {\n this.outputBits = codingLine[this.codingPos = 0];\n } else {\n this.outputBits = codingLine[this.codingPos = 1];\n }\n this.row++;\n }\n var c = void 0;\n if (this.outputBits >= 8) {\n c = this.codingPos & 1 ? 0 : 0xFF;\n this.outputBits -= 8;\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n }\n } else {\n bits = 8;\n c = 0;\n do {\n if (this.outputBits > bits) {\n c <<= bits;\n if (!(this.codingPos & 1)) {\n c |= 0xFF >> 8 - bits;\n }\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n if (!(this.codingPos & 1)) {\n c |= 0xFF >> 8 - this.outputBits;\n }\n bits -= this.outputBits;\n this.outputBits = 0;\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n } else if (bits > 0) {\n c <<= bits;\n bits = 0;\n }\n }\n } while (bits);\n }\n if (this.black) {\n c ^= 0xFF;\n }\n return c;\n },\n _addPixels: function _addPixels(a1, blackPixels) {\n var codingLine = this.codingLine;\n var codingPos = this.codingPos;\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 if (codingPos & 1 ^ blackPixels) {\n ++codingPos;\n }\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n },\n _addPixelsNeg: function _addPixelsNeg(a1, blackPixels) {\n var codingLine = this.codingLine;\n var codingPos = this.codingPos;\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 if (codingPos & 1 ^ blackPixels) {\n ++codingPos;\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 while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n },\n _findTableCode: function _findTableCode(start, end, table, limit) {\n var limitValue = limit || 0;\n for (var i = start; i <= end; ++i) {\n var code = this._lookBits(i);\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n if (i < end) {\n code <<= end - i;\n }\n if (!limitValue || code >= limitValue) {\n var p = table[code - limitValue];\n if (p[0] === i) {\n this._eatBits(i);\n return [true, p[1], true];\n }\n }\n }\n return [false, 0, false];\n },\n _getTwoDimCode: function _getTwoDimCode() {\n var code = 0;\n var p = void 0;\n if (this.eoblock) {\n code = this._lookBits(7);\n p = twoDimTable[code];\n if (p && p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n var result = this._findTableCode(1, 7, twoDimTable);\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n (0, _util.info)('Bad two dim code');\n return ccittEOF;\n },\n _getWhiteCode: function _getWhiteCode() {\n var code = 0;\n var p = void 0;\n if (this.eoblock) {\n code = this._lookBits(12);\n if (code === ccittEOF) {\n return 1;\n }\n if (code >> 5 === 0) {\n p = whiteTable1[code];\n } else {\n p = whiteTable2[code >> 3];\n }\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n var result = this._findTableCode(1, 9, whiteTable2);\n if (result[0]) {\n return result[1];\n }\n result = this._findTableCode(11, 12, whiteTable1);\n if (result[0]) {\n return result[1];\n }\n }\n (0, _util.info)('bad white code');\n this._eatBits(1);\n return 1;\n },\n _getBlackCode: function _getBlackCode() {\n var code = void 0,\n p = void 0;\n if (this.eoblock) {\n code = this._lookBits(13);\n if (code === ccittEOF) {\n return 1;\n }\n if (code >> 7 === 0) {\n p = blackTable1[code];\n } else if (code >> 9 === 0 && code >> 7 !== 0) {\n p = blackTable2[(code >> 1) - 64];\n } else {\n p = blackTable3[code >> 7];\n }\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n var result = this._findTableCode(2, 6, blackTable3);\n if (result[0]) {\n return result[1];\n }\n result = this._findTableCode(7, 12, blackTable2, 64);\n if (result[0]) {\n return result[1];\n }\n result = this._findTableCode(10, 13, blackTable1);\n if (result[0]) {\n return result[1];\n }\n }\n (0, _util.info)('bad black code');\n this._eatBits(1);\n return 1;\n },\n _lookBits: function _lookBits(n) {\n var c = void 0;\n while (this.inputBits < n) {\n if ((c = this.source.next()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n return this.inputBuf << n - this.inputBits & 0xFFFF >> 16 - n;\n }\n this.inputBuf = this.inputBuf << 8 | c;\n this.inputBits += 8;\n }\n return this.inputBuf >> this.inputBits - n & 0xFFFF >> 16 - n;\n },\n _eatBits: function _eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n }\n };\n return CCITTFaxDecoder;\n}();\nexports.CCITTFaxDecoder = CCITTFaxDecoder;\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Jbig2Stream = undefined;\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar _stream = __w_pdfjs_require__(140);\n\nvar _jbig = __w_pdfjs_require__(144);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar 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 _stream.DecodeStream.call(this, maybeLength);\n }\n Jbig2Stream.prototype = Object.create(_stream.DecodeStream.prototype);\n Object.defineProperty(Jbig2Stream.prototype, 'bytes', {\n get: function get() {\n return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));\n },\n\n configurable: true\n });\n Jbig2Stream.prototype.ensureBuffer = function (requested) {};\n Jbig2Stream.prototype.readBlock = function () {\n if (this.eof) {\n return;\n }\n var jbig2Image = new _jbig.Jbig2Image();\n var chunks = [];\n if ((0, _primitives.isDict)(this.params)) {\n var globalsStream = this.params.get('JBIG2Globals');\n if ((0, _primitives.isStream)(globalsStream)) {\n var globals = globalsStream.getBytes();\n chunks.push({\n data: globals,\n start: 0,\n end: globals.length\n });\n }\n }\n chunks.push({\n data: this.bytes,\n start: 0,\n end: this.bytes.length\n });\n var data = jbig2Image.parseChunks(chunks);\n var dataLength = data.length;\n for (var i = 0; i < dataLength; i++) {\n data[i] ^= 0xFF;\n }\n this.buffer = data;\n this.bufferLength = dataLength;\n this.eof = true;\n };\n return Jbig2Stream;\n}();\nexports.Jbig2Stream = Jbig2Stream;\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Jbig2Image = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(145);\n\nvar _ccitt = __w_pdfjs_require__(142);\n\nvar Jbig2Error = function Jbig2ErrorClosure() {\n function Jbig2Error(msg) {\n this.message = 'JBIG2 error: ' + msg;\n }\n Jbig2Error.prototype = new Error();\n Jbig2Error.prototype.name = 'Jbig2Error';\n Jbig2Error.constructor = Jbig2Error;\n return Jbig2Error;\n}();\nvar Jbig2Image = function Jbig2ImageClosure() {\n function ContextCache() {}\n ContextCache.prototype = {\n getContexts: function getContexts(id) {\n if (id in this) {\n return this[id];\n }\n return this[id] = new Int8Array(1 << 16);\n }\n };\n function DecodingContext(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\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 get contextCache() {\n var cache = new ContextCache();\n return (0, _util.shadow)(this, 'contextCache', cache);\n }\n };\n function decodeInteger(contextCache, procedure, decoder) {\n var contexts = contextCache.getContexts(procedure);\n var prev = 1;\n function readBits(length) {\n var v = 0;\n for (var i = 0; i < length; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256;\n v = v << 1 | bit;\n }\n return v >>> 0;\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 return sign === 0 ? value : value > 0 ? -value : null;\n }\n function decodeIAID(contextCache, decoder, codeLength) {\n var contexts = contextCache.getContexts('IAID');\n var prev = 1;\n for (var i = 0; i < codeLength; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = prev << 1 | bit;\n }\n if (codeLength < 31) {\n return prev & (1 << codeLength) - 1;\n }\n return prev & 0x7FFFFFFF;\n }\n 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 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 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 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 return bitmap;\n }\n function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) {\n if (mmr) {\n var input = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n return decodeMMRBitmap(input, width, height, false);\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 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 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 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 var changingEntriesLength = changingTemplateEntries.length;\n var changingTemplateX = new Int8Array(changingEntriesLength);\n var changingTemplateY = new Int8Array(changingEntriesLength);\n var changingTemplateBit = new Uint16Array(changingEntriesLength);\n for (c = 0; c < changingEntriesLength; c++) {\n k = changingTemplateEntries[c];\n changingTemplateX[c] = template[k].x;\n changingTemplateY[c] = template[k].y;\n changingTemplateBit[c] = 1 << templateLength - 1 - k;\n }\n 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 for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n bitmap.push(row);\n continue;\n }\n }\n row = new Uint8Array(row);\n bitmap.push(row);\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n contextLabel = contextLabel << 1 & reuseMask;\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n contextLabel = 0;\n shift = templateLength - 1;\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\n }\n function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) {\n var codingTemplate = RefinementTemplates[templateIndex].coding;\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n var codingTemplateLength = codingTemplate.length;\n var codingTemplateX = new Int32Array(codingTemplateLength);\n var codingTemplateY = new Int32Array(codingTemplateLength);\n var k;\n for (k = 0; k < codingTemplateLength; k++) {\n codingTemplateX[k] = codingTemplate[k].x;\n codingTemplateY[k] = codingTemplate[k].y;\n }\n var referenceTemplate = RefinementTemplates[templateIndex].reference;\n if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n var referenceTemplateLength = referenceTemplate.length;\n var referenceTemplateX = new Int32Array(referenceTemplateLength);\n var referenceTemplateY = new Int32Array(referenceTemplateLength);\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n var referenceWidth = referenceBitmap[0].length;\n var referenceHeight = referenceBitmap.length;\n var pseudoPixelContext = RefinementReusedContexts[templateIndex];\n var bitmap = [];\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts('GR');\n var ltp = 0;\n for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n throw new Jbig2Error('prediction is not supported');\n }\n }\n var row = new Uint8Array(width);\n bitmap.push(row);\n for (var j = 0; j < width; j++) {\n var i0, j0;\n var contextLabel = 0;\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1;\n } else {\n contextLabel = contextLabel << 1 | bitmap[i0][j0];\n }\n }\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n contextLabel <<= 1;\n } else {\n contextLabel = contextLabel << 1 | referenceBitmap[i0][j0];\n }\n }\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\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 var newSymbols = [];\n var currentHeight = 0;\n var symbolCodeLength = (0, _util.log2)(symbols.length + numberOfNewSymbols);\n var decoder = decodingContext.decoder;\n var contextCache = decodingContext.contextCache;\n var tableB1 = void 0,\n symbolWidths = void 0;\n if (huffman) {\n tableB1 = getStandardTable(1);\n symbolWidths = [];\n symbolCodeLength = Math.max(symbolCodeLength, 1);\n }\n while (newSymbols.length < numberOfNewSymbols) {\n var deltaHeight = huffman ? huffmanTables.tableDeltaHeight.decode(huffmanInput) : decodeInteger(contextCache, 'IADH', decoder);\n currentHeight += deltaHeight;\n var currentWidth = 0,\n totalWidth = 0;\n var firstSymbol = huffman ? symbolWidths.length : 0;\n while (true) {\n var deltaWidth = huffman ? huffmanTables.tableDeltaWidth.decode(huffmanInput) : decodeInteger(contextCache, 'IADW', decoder);\n if (deltaWidth === null) {\n break;\n }\n currentWidth += deltaWidth;\n totalWidth += currentWidth;\n var bitmap;\n if (refinement) {\n var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder);\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 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 if (huffman && !refinement) {\n var bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n huffmanInput.byteAlign();\n var collectiveBitmap = void 0;\n if (bitmapSize === 0) {\n collectiveBitmap = readUncompressedBitmap(huffmanInput, totalWidth, currentHeight);\n } else {\n var originalEnd = huffmanInput.end;\n var 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 var numberOfSymbolsDecoded = symbolWidths.length;\n if (firstSymbol === numberOfSymbolsDecoded - 1) {\n newSymbols.push(collectiveBitmap);\n } else {\n var _i = void 0,\n y = void 0,\n xMin = 0,\n xMax = void 0,\n bitmapWidth = void 0,\n symbolBitmap = void 0;\n for (_i = firstSymbol; _i < numberOfSymbolsDecoded; _i++) {\n bitmapWidth = symbolWidths[_i];\n xMax = xMin + bitmapWidth;\n symbolBitmap = [];\n for (y = 0; y < currentHeight; y++) {\n symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n newSymbols.push(symbolBitmap);\n xMin = xMax;\n }\n }\n }\n }\n var exportedSymbols = [];\n var flags = [],\n currentFlag = false;\n var totalSymbolsLength = symbols.length + numberOfNewSymbols;\n while (flags.length < totalSymbolsLength) {\n var runLength = huffman ? tableB1.decode(huffmanInput) : decodeInteger(contextCache, 'IAEX', decoder);\n while (runLength--) {\n flags.push(currentFlag);\n }\n currentFlag = !currentFlag;\n }\n for (var i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n for (var j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n return exportedSymbols;\n }\n 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 var bitmap = [];\n var i, row;\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n if (defaultPixelValue) {\n for (var j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n bitmap.push(row);\n }\n 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 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 do {\n var currentT = 0;\n if (stripSize > 1) {\n currentT = huffman ? huffmanInput.readBits(logStripSize) : decodeInteger(contextCache, 'IAIT', decoder);\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 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 var offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n var offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n var s2, t2, symbolRow;\n if (transposed) {\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[s2];\n var maxWidth = Math.min(width - offsetT, symbolWidth);\n switch (combinationOperator) {\n case 0:\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n break;\n case 2:\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n break;\n default:\n throw new Jbig2Error('operator ' + combinationOperator + ' is not supported');\n }\n }\n currentS += symbolHeight - 1;\n } else {\n for (t2 = 0; t2 < symbolHeight; t2++) {\n row = bitmap[offsetT + t2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[t2];\n switch (combinationOperator) {\n case 0:\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n break;\n case 2:\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n break;\n default:\n throw new Jbig2Error('operator ' + combinationOperator + ' is not supported');\n }\n }\n currentS += symbolWidth - 1;\n }\n i++;\n var deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) : decodeInteger(contextCache, 'IADS', decoder);\n if (deltaS === null) {\n break;\n }\n currentS += deltaS + dsOffset;\n } while (true);\n }\n return bitmap;\n }\n function decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) {\n var at = [];\n if (!mmr) {\n at.push({\n x: -patternWidth,\n y: 0\n });\n if (template === 0) {\n at.push({\n x: -3,\n y: -1\n });\n at.push({\n x: 2,\n y: -2\n });\n at.push({\n x: -2,\n y: -2\n });\n }\n }\n var collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n var collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext);\n var patterns = [],\n i = 0,\n patternBitmap = void 0,\n xMin = void 0,\n xMax = void 0,\n y = void 0;\n while (i <= maxPatternIndex) {\n patternBitmap = [];\n xMin = patternWidth * i;\n xMax = xMin + patternWidth;\n for (y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n patterns.push(patternBitmap);\n i++;\n }\n return patterns;\n }\n function decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) {\n var skip = null;\n if (enableSkip) {\n throw new Jbig2Error('skip is not supported');\n }\n if (combinationOperator !== 0) {\n throw new Jbig2Error('operator ' + combinationOperator + ' is not supported in halftone region');\n }\n var regionBitmap = [];\n var i = void 0,\n j = void 0,\n row = void 0;\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\n }\n }\n regionBitmap.push(row);\n }\n var numberOfPatterns = patterns.length;\n var pattern0 = patterns[0];\n var patternWidth = pattern0[0].length,\n patternHeight = pattern0.length;\n var bitsPerValue = (0, _util.log2)(numberOfPatterns);\n var at = [];\n if (!mmr) {\n at.push({\n x: template <= 1 ? 3 : 2,\n y: -1\n });\n if (template === 0) {\n at.push({\n x: -3,\n y: -1\n });\n at.push({\n x: 2,\n y: -2\n });\n at.push({\n x: -2,\n y: -2\n });\n }\n }\n var grayScaleBitPlanes = [],\n mmrInput = void 0,\n bitmap = void 0;\n if (mmr) {\n mmrInput = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\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 grayScaleBitPlanes[i] = bitmap;\n }\n var mg = void 0,\n ng = void 0,\n bit = void 0,\n patternIndex = void 0,\n patternBitmap = void 0,\n x = void 0,\n y = void 0,\n patternRow = void 0,\n regionRow = void 0;\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit = grayScaleBitPlanes[j][mg][ng] ^ bit;\n patternIndex |= bit << j;\n }\n patternBitmap = patterns[patternIndex];\n x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8;\n y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8;\n 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 for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n var regionX = void 0,\n regionY = void 0;\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n return regionBitmap;\n }\n function readSegmentHeader(data, start) {\n var segmentHeader = {};\n segmentHeader.number = (0, _util.readUint32)(data, start);\n var flags = data[start + 4];\n var segmentType = flags & 0x3F;\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error('invalid segment type: ' + segmentType);\n }\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\n var pageAssociationFieldSize = !!(flags & 0x40);\n var referredFlags = data[start + 5];\n var referredToCount = referredFlags >> 5 & 7;\n var retainBits = [referredFlags & 31];\n var position = start + 6;\n if (referredFlags === 7) {\n referredToCount = (0, _util.readUint32)(data, position - 1) & 0x1FFFFFFF;\n position += 3;\n var bytes = referredToCount + 7 >> 3;\n retainBits[0] = data[position++];\n while (--bytes > 0) {\n retainBits.push(data[position++]);\n }\n } else if (referredFlags === 5 || referredFlags === 6) {\n throw new Jbig2Error('invalid referred-to flags');\n }\n segmentHeader.retainBits = retainBits;\n var referredToSegmentNumberSize = segmentHeader.number <= 256 ? 1 : segmentHeader.number <= 65536 ? 2 : 4;\n var referredTo = [];\n var i, ii;\n for (i = 0; i < referredToCount; i++) {\n var number = referredToSegmentNumberSize === 1 ? data[position] : referredToSegmentNumberSize === 2 ? (0, _util.readUint16)(data, position) : (0, _util.readUint32)(data, position);\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n segmentHeader.referredTo = referredTo;\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = (0, _util.readUint32)(data, position);\n position += 4;\n }\n segmentHeader.length = (0, _util.readUint32)(data, position);\n position += 4;\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 if (!genericRegionMmr) {\n searchPattern[0] = 0xFF;\n searchPattern[1] = 0xAC;\n }\n searchPattern[2] = genericRegionInfo.height >>> 24 & 0xFF;\n searchPattern[3] = genericRegionInfo.height >> 16 & 0xFF;\n searchPattern[4] = genericRegionInfo.height >> 8 & 0xFF;\n searchPattern[5] = genericRegionInfo.height & 0xFF;\n for (i = position, ii = data.length; i < ii; i++) {\n var j = 0;\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\n }\n }\n if (segmentHeader.length === 0xFFFFFFFF) {\n throw new Jbig2Error('segment end was not found');\n }\n } else {\n throw new Jbig2Error('invalid unknown segment length');\n }\n }\n segmentHeader.headerEnd = position;\n return segmentHeader;\n }\n function readSegments(header, data, start, end) {\n var segments = [];\n var position = start;\n while (position < end) {\n var segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n var segment = {\n header: segmentHeader,\n data: data\n };\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n segments.push(segment);\n if (segmentHeader.type === 51) {\n break;\n }\n }\n if (header.randomAccess) {\n for (var i = 0, ii = segments.length; i < ii; i++) {\n segments[i].start = position;\n position += segments[i].header.length;\n segments[i].end = position;\n }\n }\n return segments;\n }\n function readRegionSegmentInformation(data, start) {\n return {\n width: (0, _util.readUint32)(data, start),\n height: (0, _util.readUint32)(data, start + 4),\n x: (0, _util.readUint32)(data, start + 8),\n y: (0, _util.readUint32)(data, start + 12),\n combinationOperator: data[start + 16] & 7\n };\n }\n var RegionSegmentInformationFieldLength = 17;\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 switch (header.type) {\n case 0:\n var dictionary = {};\n var dictionaryFlags = (0, _util.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 if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: (0, _util.readInt8)(data, position),\n y: (0, _util.readInt8)(data, position + 1)\n });\n position += 2;\n }\n dictionary.at = at;\n }\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: (0, _util.readInt8)(data, position),\n y: (0, _util.readInt8)(data, position + 1)\n });\n position += 2;\n }\n dictionary.refinementAt = at;\n }\n dictionary.numberOfExportedSymbols = (0, _util.readUint32)(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = (0, _util.readUint32)(data, position);\n position += 4;\n args = [dictionary, header.number, header.referredTo, data, position, end];\n break;\n case 6:\n case 7:\n var textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var textRegionSegmentFlags = (0, _util.readUint16)(data, position);\n position += 2;\n textRegion.huffman = !!(textRegionSegmentFlags & 1);\n textRegion.refinement = !!(textRegionSegmentFlags & 2);\n textRegion.logStripSize = textRegionSegmentFlags >> 2 & 3;\n textRegion.stripSize = 1 << textRegion.logStripSize;\n textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3;\n textRegion.transposed = !!(textRegionSegmentFlags & 64);\n textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3;\n textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1;\n textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27;\n textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1;\n if (textRegion.huffman) {\n var textRegionHuffmanFlags = (0, _util.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 if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: (0, _util.readInt8)(data, position),\n y: (0, _util.readInt8)(data, position + 1)\n });\n position += 2;\n }\n textRegion.refinementAt = at;\n }\n textRegion.numberOfSymbolInstances = (0, _util.readUint32)(data, position);\n position += 4;\n args = [textRegion, header.referredTo, data, position, end];\n break;\n case 16:\n var patternDictionary = {};\n var 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, _util.readUint32)(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n case 22:\n case 23:\n var halftoneRegion = {};\n halftoneRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var 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, _util.readUint32)(data, position);\n position += 4;\n halftoneRegion.gridHeight = (0, _util.readUint32)(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = (0, _util.readUint32)(data, position) & 0xFFFFFFFF;\n position += 4;\n halftoneRegion.gridOffsetY = (0, _util.readUint32)(data, position) & 0xFFFFFFFF;\n position += 4;\n halftoneRegion.gridVectorX = (0, _util.readUint16)(data, position);\n position += 2;\n halftoneRegion.gridVectorY = (0, _util.readUint16)(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\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 if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: (0, _util.readInt8)(data, position),\n y: (0, _util.readInt8)(data, position + 1)\n });\n position += 2;\n }\n genericRegion.at = at;\n }\n args = [genericRegion, data, position, end];\n break;\n case 48:\n var pageInfo = {\n width: (0, _util.readUint32)(data, position),\n height: (0, _util.readUint32)(data, position + 4),\n resolutionX: (0, _util.readUint32)(data, position + 8),\n resolutionY: (0, _util.readUint32)(data, position + 12)\n };\n if (pageInfo.height === 0xFFFFFFFF) {\n delete pageInfo.height;\n }\n var pageSegmentFlags = data[position + 16];\n (0, _util.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 case 49:\n break;\n case 50:\n break;\n case 51:\n break;\n case 53:\n args = [header.number, data, position, end];\n break;\n case 62:\n break;\n default:\n throw new Jbig2Error('segment type ' + header.typeName + '(' + header.type + ')' + ' is not implemented');\n }\n var callbackName = 'on' + header.typeName;\n if (callbackName in visitor) {\n visitor[callbackName].apply(visitor, args);\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 function parseJbig2Chunks(chunks) {\n var visitor = new SimpleSegmentVisitor();\n for (var i = 0, ii = chunks.length; i < ii; i++) {\n var chunk = chunks[i];\n var segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n processSegments(segments, visitor);\n }\n return visitor.buffer;\n }\n function parseJbig2(data) {\n var position = 0,\n end = data.length;\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 var header = Object.create(null);\n position += 8;\n var flags = data[position++];\n header.randomAccess = !(flags & 1);\n if (!(flags & 2)) {\n header.numberOfPages = (0, _util.readUint32)(data, position);\n position += 4;\n }\n var segments = readSegments(header, data, position, end);\n var visitor = new SimpleSegmentVisitor();\n processSegments(segments, visitor);\n var _visitor$currentPageI = visitor.currentPageInfo,\n width = _visitor$currentPageI.width,\n height = _visitor$currentPageI.height;\n\n var bitPacked = visitor.buffer;\n var imgData = new Uint8ClampedArray(width * height);\n var q = 0,\n k = 0;\n for (var i = 0; i < height; i++) {\n var mask = 0,\n buffer = void 0;\n for (var j = 0; j < width; j++) {\n if (!mask) {\n mask = 128;\n buffer = bitPacked[k++];\n }\n imgData[q++] = buffer & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n return {\n imgData: imgData,\n width: width,\n height: height\n };\n }\n function SimpleSegmentVisitor() {}\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 if (info.defaultPixelValue) {\n for (var i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = 0xFF;\n }\n }\n this.buffer = buffer;\n },\n drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) {\n var pageInfo = this.currentPageInfo;\n var width = regionInfo.width,\n height = regionInfo.height;\n var rowSize = pageInfo.width + 7 >> 3;\n var combinationOperator = pageInfo.combinationOperatorOverride ? 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 switch (combinationOperator) {\n case 0:\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n case 2:\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n default:\n throw new Jbig2Error('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 var huffmanTables = void 0,\n huffmanInput = void 0;\n if (dictionary.huffman) {\n huffmanTables = getSymbolDictionaryHuffmanTables(dictionary, referredSegments, this.customTables);\n huffmanInput = new Reader(data, start, end);\n }\n var symbols = this.symbols;\n if (!symbols) {\n this.symbols = symbols = {};\n }\n var inputSymbols = [];\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n var referredSymbols = symbols[referredSegments[i]];\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\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 var huffmanTables = void 0,\n huffmanInput = void 0;\n var symbols = this.symbols;\n var inputSymbols = [];\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n var referredSymbols = symbols[referredSegments[i]];\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n var symbolCodeLength = (0, _util.log2)(inputSymbols.length);\n if (region.huffman) {\n huffmanInput = new Reader(data, start, end);\n huffmanTables = getTextRegionHuffmanTables(region, referredSegments, this.customTables, inputSymbols.length, huffmanInput);\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 onPatternDictionary: function onPatternDictionary(dictionary, currentSegment, data, start, end) {\n var patterns = this.patterns;\n if (!patterns) {\n this.patterns = patterns = {};\n }\n var decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext);\n },\n onImmediateHalftoneRegion: function onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n var patterns = this.patterns[referredSegments[0]];\n var regionInfo = region.info;\n var decodingContext = new DecodingContext(data, start, end);\n var 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 onImmediateLosslessHalftoneRegion: function onImmediateLosslessHalftoneRegion() {\n this.onImmediateHalftoneRegion.apply(this, arguments);\n },\n onTables: function onTables(currentSegment, data, start, end) {\n var customTables = this.customTables;\n if (!customTables) {\n this.customTables = customTables = {};\n }\n customTables[currentSegment] = decodeTablesSegment(data, start, end);\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 function HuffmanTreeNode(line) {\n this.children = [];\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 HuffmanTreeNode.prototype = {\n buildTree: function buildTree(line, shift) {\n var bit = line.prefixCode >> shift & 1;\n if (shift <= 0) {\n this.children[bit] = new HuffmanTreeNode(line);\n } else {\n var node = this.children[bit];\n if (!node) {\n this.children[bit] = node = new HuffmanTreeNode(null);\n }\n node.buildTree(line, shift - 1);\n }\n },\n decodeNode: function decodeNode(reader) {\n if (this.isLeaf) {\n if (this.isOOB) {\n return null;\n }\n var htOffset = reader.readBits(this.rangeLength);\n return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n }\n var node = this.children[reader.readBit()];\n if (!node) {\n throw new Jbig2Error('invalid Huffman data');\n }\n return node.decodeNode(reader);\n }\n };\n function HuffmanTable(lines, prefixCodesDone) {\n if (!prefixCodesDone) {\n this.assignPrefixCodes(lines);\n }\n this.rootNode = new HuffmanTreeNode(null);\n var i = void 0,\n ii = lines.length,\n line = void 0;\n for (i = 0; i < ii; i++) {\n line = lines[i];\n if (line.prefixLength > 0) {\n this.rootNode.buildTree(line, line.prefixLength - 1);\n }\n }\n }\n HuffmanTable.prototype = {\n decode: function decode(reader) {\n return this.rootNode.decodeNode(reader);\n },\n assignPrefixCodes: function assignPrefixCodes(lines) {\n var linesLength = lines.length,\n prefixLengthMax = 0,\n i = void 0;\n for (i = 0; i < linesLength; i++) {\n prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n }\n var histogram = new Uint32Array(prefixLengthMax + 1);\n for (i = 0; i < linesLength; i++) {\n histogram[lines[i].prefixLength]++;\n }\n var currentLength = 1,\n firstCode = 0,\n currentCode = void 0,\n currentTemp = void 0,\n line = void 0;\n histogram[0] = 0;\n while (currentLength <= prefixLengthMax) {\n firstCode = firstCode + histogram[currentLength - 1] << 1;\n currentCode = firstCode;\n currentTemp = 0;\n while (currentTemp < linesLength) {\n line = lines[currentTemp];\n if (line.prefixLength === currentLength) {\n line.prefixCode = currentCode;\n currentCode++;\n }\n currentTemp++;\n }\n currentLength++;\n }\n }\n };\n function decodeTablesSegment(data, start, end) {\n var flags = data[start];\n var lowestValue = (0, _util.readUint32)(data, start + 1) & 0xFFFFFFFF;\n var highestValue = (0, _util.readUint32)(data, start + 5) & 0xFFFFFFFF;\n var reader = new Reader(data, start + 9, end);\n var prefixSizeBits = (flags >> 1 & 7) + 1;\n var rangeSizeBits = (flags >> 4 & 7) + 1;\n var lines = [];\n var prefixLength = void 0,\n rangeLength = void 0,\n currentRangeLow = lowestValue;\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 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 if (flags & 1) {\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([prefixLength, 0]));\n }\n return new HuffmanTable(lines, false);\n }\n var standardTablesCache = {};\n function getStandardTable(number) {\n var table = standardTablesCache[number];\n if (table) {\n return table;\n }\n var lines = void 0;\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 default:\n throw new Jbig2Error('standard table B.' + number + ' does not exist');\n }\n var length = lines.length,\n i = void 0;\n for (i = 0; i < length; i++) {\n lines[i] = new HuffmanLine(lines[i]);\n }\n table = new HuffmanTable(lines, true);\n standardTablesCache[number] = table;\n return table;\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 Reader.prototype = {\n readBit: function readBit() {\n if (this.shift < 0) {\n if (this.position >= this.end) {\n throw new Jbig2Error('end of data while reading bit');\n }\n this.currentByte = this.data[this.position++];\n this.shift = 7;\n }\n var bit = this.currentByte >> this.shift & 1;\n this.shift--;\n return bit;\n },\n readBits: function readBits(numBits) {\n var result = 0,\n i = void 0;\n for (i = numBits - 1; i >= 0; i--) {\n result |= this.readBit() << i;\n }\n return result;\n },\n byteAlign: function byteAlign() {\n this.shift = -1;\n },\n next: function next() {\n if (this.position >= this.end) {\n return -1;\n }\n return this.data[this.position++];\n }\n };\n function getCustomHuffmanTable(index, referredTo, customTables) {\n var currentIndex = 0,\n i = void 0,\n ii = referredTo.length,\n table = void 0;\n for (i = 0; i < ii; i++) {\n table = customTables[referredTo[i]];\n if (table) {\n if (index === currentIndex) {\n return table;\n }\n currentIndex++;\n }\n }\n throw new Jbig2Error('can\\'t find custom Huffman table');\n }\n function getTextRegionHuffmanTables(textRegion, referredTo, customTables, numberOfSymbols, reader) {\n var codes = [],\n i = void 0,\n codeLength = void 0;\n for (i = 0; i <= 34; i++) {\n codeLength = reader.readBits(4);\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n }\n var runCodesTable = new HuffmanTable(codes, false);\n codes.length = 0;\n for (i = 0; i < numberOfSymbols;) {\n codeLength = runCodesTable.decode(reader);\n if (codeLength >= 32) {\n var repeatedLength = void 0,\n numberOfRepeats = void 0,\n j = void 0;\n switch (codeLength) {\n case 32:\n if (i === 0) {\n throw new Jbig2Error('no previous value in symbol ID table');\n }\n numberOfRepeats = reader.readBits(2) + 3;\n repeatedLength = codes[i - 1].prefixLength;\n break;\n case 33:\n numberOfRepeats = reader.readBits(3) + 3;\n repeatedLength = 0;\n break;\n case 34:\n numberOfRepeats = reader.readBits(7) + 11;\n repeatedLength = 0;\n break;\n default:\n throw new Jbig2Error('invalid code length in symbol ID table');\n }\n for (j = 0; j < numberOfRepeats; j++) {\n codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n i++;\n }\n } else {\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n i++;\n }\n }\n reader.byteAlign();\n var symbolIDTable = new HuffmanTable(codes, false);\n var customIndex = 0,\n tableFirstS = void 0,\n tableDeltaS = void 0,\n tableDeltaT = void 0;\n switch (textRegion.huffmanFS) {\n case 0:\n case 1:\n tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n break;\n case 3:\n tableFirstS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n default:\n throw new Jbig2Error('invalid Huffman FS selector');\n }\n switch (textRegion.huffmanDS) {\n case 0:\n case 1:\n case 2:\n tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n break;\n case 3:\n tableDeltaS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n default:\n throw new Jbig2Error('invalid Huffman DS selector');\n }\n switch (textRegion.huffmanDT) {\n case 0:\n case 1:\n case 2:\n tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n break;\n case 3:\n tableDeltaT = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n default:\n throw new Jbig2Error('invalid Huffman DT selector');\n }\n if (textRegion.refinement) {\n throw new Jbig2Error('refinement with Huffman is not supported');\n }\n return {\n symbolIDTable: symbolIDTable,\n tableFirstS: tableFirstS,\n tableDeltaS: tableDeltaS,\n tableDeltaT: tableDeltaT\n };\n }\n function getSymbolDictionaryHuffmanTables(dictionary, referredTo, customTables) {\n var customIndex = 0,\n tableDeltaHeight = void 0,\n tableDeltaWidth = void 0;\n switch (dictionary.huffmanDHSelector) {\n case 0:\n case 1:\n tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n break;\n case 3:\n tableDeltaHeight = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n default:\n throw new Jbig2Error('invalid Huffman DH selector');\n }\n switch (dictionary.huffmanDWSelector) {\n case 0:\n case 1:\n tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n break;\n case 3:\n tableDeltaWidth = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n default:\n throw new Jbig2Error('invalid Huffman DW selector');\n }\n var tableBitmapSize = void 0,\n tableAggregateInstances = void 0;\n if (dictionary.bitmapSizeSelector) {\n tableBitmapSize = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n } else {\n tableBitmapSize = getStandardTable(1);\n }\n if (dictionary.aggregationInstancesSelector) {\n tableAggregateInstances = getCustomHuffmanTable(customIndex, referredTo, customTables);\n } else {\n tableAggregateInstances = getStandardTable(1);\n }\n return {\n tableDeltaHeight: tableDeltaHeight,\n tableDeltaWidth: tableDeltaWidth,\n tableBitmapSize: tableBitmapSize,\n tableAggregateInstances: tableAggregateInstances\n };\n }\n function readUncompressedBitmap(reader, width, height) {\n var bitmap = [],\n x = void 0,\n y = void 0,\n row = void 0;\n for (y = 0; y < height; y++) {\n row = new Uint8Array(width);\n bitmap.push(row);\n for (x = 0; x < width; x++) {\n row[x] = reader.readBit();\n }\n reader.byteAlign();\n }\n return bitmap;\n }\n function decodeMMRBitmap(input, width, height, endOfBlock) {\n var params = {\n K: -1,\n Columns: width,\n Rows: height,\n BlackIs1: true,\n EndOfBlock: endOfBlock\n };\n var decoder = new _ccitt.CCITTFaxDecoder(input, params);\n var bitmap = [],\n x = void 0,\n y = void 0,\n row = void 0,\n currentByte = void 0,\n shift = void 0,\n eof = false;\n for (y = 0; y < height; y++) {\n row = new Uint8Array(width);\n bitmap.push(row);\n shift = -1;\n for (x = 0; x < width; x++) {\n if (shift < 0) {\n currentByte = decoder.readNextChar();\n if (currentByte === -1) {\n currentByte = 0;\n eof = true;\n }\n shift = 7;\n }\n row[x] = currentByte >> shift & 1;\n shift--;\n }\n }\n if (endOfBlock && !eof) {\n var lookForEOFLimit = 5;\n for (var i = 0; i < lookForEOFLimit; i++) {\n if (decoder.readNextChar() === -1) {\n break;\n }\n }\n }\n return bitmap;\n }\n function Jbig2Image() {}\n Jbig2Image.prototype = {\n parseChunks: function parseChunks(chunks) {\n return parseJbig2Chunks(chunks);\n },\n parse: function parse(data) {\n var _parseJbig = parseJbig2(data),\n imgData = _parseJbig.imgData,\n width = _parseJbig.width,\n height = _parseJbig.height;\n\n this.width = width;\n this.height = height;\n return imgData;\n }\n };\n return Jbig2Image;\n}();\nexports.Jbig2Image = Jbig2Image;\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar ArithmeticDecoder = function ArithmeticDecoderClosure() {\n var 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 function ArithmeticDecoder(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 ArithmeticDecoder.prototype = {\n byteIn: function ArithmeticDecoder_byteIn() {\n var data = this.data;\n var bp = this.bp;\n if (data[bp] === 0xFF) {\n var b1 = data[bp + 1];\n if (b1 > 0x8F) {\n this.clow += 0xFF00;\n this.ct = 8;\n } else {\n bp++;\n this.clow += data[bp] << 9;\n this.ct = 7;\n this.bp = bp;\n }\n } else {\n bp++;\n this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xFF00;\n this.ct = 8;\n this.bp = bp;\n }\n if (this.clow > 0xFFFF) {\n this.chigh += this.clow >> 16;\n this.clow &= 0xFFFF;\n }\n },\n readBit: function ArithmeticDecoder_readBit(contexts, pos) {\n var cx_index = contexts[pos] >> 1,\n cx_mps = contexts[pos] & 1;\n var qeTableIcx = QeTable[cx_index];\n var qeIcx = qeTableIcx.qe;\n var d;\n var a = this.a - qeIcx;\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 if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n do {\n if (this.ct === 0) {\n this.byteIn();\n }\n a <<= 1;\n this.chigh = this.chigh << 1 & 0xFFFF | this.clow >> 15 & 1;\n this.clow = this.clow << 1 & 0xFFFF;\n this.ct--;\n } while ((a & 0x8000) === 0);\n this.a = a;\n contexts[pos] = cx_index << 1 | cx_mps;\n return d;\n }\n };\n return ArithmeticDecoder;\n}();\nexports.ArithmeticDecoder = ArithmeticDecoder;\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpegStream = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _stream = __w_pdfjs_require__(140);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar _jpg = __w_pdfjs_require__(147);\n\nvar JpegStream = function JpegStreamClosure() {\n function JpegStream(stream, maybeLength, dict, params) {\n var ch = void 0;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === 0xFF) {\n stream.skip(-1);\n break;\n }\n }\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n _stream.DecodeStream.call(this, maybeLength);\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 JpegStream.prototype.ensureBuffer = function (requested) {};\n JpegStream.prototype.readBlock = function () {\n if (this.eof) {\n return;\n }\n var jpegOptions = {\n decodeTransform: undefined,\n colorTransform: undefined\n };\n var decodeArr = this.dict.getArray('Decode', 'D');\n if (this.forceRGB && Array.isArray(decodeArr)) {\n var bitsPerComponent = this.dict.get('BitsPerComponent') || 8;\n var decodeArrLength = decodeArr.length;\n var transform = new Int32Array(decodeArrLength);\n var transformNeeded = false;\n var maxValue = (1 << bitsPerComponent) - 1;\n for (var i = 0; i < decodeArrLength; i += 2) {\n transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0;\n transform[i + 1] = decodeArr[i] * maxValue | 0;\n if (transform[i] !== 256 || transform[i + 1] !== 0) {\n transformNeeded = true;\n }\n }\n if (transformNeeded) {\n jpegOptions.decodeTransform = transform;\n }\n }\n if ((0, _primitives.isDict)(this.params)) {\n var colorTransform = this.params.get('ColorTransform');\n if (Number.isInteger(colorTransform)) {\n jpegOptions.colorTransform = colorTransform;\n }\n }\n var jpegImage = new _jpg.JpegImage(jpegOptions);\n jpegImage.parse(this.bytes);\n var 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 JpegStream.prototype.getIR = function () {\n var forceDataSchema = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n return (0, _util.createObjectURL)(this.bytes, 'image/jpeg', forceDataSchema);\n };\n return JpegStream;\n}();\nexports.JpegStream = JpegStream;\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpegImage = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _util = __w_pdfjs_require__(2);\n\nvar JpegError = function JpegErrorClosure() {\n function JpegError(msg) {\n this.message = 'JPEG error: ' + msg;\n }\n JpegError.prototype = new Error();\n JpegError.prototype.name = 'JpegError';\n JpegError.constructor = JpegError;\n return JpegError;\n}();\nvar DNLMarkerError = function DNLMarkerErrorClosure() {\n function DNLMarkerError(message, scanLines) {\n this.message = message;\n this.scanLines = scanLines;\n }\n DNLMarkerError.prototype = new Error();\n DNLMarkerError.prototype.name = 'DNLMarkerError';\n DNLMarkerError.constructor = DNLMarkerError;\n return DNLMarkerError;\n}();\nvar EOIMarkerError = function EOIMarkerErrorClosure() {\n function EOIMarkerError(message) {\n this.message = message;\n }\n EOIMarkerError.prototype = new Error();\n EOIMarkerError.prototype.name = 'EOIMarkerError';\n EOIMarkerError.constructor = EOIMarkerError;\n return EOIMarkerError;\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 function JpegImage() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$decodeTransform = _ref.decodeTransform,\n decodeTransform = _ref$decodeTransform === undefined ? null : _ref$decodeTransform,\n _ref$colorTransform = _ref.colorTransform,\n colorTransform = _ref$colorTransform === undefined ? -1 : _ref$colorTransform;\n\n this._decodeTransform = decodeTransform;\n this._colorTransform = colorTransform;\n }\n function buildHuffmanTable(codeLengths, values) {\n var k = 0,\n code = [],\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n code.push({\n children: [],\n index: 0\n });\n var p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = {\n children: [],\n index: 0\n });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\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 return code[0].children;\n }\n function getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) {\n var parseDNLMarker = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;\n\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var startOffset = offset,\n bitsData = 0,\n bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xFF) {\n var nextByte = data[offset++];\n if (nextByte) {\n if (nextByte === 0xDC && parseDNLMarker) {\n offset += 2;\n var scanLines = data[offset++] << 8 | data[offset++];\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 throw new EOIMarkerError('Found EOI marker (0xFFD9) while parsing scan data');\n }\n throw new JpegError('unexpected marker ' + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree;\n while (true) {\n node = node[readBit()];\n if (typeof node === 'number') {\n return node;\n }\n if ((typeof node === 'undefined' ? 'undefined' : _typeof(node)) !== 'object') {\n throw new JpegError('invalid huffman sequence');\n }\n }\n }\n function receive(length) {\n var n = 0;\n while (length > 0) {\n n = n << 1 | readBit();\n length--;\n }\n return n;\n }\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n var n = receive(length);\n if (n >= 1 << length - 1) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n function decodeBaseline(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[offset] = component.pred += diff;\n var k = 1;\n while (k < 64) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] = receiveAndExtend(s);\n k++;\n }\n }\n function decodeDCFirst(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[offset] = component.pred += diff;\n }\n function decodeDCSuccessive(component, offset) {\n component.blockData[offset] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component, offset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k = spectralStart,\n e = spectralEnd;\n while (k <= e) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] = receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n var successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, offset) {\n var k = spectralStart;\n var e = spectralEnd;\n var r = 0;\n var s;\n var rs;\n while (k <= e) {\n var offsetZ = offset + dctZigZag[k];\n var sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError('invalid ACn encoding');\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n component.blockData[offsetZ] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n function decodeMcu(component, decode, mcu, row, col) {\n var mcuRow = mcu / mcusPerLine | 0;\n var mcuCol = mcu % mcusPerLine;\n var blockRow = mcuRow * component.v + row;\n var blockCol = mcuCol * component.h + col;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n function decodeBlock(component, decode, mcu) {\n var blockRow = mcu / component.blocksPerLine | 0;\n var blockCol = mcu % component.blocksPerLine;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0,\n fileMarker;\n var mcuExpected;\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n var h, v;\n while (mcu < mcuExpected) {\n var mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n if (fileMarker && fileMarker.invalid) {\n (0, _util.warn)('decodeScan - unexpected MCU data, current marker is: ' + fileMarker.invalid);\n offset = fileMarker.offset;\n }\n var marker = fileMarker && fileMarker.marker;\n if (!marker || marker <= 0xFF00) {\n throw new JpegError('marker was not found');\n }\n if (marker >= 0xFFD0 && marker <= 0xFFD7) {\n offset += 2;\n } else {\n break;\n }\n }\n fileMarker = findNextFileMarker(data, offset);\n if (fileMarker && fileMarker.invalid) {\n (0, _util.warn)('decodeScan - unexpected Scan data, current marker is: ' + fileMarker.invalid);\n offset = fileMarker.offset;\n }\n return offset - startOffset;\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 if (!qt) {\n throw new JpegError('missing required Quantization Table.');\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 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 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 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 if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = dctSqrt2 * p0 + 8192 >> 14;\n t = t < -2040 ? 0 : t >= 2024 ? 255 : t + 2056 >> 4;\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 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 p0 = p0 < 16 ? 0 : p0 >= 4080 ? 255 : p0 >> 4;\n p1 = p1 < 16 ? 0 : p1 >= 4080 ? 255 : p1 >> 4;\n p2 = p2 < 16 ? 0 : p2 >= 4080 ? 255 : p2 >> 4;\n p3 = p3 < 16 ? 0 : p3 >= 4080 ? 255 : p3 >> 4;\n p4 = p4 < 16 ? 0 : p4 >= 4080 ? 255 : p4 >> 4;\n p5 = p5 < 16 ? 0 : p5 >= 4080 ? 255 : p5 >> 4;\n p6 = p6 < 16 ? 0 : p6 >= 4080 ? 255 : p6 >> 4;\n p7 = p7 < 16 ? 0 : p7 >= 4080 ? 255 : p7 >> 4;\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 function buildComponentData(frame, component) {\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var computationBuffer = new Int16Array(64);\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n }\n function findNextFileMarker(data, currentPos) {\n var startPos = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : currentPos;\n\n function peekUint16(pos) {\n return data[pos] << 8 | data[pos + 1];\n }\n var maxPos = data.length - 1;\n var newPos = startPos < currentPos ? startPos : currentPos;\n if (currentPos >= maxPos) {\n return null;\n }\n var currentMarker = peekUint16(currentPos);\n if (currentMarker >= 0xFFC0 && currentMarker <= 0xFFFE) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos\n };\n }\n var newMarker = peekUint16(newPos);\n while (!(newMarker >= 0xFFC0 && newMarker <= 0xFFFE)) {\n if (++newPos >= maxPos) {\n return null;\n }\n newMarker = peekUint16(newPos);\n }\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos\n };\n }\n JpegImage.prototype = {\n parse: function parse(data) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref2$dnlScanLines = _ref2.dnlScanLines,\n dnlScanLines = _ref2$dnlScanLines === undefined ? null : _ref2$dnlScanLines;\n\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length = readUint16();\n var endOffset = offset + length - 2;\n var fileMarker = findNextFileMarker(data, endOffset, offset);\n if (fileMarker && fileMarker.invalid) {\n (0, _util.warn)('readDataBlock - incorrect length, current marker is: ' + fileMarker.invalid);\n endOffset = fileMarker.offset;\n }\n var array = data.subarray(offset, endOffset);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame) {\n var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (var i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var blocksPerLine = Math.ceil(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 frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n var offset = 0;\n var jfif = null;\n var adobe = null;\n var frame, resetInterval;\n var numSOSMarkers = 0;\n var quantizationTables = [];\n var huffmanTablesAC = [],\n huffmanTablesDC = [];\n var fileMarker = readUint16();\n if (fileMarker !== 0xFFD8) {\n throw new JpegError('SOI not found');\n }\n fileMarker = readUint16();\n markerLoop: while (fileMarker !== 0xFFD9) {\n var i, j, l;\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 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 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 break;\n case 0xFFDB:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n var z;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n var tableData = new Uint16Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n 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] = readUint16();\n }\n } else {\n throw new JpegError('DQT - invalid table spec');\n }\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 0xFFC0:\n case 0xFFC1:\n case 0xFFC2:\n if (frame) {\n throw new JpegError('Only single frame JPEGs supported');\n }\n readUint16();\n frame = {};\n frame.extended = fileMarker === 0xFFC1;\n frame.progressive = fileMarker === 0xFFC2;\n frame.precision = data[offset++];\n var sofScanLines = readUint16();\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = readUint16();\n frame.components = [];\n frame.componentIds = {};\n var componentsCount = data[offset++],\n componentId;\n var maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n if (maxH < h) {\n maxH = h;\n }\n if (maxV < v) {\n maxV = v;\n }\n var qId = data[offset + 2];\n l = frame.components.push({\n h: h,\n v: v,\n quantizationId: qId,\n quantizationTable: null\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n case 0xFFC4:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength;) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n case 0xFFDD:\n readUint16();\n resetInterval = readUint16();\n break;\n case 0xFFDA:\n var parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n readUint16();\n var selectorsCount = data[offset++];\n var components = [],\n component;\n for (i = 0; i < selectorsCount; i++) {\n var componentIndex = frame.componentIds[data[offset++]];\n component = frame.components[componentIndex];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n try {\n var processed = decodeScan(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, { dnlScanLines: ex.scanLines });\n } else if (ex instanceof EOIMarkerError) {\n (0, _util.warn)(ex.message + ' -- ignoring the rest of the image data.');\n break markerLoop;\n }\n throw ex;\n }\n break;\n case 0xFFDC:\n offset += 4;\n break;\n case 0xFFFF:\n if (data[offset] !== 0xFF) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] === 0xFF && data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {\n offset -= 3;\n break;\n }\n var nextFileMarker = findNextFileMarker(data, offset - 2);\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 throw new JpegError('unknown marker ' + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var quantizationTable = quantizationTables[component.quantizationId];\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n this.components.push({\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn\n });\n }\n this.numComponents = this.components.length;\n },\n _getLinearizedBlockData: function _getLinearizedBlockData(width, height) {\n var isSourcePDF = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\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 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 for (x = 0; x < width; x++) {\n j = 0 | x * componentScaleX;\n xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7;\n }\n for (y = 0; y < height; y++) {\n j = 0 | y * componentScaleY;\n index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3;\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n var transform = this._decodeTransform;\n if (!isSourcePDF && numComponents === 4 && !transform) {\n transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n }\n if (transform) {\n for (i = 0; i < dataLength;) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = (data[i] * transform[k] >> 8) + transform[k + 1];\n }\n }\n }\n return data;\n },\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n return !!this.adobe.transformCode;\n }\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n return false;\n }\n return true;\n }\n if (this._colorTransform === 1) {\n return true;\n }\n return false;\n },\n _convertYccToRgb: function convertYccToRgb(data) {\n var Y, Cb, Cr;\n for (var i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n return data;\n },\n _convertYcckToRgb: function convertYcckToRgb(data) {\n var Y, Cb, Cr, k;\n var offset = 0;\n for (var i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n k = data[i + 3];\n 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 return data.subarray(0, offset);\n },\n _convertYcckToCmyk: function convertYcckToCmyk(data) {\n var Y, Cb, Cr;\n for (var i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n }\n return data;\n },\n _convertCmykToRgb: function convertCmykToRgb(data) {\n var c, m, y, k;\n var offset = 0;\n var scale = 1 / 255;\n for (var i = 0, length = data.length; i < length; i += 4) {\n c = data[i] * scale;\n m = data[i + 1] * scale;\n y = data[i + 2] * scale;\n k = data[i + 3] * scale;\n data[offset++] = 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 data[offset++] = 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 data[offset++] = 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 return data.subarray(0, offset);\n },\n getData: function getData(_ref3) {\n var width = _ref3.width,\n height = _ref3.height,\n _ref3$forceRGB = _ref3.forceRGB,\n forceRGB = _ref3$forceRGB === undefined ? false : _ref3$forceRGB,\n _ref3$isSourcePDF = _ref3.isSourcePDF,\n isSourcePDF = _ref3$isSourcePDF === undefined ? false : _ref3$isSourcePDF;\n\n if (this.numComponents > 4) {\n throw new JpegError('Unsupported color mode');\n }\n var data = this._getLinearizedBlockData(width, height, isSourcePDF);\n if (this.numComponents === 1 && forceRGB) {\n var dataLength = data.length;\n var rgbData = new Uint8ClampedArray(dataLength * 3);\n var offset = 0;\n for (var i = 0; i < dataLength; i++) {\n var grayColor = data[i];\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n }\n return rgbData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded) {\n if (forceRGB) {\n return this._convertYcckToRgb(data);\n }\n return this._convertYcckToCmyk(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n return data;\n }\n };\n return JpegImage;\n}();\nexports.JpegImage = JpegImage;\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpxStream = undefined;\n\nvar _stream = __w_pdfjs_require__(140);\n\nvar _jpx = __w_pdfjs_require__(149);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar 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 _stream.DecodeStream.call(this, maybeLength);\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 JpxStream.prototype.ensureBuffer = function (requested) {};\n JpxStream.prototype.readBlock = function () {\n if (this.eof) {\n return;\n }\n var jpxImage = new _jpx.JpxImage();\n jpxImage.parse(this.bytes);\n var width = jpxImage.width;\n var height = jpxImage.height;\n var componentsCount = jpxImage.componentsCount;\n var tileCount = jpxImage.tiles.length;\n if (tileCount === 1) {\n this.buffer = jpxImage.tiles[0].items;\n } else {\n var data = new Uint8ClampedArray(width * height * componentsCount);\n for (var k = 0; k < tileCount; k++) {\n var tileComponents = jpxImage.tiles[k];\n var tileWidth = tileComponents.width;\n var tileHeight = tileComponents.height;\n var tileLeft = tileComponents.left;\n var tileTop = tileComponents.top;\n var src = tileComponents.items;\n var srcPosition = 0;\n var dataPosition = (width * tileTop + tileLeft) * componentsCount;\n var imgRowSize = width * componentsCount;\n var tileRowSize = tileWidth * componentsCount;\n for (var j = 0; j < tileHeight; j++) {\n var rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n data.set(rowBytes, dataPosition);\n srcPosition += tileRowSize;\n dataPosition += imgRowSize;\n }\n }\n this.buffer = data;\n }\n this.bufferLength = this.buffer.length;\n this.eof = true;\n };\n return JpxStream;\n}();\nexports.JpxStream = JpxStream;\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpxImage = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(145);\n\nvar JpxError = function JpxErrorClosure() {\n function JpxError(msg) {\n this.message = 'JPX error: ' + msg;\n }\n JpxError.prototype = new Error();\n JpxError.prototype.name = 'JpxError';\n JpxError.constructor = JpxError;\n return JpxError;\n}();\nvar JpxImage = function JpxImageClosure() {\n var SubbandsGainLog2 = {\n 'LL': 0,\n 'LH': 1,\n 'HL': 1,\n 'HH': 2\n };\n function JpxImage() {\n this.failOnCorruptedImage = false;\n }\n JpxImage.prototype = {\n parse: function JpxImage_parse(data) {\n var head = (0, _util.readUint16)(data, 0);\n if (head === 0xFF4F) {\n this.parseCodestream(data, 0, data.length);\n return;\n }\n var position = 0,\n length = data.length;\n while (position < length) {\n var headerSize = 8;\n var lbox = (0, _util.readUint32)(data, position);\n var tbox = (0, _util.readUint32)(data, position + 4);\n position += headerSize;\n if (lbox === 1) {\n lbox = (0, _util.readUint32)(data, position) * 4294967296 + (0, _util.readUint32)(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n if (lbox < headerSize) {\n throw new JpxError('Invalid box field size');\n }\n var dataLength = lbox - headerSize;\n var jumpDataLength = true;\n switch (tbox) {\n case 0x6A703268:\n jumpDataLength = false;\n break;\n case 0x636F6C72:\n var method = data[position];\n if (method === 1) {\n var colorspace = (0, _util.readUint32)(data, position + 3);\n switch (colorspace) {\n case 16:\n case 17:\n case 18:\n break;\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 break;\n case 0x6A703263:\n this.parseCodestream(data, position, position + dataLength);\n break;\n case 0x6A502020:\n if ((0, _util.readUint32)(data, position) !== 0x0d0a870a) {\n (0, _util.warn)('Invalid JP2 signature');\n }\n break;\n case 0x6A501A1A:\n case 0x66747970:\n case 0x72726571:\n case 0x72657320:\n case 0x69686472:\n break;\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 if (jumpDataLength) {\n position += dataLength;\n }\n }\n },\n parseImageProperties: function JpxImage_parseImageProperties(stream) {\n var newByte = stream.getByte();\n while (newByte >= 0) {\n var oldByte = newByte;\n newByte = stream.getByte();\n var code = oldByte << 8 | newByte;\n 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 throw new JpxError('No size marker found in JPX stream');\n },\n parseCodestream: function JpxImage_parseCodestream(data, start, end) {\n var context = {};\n var doNotRecover = false;\n try {\n var position = start;\n while (position + 1 < end) {\n var code = (0, _util.readUint16)(data, position);\n position += 2;\n var length = 0,\n j,\n sqcd,\n spqcds,\n spqcdSize,\n scalarExpounded,\n tile;\n switch (code) {\n case 0xFF4F:\n context.mainHeader = true;\n break;\n case 0xFFD9:\n break;\n case 0xFF51:\n length = (0, _util.readUint16)(data, position);\n var siz = {};\n siz.Xsiz = (0, _util.readUint32)(data, position + 4);\n siz.Ysiz = (0, _util.readUint32)(data, position + 8);\n siz.XOsiz = (0, _util.readUint32)(data, position + 12);\n siz.YOsiz = (0, _util.readUint32)(data, position + 16);\n siz.XTsiz = (0, _util.readUint32)(data, position + 20);\n siz.YTsiz = (0, _util.readUint32)(data, position + 24);\n siz.XTOsiz = (0, _util.readUint32)(data, position + 28);\n siz.YTOsiz = (0, _util.readUint32)(data, position + 32);\n var componentsCount = (0, _util.readUint16)(data, position + 36);\n siz.Csiz = componentsCount;\n var components = [];\n j = position + 38;\n for (var i = 0; i < componentsCount; i++) {\n var component = {\n precision: (data[j] & 0x7F) + 1,\n isSigned: !!(data[j] & 0x80),\n XRsiz: data[j + 1],\n YRsiz: data[j + 2]\n };\n j += 3;\n calculateComponentDimensions(component, siz);\n components.push(component);\n }\n context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n case 0xFF5C:\n length = (0, _util.readUint16)(data, position);\n var qcd = {};\n j = position + 2;\n sqcd = data[j++];\n switch (sqcd & 0x1F) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error('Invalid SQcd value ' + sqcd);\n }\n qcd.noQuantization = spqcdSize === 8;\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n var spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcd.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n break;\n case 0xFF5D:\n length = (0, _util.readUint16)(data, position);\n var qcc = {};\n j = position + 2;\n var cqcc;\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = (0, _util.readUint16)(data, j);\n j += 2;\n }\n sqcd = data[j++];\n switch (sqcd & 0x1F) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error('Invalid SQcd value ' + sqcd);\n }\n qcc.noQuantization = spqcdSize === 8;\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcc.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n break;\n case 0xFF52:\n length = (0, _util.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, _util.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 if (cod.entropyCoderWithCustomPrecincts) {\n var precinctsSizes = [];\n while (j < length + position) {\n var precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xF,\n PPy: precinctsSize >> 4\n });\n }\n cod.precinctsSizes = precinctsSizes;\n }\n var unsupported = [];\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push('selectiveArithmeticCodingBypass');\n }\n if (cod.resetContextProbabilities) {\n unsupported.push('resetContextProbabilities');\n }\n if (cod.terminationOnEachCodingPass) {\n unsupported.push('terminationOnEachCodingPass');\n }\n if (cod.verticallyStripe) {\n unsupported.push('verticallyStripe');\n }\n if (cod.predictableTermination) {\n unsupported.push('predictableTermination');\n }\n if (unsupported.length > 0) {\n doNotRecover = true;\n throw new Error('Unsupported COD options (' + unsupported.join(', ') + ')');\n }\n if (context.mainHeader) {\n context.COD = cod;\n } else {\n context.currentTile.COD = cod;\n context.currentTile.COC = [];\n }\n break;\n case 0xFF90:\n length = (0, _util.readUint16)(data, position);\n tile = {};\n tile.index = (0, _util.readUint16)(data, position + 2);\n tile.length = (0, _util.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 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 context.currentTile = tile;\n break;\n case 0xFF93:\n tile = context.currentTile;\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n case 0xFF55:\n case 0xFF57:\n case 0xFF58:\n case 0xFF64:\n length = (0, _util.readUint16)(data, position);\n break;\n case 0xFF53:\n throw new Error('Codestream code 0xFF53 (COC) is ' + 'not implemented');\n default:\n throw new Error('Unknown codestream code: ' + code.toString(16));\n }\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n (0, _util.warn)('JPX: Trying to recover from: ' + e.message);\n }\n }\n this.tiles = transformComponents(context);\n this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n this.componentsCount = context.SIZ.Csiz;\n }\n };\n function calculateComponentDimensions(component, siz) {\n component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n component.width = component.x1 - component.x0;\n component.height = component.y1 - component.y0;\n }\n function calculateTileGrids(context, components) {\n var siz = context.SIZ;\n var tile,\n tiles = [];\n var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n for (var q = 0; q < numYtiles; q++) {\n for (var p = 0; p < numXtiles; p++) {\n tile = {};\n tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n tile.width = tile.tx1 - tile.tx0;\n tile.height = tile.ty1 - tile.ty0;\n tile.components = [];\n tiles.push(tile);\n }\n }\n context.tiles = tiles;\n var componentsCount = siz.Csiz;\n for (var i = 0, ii = componentsCount; i < ii; i++) {\n var component = components[i];\n for (var j = 0, jj = tiles.length; j < jj; j++) {\n var tileComponent = {};\n tile = tiles[j];\n tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n tile.components[i] = tileComponent;\n }\n }\n }\n function getBlocksDimensions(context, component, r) {\n var codOrCoc = component.codingStyleParameters;\n var result = {};\n if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n result.PPx = 15;\n result.PPy = 15;\n } else {\n result.PPx = codOrCoc.precinctsSizes[r].PPx;\n result.PPy = codOrCoc.precinctsSizes[r].PPy;\n }\n 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 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: precinctWidth,\n precinctHeight: precinctHeight,\n numprecinctswide: numprecinctswide,\n numprecinctshigh: numprecinctshigh,\n numprecincts: numprecincts,\n precinctWidthInSubband: precinctWidthInSubband,\n precinctHeightInSubband: precinctHeightInSubband\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 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 if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) {\n continue;\n }\n codeblocks.push(codeblock);\n var precinct = precincts[precinctNumber];\n if (precinct !== undefined) {\n if (i < precinct.cbxMin) {\n precinct.cbxMin = i;\n } else if (i > precinct.cbxMax) {\n precinct.cbxMax = i;\n }\n if (j < precinct.cbyMin) {\n precinct.cbxMin = j;\n } else if (j > precinct.cbyMax) {\n precinct.cbyMax = j;\n }\n } else {\n precincts[precinctNumber] = precinct = {\n cbxMin: i,\n cbyMin: j,\n cbxMax: i,\n cbyMax: j\n };\n }\n codeblock.precinct = precinct;\n }\n }\n subband.codeblockParameters = {\n codeblockWidth: xcb_,\n codeblockHeight: ycb_,\n numcodeblockwide: cbx1 - cbx0 + 1,\n numcodeblockhigh: cby1 - cby0 + 1\n };\n subband.codeblocks = codeblocks;\n subband.precincts = precincts;\n }\n function createPacket(resolution, precinctNumber, layerNumber) {\n var precinctCodeblocks = [];\n var subbands = resolution.subbands;\n for (var i = 0, ii = subbands.length; i < ii; i++) {\n var subband = subbands[i];\n var codeblocks = subband.codeblocks;\n for (var j = 0, jj = codeblocks.length; j < jj; j++) {\n var codeblock = codeblocks[j];\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n precinctCodeblocks.push(codeblock);\n }\n }\n return {\n layerNumber: layerNumber,\n codeblocks: precinctCodeblocks\n };\n }\n function LayerResolutionComponentPositionIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var maxDecompositionLevelsCount = 0;\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n var l = 0,\n r = 0,\n i = 0,\n k = 0;\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 if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n r = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function ResolutionLayerComponentPositionIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var maxDecompositionLevelsCount = 0;\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n var r = 0,\n l = 0,\n i = 0,\n k = 0;\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 if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n l = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function ResolutionPositionComponentLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var l, r, c, p;\n var maxDecompositionLevelsCount = 0;\n for (c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount);\n }\n var maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1);\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n var maxNumPrecincts = 0;\n for (c = 0; c < componentsCount; ++c) {\n var resolutions = tile.components[c].resolutions;\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts);\n }\n }\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n this.nextPacket = function JpxImage_nextPacket() {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n var component = tile.components[c];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n if (p >= numprecincts) {\n continue;\n }\n for (; l < layersCount;) {\n var packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n l = 0;\n }\n c = 0;\n }\n p = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function PositionComponentResolutionLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var precinctsSizes = getPrecinctSizesInImageScale(tile);\n var precinctsIterationSizes = precinctsSizes;\n var l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n 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 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 if (k === null) {\n continue;\n }\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n c = 0;\n }\n px = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function ComponentPositionResolutionLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var precinctsSizes = getPrecinctSizesInImageScale(tile);\n var l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n 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 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 if (k === null) {\n continue;\n }\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n px = 0;\n }\n py = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) {\n var posX = pxIndex * precinctIterationSizes.minWidth;\n var posY = pyIndex * precinctIterationSizes.minHeight;\n if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) {\n return null;\n }\n var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide;\n return posX / sizeInImageScale.height + startPrecinctRowIndex;\n }\n function getPrecinctSizesInImageScale(tile) {\n var componentsCount = tile.components.length;\n var minWidth = Number.MAX_VALUE;\n var minHeight = Number.MAX_VALUE;\n var maxNumWide = 0;\n var maxNumHigh = 0;\n var sizePerComponent = new Array(componentsCount);\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n var sizePerResolution = new Array(decompositionLevelsCount + 1);\n var minWidthCurrentComponent = Number.MAX_VALUE;\n var minHeightCurrentComponent = Number.MAX_VALUE;\n var maxNumWideCurrentComponent = 0;\n var maxNumHighCurrentComponent = 0;\n var scale = 1;\n for (var r = decompositionLevelsCount; r >= 0; --r) {\n var resolution = component.resolutions[r];\n var widthCurrentResolution = 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 minWidth = Math.min(minWidth, minWidthCurrentComponent);\n minHeight = Math.min(minHeight, minHeightCurrentComponent);\n maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n sizePerComponent[c] = {\n resolutions: sizePerResolution,\n minWidth: minWidthCurrentComponent,\n minHeight: minHeightCurrentComponent,\n maxNumWide: maxNumWideCurrentComponent,\n maxNumHigh: maxNumHighCurrentComponent\n };\n }\n return {\n components: sizePerComponent,\n minWidth: minWidth,\n minHeight: minHeight,\n maxNumWide: maxNumWide,\n maxNumHigh: maxNumHigh\n };\n }\n function buildPackets(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var componentsCount = siz.Csiz;\n 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 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 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 component.resolutions = resolutions;\n component.subbands = subbands;\n }\n var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator = new LayerResolutionComponentPositionIterator(context);\n break;\n case 1:\n tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context);\n break;\n case 2:\n tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context);\n break;\n case 3:\n tile.packetsIterator = new PositionComponentResolutionLayerIterator(context);\n break;\n case 4:\n tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context);\n break;\n default:\n throw new JpxError('Unsupported progression order ' + progressionOrder);\n }\n }\n function parseTilePackets(context, data, offset, dataLength) {\n var position = 0;\n var buffer,\n bufferSize = 0,\n skipNextBit = false;\n function readBits(count) {\n while (bufferSize < count) {\n var b = data[offset + position];\n position++;\n if (skipNextBit) {\n buffer = buffer << 7 | b;\n bufferSize += 7;\n skipNextBit = false;\n } else {\n buffer = buffer << 8 | b;\n bufferSize += 8;\n }\n if (b === 0xFF) {\n skipNextBit = true;\n }\n }\n bufferSize -= count;\n return buffer >>> bufferSize & (1 << count) - 1;\n }\n function skipMarkerIfEqual(value) {\n if (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 return false;\n }\n function skipBytes(count) {\n position += count;\n }\n function alignToByte() {\n bufferSize = 0;\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n if (readBits(1) === 0) {\n return 2;\n }\n var value = readBits(2);\n if (value < 3) {\n return value + 3;\n }\n value = readBits(5);\n if (value < 31) {\n return value + 6;\n }\n value = readBits(7);\n return value + 37;\n }\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var sopMarkerUsed = context.COD.sopMarkerUsed;\n var ephMarkerUsed = context.COD.ephMarkerUsed;\n var packetsIterator = tile.packetsIterator;\n while (position < dataLength) {\n alignToByte();\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n skipBytes(4);\n }\n var packet = packetsIterator.nextPacket();\n if (!readBits(1)) {\n continue;\n }\n var layerNumber = packet.layerNumber;\n var queue = [],\n codeblock;\n for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n codeblock = packet.codeblocks[i];\n var precinct = codeblock.precinct;\n var codeblockColumn = codeblock.cbx - precinct.cbxMin;\n var codeblockRow = codeblock.cby - precinct.cbyMin;\n var codeblockIncluded = false;\n var firstTimeInclusion = false;\n var valueReady;\n if (codeblock['included'] !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n precinct = codeblock.precinct;\n var inclusionTree, zeroBitPlanesTree;\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 if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n while (true) {\n if (readBits(1)) {\n valueReady = !inclusionTree.nextLevel();\n if (valueReady) {\n codeblock.included = true;\n codeblockIncluded = firstTimeInclusion = true;\n break;\n }\n } else {\n inclusionTree.incrementValue(layerNumber);\n break;\n }\n }\n }\n }\n if (!codeblockIncluded) {\n continue;\n }\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n var codingpasses = readCodingpasses();\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n var codingpassesLog2 = (0, _util.log2)(codingpasses);\n var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;\n var codedDataLength = readBits(bits);\n queue.push({\n codeblock: codeblock,\n codingpasses: codingpasses,\n dataLength: codedDataLength\n });\n }\n alignToByte();\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n while (queue.length > 0) {\n var packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n if (codeblock['data'] === undefined) {\n codeblock.data = [];\n }\n codeblock.data.push({\n data: data,\n start: offset + position,\n end: offset + position + packetItem.dataLength,\n codingpasses: packetItem.codingpasses\n });\n position += packetItem.dataLength;\n }\n }\n return position;\n }\n function copyCoefficients(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 for (var i = 0, ii = codeblocks.length; i < ii; ++i) {\n var codeblock = codeblocks[i];\n var blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n var blockHeight = codeblock.tby1_ - codeblock.tby0_;\n if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n if (codeblock['data'] === undefined) {\n continue;\n }\n 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 for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n totalLength += dataItem.end - dataItem.start;\n codingpasses += dataItem.codingpasses;\n }\n var encodedData = new Uint8Array(totalLength);\n var position = 0;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n var chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n encodedData.set(chunk, position);\n position += chunk.length;\n }\n var decoder = new _arithmetic_decoder.ArithmeticDecoder(encodedData, 0, totalLength);\n bitModel.setDecoder(decoder);\n for (j = 0; j < codingpasses; j++) {\n switch (currentCodingpassType) {\n case 0:\n bitModel.runSignificancePropagationPass();\n break;\n case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n case 2:\n bitModel.runCleanupPass();\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\n }\n break;\n }\n currentCodingpassType = (currentCodingpassType + 1) % 3;\n }\n 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 for (j = 0; j < blockHeight; j++) {\n var row = offset / width | 0;\n var levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n if (sign[position] !== 0) {\n n = -n;\n }\n nb = bitsDecoded[position];\n var pos = interleave ? levelOffset + (offset << 1) : offset;\n if (reversible && nb >= mb) {\n coefficients[pos] = n;\n } else {\n coefficients[pos] = n * (1 << mb - nb);\n }\n }\n offset++;\n position++;\n }\n offset += width - blockWidth;\n }\n }\n }\n function transformTile(context, tile, c) {\n var component = tile.components[c];\n var codingStyleParameters = component.codingStyleParameters;\n var quantizationParameters = component.quantizationParameters;\n var decompositionLevelsCount = 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 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 for (var j = 0, jj = resolution.subbands.length; j < jj; j++) {\n var mu, epsilon;\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 var subband = resolution.subbands[j];\n var gainLog2 = SubbandsGainLog2[subband.type];\n var delta = reversible ? 1 : Math.pow(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 subbandCoefficients.push({\n width: width,\n height: height,\n items: coefficients\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 function transformComponents(context) {\n var siz = context.SIZ;\n var components = context.components;\n var componentsCount = siz.Csiz;\n var resultImages = [];\n for (var i = 0, ii = context.tiles.length; i < ii; i++) {\n var tile = context.tiles[i];\n var transformedTiles = [];\n var c;\n for (c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\n }\n var tile0 = transformedTiles[0];\n var out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n var result = {\n left: tile0.left,\n top: tile0.top,\n width: tile0.width,\n height: tile0.height,\n items: out\n };\n var shift, offset;\n var pos = 0,\n j,\n jj,\n y0,\n y1,\n y2;\n if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n var fourComponents = componentsCount === 4;\n var y0items = transformedTiles[0].items;\n var y1items = transformedTiles[1].items;\n var y2items = transformedTiles[2].items;\n var y3items = fourComponents ? transformedTiles[3].items : null;\n 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 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 var 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 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 for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n out[pos] = items[j] + offset >> shift;\n pos += componentsCount;\n }\n }\n }\n resultImages.push(result);\n }\n return resultImages;\n }\n function initializeTile(context, tileIndex) {\n var siz = context.SIZ;\n var componentsCount = siz.Csiz;\n var tile = context.tiles[tileIndex];\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var qcdOrQcc = 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 tile.codingStyleDefaultParameters = context.currentTile.COD;\n }\n var TagTree = function TagTreeClosure() {\n function TagTree(width, height) {\n var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1;\n this.levels = [];\n for (var i = 0; i < levelsLength; i++) {\n var level = {\n width: width,\n height: height,\n items: []\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n TagTree.prototype = {\n reset: function TagTree_reset(i, j) {\n var currentLevel = 0,\n value = 0,\n level;\n while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n var index = i + j * level.width;\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n currentLevel--;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n this.currentLevel = currentLevel;\n delete this.value;\n },\n incrementValue: function TagTree_incrementValue() {\n var level = this.levels[this.currentLevel];\n level.items[level.index]++;\n },\n nextLevel: function TagTree_nextLevel() {\n var currentLevel = this.currentLevel;\n var level = this.levels[currentLevel];\n var value = level.items[level.index];\n currentLevel--;\n if (currentLevel < 0) {\n this.value = value;\n return false;\n }\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n };\n return TagTree;\n }();\n var InclusionTree = function InclusionTreeClosure() {\n function InclusionTree(width, height, defaultValue) {\n var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1;\n this.levels = [];\n for (var i = 0; i < levelsLength; i++) {\n var items = new Uint8Array(width * height);\n for (var j = 0, jj = items.length; j < jj; j++) {\n items[j] = defaultValue;\n }\n var level = {\n width: width,\n height: height,\n items: items\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n InclusionTree.prototype = {\n reset: function InclusionTree_reset(i, j, stopValue) {\n var currentLevel = 0;\n while (currentLevel < this.levels.length) {\n var level = this.levels[currentLevel];\n var index = i + j * level.width;\n level.index = index;\n var value = level.items[index];\n if (value === 0xFF) {\n break;\n }\n if (value > stopValue) {\n this.currentLevel = currentLevel;\n this.propagateValues();\n return false;\n }\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n this.currentLevel = currentLevel - 1;\n return true;\n },\n incrementValue: function InclusionTree_incrementValue(stopValue) {\n var level = this.levels[this.currentLevel];\n level.items[level.index] = stopValue + 1;\n this.propagateValues();\n },\n propagateValues: function InclusionTree_propagateValues() {\n var levelIndex = this.currentLevel;\n var level = this.levels[levelIndex];\n var currentValue = level.items[level.index];\n while (--levelIndex >= 0) {\n level = this.levels[levelIndex];\n level.items[level.index] = currentValue;\n }\n },\n nextLevel: function InclusionTree_nextLevel() {\n var currentLevel = this.currentLevel;\n var level = this.levels[currentLevel];\n var value = level.items[level.index];\n level.items[level.index] = 0xFF;\n currentLevel--;\n if (currentLevel < 0) {\n return false;\n }\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n };\n return InclusionTree;\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 function BitModel(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n this.contextLabelTable = subband === 'HH' ? HHContextLabel : subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel;\n var coefficientCount = width * height;\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : mb > 6 ? new Uint16Array(coefficientCount) : new Uint8Array(coefficientCount);\n this.processingFlags = new Uint8Array(coefficientCount);\n var bitsDecoded = new Uint8Array(coefficientCount);\n if (zeroBitPlanes !== 0) {\n for (var i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n this.bitsDecoded = bitsDecoded;\n this.reset();\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 if (row > 0) {\n i = index - width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n if (row + 1 < height) {\n i = index + width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\n }\n neighborsSignificance[index] |= 0x80;\n },\n runSignificancePropagationPass: function BitModel_runSignificancePropagationPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var neighborsSignificance = this.neighborsSignificance;\n var processingFlags = this.processingFlags;\n var contexts = this.contexts;\n var labels = this.contextLabelTable;\n var bitsDecoded = this.bitsDecoded;\n var processedInverseMask = ~1;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n for (var i0 = 0; i0 < height; i0 += 4) {\n for (var j = 0; j < width; j++) {\n var index = i0 * width + j;\n for (var i1 = 0; i1 < 4; i1++, index += width) {\n var i = i0 + i1;\n if (i >= height) {\n break;\n }\n processingFlags[index] &= processedInverseMask;\n if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n continue;\n }\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n if (decision) {\n var sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n },\n decodeSignBit: function BitModel_decodeSignBit(row, column, index) {\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var contribution, sign0, sign1, significance1;\n var contextLabel, decoded;\n significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\n if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign1 - sign0;\n } else {\n contribution = 1 - sign1 - sign1;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign0 - sign0;\n } else {\n contribution = 0;\n }\n var horizontalContribution = 3 * contribution;\n significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\n if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign1 - sign0 + horizontalContribution;\n } else {\n contribution = 1 - sign1 - sign1 + horizontalContribution;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign0 - sign0 + horizontalContribution;\n } else {\n contribution = horizontalContribution;\n }\n if (contribution >= 0) {\n contextLabel = 9 + contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel);\n } else {\n contextLabel = 9 - contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n }\n return decoded;\n },\n runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var neighborsSignificance = this.neighborsSignificance;\n var contexts = this.contexts;\n var bitsDecoded = this.bitsDecoded;\n var processingFlags = this.processingFlags;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n var length = width * height;\n var width4 = width * 4;\n for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n indexNext = Math.min(length, index0 + width4);\n for (var j = 0; j < width; j++) {\n for (var index = index0 + j; index < indexNext; index += width) {\n if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n var contextLabel = 16;\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n var significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\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 for (var i0 = 0; i0 < height; i0 = iNext) {\n iNext = Math.min(i0 + 4, height);\n var indexBase = i0 * width;\n var checkAllEmpty = i0 + 3 < height;\n for (var j = 0; j < width; j++) {\n var index0 = indexBase + j;\n 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 if (allEmpty) {\n var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT);\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue;\n }\n i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (i1 !== 0) {\n i = i0 + i1;\n index += i1 * width;\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 for (var i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n i1++;\n }\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n if (decision === 1) {\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n }\n }\n }\n },\n checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() {\n var decoder = this.decoder;\n var contexts = this.contexts;\n var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (symbol !== 0xA) {\n throw new JpxError('Invalid segmentation symbol');\n }\n }\n };\n return BitModel;\n }();\n var Transform = function TransformClosure() {\n function Transform() {}\n Transform.prototype.calculate = function transformCalculate(subbands, u0, v0) {\n var ll = subbands[0];\n for (var i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n return ll;\n };\n Transform.prototype.extend = function extend(buffer, offset, size) {\n var i1 = offset - 1,\n j1 = offset + 1;\n var i2 = offset + size - 2,\n j2 = offset + size;\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1] = buffer[j1];\n buffer[j2] = buffer[i2];\n };\n Transform.prototype.iterate = function Transform_iterate(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 for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n llItems = ll.items = null;\n var bufferPadding = 4;\n var rowBuffer = new Float32Array(width + 2 * bufferPadding);\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 var numBuffers = 16;\n var colBuffers = [];\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n var b,\n currentBuffer = 0;\n ll = bufferPadding + height;\n 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 for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n colBuffers[b][l] = items[k + b];\n }\n }\n currentBuffer = numBuffers;\n }\n currentBuffer--;\n var buffer = colBuffers[currentBuffer];\n this.extend(buffer, bufferPadding, height);\n this.filter(buffer, bufferPadding, height);\n if (currentBuffer === 0) {\n k = u - numBuffers + 1;\n for (l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n items[k + b] = colBuffers[b][l];\n }\n }\n }\n }\n }\n return {\n width: width,\n height: height,\n items: items\n };\n };\n return Transform;\n }();\n var IrreversibleTransform = function IrreversibleTransformClosure() {\n function IrreversibleTransform() {\n Transform.call(this);\n }\n IrreversibleTransform.prototype = Object.create(Transform.prototype);\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 for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n j = offset - 2;\n current = delta * x[j - 1];\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n if (n--) {\n j += 2;\n current = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n } else {\n break;\n }\n }\n j = offset - 1;\n current = gamma * x[j - 1];\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = gamma * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n j = offset;\n current = beta * x[j - 1];\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = beta * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = alpha * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n }\n };\n return IrreversibleTransform;\n }();\n var ReversibleTransform = function ReversibleTransformClosure() {\n function ReversibleTransform() {\n Transform.call(this);\n }\n ReversibleTransform.prototype = Object.create(Transform.prototype);\n ReversibleTransform.prototype.filter = function reversibleTransformFilter(x, offset, length) {\n var len = length >> 1;\n offset = offset | 0;\n var j, n;\n for (j = offset, n = len + 1; n--; j += 2) {\n x[j] -= x[j - 1] + x[j + 1] + 2 >> 2;\n }\n for (j = offset + 1, n = len; n--; j += 2) {\n x[j] += x[j - 1] + x[j + 1] >> 1;\n }\n };\n return ReversibleTransform;\n }();\n return JpxImage;\n}();\nexports.JpxImage = JpxImage;\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateSHA512 = exports.calculateSHA384 = exports.calculateSHA256 = exports.calculateMD5 = exports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.ARCFourCipher = exports.AES256Cipher = exports.AES128Cipher = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar _stream = __w_pdfjs_require__(140);\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ARCFourCipher = function ARCFourCipherClosure() {\n function ARCFourCipher(key) {\n this.a = 0;\n this.b = 0;\n var s = new Uint8Array(256);\n var i,\n j = 0,\n tmp,\n keyLength = key.length;\n for (i = 0; i < 256; ++i) {\n s[i] = i;\n }\n for (i = 0; i < 256; ++i) {\n tmp = s[i];\n j = j + tmp + key[i % keyLength] & 0xFF;\n s[i] = s[j];\n s[j] = tmp;\n }\n this.s = s;\n }\n ARCFourCipher.prototype = {\n encryptBlock: function ARCFourCipher_encryptBlock(data) {\n var i,\n n = data.length,\n tmp,\n tmp2;\n var a = this.a,\n b = this.b,\n s = this.s;\n var output = new Uint8Array(n);\n for (i = 0; i < n; ++i) {\n a = a + 1 & 0xFF;\n tmp = s[a];\n b = b + tmp & 0xFF;\n tmp2 = s[b];\n s[a] = tmp2;\n s[b] = tmp;\n output[i] = data[i] ^ s[tmp + tmp2 & 0xFF];\n }\n this.a = a;\n this.b = b;\n return output;\n }\n };\n ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock;\n return 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 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 for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = length << 3 & 0xFF;\n padded[i++] = length >> 5 & 0xFF;\n padded[i++] = length >> 13 & 0xFF;\n padded[i++] = length >> 21 & 0xFF;\n padded[i++] = length >>> 29 & 0xFF;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n var w = new Int32Array(16);\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j, i += 4) {\n w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24;\n }\n var a = h0,\n b = h1,\n c = h2,\n d = h3,\n f,\n g;\n for (j = 0; j < 64; ++j) {\n if (j < 16) {\n f = b & c | ~b & d;\n g = j;\n } else if (j < 32) {\n f = d & b | ~d & c;\n g = 5 * j + 1 & 15;\n } else if (j < 48) {\n f = b ^ c ^ d;\n g = 3 * j + 5 & 15;\n } else {\n f = c ^ (b | ~d);\n g = 7 * j & 15;\n }\n var tmp = d,\n rotateArg = a + f + k[j] + w[g] | 0,\n rotate = r[j];\n d = c;\n c = b;\n b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0;\n a = tmp;\n }\n h0 = h0 + a | 0;\n h1 = h1 + b | 0;\n h2 = h2 + c | 0;\n h3 = h3 + d | 0;\n }\n 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 return hash;\n}();\nvar Word64 = function Word64Closure() {\n function Word64(highInteger, lowInteger) {\n this.high = highInteger | 0;\n this.low = lowInteger | 0;\n }\n Word64.prototype = {\n and: function Word64_and(word) {\n this.high &= word.high;\n this.low &= word.low;\n },\n xor: function Word64_xor(word) {\n this.high ^= word.high;\n this.low ^= word.low;\n },\n or: function Word64_or(word) {\n this.high |= word.high;\n this.low |= word.low;\n },\n shiftRight: function Word64_shiftRight(places) {\n if (places >= 32) {\n this.low = this.high >>> places - 32 | 0;\n this.high = 0;\n } else {\n this.low = this.low >>> places | this.high << 32 - places;\n this.high = this.high >>> places | 0;\n }\n },\n shiftLeft: function Word64_shiftLeft(places) {\n if (places >= 32) {\n this.high = this.low << places - 32;\n this.low = 0;\n } else {\n this.high = this.high << places | this.low >>> 32 - places;\n this.low = this.low << places;\n }\n },\n rotateRight: function Word64_rotateRight(places) {\n var low, high;\n if (places & 32) {\n high = this.low;\n low = this.high;\n } else {\n low = this.low;\n high = this.high;\n }\n places &= 31;\n this.low = low >>> places | high << 32 - places;\n this.high = high >>> places | low << 32 - places;\n },\n not: function Word64_not() {\n this.high = ~this.high;\n this.low = ~this.low;\n },\n add: function Word64_add(word) {\n var lowAdd = (this.low >>> 0) + (word.low >>> 0);\n var highAdd = (this.high >>> 0) + (word.high >>> 0);\n if (lowAdd > 0xFFFFFFFF) {\n highAdd += 1;\n }\n this.low = lowAdd | 0;\n this.high = highAdd | 0;\n },\n copyTo: function Word64_copyTo(bytes, offset) {\n bytes[offset] = this.high >>> 24 & 0xFF;\n bytes[offset + 1] = this.high >> 16 & 0xFF;\n bytes[offset + 2] = this.high >> 8 & 0xFF;\n bytes[offset + 3] = this.high & 0xFF;\n bytes[offset + 4] = this.low >>> 24 & 0xFF;\n bytes[offset + 5] = this.low >> 16 & 0xFF;\n bytes[offset + 6] = this.low >> 8 & 0xFF;\n bytes[offset + 7] = this.low & 0xFF;\n },\n assign: function Word64_assign(word) {\n this.high = word.high;\n this.low = word.low;\n }\n };\n return Word64;\n}();\nvar calculateSHA256 = function calculateSHA256Closure() {\n function rotr(x, n) {\n return x >>> n | x << 32 - n;\n }\n function ch(x, y, z) {\n return x & y ^ ~x & z;\n }\n function maj(x, y, z) {\n return x & y ^ x & z ^ y & z;\n }\n function sigma(x) {\n return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n }\n function sigmaPrime(x) {\n return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n }\n function littleSigma(x) {\n return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3;\n }\n function littleSigmaPrime(x) {\n return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10;\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 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 for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = length >>> 29 & 0xFF;\n padded[i++] = length >> 21 & 0xFF;\n padded[i++] = length >> 13 & 0xFF;\n padded[i++] = length >> 5 & 0xFF;\n padded[i++] = length << 3 & 0xFF;\n var w = new Uint32Array(64);\n for (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 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 var a = h0,\n b = h1,\n c = h2,\n d = h3,\n e = h4,\n f = h5,\n g = h6,\n h = h7,\n t1,\n t2;\n for (j = 0; j < 64; ++j) {\n t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n t2 = sigma(a) + maj(a, b, c);\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n }\n h0 = h0 + a | 0;\n h1 = h1 + b | 0;\n h2 = h2 + c | 0;\n h3 = h3 + d | 0;\n h4 = h4 + e | 0;\n h5 = h5 + f | 0;\n h6 = h6 + g | 0;\n h7 = h7 + h | 0;\n }\n 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 return hash;\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 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 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 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 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 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 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 function hash(data, offset, length, mode384) {\n mode384 = !!mode384;\n var h0, h1, h2, h3, h4, h5, h6, h7;\n if (!mode384) {\n h0 = new Word64(0x6a09e667, 0xf3bcc908);\n h1 = new Word64(0xbb67ae85, 0x84caa73b);\n h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n h4 = new Word64(0x510e527f, 0xade682d1);\n h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n h7 = new Word64(0x5be0cd19, 0x137e2179);\n } else {\n 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 var paddedLength = Math.ceil((length + 17) / 128) * 128;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n n = paddedLength - 16;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = length >>> 29 & 0xFF;\n padded[i++] = length >> 21 & 0xFF;\n padded[i++] = length >> 13 & 0xFF;\n padded[i++] = length >> 5 & 0xFF;\n padded[i++] = length << 3 & 0xFF;\n var w = new Array(80);\n for (i = 0; i < 80; i++) {\n w[i] = new Word64(0, 0);\n }\n var a = new Word64(0, 0),\n b = new Word64(0, 0),\n c = new Word64(0, 0);\n var d = new Word64(0, 0),\n e = new Word64(0, 0),\n f = new Word64(0, 0);\n var g = new Word64(0, 0),\n h = new Word64(0, 0);\n var t1 = new Word64(0, 0),\n t2 = new Word64(0, 0);\n var tmp1 = new Word64(0, 0),\n tmp2 = new Word64(0, 0),\n tmp3;\n 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 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 a.assign(h0);\n b.assign(h1);\n c.assign(h2);\n d.assign(h3);\n e.assign(h4);\n f.assign(h5);\n g.assign(h6);\n h.assign(h7);\n for (j = 0; j < 80; ++j) {\n t1.assign(h);\n sigmaPrime(tmp1, e, tmp2);\n t1.add(tmp1);\n ch(tmp1, e, f, g, tmp2);\n t1.add(tmp1);\n t1.add(k[j]);\n t1.add(w[j]);\n 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 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 var result;\n if (!mode384) {\n result = new Uint8Array(64);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n h6.copyTo(result, 48);\n h7.copyTo(result, 56);\n } else {\n result = new Uint8Array(48);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n }\n return result;\n }\n return hash;\n}();\nvar calculateSHA384 = function calculateSHA384Closure() {\n function hash(data, offset, length) {\n return calculateSHA512(data, offset, length, true);\n }\n return hash;\n}();\nvar NullCipher = function NullCipherClosure() {\n function NullCipher() {}\n NullCipher.prototype = {\n decryptBlock: function NullCipher_decryptBlock(data) {\n return data;\n }\n };\n return NullCipher;\n}();\n\nvar AESBaseCipher = function () {\n function AESBaseCipher() {\n _classCallCheck(this, AESBaseCipher);\n\n if (this.constructor === AESBaseCipher) {\n (0, _util.unreachable)('Cannot initialize AESBaseCipher.');\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 for (var 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 this.buffer = new Uint8Array(16);\n this.bufferPosition = 0;\n }\n\n _createClass(AESBaseCipher, [{\n key: '_expandKey',\n value: function _expandKey(cipherKey) {\n (0, _util.unreachable)('Cannot call `_expandKey` on the base class');\n }\n }, {\n key: '_decrypt',\n value: function _decrypt(input, key) {\n var t = void 0,\n u = void 0,\n v = void 0;\n var state = new Uint8Array(16);\n state.set(input);\n for (var j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (var 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 for (var _j = 0; _j < 16; ++_j) {\n state[_j] = this._inv_s[state[_j]];\n }\n for (var _j2 = 0, _k = i * 16; _j2 < 16; ++_j2, ++_k) {\n state[_j2] ^= key[_k];\n }\n for (var _j3 = 0; _j3 < 16; _j3 += 4) {\n var s0 = this._mix[state[_j3]];\n var s1 = this._mix[state[_j3 + 1]];\n var s2 = this._mix[state[_j3 + 2]];\n var s3 = this._mix[state[_j3 + 3]];\n t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8;\n state[_j3] = t >>> 24 & 0xFF;\n state[_j3 + 1] = t >> 16 & 0xFF;\n state[_j3 + 2] = t >> 8 & 0xFF;\n state[_j3 + 3] = t & 0xFF;\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 for (var _j4 = 0; _j4 < 16; ++_j4) {\n state[_j4] = this._inv_s[state[_j4]];\n state[_j4] ^= key[_j4];\n }\n return state;\n }\n }, {\n key: '_encrypt',\n value: function _encrypt(input, key) {\n var s = this._s;\n var t = void 0,\n u = void 0,\n v = void 0;\n var state = new Uint8Array(16);\n state.set(input);\n for (var j = 0; j < 16; ++j) {\n state[j] ^= key[j];\n }\n for (var i = 1; i < this._cyclesOfRepetition; i++) {\n for (var _j5 = 0; _j5 < 16; ++_j5) {\n state[_j5] = s[state[_j5]];\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 for (var _j6 = 0; _j6 < 16; _j6 += 4) {\n var s0 = state[_j6 + 0];\n var s1 = state[_j6 + 1];\n var s2 = state[_j6 + 2];\n var s3 = state[_j6 + 3];\n t = s0 ^ s1 ^ s2 ^ s3;\n state[_j6 + 0] ^= t ^ this._mixCol[s0 ^ s1];\n state[_j6 + 1] ^= t ^ this._mixCol[s1 ^ s2];\n state[_j6 + 2] ^= t ^ this._mixCol[s2 ^ s3];\n state[_j6 + 3] ^= t ^ this._mixCol[s3 ^ s0];\n }\n for (var _j7 = 0, k = i * 16; _j7 < 16; ++_j7, ++k) {\n state[_j7] ^= key[k];\n }\n }\n for (var _j8 = 0; _j8 < 16; ++_j8) {\n state[_j8] = s[state[_j8]];\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 for (var _j9 = 0, _k2 = this._keySize; _j9 < 16; ++_j9, ++_k2) {\n state[_j9] ^= key[_k2];\n }\n return state;\n }\n }, {\n key: '_decryptBlock2',\n value: function _decryptBlock2(data, finalize) {\n var sourceLength = data.length;\n var buffer = this.buffer,\n bufferLength = this.bufferPosition;\n var result = [],\n iv = this.iv;\n for (var i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n var plain = this._decrypt(buffer, this._key);\n for (var j = 0; j < 16; ++j) {\n plain[j] ^= iv[j];\n }\n iv = buffer;\n result.push(plain);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n var outputLength = 16 * result.length;\n if (finalize) {\n var lastBlock = result[result.length - 1];\n var psLen = lastBlock[15];\n if (psLen <= 16) {\n for (var _i = 15, ii = 16 - psLen; _i >= ii; --_i) {\n if (lastBlock[_i] !== psLen) {\n psLen = 0;\n break;\n }\n }\n outputLength -= psLen;\n result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n }\n }\n var output = new Uint8Array(outputLength);\n for (var _i2 = 0, _j10 = 0, _ii = result.length; _i2 < _ii; ++_i2, _j10 += 16) {\n output.set(result[_i2], _j10);\n }\n return output;\n }\n }, {\n key: 'decryptBlock',\n value: function decryptBlock(data, finalize) {\n var iv = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n var sourceLength = data.length;\n var buffer = this.buffer,\n bufferLength = this.bufferPosition;\n if (iv) {\n this.iv = iv;\n } else {\n for (var i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {\n buffer[bufferLength] = data[i];\n }\n if (bufferLength < 16) {\n this.bufferLength = bufferLength;\n return new Uint8Array(0);\n }\n this.iv = buffer;\n data = data.subarray(16);\n }\n this.buffer = new Uint8Array(16);\n this.bufferLength = 0;\n this.decryptBlock = this._decryptBlock2;\n return this.decryptBlock(data, finalize);\n }\n }, {\n key: 'encrypt',\n value: function encrypt(data, iv) {\n var sourceLength = data.length;\n var buffer = this.buffer,\n bufferLength = this.bufferPosition;\n var result = [];\n if (!iv) {\n iv = new Uint8Array(16);\n }\n for (var i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n for (var j = 0; j < 16; ++j) {\n buffer[j] ^= iv[j];\n }\n var cipher = this._encrypt(buffer, this._key);\n iv = cipher;\n result.push(cipher);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n var outputLength = 16 * result.length;\n var output = new Uint8Array(outputLength);\n for (var _i3 = 0, _j11 = 0, ii = result.length; _i3 < ii; ++_i3, _j11 += 16) {\n output.set(result[_i3], _j11);\n }\n return output;\n }\n }]);\n\n return AESBaseCipher;\n}();\n\nvar AES128Cipher = function (_AESBaseCipher) {\n _inherits(AES128Cipher, _AESBaseCipher);\n\n function AES128Cipher(key) {\n _classCallCheck(this, AES128Cipher);\n\n var _this = _possibleConstructorReturn(this, (AES128Cipher.__proto__ || Object.getPrototypeOf(AES128Cipher)).call(this));\n\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 return _this;\n }\n\n _createClass(AES128Cipher, [{\n key: '_expandKey',\n value: function _expandKey(cipherKey) {\n var b = 176;\n var s = this._s;\n var rcon = this._rcon;\n var result = new Uint8Array(b);\n result.set(cipherKey);\n for (var j = 16, i = 1; j < b; ++i) {\n var t1 = result[j - 3];\n var t2 = result[j - 2];\n var t3 = result[j - 1];\n var 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 for (var n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 16];\n j++;\n result[j] = t2 ^= result[j - 16];\n j++;\n result[j] = t3 ^= result[j - 16];\n j++;\n result[j] = t4 ^= result[j - 16];\n j++;\n }\n }\n return result;\n }\n }]);\n\n return AES128Cipher;\n}(AESBaseCipher);\n\nvar AES256Cipher = function (_AESBaseCipher2) {\n _inherits(AES256Cipher, _AESBaseCipher2);\n\n function AES256Cipher(key) {\n _classCallCheck(this, AES256Cipher);\n\n var _this2 = _possibleConstructorReturn(this, (AES256Cipher.__proto__ || Object.getPrototypeOf(AES256Cipher)).call(this));\n\n _this2._cyclesOfRepetition = 14;\n _this2._keySize = 224;\n _this2._key = _this2._expandKey(key);\n return _this2;\n }\n\n _createClass(AES256Cipher, [{\n key: '_expandKey',\n value: function _expandKey(cipherKey) {\n var b = 240;\n var s = this._s;\n var result = new Uint8Array(b);\n result.set(cipherKey);\n var r = 1;\n var t1 = void 0,\n t2 = void 0,\n t3 = void 0,\n t4 = void 0;\n for (var 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 if ((r <<= 1) >= 256) {\n r = (r ^ 0x1b) & 0xFF;\n }\n }\n for (var n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 32];\n j++;\n result[j] = t2 ^= result[j - 32];\n j++;\n result[j] = t3 ^= result[j - 32];\n j++;\n result[j] = t4 ^= result[j - 32];\n j++;\n }\n }\n return result;\n }\n }]);\n\n return AES256Cipher;\n}(AESBaseCipher);\n\nvar PDF17 = function PDF17Closure() {\n function compareByteArrays(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n function PDF17() {}\n PDF17.prototype = {\n checkOwnerPassword: function PDF17_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n var result = calculateSHA256(hashData, 0, hashData.length);\n return compareByteArrays(result, ownerPassword);\n },\n checkUserPassword: function PDF17_checkUserPassword(password, userValidationSalt, userPassword) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n var result = calculateSHA256(hashData, 0, hashData.length);\n return compareByteArrays(result, userPassword);\n },\n getOwnerKey: function PDF17_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n var key = calculateSHA256(hashData, 0, hashData.length);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n },\n getUserKey: function PDF17_getUserKey(password, userKeySalt, userEncryption) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n var key = calculateSHA256(hashData, 0, hashData.length);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n };\n return PDF17;\n}();\nvar PDF20 = function PDF20Closure() {\n function concatArrays(array1, array2) {\n var t = new Uint8Array(array1.length + array2.length);\n t.set(array1, 0);\n t.set(array2, array1.length);\n return t;\n }\n 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 while (i < 64 || e[e.length - 1] > i - 32) {\n var arrayLength = password.length + k.length + userBytes.length;\n var k1 = new Uint8Array(arrayLength * 64);\n var array = concatArrays(password, k);\n array = concatArrays(array, userBytes);\n for (var j = 0, pos = 0; j < 64; j++, pos += arrayLength) {\n k1.set(array, pos);\n }\n var cipher = new AES128Cipher(k.subarray(0, 16));\n e = cipher.encrypt(k1, k.subarray(16, 32));\n var remainder = 0;\n for (var z = 0; z < 16; z++) {\n remainder *= 256 % 3;\n remainder %= 3;\n remainder += (e[z] >>> 0) % 3;\n remainder %= 3;\n }\n if (remainder === 0) {\n k = calculateSHA256(e, 0, e.length);\n } else if (remainder === 1) {\n k = calculateSHA384(e, 0, e.length);\n } else if (remainder === 2) {\n k = calculateSHA512(e, 0, e.length);\n }\n i++;\n }\n return k.subarray(0, 32);\n }\n function PDF20() {}\n function compareByteArrays(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n PDF20.prototype = {\n hash: function PDF20_hash(password, concatBytes, userBytes) {\n return calculatePDF20Hash(password, concatBytes, userBytes);\n },\n checkOwnerPassword: function PDF20_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n var result = calculatePDF20Hash(password, hashData, userBytes);\n return compareByteArrays(result, ownerPassword);\n },\n checkUserPassword: function PDF20_checkUserPassword(password, userValidationSalt, userPassword) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n var result = calculatePDF20Hash(password, hashData, []);\n return compareByteArrays(result, userPassword);\n },\n getOwnerKey: function PDF20_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n var key = calculatePDF20Hash(password, hashData, userBytes);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n },\n getUserKey: function PDF20_getUserKey(password, userKeySalt, userEncryption) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n var key = calculatePDF20Hash(password, hashData, []);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n };\n return PDF20;\n}();\nvar CipherTransform = function CipherTransformClosure() {\n function CipherTransform(stringCipherConstructor, streamCipherConstructor) {\n this.StringCipherConstructor = stringCipherConstructor;\n this.StreamCipherConstructor = streamCipherConstructor;\n }\n CipherTransform.prototype = {\n createStream: function CipherTransform_createStream(stream, length) {\n var cipher = new this.StreamCipherConstructor();\n return new _stream.DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) {\n return cipher.decryptBlock(data, finalize);\n });\n },\n decryptString: function CipherTransform_decryptString(s) {\n var cipher = new this.StringCipherConstructor();\n var data = (0, _util.stringToBytes)(s);\n data = cipher.decryptBlock(data, true);\n return (0, _util.bytesToString)(data);\n }\n };\n return CipherTransform;\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 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 var pdfAlgorithm;\n if (revision === 6) {\n pdfAlgorithm = new PDF20();\n } else {\n pdfAlgorithm = new PDF17();\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 return null;\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 if (password) {\n n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n }\n j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n for (j = 0, n = ownerPassword.length; j < n; ++j) {\n hashData[i++] = ownerPassword[j];\n }\n hashData[i++] = flags & 0xFF;\n hashData[i++] = flags >> 8 & 0xFF;\n hashData[i++] = flags >> 16 & 0xFF;\n hashData[i++] = flags >>> 24 & 0xFF;\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n if (revision >= 4 && !encryptMetadata) {\n hashData[i++] = 0xFF;\n hashData[i++] = 0xFF;\n hashData[i++] = 0xFF;\n hashData[i++] = 0xFF;\n }\n var hash = calculateMD5(hashData, 0, i);\n var keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, keyLengthInBytes);\n }\n }\n var encryptionKey = hash.subarray(0, keyLengthInBytes);\n var cipher, checkData;\n if (revision >= 3) {\n for (i = 0; i < 32; ++i) {\n hashData[i] = defaultPasswordBytes[i];\n }\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n n = encryptionKey.length;\n var derivedKey = new Uint8Array(n),\n k;\n for (j = 1; j <= 19; ++j) {\n for (k = 0; k < n; ++k) {\n derivedKey[k] = encryptionKey[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n checkData = cipher.encryptBlock(checkData);\n }\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n } else {\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(defaultPasswordBytes);\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n }\n return encryptionKey;\n }\n function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n var hashData = new Uint8Array(32),\n i = 0,\n j,\n n;\n n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n var hash = calculateMD5(hashData, 0, i);\n var keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, hash.length);\n }\n }\n var cipher, userPassword;\n if (revision >= 3) {\n userPassword = ownerPassword;\n var derivedKey = new Uint8Array(keyLengthInBytes),\n k;\n for (j = 19; j >= 0; j--) {\n for (k = 0; k < keyLengthInBytes; ++k) {\n derivedKey[k] = hash[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n userPassword = cipher.encryptBlock(userPassword);\n }\n } else {\n cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n userPassword = cipher.encryptBlock(ownerPassword);\n }\n return userPassword;\n }\n var identityName = _primitives.Name.get('Identity');\n function CipherTransformFactory(dict, fileId, password) {\n var filter = dict.get('Filter');\n if (!(0, _primitives.isName)(filter, 'Standard')) {\n throw new _util.FormatError('unknown encryption method');\n }\n this.dict = dict;\n var algorithm = dict.get('V');\n if (!Number.isInteger(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) {\n throw new _util.FormatError('unsupported encryption algorithm');\n }\n this.algorithm = algorithm;\n var keyLength = dict.get('Length');\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 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 if (keyLength < 40) {\n keyLength <<= 3;\n }\n }\n }\n }\n if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n throw new _util.FormatError('invalid key length');\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 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 passwordBytes = (0, _util.stringToBytes)(password);\n }\n var encryptionKey;\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 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 if (!encryptionKey) {\n throw new _util.PasswordException('Incorrect Password', _util.PasswordResponses.INCORRECT_PASSWORD);\n }\n this.encryptionKey = encryptionKey;\n if (algorithm >= 4) {\n var cf = dict.get('CF');\n if ((0, _primitives.isDict)(cf)) {\n cf.suppressEncryption = true;\n }\n this.cf = cf;\n this.stmf = dict.get('StmF') || identityName;\n this.strf = dict.get('StrF') || identityName;\n this.eff = dict.get('EFF') || this.stmf;\n }\n }\n function buildObjectKey(num, gen, encryptionKey, isAes) {\n var key = new Uint8Array(encryptionKey.length + 9),\n i,\n n;\n for (i = 0, n = encryptionKey.length; i < n; ++i) {\n key[i] = encryptionKey[i];\n }\n key[i++] = num & 0xFF;\n key[i++] = num >> 8 & 0xFF;\n key[i++] = num >> 16 & 0xFF;\n key[i++] = gen & 0xFF;\n key[i++] = gen >> 8 & 0xFF;\n if (isAes) {\n key[i++] = 0x73;\n key[i++] = 0x41;\n key[i++] = 0x6C;\n key[i++] = 0x54;\n }\n var hash = calculateMD5(key, 0, i);\n return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n }\n function buildCipherConstructor(cf, name, num, gen, key) {\n if (!(0, _primitives.isName)(name)) {\n throw new _util.FormatError('Invalid crypt filter name.');\n }\n var cryptFilter = cf.get(name.name);\n var cfm;\n if (cryptFilter !== null && cryptFilter !== undefined) {\n cfm = cryptFilter.get('CFM');\n }\n if (!cfm || cfm.name === 'None') {\n return function cipherTransformFactoryBuildCipherConstructorNone() {\n return new NullCipher();\n };\n }\n if (cfm.name === 'V2') {\n return function cipherTransformFactoryBuildCipherConstructorV2() {\n return new ARCFourCipher(buildObjectKey(num, gen, key, false));\n };\n }\n if (cfm.name === 'AESV2') {\n return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n return new AES128Cipher(buildObjectKey(num, gen, key, true));\n };\n }\n if (cfm.name === 'AESV3') {\n return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n return new AES256Cipher(key);\n };\n }\n throw new _util.FormatError('Unknown crypto method');\n }\n CipherTransformFactory.prototype = {\n createCipherTransform: function CipherTransformFactory_createCipherTransform(num, gen) {\n if (this.algorithm === 4 || this.algorithm === 5) {\n return new CipherTransform(buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey), buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey));\n }\n var key = buildObjectKey(num, gen, this.encryptionKey, false);\n var cipherConstructor = function buildCipherCipherConstructor() {\n return new ARCFourCipher(key);\n };\n return new CipherTransform(cipherConstructor, cipherConstructor);\n }\n };\n return CipherTransformFactory;\n}();\nexports.AES128Cipher = AES128Cipher;\nexports.AES256Cipher = AES256Cipher;\nexports.ARCFourCipher = ARCFourCipher;\nexports.CipherTransformFactory = CipherTransformFactory;\nexports.PDF17 = PDF17;\nexports.PDF20 = PDF20;\nexports.calculateMD5 = calculateMD5;\nexports.calculateSHA256 = calculateSHA256;\nexports.calculateSHA384 = calculateSHA384;\nexports.calculateSHA512 = calculateSHA512;\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorSpace = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n var COMPONENTS = 3;\n alpha01 = alpha01 !== 1 ? 0 : alpha01;\n var xRatio = w1 / w2;\n var yRatio = h1 / h2;\n var newIndex = 0,\n oldIndex = void 0;\n var xScaled = new Uint16Array(w2);\n var w1Scanline = w1 * COMPONENTS;\n for (var i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n for (var _i = 0; _i < h2; _i++) {\n var py = Math.floor(_i * yRatio) * w1Scanline;\n for (var 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\nvar ColorSpace = function () {\n function ColorSpace(name, numComps) {\n _classCallCheck(this, ColorSpace);\n\n if (this.constructor === ColorSpace) {\n (0, _util.unreachable)('Cannot initialize ColorSpace.');\n }\n this.name = name;\n this.numComps = numComps;\n }\n\n _createClass(ColorSpace, [{\n key: 'getRgb',\n value: function getRgb(src, srcOffset) {\n var rgb = new Uint8ClampedArray(3);\n this.getRgbItem(src, srcOffset, rgb, 0);\n return rgb;\n }\n }, {\n key: 'getRgbItem',\n value: function getRgbItem(src, srcOffset, dest, destOffset) {\n (0, _util.unreachable)('Should not call ColorSpace.getRgbItem');\n }\n }, {\n key: 'getRgbBuffer',\n value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n (0, _util.unreachable)('Should not call ColorSpace.getRgbBuffer');\n }\n }, {\n key: 'getOutputLength',\n value: function getOutputLength(inputLength, alpha01) {\n (0, _util.unreachable)('Should not call ColorSpace.getOutputLength');\n }\n }, {\n key: 'isPassthrough',\n value: function isPassthrough(bits) {\n return false;\n }\n }, {\n key: 'fillRgb',\n value: function fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {\n var count = originalWidth * originalHeight;\n var rgbBuf = null;\n var numComponentColors = 1 << bpc;\n var needsResizing = originalHeight !== height || originalWidth !== width;\n if (this.isPassthrough(bpc)) {\n rgbBuf = comps;\n } else if (this.numComps === 1 && count > numComponentColors && this.name !== 'DeviceGray' && this.name !== 'DeviceRGB') {\n var allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors);\n for (var i = 0; i < numComponentColors; i++) {\n allColors[i] = i;\n }\n var colorMap = new Uint8ClampedArray(numComponentColors * 3);\n this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0);\n if (!needsResizing) {\n var destPos = 0;\n for (var _i2 = 0; _i2 < count; ++_i2) {\n var key = comps[_i2] * 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 var rgbPos = 0;\n for (var _i3 = 0; _i3 < count; ++_i3) {\n var _key = comps[_i3] * 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 if (rgbBuf) {\n if (needsResizing) {\n resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01);\n } else {\n var _destPos = 0,\n _rgbPos = 0;\n for (var _i4 = 0, ii = width * actualHeight; _i4 < ii; _i4++) {\n dest[_destPos++] = rgbBuf[_rgbPos++];\n dest[_destPos++] = rgbBuf[_rgbPos++];\n dest[_destPos++] = rgbBuf[_rgbPos++];\n _destPos += alpha01;\n }\n }\n }\n }\n }, {\n key: 'usesZeroToOneRange',\n get: function get() {\n return (0, _util.shadow)(this, 'usesZeroToOneRange', true);\n }\n }], [{\n key: 'parse',\n value: function parse(cs, xref, res, pdfFunctionFactory) {\n var IR = this.parseToIR(cs, xref, res, pdfFunctionFactory);\n return this.fromIR(IR);\n }\n }, {\n key: 'fromIR',\n value: function fromIR(IR) {\n var name = Array.isArray(IR) ? IR[0] : IR;\n var whitePoint = void 0,\n blackPoint = void 0,\n gamma = void 0;\n switch (name) {\n case 'DeviceGrayCS':\n return this.singletons.gray;\n case 'DeviceRgbCS':\n return this.singletons.rgb;\n case 'DeviceCmykCS':\n return this.singletons.cmyk;\n case 'CalGrayCS':\n whitePoint = IR[1];\n blackPoint = IR[2];\n gamma = IR[3];\n return new CalGrayCS(whitePoint, blackPoint, gamma);\n case 'CalRGBCS':\n whitePoint = IR[1];\n blackPoint = IR[2];\n gamma = IR[3];\n var matrix = IR[4];\n return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n case 'PatternCS':\n var basePatternCS = IR[1];\n if (basePatternCS) {\n basePatternCS = this.fromIR(basePatternCS);\n }\n return new PatternCS(basePatternCS);\n case 'IndexedCS':\n var baseIndexedCS = IR[1];\n var hiVal = IR[2];\n var lookup = IR[3];\n return new IndexedCS(this.fromIR(baseIndexedCS), hiVal, lookup);\n case 'AlternateCS':\n var numComps = IR[1];\n var alt = IR[2];\n var tintFn = IR[3];\n return new AlternateCS(numComps, this.fromIR(alt), tintFn);\n case 'LabCS':\n whitePoint = IR[1];\n blackPoint = IR[2];\n var range = IR[3];\n return new LabCS(whitePoint, blackPoint, range);\n default:\n throw new _util.FormatError('Unknown colorspace name: ' + name);\n }\n }\n }, {\n key: 'parseToIR',\n value: function parseToIR(cs, xref) {\n var res = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var pdfFunctionFactory = arguments[3];\n\n cs = xref.fetchIfRef(cs);\n if ((0, _primitives.isName)(cs)) {\n switch (cs.name) {\n case 'DeviceGray':\n case 'G':\n return 'DeviceGrayCS';\n case 'DeviceRGB':\n case 'RGB':\n return 'DeviceRgbCS';\n case 'DeviceCMYK':\n case 'CMYK':\n return 'DeviceCmykCS';\n case 'Pattern':\n return ['PatternCS', null];\n default:\n if ((0, _primitives.isDict)(res)) {\n var colorSpaces = res.get('ColorSpace');\n if ((0, _primitives.isDict)(colorSpaces)) {\n var resCS = colorSpaces.get(cs.name);\n if (resCS) {\n if ((0, _primitives.isName)(resCS)) {\n return this.parseToIR(resCS, xref, res, pdfFunctionFactory);\n }\n cs = resCS;\n break;\n }\n }\n }\n throw new _util.FormatError('unrecognized colorspace ' + cs.name);\n }\n }\n if (Array.isArray(cs)) {\n var mode = xref.fetchIfRef(cs[0]).name;\n var numComps = void 0,\n params = void 0,\n alt = void 0,\n whitePoint = void 0,\n blackPoint = void 0,\n gamma = void 0;\n switch (mode) {\n case 'DeviceGray':\n case 'G':\n return 'DeviceGrayCS';\n case 'DeviceRGB':\n case 'RGB':\n return 'DeviceRgbCS';\n case 'DeviceCMYK':\n case 'CMYK':\n return 'DeviceCmykCS';\n case 'CalGray':\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray('WhitePoint');\n blackPoint = params.getArray('BlackPoint');\n gamma = params.get('Gamma');\n return ['CalGrayCS', whitePoint, blackPoint, gamma];\n case 'CalRGB':\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray('WhitePoint');\n blackPoint = params.getArray('BlackPoint');\n gamma = params.getArray('Gamma');\n var matrix = params.getArray('Matrix');\n return ['CalRGBCS', whitePoint, blackPoint, gamma, matrix];\n case 'ICCBased':\n var stream = xref.fetchIfRef(cs[1]);\n var dict = stream.dict;\n numComps = dict.get('N');\n alt = dict.get('Alternate');\n if (alt) {\n var altIR = this.parseToIR(alt, xref, res, pdfFunctionFactory);\n var altCS = this.fromIR(altIR, pdfFunctionFactory);\n if (altCS.numComps === numComps) {\n return altIR;\n }\n (0, _util.warn)('ICCBased color space: Ignoring incorrect /Alternate entry.');\n }\n if (numComps === 1) {\n return 'DeviceGrayCS';\n } else if (numComps === 3) {\n return 'DeviceRgbCS';\n } else if (numComps === 4) {\n return 'DeviceCmykCS';\n }\n break;\n case 'Pattern':\n var basePatternCS = cs[1] || null;\n if (basePatternCS) {\n basePatternCS = this.parseToIR(basePatternCS, xref, res, pdfFunctionFactory);\n }\n return ['PatternCS', basePatternCS];\n case 'Indexed':\n case 'I':\n var baseIndexedCS = this.parseToIR(cs[1], xref, res, pdfFunctionFactory);\n var hiVal = xref.fetchIfRef(cs[2]) + 1;\n var lookup = xref.fetchIfRef(cs[3]);\n if ((0, _primitives.isStream)(lookup)) {\n lookup = lookup.getBytes();\n }\n return ['IndexedCS', baseIndexedCS, hiVal, lookup];\n case 'Separation':\n case 'DeviceN':\n var name = xref.fetchIfRef(cs[1]);\n numComps = Array.isArray(name) ? name.length : 1;\n alt = this.parseToIR(cs[2], xref, res, pdfFunctionFactory);\n var tintFn = pdfFunctionFactory.create(xref.fetchIfRef(cs[3]));\n return ['AlternateCS', numComps, alt, tintFn];\n case 'Lab':\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray('WhitePoint');\n blackPoint = params.getArray('BlackPoint');\n var range = params.getArray('Range');\n return ['LabCS', whitePoint, blackPoint, range];\n default:\n throw new _util.FormatError('unimplemented color space object \"' + mode + '\"');\n }\n }\n throw new _util.FormatError('unrecognized color space object: \"' + cs + '\"');\n }\n }, {\n key: 'isDefaultDecode',\n value: function isDefaultDecode(decode, n) {\n if (!Array.isArray(decode)) {\n return true;\n }\n if (n * 2 !== decode.length) {\n (0, _util.warn)('The decode map is not the correct length');\n return true;\n }\n for (var i = 0, ii = decode.length; i < ii; i += 2) {\n if (decode[i] !== 0 || decode[i + 1] !== 1) {\n return false;\n }\n }\n return true;\n }\n }, {\n key: 'singletons',\n get: function get() {\n return (0, _util.shadow)(this, 'singletons', {\n get gray() {\n return (0, _util.shadow)(this, 'gray', new DeviceGrayCS());\n },\n get rgb() {\n return (0, _util.shadow)(this, 'rgb', new DeviceRgbCS());\n },\n get cmyk() {\n return (0, _util.shadow)(this, 'cmyk', new DeviceCmykCS());\n }\n });\n }\n }]);\n\n return ColorSpace;\n}();\n\nvar AlternateCS = function (_ColorSpace) {\n _inherits(AlternateCS, _ColorSpace);\n\n function AlternateCS(numComps, base, tintFn) {\n _classCallCheck(this, AlternateCS);\n\n var _this = _possibleConstructorReturn(this, (AlternateCS.__proto__ || Object.getPrototypeOf(AlternateCS)).call(this, 'Alternate', numComps));\n\n _this.base = base;\n _this.tintFn = tintFn;\n _this.tmpBuf = new Float32Array(base.numComps);\n return _this;\n }\n\n _createClass(AlternateCS, [{\n key: 'getRgbItem',\n value: function getRgbItem(src, srcOffset, dest, destOffset) {\n var tmpBuf = this.tmpBuf;\n this.tintFn(src, srcOffset, tmpBuf, 0);\n this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n }\n }, {\n key: 'getRgbBuffer',\n value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var tintFn = this.tintFn;\n var base = this.base;\n var scale = 1 / ((1 << bits) - 1);\n var baseNumComps = base.numComps;\n var usesZeroToOneRange = base.usesZeroToOneRange;\n var isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n var pos = isPassthrough ? destOffset : 0;\n var baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count);\n var numComps = this.numComps;\n var scaled = new Float32Array(numComps);\n var tinted = new Float32Array(baseNumComps);\n var i = void 0,\n j = void 0;\n for (i = 0; i < count; i++) {\n for (j = 0; j < numComps; j++) {\n scaled[j] = src[srcOffset++] * scale;\n }\n tintFn(scaled, 0, tinted, 0);\n if (usesZeroToOneRange) {\n for (j = 0; j < baseNumComps; j++) {\n baseBuf[pos++] = tinted[j] * 255;\n }\n } else {\n base.getRgbItem(tinted, 0, baseBuf, pos);\n pos += baseNumComps;\n }\n }\n if (!isPassthrough) {\n base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n }\n }\n }, {\n key: 'getOutputLength',\n value: function getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01);\n }\n }, {\n key: 'isDefaultDecode',\n value: function isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n }]);\n\n return AlternateCS;\n}(ColorSpace);\n\nvar PatternCS = function (_ColorSpace2) {\n _inherits(PatternCS, _ColorSpace2);\n\n function PatternCS(baseCS) {\n _classCallCheck(this, PatternCS);\n\n var _this2 = _possibleConstructorReturn(this, (PatternCS.__proto__ || Object.getPrototypeOf(PatternCS)).call(this, 'Pattern', null));\n\n _this2.base = baseCS;\n return _this2;\n }\n\n return PatternCS;\n}(ColorSpace);\n\nvar IndexedCS = function (_ColorSpace3) {\n _inherits(IndexedCS, _ColorSpace3);\n\n function IndexedCS(base, highVal, lookup) {\n _classCallCheck(this, IndexedCS);\n\n var _this3 = _possibleConstructorReturn(this, (IndexedCS.__proto__ || Object.getPrototypeOf(IndexedCS)).call(this, 'Indexed', 1));\n\n _this3.base = base;\n _this3.highVal = highVal;\n var baseNumComps = base.numComps;\n var length = baseNumComps * highVal;\n if ((0, _primitives.isStream)(lookup)) {\n _this3.lookup = new Uint8Array(length);\n var bytes = lookup.getBytes(length);\n _this3.lookup.set(bytes);\n } else if ((0, _util.isString)(lookup)) {\n _this3.lookup = new Uint8Array(length);\n for (var i = 0; i < length; ++i) {\n _this3.lookup[i] = lookup.charCodeAt(i);\n }\n } else if (lookup instanceof Uint8Array) {\n _this3.lookup = lookup;\n } else {\n throw new _util.FormatError('Unrecognized lookup table: ' + lookup);\n }\n return _this3;\n }\n\n _createClass(IndexedCS, [{\n key: 'getRgbItem',\n value: function getRgbItem(src, srcOffset, dest, destOffset) {\n var numComps = this.base.numComps;\n var start = src[srcOffset] * numComps;\n this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n }\n }, {\n key: 'getRgbBuffer',\n value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var base = this.base;\n var numComps = base.numComps;\n var outputDelta = base.getOutputLength(numComps, alpha01);\n var lookup = this.lookup;\n for (var i = 0; i < count; ++i) {\n var lookupPos = src[srcOffset++] * numComps;\n base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n destOffset += outputDelta;\n }\n }\n }, {\n key: 'getOutputLength',\n value: function getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n }\n }, {\n key: 'isDefaultDecode',\n value: function isDefaultDecode(decodeMap) {\n return true;\n }\n }]);\n\n return IndexedCS;\n}(ColorSpace);\n\nvar DeviceGrayCS = function (_ColorSpace4) {\n _inherits(DeviceGrayCS, _ColorSpace4);\n\n function DeviceGrayCS() {\n _classCallCheck(this, DeviceGrayCS);\n\n return _possibleConstructorReturn(this, (DeviceGrayCS.__proto__ || Object.getPrototypeOf(DeviceGrayCS)).call(this, 'DeviceGray', 1));\n }\n\n _createClass(DeviceGrayCS, [{\n key: 'getRgbItem',\n value: function getRgbItem(src, srcOffset, dest, destOffset) {\n var c = src[srcOffset] * 255;\n dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n }\n }, {\n key: 'getRgbBuffer',\n value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var scale = 255 / ((1 << bits) - 1);\n var j = srcOffset,\n q = destOffset;\n for (var i = 0; i < count; ++i) {\n var c = scale * src[j++];\n dest[q++] = c;\n dest[q++] = c;\n dest[q++] = c;\n q += alpha01;\n }\n }\n }, {\n key: 'getOutputLength',\n value: function getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n }, {\n key: 'isDefaultDecode',\n value: function isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n }]);\n\n return DeviceGrayCS;\n}(ColorSpace);\n\nvar DeviceRgbCS = function (_ColorSpace5) {\n _inherits(DeviceRgbCS, _ColorSpace5);\n\n function DeviceRgbCS() {\n _classCallCheck(this, DeviceRgbCS);\n\n return _possibleConstructorReturn(this, (DeviceRgbCS.__proto__ || Object.getPrototypeOf(DeviceRgbCS)).call(this, 'DeviceRGB', 3));\n }\n\n _createClass(DeviceRgbCS, [{\n key: 'getRgbItem',\n value: function 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 key: 'getRgbBuffer',\n value: function 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 var scale = 255 / ((1 << bits) - 1);\n var j = srcOffset,\n q = destOffset;\n for (var 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 key: 'getOutputLength',\n value: function getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n }\n }, {\n key: 'isPassthrough',\n value: function isPassthrough(bits) {\n return bits === 8;\n }\n }, {\n key: 'isDefaultDecode',\n value: function isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n }]);\n\n return DeviceRgbCS;\n}(ColorSpace);\n\nvar DeviceCmykCS = function DeviceCmykCSClosure() {\n function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n var c = src[srcOffset] * srcScale;\n var m = src[srcOffset + 1] * srcScale;\n var y = src[srcOffset + 2] * srcScale;\n var 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 var DeviceCmykCS = function (_ColorSpace6) {\n _inherits(DeviceCmykCS, _ColorSpace6);\n\n function DeviceCmykCS() {\n _classCallCheck(this, DeviceCmykCS);\n\n return _possibleConstructorReturn(this, (DeviceCmykCS.__proto__ || Object.getPrototypeOf(DeviceCmykCS)).call(this, 'DeviceCMYK', 4));\n }\n\n _createClass(DeviceCmykCS, [{\n key: 'getRgbItem',\n value: function getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(src, srcOffset, 1, dest, destOffset);\n }\n }, {\n key: 'getRgbBuffer',\n value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var scale = 1 / ((1 << bits) - 1);\n for (var i = 0; i < count; i++) {\n convertToRgb(src, srcOffset, scale, dest, destOffset);\n srcOffset += 4;\n destOffset += 3 + alpha01;\n }\n }\n }, {\n key: 'getOutputLength',\n value: function getOutputLength(inputLength, alpha01) {\n return inputLength / 4 * (3 + alpha01) | 0;\n }\n }, {\n key: 'isDefaultDecode',\n value: function isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n }]);\n\n return DeviceCmykCS;\n }(ColorSpace);\n\n return DeviceCmykCS;\n}();\nvar CalGrayCS = function CalGrayCSClosure() {\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n var A = src[srcOffset] * scale;\n var AG = Math.pow(A, cs.G);\n var L = cs.YW * AG;\n var val = Math.max(295.8 * Math.pow(L, 0.333333333333333333) - 40.8, 0);\n dest[destOffset] = val;\n dest[destOffset + 1] = val;\n dest[destOffset + 2] = val;\n }\n\n var CalGrayCS = function (_ColorSpace7) {\n _inherits(CalGrayCS, _ColorSpace7);\n\n function CalGrayCS(whitePoint, blackPoint, gamma) {\n _classCallCheck(this, CalGrayCS);\n\n var _this7 = _possibleConstructorReturn(this, (CalGrayCS.__proto__ || Object.getPrototypeOf(CalGrayCS)).call(this, 'CalGray', 1));\n\n if (!whitePoint) {\n throw new _util.FormatError('WhitePoint missing - required for color space CalGray');\n }\n blackPoint = blackPoint || [0, 0, 0];\n gamma = gamma || 1;\n _this7.XW = whitePoint[0];\n _this7.YW = whitePoint[1];\n _this7.ZW = whitePoint[2];\n _this7.XB = blackPoint[0];\n _this7.YB = blackPoint[1];\n _this7.ZB = blackPoint[2];\n _this7.G = gamma;\n if (_this7.XW < 0 || _this7.ZW < 0 || _this7.YW !== 1) {\n throw new _util.FormatError('Invalid WhitePoint components for ' + _this7.name + ', no fallback available');\n }\n if (_this7.XB < 0 || _this7.YB < 0 || _this7.ZB < 0) {\n (0, _util.info)('Invalid BlackPoint for ' + _this7.name + ', falling back to default.');\n _this7.XB = _this7.YB = _this7.ZB = 0;\n }\n if (_this7.XB !== 0 || _this7.YB !== 0 || _this7.ZB !== 0) {\n (0, _util.warn)(_this7.name + ', BlackPoint: XB: ' + _this7.XB + ', YB: ' + _this7.YB + ', ' + ('ZB: ' + _this7.ZB + ', only default values are supported.'));\n }\n if (_this7.G < 1) {\n (0, _util.info)('Invalid Gamma: ' + _this7.G + ' for ' + _this7.name + ', ' + 'falling back to default.');\n _this7.G = 1;\n }\n return _this7;\n }\n\n _createClass(CalGrayCS, [{\n key: 'getRgbItem',\n value: function getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n }, {\n key: 'getRgbBuffer',\n value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var scale = 1 / ((1 << bits) - 1);\n for (var i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 1;\n destOffset += 3 + alpha01;\n }\n }\n }, {\n key: 'getOutputLength',\n value: function getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n }, {\n key: 'isDefaultDecode',\n value: function isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n }]);\n\n return CalGrayCS;\n }(ColorSpace);\n\n return CalGrayCS;\n}();\nvar CalRGBCS = function CalRGBCSClosure() {\n var BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);\n var 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 var 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 var FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n var tempNormalizeMatrix = new Float32Array(3);\n var tempConvertMatrix1 = new Float32Array(3);\n var tempConvertMatrix2 = new Float32Array(3);\n var DECODE_L_CONSTANT = Math.pow((8 + 16) / 116, 3) / 8.0;\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 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 function convertToD65(sourceWhitePoint, LMS, result) {\n var D65X = 0.95047;\n var D65Y = 1;\n var 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 function sRGBTransferFunction(color) {\n if (color <= 0.0031308) {\n return adjustToRange(0, 1, 12.92 * color);\n }\n return adjustToRange(0, 1, (1 + 0.055) * Math.pow(color, 1 / 2.4) - 0.055);\n }\n function adjustToRange(min, max, value) {\n return Math.max(min, Math.min(max, value));\n }\n function decodeL(L) {\n if (L < 0) {\n return -decodeL(-L);\n }\n if (L > 8.0) {\n return Math.pow((L + 16) / 116, 3);\n }\n return L * DECODE_L_CONSTANT;\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 var zeroDecodeL = decodeL(0);\n var X_DST = zeroDecodeL;\n var X_SRC = decodeL(sourceBlackPoint[0]);\n var Y_DST = zeroDecodeL;\n var Y_SRC = decodeL(sourceBlackPoint[1]);\n var Z_DST = zeroDecodeL;\n var Z_SRC = decodeL(sourceBlackPoint[2]);\n var X_Scale = (1 - X_DST) / (1 - X_SRC);\n var X_Offset = 1 - X_Scale;\n var Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n var Y_Offset = 1 - Y_Scale;\n var Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n var 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 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 var LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n var LMS_Flat = tempNormalizeMatrix;\n convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n }\n function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n var LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n var LMS_D65 = tempNormalizeMatrix;\n convertToD65(sourceWhitePoint, LMS, LMS_D65);\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n }\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n var A = adjustToRange(0, 1, src[srcOffset] * scale);\n var B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n var C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n var AGR = Math.pow(A, cs.GR);\n var BGG = Math.pow(B, cs.GG);\n var CGB = Math.pow(C, cs.GB);\n var X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n var Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n var Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n var XYZ = tempConvertMatrix1;\n XYZ[0] = X;\n XYZ[1] = Y;\n XYZ[2] = Z;\n var XYZ_Flat = tempConvertMatrix2;\n normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n var XYZ_Black = tempConvertMatrix1;\n compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n var XYZ_D65 = tempConvertMatrix2;\n normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n var 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 var CalRGBCS = function (_ColorSpace8) {\n _inherits(CalRGBCS, _ColorSpace8);\n\n function CalRGBCS(whitePoint, blackPoint, gamma, matrix) {\n _classCallCheck(this, CalRGBCS);\n\n var _this8 = _possibleConstructorReturn(this, (CalRGBCS.__proto__ || Object.getPrototypeOf(CalRGBCS)).call(this, 'CalRGB', 3));\n\n if (!whitePoint) {\n throw new _util.FormatError('WhitePoint missing - required for color space CalRGB');\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 var XW = whitePoint[0];\n var YW = whitePoint[1];\n var ZW = whitePoint[2];\n _this8.whitePoint = whitePoint;\n var XB = blackPoint[0];\n var YB = blackPoint[1];\n var ZB = blackPoint[2];\n _this8.blackPoint = blackPoint;\n _this8.GR = gamma[0];\n _this8.GG = gamma[1];\n _this8.GB = gamma[2];\n _this8.MXA = matrix[0];\n _this8.MYA = matrix[1];\n _this8.MZA = matrix[2];\n _this8.MXB = matrix[3];\n _this8.MYB = matrix[4];\n _this8.MZB = matrix[5];\n _this8.MXC = matrix[6];\n _this8.MYC = matrix[7];\n _this8.MZC = matrix[8];\n if (XW < 0 || ZW < 0 || YW !== 1) {\n throw new _util.FormatError('Invalid WhitePoint components for ' + _this8.name + ', no fallback available');\n }\n if (XB < 0 || YB < 0 || ZB < 0) {\n (0, _util.info)('Invalid BlackPoint for ' + _this8.name + ' [' + XB + ', ' + YB + ', ' + ZB + '], ' + 'falling back to default.');\n _this8.blackPoint = new Float32Array(3);\n }\n if (_this8.GR < 0 || _this8.GG < 0 || _this8.GB < 0) {\n (0, _util.info)('Invalid Gamma [' + _this8.GR + ', ' + _this8.GG + ', ' + _this8.GB + '] for ' + (_this8.name + ', falling back to default.'));\n _this8.GR = _this8.GG = _this8.GB = 1;\n }\n return _this8;\n }\n\n _createClass(CalRGBCS, [{\n key: 'getRgbItem',\n value: function getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n }, {\n key: 'getRgbBuffer',\n value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var scale = 1 / ((1 << bits) - 1);\n for (var i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n }, {\n key: 'getOutputLength',\n value: function getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n }\n }, {\n key: 'isDefaultDecode',\n value: function isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n }]);\n\n return CalRGBCS;\n }(ColorSpace);\n\n return CalRGBCS;\n}();\nvar LabCS = function LabCSClosure() {\n function fn_g(x) {\n var result = void 0;\n if (x >= 6 / 29) {\n result = x * x * x;\n } else {\n result = 108 / 841 * (x - 4 / 29);\n }\n return result;\n }\n function decode(value, high1, low2, high2) {\n return low2 + value * (high2 - low2) / high1;\n }\n function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n var Ls = src[srcOffset];\n var as = src[srcOffset + 1];\n var bs = src[srcOffset + 2];\n if (maxVal !== false) {\n Ls = decode(Ls, maxVal, 0, 100);\n as = decode(as, maxVal, cs.amin, cs.amax);\n bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n }\n as = as > cs.amax ? cs.amax : as < cs.amin ? cs.amin : as;\n bs = bs > cs.bmax ? cs.bmax : bs < cs.bmin ? cs.bmin : bs;\n var M = (Ls + 16) / 116;\n var L = M + as / 500;\n var N = M - bs / 200;\n var X = cs.XW * fn_g(L);\n var Y = cs.YW * fn_g(M);\n var Z = cs.ZW * fn_g(N);\n var r = void 0,\n g = void 0,\n b = void 0;\n if (cs.ZW < 1) {\n r = X * 3.1339 + Y * -1.6170 + Z * -0.4906;\n g = X * -0.9785 + Y * 1.9160 + Z * 0.0333;\n b = X * 0.0720 + Y * -0.2290 + 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.2040 + Z * 1.0570;\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 var LabCS = function (_ColorSpace9) {\n _inherits(LabCS, _ColorSpace9);\n\n function LabCS(whitePoint, blackPoint, range) {\n _classCallCheck(this, LabCS);\n\n var _this9 = _possibleConstructorReturn(this, (LabCS.__proto__ || Object.getPrototypeOf(LabCS)).call(this, 'Lab', 3));\n\n if (!whitePoint) {\n throw new _util.FormatError('WhitePoint missing - required for color space Lab');\n }\n blackPoint = blackPoint || [0, 0, 0];\n range = range || [-100, 100, -100, 100];\n _this9.XW = whitePoint[0];\n _this9.YW = whitePoint[1];\n _this9.ZW = whitePoint[2];\n _this9.amin = range[0];\n _this9.amax = range[1];\n _this9.bmin = range[2];\n _this9.bmax = range[3];\n _this9.XB = blackPoint[0];\n _this9.YB = blackPoint[1];\n _this9.ZB = blackPoint[2];\n if (_this9.XW < 0 || _this9.ZW < 0 || _this9.YW !== 1) {\n throw new _util.FormatError('Invalid WhitePoint components, no fallback available');\n }\n if (_this9.XB < 0 || _this9.YB < 0 || _this9.ZB < 0) {\n (0, _util.info)('Invalid BlackPoint, falling back to default');\n _this9.XB = _this9.YB = _this9.ZB = 0;\n }\n if (_this9.amin > _this9.amax || _this9.bmin > _this9.bmax) {\n (0, _util.info)('Invalid Range, falling back to defaults');\n _this9.amin = -100;\n _this9.amax = 100;\n _this9.bmin = -100;\n _this9.bmax = 100;\n }\n return _this9;\n }\n\n _createClass(LabCS, [{\n key: 'getRgbItem',\n value: function getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, false, dest, destOffset);\n }\n }, {\n key: 'getRgbBuffer',\n value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var maxVal = (1 << bits) - 1;\n for (var i = 0; i < count; i++) {\n convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n }, {\n key: 'getOutputLength',\n value: function getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n }\n }, {\n key: 'isDefaultDecode',\n value: function isDefaultDecode(decodeMap) {\n return true;\n }\n }, {\n key: 'usesZeroToOneRange',\n get: function get() {\n return (0, _util.shadow)(this, 'usesZeroToOneRange', false);\n }\n }]);\n\n return LabCS;\n }(ColorSpace);\n\n return LabCS;\n}();\nexports.ColorSpace = ColorSpace;\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _obj = __w_pdfjs_require__(137);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar _colorspace = __w_pdfjs_require__(151);\n\nvar _operator_list = __w_pdfjs_require__(153);\n\nvar _stream = __w_pdfjs_require__(140);\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar AnnotationFactory = function () {\n function AnnotationFactory() {\n _classCallCheck(this, AnnotationFactory);\n }\n\n _createClass(AnnotationFactory, null, [{\n key: 'create',\n value: function create(xref, ref, pdfManager, idFactory) {\n return pdfManager.ensure(this, '_create', [xref, ref, pdfManager, idFactory]);\n }\n }, {\n key: '_create',\n value: function _create(xref, ref, pdfManager, idFactory) {\n var dict = xref.fetchIfRef(ref);\n if (!(0, _primitives.isDict)(dict)) {\n return;\n }\n var id = (0, _primitives.isRef)(ref) ? ref.toString() : 'annot_' + idFactory.createObjId();\n var subtype = dict.get('Subtype');\n subtype = (0, _primitives.isName)(subtype) ? subtype.name : null;\n var parameters = {\n xref: xref,\n dict: dict,\n ref: (0, _primitives.isRef)(ref) ? ref : null,\n subtype: subtype,\n id: id,\n pdfManager: pdfManager\n };\n switch (subtype) {\n case 'Link':\n return new LinkAnnotation(parameters);\n case 'Text':\n return new TextAnnotation(parameters);\n case 'Widget':\n var fieldType = (0, _util.getInheritableProperty)({\n dict: dict,\n key: 'FT'\n });\n fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n switch (fieldType) {\n case 'Tx':\n return new TextWidgetAnnotation(parameters);\n case 'Btn':\n return new ButtonWidgetAnnotation(parameters);\n case 'Ch':\n return new ChoiceWidgetAnnotation(parameters);\n }\n (0, _util.warn)('Unimplemented widget field type \"' + fieldType + '\", ' + 'falling back to base field type.');\n return new WidgetAnnotation(parameters);\n case 'Popup':\n return new PopupAnnotation(parameters);\n case 'Line':\n return new LineAnnotation(parameters);\n case 'Square':\n return new SquareAnnotation(parameters);\n case 'Circle':\n return new CircleAnnotation(parameters);\n case 'PolyLine':\n return new PolylineAnnotation(parameters);\n case 'Polygon':\n return new PolygonAnnotation(parameters);\n case 'Ink':\n return new InkAnnotation(parameters);\n case 'Highlight':\n return new HighlightAnnotation(parameters);\n case 'Underline':\n return new UnderlineAnnotation(parameters);\n case 'Squiggly':\n return new SquigglyAnnotation(parameters);\n case 'StrikeOut':\n return new StrikeOutAnnotation(parameters);\n case 'Stamp':\n return new StampAnnotation(parameters);\n case 'FileAttachment':\n return new FileAttachmentAnnotation(parameters);\n default:\n if (!subtype) {\n (0, _util.warn)('Annotation is missing the required /Subtype.');\n } else {\n (0, _util.warn)('Unimplemented annotation type \"' + subtype + '\", ' + 'falling back to base annotation.');\n }\n return new Annotation(parameters);\n }\n }\n }]);\n\n return AnnotationFactory;\n}();\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n var bounds = _util.Util.getAxialAlignedBoundingBox(bbox, matrix);\n var minX = bounds[0];\n var minY = bounds[1];\n var maxX = bounds[2];\n var maxY = bounds[3];\n if (minX === maxX || minY === maxY) {\n return [1, 0, 0, 1, rect[0], rect[1]];\n }\n var xRatio = (rect[2] - rect[0]) / (maxX - minX);\n var yRatio = (rect[3] - rect[1]) / (maxY - minY);\n return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio];\n}\n\nvar Annotation = function () {\n function Annotation(params) {\n _classCallCheck(this, Annotation);\n\n var dict = params.dict;\n this.setFlags(dict.get('F'));\n this.setRectangle(dict.getArray('Rect'));\n this.setColor(dict.getArray('C'));\n this.setBorderStyle(dict);\n this.setAppearance(dict);\n this.data = {\n annotationFlags: this.flags,\n borderStyle: this.borderStyle,\n color: this.color,\n hasAppearance: !!this.appearance,\n id: params.id,\n rect: this.rectangle,\n subtype: params.subtype\n };\n }\n\n _createClass(Annotation, [{\n key: '_hasFlag',\n value: function _hasFlag(flags, flag) {\n return !!(flags & flag);\n }\n }, {\n key: '_isViewable',\n value: function _isViewable(flags) {\n return !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN) && !this._hasFlag(flags, _util.AnnotationFlag.NOVIEW);\n }\n }, {\n key: '_isPrintable',\n value: function _isPrintable(flags) {\n return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN);\n }\n }, {\n key: 'setFlags',\n value: function setFlags(flags) {\n this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n }\n }, {\n key: 'hasFlag',\n value: function hasFlag(flag) {\n return this._hasFlag(this.flags, flag);\n }\n }, {\n key: 'setRectangle',\n value: function 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 key: 'setColor',\n value: function setColor(color) {\n var rgbColor = new Uint8ClampedArray(3);\n if (!Array.isArray(color)) {\n this.color = rgbColor;\n return;\n }\n switch (color.length) {\n case 0:\n this.color = null;\n break;\n case 1:\n _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n this.color = rgbColor;\n break;\n case 3:\n _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n this.color = rgbColor;\n break;\n case 4:\n _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n this.color = rgbColor;\n break;\n default:\n this.color = rgbColor;\n break;\n }\n }\n }, {\n key: 'setBorderStyle',\n value: function setBorderStyle(borderStyle) {\n this.borderStyle = new AnnotationBorderStyle();\n if (!(0, _primitives.isDict)(borderStyle)) {\n return;\n }\n if (borderStyle.has('BS')) {\n var dict = borderStyle.get('BS');\n var dictType = dict.get('Type');\n if (!dictType || (0, _primitives.isName)(dictType, 'Border')) {\n this.borderStyle.setWidth(dict.get('W'));\n this.borderStyle.setStyle(dict.get('S'));\n this.borderStyle.setDashArray(dict.getArray('D'));\n }\n } else if (borderStyle.has('Border')) {\n var array = borderStyle.getArray('Border');\n if (Array.isArray(array) && array.length >= 3) {\n this.borderStyle.setHorizontalCornerRadius(array[0]);\n this.borderStyle.setVerticalCornerRadius(array[1]);\n this.borderStyle.setWidth(array[2]);\n if (array.length === 4) {\n this.borderStyle.setDashArray(array[3]);\n }\n }\n } else {\n this.borderStyle.setWidth(0);\n }\n }\n }, {\n key: 'setAppearance',\n value: function setAppearance(dict) {\n this.appearance = null;\n var appearanceStates = dict.get('AP');\n if (!(0, _primitives.isDict)(appearanceStates)) {\n return;\n }\n var normalAppearanceState = appearanceStates.get('N');\n if ((0, _primitives.isStream)(normalAppearanceState)) {\n this.appearance = normalAppearanceState;\n return;\n }\n if (!(0, _primitives.isDict)(normalAppearanceState)) {\n return;\n }\n var as = dict.get('AS');\n if (!(0, _primitives.isName)(as) || !normalAppearanceState.has(as.name)) {\n return;\n }\n this.appearance = normalAppearanceState.get(as.name);\n }\n }, {\n key: '_preparePopup',\n value: function _preparePopup(dict) {\n if (!dict.has('C')) {\n this.data.color = null;\n }\n this.data.hasPopup = dict.has('Popup');\n this.data.title = (0, _util.stringToPDFString)(dict.get('T') || '');\n this.data.contents = (0, _util.stringToPDFString)(dict.get('Contents') || '');\n }\n }, {\n key: 'loadResources',\n value: function loadResources(keys) {\n return this.appearance.dict.getAsync('Resources').then(function (resources) {\n if (!resources) {\n return;\n }\n var objectLoader = new _obj.ObjectLoader(resources, keys, resources.xref);\n return objectLoader.load().then(function () {\n return resources;\n });\n });\n }\n }, {\n key: 'getOperatorList',\n value: function getOperatorList(evaluator, task, renderForms) {\n var _this = this;\n\n if (!this.appearance) {\n return Promise.resolve(new _operator_list.OperatorList());\n }\n var data = this.data;\n var appearanceDict = this.appearance.dict;\n var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']);\n var bbox = appearanceDict.getArray('BBox') || [0, 0, 1, 1];\n var matrix = appearanceDict.getArray('Matrix') || [1, 0, 0, 1, 0, 0];\n var transform = getTransformMatrix(data.rect, bbox, matrix);\n return resourcesPromise.then(function (resources) {\n var opList = new _operator_list.OperatorList();\n opList.addOp(_util.OPS.beginAnnotation, [data.rect, transform, matrix]);\n return evaluator.getOperatorList({\n stream: _this.appearance,\n task: task,\n resources: resources,\n operatorList: opList\n }).then(function () {\n opList.addOp(_util.OPS.endAnnotation, []);\n _this.appearance.reset();\n return opList;\n });\n });\n }\n }, {\n key: 'viewable',\n get: function get() {\n if (this.flags === 0) {\n return true;\n }\n return this._isViewable(this.flags);\n }\n }, {\n key: 'printable',\n get: function get() {\n if (this.flags === 0) {\n return false;\n }\n return this._isPrintable(this.flags);\n }\n }]);\n\n return Annotation;\n}();\n\nvar AnnotationBorderStyle = function () {\n function AnnotationBorderStyle() {\n _classCallCheck(this, AnnotationBorderStyle);\n\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 _createClass(AnnotationBorderStyle, [{\n key: 'setWidth',\n value: function setWidth(width) {\n if (Number.isInteger(width)) {\n this.width = width;\n }\n }\n }, {\n key: 'setStyle',\n value: function setStyle(style) {\n if (!style) {\n return;\n }\n switch (style.name) {\n case 'S':\n this.style = _util.AnnotationBorderStyleType.SOLID;\n break;\n case 'D':\n this.style = _util.AnnotationBorderStyleType.DASHED;\n break;\n case 'B':\n this.style = _util.AnnotationBorderStyleType.BEVELED;\n break;\n case 'I':\n this.style = _util.AnnotationBorderStyleType.INSET;\n break;\n case 'U':\n this.style = _util.AnnotationBorderStyleType.UNDERLINE;\n break;\n default:\n break;\n }\n }\n }, {\n key: 'setDashArray',\n value: function setDashArray(dashArray) {\n if (Array.isArray(dashArray) && dashArray.length > 0) {\n var isValid = true;\n var allZeros = true;\n for (var i = 0, len = dashArray.length; i < len; i++) {\n var element = dashArray[i];\n var validNumber = +element >= 0;\n if (!validNumber) {\n isValid = false;\n break;\n } else if (element > 0) {\n allZeros = false;\n }\n }\n if (isValid && !allZeros) {\n this.dashArray = dashArray;\n } else {\n this.width = 0;\n }\n } else if (dashArray) {\n this.width = 0;\n }\n }\n }, {\n key: 'setHorizontalCornerRadius',\n value: function setHorizontalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.horizontalCornerRadius = radius;\n }\n }\n }, {\n key: 'setVerticalCornerRadius',\n value: function setVerticalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.verticalCornerRadius = radius;\n }\n }\n }]);\n\n return AnnotationBorderStyle;\n}();\n\nvar WidgetAnnotation = function (_Annotation) {\n _inherits(WidgetAnnotation, _Annotation);\n\n function WidgetAnnotation(params) {\n _classCallCheck(this, WidgetAnnotation);\n\n var _this2 = _possibleConstructorReturn(this, (WidgetAnnotation.__proto__ || Object.getPrototypeOf(WidgetAnnotation)).call(this, params));\n\n var dict = params.dict;\n var data = _this2.data;\n data.annotationType = _util.AnnotationType.WIDGET;\n data.fieldName = _this2._constructFieldName(dict);\n data.fieldValue = (0, _util.getInheritableProperty)({\n dict: dict,\n key: 'V',\n getArray: true\n });\n data.alternativeText = (0, _util.stringToPDFString)(dict.get('TU') || '');\n data.defaultAppearance = (0, _util.getInheritableProperty)({\n dict: dict,\n key: 'DA'\n }) || '';\n var fieldType = (0, _util.getInheritableProperty)({\n dict: dict,\n key: 'FT'\n });\n data.fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n _this2.fieldResources = (0, _util.getInheritableProperty)({\n dict: dict,\n key: 'DR'\n }) || _primitives.Dict.empty;\n data.fieldFlags = (0, _util.getInheritableProperty)({\n dict: dict,\n key: 'Ff'\n });\n if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n data.fieldFlags = 0;\n }\n data.readOnly = _this2.hasFieldFlag(_util.AnnotationFieldFlag.READONLY);\n if (data.fieldType === 'Sig') {\n _this2.setFlags(_util.AnnotationFlag.HIDDEN);\n }\n return _this2;\n }\n\n _createClass(WidgetAnnotation, [{\n key: '_constructFieldName',\n value: function _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 if (!dict.has('Parent')) {\n return (0, _util.stringToPDFString)(dict.get('T'));\n }\n var fieldName = [];\n if (dict.has('T')) {\n fieldName.unshift((0, _util.stringToPDFString)(dict.get('T')));\n }\n var loopDict = dict;\n while (loopDict.has('Parent')) {\n loopDict = loopDict.get('Parent');\n if (!(0, _primitives.isDict)(loopDict)) {\n break;\n }\n if (loopDict.has('T')) {\n fieldName.unshift((0, _util.stringToPDFString)(loopDict.get('T')));\n }\n }\n return fieldName.join('.');\n }\n }, {\n key: 'hasFieldFlag',\n value: function hasFieldFlag(flag) {\n return !!(this.data.fieldFlags & flag);\n }\n }, {\n key: 'getOperatorList',\n value: function getOperatorList(evaluator, task, renderForms) {\n if (renderForms) {\n return Promise.resolve(new _operator_list.OperatorList());\n }\n return _get(WidgetAnnotation.prototype.__proto__ || Object.getPrototypeOf(WidgetAnnotation.prototype), 'getOperatorList', this).call(this, evaluator, task, renderForms);\n }\n }]);\n\n return WidgetAnnotation;\n}(Annotation);\n\nvar TextWidgetAnnotation = function (_WidgetAnnotation) {\n _inherits(TextWidgetAnnotation, _WidgetAnnotation);\n\n function TextWidgetAnnotation(params) {\n _classCallCheck(this, TextWidgetAnnotation);\n\n var _this3 = _possibleConstructorReturn(this, (TextWidgetAnnotation.__proto__ || Object.getPrototypeOf(TextWidgetAnnotation)).call(this, params));\n\n var dict = params.dict;\n _this3.data.fieldValue = (0, _util.stringToPDFString)(_this3.data.fieldValue || '');\n var alignment = (0, _util.getInheritableProperty)({\n dict: dict,\n key: 'Q'\n });\n if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n alignment = null;\n }\n _this3.data.textAlignment = alignment;\n var maximumLength = (0, _util.getInheritableProperty)({\n dict: dict,\n key: 'MaxLen'\n });\n if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n maximumLength = null;\n }\n _this3.data.maxLen = maximumLength;\n _this3.data.multiLine = _this3.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE);\n _this3.data.comb = _this3.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && _this3.data.maxLen !== null;\n return _this3;\n }\n\n _createClass(TextWidgetAnnotation, [{\n key: 'getOperatorList',\n value: function getOperatorList(evaluator, task, renderForms) {\n if (renderForms || this.appearance) {\n return _get(TextWidgetAnnotation.prototype.__proto__ || Object.getPrototypeOf(TextWidgetAnnotation.prototype), 'getOperatorList', this).call(this, evaluator, task, renderForms);\n }\n var operatorList = new _operator_list.OperatorList();\n if (!this.data.defaultAppearance) {\n return Promise.resolve(operatorList);\n }\n var stream = new _stream.Stream((0, _util.stringToBytes)(this.data.defaultAppearance));\n return evaluator.getOperatorList({\n stream: stream,\n task: task,\n resources: this.fieldResources,\n operatorList: operatorList\n }).then(function () {\n return operatorList;\n });\n }\n }]);\n\n return TextWidgetAnnotation;\n}(WidgetAnnotation);\n\nvar ButtonWidgetAnnotation = function (_WidgetAnnotation2) {\n _inherits(ButtonWidgetAnnotation, _WidgetAnnotation2);\n\n function ButtonWidgetAnnotation(params) {\n _classCallCheck(this, ButtonWidgetAnnotation);\n\n var _this4 = _possibleConstructorReturn(this, (ButtonWidgetAnnotation.__proto__ || Object.getPrototypeOf(ButtonWidgetAnnotation)).call(this, params));\n\n _this4.data.checkBox = !_this4.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n _this4.data.radioButton = _this4.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n _this4.data.pushButton = _this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n if (_this4.data.checkBox) {\n _this4._processCheckBox(params);\n } else if (_this4.data.radioButton) {\n _this4._processRadioButton(params);\n } else if (_this4.data.pushButton) {\n _this4._processPushButton(params);\n } else {\n (0, _util.warn)('Invalid field flags for button widget annotation');\n }\n return _this4;\n }\n\n _createClass(ButtonWidgetAnnotation, [{\n key: '_processCheckBox',\n value: function _processCheckBox(params) {\n if ((0, _primitives.isName)(this.data.fieldValue)) {\n this.data.fieldValue = this.data.fieldValue.name;\n }\n var customAppearance = params.dict.get('AP');\n if (!(0, _primitives.isDict)(customAppearance)) {\n return;\n }\n var exportValueOptionsDict = customAppearance.get('D');\n if (!(0, _primitives.isDict)(exportValueOptionsDict)) {\n return;\n }\n var exportValues = exportValueOptionsDict.getKeys();\n var hasCorrectOptionCount = exportValues.length === 2;\n if (!hasCorrectOptionCount) {\n return;\n }\n this.data.exportValue = exportValues[0] === 'Off' ? exportValues[1] : exportValues[0];\n }\n }, {\n key: '_processRadioButton',\n value: function _processRadioButton(params) {\n this.data.fieldValue = this.data.buttonValue = null;\n var fieldParent = params.dict.get('Parent');\n if ((0, _primitives.isDict)(fieldParent) && fieldParent.has('V')) {\n var fieldParentValue = fieldParent.get('V');\n if ((0, _primitives.isName)(fieldParentValue)) {\n this.data.fieldValue = fieldParentValue.name;\n }\n }\n var appearanceStates = params.dict.get('AP');\n if (!(0, _primitives.isDict)(appearanceStates)) {\n return;\n }\n var normalAppearanceState = appearanceStates.get('N');\n if (!(0, _primitives.isDict)(normalAppearanceState)) {\n return;\n }\n var keys = normalAppearanceState.getKeys();\n for (var i = 0, ii = keys.length; i < ii; i++) {\n if (keys[i] !== 'Off') {\n this.data.buttonValue = keys[i];\n break;\n }\n }\n }\n }, {\n key: '_processPushButton',\n value: function _processPushButton(params) {\n if (!params.dict.has('A')) {\n (0, _util.warn)('Push buttons without action dictionaries are not supported');\n return;\n }\n _obj.Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl\n });\n }\n }]);\n\n return ButtonWidgetAnnotation;\n}(WidgetAnnotation);\n\nvar ChoiceWidgetAnnotation = function (_WidgetAnnotation3) {\n _inherits(ChoiceWidgetAnnotation, _WidgetAnnotation3);\n\n function ChoiceWidgetAnnotation(params) {\n _classCallCheck(this, ChoiceWidgetAnnotation);\n\n var _this5 = _possibleConstructorReturn(this, (ChoiceWidgetAnnotation.__proto__ || Object.getPrototypeOf(ChoiceWidgetAnnotation)).call(this, params));\n\n _this5.data.options = [];\n var options = (0, _util.getInheritableProperty)({\n dict: params.dict,\n key: 'Opt'\n });\n if (Array.isArray(options)) {\n var xref = params.xref;\n for (var i = 0, ii = options.length; i < ii; i++) {\n var option = xref.fetchIfRef(options[i]);\n var isOptionArray = Array.isArray(option);\n _this5.data.options[i] = {\n exportValue: isOptionArray ? xref.fetchIfRef(option[0]) : option,\n displayValue: (0, _util.stringToPDFString)(isOptionArray ? xref.fetchIfRef(option[1]) : option)\n };\n }\n }\n if (!Array.isArray(_this5.data.fieldValue)) {\n _this5.data.fieldValue = [_this5.data.fieldValue];\n }\n _this5.data.combo = _this5.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);\n _this5.data.multiSelect = _this5.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);\n return _this5;\n }\n\n return ChoiceWidgetAnnotation;\n}(WidgetAnnotation);\n\nvar TextAnnotation = function (_Annotation2) {\n _inherits(TextAnnotation, _Annotation2);\n\n function TextAnnotation(parameters) {\n _classCallCheck(this, TextAnnotation);\n\n var DEFAULT_ICON_SIZE = 22;\n\n var _this6 = _possibleConstructorReturn(this, (TextAnnotation.__proto__ || Object.getPrototypeOf(TextAnnotation)).call(this, parameters));\n\n _this6.data.annotationType = _util.AnnotationType.TEXT;\n if (_this6.data.hasAppearance) {\n _this6.data.name = 'NoIcon';\n } else {\n _this6.data.rect[1] = _this6.data.rect[3] - DEFAULT_ICON_SIZE;\n _this6.data.rect[2] = _this6.data.rect[0] + DEFAULT_ICON_SIZE;\n _this6.data.name = parameters.dict.has('Name') ? parameters.dict.get('Name').name : 'Note';\n }\n _this6._preparePopup(parameters.dict);\n return _this6;\n }\n\n return TextAnnotation;\n}(Annotation);\n\nvar LinkAnnotation = function (_Annotation3) {\n _inherits(LinkAnnotation, _Annotation3);\n\n function LinkAnnotation(params) {\n _classCallCheck(this, LinkAnnotation);\n\n var _this7 = _possibleConstructorReturn(this, (LinkAnnotation.__proto__ || Object.getPrototypeOf(LinkAnnotation)).call(this, params));\n\n _this7.data.annotationType = _util.AnnotationType.LINK;\n _obj.Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: _this7.data,\n docBaseUrl: params.pdfManager.docBaseUrl\n });\n return _this7;\n }\n\n return LinkAnnotation;\n}(Annotation);\n\nvar PopupAnnotation = function (_Annotation4) {\n _inherits(PopupAnnotation, _Annotation4);\n\n function PopupAnnotation(parameters) {\n _classCallCheck(this, PopupAnnotation);\n\n var _this8 = _possibleConstructorReturn(this, (PopupAnnotation.__proto__ || Object.getPrototypeOf(PopupAnnotation)).call(this, parameters));\n\n _this8.data.annotationType = _util.AnnotationType.POPUP;\n var dict = parameters.dict;\n var parentItem = dict.get('Parent');\n if (!parentItem) {\n (0, _util.warn)('Popup annotation has a missing or invalid parent annotation.');\n return _possibleConstructorReturn(_this8);\n }\n var parentSubtype = parentItem.get('Subtype');\n _this8.data.parentType = (0, _primitives.isName)(parentSubtype) ? parentSubtype.name : null;\n _this8.data.parentId = dict.getRaw('Parent').toString();\n _this8.data.title = (0, _util.stringToPDFString)(parentItem.get('T') || '');\n _this8.data.contents = (0, _util.stringToPDFString)(parentItem.get('Contents') || '');\n if (!parentItem.has('C')) {\n _this8.data.color = null;\n } else {\n _this8.setColor(parentItem.getArray('C'));\n _this8.data.color = _this8.color;\n }\n if (!_this8.viewable) {\n var parentFlags = parentItem.get('F');\n if (_this8._isViewable(parentFlags)) {\n _this8.setFlags(parentFlags);\n }\n }\n return _this8;\n }\n\n return PopupAnnotation;\n}(Annotation);\n\nvar LineAnnotation = function (_Annotation5) {\n _inherits(LineAnnotation, _Annotation5);\n\n function LineAnnotation(parameters) {\n _classCallCheck(this, LineAnnotation);\n\n var _this9 = _possibleConstructorReturn(this, (LineAnnotation.__proto__ || Object.getPrototypeOf(LineAnnotation)).call(this, parameters));\n\n _this9.data.annotationType = _util.AnnotationType.LINE;\n var dict = parameters.dict;\n _this9.data.lineCoordinates = _util.Util.normalizeRect(dict.getArray('L'));\n _this9._preparePopup(dict);\n return _this9;\n }\n\n return LineAnnotation;\n}(Annotation);\n\nvar SquareAnnotation = function (_Annotation6) {\n _inherits(SquareAnnotation, _Annotation6);\n\n function SquareAnnotation(parameters) {\n _classCallCheck(this, SquareAnnotation);\n\n var _this10 = _possibleConstructorReturn(this, (SquareAnnotation.__proto__ || Object.getPrototypeOf(SquareAnnotation)).call(this, parameters));\n\n _this10.data.annotationType = _util.AnnotationType.SQUARE;\n _this10._preparePopup(parameters.dict);\n return _this10;\n }\n\n return SquareAnnotation;\n}(Annotation);\n\nvar CircleAnnotation = function (_Annotation7) {\n _inherits(CircleAnnotation, _Annotation7);\n\n function CircleAnnotation(parameters) {\n _classCallCheck(this, CircleAnnotation);\n\n var _this11 = _possibleConstructorReturn(this, (CircleAnnotation.__proto__ || Object.getPrototypeOf(CircleAnnotation)).call(this, parameters));\n\n _this11.data.annotationType = _util.AnnotationType.CIRCLE;\n _this11._preparePopup(parameters.dict);\n return _this11;\n }\n\n return CircleAnnotation;\n}(Annotation);\n\nvar PolylineAnnotation = function (_Annotation8) {\n _inherits(PolylineAnnotation, _Annotation8);\n\n function PolylineAnnotation(parameters) {\n _classCallCheck(this, PolylineAnnotation);\n\n var _this12 = _possibleConstructorReturn(this, (PolylineAnnotation.__proto__ || Object.getPrototypeOf(PolylineAnnotation)).call(this, parameters));\n\n _this12.data.annotationType = _util.AnnotationType.POLYLINE;\n var dict = parameters.dict;\n var rawVertices = dict.getArray('Vertices');\n _this12.data.vertices = [];\n for (var i = 0, ii = rawVertices.length; i < ii; i += 2) {\n _this12.data.vertices.push({\n x: rawVertices[i],\n y: rawVertices[i + 1]\n });\n }\n _this12._preparePopup(dict);\n return _this12;\n }\n\n return PolylineAnnotation;\n}(Annotation);\n\nvar PolygonAnnotation = function (_PolylineAnnotation) {\n _inherits(PolygonAnnotation, _PolylineAnnotation);\n\n function PolygonAnnotation(parameters) {\n _classCallCheck(this, PolygonAnnotation);\n\n var _this13 = _possibleConstructorReturn(this, (PolygonAnnotation.__proto__ || Object.getPrototypeOf(PolygonAnnotation)).call(this, parameters));\n\n _this13.data.annotationType = _util.AnnotationType.POLYGON;\n return _this13;\n }\n\n return PolygonAnnotation;\n}(PolylineAnnotation);\n\nvar InkAnnotation = function (_Annotation9) {\n _inherits(InkAnnotation, _Annotation9);\n\n function InkAnnotation(parameters) {\n _classCallCheck(this, InkAnnotation);\n\n var _this14 = _possibleConstructorReturn(this, (InkAnnotation.__proto__ || Object.getPrototypeOf(InkAnnotation)).call(this, parameters));\n\n _this14.data.annotationType = _util.AnnotationType.INK;\n var dict = parameters.dict;\n var xref = parameters.xref;\n var originalInkLists = dict.getArray('InkList');\n _this14.data.inkLists = [];\n for (var i = 0, ii = originalInkLists.length; i < ii; ++i) {\n _this14.data.inkLists.push([]);\n for (var j = 0, jj = originalInkLists[i].length; j < jj; j += 2) {\n _this14.data.inkLists[i].push({\n x: xref.fetchIfRef(originalInkLists[i][j]),\n y: xref.fetchIfRef(originalInkLists[i][j + 1])\n });\n }\n }\n _this14._preparePopup(dict);\n return _this14;\n }\n\n return InkAnnotation;\n}(Annotation);\n\nvar HighlightAnnotation = function (_Annotation10) {\n _inherits(HighlightAnnotation, _Annotation10);\n\n function HighlightAnnotation(parameters) {\n _classCallCheck(this, HighlightAnnotation);\n\n var _this15 = _possibleConstructorReturn(this, (HighlightAnnotation.__proto__ || Object.getPrototypeOf(HighlightAnnotation)).call(this, parameters));\n\n _this15.data.annotationType = _util.AnnotationType.HIGHLIGHT;\n _this15._preparePopup(parameters.dict);\n return _this15;\n }\n\n return HighlightAnnotation;\n}(Annotation);\n\nvar UnderlineAnnotation = function (_Annotation11) {\n _inherits(UnderlineAnnotation, _Annotation11);\n\n function UnderlineAnnotation(parameters) {\n _classCallCheck(this, UnderlineAnnotation);\n\n var _this16 = _possibleConstructorReturn(this, (UnderlineAnnotation.__proto__ || Object.getPrototypeOf(UnderlineAnnotation)).call(this, parameters));\n\n _this16.data.annotationType = _util.AnnotationType.UNDERLINE;\n _this16._preparePopup(parameters.dict);\n return _this16;\n }\n\n return UnderlineAnnotation;\n}(Annotation);\n\nvar SquigglyAnnotation = function (_Annotation12) {\n _inherits(SquigglyAnnotation, _Annotation12);\n\n function SquigglyAnnotation(parameters) {\n _classCallCheck(this, SquigglyAnnotation);\n\n var _this17 = _possibleConstructorReturn(this, (SquigglyAnnotation.__proto__ || Object.getPrototypeOf(SquigglyAnnotation)).call(this, parameters));\n\n _this17.data.annotationType = _util.AnnotationType.SQUIGGLY;\n _this17._preparePopup(parameters.dict);\n return _this17;\n }\n\n return SquigglyAnnotation;\n}(Annotation);\n\nvar StrikeOutAnnotation = function (_Annotation13) {\n _inherits(StrikeOutAnnotation, _Annotation13);\n\n function StrikeOutAnnotation(parameters) {\n _classCallCheck(this, StrikeOutAnnotation);\n\n var _this18 = _possibleConstructorReturn(this, (StrikeOutAnnotation.__proto__ || Object.getPrototypeOf(StrikeOutAnnotation)).call(this, parameters));\n\n _this18.data.annotationType = _util.AnnotationType.STRIKEOUT;\n _this18._preparePopup(parameters.dict);\n return _this18;\n }\n\n return StrikeOutAnnotation;\n}(Annotation);\n\nvar StampAnnotation = function (_Annotation14) {\n _inherits(StampAnnotation, _Annotation14);\n\n function StampAnnotation(parameters) {\n _classCallCheck(this, StampAnnotation);\n\n var _this19 = _possibleConstructorReturn(this, (StampAnnotation.__proto__ || Object.getPrototypeOf(StampAnnotation)).call(this, parameters));\n\n _this19.data.annotationType = _util.AnnotationType.STAMP;\n _this19._preparePopup(parameters.dict);\n return _this19;\n }\n\n return StampAnnotation;\n}(Annotation);\n\nvar FileAttachmentAnnotation = function (_Annotation15) {\n _inherits(FileAttachmentAnnotation, _Annotation15);\n\n function FileAttachmentAnnotation(parameters) {\n _classCallCheck(this, FileAttachmentAnnotation);\n\n var _this20 = _possibleConstructorReturn(this, (FileAttachmentAnnotation.__proto__ || Object.getPrototypeOf(FileAttachmentAnnotation)).call(this, parameters));\n\n var file = new _obj.FileSpec(parameters.dict.get('FS'), parameters.xref);\n _this20.data.annotationType = _util.AnnotationType.FILEATTACHMENT;\n _this20.data.file = file.serializable;\n _this20._preparePopup(parameters.dict);\n return _this20;\n }\n\n return FileAttachmentAnnotation;\n}(Annotation);\n\nexports.Annotation = Annotation;\nexports.AnnotationBorderStyle = AnnotationBorderStyle;\nexports.AnnotationFactory = AnnotationFactory;\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OperatorList = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar QueueOptimizer = function QueueOptimizerClosure() {\n function addState(parentState, pattern, checkFn, iterateFn, processFn) {\n var state = parentState;\n for (var i = 0, ii = pattern.length - 1; i < ii; i++) {\n var item = pattern[i];\n state = state[item] || (state[item] = []);\n }\n state[pattern[pattern.length - 1]] = {\n checkFn: checkFn,\n iterateFn: iterateFn,\n processFn: processFn\n };\n }\n function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray) {\n var iFirstPIMXO = iFirstSave + 2;\n for (var i = 0; i < count; i++) {\n var arg = argsArray[iFirstPIMXO + 4 * i];\n var imageMask = arg.length === 1 && arg[0];\n if (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 break;\n }\n return count - i;\n }\n var InitialState = [];\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], null, function iterateInlineImageGroup(context, i) {\n var fnArray = context.fnArray;\n var iFirstSave = context.iCurr - 3;\n var pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.save;\n case 1:\n return fnArray[i] === _util.OPS.transform;\n case 2:\n return fnArray[i] === _util.OPS.paintInlineImageXObject;\n case 3:\n return fnArray[i] === _util.OPS.restore;\n }\n }, function foundInlineImageGroup(context, i) {\n var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n var MAX_WIDTH = 1000;\n var IMAGE_PADDING = 1;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIIXO = curr - 1;\n var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);\n if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n return i - (i - iFirstSave) % 4;\n }\n var maxX = 0;\n var map = [],\n maxLineHeight = 0;\n var currentX = IMAGE_PADDING,\n currentY = IMAGE_PADDING;\n var q;\n for (q = 0; q < count; q++) {\n var transform = argsArray[iFirstTransform + (q << 2)];\n var img = argsArray[iFirstPIIXO + (q << 2)][0];\n if (currentX + img.width > MAX_WIDTH) {\n maxX = Math.max(maxX, currentX);\n currentY += maxLineHeight + 2 * IMAGE_PADDING;\n currentX = 0;\n maxLineHeight = 0;\n }\n map.push({\n transform: transform,\n x: currentX,\n y: currentY,\n w: img.width,\n h: img.height\n });\n currentX += img.width + 2 * IMAGE_PADDING;\n maxLineHeight = Math.max(maxLineHeight, img.height);\n }\n var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n var imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n var imgData = new Uint8ClampedArray(imgWidth * imgHeight * 4);\n var imgRowSize = imgWidth << 2;\n for (q = 0; q < count; q++) {\n var data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n var rowSize = map[q].w << 2;\n var dataOffset = 0;\n var offset = map[q].x + map[q].y * imgWidth << 2;\n imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n for (var k = 0, kk = map[q].h; k < kk; k++) {\n imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n dataOffset += rowSize;\n offset += imgRowSize;\n }\n imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n while (offset >= 0) {\n data[offset - 4] = data[offset];\n data[offset - 3] = data[offset + 1];\n data[offset - 2] = data[offset + 2];\n data[offset - 1] = data[offset + 3];\n data[offset + rowSize] = data[offset + rowSize - 4];\n data[offset + rowSize + 1] = data[offset + rowSize - 3];\n data[offset + rowSize + 2] = data[offset + rowSize - 2];\n data[offset + rowSize + 3] = data[offset + rowSize - 1];\n offset -= imgRowSize;\n }\n }\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [{\n width: imgWidth,\n height: imgHeight,\n kind: _util.ImageKind.RGBA_32BPP,\n data: imgData\n }, map]);\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageMaskXObject, _util.OPS.restore], null, function iterateImageMaskGroup(context, i) {\n var fnArray = context.fnArray;\n var iFirstSave = context.iCurr - 3;\n var pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.save;\n case 1:\n return fnArray[i] === _util.OPS.transform;\n case 2:\n return fnArray[i] === _util.OPS.paintImageMaskXObject;\n case 3:\n return fnArray[i] === _util.OPS.restore;\n }\n }, function foundImageMaskGroup(context, i) {\n var MIN_IMAGES_IN_MASKS_BLOCK = 10;\n var MAX_IMAGES_IN_MASKS_BLOCK = 100;\n var MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIMXO = curr - 1;\n var count = Math.floor((i - iFirstSave) / 4);\n count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray);\n if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n return i - (i - iFirstSave) % 4;\n }\n var q;\n var isSameImage = false;\n var iTransform, transformArgs;\n var firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) {\n isSameImage = true;\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n iTransform = iFirstTransform + 4;\n var iPIMXO = iFirstPIMXO + 4;\n for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n transformArgs = argsArray[iTransform];\n if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== 0 || transformArgs[2] !== 0 || transformArgs[3] !== firstTransformArg3) {\n if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n isSameImage = false;\n } else {\n count = q;\n }\n break;\n }\n }\n }\n if (isSameImage) {\n count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n var positions = new Float32Array(count * 2);\n iTransform = iFirstTransform;\n for (q = 0; q < count; q++, iTransform += 4) {\n transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]);\n } else {\n count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n var images = [];\n for (q = 0; q < count; q++) {\n transformArgs = argsArray[iFirstTransform + (q << 2)];\n var maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n images.push({\n data: maskParams.data,\n width: maskParams.width,\n height: maskParams.height,\n transform: transformArgs\n });\n }\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [images]);\n }\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) {\n var argsArray = context.argsArray;\n var iFirstTransform = context.iCurr - 2;\n return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0;\n }, function (context, i) {\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var iFirstSave = context.iCurr - 3;\n var pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.save;\n case 1:\n if (fnArray[i] !== _util.OPS.transform) {\n return false;\n }\n var iFirstTransform = context.iCurr - 2;\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) {\n return false;\n }\n return true;\n case 2:\n if (fnArray[i] !== _util.OPS.paintImageXObject) {\n return false;\n }\n var iFirstPIXO = context.iCurr - 1;\n var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n if (argsArray[i][0] !== firstPIXOArg0) {\n return false;\n }\n return true;\n case 3:\n return fnArray[i] === _util.OPS.restore;\n }\n }, function (context, i) {\n var MIN_IMAGES_IN_BLOCK = 3;\n var MAX_IMAGES_IN_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIXO = curr - 1;\n var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK);\n if (count < MIN_IMAGES_IN_BLOCK) {\n return i - (i - iFirstSave) % 4;\n }\n var positions = new Float32Array(count * 2);\n var iTransform = iFirstTransform;\n for (var q = 0; q < count; q++, iTransform += 4) {\n var transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n var args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, args);\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], null, function (context, i) {\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var iFirstSave = context.iCurr - 4;\n var pos = (i - iFirstSave) % 5;\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.beginText;\n case 1:\n return fnArray[i] === _util.OPS.setFont;\n case 2:\n return fnArray[i] === _util.OPS.setTextMatrix;\n case 3:\n if (fnArray[i] !== _util.OPS.showText) {\n return false;\n }\n var iFirstSetFont = context.iCurr - 3;\n var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) {\n return false;\n }\n return true;\n case 4:\n return fnArray[i] === _util.OPS.endText;\n }\n }, function (context, i) {\n var MIN_CHARS_IN_BLOCK = 3;\n var MAX_CHARS_IN_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstBeginText = curr - 4;\n var iFirstSetFont = curr - 3;\n var iFirstSetTextMatrix = curr - 2;\n var iFirstShowText = curr - 1;\n var iFirstEndText = curr;\n var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n var count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK);\n if (count < MIN_CHARS_IN_BLOCK) {\n return i - (i - iFirstBeginText) % 5;\n }\n var iFirst = iFirstBeginText;\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 var iEndText = iFirst + 4;\n for (var q = 1; q < count; q++) {\n fnArray.splice(iEndText, 3);\n argsArray.splice(iEndText, 3);\n iEndText += 2;\n }\n return iEndText + 1;\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 QueueOptimizer.prototype = {\n _optimize: function _optimize() {\n var fnArray = this.queue.fnArray;\n var i = this.lastProcessed,\n ii = fnArray.length;\n var state = this.state;\n var match = this.match;\n if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n this.lastProcessed = ii;\n return;\n }\n var context = this.context;\n while (i < ii) {\n if (match) {\n var iterate = (0, match.iterateFn)(context, i);\n if (iterate) {\n i++;\n continue;\n }\n i = (0, match.processFn)(context, i + 1);\n ii = fnArray.length;\n match = null;\n state = null;\n if (i >= ii) {\n break;\n }\n }\n state = (state || InitialState)[fnArray[i]];\n if (!state || Array.isArray(state)) {\n i++;\n continue;\n }\n context.iCurr = i;\n i++;\n if (state.checkFn && !(0, state.checkFn)(context)) {\n state = null;\n continue;\n }\n match = state;\n state = null;\n }\n this.state = state;\n this.match = match;\n this.lastProcessed = i;\n },\n push: function push(fn, args) {\n this.queue.fnArray.push(fn);\n this.queue.argsArray.push(args);\n this._optimize();\n },\n flush: function flush() {\n while (this.match) {\n var length = this.queue.fnArray.length;\n this.lastProcessed = (0, this.match.processFn)(this.context, length);\n this.match = null;\n this.state = null;\n this._optimize();\n }\n },\n reset: function reset() {\n this.state = null;\n this.match = null;\n this.lastProcessed = 0;\n }\n };\n return QueueOptimizer;\n}();\nvar NullOptimizer = function NullOptimizerClosure() {\n function NullOptimizer(queue) {\n this.queue = queue;\n }\n NullOptimizer.prototype = {\n push: function push(fn, args) {\n this.queue.fnArray.push(fn);\n this.queue.argsArray.push(args);\n },\n flush: function flush() {}\n };\n return NullOptimizer;\n}();\nvar OperatorList = function OperatorListClosure() {\n var CHUNK_SIZE = 1000;\n var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5;\n function getTransfers(queue) {\n var transfers = [];\n var fnArray = queue.fnArray,\n argsArray = queue.argsArray;\n for (var i = 0, ii = queue.length; i < ii; i++) {\n switch (fnArray[i]) {\n case _util.OPS.paintInlineImageXObject:\n case _util.OPS.paintInlineImageXObjectGroup:\n case _util.OPS.paintImageMaskXObject:\n var arg = argsArray[i][0];\n ;\n if (!arg.cached) {\n transfers.push(arg.data.buffer);\n }\n break;\n }\n }\n return transfers;\n }\n function OperatorList(intent, messageHandler, pageIndex) {\n this.messageHandler = messageHandler;\n this.fnArray = [];\n this.argsArray = [];\n if (messageHandler && this.intent !== 'oplist') {\n this.optimizer = new QueueOptimizer(this);\n } else {\n this.optimizer = new NullOptimizer(this);\n }\n this.dependencies = Object.create(null);\n this._totalLength = 0;\n this.pageIndex = pageIndex;\n this.intent = intent;\n this.weight = 0;\n }\n OperatorList.prototype = {\n get length() {\n return this.argsArray.length;\n },\n get totalLength() {\n return this._totalLength + this.length;\n },\n addOp: function addOp(fn, args) {\n this.optimizer.push(fn, args);\n this.weight++;\n if (this.messageHandler) {\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 addDependency: function addDependency(dependency) {\n if (dependency in this.dependencies) {\n return;\n }\n this.dependencies[dependency] = true;\n this.addOp(_util.OPS.dependency, [dependency]);\n },\n addDependencies: function addDependencies(dependencies) {\n for (var key in dependencies) {\n this.addDependency(key);\n }\n },\n addOpList: function addOpList(opList) {\n Object.assign(this.dependencies, opList.dependencies);\n for (var i = 0, ii = opList.length; i < ii; i++) {\n this.addOp(opList.fnArray[i], opList.argsArray[i]);\n }\n },\n getIR: function getIR() {\n return {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n length: this.length\n };\n },\n flush: function flush(lastChunk) {\n this.optimizer.flush();\n var transfers = getTransfers(this);\n var length = this.length;\n this._totalLength += length;\n this.messageHandler.send('RenderPageChunk', {\n operatorList: {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n lastChunk: lastChunk,\n length: length\n },\n pageIndex: this.pageIndex,\n intent: this.intent\n }, transfers);\n this.dependencies = Object.create(null);\n this.fnArray.length = 0;\n this.argsArray.length = 0;\n this.weight = 0;\n this.optimizer.reset();\n }\n };\n return OperatorList;\n}();\nexports.OperatorList = OperatorList;\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PartialEvaluator = undefined;\n\nvar _regenerator = __w_pdfjs_require__(131);\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cmap = __w_pdfjs_require__(155);\n\nvar _stream = __w_pdfjs_require__(140);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar _fonts = __w_pdfjs_require__(156);\n\nvar _encodings = __w_pdfjs_require__(159);\n\nvar _unicode = __w_pdfjs_require__(162);\n\nvar _standard_fonts = __w_pdfjs_require__(161);\n\nvar _pattern = __w_pdfjs_require__(165);\n\nvar _parser = __w_pdfjs_require__(139);\n\nvar _bidi = __w_pdfjs_require__(166);\n\nvar _colorspace = __w_pdfjs_require__(151);\n\nvar _glyphlist = __w_pdfjs_require__(160);\n\nvar _metrics = __w_pdfjs_require__(167);\n\nvar _function = __w_pdfjs_require__(168);\n\nvar _jpeg_stream = __w_pdfjs_require__(146);\n\nvar _murmurhash = __w_pdfjs_require__(170);\n\nvar _operator_list = __w_pdfjs_require__(153);\n\nvar _image = __w_pdfjs_require__(171);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar PartialEvaluator = function PartialEvaluatorClosure() {\n var DefaultPartialEvaluatorOptions = {\n forceDataSchema: false,\n maxImageSize: -1,\n disableFontFace: false,\n nativeImageDecoderSupport: _util.NativeImageDecoding.DECODE,\n ignoreErrors: false,\n isEvalSupported: true\n };\n function NativeImageDecoder(_ref) {\n var xref = _ref.xref,\n resources = _ref.resources,\n handler = _ref.handler,\n _ref$forceDataSchema = _ref.forceDataSchema,\n forceDataSchema = _ref$forceDataSchema === undefined ? false : _ref$forceDataSchema,\n pdfFunctionFactory = _ref.pdfFunctionFactory;\n\n this.xref = xref;\n this.resources = resources;\n this.handler = handler;\n this.forceDataSchema = forceDataSchema;\n this.pdfFunctionFactory = pdfFunctionFactory;\n }\n NativeImageDecoder.prototype = {\n canDecode: function canDecode(image) {\n return image instanceof _jpeg_stream.JpegStream && NativeImageDecoder.isDecodable(image, this.xref, this.resources, this.pdfFunctionFactory);\n },\n decode: function decode(image) {\n var dict = image.dict;\n var colorSpace = dict.get('ColorSpace', 'CS');\n colorSpace = _colorspace.ColorSpace.parse(colorSpace, this.xref, this.resources, this.pdfFunctionFactory);\n return this.handler.sendWithPromise('JpegDecode', [image.getIR(this.forceDataSchema), colorSpace.numComps]).then(function (_ref2) {\n var data = _ref2.data,\n width = _ref2.width,\n height = _ref2.height;\n\n return new _stream.Stream(data, 0, data.length, image.dict);\n });\n }\n };\n NativeImageDecoder.isSupported = function (image, xref, res, pdfFunctionFactory) {\n var dict = image.dict;\n if (dict.has('DecodeParms') || dict.has('DP')) {\n return false;\n }\n var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory);\n return (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB') && cs.isDefaultDecode(dict.getArray('Decode', 'D'));\n };\n NativeImageDecoder.isDecodable = function (image, xref, res, pdfFunctionFactory) {\n var dict = image.dict;\n if (dict.has('DecodeParms') || dict.has('DP')) {\n return false;\n }\n var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory);\n return (cs.numComps === 1 || cs.numComps === 3) && cs.isDefaultDecode(dict.getArray('Decode', 'D'));\n };\n function PartialEvaluator(_ref3) {\n var _this = this;\n\n var pdfManager = _ref3.pdfManager,\n xref = _ref3.xref,\n handler = _ref3.handler,\n pageIndex = _ref3.pageIndex,\n idFactory = _ref3.idFactory,\n fontCache = _ref3.fontCache,\n builtInCMapCache = _ref3.builtInCMapCache,\n _ref3$options = _ref3.options,\n options = _ref3$options === undefined ? null : _ref3$options,\n pdfFunctionFactory = _ref3.pdfFunctionFactory;\n\n this.pdfManager = pdfManager;\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.options = options || DefaultPartialEvaluatorOptions;\n this.pdfFunctionFactory = pdfFunctionFactory;\n this.fetchBuiltInCMap = function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee(name) {\n var data;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!_this.builtInCMapCache.has(name)) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt('return', _this.builtInCMapCache.get(name));\n\n case 2:\n _context.next = 4;\n return _this.handler.sendWithPromise('FetchBuiltInCMap', { name: name });\n\n case 4:\n data = _context.sent;\n\n if (data.compressionType !== _util.CMapCompressionType.NONE) {\n _this.builtInCMapCache.set(name, data);\n }\n return _context.abrupt('return', data);\n\n case 7:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, _this);\n }));\n\n return function (_x) {\n return _ref4.apply(this, arguments);\n };\n }();\n }\n var TIME_SLOT_DURATION_MS = 20;\n var CHECK_TIME_EVERY = 100;\n function TimeSlotManager() {\n this.reset();\n }\n TimeSlotManager.prototype = {\n check: function TimeSlotManager_check() {\n if (++this.checked < CHECK_TIME_EVERY) {\n return false;\n }\n this.checked = 0;\n return this.endTime <= Date.now();\n },\n reset: function TimeSlotManager_reset() {\n this.endTime = Date.now() + TIME_SLOT_DURATION_MS;\n this.checked = 0;\n }\n };\n function normalizeBlendMode(value) {\n if (!(0, _primitives.isName)(value)) {\n return 'source-over';\n }\n switch (value.name) {\n case 'Normal':\n case 'Compatible':\n return 'source-over';\n case 'Multiply':\n return 'multiply';\n case 'Screen':\n return 'screen';\n case 'Overlay':\n return 'overlay';\n case 'Darken':\n return 'darken';\n case 'Lighten':\n return 'lighten';\n case 'ColorDodge':\n return 'color-dodge';\n case 'ColorBurn':\n return 'color-burn';\n case 'HardLight':\n return 'hard-light';\n case 'SoftLight':\n return 'soft-light';\n case 'Difference':\n return 'difference';\n case 'Exclusion':\n return 'exclusion';\n case 'Hue':\n return 'hue';\n case 'Saturation':\n return 'saturation';\n case 'Color':\n return 'color';\n case 'Luminosity':\n return 'luminosity';\n }\n (0, _util.warn)('Unsupported blend mode: ' + value.name);\n return 'source-over';\n }\n var deferred = Promise.resolve();\n var TILING_PATTERN = 1,\n SHADING_PATTERN = 2;\n PartialEvaluator.prototype = {\n clone: function clone() {\n var newOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DefaultPartialEvaluatorOptions;\n\n var newEvaluator = Object.create(this);\n newEvaluator.options = newOptions;\n return newEvaluator;\n },\n\n hasBlendModes: function PartialEvaluator_hasBlendModes(resources) {\n if (!(0, _primitives.isDict)(resources)) {\n return false;\n }\n var processed = Object.create(null);\n if (resources.objId) {\n processed[resources.objId] = true;\n }\n var nodes = [resources],\n xref = this.xref;\n while (nodes.length) {\n var key, i, ii;\n var node = nodes.shift();\n var graphicStates = node.get('ExtGState');\n if ((0, _primitives.isDict)(graphicStates)) {\n var graphicStatesKeys = graphicStates.getKeys();\n for (i = 0, ii = graphicStatesKeys.length; i < ii; i++) {\n key = graphicStatesKeys[i];\n var graphicState = graphicStates.get(key);\n var bm = graphicState.get('BM');\n if ((0, _primitives.isName)(bm) && bm.name !== 'Normal') {\n return true;\n }\n }\n }\n var xObjects = node.get('XObject');\n if (!(0, _primitives.isDict)(xObjects)) {\n continue;\n }\n var xObjectsKeys = xObjects.getKeys();\n for (i = 0, ii = xObjectsKeys.length; i < ii; i++) {\n key = xObjectsKeys[i];\n var xObject = xObjects.getRaw(key);\n if ((0, _primitives.isRef)(xObject)) {\n if (processed[xObject.toString()]) {\n continue;\n }\n xObject = xref.fetch(xObject);\n }\n if (!(0, _primitives.isStream)(xObject)) {\n continue;\n }\n if (xObject.dict.objId) {\n if (processed[xObject.dict.objId]) {\n continue;\n }\n processed[xObject.dict.objId] = true;\n }\n var xResources = xObject.dict.get('Resources');\n if ((0, _primitives.isDict)(xResources) && (!xResources.objId || !processed[xResources.objId])) {\n nodes.push(xResources);\n if (xResources.objId) {\n processed[xResources.objId] = true;\n }\n }\n }\n }\n return false;\n },\n buildFormXObject: function PartialEvaluator_buildFormXObject(resources, xobj, smask, operatorList, task, initialState) {\n var dict = xobj.dict;\n var matrix = dict.getArray('Matrix');\n var bbox = dict.getArray('BBox');\n var group = dict.get('Group');\n if (group) {\n var groupOptions = {\n matrix: matrix,\n bbox: bbox,\n smask: smask,\n isolated: false,\n knockout: false\n };\n var groupSubtype = group.get('S');\n var colorSpace = null;\n if ((0, _primitives.isName)(groupSubtype, 'Transparency')) {\n groupOptions.isolated = group.get('I') || false;\n groupOptions.knockout = group.get('K') || false;\n if (group.has('CS')) {\n colorSpace = _colorspace.ColorSpace.parse(group.get('CS'), this.xref, resources, this.pdfFunctionFactory);\n }\n }\n if (smask && smask.backdrop) {\n colorSpace = colorSpace || _colorspace.ColorSpace.singletons.rgb;\n smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n }\n operatorList.addOp(_util.OPS.beginGroup, [groupOptions]);\n }\n operatorList.addOp(_util.OPS.paintFormXObjectBegin, [matrix, bbox]);\n return this.getOperatorList({\n stream: xobj,\n task: task,\n resources: dict.get('Resources') || resources,\n operatorList: operatorList,\n initialState: initialState\n }).then(function () {\n operatorList.addOp(_util.OPS.paintFormXObjectEnd, []);\n if (group) {\n operatorList.addOp(_util.OPS.endGroup, [groupOptions]);\n }\n });\n },\n buildPaintImageXObject: function buildPaintImageXObject(_ref5) {\n var _this2 = this;\n\n var resources = _ref5.resources,\n image = _ref5.image,\n _ref5$isInline = _ref5.isInline,\n isInline = _ref5$isInline === undefined ? false : _ref5$isInline,\n operatorList = _ref5.operatorList,\n cacheKey = _ref5.cacheKey,\n imageCache = _ref5.imageCache,\n _ref5$forceDisableNat = _ref5.forceDisableNativeImageDecoder,\n forceDisableNativeImageDecoder = _ref5$forceDisableNat === undefined ? false : _ref5$forceDisableNat;\n\n var dict = image.dict;\n var w = dict.get('Width', 'W');\n var h = dict.get('Height', 'H');\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 Promise.resolve();\n }\n var maxImageSize = this.options.maxImageSize;\n if (maxImageSize !== -1 && w * h > maxImageSize) {\n (0, _util.warn)('Image exceeded maximum allowed size and was removed.');\n return Promise.resolve();\n }\n var imageMask = dict.get('ImageMask', 'IM') || false;\n var imgData, args;\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: imgArray,\n width: width,\n height: height,\n imageIsFromDecodeStream: image instanceof _stream.DecodeStream,\n inverseDecode: !!decode && decode[0] > 0\n });\n imgData.cached = true;\n args = [imgData];\n operatorList.addOp(_util.OPS.paintImageMaskXObject, args);\n if (cacheKey) {\n imageCache[cacheKey] = {\n fn: _util.OPS.paintImageMaskXObject,\n args: args\n };\n }\n return Promise.resolve();\n }\n var softMask = dict.get('SMask', 'SM') || false;\n var mask = dict.get('Mask') || false;\n var SMALL_IMAGE_DIMENSIONS = 200;\n if (isInline && !softMask && !mask && !(image instanceof _jpeg_stream.JpegStream) && w + h < SMALL_IMAGE_DIMENSIONS) {\n var imageObj = new _image.PDFImage({\n xref: this.xref,\n res: resources,\n image: image,\n isInline: isInline,\n pdfFunctionFactory: this.pdfFunctionFactory\n });\n imgData = imageObj.createImageData(true);\n operatorList.addOp(_util.OPS.paintInlineImageXObject, [imgData]);\n return Promise.resolve();\n }\n var nativeImageDecoderSupport = forceDisableNativeImageDecoder ? _util.NativeImageDecoding.NONE : this.options.nativeImageDecoderSupport;\n var objId = 'img_' + this.idFactory.createObjId();\n if (nativeImageDecoderSupport !== _util.NativeImageDecoding.NONE && !softMask && !mask && image instanceof _jpeg_stream.JpegStream && NativeImageDecoder.isSupported(image, this.xref, resources, this.pdfFunctionFactory)) {\n return this.handler.sendWithPromise('obj', [objId, this.pageIndex, 'JpegStream', image.getIR(this.options.forceDataSchema)]).then(function () {\n operatorList.addDependency(objId);\n args = [objId, w, h];\n operatorList.addOp(_util.OPS.paintJpegXObject, args);\n if (cacheKey) {\n imageCache[cacheKey] = {\n fn: _util.OPS.paintJpegXObject,\n args: args\n };\n }\n }, function (reason) {\n (0, _util.warn)('Native JPEG decoding failed -- trying to recover: ' + (reason && reason.message));\n return _this2.buildPaintImageXObject({\n resources: resources,\n image: image,\n isInline: isInline,\n operatorList: operatorList,\n cacheKey: cacheKey,\n imageCache: imageCache,\n forceDisableNativeImageDecoder: true\n });\n });\n }\n var nativeImageDecoder = null;\n if (nativeImageDecoderSupport === _util.NativeImageDecoding.DECODE && (image instanceof _jpeg_stream.JpegStream || mask instanceof _jpeg_stream.JpegStream || softMask instanceof _jpeg_stream.JpegStream)) {\n nativeImageDecoder = new NativeImageDecoder({\n xref: this.xref,\n resources: resources,\n handler: this.handler,\n forceDataSchema: this.options.forceDataSchema,\n pdfFunctionFactory: this.pdfFunctionFactory\n });\n }\n operatorList.addDependency(objId);\n args = [objId, w, h];\n _image.PDFImage.buildImage({\n handler: this.handler,\n xref: this.xref,\n res: resources,\n image: image,\n isInline: isInline,\n nativeDecoder: nativeImageDecoder,\n pdfFunctionFactory: this.pdfFunctionFactory\n }).then(function (imageObj) {\n var imgData = imageObj.createImageData(false);\n _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', imgData], [imgData.data.buffer]);\n }).catch(function (reason) {\n (0, _util.warn)('Unable to decode image: ' + reason);\n _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', null]);\n });\n operatorList.addOp(_util.OPS.paintImageXObject, args);\n if (cacheKey) {\n imageCache[cacheKey] = {\n fn: _util.OPS.paintImageXObject,\n args: args\n };\n }\n return Promise.resolve();\n },\n\n handleSMask: function PartialEvaluator_handleSmask(smask, resources, operatorList, task, stateManager) {\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 if ((0, _function.isPDFFunction)(transferObj)) {\n var transferFn = this.pdfFunctionFactory.create(transferObj);\n var transferMap = new Uint8Array(256);\n var tmp = new Float32Array(1);\n for (var i = 0; i < 256; i++) {\n tmp[0] = i / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[i] = tmp[0] * 255 | 0;\n }\n smaskOptions.transferMap = transferMap;\n }\n return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone());\n },\n handleTilingType: function handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) {\n var _this3 = this;\n\n var tilingOpList = new _operator_list.OperatorList();\n var resourcesArray = [patternDict.get('Resources'), resources];\n var patternResources = _primitives.Dict.merge(this.xref, resourcesArray);\n return this.getOperatorList({\n stream: pattern,\n task: task,\n resources: patternResources,\n operatorList: tilingOpList\n }).then(function () {\n return (0, _pattern.getTilingPatternIR)({\n fnArray: tilingOpList.fnArray,\n argsArray: tilingOpList.argsArray\n }, patternDict, args);\n }).then(function (tilingPatternIR) {\n operatorList.addDependencies(tilingOpList.dependencies);\n operatorList.addOp(fn, tilingPatternIR);\n }, function (reason) {\n if (_this3.options.ignoreErrors) {\n _this3.handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.unknown });\n (0, _util.warn)('handleTilingType - ignoring pattern: \"' + reason + '\".');\n return;\n }\n throw reason;\n });\n },\n\n handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) {\n var _this4 = this;\n\n var fontName;\n if (fontArgs) {\n fontArgs = fontArgs.slice();\n fontName = fontArgs[0].name;\n }\n return this.loadFont(fontName, fontRef, resources).then(function (translated) {\n if (!translated.font.isType3Font) {\n return translated;\n }\n return translated.loadType3Data(_this4, resources, operatorList, task).then(function () {\n return translated;\n }).catch(function (reason) {\n _this4.handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.font });\n return new TranslatedFont('g_font_error', new _fonts.ErrorFont('Type3 font load error: ' + reason), translated.font);\n });\n }).then(function (translated) {\n state.font = translated.font;\n translated.send(_this4.handler);\n return translated.loadedName;\n });\n },\n handleText: function PartialEvaluator_handleText(chars, state) {\n var _this5 = this;\n\n var font = state.font;\n var glyphs = font.charsToGlyphs(chars);\n var isAddToPathSet = !!(state.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n if (font.data && (isAddToPathSet || this.options.disableFontFace || state.fillColorSpace.name === 'Pattern')) {\n var buildPath = function buildPath(fontChar) {\n if (!font.renderer.hasBuiltPath(fontChar)) {\n var path = font.renderer.getPathJs(fontChar);\n _this5.handler.send('commonobj', [font.loadedName + '_path_' + fontChar, 'FontPath', path]);\n }\n };\n for (var i = 0, ii = glyphs.length; i < ii; i++) {\n var glyph = glyphs[i];\n buildPath(glyph.fontChar);\n var accent = glyph.accent;\n if (accent && accent.fontChar) {\n buildPath(accent.fontChar);\n }\n }\n }\n return glyphs;\n },\n setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) {\n var _this6 = this;\n\n var gStateObj = [];\n var gStateKeys = gState.getKeys();\n var promise = Promise.resolve();\n\n var _loop = function _loop() {\n var key = gStateKeys[i];\n var value = gState.get(key);\n switch (key) {\n case 'Type':\n break;\n case 'LW':\n case 'LC':\n case 'LJ':\n case 'ML':\n case 'D':\n case 'RI':\n case 'FL':\n case 'CA':\n case 'ca':\n gStateObj.push([key, value]);\n break;\n case 'Font':\n promise = promise.then(function () {\n return _this6.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 case 'BM':\n gStateObj.push([key, normalizeBlendMode(value)]);\n break;\n case 'SMask':\n if ((0, _primitives.isName)(value, 'None')) {\n gStateObj.push([key, false]);\n break;\n }\n if ((0, _primitives.isDict)(value)) {\n promise = promise.then(function () {\n return _this6.handleSMask(value, resources, operatorList, task, stateManager);\n });\n gStateObj.push([key, true]);\n } else {\n (0, _util.warn)('Unsupported SMask type');\n }\n break;\n case 'OP':\n case 'op':\n case 'OPM':\n case 'BG':\n case 'BG2':\n case 'UCR':\n case 'UCR2':\n case 'TR':\n case 'TR2':\n case 'HT':\n case 'SM':\n case 'SA':\n case 'AIS':\n case 'TK':\n (0, _util.info)('graphic state operator ' + key);\n break;\n default:\n (0, _util.info)('Unknown graphic state operator ' + key);\n break;\n }\n };\n\n for (var i = 0, ii = gStateKeys.length; i < ii; i++) {\n _loop();\n }\n return promise.then(function () {\n if (gStateObj.length > 0) {\n operatorList.addOp(_util.OPS.setGState, [gStateObj]);\n }\n });\n },\n loadFont: function PartialEvaluator_loadFont(fontName, font, resources) {\n var _this7 = this;\n\n function errorFont() {\n return Promise.resolve(new TranslatedFont('g_font_error', new _fonts.ErrorFont('Font ' + fontName + ' is not available'), font));\n }\n var fontRef,\n xref = this.xref;\n if (font) {\n if (!(0, _primitives.isRef)(font)) {\n throw new Error('The \"font\" object should be a reference.');\n }\n fontRef = font;\n } else {\n var fontRes = resources.get('Font');\n if (fontRes) {\n fontRef = fontRes.getRaw(fontName);\n } else {\n (0, _util.warn)('fontRes not available');\n return errorFont();\n }\n }\n if (!fontRef) {\n (0, _util.warn)('fontRef not available');\n return errorFont();\n }\n if (this.fontCache.has(fontRef)) {\n return this.fontCache.get(fontRef);\n }\n font = xref.fetchIfRef(fontRef);\n if (!(0, _primitives.isDict)(font)) {\n return errorFont();\n }\n if (font.translated) {\n return font.translated;\n }\n var fontCapability = (0, _util.createPromiseCapability)();\n var preEvaluatedFont = this.preEvaluateFont(font);\n var descriptor = preEvaluatedFont.descriptor;\n var fontRefIsRef = (0, _primitives.isRef)(fontRef),\n fontID;\n if (fontRefIsRef) {\n fontID = fontRef.toString();\n }\n if ((0, _primitives.isDict)(descriptor)) {\n if (!descriptor.fontAliases) {\n descriptor.fontAliases = Object.create(null);\n }\n var fontAliases = descriptor.fontAliases;\n var hash = preEvaluatedFont.hash;\n if (fontAliases[hash]) {\n var aliasFontRef = fontAliases[hash].aliasRef;\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] = { fontID: _fonts.Font.getFontID() };\n }\n if (fontRefIsRef) {\n fontAliases[hash].aliasRef = fontRef;\n }\n fontID = fontAliases[hash].fontID;\n }\n if (fontRefIsRef) {\n this.fontCache.put(fontRef, fontCapability.promise);\n } else {\n if (!fontID) {\n fontID = this.idFactory.createObjId();\n }\n this.fontCache.put('id_' + fontID, fontCapability.promise);\n }\n (0, _util.assert)(fontID, 'The \"fontID\" must be defined.');\n font.loadedName = 'g_' + this.pdfManager.docId + '_f' + fontID;\n font.translated = fontCapability.promise;\n var translatedPromise;\n try {\n translatedPromise = this.translateFont(preEvaluatedFont);\n } catch (e) {\n translatedPromise = Promise.reject(e);\n }\n translatedPromise.then(function (translatedFont) {\n if (translatedFont.fontType !== undefined) {\n var xrefFontStats = xref.stats.fontTypes;\n xrefFontStats[translatedFont.fontType] = true;\n }\n fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font));\n }).catch(function (reason) {\n _this7.handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.font });\n try {\n var descriptor = preEvaluatedFont.descriptor;\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 fontCapability.resolve(new TranslatedFont(font.loadedName, new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason), font));\n });\n return fontCapability.promise;\n },\n buildPath: function PartialEvaluator_buildPath(operatorList, fn, args) {\n var lastIndex = operatorList.length - 1;\n if (!args) {\n args = [];\n }\n if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) {\n operatorList.addOp(_util.OPS.constructPath, [[fn], args]);\n } else {\n var opArgs = operatorList.argsArray[lastIndex];\n opArgs[0].push(fn);\n Array.prototype.push.apply(opArgs[1], args);\n }\n },\n handleColorN: function PartialEvaluator_handleColorN(operatorList, fn, args, cs, patterns, resources, task) {\n var patternName = args[args.length - 1];\n var pattern;\n if ((0, _primitives.isName)(patternName) && (pattern = patterns.get(patternName.name))) {\n var dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern;\n var typeNum = dict.get('PatternType');\n if (typeNum === TILING_PATTERN) {\n var color = cs.base ? cs.base.getRgb(args, 0) : null;\n return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task);\n } else if (typeNum === SHADING_PATTERN) {\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);\n operatorList.addOp(fn, pattern.getIR());\n return Promise.resolve();\n }\n return Promise.reject(new Error('Unknown PatternType: ' + typeNum));\n }\n operatorList.addOp(fn, args);\n return Promise.resolve();\n },\n getOperatorList: function getOperatorList(_ref6) {\n var _this8 = this;\n\n var stream = _ref6.stream,\n task = _ref6.task,\n resources = _ref6.resources,\n operatorList = _ref6.operatorList,\n _ref6$initialState = _ref6.initialState,\n initialState = _ref6$initialState === undefined ? null : _ref6$initialState;\n\n resources = resources || _primitives.Dict.empty;\n initialState = initialState || new EvalState();\n if (!operatorList) {\n throw new Error('getOperatorList: missing \"operatorList\" parameter');\n }\n var self = this;\n var xref = this.xref;\n var imageCache = Object.create(null);\n var xobjs = resources.get('XObject') || _primitives.Dict.empty;\n var patterns = resources.get('Pattern') || _primitives.Dict.empty;\n var stateManager = new StateManager(initialState);\n var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n var timeSlotManager = new TimeSlotManager();\n function closePendingRestoreOPS(argument) {\n for (var i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n operatorList.addOp(_util.OPS.restore, []);\n }\n }\n return new Promise(function promiseBody(resolve, reject) {\n var next = function next(promise) {\n promise.then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n var stop,\n operation = {},\n i,\n ii,\n cs;\n while (!(stop = timeSlotManager.check())) {\n operation.args = null;\n if (!preprocessor.read(operation)) {\n break;\n }\n var args = operation.args;\n var fn = operation.fn;\n switch (fn | 0) {\n case _util.OPS.paintXObject:\n var name = args[0].name;\n if (name && imageCache[name] !== undefined) {\n operatorList.addOp(imageCache[name].fn, imageCache[name].args);\n args = null;\n continue;\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 var xobj = xobjs.get(name);\n if (!xobj) {\n operatorList.addOp(fn, args);\n resolveXObject();\n return;\n }\n if (!(0, _primitives.isStream)(xobj)) {\n throw new _util.FormatError('XObject should be a stream');\n }\n var type = xobj.dict.get('Subtype');\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError('XObject should have a Name subtype');\n }\n if (type.name === 'Form') {\n stateManager.save();\n self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone()).then(function () {\n stateManager.restore();\n resolveXObject();\n }, rejectXObject);\n return;\n } else if (type.name === 'Image') {\n self.buildPaintImageXObject({\n resources: resources,\n image: xobj,\n operatorList: operatorList,\n cacheKey: name,\n imageCache: imageCache\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 resolveXObject();\n }).catch(function (reason) {\n if (self.options.ignoreErrors) {\n self.handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.unknown });\n (0, _util.warn)('getOperatorList - ignoring XObject: \"' + reason + '\".');\n return;\n }\n throw reason;\n }));\n return;\n case _util.OPS.setFont:\n var fontSize = args[1];\n next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state).then(function (loadedName) {\n operatorList.addDependency(loadedName);\n operatorList.addOp(_util.OPS.setFont, [loadedName, fontSize]);\n }));\n return;\n case _util.OPS.endInlineImage:\n var cacheKey = args[0].cacheKey;\n if (cacheKey) {\n var cacheEntry = imageCache[cacheKey];\n if (cacheEntry !== undefined) {\n operatorList.addOp(cacheEntry.fn, cacheEntry.args);\n args = null;\n continue;\n }\n }\n next(self.buildPaintImageXObject({\n resources: resources,\n image: args[0],\n isInline: true,\n operatorList: operatorList,\n cacheKey: cacheKey,\n imageCache: imageCache\n }));\n return;\n case _util.OPS.showText:\n args[0] = self.handleText(args[0], stateManager.state);\n break;\n case _util.OPS.showSpacedText:\n var arr = args[0];\n var combinedGlyphs = [];\n var arrLength = arr.length;\n var state = stateManager.state;\n for (i = 0; i < arrLength; ++i) {\n var arrItem = arr[i];\n if ((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 args[0] = combinedGlyphs;\n fn = _util.OPS.showText;\n break;\n case _util.OPS.nextLineShowText:\n operatorList.addOp(_util.OPS.nextLine);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = _util.OPS.showText;\n break;\n case _util.OPS.nextLineSetSpacingShowText:\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 case _util.OPS.setTextRenderingMode:\n stateManager.state.textRenderingMode = args[0];\n break;\n case _util.OPS.setFillColorSpace:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources, self.pdfFunctionFactory);\n continue;\n case _util.OPS.setStrokeColorSpace:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources, self.pdfFunctionFactory);\n continue;\n case _util.OPS.setFillColor:\n cs = stateManager.state.fillColorSpace;\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n case _util.OPS.setStrokeColor:\n cs = stateManager.state.strokeColorSpace;\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\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 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 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 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 case _util.OPS.setFillRGBColor:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.rgb;\n args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\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 case _util.OPS.setFillColorN:\n cs = stateManager.state.fillColorSpace;\n if (cs.name === 'Pattern') {\n next(self.handleColorN(operatorList, _util.OPS.setFillColorN, args, cs, patterns, resources, task));\n return;\n }\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n case _util.OPS.setStrokeColorN:\n cs = stateManager.state.strokeColorSpace;\n if (cs.name === 'Pattern') {\n next(self.handleColorN(operatorList, _util.OPS.setStrokeColorN, args, cs, patterns, resources, task));\n return;\n }\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n case _util.OPS.shadingFill:\n var shadingRes = resources.get('Shading');\n if (!shadingRes) {\n throw new _util.FormatError('No shading resource found');\n }\n var shading = shadingRes.get(args[0].name);\n if (!shading) {\n throw new _util.FormatError('No shading object found');\n }\n var shadingFill = _pattern.Pattern.parseShading(shading, null, xref, resources, self.handler, self.pdfFunctionFactory);\n var patternIR = shadingFill.getIR();\n args = [patternIR];\n fn = _util.OPS.shadingFill;\n break;\n case _util.OPS.setGState:\n var dictName = args[0];\n var extGState = resources.get('ExtGState');\n if (!(0, _primitives.isDict)(extGState) || !extGState.has(dictName.name)) {\n break;\n }\n var gState = extGState.get(dictName.name);\n next(self.setGState(resources, gState, operatorList, task, stateManager));\n return;\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 self.buildPath(operatorList, fn, args);\n continue;\n case _util.OPS.rectangle:\n self.buildPath(operatorList, fn, args);\n continue;\n case _util.OPS.markPoint:\n case _util.OPS.markPointProps:\n case _util.OPS.beginMarkedContent:\n case _util.OPS.beginMarkedContentProps:\n case _util.OPS.endMarkedContent:\n case _util.OPS.beginCompat:\n case _util.OPS.endCompat:\n continue;\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 if (i < ii) {\n (0, _util.warn)('getOperatorList - ignoring operator: ' + fn);\n continue;\n }\n }\n }\n operatorList.addOp(fn, args);\n }\n if (stop) {\n next(deferred);\n return;\n }\n closePendingRestoreOPS();\n resolve();\n }).catch(function (reason) {\n if (_this8.options.ignoreErrors) {\n _this8.handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.unknown });\n (0, _util.warn)('getOperatorList - ignoring errors during \"' + task.name + '\" ' + ('task: \"' + reason + '\".'));\n closePendingRestoreOPS();\n return;\n }\n throw reason;\n });\n },\n getTextContent: function getTextContent(_ref7) {\n var _this9 = this;\n\n var stream = _ref7.stream,\n task = _ref7.task,\n resources = _ref7.resources,\n _ref7$stateManager = _ref7.stateManager,\n stateManager = _ref7$stateManager === undefined ? null : _ref7$stateManager,\n _ref7$normalizeWhites = _ref7.normalizeWhitespace,\n normalizeWhitespace = _ref7$normalizeWhites === undefined ? false : _ref7$normalizeWhites,\n _ref7$combineTextItem = _ref7.combineTextItems,\n combineTextItems = _ref7$combineTextItem === undefined ? false : _ref7$combineTextItem,\n sink = _ref7.sink,\n _ref7$seenStyles = _ref7.seenStyles,\n seenStyles = _ref7$seenStyles === undefined ? Object.create(null) : _ref7$seenStyles;\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 var skipEmptyXObjs = Object.create(null);\n var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n var textState;\n function ensureTextContentItem() {\n if (textContentItem.initialized) {\n return textContentItem;\n }\n var font = textState.font;\n if (!(font.loadedName in seenStyles)) {\n seenStyles[font.loadedName] = true;\n textContent.styles[font.loadedName] = {\n fontFamily: font.fallbackName,\n ascent: font.ascent,\n descent: font.descent,\n vertical: font.vertical\n };\n }\n textContentItem.fontName = font.loadedName;\n var tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise];\n if (font.isType3Font && textState.fontMatrix !== _util.FONT_IDENTITY_MATRIX && textState.fontSize === 1) {\n var glyphHeight = font.bbox[3] - font.bbox[1];\n if (glyphHeight > 0) {\n glyphHeight = glyphHeight * textState.fontMatrix[3];\n tsm[3] *= glyphHeight;\n }\n }\n var trm = _util.Util.transform(textState.ctm, _util.Util.transform(textState.textMatrix, tsm));\n textContentItem.transform = trm;\n if (!font.vertical) {\n textContentItem.width = 0;\n textContentItem.height = Math.sqrt(trm[2] * trm[2] + trm[3] * trm[3]);\n textContentItem.vertical = false;\n } else {\n textContentItem.width = Math.sqrt(trm[0] * trm[0] + trm[1] * trm[1]);\n textContentItem.height = 0;\n textContentItem.vertical = true;\n }\n var a = textState.textLineMatrix[0];\n var b = textState.textLineMatrix[1];\n var scaleLineX = Math.sqrt(a * a + b * b);\n a = textState.ctm[0];\n b = textState.ctm[1];\n var scaleCtmX = Math.sqrt(a * a + b * b);\n textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n textContentItem.lastAdvanceWidth = 0;\n textContentItem.lastAdvanceHeight = 0;\n var spaceWidth = font.spaceWidth / 1000 * textState.fontSize;\n 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 textContentItem.initialized = true;\n return textContentItem;\n }\n function replaceWhitespace(str) {\n var i = 0,\n ii = str.length,\n code;\n while (i < ii && (code = str.charCodeAt(i)) >= 0x20 && code <= 0x7F) {\n i++;\n }\n return i < ii ? str.replace(WhitespaceRegexp, ' ') : str;\n }\n 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 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 function buildTextContentItem(chars) {\n var font = textState.font;\n var textChunk = ensureTextContentItem();\n var width = 0;\n var height = 0;\n var glyphs = font.charsToGlyphs(chars);\n for (var i = 0; i < glyphs.length; i++) {\n var glyph = glyphs[i];\n var glyphWidth = null;\n if (font.vertical && glyph.vmetric) {\n glyphWidth = glyph.vmetric[0];\n } else {\n glyphWidth = glyph.width;\n }\n var glyphUnicode = glyph.unicode;\n var NormalizedUnicodes = (0, _unicode.getNormalizedUnicodes)();\n if (NormalizedUnicodes[glyphUnicode] !== undefined) {\n glyphUnicode = NormalizedUnicodes[glyphUnicode];\n }\n glyphUnicode = (0, _unicode.reverseIfRtl)(glyphUnicode);\n var charSpacing = textState.charSpacing;\n if (glyph.isSpace) {\n var wordSpacing = textState.wordSpacing;\n charSpacing += wordSpacing;\n if (wordSpacing > 0) {\n addFakeSpaces(wordSpacing, textChunk.str);\n }\n }\n var tx = 0;\n var ty = 0;\n if (!font.vertical) {\n var w0 = glyphWidth * textState.fontMatrix[0];\n tx = (w0 * textState.fontSize + charSpacing) * textState.textHScale;\n width += tx;\n } else {\n var w1 = glyphWidth * textState.fontMatrix[0];\n ty = w1 * textState.fontSize + charSpacing;\n height += ty;\n }\n textState.translateTextMatrix(tx, ty);\n textChunk.str.push(glyphUnicode);\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 return textChunk;\n }\n function addFakeSpaces(width, strBuf) {\n if (width < textContentItem.fakeSpaceMin) {\n return;\n }\n if (width < textContentItem.fakeMultiSpaceMin) {\n strBuf.push(' ');\n return;\n }\n var fakeSpaces = Math.round(width / textContentItem.spaceWidth);\n while (fakeSpaces-- > 0) {\n strBuf.push(' ');\n }\n }\n function flushTextContentItem() {\n if (!textContentItem.initialized) {\n return;\n }\n textContentItem.width *= textContentItem.textAdvanceScale;\n textContentItem.height *= textContentItem.textAdvanceScale;\n textContent.items.push(runBidiTransform(textContentItem));\n textContentItem.initialized = false;\n textContentItem.str.length = 0;\n }\n function enqueueChunk() {\n var length = textContent.items.length;\n if (length > 0) {\n sink.enqueue(textContent, length);\n textContent.items = [];\n textContent.styles = Object.create(null);\n }\n }\n var timeSlotManager = new TimeSlotManager();\n return new Promise(function promiseBody(resolve, reject) {\n var next = function next(promise) {\n enqueueChunk();\n Promise.all([promise, sink.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n var stop,\n operation = {},\n args = [];\n while (!(stop = timeSlotManager.check())) {\n args.length = 0;\n operation.args = args;\n if (!preprocessor.read(operation)) {\n break;\n }\n textState = stateManager.state;\n var fn = operation.fn;\n args = operation.args;\n var advance, diff;\n switch (fn | 0) {\n case _util.OPS.setFont:\n var fontNameArg = args[0].name,\n fontSizeArg = args[1];\n if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) {\n break;\n }\n flushTextContentItem();\n textState.fontName = fontNameArg;\n textState.fontSize = fontSizeArg;\n next(handleSetFont(fontNameArg, null));\n return;\n case _util.OPS.setTextRise:\n flushTextContentItem();\n textState.textRise = args[0];\n break;\n case _util.OPS.setHScale:\n flushTextContentItem();\n textState.textHScale = args[0] / 100;\n break;\n case _util.OPS.setLeading:\n flushTextContentItem();\n textState.leading = args[0];\n break;\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 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 flushTextContentItem();\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\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 case _util.OPS.nextLine:\n flushTextContentItem();\n textState.carriageReturn();\n break;\n case _util.OPS.setTextMatrix:\n advance = textState.calcTextLineMatrixAdvance(args[0], args[1], args[2], args[3], args[4], args[5]);\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 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 case _util.OPS.setCharSpacing:\n textState.charSpacing = args[0];\n break;\n case _util.OPS.setWordSpacing:\n textState.wordSpacing = args[0];\n break;\n case _util.OPS.beginText:\n flushTextContentItem();\n textState.textMatrix = _util.IDENTITY_MATRIX.slice();\n textState.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n break;\n case _util.OPS.showSpacedText:\n var items = args[0];\n var offset;\n for (var j = 0, jj = items.length; j < jj; j++) {\n if (typeof items[j] === 'string') {\n buildTextContentItem(items[j]);\n } else if ((0, _util.isNum)(items[j])) {\n ensureTextContentItem();\n advance = items[j] * textState.fontSize / 1000;\n var breakTextRun = false;\n if (textState.font.vertical) {\n offset = advance;\n textState.translateTextMatrix(0, offset);\n breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\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 if (!breakTextRun) {\n textContentItem.width += offset;\n }\n }\n if (breakTextRun) {\n flushTextContentItem();\n } else if (advance > 0) {\n addFakeSpaces(advance, textContentItem.str);\n }\n }\n }\n break;\n case _util.OPS.showText:\n buildTextContentItem(args[0]);\n break;\n case _util.OPS.nextLineShowText:\n flushTextContentItem();\n textState.carriageReturn();\n buildTextContentItem(args[0]);\n break;\n case _util.OPS.nextLineSetSpacingShowText:\n flushTextContentItem();\n textState.wordSpacing = args[0];\n textState.charSpacing = args[1];\n textState.carriageReturn();\n buildTextContentItem(args[2]);\n break;\n case _util.OPS.paintXObject:\n flushTextContentItem();\n if (!xobjs) {\n xobjs = resources.get('XObject') || _primitives.Dict.empty;\n }\n var name = args[0].name;\n if (name && skipEmptyXObjs[name] !== undefined) {\n break;\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 var xobj = xobjs.get(name);\n if (!xobj) {\n resolveXObject();\n return;\n }\n if (!(0, _primitives.isStream)(xobj)) {\n throw new _util.FormatError('XObject should be a stream');\n }\n var type = xobj.dict.get('Subtype');\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError('XObject should have a Name subtype');\n }\n if (type.name !== 'Form') {\n skipEmptyXObjs[name] = true;\n resolveXObject();\n return;\n }\n var currentState = stateManager.state.clone();\n var xObjStateManager = new StateManager(currentState);\n var matrix = xobj.dict.getArray('Matrix');\n if (Array.isArray(matrix) && matrix.length === 6) {\n xObjStateManager.transform(matrix);\n }\n enqueueChunk();\n var sinkWrapper = {\n enqueueInvoked: false,\n enqueue: function enqueue(chunk, size) {\n this.enqueueInvoked = true;\n sink.enqueue(chunk, size);\n },\n\n get desiredSize() {\n return sink.desiredSize;\n },\n get ready() {\n return sink.ready;\n }\n };\n self.getTextContent({\n stream: xobj,\n task: task,\n resources: xobj.dict.get('Resources') || resources,\n stateManager: xObjStateManager,\n normalizeWhitespace: normalizeWhitespace,\n combineTextItems: combineTextItems,\n sink: sinkWrapper,\n seenStyles: seenStyles\n }).then(function () {\n if (!sinkWrapper.enqueueInvoked) {\n skipEmptyXObjs[name] = true;\n }\n resolveXObject();\n }, rejectXObject);\n }).catch(function (reason) {\n if (reason instanceof _util.AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n (0, _util.warn)('getTextContent - ignoring XObject: \"' + reason + '\".');\n return;\n }\n throw reason;\n }));\n return;\n case _util.OPS.setGState:\n flushTextContentItem();\n var dictName = args[0];\n var extGState = resources.get('ExtGState');\n if (!(0, _primitives.isDict)(extGState) || !(0, _primitives.isName)(dictName)) {\n break;\n }\n var gState = extGState.get(dictName.name);\n if (!(0, _primitives.isDict)(gState)) {\n break;\n }\n var gStateFont = gState.get('Font');\n if (gStateFont) {\n textState.fontName = null;\n textState.fontSize = gStateFont[1];\n next(handleSetFont(null, gStateFont[0]));\n return;\n }\n break;\n }\n if (textContent.items.length >= sink.desiredSize) {\n stop = true;\n break;\n }\n }\n if (stop) {\n next(deferred);\n return;\n }\n flushTextContentItem();\n enqueueChunk();\n resolve();\n }).catch(function (reason) {\n if (reason instanceof _util.AbortException) {\n return;\n }\n if (_this9.options.ignoreErrors) {\n (0, _util.warn)('getTextContent - ignoring errors during \"' + task.name + '\" ' + ('task: \"' + reason + '\".'));\n flushTextContentItem();\n enqueueChunk();\n return;\n }\n throw reason;\n });\n },\n\n extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) {\n var _this10 = this;\n\n var xref = this.xref;\n var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');\n var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined);\n if (properties.composite) {\n var cidSystemInfo = dict.get('CIDSystemInfo');\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 var cidToGidMap = dict.get('CIDToGIDMap');\n if ((0, _primitives.isStream)(cidToGidMap)) {\n properties.cidToGidMap = this.readCidToGidMap(cidToGidMap);\n }\n }\n var differences = [];\n var baseEncodingName = null;\n var encoding;\n if (dict.has('Encoding')) {\n encoding = dict.get('Encoding');\n if ((0, _primitives.isDict)(encoding)) {\n baseEncodingName = encoding.get('BaseEncoding');\n baseEncodingName = (0, _primitives.isName)(baseEncodingName) ? baseEncodingName.name : null;\n if (encoding.has('Differences')) {\n var diffEncoding = encoding.get('Differences');\n var index = 0;\n for (var j = 0, jj = diffEncoding.length; j < jj; j++) {\n var data = xref.fetchIfRef(diffEncoding[j]);\n if ((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 if (baseEncodingName !== 'MacRomanEncoding' && baseEncodingName !== 'MacExpertEncoding' && baseEncodingName !== 'WinAnsiEncoding') {\n baseEncodingName = null;\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 if (properties.type === 'TrueType' && !isNonsymbolicFont) {\n encoding = _encodings.WinAnsiEncoding;\n }\n if (isSymbolicFont) {\n encoding = _encodings.MacRomanEncoding;\n if (!properties.file) {\n if (/Symbol/i.test(properties.name)) {\n encoding = _encodings.SymbolSetEncoding;\n } else if (/Dingbats/i.test(properties.name)) {\n encoding = _encodings.ZapfDingbatsEncoding;\n }\n }\n }\n properties.defaultEncoding = encoding;\n }\n properties.differences = differences;\n properties.baseEncodingName = baseEncodingName;\n properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n properties.dict = dict;\n return toUnicodePromise.then(function (toUnicode) {\n properties.toUnicode = toUnicode;\n return _this10.buildToUnicode(properties);\n }).then(function (toUnicode) {\n properties.toUnicode = toUnicode;\n return properties;\n });\n },\n _buildSimpleFontToUnicode: function _buildSimpleFontToUnicode(properties) {\n (0, _util.assert)(!properties.composite, 'Must be a simple font.');\n var toUnicode = [],\n charcode = void 0,\n glyphName = void 0;\n var encoding = properties.defaultEncoding.slice();\n var baseEncodingName = properties.baseEncodingName;\n var differences = properties.differences;\n for (charcode in differences) {\n glyphName = differences[charcode];\n if (glyphName === '.notdef') {\n continue;\n }\n encoding[charcode] = glyphName;\n }\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n for (charcode in encoding) {\n glyphName = encoding[charcode];\n if (glyphName === '') {\n continue;\n } else if (glyphsUnicodeMap[glyphName] === undefined) {\n var code = 0;\n switch (glyphName[0]) {\n case 'G':\n if (glyphName.length === 3) {\n code = parseInt(glyphName.substring(1), 16);\n }\n break;\n case 'g':\n if (glyphName.length === 5) {\n code = parseInt(glyphName.substring(1), 16);\n }\n break;\n case 'C':\n case 'c':\n if (glyphName.length >= 3) {\n code = +glyphName.substring(1);\n }\n break;\n default:\n var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n code = unicode;\n }\n }\n if (code) {\n if (baseEncodingName && code === +charcode) {\n var baseEncoding = (0, _encodings.getEncoding)(baseEncodingName);\n if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n continue;\n }\n }\n toUnicode[charcode] = String.fromCharCode(code);\n }\n continue;\n }\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n }\n return new _fonts.ToUnicodeMap(toUnicode);\n },\n buildToUnicode: function buildToUnicode(properties) {\n properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0;\n if (properties.hasIncludedToUnicodeMap) {\n if (!properties.composite && properties.hasEncoding) {\n properties.fallbackToUnicode = this._buildSimpleFontToUnicode(properties);\n }\n return Promise.resolve(properties.toUnicode);\n }\n if (!properties.composite) {\n return Promise.resolve(this._buildSimpleFontToUnicode(properties));\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 var registry = properties.cidSystemInfo.registry;\n var ordering = properties.cidSystemInfo.ordering;\n var ucs2CMapName = _primitives.Name.get(registry + '-' + ordering + '-UCS2');\n return _cmap.CMapFactory.create({\n encoding: ucs2CMapName,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (ucs2CMap) {\n var cMap = properties.cMap;\n var 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 var ucs2 = ucs2CMap.lookup(cid);\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 return Promise.resolve(new _fonts.IdentityToUnicodeMap(properties.firstChar, properties.lastChar));\n },\n\n readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) {\n var cmapObj = toUnicode;\n if ((0, _primitives.isName)(cmapObj)) {\n return _cmap.CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cmap) {\n if (cmap instanceof _cmap.IdentityCMap) {\n return new _fonts.IdentityToUnicodeMap(0, 0xFFFF);\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.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cmap) {\n if (cmap instanceof _cmap.IdentityCMap) {\n return new _fonts.IdentityToUnicodeMap(0, 0xFFFF);\n }\n var map = new Array(cmap.length);\n cmap.forEach(function (charCode, token) {\n var str = [];\n for (var k = 0; k < token.length; k += 2) {\n var w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n if ((w1 & 0xF800) !== 0xD800) {\n str.push(w1);\n continue;\n }\n k += 2;\n var w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n }\n map[charCode] = String.fromCharCode.apply(String, str);\n });\n return new _fonts.ToUnicodeMap(map);\n });\n }\n return Promise.resolve(null);\n },\n readCidToGidMap: function PartialEvaluator_readCidToGidMap(cidToGidStream) {\n var glyphsData = cidToGidStream.getBytes();\n var result = [];\n for (var j = 0, jj = glyphsData.length; j < jj; j++) {\n var glyphID = glyphsData[j++] << 8 | glyphsData[j];\n if (glyphID === 0) {\n continue;\n }\n var code = j >> 1;\n result[code] = glyphID;\n }\n return result;\n },\n extractWidths: function PartialEvaluator_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 if (properties.composite) {\n defaultWidth = dict.has('DW') ? dict.get('DW') : 1000;\n widths = dict.get('W');\n if (widths) {\n for (i = 0, ii = widths.length; i < ii; i++) {\n start = xref.fetchIfRef(widths[i++]);\n code = xref.fetchIfRef(widths[i]);\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n }\n } else {\n var width = xref.fetchIfRef(widths[++i]);\n for (j = start; j <= code; j++) {\n glyphsWidths[j] = width;\n }\n }\n }\n }\n if (properties.vertical) {\n var vmetrics = dict.getArray('DW2') || [880, -1000];\n defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n vmetrics = dict.get('W2');\n if (vmetrics) {\n for (i = 0, ii = vmetrics.length; i < ii; i++) {\n start = xref.fetchIfRef(vmetrics[i++]);\n code = xref.fetchIfRef(vmetrics[i]);\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsVMetrics[start++] = [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 for (j = start; j <= code; j++) {\n glyphsVMetrics[j] = vmetric;\n }\n }\n }\n }\n }\n } else {\n var firstChar = properties.firstChar;\n widths = dict.get('Widths');\n if (widths) {\n j = firstChar;\n for (i = 0, ii = widths.length; i < ii; i++) {\n glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n }\n defaultWidth = parseFloat(descriptor.get('MissingWidth')) || 0;\n } else {\n var baseFontName = dict.get('BaseFont');\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 var isMonospace = true;\n var firstWidth = defaultWidth;\n for (var glyph in glyphsWidths) {\n var glyphWidth = glyphsWidths[glyph];\n if (!glyphWidth) {\n continue;\n }\n if (!firstWidth) {\n firstWidth = glyphWidth;\n continue;\n }\n if (firstWidth !== glyphWidth) {\n isMonospace = false;\n break;\n }\n }\n if (isMonospace) {\n properties.flags |= _fonts.FontFlags.FixedPitch;\n }\n properties.defaultWidth = defaultWidth;\n properties.widths = glyphsWidths;\n properties.defaultVMetrics = defaultVMetrics;\n properties.vmetrics = glyphsVMetrics;\n },\n isSerifFont: function PartialEvaluator_isSerifFont(baseFontName) {\n var fontNameWoStyle = baseFontName.split('-')[0];\n return fontNameWoStyle in (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1;\n },\n getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) {\n var defaultWidth = 0;\n var widths = [];\n var monospace = false;\n var stdFontMap = (0, _standard_fonts.getStdFontMap)();\n var lookupName = stdFontMap[name] || name;\n var Metrics = (0, _metrics.getMetrics)();\n if (!(lookupName in Metrics)) {\n if (this.isSerifFont(name)) {\n lookupName = 'Times-Roman';\n } else {\n lookupName = 'Helvetica';\n }\n }\n var glyphWidths = Metrics[lookupName];\n if ((0, _util.isNum)(glyphWidths)) {\n defaultWidth = glyphWidths;\n monospace = true;\n } else {\n widths = glyphWidths();\n }\n return {\n defaultWidth: defaultWidth,\n monospace: monospace,\n widths: widths\n };\n },\n buildCharCodeToWidth: function PartialEvaluator_bulildCharCodeToWidth(widthsByGlyphName, properties) {\n var widths = Object.create(null);\n var differences = properties.differences;\n var encoding = properties.defaultEncoding;\n for (var charCode = 0; charCode < 256; charCode++) {\n if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n widths[charCode] = widthsByGlyphName[differences[charCode]];\n continue;\n }\n if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n widths[charCode] = widthsByGlyphName[encoding[charCode]];\n continue;\n }\n }\n return widths;\n },\n preEvaluateFont: function PartialEvaluator_preEvaluateFont(dict) {\n var baseDict = dict;\n var type = dict.get('Subtype');\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError('invalid font Subtype');\n }\n var composite = false;\n var uint8array;\n if (type.name === 'Type0') {\n var df = dict.get('DescendantFonts');\n if (!df) {\n throw new _util.FormatError('Descendant fonts are not specified');\n }\n dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n type = dict.get('Subtype');\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError('invalid font Subtype');\n }\n composite = true;\n }\n var descriptor = dict.get('FontDescriptor');\n if (descriptor) {\n var hash = new _murmurhash.MurmurHash3_64();\n var encoding = baseDict.getRaw('Encoding');\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 var keys = encoding.getKeys();\n for (var i = 0, ii = keys.length; i < ii; i++) {\n var entry = encoding.getRaw(keys[i]);\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 for (var j = 0; j < diffLength; j++) {\n var diffEntry = entry[j];\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 hash.update(diffBuf.join());\n }\n }\n }\n var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');\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 var widths = dict.get('Widths') || baseDict.get('Widths');\n if (widths) {\n uint8array = new Uint8Array(new Uint32Array(widths).buffer);\n hash.update(uint8array);\n }\n }\n return {\n descriptor: descriptor,\n dict: dict,\n baseDict: baseDict,\n composite: composite,\n type: type.name,\n hash: hash ? hash.hexdigest() : ''\n };\n },\n translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) {\n var _this11 = this;\n\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 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'));\n } else {\n var baseFontName = dict.get('BaseFont');\n if (!(0, _primitives.isName)(baseFontName)) {\n throw new _util.FormatError('Base font is not specified');\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: type,\n name: baseFontName,\n widths: metrics.widths,\n defaultWidth: metrics.defaultWidth,\n flags: flags,\n firstChar: 0,\n lastChar: maxCharIndex\n };\n return this.extractDataStructures(dict, dict, properties).then(function (properties) {\n properties.widths = _this11.buildCharCodeToWidth(metrics.widths, properties);\n return new _fonts.Font(baseFontName, null, properties);\n });\n }\n }\n var firstChar = dict.get('FirstChar') || 0;\n var lastChar = dict.get('LastChar') || maxCharIndex;\n var fontName = descriptor.get('FontName');\n var baseFont = dict.get('BaseFont');\n if ((0, _util.isString)(fontName)) {\n fontName = _primitives.Name.get(fontName);\n }\n if ((0, _util.isString)(baseFont)) {\n baseFont = _primitives.Name.get(baseFont);\n }\n if (type !== 'Type3') {\n var fontNameStr = fontName && fontName.name;\n var baseFontStr = baseFont && baseFont.name;\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 if (fontNameStr && baseFontStr && baseFontStr.indexOf(fontNameStr) === 0) {\n fontName = baseFont;\n }\n }\n }\n fontName = fontName || baseFont;\n if (!(0, _primitives.isName)(fontName)) {\n throw new _util.FormatError('invalid font name');\n }\n var fontFile = descriptor.get('FontFile', 'FontFile2', 'FontFile3');\n if (fontFile) {\n if (fontFile.dict) {\n var subtype = fontFile.dict.get('Subtype');\n if (subtype) {\n subtype = subtype.name;\n }\n var length1 = fontFile.dict.get('Length1');\n var length2 = fontFile.dict.get('Length2');\n var length3 = fontFile.dict.get('Length3');\n }\n }\n properties = {\n type: type,\n name: fontName.name,\n subtype: subtype,\n file: fontFile,\n length1: length1,\n length2: length2,\n length3: length3,\n loadedName: baseDict.loadedName,\n composite: composite,\n wideChars: composite,\n fixedPitch: false,\n fontMatrix: dict.getArray('FontMatrix') || _util.FONT_IDENTITY_MATRIX,\n firstChar: firstChar || 0,\n lastChar: lastChar || maxCharIndex,\n bbox: descriptor.getArray('FontBBox'),\n ascent: descriptor.get('Ascent'),\n descent: descriptor.get('Descent'),\n xHeight: descriptor.get('XHeight'),\n capHeight: descriptor.get('CapHeight'),\n flags: descriptor.get('Flags'),\n italicAngle: descriptor.get('ItalicAngle'),\n isType3Font: false\n };\n var cMapPromise;\n if (composite) {\n var cidEncoding = baseDict.get('Encoding');\n if ((0, _primitives.isName)(cidEncoding)) {\n properties.cidEncoding = cidEncoding.name;\n }\n cMapPromise = _cmap.CMapFactory.create({\n encoding: cidEncoding,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cMap) {\n properties.cMap = cMap;\n properties.vertical = properties.cMap.vertical;\n });\n } else {\n cMapPromise = Promise.resolve(undefined);\n }\n return cMapPromise.then(function () {\n return _this11.extractDataStructures(dict, baseDict, properties);\n }).then(function (properties) {\n _this11.extractWidths(dict, descriptor, properties);\n if (type === 'Type3') {\n properties.isType3Font = true;\n }\n return new _fonts.Font(fontName.name, fontFile, properties);\n });\n }\n };\n return PartialEvaluator;\n}();\nvar TranslatedFont = function TranslatedFontClosure() {\n function TranslatedFont(loadedName, font, dict) {\n this.loadedName = loadedName;\n this.font = font;\n this.dict = dict;\n this.type3Loaded = null;\n this.sent = false;\n }\n TranslatedFont.prototype = {\n send: function send(handler) {\n if (this.sent) {\n return;\n }\n var fontData = this.font.exportData();\n handler.send('commonobj', [this.loadedName, 'Font', fontData]);\n this.sent = true;\n },\n loadType3Data: function loadType3Data(evaluator, resources, parentOperatorList, task) {\n if (!this.font.isType3Font) {\n throw new Error('Must be a Type3 font.');\n }\n if (this.type3Loaded) {\n return this.type3Loaded;\n }\n var type3Options = Object.create(evaluator.options);\n type3Options.ignoreErrors = false;\n var type3Evaluator = evaluator.clone(type3Options);\n var translatedFont = this.font;\n var loadCharProcsPromise = Promise.resolve();\n var charProcs = this.dict.get('CharProcs');\n var fontResources = this.dict.get('Resources') || resources;\n var charProcKeys = charProcs.getKeys();\n var charProcOperatorList = Object.create(null);\n\n var _loop2 = function _loop2() {\n var key = charProcKeys[i];\n loadCharProcsPromise = loadCharProcsPromise.then(function () {\n var glyphStream = charProcs.get(key);\n var operatorList = new _operator_list.OperatorList();\n return type3Evaluator.getOperatorList({\n stream: glyphStream,\n task: task,\n resources: fontResources,\n operatorList: operatorList\n }).then(function () {\n charProcOperatorList[key] = operatorList.getIR();\n parentOperatorList.addDependencies(operatorList.dependencies);\n }).catch(function (reason) {\n (0, _util.warn)('Type3 font resource \"' + key + '\" is not available.');\n var operatorList = new _operator_list.OperatorList();\n charProcOperatorList[key] = operatorList.getIR();\n });\n });\n };\n\n for (var i = 0, n = charProcKeys.length; i < n; ++i) {\n _loop2();\n }\n this.type3Loaded = loadCharProcsPromise.then(function () {\n translatedFont.charProcOperatorList = charProcOperatorList;\n });\n return this.type3Loaded;\n }\n };\n return TranslatedFont;\n}();\nvar StateManager = function StateManagerClosure() {\n function StateManager(initialState) {\n this.state = initialState;\n this.stateStack = [];\n }\n StateManager.prototype = {\n save: function save() {\n var old = this.state;\n this.stateStack.push(this.state);\n this.state = old.clone();\n },\n restore: function restore() {\n var prev = this.stateStack.pop();\n if (prev) {\n this.state = prev;\n }\n },\n transform: function transform(args) {\n this.state.ctm = _util.Util.transform(this.state.ctm, args);\n }\n };\n return StateManager;\n}();\nvar TextState = function TextStateClosure() {\n function TextState() {\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 TextState.prototype = {\n setTextMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n var m = this.textMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n },\n setTextLineMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n var m = this.textLineMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n },\n translateTextMatrix: function TextState_translateTextMatrix(x, y) {\n var m = this.textMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n },\n translateTextLineMatrix: function TextState_translateTextMatrix(x, y) {\n var m = this.textLineMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n },\n calcTextLineMatrixAdvance: function TextState_calcTextLineMatrixAdvance(a, b, c, d, e, f) {\n var font = this.font;\n if (!font) {\n return null;\n }\n var m = this.textLineMatrix;\n if (!(a === m[0] && b === m[1] && c === m[2] && d === m[3])) {\n return null;\n }\n var txDiff = e - m[4],\n tyDiff = f - m[5];\n if (font.vertical && txDiff !== 0 || !font.vertical && tyDiff !== 0) {\n return null;\n }\n var tx,\n ty,\n denominator = a * d - b * c;\n if (font.vertical) {\n tx = -tyDiff * c / denominator;\n ty = tyDiff * a / denominator;\n } else {\n tx = txDiff * d / denominator;\n ty = -txDiff * b / denominator;\n }\n return {\n width: tx,\n height: ty,\n value: font.vertical ? ty : tx\n };\n },\n calcRenderMatrix: function TextState_calcRendeMatrix(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 carriageReturn: function TextState_carriageReturn() {\n this.translateTextLineMatrix(0, -this.leading);\n this.textMatrix = this.textLineMatrix.slice();\n },\n clone: function TextState_clone() {\n var clone = Object.create(this);\n clone.textMatrix = this.textMatrix.slice();\n clone.textLineMatrix = this.textLineMatrix.slice();\n clone.fontMatrix = this.fontMatrix.slice();\n return clone;\n }\n };\n return TextState;\n}();\nvar EvalState = function EvalStateClosure() {\n function EvalState() {\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 EvalState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n }\n };\n return EvalState;\n}();\nvar EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {\n var getOPMap = (0, _util.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 var MAX_INVALID_PATH_OPS = 20;\n function EvaluatorPreprocessor(stream, xref, stateManager) {\n this.opMap = getOPMap();\n this.parser = new _parser.Parser(new _parser.Lexer(stream, this.opMap), false, xref);\n this.stateManager = stateManager;\n this.nonProcessedArgs = [];\n this._numInvalidPathOPS = 0;\n }\n EvaluatorPreprocessor.prototype = {\n get savedStatesDepth() {\n return this.stateManager.stateStack.length;\n },\n read: function EvaluatorPreprocessor_read(operation) {\n var args = operation.args;\n while (true) {\n var obj = this.parser.getObj();\n if ((0, _primitives.isCmd)(obj)) {\n var cmd = obj.cmd;\n var opSpec = this.opMap[cmd];\n if (!opSpec) {\n (0, _util.warn)('Unknown command \"' + cmd + '\".');\n continue;\n }\n var fn = opSpec.id;\n var numArgs = opSpec.numArgs;\n var argsLength = args !== null ? args.length : 0;\n if (!opSpec.variableArgs) {\n if (argsLength !== numArgs) {\n var nonProcessedArgs = this.nonProcessedArgs;\n while (argsLength > numArgs) {\n nonProcessedArgs.push(args.shift());\n argsLength--;\n }\n while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n if (args === null) {\n args = [];\n }\n args.unshift(nonProcessedArgs.pop());\n argsLength++;\n }\n }\n if (argsLength < numArgs) {\n var partialMsg = 'command ' + cmd + ': expected ' + numArgs + ' args, ' + ('but received ' + argsLength + ' args.');\n if (fn >= _util.OPS.moveTo && fn <= _util.OPS.endPath && ++this._numInvalidPathOPS > MAX_INVALID_PATH_OPS) {\n throw new _util.FormatError('Invalid ' + partialMsg);\n }\n (0, _util.warn)('Skipping ' + partialMsg);\n if (args !== null) {\n args.length = 0;\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 this.preprocessCommand(fn, args);\n operation.fn = fn;\n operation.args = args;\n return true;\n }\n if ((0, _primitives.isEOF)(obj)) {\n return false;\n }\n if (obj !== null) {\n if (args === null) {\n args = [];\n }\n args.push(obj);\n if (args.length > 33) {\n throw new _util.FormatError('Too many arguments');\n }\n }\n }\n },\n preprocessCommand: function EvaluatorPreprocessor_preprocessCommand(fn, args) {\n switch (fn | 0) {\n case _util.OPS.save:\n this.stateManager.save();\n break;\n case _util.OPS.restore:\n this.stateManager.restore();\n break;\n case _util.OPS.transform:\n this.stateManager.transform(args);\n break;\n }\n }\n };\n return EvaluatorPreprocessor;\n}();\nexports.PartialEvaluator = PartialEvaluator;\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CMapFactory = exports.IdentityCMap = exports.CMap = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar _parser = __w_pdfjs_require__(139);\n\nvar _stream = __w_pdfjs_require__(140);\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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'];\n\nvar CMap = function () {\n function CMap() {\n var builtInCMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n _classCallCheck(this, CMap);\n\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 _createClass(CMap, [{\n key: 'addCodespaceRange',\n value: function addCodespaceRange(n, low, high) {\n this.codespaceRanges[n - 1].push(low, high);\n this.numCodespaceRanges++;\n }\n }, {\n key: 'mapCidRange',\n value: function mapCidRange(low, high, dstLow) {\n while (low <= high) {\n this._map[low++] = dstLow++;\n }\n }\n }, {\n key: 'mapBfRange',\n value: function mapBfRange(low, high, dstLow) {\n var lastByte = dstLow.length - 1;\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 key: 'mapBfRangeToArray',\n value: function mapBfRangeToArray(low, high, array) {\n var i = 0,\n ii = array.length;\n while (low <= high && i < ii) {\n this._map[low] = array[i++];\n ++low;\n }\n }\n }, {\n key: 'mapOne',\n value: function mapOne(src, dst) {\n this._map[src] = dst;\n }\n }, {\n key: 'lookup',\n value: function lookup(code) {\n return this._map[code];\n }\n }, {\n key: 'contains',\n value: function contains(code) {\n return this._map[code] !== undefined;\n }\n }, {\n key: 'forEach',\n value: function forEach(callback) {\n var map = this._map;\n var length = map.length;\n if (length <= 0x10000) {\n for (var i = 0; i < length; i++) {\n if (map[i] !== undefined) {\n callback(i, map[i]);\n }\n }\n } else {\n for (var _i in map) {\n callback(_i, map[_i]);\n }\n }\n }\n }, {\n key: 'charCodeOf',\n value: function charCodeOf(value) {\n var map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (var charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n }\n }, {\n key: 'getMap',\n value: function getMap() {\n return this._map;\n }\n }, {\n key: 'readCharCode',\n value: function readCharCode(str, offset, out) {\n var c = 0;\n var codespaceRanges = this.codespaceRanges;\n for (var n = 0, nn = codespaceRanges.length; n < nn; n++) {\n c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;\n var codespaceRange = codespaceRanges[n];\n for (var k = 0, kk = codespaceRange.length; k < kk;) {\n var low = codespaceRange[k++];\n var high = codespaceRange[k++];\n if (c >= low && c <= high) {\n out.charcode = c;\n out.length = n + 1;\n return;\n }\n }\n }\n out.charcode = 0;\n out.length = 1;\n }\n }, {\n key: 'length',\n get: function get() {\n return this._map.length;\n }\n }, {\n key: 'isIdentityCMap',\n get: function get() {\n if (!(this.name === 'Identity-H' || this.name === 'Identity-V')) {\n return false;\n }\n if (this._map.length !== 0x10000) {\n return false;\n }\n for (var i = 0; i < 0x10000; i++) {\n if (this._map[i] !== i) {\n return false;\n }\n }\n return true;\n }\n }]);\n\n return CMap;\n}();\n\nvar IdentityCMap = function (_CMap) {\n _inherits(IdentityCMap, _CMap);\n\n function IdentityCMap(vertical, n) {\n _classCallCheck(this, IdentityCMap);\n\n var _this = _possibleConstructorReturn(this, (IdentityCMap.__proto__ || Object.getPrototypeOf(IdentityCMap)).call(this));\n\n _this.vertical = vertical;\n _this.addCodespaceRange(n, 0, 0xffff);\n return _this;\n }\n\n _createClass(IdentityCMap, [{\n key: 'mapCidRange',\n value: function mapCidRange(low, high, dstLow) {\n (0, _util.unreachable)('should not call mapCidRange');\n }\n }, {\n key: 'mapBfRange',\n value: function mapBfRange(low, high, dstLow) {\n (0, _util.unreachable)('should not call mapBfRange');\n }\n }, {\n key: 'mapBfRangeToArray',\n value: function mapBfRangeToArray(low, high, array) {\n (0, _util.unreachable)('should not call mapBfRangeToArray');\n }\n }, {\n key: 'mapOne',\n value: function mapOne(src, dst) {\n (0, _util.unreachable)('should not call mapCidOne');\n }\n }, {\n key: 'lookup',\n value: function lookup(code) {\n return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n }\n }, {\n key: 'contains',\n value: function contains(code) {\n return Number.isInteger(code) && code <= 0xffff;\n }\n }, {\n key: 'forEach',\n value: function forEach(callback) {\n for (var i = 0; i <= 0xffff; i++) {\n callback(i, i);\n }\n }\n }, {\n key: 'charCodeOf',\n value: function charCodeOf(value) {\n return Number.isInteger(value) && value <= 0xffff ? value : -1;\n }\n }, {\n key: 'getMap',\n value: function getMap() {\n var map = new Array(0x10000);\n for (var i = 0; i <= 0xffff; i++) {\n map[i] = i;\n }\n return map;\n }\n }, {\n key: 'length',\n get: function get() {\n return 0x10000;\n }\n }, {\n key: 'isIdentityCMap',\n get: function get() {\n (0, _util.unreachable)('should not access .isIdentityCMap');\n }\n }]);\n\n return IdentityCMap;\n}(CMap);\n\nvar BinaryCMapReader = function BinaryCMapReaderClosure() {\n function hexToInt(a, size) {\n var n = 0;\n for (var i = 0; i <= size; i++) {\n n = n << 8 | a[i];\n }\n return n >>> 0;\n }\n function hexToStr(a, size) {\n if (size === 1) {\n return String.fromCharCode(a[0], a[1]);\n }\n if (size === 3) {\n return String.fromCharCode(a[0], a[1], a[2], a[3]);\n }\n return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n }\n function addHex(a, b, size) {\n var c = 0;\n for (var i = size; i >= 0; i--) {\n c += a[i] + b[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n function incHex(a, size) {\n var c = 1;\n for (var i = size; i >= 0 && c > 0; i--) {\n c += a[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n var MAX_NUM_SIZE = 16;\n var MAX_ENCODED_NUM_SIZE = 19;\n function BinaryCMapStream(data) {\n this.buffer = data;\n this.pos = 0;\n this.end = data.length;\n this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n }\n BinaryCMapStream.prototype = {\n readByte: function readByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.buffer[this.pos++];\n },\n readNumber: function readNumber() {\n var n = 0;\n var last;\n do {\n var b = this.readByte();\n if (b < 0) {\n throw new _util.FormatError('unexpected EOF in bcmap');\n }\n last = !(b & 0x80);\n n = n << 7 | b & 0x7F;\n } while (!last);\n return n;\n },\n readSigned: function readSigned() {\n var n = this.readNumber();\n return n & 1 ? ~(n >>> 1) : n >>> 1;\n },\n readHex: function readHex(num, size) {\n num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n this.pos += size + 1;\n },\n readHexNumber: function readHexNumber(num, size) {\n var last;\n var stack = this.tmpBuf,\n sp = 0;\n do {\n var b = this.readByte();\n if (b < 0) {\n throw new _util.FormatError('unexpected EOF in bcmap');\n }\n last = !(b & 0x80);\n stack[sp++] = b & 0x7F;\n } while (!last);\n var i = size,\n buffer = 0,\n bufferSize = 0;\n while (i >= 0) {\n while (bufferSize < 8 && stack.length > 0) {\n buffer = stack[--sp] << bufferSize | buffer;\n bufferSize += 7;\n }\n num[i] = buffer & 255;\n i--;\n buffer >>= 8;\n bufferSize -= 8;\n }\n },\n readHexSigned: function readHexSigned(num, size) {\n this.readHexNumber(num, size);\n var sign = num[size] & 1 ? 255 : 0;\n var c = 0;\n for (var i = 0; i <= size; i++) {\n c = (c & 1) << 8 | num[i];\n num[i] = c >> 1 ^ sign;\n }\n },\n readString: function readString() {\n var len = this.readNumber();\n var s = '';\n for (var i = 0; i < len; i++) {\n s += String.fromCharCode(this.readNumber());\n }\n return s;\n }\n };\n function processBinaryCMap(data, cMap, extend) {\n return new Promise(function (resolve, reject) {\n var stream = new BinaryCMapStream(data);\n var header = stream.readByte();\n cMap.vertical = !!(header & 1);\n var useCMap = null;\n var start = new Uint8Array(MAX_NUM_SIZE);\n var end = new Uint8Array(MAX_NUM_SIZE);\n var char = new Uint8Array(MAX_NUM_SIZE);\n var charCode = new Uint8Array(MAX_NUM_SIZE);\n var tmp = new Uint8Array(MAX_NUM_SIZE);\n var code;\n var b;\n while ((b = stream.readByte()) >= 0) {\n var type = b >> 5;\n if (type === 7) {\n switch (b & 0x1F) {\n case 0:\n stream.readString();\n break;\n case 1:\n useCMap = stream.readString();\n break;\n }\n continue;\n }\n var sequence = !!(b & 0x10);\n var dataSize = b & 15;\n if (dataSize + 1 > MAX_NUM_SIZE) {\n throw new Error('processBinaryCMap: Invalid dataSize.');\n }\n var ucs2DataSize = 1;\n var subitemsCount = stream.readNumber();\n var i;\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 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 break;\n case 1:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber();\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 break;\n case 2:\n stream.readHex(char, dataSize);\n code = stream.readNumber();\n cMap.mapOne(hexToInt(char, dataSize), code);\n for (i = 1; i < subitemsCount; i++) {\n incHex(char, dataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, dataSize);\n addHex(char, tmp, dataSize);\n }\n code = stream.readSigned() + (code + 1);\n cMap.mapOne(hexToInt(char, dataSize), code);\n }\n break;\n case 3:\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 for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n if (!sequence) {\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n }\n break;\n case 4:\n stream.readHex(char, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n for (i = 1; i < subitemsCount; i++) {\n incHex(char, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, ucs2DataSize);\n addHex(char, tmp, ucs2DataSize);\n }\n incHex(charCode, dataSize);\n stream.readHexSigned(tmp, dataSize);\n addHex(charCode, tmp, dataSize);\n cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n }\n break;\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 for (i = 1; i < subitemsCount; i++) {\n incHex(end, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(start, ucs2DataSize);\n addHex(start, end, ucs2DataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n }\n break;\n default:\n reject(new Error('processBinaryCMap: Unknown type: ' + type));\n return;\n }\n }\n if (useCMap) {\n resolve(extend(useCMap));\n return;\n }\n resolve(cMap);\n });\n }\n function BinaryCMapReader() {}\n BinaryCMapReader.prototype = { process: processBinaryCMap };\n return BinaryCMapReader;\n}();\nvar CMapFactory = function CMapFactoryClosure() {\n function strToInt(str) {\n var a = 0;\n for (var i = 0; i < str.length; i++) {\n a = a << 8 | str.charCodeAt(i);\n }\n return a >>> 0;\n }\n function expectString(obj) {\n if (!(0, _util.isString)(obj)) {\n throw new _util.FormatError('Malformed CMap: expected string.');\n }\n }\n function expectInt(obj) {\n if (!Number.isInteger(obj)) {\n throw new _util.FormatError('Malformed CMap: expected int.');\n }\n }\n function parseBfChar(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endbfchar')) {\n return;\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 function parseBfRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endbfrange')) {\n return;\n }\n expectString(obj);\n var low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var high = strToInt(obj);\n obj = lexer.getObj();\n if (Number.isInteger(obj) || (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 while (!(0, _primitives.isCmd)(obj, ']') && !(0, _primitives.isEOF)(obj)) {\n array.push(obj);\n obj = lexer.getObj();\n }\n cMap.mapBfRangeToArray(low, high, array);\n } else {\n break;\n }\n }\n throw new _util.FormatError('Invalid bf range.');\n }\n function parseCidChar(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endcidchar')) {\n return;\n }\n expectString(obj);\n var src = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n var dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n function parseCidRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endcidrange')) {\n return;\n }\n expectString(obj);\n var low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var high = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n var dstLow = obj;\n cMap.mapCidRange(low, high, dstLow);\n }\n }\n function parseCodespaceRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endcodespacerange')) {\n return;\n }\n if (!(0, _util.isString)(obj)) {\n break;\n }\n var low = strToInt(obj);\n obj = lexer.getObj();\n if (!(0, _util.isString)(obj)) {\n break;\n }\n var high = strToInt(obj);\n cMap.addCodespaceRange(obj.length, low, high);\n }\n throw new _util.FormatError('Invalid codespace range.');\n }\n function parseWMode(cMap, lexer) {\n var obj = lexer.getObj();\n if (Number.isInteger(obj)) {\n cMap.vertical = !!obj;\n }\n }\n function parseCMapName(cMap, lexer) {\n var obj = lexer.getObj();\n if ((0, _primitives.isName)(obj) && (0, _util.isString)(obj.name)) {\n cMap.name = obj.name;\n }\n }\n function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n var previous;\n var embeddedUseCMap;\n objLoop: while (true) {\n try {\n var obj = lexer.getObj();\n if ((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 previous = obj;\n } else if ((0, _primitives.isCmd)(obj)) {\n switch (obj.cmd) {\n case 'endcmap':\n break objLoop;\n case 'usecmap':\n if ((0, _primitives.isName)(previous)) {\n embeddedUseCMap = previous.name;\n }\n break;\n case 'begincodespacerange':\n parseCodespaceRange(cMap, lexer);\n break;\n case 'beginbfchar':\n parseBfChar(cMap, lexer);\n break;\n case 'begincidchar':\n parseCidChar(cMap, lexer);\n break;\n case 'beginbfrange':\n parseBfRange(cMap, lexer);\n break;\n case 'begincidrange':\n parseCidRange(cMap, lexer);\n break;\n }\n }\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('Invalid cMap data: ' + ex);\n continue;\n }\n }\n if (!useCMap && embeddedUseCMap) {\n useCMap = embeddedUseCMap;\n }\n if (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n }\n return Promise.resolve(cMap);\n }\n function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n return createBuiltInCMap(useCMap, fetchBuiltInCMap).then(function (newCMap) {\n cMap.useCMap = newCMap;\n if (cMap.numCodespaceRanges === 0) {\n var useCodespaceRanges = cMap.useCMap.codespaceRanges;\n for (var i = 0; i < useCodespaceRanges.length; i++) {\n cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n }\n cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n }\n 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 function createBuiltInCMap(name, fetchBuiltInCMap) {\n if (name === 'Identity-H') {\n return Promise.resolve(new IdentityCMap(false, 2));\n } else if (name === 'Identity-V') {\n return Promise.resolve(new IdentityCMap(true, 2));\n }\n if (!BUILT_IN_CMAPS.includes(name)) {\n return Promise.reject(new Error('Unknown CMap name: ' + name));\n }\n if (!fetchBuiltInCMap) {\n return Promise.reject(new Error('Built-in CMap parameters are not provided.'));\n }\n return fetchBuiltInCMap(name).then(function (data) {\n var cMapData = data.cMapData,\n compressionType = data.compressionType;\n var cMap = new CMap(true);\n if (compressionType === _util.CMapCompressionType.BINARY) {\n return new BinaryCMapReader().process(cMapData, cMap, function (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\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 return Promise.reject(new Error('TODO: Only BINARY/NONE CMap compression is currently supported.'));\n });\n }\n return {\n create: function create(params) {\n var encoding = params.encoding;\n var fetchBuiltInCMap = params.fetchBuiltInCMap;\n var useCMap = params.useCMap;\n if ((0, _primitives.isName)(encoding)) {\n return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n } else if ((0, _primitives.isStream)(encoding)) {\n var cMap = new CMap();\n var lexer = new _parser.Lexer(encoding);\n return parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap).then(function (parsedCMap) {\n if (parsedCMap.isIdentityCMap) {\n return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n }\n return parsedCMap;\n });\n }\n return Promise.reject(new Error('Encoding required.'));\n }\n };\n}();\nexports.CMap = CMap;\nexports.IdentityCMap = IdentityCMap;\nexports.CMapFactory = CMapFactory;\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFontType = exports.IdentityToUnicodeMap = exports.ToUnicodeMap = exports.FontFlags = exports.Font = exports.ErrorFont = exports.SEAC_ANALYSIS_ENABLED = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cff_parser = __w_pdfjs_require__(157);\n\nvar _glyphlist = __w_pdfjs_require__(160);\n\nvar _encodings = __w_pdfjs_require__(159);\n\nvar _standard_fonts = __w_pdfjs_require__(161);\n\nvar _unicode = __w_pdfjs_require__(162);\n\nvar _font_renderer = __w_pdfjs_require__(163);\n\nvar _cmap = __w_pdfjs_require__(155);\n\nvar _stream = __w_pdfjs_require__(140);\n\nvar _type1_parser = __w_pdfjs_require__(164);\n\nvar PRIVATE_USE_AREAS = [[0xE000, 0xF8FF], [0x100000, 0x10FFFD]];\nvar PDF_GLYPH_SPACE_UNITS = 1000;\nvar SEAC_ANALYSIS_ENABLED = true;\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};\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'];\nfunction adjustWidths(properties) {\n if (!properties.fontMatrix) {\n return;\n }\n if (properties.fontMatrix[0] === _util.FONT_IDENTITY_MATRIX[0]) {\n return;\n }\n var scale = 0.001 / properties.fontMatrix[0];\n var glyphsWidths = properties.widths;\n for (var glyph in glyphsWidths) {\n glyphsWidths[glyph] *= scale;\n }\n properties.defaultWidth *= scale;\n}\nfunction adjustToUnicode(properties, builtInEncoding) {\n if (properties.hasIncludedToUnicodeMap) {\n return;\n }\n if (properties.hasEncoding) {\n return;\n }\n if (builtInEncoding === properties.defaultEncoding) {\n return;\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n var toUnicode = [],\n glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n for (var charCode in builtInEncoding) {\n var glyphName = builtInEncoding[charCode];\n var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n toUnicode[charCode] = String.fromCharCode(unicode);\n }\n }\n properties.toUnicode.amend(toUnicode);\n}\nfunction getFontType(type, subtype) {\n switch (type) {\n case 'Type1':\n return subtype === 'Type1C' ? _util.FontType.TYPE1C : _util.FontType.TYPE1;\n case 'CIDFontType0':\n return subtype === 'CIDFontType0C' ? _util.FontType.CIDFONTTYPE0C : _util.FontType.CIDFONTTYPE0;\n case 'OpenType':\n return _util.FontType.OPENTYPE;\n case 'TrueType':\n return _util.FontType.TRUETYPE;\n case 'CIDFontType2':\n return _util.FontType.CIDFONTTYPE2;\n case 'MMType1':\n return _util.FontType.MMTYPE1;\n case 'Type0':\n return _util.FontType.TYPE0;\n default:\n return _util.FontType.UNKNOWN;\n }\n}\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n if (glyphsUnicodeMap[name] !== undefined) {\n return name;\n }\n var unicode = (0, _unicode.getUnicodeForGlyph)(name, glyphsUnicodeMap);\n if (unicode !== -1) {\n for (var key in glyphsUnicodeMap) {\n if (glyphsUnicodeMap[key] === unicode) {\n return key;\n }\n }\n }\n (0, _util.info)('Unable to recover a standard glyph name for: ' + name);\n return name;\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 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 return Glyph;\n}();\nvar ToUnicodeMap = function ToUnicodeMapClosure() {\n function ToUnicodeMap() {\n var cmap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n this._map = cmap;\n }\n ToUnicodeMap.prototype = {\n get length() {\n return this._map.length;\n },\n forEach: function forEach(callback) {\n for (var charCode in this._map) {\n callback(charCode, this._map[charCode].charCodeAt(0));\n }\n },\n has: function has(i) {\n return this._map[i] !== undefined;\n },\n get: function get(i) {\n return this._map[i];\n },\n charCodeOf: function charCodeOf(value) {\n var map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (var charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n },\n amend: function amend(map) {\n for (var charCode in map) {\n this._map[charCode] = map[charCode];\n }\n }\n };\n return ToUnicodeMap;\n}();\nvar IdentityToUnicodeMap = function IdentityToUnicodeMapClosure() {\n function IdentityToUnicodeMap(firstChar, lastChar) {\n this.firstChar = firstChar;\n this.lastChar = lastChar;\n }\n IdentityToUnicodeMap.prototype = {\n get length() {\n return this.lastChar + 1 - this.firstChar;\n },\n forEach: function forEach(callback) {\n for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n callback(i, i);\n }\n },\n has: function has(i) {\n return this.firstChar <= i && i <= this.lastChar;\n },\n get: function get(i) {\n if (this.firstChar <= i && i <= this.lastChar) {\n return String.fromCharCode(i);\n }\n return undefined;\n },\n charCodeOf: function charCodeOf(v) {\n return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1;\n },\n amend: function amend(map) {\n (0, _util.unreachable)('Should not call amend()');\n }\n };\n return 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 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 function writeData(dest, offset, data) {\n var i, ii;\n if (data instanceof Uint8Array) {\n dest.set(data, offset);\n } else if (typeof data === 'string') {\n for (i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data.charCodeAt(i) & 0xFF;\n }\n } else {\n for (i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data[i] & 0xFF;\n }\n }\n }\n function OpenTypeFileBuilder(sfnt) {\n this.sfnt = sfnt;\n this.tables = Object.create(null);\n }\n OpenTypeFileBuilder.getSearchParams = function OpenTypeFileBuilder_getSearchParams(entriesCount, entrySize) {\n var maxPower2 = 1,\n log2 = 0;\n while ((maxPower2 ^ entriesCount) > maxPower2) {\n maxPower2 <<= 1;\n log2++;\n }\n var searchRange = maxPower2 * entrySize;\n return {\n range: searchRange,\n entry: log2,\n rangeShift: entrySize * entriesCount - searchRange\n };\n };\n 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 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 var file = new Uint8Array(offset);\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n writeData(file, tableOffsets[i], table);\n }\n if (sfnt === 'true') {\n sfnt = (0, _util.string32)(0x00010000);\n }\n file[0] = sfnt.charCodeAt(0) & 0xFF;\n file[1] = sfnt.charCodeAt(1) & 0xFF;\n file[2] = sfnt.charCodeAt(2) & 0xFF;\n file[3] = sfnt.charCodeAt(3) & 0xFF;\n 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 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 for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n var quad = (0, _util.readUint32)(file, j);\n checksum = checksum + quad >>> 0;\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 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 this.tables[tag] = data;\n }\n };\n return OpenTypeFileBuilder;\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.sizes = [];\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 this.fallbackName = this.isMonospace ? 'monospace' : this.isSerifFont ? 'serif' : 'sans-serif';\n this.differences = properties.differences;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.composite = properties.composite;\n this.wideChars = properties.wideChars;\n this.cMap = properties.cMap;\n this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n this.fontMatrix = properties.fontMatrix;\n this.bbox = properties.bbox;\n this.defaultEncoding = properties.defaultEncoding;\n this.toUnicode = properties.toUnicode;\n this.fallbackToUnicode = properties.fallbackToUnicode || new ToUnicodeMap();\n this.toFontChar = [];\n if (properties.type === 'Type3') {\n for (charCode = 0; charCode < 256; charCode++) {\n this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode];\n }\n this.fontType = _util.FontType.TYPE3;\n return;\n }\n this.cidEncoding = properties.cidEncoding;\n this.vertical = properties.vertical;\n if (this.vertical) {\n this.vmetrics = properties.vmetrics;\n this.defaultVMetrics = properties.defaultVMetrics;\n }\n if (!file || file.isEmpty) {\n if (file) {\n (0, _util.warn)('Font file is empty in \"' + name + '\" (' + this.loadedName + ')');\n }\n this.fallbackToSystemFont();\n return;\n }\n\n var _getFontFileType = getFontFileType(file, properties);\n\n var _getFontFileType2 = _slicedToArray(_getFontFileType, 2);\n\n type = _getFontFileType2[0];\n subtype = _getFontFileType2[1];\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 try {\n var data;\n switch (type) {\n case 'MMType1':\n (0, _util.info)('MMType1 font (' + name + '), falling back to Type1.');\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 case 'OpenType':\n case 'TrueType':\n case 'CIDFontType2':\n this.mimetype = 'font/opentype';\n data = this.checkAndRepair(name, file, properties);\n if (this.isOpenType) {\n adjustWidths(properties);\n type = 'OpenType';\n }\n break;\n default:\n throw new _util.FormatError('Font ' + type + ' is not supported');\n }\n } catch (e) {\n (0, _util.warn)(e);\n this.fallbackToSystemFont();\n return;\n }\n 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.encoding = properties.baseEncoding;\n this.seacMap = properties.seacMap;\n }\n Font.getFontID = function () {\n var ID = 1;\n return function Font_getFontID() {\n return String(ID++);\n };\n }();\n function int16(b0, b1) {\n return (b0 << 8) + b1;\n }\n function writeSignedInt16(bytes, index, value) {\n bytes[index + 1] = value;\n bytes[index] = value >>> 8;\n }\n function signedInt16(b0, b1) {\n var value = (b0 << 8) + b1;\n return value & 1 << 15 ? value - 0x10000 : value;\n }\n function int32(b0, b1, b2, b3) {\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n function string16(value) {\n return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n }\n function safeString16(value) {\n value = value > 0x7FFF ? 0x7FFF : value < -0x8000 ? -0x8000 : value;\n return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n }\n function isTrueTypeFile(file) {\n var header = file.peekBytes(4);\n return (0, _util.readUint32)(header, 0) === 0x00010000 || (0, _util.bytesToString)(header) === 'true';\n }\n function isTrueTypeCollectionFile(file) {\n var header = file.peekBytes(4);\n return (0, _util.bytesToString)(header) === 'ttcf';\n }\n function isOpenTypeFile(file) {\n var header = file.peekBytes(4);\n return (0, _util.bytesToString)(header) === 'OTTO';\n }\n function isType1File(file) {\n var header = file.peekBytes(2);\n if (header[0] === 0x25 && header[1] === 0x21) {\n return true;\n }\n if (header[0] === 0x80 && header[1] === 0x01) {\n return true;\n }\n return false;\n }\n function isCFFFile(file) {\n var header = file.peekBytes(4);\n if (header[0] >= 1 && header[3] >= 1 && header[3] <= 4) {\n return true;\n }\n return false;\n }\n function getFontFileType(file, _ref) {\n var type = _ref.type,\n subtype = _ref.subtype,\n composite = _ref.composite;\n\n var fileType = void 0,\n fileSubtype = void 0;\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 return [fileType, fileSubtype];\n }\n function buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n var toFontChar = [],\n unicode;\n for (var i = 0, ii = encoding.length; i < ii; i++) {\n unicode = (0, _unicode.getUnicodeForGlyph)(encoding[i], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[i] = unicode;\n }\n }\n for (var charCode in differences) {\n unicode = (0, _unicode.getUnicodeForGlyph)(differences[charCode], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[+charCode] = unicode;\n }\n }\n return toFontChar;\n }\n function adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId) {\n var newMap = Object.create(null);\n var toFontChar = [];\n var privateUseAreaIndex = 0;\n var nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n var privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n for (var originalCharCode in charCodeToGlyphId) {\n originalCharCode |= 0;\n var glyphId = charCodeToGlyphId[originalCharCode];\n if (!hasGlyph(glyphId)) {\n continue;\n }\n if (nextAvailableFontCharCode > privateUseOffetEnd) {\n privateUseAreaIndex++;\n if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n (0, _util.warn)('Ran out of space in font private use area.');\n break;\n }\n nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n }\n var fontCharCode = nextAvailableFontCharCode++;\n if (glyphId === 0) {\n glyphId = newGlyphZeroId;\n }\n newMap[fontCharCode] = glyphId;\n toFontChar[originalCharCode] = fontCharCode;\n }\n return {\n toFontChar: toFontChar,\n charCodeToGlyphId: newMap,\n nextAvailableFontCharCode: nextAvailableFontCharCode\n };\n }\n function getRanges(glyphs, numGlyphs) {\n var codes = [];\n for (var charCode in glyphs) {\n if (glyphs[charCode] >= numGlyphs) {\n continue;\n }\n codes.push({\n fontCharCode: charCode | 0,\n glyphId: glyphs[charCode]\n });\n }\n if (codes.length === 0) {\n codes.push({\n fontCharCode: 0,\n glyphId: 0\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 for (var n = 0; n < length;) {\n var start = codes[n].fontCharCode;\n var codeIndices = [codes[n].glyphId];\n ++n;\n var end = start;\n while (n < length && end + 1 === codes[n].fontCharCode) {\n codeIndices.push(codes[n].glyphId);\n ++end;\n ++n;\n if (end === 0xFFFF) {\n break;\n }\n }\n ranges.push([start, end, codeIndices]);\n }\n return ranges;\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 for (i = ranges.length - 1; i >= 0; --i) {\n if (ranges[i][0] <= 0xFFFF) {\n break;\n }\n }\n var bmpLength = i + 1;\n if (ranges[i][0] < 0xFFFF && ranges[i][1] === 0xFFFF) {\n ranges[i][1] = 0xFFFE;\n }\n var trailingRangesCount = ranges[i][1] < 0xFFFF ? 1 : 0;\n var segCount = bmpLength + trailingRangesCount;\n var searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n 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 for (i = 0, ii = bmpLength; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n end = range[1];\n startCount += string16(start);\n endCount += string16(end);\n codes = range[2];\n var contiguous = true;\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n contiguous = false;\n break;\n }\n }\n if (!contiguous) {\n var offset = (segCount - i) * 2 + bias * 2;\n bias += end - start + 1;\n idDeltas += string16(0);\n idRangeOffsets += string16(offset);\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 if (trailingRangesCount > 0) {\n endCount += '\\xFF\\xFF';\n startCount += '\\xFF\\xFF';\n idDeltas += '\\x00\\x01';\n idRangeOffsets += '\\x00\\x00';\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 if (numTables > 1) {\n cmap += '\\x00\\x03' + '\\x00\\x0A' + (0, _util.string32)(4 + numTables * 8 + 4 + format314.length);\n format31012 = '';\n for (i = 0, ii = ranges.length; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n codes = range[2];\n var code = codes[0];\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n end = range[0] + j - 1;\n format31012 += (0, _util.string32)(start) + (0, _util.string32)(end) + (0, _util.string32)(code);\n start = end + 1;\n code = codes[j];\n }\n }\n format31012 += (0, _util.string32)(start) + (0, _util.string32)(range[1]) + (0, _util.string32)(code);\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 return cmap + '\\x00\\x04' + string16(format314.length + 4) + format314 + header31012 + format31012;\n }\n function validateOS2Table(os2) {\n var stream = new _stream.Stream(os2.data);\n var version = stream.getUint16();\n stream.getBytes(60);\n var selection = stream.getUint16();\n if (version < 4 && selection & 0x0300) {\n return false;\n }\n var firstChar = stream.getUint16();\n var lastChar = stream.getUint16();\n if (firstChar > lastChar) {\n return false;\n }\n stream.getBytes(6);\n var usWinAscent = stream.getUint16();\n if (usWinAscent === 0) {\n return false;\n }\n os2.data[8] = os2.data[9] = 0;\n return true;\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 if (charstrings) {\n for (var code in charstrings) {\n code |= 0;\n if (firstCharIndex > code || !firstCharIndex) {\n firstCharIndex = code;\n }\n if (lastCharIndex < code) {\n lastCharIndex = code;\n }\n var position = (0, _unicode.getUnicodeRangeFor)(code);\n if (position < 32) {\n ulUnicodeRange1 |= 1 << position;\n } else if (position < 64) {\n ulUnicodeRange2 |= 1 << position - 32;\n } else if (position < 96) {\n ulUnicodeRange3 |= 1 << position - 64;\n } else if (position < 123) {\n ulUnicodeRange4 |= 1 << position - 96;\n } else {\n throw new _util.FormatError('Unicode ranges Bits > 123 are reserved for internal usage');\n }\n }\n if (lastCharIndex > 0xFFFF) {\n lastCharIndex = 0xFFFF;\n }\n } else {\n firstCharIndex = 0;\n lastCharIndex = 255;\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 if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n typoDescent = -typoDescent;\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 function createPostTable(properties) {\n var angle = Math.floor(properties.italicAngle * Math.pow(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 function createNameTable(name, proto) {\n if (!proto) {\n proto = [[], []];\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 for (i = 0, ii = strings.length; i < ii; i++) {\n str = proto[1][i] || strings[i];\n var strBufUnicode = [];\n for (j = 0, jj = str.length; j < jj; j++) {\n strBufUnicode.push(string16(str.charCodeAt(j)));\n }\n stringsUnicode.push(strBufUnicode.join(''));\n }\n 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 for (i = 0, ii = platforms.length; i < ii; i++) {\n var strs = names[i];\n for (j = 0, jj = strs.length; j < jj; j++) {\n str = strs[j];\n var nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + string16(strOffset);\n nameTable += nameRecord;\n strOffset += str.length;\n }\n }\n nameTable += strings.join('') + stringsUnicode.join('');\n return nameTable;\n }\n Font.prototype = {\n name: null,\n font: null,\n mimetype: null,\n encoding: null,\n get renderer() {\n var renderer = _font_renderer.FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n return (0, _util.shadow)(this, 'renderer', renderer);\n },\n exportData: function Font_exportData() {\n var data = {};\n for (var i in this) {\n if (this.hasOwnProperty(i)) {\n data[i] = this[i];\n }\n }\n return data;\n },\n fallbackToSystemFont: function Font_fallbackToSystemFont() {\n var _this = this;\n\n this.missingFile = true;\n var charCode, unicode;\n var name = this.name;\n var type = this.type;\n var subtype = this.subtype;\n var fontName = name.replace(/[,_]/g, '-');\n var stdFontMap = (0, _standard_fonts.getStdFontMap)(),\n nonStdFontMap = (0, _standard_fonts.getNonStdFontMap)();\n var isStandardFont = !!stdFontMap[fontName] || !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]);\n fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n this.bold = fontName.search(/bold/gi) !== -1;\n this.italic = fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n this.black = name.search(/Black/g) !== -1;\n this.remeasure = Object.keys(this.widths).length > 0;\n if (isStandardFont && type === 'CIDFontType2' && this.cidEncoding.indexOf('Identity-') === 0) {\n var GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)();\n var map = [];\n for (charCode in GlyphMapForStandardFonts) {\n map[+charCode] = GlyphMapForStandardFonts[charCode];\n }\n if (/Arial-?Black/i.test(name)) {\n var SupplementalGlyphMapForArialBlack = (0, _standard_fonts.getSupplementalGlyphMapForArialBlack)();\n for (charCode in SupplementalGlyphMapForArialBlack) {\n map[+charCode] = SupplementalGlyphMapForArialBlack[charCode];\n }\n } else if (/Calibri/i.test(name)) {\n var SupplementalGlyphMapForCalibri = (0, _standard_fonts.getSupplementalGlyphMapForCalibri)();\n for (charCode in SupplementalGlyphMapForCalibri) {\n map[+charCode] = SupplementalGlyphMapForCalibri[charCode];\n }\n }\n var isIdentityUnicode = this.toUnicode instanceof IdentityToUnicodeMap;\n if (!isIdentityUnicode) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n this.toFontChar = map;\n this.toUnicode = new ToUnicodeMap(map);\n } else if (/Symbol/i.test(fontName)) {\n this.toFontChar = buildToFontChar(_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 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 var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n if (!_this.composite) {\n var glyphName = _this.differences[charCode] || _this.defaultEncoding[charCode];\n unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n unicodeCharCode = unicode;\n }\n }\n _this.toFontChar[charCode] = unicodeCharCode;\n });\n }\n this.loadedName = fontName.split('-')[0];\n this.fontType = getFontType(type, subtype);\n },\n checkAndRepair: function Font_checkAndRepair(name, font, properties) {\n var VALID_TABLES = ['OS/2', 'cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'post', 'loca', 'glyf', 'fpgm', 'prep', 'cvt ', 'CFF '];\n function readTables(file, numTables) {\n var 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 for (var i = 0; i < numTables; i++) {\n var table = readTableEntry(font);\n if (!VALID_TABLES.includes(table.tag)) {\n continue;\n }\n if (table.length === 0) {\n continue;\n }\n tables[table.tag] = table;\n }\n return tables;\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 if (tag === 'head') {\n data[8] = data[9] = data[10] = data[11] = 0;\n data[17] |= 0x20;\n }\n return {\n tag: tag,\n checksum: checksum,\n length: length,\n offset: offset,\n data: data\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 function readTrueTypeCollectionHeader(ttc) {\n var ttcTag = (0, _util.bytesToString)(ttc.getBytes(4));\n (0, _util.assert)(ttcTag === 'ttcf', 'Must be a TrueType Collection font.');\n var majorVersion = ttc.getUint16();\n var minorVersion = ttc.getUint16();\n var numFonts = ttc.getInt32() >>> 0;\n var offsetTable = [];\n for (var i = 0; i < numFonts; i++) {\n offsetTable.push(ttc.getInt32() >>> 0);\n }\n var header = {\n ttcTag: ttcTag,\n majorVersion: majorVersion,\n minorVersion: minorVersion,\n numFonts: numFonts,\n offsetTable: offsetTable\n };\n switch (majorVersion) {\n case 1:\n return header;\n case 2:\n header.dsigTag = ttc.getInt32() >>> 0;\n header.dsigLength = ttc.getInt32() >>> 0;\n header.dsigOffset = ttc.getInt32() >>> 0;\n return header;\n }\n throw new _util.FormatError('Invalid TrueType Collection majorVersion: ' + majorVersion + '.');\n }\n function readTrueTypeCollectionData(ttc, fontName) {\n var _readTrueTypeCollecti = readTrueTypeCollectionHeader(ttc),\n numFonts = _readTrueTypeCollecti.numFonts,\n offsetTable = _readTrueTypeCollecti.offsetTable;\n\n for (var i = 0; i < numFonts; i++) {\n ttc.pos = (ttc.start || 0) + offsetTable[i];\n var potentialHeader = readOpenTypeHeader(ttc);\n var potentialTables = readTables(ttc, potentialHeader.numTables);\n if (!potentialTables['name']) {\n throw new _util.FormatError('TrueType Collection font must contain a \"name\" table.');\n }\n var nameTable = readNameTable(potentialTables['name']);\n for (var j = 0, jj = nameTable.length; j < jj; j++) {\n for (var k = 0, kk = nameTable[j].length; k < kk; k++) {\n var nameEntry = nameTable[j][k];\n if (nameEntry && nameEntry.replace(/\\s/g, '') === fontName) {\n return {\n header: potentialHeader,\n tables: potentialTables\n };\n }\n }\n }\n }\n throw new _util.FormatError('TrueType Collection does not contain \"' + fontName + '\" font.');\n }\n function readCmapTable(cmap, font, 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 var segment;\n var start = (font.start ? font.start : 0) + cmap.offset;\n font.pos = start;\n font.getUint16();\n var numTables = font.getUint16();\n var potentialTable;\n var canBreak = false;\n for (var i = 0; i < numTables; i++) {\n var platformId = font.getUint16();\n var encodingId = font.getUint16();\n var offset = font.getInt32() >>> 0;\n var useTable = false;\n if (potentialTable && potentialTable.platformId === platformId && potentialTable.encodingId === encodingId) {\n continue;\n }\n if (platformId === 0 && encodingId === 0) {\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 if (!isSymbolicFont) {\n canBreak = true;\n }\n } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n useTable = true;\n canBreak = true;\n }\n if (useTable) {\n potentialTable = {\n platformId: platformId,\n encodingId: encodingId,\n offset: offset\n };\n }\n if (canBreak) {\n break;\n }\n }\n if (potentialTable) {\n font.pos = start + potentialTable.offset;\n }\n if (!potentialTable || font.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 var format = font.getUint16();\n font.getUint16();\n font.getUint16();\n var hasShortCmap = false;\n var mappings = [];\n var j, glyphId;\n if (format === 0) {\n for (j = 0; j < 256; j++) {\n var index = font.getByte();\n if (!index) {\n continue;\n }\n mappings.push({\n charCode: j,\n glyphId: index\n });\n }\n hasShortCmap = true;\n } else if (format === 4) {\n var segCount = font.getUint16() >> 1;\n font.getBytes(6);\n var segIndex,\n segments = [];\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments.push({ end: font.getUint16() });\n }\n font.getUint16();\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].start = font.getUint16();\n }\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].delta = font.getUint16();\n }\n var offsetsCount = 0;\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n var rangeOffset = font.getUint16();\n if (!rangeOffset) {\n segment.offsetIndex = -1;\n continue;\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 var offsets = [];\n for (j = 0; j < offsetsCount; j++) {\n offsets.push(font.getUint16());\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 for (j = start; j <= end; j++) {\n if (j === 0xFFFF) {\n continue;\n }\n glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n glyphId = glyphId + delta & 0xFFFF;\n mappings.push({\n charCode: j,\n glyphId: glyphId\n });\n }\n }\n } else if (format === 6) {\n var firstCode = font.getUint16();\n var entryCount = font.getUint16();\n for (j = 0; j < entryCount; j++) {\n glyphId = font.getUint16();\n var charCode = firstCode + j;\n mappings.push({\n charCode: charCode,\n glyphId: 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 mappings.sort(function (a, b) {\n return a.charCode - b.charCode;\n });\n for (i = 1; i < mappings.length; i++) {\n if (mappings[i - 1].charCode === mappings[i].charCode) {\n mappings.splice(i, 1);\n i--;\n }\n }\n return {\n platformId: potentialTable.platformId,\n encodingId: potentialTable.encodingId,\n mappings: mappings,\n hasShortCmap: hasShortCmap\n };\n }\n function sanitizeMetrics(font, header, metrics, numGlyphs) {\n if (!header) {\n if (metrics) {\n metrics.data = null;\n }\n return;\n }\n font.pos = (font.start ? font.start : 0) + header.offset;\n font.pos += header.length - 2;\n var numOfMetrics = font.getUint16();\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 var numOfSidebearings = numGlyphs - numOfMetrics;\n var numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1);\n if (numMissing > 0) {\n var entries = new Uint8Array(metrics.length + numMissing * 2);\n entries.set(metrics.data);\n metrics.data = entries;\n }\n }\n function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) {\n var glyphProfile = {\n length: 0,\n sizeOfInstructions: 0\n };\n if (sourceEnd - sourceStart <= 12) {\n return glyphProfile;\n }\n var glyf = source.subarray(sourceStart, sourceEnd);\n var contoursCount = signedInt16(glyf[0], glyf[1]);\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 var i,\n j = 10,\n flagsCount = 0;\n for (i = 0; i < contoursCount; i++) {\n var endPoint = glyf[j] << 8 | glyf[j + 1];\n flagsCount = endPoint + 1;\n j += 2;\n }\n 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 for (i = 0; i < flagsCount; i++) {\n var flag = glyf[j++];\n if (flag & 0xC0) {\n glyf[j - 1] = flag & 0x3F;\n }\n var xyLength = (flag & 2 ? 1 : flag & 16 ? 0 : 2) + (flag & 4 ? 1 : flag & 32 ? 0 : 2);\n coordinatesLength += xyLength;\n if (flag & 8) {\n var repeat = glyf[j++];\n i += repeat;\n coordinatesLength += repeat * xyLength;\n }\n }\n if (coordinatesLength === 0) {\n return glyphProfile;\n }\n var glyphDataLength = j + coordinatesLength;\n if (glyphDataLength > glyf.length) {\n return glyphProfile;\n }\n if (!hintsValid && instructionsLength > 0) {\n dest.set(glyf.subarray(0, instructionsStart), destStart);\n dest.set([0, 0], destStart + instructionsStart);\n dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2);\n glyphDataLength -= instructionsLength;\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = glyphDataLength + 3 & ~3;\n }\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = glyphDataLength + 3 & ~3;\n dest.set(glyf.subarray(0, glyphDataLength), destStart);\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\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 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 var indexToLocFormat = int16(data[50], data[51]);\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 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 function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions) {\n var itemSize, itemDecode, itemEncode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = function fontItemDecodeLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n };\n itemEncode = function fontItemEncodeLong(data, offset, value) {\n data[offset] = value >>> 24 & 0xFF;\n data[offset + 1] = value >> 16 & 0xFF;\n data[offset + 2] = value >> 8 & 0xFF;\n data[offset + 3] = value & 0xFF;\n };\n } else {\n itemSize = 2;\n itemDecode = function fontItemDecode(data, offset) {\n return data[offset] << 9 | data[offset + 1] << 1;\n };\n itemEncode = function fontItemEncode(data, offset, value) {\n data[offset] = value >> 9 & 0xFF;\n data[offset + 1] = value >> 1 & 0xFF;\n };\n }\n var numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n var locaData = loca.data;\n var locaDataSize = itemSize * (1 + numGlyphsOut);\n 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 startOffset = itemDecode(locaData, 0);\n var writeOffset = 0;\n var missingGlyphs = Object.create(null);\n itemEncode(locaData, 0, writeOffset);\n var i, j;\n for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n var endOffset = itemDecode(locaData, j);\n if (endOffset === 0) {\n endOffset = startOffset;\n }\n if (endOffset > oldGlyfDataLength && (oldGlyfDataLength + 3 & ~3) === endOffset) {\n endOffset = oldGlyfDataLength;\n }\n if (endOffset > oldGlyfDataLength) {\n startOffset = endOffset;\n }\n var glyphProfile = sanitizeGlyph(oldGlyfData, startOffset, endOffset, newGlyfData, writeOffset, hintsValid);\n var newLength = glyphProfile.length;\n if (newLength === 0) {\n missingGlyphs[i] = true;\n }\n if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n }\n writeOffset += newLength;\n itemEncode(locaData, j, writeOffset);\n startOffset = endOffset;\n }\n 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 for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n itemEncode(locaData, j, simpleGlyph.length);\n }\n glyf.data = simpleGlyph;\n } else if (dupFirstEntry) {\n var firstEntryLength = itemDecode(locaData, itemSize);\n if (newGlyfData.length > firstEntryLength + writeOffset) {\n glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n } else {\n glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n glyf.data.set(newGlyfData.subarray(0, writeOffset));\n }\n glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength);\n } else {\n glyf.data = newGlyfData.subarray(0, writeOffset);\n }\n return {\n missingGlyphs: missingGlyphs,\n maxSizeOfInstructions: maxSizeOfInstructions\n };\n }\n function readPostScriptTable(post, properties, 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.getBytes(28);\n var glyphNames;\n var valid = true;\n var i;\n switch (version) {\n case 0x00010000:\n glyphNames = MacStandardGlyphOrdering;\n break;\n case 0x00020000:\n var numGlyphs = font.getUint16();\n if (numGlyphs !== maxpNumGlyphs) {\n valid = false;\n break;\n }\n var glyphNameIndexes = [];\n for (i = 0; i < numGlyphs; ++i) {\n var index = font.getUint16();\n if (index >= 32768) {\n valid = false;\n break;\n }\n glyphNameIndexes.push(index);\n }\n if (!valid) {\n break;\n }\n var customNames = [];\n var strBuf = [];\n while (font.pos < end) {\n var stringLength = font.getByte();\n strBuf.length = stringLength;\n for (i = 0; i < stringLength; ++i) {\n strBuf[i] = String.fromCharCode(font.getByte());\n }\n customNames.push(strBuf.join(''));\n }\n glyphNames = [];\n for (i = 0; i < numGlyphs; ++i) {\n var j = glyphNameIndexes[i];\n if (j < 258) {\n glyphNames.push(MacStandardGlyphOrdering[j]);\n continue;\n }\n glyphNames.push(customNames[j - 258]);\n }\n break;\n case 0x00030000:\n break;\n default:\n (0, _util.warn)('Unknown/unsupported post table version ' + version);\n valid = false;\n if (properties.defaultEncoding) {\n glyphNames = properties.defaultEncoding;\n }\n break;\n }\n properties.glyphNames = glyphNames;\n return valid;\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 if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n return names;\n }\n var numRecords = font.getUint16();\n var stringsStart = font.getUint16();\n var records = [];\n var NAME_RECORD_LENGTH = 12;\n var i, ii;\n 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 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 for (i = 0, ii = records.length; i < ii; i++) {\n var record = records[i];\n if (record.length <= 0) {\n continue;\n }\n var pos = start + stringsStart + record.offset;\n if (pos + record.length > end) {\n continue;\n }\n font.pos = pos;\n var nameIndex = record.name;\n if (record.encoding) {\n var str = '';\n for (var j = 0, jj = record.length; j < jj; j += 2) {\n str += String.fromCharCode(font.getUint16());\n }\n names[1][nameIndex] = str;\n } else {\n names[0][nameIndex] = (0, _util.bytesToString)(font.getBytes(record.length));\n }\n }\n return names;\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 function sanitizeTTProgram(table, ttContext) {\n var data = table.data;\n var i = 0,\n j,\n n,\n b,\n funcId,\n pc,\n lastEndf = 0,\n lastDeff = 0;\n var stack = [];\n var callstack = [];\n var functionsCalled = [];\n var tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n var inFDEF = false,\n ifLevel = 0,\n inELSE = 0;\n for (var ii = data.length; i < ii;) {\n var op = data[i++];\n if (op === 0x40) {\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if (op === 0x41) {\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push(b << 8 | data[i++]);\n }\n }\n } else if ((op & 0xF8) === 0xB0) {\n n = op - 0xB0 + 1;\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if ((op & 0xF8) === 0xB8) {\n n = op - 0xB8 + 1;\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push(b << 8 | data[i++]);\n }\n }\n } else if (op === 0x2B && !tooComplexToFollowFunctions) {\n if (!inFDEF && !inELSE) {\n funcId = stack[stack.length - 1];\n if (isNaN(funcId)) {\n (0, _util.info)('TT: CALL empty stack (or invalid entry).');\n } else {\n ttContext.functionsUsed[funcId] = true;\n if (funcId in ttContext.functionsStackDeltas) {\n var newStackLength = stack.length + ttContext.functionsStackDeltas[funcId];\n if (newStackLength < 0) {\n (0, _util.warn)('TT: CALL invalid functions stack delta.');\n ttContext.hintsValid = false;\n return;\n }\n stack.length = newStackLength;\n } else if (funcId in ttContext.functionsDefined && !functionsCalled.includes(funcId)) {\n callstack.push({\n data: data,\n i: i,\n stackTop: stack.length - 1\n });\n functionsCalled.push(funcId);\n pc = ttContext.functionsDefined[funcId];\n if (!pc) {\n (0, _util.warn)('TT: CALL non-existent function');\n ttContext.hintsValid = false;\n return;\n }\n data = pc.data;\n i = pc.i;\n }\n }\n }\n } else if (op === 0x2C && !tooComplexToFollowFunctions) {\n if (inFDEF || inELSE) {\n (0, _util.warn)('TT: nested FDEFs not allowed');\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n lastDeff = i;\n funcId = stack.pop();\n ttContext.functionsDefined[funcId] = {\n data: data,\n i: i\n };\n } else if (op === 0x2D) {\n if (inFDEF) {\n inFDEF = false;\n lastEndf = i;\n } else {\n pc = callstack.pop();\n if (!pc) {\n (0, _util.warn)('TT: ENDF bad stack');\n ttContext.hintsValid = false;\n return;\n }\n funcId = functionsCalled.pop();\n data = pc.data;\n i = pc.i;\n ttContext.functionsStackDeltas[funcId] = 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 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 --ifLevel;\n } else if (op === 0x1C) {\n if (!inFDEF && !inELSE) {\n var offset = stack[stack.length - 1];\n if (offset > 0) {\n i += offset - 1;\n }\n }\n }\n if (!inFDEF && !inELSE) {\n var stackDelta = op <= 0x8E ? TTOpsStackDeltas[op] : op >= 0xC0 && op <= 0xDF ? -1 : op >= 0xE0 ? -2 : 0;\n if (op >= 0x71 && op <= 0x75) {\n n = stack.pop();\n if (!isNaN(n)) {\n stackDelta = -n * 2;\n }\n }\n while (stackDelta < 0 && stack.length > 0) {\n stack.pop();\n stackDelta++;\n }\n while (stackDelta > 0) {\n stack.push(NaN);\n stackDelta--;\n }\n }\n }\n ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n var content = [data];\n if (i > data.length) {\n content.push(new Uint8Array(i - data.length));\n }\n if (lastDeff > lastEndf) {\n (0, _util.warn)('TT: complementing a missing function tail');\n content.push(new Uint8Array([0x22, 0x2D]));\n }\n foldTTTable(table, content);\n }\n function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n if (ttContext.tooComplexToFollowFunctions) {\n return;\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 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 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 function foldTTTable(table, content) {\n if (content.length > 1) {\n var newLength = 0;\n var j, jj;\n for (j = 0, jj = content.length; j < jj; j++) {\n newLength += content[j].length;\n }\n newLength = newLength + 3 & ~3;\n var result = new Uint8Array(newLength);\n var pos = 0;\n for (j = 0, jj = content.length; j < jj; j++) {\n result.set(content[j], pos);\n pos += content[j].length;\n }\n table.data = result;\n table.length = newLength;\n }\n }\n function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n var ttContext = {\n functionsDefined: [],\n functionsUsed: [],\n functionsStackDeltas: [],\n tooComplexToFollowFunctions: false,\n hintsValid: true\n };\n if (fpgm) {\n sanitizeTTProgram(fpgm, ttContext);\n }\n if (prep) {\n sanitizeTTProgram(prep, ttContext);\n }\n if (fpgm) {\n checkInvalidFunctions(ttContext, maxFunctionDefs);\n }\n if (cvt && cvt.length & 1) {\n var cvtData = new Uint8Array(cvt.length + 1);\n cvtData.set(cvt.data);\n cvt.data = cvtData;\n }\n return ttContext.hintsValid;\n }\n font = new _stream.Stream(new Uint8Array(font.getBytes()));\n var header = void 0,\n tables = void 0;\n if (isTrueTypeCollectionFile(font)) {\n var 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 var cff = void 0,\n cffFile = void 0;\n var isTrueType = !tables['CFF '];\n if (!isTrueType) {\n var isComposite = properties.composite && ((properties.cidToGidMap || []).length > 0 || !(properties.cMap instanceof _cmap.IdentityCMap));\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 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 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 this.isOpenType = false;\n }\n if (!tables['maxp']) {\n throw new _util.FormatError('Required \"maxp\" table is not found');\n }\n font.pos = (font.start || 0) + tables['maxp'].offset;\n var version = font.getInt32();\n var numGlyphs = font.getUint16();\n var numGlyphsOut = numGlyphs + 1;\n var dupFirstEntry = true;\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 var maxFunctionDefs = 0;\n var maxSizeOfInstructions = 0;\n if (version >= 0x00010000 && tables['maxp'].length >= 22) {\n font.pos += 8;\n var maxZones = font.getUint16();\n if (maxZones > 2) {\n tables['maxp'].data[14] = 0;\n tables['maxp'].data[15] = 2;\n }\n font.pos += 4;\n maxFunctionDefs = font.getUint16();\n font.pos += 4;\n maxSizeOfInstructions = font.getUint16();\n }\n 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 if (!hintsValid) {\n delete tables['fpgm'];\n delete tables['prep'];\n delete tables['cvt '];\n }\n sanitizeMetrics(font, tables['hhea'], tables['hmtx'], numGlyphsOut);\n if (!tables['head']) {\n throw new _util.FormatError('Required \"head\" table is not found');\n }\n sanitizeHead(tables['head'], numGlyphs, isTrueType ? tables['loca'].length : 0);\n var missingGlyphs = Object.create(null);\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 if (version >= 0x00010000 && tables['maxp'].length >= 22) {\n tables['maxp'].data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n tables['maxp'].data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n }\n }\n if (!tables['hhea']) {\n throw new _util.FormatError('Required \"hhea\" table is not found');\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 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 if (tables['post']) {\n readPostScriptTable(tables['post'], properties, numGlyphs);\n }\n tables['post'] = {\n tag: 'post',\n data: createPostTable(properties)\n };\n var charCodeToGlyphId = [],\n charCode;\n function hasGlyph(glyphId) {\n return !missingGlyphs[glyphId];\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 var glyphId = -1;\n if (isCidToGidMapEmpty) {\n glyphId = cid;\n } else if (cidToGidMap[cid] !== undefined) {\n glyphId = cidToGidMap[cid];\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 if (properties.hasEncoding && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0) || cmapPlatformId === -1 && cmapEncodingId === -1 && !!(0, _encodings.getEncoding)(properties.baseEncodingName)) {\n var baseEncoding = [];\n if (properties.baseEncodingName === 'MacRomanEncoding' || properties.baseEncodingName === 'WinAnsiEncoding') {\n baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n }\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n for (charCode = 0; charCode < 256; charCode++) {\n var glyphName, standardGlyphName;\n if (this.differences && charCode in this.differences) {\n glyphName = this.differences[charCode];\n } else if (charCode in baseEncoding && baseEncoding[charCode] !== '') {\n glyphName = baseEncoding[charCode];\n } else {\n glyphName = _encodings.StandardEncoding[charCode];\n }\n if (!glyphName) {\n continue;\n }\n standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n var unicodeOrCharCode;\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 var found = false;\n for (var i = 0; i < cmapMappingsLength; ++i) {\n if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n continue;\n }\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n found = true;\n break;\n }\n if (!found && properties.glyphNames) {\n var glyphId = properties.glyphNames.indexOf(glyphName);\n if (glyphId === -1 && standardGlyphName !== glyphName) {\n glyphId = properties.glyphNames.indexOf(standardGlyphName);\n }\n if (glyphId > 0 && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n }\n }\n }\n } else if (cmapPlatformId === 0 && cmapEncodingId === 0) {\n for (var _i = 0; _i < cmapMappingsLength; ++_i) {\n charCodeToGlyphId[cmapMappings[_i].charCode] = cmapMappings[_i].glyphId;\n }\n } else {\n for (var _i2 = 0; _i2 < cmapMappingsLength; ++_i2) {\n charCode = cmapMappings[_i2].charCode;\n if (cmapPlatformId === 3 && charCode >= 0xF000 && charCode <= 0xF0FF) {\n charCode &= 0xFF;\n }\n charCodeToGlyphId[charCode] = cmapMappings[_i2].glyphId;\n }\n }\n }\n if (charCodeToGlyphId.length === 0) {\n charCodeToGlyphId[0] = 0;\n }\n var glyphZeroId = numGlyphsOut - 1;\n if (!dupFirstEntry) {\n glyphZeroId = 0;\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 if (!tables['OS/2'] || !validateOS2Table(tables['OS/2'])) {\n tables['OS/2'] = {\n tag: 'OS/2',\n data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride)\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 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 var builder = new OpenTypeFileBuilder(header.version);\n for (var tableTag in tables) {\n builder.addTable(tableTag, tables[tableTag].data);\n }\n return builder.toArray();\n },\n convert: function Font_convert(fontName, font, properties) {\n properties.fixedPitch = false;\n if (properties.builtInEncoding) {\n adjustToUnicode(properties, properties.builtInEncoding);\n }\n var glyphZeroId = 1;\n if (font instanceof CFFFont) {\n glyphZeroId = font.numGlyphs - 1;\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 function getCharCodes(charCodeToGlyphId, glyphId) {\n var charCodes = null;\n for (var charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n if (!charCodes) {\n charCodes = [];\n }\n charCodes.push(charCode | 0);\n }\n }\n return charCodes;\n }\n function createCharCode(charCodeToGlyphId, glyphId) {\n for (var charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n return charCode | 0;\n }\n }\n newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId;\n return newMapping.nextAvailableFontCharCode++;\n }\n var seacs = font.seacs;\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 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 if (baseGlyphId < 0 || accentGlyphId < 0) {\n continue;\n }\n var accentOffset = {\n x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5]\n };\n var charCodes = getCharCodes(mapping, glyphId);\n if (!charCodes) {\n continue;\n }\n for (var 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: baseFontCharCode,\n accentFontCharCode: accentFontCharCode,\n accentOffset: accentOffset\n };\n }\n }\n properties.seacMap = seacMap;\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 for (var i = 1, ii = numGlyphs; i < ii; i++) {\n var width = 0;\n if (charstrings) {\n var charstring = charstrings[i - 1];\n width = 'width' in charstring ? charstring.width : 0;\n } else if (cffWidths) {\n width = Math.ceil(cffWidths[i] || 0);\n }\n hmtx += string16(width) + string16(0);\n }\n return hmtx;\n }());\n 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 get spaceWidth() {\n if ('_shadowWidth' in this) {\n return this._shadowWidth;\n }\n var possibleSpaceReplacements = ['space', 'minus', 'one', 'i', 'I'];\n var width;\n for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n var glyphName = possibleSpaceReplacements[i];\n if (glyphName in this.widths) {\n width = this.widths[glyphName];\n break;\n }\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n var glyphUnicode = glyphsUnicodeMap[glyphName];\n var charcode = 0;\n if (this.composite) {\n if (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 if (charcode <= 0) {\n charcode = glyphUnicode;\n }\n width = this.widths[charcode];\n if (width) {\n break;\n }\n }\n width = width || this.defaultWidth;\n this._shadowWidth = width;\n return width;\n },\n charToGlyph: function Font_charToGlyph(charcode, isSpace) {\n var fontCharCode, width, operatorListId;\n var widthCode = charcode;\n if (this.cMap && this.cMap.contains(charcode)) {\n widthCode = this.cMap.lookup(charcode);\n }\n width = this.widths[widthCode];\n width = (0, _util.isNum)(width) ? width : this.defaultWidth;\n var vmetric = this.vmetrics && this.vmetrics[widthCode];\n var unicode = this.toUnicode.get(charcode) || this.fallbackToUnicode.get(charcode) || charcode;\n if (typeof unicode === 'number') {\n unicode = String.fromCharCode(unicode);\n }\n var isInFont = charcode in this.toFontChar;\n fontCharCode = this.toFontChar[charcode] || charcode;\n if (this.missingFile) {\n fontCharCode = (0, _unicode.mapSpecialUnicodeValues)(fontCharCode);\n }\n if (this.isType3Font) {\n operatorListId = fontCharCode;\n }\n var accent = null;\n if (this.seacMap && this.seacMap[charcode]) {\n isInFont = true;\n var seac = this.seacMap[charcode];\n fontCharCode = seac.baseFontCharCode;\n accent = {\n fontChar: String.fromCodePoint(seac.accentFontCharCode),\n offset: seac.accentOffset\n };\n }\n var fontChar = typeof fontCharCode === 'number' ? String.fromCodePoint(fontCharCode) : '';\n var glyph = this.glyphCache[charcode];\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 return glyph;\n },\n charsToGlyphs: function Font_charsToGlyphs(chars) {\n var charsCache = this.charsCache;\n var glyphs, glyph, charcode;\n if (charsCache) {\n glyphs = charsCache[chars];\n if (glyphs) {\n return glyphs;\n }\n }\n if (!charsCache) {\n charsCache = this.charsCache = Object.create(null);\n }\n glyphs = [];\n var charsCacheKey = chars;\n var i = 0,\n ii;\n if (this.cMap) {\n var c = Object.create(null);\n while (i < chars.length) {\n this.cMap.readCharCode(chars, i, c);\n charcode = c.charcode;\n var length = c.length;\n i += length;\n 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 return charsCache[charsCacheKey] = glyphs;\n }\n };\n return 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 ErrorFont.prototype = {\n charsToGlyphs: function ErrorFont_charsToGlyphs() {\n return [];\n },\n exportData: function ErrorFont_exportData() {\n return { error: this.error };\n }\n };\n return 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 if (properties.baseEncodingName) {\n baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n } else if (isSymbolicFont) {\n for (charCode in builtInEncoding) {\n charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n }\n } else {\n baseEncoding = _encodings.StandardEncoding;\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n }\n var differences = properties.differences,\n glyphsUnicodeMap;\n if (differences) {\n for (charCode in differences) {\n var glyphName = differences[charCode];\n glyphId = glyphNames.indexOf(glyphName);\n if (glyphId === -1) {\n if (!glyphsUnicodeMap) {\n glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n }\n var standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n if (standardGlyphName !== glyphName) {\n glyphId = glyphNames.indexOf(standardGlyphName);\n }\n }\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n }\n return charCodeToGlyphId;\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 while (i < scanLength) {\n j = 0;\n while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n i += j;\n while (i < streamBytesLength && (0, _util.isSpace)(streamBytes[i])) {\n i++;\n }\n found = true;\n break;\n }\n i++;\n }\n return {\n found: found,\n length: i\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 try {\n headerBytes = stream.getBytes(suggestedLength);\n headerBytesLength = headerBytes.length;\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n }\n if (headerBytesLength === suggestedLength) {\n block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length);\n if (block.found && block.length === suggestedLength) {\n return {\n stream: new _stream.Stream(headerBytes),\n length: suggestedLength\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 while (true) {\n var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n if (block.length === 0) {\n break;\n }\n stream.pos += block.length;\n if (block.found) {\n actualLength = stream.pos - streamStartPos;\n break;\n }\n }\n stream.pos = streamStartPos;\n if (actualLength) {\n return {\n stream: new _stream.Stream(stream.getBytes(actualLength)),\n length: actualLength\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 function getEexecBlock(stream, suggestedLength) {\n var eexecBytes = stream.getBytes();\n return {\n stream: new _stream.Stream(eexecBytes),\n length: eexecBytes.length\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 if (pfbHeaderPresent) {\n file.skip(PFB_HEADER_SIZE);\n headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\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 if (pfbHeaderPresent) {\n pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\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();\n for (var info in data.properties) {\n properties[info] = data.properties[info];\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 Type1Font.prototype = {\n get numGlyphs() {\n return this.charstrings.length + 1;\n },\n getCharset: function Type1Font_getCharset() {\n var charset = ['.notdef'];\n var charstrings = this.charstrings;\n for (var glyphId = 0; glyphId < charstrings.length; glyphId++) {\n charset.push(charstrings[glyphId].glyphName);\n }\n return charset;\n },\n getGlyphMapping: function Type1Font_getGlyphMapping(properties) {\n var charstrings = this.charstrings;\n var glyphNames = ['.notdef'],\n glyphId;\n for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n glyphNames.push(charstrings[glyphId].glyphName);\n }\n var encoding = properties.builtInEncoding;\n if (encoding) {\n var builtInEncoding = Object.create(null);\n for (var charCode in encoding) {\n glyphId = glyphNames.indexOf(encoding[charCode]);\n if (glyphId >= 0) {\n builtInEncoding[charCode] = glyphId;\n }\n }\n }\n return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n },\n hasGlyphId: function Type1Font_hasGlyphID(id) {\n if (id < 0 || id >= this.numGlyphs) {\n return false;\n }\n if (id === 0) {\n return true;\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 for (i = 0, ii = charstrings.length; i < ii; i++) {\n var charstring = charstrings[i];\n if (charstring.seac) {\n seacMap[i + 1] = charstring.seac;\n }\n }\n return seacMap;\n },\n getType2Charstrings: function Type1Font_getType2Charstrings(type1Charstrings) {\n var type2Charstrings = [];\n for (var i = 0, ii = type1Charstrings.length; i < ii; i++) {\n type2Charstrings.push(type1Charstrings[i].charstring);\n }\n return type2Charstrings;\n },\n getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) {\n var bias = 0;\n var count = type1Subrs.length;\n if (count < 1133) {\n bias = 107;\n } else if (count < 33769) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n var type2Subrs = [];\n var i;\n for (i = 0; i < bias; i++) {\n type2Subrs.push([0x0B]);\n }\n for (i = 0; i < count; i++) {\n type2Subrs.push(type1Subrs[i]);\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 = [0];\n var i, ii;\n for (i = 0; i < count; i++) {\n var index = _cff_parser.CFFStandardStrings.indexOf(charstrings[i].glyphName);\n if (index === -1) {\n index = 0;\n }\n charsetArray.push(index >> 8 & 0xff, index & 0xff);\n }\n cff.charset = new _cff_parser.CFFCharset(false, 0, [], charsetArray);\n var charStringsIndex = new _cff_parser.CFFIndex();\n charStringsIndex.add([0x8B, 0x0E]);\n for (i = 0; i < count; i++) {\n charStringsIndex.add(glyphs[i]);\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 for (i = 0, ii = fields.length; i < ii; i++) {\n var field = fields[i];\n if (!(field in properties.privateData)) {\n continue;\n }\n var value = properties.privateData[field];\n if (Array.isArray(value)) {\n for (var j = value.length - 1; j > 0; j--) {\n value[j] -= value[j - 1];\n }\n }\n privateDict.setByName(field, value);\n }\n cff.topDict.privateDict = privateDict;\n var subrIndex = new _cff_parser.CFFIndex();\n for (i = 0, ii = subrs.length; i < ii; i++) {\n subrIndex.add(subrs[i]);\n }\n privateDict.subrsIndex = subrIndex;\n var compiler = new _cff_parser.CFFCompiler(cff);\n return compiler.compile();\n }\n };\n return Type1Font;\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 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 CFFFont.prototype = {\n get numGlyphs() {\n return this.cff.charStrings.count;\n },\n getCharset: function CFFFont_getCharset() {\n return this.cff.charset.charset;\n },\n getGlyphMapping: function CFFFont_getGlyphMapping() {\n var cff = this.cff;\n var properties = this.properties;\n var charsets = cff.charset.charset;\n var charCodeToGlyphId;\n var glyphId;\n if (properties.composite) {\n charCodeToGlyphId = Object.create(null);\n if (cff.isCIDFont) {\n for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n var cid = charsets[glyphId];\n var charCode = properties.cMap.charCodeOf(cid);\n charCodeToGlyphId[charCode] = glyphId;\n }\n } else {\n for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n charCodeToGlyphId[glyphId] = glyphId;\n }\n }\n return charCodeToGlyphId;\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}();\nexports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED;\nexports.ErrorFont = ErrorFont;\nexports.Font = Font;\nexports.FontFlags = FontFlags;\nexports.ToUnicodeMap = ToUnicodeMap;\nexports.IdentityToUnicodeMap = IdentityToUnicodeMap;\nexports.getFontType = getFontType;\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CFFFDSelect = exports.CFFCompiler = exports.CFFPrivateDict = exports.CFFTopDict = exports.CFFCharset = exports.CFFIndex = exports.CFFStrings = exports.CFFHeader = exports.CFF = exports.CFFParser = exports.CFFStandardStrings = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _charsets = __w_pdfjs_require__(158);\n\nvar _encodings = __w_pdfjs_require__(159);\n\nvar MAX_SUBR_NESTING = 10;\nvar CFFStandardStrings = ['.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall', '001.000', '001.001', '001.002', '001.003', 'Black', 'Bold', 'Book', 'Light', 'Medium', 'Regular', 'Roman', 'Semibold'];\nvar CFFParser = function CFFParserClosure() {\n var CharstringValidationData = [null, {\n id: 'hstem',\n min: 2,\n stackClearing: true,\n stem: true\n }, null, {\n id: 'vstem',\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: 'vmoveto',\n min: 1,\n stackClearing: true\n }, {\n id: 'rlineto',\n min: 2,\n resetStack: true\n }, {\n id: 'hlineto',\n min: 1,\n resetStack: true\n }, {\n id: 'vlineto',\n min: 1,\n resetStack: true\n }, {\n id: 'rrcurveto',\n min: 6,\n resetStack: true\n }, null, {\n id: 'callsubr',\n min: 1,\n undefStack: true\n }, {\n id: 'return',\n min: 0,\n undefStack: true\n }, null, null, {\n id: 'endchar',\n min: 0,\n stackClearing: true\n }, null, null, null, {\n id: 'hstemhm',\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: 'hintmask',\n min: 0,\n stackClearing: true\n }, {\n id: 'cntrmask',\n min: 0,\n stackClearing: true\n }, {\n id: 'rmoveto',\n min: 2,\n stackClearing: true\n }, {\n id: 'hmoveto',\n min: 1,\n stackClearing: true\n }, {\n id: 'vstemhm',\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: 'rcurveline',\n min: 8,\n resetStack: true\n }, {\n id: 'rlinecurve',\n min: 8,\n resetStack: true\n }, {\n id: 'vvcurveto',\n min: 4,\n resetStack: true\n }, {\n id: 'hhcurveto',\n min: 4,\n resetStack: true\n }, null, {\n id: 'callgsubr',\n min: 1,\n undefStack: true\n }, {\n id: 'vhcurveto',\n min: 4,\n resetStack: true\n }, {\n id: 'hvcurveto',\n min: 4,\n resetStack: true\n }];\n var CharstringValidationData12 = [null, null, null, {\n id: 'and',\n min: 2,\n stackDelta: -1\n }, {\n id: 'or',\n min: 2,\n stackDelta: -1\n }, {\n id: 'not',\n min: 1,\n stackDelta: 0\n }, null, null, null, {\n id: 'abs',\n min: 1,\n stackDelta: 0\n }, {\n id: 'add',\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] + stack[index - 1];\n }\n }, {\n id: 'sub',\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] - stack[index - 1];\n }\n }, {\n id: 'div',\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] / stack[index - 1];\n }\n }, null, {\n id: 'neg',\n min: 1,\n stackDelta: 0,\n stackFn: function stack_div(stack, index) {\n stack[index - 1] = -stack[index - 1];\n }\n }, {\n id: 'eq',\n min: 2,\n stackDelta: -1\n }, null, null, {\n id: 'drop',\n min: 1,\n stackDelta: -1\n }, null, {\n id: 'put',\n min: 2,\n stackDelta: -2\n }, {\n id: 'get',\n min: 1,\n stackDelta: 0\n }, {\n id: 'ifelse',\n min: 4,\n stackDelta: -3\n }, {\n id: 'random',\n min: 0,\n stackDelta: 1\n }, {\n id: 'mul',\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] * stack[index - 1];\n }\n }, null, {\n id: 'sqrt',\n min: 1,\n stackDelta: 0\n }, {\n id: 'dup',\n min: 1,\n stackDelta: 1\n }, {\n id: 'exch',\n min: 2,\n stackDelta: 0\n }, {\n id: 'index',\n min: 2,\n stackDelta: 0\n }, {\n id: 'roll',\n min: 3,\n stackDelta: -2\n }, null, null, null, {\n id: 'hflex',\n min: 7,\n resetStack: true\n }, {\n id: 'flex',\n min: 13,\n resetStack: true\n }, {\n id: 'hflex1',\n min: 9,\n resetStack: true\n }, {\n id: 'flex1',\n min: 11,\n resetStack: true\n }];\n function CFFParser(file, properties, seacAnalysisEnabled) {\n this.bytes = file.getBytes();\n this.properties = properties;\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n }\n CFFParser.prototype = {\n parse: function CFFParser_parse() {\n var properties = this.properties;\n var cff = new CFF();\n this.cff = cff;\n var header = this.parseHeader();\n var nameIndex = this.parseIndex(header.endPos);\n var topDictIndex = this.parseIndex(nameIndex.endPos);\n var stringIndex = this.parseIndex(topDictIndex.endPos);\n var globalSubrIndex = this.parseIndex(stringIndex.endPos);\n var topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n cff.header = header.obj;\n cff.names = this.parseNameIndex(nameIndex.obj);\n cff.strings = this.parseStringIndex(stringIndex.obj);\n cff.topDict = topDict;\n cff.globalSubrIndex = globalSubrIndex.obj;\n this.parsePrivateDict(cff.topDict);\n cff.isCIDFont = topDict.hasName('ROS');\n var charStringOffset = topDict.getByName('CharStrings');\n var charStringIndex = this.parseIndex(charStringOffset).obj;\n var fontMatrix = topDict.getByName('FontMatrix');\n if (fontMatrix) {\n properties.fontMatrix = fontMatrix;\n }\n var fontBBox = topDict.getByName('FontBBox');\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 var charset, encoding;\n if (cff.isCIDFont) {\n var fdArrayIndex = this.parseIndex(topDict.getByName('FDArray')).obj;\n for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n var dictRaw = fdArrayIndex.get(i);\n var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings);\n this.parsePrivateDict(fontDict);\n cff.fdArray.push(fontDict);\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 cff.charset = charset;\n cff.encoding = encoding;\n var charStringsAndSeacs = this.parseCharStrings({\n charStrings: charStringIndex,\n localSubrIndex: topDict.privateDict.subrsIndex,\n globalSubrIndex: globalSubrIndex.obj,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n privateDict: topDict.privateDict\n });\n cff.charStrings = charStringsAndSeacs.charStrings;\n cff.seacs = charStringsAndSeacs.seacs;\n cff.widths = charStringsAndSeacs.widths;\n return cff;\n },\n parseHeader: function CFFParser_parseHeader() {\n var bytes = this.bytes;\n var bytesLength = bytes.length;\n var offset = 0;\n while (offset < bytesLength && bytes[offset] !== 1) {\n ++offset;\n }\n if (offset >= bytesLength) {\n throw new _util.FormatError('Invalid CFF header');\n }\n if (offset !== 0) {\n (0, _util.info)('cff data is shifted');\n bytes = bytes.subarray(offset);\n this.bytes = bytes;\n }\n var major = bytes[0];\n var minor = bytes[1];\n var hdrSize = bytes[2];\n var offSize = bytes[3];\n var header = new CFFHeader(major, minor, hdrSize, offSize);\n return {\n obj: header,\n endPos: hdrSize\n };\n },\n parseDict: function CFFParser_parseDict(dict) {\n var pos = 0;\n function parseOperand() {\n var value = dict[pos++];\n if (value === 30) {\n return parseFloatOperand();\n } else if (value === 28) {\n value = dict[pos++];\n value = (value << 24 | dict[pos++] << 16) >> 16;\n return value;\n } else if (value === 29) {\n value = dict[pos++];\n value = value << 8 | dict[pos++];\n value = value << 8 | dict[pos++];\n value = value << 8 | dict[pos++];\n return value;\n } else if (value >= 32 && value <= 246) {\n return value - 139;\n } else if (value >= 247 && value <= 250) {\n return (value - 247) * 256 + dict[pos++] + 108;\n } else if (value >= 251 && value <= 254) {\n return -((value - 251) * 256) - dict[pos++] - 108;\n }\n (0, _util.warn)('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n return NaN;\n }\n function parseFloatOperand() {\n var str = '';\n var eof = 15;\n var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', 'E', 'E-', null, '-'];\n var length = dict.length;\n while (pos < length) {\n var b = dict[pos++];\n var b1 = b >> 4;\n var b2 = b & 15;\n if (b1 === eof) {\n break;\n }\n str += lookup[b1];\n if (b2 === eof) {\n break;\n }\n str += lookup[b2];\n }\n return parseFloat(str);\n }\n var operands = [];\n var entries = [];\n pos = 0;\n var end = dict.length;\n while (pos < end) {\n var b = dict[pos];\n if (b <= 21) {\n if (b === 12) {\n b = b << 8 | dict[++pos];\n }\n entries.push([b, operands]);\n operands = [];\n ++pos;\n } else {\n operands.push(parseOperand());\n }\n }\n return entries;\n },\n parseIndex: function CFFParser_parseIndex(pos) {\n var cffIndex = new CFFIndex();\n var bytes = this.bytes;\n var count = bytes[pos++] << 8 | bytes[pos++];\n var offsets = [];\n var end = pos;\n var i, ii;\n if (count !== 0) {\n var offsetSize = bytes[pos++];\n var startPos = pos + (count + 1) * offsetSize - 1;\n for (i = 0, ii = count + 1; i < ii; ++i) {\n var offset = 0;\n for (var j = 0; j < offsetSize; ++j) {\n offset <<= 8;\n offset += bytes[pos++];\n }\n offsets.push(startPos + offset);\n }\n end = offsets[count];\n }\n for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n var offsetStart = offsets[i];\n var offsetEnd = offsets[i + 1];\n cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n }\n return {\n obj: cffIndex,\n endPos: end\n };\n },\n parseNameIndex: function CFFParser_parseNameIndex(index) {\n var names = [];\n for (var i = 0, ii = index.count; i < ii; ++i) {\n var name = index.get(i);\n names.push((0, _util.bytesToString)(name));\n }\n return names;\n },\n parseStringIndex: function CFFParser_parseStringIndex(index) {\n var strings = new CFFStrings();\n for (var i = 0, ii = index.count; i < ii; ++i) {\n var data = index.get(i);\n strings.add((0, _util.bytesToString)(data));\n }\n return strings;\n },\n createDict: function CFFParser_createDict(Type, dict, strings) {\n var cffDict = new Type(strings);\n for (var i = 0, ii = dict.length; i < ii; ++i) {\n var pair = dict[i];\n var key = pair[0];\n var value = pair[1];\n cffDict.setByKey(key, value);\n }\n return cffDict;\n },\n parseCharString: function CFFParser_parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n if (!data || state.callDepth > MAX_SUBR_NESTING) {\n return false;\n }\n var stackSize = state.stackSize;\n var stack = state.stack;\n var length = data.length;\n for (var j = 0; j < length;) {\n var value = data[j++];\n var validationCommand = null;\n if (value === 12) {\n var q = data[j++];\n if (q === 0) {\n 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 if (this.seacAnalysisEnabled) {\n state.seac = stack.slice(stackSize, stackSize + 4);\n return false;\n }\n }\n validationCommand = CharstringValidationData[value];\n } else if (value >= 32 && value <= 246) {\n stack[stackSize] = value - 139;\n stackSize++;\n } else if (value >= 247 && value <= 254) {\n stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108;\n j++;\n stackSize++;\n } else if (value === 255) {\n stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536;\n j += 4;\n stackSize++;\n } else if (value === 19 || value === 20) {\n state.hints += stackSize >> 1;\n j += state.hints + 7 >> 3;\n stackSize %= 2;\n validationCommand = CharstringValidationData[value];\n } else if (value === 10 || value === 29) {\n var subrsIndex;\n if (value === 10) {\n subrsIndex = localSubrIndex;\n } else {\n subrsIndex = globalSubrIndex;\n }\n if (!subrsIndex) {\n validationCommand = CharstringValidationData[value];\n (0, _util.warn)('Missing subrsIndex for ' + validationCommand.id);\n return false;\n }\n var bias = 32768;\n if (subrsIndex.count < 1240) {\n bias = 107;\n } else if (subrsIndex.count < 33900) {\n bias = 1131;\n }\n var subrNumber = stack[--stackSize] + bias;\n if (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 state.stackSize = stackSize;\n state.callDepth++;\n var valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex);\n if (!valid) {\n return false;\n }\n state.callDepth--;\n stackSize = state.stackSize;\n continue;\n } else if (value === 11) {\n state.stackSize = stackSize;\n return true;\n } else {\n validationCommand = CharstringValidationData[value];\n }\n if (validationCommand) {\n if (validationCommand.stem) {\n state.hints += stackSize >> 1;\n }\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 if (state.firstStackClearing && validationCommand.stackClearing) {\n state.firstStackClearing = false;\n stackSize -= validationCommand.min;\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 if (stackSize > 0 && stack[stackSize - 1] >= 0) {\n state.width = stack[stackSize - 1];\n }\n }\n if ('stackDelta' in validationCommand) {\n if ('stackFn' in validationCommand) {\n validationCommand.stackFn(stack, stackSize);\n }\n stackSize += validationCommand.stackDelta;\n } else if (validationCommand.stackClearing) {\n stackSize = 0;\n } else if (validationCommand.resetStack) {\n stackSize = 0;\n state.undefStack = false;\n } else if (validationCommand.undefStack) {\n stackSize = 0;\n state.undefStack = true;\n state.firstStackClearing = false;\n }\n }\n }\n state.stackSize = stackSize;\n return true;\n },\n parseCharStrings: function parseCharStrings(_ref) {\n var charStrings = _ref.charStrings,\n localSubrIndex = _ref.localSubrIndex,\n globalSubrIndex = _ref.globalSubrIndex,\n fdSelect = _ref.fdSelect,\n fdArray = _ref.fdArray,\n privateDict = _ref.privateDict;\n\n var seacs = [];\n var widths = [];\n var count = charStrings.count;\n for (var i = 0; i < count; i++) {\n var charstring = charStrings.get(i);\n var state = {\n callDepth: 0,\n stackSize: 0,\n stack: [],\n undefStack: true,\n hints: 0,\n firstStackClearing: true,\n seac: null,\n width: null\n };\n var valid = true;\n var localSubrToUse = null;\n var privateDictToUse = privateDict;\n if (fdSelect && fdArray.length) {\n var fdIndex = fdSelect.getFDIndex(i);\n if (fdIndex === -1) {\n (0, _util.warn)('Glyph index is not in fd select.');\n valid = false;\n }\n if (fdIndex >= fdArray.length) {\n (0, _util.warn)('Invalid fd index for glyph index.');\n valid = false;\n }\n if (valid) {\n privateDictToUse = fdArray[fdIndex].privateDict;\n localSubrToUse = privateDictToUse.subrsIndex;\n }\n } else if (localSubrIndex) {\n localSubrToUse = localSubrIndex;\n }\n if (valid) {\n valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex);\n }\n if (state.width !== null) {\n var nominalWidth = privateDictToUse.getByName('nominalWidthX');\n widths[i] = nominalWidth + state.width;\n } else {\n var defaultWidth = privateDictToUse.getByName('defaultWidthX');\n widths[i] = defaultWidth;\n }\n if (state.seac !== null) {\n seacs[i] = state.seac;\n }\n if (!valid) {\n charStrings.set(i, new Uint8Array([14]));\n }\n }\n return {\n charStrings: charStrings,\n seacs: seacs,\n widths: widths\n };\n },\n\n emptyPrivateDictionary: function CFFParser_emptyPrivateDictionary(parentDict) {\n var privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n parentDict.setByKey(18, [0, 0]);\n parentDict.privateDict = privateDict;\n },\n parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) {\n if (!parentDict.hasName('Private')) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n var privateOffset = parentDict.getByName('Private');\n if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n parentDict.removeByName('Private');\n return;\n }\n var size = privateOffset[0];\n var offset = privateOffset[1];\n if (size === 0 || offset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n var privateDictEnd = offset + size;\n var dictData = this.bytes.subarray(offset, privateDictEnd);\n var dict = this.parseDict(dictData);\n var privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings);\n parentDict.privateDict = privateDict;\n if (!privateDict.getByName('Subrs')) {\n return;\n }\n var subrsOffset = privateDict.getByName('Subrs');\n var relativeOffset = offset + subrsOffset;\n if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n var subrsIndex = this.parseIndex(relativeOffset);\n privateDict.subrsIndex = subrsIndex.obj;\n },\n parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) {\n if (pos === 0) {\n return new CFFCharset(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 var bytes = this.bytes;\n var start = pos;\n var format = bytes[pos++];\n var charset = ['.notdef'];\n var id, count, i;\n length -= 1;\n switch (format) {\n case 0:\n for (i = 0; i < length; i++) {\n id = bytes[pos++] << 8 | bytes[pos++];\n charset.push(cid ? id : strings.get(id));\n }\n break;\n case 1:\n while (charset.length <= length) {\n id = bytes[pos++] << 8 | bytes[pos++];\n count = bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n case 2:\n while (charset.length <= length) {\n id = bytes[pos++] << 8 | bytes[pos++];\n count = bytes[pos++] << 8 | bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n default:\n throw new _util.FormatError('Unknown charset format');\n }\n var end = pos;\n var raw = bytes.subarray(start, end);\n return new CFFCharset(false, format, charset, raw);\n },\n parseEncoding: function CFFParser_parseEncoding(pos, properties, strings, charset) {\n var encoding = Object.create(null);\n var bytes = this.bytes;\n var predefined = false;\n var format, i, ii;\n var raw = null;\n function readSupplement() {\n var supplementsCount = bytes[pos++];\n for (i = 0; i < supplementsCount; i++) {\n var code = bytes[pos++];\n var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n encoding[code] = charset.indexOf(strings.get(sid));\n }\n }\n if (pos === 0 || pos === 1) {\n predefined = true;\n format = pos;\n var baseEncoding = pos ? _encodings.ExpertEncoding : _encodings.StandardEncoding;\n for (i = 0, ii = charset.length; i < ii; i++) {\n var index = baseEncoding.indexOf(charset[i]);\n if (index !== -1) {\n encoding[index] = i;\n }\n }\n } else {\n var dataStart = pos;\n format = bytes[pos++];\n switch (format & 0x7f) {\n case 0:\n var glyphsCount = bytes[pos++];\n for (i = 1; i <= glyphsCount; i++) {\n encoding[bytes[pos++]] = i;\n }\n break;\n case 1:\n var rangesCount = bytes[pos++];\n var gid = 1;\n for (i = 0; i < rangesCount; i++) {\n var start = bytes[pos++];\n var left = bytes[pos++];\n for (var j = start; j <= start + left; j++) {\n encoding[j] = gid++;\n }\n }\n break;\n default:\n throw new _util.FormatError('Unknown encoding format: ' + format + ' in CFF');\n }\n var dataEnd = pos;\n if (format & 0x80) {\n bytes[dataStart] &= 0x7f;\n readSupplement();\n }\n raw = bytes.subarray(dataStart, dataEnd);\n }\n format = format & 0x7f;\n return new CFFEncoding(predefined, format, encoding, raw);\n },\n parseFDSelect: function CFFParser_parseFDSelect(pos, length) {\n var bytes = this.bytes;\n var format = bytes[pos++];\n var fdSelect = [];\n var i;\n switch (format) {\n case 0:\n for (i = 0; i < length; ++i) {\n var id = bytes[pos++];\n fdSelect.push(id);\n }\n break;\n case 3:\n var rangesCount = bytes[pos++] << 8 | bytes[pos++];\n for (i = 0; i < rangesCount; ++i) {\n var first = bytes[pos++] << 8 | bytes[pos++];\n if (i === 0 && first !== 0) {\n (0, _util.warn)('parseFDSelect: The first range must have a first GID of 0' + ' -- trying to recover.');\n first = 0;\n }\n var fdIndex = bytes[pos++];\n var next = bytes[pos] << 8 | bytes[pos + 1];\n for (var j = first; j < next; ++j) {\n fdSelect.push(fdIndex);\n }\n }\n pos += 2;\n break;\n default:\n throw new _util.FormatError('parseFDSelect: Unknown format \"' + format + '\".');\n }\n if (fdSelect.length !== length) {\n throw new _util.FormatError('parseFDSelect: Invalid font data.');\n }\n return new CFFFDSelect(format, fdSelect);\n }\n };\n return CFFParser;\n}();\nvar CFF = function CFFClosure() {\n function CFF() {\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 CFF.prototype = {\n duplicateFirstGlyph: function CFF_duplicateFirstGlyph() {\n if (this.charStrings.count >= 65535) {\n (0, _util.warn)('Not enough space in charstrings to duplicate first glyph.');\n return;\n }\n var glyphZero = this.charStrings.get(0);\n this.charStrings.add(glyphZero);\n if (this.isCIDFont) {\n this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n }\n },\n hasGlyphId: function CFF_hasGlyphID(id) {\n if (id < 0 || id >= this.charStrings.count) {\n return false;\n }\n var glyph = this.charStrings.get(id);\n return glyph.length > 0;\n }\n };\n return CFF;\n}();\nvar CFFHeader = function CFFHeaderClosure() {\n function CFFHeader(major, minor, hdrSize, offSize) {\n this.major = major;\n this.minor = minor;\n this.hdrSize = hdrSize;\n this.offSize = offSize;\n }\n return CFFHeader;\n}();\nvar CFFStrings = function CFFStringsClosure() {\n function CFFStrings() {\n this.strings = [];\n }\n CFFStrings.prototype = {\n get: function CFFStrings_get(index) {\n if (index >= 0 && index <= 390) {\n return CFFStandardStrings[index];\n }\n if (index - 391 <= this.strings.length) {\n return this.strings[index - 391];\n }\n return CFFStandardStrings[0];\n },\n add: function CFFStrings_add(value) {\n this.strings.push(value);\n },\n get count() {\n return this.strings.length;\n }\n };\n return CFFStrings;\n}();\nvar CFFIndex = function CFFIndexClosure() {\n function CFFIndex() {\n this.objects = [];\n this.length = 0;\n }\n CFFIndex.prototype = {\n add: function CFFIndex_add(data) {\n this.length += data.length;\n this.objects.push(data);\n },\n set: function CFFIndex_set(index, data) {\n this.length += data.length - this.objects[index].length;\n this.objects[index] = data;\n },\n get: function CFFIndex_get(index) {\n return this.objects[index];\n },\n get count() {\n return this.objects.length;\n }\n };\n return CFFIndex;\n}();\nvar CFFDict = function CFFDictClosure() {\n function CFFDict(tables, strings) {\n this.keyToNameMap = tables.keyToNameMap;\n this.nameToKeyMap = tables.nameToKeyMap;\n this.defaults = tables.defaults;\n this.types = tables.types;\n this.opcodes = tables.opcodes;\n this.order = tables.order;\n this.strings = strings;\n this.values = Object.create(null);\n }\n CFFDict.prototype = {\n setByKey: function CFFDict_setByKey(key, value) {\n if (!(key in this.keyToNameMap)) {\n return false;\n }\n var valueLength = value.length;\n if (valueLength === 0) {\n return true;\n }\n for (var i = 0; i < valueLength; i++) {\n if (isNaN(value[i])) {\n (0, _util.warn)('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n return true;\n }\n }\n var type = this.types[key];\n if (type === 'num' || type === 'sid' || type === 'offset') {\n value = value[0];\n }\n this.values[key] = value;\n return true;\n },\n setByName: function CFFDict_setByName(name, value) {\n if (!(name in this.nameToKeyMap)) {\n throw new _util.FormatError('Invalid dictionary name \"' + name + '\"');\n }\n this.values[this.nameToKeyMap[name]] = value;\n },\n hasName: function CFFDict_hasName(name) {\n return this.nameToKeyMap[name] in this.values;\n },\n getByName: function CFFDict_getByName(name) {\n if (!(name in this.nameToKeyMap)) {\n throw new _util.FormatError('Invalid dictionary name ' + name + '\"');\n }\n var key = this.nameToKeyMap[name];\n if (!(key in this.values)) {\n return this.defaults[key];\n }\n return this.values[key];\n },\n removeByName: function CFFDict_removeByName(name) {\n delete this.values[this.nameToKeyMap[name]];\n }\n };\n CFFDict.createTables = function CFFDict_createTables(layout) {\n var tables = {\n keyToNameMap: {},\n nameToKeyMap: {},\n defaults: {},\n types: {},\n opcodes: {},\n order: []\n };\n for (var i = 0, ii = layout.length; i < ii; ++i) {\n var entry = layout[i];\n var key = Array.isArray(entry[0]) ? (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 return tables;\n };\n return CFFDict;\n}();\nvar CFFTopDict = function CFFTopDictClosure() {\n var layout = [[[12, 30], 'ROS', ['sid', 'sid', 'num'], null], [[12, 20], 'SyntheticBase', 'num', null], [0, 'version', 'sid', null], [1, 'Notice', 'sid', null], [[12, 0], 'Copyright', 'sid', null], [2, 'FullName', 'sid', null], [3, 'FamilyName', 'sid', null], [4, 'Weight', 'sid', null], [[12, 1], 'isFixedPitch', 'num', 0], [[12, 2], 'ItalicAngle', 'num', 0], [[12, 3], 'UnderlinePosition', 'num', -100], [[12, 4], 'UnderlineThickness', 'num', 50], [[12, 5], 'PaintType', 'num', 0], [[12, 6], 'CharstringType', 'num', 2], [[12, 7], 'FontMatrix', ['num', 'num', 'num', 'num', 'num', 'num'], [0.001, 0, 0, 0.001, 0, 0]], [13, 'UniqueID', 'num', null], [5, 'FontBBox', ['num', 'num', 'num', 'num'], [0, 0, 0, 0]], [[12, 8], 'StrokeWidth', 'num', 0], [14, 'XUID', 'array', null], [15, 'charset', 'offset', 0], [16, 'Encoding', 'offset', 0], [17, 'CharStrings', 'offset', 0], [18, 'Private', ['offset', 'offset'], null], [[12, 21], 'PostScript', 'sid', null], [[12, 22], 'BaseFontName', 'sid', null], [[12, 23], 'BaseFontBlend', 'delta', null], [[12, 31], 'CIDFontVersion', 'num', 0], [[12, 32], 'CIDFontRevision', 'num', 0], [[12, 33], 'CIDFontType', 'num', 0], [[12, 34], 'CIDCount', 'num', 8720], [[12, 35], 'UIDBase', 'num', null], [[12, 37], 'FDSelect', 'offset', null], [[12, 36], 'FDArray', 'offset', null], [[12, 38], 'FontName', 'sid', null]];\n var tables = null;\n function CFFTopDict(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n CFFDict.call(this, tables, strings);\n this.privateDict = null;\n }\n CFFTopDict.prototype = Object.create(CFFDict.prototype);\n return CFFTopDict;\n}();\nvar CFFPrivateDict = function CFFPrivateDictClosure() {\n var layout = [[6, 'BlueValues', 'delta', null], [7, 'OtherBlues', 'delta', null], [8, 'FamilyBlues', 'delta', null], [9, 'FamilyOtherBlues', 'delta', null], [[12, 9], 'BlueScale', 'num', 0.039625], [[12, 10], 'BlueShift', 'num', 7], [[12, 11], 'BlueFuzz', 'num', 1], [10, 'StdHW', 'num', null], [11, 'StdVW', 'num', null], [[12, 12], 'StemSnapH', 'delta', null], [[12, 13], 'StemSnapV', 'delta', null], [[12, 14], 'ForceBold', 'num', 0], [[12, 17], 'LanguageGroup', 'num', 0], [[12, 18], 'ExpansionFactor', 'num', 0.06], [[12, 19], 'initialRandomSeed', 'num', 0], [20, 'defaultWidthX', 'num', 0], [21, 'nominalWidthX', 'num', 0], [19, 'Subrs', 'offset', null]];\n var tables = null;\n function CFFPrivateDict(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n CFFDict.call(this, tables, strings);\n this.subrsIndex = null;\n }\n CFFPrivateDict.prototype = Object.create(CFFDict.prototype);\n return CFFPrivateDict;\n}();\nvar CFFCharsetPredefinedTypes = {\n ISO_ADOBE: 0,\n EXPERT: 1,\n EXPERT_SUBSET: 2\n};\nvar CFFCharset = function CFFCharsetClosure() {\n function CFFCharset(predefined, format, charset, raw) {\n this.predefined = predefined;\n this.format = format;\n this.charset = charset;\n this.raw = raw;\n }\n return CFFCharset;\n}();\nvar CFFEncoding = function CFFEncodingClosure() {\n function CFFEncoding(predefined, format, encoding, raw) {\n this.predefined = predefined;\n this.format = format;\n this.encoding = encoding;\n this.raw = raw;\n }\n return CFFEncoding;\n}();\nvar CFFFDSelect = function CFFFDSelectClosure() {\n function CFFFDSelect(format, fdSelect) {\n this.format = format;\n this.fdSelect = fdSelect;\n }\n CFFFDSelect.prototype = {\n getFDIndex: function CFFFDSelect_get(glyphIndex) {\n if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n return -1;\n }\n return this.fdSelect[glyphIndex];\n }\n };\n return CFFFDSelect;\n}();\nvar CFFOffsetTracker = function CFFOffsetTrackerClosure() {\n function CFFOffsetTracker() {\n this.offsets = Object.create(null);\n }\n CFFOffsetTracker.prototype = {\n isTracking: function CFFOffsetTracker_isTracking(key) {\n return key in this.offsets;\n },\n track: function CFFOffsetTracker_track(key, location) {\n if (key in this.offsets) {\n throw new _util.FormatError('Already tracking location of ' + key);\n }\n this.offsets[key] = location;\n },\n offset: function CFFOffsetTracker_offset(value) {\n for (var key in this.offsets) {\n this.offsets[key] += value;\n }\n },\n setEntryLocation: function CFFOffsetTracker_setEntryLocation(key, values, output) {\n if (!(key in this.offsets)) {\n throw new _util.FormatError('Not tracking location of ' + key);\n }\n var data = output.data;\n var dataOffset = this.offsets[key];\n var size = 5;\n for (var i = 0, ii = values.length; i < ii; ++i) {\n var offset0 = i * size + dataOffset;\n var offset1 = offset0 + 1;\n var offset2 = offset0 + 2;\n var offset3 = offset0 + 3;\n var offset4 = offset0 + 4;\n 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 var value = values[i];\n data[offset0] = 0x1d;\n data[offset1] = value >> 24 & 0xFF;\n data[offset2] = value >> 16 & 0xFF;\n data[offset3] = value >> 8 & 0xFF;\n data[offset4] = value & 0xFF;\n }\n }\n };\n return CFFOffsetTracker;\n}();\nvar CFFCompiler = function CFFCompilerClosure() {\n function CFFCompiler(cff) {\n this.cff = cff;\n }\n CFFCompiler.prototype = {\n compile: function CFFCompiler_compile() {\n var cff = this.cff;\n var output = {\n data: [],\n length: 0,\n add: function CFFCompiler_add(data) {\n this.data = this.data.concat(data);\n this.length = this.data.length;\n }\n };\n var header = this.compileHeader(cff.header);\n output.add(header);\n var nameIndex = this.compileNameIndex(cff.names);\n output.add(nameIndex);\n if (cff.isCIDFont) {\n if (cff.topDict.hasName('FontMatrix')) {\n var base = cff.topDict.getByName('FontMatrix');\n cff.topDict.removeByName('FontMatrix');\n for (var i = 0, ii = cff.fdArray.length; i < ii; i++) {\n var subDict = cff.fdArray[i];\n var matrix = base.slice(0);\n if (subDict.hasName('FontMatrix')) {\n matrix = _util.Util.transform(matrix, subDict.getByName('FontMatrix'));\n }\n subDict.setByName('FontMatrix', matrix);\n }\n }\n }\n cff.topDict.setByName('charset', 0);\n var compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont);\n output.add(compiled.output);\n var topDictTracker = compiled.trackers[0];\n var stringIndex = this.compileStringIndex(cff.strings.strings);\n output.add(stringIndex);\n var globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n output.add(globalSubrIndex);\n if (cff.encoding && cff.topDict.hasName('Encoding')) {\n if (cff.encoding.predefined) {\n topDictTracker.setEntryLocation('Encoding', [cff.encoding.format], output);\n } else {\n var encoding = this.compileEncoding(cff.encoding);\n topDictTracker.setEntryLocation('Encoding', [output.length], output);\n output.add(encoding);\n }\n }\n var charset = this.compileCharset(cff.charset);\n topDictTracker.setEntryLocation('charset', [output.length], output);\n output.add(charset);\n var charStrings = this.compileCharStrings(cff.charStrings);\n topDictTracker.setEntryLocation('CharStrings', [output.length], output);\n output.add(charStrings);\n if (cff.isCIDFont) {\n topDictTracker.setEntryLocation('FDSelect', [output.length], output);\n var fdSelect = this.compileFDSelect(cff.fdSelect);\n output.add(fdSelect);\n compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n topDictTracker.setEntryLocation('FDArray', [output.length], output);\n output.add(compiled.output);\n var fontDictTrackers = compiled.trackers;\n this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n }\n this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n output.add([0]);\n return output.data;\n },\n encodeNumber: function CFFCompiler_encodeNumber(value) {\n if (parseFloat(value) === parseInt(value, 10) && !isNaN(value)) {\n return this.encodeInteger(value);\n }\n return this.encodeFloat(value);\n },\n encodeFloat: function CFFCompiler_encodeFloat(num) {\n var value = num.toString();\n var m = /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/.exec(value);\n if (m) {\n var epsilon = parseFloat('1e' + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(num * epsilon) / epsilon).toString();\n }\n var nibbles = '';\n var i, ii;\n for (i = 0, ii = value.length; i < ii; ++i) {\n var a = value[i];\n if (a === 'e') {\n nibbles += value[++i] === '-' ? 'c' : 'b';\n } else if (a === '.') {\n nibbles += 'a';\n } else if (a === '-') {\n nibbles += 'e';\n } else {\n nibbles += a;\n }\n }\n nibbles += nibbles.length & 1 ? 'f' : 'ff';\n var out = [30];\n for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n out.push(parseInt(nibbles.substring(i, i + 2), 16));\n }\n return out;\n },\n encodeInteger: function CFFCompiler_encodeInteger(value) {\n var code;\n if (value >= -107 && value <= 107) {\n code = [value + 139];\n } else if (value >= 108 && value <= 1131) {\n value = value - 108;\n code = [(value >> 8) + 247, value & 0xFF];\n } else if (value >= -1131 && value <= -108) {\n value = -value - 108;\n code = [(value >> 8) + 251, value & 0xFF];\n } else if (value >= -32768 && value <= 32767) {\n code = [0x1c, value >> 8 & 0xFF, value & 0xFF];\n } else {\n code = [0x1d, value >> 24 & 0xFF, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF];\n }\n return code;\n },\n compileHeader: function CFFCompiler_compileHeader(header) {\n return [header.major, header.minor, header.hdrSize, header.offSize];\n },\n compileNameIndex: function CFFCompiler_compileNameIndex(names) {\n var nameIndex = new CFFIndex();\n for (var i = 0, ii = names.length; i < ii; ++i) {\n var name = names[i];\n var length = Math.min(name.length, 127);\n var sanitizedName = new Array(length);\n for (var j = 0; j < length; j++) {\n var char = name[j];\n if (char < '!' || char > '~' || char === '[' || char === ']' || char === '(' || char === ')' || char === '{' || char === '}' || char === '<' || char === '>' || char === '/' || char === '%') {\n char = '_';\n }\n sanitizedName[j] = char;\n }\n sanitizedName = sanitizedName.join('');\n if (sanitizedName === '') {\n sanitizedName = 'Bad_Font_Name';\n }\n nameIndex.add((0, _util.stringToBytes)(sanitizedName));\n }\n return this.compileIndex(nameIndex);\n },\n compileTopDicts: function CFFCompiler_compileTopDicts(dicts, length, removeCidKeys) {\n var fontDictTrackers = [];\n var fdArrayIndex = new CFFIndex();\n for (var i = 0, ii = dicts.length; i < ii; ++i) {\n var fontDict = dicts[i];\n if (removeCidKeys) {\n fontDict.removeByName('CIDFontVersion');\n fontDict.removeByName('CIDFontRevision');\n fontDict.removeByName('CIDFontType');\n fontDict.removeByName('CIDCount');\n fontDict.removeByName('UIDBase');\n }\n var fontDictTracker = new CFFOffsetTracker();\n var fontDictData = this.compileDict(fontDict, fontDictTracker);\n fontDictTrackers.push(fontDictTracker);\n fdArrayIndex.add(fontDictData);\n fontDictTracker.offset(length);\n }\n fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n return {\n trackers: fontDictTrackers,\n output: fdArrayIndex\n };\n },\n compilePrivateDicts: function CFFCompiler_compilePrivateDicts(dicts, trackers, output) {\n for (var i = 0, ii = dicts.length; i < ii; ++i) {\n var fontDict = dicts[i];\n var privateDict = fontDict.privateDict;\n if (!privateDict || !fontDict.hasName('Private')) {\n throw new _util.FormatError('There must be a private dictionary.');\n }\n var privateDictTracker = new CFFOffsetTracker();\n var privateDictData = this.compileDict(privateDict, privateDictTracker);\n var outputLength = output.length;\n privateDictTracker.offset(outputLength);\n if (!privateDictData.length) {\n outputLength = 0;\n }\n trackers[i].setEntryLocation('Private', [privateDictData.length, outputLength], output);\n output.add(privateDictData);\n if (privateDict.subrsIndex && privateDict.hasName('Subrs')) {\n var subrs = this.compileIndex(privateDict.subrsIndex);\n privateDictTracker.setEntryLocation('Subrs', [privateDictData.length], output);\n output.add(subrs);\n }\n }\n },\n compileDict: function CFFCompiler_compileDict(dict, offsetTracker) {\n var out = [];\n var order = dict.order;\n for (var i = 0; i < order.length; ++i) {\n var key = order[i];\n if (!(key in dict.values)) {\n continue;\n }\n var values = dict.values[key];\n var types = dict.types[key];\n if (!Array.isArray(types)) {\n types = [types];\n }\n if (!Array.isArray(values)) {\n values = [values];\n }\n if (values.length === 0) {\n continue;\n }\n for (var j = 0, jj = types.length; j < jj; ++j) {\n var type = types[j];\n var value = values[j];\n switch (type) {\n case 'num':\n case 'sid':\n out = out.concat(this.encodeNumber(value));\n break;\n case 'offset':\n var name = dict.keyToNameMap[key];\n if (!offsetTracker.isTracking(name)) {\n offsetTracker.track(name, out.length);\n }\n out = out.concat([0x1d, 0, 0, 0, 0]);\n break;\n case 'array':\n case 'delta':\n out = out.concat(this.encodeNumber(value));\n for (var k = 1, kk = values.length; k < kk; ++k) {\n out = out.concat(this.encodeNumber(values[k]));\n }\n break;\n default:\n throw new _util.FormatError('Unknown data type of ' + type);\n }\n }\n out = out.concat(dict.opcodes[key]);\n }\n return out;\n },\n compileStringIndex: function CFFCompiler_compileStringIndex(strings) {\n var stringIndex = new CFFIndex();\n for (var i = 0, ii = strings.length; i < ii; ++i) {\n stringIndex.add((0, _util.stringToBytes)(strings[i]));\n }\n return this.compileIndex(stringIndex);\n },\n compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() {\n var globalSubrIndex = this.cff.globalSubrIndex;\n this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n },\n compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) {\n var charStringsIndex = new CFFIndex();\n for (var i = 0; i < charStrings.count; i++) {\n var glyph = charStrings.get(i);\n if (glyph.length === 0) {\n charStringsIndex.add(new Uint8Array([0x8B, 0x0E]));\n continue;\n }\n charStringsIndex.add(glyph);\n }\n return this.compileIndex(charStringsIndex);\n },\n compileCharset: function CFFCompiler_compileCharset(charset) {\n var length = 1 + (this.cff.charStrings.count - 1) * 2;\n var out = new Uint8Array(length);\n return this.compileTypedArray(out);\n },\n compileEncoding: function CFFCompiler_compileEncoding(encoding) {\n return this.compileTypedArray(encoding.raw);\n },\n compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) {\n var format = fdSelect.format;\n var out = void 0,\n i = void 0;\n switch (format) {\n case 0:\n out = new Uint8Array(1 + fdSelect.fdSelect.length);\n out[0] = format;\n for (i = 0; i < fdSelect.fdSelect.length; i++) {\n out[i + 1] = fdSelect.fdSelect[i];\n }\n break;\n case 3:\n var start = 0;\n var lastFD = fdSelect.fdSelect[0];\n var ranges = [format, 0, 0, start >> 8 & 0xFF, start & 0xFF, lastFD];\n for (i = 1; i < fdSelect.fdSelect.length; i++) {\n var currentFD = fdSelect.fdSelect[i];\n if (currentFD !== lastFD) {\n ranges.push(i >> 8 & 0xFF, i & 0xFF, currentFD);\n lastFD = currentFD;\n }\n }\n var 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 return this.compileTypedArray(out);\n },\n compileTypedArray: function CFFCompiler_compileTypedArray(data) {\n var out = [];\n for (var i = 0, ii = data.length; i < ii; ++i) {\n out[i] = data[i];\n }\n return out;\n },\n compileIndex: function CFFCompiler_compileIndex(index, trackers) {\n trackers = trackers || [];\n var objects = index.objects;\n var count = objects.length;\n if (count === 0) {\n return [0, 0, 0];\n }\n var data = [count >> 8 & 0xFF, count & 0xff];\n var lastOffset = 1,\n i;\n for (i = 0; i < count; ++i) {\n lastOffset += objects[i].length;\n }\n var offsetSize;\n if (lastOffset < 0x100) {\n offsetSize = 1;\n } else if (lastOffset < 0x10000) {\n offsetSize = 2;\n } else if (lastOffset < 0x1000000) {\n offsetSize = 3;\n } else {\n offsetSize = 4;\n }\n data.push(offsetSize);\n var relativeOffset = 1;\n for (i = 0; i < count + 1; i++) {\n if (offsetSize === 1) {\n data.push(relativeOffset & 0xFF);\n } else if (offsetSize === 2) {\n data.push(relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF);\n } else if (offsetSize === 3) {\n data.push(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 if (objects[i]) {\n relativeOffset += objects[i].length;\n }\n }\n for (i = 0; i < count; i++) {\n if (trackers[i]) {\n trackers[i].offset(data.length);\n }\n for (var j = 0, jj = objects[i].length; j < jj; j++) {\n data.push(objects[i][j]);\n }\n }\n return data;\n }\n };\n return CFFCompiler;\n}();\nexports.CFFStandardStrings = CFFStandardStrings;\nexports.CFFParser = CFFParser;\nexports.CFF = CFF;\nexports.CFFHeader = CFFHeader;\nexports.CFFStrings = CFFStrings;\nexports.CFFIndex = CFFIndex;\nexports.CFFCharset = CFFCharset;\nexports.CFFTopDict = CFFTopDict;\nexports.CFFPrivateDict = CFFPrivateDict;\nexports.CFFCompiler = CFFCompiler;\nexports.CFFFDSelect = CFFFDSelect;\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar 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'];\nvar 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'];\nvar 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.ISOAdobeCharset = ISOAdobeCharset;\nexports.ExpertCharset = ExpertCharset;\nexports.ExpertSubsetCharset = ExpertSubsetCharset;\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar 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'];\nvar 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', '', '', '', ''];\nvar 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'];\nvar 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', '', '', '', ''];\nvar 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'];\nvar 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', ''];\nvar 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', ''];\nfunction getEncoding(encodingName) {\n switch (encodingName) {\n case 'WinAnsiEncoding':\n return WinAnsiEncoding;\n case 'StandardEncoding':\n return StandardEncoding;\n case 'MacRomanEncoding':\n return MacRomanEncoding;\n case 'SymbolSetEncoding':\n return SymbolSetEncoding;\n case 'ZapfDingbatsEncoding':\n return ZapfDingbatsEncoding;\n case 'ExpertEncoding':\n return ExpertEncoding;\n case 'MacExpertEncoding':\n return MacExpertEncoding;\n default:\n return null;\n }\n}\nexports.WinAnsiEncoding = WinAnsiEncoding;\nexports.StandardEncoding = StandardEncoding;\nexports.MacRomanEncoding = MacRomanEncoding;\nexports.SymbolSetEncoding = SymbolSetEncoding;\nexports.ZapfDingbatsEncoding = ZapfDingbatsEncoding;\nexports.ExpertEncoding = ExpertEncoding;\nexports.getEncoding = getEncoding;\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nvar getLookupTableFactory = __w_pdfjs_require__(2).getLookupTableFactory;\nvar getGlyphsUnicode = getLookupTableFactory(function (t) {\n t['A'] = 0x0041;\n t['AE'] = 0x00C6;\n t['AEacute'] = 0x01FC;\n t['AEmacron'] = 0x01E2;\n t['AEsmall'] = 0xF7E6;\n t['Aacute'] = 0x00C1;\n t['Aacutesmall'] = 0xF7E1;\n t['Abreve'] = 0x0102;\n t['Abreveacute'] = 0x1EAE;\n t['Abrevecyrillic'] = 0x04D0;\n t['Abrevedotbelow'] = 0x1EB6;\n t['Abrevegrave'] = 0x1EB0;\n t['Abrevehookabove'] = 0x1EB2;\n t['Abrevetilde'] = 0x1EB4;\n t['Acaron'] = 0x01CD;\n t['Acircle'] = 0x24B6;\n t['Acircumflex'] = 0x00C2;\n t['Acircumflexacute'] = 0x1EA4;\n t['Acircumflexdotbelow'] = 0x1EAC;\n t['Acircumflexgrave'] = 0x1EA6;\n t['Acircumflexhookabove'] = 0x1EA8;\n t['Acircumflexsmall'] = 0xF7E2;\n t['Acircumflextilde'] = 0x1EAA;\n t['Acute'] = 0xF6C9;\n t['Acutesmall'] = 0xF7B4;\n t['Acyrillic'] = 0x0410;\n t['Adblgrave'] = 0x0200;\n t['Adieresis'] = 0x00C4;\n t['Adieresiscyrillic'] = 0x04D2;\n t['Adieresismacron'] = 0x01DE;\n t['Adieresissmall'] = 0xF7E4;\n t['Adotbelow'] = 0x1EA0;\n t['Adotmacron'] = 0x01E0;\n t['Agrave'] = 0x00C0;\n t['Agravesmall'] = 0xF7E0;\n t['Ahookabove'] = 0x1EA2;\n t['Aiecyrillic'] = 0x04D4;\n t['Ainvertedbreve'] = 0x0202;\n t['Alpha'] = 0x0391;\n t['Alphatonos'] = 0x0386;\n t['Amacron'] = 0x0100;\n t['Amonospace'] = 0xFF21;\n t['Aogonek'] = 0x0104;\n t['Aring'] = 0x00C5;\n t['Aringacute'] = 0x01FA;\n t['Aringbelow'] = 0x1E00;\n t['Aringsmall'] = 0xF7E5;\n t['Asmall'] = 0xF761;\n t['Atilde'] = 0x00C3;\n t['Atildesmall'] = 0xF7E3;\n t['Aybarmenian'] = 0x0531;\n t['B'] = 0x0042;\n t['Bcircle'] = 0x24B7;\n t['Bdotaccent'] = 0x1E02;\n t['Bdotbelow'] = 0x1E04;\n t['Becyrillic'] = 0x0411;\n t['Benarmenian'] = 0x0532;\n t['Beta'] = 0x0392;\n t['Bhook'] = 0x0181;\n t['Blinebelow'] = 0x1E06;\n t['Bmonospace'] = 0xFF22;\n t['Brevesmall'] = 0xF6F4;\n t['Bsmall'] = 0xF762;\n t['Btopbar'] = 0x0182;\n t['C'] = 0x0043;\n t['Caarmenian'] = 0x053E;\n t['Cacute'] = 0x0106;\n t['Caron'] = 0xF6CA;\n t['Caronsmall'] = 0xF6F5;\n t['Ccaron'] = 0x010C;\n t['Ccedilla'] = 0x00C7;\n t['Ccedillaacute'] = 0x1E08;\n t['Ccedillasmall'] = 0xF7E7;\n t['Ccircle'] = 0x24B8;\n t['Ccircumflex'] = 0x0108;\n t['Cdot'] = 0x010A;\n t['Cdotaccent'] = 0x010A;\n t['Cedillasmall'] = 0xF7B8;\n t['Chaarmenian'] = 0x0549;\n t['Cheabkhasiancyrillic'] = 0x04BC;\n t['Checyrillic'] = 0x0427;\n t['Chedescenderabkhasiancyrillic'] = 0x04BE;\n t['Chedescendercyrillic'] = 0x04B6;\n t['Chedieresiscyrillic'] = 0x04F4;\n t['Cheharmenian'] = 0x0543;\n t['Chekhakassiancyrillic'] = 0x04CB;\n t['Cheverticalstrokecyrillic'] = 0x04B8;\n t['Chi'] = 0x03A7;\n t['Chook'] = 0x0187;\n t['Circumflexsmall'] = 0xF6F6;\n t['Cmonospace'] = 0xFF23;\n t['Coarmenian'] = 0x0551;\n t['Csmall'] = 0xF763;\n t['D'] = 0x0044;\n t['DZ'] = 0x01F1;\n t['DZcaron'] = 0x01C4;\n t['Daarmenian'] = 0x0534;\n t['Dafrican'] = 0x0189;\n t['Dcaron'] = 0x010E;\n t['Dcedilla'] = 0x1E10;\n t['Dcircle'] = 0x24B9;\n t['Dcircumflexbelow'] = 0x1E12;\n t['Dcroat'] = 0x0110;\n t['Ddotaccent'] = 0x1E0A;\n t['Ddotbelow'] = 0x1E0C;\n t['Decyrillic'] = 0x0414;\n t['Deicoptic'] = 0x03EE;\n t['Delta'] = 0x2206;\n t['Deltagreek'] = 0x0394;\n t['Dhook'] = 0x018A;\n t['Dieresis'] = 0xF6CB;\n t['DieresisAcute'] = 0xF6CC;\n t['DieresisGrave'] = 0xF6CD;\n t['Dieresissmall'] = 0xF7A8;\n t['Digammagreek'] = 0x03DC;\n t['Djecyrillic'] = 0x0402;\n t['Dlinebelow'] = 0x1E0E;\n t['Dmonospace'] = 0xFF24;\n t['Dotaccentsmall'] = 0xF6F7;\n t['Dslash'] = 0x0110;\n t['Dsmall'] = 0xF764;\n t['Dtopbar'] = 0x018B;\n t['Dz'] = 0x01F2;\n t['Dzcaron'] = 0x01C5;\n t['Dzeabkhasiancyrillic'] = 0x04E0;\n t['Dzecyrillic'] = 0x0405;\n t['Dzhecyrillic'] = 0x040F;\n t['E'] = 0x0045;\n t['Eacute'] = 0x00C9;\n t['Eacutesmall'] = 0xF7E9;\n t['Ebreve'] = 0x0114;\n t['Ecaron'] = 0x011A;\n t['Ecedillabreve'] = 0x1E1C;\n t['Echarmenian'] = 0x0535;\n t['Ecircle'] = 0x24BA;\n t['Ecircumflex'] = 0x00CA;\n t['Ecircumflexacute'] = 0x1EBE;\n t['Ecircumflexbelow'] = 0x1E18;\n t['Ecircumflexdotbelow'] = 0x1EC6;\n t['Ecircumflexgrave'] = 0x1EC0;\n t['Ecircumflexhookabove'] = 0x1EC2;\n t['Ecircumflexsmall'] = 0xF7EA;\n t['Ecircumflextilde'] = 0x1EC4;\n t['Ecyrillic'] = 0x0404;\n t['Edblgrave'] = 0x0204;\n t['Edieresis'] = 0x00CB;\n t['Edieresissmall'] = 0xF7EB;\n t['Edot'] = 0x0116;\n t['Edotaccent'] = 0x0116;\n t['Edotbelow'] = 0x1EB8;\n t['Efcyrillic'] = 0x0424;\n t['Egrave'] = 0x00C8;\n t['Egravesmall'] = 0xF7E8;\n t['Eharmenian'] = 0x0537;\n t['Ehookabove'] = 0x1EBA;\n t['Eightroman'] = 0x2167;\n t['Einvertedbreve'] = 0x0206;\n t['Eiotifiedcyrillic'] = 0x0464;\n t['Elcyrillic'] = 0x041B;\n t['Elevenroman'] = 0x216A;\n t['Emacron'] = 0x0112;\n t['Emacronacute'] = 0x1E16;\n t['Emacrongrave'] = 0x1E14;\n t['Emcyrillic'] = 0x041C;\n t['Emonospace'] = 0xFF25;\n t['Encyrillic'] = 0x041D;\n t['Endescendercyrillic'] = 0x04A2;\n t['Eng'] = 0x014A;\n t['Enghecyrillic'] = 0x04A4;\n t['Enhookcyrillic'] = 0x04C7;\n t['Eogonek'] = 0x0118;\n t['Eopen'] = 0x0190;\n t['Epsilon'] = 0x0395;\n t['Epsilontonos'] = 0x0388;\n t['Ercyrillic'] = 0x0420;\n t['Ereversed'] = 0x018E;\n t['Ereversedcyrillic'] = 0x042D;\n t['Escyrillic'] = 0x0421;\n t['Esdescendercyrillic'] = 0x04AA;\n t['Esh'] = 0x01A9;\n t['Esmall'] = 0xF765;\n t['Eta'] = 0x0397;\n t['Etarmenian'] = 0x0538;\n t['Etatonos'] = 0x0389;\n t['Eth'] = 0x00D0;\n t['Ethsmall'] = 0xF7F0;\n t['Etilde'] = 0x1EBC;\n t['Etildebelow'] = 0x1E1A;\n t['Euro'] = 0x20AC;\n t['Ezh'] = 0x01B7;\n t['Ezhcaron'] = 0x01EE;\n t['Ezhreversed'] = 0x01B8;\n t['F'] = 0x0046;\n t['Fcircle'] = 0x24BB;\n t['Fdotaccent'] = 0x1E1E;\n t['Feharmenian'] = 0x0556;\n t['Feicoptic'] = 0x03E4;\n t['Fhook'] = 0x0191;\n t['Fitacyrillic'] = 0x0472;\n t['Fiveroman'] = 0x2164;\n t['Fmonospace'] = 0xFF26;\n t['Fourroman'] = 0x2163;\n t['Fsmall'] = 0xF766;\n t['G'] = 0x0047;\n t['GBsquare'] = 0x3387;\n t['Gacute'] = 0x01F4;\n t['Gamma'] = 0x0393;\n t['Gammaafrican'] = 0x0194;\n t['Gangiacoptic'] = 0x03EA;\n t['Gbreve'] = 0x011E;\n t['Gcaron'] = 0x01E6;\n t['Gcedilla'] = 0x0122;\n t['Gcircle'] = 0x24BC;\n t['Gcircumflex'] = 0x011C;\n t['Gcommaaccent'] = 0x0122;\n t['Gdot'] = 0x0120;\n t['Gdotaccent'] = 0x0120;\n t['Gecyrillic'] = 0x0413;\n t['Ghadarmenian'] = 0x0542;\n t['Ghemiddlehookcyrillic'] = 0x0494;\n t['Ghestrokecyrillic'] = 0x0492;\n t['Gheupturncyrillic'] = 0x0490;\n t['Ghook'] = 0x0193;\n t['Gimarmenian'] = 0x0533;\n t['Gjecyrillic'] = 0x0403;\n t['Gmacron'] = 0x1E20;\n t['Gmonospace'] = 0xFF27;\n t['Grave'] = 0xF6CE;\n t['Gravesmall'] = 0xF760;\n t['Gsmall'] = 0xF767;\n t['Gsmallhook'] = 0x029B;\n t['Gstroke'] = 0x01E4;\n t['H'] = 0x0048;\n t['H18533'] = 0x25CF;\n t['H18543'] = 0x25AA;\n t['H18551'] = 0x25AB;\n t['H22073'] = 0x25A1;\n t['HPsquare'] = 0x33CB;\n t['Haabkhasiancyrillic'] = 0x04A8;\n t['Hadescendercyrillic'] = 0x04B2;\n t['Hardsigncyrillic'] = 0x042A;\n t['Hbar'] = 0x0126;\n t['Hbrevebelow'] = 0x1E2A;\n t['Hcedilla'] = 0x1E28;\n t['Hcircle'] = 0x24BD;\n t['Hcircumflex'] = 0x0124;\n t['Hdieresis'] = 0x1E26;\n t['Hdotaccent'] = 0x1E22;\n t['Hdotbelow'] = 0x1E24;\n t['Hmonospace'] = 0xFF28;\n t['Hoarmenian'] = 0x0540;\n t['Horicoptic'] = 0x03E8;\n t['Hsmall'] = 0xF768;\n t['Hungarumlaut'] = 0xF6CF;\n t['Hungarumlautsmall'] = 0xF6F8;\n t['Hzsquare'] = 0x3390;\n t['I'] = 0x0049;\n t['IAcyrillic'] = 0x042F;\n t['IJ'] = 0x0132;\n t['IUcyrillic'] = 0x042E;\n t['Iacute'] = 0x00CD;\n t['Iacutesmall'] = 0xF7ED;\n t['Ibreve'] = 0x012C;\n t['Icaron'] = 0x01CF;\n t['Icircle'] = 0x24BE;\n t['Icircumflex'] = 0x00CE;\n t['Icircumflexsmall'] = 0xF7EE;\n t['Icyrillic'] = 0x0406;\n t['Idblgrave'] = 0x0208;\n t['Idieresis'] = 0x00CF;\n t['Idieresisacute'] = 0x1E2E;\n t['Idieresiscyrillic'] = 0x04E4;\n t['Idieresissmall'] = 0xF7EF;\n t['Idot'] = 0x0130;\n t['Idotaccent'] = 0x0130;\n t['Idotbelow'] = 0x1ECA;\n t['Iebrevecyrillic'] = 0x04D6;\n t['Iecyrillic'] = 0x0415;\n t['Ifraktur'] = 0x2111;\n t['Igrave'] = 0x00CC;\n t['Igravesmall'] = 0xF7EC;\n t['Ihookabove'] = 0x1EC8;\n t['Iicyrillic'] = 0x0418;\n t['Iinvertedbreve'] = 0x020A;\n t['Iishortcyrillic'] = 0x0419;\n t['Imacron'] = 0x012A;\n t['Imacroncyrillic'] = 0x04E2;\n t['Imonospace'] = 0xFF29;\n t['Iniarmenian'] = 0x053B;\n t['Iocyrillic'] = 0x0401;\n t['Iogonek'] = 0x012E;\n t['Iota'] = 0x0399;\n t['Iotaafrican'] = 0x0196;\n t['Iotadieresis'] = 0x03AA;\n t['Iotatonos'] = 0x038A;\n t['Ismall'] = 0xF769;\n t['Istroke'] = 0x0197;\n t['Itilde'] = 0x0128;\n t['Itildebelow'] = 0x1E2C;\n t['Izhitsacyrillic'] = 0x0474;\n t['Izhitsadblgravecyrillic'] = 0x0476;\n t['J'] = 0x004A;\n t['Jaarmenian'] = 0x0541;\n t['Jcircle'] = 0x24BF;\n t['Jcircumflex'] = 0x0134;\n t['Jecyrillic'] = 0x0408;\n t['Jheharmenian'] = 0x054B;\n t['Jmonospace'] = 0xFF2A;\n t['Jsmall'] = 0xF76A;\n t['K'] = 0x004B;\n t['KBsquare'] = 0x3385;\n t['KKsquare'] = 0x33CD;\n t['Kabashkircyrillic'] = 0x04A0;\n t['Kacute'] = 0x1E30;\n t['Kacyrillic'] = 0x041A;\n t['Kadescendercyrillic'] = 0x049A;\n t['Kahookcyrillic'] = 0x04C3;\n t['Kappa'] = 0x039A;\n t['Kastrokecyrillic'] = 0x049E;\n t['Kaverticalstrokecyrillic'] = 0x049C;\n t['Kcaron'] = 0x01E8;\n t['Kcedilla'] = 0x0136;\n t['Kcircle'] = 0x24C0;\n t['Kcommaaccent'] = 0x0136;\n t['Kdotbelow'] = 0x1E32;\n t['Keharmenian'] = 0x0554;\n t['Kenarmenian'] = 0x053F;\n t['Khacyrillic'] = 0x0425;\n t['Kheicoptic'] = 0x03E6;\n t['Khook'] = 0x0198;\n t['Kjecyrillic'] = 0x040C;\n t['Klinebelow'] = 0x1E34;\n t['Kmonospace'] = 0xFF2B;\n t['Koppacyrillic'] = 0x0480;\n t['Koppagreek'] = 0x03DE;\n t['Ksicyrillic'] = 0x046E;\n t['Ksmall'] = 0xF76B;\n t['L'] = 0x004C;\n t['LJ'] = 0x01C7;\n t['LL'] = 0xF6BF;\n t['Lacute'] = 0x0139;\n t['Lambda'] = 0x039B;\n t['Lcaron'] = 0x013D;\n t['Lcedilla'] = 0x013B;\n t['Lcircle'] = 0x24C1;\n t['Lcircumflexbelow'] = 0x1E3C;\n t['Lcommaaccent'] = 0x013B;\n t['Ldot'] = 0x013F;\n t['Ldotaccent'] = 0x013F;\n t['Ldotbelow'] = 0x1E36;\n t['Ldotbelowmacron'] = 0x1E38;\n t['Liwnarmenian'] = 0x053C;\n t['Lj'] = 0x01C8;\n t['Ljecyrillic'] = 0x0409;\n t['Llinebelow'] = 0x1E3A;\n t['Lmonospace'] = 0xFF2C;\n t['Lslash'] = 0x0141;\n t['Lslashsmall'] = 0xF6F9;\n t['Lsmall'] = 0xF76C;\n t['M'] = 0x004D;\n t['MBsquare'] = 0x3386;\n t['Macron'] = 0xF6D0;\n t['Macronsmall'] = 0xF7AF;\n t['Macute'] = 0x1E3E;\n t['Mcircle'] = 0x24C2;\n t['Mdotaccent'] = 0x1E40;\n t['Mdotbelow'] = 0x1E42;\n t['Menarmenian'] = 0x0544;\n t['Mmonospace'] = 0xFF2D;\n t['Msmall'] = 0xF76D;\n t['Mturned'] = 0x019C;\n t['Mu'] = 0x039C;\n t['N'] = 0x004E;\n t['NJ'] = 0x01CA;\n t['Nacute'] = 0x0143;\n t['Ncaron'] = 0x0147;\n t['Ncedilla'] = 0x0145;\n t['Ncircle'] = 0x24C3;\n t['Ncircumflexbelow'] = 0x1E4A;\n t['Ncommaaccent'] = 0x0145;\n t['Ndotaccent'] = 0x1E44;\n t['Ndotbelow'] = 0x1E46;\n t['Nhookleft'] = 0x019D;\n t['Nineroman'] = 0x2168;\n t['Nj'] = 0x01CB;\n t['Njecyrillic'] = 0x040A;\n t['Nlinebelow'] = 0x1E48;\n t['Nmonospace'] = 0xFF2E;\n t['Nowarmenian'] = 0x0546;\n t['Nsmall'] = 0xF76E;\n t['Ntilde'] = 0x00D1;\n t['Ntildesmall'] = 0xF7F1;\n t['Nu'] = 0x039D;\n t['O'] = 0x004F;\n t['OE'] = 0x0152;\n t['OEsmall'] = 0xF6FA;\n t['Oacute'] = 0x00D3;\n t['Oacutesmall'] = 0xF7F3;\n t['Obarredcyrillic'] = 0x04E8;\n t['Obarreddieresiscyrillic'] = 0x04EA;\n t['Obreve'] = 0x014E;\n t['Ocaron'] = 0x01D1;\n t['Ocenteredtilde'] = 0x019F;\n t['Ocircle'] = 0x24C4;\n t['Ocircumflex'] = 0x00D4;\n t['Ocircumflexacute'] = 0x1ED0;\n t['Ocircumflexdotbelow'] = 0x1ED8;\n t['Ocircumflexgrave'] = 0x1ED2;\n t['Ocircumflexhookabove'] = 0x1ED4;\n t['Ocircumflexsmall'] = 0xF7F4;\n t['Ocircumflextilde'] = 0x1ED6;\n t['Ocyrillic'] = 0x041E;\n t['Odblacute'] = 0x0150;\n t['Odblgrave'] = 0x020C;\n t['Odieresis'] = 0x00D6;\n t['Odieresiscyrillic'] = 0x04E6;\n t['Odieresissmall'] = 0xF7F6;\n t['Odotbelow'] = 0x1ECC;\n t['Ogoneksmall'] = 0xF6FB;\n t['Ograve'] = 0x00D2;\n t['Ogravesmall'] = 0xF7F2;\n t['Oharmenian'] = 0x0555;\n t['Ohm'] = 0x2126;\n t['Ohookabove'] = 0x1ECE;\n t['Ohorn'] = 0x01A0;\n t['Ohornacute'] = 0x1EDA;\n t['Ohorndotbelow'] = 0x1EE2;\n t['Ohorngrave'] = 0x1EDC;\n t['Ohornhookabove'] = 0x1EDE;\n t['Ohorntilde'] = 0x1EE0;\n t['Ohungarumlaut'] = 0x0150;\n t['Oi'] = 0x01A2;\n t['Oinvertedbreve'] = 0x020E;\n t['Omacron'] = 0x014C;\n t['Omacronacute'] = 0x1E52;\n t['Omacrongrave'] = 0x1E50;\n t['Omega'] = 0x2126;\n t['Omegacyrillic'] = 0x0460;\n t['Omegagreek'] = 0x03A9;\n t['Omegaroundcyrillic'] = 0x047A;\n t['Omegatitlocyrillic'] = 0x047C;\n t['Omegatonos'] = 0x038F;\n t['Omicron'] = 0x039F;\n t['Omicrontonos'] = 0x038C;\n t['Omonospace'] = 0xFF2F;\n t['Oneroman'] = 0x2160;\n t['Oogonek'] = 0x01EA;\n t['Oogonekmacron'] = 0x01EC;\n t['Oopen'] = 0x0186;\n t['Oslash'] = 0x00D8;\n t['Oslashacute'] = 0x01FE;\n t['Oslashsmall'] = 0xF7F8;\n t['Osmall'] = 0xF76F;\n t['Ostrokeacute'] = 0x01FE;\n t['Otcyrillic'] = 0x047E;\n t['Otilde'] = 0x00D5;\n t['Otildeacute'] = 0x1E4C;\n t['Otildedieresis'] = 0x1E4E;\n t['Otildesmall'] = 0xF7F5;\n t['P'] = 0x0050;\n t['Pacute'] = 0x1E54;\n t['Pcircle'] = 0x24C5;\n t['Pdotaccent'] = 0x1E56;\n t['Pecyrillic'] = 0x041F;\n t['Peharmenian'] = 0x054A;\n t['Pemiddlehookcyrillic'] = 0x04A6;\n t['Phi'] = 0x03A6;\n t['Phook'] = 0x01A4;\n t['Pi'] = 0x03A0;\n t['Piwrarmenian'] = 0x0553;\n t['Pmonospace'] = 0xFF30;\n t['Psi'] = 0x03A8;\n t['Psicyrillic'] = 0x0470;\n t['Psmall'] = 0xF770;\n t['Q'] = 0x0051;\n t['Qcircle'] = 0x24C6;\n t['Qmonospace'] = 0xFF31;\n t['Qsmall'] = 0xF771;\n t['R'] = 0x0052;\n t['Raarmenian'] = 0x054C;\n t['Racute'] = 0x0154;\n t['Rcaron'] = 0x0158;\n t['Rcedilla'] = 0x0156;\n t['Rcircle'] = 0x24C7;\n t['Rcommaaccent'] = 0x0156;\n t['Rdblgrave'] = 0x0210;\n t['Rdotaccent'] = 0x1E58;\n t['Rdotbelow'] = 0x1E5A;\n t['Rdotbelowmacron'] = 0x1E5C;\n t['Reharmenian'] = 0x0550;\n t['Rfraktur'] = 0x211C;\n t['Rho'] = 0x03A1;\n t['Ringsmall'] = 0xF6FC;\n t['Rinvertedbreve'] = 0x0212;\n t['Rlinebelow'] = 0x1E5E;\n t['Rmonospace'] = 0xFF32;\n t['Rsmall'] = 0xF772;\n t['Rsmallinverted'] = 0x0281;\n t['Rsmallinvertedsuperior'] = 0x02B6;\n t['S'] = 0x0053;\n t['SF010000'] = 0x250C;\n t['SF020000'] = 0x2514;\n t['SF030000'] = 0x2510;\n t['SF040000'] = 0x2518;\n t['SF050000'] = 0x253C;\n t['SF060000'] = 0x252C;\n t['SF070000'] = 0x2534;\n t['SF080000'] = 0x251C;\n t['SF090000'] = 0x2524;\n t['SF100000'] = 0x2500;\n t['SF110000'] = 0x2502;\n t['SF190000'] = 0x2561;\n t['SF200000'] = 0x2562;\n t['SF210000'] = 0x2556;\n t['SF220000'] = 0x2555;\n t['SF230000'] = 0x2563;\n t['SF240000'] = 0x2551;\n t['SF250000'] = 0x2557;\n t['SF260000'] = 0x255D;\n t['SF270000'] = 0x255C;\n t['SF280000'] = 0x255B;\n t['SF360000'] = 0x255E;\n t['SF370000'] = 0x255F;\n t['SF380000'] = 0x255A;\n t['SF390000'] = 0x2554;\n t['SF400000'] = 0x2569;\n t['SF410000'] = 0x2566;\n t['SF420000'] = 0x2560;\n t['SF430000'] = 0x2550;\n t['SF440000'] = 0x256C;\n t['SF450000'] = 0x2567;\n t['SF460000'] = 0x2568;\n t['SF470000'] = 0x2564;\n t['SF480000'] = 0x2565;\n t['SF490000'] = 0x2559;\n t['SF500000'] = 0x2558;\n t['SF510000'] = 0x2552;\n t['SF520000'] = 0x2553;\n t['SF530000'] = 0x256B;\n t['SF540000'] = 0x256A;\n t['Sacute'] = 0x015A;\n t['Sacutedotaccent'] = 0x1E64;\n t['Sampigreek'] = 0x03E0;\n t['Scaron'] = 0x0160;\n t['Scarondotaccent'] = 0x1E66;\n t['Scaronsmall'] = 0xF6FD;\n t['Scedilla'] = 0x015E;\n t['Schwa'] = 0x018F;\n t['Schwacyrillic'] = 0x04D8;\n t['Schwadieresiscyrillic'] = 0x04DA;\n t['Scircle'] = 0x24C8;\n t['Scircumflex'] = 0x015C;\n t['Scommaaccent'] = 0x0218;\n t['Sdotaccent'] = 0x1E60;\n t['Sdotbelow'] = 0x1E62;\n t['Sdotbelowdotaccent'] = 0x1E68;\n t['Seharmenian'] = 0x054D;\n t['Sevenroman'] = 0x2166;\n t['Shaarmenian'] = 0x0547;\n t['Shacyrillic'] = 0x0428;\n t['Shchacyrillic'] = 0x0429;\n t['Sheicoptic'] = 0x03E2;\n t['Shhacyrillic'] = 0x04BA;\n t['Shimacoptic'] = 0x03EC;\n t['Sigma'] = 0x03A3;\n t['Sixroman'] = 0x2165;\n t['Smonospace'] = 0xFF33;\n t['Softsigncyrillic'] = 0x042C;\n t['Ssmall'] = 0xF773;\n t['Stigmagreek'] = 0x03DA;\n t['T'] = 0x0054;\n t['Tau'] = 0x03A4;\n t['Tbar'] = 0x0166;\n t['Tcaron'] = 0x0164;\n t['Tcedilla'] = 0x0162;\n t['Tcircle'] = 0x24C9;\n t['Tcircumflexbelow'] = 0x1E70;\n t['Tcommaaccent'] = 0x0162;\n t['Tdotaccent'] = 0x1E6A;\n t['Tdotbelow'] = 0x1E6C;\n t['Tecyrillic'] = 0x0422;\n t['Tedescendercyrillic'] = 0x04AC;\n t['Tenroman'] = 0x2169;\n t['Tetsecyrillic'] = 0x04B4;\n t['Theta'] = 0x0398;\n t['Thook'] = 0x01AC;\n t['Thorn'] = 0x00DE;\n t['Thornsmall'] = 0xF7FE;\n t['Threeroman'] = 0x2162;\n t['Tildesmall'] = 0xF6FE;\n t['Tiwnarmenian'] = 0x054F;\n t['Tlinebelow'] = 0x1E6E;\n t['Tmonospace'] = 0xFF34;\n t['Toarmenian'] = 0x0539;\n t['Tonefive'] = 0x01BC;\n t['Tonesix'] = 0x0184;\n t['Tonetwo'] = 0x01A7;\n t['Tretroflexhook'] = 0x01AE;\n t['Tsecyrillic'] = 0x0426;\n t['Tshecyrillic'] = 0x040B;\n t['Tsmall'] = 0xF774;\n t['Twelveroman'] = 0x216B;\n t['Tworoman'] = 0x2161;\n t['U'] = 0x0055;\n t['Uacute'] = 0x00DA;\n t['Uacutesmall'] = 0xF7FA;\n t['Ubreve'] = 0x016C;\n t['Ucaron'] = 0x01D3;\n t['Ucircle'] = 0x24CA;\n t['Ucircumflex'] = 0x00DB;\n t['Ucircumflexbelow'] = 0x1E76;\n t['Ucircumflexsmall'] = 0xF7FB;\n t['Ucyrillic'] = 0x0423;\n t['Udblacute'] = 0x0170;\n t['Udblgrave'] = 0x0214;\n t['Udieresis'] = 0x00DC;\n t['Udieresisacute'] = 0x01D7;\n t['Udieresisbelow'] = 0x1E72;\n t['Udieresiscaron'] = 0x01D9;\n t['Udieresiscyrillic'] = 0x04F0;\n t['Udieresisgrave'] = 0x01DB;\n t['Udieresismacron'] = 0x01D5;\n t['Udieresissmall'] = 0xF7FC;\n t['Udotbelow'] = 0x1EE4;\n t['Ugrave'] = 0x00D9;\n t['Ugravesmall'] = 0xF7F9;\n t['Uhookabove'] = 0x1EE6;\n t['Uhorn'] = 0x01AF;\n t['Uhornacute'] = 0x1EE8;\n t['Uhorndotbelow'] = 0x1EF0;\n t['Uhorngrave'] = 0x1EEA;\n t['Uhornhookabove'] = 0x1EEC;\n t['Uhorntilde'] = 0x1EEE;\n t['Uhungarumlaut'] = 0x0170;\n t['Uhungarumlautcyrillic'] = 0x04F2;\n t['Uinvertedbreve'] = 0x0216;\n t['Ukcyrillic'] = 0x0478;\n t['Umacron'] = 0x016A;\n t['Umacroncyrillic'] = 0x04EE;\n t['Umacrondieresis'] = 0x1E7A;\n t['Umonospace'] = 0xFF35;\n t['Uogonek'] = 0x0172;\n t['Upsilon'] = 0x03A5;\n t['Upsilon1'] = 0x03D2;\n t['Upsilonacutehooksymbolgreek'] = 0x03D3;\n t['Upsilonafrican'] = 0x01B1;\n t['Upsilondieresis'] = 0x03AB;\n t['Upsilondieresishooksymbolgreek'] = 0x03D4;\n t['Upsilonhooksymbol'] = 0x03D2;\n t['Upsilontonos'] = 0x038E;\n t['Uring'] = 0x016E;\n t['Ushortcyrillic'] = 0x040E;\n t['Usmall'] = 0xF775;\n t['Ustraightcyrillic'] = 0x04AE;\n t['Ustraightstrokecyrillic'] = 0x04B0;\n t['Utilde'] = 0x0168;\n t['Utildeacute'] = 0x1E78;\n t['Utildebelow'] = 0x1E74;\n t['V'] = 0x0056;\n t['Vcircle'] = 0x24CB;\n t['Vdotbelow'] = 0x1E7E;\n t['Vecyrillic'] = 0x0412;\n t['Vewarmenian'] = 0x054E;\n t['Vhook'] = 0x01B2;\n t['Vmonospace'] = 0xFF36;\n t['Voarmenian'] = 0x0548;\n t['Vsmall'] = 0xF776;\n t['Vtilde'] = 0x1E7C;\n t['W'] = 0x0057;\n t['Wacute'] = 0x1E82;\n t['Wcircle'] = 0x24CC;\n t['Wcircumflex'] = 0x0174;\n t['Wdieresis'] = 0x1E84;\n t['Wdotaccent'] = 0x1E86;\n t['Wdotbelow'] = 0x1E88;\n t['Wgrave'] = 0x1E80;\n t['Wmonospace'] = 0xFF37;\n t['Wsmall'] = 0xF777;\n t['X'] = 0x0058;\n t['Xcircle'] = 0x24CD;\n t['Xdieresis'] = 0x1E8C;\n t['Xdotaccent'] = 0x1E8A;\n t['Xeharmenian'] = 0x053D;\n t['Xi'] = 0x039E;\n t['Xmonospace'] = 0xFF38;\n t['Xsmall'] = 0xF778;\n t['Y'] = 0x0059;\n t['Yacute'] = 0x00DD;\n t['Yacutesmall'] = 0xF7FD;\n t['Yatcyrillic'] = 0x0462;\n t['Ycircle'] = 0x24CE;\n t['Ycircumflex'] = 0x0176;\n t['Ydieresis'] = 0x0178;\n t['Ydieresissmall'] = 0xF7FF;\n t['Ydotaccent'] = 0x1E8E;\n t['Ydotbelow'] = 0x1EF4;\n t['Yericyrillic'] = 0x042B;\n t['Yerudieresiscyrillic'] = 0x04F8;\n t['Ygrave'] = 0x1EF2;\n t['Yhook'] = 0x01B3;\n t['Yhookabove'] = 0x1EF6;\n t['Yiarmenian'] = 0x0545;\n t['Yicyrillic'] = 0x0407;\n t['Yiwnarmenian'] = 0x0552;\n t['Ymonospace'] = 0xFF39;\n t['Ysmall'] = 0xF779;\n t['Ytilde'] = 0x1EF8;\n t['Yusbigcyrillic'] = 0x046A;\n t['Yusbigiotifiedcyrillic'] = 0x046C;\n t['Yuslittlecyrillic'] = 0x0466;\n t['Yuslittleiotifiedcyrillic'] = 0x0468;\n t['Z'] = 0x005A;\n t['Zaarmenian'] = 0x0536;\n t['Zacute'] = 0x0179;\n t['Zcaron'] = 0x017D;\n t['Zcaronsmall'] = 0xF6FF;\n t['Zcircle'] = 0x24CF;\n t['Zcircumflex'] = 0x1E90;\n t['Zdot'] = 0x017B;\n t['Zdotaccent'] = 0x017B;\n t['Zdotbelow'] = 0x1E92;\n t['Zecyrillic'] = 0x0417;\n t['Zedescendercyrillic'] = 0x0498;\n t['Zedieresiscyrillic'] = 0x04DE;\n t['Zeta'] = 0x0396;\n t['Zhearmenian'] = 0x053A;\n t['Zhebrevecyrillic'] = 0x04C1;\n t['Zhecyrillic'] = 0x0416;\n t['Zhedescendercyrillic'] = 0x0496;\n t['Zhedieresiscyrillic'] = 0x04DC;\n t['Zlinebelow'] = 0x1E94;\n t['Zmonospace'] = 0xFF3A;\n t['Zsmall'] = 0xF77A;\n t['Zstroke'] = 0x01B5;\n t['a'] = 0x0061;\n t['aabengali'] = 0x0986;\n t['aacute'] = 0x00E1;\n t['aadeva'] = 0x0906;\n t['aagujarati'] = 0x0A86;\n t['aagurmukhi'] = 0x0A06;\n t['aamatragurmukhi'] = 0x0A3E;\n t['aarusquare'] = 0x3303;\n t['aavowelsignbengali'] = 0x09BE;\n t['aavowelsigndeva'] = 0x093E;\n t['aavowelsigngujarati'] = 0x0ABE;\n t['abbreviationmarkarmenian'] = 0x055F;\n t['abbreviationsigndeva'] = 0x0970;\n t['abengali'] = 0x0985;\n t['abopomofo'] = 0x311A;\n t['abreve'] = 0x0103;\n t['abreveacute'] = 0x1EAF;\n t['abrevecyrillic'] = 0x04D1;\n t['abrevedotbelow'] = 0x1EB7;\n t['abrevegrave'] = 0x1EB1;\n t['abrevehookabove'] = 0x1EB3;\n t['abrevetilde'] = 0x1EB5;\n t['acaron'] = 0x01CE;\n t['acircle'] = 0x24D0;\n t['acircumflex'] = 0x00E2;\n t['acircumflexacute'] = 0x1EA5;\n t['acircumflexdotbelow'] = 0x1EAD;\n t['acircumflexgrave'] = 0x1EA7;\n t['acircumflexhookabove'] = 0x1EA9;\n t['acircumflextilde'] = 0x1EAB;\n t['acute'] = 0x00B4;\n t['acutebelowcmb'] = 0x0317;\n t['acutecmb'] = 0x0301;\n t['acutecomb'] = 0x0301;\n t['acutedeva'] = 0x0954;\n t['acutelowmod'] = 0x02CF;\n t['acutetonecmb'] = 0x0341;\n t['acyrillic'] = 0x0430;\n t['adblgrave'] = 0x0201;\n t['addakgurmukhi'] = 0x0A71;\n t['adeva'] = 0x0905;\n t['adieresis'] = 0x00E4;\n t['adieresiscyrillic'] = 0x04D3;\n t['adieresismacron'] = 0x01DF;\n t['adotbelow'] = 0x1EA1;\n t['adotmacron'] = 0x01E1;\n t['ae'] = 0x00E6;\n t['aeacute'] = 0x01FD;\n t['aekorean'] = 0x3150;\n t['aemacron'] = 0x01E3;\n t['afii00208'] = 0x2015;\n t['afii08941'] = 0x20A4;\n t['afii10017'] = 0x0410;\n t['afii10018'] = 0x0411;\n t['afii10019'] = 0x0412;\n t['afii10020'] = 0x0413;\n t['afii10021'] = 0x0414;\n t['afii10022'] = 0x0415;\n t['afii10023'] = 0x0401;\n t['afii10024'] = 0x0416;\n t['afii10025'] = 0x0417;\n t['afii10026'] = 0x0418;\n t['afii10027'] = 0x0419;\n t['afii10028'] = 0x041A;\n t['afii10029'] = 0x041B;\n t['afii10030'] = 0x041C;\n t['afii10031'] = 0x041D;\n t['afii10032'] = 0x041E;\n t['afii10033'] = 0x041F;\n t['afii10034'] = 0x0420;\n t['afii10035'] = 0x0421;\n t['afii10036'] = 0x0422;\n t['afii10037'] = 0x0423;\n t['afii10038'] = 0x0424;\n t['afii10039'] = 0x0425;\n t['afii10040'] = 0x0426;\n t['afii10041'] = 0x0427;\n t['afii10042'] = 0x0428;\n t['afii10043'] = 0x0429;\n t['afii10044'] = 0x042A;\n t['afii10045'] = 0x042B;\n t['afii10046'] = 0x042C;\n t['afii10047'] = 0x042D;\n t['afii10048'] = 0x042E;\n t['afii10049'] = 0x042F;\n t['afii10050'] = 0x0490;\n t['afii10051'] = 0x0402;\n t['afii10052'] = 0x0403;\n t['afii10053'] = 0x0404;\n t['afii10054'] = 0x0405;\n t['afii10055'] = 0x0406;\n t['afii10056'] = 0x0407;\n t['afii10057'] = 0x0408;\n t['afii10058'] = 0x0409;\n t['afii10059'] = 0x040A;\n t['afii10060'] = 0x040B;\n t['afii10061'] = 0x040C;\n t['afii10062'] = 0x040E;\n t['afii10063'] = 0xF6C4;\n t['afii10064'] = 0xF6C5;\n t['afii10065'] = 0x0430;\n t['afii10066'] = 0x0431;\n t['afii10067'] = 0x0432;\n t['afii10068'] = 0x0433;\n t['afii10069'] = 0x0434;\n t['afii10070'] = 0x0435;\n t['afii10071'] = 0x0451;\n t['afii10072'] = 0x0436;\n t['afii10073'] = 0x0437;\n t['afii10074'] = 0x0438;\n t['afii10075'] = 0x0439;\n t['afii10076'] = 0x043A;\n t['afii10077'] = 0x043B;\n t['afii10078'] = 0x043C;\n t['afii10079'] = 0x043D;\n t['afii10080'] = 0x043E;\n t['afii10081'] = 0x043F;\n t['afii10082'] = 0x0440;\n t['afii10083'] = 0x0441;\n t['afii10084'] = 0x0442;\n t['afii10085'] = 0x0443;\n t['afii10086'] = 0x0444;\n t['afii10087'] = 0x0445;\n t['afii10088'] = 0x0446;\n t['afii10089'] = 0x0447;\n t['afii10090'] = 0x0448;\n t['afii10091'] = 0x0449;\n t['afii10092'] = 0x044A;\n t['afii10093'] = 0x044B;\n t['afii10094'] = 0x044C;\n t['afii10095'] = 0x044D;\n t['afii10096'] = 0x044E;\n t['afii10097'] = 0x044F;\n t['afii10098'] = 0x0491;\n t['afii10099'] = 0x0452;\n t['afii10100'] = 0x0453;\n t['afii10101'] = 0x0454;\n t['afii10102'] = 0x0455;\n t['afii10103'] = 0x0456;\n t['afii10104'] = 0x0457;\n t['afii10105'] = 0x0458;\n t['afii10106'] = 0x0459;\n t['afii10107'] = 0x045A;\n t['afii10108'] = 0x045B;\n t['afii10109'] = 0x045C;\n t['afii10110'] = 0x045E;\n t['afii10145'] = 0x040F;\n t['afii10146'] = 0x0462;\n t['afii10147'] = 0x0472;\n t['afii10148'] = 0x0474;\n t['afii10192'] = 0xF6C6;\n t['afii10193'] = 0x045F;\n t['afii10194'] = 0x0463;\n t['afii10195'] = 0x0473;\n t['afii10196'] = 0x0475;\n t['afii10831'] = 0xF6C7;\n t['afii10832'] = 0xF6C8;\n t['afii10846'] = 0x04D9;\n t['afii299'] = 0x200E;\n t['afii300'] = 0x200F;\n t['afii301'] = 0x200D;\n t['afii57381'] = 0x066A;\n t['afii57388'] = 0x060C;\n t['afii57392'] = 0x0660;\n t['afii57393'] = 0x0661;\n t['afii57394'] = 0x0662;\n t['afii57395'] = 0x0663;\n t['afii57396'] = 0x0664;\n t['afii57397'] = 0x0665;\n t['afii57398'] = 0x0666;\n t['afii57399'] = 0x0667;\n t['afii57400'] = 0x0668;\n t['afii57401'] = 0x0669;\n t['afii57403'] = 0x061B;\n t['afii57407'] = 0x061F;\n t['afii57409'] = 0x0621;\n t['afii57410'] = 0x0622;\n t['afii57411'] = 0x0623;\n t['afii57412'] = 0x0624;\n t['afii57413'] = 0x0625;\n t['afii57414'] = 0x0626;\n t['afii57415'] = 0x0627;\n t['afii57416'] = 0x0628;\n t['afii57417'] = 0x0629;\n t['afii57418'] = 0x062A;\n t['afii57419'] = 0x062B;\n t['afii57420'] = 0x062C;\n t['afii57421'] = 0x062D;\n t['afii57422'] = 0x062E;\n t['afii57423'] = 0x062F;\n t['afii57424'] = 0x0630;\n t['afii57425'] = 0x0631;\n t['afii57426'] = 0x0632;\n t['afii57427'] = 0x0633;\n t['afii57428'] = 0x0634;\n t['afii57429'] = 0x0635;\n t['afii57430'] = 0x0636;\n t['afii57431'] = 0x0637;\n t['afii57432'] = 0x0638;\n t['afii57433'] = 0x0639;\n t['afii57434'] = 0x063A;\n t['afii57440'] = 0x0640;\n t['afii57441'] = 0x0641;\n t['afii57442'] = 0x0642;\n t['afii57443'] = 0x0643;\n t['afii57444'] = 0x0644;\n t['afii57445'] = 0x0645;\n t['afii57446'] = 0x0646;\n t['afii57448'] = 0x0648;\n t['afii57449'] = 0x0649;\n t['afii57450'] = 0x064A;\n t['afii57451'] = 0x064B;\n t['afii57452'] = 0x064C;\n t['afii57453'] = 0x064D;\n t['afii57454'] = 0x064E;\n t['afii57455'] = 0x064F;\n t['afii57456'] = 0x0650;\n t['afii57457'] = 0x0651;\n t['afii57458'] = 0x0652;\n t['afii57470'] = 0x0647;\n t['afii57505'] = 0x06A4;\n t['afii57506'] = 0x067E;\n t['afii57507'] = 0x0686;\n t['afii57508'] = 0x0698;\n t['afii57509'] = 0x06AF;\n t['afii57511'] = 0x0679;\n t['afii57512'] = 0x0688;\n t['afii57513'] = 0x0691;\n t['afii57514'] = 0x06BA;\n t['afii57519'] = 0x06D2;\n t['afii57534'] = 0x06D5;\n t['afii57636'] = 0x20AA;\n t['afii57645'] = 0x05BE;\n t['afii57658'] = 0x05C3;\n t['afii57664'] = 0x05D0;\n t['afii57665'] = 0x05D1;\n t['afii57666'] = 0x05D2;\n t['afii57667'] = 0x05D3;\n t['afii57668'] = 0x05D4;\n t['afii57669'] = 0x05D5;\n t['afii57670'] = 0x05D6;\n t['afii57671'] = 0x05D7;\n t['afii57672'] = 0x05D8;\n t['afii57673'] = 0x05D9;\n t['afii57674'] = 0x05DA;\n t['afii57675'] = 0x05DB;\n t['afii57676'] = 0x05DC;\n t['afii57677'] = 0x05DD;\n t['afii57678'] = 0x05DE;\n t['afii57679'] = 0x05DF;\n t['afii57680'] = 0x05E0;\n t['afii57681'] = 0x05E1;\n t['afii57682'] = 0x05E2;\n t['afii57683'] = 0x05E3;\n t['afii57684'] = 0x05E4;\n t['afii57685'] = 0x05E5;\n t['afii57686'] = 0x05E6;\n t['afii57687'] = 0x05E7;\n t['afii57688'] = 0x05E8;\n t['afii57689'] = 0x05E9;\n t['afii57690'] = 0x05EA;\n t['afii57694'] = 0xFB2A;\n t['afii57695'] = 0xFB2B;\n t['afii57700'] = 0xFB4B;\n t['afii57705'] = 0xFB1F;\n t['afii57716'] = 0x05F0;\n t['afii57717'] = 0x05F1;\n t['afii57718'] = 0x05F2;\n t['afii57723'] = 0xFB35;\n t['afii57793'] = 0x05B4;\n t['afii57794'] = 0x05B5;\n t['afii57795'] = 0x05B6;\n t['afii57796'] = 0x05BB;\n t['afii57797'] = 0x05B8;\n t['afii57798'] = 0x05B7;\n t['afii57799'] = 0x05B0;\n t['afii57800'] = 0x05B2;\n t['afii57801'] = 0x05B1;\n t['afii57802'] = 0x05B3;\n t['afii57803'] = 0x05C2;\n t['afii57804'] = 0x05C1;\n t['afii57806'] = 0x05B9;\n t['afii57807'] = 0x05BC;\n t['afii57839'] = 0x05BD;\n t['afii57841'] = 0x05BF;\n t['afii57842'] = 0x05C0;\n t['afii57929'] = 0x02BC;\n t['afii61248'] = 0x2105;\n t['afii61289'] = 0x2113;\n t['afii61352'] = 0x2116;\n t['afii61573'] = 0x202C;\n t['afii61574'] = 0x202D;\n t['afii61575'] = 0x202E;\n t['afii61664'] = 0x200C;\n t['afii63167'] = 0x066D;\n t['afii64937'] = 0x02BD;\n t['agrave'] = 0x00E0;\n t['agujarati'] = 0x0A85;\n t['agurmukhi'] = 0x0A05;\n t['ahiragana'] = 0x3042;\n t['ahookabove'] = 0x1EA3;\n t['aibengali'] = 0x0990;\n t['aibopomofo'] = 0x311E;\n t['aideva'] = 0x0910;\n t['aiecyrillic'] = 0x04D5;\n t['aigujarati'] = 0x0A90;\n t['aigurmukhi'] = 0x0A10;\n t['aimatragurmukhi'] = 0x0A48;\n t['ainarabic'] = 0x0639;\n t['ainfinalarabic'] = 0xFECA;\n t['aininitialarabic'] = 0xFECB;\n t['ainmedialarabic'] = 0xFECC;\n t['ainvertedbreve'] = 0x0203;\n t['aivowelsignbengali'] = 0x09C8;\n t['aivowelsigndeva'] = 0x0948;\n t['aivowelsigngujarati'] = 0x0AC8;\n t['akatakana'] = 0x30A2;\n t['akatakanahalfwidth'] = 0xFF71;\n t['akorean'] = 0x314F;\n t['alef'] = 0x05D0;\n t['alefarabic'] = 0x0627;\n t['alefdageshhebrew'] = 0xFB30;\n t['aleffinalarabic'] = 0xFE8E;\n t['alefhamzaabovearabic'] = 0x0623;\n t['alefhamzaabovefinalarabic'] = 0xFE84;\n t['alefhamzabelowarabic'] = 0x0625;\n t['alefhamzabelowfinalarabic'] = 0xFE88;\n t['alefhebrew'] = 0x05D0;\n t['aleflamedhebrew'] = 0xFB4F;\n t['alefmaddaabovearabic'] = 0x0622;\n t['alefmaddaabovefinalarabic'] = 0xFE82;\n t['alefmaksuraarabic'] = 0x0649;\n t['alefmaksurafinalarabic'] = 0xFEF0;\n t['alefmaksurainitialarabic'] = 0xFEF3;\n t['alefmaksuramedialarabic'] = 0xFEF4;\n t['alefpatahhebrew'] = 0xFB2E;\n t['alefqamatshebrew'] = 0xFB2F;\n t['aleph'] = 0x2135;\n t['allequal'] = 0x224C;\n t['alpha'] = 0x03B1;\n t['alphatonos'] = 0x03AC;\n t['amacron'] = 0x0101;\n t['amonospace'] = 0xFF41;\n t['ampersand'] = 0x0026;\n t['ampersandmonospace'] = 0xFF06;\n t['ampersandsmall'] = 0xF726;\n t['amsquare'] = 0x33C2;\n t['anbopomofo'] = 0x3122;\n t['angbopomofo'] = 0x3124;\n t['angbracketleft'] = 0x3008;\n t['angbracketright'] = 0x3009;\n t['angkhankhuthai'] = 0x0E5A;\n t['angle'] = 0x2220;\n t['anglebracketleft'] = 0x3008;\n t['anglebracketleftvertical'] = 0xFE3F;\n t['anglebracketright'] = 0x3009;\n t['anglebracketrightvertical'] = 0xFE40;\n t['angleleft'] = 0x2329;\n t['angleright'] = 0x232A;\n t['angstrom'] = 0x212B;\n t['anoteleia'] = 0x0387;\n t['anudattadeva'] = 0x0952;\n t['anusvarabengali'] = 0x0982;\n t['anusvaradeva'] = 0x0902;\n t['anusvaragujarati'] = 0x0A82;\n t['aogonek'] = 0x0105;\n t['apaatosquare'] = 0x3300;\n t['aparen'] = 0x249C;\n t['apostrophearmenian'] = 0x055A;\n t['apostrophemod'] = 0x02BC;\n t['apple'] = 0xF8FF;\n t['approaches'] = 0x2250;\n t['approxequal'] = 0x2248;\n t['approxequalorimage'] = 0x2252;\n t['approximatelyequal'] = 0x2245;\n t['araeaekorean'] = 0x318E;\n t['araeakorean'] = 0x318D;\n t['arc'] = 0x2312;\n t['arighthalfring'] = 0x1E9A;\n t['aring'] = 0x00E5;\n t['aringacute'] = 0x01FB;\n t['aringbelow'] = 0x1E01;\n t['arrowboth'] = 0x2194;\n t['arrowdashdown'] = 0x21E3;\n t['arrowdashleft'] = 0x21E0;\n t['arrowdashright'] = 0x21E2;\n t['arrowdashup'] = 0x21E1;\n t['arrowdblboth'] = 0x21D4;\n t['arrowdbldown'] = 0x21D3;\n t['arrowdblleft'] = 0x21D0;\n t['arrowdblright'] = 0x21D2;\n t['arrowdblup'] = 0x21D1;\n t['arrowdown'] = 0x2193;\n t['arrowdownleft'] = 0x2199;\n t['arrowdownright'] = 0x2198;\n t['arrowdownwhite'] = 0x21E9;\n t['arrowheaddownmod'] = 0x02C5;\n t['arrowheadleftmod'] = 0x02C2;\n t['arrowheadrightmod'] = 0x02C3;\n t['arrowheadupmod'] = 0x02C4;\n t['arrowhorizex'] = 0xF8E7;\n t['arrowleft'] = 0x2190;\n t['arrowleftdbl'] = 0x21D0;\n t['arrowleftdblstroke'] = 0x21CD;\n t['arrowleftoverright'] = 0x21C6;\n t['arrowleftwhite'] = 0x21E6;\n t['arrowright'] = 0x2192;\n t['arrowrightdblstroke'] = 0x21CF;\n t['arrowrightheavy'] = 0x279E;\n t['arrowrightoverleft'] = 0x21C4;\n t['arrowrightwhite'] = 0x21E8;\n t['arrowtableft'] = 0x21E4;\n t['arrowtabright'] = 0x21E5;\n t['arrowup'] = 0x2191;\n t['arrowupdn'] = 0x2195;\n t['arrowupdnbse'] = 0x21A8;\n t['arrowupdownbase'] = 0x21A8;\n t['arrowupleft'] = 0x2196;\n t['arrowupleftofdown'] = 0x21C5;\n t['arrowupright'] = 0x2197;\n t['arrowupwhite'] = 0x21E7;\n t['arrowvertex'] = 0xF8E6;\n t['asciicircum'] = 0x005E;\n t['asciicircummonospace'] = 0xFF3E;\n t['asciitilde'] = 0x007E;\n t['asciitildemonospace'] = 0xFF5E;\n t['ascript'] = 0x0251;\n t['ascriptturned'] = 0x0252;\n t['asmallhiragana'] = 0x3041;\n t['asmallkatakana'] = 0x30A1;\n t['asmallkatakanahalfwidth'] = 0xFF67;\n t['asterisk'] = 0x002A;\n t['asteriskaltonearabic'] = 0x066D;\n t['asteriskarabic'] = 0x066D;\n t['asteriskmath'] = 0x2217;\n t['asteriskmonospace'] = 0xFF0A;\n t['asterisksmall'] = 0xFE61;\n t['asterism'] = 0x2042;\n t['asuperior'] = 0xF6E9;\n t['asymptoticallyequal'] = 0x2243;\n t['at'] = 0x0040;\n t['atilde'] = 0x00E3;\n t['atmonospace'] = 0xFF20;\n t['atsmall'] = 0xFE6B;\n t['aturned'] = 0x0250;\n t['aubengali'] = 0x0994;\n t['aubopomofo'] = 0x3120;\n t['audeva'] = 0x0914;\n t['augujarati'] = 0x0A94;\n t['augurmukhi'] = 0x0A14;\n t['aulengthmarkbengali'] = 0x09D7;\n t['aumatragurmukhi'] = 0x0A4C;\n t['auvowelsignbengali'] = 0x09CC;\n t['auvowelsigndeva'] = 0x094C;\n t['auvowelsigngujarati'] = 0x0ACC;\n t['avagrahadeva'] = 0x093D;\n t['aybarmenian'] = 0x0561;\n t['ayin'] = 0x05E2;\n t['ayinaltonehebrew'] = 0xFB20;\n t['ayinhebrew'] = 0x05E2;\n t['b'] = 0x0062;\n t['babengali'] = 0x09AC;\n t['backslash'] = 0x005C;\n t['backslashmonospace'] = 0xFF3C;\n t['badeva'] = 0x092C;\n t['bagujarati'] = 0x0AAC;\n t['bagurmukhi'] = 0x0A2C;\n t['bahiragana'] = 0x3070;\n t['bahtthai'] = 0x0E3F;\n t['bakatakana'] = 0x30D0;\n t['bar'] = 0x007C;\n t['barmonospace'] = 0xFF5C;\n t['bbopomofo'] = 0x3105;\n t['bcircle'] = 0x24D1;\n t['bdotaccent'] = 0x1E03;\n t['bdotbelow'] = 0x1E05;\n t['beamedsixteenthnotes'] = 0x266C;\n t['because'] = 0x2235;\n t['becyrillic'] = 0x0431;\n t['beharabic'] = 0x0628;\n t['behfinalarabic'] = 0xFE90;\n t['behinitialarabic'] = 0xFE91;\n t['behiragana'] = 0x3079;\n t['behmedialarabic'] = 0xFE92;\n t['behmeeminitialarabic'] = 0xFC9F;\n t['behmeemisolatedarabic'] = 0xFC08;\n t['behnoonfinalarabic'] = 0xFC6D;\n t['bekatakana'] = 0x30D9;\n t['benarmenian'] = 0x0562;\n t['bet'] = 0x05D1;\n t['beta'] = 0x03B2;\n t['betasymbolgreek'] = 0x03D0;\n t['betdagesh'] = 0xFB31;\n t['betdageshhebrew'] = 0xFB31;\n t['bethebrew'] = 0x05D1;\n t['betrafehebrew'] = 0xFB4C;\n t['bhabengali'] = 0x09AD;\n t['bhadeva'] = 0x092D;\n t['bhagujarati'] = 0x0AAD;\n t['bhagurmukhi'] = 0x0A2D;\n t['bhook'] = 0x0253;\n t['bihiragana'] = 0x3073;\n t['bikatakana'] = 0x30D3;\n t['bilabialclick'] = 0x0298;\n t['bindigurmukhi'] = 0x0A02;\n t['birusquare'] = 0x3331;\n t['blackcircle'] = 0x25CF;\n t['blackdiamond'] = 0x25C6;\n t['blackdownpointingtriangle'] = 0x25BC;\n t['blackleftpointingpointer'] = 0x25C4;\n t['blackleftpointingtriangle'] = 0x25C0;\n t['blacklenticularbracketleft'] = 0x3010;\n t['blacklenticularbracketleftvertical'] = 0xFE3B;\n t['blacklenticularbracketright'] = 0x3011;\n t['blacklenticularbracketrightvertical'] = 0xFE3C;\n t['blacklowerlefttriangle'] = 0x25E3;\n t['blacklowerrighttriangle'] = 0x25E2;\n t['blackrectangle'] = 0x25AC;\n t['blackrightpointingpointer'] = 0x25BA;\n t['blackrightpointingtriangle'] = 0x25B6;\n t['blacksmallsquare'] = 0x25AA;\n t['blacksmilingface'] = 0x263B;\n t['blacksquare'] = 0x25A0;\n t['blackstar'] = 0x2605;\n t['blackupperlefttriangle'] = 0x25E4;\n t['blackupperrighttriangle'] = 0x25E5;\n t['blackuppointingsmalltriangle'] = 0x25B4;\n t['blackuppointingtriangle'] = 0x25B2;\n t['blank'] = 0x2423;\n t['blinebelow'] = 0x1E07;\n t['block'] = 0x2588;\n t['bmonospace'] = 0xFF42;\n t['bobaimaithai'] = 0x0E1A;\n t['bohiragana'] = 0x307C;\n t['bokatakana'] = 0x30DC;\n t['bparen'] = 0x249D;\n t['bqsquare'] = 0x33C3;\n t['braceex'] = 0xF8F4;\n t['braceleft'] = 0x007B;\n t['braceleftbt'] = 0xF8F3;\n t['braceleftmid'] = 0xF8F2;\n t['braceleftmonospace'] = 0xFF5B;\n t['braceleftsmall'] = 0xFE5B;\n t['bracelefttp'] = 0xF8F1;\n t['braceleftvertical'] = 0xFE37;\n t['braceright'] = 0x007D;\n t['bracerightbt'] = 0xF8FE;\n t['bracerightmid'] = 0xF8FD;\n t['bracerightmonospace'] = 0xFF5D;\n t['bracerightsmall'] = 0xFE5C;\n t['bracerighttp'] = 0xF8FC;\n t['bracerightvertical'] = 0xFE38;\n t['bracketleft'] = 0x005B;\n t['bracketleftbt'] = 0xF8F0;\n t['bracketleftex'] = 0xF8EF;\n t['bracketleftmonospace'] = 0xFF3B;\n t['bracketlefttp'] = 0xF8EE;\n t['bracketright'] = 0x005D;\n t['bracketrightbt'] = 0xF8FB;\n t['bracketrightex'] = 0xF8FA;\n t['bracketrightmonospace'] = 0xFF3D;\n t['bracketrighttp'] = 0xF8F9;\n t['breve'] = 0x02D8;\n t['brevebelowcmb'] = 0x032E;\n t['brevecmb'] = 0x0306;\n t['breveinvertedbelowcmb'] = 0x032F;\n t['breveinvertedcmb'] = 0x0311;\n t['breveinverteddoublecmb'] = 0x0361;\n t['bridgebelowcmb'] = 0x032A;\n t['bridgeinvertedbelowcmb'] = 0x033A;\n t['brokenbar'] = 0x00A6;\n t['bstroke'] = 0x0180;\n t['bsuperior'] = 0xF6EA;\n t['btopbar'] = 0x0183;\n t['buhiragana'] = 0x3076;\n t['bukatakana'] = 0x30D6;\n t['bullet'] = 0x2022;\n t['bulletinverse'] = 0x25D8;\n t['bulletoperator'] = 0x2219;\n t['bullseye'] = 0x25CE;\n t['c'] = 0x0063;\n t['caarmenian'] = 0x056E;\n t['cabengali'] = 0x099A;\n t['cacute'] = 0x0107;\n t['cadeva'] = 0x091A;\n t['cagujarati'] = 0x0A9A;\n t['cagurmukhi'] = 0x0A1A;\n t['calsquare'] = 0x3388;\n t['candrabindubengali'] = 0x0981;\n t['candrabinducmb'] = 0x0310;\n t['candrabindudeva'] = 0x0901;\n t['candrabindugujarati'] = 0x0A81;\n t['capslock'] = 0x21EA;\n t['careof'] = 0x2105;\n t['caron'] = 0x02C7;\n t['caronbelowcmb'] = 0x032C;\n t['caroncmb'] = 0x030C;\n t['carriagereturn'] = 0x21B5;\n t['cbopomofo'] = 0x3118;\n t['ccaron'] = 0x010D;\n t['ccedilla'] = 0x00E7;\n t['ccedillaacute'] = 0x1E09;\n t['ccircle'] = 0x24D2;\n t['ccircumflex'] = 0x0109;\n t['ccurl'] = 0x0255;\n t['cdot'] = 0x010B;\n t['cdotaccent'] = 0x010B;\n t['cdsquare'] = 0x33C5;\n t['cedilla'] = 0x00B8;\n t['cedillacmb'] = 0x0327;\n t['cent'] = 0x00A2;\n t['centigrade'] = 0x2103;\n t['centinferior'] = 0xF6DF;\n t['centmonospace'] = 0xFFE0;\n t['centoldstyle'] = 0xF7A2;\n t['centsuperior'] = 0xF6E0;\n t['chaarmenian'] = 0x0579;\n t['chabengali'] = 0x099B;\n t['chadeva'] = 0x091B;\n t['chagujarati'] = 0x0A9B;\n t['chagurmukhi'] = 0x0A1B;\n t['chbopomofo'] = 0x3114;\n t['cheabkhasiancyrillic'] = 0x04BD;\n t['checkmark'] = 0x2713;\n t['checyrillic'] = 0x0447;\n t['chedescenderabkhasiancyrillic'] = 0x04BF;\n t['chedescendercyrillic'] = 0x04B7;\n t['chedieresiscyrillic'] = 0x04F5;\n t['cheharmenian'] = 0x0573;\n t['chekhakassiancyrillic'] = 0x04CC;\n t['cheverticalstrokecyrillic'] = 0x04B9;\n t['chi'] = 0x03C7;\n t['chieuchacirclekorean'] = 0x3277;\n t['chieuchaparenkorean'] = 0x3217;\n t['chieuchcirclekorean'] = 0x3269;\n t['chieuchkorean'] = 0x314A;\n t['chieuchparenkorean'] = 0x3209;\n t['chochangthai'] = 0x0E0A;\n t['chochanthai'] = 0x0E08;\n t['chochingthai'] = 0x0E09;\n t['chochoethai'] = 0x0E0C;\n t['chook'] = 0x0188;\n t['cieucacirclekorean'] = 0x3276;\n t['cieucaparenkorean'] = 0x3216;\n t['cieuccirclekorean'] = 0x3268;\n t['cieuckorean'] = 0x3148;\n t['cieucparenkorean'] = 0x3208;\n t['cieucuparenkorean'] = 0x321C;\n t['circle'] = 0x25CB;\n t['circlecopyrt'] = 0x00A9;\n t['circlemultiply'] = 0x2297;\n t['circleot'] = 0x2299;\n t['circleplus'] = 0x2295;\n t['circlepostalmark'] = 0x3036;\n t['circlewithlefthalfblack'] = 0x25D0;\n t['circlewithrighthalfblack'] = 0x25D1;\n t['circumflex'] = 0x02C6;\n t['circumflexbelowcmb'] = 0x032D;\n t['circumflexcmb'] = 0x0302;\n t['clear'] = 0x2327;\n t['clickalveolar'] = 0x01C2;\n t['clickdental'] = 0x01C0;\n t['clicklateral'] = 0x01C1;\n t['clickretroflex'] = 0x01C3;\n t['club'] = 0x2663;\n t['clubsuitblack'] = 0x2663;\n t['clubsuitwhite'] = 0x2667;\n t['cmcubedsquare'] = 0x33A4;\n t['cmonospace'] = 0xFF43;\n t['cmsquaredsquare'] = 0x33A0;\n t['coarmenian'] = 0x0581;\n t['colon'] = 0x003A;\n t['colonmonetary'] = 0x20A1;\n t['colonmonospace'] = 0xFF1A;\n t['colonsign'] = 0x20A1;\n t['colonsmall'] = 0xFE55;\n t['colontriangularhalfmod'] = 0x02D1;\n t['colontriangularmod'] = 0x02D0;\n t['comma'] = 0x002C;\n t['commaabovecmb'] = 0x0313;\n t['commaaboverightcmb'] = 0x0315;\n t['commaaccent'] = 0xF6C3;\n t['commaarabic'] = 0x060C;\n t['commaarmenian'] = 0x055D;\n t['commainferior'] = 0xF6E1;\n t['commamonospace'] = 0xFF0C;\n t['commareversedabovecmb'] = 0x0314;\n t['commareversedmod'] = 0x02BD;\n t['commasmall'] = 0xFE50;\n t['commasuperior'] = 0xF6E2;\n t['commaturnedabovecmb'] = 0x0312;\n t['commaturnedmod'] = 0x02BB;\n t['compass'] = 0x263C;\n t['congruent'] = 0x2245;\n t['contourintegral'] = 0x222E;\n t['control'] = 0x2303;\n t['controlACK'] = 0x0006;\n t['controlBEL'] = 0x0007;\n t['controlBS'] = 0x0008;\n t['controlCAN'] = 0x0018;\n t['controlCR'] = 0x000D;\n t['controlDC1'] = 0x0011;\n t['controlDC2'] = 0x0012;\n t['controlDC3'] = 0x0013;\n t['controlDC4'] = 0x0014;\n t['controlDEL'] = 0x007F;\n t['controlDLE'] = 0x0010;\n t['controlEM'] = 0x0019;\n t['controlENQ'] = 0x0005;\n t['controlEOT'] = 0x0004;\n t['controlESC'] = 0x001B;\n t['controlETB'] = 0x0017;\n t['controlETX'] = 0x0003;\n t['controlFF'] = 0x000C;\n t['controlFS'] = 0x001C;\n t['controlGS'] = 0x001D;\n t['controlHT'] = 0x0009;\n t['controlLF'] = 0x000A;\n t['controlNAK'] = 0x0015;\n t['controlNULL'] = 0x0000;\n t['controlRS'] = 0x001E;\n t['controlSI'] = 0x000F;\n t['controlSO'] = 0x000E;\n t['controlSOT'] = 0x0002;\n t['controlSTX'] = 0x0001;\n t['controlSUB'] = 0x001A;\n t['controlSYN'] = 0x0016;\n t['controlUS'] = 0x001F;\n t['controlVT'] = 0x000B;\n t['copyright'] = 0x00A9;\n t['copyrightsans'] = 0xF8E9;\n t['copyrightserif'] = 0xF6D9;\n t['cornerbracketleft'] = 0x300C;\n t['cornerbracketlefthalfwidth'] = 0xFF62;\n t['cornerbracketleftvertical'] = 0xFE41;\n t['cornerbracketright'] = 0x300D;\n t['cornerbracketrighthalfwidth'] = 0xFF63;\n t['cornerbracketrightvertical'] = 0xFE42;\n t['corporationsquare'] = 0x337F;\n t['cosquare'] = 0x33C7;\n t['coverkgsquare'] = 0x33C6;\n t['cparen'] = 0x249E;\n t['cruzeiro'] = 0x20A2;\n t['cstretched'] = 0x0297;\n t['curlyand'] = 0x22CF;\n t['curlyor'] = 0x22CE;\n t['currency'] = 0x00A4;\n t['cyrBreve'] = 0xF6D1;\n t['cyrFlex'] = 0xF6D2;\n t['cyrbreve'] = 0xF6D4;\n t['cyrflex'] = 0xF6D5;\n t['d'] = 0x0064;\n t['daarmenian'] = 0x0564;\n t['dabengali'] = 0x09A6;\n t['dadarabic'] = 0x0636;\n t['dadeva'] = 0x0926;\n t['dadfinalarabic'] = 0xFEBE;\n t['dadinitialarabic'] = 0xFEBF;\n t['dadmedialarabic'] = 0xFEC0;\n t['dagesh'] = 0x05BC;\n t['dageshhebrew'] = 0x05BC;\n t['dagger'] = 0x2020;\n t['daggerdbl'] = 0x2021;\n t['dagujarati'] = 0x0AA6;\n t['dagurmukhi'] = 0x0A26;\n t['dahiragana'] = 0x3060;\n t['dakatakana'] = 0x30C0;\n t['dalarabic'] = 0x062F;\n t['dalet'] = 0x05D3;\n t['daletdagesh'] = 0xFB33;\n t['daletdageshhebrew'] = 0xFB33;\n t['dalethebrew'] = 0x05D3;\n t['dalfinalarabic'] = 0xFEAA;\n t['dammaarabic'] = 0x064F;\n t['dammalowarabic'] = 0x064F;\n t['dammatanaltonearabic'] = 0x064C;\n t['dammatanarabic'] = 0x064C;\n t['danda'] = 0x0964;\n t['dargahebrew'] = 0x05A7;\n t['dargalefthebrew'] = 0x05A7;\n t['dasiapneumatacyrilliccmb'] = 0x0485;\n t['dblGrave'] = 0xF6D3;\n t['dblanglebracketleft'] = 0x300A;\n t['dblanglebracketleftvertical'] = 0xFE3D;\n t['dblanglebracketright'] = 0x300B;\n t['dblanglebracketrightvertical'] = 0xFE3E;\n t['dblarchinvertedbelowcmb'] = 0x032B;\n t['dblarrowleft'] = 0x21D4;\n t['dblarrowright'] = 0x21D2;\n t['dbldanda'] = 0x0965;\n t['dblgrave'] = 0xF6D6;\n t['dblgravecmb'] = 0x030F;\n t['dblintegral'] = 0x222C;\n t['dbllowline'] = 0x2017;\n t['dbllowlinecmb'] = 0x0333;\n t['dbloverlinecmb'] = 0x033F;\n t['dblprimemod'] = 0x02BA;\n t['dblverticalbar'] = 0x2016;\n t['dblverticallineabovecmb'] = 0x030E;\n t['dbopomofo'] = 0x3109;\n t['dbsquare'] = 0x33C8;\n t['dcaron'] = 0x010F;\n t['dcedilla'] = 0x1E11;\n t['dcircle'] = 0x24D3;\n t['dcircumflexbelow'] = 0x1E13;\n t['dcroat'] = 0x0111;\n t['ddabengali'] = 0x09A1;\n t['ddadeva'] = 0x0921;\n t['ddagujarati'] = 0x0AA1;\n t['ddagurmukhi'] = 0x0A21;\n t['ddalarabic'] = 0x0688;\n t['ddalfinalarabic'] = 0xFB89;\n t['dddhadeva'] = 0x095C;\n t['ddhabengali'] = 0x09A2;\n t['ddhadeva'] = 0x0922;\n t['ddhagujarati'] = 0x0AA2;\n t['ddhagurmukhi'] = 0x0A22;\n t['ddotaccent'] = 0x1E0B;\n t['ddotbelow'] = 0x1E0D;\n t['decimalseparatorarabic'] = 0x066B;\n t['decimalseparatorpersian'] = 0x066B;\n t['decyrillic'] = 0x0434;\n t['degree'] = 0x00B0;\n t['dehihebrew'] = 0x05AD;\n t['dehiragana'] = 0x3067;\n t['deicoptic'] = 0x03EF;\n t['dekatakana'] = 0x30C7;\n t['deleteleft'] = 0x232B;\n t['deleteright'] = 0x2326;\n t['delta'] = 0x03B4;\n t['deltaturned'] = 0x018D;\n t['denominatorminusonenumeratorbengali'] = 0x09F8;\n t['dezh'] = 0x02A4;\n t['dhabengali'] = 0x09A7;\n t['dhadeva'] = 0x0927;\n t['dhagujarati'] = 0x0AA7;\n t['dhagurmukhi'] = 0x0A27;\n t['dhook'] = 0x0257;\n t['dialytikatonos'] = 0x0385;\n t['dialytikatonoscmb'] = 0x0344;\n t['diamond'] = 0x2666;\n t['diamondsuitwhite'] = 0x2662;\n t['dieresis'] = 0x00A8;\n t['dieresisacute'] = 0xF6D7;\n t['dieresisbelowcmb'] = 0x0324;\n t['dieresiscmb'] = 0x0308;\n t['dieresisgrave'] = 0xF6D8;\n t['dieresistonos'] = 0x0385;\n t['dihiragana'] = 0x3062;\n t['dikatakana'] = 0x30C2;\n t['dittomark'] = 0x3003;\n t['divide'] = 0x00F7;\n t['divides'] = 0x2223;\n t['divisionslash'] = 0x2215;\n t['djecyrillic'] = 0x0452;\n t['dkshade'] = 0x2593;\n t['dlinebelow'] = 0x1E0F;\n t['dlsquare'] = 0x3397;\n t['dmacron'] = 0x0111;\n t['dmonospace'] = 0xFF44;\n t['dnblock'] = 0x2584;\n t['dochadathai'] = 0x0E0E;\n t['dodekthai'] = 0x0E14;\n t['dohiragana'] = 0x3069;\n t['dokatakana'] = 0x30C9;\n t['dollar'] = 0x0024;\n t['dollarinferior'] = 0xF6E3;\n t['dollarmonospace'] = 0xFF04;\n t['dollaroldstyle'] = 0xF724;\n t['dollarsmall'] = 0xFE69;\n t['dollarsuperior'] = 0xF6E4;\n t['dong'] = 0x20AB;\n t['dorusquare'] = 0x3326;\n t['dotaccent'] = 0x02D9;\n t['dotaccentcmb'] = 0x0307;\n t['dotbelowcmb'] = 0x0323;\n t['dotbelowcomb'] = 0x0323;\n t['dotkatakana'] = 0x30FB;\n t['dotlessi'] = 0x0131;\n t['dotlessj'] = 0xF6BE;\n t['dotlessjstrokehook'] = 0x0284;\n t['dotmath'] = 0x22C5;\n t['dottedcircle'] = 0x25CC;\n t['doubleyodpatah'] = 0xFB1F;\n t['doubleyodpatahhebrew'] = 0xFB1F;\n t['downtackbelowcmb'] = 0x031E;\n t['downtackmod'] = 0x02D5;\n t['dparen'] = 0x249F;\n t['dsuperior'] = 0xF6EB;\n t['dtail'] = 0x0256;\n t['dtopbar'] = 0x018C;\n t['duhiragana'] = 0x3065;\n t['dukatakana'] = 0x30C5;\n t['dz'] = 0x01F3;\n t['dzaltone'] = 0x02A3;\n t['dzcaron'] = 0x01C6;\n t['dzcurl'] = 0x02A5;\n t['dzeabkhasiancyrillic'] = 0x04E1;\n t['dzecyrillic'] = 0x0455;\n t['dzhecyrillic'] = 0x045F;\n t['e'] = 0x0065;\n t['eacute'] = 0x00E9;\n t['earth'] = 0x2641;\n t['ebengali'] = 0x098F;\n t['ebopomofo'] = 0x311C;\n t['ebreve'] = 0x0115;\n t['ecandradeva'] = 0x090D;\n t['ecandragujarati'] = 0x0A8D;\n t['ecandravowelsigndeva'] = 0x0945;\n t['ecandravowelsigngujarati'] = 0x0AC5;\n t['ecaron'] = 0x011B;\n t['ecedillabreve'] = 0x1E1D;\n t['echarmenian'] = 0x0565;\n t['echyiwnarmenian'] = 0x0587;\n t['ecircle'] = 0x24D4;\n t['ecircumflex'] = 0x00EA;\n t['ecircumflexacute'] = 0x1EBF;\n t['ecircumflexbelow'] = 0x1E19;\n t['ecircumflexdotbelow'] = 0x1EC7;\n t['ecircumflexgrave'] = 0x1EC1;\n t['ecircumflexhookabove'] = 0x1EC3;\n t['ecircumflextilde'] = 0x1EC5;\n t['ecyrillic'] = 0x0454;\n t['edblgrave'] = 0x0205;\n t['edeva'] = 0x090F;\n t['edieresis'] = 0x00EB;\n t['edot'] = 0x0117;\n t['edotaccent'] = 0x0117;\n t['edotbelow'] = 0x1EB9;\n t['eegurmukhi'] = 0x0A0F;\n t['eematragurmukhi'] = 0x0A47;\n t['efcyrillic'] = 0x0444;\n t['egrave'] = 0x00E8;\n t['egujarati'] = 0x0A8F;\n t['eharmenian'] = 0x0567;\n t['ehbopomofo'] = 0x311D;\n t['ehiragana'] = 0x3048;\n t['ehookabove'] = 0x1EBB;\n t['eibopomofo'] = 0x311F;\n t['eight'] = 0x0038;\n t['eightarabic'] = 0x0668;\n t['eightbengali'] = 0x09EE;\n t['eightcircle'] = 0x2467;\n t['eightcircleinversesansserif'] = 0x2791;\n t['eightdeva'] = 0x096E;\n t['eighteencircle'] = 0x2471;\n t['eighteenparen'] = 0x2485;\n t['eighteenperiod'] = 0x2499;\n t['eightgujarati'] = 0x0AEE;\n t['eightgurmukhi'] = 0x0A6E;\n t['eighthackarabic'] = 0x0668;\n t['eighthangzhou'] = 0x3028;\n t['eighthnotebeamed'] = 0x266B;\n t['eightideographicparen'] = 0x3227;\n t['eightinferior'] = 0x2088;\n t['eightmonospace'] = 0xFF18;\n t['eightoldstyle'] = 0xF738;\n t['eightparen'] = 0x247B;\n t['eightperiod'] = 0x248F;\n t['eightpersian'] = 0x06F8;\n t['eightroman'] = 0x2177;\n t['eightsuperior'] = 0x2078;\n t['eightthai'] = 0x0E58;\n t['einvertedbreve'] = 0x0207;\n t['eiotifiedcyrillic'] = 0x0465;\n t['ekatakana'] = 0x30A8;\n t['ekatakanahalfwidth'] = 0xFF74;\n t['ekonkargurmukhi'] = 0x0A74;\n t['ekorean'] = 0x3154;\n t['elcyrillic'] = 0x043B;\n t['element'] = 0x2208;\n t['elevencircle'] = 0x246A;\n t['elevenparen'] = 0x247E;\n t['elevenperiod'] = 0x2492;\n t['elevenroman'] = 0x217A;\n t['ellipsis'] = 0x2026;\n t['ellipsisvertical'] = 0x22EE;\n t['emacron'] = 0x0113;\n t['emacronacute'] = 0x1E17;\n t['emacrongrave'] = 0x1E15;\n t['emcyrillic'] = 0x043C;\n t['emdash'] = 0x2014;\n t['emdashvertical'] = 0xFE31;\n t['emonospace'] = 0xFF45;\n t['emphasismarkarmenian'] = 0x055B;\n t['emptyset'] = 0x2205;\n t['enbopomofo'] = 0x3123;\n t['encyrillic'] = 0x043D;\n t['endash'] = 0x2013;\n t['endashvertical'] = 0xFE32;\n t['endescendercyrillic'] = 0x04A3;\n t['eng'] = 0x014B;\n t['engbopomofo'] = 0x3125;\n t['enghecyrillic'] = 0x04A5;\n t['enhookcyrillic'] = 0x04C8;\n t['enspace'] = 0x2002;\n t['eogonek'] = 0x0119;\n t['eokorean'] = 0x3153;\n t['eopen'] = 0x025B;\n t['eopenclosed'] = 0x029A;\n t['eopenreversed'] = 0x025C;\n t['eopenreversedclosed'] = 0x025E;\n t['eopenreversedhook'] = 0x025D;\n t['eparen'] = 0x24A0;\n t['epsilon'] = 0x03B5;\n t['epsilontonos'] = 0x03AD;\n t['equal'] = 0x003D;\n t['equalmonospace'] = 0xFF1D;\n t['equalsmall'] = 0xFE66;\n t['equalsuperior'] = 0x207C;\n t['equivalence'] = 0x2261;\n t['erbopomofo'] = 0x3126;\n t['ercyrillic'] = 0x0440;\n t['ereversed'] = 0x0258;\n t['ereversedcyrillic'] = 0x044D;\n t['escyrillic'] = 0x0441;\n t['esdescendercyrillic'] = 0x04AB;\n t['esh'] = 0x0283;\n t['eshcurl'] = 0x0286;\n t['eshortdeva'] = 0x090E;\n t['eshortvowelsigndeva'] = 0x0946;\n t['eshreversedloop'] = 0x01AA;\n t['eshsquatreversed'] = 0x0285;\n t['esmallhiragana'] = 0x3047;\n t['esmallkatakana'] = 0x30A7;\n t['esmallkatakanahalfwidth'] = 0xFF6A;\n t['estimated'] = 0x212E;\n t['esuperior'] = 0xF6EC;\n t['eta'] = 0x03B7;\n t['etarmenian'] = 0x0568;\n t['etatonos'] = 0x03AE;\n t['eth'] = 0x00F0;\n t['etilde'] = 0x1EBD;\n t['etildebelow'] = 0x1E1B;\n t['etnahtafoukhhebrew'] = 0x0591;\n t['etnahtafoukhlefthebrew'] = 0x0591;\n t['etnahtahebrew'] = 0x0591;\n t['etnahtalefthebrew'] = 0x0591;\n t['eturned'] = 0x01DD;\n t['eukorean'] = 0x3161;\n t['euro'] = 0x20AC;\n t['evowelsignbengali'] = 0x09C7;\n t['evowelsigndeva'] = 0x0947;\n t['evowelsigngujarati'] = 0x0AC7;\n t['exclam'] = 0x0021;\n t['exclamarmenian'] = 0x055C;\n t['exclamdbl'] = 0x203C;\n t['exclamdown'] = 0x00A1;\n t['exclamdownsmall'] = 0xF7A1;\n t['exclammonospace'] = 0xFF01;\n t['exclamsmall'] = 0xF721;\n t['existential'] = 0x2203;\n t['ezh'] = 0x0292;\n t['ezhcaron'] = 0x01EF;\n t['ezhcurl'] = 0x0293;\n t['ezhreversed'] = 0x01B9;\n t['ezhtail'] = 0x01BA;\n t['f'] = 0x0066;\n t['fadeva'] = 0x095E;\n t['fagurmukhi'] = 0x0A5E;\n t['fahrenheit'] = 0x2109;\n t['fathaarabic'] = 0x064E;\n t['fathalowarabic'] = 0x064E;\n t['fathatanarabic'] = 0x064B;\n t['fbopomofo'] = 0x3108;\n t['fcircle'] = 0x24D5;\n t['fdotaccent'] = 0x1E1F;\n t['feharabic'] = 0x0641;\n t['feharmenian'] = 0x0586;\n t['fehfinalarabic'] = 0xFED2;\n t['fehinitialarabic'] = 0xFED3;\n t['fehmedialarabic'] = 0xFED4;\n t['feicoptic'] = 0x03E5;\n t['female'] = 0x2640;\n t['ff'] = 0xFB00;\n t['ffi'] = 0xFB03;\n t['ffl'] = 0xFB04;\n t['fi'] = 0xFB01;\n t['fifteencircle'] = 0x246E;\n t['fifteenparen'] = 0x2482;\n t['fifteenperiod'] = 0x2496;\n t['figuredash'] = 0x2012;\n t['filledbox'] = 0x25A0;\n t['filledrect'] = 0x25AC;\n t['finalkaf'] = 0x05DA;\n t['finalkafdagesh'] = 0xFB3A;\n t['finalkafdageshhebrew'] = 0xFB3A;\n t['finalkafhebrew'] = 0x05DA;\n t['finalmem'] = 0x05DD;\n t['finalmemhebrew'] = 0x05DD;\n t['finalnun'] = 0x05DF;\n t['finalnunhebrew'] = 0x05DF;\n t['finalpe'] = 0x05E3;\n t['finalpehebrew'] = 0x05E3;\n t['finaltsadi'] = 0x05E5;\n t['finaltsadihebrew'] = 0x05E5;\n t['firsttonechinese'] = 0x02C9;\n t['fisheye'] = 0x25C9;\n t['fitacyrillic'] = 0x0473;\n t['five'] = 0x0035;\n t['fivearabic'] = 0x0665;\n t['fivebengali'] = 0x09EB;\n t['fivecircle'] = 0x2464;\n t['fivecircleinversesansserif'] = 0x278E;\n t['fivedeva'] = 0x096B;\n t['fiveeighths'] = 0x215D;\n t['fivegujarati'] = 0x0AEB;\n t['fivegurmukhi'] = 0x0A6B;\n t['fivehackarabic'] = 0x0665;\n t['fivehangzhou'] = 0x3025;\n t['fiveideographicparen'] = 0x3224;\n t['fiveinferior'] = 0x2085;\n t['fivemonospace'] = 0xFF15;\n t['fiveoldstyle'] = 0xF735;\n t['fiveparen'] = 0x2478;\n t['fiveperiod'] = 0x248C;\n t['fivepersian'] = 0x06F5;\n t['fiveroman'] = 0x2174;\n t['fivesuperior'] = 0x2075;\n t['fivethai'] = 0x0E55;\n t['fl'] = 0xFB02;\n t['florin'] = 0x0192;\n t['fmonospace'] = 0xFF46;\n t['fmsquare'] = 0x3399;\n t['fofanthai'] = 0x0E1F;\n t['fofathai'] = 0x0E1D;\n t['fongmanthai'] = 0x0E4F;\n t['forall'] = 0x2200;\n t['four'] = 0x0034;\n t['fourarabic'] = 0x0664;\n t['fourbengali'] = 0x09EA;\n t['fourcircle'] = 0x2463;\n t['fourcircleinversesansserif'] = 0x278D;\n t['fourdeva'] = 0x096A;\n t['fourgujarati'] = 0x0AEA;\n t['fourgurmukhi'] = 0x0A6A;\n t['fourhackarabic'] = 0x0664;\n t['fourhangzhou'] = 0x3024;\n t['fourideographicparen'] = 0x3223;\n t['fourinferior'] = 0x2084;\n t['fourmonospace'] = 0xFF14;\n t['fournumeratorbengali'] = 0x09F7;\n t['fouroldstyle'] = 0xF734;\n t['fourparen'] = 0x2477;\n t['fourperiod'] = 0x248B;\n t['fourpersian'] = 0x06F4;\n t['fourroman'] = 0x2173;\n t['foursuperior'] = 0x2074;\n t['fourteencircle'] = 0x246D;\n t['fourteenparen'] = 0x2481;\n t['fourteenperiod'] = 0x2495;\n t['fourthai'] = 0x0E54;\n t['fourthtonechinese'] = 0x02CB;\n t['fparen'] = 0x24A1;\n t['fraction'] = 0x2044;\n t['franc'] = 0x20A3;\n t['g'] = 0x0067;\n t['gabengali'] = 0x0997;\n t['gacute'] = 0x01F5;\n t['gadeva'] = 0x0917;\n t['gafarabic'] = 0x06AF;\n t['gaffinalarabic'] = 0xFB93;\n t['gafinitialarabic'] = 0xFB94;\n t['gafmedialarabic'] = 0xFB95;\n t['gagujarati'] = 0x0A97;\n t['gagurmukhi'] = 0x0A17;\n t['gahiragana'] = 0x304C;\n t['gakatakana'] = 0x30AC;\n t['gamma'] = 0x03B3;\n t['gammalatinsmall'] = 0x0263;\n t['gammasuperior'] = 0x02E0;\n t['gangiacoptic'] = 0x03EB;\n t['gbopomofo'] = 0x310D;\n t['gbreve'] = 0x011F;\n t['gcaron'] = 0x01E7;\n t['gcedilla'] = 0x0123;\n t['gcircle'] = 0x24D6;\n t['gcircumflex'] = 0x011D;\n t['gcommaaccent'] = 0x0123;\n t['gdot'] = 0x0121;\n t['gdotaccent'] = 0x0121;\n t['gecyrillic'] = 0x0433;\n t['gehiragana'] = 0x3052;\n t['gekatakana'] = 0x30B2;\n t['geometricallyequal'] = 0x2251;\n t['gereshaccenthebrew'] = 0x059C;\n t['gereshhebrew'] = 0x05F3;\n t['gereshmuqdamhebrew'] = 0x059D;\n t['germandbls'] = 0x00DF;\n t['gershayimaccenthebrew'] = 0x059E;\n t['gershayimhebrew'] = 0x05F4;\n t['getamark'] = 0x3013;\n t['ghabengali'] = 0x0998;\n t['ghadarmenian'] = 0x0572;\n t['ghadeva'] = 0x0918;\n t['ghagujarati'] = 0x0A98;\n t['ghagurmukhi'] = 0x0A18;\n t['ghainarabic'] = 0x063A;\n t['ghainfinalarabic'] = 0xFECE;\n t['ghaininitialarabic'] = 0xFECF;\n t['ghainmedialarabic'] = 0xFED0;\n t['ghemiddlehookcyrillic'] = 0x0495;\n t['ghestrokecyrillic'] = 0x0493;\n t['gheupturncyrillic'] = 0x0491;\n t['ghhadeva'] = 0x095A;\n t['ghhagurmukhi'] = 0x0A5A;\n t['ghook'] = 0x0260;\n t['ghzsquare'] = 0x3393;\n t['gihiragana'] = 0x304E;\n t['gikatakana'] = 0x30AE;\n t['gimarmenian'] = 0x0563;\n t['gimel'] = 0x05D2;\n t['gimeldagesh'] = 0xFB32;\n t['gimeldageshhebrew'] = 0xFB32;\n t['gimelhebrew'] = 0x05D2;\n t['gjecyrillic'] = 0x0453;\n t['glottalinvertedstroke'] = 0x01BE;\n t['glottalstop'] = 0x0294;\n t['glottalstopinverted'] = 0x0296;\n t['glottalstopmod'] = 0x02C0;\n t['glottalstopreversed'] = 0x0295;\n t['glottalstopreversedmod'] = 0x02C1;\n t['glottalstopreversedsuperior'] = 0x02E4;\n t['glottalstopstroke'] = 0x02A1;\n t['glottalstopstrokereversed'] = 0x02A2;\n t['gmacron'] = 0x1E21;\n t['gmonospace'] = 0xFF47;\n t['gohiragana'] = 0x3054;\n t['gokatakana'] = 0x30B4;\n t['gparen'] = 0x24A2;\n t['gpasquare'] = 0x33AC;\n t['gradient'] = 0x2207;\n t['grave'] = 0x0060;\n t['gravebelowcmb'] = 0x0316;\n t['gravecmb'] = 0x0300;\n t['gravecomb'] = 0x0300;\n t['gravedeva'] = 0x0953;\n t['gravelowmod'] = 0x02CE;\n t['gravemonospace'] = 0xFF40;\n t['gravetonecmb'] = 0x0340;\n t['greater'] = 0x003E;\n t['greaterequal'] = 0x2265;\n t['greaterequalorless'] = 0x22DB;\n t['greatermonospace'] = 0xFF1E;\n t['greaterorequivalent'] = 0x2273;\n t['greaterorless'] = 0x2277;\n t['greateroverequal'] = 0x2267;\n t['greatersmall'] = 0xFE65;\n t['gscript'] = 0x0261;\n t['gstroke'] = 0x01E5;\n t['guhiragana'] = 0x3050;\n t['guillemotleft'] = 0x00AB;\n t['guillemotright'] = 0x00BB;\n t['guilsinglleft'] = 0x2039;\n t['guilsinglright'] = 0x203A;\n t['gukatakana'] = 0x30B0;\n t['guramusquare'] = 0x3318;\n t['gysquare'] = 0x33C9;\n t['h'] = 0x0068;\n t['haabkhasiancyrillic'] = 0x04A9;\n t['haaltonearabic'] = 0x06C1;\n t['habengali'] = 0x09B9;\n t['hadescendercyrillic'] = 0x04B3;\n t['hadeva'] = 0x0939;\n t['hagujarati'] = 0x0AB9;\n t['hagurmukhi'] = 0x0A39;\n t['haharabic'] = 0x062D;\n t['hahfinalarabic'] = 0xFEA2;\n t['hahinitialarabic'] = 0xFEA3;\n t['hahiragana'] = 0x306F;\n t['hahmedialarabic'] = 0xFEA4;\n t['haitusquare'] = 0x332A;\n t['hakatakana'] = 0x30CF;\n t['hakatakanahalfwidth'] = 0xFF8A;\n t['halantgurmukhi'] = 0x0A4D;\n t['hamzaarabic'] = 0x0621;\n t['hamzalowarabic'] = 0x0621;\n t['hangulfiller'] = 0x3164;\n t['hardsigncyrillic'] = 0x044A;\n t['harpoonleftbarbup'] = 0x21BC;\n t['harpoonrightbarbup'] = 0x21C0;\n t['hasquare'] = 0x33CA;\n t['hatafpatah'] = 0x05B2;\n t['hatafpatah16'] = 0x05B2;\n t['hatafpatah23'] = 0x05B2;\n t['hatafpatah2f'] = 0x05B2;\n t['hatafpatahhebrew'] = 0x05B2;\n t['hatafpatahnarrowhebrew'] = 0x05B2;\n t['hatafpatahquarterhebrew'] = 0x05B2;\n t['hatafpatahwidehebrew'] = 0x05B2;\n t['hatafqamats'] = 0x05B3;\n t['hatafqamats1b'] = 0x05B3;\n t['hatafqamats28'] = 0x05B3;\n t['hatafqamats34'] = 0x05B3;\n t['hatafqamatshebrew'] = 0x05B3;\n t['hatafqamatsnarrowhebrew'] = 0x05B3;\n t['hatafqamatsquarterhebrew'] = 0x05B3;\n t['hatafqamatswidehebrew'] = 0x05B3;\n t['hatafsegol'] = 0x05B1;\n t['hatafsegol17'] = 0x05B1;\n t['hatafsegol24'] = 0x05B1;\n t['hatafsegol30'] = 0x05B1;\n t['hatafsegolhebrew'] = 0x05B1;\n t['hatafsegolnarrowhebrew'] = 0x05B1;\n t['hatafsegolquarterhebrew'] = 0x05B1;\n t['hatafsegolwidehebrew'] = 0x05B1;\n t['hbar'] = 0x0127;\n t['hbopomofo'] = 0x310F;\n t['hbrevebelow'] = 0x1E2B;\n t['hcedilla'] = 0x1E29;\n t['hcircle'] = 0x24D7;\n t['hcircumflex'] = 0x0125;\n t['hdieresis'] = 0x1E27;\n t['hdotaccent'] = 0x1E23;\n t['hdotbelow'] = 0x1E25;\n t['he'] = 0x05D4;\n t['heart'] = 0x2665;\n t['heartsuitblack'] = 0x2665;\n t['heartsuitwhite'] = 0x2661;\n t['hedagesh'] = 0xFB34;\n t['hedageshhebrew'] = 0xFB34;\n t['hehaltonearabic'] = 0x06C1;\n t['heharabic'] = 0x0647;\n t['hehebrew'] = 0x05D4;\n t['hehfinalaltonearabic'] = 0xFBA7;\n t['hehfinalalttwoarabic'] = 0xFEEA;\n t['hehfinalarabic'] = 0xFEEA;\n t['hehhamzaabovefinalarabic'] = 0xFBA5;\n t['hehhamzaaboveisolatedarabic'] = 0xFBA4;\n t['hehinitialaltonearabic'] = 0xFBA8;\n t['hehinitialarabic'] = 0xFEEB;\n t['hehiragana'] = 0x3078;\n t['hehmedialaltonearabic'] = 0xFBA9;\n t['hehmedialarabic'] = 0xFEEC;\n t['heiseierasquare'] = 0x337B;\n t['hekatakana'] = 0x30D8;\n t['hekatakanahalfwidth'] = 0xFF8D;\n t['hekutaarusquare'] = 0x3336;\n t['henghook'] = 0x0267;\n t['herutusquare'] = 0x3339;\n t['het'] = 0x05D7;\n t['hethebrew'] = 0x05D7;\n t['hhook'] = 0x0266;\n t['hhooksuperior'] = 0x02B1;\n t['hieuhacirclekorean'] = 0x327B;\n t['hieuhaparenkorean'] = 0x321B;\n t['hieuhcirclekorean'] = 0x326D;\n t['hieuhkorean'] = 0x314E;\n t['hieuhparenkorean'] = 0x320D;\n t['hihiragana'] = 0x3072;\n t['hikatakana'] = 0x30D2;\n t['hikatakanahalfwidth'] = 0xFF8B;\n t['hiriq'] = 0x05B4;\n t['hiriq14'] = 0x05B4;\n t['hiriq21'] = 0x05B4;\n t['hiriq2d'] = 0x05B4;\n t['hiriqhebrew'] = 0x05B4;\n t['hiriqnarrowhebrew'] = 0x05B4;\n t['hiriqquarterhebrew'] = 0x05B4;\n t['hiriqwidehebrew'] = 0x05B4;\n t['hlinebelow'] = 0x1E96;\n t['hmonospace'] = 0xFF48;\n t['hoarmenian'] = 0x0570;\n t['hohipthai'] = 0x0E2B;\n t['hohiragana'] = 0x307B;\n t['hokatakana'] = 0x30DB;\n t['hokatakanahalfwidth'] = 0xFF8E;\n t['holam'] = 0x05B9;\n t['holam19'] = 0x05B9;\n t['holam26'] = 0x05B9;\n t['holam32'] = 0x05B9;\n t['holamhebrew'] = 0x05B9;\n t['holamnarrowhebrew'] = 0x05B9;\n t['holamquarterhebrew'] = 0x05B9;\n t['holamwidehebrew'] = 0x05B9;\n t['honokhukthai'] = 0x0E2E;\n t['hookabovecomb'] = 0x0309;\n t['hookcmb'] = 0x0309;\n t['hookpalatalizedbelowcmb'] = 0x0321;\n t['hookretroflexbelowcmb'] = 0x0322;\n t['hoonsquare'] = 0x3342;\n t['horicoptic'] = 0x03E9;\n t['horizontalbar'] = 0x2015;\n t['horncmb'] = 0x031B;\n t['hotsprings'] = 0x2668;\n t['house'] = 0x2302;\n t['hparen'] = 0x24A3;\n t['hsuperior'] = 0x02B0;\n t['hturned'] = 0x0265;\n t['huhiragana'] = 0x3075;\n t['huiitosquare'] = 0x3333;\n t['hukatakana'] = 0x30D5;\n t['hukatakanahalfwidth'] = 0xFF8C;\n t['hungarumlaut'] = 0x02DD;\n t['hungarumlautcmb'] = 0x030B;\n t['hv'] = 0x0195;\n t['hyphen'] = 0x002D;\n t['hypheninferior'] = 0xF6E5;\n t['hyphenmonospace'] = 0xFF0D;\n t['hyphensmall'] = 0xFE63;\n t['hyphensuperior'] = 0xF6E6;\n t['hyphentwo'] = 0x2010;\n t['i'] = 0x0069;\n t['iacute'] = 0x00ED;\n t['iacyrillic'] = 0x044F;\n t['ibengali'] = 0x0987;\n t['ibopomofo'] = 0x3127;\n t['ibreve'] = 0x012D;\n t['icaron'] = 0x01D0;\n t['icircle'] = 0x24D8;\n t['icircumflex'] = 0x00EE;\n t['icyrillic'] = 0x0456;\n t['idblgrave'] = 0x0209;\n t['ideographearthcircle'] = 0x328F;\n t['ideographfirecircle'] = 0x328B;\n t['ideographicallianceparen'] = 0x323F;\n t['ideographiccallparen'] = 0x323A;\n t['ideographiccentrecircle'] = 0x32A5;\n t['ideographicclose'] = 0x3006;\n t['ideographiccomma'] = 0x3001;\n t['ideographiccommaleft'] = 0xFF64;\n t['ideographiccongratulationparen'] = 0x3237;\n t['ideographiccorrectcircle'] = 0x32A3;\n t['ideographicearthparen'] = 0x322F;\n t['ideographicenterpriseparen'] = 0x323D;\n t['ideographicexcellentcircle'] = 0x329D;\n t['ideographicfestivalparen'] = 0x3240;\n t['ideographicfinancialcircle'] = 0x3296;\n t['ideographicfinancialparen'] = 0x3236;\n t['ideographicfireparen'] = 0x322B;\n t['ideographichaveparen'] = 0x3232;\n t['ideographichighcircle'] = 0x32A4;\n t['ideographiciterationmark'] = 0x3005;\n t['ideographiclaborcircle'] = 0x3298;\n t['ideographiclaborparen'] = 0x3238;\n t['ideographicleftcircle'] = 0x32A7;\n t['ideographiclowcircle'] = 0x32A6;\n t['ideographicmedicinecircle'] = 0x32A9;\n t['ideographicmetalparen'] = 0x322E;\n t['ideographicmoonparen'] = 0x322A;\n t['ideographicnameparen'] = 0x3234;\n t['ideographicperiod'] = 0x3002;\n t['ideographicprintcircle'] = 0x329E;\n t['ideographicreachparen'] = 0x3243;\n t['ideographicrepresentparen'] = 0x3239;\n t['ideographicresourceparen'] = 0x323E;\n t['ideographicrightcircle'] = 0x32A8;\n t['ideographicsecretcircle'] = 0x3299;\n t['ideographicselfparen'] = 0x3242;\n t['ideographicsocietyparen'] = 0x3233;\n t['ideographicspace'] = 0x3000;\n t['ideographicspecialparen'] = 0x3235;\n t['ideographicstockparen'] = 0x3231;\n t['ideographicstudyparen'] = 0x323B;\n t['ideographicsunparen'] = 0x3230;\n t['ideographicsuperviseparen'] = 0x323C;\n t['ideographicwaterparen'] = 0x322C;\n t['ideographicwoodparen'] = 0x322D;\n t['ideographiczero'] = 0x3007;\n t['ideographmetalcircle'] = 0x328E;\n t['ideographmooncircle'] = 0x328A;\n t['ideographnamecircle'] = 0x3294;\n t['ideographsuncircle'] = 0x3290;\n t['ideographwatercircle'] = 0x328C;\n t['ideographwoodcircle'] = 0x328D;\n t['ideva'] = 0x0907;\n t['idieresis'] = 0x00EF;\n t['idieresisacute'] = 0x1E2F;\n t['idieresiscyrillic'] = 0x04E5;\n t['idotbelow'] = 0x1ECB;\n t['iebrevecyrillic'] = 0x04D7;\n t['iecyrillic'] = 0x0435;\n t['ieungacirclekorean'] = 0x3275;\n t['ieungaparenkorean'] = 0x3215;\n t['ieungcirclekorean'] = 0x3267;\n t['ieungkorean'] = 0x3147;\n t['ieungparenkorean'] = 0x3207;\n t['igrave'] = 0x00EC;\n t['igujarati'] = 0x0A87;\n t['igurmukhi'] = 0x0A07;\n t['ihiragana'] = 0x3044;\n t['ihookabove'] = 0x1EC9;\n t['iibengali'] = 0x0988;\n t['iicyrillic'] = 0x0438;\n t['iideva'] = 0x0908;\n t['iigujarati'] = 0x0A88;\n t['iigurmukhi'] = 0x0A08;\n t['iimatragurmukhi'] = 0x0A40;\n t['iinvertedbreve'] = 0x020B;\n t['iishortcyrillic'] = 0x0439;\n t['iivowelsignbengali'] = 0x09C0;\n t['iivowelsigndeva'] = 0x0940;\n t['iivowelsigngujarati'] = 0x0AC0;\n t['ij'] = 0x0133;\n t['ikatakana'] = 0x30A4;\n t['ikatakanahalfwidth'] = 0xFF72;\n t['ikorean'] = 0x3163;\n t['ilde'] = 0x02DC;\n t['iluyhebrew'] = 0x05AC;\n t['imacron'] = 0x012B;\n t['imacroncyrillic'] = 0x04E3;\n t['imageorapproximatelyequal'] = 0x2253;\n t['imatragurmukhi'] = 0x0A3F;\n t['imonospace'] = 0xFF49;\n t['increment'] = 0x2206;\n t['infinity'] = 0x221E;\n t['iniarmenian'] = 0x056B;\n t['integral'] = 0x222B;\n t['integralbottom'] = 0x2321;\n t['integralbt'] = 0x2321;\n t['integralex'] = 0xF8F5;\n t['integraltop'] = 0x2320;\n t['integraltp'] = 0x2320;\n t['intersection'] = 0x2229;\n t['intisquare'] = 0x3305;\n t['invbullet'] = 0x25D8;\n t['invcircle'] = 0x25D9;\n t['invsmileface'] = 0x263B;\n t['iocyrillic'] = 0x0451;\n t['iogonek'] = 0x012F;\n t['iota'] = 0x03B9;\n t['iotadieresis'] = 0x03CA;\n t['iotadieresistonos'] = 0x0390;\n t['iotalatin'] = 0x0269;\n t['iotatonos'] = 0x03AF;\n t['iparen'] = 0x24A4;\n t['irigurmukhi'] = 0x0A72;\n t['ismallhiragana'] = 0x3043;\n t['ismallkatakana'] = 0x30A3;\n t['ismallkatakanahalfwidth'] = 0xFF68;\n t['issharbengali'] = 0x09FA;\n t['istroke'] = 0x0268;\n t['isuperior'] = 0xF6ED;\n t['iterationhiragana'] = 0x309D;\n t['iterationkatakana'] = 0x30FD;\n t['itilde'] = 0x0129;\n t['itildebelow'] = 0x1E2D;\n t['iubopomofo'] = 0x3129;\n t['iucyrillic'] = 0x044E;\n t['ivowelsignbengali'] = 0x09BF;\n t['ivowelsigndeva'] = 0x093F;\n t['ivowelsigngujarati'] = 0x0ABF;\n t['izhitsacyrillic'] = 0x0475;\n t['izhitsadblgravecyrillic'] = 0x0477;\n t['j'] = 0x006A;\n t['jaarmenian'] = 0x0571;\n t['jabengali'] = 0x099C;\n t['jadeva'] = 0x091C;\n t['jagujarati'] = 0x0A9C;\n t['jagurmukhi'] = 0x0A1C;\n t['jbopomofo'] = 0x3110;\n t['jcaron'] = 0x01F0;\n t['jcircle'] = 0x24D9;\n t['jcircumflex'] = 0x0135;\n t['jcrossedtail'] = 0x029D;\n t['jdotlessstroke'] = 0x025F;\n t['jecyrillic'] = 0x0458;\n t['jeemarabic'] = 0x062C;\n t['jeemfinalarabic'] = 0xFE9E;\n t['jeeminitialarabic'] = 0xFE9F;\n t['jeemmedialarabic'] = 0xFEA0;\n t['jeharabic'] = 0x0698;\n t['jehfinalarabic'] = 0xFB8B;\n t['jhabengali'] = 0x099D;\n t['jhadeva'] = 0x091D;\n t['jhagujarati'] = 0x0A9D;\n t['jhagurmukhi'] = 0x0A1D;\n t['jheharmenian'] = 0x057B;\n t['jis'] = 0x3004;\n t['jmonospace'] = 0xFF4A;\n t['jparen'] = 0x24A5;\n t['jsuperior'] = 0x02B2;\n t['k'] = 0x006B;\n t['kabashkircyrillic'] = 0x04A1;\n t['kabengali'] = 0x0995;\n t['kacute'] = 0x1E31;\n t['kacyrillic'] = 0x043A;\n t['kadescendercyrillic'] = 0x049B;\n t['kadeva'] = 0x0915;\n t['kaf'] = 0x05DB;\n t['kafarabic'] = 0x0643;\n t['kafdagesh'] = 0xFB3B;\n t['kafdageshhebrew'] = 0xFB3B;\n t['kaffinalarabic'] = 0xFEDA;\n t['kafhebrew'] = 0x05DB;\n t['kafinitialarabic'] = 0xFEDB;\n t['kafmedialarabic'] = 0xFEDC;\n t['kafrafehebrew'] = 0xFB4D;\n t['kagujarati'] = 0x0A95;\n t['kagurmukhi'] = 0x0A15;\n t['kahiragana'] = 0x304B;\n t['kahookcyrillic'] = 0x04C4;\n t['kakatakana'] = 0x30AB;\n t['kakatakanahalfwidth'] = 0xFF76;\n t['kappa'] = 0x03BA;\n t['kappasymbolgreek'] = 0x03F0;\n t['kapyeounmieumkorean'] = 0x3171;\n t['kapyeounphieuphkorean'] = 0x3184;\n t['kapyeounpieupkorean'] = 0x3178;\n t['kapyeounssangpieupkorean'] = 0x3179;\n t['karoriisquare'] = 0x330D;\n t['kashidaautoarabic'] = 0x0640;\n t['kashidaautonosidebearingarabic'] = 0x0640;\n t['kasmallkatakana'] = 0x30F5;\n t['kasquare'] = 0x3384;\n t['kasraarabic'] = 0x0650;\n t['kasratanarabic'] = 0x064D;\n t['kastrokecyrillic'] = 0x049F;\n t['katahiraprolongmarkhalfwidth'] = 0xFF70;\n t['kaverticalstrokecyrillic'] = 0x049D;\n t['kbopomofo'] = 0x310E;\n t['kcalsquare'] = 0x3389;\n t['kcaron'] = 0x01E9;\n t['kcedilla'] = 0x0137;\n t['kcircle'] = 0x24DA;\n t['kcommaaccent'] = 0x0137;\n t['kdotbelow'] = 0x1E33;\n t['keharmenian'] = 0x0584;\n t['kehiragana'] = 0x3051;\n t['kekatakana'] = 0x30B1;\n t['kekatakanahalfwidth'] = 0xFF79;\n t['kenarmenian'] = 0x056F;\n t['kesmallkatakana'] = 0x30F6;\n t['kgreenlandic'] = 0x0138;\n t['khabengali'] = 0x0996;\n t['khacyrillic'] = 0x0445;\n t['khadeva'] = 0x0916;\n t['khagujarati'] = 0x0A96;\n t['khagurmukhi'] = 0x0A16;\n t['khaharabic'] = 0x062E;\n t['khahfinalarabic'] = 0xFEA6;\n t['khahinitialarabic'] = 0xFEA7;\n t['khahmedialarabic'] = 0xFEA8;\n t['kheicoptic'] = 0x03E7;\n t['khhadeva'] = 0x0959;\n t['khhagurmukhi'] = 0x0A59;\n t['khieukhacirclekorean'] = 0x3278;\n t['khieukhaparenkorean'] = 0x3218;\n t['khieukhcirclekorean'] = 0x326A;\n t['khieukhkorean'] = 0x314B;\n t['khieukhparenkorean'] = 0x320A;\n t['khokhaithai'] = 0x0E02;\n t['khokhonthai'] = 0x0E05;\n t['khokhuatthai'] = 0x0E03;\n t['khokhwaithai'] = 0x0E04;\n t['khomutthai'] = 0x0E5B;\n t['khook'] = 0x0199;\n t['khorakhangthai'] = 0x0E06;\n t['khzsquare'] = 0x3391;\n t['kihiragana'] = 0x304D;\n t['kikatakana'] = 0x30AD;\n t['kikatakanahalfwidth'] = 0xFF77;\n t['kiroguramusquare'] = 0x3315;\n t['kiromeetorusquare'] = 0x3316;\n t['kirosquare'] = 0x3314;\n t['kiyeokacirclekorean'] = 0x326E;\n t['kiyeokaparenkorean'] = 0x320E;\n t['kiyeokcirclekorean'] = 0x3260;\n t['kiyeokkorean'] = 0x3131;\n t['kiyeokparenkorean'] = 0x3200;\n t['kiyeoksioskorean'] = 0x3133;\n t['kjecyrillic'] = 0x045C;\n t['klinebelow'] = 0x1E35;\n t['klsquare'] = 0x3398;\n t['kmcubedsquare'] = 0x33A6;\n t['kmonospace'] = 0xFF4B;\n t['kmsquaredsquare'] = 0x33A2;\n t['kohiragana'] = 0x3053;\n t['kohmsquare'] = 0x33C0;\n t['kokaithai'] = 0x0E01;\n t['kokatakana'] = 0x30B3;\n t['kokatakanahalfwidth'] = 0xFF7A;\n t['kooposquare'] = 0x331E;\n t['koppacyrillic'] = 0x0481;\n t['koreanstandardsymbol'] = 0x327F;\n t['koroniscmb'] = 0x0343;\n t['kparen'] = 0x24A6;\n t['kpasquare'] = 0x33AA;\n t['ksicyrillic'] = 0x046F;\n t['ktsquare'] = 0x33CF;\n t['kturned'] = 0x029E;\n t['kuhiragana'] = 0x304F;\n t['kukatakana'] = 0x30AF;\n t['kukatakanahalfwidth'] = 0xFF78;\n t['kvsquare'] = 0x33B8;\n t['kwsquare'] = 0x33BE;\n t['l'] = 0x006C;\n t['labengali'] = 0x09B2;\n t['lacute'] = 0x013A;\n t['ladeva'] = 0x0932;\n t['lagujarati'] = 0x0AB2;\n t['lagurmukhi'] = 0x0A32;\n t['lakkhangyaothai'] = 0x0E45;\n t['lamaleffinalarabic'] = 0xFEFC;\n t['lamalefhamzaabovefinalarabic'] = 0xFEF8;\n t['lamalefhamzaaboveisolatedarabic'] = 0xFEF7;\n t['lamalefhamzabelowfinalarabic'] = 0xFEFA;\n t['lamalefhamzabelowisolatedarabic'] = 0xFEF9;\n t['lamalefisolatedarabic'] = 0xFEFB;\n t['lamalefmaddaabovefinalarabic'] = 0xFEF6;\n t['lamalefmaddaaboveisolatedarabic'] = 0xFEF5;\n t['lamarabic'] = 0x0644;\n t['lambda'] = 0x03BB;\n t['lambdastroke'] = 0x019B;\n t['lamed'] = 0x05DC;\n t['lameddagesh'] = 0xFB3C;\n t['lameddageshhebrew'] = 0xFB3C;\n t['lamedhebrew'] = 0x05DC;\n t['lamfinalarabic'] = 0xFEDE;\n t['lamhahinitialarabic'] = 0xFCCA;\n t['laminitialarabic'] = 0xFEDF;\n t['lamjeeminitialarabic'] = 0xFCC9;\n t['lamkhahinitialarabic'] = 0xFCCB;\n t['lamlamhehisolatedarabic'] = 0xFDF2;\n t['lammedialarabic'] = 0xFEE0;\n t['lammeemhahinitialarabic'] = 0xFD88;\n t['lammeeminitialarabic'] = 0xFCCC;\n t['largecircle'] = 0x25EF;\n t['lbar'] = 0x019A;\n t['lbelt'] = 0x026C;\n t['lbopomofo'] = 0x310C;\n t['lcaron'] = 0x013E;\n t['lcedilla'] = 0x013C;\n t['lcircle'] = 0x24DB;\n t['lcircumflexbelow'] = 0x1E3D;\n t['lcommaaccent'] = 0x013C;\n t['ldot'] = 0x0140;\n t['ldotaccent'] = 0x0140;\n t['ldotbelow'] = 0x1E37;\n t['ldotbelowmacron'] = 0x1E39;\n t['leftangleabovecmb'] = 0x031A;\n t['lefttackbelowcmb'] = 0x0318;\n t['less'] = 0x003C;\n t['lessequal'] = 0x2264;\n t['lessequalorgreater'] = 0x22DA;\n t['lessmonospace'] = 0xFF1C;\n t['lessorequivalent'] = 0x2272;\n t['lessorgreater'] = 0x2276;\n t['lessoverequal'] = 0x2266;\n t['lesssmall'] = 0xFE64;\n t['lezh'] = 0x026E;\n t['lfblock'] = 0x258C;\n t['lhookretroflex'] = 0x026D;\n t['lira'] = 0x20A4;\n t['liwnarmenian'] = 0x056C;\n t['lj'] = 0x01C9;\n t['ljecyrillic'] = 0x0459;\n t['ll'] = 0xF6C0;\n t['lladeva'] = 0x0933;\n t['llagujarati'] = 0x0AB3;\n t['llinebelow'] = 0x1E3B;\n t['llladeva'] = 0x0934;\n t['llvocalicbengali'] = 0x09E1;\n t['llvocalicdeva'] = 0x0961;\n t['llvocalicvowelsignbengali'] = 0x09E3;\n t['llvocalicvowelsigndeva'] = 0x0963;\n t['lmiddletilde'] = 0x026B;\n t['lmonospace'] = 0xFF4C;\n t['lmsquare'] = 0x33D0;\n t['lochulathai'] = 0x0E2C;\n t['logicaland'] = 0x2227;\n t['logicalnot'] = 0x00AC;\n t['logicalnotreversed'] = 0x2310;\n t['logicalor'] = 0x2228;\n t['lolingthai'] = 0x0E25;\n t['longs'] = 0x017F;\n t['lowlinecenterline'] = 0xFE4E;\n t['lowlinecmb'] = 0x0332;\n t['lowlinedashed'] = 0xFE4D;\n t['lozenge'] = 0x25CA;\n t['lparen'] = 0x24A7;\n t['lslash'] = 0x0142;\n t['lsquare'] = 0x2113;\n t['lsuperior'] = 0xF6EE;\n t['ltshade'] = 0x2591;\n t['luthai'] = 0x0E26;\n t['lvocalicbengali'] = 0x098C;\n t['lvocalicdeva'] = 0x090C;\n t['lvocalicvowelsignbengali'] = 0x09E2;\n t['lvocalicvowelsigndeva'] = 0x0962;\n t['lxsquare'] = 0x33D3;\n t['m'] = 0x006D;\n t['mabengali'] = 0x09AE;\n t['macron'] = 0x00AF;\n t['macronbelowcmb'] = 0x0331;\n t['macroncmb'] = 0x0304;\n t['macronlowmod'] = 0x02CD;\n t['macronmonospace'] = 0xFFE3;\n t['macute'] = 0x1E3F;\n t['madeva'] = 0x092E;\n t['magujarati'] = 0x0AAE;\n t['magurmukhi'] = 0x0A2E;\n t['mahapakhhebrew'] = 0x05A4;\n t['mahapakhlefthebrew'] = 0x05A4;\n t['mahiragana'] = 0x307E;\n t['maichattawalowleftthai'] = 0xF895;\n t['maichattawalowrightthai'] = 0xF894;\n t['maichattawathai'] = 0x0E4B;\n t['maichattawaupperleftthai'] = 0xF893;\n t['maieklowleftthai'] = 0xF88C;\n t['maieklowrightthai'] = 0xF88B;\n t['maiekthai'] = 0x0E48;\n t['maiekupperleftthai'] = 0xF88A;\n t['maihanakatleftthai'] = 0xF884;\n t['maihanakatthai'] = 0x0E31;\n t['maitaikhuleftthai'] = 0xF889;\n t['maitaikhuthai'] = 0x0E47;\n t['maitholowleftthai'] = 0xF88F;\n t['maitholowrightthai'] = 0xF88E;\n t['maithothai'] = 0x0E49;\n t['maithoupperleftthai'] = 0xF88D;\n t['maitrilowleftthai'] = 0xF892;\n t['maitrilowrightthai'] = 0xF891;\n t['maitrithai'] = 0x0E4A;\n t['maitriupperleftthai'] = 0xF890;\n t['maiyamokthai'] = 0x0E46;\n t['makatakana'] = 0x30DE;\n t['makatakanahalfwidth'] = 0xFF8F;\n t['male'] = 0x2642;\n t['mansyonsquare'] = 0x3347;\n t['maqafhebrew'] = 0x05BE;\n t['mars'] = 0x2642;\n t['masoracirclehebrew'] = 0x05AF;\n t['masquare'] = 0x3383;\n t['mbopomofo'] = 0x3107;\n t['mbsquare'] = 0x33D4;\n t['mcircle'] = 0x24DC;\n t['mcubedsquare'] = 0x33A5;\n t['mdotaccent'] = 0x1E41;\n t['mdotbelow'] = 0x1E43;\n t['meemarabic'] = 0x0645;\n t['meemfinalarabic'] = 0xFEE2;\n t['meeminitialarabic'] = 0xFEE3;\n t['meemmedialarabic'] = 0xFEE4;\n t['meemmeeminitialarabic'] = 0xFCD1;\n t['meemmeemisolatedarabic'] = 0xFC48;\n t['meetorusquare'] = 0x334D;\n t['mehiragana'] = 0x3081;\n t['meizierasquare'] = 0x337E;\n t['mekatakana'] = 0x30E1;\n t['mekatakanahalfwidth'] = 0xFF92;\n t['mem'] = 0x05DE;\n t['memdagesh'] = 0xFB3E;\n t['memdageshhebrew'] = 0xFB3E;\n t['memhebrew'] = 0x05DE;\n t['menarmenian'] = 0x0574;\n t['merkhahebrew'] = 0x05A5;\n t['merkhakefulahebrew'] = 0x05A6;\n t['merkhakefulalefthebrew'] = 0x05A6;\n t['merkhalefthebrew'] = 0x05A5;\n t['mhook'] = 0x0271;\n t['mhzsquare'] = 0x3392;\n t['middledotkatakanahalfwidth'] = 0xFF65;\n t['middot'] = 0x00B7;\n t['mieumacirclekorean'] = 0x3272;\n t['mieumaparenkorean'] = 0x3212;\n t['mieumcirclekorean'] = 0x3264;\n t['mieumkorean'] = 0x3141;\n t['mieumpansioskorean'] = 0x3170;\n t['mieumparenkorean'] = 0x3204;\n t['mieumpieupkorean'] = 0x316E;\n t['mieumsioskorean'] = 0x316F;\n t['mihiragana'] = 0x307F;\n t['mikatakana'] = 0x30DF;\n t['mikatakanahalfwidth'] = 0xFF90;\n t['minus'] = 0x2212;\n t['minusbelowcmb'] = 0x0320;\n t['minuscircle'] = 0x2296;\n t['minusmod'] = 0x02D7;\n t['minusplus'] = 0x2213;\n t['minute'] = 0x2032;\n t['miribaarusquare'] = 0x334A;\n t['mirisquare'] = 0x3349;\n t['mlonglegturned'] = 0x0270;\n t['mlsquare'] = 0x3396;\n t['mmcubedsquare'] = 0x33A3;\n t['mmonospace'] = 0xFF4D;\n t['mmsquaredsquare'] = 0x339F;\n t['mohiragana'] = 0x3082;\n t['mohmsquare'] = 0x33C1;\n t['mokatakana'] = 0x30E2;\n t['mokatakanahalfwidth'] = 0xFF93;\n t['molsquare'] = 0x33D6;\n t['momathai'] = 0x0E21;\n t['moverssquare'] = 0x33A7;\n t['moverssquaredsquare'] = 0x33A8;\n t['mparen'] = 0x24A8;\n t['mpasquare'] = 0x33AB;\n t['mssquare'] = 0x33B3;\n t['msuperior'] = 0xF6EF;\n t['mturned'] = 0x026F;\n t['mu'] = 0x00B5;\n t['mu1'] = 0x00B5;\n t['muasquare'] = 0x3382;\n t['muchgreater'] = 0x226B;\n t['muchless'] = 0x226A;\n t['mufsquare'] = 0x338C;\n t['mugreek'] = 0x03BC;\n t['mugsquare'] = 0x338D;\n t['muhiragana'] = 0x3080;\n t['mukatakana'] = 0x30E0;\n t['mukatakanahalfwidth'] = 0xFF91;\n t['mulsquare'] = 0x3395;\n t['multiply'] = 0x00D7;\n t['mumsquare'] = 0x339B;\n t['munahhebrew'] = 0x05A3;\n t['munahlefthebrew'] = 0x05A3;\n t['musicalnote'] = 0x266A;\n t['musicalnotedbl'] = 0x266B;\n t['musicflatsign'] = 0x266D;\n t['musicsharpsign'] = 0x266F;\n t['mussquare'] = 0x33B2;\n t['muvsquare'] = 0x33B6;\n t['muwsquare'] = 0x33BC;\n t['mvmegasquare'] = 0x33B9;\n t['mvsquare'] = 0x33B7;\n t['mwmegasquare'] = 0x33BF;\n t['mwsquare'] = 0x33BD;\n t['n'] = 0x006E;\n t['nabengali'] = 0x09A8;\n t['nabla'] = 0x2207;\n t['nacute'] = 0x0144;\n t['nadeva'] = 0x0928;\n t['nagujarati'] = 0x0AA8;\n t['nagurmukhi'] = 0x0A28;\n t['nahiragana'] = 0x306A;\n t['nakatakana'] = 0x30CA;\n t['nakatakanahalfwidth'] = 0xFF85;\n t['napostrophe'] = 0x0149;\n t['nasquare'] = 0x3381;\n t['nbopomofo'] = 0x310B;\n t['nbspace'] = 0x00A0;\n t['ncaron'] = 0x0148;\n t['ncedilla'] = 0x0146;\n t['ncircle'] = 0x24DD;\n t['ncircumflexbelow'] = 0x1E4B;\n t['ncommaaccent'] = 0x0146;\n t['ndotaccent'] = 0x1E45;\n t['ndotbelow'] = 0x1E47;\n t['nehiragana'] = 0x306D;\n t['nekatakana'] = 0x30CD;\n t['nekatakanahalfwidth'] = 0xFF88;\n t['newsheqelsign'] = 0x20AA;\n t['nfsquare'] = 0x338B;\n t['ngabengali'] = 0x0999;\n t['ngadeva'] = 0x0919;\n t['ngagujarati'] = 0x0A99;\n t['ngagurmukhi'] = 0x0A19;\n t['ngonguthai'] = 0x0E07;\n t['nhiragana'] = 0x3093;\n t['nhookleft'] = 0x0272;\n t['nhookretroflex'] = 0x0273;\n t['nieunacirclekorean'] = 0x326F;\n t['nieunaparenkorean'] = 0x320F;\n t['nieuncieuckorean'] = 0x3135;\n t['nieuncirclekorean'] = 0x3261;\n t['nieunhieuhkorean'] = 0x3136;\n t['nieunkorean'] = 0x3134;\n t['nieunpansioskorean'] = 0x3168;\n t['nieunparenkorean'] = 0x3201;\n t['nieunsioskorean'] = 0x3167;\n t['nieuntikeutkorean'] = 0x3166;\n t['nihiragana'] = 0x306B;\n t['nikatakana'] = 0x30CB;\n t['nikatakanahalfwidth'] = 0xFF86;\n t['nikhahitleftthai'] = 0xF899;\n t['nikhahitthai'] = 0x0E4D;\n t['nine'] = 0x0039;\n t['ninearabic'] = 0x0669;\n t['ninebengali'] = 0x09EF;\n t['ninecircle'] = 0x2468;\n t['ninecircleinversesansserif'] = 0x2792;\n t['ninedeva'] = 0x096F;\n t['ninegujarati'] = 0x0AEF;\n t['ninegurmukhi'] = 0x0A6F;\n t['ninehackarabic'] = 0x0669;\n t['ninehangzhou'] = 0x3029;\n t['nineideographicparen'] = 0x3228;\n t['nineinferior'] = 0x2089;\n t['ninemonospace'] = 0xFF19;\n t['nineoldstyle'] = 0xF739;\n t['nineparen'] = 0x247C;\n t['nineperiod'] = 0x2490;\n t['ninepersian'] = 0x06F9;\n t['nineroman'] = 0x2178;\n t['ninesuperior'] = 0x2079;\n t['nineteencircle'] = 0x2472;\n t['nineteenparen'] = 0x2486;\n t['nineteenperiod'] = 0x249A;\n t['ninethai'] = 0x0E59;\n t['nj'] = 0x01CC;\n t['njecyrillic'] = 0x045A;\n t['nkatakana'] = 0x30F3;\n t['nkatakanahalfwidth'] = 0xFF9D;\n t['nlegrightlong'] = 0x019E;\n t['nlinebelow'] = 0x1E49;\n t['nmonospace'] = 0xFF4E;\n t['nmsquare'] = 0x339A;\n t['nnabengali'] = 0x09A3;\n t['nnadeva'] = 0x0923;\n t['nnagujarati'] = 0x0AA3;\n t['nnagurmukhi'] = 0x0A23;\n t['nnnadeva'] = 0x0929;\n t['nohiragana'] = 0x306E;\n t['nokatakana'] = 0x30CE;\n t['nokatakanahalfwidth'] = 0xFF89;\n t['nonbreakingspace'] = 0x00A0;\n t['nonenthai'] = 0x0E13;\n t['nonuthai'] = 0x0E19;\n t['noonarabic'] = 0x0646;\n t['noonfinalarabic'] = 0xFEE6;\n t['noonghunnaarabic'] = 0x06BA;\n t['noonghunnafinalarabic'] = 0xFB9F;\n t['nooninitialarabic'] = 0xFEE7;\n t['noonjeeminitialarabic'] = 0xFCD2;\n t['noonjeemisolatedarabic'] = 0xFC4B;\n t['noonmedialarabic'] = 0xFEE8;\n t['noonmeeminitialarabic'] = 0xFCD5;\n t['noonmeemisolatedarabic'] = 0xFC4E;\n t['noonnoonfinalarabic'] = 0xFC8D;\n t['notcontains'] = 0x220C;\n t['notelement'] = 0x2209;\n t['notelementof'] = 0x2209;\n t['notequal'] = 0x2260;\n t['notgreater'] = 0x226F;\n t['notgreaternorequal'] = 0x2271;\n t['notgreaternorless'] = 0x2279;\n t['notidentical'] = 0x2262;\n t['notless'] = 0x226E;\n t['notlessnorequal'] = 0x2270;\n t['notparallel'] = 0x2226;\n t['notprecedes'] = 0x2280;\n t['notsubset'] = 0x2284;\n t['notsucceeds'] = 0x2281;\n t['notsuperset'] = 0x2285;\n t['nowarmenian'] = 0x0576;\n t['nparen'] = 0x24A9;\n t['nssquare'] = 0x33B1;\n t['nsuperior'] = 0x207F;\n t['ntilde'] = 0x00F1;\n t['nu'] = 0x03BD;\n t['nuhiragana'] = 0x306C;\n t['nukatakana'] = 0x30CC;\n t['nukatakanahalfwidth'] = 0xFF87;\n t['nuktabengali'] = 0x09BC;\n t['nuktadeva'] = 0x093C;\n t['nuktagujarati'] = 0x0ABC;\n t['nuktagurmukhi'] = 0x0A3C;\n t['numbersign'] = 0x0023;\n t['numbersignmonospace'] = 0xFF03;\n t['numbersignsmall'] = 0xFE5F;\n t['numeralsigngreek'] = 0x0374;\n t['numeralsignlowergreek'] = 0x0375;\n t['numero'] = 0x2116;\n t['nun'] = 0x05E0;\n t['nundagesh'] = 0xFB40;\n t['nundageshhebrew'] = 0xFB40;\n t['nunhebrew'] = 0x05E0;\n t['nvsquare'] = 0x33B5;\n t['nwsquare'] = 0x33BB;\n t['nyabengali'] = 0x099E;\n t['nyadeva'] = 0x091E;\n t['nyagujarati'] = 0x0A9E;\n t['nyagurmukhi'] = 0x0A1E;\n t['o'] = 0x006F;\n t['oacute'] = 0x00F3;\n t['oangthai'] = 0x0E2D;\n t['obarred'] = 0x0275;\n t['obarredcyrillic'] = 0x04E9;\n t['obarreddieresiscyrillic'] = 0x04EB;\n t['obengali'] = 0x0993;\n t['obopomofo'] = 0x311B;\n t['obreve'] = 0x014F;\n t['ocandradeva'] = 0x0911;\n t['ocandragujarati'] = 0x0A91;\n t['ocandravowelsigndeva'] = 0x0949;\n t['ocandravowelsigngujarati'] = 0x0AC9;\n t['ocaron'] = 0x01D2;\n t['ocircle'] = 0x24DE;\n t['ocircumflex'] = 0x00F4;\n t['ocircumflexacute'] = 0x1ED1;\n t['ocircumflexdotbelow'] = 0x1ED9;\n t['ocircumflexgrave'] = 0x1ED3;\n t['ocircumflexhookabove'] = 0x1ED5;\n t['ocircumflextilde'] = 0x1ED7;\n t['ocyrillic'] = 0x043E;\n t['odblacute'] = 0x0151;\n t['odblgrave'] = 0x020D;\n t['odeva'] = 0x0913;\n t['odieresis'] = 0x00F6;\n t['odieresiscyrillic'] = 0x04E7;\n t['odotbelow'] = 0x1ECD;\n t['oe'] = 0x0153;\n t['oekorean'] = 0x315A;\n t['ogonek'] = 0x02DB;\n t['ogonekcmb'] = 0x0328;\n t['ograve'] = 0x00F2;\n t['ogujarati'] = 0x0A93;\n t['oharmenian'] = 0x0585;\n t['ohiragana'] = 0x304A;\n t['ohookabove'] = 0x1ECF;\n t['ohorn'] = 0x01A1;\n t['ohornacute'] = 0x1EDB;\n t['ohorndotbelow'] = 0x1EE3;\n t['ohorngrave'] = 0x1EDD;\n t['ohornhookabove'] = 0x1EDF;\n t['ohorntilde'] = 0x1EE1;\n t['ohungarumlaut'] = 0x0151;\n t['oi'] = 0x01A3;\n t['oinvertedbreve'] = 0x020F;\n t['okatakana'] = 0x30AA;\n t['okatakanahalfwidth'] = 0xFF75;\n t['okorean'] = 0x3157;\n t['olehebrew'] = 0x05AB;\n t['omacron'] = 0x014D;\n t['omacronacute'] = 0x1E53;\n t['omacrongrave'] = 0x1E51;\n t['omdeva'] = 0x0950;\n t['omega'] = 0x03C9;\n t['omega1'] = 0x03D6;\n t['omegacyrillic'] = 0x0461;\n t['omegalatinclosed'] = 0x0277;\n t['omegaroundcyrillic'] = 0x047B;\n t['omegatitlocyrillic'] = 0x047D;\n t['omegatonos'] = 0x03CE;\n t['omgujarati'] = 0x0AD0;\n t['omicron'] = 0x03BF;\n t['omicrontonos'] = 0x03CC;\n t['omonospace'] = 0xFF4F;\n t['one'] = 0x0031;\n t['onearabic'] = 0x0661;\n t['onebengali'] = 0x09E7;\n t['onecircle'] = 0x2460;\n t['onecircleinversesansserif'] = 0x278A;\n t['onedeva'] = 0x0967;\n t['onedotenleader'] = 0x2024;\n t['oneeighth'] = 0x215B;\n t['onefitted'] = 0xF6DC;\n t['onegujarati'] = 0x0AE7;\n t['onegurmukhi'] = 0x0A67;\n t['onehackarabic'] = 0x0661;\n t['onehalf'] = 0x00BD;\n t['onehangzhou'] = 0x3021;\n t['oneideographicparen'] = 0x3220;\n t['oneinferior'] = 0x2081;\n t['onemonospace'] = 0xFF11;\n t['onenumeratorbengali'] = 0x09F4;\n t['oneoldstyle'] = 0xF731;\n t['oneparen'] = 0x2474;\n t['oneperiod'] = 0x2488;\n t['onepersian'] = 0x06F1;\n t['onequarter'] = 0x00BC;\n t['oneroman'] = 0x2170;\n t['onesuperior'] = 0x00B9;\n t['onethai'] = 0x0E51;\n t['onethird'] = 0x2153;\n t['oogonek'] = 0x01EB;\n t['oogonekmacron'] = 0x01ED;\n t['oogurmukhi'] = 0x0A13;\n t['oomatragurmukhi'] = 0x0A4B;\n t['oopen'] = 0x0254;\n t['oparen'] = 0x24AA;\n t['openbullet'] = 0x25E6;\n t['option'] = 0x2325;\n t['ordfeminine'] = 0x00AA;\n t['ordmasculine'] = 0x00BA;\n t['orthogonal'] = 0x221F;\n t['oshortdeva'] = 0x0912;\n t['oshortvowelsigndeva'] = 0x094A;\n t['oslash'] = 0x00F8;\n t['oslashacute'] = 0x01FF;\n t['osmallhiragana'] = 0x3049;\n t['osmallkatakana'] = 0x30A9;\n t['osmallkatakanahalfwidth'] = 0xFF6B;\n t['ostrokeacute'] = 0x01FF;\n t['osuperior'] = 0xF6F0;\n t['otcyrillic'] = 0x047F;\n t['otilde'] = 0x00F5;\n t['otildeacute'] = 0x1E4D;\n t['otildedieresis'] = 0x1E4F;\n t['oubopomofo'] = 0x3121;\n t['overline'] = 0x203E;\n t['overlinecenterline'] = 0xFE4A;\n t['overlinecmb'] = 0x0305;\n t['overlinedashed'] = 0xFE49;\n t['overlinedblwavy'] = 0xFE4C;\n t['overlinewavy'] = 0xFE4B;\n t['overscore'] = 0x00AF;\n t['ovowelsignbengali'] = 0x09CB;\n t['ovowelsigndeva'] = 0x094B;\n t['ovowelsigngujarati'] = 0x0ACB;\n t['p'] = 0x0070;\n t['paampssquare'] = 0x3380;\n t['paasentosquare'] = 0x332B;\n t['pabengali'] = 0x09AA;\n t['pacute'] = 0x1E55;\n t['padeva'] = 0x092A;\n t['pagedown'] = 0x21DF;\n t['pageup'] = 0x21DE;\n t['pagujarati'] = 0x0AAA;\n t['pagurmukhi'] = 0x0A2A;\n t['pahiragana'] = 0x3071;\n t['paiyannoithai'] = 0x0E2F;\n t['pakatakana'] = 0x30D1;\n t['palatalizationcyrilliccmb'] = 0x0484;\n t['palochkacyrillic'] = 0x04C0;\n t['pansioskorean'] = 0x317F;\n t['paragraph'] = 0x00B6;\n t['parallel'] = 0x2225;\n t['parenleft'] = 0x0028;\n t['parenleftaltonearabic'] = 0xFD3E;\n t['parenleftbt'] = 0xF8ED;\n t['parenleftex'] = 0xF8EC;\n t['parenleftinferior'] = 0x208D;\n t['parenleftmonospace'] = 0xFF08;\n t['parenleftsmall'] = 0xFE59;\n t['parenleftsuperior'] = 0x207D;\n t['parenlefttp'] = 0xF8EB;\n t['parenleftvertical'] = 0xFE35;\n t['parenright'] = 0x0029;\n t['parenrightaltonearabic'] = 0xFD3F;\n t['parenrightbt'] = 0xF8F8;\n t['parenrightex'] = 0xF8F7;\n t['parenrightinferior'] = 0x208E;\n t['parenrightmonospace'] = 0xFF09;\n t['parenrightsmall'] = 0xFE5A;\n t['parenrightsuperior'] = 0x207E;\n t['parenrighttp'] = 0xF8F6;\n t['parenrightvertical'] = 0xFE36;\n t['partialdiff'] = 0x2202;\n t['paseqhebrew'] = 0x05C0;\n t['pashtahebrew'] = 0x0599;\n t['pasquare'] = 0x33A9;\n t['patah'] = 0x05B7;\n t['patah11'] = 0x05B7;\n t['patah1d'] = 0x05B7;\n t['patah2a'] = 0x05B7;\n t['patahhebrew'] = 0x05B7;\n t['patahnarrowhebrew'] = 0x05B7;\n t['patahquarterhebrew'] = 0x05B7;\n t['patahwidehebrew'] = 0x05B7;\n t['pazerhebrew'] = 0x05A1;\n t['pbopomofo'] = 0x3106;\n t['pcircle'] = 0x24DF;\n t['pdotaccent'] = 0x1E57;\n t['pe'] = 0x05E4;\n t['pecyrillic'] = 0x043F;\n t['pedagesh'] = 0xFB44;\n t['pedageshhebrew'] = 0xFB44;\n t['peezisquare'] = 0x333B;\n t['pefinaldageshhebrew'] = 0xFB43;\n t['peharabic'] = 0x067E;\n t['peharmenian'] = 0x057A;\n t['pehebrew'] = 0x05E4;\n t['pehfinalarabic'] = 0xFB57;\n t['pehinitialarabic'] = 0xFB58;\n t['pehiragana'] = 0x307A;\n t['pehmedialarabic'] = 0xFB59;\n t['pekatakana'] = 0x30DA;\n t['pemiddlehookcyrillic'] = 0x04A7;\n t['perafehebrew'] = 0xFB4E;\n t['percent'] = 0x0025;\n t['percentarabic'] = 0x066A;\n t['percentmonospace'] = 0xFF05;\n t['percentsmall'] = 0xFE6A;\n t['period'] = 0x002E;\n t['periodarmenian'] = 0x0589;\n t['periodcentered'] = 0x00B7;\n t['periodhalfwidth'] = 0xFF61;\n t['periodinferior'] = 0xF6E7;\n t['periodmonospace'] = 0xFF0E;\n t['periodsmall'] = 0xFE52;\n t['periodsuperior'] = 0xF6E8;\n t['perispomenigreekcmb'] = 0x0342;\n t['perpendicular'] = 0x22A5;\n t['perthousand'] = 0x2030;\n t['peseta'] = 0x20A7;\n t['pfsquare'] = 0x338A;\n t['phabengali'] = 0x09AB;\n t['phadeva'] = 0x092B;\n t['phagujarati'] = 0x0AAB;\n t['phagurmukhi'] = 0x0A2B;\n t['phi'] = 0x03C6;\n t['phi1'] = 0x03D5;\n t['phieuphacirclekorean'] = 0x327A;\n t['phieuphaparenkorean'] = 0x321A;\n t['phieuphcirclekorean'] = 0x326C;\n t['phieuphkorean'] = 0x314D;\n t['phieuphparenkorean'] = 0x320C;\n t['philatin'] = 0x0278;\n t['phinthuthai'] = 0x0E3A;\n t['phisymbolgreek'] = 0x03D5;\n t['phook'] = 0x01A5;\n t['phophanthai'] = 0x0E1E;\n t['phophungthai'] = 0x0E1C;\n t['phosamphaothai'] = 0x0E20;\n t['pi'] = 0x03C0;\n t['pieupacirclekorean'] = 0x3273;\n t['pieupaparenkorean'] = 0x3213;\n t['pieupcieuckorean'] = 0x3176;\n t['pieupcirclekorean'] = 0x3265;\n t['pieupkiyeokkorean'] = 0x3172;\n t['pieupkorean'] = 0x3142;\n t['pieupparenkorean'] = 0x3205;\n t['pieupsioskiyeokkorean'] = 0x3174;\n t['pieupsioskorean'] = 0x3144;\n t['pieupsiostikeutkorean'] = 0x3175;\n t['pieupthieuthkorean'] = 0x3177;\n t['pieuptikeutkorean'] = 0x3173;\n t['pihiragana'] = 0x3074;\n t['pikatakana'] = 0x30D4;\n t['pisymbolgreek'] = 0x03D6;\n t['piwrarmenian'] = 0x0583;\n t['plus'] = 0x002B;\n t['plusbelowcmb'] = 0x031F;\n t['pluscircle'] = 0x2295;\n t['plusminus'] = 0x00B1;\n t['plusmod'] = 0x02D6;\n t['plusmonospace'] = 0xFF0B;\n t['plussmall'] = 0xFE62;\n t['plussuperior'] = 0x207A;\n t['pmonospace'] = 0xFF50;\n t['pmsquare'] = 0x33D8;\n t['pohiragana'] = 0x307D;\n t['pointingindexdownwhite'] = 0x261F;\n t['pointingindexleftwhite'] = 0x261C;\n t['pointingindexrightwhite'] = 0x261E;\n t['pointingindexupwhite'] = 0x261D;\n t['pokatakana'] = 0x30DD;\n t['poplathai'] = 0x0E1B;\n t['postalmark'] = 0x3012;\n t['postalmarkface'] = 0x3020;\n t['pparen'] = 0x24AB;\n t['precedes'] = 0x227A;\n t['prescription'] = 0x211E;\n t['primemod'] = 0x02B9;\n t['primereversed'] = 0x2035;\n t['product'] = 0x220F;\n t['projective'] = 0x2305;\n t['prolongedkana'] = 0x30FC;\n t['propellor'] = 0x2318;\n t['propersubset'] = 0x2282;\n t['propersuperset'] = 0x2283;\n t['proportion'] = 0x2237;\n t['proportional'] = 0x221D;\n t['psi'] = 0x03C8;\n t['psicyrillic'] = 0x0471;\n t['psilipneumatacyrilliccmb'] = 0x0486;\n t['pssquare'] = 0x33B0;\n t['puhiragana'] = 0x3077;\n t['pukatakana'] = 0x30D7;\n t['pvsquare'] = 0x33B4;\n t['pwsquare'] = 0x33BA;\n t['q'] = 0x0071;\n t['qadeva'] = 0x0958;\n t['qadmahebrew'] = 0x05A8;\n t['qafarabic'] = 0x0642;\n t['qaffinalarabic'] = 0xFED6;\n t['qafinitialarabic'] = 0xFED7;\n t['qafmedialarabic'] = 0xFED8;\n t['qamats'] = 0x05B8;\n t['qamats10'] = 0x05B8;\n t['qamats1a'] = 0x05B8;\n t['qamats1c'] = 0x05B8;\n t['qamats27'] = 0x05B8;\n t['qamats29'] = 0x05B8;\n t['qamats33'] = 0x05B8;\n t['qamatsde'] = 0x05B8;\n t['qamatshebrew'] = 0x05B8;\n t['qamatsnarrowhebrew'] = 0x05B8;\n t['qamatsqatanhebrew'] = 0x05B8;\n t['qamatsqatannarrowhebrew'] = 0x05B8;\n t['qamatsqatanquarterhebrew'] = 0x05B8;\n t['qamatsqatanwidehebrew'] = 0x05B8;\n t['qamatsquarterhebrew'] = 0x05B8;\n t['qamatswidehebrew'] = 0x05B8;\n t['qarneyparahebrew'] = 0x059F;\n t['qbopomofo'] = 0x3111;\n t['qcircle'] = 0x24E0;\n t['qhook'] = 0x02A0;\n t['qmonospace'] = 0xFF51;\n t['qof'] = 0x05E7;\n t['qofdagesh'] = 0xFB47;\n t['qofdageshhebrew'] = 0xFB47;\n t['qofhebrew'] = 0x05E7;\n t['qparen'] = 0x24AC;\n t['quarternote'] = 0x2669;\n t['qubuts'] = 0x05BB;\n t['qubuts18'] = 0x05BB;\n t['qubuts25'] = 0x05BB;\n t['qubuts31'] = 0x05BB;\n t['qubutshebrew'] = 0x05BB;\n t['qubutsnarrowhebrew'] = 0x05BB;\n t['qubutsquarterhebrew'] = 0x05BB;\n t['qubutswidehebrew'] = 0x05BB;\n t['question'] = 0x003F;\n t['questionarabic'] = 0x061F;\n t['questionarmenian'] = 0x055E;\n t['questiondown'] = 0x00BF;\n t['questiondownsmall'] = 0xF7BF;\n t['questiongreek'] = 0x037E;\n t['questionmonospace'] = 0xFF1F;\n t['questionsmall'] = 0xF73F;\n t['quotedbl'] = 0x0022;\n t['quotedblbase'] = 0x201E;\n t['quotedblleft'] = 0x201C;\n t['quotedblmonospace'] = 0xFF02;\n t['quotedblprime'] = 0x301E;\n t['quotedblprimereversed'] = 0x301D;\n t['quotedblright'] = 0x201D;\n t['quoteleft'] = 0x2018;\n t['quoteleftreversed'] = 0x201B;\n t['quotereversed'] = 0x201B;\n t['quoteright'] = 0x2019;\n t['quoterightn'] = 0x0149;\n t['quotesinglbase'] = 0x201A;\n t['quotesingle'] = 0x0027;\n t['quotesinglemonospace'] = 0xFF07;\n t['r'] = 0x0072;\n t['raarmenian'] = 0x057C;\n t['rabengali'] = 0x09B0;\n t['racute'] = 0x0155;\n t['radeva'] = 0x0930;\n t['radical'] = 0x221A;\n t['radicalex'] = 0xF8E5;\n t['radoverssquare'] = 0x33AE;\n t['radoverssquaredsquare'] = 0x33AF;\n t['radsquare'] = 0x33AD;\n t['rafe'] = 0x05BF;\n t['rafehebrew'] = 0x05BF;\n t['ragujarati'] = 0x0AB0;\n t['ragurmukhi'] = 0x0A30;\n t['rahiragana'] = 0x3089;\n t['rakatakana'] = 0x30E9;\n t['rakatakanahalfwidth'] = 0xFF97;\n t['ralowerdiagonalbengali'] = 0x09F1;\n t['ramiddlediagonalbengali'] = 0x09F0;\n t['ramshorn'] = 0x0264;\n t['ratio'] = 0x2236;\n t['rbopomofo'] = 0x3116;\n t['rcaron'] = 0x0159;\n t['rcedilla'] = 0x0157;\n t['rcircle'] = 0x24E1;\n t['rcommaaccent'] = 0x0157;\n t['rdblgrave'] = 0x0211;\n t['rdotaccent'] = 0x1E59;\n t['rdotbelow'] = 0x1E5B;\n t['rdotbelowmacron'] = 0x1E5D;\n t['referencemark'] = 0x203B;\n t['reflexsubset'] = 0x2286;\n t['reflexsuperset'] = 0x2287;\n t['registered'] = 0x00AE;\n t['registersans'] = 0xF8E8;\n t['registerserif'] = 0xF6DA;\n t['reharabic'] = 0x0631;\n t['reharmenian'] = 0x0580;\n t['rehfinalarabic'] = 0xFEAE;\n t['rehiragana'] = 0x308C;\n t['rekatakana'] = 0x30EC;\n t['rekatakanahalfwidth'] = 0xFF9A;\n t['resh'] = 0x05E8;\n t['reshdageshhebrew'] = 0xFB48;\n t['reshhebrew'] = 0x05E8;\n t['reversedtilde'] = 0x223D;\n t['reviahebrew'] = 0x0597;\n t['reviamugrashhebrew'] = 0x0597;\n t['revlogicalnot'] = 0x2310;\n t['rfishhook'] = 0x027E;\n t['rfishhookreversed'] = 0x027F;\n t['rhabengali'] = 0x09DD;\n t['rhadeva'] = 0x095D;\n t['rho'] = 0x03C1;\n t['rhook'] = 0x027D;\n t['rhookturned'] = 0x027B;\n t['rhookturnedsuperior'] = 0x02B5;\n t['rhosymbolgreek'] = 0x03F1;\n t['rhotichookmod'] = 0x02DE;\n t['rieulacirclekorean'] = 0x3271;\n t['rieulaparenkorean'] = 0x3211;\n t['rieulcirclekorean'] = 0x3263;\n t['rieulhieuhkorean'] = 0x3140;\n t['rieulkiyeokkorean'] = 0x313A;\n t['rieulkiyeoksioskorean'] = 0x3169;\n t['rieulkorean'] = 0x3139;\n t['rieulmieumkorean'] = 0x313B;\n t['rieulpansioskorean'] = 0x316C;\n t['rieulparenkorean'] = 0x3203;\n t['rieulphieuphkorean'] = 0x313F;\n t['rieulpieupkorean'] = 0x313C;\n t['rieulpieupsioskorean'] = 0x316B;\n t['rieulsioskorean'] = 0x313D;\n t['rieulthieuthkorean'] = 0x313E;\n t['rieultikeutkorean'] = 0x316A;\n t['rieulyeorinhieuhkorean'] = 0x316D;\n t['rightangle'] = 0x221F;\n t['righttackbelowcmb'] = 0x0319;\n t['righttriangle'] = 0x22BF;\n t['rihiragana'] = 0x308A;\n t['rikatakana'] = 0x30EA;\n t['rikatakanahalfwidth'] = 0xFF98;\n t['ring'] = 0x02DA;\n t['ringbelowcmb'] = 0x0325;\n t['ringcmb'] = 0x030A;\n t['ringhalfleft'] = 0x02BF;\n t['ringhalfleftarmenian'] = 0x0559;\n t['ringhalfleftbelowcmb'] = 0x031C;\n t['ringhalfleftcentered'] = 0x02D3;\n t['ringhalfright'] = 0x02BE;\n t['ringhalfrightbelowcmb'] = 0x0339;\n t['ringhalfrightcentered'] = 0x02D2;\n t['rinvertedbreve'] = 0x0213;\n t['rittorusquare'] = 0x3351;\n t['rlinebelow'] = 0x1E5F;\n t['rlongleg'] = 0x027C;\n t['rlonglegturned'] = 0x027A;\n t['rmonospace'] = 0xFF52;\n t['rohiragana'] = 0x308D;\n t['rokatakana'] = 0x30ED;\n t['rokatakanahalfwidth'] = 0xFF9B;\n t['roruathai'] = 0x0E23;\n t['rparen'] = 0x24AD;\n t['rrabengali'] = 0x09DC;\n t['rradeva'] = 0x0931;\n t['rragurmukhi'] = 0x0A5C;\n t['rreharabic'] = 0x0691;\n t['rrehfinalarabic'] = 0xFB8D;\n t['rrvocalicbengali'] = 0x09E0;\n t['rrvocalicdeva'] = 0x0960;\n t['rrvocalicgujarati'] = 0x0AE0;\n t['rrvocalicvowelsignbengali'] = 0x09C4;\n t['rrvocalicvowelsigndeva'] = 0x0944;\n t['rrvocalicvowelsigngujarati'] = 0x0AC4;\n t['rsuperior'] = 0xF6F1;\n t['rtblock'] = 0x2590;\n t['rturned'] = 0x0279;\n t['rturnedsuperior'] = 0x02B4;\n t['ruhiragana'] = 0x308B;\n t['rukatakana'] = 0x30EB;\n t['rukatakanahalfwidth'] = 0xFF99;\n t['rupeemarkbengali'] = 0x09F2;\n t['rupeesignbengali'] = 0x09F3;\n t['rupiah'] = 0xF6DD;\n t['ruthai'] = 0x0E24;\n t['rvocalicbengali'] = 0x098B;\n t['rvocalicdeva'] = 0x090B;\n t['rvocalicgujarati'] = 0x0A8B;\n t['rvocalicvowelsignbengali'] = 0x09C3;\n t['rvocalicvowelsigndeva'] = 0x0943;\n t['rvocalicvowelsigngujarati'] = 0x0AC3;\n t['s'] = 0x0073;\n t['sabengali'] = 0x09B8;\n t['sacute'] = 0x015B;\n t['sacutedotaccent'] = 0x1E65;\n t['sadarabic'] = 0x0635;\n t['sadeva'] = 0x0938;\n t['sadfinalarabic'] = 0xFEBA;\n t['sadinitialarabic'] = 0xFEBB;\n t['sadmedialarabic'] = 0xFEBC;\n t['sagujarati'] = 0x0AB8;\n t['sagurmukhi'] = 0x0A38;\n t['sahiragana'] = 0x3055;\n t['sakatakana'] = 0x30B5;\n t['sakatakanahalfwidth'] = 0xFF7B;\n t['sallallahoualayhewasallamarabic'] = 0xFDFA;\n t['samekh'] = 0x05E1;\n t['samekhdagesh'] = 0xFB41;\n t['samekhdageshhebrew'] = 0xFB41;\n t['samekhhebrew'] = 0x05E1;\n t['saraaathai'] = 0x0E32;\n t['saraaethai'] = 0x0E41;\n t['saraaimaimalaithai'] = 0x0E44;\n t['saraaimaimuanthai'] = 0x0E43;\n t['saraamthai'] = 0x0E33;\n t['saraathai'] = 0x0E30;\n t['saraethai'] = 0x0E40;\n t['saraiileftthai'] = 0xF886;\n t['saraiithai'] = 0x0E35;\n t['saraileftthai'] = 0xF885;\n t['saraithai'] = 0x0E34;\n t['saraothai'] = 0x0E42;\n t['saraueeleftthai'] = 0xF888;\n t['saraueethai'] = 0x0E37;\n t['saraueleftthai'] = 0xF887;\n t['sarauethai'] = 0x0E36;\n t['sarauthai'] = 0x0E38;\n t['sarauuthai'] = 0x0E39;\n t['sbopomofo'] = 0x3119;\n t['scaron'] = 0x0161;\n t['scarondotaccent'] = 0x1E67;\n t['scedilla'] = 0x015F;\n t['schwa'] = 0x0259;\n t['schwacyrillic'] = 0x04D9;\n t['schwadieresiscyrillic'] = 0x04DB;\n t['schwahook'] = 0x025A;\n t['scircle'] = 0x24E2;\n t['scircumflex'] = 0x015D;\n t['scommaaccent'] = 0x0219;\n t['sdotaccent'] = 0x1E61;\n t['sdotbelow'] = 0x1E63;\n t['sdotbelowdotaccent'] = 0x1E69;\n t['seagullbelowcmb'] = 0x033C;\n t['second'] = 0x2033;\n t['secondtonechinese'] = 0x02CA;\n t['section'] = 0x00A7;\n t['seenarabic'] = 0x0633;\n t['seenfinalarabic'] = 0xFEB2;\n t['seeninitialarabic'] = 0xFEB3;\n t['seenmedialarabic'] = 0xFEB4;\n t['segol'] = 0x05B6;\n t['segol13'] = 0x05B6;\n t['segol1f'] = 0x05B6;\n t['segol2c'] = 0x05B6;\n t['segolhebrew'] = 0x05B6;\n t['segolnarrowhebrew'] = 0x05B6;\n t['segolquarterhebrew'] = 0x05B6;\n t['segoltahebrew'] = 0x0592;\n t['segolwidehebrew'] = 0x05B6;\n t['seharmenian'] = 0x057D;\n t['sehiragana'] = 0x305B;\n t['sekatakana'] = 0x30BB;\n t['sekatakanahalfwidth'] = 0xFF7E;\n t['semicolon'] = 0x003B;\n t['semicolonarabic'] = 0x061B;\n t['semicolonmonospace'] = 0xFF1B;\n t['semicolonsmall'] = 0xFE54;\n t['semivoicedmarkkana'] = 0x309C;\n t['semivoicedmarkkanahalfwidth'] = 0xFF9F;\n t['sentisquare'] = 0x3322;\n t['sentosquare'] = 0x3323;\n t['seven'] = 0x0037;\n t['sevenarabic'] = 0x0667;\n t['sevenbengali'] = 0x09ED;\n t['sevencircle'] = 0x2466;\n t['sevencircleinversesansserif'] = 0x2790;\n t['sevendeva'] = 0x096D;\n t['seveneighths'] = 0x215E;\n t['sevengujarati'] = 0x0AED;\n t['sevengurmukhi'] = 0x0A6D;\n t['sevenhackarabic'] = 0x0667;\n t['sevenhangzhou'] = 0x3027;\n t['sevenideographicparen'] = 0x3226;\n t['seveninferior'] = 0x2087;\n t['sevenmonospace'] = 0xFF17;\n t['sevenoldstyle'] = 0xF737;\n t['sevenparen'] = 0x247A;\n t['sevenperiod'] = 0x248E;\n t['sevenpersian'] = 0x06F7;\n t['sevenroman'] = 0x2176;\n t['sevensuperior'] = 0x2077;\n t['seventeencircle'] = 0x2470;\n t['seventeenparen'] = 0x2484;\n t['seventeenperiod'] = 0x2498;\n t['seventhai'] = 0x0E57;\n t['sfthyphen'] = 0x00AD;\n t['shaarmenian'] = 0x0577;\n t['shabengali'] = 0x09B6;\n t['shacyrillic'] = 0x0448;\n t['shaddaarabic'] = 0x0651;\n t['shaddadammaarabic'] = 0xFC61;\n t['shaddadammatanarabic'] = 0xFC5E;\n t['shaddafathaarabic'] = 0xFC60;\n t['shaddakasraarabic'] = 0xFC62;\n t['shaddakasratanarabic'] = 0xFC5F;\n t['shade'] = 0x2592;\n t['shadedark'] = 0x2593;\n t['shadelight'] = 0x2591;\n t['shademedium'] = 0x2592;\n t['shadeva'] = 0x0936;\n t['shagujarati'] = 0x0AB6;\n t['shagurmukhi'] = 0x0A36;\n t['shalshelethebrew'] = 0x0593;\n t['shbopomofo'] = 0x3115;\n t['shchacyrillic'] = 0x0449;\n t['sheenarabic'] = 0x0634;\n t['sheenfinalarabic'] = 0xFEB6;\n t['sheeninitialarabic'] = 0xFEB7;\n t['sheenmedialarabic'] = 0xFEB8;\n t['sheicoptic'] = 0x03E3;\n t['sheqel'] = 0x20AA;\n t['sheqelhebrew'] = 0x20AA;\n t['sheva'] = 0x05B0;\n t['sheva115'] = 0x05B0;\n t['sheva15'] = 0x05B0;\n t['sheva22'] = 0x05B0;\n t['sheva2e'] = 0x05B0;\n t['shevahebrew'] = 0x05B0;\n t['shevanarrowhebrew'] = 0x05B0;\n t['shevaquarterhebrew'] = 0x05B0;\n t['shevawidehebrew'] = 0x05B0;\n t['shhacyrillic'] = 0x04BB;\n t['shimacoptic'] = 0x03ED;\n t['shin'] = 0x05E9;\n t['shindagesh'] = 0xFB49;\n t['shindageshhebrew'] = 0xFB49;\n t['shindageshshindot'] = 0xFB2C;\n t['shindageshshindothebrew'] = 0xFB2C;\n t['shindageshsindot'] = 0xFB2D;\n t['shindageshsindothebrew'] = 0xFB2D;\n t['shindothebrew'] = 0x05C1;\n t['shinhebrew'] = 0x05E9;\n t['shinshindot'] = 0xFB2A;\n t['shinshindothebrew'] = 0xFB2A;\n t['shinsindot'] = 0xFB2B;\n t['shinsindothebrew'] = 0xFB2B;\n t['shook'] = 0x0282;\n t['sigma'] = 0x03C3;\n t['sigma1'] = 0x03C2;\n t['sigmafinal'] = 0x03C2;\n t['sigmalunatesymbolgreek'] = 0x03F2;\n t['sihiragana'] = 0x3057;\n t['sikatakana'] = 0x30B7;\n t['sikatakanahalfwidth'] = 0xFF7C;\n t['siluqhebrew'] = 0x05BD;\n t['siluqlefthebrew'] = 0x05BD;\n t['similar'] = 0x223C;\n t['sindothebrew'] = 0x05C2;\n t['siosacirclekorean'] = 0x3274;\n t['siosaparenkorean'] = 0x3214;\n t['sioscieuckorean'] = 0x317E;\n t['sioscirclekorean'] = 0x3266;\n t['sioskiyeokkorean'] = 0x317A;\n t['sioskorean'] = 0x3145;\n t['siosnieunkorean'] = 0x317B;\n t['siosparenkorean'] = 0x3206;\n t['siospieupkorean'] = 0x317D;\n t['siostikeutkorean'] = 0x317C;\n t['six'] = 0x0036;\n t['sixarabic'] = 0x0666;\n t['sixbengali'] = 0x09EC;\n t['sixcircle'] = 0x2465;\n t['sixcircleinversesansserif'] = 0x278F;\n t['sixdeva'] = 0x096C;\n t['sixgujarati'] = 0x0AEC;\n t['sixgurmukhi'] = 0x0A6C;\n t['sixhackarabic'] = 0x0666;\n t['sixhangzhou'] = 0x3026;\n t['sixideographicparen'] = 0x3225;\n t['sixinferior'] = 0x2086;\n t['sixmonospace'] = 0xFF16;\n t['sixoldstyle'] = 0xF736;\n t['sixparen'] = 0x2479;\n t['sixperiod'] = 0x248D;\n t['sixpersian'] = 0x06F6;\n t['sixroman'] = 0x2175;\n t['sixsuperior'] = 0x2076;\n t['sixteencircle'] = 0x246F;\n t['sixteencurrencydenominatorbengali'] = 0x09F9;\n t['sixteenparen'] = 0x2483;\n t['sixteenperiod'] = 0x2497;\n t['sixthai'] = 0x0E56;\n t['slash'] = 0x002F;\n t['slashmonospace'] = 0xFF0F;\n t['slong'] = 0x017F;\n t['slongdotaccent'] = 0x1E9B;\n t['smileface'] = 0x263A;\n t['smonospace'] = 0xFF53;\n t['sofpasuqhebrew'] = 0x05C3;\n t['softhyphen'] = 0x00AD;\n t['softsigncyrillic'] = 0x044C;\n t['sohiragana'] = 0x305D;\n t['sokatakana'] = 0x30BD;\n t['sokatakanahalfwidth'] = 0xFF7F;\n t['soliduslongoverlaycmb'] = 0x0338;\n t['solidusshortoverlaycmb'] = 0x0337;\n t['sorusithai'] = 0x0E29;\n t['sosalathai'] = 0x0E28;\n t['sosothai'] = 0x0E0B;\n t['sosuathai'] = 0x0E2A;\n t['space'] = 0x0020;\n t['spacehackarabic'] = 0x0020;\n t['spade'] = 0x2660;\n t['spadesuitblack'] = 0x2660;\n t['spadesuitwhite'] = 0x2664;\n t['sparen'] = 0x24AE;\n t['squarebelowcmb'] = 0x033B;\n t['squarecc'] = 0x33C4;\n t['squarecm'] = 0x339D;\n t['squarediagonalcrosshatchfill'] = 0x25A9;\n t['squarehorizontalfill'] = 0x25A4;\n t['squarekg'] = 0x338F;\n t['squarekm'] = 0x339E;\n t['squarekmcapital'] = 0x33CE;\n t['squareln'] = 0x33D1;\n t['squarelog'] = 0x33D2;\n t['squaremg'] = 0x338E;\n t['squaremil'] = 0x33D5;\n t['squaremm'] = 0x339C;\n t['squaremsquared'] = 0x33A1;\n t['squareorthogonalcrosshatchfill'] = 0x25A6;\n t['squareupperlefttolowerrightfill'] = 0x25A7;\n t['squareupperrighttolowerleftfill'] = 0x25A8;\n t['squareverticalfill'] = 0x25A5;\n t['squarewhitewithsmallblack'] = 0x25A3;\n t['srsquare'] = 0x33DB;\n t['ssabengali'] = 0x09B7;\n t['ssadeva'] = 0x0937;\n t['ssagujarati'] = 0x0AB7;\n t['ssangcieuckorean'] = 0x3149;\n t['ssanghieuhkorean'] = 0x3185;\n t['ssangieungkorean'] = 0x3180;\n t['ssangkiyeokkorean'] = 0x3132;\n t['ssangnieunkorean'] = 0x3165;\n t['ssangpieupkorean'] = 0x3143;\n t['ssangsioskorean'] = 0x3146;\n t['ssangtikeutkorean'] = 0x3138;\n t['ssuperior'] = 0xF6F2;\n t['sterling'] = 0x00A3;\n t['sterlingmonospace'] = 0xFFE1;\n t['strokelongoverlaycmb'] = 0x0336;\n t['strokeshortoverlaycmb'] = 0x0335;\n t['subset'] = 0x2282;\n t['subsetnotequal'] = 0x228A;\n t['subsetorequal'] = 0x2286;\n t['succeeds'] = 0x227B;\n t['suchthat'] = 0x220B;\n t['suhiragana'] = 0x3059;\n t['sukatakana'] = 0x30B9;\n t['sukatakanahalfwidth'] = 0xFF7D;\n t['sukunarabic'] = 0x0652;\n t['summation'] = 0x2211;\n t['sun'] = 0x263C;\n t['superset'] = 0x2283;\n t['supersetnotequal'] = 0x228B;\n t['supersetorequal'] = 0x2287;\n t['svsquare'] = 0x33DC;\n t['syouwaerasquare'] = 0x337C;\n t['t'] = 0x0074;\n t['tabengali'] = 0x09A4;\n t['tackdown'] = 0x22A4;\n t['tackleft'] = 0x22A3;\n t['tadeva'] = 0x0924;\n t['tagujarati'] = 0x0AA4;\n t['tagurmukhi'] = 0x0A24;\n t['taharabic'] = 0x0637;\n t['tahfinalarabic'] = 0xFEC2;\n t['tahinitialarabic'] = 0xFEC3;\n t['tahiragana'] = 0x305F;\n t['tahmedialarabic'] = 0xFEC4;\n t['taisyouerasquare'] = 0x337D;\n t['takatakana'] = 0x30BF;\n t['takatakanahalfwidth'] = 0xFF80;\n t['tatweelarabic'] = 0x0640;\n t['tau'] = 0x03C4;\n t['tav'] = 0x05EA;\n t['tavdages'] = 0xFB4A;\n t['tavdagesh'] = 0xFB4A;\n t['tavdageshhebrew'] = 0xFB4A;\n t['tavhebrew'] = 0x05EA;\n t['tbar'] = 0x0167;\n t['tbopomofo'] = 0x310A;\n t['tcaron'] = 0x0165;\n t['tccurl'] = 0x02A8;\n t['tcedilla'] = 0x0163;\n t['tcheharabic'] = 0x0686;\n t['tchehfinalarabic'] = 0xFB7B;\n t['tchehinitialarabic'] = 0xFB7C;\n t['tchehmedialarabic'] = 0xFB7D;\n t['tcircle'] = 0x24E3;\n t['tcircumflexbelow'] = 0x1E71;\n t['tcommaaccent'] = 0x0163;\n t['tdieresis'] = 0x1E97;\n t['tdotaccent'] = 0x1E6B;\n t['tdotbelow'] = 0x1E6D;\n t['tecyrillic'] = 0x0442;\n t['tedescendercyrillic'] = 0x04AD;\n t['teharabic'] = 0x062A;\n t['tehfinalarabic'] = 0xFE96;\n t['tehhahinitialarabic'] = 0xFCA2;\n t['tehhahisolatedarabic'] = 0xFC0C;\n t['tehinitialarabic'] = 0xFE97;\n t['tehiragana'] = 0x3066;\n t['tehjeeminitialarabic'] = 0xFCA1;\n t['tehjeemisolatedarabic'] = 0xFC0B;\n t['tehmarbutaarabic'] = 0x0629;\n t['tehmarbutafinalarabic'] = 0xFE94;\n t['tehmedialarabic'] = 0xFE98;\n t['tehmeeminitialarabic'] = 0xFCA4;\n t['tehmeemisolatedarabic'] = 0xFC0E;\n t['tehnoonfinalarabic'] = 0xFC73;\n t['tekatakana'] = 0x30C6;\n t['tekatakanahalfwidth'] = 0xFF83;\n t['telephone'] = 0x2121;\n t['telephoneblack'] = 0x260E;\n t['telishagedolahebrew'] = 0x05A0;\n t['telishaqetanahebrew'] = 0x05A9;\n t['tencircle'] = 0x2469;\n t['tenideographicparen'] = 0x3229;\n t['tenparen'] = 0x247D;\n t['tenperiod'] = 0x2491;\n t['tenroman'] = 0x2179;\n t['tesh'] = 0x02A7;\n t['tet'] = 0x05D8;\n t['tetdagesh'] = 0xFB38;\n t['tetdageshhebrew'] = 0xFB38;\n t['tethebrew'] = 0x05D8;\n t['tetsecyrillic'] = 0x04B5;\n t['tevirhebrew'] = 0x059B;\n t['tevirlefthebrew'] = 0x059B;\n t['thabengali'] = 0x09A5;\n t['thadeva'] = 0x0925;\n t['thagujarati'] = 0x0AA5;\n t['thagurmukhi'] = 0x0A25;\n t['thalarabic'] = 0x0630;\n t['thalfinalarabic'] = 0xFEAC;\n t['thanthakhatlowleftthai'] = 0xF898;\n t['thanthakhatlowrightthai'] = 0xF897;\n t['thanthakhatthai'] = 0x0E4C;\n t['thanthakhatupperleftthai'] = 0xF896;\n t['theharabic'] = 0x062B;\n t['thehfinalarabic'] = 0xFE9A;\n t['thehinitialarabic'] = 0xFE9B;\n t['thehmedialarabic'] = 0xFE9C;\n t['thereexists'] = 0x2203;\n t['therefore'] = 0x2234;\n t['theta'] = 0x03B8;\n t['theta1'] = 0x03D1;\n t['thetasymbolgreek'] = 0x03D1;\n t['thieuthacirclekorean'] = 0x3279;\n t['thieuthaparenkorean'] = 0x3219;\n t['thieuthcirclekorean'] = 0x326B;\n t['thieuthkorean'] = 0x314C;\n t['thieuthparenkorean'] = 0x320B;\n t['thirteencircle'] = 0x246C;\n t['thirteenparen'] = 0x2480;\n t['thirteenperiod'] = 0x2494;\n t['thonangmonthothai'] = 0x0E11;\n t['thook'] = 0x01AD;\n t['thophuthaothai'] = 0x0E12;\n t['thorn'] = 0x00FE;\n t['thothahanthai'] = 0x0E17;\n t['thothanthai'] = 0x0E10;\n t['thothongthai'] = 0x0E18;\n t['thothungthai'] = 0x0E16;\n t['thousandcyrillic'] = 0x0482;\n t['thousandsseparatorarabic'] = 0x066C;\n t['thousandsseparatorpersian'] = 0x066C;\n t['three'] = 0x0033;\n t['threearabic'] = 0x0663;\n t['threebengali'] = 0x09E9;\n t['threecircle'] = 0x2462;\n t['threecircleinversesansserif'] = 0x278C;\n t['threedeva'] = 0x0969;\n t['threeeighths'] = 0x215C;\n t['threegujarati'] = 0x0AE9;\n t['threegurmukhi'] = 0x0A69;\n t['threehackarabic'] = 0x0663;\n t['threehangzhou'] = 0x3023;\n t['threeideographicparen'] = 0x3222;\n t['threeinferior'] = 0x2083;\n t['threemonospace'] = 0xFF13;\n t['threenumeratorbengali'] = 0x09F6;\n t['threeoldstyle'] = 0xF733;\n t['threeparen'] = 0x2476;\n t['threeperiod'] = 0x248A;\n t['threepersian'] = 0x06F3;\n t['threequarters'] = 0x00BE;\n t['threequartersemdash'] = 0xF6DE;\n t['threeroman'] = 0x2172;\n t['threesuperior'] = 0x00B3;\n t['threethai'] = 0x0E53;\n t['thzsquare'] = 0x3394;\n t['tihiragana'] = 0x3061;\n t['tikatakana'] = 0x30C1;\n t['tikatakanahalfwidth'] = 0xFF81;\n t['tikeutacirclekorean'] = 0x3270;\n t['tikeutaparenkorean'] = 0x3210;\n t['tikeutcirclekorean'] = 0x3262;\n t['tikeutkorean'] = 0x3137;\n t['tikeutparenkorean'] = 0x3202;\n t['tilde'] = 0x02DC;\n t['tildebelowcmb'] = 0x0330;\n t['tildecmb'] = 0x0303;\n t['tildecomb'] = 0x0303;\n t['tildedoublecmb'] = 0x0360;\n t['tildeoperator'] = 0x223C;\n t['tildeoverlaycmb'] = 0x0334;\n t['tildeverticalcmb'] = 0x033E;\n t['timescircle'] = 0x2297;\n t['tipehahebrew'] = 0x0596;\n t['tipehalefthebrew'] = 0x0596;\n t['tippigurmukhi'] = 0x0A70;\n t['titlocyrilliccmb'] = 0x0483;\n t['tiwnarmenian'] = 0x057F;\n t['tlinebelow'] = 0x1E6F;\n t['tmonospace'] = 0xFF54;\n t['toarmenian'] = 0x0569;\n t['tohiragana'] = 0x3068;\n t['tokatakana'] = 0x30C8;\n t['tokatakanahalfwidth'] = 0xFF84;\n t['tonebarextrahighmod'] = 0x02E5;\n t['tonebarextralowmod'] = 0x02E9;\n t['tonebarhighmod'] = 0x02E6;\n t['tonebarlowmod'] = 0x02E8;\n t['tonebarmidmod'] = 0x02E7;\n t['tonefive'] = 0x01BD;\n t['tonesix'] = 0x0185;\n t['tonetwo'] = 0x01A8;\n t['tonos'] = 0x0384;\n t['tonsquare'] = 0x3327;\n t['topatakthai'] = 0x0E0F;\n t['tortoiseshellbracketleft'] = 0x3014;\n t['tortoiseshellbracketleftsmall'] = 0xFE5D;\n t['tortoiseshellbracketleftvertical'] = 0xFE39;\n t['tortoiseshellbracketright'] = 0x3015;\n t['tortoiseshellbracketrightsmall'] = 0xFE5E;\n t['tortoiseshellbracketrightvertical'] = 0xFE3A;\n t['totaothai'] = 0x0E15;\n t['tpalatalhook'] = 0x01AB;\n t['tparen'] = 0x24AF;\n t['trademark'] = 0x2122;\n t['trademarksans'] = 0xF8EA;\n t['trademarkserif'] = 0xF6DB;\n t['tretroflexhook'] = 0x0288;\n t['triagdn'] = 0x25BC;\n t['triaglf'] = 0x25C4;\n t['triagrt'] = 0x25BA;\n t['triagup'] = 0x25B2;\n t['ts'] = 0x02A6;\n t['tsadi'] = 0x05E6;\n t['tsadidagesh'] = 0xFB46;\n t['tsadidageshhebrew'] = 0xFB46;\n t['tsadihebrew'] = 0x05E6;\n t['tsecyrillic'] = 0x0446;\n t['tsere'] = 0x05B5;\n t['tsere12'] = 0x05B5;\n t['tsere1e'] = 0x05B5;\n t['tsere2b'] = 0x05B5;\n t['tserehebrew'] = 0x05B5;\n t['tserenarrowhebrew'] = 0x05B5;\n t['tserequarterhebrew'] = 0x05B5;\n t['tserewidehebrew'] = 0x05B5;\n t['tshecyrillic'] = 0x045B;\n t['tsuperior'] = 0xF6F3;\n t['ttabengali'] = 0x099F;\n t['ttadeva'] = 0x091F;\n t['ttagujarati'] = 0x0A9F;\n t['ttagurmukhi'] = 0x0A1F;\n t['tteharabic'] = 0x0679;\n t['ttehfinalarabic'] = 0xFB67;\n t['ttehinitialarabic'] = 0xFB68;\n t['ttehmedialarabic'] = 0xFB69;\n t['tthabengali'] = 0x09A0;\n t['tthadeva'] = 0x0920;\n t['tthagujarati'] = 0x0AA0;\n t['tthagurmukhi'] = 0x0A20;\n t['tturned'] = 0x0287;\n t['tuhiragana'] = 0x3064;\n t['tukatakana'] = 0x30C4;\n t['tukatakanahalfwidth'] = 0xFF82;\n t['tusmallhiragana'] = 0x3063;\n t['tusmallkatakana'] = 0x30C3;\n t['tusmallkatakanahalfwidth'] = 0xFF6F;\n t['twelvecircle'] = 0x246B;\n t['twelveparen'] = 0x247F;\n t['twelveperiod'] = 0x2493;\n t['twelveroman'] = 0x217B;\n t['twentycircle'] = 0x2473;\n t['twentyhangzhou'] = 0x5344;\n t['twentyparen'] = 0x2487;\n t['twentyperiod'] = 0x249B;\n t['two'] = 0x0032;\n t['twoarabic'] = 0x0662;\n t['twobengali'] = 0x09E8;\n t['twocircle'] = 0x2461;\n t['twocircleinversesansserif'] = 0x278B;\n t['twodeva'] = 0x0968;\n t['twodotenleader'] = 0x2025;\n t['twodotleader'] = 0x2025;\n t['twodotleadervertical'] = 0xFE30;\n t['twogujarati'] = 0x0AE8;\n t['twogurmukhi'] = 0x0A68;\n t['twohackarabic'] = 0x0662;\n t['twohangzhou'] = 0x3022;\n t['twoideographicparen'] = 0x3221;\n t['twoinferior'] = 0x2082;\n t['twomonospace'] = 0xFF12;\n t['twonumeratorbengali'] = 0x09F5;\n t['twooldstyle'] = 0xF732;\n t['twoparen'] = 0x2475;\n t['twoperiod'] = 0x2489;\n t['twopersian'] = 0x06F2;\n t['tworoman'] = 0x2171;\n t['twostroke'] = 0x01BB;\n t['twosuperior'] = 0x00B2;\n t['twothai'] = 0x0E52;\n t['twothirds'] = 0x2154;\n t['u'] = 0x0075;\n t['uacute'] = 0x00FA;\n t['ubar'] = 0x0289;\n t['ubengali'] = 0x0989;\n t['ubopomofo'] = 0x3128;\n t['ubreve'] = 0x016D;\n t['ucaron'] = 0x01D4;\n t['ucircle'] = 0x24E4;\n t['ucircumflex'] = 0x00FB;\n t['ucircumflexbelow'] = 0x1E77;\n t['ucyrillic'] = 0x0443;\n t['udattadeva'] = 0x0951;\n t['udblacute'] = 0x0171;\n t['udblgrave'] = 0x0215;\n t['udeva'] = 0x0909;\n t['udieresis'] = 0x00FC;\n t['udieresisacute'] = 0x01D8;\n t['udieresisbelow'] = 0x1E73;\n t['udieresiscaron'] = 0x01DA;\n t['udieresiscyrillic'] = 0x04F1;\n t['udieresisgrave'] = 0x01DC;\n t['udieresismacron'] = 0x01D6;\n t['udotbelow'] = 0x1EE5;\n t['ugrave'] = 0x00F9;\n t['ugujarati'] = 0x0A89;\n t['ugurmukhi'] = 0x0A09;\n t['uhiragana'] = 0x3046;\n t['uhookabove'] = 0x1EE7;\n t['uhorn'] = 0x01B0;\n t['uhornacute'] = 0x1EE9;\n t['uhorndotbelow'] = 0x1EF1;\n t['uhorngrave'] = 0x1EEB;\n t['uhornhookabove'] = 0x1EED;\n t['uhorntilde'] = 0x1EEF;\n t['uhungarumlaut'] = 0x0171;\n t['uhungarumlautcyrillic'] = 0x04F3;\n t['uinvertedbreve'] = 0x0217;\n t['ukatakana'] = 0x30A6;\n t['ukatakanahalfwidth'] = 0xFF73;\n t['ukcyrillic'] = 0x0479;\n t['ukorean'] = 0x315C;\n t['umacron'] = 0x016B;\n t['umacroncyrillic'] = 0x04EF;\n t['umacrondieresis'] = 0x1E7B;\n t['umatragurmukhi'] = 0x0A41;\n t['umonospace'] = 0xFF55;\n t['underscore'] = 0x005F;\n t['underscoredbl'] = 0x2017;\n t['underscoremonospace'] = 0xFF3F;\n t['underscorevertical'] = 0xFE33;\n t['underscorewavy'] = 0xFE4F;\n t['union'] = 0x222A;\n t['universal'] = 0x2200;\n t['uogonek'] = 0x0173;\n t['uparen'] = 0x24B0;\n t['upblock'] = 0x2580;\n t['upperdothebrew'] = 0x05C4;\n t['upsilon'] = 0x03C5;\n t['upsilondieresis'] = 0x03CB;\n t['upsilondieresistonos'] = 0x03B0;\n t['upsilonlatin'] = 0x028A;\n t['upsilontonos'] = 0x03CD;\n t['uptackbelowcmb'] = 0x031D;\n t['uptackmod'] = 0x02D4;\n t['uragurmukhi'] = 0x0A73;\n t['uring'] = 0x016F;\n t['ushortcyrillic'] = 0x045E;\n t['usmallhiragana'] = 0x3045;\n t['usmallkatakana'] = 0x30A5;\n t['usmallkatakanahalfwidth'] = 0xFF69;\n t['ustraightcyrillic'] = 0x04AF;\n t['ustraightstrokecyrillic'] = 0x04B1;\n t['utilde'] = 0x0169;\n t['utildeacute'] = 0x1E79;\n t['utildebelow'] = 0x1E75;\n t['uubengali'] = 0x098A;\n t['uudeva'] = 0x090A;\n t['uugujarati'] = 0x0A8A;\n t['uugurmukhi'] = 0x0A0A;\n t['uumatragurmukhi'] = 0x0A42;\n t['uuvowelsignbengali'] = 0x09C2;\n t['uuvowelsigndeva'] = 0x0942;\n t['uuvowelsigngujarati'] = 0x0AC2;\n t['uvowelsignbengali'] = 0x09C1;\n t['uvowelsigndeva'] = 0x0941;\n t['uvowelsigngujarati'] = 0x0AC1;\n t['v'] = 0x0076;\n t['vadeva'] = 0x0935;\n t['vagujarati'] = 0x0AB5;\n t['vagurmukhi'] = 0x0A35;\n t['vakatakana'] = 0x30F7;\n t['vav'] = 0x05D5;\n t['vavdagesh'] = 0xFB35;\n t['vavdagesh65'] = 0xFB35;\n t['vavdageshhebrew'] = 0xFB35;\n t['vavhebrew'] = 0x05D5;\n t['vavholam'] = 0xFB4B;\n t['vavholamhebrew'] = 0xFB4B;\n t['vavvavhebrew'] = 0x05F0;\n t['vavyodhebrew'] = 0x05F1;\n t['vcircle'] = 0x24E5;\n t['vdotbelow'] = 0x1E7F;\n t['vecyrillic'] = 0x0432;\n t['veharabic'] = 0x06A4;\n t['vehfinalarabic'] = 0xFB6B;\n t['vehinitialarabic'] = 0xFB6C;\n t['vehmedialarabic'] = 0xFB6D;\n t['vekatakana'] = 0x30F9;\n t['venus'] = 0x2640;\n t['verticalbar'] = 0x007C;\n t['verticallineabovecmb'] = 0x030D;\n t['verticallinebelowcmb'] = 0x0329;\n t['verticallinelowmod'] = 0x02CC;\n t['verticallinemod'] = 0x02C8;\n t['vewarmenian'] = 0x057E;\n t['vhook'] = 0x028B;\n t['vikatakana'] = 0x30F8;\n t['viramabengali'] = 0x09CD;\n t['viramadeva'] = 0x094D;\n t['viramagujarati'] = 0x0ACD;\n t['visargabengali'] = 0x0983;\n t['visargadeva'] = 0x0903;\n t['visargagujarati'] = 0x0A83;\n t['vmonospace'] = 0xFF56;\n t['voarmenian'] = 0x0578;\n t['voicediterationhiragana'] = 0x309E;\n t['voicediterationkatakana'] = 0x30FE;\n t['voicedmarkkana'] = 0x309B;\n t['voicedmarkkanahalfwidth'] = 0xFF9E;\n t['vokatakana'] = 0x30FA;\n t['vparen'] = 0x24B1;\n t['vtilde'] = 0x1E7D;\n t['vturned'] = 0x028C;\n t['vuhiragana'] = 0x3094;\n t['vukatakana'] = 0x30F4;\n t['w'] = 0x0077;\n t['wacute'] = 0x1E83;\n t['waekorean'] = 0x3159;\n t['wahiragana'] = 0x308F;\n t['wakatakana'] = 0x30EF;\n t['wakatakanahalfwidth'] = 0xFF9C;\n t['wakorean'] = 0x3158;\n t['wasmallhiragana'] = 0x308E;\n t['wasmallkatakana'] = 0x30EE;\n t['wattosquare'] = 0x3357;\n t['wavedash'] = 0x301C;\n t['wavyunderscorevertical'] = 0xFE34;\n t['wawarabic'] = 0x0648;\n t['wawfinalarabic'] = 0xFEEE;\n t['wawhamzaabovearabic'] = 0x0624;\n t['wawhamzaabovefinalarabic'] = 0xFE86;\n t['wbsquare'] = 0x33DD;\n t['wcircle'] = 0x24E6;\n t['wcircumflex'] = 0x0175;\n t['wdieresis'] = 0x1E85;\n t['wdotaccent'] = 0x1E87;\n t['wdotbelow'] = 0x1E89;\n t['wehiragana'] = 0x3091;\n t['weierstrass'] = 0x2118;\n t['wekatakana'] = 0x30F1;\n t['wekorean'] = 0x315E;\n t['weokorean'] = 0x315D;\n t['wgrave'] = 0x1E81;\n t['whitebullet'] = 0x25E6;\n t['whitecircle'] = 0x25CB;\n t['whitecircleinverse'] = 0x25D9;\n t['whitecornerbracketleft'] = 0x300E;\n t['whitecornerbracketleftvertical'] = 0xFE43;\n t['whitecornerbracketright'] = 0x300F;\n t['whitecornerbracketrightvertical'] = 0xFE44;\n t['whitediamond'] = 0x25C7;\n t['whitediamondcontainingblacksmalldiamond'] = 0x25C8;\n t['whitedownpointingsmalltriangle'] = 0x25BF;\n t['whitedownpointingtriangle'] = 0x25BD;\n t['whiteleftpointingsmalltriangle'] = 0x25C3;\n t['whiteleftpointingtriangle'] = 0x25C1;\n t['whitelenticularbracketleft'] = 0x3016;\n t['whitelenticularbracketright'] = 0x3017;\n t['whiterightpointingsmalltriangle'] = 0x25B9;\n t['whiterightpointingtriangle'] = 0x25B7;\n t['whitesmallsquare'] = 0x25AB;\n t['whitesmilingface'] = 0x263A;\n t['whitesquare'] = 0x25A1;\n t['whitestar'] = 0x2606;\n t['whitetelephone'] = 0x260F;\n t['whitetortoiseshellbracketleft'] = 0x3018;\n t['whitetortoiseshellbracketright'] = 0x3019;\n t['whiteuppointingsmalltriangle'] = 0x25B5;\n t['whiteuppointingtriangle'] = 0x25B3;\n t['wihiragana'] = 0x3090;\n t['wikatakana'] = 0x30F0;\n t['wikorean'] = 0x315F;\n t['wmonospace'] = 0xFF57;\n t['wohiragana'] = 0x3092;\n t['wokatakana'] = 0x30F2;\n t['wokatakanahalfwidth'] = 0xFF66;\n t['won'] = 0x20A9;\n t['wonmonospace'] = 0xFFE6;\n t['wowaenthai'] = 0x0E27;\n t['wparen'] = 0x24B2;\n t['wring'] = 0x1E98;\n t['wsuperior'] = 0x02B7;\n t['wturned'] = 0x028D;\n t['wynn'] = 0x01BF;\n t['x'] = 0x0078;\n t['xabovecmb'] = 0x033D;\n t['xbopomofo'] = 0x3112;\n t['xcircle'] = 0x24E7;\n t['xdieresis'] = 0x1E8D;\n t['xdotaccent'] = 0x1E8B;\n t['xeharmenian'] = 0x056D;\n t['xi'] = 0x03BE;\n t['xmonospace'] = 0xFF58;\n t['xparen'] = 0x24B3;\n t['xsuperior'] = 0x02E3;\n t['y'] = 0x0079;\n t['yaadosquare'] = 0x334E;\n t['yabengali'] = 0x09AF;\n t['yacute'] = 0x00FD;\n t['yadeva'] = 0x092F;\n t['yaekorean'] = 0x3152;\n t['yagujarati'] = 0x0AAF;\n t['yagurmukhi'] = 0x0A2F;\n t['yahiragana'] = 0x3084;\n t['yakatakana'] = 0x30E4;\n t['yakatakanahalfwidth'] = 0xFF94;\n t['yakorean'] = 0x3151;\n t['yamakkanthai'] = 0x0E4E;\n t['yasmallhiragana'] = 0x3083;\n t['yasmallkatakana'] = 0x30E3;\n t['yasmallkatakanahalfwidth'] = 0xFF6C;\n t['yatcyrillic'] = 0x0463;\n t['ycircle'] = 0x24E8;\n t['ycircumflex'] = 0x0177;\n t['ydieresis'] = 0x00FF;\n t['ydotaccent'] = 0x1E8F;\n t['ydotbelow'] = 0x1EF5;\n t['yeharabic'] = 0x064A;\n t['yehbarreearabic'] = 0x06D2;\n t['yehbarreefinalarabic'] = 0xFBAF;\n t['yehfinalarabic'] = 0xFEF2;\n t['yehhamzaabovearabic'] = 0x0626;\n t['yehhamzaabovefinalarabic'] = 0xFE8A;\n t['yehhamzaaboveinitialarabic'] = 0xFE8B;\n t['yehhamzaabovemedialarabic'] = 0xFE8C;\n t['yehinitialarabic'] = 0xFEF3;\n t['yehmedialarabic'] = 0xFEF4;\n t['yehmeeminitialarabic'] = 0xFCDD;\n t['yehmeemisolatedarabic'] = 0xFC58;\n t['yehnoonfinalarabic'] = 0xFC94;\n t['yehthreedotsbelowarabic'] = 0x06D1;\n t['yekorean'] = 0x3156;\n t['yen'] = 0x00A5;\n t['yenmonospace'] = 0xFFE5;\n t['yeokorean'] = 0x3155;\n t['yeorinhieuhkorean'] = 0x3186;\n t['yerahbenyomohebrew'] = 0x05AA;\n t['yerahbenyomolefthebrew'] = 0x05AA;\n t['yericyrillic'] = 0x044B;\n t['yerudieresiscyrillic'] = 0x04F9;\n t['yesieungkorean'] = 0x3181;\n t['yesieungpansioskorean'] = 0x3183;\n t['yesieungsioskorean'] = 0x3182;\n t['yetivhebrew'] = 0x059A;\n t['ygrave'] = 0x1EF3;\n t['yhook'] = 0x01B4;\n t['yhookabove'] = 0x1EF7;\n t['yiarmenian'] = 0x0575;\n t['yicyrillic'] = 0x0457;\n t['yikorean'] = 0x3162;\n t['yinyang'] = 0x262F;\n t['yiwnarmenian'] = 0x0582;\n t['ymonospace'] = 0xFF59;\n t['yod'] = 0x05D9;\n t['yoddagesh'] = 0xFB39;\n t['yoddageshhebrew'] = 0xFB39;\n t['yodhebrew'] = 0x05D9;\n t['yodyodhebrew'] = 0x05F2;\n t['yodyodpatahhebrew'] = 0xFB1F;\n t['yohiragana'] = 0x3088;\n t['yoikorean'] = 0x3189;\n t['yokatakana'] = 0x30E8;\n t['yokatakanahalfwidth'] = 0xFF96;\n t['yokorean'] = 0x315B;\n t['yosmallhiragana'] = 0x3087;\n t['yosmallkatakana'] = 0x30E7;\n t['yosmallkatakanahalfwidth'] = 0xFF6E;\n t['yotgreek'] = 0x03F3;\n t['yoyaekorean'] = 0x3188;\n t['yoyakorean'] = 0x3187;\n t['yoyakthai'] = 0x0E22;\n t['yoyingthai'] = 0x0E0D;\n t['yparen'] = 0x24B4;\n t['ypogegrammeni'] = 0x037A;\n t['ypogegrammenigreekcmb'] = 0x0345;\n t['yr'] = 0x01A6;\n t['yring'] = 0x1E99;\n t['ysuperior'] = 0x02B8;\n t['ytilde'] = 0x1EF9;\n t['yturned'] = 0x028E;\n t['yuhiragana'] = 0x3086;\n t['yuikorean'] = 0x318C;\n t['yukatakana'] = 0x30E6;\n t['yukatakanahalfwidth'] = 0xFF95;\n t['yukorean'] = 0x3160;\n t['yusbigcyrillic'] = 0x046B;\n t['yusbigiotifiedcyrillic'] = 0x046D;\n t['yuslittlecyrillic'] = 0x0467;\n t['yuslittleiotifiedcyrillic'] = 0x0469;\n t['yusmallhiragana'] = 0x3085;\n t['yusmallkatakana'] = 0x30E5;\n t['yusmallkatakanahalfwidth'] = 0xFF6D;\n t['yuyekorean'] = 0x318B;\n t['yuyeokorean'] = 0x318A;\n t['yyabengali'] = 0x09DF;\n t['yyadeva'] = 0x095F;\n t['z'] = 0x007A;\n t['zaarmenian'] = 0x0566;\n t['zacute'] = 0x017A;\n t['zadeva'] = 0x095B;\n t['zagurmukhi'] = 0x0A5B;\n t['zaharabic'] = 0x0638;\n t['zahfinalarabic'] = 0xFEC6;\n t['zahinitialarabic'] = 0xFEC7;\n t['zahiragana'] = 0x3056;\n t['zahmedialarabic'] = 0xFEC8;\n t['zainarabic'] = 0x0632;\n t['zainfinalarabic'] = 0xFEB0;\n t['zakatakana'] = 0x30B6;\n t['zaqefgadolhebrew'] = 0x0595;\n t['zaqefqatanhebrew'] = 0x0594;\n t['zarqahebrew'] = 0x0598;\n t['zayin'] = 0x05D6;\n t['zayindagesh'] = 0xFB36;\n t['zayindageshhebrew'] = 0xFB36;\n t['zayinhebrew'] = 0x05D6;\n t['zbopomofo'] = 0x3117;\n t['zcaron'] = 0x017E;\n t['zcircle'] = 0x24E9;\n t['zcircumflex'] = 0x1E91;\n t['zcurl'] = 0x0291;\n t['zdot'] = 0x017C;\n t['zdotaccent'] = 0x017C;\n t['zdotbelow'] = 0x1E93;\n t['zecyrillic'] = 0x0437;\n t['zedescendercyrillic'] = 0x0499;\n t['zedieresiscyrillic'] = 0x04DF;\n t['zehiragana'] = 0x305C;\n t['zekatakana'] = 0x30BC;\n t['zero'] = 0x0030;\n t['zeroarabic'] = 0x0660;\n t['zerobengali'] = 0x09E6;\n t['zerodeva'] = 0x0966;\n t['zerogujarati'] = 0x0AE6;\n t['zerogurmukhi'] = 0x0A66;\n t['zerohackarabic'] = 0x0660;\n t['zeroinferior'] = 0x2080;\n t['zeromonospace'] = 0xFF10;\n t['zerooldstyle'] = 0xF730;\n t['zeropersian'] = 0x06F0;\n t['zerosuperior'] = 0x2070;\n t['zerothai'] = 0x0E50;\n t['zerowidthjoiner'] = 0xFEFF;\n t['zerowidthnonjoiner'] = 0x200C;\n t['zerowidthspace'] = 0x200B;\n t['zeta'] = 0x03B6;\n t['zhbopomofo'] = 0x3113;\n t['zhearmenian'] = 0x056A;\n t['zhebrevecyrillic'] = 0x04C2;\n t['zhecyrillic'] = 0x0436;\n t['zhedescendercyrillic'] = 0x0497;\n t['zhedieresiscyrillic'] = 0x04DD;\n t['zihiragana'] = 0x3058;\n t['zikatakana'] = 0x30B8;\n t['zinorhebrew'] = 0x05AE;\n t['zlinebelow'] = 0x1E95;\n t['zmonospace'] = 0xFF5A;\n t['zohiragana'] = 0x305E;\n t['zokatakana'] = 0x30BE;\n t['zparen'] = 0x24B5;\n t['zretroflexhook'] = 0x0290;\n t['zstroke'] = 0x01B6;\n t['zuhiragana'] = 0x305A;\n t['zukatakana'] = 0x30BA;\n t['.notdef'] = 0x0000;\n t['angbracketleftbig'] = 0x2329;\n t['angbracketleftBig'] = 0x2329;\n t['angbracketleftbigg'] = 0x2329;\n t['angbracketleftBigg'] = 0x2329;\n t['angbracketrightBig'] = 0x232A;\n t['angbracketrightbig'] = 0x232A;\n t['angbracketrightBigg'] = 0x232A;\n t['angbracketrightbigg'] = 0x232A;\n t['arrowhookleft'] = 0x21AA;\n t['arrowhookright'] = 0x21A9;\n t['arrowlefttophalf'] = 0x21BC;\n t['arrowleftbothalf'] = 0x21BD;\n t['arrownortheast'] = 0x2197;\n t['arrownorthwest'] = 0x2196;\n t['arrowrighttophalf'] = 0x21C0;\n t['arrowrightbothalf'] = 0x21C1;\n t['arrowsoutheast'] = 0x2198;\n t['arrowsouthwest'] = 0x2199;\n t['backslashbig'] = 0x2216;\n t['backslashBig'] = 0x2216;\n t['backslashBigg'] = 0x2216;\n t['backslashbigg'] = 0x2216;\n t['bardbl'] = 0x2016;\n t['bracehtipdownleft'] = 0xFE37;\n t['bracehtipdownright'] = 0xFE37;\n t['bracehtipupleft'] = 0xFE38;\n t['bracehtipupright'] = 0xFE38;\n t['braceleftBig'] = 0x007B;\n t['braceleftbig'] = 0x007B;\n t['braceleftbigg'] = 0x007B;\n t['braceleftBigg'] = 0x007B;\n t['bracerightBig'] = 0x007D;\n t['bracerightbig'] = 0x007D;\n t['bracerightbigg'] = 0x007D;\n t['bracerightBigg'] = 0x007D;\n t['bracketleftbig'] = 0x005B;\n t['bracketleftBig'] = 0x005B;\n t['bracketleftbigg'] = 0x005B;\n t['bracketleftBigg'] = 0x005B;\n t['bracketrightBig'] = 0x005D;\n t['bracketrightbig'] = 0x005D;\n t['bracketrightbigg'] = 0x005D;\n t['bracketrightBigg'] = 0x005D;\n t['ceilingleftbig'] = 0x2308;\n t['ceilingleftBig'] = 0x2308;\n t['ceilingleftBigg'] = 0x2308;\n t['ceilingleftbigg'] = 0x2308;\n t['ceilingrightbig'] = 0x2309;\n t['ceilingrightBig'] = 0x2309;\n t['ceilingrightbigg'] = 0x2309;\n t['ceilingrightBigg'] = 0x2309;\n t['circledotdisplay'] = 0x2299;\n t['circledottext'] = 0x2299;\n t['circlemultiplydisplay'] = 0x2297;\n t['circlemultiplytext'] = 0x2297;\n t['circleplusdisplay'] = 0x2295;\n t['circleplustext'] = 0x2295;\n t['contintegraldisplay'] = 0x222E;\n t['contintegraltext'] = 0x222E;\n t['coproductdisplay'] = 0x2210;\n t['coproducttext'] = 0x2210;\n t['floorleftBig'] = 0x230A;\n t['floorleftbig'] = 0x230A;\n t['floorleftbigg'] = 0x230A;\n t['floorleftBigg'] = 0x230A;\n t['floorrightbig'] = 0x230B;\n t['floorrightBig'] = 0x230B;\n t['floorrightBigg'] = 0x230B;\n t['floorrightbigg'] = 0x230B;\n t['hatwide'] = 0x0302;\n t['hatwider'] = 0x0302;\n t['hatwidest'] = 0x0302;\n t['intercal'] = 0x1D40;\n t['integraldisplay'] = 0x222B;\n t['integraltext'] = 0x222B;\n t['intersectiondisplay'] = 0x22C2;\n t['intersectiontext'] = 0x22C2;\n t['logicalanddisplay'] = 0x2227;\n t['logicalandtext'] = 0x2227;\n t['logicalordisplay'] = 0x2228;\n t['logicalortext'] = 0x2228;\n t['parenleftBig'] = 0x0028;\n t['parenleftbig'] = 0x0028;\n t['parenleftBigg'] = 0x0028;\n t['parenleftbigg'] = 0x0028;\n t['parenrightBig'] = 0x0029;\n t['parenrightbig'] = 0x0029;\n t['parenrightBigg'] = 0x0029;\n t['parenrightbigg'] = 0x0029;\n t['prime'] = 0x2032;\n t['productdisplay'] = 0x220F;\n t['producttext'] = 0x220F;\n t['radicalbig'] = 0x221A;\n t['radicalBig'] = 0x221A;\n t['radicalBigg'] = 0x221A;\n t['radicalbigg'] = 0x221A;\n t['radicalbt'] = 0x221A;\n t['radicaltp'] = 0x221A;\n t['radicalvertex'] = 0x221A;\n t['slashbig'] = 0x002F;\n t['slashBig'] = 0x002F;\n t['slashBigg'] = 0x002F;\n t['slashbigg'] = 0x002F;\n t['summationdisplay'] = 0x2211;\n t['summationtext'] = 0x2211;\n t['tildewide'] = 0x02DC;\n t['tildewider'] = 0x02DC;\n t['tildewidest'] = 0x02DC;\n t['uniondisplay'] = 0x22C3;\n t['unionmultidisplay'] = 0x228E;\n t['unionmultitext'] = 0x228E;\n t['unionsqdisplay'] = 0x2294;\n t['unionsqtext'] = 0x2294;\n t['uniontext'] = 0x22C3;\n t['vextenddouble'] = 0x2225;\n t['vextendsingle'] = 0x2223;\n});\nvar getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) {\n t['space'] = 0x0020;\n t['a1'] = 0x2701;\n t['a2'] = 0x2702;\n t['a202'] = 0x2703;\n t['a3'] = 0x2704;\n t['a4'] = 0x260E;\n t['a5'] = 0x2706;\n t['a119'] = 0x2707;\n t['a118'] = 0x2708;\n t['a117'] = 0x2709;\n t['a11'] = 0x261B;\n t['a12'] = 0x261E;\n t['a13'] = 0x270C;\n t['a14'] = 0x270D;\n t['a15'] = 0x270E;\n t['a16'] = 0x270F;\n t['a105'] = 0x2710;\n t['a17'] = 0x2711;\n t['a18'] = 0x2712;\n t['a19'] = 0x2713;\n t['a20'] = 0x2714;\n t['a21'] = 0x2715;\n t['a22'] = 0x2716;\n t['a23'] = 0x2717;\n t['a24'] = 0x2718;\n t['a25'] = 0x2719;\n t['a26'] = 0x271A;\n t['a27'] = 0x271B;\n t['a28'] = 0x271C;\n t['a6'] = 0x271D;\n t['a7'] = 0x271E;\n t['a8'] = 0x271F;\n t['a9'] = 0x2720;\n t['a10'] = 0x2721;\n t['a29'] = 0x2722;\n t['a30'] = 0x2723;\n t['a31'] = 0x2724;\n t['a32'] = 0x2725;\n t['a33'] = 0x2726;\n t['a34'] = 0x2727;\n t['a35'] = 0x2605;\n t['a36'] = 0x2729;\n t['a37'] = 0x272A;\n t['a38'] = 0x272B;\n t['a39'] = 0x272C;\n t['a40'] = 0x272D;\n t['a41'] = 0x272E;\n t['a42'] = 0x272F;\n t['a43'] = 0x2730;\n t['a44'] = 0x2731;\n t['a45'] = 0x2732;\n t['a46'] = 0x2733;\n t['a47'] = 0x2734;\n t['a48'] = 0x2735;\n t['a49'] = 0x2736;\n t['a50'] = 0x2737;\n t['a51'] = 0x2738;\n t['a52'] = 0x2739;\n t['a53'] = 0x273A;\n t['a54'] = 0x273B;\n t['a55'] = 0x273C;\n t['a56'] = 0x273D;\n t['a57'] = 0x273E;\n t['a58'] = 0x273F;\n t['a59'] = 0x2740;\n t['a60'] = 0x2741;\n t['a61'] = 0x2742;\n t['a62'] = 0x2743;\n t['a63'] = 0x2744;\n t['a64'] = 0x2745;\n t['a65'] = 0x2746;\n t['a66'] = 0x2747;\n t['a67'] = 0x2748;\n t['a68'] = 0x2749;\n t['a69'] = 0x274A;\n t['a70'] = 0x274B;\n t['a71'] = 0x25CF;\n t['a72'] = 0x274D;\n t['a73'] = 0x25A0;\n t['a74'] = 0x274F;\n t['a203'] = 0x2750;\n t['a75'] = 0x2751;\n t['a204'] = 0x2752;\n t['a76'] = 0x25B2;\n t['a77'] = 0x25BC;\n t['a78'] = 0x25C6;\n t['a79'] = 0x2756;\n t['a81'] = 0x25D7;\n t['a82'] = 0x2758;\n t['a83'] = 0x2759;\n t['a84'] = 0x275A;\n t['a97'] = 0x275B;\n t['a98'] = 0x275C;\n t['a99'] = 0x275D;\n t['a100'] = 0x275E;\n t['a101'] = 0x2761;\n t['a102'] = 0x2762;\n t['a103'] = 0x2763;\n t['a104'] = 0x2764;\n t['a106'] = 0x2765;\n t['a107'] = 0x2766;\n t['a108'] = 0x2767;\n t['a112'] = 0x2663;\n t['a111'] = 0x2666;\n t['a110'] = 0x2665;\n t['a109'] = 0x2660;\n t['a120'] = 0x2460;\n t['a121'] = 0x2461;\n t['a122'] = 0x2462;\n t['a123'] = 0x2463;\n t['a124'] = 0x2464;\n t['a125'] = 0x2465;\n t['a126'] = 0x2466;\n t['a127'] = 0x2467;\n t['a128'] = 0x2468;\n t['a129'] = 0x2469;\n t['a130'] = 0x2776;\n t['a131'] = 0x2777;\n t['a132'] = 0x2778;\n t['a133'] = 0x2779;\n t['a134'] = 0x277A;\n t['a135'] = 0x277B;\n t['a136'] = 0x277C;\n t['a137'] = 0x277D;\n t['a138'] = 0x277E;\n t['a139'] = 0x277F;\n t['a140'] = 0x2780;\n t['a141'] = 0x2781;\n t['a142'] = 0x2782;\n t['a143'] = 0x2783;\n t['a144'] = 0x2784;\n t['a145'] = 0x2785;\n t['a146'] = 0x2786;\n t['a147'] = 0x2787;\n t['a148'] = 0x2788;\n t['a149'] = 0x2789;\n t['a150'] = 0x278A;\n t['a151'] = 0x278B;\n t['a152'] = 0x278C;\n t['a153'] = 0x278D;\n t['a154'] = 0x278E;\n t['a155'] = 0x278F;\n t['a156'] = 0x2790;\n t['a157'] = 0x2791;\n t['a158'] = 0x2792;\n t['a159'] = 0x2793;\n t['a160'] = 0x2794;\n t['a161'] = 0x2192;\n t['a163'] = 0x2194;\n t['a164'] = 0x2195;\n t['a196'] = 0x2798;\n t['a165'] = 0x2799;\n t['a192'] = 0x279A;\n t['a166'] = 0x279B;\n t['a167'] = 0x279C;\n t['a168'] = 0x279D;\n t['a169'] = 0x279E;\n t['a170'] = 0x279F;\n t['a171'] = 0x27A0;\n t['a172'] = 0x27A1;\n t['a173'] = 0x27A2;\n t['a162'] = 0x27A3;\n t['a174'] = 0x27A4;\n t['a175'] = 0x27A5;\n t['a176'] = 0x27A6;\n t['a177'] = 0x27A7;\n t['a178'] = 0x27A8;\n t['a179'] = 0x27A9;\n t['a193'] = 0x27AA;\n t['a180'] = 0x27AB;\n t['a199'] = 0x27AC;\n t['a181'] = 0x27AD;\n t['a200'] = 0x27AE;\n t['a182'] = 0x27AF;\n t['a201'] = 0x27B1;\n t['a183'] = 0x27B2;\n t['a184'] = 0x27B3;\n t['a197'] = 0x27B4;\n t['a185'] = 0x27B5;\n t['a194'] = 0x27B6;\n t['a198'] = 0x27B7;\n t['a186'] = 0x27B8;\n t['a195'] = 0x27B9;\n t['a187'] = 0x27BA;\n t['a188'] = 0x27BB;\n t['a189'] = 0x27BC;\n t['a190'] = 0x27BD;\n t['a191'] = 0x27BE;\n t['a89'] = 0x2768;\n t['a90'] = 0x2769;\n t['a93'] = 0x276A;\n t['a94'] = 0x276B;\n t['a91'] = 0x276C;\n t['a92'] = 0x276D;\n t['a205'] = 0x276E;\n t['a85'] = 0x276F;\n t['a206'] = 0x2770;\n t['a86'] = 0x2771;\n t['a87'] = 0x2772;\n t['a88'] = 0x2773;\n t['a95'] = 0x2774;\n t['a96'] = 0x2775;\n t['.notdef'] = 0x0000;\n});\nexports.getGlyphsUnicode = getGlyphsUnicode;\nexports.getDingbatsGlyphsUnicode = getDingbatsGlyphsUnicode;\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = exports.getNonStdFontMap = exports.getStdFontMap = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar getStdFontMap = (0, _util.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['SegoeUISymbol'] = 'Helvetica';\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});\nvar getNonStdFontMap = (0, _util.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['Wingdings'] = 'ZapfDingbats';\n});\nvar getSerifFonts = (0, _util.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});\nvar getSymbolsFonts = (0, _util.getLookupTableFactory)(function (t) {\n t['Dingbats'] = true;\n t['Symbol'] = true;\n t['ZapfDingbats'] = true;\n});\nvar getGlyphMapForStandardFonts = (0, _util.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});\nvar getSupplementalGlyphMapForArialBlack = (0, _util.getLookupTableFactory)(function (t) {\n t[227] = 322;\n t[264] = 261;\n t[291] = 346;\n});\nvar getSupplementalGlyphMapForCalibri = (0, _util.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.getStdFontMap = getStdFontMap;\nexports.getNonStdFontMap = getNonStdFontMap;\nexports.getSerifFonts = getSerifFonts;\nexports.getSymbolsFonts = getSymbolsFonts;\nexports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts;\nexports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack;\nexports.getSupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri;\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nvar getLookupTableFactory = __w_pdfjs_require__(2).getLookupTableFactory;\nvar getSpecialPUASymbols = getLookupTableFactory(function (t) {\n t[63721] = 0x00A9;\n t[63193] = 0x00A9;\n t[63720] = 0x00AE;\n t[63194] = 0x00AE;\n t[63722] = 0x2122;\n t[63195] = 0x2122;\n t[63729] = 0x23A7;\n t[63730] = 0x23A8;\n t[63731] = 0x23A9;\n t[63740] = 0x23AB;\n t[63741] = 0x23AC;\n t[63742] = 0x23AD;\n t[63726] = 0x23A1;\n t[63727] = 0x23A2;\n t[63728] = 0x23A3;\n t[63737] = 0x23A4;\n t[63738] = 0x23A5;\n t[63739] = 0x23A6;\n t[63723] = 0x239B;\n t[63724] = 0x239C;\n t[63725] = 0x239D;\n t[63734] = 0x239E;\n t[63735] = 0x239F;\n t[63736] = 0x23A0;\n});\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xFFF0 && code <= 0xFFFF) {\n return 0;\n } else if (code >= 0xF600 && code <= 0xF8FF) {\n return getSpecialPUASymbols()[code] || code;\n } else if (code === 0x00AD) {\n return 0x002D;\n }\n return code;\n}\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n var unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n return unicode;\n }\n if (!name) {\n return -1;\n }\n if (name[0] === 'u') {\n var nameLen = name.length, hexStr;\n if (nameLen === 7 && name[1] === 'n' && name[2] === 'i') {\n hexStr = name.substring(3);\n } else if (nameLen >= 5 && nameLen <= 7) {\n hexStr = name.substring(1);\n } else {\n return -1;\n }\n if (hexStr === hexStr.toUpperCase()) {\n unicode = parseInt(hexStr, 16);\n if (unicode >= 0) {\n return unicode;\n }\n }\n }\n return -1;\n}\nvar UnicodeRanges = [\n {\n 'begin': 0x0000,\n 'end': 0x007F\n },\n {\n 'begin': 0x0080,\n 'end': 0x00FF\n },\n {\n 'begin': 0x0100,\n 'end': 0x017F\n },\n {\n 'begin': 0x0180,\n 'end': 0x024F\n },\n {\n 'begin': 0x0250,\n 'end': 0x02AF\n },\n {\n 'begin': 0x02B0,\n 'end': 0x02FF\n },\n {\n 'begin': 0x0300,\n 'end': 0x036F\n },\n {\n 'begin': 0x0370,\n 'end': 0x03FF\n },\n {\n 'begin': 0x2C80,\n 'end': 0x2CFF\n },\n {\n 'begin': 0x0400,\n 'end': 0x04FF\n },\n {\n 'begin': 0x0530,\n 'end': 0x058F\n },\n {\n 'begin': 0x0590,\n 'end': 0x05FF\n },\n {\n 'begin': 0xA500,\n 'end': 0xA63F\n },\n {\n 'begin': 0x0600,\n 'end': 0x06FF\n },\n {\n 'begin': 0x07C0,\n 'end': 0x07FF\n },\n {\n 'begin': 0x0900,\n 'end': 0x097F\n },\n {\n 'begin': 0x0980,\n 'end': 0x09FF\n },\n {\n 'begin': 0x0A00,\n 'end': 0x0A7F\n },\n {\n 'begin': 0x0A80,\n 'end': 0x0AFF\n },\n {\n 'begin': 0x0B00,\n 'end': 0x0B7F\n },\n {\n 'begin': 0x0B80,\n 'end': 0x0BFF\n },\n {\n 'begin': 0x0C00,\n 'end': 0x0C7F\n },\n {\n 'begin': 0x0C80,\n 'end': 0x0CFF\n },\n {\n 'begin': 0x0D00,\n 'end': 0x0D7F\n },\n {\n 'begin': 0x0E00,\n 'end': 0x0E7F\n },\n {\n 'begin': 0x0E80,\n 'end': 0x0EFF\n },\n {\n 'begin': 0x10A0,\n 'end': 0x10FF\n },\n {\n 'begin': 0x1B00,\n 'end': 0x1B7F\n },\n {\n 'begin': 0x1100,\n 'end': 0x11FF\n },\n {\n 'begin': 0x1E00,\n 'end': 0x1EFF\n },\n {\n 'begin': 0x1F00,\n 'end': 0x1FFF\n },\n {\n 'begin': 0x2000,\n 'end': 0x206F\n },\n {\n 'begin': 0x2070,\n 'end': 0x209F\n },\n {\n 'begin': 0x20A0,\n 'end': 0x20CF\n },\n {\n 'begin': 0x20D0,\n 'end': 0x20FF\n },\n {\n 'begin': 0x2100,\n 'end': 0x214F\n },\n {\n 'begin': 0x2150,\n 'end': 0x218F\n },\n {\n 'begin': 0x2190,\n 'end': 0x21FF\n },\n {\n 'begin': 0x2200,\n 'end': 0x22FF\n },\n {\n 'begin': 0x2300,\n 'end': 0x23FF\n },\n {\n 'begin': 0x2400,\n 'end': 0x243F\n },\n {\n 'begin': 0x2440,\n 'end': 0x245F\n },\n {\n 'begin': 0x2460,\n 'end': 0x24FF\n },\n {\n 'begin': 0x2500,\n 'end': 0x257F\n },\n {\n 'begin': 0x2580,\n 'end': 0x259F\n },\n {\n 'begin': 0x25A0,\n 'end': 0x25FF\n },\n {\n 'begin': 0x2600,\n 'end': 0x26FF\n },\n {\n 'begin': 0x2700,\n 'end': 0x27BF\n },\n {\n 'begin': 0x3000,\n 'end': 0x303F\n },\n {\n 'begin': 0x3040,\n 'end': 0x309F\n },\n {\n 'begin': 0x30A0,\n 'end': 0x30FF\n },\n {\n 'begin': 0x3100,\n 'end': 0x312F\n },\n {\n 'begin': 0x3130,\n 'end': 0x318F\n },\n {\n 'begin': 0xA840,\n 'end': 0xA87F\n },\n {\n 'begin': 0x3200,\n 'end': 0x32FF\n },\n {\n 'begin': 0x3300,\n 'end': 0x33FF\n },\n {\n 'begin': 0xAC00,\n 'end': 0xD7AF\n },\n {\n 'begin': 0xD800,\n 'end': 0xDFFF\n },\n {\n 'begin': 0x10900,\n 'end': 0x1091F\n },\n {\n 'begin': 0x4E00,\n 'end': 0x9FFF\n },\n {\n 'begin': 0xE000,\n 'end': 0xF8FF\n },\n {\n 'begin': 0x31C0,\n 'end': 0x31EF\n },\n {\n 'begin': 0xFB00,\n 'end': 0xFB4F\n },\n {\n 'begin': 0xFB50,\n 'end': 0xFDFF\n },\n {\n 'begin': 0xFE20,\n 'end': 0xFE2F\n },\n {\n 'begin': 0xFE10,\n 'end': 0xFE1F\n },\n {\n 'begin': 0xFE50,\n 'end': 0xFE6F\n },\n {\n 'begin': 0xFE70,\n 'end': 0xFEFF\n },\n {\n 'begin': 0xFF00,\n 'end': 0xFFEF\n },\n {\n 'begin': 0xFFF0,\n 'end': 0xFFFF\n },\n {\n 'begin': 0x0F00,\n 'end': 0x0FFF\n },\n {\n 'begin': 0x0700,\n 'end': 0x074F\n },\n {\n 'begin': 0x0780,\n 'end': 0x07BF\n },\n {\n 'begin': 0x0D80,\n 'end': 0x0DFF\n },\n {\n 'begin': 0x1000,\n 'end': 0x109F\n },\n {\n 'begin': 0x1200,\n 'end': 0x137F\n },\n {\n 'begin': 0x13A0,\n 'end': 0x13FF\n },\n {\n 'begin': 0x1400,\n 'end': 0x167F\n },\n {\n 'begin': 0x1680,\n 'end': 0x169F\n },\n {\n 'begin': 0x16A0,\n 'end': 0x16FF\n },\n {\n 'begin': 0x1780,\n 'end': 0x17FF\n },\n {\n 'begin': 0x1800,\n 'end': 0x18AF\n },\n {\n 'begin': 0x2800,\n 'end': 0x28FF\n },\n {\n 'begin': 0xA000,\n 'end': 0xA48F\n },\n {\n 'begin': 0x1700,\n 'end': 0x171F\n },\n {\n 'begin': 0x10300,\n 'end': 0x1032F\n },\n {\n 'begin': 0x10330,\n 'end': 0x1034F\n },\n {\n 'begin': 0x10400,\n 'end': 0x1044F\n },\n {\n 'begin': 0x1D000,\n 'end': 0x1D0FF\n },\n {\n 'begin': 0x1D400,\n 'end': 0x1D7FF\n },\n {\n 'begin': 0xFF000,\n 'end': 0xFFFFD\n },\n {\n 'begin': 0xFE00,\n 'end': 0xFE0F\n },\n {\n 'begin': 0xE0000,\n 'end': 0xE007F\n },\n {\n 'begin': 0x1900,\n 'end': 0x194F\n },\n {\n 'begin': 0x1950,\n 'end': 0x197F\n },\n {\n 'begin': 0x1980,\n 'end': 0x19DF\n },\n {\n 'begin': 0x1A00,\n 'end': 0x1A1F\n },\n {\n 'begin': 0x2C00,\n 'end': 0x2C5F\n },\n {\n 'begin': 0x2D30,\n 'end': 0x2D7F\n },\n {\n 'begin': 0x4DC0,\n 'end': 0x4DFF\n },\n {\n 'begin': 0xA800,\n 'end': 0xA82F\n },\n {\n 'begin': 0x10000,\n 'end': 0x1007F\n },\n {\n 'begin': 0x10140,\n 'end': 0x1018F\n },\n {\n 'begin': 0x10380,\n 'end': 0x1039F\n },\n {\n 'begin': 0x103A0,\n 'end': 0x103DF\n },\n {\n 'begin': 0x10450,\n 'end': 0x1047F\n },\n {\n 'begin': 0x10480,\n 'end': 0x104AF\n },\n {\n 'begin': 0x10800,\n 'end': 0x1083F\n },\n {\n 'begin': 0x10A00,\n 'end': 0x10A5F\n },\n {\n 'begin': 0x1D300,\n 'end': 0x1D35F\n },\n {\n 'begin': 0x12000,\n 'end': 0x123FF\n },\n {\n 'begin': 0x1D360,\n 'end': 0x1D37F\n },\n {\n 'begin': 0x1B80,\n 'end': 0x1BBF\n },\n {\n 'begin': 0x1C00,\n 'end': 0x1C4F\n },\n {\n 'begin': 0x1C50,\n 'end': 0x1C7F\n },\n {\n 'begin': 0xA880,\n 'end': 0xA8DF\n },\n {\n 'begin': 0xA900,\n 'end': 0xA92F\n },\n {\n 'begin': 0xA930,\n 'end': 0xA95F\n },\n {\n 'begin': 0xAA00,\n 'end': 0xAA5F\n },\n {\n 'begin': 0x10190,\n 'end': 0x101CF\n },\n {\n 'begin': 0x101D0,\n 'end': 0x101FF\n },\n {\n 'begin': 0x102A0,\n 'end': 0x102DF\n },\n {\n 'begin': 0x1F030,\n 'end': 0x1F09F\n }\n];\nfunction getUnicodeRangeFor(value) {\n for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n var range = UnicodeRanges[i];\n if (value >= range.begin && value < range.end) {\n return i;\n }\n }\n return -1;\n}\nfunction isRTLRangeFor(value) {\n var range = UnicodeRanges[13];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n range = UnicodeRanges[11];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n return false;\n}\nvar getNormalizedUnicodes = getLookupTableFactory(function (t) {\n t['\\u00A8'] = '\\u0020\\u0308';\n t['\\u00AF'] = '\\u0020\\u0304';\n t['\\u00B4'] = '\\u0020\\u0301';\n t['\\u00B5'] = '\\u03BC';\n t['\\u00B8'] = '\\u0020\\u0327';\n t['\\u0132'] = '\\u0049\\u004A';\n t['\\u0133'] = '\\u0069\\u006A';\n t['\\u013F'] = '\\u004C\\u00B7';\n t['\\u0140'] = '\\u006C\\u00B7';\n t['\\u0149'] = '\\u02BC\\u006E';\n t['\\u017F'] = '\\u0073';\n t['\\u01C4'] = '\\u0044\\u017D';\n t['\\u01C5'] = '\\u0044\\u017E';\n t['\\u01C6'] = '\\u0064\\u017E';\n t['\\u01C7'] = '\\u004C\\u004A';\n t['\\u01C8'] = '\\u004C\\u006A';\n t['\\u01C9'] = '\\u006C\\u006A';\n t['\\u01CA'] = '\\u004E\\u004A';\n t['\\u01CB'] = '\\u004E\\u006A';\n t['\\u01CC'] = '\\u006E\\u006A';\n t['\\u01F1'] = '\\u0044\\u005A';\n t['\\u01F2'] = '\\u0044\\u007A';\n t['\\u01F3'] = '\\u0064\\u007A';\n t['\\u02D8'] = '\\u0020\\u0306';\n t['\\u02D9'] = '\\u0020\\u0307';\n t['\\u02DA'] = '\\u0020\\u030A';\n t['\\u02DB'] = '\\u0020\\u0328';\n t['\\u02DC'] = '\\u0020\\u0303';\n t['\\u02DD'] = '\\u0020\\u030B';\n t['\\u037A'] = '\\u0020\\u0345';\n t['\\u0384'] = '\\u0020\\u0301';\n t['\\u03D0'] = '\\u03B2';\n t['\\u03D1'] = '\\u03B8';\n t['\\u03D2'] = '\\u03A5';\n t['\\u03D5'] = '\\u03C6';\n t['\\u03D6'] = '\\u03C0';\n t['\\u03F0'] = '\\u03BA';\n t['\\u03F1'] = '\\u03C1';\n t['\\u03F2'] = '\\u03C2';\n t['\\u03F4'] = '\\u0398';\n t['\\u03F5'] = '\\u03B5';\n t['\\u03F9'] = '\\u03A3';\n t['\\u0587'] = '\\u0565\\u0582';\n t['\\u0675'] = '\\u0627\\u0674';\n t['\\u0676'] = '\\u0648\\u0674';\n t['\\u0677'] = '\\u06C7\\u0674';\n t['\\u0678'] = '\\u064A\\u0674';\n t['\\u0E33'] = '\\u0E4D\\u0E32';\n t['\\u0EB3'] = '\\u0ECD\\u0EB2';\n t['\\u0EDC'] = '\\u0EAB\\u0E99';\n t['\\u0EDD'] = '\\u0EAB\\u0EA1';\n t['\\u0F77'] = '\\u0FB2\\u0F81';\n t['\\u0F79'] = '\\u0FB3\\u0F81';\n t['\\u1E9A'] = '\\u0061\\u02BE';\n t['\\u1FBD'] = '\\u0020\\u0313';\n t['\\u1FBF'] = '\\u0020\\u0313';\n t['\\u1FC0'] = '\\u0020\\u0342';\n t['\\u1FFE'] = '\\u0020\\u0314';\n t['\\u2002'] = '\\u0020';\n t['\\u2003'] = '\\u0020';\n t['\\u2004'] = '\\u0020';\n t['\\u2005'] = '\\u0020';\n t['\\u2006'] = '\\u0020';\n t['\\u2008'] = '\\u0020';\n t['\\u2009'] = '\\u0020';\n t['\\u200A'] = '\\u0020';\n t['\\u2017'] = '\\u0020\\u0333';\n t['\\u2024'] = '\\u002E';\n t['\\u2025'] = '\\u002E\\u002E';\n t['\\u2026'] = '\\u002E\\u002E\\u002E';\n t['\\u2033'] = '\\u2032\\u2032';\n t['\\u2034'] = '\\u2032\\u2032\\u2032';\n t['\\u2036'] = '\\u2035\\u2035';\n t['\\u2037'] = '\\u2035\\u2035\\u2035';\n t['\\u203C'] = '\\u0021\\u0021';\n t['\\u203E'] = '\\u0020\\u0305';\n t['\\u2047'] = '\\u003F\\u003F';\n t['\\u2048'] = '\\u003F\\u0021';\n t['\\u2049'] = '\\u0021\\u003F';\n t['\\u2057'] = '\\u2032\\u2032\\u2032\\u2032';\n t['\\u205F'] = '\\u0020';\n t['\\u20A8'] = '\\u0052\\u0073';\n t['\\u2100'] = '\\u0061\\u002F\\u0063';\n t['\\u2101'] = '\\u0061\\u002F\\u0073';\n t['\\u2103'] = '\\u00B0\\u0043';\n t['\\u2105'] = '\\u0063\\u002F\\u006F';\n t['\\u2106'] = '\\u0063\\u002F\\u0075';\n t['\\u2107'] = '\\u0190';\n t['\\u2109'] = '\\u00B0\\u0046';\n t['\\u2116'] = '\\u004E\\u006F';\n t['\\u2121'] = '\\u0054\\u0045\\u004C';\n t['\\u2135'] = '\\u05D0';\n t['\\u2136'] = '\\u05D1';\n t['\\u2137'] = '\\u05D2';\n t['\\u2138'] = '\\u05D3';\n t['\\u213B'] = '\\u0046\\u0041\\u0058';\n t['\\u2160'] = '\\u0049';\n t['\\u2161'] = '\\u0049\\u0049';\n t['\\u2162'] = '\\u0049\\u0049\\u0049';\n t['\\u2163'] = '\\u0049\\u0056';\n t['\\u2164'] = '\\u0056';\n t['\\u2165'] = '\\u0056\\u0049';\n t['\\u2166'] = '\\u0056\\u0049\\u0049';\n t['\\u2167'] = '\\u0056\\u0049\\u0049\\u0049';\n t['\\u2168'] = '\\u0049\\u0058';\n t['\\u2169'] = '\\u0058';\n t['\\u216A'] = '\\u0058\\u0049';\n t['\\u216B'] = '\\u0058\\u0049\\u0049';\n t['\\u216C'] = '\\u004C';\n t['\\u216D'] = '\\u0043';\n t['\\u216E'] = '\\u0044';\n t['\\u216F'] = '\\u004D';\n t['\\u2170'] = '\\u0069';\n t['\\u2171'] = '\\u0069\\u0069';\n t['\\u2172'] = '\\u0069\\u0069\\u0069';\n t['\\u2173'] = '\\u0069\\u0076';\n t['\\u2174'] = '\\u0076';\n t['\\u2175'] = '\\u0076\\u0069';\n t['\\u2176'] = '\\u0076\\u0069\\u0069';\n t['\\u2177'] = '\\u0076\\u0069\\u0069\\u0069';\n t['\\u2178'] = '\\u0069\\u0078';\n t['\\u2179'] = '\\u0078';\n t['\\u217A'] = '\\u0078\\u0069';\n t['\\u217B'] = '\\u0078\\u0069\\u0069';\n t['\\u217C'] = '\\u006C';\n t['\\u217D'] = '\\u0063';\n t['\\u217E'] = '\\u0064';\n t['\\u217F'] = '\\u006D';\n t['\\u222C'] = '\\u222B\\u222B';\n t['\\u222D'] = '\\u222B\\u222B\\u222B';\n t['\\u222F'] = '\\u222E\\u222E';\n t['\\u2230'] = '\\u222E\\u222E\\u222E';\n t['\\u2474'] = '\\u0028\\u0031\\u0029';\n t['\\u2475'] = '\\u0028\\u0032\\u0029';\n t['\\u2476'] = '\\u0028\\u0033\\u0029';\n t['\\u2477'] = '\\u0028\\u0034\\u0029';\n t['\\u2478'] = '\\u0028\\u0035\\u0029';\n t['\\u2479'] = '\\u0028\\u0036\\u0029';\n t['\\u247A'] = '\\u0028\\u0037\\u0029';\n t['\\u247B'] = '\\u0028\\u0038\\u0029';\n t['\\u247C'] = '\\u0028\\u0039\\u0029';\n t['\\u247D'] = '\\u0028\\u0031\\u0030\\u0029';\n t['\\u247E'] = '\\u0028\\u0031\\u0031\\u0029';\n t['\\u247F'] = '\\u0028\\u0031\\u0032\\u0029';\n t['\\u2480'] = '\\u0028\\u0031\\u0033\\u0029';\n t['\\u2481'] = '\\u0028\\u0031\\u0034\\u0029';\n t['\\u2482'] = '\\u0028\\u0031\\u0035\\u0029';\n t['\\u2483'] = '\\u0028\\u0031\\u0036\\u0029';\n t['\\u2484'] = '\\u0028\\u0031\\u0037\\u0029';\n t['\\u2485'] = '\\u0028\\u0031\\u0038\\u0029';\n t['\\u2486'] = '\\u0028\\u0031\\u0039\\u0029';\n t['\\u2487'] = '\\u0028\\u0032\\u0030\\u0029';\n t['\\u2488'] = '\\u0031\\u002E';\n t['\\u2489'] = '\\u0032\\u002E';\n t['\\u248A'] = '\\u0033\\u002E';\n t['\\u248B'] = '\\u0034\\u002E';\n t['\\u248C'] = '\\u0035\\u002E';\n t['\\u248D'] = '\\u0036\\u002E';\n t['\\u248E'] = '\\u0037\\u002E';\n t['\\u248F'] = '\\u0038\\u002E';\n t['\\u2490'] = '\\u0039\\u002E';\n t['\\u2491'] = '\\u0031\\u0030\\u002E';\n t['\\u2492'] = '\\u0031\\u0031\\u002E';\n t['\\u2493'] = '\\u0031\\u0032\\u002E';\n t['\\u2494'] = '\\u0031\\u0033\\u002E';\n t['\\u2495'] = '\\u0031\\u0034\\u002E';\n t['\\u2496'] = '\\u0031\\u0035\\u002E';\n t['\\u2497'] = '\\u0031\\u0036\\u002E';\n t['\\u2498'] = '\\u0031\\u0037\\u002E';\n t['\\u2499'] = '\\u0031\\u0038\\u002E';\n t['\\u249A'] = '\\u0031\\u0039\\u002E';\n t['\\u249B'] = '\\u0032\\u0030\\u002E';\n t['\\u249C'] = '\\u0028\\u0061\\u0029';\n t['\\u249D'] = '\\u0028\\u0062\\u0029';\n t['\\u249E'] = '\\u0028\\u0063\\u0029';\n t['\\u249F'] = '\\u0028\\u0064\\u0029';\n t['\\u24A0'] = '\\u0028\\u0065\\u0029';\n t['\\u24A1'] = '\\u0028\\u0066\\u0029';\n t['\\u24A2'] = '\\u0028\\u0067\\u0029';\n t['\\u24A3'] = '\\u0028\\u0068\\u0029';\n t['\\u24A4'] = '\\u0028\\u0069\\u0029';\n t['\\u24A5'] = '\\u0028\\u006A\\u0029';\n t['\\u24A6'] = '\\u0028\\u006B\\u0029';\n t['\\u24A7'] = '\\u0028\\u006C\\u0029';\n t['\\u24A8'] = '\\u0028\\u006D\\u0029';\n t['\\u24A9'] = '\\u0028\\u006E\\u0029';\n t['\\u24AA'] = '\\u0028\\u006F\\u0029';\n t['\\u24AB'] = '\\u0028\\u0070\\u0029';\n t['\\u24AC'] = '\\u0028\\u0071\\u0029';\n t['\\u24AD'] = '\\u0028\\u0072\\u0029';\n t['\\u24AE'] = '\\u0028\\u0073\\u0029';\n t['\\u24AF'] = '\\u0028\\u0074\\u0029';\n t['\\u24B0'] = '\\u0028\\u0075\\u0029';\n t['\\u24B1'] = '\\u0028\\u0076\\u0029';\n t['\\u24B2'] = '\\u0028\\u0077\\u0029';\n t['\\u24B3'] = '\\u0028\\u0078\\u0029';\n t['\\u24B4'] = '\\u0028\\u0079\\u0029';\n t['\\u24B5'] = '\\u0028\\u007A\\u0029';\n t['\\u2A0C'] = '\\u222B\\u222B\\u222B\\u222B';\n t['\\u2A74'] = '\\u003A\\u003A\\u003D';\n t['\\u2A75'] = '\\u003D\\u003D';\n t['\\u2A76'] = '\\u003D\\u003D\\u003D';\n t['\\u2E9F'] = '\\u6BCD';\n t['\\u2EF3'] = '\\u9F9F';\n t['\\u2F00'] = '\\u4E00';\n t['\\u2F01'] = '\\u4E28';\n t['\\u2F02'] = '\\u4E36';\n t['\\u2F03'] = '\\u4E3F';\n t['\\u2F04'] = '\\u4E59';\n t['\\u2F05'] = '\\u4E85';\n t['\\u2F06'] = '\\u4E8C';\n t['\\u2F07'] = '\\u4EA0';\n t['\\u2F08'] = '\\u4EBA';\n t['\\u2F09'] = '\\u513F';\n t['\\u2F0A'] = '\\u5165';\n t['\\u2F0B'] = '\\u516B';\n t['\\u2F0C'] = '\\u5182';\n t['\\u2F0D'] = '\\u5196';\n t['\\u2F0E'] = '\\u51AB';\n t['\\u2F0F'] = '\\u51E0';\n t['\\u2F10'] = '\\u51F5';\n t['\\u2F11'] = '\\u5200';\n t['\\u2F12'] = '\\u529B';\n t['\\u2F13'] = '\\u52F9';\n t['\\u2F14'] = '\\u5315';\n t['\\u2F15'] = '\\u531A';\n t['\\u2F16'] = '\\u5338';\n t['\\u2F17'] = '\\u5341';\n t['\\u2F18'] = '\\u535C';\n t['\\u2F19'] = '\\u5369';\n t['\\u2F1A'] = '\\u5382';\n t['\\u2F1B'] = '\\u53B6';\n t['\\u2F1C'] = '\\u53C8';\n t['\\u2F1D'] = '\\u53E3';\n t['\\u2F1E'] = '\\u56D7';\n t['\\u2F1F'] = '\\u571F';\n t['\\u2F20'] = '\\u58EB';\n t['\\u2F21'] = '\\u5902';\n t['\\u2F22'] = '\\u590A';\n t['\\u2F23'] = '\\u5915';\n t['\\u2F24'] = '\\u5927';\n t['\\u2F25'] = '\\u5973';\n t['\\u2F26'] = '\\u5B50';\n t['\\u2F27'] = '\\u5B80';\n t['\\u2F28'] = '\\u5BF8';\n t['\\u2F29'] = '\\u5C0F';\n t['\\u2F2A'] = '\\u5C22';\n t['\\u2F2B'] = '\\u5C38';\n t['\\u2F2C'] = '\\u5C6E';\n t['\\u2F2D'] = '\\u5C71';\n t['\\u2F2E'] = '\\u5DDB';\n t['\\u2F2F'] = '\\u5DE5';\n t['\\u2F30'] = '\\u5DF1';\n t['\\u2F31'] = '\\u5DFE';\n t['\\u2F32'] = '\\u5E72';\n t['\\u2F33'] = '\\u5E7A';\n t['\\u2F34'] = '\\u5E7F';\n t['\\u2F35'] = '\\u5EF4';\n t['\\u2F36'] = '\\u5EFE';\n t['\\u2F37'] = '\\u5F0B';\n t['\\u2F38'] = '\\u5F13';\n t['\\u2F39'] = '\\u5F50';\n t['\\u2F3A'] = '\\u5F61';\n t['\\u2F3B'] = '\\u5F73';\n t['\\u2F3C'] = '\\u5FC3';\n t['\\u2F3D'] = '\\u6208';\n t['\\u2F3E'] = '\\u6236';\n t['\\u2F3F'] = '\\u624B';\n t['\\u2F40'] = '\\u652F';\n t['\\u2F41'] = '\\u6534';\n t['\\u2F42'] = '\\u6587';\n t['\\u2F43'] = '\\u6597';\n t['\\u2F44'] = '\\u65A4';\n t['\\u2F45'] = '\\u65B9';\n t['\\u2F46'] = '\\u65E0';\n t['\\u2F47'] = '\\u65E5';\n t['\\u2F48'] = '\\u66F0';\n t['\\u2F49'] = '\\u6708';\n t['\\u2F4A'] = '\\u6728';\n t['\\u2F4B'] = '\\u6B20';\n t['\\u2F4C'] = '\\u6B62';\n t['\\u2F4D'] = '\\u6B79';\n t['\\u2F4E'] = '\\u6BB3';\n t['\\u2F4F'] = '\\u6BCB';\n t['\\u2F50'] = '\\u6BD4';\n t['\\u2F51'] = '\\u6BDB';\n t['\\u2F52'] = '\\u6C0F';\n t['\\u2F53'] = '\\u6C14';\n t['\\u2F54'] = '\\u6C34';\n t['\\u2F55'] = '\\u706B';\n t['\\u2F56'] = '\\u722A';\n t['\\u2F57'] = '\\u7236';\n t['\\u2F58'] = '\\u723B';\n t['\\u2F59'] = '\\u723F';\n t['\\u2F5A'] = '\\u7247';\n t['\\u2F5B'] = '\\u7259';\n t['\\u2F5C'] = '\\u725B';\n t['\\u2F5D'] = '\\u72AC';\n t['\\u2F5E'] = '\\u7384';\n t['\\u2F5F'] = '\\u7389';\n t['\\u2F60'] = '\\u74DC';\n t['\\u2F61'] = '\\u74E6';\n t['\\u2F62'] = '\\u7518';\n t['\\u2F63'] = '\\u751F';\n t['\\u2F64'] = '\\u7528';\n t['\\u2F65'] = '\\u7530';\n t['\\u2F66'] = '\\u758B';\n t['\\u2F67'] = '\\u7592';\n t['\\u2F68'] = '\\u7676';\n t['\\u2F69'] = '\\u767D';\n t['\\u2F6A'] = '\\u76AE';\n t['\\u2F6B'] = '\\u76BF';\n t['\\u2F6C'] = '\\u76EE';\n t['\\u2F6D'] = '\\u77DB';\n t['\\u2F6E'] = '\\u77E2';\n t['\\u2F6F'] = '\\u77F3';\n t['\\u2F70'] = '\\u793A';\n t['\\u2F71'] = '\\u79B8';\n t['\\u2F72'] = '\\u79BE';\n t['\\u2F73'] = '\\u7A74';\n t['\\u2F74'] = '\\u7ACB';\n t['\\u2F75'] = '\\u7AF9';\n t['\\u2F76'] = '\\u7C73';\n t['\\u2F77'] = '\\u7CF8';\n t['\\u2F78'] = '\\u7F36';\n t['\\u2F79'] = '\\u7F51';\n t['\\u2F7A'] = '\\u7F8A';\n t['\\u2F7B'] = '\\u7FBD';\n t['\\u2F7C'] = '\\u8001';\n t['\\u2F7D'] = '\\u800C';\n t['\\u2F7E'] = '\\u8012';\n t['\\u2F7F'] = '\\u8033';\n t['\\u2F80'] = '\\u807F';\n t['\\u2F81'] = '\\u8089';\n t['\\u2F82'] = '\\u81E3';\n t['\\u2F83'] = '\\u81EA';\n t['\\u2F84'] = '\\u81F3';\n t['\\u2F85'] = '\\u81FC';\n t['\\u2F86'] = '\\u820C';\n t['\\u2F87'] = '\\u821B';\n t['\\u2F88'] = '\\u821F';\n t['\\u2F89'] = '\\u826E';\n t['\\u2F8A'] = '\\u8272';\n t['\\u2F8B'] = '\\u8278';\n t['\\u2F8C'] = '\\u864D';\n t['\\u2F8D'] = '\\u866B';\n t['\\u2F8E'] = '\\u8840';\n t['\\u2F8F'] = '\\u884C';\n t['\\u2F90'] = '\\u8863';\n t['\\u2F91'] = '\\u897E';\n t['\\u2F92'] = '\\u898B';\n t['\\u2F93'] = '\\u89D2';\n t['\\u2F94'] = '\\u8A00';\n t['\\u2F95'] = '\\u8C37';\n t['\\u2F96'] = '\\u8C46';\n t['\\u2F97'] = '\\u8C55';\n t['\\u2F98'] = '\\u8C78';\n t['\\u2F99'] = '\\u8C9D';\n t['\\u2F9A'] = '\\u8D64';\n t['\\u2F9B'] = '\\u8D70';\n t['\\u2F9C'] = '\\u8DB3';\n t['\\u2F9D'] = '\\u8EAB';\n t['\\u2F9E'] = '\\u8ECA';\n t['\\u2F9F'] = '\\u8F9B';\n t['\\u2FA0'] = '\\u8FB0';\n t['\\u2FA1'] = '\\u8FB5';\n t['\\u2FA2'] = '\\u9091';\n t['\\u2FA3'] = '\\u9149';\n t['\\u2FA4'] = '\\u91C6';\n t['\\u2FA5'] = '\\u91CC';\n t['\\u2FA6'] = '\\u91D1';\n t['\\u2FA7'] = '\\u9577';\n t['\\u2FA8'] = '\\u9580';\n t['\\u2FA9'] = '\\u961C';\n t['\\u2FAA'] = '\\u96B6';\n t['\\u2FAB'] = '\\u96B9';\n t['\\u2FAC'] = '\\u96E8';\n t['\\u2FAD'] = '\\u9751';\n t['\\u2FAE'] = '\\u975E';\n t['\\u2FAF'] = '\\u9762';\n t['\\u2FB0'] = '\\u9769';\n t['\\u2FB1'] = '\\u97CB';\n t['\\u2FB2'] = '\\u97ED';\n t['\\u2FB3'] = '\\u97F3';\n t['\\u2FB4'] = '\\u9801';\n t['\\u2FB5'] = '\\u98A8';\n t['\\u2FB6'] = '\\u98DB';\n t['\\u2FB7'] = '\\u98DF';\n t['\\u2FB8'] = '\\u9996';\n t['\\u2FB9'] = '\\u9999';\n t['\\u2FBA'] = '\\u99AC';\n t['\\u2FBB'] = '\\u9AA8';\n t['\\u2FBC'] = '\\u9AD8';\n t['\\u2FBD'] = '\\u9ADF';\n t['\\u2FBE'] = '\\u9B25';\n t['\\u2FBF'] = '\\u9B2F';\n t['\\u2FC0'] = '\\u9B32';\n t['\\u2FC1'] = '\\u9B3C';\n t['\\u2FC2'] = '\\u9B5A';\n t['\\u2FC3'] = '\\u9CE5';\n t['\\u2FC4'] = '\\u9E75';\n t['\\u2FC5'] = '\\u9E7F';\n t['\\u2FC6'] = '\\u9EA5';\n t['\\u2FC7'] = '\\u9EBB';\n t['\\u2FC8'] = '\\u9EC3';\n t['\\u2FC9'] = '\\u9ECD';\n t['\\u2FCA'] = '\\u9ED1';\n t['\\u2FCB'] = '\\u9EF9';\n t['\\u2FCC'] = '\\u9EFD';\n t['\\u2FCD'] = '\\u9F0E';\n t['\\u2FCE'] = '\\u9F13';\n t['\\u2FCF'] = '\\u9F20';\n t['\\u2FD0'] = '\\u9F3B';\n t['\\u2FD1'] = '\\u9F4A';\n t['\\u2FD2'] = '\\u9F52';\n t['\\u2FD3'] = '\\u9F8D';\n t['\\u2FD4'] = '\\u9F9C';\n t['\\u2FD5'] = '\\u9FA0';\n t['\\u3036'] = '\\u3012';\n t['\\u3038'] = '\\u5341';\n t['\\u3039'] = '\\u5344';\n t['\\u303A'] = '\\u5345';\n t['\\u309B'] = '\\u0020\\u3099';\n t['\\u309C'] = '\\u0020\\u309A';\n t['\\u3131'] = '\\u1100';\n t['\\u3132'] = '\\u1101';\n t['\\u3133'] = '\\u11AA';\n t['\\u3134'] = '\\u1102';\n t['\\u3135'] = '\\u11AC';\n t['\\u3136'] = '\\u11AD';\n t['\\u3137'] = '\\u1103';\n t['\\u3138'] = '\\u1104';\n t['\\u3139'] = '\\u1105';\n t['\\u313A'] = '\\u11B0';\n t['\\u313B'] = '\\u11B1';\n t['\\u313C'] = '\\u11B2';\n t['\\u313D'] = '\\u11B3';\n t['\\u313E'] = '\\u11B4';\n t['\\u313F'] = '\\u11B5';\n t['\\u3140'] = '\\u111A';\n t['\\u3141'] = '\\u1106';\n t['\\u3142'] = '\\u1107';\n t['\\u3143'] = '\\u1108';\n t['\\u3144'] = '\\u1121';\n t['\\u3145'] = '\\u1109';\n t['\\u3146'] = '\\u110A';\n t['\\u3147'] = '\\u110B';\n t['\\u3148'] = '\\u110C';\n t['\\u3149'] = '\\u110D';\n t['\\u314A'] = '\\u110E';\n t['\\u314B'] = '\\u110F';\n t['\\u314C'] = '\\u1110';\n t['\\u314D'] = '\\u1111';\n t['\\u314E'] = '\\u1112';\n t['\\u314F'] = '\\u1161';\n t['\\u3150'] = '\\u1162';\n t['\\u3151'] = '\\u1163';\n t['\\u3152'] = '\\u1164';\n t['\\u3153'] = '\\u1165';\n t['\\u3154'] = '\\u1166';\n t['\\u3155'] = '\\u1167';\n t['\\u3156'] = '\\u1168';\n t['\\u3157'] = '\\u1169';\n t['\\u3158'] = '\\u116A';\n t['\\u3159'] = '\\u116B';\n t['\\u315A'] = '\\u116C';\n t['\\u315B'] = '\\u116D';\n t['\\u315C'] = '\\u116E';\n t['\\u315D'] = '\\u116F';\n t['\\u315E'] = '\\u1170';\n t['\\u315F'] = '\\u1171';\n t['\\u3160'] = '\\u1172';\n t['\\u3161'] = '\\u1173';\n t['\\u3162'] = '\\u1174';\n t['\\u3163'] = '\\u1175';\n t['\\u3164'] = '\\u1160';\n t['\\u3165'] = '\\u1114';\n t['\\u3166'] = '\\u1115';\n t['\\u3167'] = '\\u11C7';\n t['\\u3168'] = '\\u11C8';\n t['\\u3169'] = '\\u11CC';\n t['\\u316A'] = '\\u11CE';\n t['\\u316B'] = '\\u11D3';\n t['\\u316C'] = '\\u11D7';\n t['\\u316D'] = '\\u11D9';\n t['\\u316E'] = '\\u111C';\n t['\\u316F'] = '\\u11DD';\n t['\\u3170'] = '\\u11DF';\n t['\\u3171'] = '\\u111D';\n t['\\u3172'] = '\\u111E';\n t['\\u3173'] = '\\u1120';\n t['\\u3174'] = '\\u1122';\n t['\\u3175'] = '\\u1123';\n t['\\u3176'] = '\\u1127';\n t['\\u3177'] = '\\u1129';\n t['\\u3178'] = '\\u112B';\n t['\\u3179'] = '\\u112C';\n t['\\u317A'] = '\\u112D';\n t['\\u317B'] = '\\u112E';\n t['\\u317C'] = '\\u112F';\n t['\\u317D'] = '\\u1132';\n t['\\u317E'] = '\\u1136';\n t['\\u317F'] = '\\u1140';\n t['\\u3180'] = '\\u1147';\n t['\\u3181'] = '\\u114C';\n t['\\u3182'] = '\\u11F1';\n t['\\u3183'] = '\\u11F2';\n t['\\u3184'] = '\\u1157';\n t['\\u3185'] = '\\u1158';\n t['\\u3186'] = '\\u1159';\n t['\\u3187'] = '\\u1184';\n t['\\u3188'] = '\\u1185';\n t['\\u3189'] = '\\u1188';\n t['\\u318A'] = '\\u1191';\n t['\\u318B'] = '\\u1192';\n t['\\u318C'] = '\\u1194';\n t['\\u318D'] = '\\u119E';\n t['\\u318E'] = '\\u11A1';\n t['\\u3200'] = '\\u0028\\u1100\\u0029';\n t['\\u3201'] = '\\u0028\\u1102\\u0029';\n t['\\u3202'] = '\\u0028\\u1103\\u0029';\n t['\\u3203'] = '\\u0028\\u1105\\u0029';\n t['\\u3204'] = '\\u0028\\u1106\\u0029';\n t['\\u3205'] = '\\u0028\\u1107\\u0029';\n t['\\u3206'] = '\\u0028\\u1109\\u0029';\n t['\\u3207'] = '\\u0028\\u110B\\u0029';\n t['\\u3208'] = '\\u0028\\u110C\\u0029';\n t['\\u3209'] = '\\u0028\\u110E\\u0029';\n t['\\u320A'] = '\\u0028\\u110F\\u0029';\n t['\\u320B'] = '\\u0028\\u1110\\u0029';\n t['\\u320C'] = '\\u0028\\u1111\\u0029';\n t['\\u320D'] = '\\u0028\\u1112\\u0029';\n t['\\u320E'] = '\\u0028\\u1100\\u1161\\u0029';\n t['\\u320F'] = '\\u0028\\u1102\\u1161\\u0029';\n t['\\u3210'] = '\\u0028\\u1103\\u1161\\u0029';\n t['\\u3211'] = '\\u0028\\u1105\\u1161\\u0029';\n t['\\u3212'] = '\\u0028\\u1106\\u1161\\u0029';\n t['\\u3213'] = '\\u0028\\u1107\\u1161\\u0029';\n t['\\u3214'] = '\\u0028\\u1109\\u1161\\u0029';\n t['\\u3215'] = '\\u0028\\u110B\\u1161\\u0029';\n t['\\u3216'] = '\\u0028\\u110C\\u1161\\u0029';\n t['\\u3217'] = '\\u0028\\u110E\\u1161\\u0029';\n t['\\u3218'] = '\\u0028\\u110F\\u1161\\u0029';\n t['\\u3219'] = '\\u0028\\u1110\\u1161\\u0029';\n t['\\u321A'] = '\\u0028\\u1111\\u1161\\u0029';\n t['\\u321B'] = '\\u0028\\u1112\\u1161\\u0029';\n t['\\u321C'] = '\\u0028\\u110C\\u116E\\u0029';\n t['\\u321D'] = '\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029';\n t['\\u321E'] = '\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029';\n t['\\u3220'] = '\\u0028\\u4E00\\u0029';\n t['\\u3221'] = '\\u0028\\u4E8C\\u0029';\n t['\\u3222'] = '\\u0028\\u4E09\\u0029';\n t['\\u3223'] = '\\u0028\\u56DB\\u0029';\n t['\\u3224'] = '\\u0028\\u4E94\\u0029';\n t['\\u3225'] = '\\u0028\\u516D\\u0029';\n t['\\u3226'] = '\\u0028\\u4E03\\u0029';\n t['\\u3227'] = '\\u0028\\u516B\\u0029';\n t['\\u3228'] = '\\u0028\\u4E5D\\u0029';\n t['\\u3229'] = '\\u0028\\u5341\\u0029';\n t['\\u322A'] = '\\u0028\\u6708\\u0029';\n t['\\u322B'] = '\\u0028\\u706B\\u0029';\n t['\\u322C'] = '\\u0028\\u6C34\\u0029';\n t['\\u322D'] = '\\u0028\\u6728\\u0029';\n t['\\u322E'] = '\\u0028\\u91D1\\u0029';\n t['\\u322F'] = '\\u0028\\u571F\\u0029';\n t['\\u3230'] = '\\u0028\\u65E5\\u0029';\n t['\\u3231'] = '\\u0028\\u682A\\u0029';\n t['\\u3232'] = '\\u0028\\u6709\\u0029';\n t['\\u3233'] = '\\u0028\\u793E\\u0029';\n t['\\u3234'] = '\\u0028\\u540D\\u0029';\n t['\\u3235'] = '\\u0028\\u7279\\u0029';\n t['\\u3236'] = '\\u0028\\u8CA1\\u0029';\n t['\\u3237'] = '\\u0028\\u795D\\u0029';\n t['\\u3238'] = '\\u0028\\u52B4\\u0029';\n t['\\u3239'] = '\\u0028\\u4EE3\\u0029';\n t['\\u323A'] = '\\u0028\\u547C\\u0029';\n t['\\u323B'] = '\\u0028\\u5B66\\u0029';\n t['\\u323C'] = '\\u0028\\u76E3\\u0029';\n t['\\u323D'] = '\\u0028\\u4F01\\u0029';\n t['\\u323E'] = '\\u0028\\u8CC7\\u0029';\n t['\\u323F'] = '\\u0028\\u5354\\u0029';\n t['\\u3240'] = '\\u0028\\u796D\\u0029';\n t['\\u3241'] = '\\u0028\\u4F11\\u0029';\n t['\\u3242'] = '\\u0028\\u81EA\\u0029';\n t['\\u3243'] = '\\u0028\\u81F3\\u0029';\n t['\\u32C0'] = '\\u0031\\u6708';\n t['\\u32C1'] = '\\u0032\\u6708';\n t['\\u32C2'] = '\\u0033\\u6708';\n t['\\u32C3'] = '\\u0034\\u6708';\n t['\\u32C4'] = '\\u0035\\u6708';\n t['\\u32C5'] = '\\u0036\\u6708';\n t['\\u32C6'] = '\\u0037\\u6708';\n t['\\u32C7'] = '\\u0038\\u6708';\n t['\\u32C8'] = '\\u0039\\u6708';\n t['\\u32C9'] = '\\u0031\\u0030\\u6708';\n t['\\u32CA'] = '\\u0031\\u0031\\u6708';\n t['\\u32CB'] = '\\u0031\\u0032\\u6708';\n t['\\u3358'] = '\\u0030\\u70B9';\n t['\\u3359'] = '\\u0031\\u70B9';\n t['\\u335A'] = '\\u0032\\u70B9';\n t['\\u335B'] = '\\u0033\\u70B9';\n t['\\u335C'] = '\\u0034\\u70B9';\n t['\\u335D'] = '\\u0035\\u70B9';\n t['\\u335E'] = '\\u0036\\u70B9';\n t['\\u335F'] = '\\u0037\\u70B9';\n t['\\u3360'] = '\\u0038\\u70B9';\n t['\\u3361'] = '\\u0039\\u70B9';\n t['\\u3362'] = '\\u0031\\u0030\\u70B9';\n t['\\u3363'] = '\\u0031\\u0031\\u70B9';\n t['\\u3364'] = '\\u0031\\u0032\\u70B9';\n t['\\u3365'] = '\\u0031\\u0033\\u70B9';\n t['\\u3366'] = '\\u0031\\u0034\\u70B9';\n t['\\u3367'] = '\\u0031\\u0035\\u70B9';\n t['\\u3368'] = '\\u0031\\u0036\\u70B9';\n t['\\u3369'] = '\\u0031\\u0037\\u70B9';\n t['\\u336A'] = '\\u0031\\u0038\\u70B9';\n t['\\u336B'] = '\\u0031\\u0039\\u70B9';\n t['\\u336C'] = '\\u0032\\u0030\\u70B9';\n t['\\u336D'] = '\\u0032\\u0031\\u70B9';\n t['\\u336E'] = '\\u0032\\u0032\\u70B9';\n t['\\u336F'] = '\\u0032\\u0033\\u70B9';\n t['\\u3370'] = '\\u0032\\u0034\\u70B9';\n t['\\u33E0'] = '\\u0031\\u65E5';\n t['\\u33E1'] = '\\u0032\\u65E5';\n t['\\u33E2'] = '\\u0033\\u65E5';\n t['\\u33E3'] = '\\u0034\\u65E5';\n t['\\u33E4'] = '\\u0035\\u65E5';\n t['\\u33E5'] = '\\u0036\\u65E5';\n t['\\u33E6'] = '\\u0037\\u65E5';\n t['\\u33E7'] = '\\u0038\\u65E5';\n t['\\u33E8'] = '\\u0039\\u65E5';\n t['\\u33E9'] = '\\u0031\\u0030\\u65E5';\n t['\\u33EA'] = '\\u0031\\u0031\\u65E5';\n t['\\u33EB'] = '\\u0031\\u0032\\u65E5';\n t['\\u33EC'] = '\\u0031\\u0033\\u65E5';\n t['\\u33ED'] = '\\u0031\\u0034\\u65E5';\n t['\\u33EE'] = '\\u0031\\u0035\\u65E5';\n t['\\u33EF'] = '\\u0031\\u0036\\u65E5';\n t['\\u33F0'] = '\\u0031\\u0037\\u65E5';\n t['\\u33F1'] = '\\u0031\\u0038\\u65E5';\n t['\\u33F2'] = '\\u0031\\u0039\\u65E5';\n t['\\u33F3'] = '\\u0032\\u0030\\u65E5';\n t['\\u33F4'] = '\\u0032\\u0031\\u65E5';\n t['\\u33F5'] = '\\u0032\\u0032\\u65E5';\n t['\\u33F6'] = '\\u0032\\u0033\\u65E5';\n t['\\u33F7'] = '\\u0032\\u0034\\u65E5';\n t['\\u33F8'] = '\\u0032\\u0035\\u65E5';\n t['\\u33F9'] = '\\u0032\\u0036\\u65E5';\n t['\\u33FA'] = '\\u0032\\u0037\\u65E5';\n t['\\u33FB'] = '\\u0032\\u0038\\u65E5';\n t['\\u33FC'] = '\\u0032\\u0039\\u65E5';\n t['\\u33FD'] = '\\u0033\\u0030\\u65E5';\n t['\\u33FE'] = '\\u0033\\u0031\\u65E5';\n t['\\uFB00'] = '\\u0066\\u0066';\n t['\\uFB01'] = '\\u0066\\u0069';\n t['\\uFB02'] = '\\u0066\\u006C';\n t['\\uFB03'] = '\\u0066\\u0066\\u0069';\n t['\\uFB04'] = '\\u0066\\u0066\\u006C';\n t['\\uFB05'] = '\\u017F\\u0074';\n t['\\uFB06'] = '\\u0073\\u0074';\n t['\\uFB13'] = '\\u0574\\u0576';\n t['\\uFB14'] = '\\u0574\\u0565';\n t['\\uFB15'] = '\\u0574\\u056B';\n t['\\uFB16'] = '\\u057E\\u0576';\n t['\\uFB17'] = '\\u0574\\u056D';\n t['\\uFB4F'] = '\\u05D0\\u05DC';\n t['\\uFB50'] = '\\u0671';\n t['\\uFB51'] = '\\u0671';\n t['\\uFB52'] = '\\u067B';\n t['\\uFB53'] = '\\u067B';\n t['\\uFB54'] = '\\u067B';\n t['\\uFB55'] = '\\u067B';\n t['\\uFB56'] = '\\u067E';\n t['\\uFB57'] = '\\u067E';\n t['\\uFB58'] = '\\u067E';\n t['\\uFB59'] = '\\u067E';\n t['\\uFB5A'] = '\\u0680';\n t['\\uFB5B'] = '\\u0680';\n t['\\uFB5C'] = '\\u0680';\n t['\\uFB5D'] = '\\u0680';\n t['\\uFB5E'] = '\\u067A';\n t['\\uFB5F'] = '\\u067A';\n t['\\uFB60'] = '\\u067A';\n t['\\uFB61'] = '\\u067A';\n t['\\uFB62'] = '\\u067F';\n t['\\uFB63'] = '\\u067F';\n t['\\uFB64'] = '\\u067F';\n t['\\uFB65'] = '\\u067F';\n t['\\uFB66'] = '\\u0679';\n t['\\uFB67'] = '\\u0679';\n t['\\uFB68'] = '\\u0679';\n t['\\uFB69'] = '\\u0679';\n t['\\uFB6A'] = '\\u06A4';\n t['\\uFB6B'] = '\\u06A4';\n t['\\uFB6C'] = '\\u06A4';\n t['\\uFB6D'] = '\\u06A4';\n t['\\uFB6E'] = '\\u06A6';\n t['\\uFB6F'] = '\\u06A6';\n t['\\uFB70'] = '\\u06A6';\n t['\\uFB71'] = '\\u06A6';\n t['\\uFB72'] = '\\u0684';\n t['\\uFB73'] = '\\u0684';\n t['\\uFB74'] = '\\u0684';\n t['\\uFB75'] = '\\u0684';\n t['\\uFB76'] = '\\u0683';\n t['\\uFB77'] = '\\u0683';\n t['\\uFB78'] = '\\u0683';\n t['\\uFB79'] = '\\u0683';\n t['\\uFB7A'] = '\\u0686';\n t['\\uFB7B'] = '\\u0686';\n t['\\uFB7C'] = '\\u0686';\n t['\\uFB7D'] = '\\u0686';\n t['\\uFB7E'] = '\\u0687';\n t['\\uFB7F'] = '\\u0687';\n t['\\uFB80'] = '\\u0687';\n t['\\uFB81'] = '\\u0687';\n t['\\uFB82'] = '\\u068D';\n t['\\uFB83'] = '\\u068D';\n t['\\uFB84'] = '\\u068C';\n t['\\uFB85'] = '\\u068C';\n t['\\uFB86'] = '\\u068E';\n t['\\uFB87'] = '\\u068E';\n t['\\uFB88'] = '\\u0688';\n t['\\uFB89'] = '\\u0688';\n t['\\uFB8A'] = '\\u0698';\n t['\\uFB8B'] = '\\u0698';\n t['\\uFB8C'] = '\\u0691';\n t['\\uFB8D'] = '\\u0691';\n t['\\uFB8E'] = '\\u06A9';\n t['\\uFB8F'] = '\\u06A9';\n t['\\uFB90'] = '\\u06A9';\n t['\\uFB91'] = '\\u06A9';\n t['\\uFB92'] = '\\u06AF';\n t['\\uFB93'] = '\\u06AF';\n t['\\uFB94'] = '\\u06AF';\n t['\\uFB95'] = '\\u06AF';\n t['\\uFB96'] = '\\u06B3';\n t['\\uFB97'] = '\\u06B3';\n t['\\uFB98'] = '\\u06B3';\n t['\\uFB99'] = '\\u06B3';\n t['\\uFB9A'] = '\\u06B1';\n t['\\uFB9B'] = '\\u06B1';\n t['\\uFB9C'] = '\\u06B1';\n t['\\uFB9D'] = '\\u06B1';\n t['\\uFB9E'] = '\\u06BA';\n t['\\uFB9F'] = '\\u06BA';\n t['\\uFBA0'] = '\\u06BB';\n t['\\uFBA1'] = '\\u06BB';\n t['\\uFBA2'] = '\\u06BB';\n t['\\uFBA3'] = '\\u06BB';\n t['\\uFBA4'] = '\\u06C0';\n t['\\uFBA5'] = '\\u06C0';\n t['\\uFBA6'] = '\\u06C1';\n t['\\uFBA7'] = '\\u06C1';\n t['\\uFBA8'] = '\\u06C1';\n t['\\uFBA9'] = '\\u06C1';\n t['\\uFBAA'] = '\\u06BE';\n t['\\uFBAB'] = '\\u06BE';\n t['\\uFBAC'] = '\\u06BE';\n t['\\uFBAD'] = '\\u06BE';\n t['\\uFBAE'] = '\\u06D2';\n t['\\uFBAF'] = '\\u06D2';\n t['\\uFBB0'] = '\\u06D3';\n t['\\uFBB1'] = '\\u06D3';\n t['\\uFBD3'] = '\\u06AD';\n t['\\uFBD4'] = '\\u06AD';\n t['\\uFBD5'] = '\\u06AD';\n t['\\uFBD6'] = '\\u06AD';\n t['\\uFBD7'] = '\\u06C7';\n t['\\uFBD8'] = '\\u06C7';\n t['\\uFBD9'] = '\\u06C6';\n t['\\uFBDA'] = '\\u06C6';\n t['\\uFBDB'] = '\\u06C8';\n t['\\uFBDC'] = '\\u06C8';\n t['\\uFBDD'] = '\\u0677';\n t['\\uFBDE'] = '\\u06CB';\n t['\\uFBDF'] = '\\u06CB';\n t['\\uFBE0'] = '\\u06C5';\n t['\\uFBE1'] = '\\u06C5';\n t['\\uFBE2'] = '\\u06C9';\n t['\\uFBE3'] = '\\u06C9';\n t['\\uFBE4'] = '\\u06D0';\n t['\\uFBE5'] = '\\u06D0';\n t['\\uFBE6'] = '\\u06D0';\n t['\\uFBE7'] = '\\u06D0';\n t['\\uFBE8'] = '\\u0649';\n t['\\uFBE9'] = '\\u0649';\n t['\\uFBEA'] = '\\u0626\\u0627';\n t['\\uFBEB'] = '\\u0626\\u0627';\n t['\\uFBEC'] = '\\u0626\\u06D5';\n t['\\uFBED'] = '\\u0626\\u06D5';\n t['\\uFBEE'] = '\\u0626\\u0648';\n t['\\uFBEF'] = '\\u0626\\u0648';\n t['\\uFBF0'] = '\\u0626\\u06C7';\n t['\\uFBF1'] = '\\u0626\\u06C7';\n t['\\uFBF2'] = '\\u0626\\u06C6';\n t['\\uFBF3'] = '\\u0626\\u06C6';\n t['\\uFBF4'] = '\\u0626\\u06C8';\n t['\\uFBF5'] = '\\u0626\\u06C8';\n t['\\uFBF6'] = '\\u0626\\u06D0';\n t['\\uFBF7'] = '\\u0626\\u06D0';\n t['\\uFBF8'] = '\\u0626\\u06D0';\n t['\\uFBF9'] = '\\u0626\\u0649';\n t['\\uFBFA'] = '\\u0626\\u0649';\n t['\\uFBFB'] = '\\u0626\\u0649';\n t['\\uFBFC'] = '\\u06CC';\n t['\\uFBFD'] = '\\u06CC';\n t['\\uFBFE'] = '\\u06CC';\n t['\\uFBFF'] = '\\u06CC';\n t['\\uFC00'] = '\\u0626\\u062C';\n t['\\uFC01'] = '\\u0626\\u062D';\n t['\\uFC02'] = '\\u0626\\u0645';\n t['\\uFC03'] = '\\u0626\\u0649';\n t['\\uFC04'] = '\\u0626\\u064A';\n t['\\uFC05'] = '\\u0628\\u062C';\n t['\\uFC06'] = '\\u0628\\u062D';\n t['\\uFC07'] = '\\u0628\\u062E';\n t['\\uFC08'] = '\\u0628\\u0645';\n t['\\uFC09'] = '\\u0628\\u0649';\n t['\\uFC0A'] = '\\u0628\\u064A';\n t['\\uFC0B'] = '\\u062A\\u062C';\n t['\\uFC0C'] = '\\u062A\\u062D';\n t['\\uFC0D'] = '\\u062A\\u062E';\n t['\\uFC0E'] = '\\u062A\\u0645';\n t['\\uFC0F'] = '\\u062A\\u0649';\n t['\\uFC10'] = '\\u062A\\u064A';\n t['\\uFC11'] = '\\u062B\\u062C';\n t['\\uFC12'] = '\\u062B\\u0645';\n t['\\uFC13'] = '\\u062B\\u0649';\n t['\\uFC14'] = '\\u062B\\u064A';\n t['\\uFC15'] = '\\u062C\\u062D';\n t['\\uFC16'] = '\\u062C\\u0645';\n t['\\uFC17'] = '\\u062D\\u062C';\n t['\\uFC18'] = '\\u062D\\u0645';\n t['\\uFC19'] = '\\u062E\\u062C';\n t['\\uFC1A'] = '\\u062E\\u062D';\n t['\\uFC1B'] = '\\u062E\\u0645';\n t['\\uFC1C'] = '\\u0633\\u062C';\n t['\\uFC1D'] = '\\u0633\\u062D';\n t['\\uFC1E'] = '\\u0633\\u062E';\n t['\\uFC1F'] = '\\u0633\\u0645';\n t['\\uFC20'] = '\\u0635\\u062D';\n t['\\uFC21'] = '\\u0635\\u0645';\n t['\\uFC22'] = '\\u0636\\u062C';\n t['\\uFC23'] = '\\u0636\\u062D';\n t['\\uFC24'] = '\\u0636\\u062E';\n t['\\uFC25'] = '\\u0636\\u0645';\n t['\\uFC26'] = '\\u0637\\u062D';\n t['\\uFC27'] = '\\u0637\\u0645';\n t['\\uFC28'] = '\\u0638\\u0645';\n t['\\uFC29'] = '\\u0639\\u062C';\n t['\\uFC2A'] = '\\u0639\\u0645';\n t['\\uFC2B'] = '\\u063A\\u062C';\n t['\\uFC2C'] = '\\u063A\\u0645';\n t['\\uFC2D'] = '\\u0641\\u062C';\n t['\\uFC2E'] = '\\u0641\\u062D';\n t['\\uFC2F'] = '\\u0641\\u062E';\n t['\\uFC30'] = '\\u0641\\u0645';\n t['\\uFC31'] = '\\u0641\\u0649';\n t['\\uFC32'] = '\\u0641\\u064A';\n t['\\uFC33'] = '\\u0642\\u062D';\n t['\\uFC34'] = '\\u0642\\u0645';\n t['\\uFC35'] = '\\u0642\\u0649';\n t['\\uFC36'] = '\\u0642\\u064A';\n t['\\uFC37'] = '\\u0643\\u0627';\n t['\\uFC38'] = '\\u0643\\u062C';\n t['\\uFC39'] = '\\u0643\\u062D';\n t['\\uFC3A'] = '\\u0643\\u062E';\n t['\\uFC3B'] = '\\u0643\\u0644';\n t['\\uFC3C'] = '\\u0643\\u0645';\n t['\\uFC3D'] = '\\u0643\\u0649';\n t['\\uFC3E'] = '\\u0643\\u064A';\n t['\\uFC3F'] = '\\u0644\\u062C';\n t['\\uFC40'] = '\\u0644\\u062D';\n t['\\uFC41'] = '\\u0644\\u062E';\n t['\\uFC42'] = '\\u0644\\u0645';\n t['\\uFC43'] = '\\u0644\\u0649';\n t['\\uFC44'] = '\\u0644\\u064A';\n t['\\uFC45'] = '\\u0645\\u062C';\n t['\\uFC46'] = '\\u0645\\u062D';\n t['\\uFC47'] = '\\u0645\\u062E';\n t['\\uFC48'] = '\\u0645\\u0645';\n t['\\uFC49'] = '\\u0645\\u0649';\n t['\\uFC4A'] = '\\u0645\\u064A';\n t['\\uFC4B'] = '\\u0646\\u062C';\n t['\\uFC4C'] = '\\u0646\\u062D';\n t['\\uFC4D'] = '\\u0646\\u062E';\n t['\\uFC4E'] = '\\u0646\\u0645';\n t['\\uFC4F'] = '\\u0646\\u0649';\n t['\\uFC50'] = '\\u0646\\u064A';\n t['\\uFC51'] = '\\u0647\\u062C';\n t['\\uFC52'] = '\\u0647\\u0645';\n t['\\uFC53'] = '\\u0647\\u0649';\n t['\\uFC54'] = '\\u0647\\u064A';\n t['\\uFC55'] = '\\u064A\\u062C';\n t['\\uFC56'] = '\\u064A\\u062D';\n t['\\uFC57'] = '\\u064A\\u062E';\n t['\\uFC58'] = '\\u064A\\u0645';\n t['\\uFC59'] = '\\u064A\\u0649';\n t['\\uFC5A'] = '\\u064A\\u064A';\n t['\\uFC5B'] = '\\u0630\\u0670';\n t['\\uFC5C'] = '\\u0631\\u0670';\n t['\\uFC5D'] = '\\u0649\\u0670';\n t['\\uFC5E'] = '\\u0020\\u064C\\u0651';\n t['\\uFC5F'] = '\\u0020\\u064D\\u0651';\n t['\\uFC60'] = '\\u0020\\u064E\\u0651';\n t['\\uFC61'] = '\\u0020\\u064F\\u0651';\n t['\\uFC62'] = '\\u0020\\u0650\\u0651';\n t['\\uFC63'] = '\\u0020\\u0651\\u0670';\n t['\\uFC64'] = '\\u0626\\u0631';\n t['\\uFC65'] = '\\u0626\\u0632';\n t['\\uFC66'] = '\\u0626\\u0645';\n t['\\uFC67'] = '\\u0626\\u0646';\n t['\\uFC68'] = '\\u0626\\u0649';\n t['\\uFC69'] = '\\u0626\\u064A';\n t['\\uFC6A'] = '\\u0628\\u0631';\n t['\\uFC6B'] = '\\u0628\\u0632';\n t['\\uFC6C'] = '\\u0628\\u0645';\n t['\\uFC6D'] = '\\u0628\\u0646';\n t['\\uFC6E'] = '\\u0628\\u0649';\n t['\\uFC6F'] = '\\u0628\\u064A';\n t['\\uFC70'] = '\\u062A\\u0631';\n t['\\uFC71'] = '\\u062A\\u0632';\n t['\\uFC72'] = '\\u062A\\u0645';\n t['\\uFC73'] = '\\u062A\\u0646';\n t['\\uFC74'] = '\\u062A\\u0649';\n t['\\uFC75'] = '\\u062A\\u064A';\n t['\\uFC76'] = '\\u062B\\u0631';\n t['\\uFC77'] = '\\u062B\\u0632';\n t['\\uFC78'] = '\\u062B\\u0645';\n t['\\uFC79'] = '\\u062B\\u0646';\n t['\\uFC7A'] = '\\u062B\\u0649';\n t['\\uFC7B'] = '\\u062B\\u064A';\n t['\\uFC7C'] = '\\u0641\\u0649';\n t['\\uFC7D'] = '\\u0641\\u064A';\n t['\\uFC7E'] = '\\u0642\\u0649';\n t['\\uFC7F'] = '\\u0642\\u064A';\n t['\\uFC80'] = '\\u0643\\u0627';\n t['\\uFC81'] = '\\u0643\\u0644';\n t['\\uFC82'] = '\\u0643\\u0645';\n t['\\uFC83'] = '\\u0643\\u0649';\n t['\\uFC84'] = '\\u0643\\u064A';\n t['\\uFC85'] = '\\u0644\\u0645';\n t['\\uFC86'] = '\\u0644\\u0649';\n t['\\uFC87'] = '\\u0644\\u064A';\n t['\\uFC88'] = '\\u0645\\u0627';\n t['\\uFC89'] = '\\u0645\\u0645';\n t['\\uFC8A'] = '\\u0646\\u0631';\n t['\\uFC8B'] = '\\u0646\\u0632';\n t['\\uFC8C'] = '\\u0646\\u0645';\n t['\\uFC8D'] = '\\u0646\\u0646';\n t['\\uFC8E'] = '\\u0646\\u0649';\n t['\\uFC8F'] = '\\u0646\\u064A';\n t['\\uFC90'] = '\\u0649\\u0670';\n t['\\uFC91'] = '\\u064A\\u0631';\n t['\\uFC92'] = '\\u064A\\u0632';\n t['\\uFC93'] = '\\u064A\\u0645';\n t['\\uFC94'] = '\\u064A\\u0646';\n t['\\uFC95'] = '\\u064A\\u0649';\n t['\\uFC96'] = '\\u064A\\u064A';\n t['\\uFC97'] = '\\u0626\\u062C';\n t['\\uFC98'] = '\\u0626\\u062D';\n t['\\uFC99'] = '\\u0626\\u062E';\n t['\\uFC9A'] = '\\u0626\\u0645';\n t['\\uFC9B'] = '\\u0626\\u0647';\n t['\\uFC9C'] = '\\u0628\\u062C';\n t['\\uFC9D'] = '\\u0628\\u062D';\n t['\\uFC9E'] = '\\u0628\\u062E';\n t['\\uFC9F'] = '\\u0628\\u0645';\n t['\\uFCA0'] = '\\u0628\\u0647';\n t['\\uFCA1'] = '\\u062A\\u062C';\n t['\\uFCA2'] = '\\u062A\\u062D';\n t['\\uFCA3'] = '\\u062A\\u062E';\n t['\\uFCA4'] = '\\u062A\\u0645';\n t['\\uFCA5'] = '\\u062A\\u0647';\n t['\\uFCA6'] = '\\u062B\\u0645';\n t['\\uFCA7'] = '\\u062C\\u062D';\n t['\\uFCA8'] = '\\u062C\\u0645';\n t['\\uFCA9'] = '\\u062D\\u062C';\n t['\\uFCAA'] = '\\u062D\\u0645';\n t['\\uFCAB'] = '\\u062E\\u062C';\n t['\\uFCAC'] = '\\u062E\\u0645';\n t['\\uFCAD'] = '\\u0633\\u062C';\n t['\\uFCAE'] = '\\u0633\\u062D';\n t['\\uFCAF'] = '\\u0633\\u062E';\n t['\\uFCB0'] = '\\u0633\\u0645';\n t['\\uFCB1'] = '\\u0635\\u062D';\n t['\\uFCB2'] = '\\u0635\\u062E';\n t['\\uFCB3'] = '\\u0635\\u0645';\n t['\\uFCB4'] = '\\u0636\\u062C';\n t['\\uFCB5'] = '\\u0636\\u062D';\n t['\\uFCB6'] = '\\u0636\\u062E';\n t['\\uFCB7'] = '\\u0636\\u0645';\n t['\\uFCB8'] = '\\u0637\\u062D';\n t['\\uFCB9'] = '\\u0638\\u0645';\n t['\\uFCBA'] = '\\u0639\\u062C';\n t['\\uFCBB'] = '\\u0639\\u0645';\n t['\\uFCBC'] = '\\u063A\\u062C';\n t['\\uFCBD'] = '\\u063A\\u0645';\n t['\\uFCBE'] = '\\u0641\\u062C';\n t['\\uFCBF'] = '\\u0641\\u062D';\n t['\\uFCC0'] = '\\u0641\\u062E';\n t['\\uFCC1'] = '\\u0641\\u0645';\n t['\\uFCC2'] = '\\u0642\\u062D';\n t['\\uFCC3'] = '\\u0642\\u0645';\n t['\\uFCC4'] = '\\u0643\\u062C';\n t['\\uFCC5'] = '\\u0643\\u062D';\n t['\\uFCC6'] = '\\u0643\\u062E';\n t['\\uFCC7'] = '\\u0643\\u0644';\n t['\\uFCC8'] = '\\u0643\\u0645';\n t['\\uFCC9'] = '\\u0644\\u062C';\n t['\\uFCCA'] = '\\u0644\\u062D';\n t['\\uFCCB'] = '\\u0644\\u062E';\n t['\\uFCCC'] = '\\u0644\\u0645';\n t['\\uFCCD'] = '\\u0644\\u0647';\n t['\\uFCCE'] = '\\u0645\\u062C';\n t['\\uFCCF'] = '\\u0645\\u062D';\n t['\\uFCD0'] = '\\u0645\\u062E';\n t['\\uFCD1'] = '\\u0645\\u0645';\n t['\\uFCD2'] = '\\u0646\\u062C';\n t['\\uFCD3'] = '\\u0646\\u062D';\n t['\\uFCD4'] = '\\u0646\\u062E';\n t['\\uFCD5'] = '\\u0646\\u0645';\n t['\\uFCD6'] = '\\u0646\\u0647';\n t['\\uFCD7'] = '\\u0647\\u062C';\n t['\\uFCD8'] = '\\u0647\\u0645';\n t['\\uFCD9'] = '\\u0647\\u0670';\n t['\\uFCDA'] = '\\u064A\\u062C';\n t['\\uFCDB'] = '\\u064A\\u062D';\n t['\\uFCDC'] = '\\u064A\\u062E';\n t['\\uFCDD'] = '\\u064A\\u0645';\n t['\\uFCDE'] = '\\u064A\\u0647';\n t['\\uFCDF'] = '\\u0626\\u0645';\n t['\\uFCE0'] = '\\u0626\\u0647';\n t['\\uFCE1'] = '\\u0628\\u0645';\n t['\\uFCE2'] = '\\u0628\\u0647';\n t['\\uFCE3'] = '\\u062A\\u0645';\n t['\\uFCE4'] = '\\u062A\\u0647';\n t['\\uFCE5'] = '\\u062B\\u0645';\n t['\\uFCE6'] = '\\u062B\\u0647';\n t['\\uFCE7'] = '\\u0633\\u0645';\n t['\\uFCE8'] = '\\u0633\\u0647';\n t['\\uFCE9'] = '\\u0634\\u0645';\n t['\\uFCEA'] = '\\u0634\\u0647';\n t['\\uFCEB'] = '\\u0643\\u0644';\n t['\\uFCEC'] = '\\u0643\\u0645';\n t['\\uFCED'] = '\\u0644\\u0645';\n t['\\uFCEE'] = '\\u0646\\u0645';\n t['\\uFCEF'] = '\\u0646\\u0647';\n t['\\uFCF0'] = '\\u064A\\u0645';\n t['\\uFCF1'] = '\\u064A\\u0647';\n t['\\uFCF2'] = '\\u0640\\u064E\\u0651';\n t['\\uFCF3'] = '\\u0640\\u064F\\u0651';\n t['\\uFCF4'] = '\\u0640\\u0650\\u0651';\n t['\\uFCF5'] = '\\u0637\\u0649';\n t['\\uFCF6'] = '\\u0637\\u064A';\n t['\\uFCF7'] = '\\u0639\\u0649';\n t['\\uFCF8'] = '\\u0639\\u064A';\n t['\\uFCF9'] = '\\u063A\\u0649';\n t['\\uFCFA'] = '\\u063A\\u064A';\n t['\\uFCFB'] = '\\u0633\\u0649';\n t['\\uFCFC'] = '\\u0633\\u064A';\n t['\\uFCFD'] = '\\u0634\\u0649';\n t['\\uFCFE'] = '\\u0634\\u064A';\n t['\\uFCFF'] = '\\u062D\\u0649';\n t['\\uFD00'] = '\\u062D\\u064A';\n t['\\uFD01'] = '\\u062C\\u0649';\n t['\\uFD02'] = '\\u062C\\u064A';\n t['\\uFD03'] = '\\u062E\\u0649';\n t['\\uFD04'] = '\\u062E\\u064A';\n t['\\uFD05'] = '\\u0635\\u0649';\n t['\\uFD06'] = '\\u0635\\u064A';\n t['\\uFD07'] = '\\u0636\\u0649';\n t['\\uFD08'] = '\\u0636\\u064A';\n t['\\uFD09'] = '\\u0634\\u062C';\n t['\\uFD0A'] = '\\u0634\\u062D';\n t['\\uFD0B'] = '\\u0634\\u062E';\n t['\\uFD0C'] = '\\u0634\\u0645';\n t['\\uFD0D'] = '\\u0634\\u0631';\n t['\\uFD0E'] = '\\u0633\\u0631';\n t['\\uFD0F'] = '\\u0635\\u0631';\n t['\\uFD10'] = '\\u0636\\u0631';\n t['\\uFD11'] = '\\u0637\\u0649';\n t['\\uFD12'] = '\\u0637\\u064A';\n t['\\uFD13'] = '\\u0639\\u0649';\n t['\\uFD14'] = '\\u0639\\u064A';\n t['\\uFD15'] = '\\u063A\\u0649';\n t['\\uFD16'] = '\\u063A\\u064A';\n t['\\uFD17'] = '\\u0633\\u0649';\n t['\\uFD18'] = '\\u0633\\u064A';\n t['\\uFD19'] = '\\u0634\\u0649';\n t['\\uFD1A'] = '\\u0634\\u064A';\n t['\\uFD1B'] = '\\u062D\\u0649';\n t['\\uFD1C'] = '\\u062D\\u064A';\n t['\\uFD1D'] = '\\u062C\\u0649';\n t['\\uFD1E'] = '\\u062C\\u064A';\n t['\\uFD1F'] = '\\u062E\\u0649';\n t['\\uFD20'] = '\\u062E\\u064A';\n t['\\uFD21'] = '\\u0635\\u0649';\n t['\\uFD22'] = '\\u0635\\u064A';\n t['\\uFD23'] = '\\u0636\\u0649';\n t['\\uFD24'] = '\\u0636\\u064A';\n t['\\uFD25'] = '\\u0634\\u062C';\n t['\\uFD26'] = '\\u0634\\u062D';\n t['\\uFD27'] = '\\u0634\\u062E';\n t['\\uFD28'] = '\\u0634\\u0645';\n t['\\uFD29'] = '\\u0634\\u0631';\n t['\\uFD2A'] = '\\u0633\\u0631';\n t['\\uFD2B'] = '\\u0635\\u0631';\n t['\\uFD2C'] = '\\u0636\\u0631';\n t['\\uFD2D'] = '\\u0634\\u062C';\n t['\\uFD2E'] = '\\u0634\\u062D';\n t['\\uFD2F'] = '\\u0634\\u062E';\n t['\\uFD30'] = '\\u0634\\u0645';\n t['\\uFD31'] = '\\u0633\\u0647';\n t['\\uFD32'] = '\\u0634\\u0647';\n t['\\uFD33'] = '\\u0637\\u0645';\n t['\\uFD34'] = '\\u0633\\u062C';\n t['\\uFD35'] = '\\u0633\\u062D';\n t['\\uFD36'] = '\\u0633\\u062E';\n t['\\uFD37'] = '\\u0634\\u062C';\n t['\\uFD38'] = '\\u0634\\u062D';\n t['\\uFD39'] = '\\u0634\\u062E';\n t['\\uFD3A'] = '\\u0637\\u0645';\n t['\\uFD3B'] = '\\u0638\\u0645';\n t['\\uFD3C'] = '\\u0627\\u064B';\n t['\\uFD3D'] = '\\u0627\\u064B';\n t['\\uFD50'] = '\\u062A\\u062C\\u0645';\n t['\\uFD51'] = '\\u062A\\u062D\\u062C';\n t['\\uFD52'] = '\\u062A\\u062D\\u062C';\n t['\\uFD53'] = '\\u062A\\u062D\\u0645';\n t['\\uFD54'] = '\\u062A\\u062E\\u0645';\n t['\\uFD55'] = '\\u062A\\u0645\\u062C';\n t['\\uFD56'] = '\\u062A\\u0645\\u062D';\n t['\\uFD57'] = '\\u062A\\u0645\\u062E';\n t['\\uFD58'] = '\\u062C\\u0645\\u062D';\n t['\\uFD59'] = '\\u062C\\u0645\\u062D';\n t['\\uFD5A'] = '\\u062D\\u0645\\u064A';\n t['\\uFD5B'] = '\\u062D\\u0645\\u0649';\n t['\\uFD5C'] = '\\u0633\\u062D\\u062C';\n t['\\uFD5D'] = '\\u0633\\u062C\\u062D';\n t['\\uFD5E'] = '\\u0633\\u062C\\u0649';\n t['\\uFD5F'] = '\\u0633\\u0645\\u062D';\n t['\\uFD60'] = '\\u0633\\u0645\\u062D';\n t['\\uFD61'] = '\\u0633\\u0645\\u062C';\n t['\\uFD62'] = '\\u0633\\u0645\\u0645';\n t['\\uFD63'] = '\\u0633\\u0645\\u0645';\n t['\\uFD64'] = '\\u0635\\u062D\\u062D';\n t['\\uFD65'] = '\\u0635\\u062D\\u062D';\n t['\\uFD66'] = '\\u0635\\u0645\\u0645';\n t['\\uFD67'] = '\\u0634\\u062D\\u0645';\n t['\\uFD68'] = '\\u0634\\u062D\\u0645';\n t['\\uFD69'] = '\\u0634\\u062C\\u064A';\n t['\\uFD6A'] = '\\u0634\\u0645\\u062E';\n t['\\uFD6B'] = '\\u0634\\u0645\\u062E';\n t['\\uFD6C'] = '\\u0634\\u0645\\u0645';\n t['\\uFD6D'] = '\\u0634\\u0645\\u0645';\n t['\\uFD6E'] = '\\u0636\\u062D\\u0649';\n t['\\uFD6F'] = '\\u0636\\u062E\\u0645';\n t['\\uFD70'] = '\\u0636\\u062E\\u0645';\n t['\\uFD71'] = '\\u0637\\u0645\\u062D';\n t['\\uFD72'] = '\\u0637\\u0645\\u062D';\n t['\\uFD73'] = '\\u0637\\u0645\\u0645';\n t['\\uFD74'] = '\\u0637\\u0645\\u064A';\n t['\\uFD75'] = '\\u0639\\u062C\\u0645';\n t['\\uFD76'] = '\\u0639\\u0645\\u0645';\n t['\\uFD77'] = '\\u0639\\u0645\\u0645';\n t['\\uFD78'] = '\\u0639\\u0645\\u0649';\n t['\\uFD79'] = '\\u063A\\u0645\\u0645';\n t['\\uFD7A'] = '\\u063A\\u0645\\u064A';\n t['\\uFD7B'] = '\\u063A\\u0645\\u0649';\n t['\\uFD7C'] = '\\u0641\\u062E\\u0645';\n t['\\uFD7D'] = '\\u0641\\u062E\\u0645';\n t['\\uFD7E'] = '\\u0642\\u0645\\u062D';\n t['\\uFD7F'] = '\\u0642\\u0645\\u0645';\n t['\\uFD80'] = '\\u0644\\u062D\\u0645';\n t['\\uFD81'] = '\\u0644\\u062D\\u064A';\n t['\\uFD82'] = '\\u0644\\u062D\\u0649';\n t['\\uFD83'] = '\\u0644\\u062C\\u062C';\n t['\\uFD84'] = '\\u0644\\u062C\\u062C';\n t['\\uFD85'] = '\\u0644\\u062E\\u0645';\n t['\\uFD86'] = '\\u0644\\u062E\\u0645';\n t['\\uFD87'] = '\\u0644\\u0645\\u062D';\n t['\\uFD88'] = '\\u0644\\u0645\\u062D';\n t['\\uFD89'] = '\\u0645\\u062D\\u062C';\n t['\\uFD8A'] = '\\u0645\\u062D\\u0645';\n t['\\uFD8B'] = '\\u0645\\u062D\\u064A';\n t['\\uFD8C'] = '\\u0645\\u062C\\u062D';\n t['\\uFD8D'] = '\\u0645\\u062C\\u0645';\n t['\\uFD8E'] = '\\u0645\\u062E\\u062C';\n t['\\uFD8F'] = '\\u0645\\u062E\\u0645';\n t['\\uFD92'] = '\\u0645\\u062C\\u062E';\n t['\\uFD93'] = '\\u0647\\u0645\\u062C';\n t['\\uFD94'] = '\\u0647\\u0645\\u0645';\n t['\\uFD95'] = '\\u0646\\u062D\\u0645';\n t['\\uFD96'] = '\\u0646\\u062D\\u0649';\n t['\\uFD97'] = '\\u0646\\u062C\\u0645';\n t['\\uFD98'] = '\\u0646\\u062C\\u0645';\n t['\\uFD99'] = '\\u0646\\u062C\\u0649';\n t['\\uFD9A'] = '\\u0646\\u0645\\u064A';\n t['\\uFD9B'] = '\\u0646\\u0645\\u0649';\n t['\\uFD9C'] = '\\u064A\\u0645\\u0645';\n t['\\uFD9D'] = '\\u064A\\u0645\\u0645';\n t['\\uFD9E'] = '\\u0628\\u062E\\u064A';\n t['\\uFD9F'] = '\\u062A\\u062C\\u064A';\n t['\\uFDA0'] = '\\u062A\\u062C\\u0649';\n t['\\uFDA1'] = '\\u062A\\u062E\\u064A';\n t['\\uFDA2'] = '\\u062A\\u062E\\u0649';\n t['\\uFDA3'] = '\\u062A\\u0645\\u064A';\n t['\\uFDA4'] = '\\u062A\\u0645\\u0649';\n t['\\uFDA5'] = '\\u062C\\u0645\\u064A';\n t['\\uFDA6'] = '\\u062C\\u062D\\u0649';\n t['\\uFDA7'] = '\\u062C\\u0645\\u0649';\n t['\\uFDA8'] = '\\u0633\\u062E\\u0649';\n t['\\uFDA9'] = '\\u0635\\u062D\\u064A';\n t['\\uFDAA'] = '\\u0634\\u062D\\u064A';\n t['\\uFDAB'] = '\\u0636\\u062D\\u064A';\n t['\\uFDAC'] = '\\u0644\\u062C\\u064A';\n t['\\uFDAD'] = '\\u0644\\u0645\\u064A';\n t['\\uFDAE'] = '\\u064A\\u062D\\u064A';\n t['\\uFDAF'] = '\\u064A\\u062C\\u064A';\n t['\\uFDB0'] = '\\u064A\\u0645\\u064A';\n t['\\uFDB1'] = '\\u0645\\u0645\\u064A';\n t['\\uFDB2'] = '\\u0642\\u0645\\u064A';\n t['\\uFDB3'] = '\\u0646\\u062D\\u064A';\n t['\\uFDB4'] = '\\u0642\\u0645\\u062D';\n t['\\uFDB5'] = '\\u0644\\u062D\\u0645';\n t['\\uFDB6'] = '\\u0639\\u0645\\u064A';\n t['\\uFDB7'] = '\\u0643\\u0645\\u064A';\n t['\\uFDB8'] = '\\u0646\\u062C\\u062D';\n t['\\uFDB9'] = '\\u0645\\u062E\\u064A';\n t['\\uFDBA'] = '\\u0644\\u062C\\u0645';\n t['\\uFDBB'] = '\\u0643\\u0645\\u0645';\n t['\\uFDBC'] = '\\u0644\\u062C\\u0645';\n t['\\uFDBD'] = '\\u0646\\u062C\\u062D';\n t['\\uFDBE'] = '\\u062C\\u062D\\u064A';\n t['\\uFDBF'] = '\\u062D\\u062C\\u064A';\n t['\\uFDC0'] = '\\u0645\\u062C\\u064A';\n t['\\uFDC1'] = '\\u0641\\u0645\\u064A';\n t['\\uFDC2'] = '\\u0628\\u062D\\u064A';\n t['\\uFDC3'] = '\\u0643\\u0645\\u0645';\n t['\\uFDC4'] = '\\u0639\\u062C\\u0645';\n t['\\uFDC5'] = '\\u0635\\u0645\\u0645';\n t['\\uFDC6'] = '\\u0633\\u062E\\u064A';\n t['\\uFDC7'] = '\\u0646\\u062C\\u064A';\n t['\\uFE49'] = '\\u203E';\n t['\\uFE4A'] = '\\u203E';\n t['\\uFE4B'] = '\\u203E';\n t['\\uFE4C'] = '\\u203E';\n t['\\uFE4D'] = '\\u005F';\n t['\\uFE4E'] = '\\u005F';\n t['\\uFE4F'] = '\\u005F';\n t['\\uFE80'] = '\\u0621';\n t['\\uFE81'] = '\\u0622';\n t['\\uFE82'] = '\\u0622';\n t['\\uFE83'] = '\\u0623';\n t['\\uFE84'] = '\\u0623';\n t['\\uFE85'] = '\\u0624';\n t['\\uFE86'] = '\\u0624';\n t['\\uFE87'] = '\\u0625';\n t['\\uFE88'] = '\\u0625';\n t['\\uFE89'] = '\\u0626';\n t['\\uFE8A'] = '\\u0626';\n t['\\uFE8B'] = '\\u0626';\n t['\\uFE8C'] = '\\u0626';\n t['\\uFE8D'] = '\\u0627';\n t['\\uFE8E'] = '\\u0627';\n t['\\uFE8F'] = '\\u0628';\n t['\\uFE90'] = '\\u0628';\n t['\\uFE91'] = '\\u0628';\n t['\\uFE92'] = '\\u0628';\n t['\\uFE93'] = '\\u0629';\n t['\\uFE94'] = '\\u0629';\n t['\\uFE95'] = '\\u062A';\n t['\\uFE96'] = '\\u062A';\n t['\\uFE97'] = '\\u062A';\n t['\\uFE98'] = '\\u062A';\n t['\\uFE99'] = '\\u062B';\n t['\\uFE9A'] = '\\u062B';\n t['\\uFE9B'] = '\\u062B';\n t['\\uFE9C'] = '\\u062B';\n t['\\uFE9D'] = '\\u062C';\n t['\\uFE9E'] = '\\u062C';\n t['\\uFE9F'] = '\\u062C';\n t['\\uFEA0'] = '\\u062C';\n t['\\uFEA1'] = '\\u062D';\n t['\\uFEA2'] = '\\u062D';\n t['\\uFEA3'] = '\\u062D';\n t['\\uFEA4'] = '\\u062D';\n t['\\uFEA5'] = '\\u062E';\n t['\\uFEA6'] = '\\u062E';\n t['\\uFEA7'] = '\\u062E';\n t['\\uFEA8'] = '\\u062E';\n t['\\uFEA9'] = '\\u062F';\n t['\\uFEAA'] = '\\u062F';\n t['\\uFEAB'] = '\\u0630';\n t['\\uFEAC'] = '\\u0630';\n t['\\uFEAD'] = '\\u0631';\n t['\\uFEAE'] = '\\u0631';\n t['\\uFEAF'] = '\\u0632';\n t['\\uFEB0'] = '\\u0632';\n t['\\uFEB1'] = '\\u0633';\n t['\\uFEB2'] = '\\u0633';\n t['\\uFEB3'] = '\\u0633';\n t['\\uFEB4'] = '\\u0633';\n t['\\uFEB5'] = '\\u0634';\n t['\\uFEB6'] = '\\u0634';\n t['\\uFEB7'] = '\\u0634';\n t['\\uFEB8'] = '\\u0634';\n t['\\uFEB9'] = '\\u0635';\n t['\\uFEBA'] = '\\u0635';\n t['\\uFEBB'] = '\\u0635';\n t['\\uFEBC'] = '\\u0635';\n t['\\uFEBD'] = '\\u0636';\n t['\\uFEBE'] = '\\u0636';\n t['\\uFEBF'] = '\\u0636';\n t['\\uFEC0'] = '\\u0636';\n t['\\uFEC1'] = '\\u0637';\n t['\\uFEC2'] = '\\u0637';\n t['\\uFEC3'] = '\\u0637';\n t['\\uFEC4'] = '\\u0637';\n t['\\uFEC5'] = '\\u0638';\n t['\\uFEC6'] = '\\u0638';\n t['\\uFEC7'] = '\\u0638';\n t['\\uFEC8'] = '\\u0638';\n t['\\uFEC9'] = '\\u0639';\n t['\\uFECA'] = '\\u0639';\n t['\\uFECB'] = '\\u0639';\n t['\\uFECC'] = '\\u0639';\n t['\\uFECD'] = '\\u063A';\n t['\\uFECE'] = '\\u063A';\n t['\\uFECF'] = '\\u063A';\n t['\\uFED0'] = '\\u063A';\n t['\\uFED1'] = '\\u0641';\n t['\\uFED2'] = '\\u0641';\n t['\\uFED3'] = '\\u0641';\n t['\\uFED4'] = '\\u0641';\n t['\\uFED5'] = '\\u0642';\n t['\\uFED6'] = '\\u0642';\n t['\\uFED7'] = '\\u0642';\n t['\\uFED8'] = '\\u0642';\n t['\\uFED9'] = '\\u0643';\n t['\\uFEDA'] = '\\u0643';\n t['\\uFEDB'] = '\\u0643';\n t['\\uFEDC'] = '\\u0643';\n t['\\uFEDD'] = '\\u0644';\n t['\\uFEDE'] = '\\u0644';\n t['\\uFEDF'] = '\\u0644';\n t['\\uFEE0'] = '\\u0644';\n t['\\uFEE1'] = '\\u0645';\n t['\\uFEE2'] = '\\u0645';\n t['\\uFEE3'] = '\\u0645';\n t['\\uFEE4'] = '\\u0645';\n t['\\uFEE5'] = '\\u0646';\n t['\\uFEE6'] = '\\u0646';\n t['\\uFEE7'] = '\\u0646';\n t['\\uFEE8'] = '\\u0646';\n t['\\uFEE9'] = '\\u0647';\n t['\\uFEEA'] = '\\u0647';\n t['\\uFEEB'] = '\\u0647';\n t['\\uFEEC'] = '\\u0647';\n t['\\uFEED'] = '\\u0648';\n t['\\uFEEE'] = '\\u0648';\n t['\\uFEEF'] = '\\u0649';\n t['\\uFEF0'] = '\\u0649';\n t['\\uFEF1'] = '\\u064A';\n t['\\uFEF2'] = '\\u064A';\n t['\\uFEF3'] = '\\u064A';\n t['\\uFEF4'] = '\\u064A';\n t['\\uFEF5'] = '\\u0644\\u0622';\n t['\\uFEF6'] = '\\u0644\\u0622';\n t['\\uFEF7'] = '\\u0644\\u0623';\n t['\\uFEF8'] = '\\u0644\\u0623';\n t['\\uFEF9'] = '\\u0644\\u0625';\n t['\\uFEFA'] = '\\u0644\\u0625';\n t['\\uFEFB'] = '\\u0644\\u0627';\n t['\\uFEFC'] = '\\u0644\\u0627';\n});\nfunction reverseIfRtl(chars) {\n var charsLength = chars.length;\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n return chars;\n }\n var s = '';\n for (var ii = charsLength - 1; ii >= 0; ii--) {\n s += chars[ii];\n }\n return s;\n}\nexports.mapSpecialUnicodeValues = mapSpecialUnicodeValues;\nexports.reverseIfRtl = reverseIfRtl;\nexports.getUnicodeRangeFor = getUnicodeRangeFor;\nexports.getNormalizedUnicodes = getNormalizedUnicodes;\nexports.getUnicodeForGlyph = getUnicodeForGlyph;\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontRendererFactory = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cff_parser = __w_pdfjs_require__(157);\n\nvar _glyphlist = __w_pdfjs_require__(160);\n\nvar _encodings = __w_pdfjs_require__(159);\n\nvar _stream = __w_pdfjs_require__(140);\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar FontRendererFactory = function FontRendererFactoryClosure() {\n function getLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n }\n function getUshort(data, offset) {\n return data[offset] << 8 | data[offset + 1];\n }\n function parseCmap(data, start, end) {\n var offset = getUshort(data, start + 2) === 1 ? getLong(data, start + 8) : getLong(data, start + 16);\n var format = getUshort(data, start + offset);\n var ranges, p, i;\n if (format === 4) {\n getUshort(data, start + offset + 2);\n var segCount = getUshort(data, start + offset + 6) >> 1;\n p = start + offset + 14;\n ranges = [];\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i] = { end: getUshort(data, p) };\n }\n p += 2;\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].start = getUshort(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].idDelta = getUshort(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n var idOffset = getUshort(data, p);\n if (idOffset === 0) {\n continue;\n }\n ranges[i].ids = [];\n for (var j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n ranges[i].ids[j] = getUshort(data, p + idOffset);\n idOffset += 2;\n }\n }\n return ranges;\n } else if (format === 12) {\n getLong(data, start + offset + 4);\n var groups = getLong(data, start + offset + 12);\n p = start + offset + 16;\n ranges = [];\n for (i = 0; i < groups; i++) {\n ranges.push({\n start: getLong(data, p),\n end: getLong(data, p + 4),\n idDelta: getLong(data, p + 8) - getLong(data, p)\n });\n p += 12;\n }\n return ranges;\n }\n throw new _util.FormatError('unsupported cmap: ' + format);\n }\n function parseCff(data, start, end, seacAnalysisEnabled) {\n var properties = {};\n var parser = new _cff_parser.CFFParser(new _stream.Stream(data, start, end - start), properties, seacAnalysisEnabled);\n var cff = parser.parse();\n return {\n glyphs: cff.charStrings.objects,\n subrs: cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex && cff.topDict.privateDict.subrsIndex.objects,\n gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects,\n isCFFCIDFont: cff.isCIDFont,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray\n };\n }\n function parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n var itemSize, itemDecode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\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 itemDecode = function fontItemDecode(data, offset) {\n return data[offset] << 9 | data[offset + 1] << 1;\n };\n }\n var glyphs = [];\n var startOffset = itemDecode(loca, 0);\n for (var j = itemSize; j < loca.length; j += itemSize) {\n var endOffset = itemDecode(loca, j);\n glyphs.push(glyf.subarray(startOffset, endOffset));\n startOffset = endOffset;\n }\n return glyphs;\n }\n function lookupCmap(ranges, unicode) {\n var code = unicode.codePointAt(0),\n gid = 0;\n var l = 0,\n r = ranges.length - 1;\n while (l < r) {\n var c = l + r + 1 >> 1;\n if (code < ranges[c].start) {\n r = c - 1;\n } else {\n l = c;\n }\n }\n if (ranges[l].start <= code && code <= ranges[l].end) {\n gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xFFFF;\n }\n return {\n charCode: code,\n glyphId: gid\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 function lineTo(x, y) {\n cmds.push({\n cmd: 'lineTo',\n args: [x, y]\n });\n }\n function quadraticCurveTo(xa, ya, x, y) {\n cmds.push({\n cmd: 'quadraticCurveTo',\n args: [xa, ya, x, y]\n });\n }\n var i = 0;\n var numberOfContours = (code[i] << 24 | code[i + 1] << 16) >> 16;\n var flags;\n var x = 0,\n y = 0;\n i += 10;\n if (numberOfContours < 0) {\n do {\n flags = code[i] << 8 | code[i + 1];\n var glyphIndex = code[i + 2] << 8 | code[i + 3];\n i += 4;\n var arg1, arg2;\n if (flags & 0x01) {\n arg1 = (code[i] << 24 | code[i + 1] << 16) >> 16;\n arg2 = (code[i + 2] << 24 | code[i + 3] << 16) >> 16;\n i += 4;\n } else {\n arg1 = code[i++];\n arg2 = code[i++];\n }\n if (flags & 0x02) {\n x = arg1;\n y = arg2;\n } else {\n x = 0;\n y = 0;\n }\n var scaleX = 1,\n scaleY = 1,\n scale01 = 0,\n scale10 = 0;\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 var subglyph = font.glyphs[glyphIndex];\n if (subglyph) {\n cmds.push({ cmd: 'save' });\n cmds.push({\n cmd: 'transform',\n args: [scaleX, scale01, scale10, scaleY, x, y]\n });\n compileGlyf(subglyph, cmds, font);\n cmds.push({ cmd: 'restore' });\n }\n } while (flags & 0x20);\n } else {\n var endPtsOfContours = [];\n var j, jj;\n for (j = 0; j < numberOfContours; j++) {\n endPtsOfContours.push(code[i] << 8 | code[i + 1]);\n i += 2;\n }\n var instructionLength = code[i] << 8 | code[i + 1];\n i += 2 + instructionLength;\n var numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n var points = [];\n while (points.length < numberOfPoints) {\n flags = code[i++];\n var repeat = 1;\n if (flags & 0x08) {\n repeat += code[i++];\n }\n while (repeat-- > 0) {\n points.push({ flags: flags });\n }\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x12) {\n case 0x00:\n x += (code[i] << 24 | code[i + 1] << 16) >> 16;\n i += 2;\n break;\n case 0x02:\n x -= code[i++];\n break;\n case 0x12:\n x += code[i++];\n break;\n }\n points[j].x = x;\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x24) {\n case 0x00:\n y += (code[i] << 24 | code[i + 1] << 16) >> 16;\n i += 2;\n break;\n case 0x04:\n y -= code[i++];\n break;\n case 0x24:\n y += code[i++];\n break;\n }\n points[j].y = y;\n }\n var startPoint = 0;\n for (i = 0; i < numberOfContours; i++) {\n var endPoint = endPtsOfContours[i];\n var contour = points.slice(startPoint, endPoint + 1);\n if (contour[0].flags & 1) {\n contour.push(contour[0]);\n } else if (contour[contour.length - 1].flags & 1) {\n contour.unshift(contour[contour.length - 1]);\n } else {\n var p = {\n flags: 1,\n x: (contour[0].x + contour[contour.length - 1].x) / 2,\n y: (contour[0].y + contour[contour.length - 1].y) / 2\n };\n contour.unshift(p);\n contour.push(p);\n }\n moveTo(contour[0].x, contour[0].y);\n for (j = 1, jj = contour.length; j < jj; j++) {\n if (contour[j].flags & 1) {\n lineTo(contour[j].x, contour[j].y);\n } else if (contour[j + 1].flags & 1) {\n quadraticCurveTo(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 startPoint = endPoint + 1;\n }\n }\n }\n function compileCharString(code, cmds, font, glyphId) {\n var stack = [];\n var x = 0,\n y = 0;\n var stems = 0;\n function moveTo(x, y) {\n cmds.push({\n cmd: 'moveTo',\n args: [x, y]\n });\n }\n function lineTo(x, y) {\n cmds.push({\n cmd: 'lineTo',\n args: [x, y]\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 function parse(code) {\n var i = 0;\n while (i < code.length) {\n var stackClean = false;\n var v = code[i++];\n var xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n switch (v) {\n case 1:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 3:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 4:\n y += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 5:\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 6:\n while (stack.length > 0) {\n x += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 7:\n while (stack.length > 0) {\n y += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n x += stack.shift();\n lineTo(x, y);\n }\n break;\n case 8:\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 10:\n n = stack.pop();\n subrCode = null;\n if (font.isCFFCIDFont) {\n var fdIndex = font.fdSelect.getFDIndex(glyphId);\n if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n var fontDict = font.fdArray[fdIndex],\n subrs = void 0;\n if (fontDict.privateDict && fontDict.privateDict.subrsIndex) {\n subrs = fontDict.privateDict.subrsIndex.objects;\n }\n if (subrs) {\n var numSubrs = subrs.length;\n n += numSubrs < 1240 ? 107 : numSubrs < 33900 ? 1131 : 32768;\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 if (subrCode) {\n parse(subrCode);\n }\n break;\n case 11:\n return;\n case 12:\n v = code[i++];\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 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 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 case 37:\n var x0 = x,\n y0 = y;\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb;\n if (Math.abs(x - x0) > Math.abs(y - y0)) {\n x += stack.shift();\n } else {\n y += stack.shift();\n }\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n default:\n throw new _util.FormatError('unknown operator: 12 ' + v);\n }\n break;\n case 14:\n if (stack.length >= 4) {\n var achar = stack.pop();\n var bchar = stack.pop();\n y = stack.pop();\n x = stack.pop();\n cmds.push({ cmd: 'save' });\n cmds.push({\n cmd: 'translate',\n args: [x, y]\n });\n var cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[achar]]));\n compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n cmds.push({ cmd: 'restore' });\n cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[bchar]]));\n compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n }\n return;\n case 18:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 19:\n stems += stack.length >> 1;\n i += stems + 7 >> 3;\n stackClean = true;\n break;\n case 20:\n stems += stack.length >> 1;\n i += stems + 7 >> 3;\n stackClean = true;\n break;\n case 21:\n y += stack.pop();\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 22:\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 23:\n stems += stack.length >> 1;\n stackClean = true;\n break;\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 x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n break;\n case 25:\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n case 26:\n if (stack.length % 2) {\n x += stack.shift();\n }\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 27:\n if (stack.length % 2) {\n y += stack.shift();\n }\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb;\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 28:\n stack.push((code[i] << 24 | code[i + 1] << 16) >> 16);\n i += 2;\n break;\n case 29:\n n = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[n];\n if (subrCode) {\n parse(subrCode);\n }\n break;\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 if (stack.length === 0) {\n break;\n }\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 31:\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n default:\n if (v < 32) {\n throw new _util.FormatError('unknown operator: ' + v);\n }\n if (v < 247) {\n stack.push(v - 139);\n } else if (v < 251) {\n stack.push((v - 247) * 256 + code[i++] + 108);\n } else if (v < 255) {\n stack.push(-(v - 251) * 256 - code[i++] - 108);\n } else {\n stack.push((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536);\n i += 4;\n }\n break;\n }\n if (stackClean) {\n stack.length = 0;\n }\n }\n }\n parse(code);\n }\n var NOOP = [];\n\n var CompiledFont = function () {\n function CompiledFont(fontMatrix) {\n _classCallCheck(this, CompiledFont);\n\n if (this.constructor === CompiledFont) {\n (0, _util.unreachable)('Cannot initialize CompiledFont.');\n }\n this.fontMatrix = fontMatrix;\n this.compiledGlyphs = Object.create(null);\n this.compiledCharCodeToGlyphId = Object.create(null);\n }\n\n _createClass(CompiledFont, [{\n key: 'getPathJs',\n value: function getPathJs(unicode) {\n var cmap = lookupCmap(this.cmap, unicode);\n var fn = this.compiledGlyphs[cmap.glyphId];\n if (!fn) {\n fn = this.compileGlyph(this.glyphs[cmap.glyphId], cmap.glyphId);\n this.compiledGlyphs[cmap.glyphId] = fn;\n }\n if (this.compiledCharCodeToGlyphId[cmap.charCode] === undefined) {\n this.compiledCharCodeToGlyphId[cmap.charCode] = cmap.glyphId;\n }\n return fn;\n }\n }, {\n key: 'compileGlyph',\n value: function compileGlyph(code, glyphId) {\n if (!code || code.length === 0 || code[0] === 14) {\n return NOOP;\n }\n var fontMatrix = this.fontMatrix;\n if (this.isCFFCIDFont) {\n var fdIndex = this.fdSelect.getFDIndex(glyphId);\n if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n var 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 var cmds = [];\n cmds.push({ cmd: 'save' });\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({ cmd: 'restore' });\n return cmds;\n }\n }, {\n key: 'compileGlyphImpl',\n value: function compileGlyphImpl() {\n (0, _util.unreachable)('Children classes should implement this.');\n }\n }, {\n key: 'hasBuiltPath',\n value: function hasBuiltPath(unicode) {\n var cmap = lookupCmap(this.cmap, unicode);\n return this.compiledGlyphs[cmap.glyphId] !== undefined && this.compiledCharCodeToGlyphId[cmap.charCode] !== undefined;\n }\n }]);\n\n return CompiledFont;\n }();\n\n var TrueTypeCompiled = function (_CompiledFont) {\n _inherits(TrueTypeCompiled, _CompiledFont);\n\n function TrueTypeCompiled(glyphs, cmap, fontMatrix) {\n _classCallCheck(this, TrueTypeCompiled);\n\n var _this = _possibleConstructorReturn(this, (TrueTypeCompiled.__proto__ || Object.getPrototypeOf(TrueTypeCompiled)).call(this, fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]));\n\n _this.glyphs = glyphs;\n _this.cmap = cmap;\n return _this;\n }\n\n _createClass(TrueTypeCompiled, [{\n key: 'compileGlyphImpl',\n value: function compileGlyphImpl(code, cmds) {\n compileGlyf(code, cmds, this);\n }\n }]);\n\n return TrueTypeCompiled;\n }(CompiledFont);\n\n var Type2Compiled = function (_CompiledFont2) {\n _inherits(Type2Compiled, _CompiledFont2);\n\n function Type2Compiled(cffInfo, cmap, fontMatrix, glyphNameMap) {\n _classCallCheck(this, Type2Compiled);\n\n var _this2 = _possibleConstructorReturn(this, (Type2Compiled.__proto__ || Object.getPrototypeOf(Type2Compiled)).call(this, fontMatrix || [0.001, 0, 0, 0.001, 0, 0]));\n\n _this2.glyphs = cffInfo.glyphs;\n _this2.gsubrs = cffInfo.gsubrs || [];\n _this2.subrs = cffInfo.subrs || [];\n _this2.cmap = cmap;\n _this2.glyphNameMap = glyphNameMap || (0, _glyphlist.getGlyphsUnicode)();\n _this2.gsubrsBias = _this2.gsubrs.length < 1240 ? 107 : _this2.gsubrs.length < 33900 ? 1131 : 32768;\n _this2.subrsBias = _this2.subrs.length < 1240 ? 107 : _this2.subrs.length < 33900 ? 1131 : 32768;\n _this2.isCFFCIDFont = cffInfo.isCFFCIDFont;\n _this2.fdSelect = cffInfo.fdSelect;\n _this2.fdArray = cffInfo.fdArray;\n return _this2;\n }\n\n _createClass(Type2Compiled, [{\n key: 'compileGlyphImpl',\n value: function compileGlyphImpl(code, cmds, glyphId) {\n compileCharString(code, cmds, this, glyphId);\n }\n }]);\n\n return Type2Compiled;\n }(CompiledFont);\n\n return {\n create: function FontRendererFactory_create(font, seacAnalysisEnabled) {\n var data = new Uint8Array(font.data);\n var cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n var numTables = getUshort(data, 4);\n for (var i = 0, p = 12; i < numTables; i++, p += 16) {\n var tag = (0, _util.bytesToString)(data.subarray(p, p + 4));\n var offset = getLong(data, p + 8);\n var length = getLong(data, p + 12);\n switch (tag) {\n case 'cmap':\n cmap = parseCmap(data, offset, offset + length);\n break;\n case 'glyf':\n glyf = data.subarray(offset, offset + length);\n break;\n case 'loca':\n loca = data.subarray(offset, offset + length);\n break;\n case 'head':\n unitsPerEm = getUshort(data, offset + 18);\n indexToLocFormat = getUshort(data, offset + 50);\n break;\n case 'CFF ':\n cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n break;\n }\n }\n if (glyf) {\n var fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix);\n }\n return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n }\n };\n}();\nexports.FontRendererFactory = FontRendererFactory;\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Type1Parser = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _encodings = __w_pdfjs_require__(159);\n\nvar _stream = __w_pdfjs_require__(140);\n\nvar HINTING_ENABLED = false;\nvar Type1CharString = function Type1CharStringClosure() {\n var COMMAND_MAP = {\n 'hstem': [1],\n 'vstem': [3],\n 'vmoveto': [4],\n 'rlineto': [5],\n 'hlineto': [6],\n 'vlineto': [7],\n 'rrcurveto': [8],\n 'callsubr': [10],\n 'flex': [12, 35],\n 'drop': [12, 18],\n 'endchar': [14],\n 'rmoveto': [21],\n 'hmoveto': [22],\n 'vhcurveto': [30],\n 'hvcurveto': [31]\n };\n function Type1CharString() {\n this.width = 0;\n this.lsb = 0;\n this.flexing = false;\n this.output = [];\n this.stack = [];\n }\n Type1CharString.prototype = {\n convert: function Type1CharString_convert(encoded, subrs, seacAnalysisEnabled) {\n var count = encoded.length;\n var error = false;\n var wx, sbx, subrNumber;\n for (var i = 0; i < count; i++) {\n var value = encoded[i];\n if (value < 32) {\n if (value === 12) {\n value = (value << 8) + encoded[++i];\n }\n switch (value) {\n case 1:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case 3:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case 4:\n if (this.flexing) {\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n var dy = this.stack.pop();\n this.stack.push(0, dy);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n break;\n case 5:\n error = this.executeCommand(2, COMMAND_MAP.rlineto);\n break;\n case 6:\n error = this.executeCommand(1, COMMAND_MAP.hlineto);\n break;\n case 7:\n error = this.executeCommand(1, COMMAND_MAP.vlineto);\n break;\n case 8:\n error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n break;\n case 9:\n this.stack = [];\n break;\n case 10:\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n if (!subrs[subrNumber]) {\n error = true;\n break;\n }\n error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);\n break;\n case 11:\n return error;\n case 13:\n if (this.stack.length < 2) {\n error = true;\n break;\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 case 14:\n this.output.push(COMMAND_MAP.endchar[0]);\n break;\n case 21:\n if (this.flexing) {\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n break;\n case 22:\n if (this.flexing) {\n this.stack.push(0);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n break;\n case 30:\n error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n break;\n case 31:\n error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n break;\n case (12 << 8) + 0:\n this.stack = [];\n break;\n case (12 << 8) + 1:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case (12 << 8) + 2:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case (12 << 8) + 6:\n if (seacAnalysisEnabled) {\n this.seac = this.stack.splice(-4, 4);\n error = this.executeCommand(0, COMMAND_MAP.endchar);\n } else {\n error = this.executeCommand(4, COMMAND_MAP.endchar);\n }\n break;\n case (12 << 8) + 7:\n if (this.stack.length < 4) {\n error = true;\n break;\n }\n this.stack.pop();\n wx = this.stack.pop();\n var sby = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx, sby);\n error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n break;\n case (12 << 8) + 12:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n var num2 = this.stack.pop();\n var num1 = this.stack.pop();\n this.stack.push(num1 / num2);\n break;\n case (12 << 8) + 16:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n var numArgs = this.stack.pop();\n if (subrNumber === 0 && numArgs === 3) {\n var flexArgs = this.stack.splice(this.stack.length - 17, 17);\n this.stack.push(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 break;\n case (12 << 8) + 17:\n break;\n case (12 << 8) + 33:\n this.stack = [];\n break;\n default:\n (0, _util.warn)('Unknown type 1 charstring command of \"' + value + '\"');\n break;\n }\n if (error) {\n break;\n }\n continue;\n } else if (value <= 246) {\n value = value - 139;\n } else if (value <= 250) {\n value = (value - 247) * 256 + encoded[++i] + 108;\n } else if (value <= 254) {\n value = -((value - 251) * 256) - encoded[++i] - 108;\n } else {\n value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0;\n }\n this.stack.push(value);\n }\n return error;\n },\n executeCommand: function executeCommand(howManyArgs, command, keepStack) {\n var stackLength = this.stack.length;\n if (howManyArgs > stackLength) {\n return true;\n }\n var start = stackLength - howManyArgs;\n for (var i = start; i < stackLength; i++) {\n var value = this.stack[i];\n if (Number.isInteger(value)) {\n this.output.push(28, value >> 8 & 0xff, value & 0xff);\n } else {\n value = 65536 * value | 0;\n this.output.push(255, value >> 24 & 0xFF, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF);\n }\n }\n this.output.push.apply(this.output, command);\n if (keepStack) {\n this.stack.splice(start, howManyArgs);\n } else {\n this.stack.length = 0;\n }\n return false;\n }\n };\n return Type1CharString;\n}();\nvar Type1Parser = function Type1ParserClosure() {\n var EEXEC_ENCRYPT_KEY = 55665;\n var CHAR_STRS_ENCRYPT_KEY = 4330;\n function isHexDigit(code) {\n return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102;\n }\n function decrypt(data, key, discardNumber) {\n if (discardNumber >= data.length) {\n return new Uint8Array(0);\n }\n var r = key | 0,\n c1 = 52845,\n c2 = 22719,\n i,\n j;\n for (i = 0; i < discardNumber; i++) {\n r = (data[i] + r) * c1 + c2 & (1 << 16) - 1;\n }\n var count = data.length - discardNumber;\n var decrypted = new Uint8Array(count);\n for (i = discardNumber, j = 0; j < count; i++, j++) {\n var value = data[i];\n decrypted[j] = value ^ r >> 8;\n r = (value + r) * c1 + c2 & (1 << 16) - 1;\n }\n return decrypted;\n }\n function decryptAscii(data, key, discardNumber) {\n var r = key | 0,\n c1 = 52845,\n c2 = 22719;\n var count = data.length,\n maybeLength = count >>> 1;\n var decrypted = new Uint8Array(maybeLength);\n var i, j;\n for (i = 0, j = 0; i < count; i++) {\n var digit1 = data[i];\n if (!isHexDigit(digit1)) {\n continue;\n }\n i++;\n var digit2;\n while (i < count && !isHexDigit(digit2 = data[i])) {\n i++;\n }\n if (i < count) {\n var value = parseInt(String.fromCharCode(digit1, digit2), 16);\n decrypted[j++] = value ^ r >> 8;\n r = (value + r) * c1 + c2 & (1 << 16) - 1;\n }\n }\n return Array.prototype.slice.call(decrypted, discardNumber, j);\n }\n function isSpecial(c) {\n return c === 0x2F || c === 0x5B || c === 0x5D || c === 0x7B || c === 0x7D || c === 0x28 || c === 0x29;\n }\n function Type1Parser(stream, encrypted, seacAnalysisEnabled) {\n if (encrypted) {\n var data = stream.getBytes();\n var isBinary = !(isHexDigit(data[0]) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]));\n stream = new _stream.Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4));\n }\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n this.stream = stream;\n this.nextChar();\n }\n Type1Parser.prototype = {\n readNumberArray: function Type1Parser_readNumberArray() {\n this.getToken();\n var array = [];\n while (true) {\n var token = this.getToken();\n if (token === null || token === ']' || token === '}') {\n break;\n }\n array.push(parseFloat(token || 0));\n }\n return array;\n },\n readNumber: function Type1Parser_readNumber() {\n var token = this.getToken();\n return parseFloat(token || 0);\n },\n readInt: function Type1Parser_readInt() {\n var token = this.getToken();\n return parseInt(token || 0, 10) | 0;\n },\n readBoolean: function Type1Parser_readBoolean() {\n var token = this.getToken();\n return token === 'true' ? 1 : 0;\n },\n nextChar: function Type1_nextChar() {\n return this.currentChar = this.stream.getByte();\n },\n getToken: function Type1Parser_getToken() {\n var comment = false;\n var ch = this.currentChar;\n while (true) {\n if (ch === -1) {\n return null;\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, _util.isSpace)(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n if (isSpecial(ch)) {\n this.nextChar();\n return String.fromCharCode(ch);\n }\n var token = '';\n do {\n token += String.fromCharCode(ch);\n ch = this.nextChar();\n } while (ch >= 0 && !(0, _util.isSpace)(ch) && !isSpecial(ch));\n return token;\n },\n readCharStrings: function Type1Parser_readCharStrings(bytes, lenIV) {\n if (lenIV === -1) {\n return bytes;\n }\n return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n },\n extractFontProgram: function Type1Parser_extractFontProgram() {\n var stream = this.stream;\n var subrs = [],\n charstrings = [];\n var privateData = Object.create(null);\n privateData['lenIV'] = 4;\n var program = {\n subrs: [],\n charstrings: [],\n properties: { 'privateData': privateData }\n };\n var token, length, data, lenIV, encoded;\n while ((token = this.getToken()) !== null) {\n if (token !== '/') {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case 'CharStrings':\n this.getToken();\n this.getToken();\n this.getToken();\n this.getToken();\n while (true) {\n token = this.getToken();\n if (token === null || token === 'end') {\n break;\n }\n if (token !== '/') {\n continue;\n }\n var glyph = this.getToken();\n length = this.readInt();\n this.getToken();\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData['lenIV'];\n encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken();\n if (token === 'noaccess') {\n this.getToken();\n }\n charstrings.push({\n glyph: glyph,\n encoded: encoded\n });\n }\n break;\n case 'Subrs':\n this.readInt();\n this.getToken();\n while (this.getToken() === 'dup') {\n var 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 if (token === 'noaccess') {\n this.getToken();\n }\n subrs[index] = encoded;\n }\n break;\n case 'BlueValues':\n case 'OtherBlues':\n case 'FamilyBlues':\n case 'FamilyOtherBlues':\n var blueArray = this.readNumberArray();\n if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) {\n program.properties.privateData[token] = blueArray;\n }\n break;\n case 'StemSnapH':\n case 'StemSnapV':\n program.properties.privateData[token] = this.readNumberArray();\n break;\n case 'StdHW':\n case 'StdVW':\n program.properties.privateData[token] = this.readNumberArray()[0];\n break;\n case 'BlueShift':\n case 'lenIV':\n case 'BlueFuzz':\n case 'BlueScale':\n case 'LanguageGroup':\n case 'ExpansionFactor':\n program.properties.privateData[token] = this.readNumber();\n break;\n case 'ForceBold':\n program.properties.privateData[token] = this.readBoolean();\n break;\n }\n }\n for (var i = 0; i < charstrings.length; i++) {\n glyph = charstrings[i].glyph;\n encoded = charstrings[i].encoded;\n var charString = new Type1CharString();\n var error = charString.convert(encoded, subrs, this.seacAnalysisEnabled);\n var output = charString.output;\n if (error) {\n output = [14];\n }\n program.charstrings.push({\n glyphName: glyph,\n charstring: output,\n width: charString.width,\n lsb: charString.lsb,\n seac: charString.seac\n });\n }\n return program;\n },\n extractFontHeader: function Type1Parser_extractFontHeader(properties) {\n var token;\n while ((token = this.getToken()) !== null) {\n if (token !== '/') {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case 'FontMatrix':\n var matrix = this.readNumberArray();\n properties.fontMatrix = matrix;\n break;\n case 'Encoding':\n var encodingArg = this.getToken();\n var encoding;\n if (!/^\\d+$/.test(encodingArg)) {\n encoding = (0, _encodings.getEncoding)(encodingArg);\n } else {\n encoding = [];\n var size = parseInt(encodingArg, 10) | 0;\n this.getToken();\n for (var j = 0; j < size; j++) {\n token = this.getToken();\n while (token !== 'dup' && token !== 'def') {\n token = this.getToken();\n if (token === null) {\n return;\n }\n }\n if (token === 'def') {\n break;\n }\n var index = this.readInt();\n this.getToken();\n var glyph = this.getToken();\n encoding[index] = glyph;\n this.getToken();\n }\n }\n properties.builtInEncoding = encoding;\n break;\n case 'FontBBox':\n var fontBBox = this.readNumberArray();\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n break;\n }\n }\n }\n };\n return Type1Parser;\n}();\nexports.Type1Parser = Type1Parser;\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTilingPatternIR = exports.Pattern = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _colorspace = __w_pdfjs_require__(151);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar ShadingType = {\n FUNCTION_BASED: 1,\n AXIAL: 2,\n RADIAL: 3,\n FREE_FORM_MESH: 4,\n LATTICE_FORM_MESH: 5,\n COONS_PATCH_MESH: 6,\n TENSOR_PATCH_MESH: 7\n};\nvar Pattern = function PatternClosure() {\n function Pattern() {\n (0, _util.unreachable)('should not call Pattern constructor');\n }\n Pattern.prototype = {\n getPattern: function Pattern_getPattern(ctx) {\n (0, _util.unreachable)('Should not call Pattern.getStyle: ' + ctx);\n }\n };\n Pattern.parseShading = function (shading, matrix, xref, res, handler, pdfFunctionFactory) {\n var dict = (0, _primitives.isStream)(shading) ? shading.dict : shading;\n var type = dict.get('ShadingType');\n try {\n switch (type) {\n case ShadingType.AXIAL:\n case ShadingType.RADIAL:\n return new Shadings.RadialAxial(dict, matrix, xref, res, pdfFunctionFactory);\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);\n default:\n throw new _util.FormatError('Unsupported ShadingType: ' + type);\n }\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.shadingPattern });\n (0, _util.warn)(ex);\n return new Shadings.Dummy();\n }\n };\n return Pattern;\n}();\nvar Shadings = {};\nShadings.SMALL_NUMBER = 1e-6;\nShadings.RadialAxial = function RadialAxialClosure() {\n function RadialAxial(dict, matrix, xref, res, pdfFunctionFactory) {\n this.matrix = matrix;\n this.coordsArr = dict.getArray('Coords');\n this.shadingType = dict.get('ShadingType');\n this.type = 'Pattern';\n var cs = dict.get('ColorSpace', 'CS');\n cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory);\n this.cs = cs;\n var t0 = 0.0,\n t1 = 1.0;\n if (dict.has('Domain')) {\n var domainArr = dict.getArray('Domain');\n t0 = domainArr[0];\n t1 = domainArr[1];\n }\n var extendStart = false,\n extendEnd = false;\n if (dict.has('Extend')) {\n var extendArr = dict.getArray('Extend');\n extendStart = extendArr[0];\n extendEnd = extendArr[1];\n }\n if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) {\n var x1 = this.coordsArr[0];\n var y1 = this.coordsArr[1];\n var r1 = this.coordsArr[2];\n var x2 = this.coordsArr[3];\n var y2 = this.coordsArr[4];\n var r2 = this.coordsArr[5];\n var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\n if (r1 <= r2 + distance && r2 <= r1 + distance) {\n (0, _util.warn)('Unsupported radial gradient.');\n }\n }\n this.extendStart = extendStart;\n this.extendEnd = extendEnd;\n var fnObj = dict.get('Function');\n var fn = pdfFunctionFactory.createFromArray(fnObj);\n var diff = t1 - t0;\n var step = diff / 10;\n var colorStops = this.colorStops = [];\n if (t0 >= t1 || step <= 0) {\n (0, _util.info)('Bad shading domain.');\n return;\n }\n var color = new Float32Array(cs.numComps),\n ratio = new Float32Array(1);\n var rgbColor;\n for (var i = t0; i <= t1; i += step) {\n ratio[0] = i;\n fn(ratio, 0, color, 0);\n rgbColor = cs.getRgb(color, 0);\n var cssColor = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n colorStops.push([(i - t0) / diff, cssColor]);\n }\n var background = 'transparent';\n if (dict.has('Background')) {\n rgbColor = cs.getRgb(dict.get('Background'), 0);\n background = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n }\n if (!extendStart) {\n colorStops.unshift([0, background]);\n colorStops[1][0] += Shadings.SMALL_NUMBER;\n }\n if (!extendEnd) {\n colorStops[colorStops.length - 1][0] -= Shadings.SMALL_NUMBER;\n colorStops.push([1, background]);\n }\n this.colorStops = colorStops;\n }\n RadialAxial.prototype = {\n getIR: function RadialAxial_getIR() {\n var coordsArr = this.coordsArr;\n var shadingType = this.shadingType;\n var type, p0, p1, r0, r1;\n if (shadingType === ShadingType.AXIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[2], coordsArr[3]];\n r0 = null;\n r1 = null;\n type = 'axial';\n } else if (shadingType === ShadingType.RADIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[3], coordsArr[4]];\n r0 = coordsArr[2];\n r1 = coordsArr[5];\n type = 'radial';\n } else {\n (0, _util.unreachable)('getPattern type unknown: ' + shadingType);\n }\n var matrix = this.matrix;\n if (matrix) {\n p0 = _util.Util.applyTransform(p0, matrix);\n p1 = _util.Util.applyTransform(p1, matrix);\n if (shadingType === ShadingType.RADIAL) {\n var scale = _util.Util.singularValueDecompose2dScale(matrix);\n r0 *= scale[0];\n r1 *= scale[1];\n }\n }\n return ['RadialAxial', type, this.colorStops, p0, p1, r0, r1];\n }\n };\n return RadialAxial;\n}();\nShadings.Mesh = function MeshClosure() {\n function MeshStreamReader(stream, context) {\n this.stream = stream;\n this.context = context;\n this.buffer = 0;\n this.bufferLength = 0;\n var numComps = context.numComps;\n this.tmpCompsBuf = new Float32Array(numComps);\n var csNumComps = context.colorSpace.numComps;\n this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf;\n }\n MeshStreamReader.prototype = {\n get hasData() {\n if (this.stream.end) {\n return this.stream.pos < this.stream.end;\n }\n if (this.bufferLength > 0) {\n return true;\n }\n var nextByte = this.stream.getByte();\n if (nextByte < 0) {\n return false;\n }\n this.buffer = nextByte;\n this.bufferLength = 8;\n return true;\n },\n readBits: function MeshStreamReader_readBits(n) {\n var buffer = this.buffer;\n var bufferLength = this.bufferLength;\n if (n === 32) {\n if (bufferLength === 0) {\n return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0;\n }\n buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte();\n var nextByte = this.stream.getByte();\n this.buffer = nextByte & (1 << bufferLength) - 1;\n return (buffer << 8 - bufferLength | (nextByte & 0xFF) >> bufferLength) >>> 0;\n }\n if (n === 8 && bufferLength === 0) {\n return this.stream.getByte();\n }\n while (bufferLength < n) {\n buffer = buffer << 8 | this.stream.getByte();\n bufferLength += 8;\n }\n bufferLength -= n;\n this.bufferLength = bufferLength;\n this.buffer = buffer & (1 << bufferLength) - 1;\n return buffer >> bufferLength;\n },\n align: function MeshStreamReader_align() {\n this.buffer = 0;\n this.bufferLength = 0;\n },\n readFlag: function MeshStreamReader_readFlag() {\n return this.readBits(this.context.bitsPerFlag);\n },\n readCoordinate: function MeshStreamReader_readCoordinate() {\n var bitsPerCoordinate = this.context.bitsPerCoordinate;\n var xi = this.readBits(bitsPerCoordinate);\n var yi = this.readBits(bitsPerCoordinate);\n var decode = this.context.decode;\n var scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10;\n return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]];\n },\n readComponents: function MeshStreamReader_readComponents() {\n var numComps = this.context.numComps;\n var bitsPerComponent = this.context.bitsPerComponent;\n var scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10;\n var decode = this.context.decode;\n var components = this.tmpCompsBuf;\n for (var i = 0, j = 4; i < numComps; i++, j += 2) {\n var ci = this.readBits(bitsPerComponent);\n components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n }\n var color = this.tmpCsCompsBuf;\n if (this.context.colorFn) {\n this.context.colorFn(components, 0, color, 0);\n }\n return this.context.colorSpace.getRgb(color, 0);\n }\n };\n function decodeType4Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var operators = [];\n var ps = [];\n var verticesLeft = 0;\n while (reader.hasData) {\n var f = reader.readFlag();\n var coord = reader.readCoordinate();\n var color = reader.readComponents();\n if (verticesLeft === 0) {\n if (!(0 <= f && f <= 2)) {\n throw new _util.FormatError('Unknown type4 flag');\n }\n switch (f) {\n case 0:\n verticesLeft = 3;\n break;\n case 1:\n ps.push(ps[ps.length - 2], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n case 2:\n ps.push(ps[ps.length - 3], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n }\n operators.push(f);\n }\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n verticesLeft--;\n reader.align();\n }\n mesh.figures.push({\n type: 'triangles',\n coords: new Int32Array(ps),\n colors: new Int32Array(ps)\n });\n }\n function decodeType5Shading(mesh, reader, verticesPerRow) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = [];\n while (reader.hasData) {\n var coord = reader.readCoordinate();\n var color = reader.readComponents();\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n }\n mesh.figures.push({\n type: 'lattice',\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n verticesPerRow: verticesPerRow\n });\n }\n var MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;\n var MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;\n var TRIANGLE_DENSITY = 20;\n var getB = function getBClosure() {\n function buildB(count) {\n var lut = [];\n for (var i = 0; i <= count; i++) {\n var t = i / count,\n t_ = 1 - t;\n lut.push(new Float32Array([t_ * t_ * t_, 3 * t * t_ * t_, 3 * t * t * t_, t * t * t]));\n }\n return lut;\n }\n var cache = [];\n return function getB(count) {\n if (!cache[count]) {\n cache[count] = buildB(count);\n }\n return cache[count];\n };\n }();\n function buildFigureFromPatch(mesh, index) {\n var figure = mesh.figures[index];\n (0, _util.assert)(figure.type === 'patch', 'Unexpected patch mesh figure');\n var coords = mesh.coords,\n colors = mesh.colors;\n var pi = figure.coords;\n var ci = figure.colors;\n var figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n var figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n var figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n var figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n var splitXBy = Math.ceil((figureMaxX - figureMinX) * TRIANGLE_DENSITY / (mesh.bounds[2] - mesh.bounds[0]));\n splitXBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy));\n var splitYBy = Math.ceil((figureMaxY - figureMinY) * TRIANGLE_DENSITY / (mesh.bounds[3] - mesh.bounds[1]));\n splitYBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy));\n var verticesPerRow = splitXBy + 1;\n var figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n var figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n var k = 0;\n var cl = new Uint8Array(3),\n cr = new Uint8Array(3);\n var c0 = colors[ci[0]],\n c1 = colors[ci[1]],\n c2 = colors[ci[2]],\n c3 = colors[ci[3]];\n var bRow = getB(splitYBy),\n bCol = getB(splitXBy);\n for (var row = 0; row <= splitYBy; row++) {\n cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0;\n cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0;\n cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0;\n cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0;\n cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0;\n cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0;\n for (var col = 0; col <= splitXBy; col++, k++) {\n if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) {\n continue;\n }\n var x = 0,\n y = 0;\n var q = 0;\n for (var i = 0; i <= 3; i++) {\n for (var j = 0; j <= 3; j++, q++) {\n var m = bRow[row][i] * bCol[col][j];\n x += coords[pi[q]][0] * m;\n y += coords[pi[q]][1] * m;\n }\n }\n figureCoords[k] = coords.length;\n coords.push([x, y]);\n figureColors[k] = colors.length;\n var newColor = new Uint8Array(3);\n newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0;\n newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0;\n newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0;\n colors.push(newColor);\n }\n }\n figureCoords[0] = pi[0];\n figureColors[0] = ci[0];\n figureCoords[splitXBy] = pi[3];\n figureColors[splitXBy] = ci[1];\n figureCoords[verticesPerRow * splitYBy] = pi[12];\n figureColors[verticesPerRow * splitYBy] = ci[2];\n figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n mesh.figures[index] = {\n type: 'lattice',\n coords: figureCoords,\n colors: figureColors,\n verticesPerRow: verticesPerRow\n };\n }\n function decodeType6Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = new Int32Array(16);\n var cs = new Int32Array(4);\n while (reader.hasData) {\n var f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError('Unknown type6 flag');\n }\n var i, ii;\n var pi = coords.length;\n for (i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n var ci = colors.length;\n for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n var tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n 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 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 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 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 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 function decodeType7Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = new Int32Array(16);\n var cs = new Int32Array(4);\n while (reader.hasData) {\n var f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError('Unknown type7 flag');\n }\n var i, ii;\n var pi = coords.length;\n for (i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n var ci = colors.length;\n for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n var tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n 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 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 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 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 mesh.figures.push({\n type: 'patch',\n coords: new Int32Array(ps),\n colors: new Int32Array(cs)\n });\n }\n }\n function updateBounds(mesh) {\n var minX = mesh.coords[0][0],\n minY = mesh.coords[0][1],\n maxX = minX,\n maxY = minY;\n for (var i = 1, ii = mesh.coords.length; i < ii; i++) {\n var x = mesh.coords[i][0],\n y = mesh.coords[i][1];\n minX = minX > x ? x : minX;\n minY = minY > y ? y : minY;\n maxX = maxX < x ? x : maxX;\n maxY = maxY < y ? y : maxY;\n }\n mesh.bounds = [minX, minY, maxX, maxY];\n }\n function packData(mesh) {\n var i, ii, j, jj;\n var coords = mesh.coords;\n var coordsPacked = new Float32Array(coords.length * 2);\n for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n var xy = coords[i];\n coordsPacked[j++] = xy[0];\n coordsPacked[j++] = xy[1];\n }\n mesh.coords = coordsPacked;\n var colors = mesh.colors;\n var colorsPacked = new Uint8Array(colors.length * 3);\n for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n var c = colors[i];\n colorsPacked[j++] = c[0];\n colorsPacked[j++] = c[1];\n colorsPacked[j++] = c[2];\n }\n mesh.colors = colorsPacked;\n var figures = mesh.figures;\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n for (j = 0, jj = ps.length; j < jj; j++) {\n ps[j] *= 2;\n cs[j] *= 3;\n }\n }\n }\n function Mesh(stream, matrix, xref, res, pdfFunctionFactory) {\n if (!(0, _primitives.isStream)(stream)) {\n throw new _util.FormatError('Mesh data is not a stream');\n }\n var dict = stream.dict;\n this.matrix = matrix;\n this.shadingType = dict.get('ShadingType');\n this.type = 'Pattern';\n this.bbox = dict.getArray('BBox');\n var cs = dict.get('ColorSpace', 'CS');\n cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory);\n this.cs = cs;\n this.background = dict.has('Background') ? cs.getRgb(dict.get('Background'), 0) : null;\n var fnObj = dict.get('Function');\n var fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n this.coords = [];\n this.colors = [];\n this.figures = [];\n var decodeContext = {\n bitsPerCoordinate: dict.get('BitsPerCoordinate'),\n bitsPerComponent: dict.get('BitsPerComponent'),\n bitsPerFlag: dict.get('BitsPerFlag'),\n decode: dict.getArray('Decode'),\n colorFn: fn,\n colorSpace: cs,\n numComps: fn ? 1 : cs.numComps\n };\n var reader = new MeshStreamReader(stream, decodeContext);\n var patchMesh = false;\n switch (this.shadingType) {\n case ShadingType.FREE_FORM_MESH:\n decodeType4Shading(this, reader);\n break;\n case ShadingType.LATTICE_FORM_MESH:\n var verticesPerRow = dict.get('VerticesPerRow') | 0;\n if (verticesPerRow < 2) {\n throw new _util.FormatError('Invalid VerticesPerRow');\n }\n decodeType5Shading(this, reader, verticesPerRow);\n break;\n case ShadingType.COONS_PATCH_MESH:\n decodeType6Shading(this, reader);\n patchMesh = true;\n break;\n case ShadingType.TENSOR_PATCH_MESH:\n decodeType7Shading(this, reader);\n patchMesh = true;\n break;\n default:\n (0, _util.unreachable)('Unsupported mesh type.');\n break;\n }\n if (patchMesh) {\n updateBounds(this);\n for (var i = 0, ii = this.figures.length; i < ii; i++) {\n buildFigureFromPatch(this, i);\n }\n }\n updateBounds(this);\n packData(this);\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}();\nShadings.Dummy = function DummyClosure() {\n function Dummy() {\n this.type = 'Pattern';\n }\n Dummy.prototype = {\n getIR: function Dummy_getIR() {\n return ['Dummy'];\n }\n };\n return Dummy;\n}();\nfunction getTilingPatternIR(operatorList, dict, args) {\n var matrix = dict.getArray('Matrix');\n var bbox = _util.Util.normalizeRect(dict.getArray('BBox'));\n var xstep = dict.get('XStep');\n var ystep = dict.get('YStep');\n var paintType = dict.get('PaintType');\n var tilingType = dict.get('TilingType');\n if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n throw new _util.FormatError('Invalid getTilingPatternIR /BBox array: [' + bbox + '].');\n }\n return ['TilingPattern', args, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType];\n}\nexports.Pattern = Pattern;\nexports.getTilingPatternIR = getTilingPatternIR;\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bidi = undefined;\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'];\nfunction isOdd(i) {\n return (i & 1) !== 0;\n}\nfunction isEven(i) {\n return (i & 1) === 0;\n}\nfunction findUnequal(arr, start, value) {\n for (var j = start, jj = arr.length; j < jj; ++j) {\n if (arr[j] !== value) {\n return j;\n }\n }\n return j;\n}\nfunction setValues(arr, start, end, value) {\n for (var j = start; j < end; ++j) {\n arr[j] = value;\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}\nfunction createBidiText(str, isLTR, vertical) {\n return {\n str: str,\n dir: vertical ? 'ttb' : isLTR ? 'ltr' : 'rtl'\n };\n}\nvar chars = [];\nvar types = [];\nfunction bidi(str, startLevel, vertical) {\n var isLTR = true;\n var strLength = str.length;\n if (strLength === 0 || vertical) {\n return createBidiText(str, isLTR, vertical);\n }\n chars.length = strLength;\n types.length = strLength;\n var numBidi = 0;\n var i, ii;\n for (i = 0; i < strLength; ++i) {\n chars[i] = str.charAt(i);\n var charCode = str.charCodeAt(i);\n var charType = 'L';\n if (charCode <= 0x00ff) {\n charType = baseTypes[charCode];\n } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n charType = 'R';\n } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n charType = arabicTypes[charCode & 0xff];\n if (!charType) {\n (0, _util.warn)('Bidi: invalid Unicode character ' + charCode.toString(16));\n }\n } else if (0x0700 <= charCode && charCode <= 0x08AC) {\n charType = 'AL';\n }\n if (charType === 'R' || charType === 'AL' || charType === 'AN') {\n numBidi++;\n }\n types[i] = charType;\n }\n if (numBidi === 0) {\n isLTR = true;\n return createBidiText(str, isLTR);\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 var levels = [];\n for (i = 0; i < strLength; ++i) {\n levels[i] = startLevel;\n }\n var e = isOdd(startLevel) ? 'R' : 'L';\n var sor = e;\n var eor = sor;\n var lastType = sor;\n for (i = 0; i < strLength; ++i) {\n if (types[i] === 'NSM') {\n types[i] = lastType;\n } else {\n lastType = types[i];\n }\n }\n lastType = sor;\n var t;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === 'EN') {\n types[i] = lastType === 'AL' ? 'AN' : 'EN';\n } else if (t === 'R' || t === 'L' || t === 'AL') {\n lastType = t;\n }\n }\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === 'AL') {\n types[i] = 'R';\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 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 for (i = 0; i < strLength; ++i) {\n if (types[i] === 'EN') {\n var j;\n for (j = i - 1; j >= 0; --j) {\n if (types[j] !== 'ET') {\n break;\n }\n types[j] = 'EN';\n }\n for (j = i + 1; j < strLength; ++j) {\n if (types[j] !== 'ET') {\n break;\n }\n types[j] = 'EN';\n }\n }\n }\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === 'WS' || t === 'ES' || t === 'ET' || t === 'CS') {\n types[i] = 'ON';\n }\n }\n lastType = sor;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === 'EN') {\n types[i] = lastType === 'L' ? 'L' : 'EN';\n } else if (t === 'R' || t === 'L') {\n lastType = t;\n }\n }\n for (i = 0; i < strLength; ++i) {\n if (types[i] === 'ON') {\n var end = findUnequal(types, i + 1, 'ON');\n var before = sor;\n if (i > 0) {\n before = types[i - 1];\n }\n var after = eor;\n if (end + 1 < strLength) {\n after = types[end + 1];\n }\n if (before !== 'L') {\n before = 'R';\n }\n if (after !== 'L') {\n after = 'R';\n }\n if (before === after) {\n setValues(types, i, end, before);\n }\n i = end - 1;\n }\n }\n for (i = 0; i < strLength; ++i) {\n if (types[i] === 'ON') {\n types[i] = e;\n }\n }\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (isEven(levels[i])) {\n if (t === 'R') {\n levels[i] += 1;\n } else if (t === 'AN' || t === 'EN') {\n levels[i] += 2;\n }\n } else {\n if (t === 'L' || t === 'AN' || t === 'EN') {\n levels[i] += 1;\n }\n }\n }\n var highestLevel = -1;\n var lowestOddLevel = 99;\n var level;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n level = levels[i];\n if (highestLevel < level) {\n highestLevel = level;\n }\n if (lowestOddLevel > level && isOdd(level)) {\n lowestOddLevel = level;\n }\n }\n for (level = highestLevel; level >= lowestOddLevel; --level) {\n var start = -1;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n if (levels[i] < level) {\n if (start >= 0) {\n reverseValues(chars, start, i);\n start = -1;\n }\n } else if (start < 0) {\n start = i;\n }\n }\n if (start >= 0) {\n reverseValues(chars, start, levels.length);\n }\n }\n for (i = 0, ii = chars.length; i < ii; ++i) {\n var ch = chars[i];\n if (ch === '<' || ch === '>') {\n chars[i] = '';\n }\n }\n return createBidiText(chars.join(''), isLTR);\n}\nexports.bidi = bidi;\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getMetrics = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar getMetrics = (0, _util.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, _util.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, _util.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, _util.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, _util.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, _util.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, _util.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, _util.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, _util.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, _util.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, _util.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/* 168 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PostScriptCompiler = exports.PostScriptEvaluator = exports.PDFFunctionFactory = exports.isPDFFunction = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar _ps_parser = __w_pdfjs_require__(169);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar IsEvalSupportedCached = {\n get value() {\n return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)());\n }\n};\n\nvar PDFFunctionFactory = function () {\n function PDFFunctionFactory(_ref) {\n var xref = _ref.xref,\n _ref$isEvalSupported = _ref.isEvalSupported,\n isEvalSupported = _ref$isEvalSupported === undefined ? true : _ref$isEvalSupported;\n\n _classCallCheck(this, PDFFunctionFactory);\n\n this.xref = xref;\n this.isEvalSupported = isEvalSupported !== false;\n }\n\n _createClass(PDFFunctionFactory, [{\n key: 'create',\n value: function create(fn) {\n return PDFFunction.parse({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fn: fn\n });\n }\n }, {\n key: 'createFromArray',\n value: function createFromArray(fnObj) {\n return PDFFunction.parseArray({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fnObj: fnObj\n });\n }\n }]);\n\n return PDFFunctionFactory;\n}();\n\nfunction toNumberArray(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n var length = arr.length;\n for (var i = 0; i < length; i++) {\n if (typeof arr[i] !== 'number') {\n var result = new Array(length);\n for (var _i = 0; _i < length; _i++) {\n result[_i] = +arr[_i];\n }\n return result;\n }\n }\n return arr;\n}\nvar PDFFunction = function PDFFunctionClosure() {\n var CONSTRUCT_SAMPLED = 0;\n var CONSTRUCT_INTERPOLATED = 2;\n var CONSTRUCT_STICHED = 3;\n var CONSTRUCT_POSTSCRIPT = 4;\n return {\n getSampleArray: function getSampleArray(size, outputSize, bps, stream) {\n var i, ii;\n var length = 1;\n for (i = 0, ii = size.length; i < ii; i++) {\n length *= size[i];\n }\n length *= outputSize;\n var array = new Array(length);\n var codeSize = 0;\n var codeBuf = 0;\n var sampleMul = 1.0 / (Math.pow(2.0, bps) - 1);\n var strBytes = stream.getBytes((length * bps + 7) / 8);\n var strIdx = 0;\n for (i = 0; i < length; i++) {\n while (codeSize < bps) {\n codeBuf <<= 8;\n codeBuf |= strBytes[strIdx++];\n codeSize += 8;\n }\n codeSize -= bps;\n array[i] = (codeBuf >> codeSize) * sampleMul;\n codeBuf &= (1 << codeSize) - 1;\n }\n return array;\n },\n getIR: function getIR(_ref2) {\n var xref = _ref2.xref,\n isEvalSupported = _ref2.isEvalSupported,\n fn = _ref2.fn;\n\n var dict = fn.dict;\n if (!dict) {\n dict = fn;\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 if (!typeFn) {\n throw new _util.FormatError('Unknown type of function');\n }\n return typeFn.call(this, {\n xref: xref,\n isEvalSupported: isEvalSupported,\n fn: fn,\n dict: dict\n });\n },\n fromIR: function fromIR(_ref3) {\n var xref = _ref3.xref,\n isEvalSupported = _ref3.isEvalSupported,\n IR = _ref3.IR;\n\n var type = IR[0];\n switch (type) {\n case CONSTRUCT_SAMPLED:\n return this.constructSampledFromIR({\n xref: xref,\n isEvalSupported: isEvalSupported,\n IR: IR\n });\n case CONSTRUCT_INTERPOLATED:\n return this.constructInterpolatedFromIR({\n xref: xref,\n isEvalSupported: isEvalSupported,\n IR: IR\n });\n case CONSTRUCT_STICHED:\n return this.constructStichedFromIR({\n xref: xref,\n isEvalSupported: isEvalSupported,\n IR: IR\n });\n default:\n return this.constructPostScriptFromIR({\n xref: xref,\n isEvalSupported: isEvalSupported,\n IR: IR\n });\n }\n },\n parse: function parse(_ref4) {\n var xref = _ref4.xref,\n isEvalSupported = _ref4.isEvalSupported,\n fn = _ref4.fn;\n\n var IR = this.getIR({\n xref: xref,\n isEvalSupported: isEvalSupported,\n fn: fn\n });\n return this.fromIR({\n xref: xref,\n isEvalSupported: isEvalSupported,\n IR: IR\n });\n },\n parseArray: function parseArray(_ref5) {\n var xref = _ref5.xref,\n isEvalSupported = _ref5.isEvalSupported,\n fnObj = _ref5.fnObj;\n\n if (!Array.isArray(fnObj)) {\n return this.parse({\n xref: xref,\n isEvalSupported: isEvalSupported,\n fn: fnObj\n });\n }\n var fnArray = [];\n for (var j = 0, jj = fnObj.length; j < jj; j++) {\n fnArray.push(this.parse({\n xref: xref,\n isEvalSupported: isEvalSupported,\n fn: xref.fetchIfRef(fnObj[j])\n }));\n }\n return function (src, srcOffset, dest, destOffset) {\n for (var i = 0, ii = fnArray.length; i < ii; i++) {\n fnArray[i](src, srcOffset, dest, destOffset + i);\n }\n };\n },\n constructSampled: function constructSampled(_ref6) {\n var xref = _ref6.xref,\n isEvalSupported = _ref6.isEvalSupported,\n fn = _ref6.fn,\n dict = _ref6.dict;\n\n function toMultiArray(arr) {\n var inputLength = arr.length;\n var out = [];\n var index = 0;\n for (var i = 0; i < inputLength; i += 2) {\n out[index] = [arr[i], arr[i + 1]];\n ++index;\n }\n return out;\n }\n var domain = toNumberArray(dict.getArray('Domain'));\n var range = toNumberArray(dict.getArray('Range'));\n if (!domain || !range) {\n throw new _util.FormatError('No domain or range');\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 if (order !== 1) {\n (0, _util.info)('No support for cubic spline interpolation: ' + order);\n }\n var encode = toNumberArray(dict.getArray('Encode'));\n if (!encode) {\n encode = [];\n for (var i = 0; i < inputSize; ++i) {\n encode.push([0, size[i] - 1]);\n }\n } else {\n encode = toMultiArray(encode);\n }\n var decode = toNumberArray(dict.getArray('Decode'));\n if (!decode) {\n decode = range;\n } else {\n decode = toMultiArray(decode);\n }\n var samples = this.getSampleArray(size, outputSize, bps, fn);\n return [CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, outputSize, Math.pow(2, bps) - 1, range];\n },\n constructSampledFromIR: function constructSampledFromIR(_ref7) {\n var xref = _ref7.xref,\n isEvalSupported = _ref7.isEvalSupported,\n IR = _ref7.IR;\n\n function interpolate(x, xmin, xmax, ymin, ymax) {\n return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\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 for (j = 0; j < cubeVertices; j++) {\n cubeN[j] = 1;\n }\n var k = n,\n pos = 1;\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 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 k *= size_i;\n pos <<= 1;\n }\n for (j = 0; j < n; ++j) {\n var rj = 0;\n for (i = 0; i < cubeVertices; i++) {\n rj += samples[cubeVertex[i] + j] * cubeN[i];\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 constructInterpolated: function constructInterpolated(_ref8) {\n var xref = _ref8.xref,\n isEvalSupported = _ref8.isEvalSupported,\n fn = _ref8.fn,\n dict = _ref8.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 for (var i = 0; i < length; ++i) {\n diff.push(c1[i] - c0[i]);\n }\n return [CONSTRUCT_INTERPOLATED, c0, diff, n];\n },\n constructInterpolatedFromIR: function constructInterpolatedFromIR(_ref9) {\n var xref = _ref9.xref,\n isEvalSupported = _ref9.isEvalSupported,\n IR = _ref9.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] : Math.pow(src[srcOffset], n);\n for (var j = 0; j < length; ++j) {\n dest[destOffset + j] = c0[j] + x * diff[j];\n }\n };\n },\n constructStiched: function constructStiched(_ref10) {\n var xref = _ref10.xref,\n isEvalSupported = _ref10.isEvalSupported,\n fn = _ref10.fn,\n dict = _ref10.dict;\n\n var domain = toNumberArray(dict.getArray('Domain'));\n if (!domain) {\n throw new _util.FormatError('No domain');\n }\n var inputSize = domain.length / 2;\n if (inputSize !== 1) {\n throw new _util.FormatError('Bad domain for stiched function');\n }\n var fnRefs = dict.get('Functions');\n var fns = [];\n for (var i = 0, ii = fnRefs.length; i < ii; ++i) {\n fns.push(this.parse({\n xref: xref,\n isEvalSupported: isEvalSupported,\n fn: xref.fetchIfRef(fnRefs[i])\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 constructStichedFromIR: function constructStichedFromIR(_ref11) {\n var xref = _ref11.xref,\n isEvalSupported = _ref11.isEvalSupported,\n IR = _ref11.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 return v;\n };\n var v = clip(src[srcOffset], domain[0], domain[1]);\n for (var i = 0, ii = bounds.length; i < ii; ++i) {\n if (v < bounds[i]) {\n break;\n }\n }\n var dmin = domain[0];\n if (i > 0) {\n dmin = bounds[i - 1];\n }\n var dmax = domain[1];\n if (i < bounds.length) {\n dmax = bounds[i];\n }\n 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 constructPostScript: function constructPostScript(_ref12) {\n var xref = _ref12.xref,\n isEvalSupported = _ref12.isEvalSupported,\n fn = _ref12.fn,\n dict = _ref12.dict;\n\n var domain = toNumberArray(dict.getArray('Domain'));\n var range = toNumberArray(dict.getArray('Range'));\n if (!domain) {\n throw new _util.FormatError('No domain.');\n }\n if (!range) {\n throw new _util.FormatError('No range.');\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 constructPostScriptFromIR: function constructPostScriptFromIR(_ref13) {\n var xref = _ref13.xref,\n isEvalSupported = _ref13.isEvalSupported,\n IR = _ref13.IR;\n\n var domain = IR[1];\n var range = IR[2];\n var code = IR[3];\n if (isEvalSupported && IsEvalSupportedCached.value) {\n var compiled = new PostScriptCompiler().compile(code, domain, range);\n if (compiled) {\n return new Function('src', 'srcOffset', 'dest', 'destOffset', compiled);\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 for (i = 0; i < numInputs; i++) {\n value = src[srcOffset + i];\n input[i] = value;\n key += value + '_';\n }\n var cachedValue = cache[key];\n if (cachedValue !== undefined) {\n dest.set(cachedValue, destOffset);\n return;\n }\n var output = new Float32Array(numOutputs);\n var stack = evaluator.execute(input);\n var stackIndex = stack.length - numOutputs;\n for (i = 0; i < numOutputs; i++) {\n value = stack[stackIndex + i];\n var bound = range[i * 2];\n if (value < bound) {\n value = bound;\n } else {\n bound = range[i * 2 + 1];\n if (value > bound) {\n value = bound;\n }\n }\n output[i] = value;\n }\n if (cache_available > 0) {\n cache_available--;\n cache[key] = output;\n }\n dest.set(output, destOffset);\n };\n }\n };\n}();\nfunction isPDFFunction(v) {\n var fnDict;\n if ((typeof v === 'undefined' ? 'undefined' : _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 return fnDict.has('FunctionType');\n}\nvar PostScriptStack = function PostScriptStackClosure() {\n var MAX_STACK_SIZE = 100;\n function PostScriptStack(initialStack) {\n this.stack = !initialStack ? [] : Array.prototype.slice.call(initialStack, 0);\n }\n PostScriptStack.prototype = {\n push: function PostScriptStack_push(value) {\n if (this.stack.length >= MAX_STACK_SIZE) {\n throw new Error('PostScript function stack overflow.');\n }\n this.stack.push(value);\n },\n pop: function PostScriptStack_pop() {\n if (this.stack.length <= 0) {\n throw new Error('PostScript function stack underflow.');\n }\n return this.stack.pop();\n },\n copy: function PostScriptStack_copy(n) {\n if (this.stack.length + n >= MAX_STACK_SIZE) {\n throw new Error('PostScript function stack overflow.');\n }\n var stack = this.stack;\n for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n stack.push(stack[i]);\n }\n },\n index: function PostScriptStack_index(n) {\n this.push(this.stack[this.stack.length - n - 1]);\n },\n roll: function PostScriptStack_roll(n, p) {\n var stack = this.stack;\n var l = stack.length - n;\n var r = stack.length - 1,\n c = l + (p - Math.floor(p / n) * n),\n i,\n j,\n t;\n for (i = l, j = r; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (i = l, j = c - 1; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (i = c, j = r; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n }\n };\n return PostScriptStack;\n}();\nvar PostScriptEvaluator = function PostScriptEvaluatorClosure() {\n function PostScriptEvaluator(operators) {\n this.operators = operators;\n }\n PostScriptEvaluator.prototype = {\n execute: function PostScriptEvaluator_execute(initialStack) {\n var stack = new PostScriptStack(initialStack);\n var counter = 0;\n var operators = this.operators;\n var length = operators.length;\n var operator, a, b;\n while (counter < length) {\n operator = operators[counter++];\n if (typeof operator === 'number') {\n stack.push(operator);\n continue;\n }\n switch (operator) {\n case 'jz':\n b = stack.pop();\n a = stack.pop();\n if (!a) {\n counter = b;\n }\n break;\n case 'j':\n a = stack.pop();\n counter = a;\n break;\n case 'abs':\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n case 'add':\n b = stack.pop();\n a = stack.pop();\n stack.push(a + b);\n break;\n case 'and':\n b = stack.pop();\n a = stack.pop();\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a && b);\n } else {\n stack.push(a & b);\n }\n break;\n case 'atan':\n a = stack.pop();\n stack.push(Math.atan(a));\n break;\n case 'bitshift':\n b = stack.pop();\n a = stack.pop();\n if (a > 0) {\n stack.push(a << b);\n } else {\n stack.push(a >> b);\n }\n break;\n case 'ceiling':\n a = stack.pop();\n stack.push(Math.ceil(a));\n break;\n case 'copy':\n a = stack.pop();\n stack.copy(a);\n break;\n case 'cos':\n a = stack.pop();\n stack.push(Math.cos(a));\n break;\n case 'cvi':\n a = stack.pop() | 0;\n stack.push(a);\n break;\n case 'cvr':\n break;\n case 'div':\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b);\n break;\n case 'dup':\n stack.copy(1);\n break;\n case 'eq':\n b = stack.pop();\n a = stack.pop();\n stack.push(a === b);\n break;\n case 'exch':\n stack.roll(2, 1);\n break;\n case 'exp':\n b = stack.pop();\n a = stack.pop();\n stack.push(Math.pow(a, b));\n break;\n case 'false':\n stack.push(false);\n break;\n case 'floor':\n a = stack.pop();\n stack.push(Math.floor(a));\n break;\n case 'ge':\n b = stack.pop();\n a = stack.pop();\n stack.push(a >= b);\n break;\n case 'gt':\n b = stack.pop();\n a = stack.pop();\n stack.push(a > b);\n break;\n case 'idiv':\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b | 0);\n break;\n case 'index':\n a = stack.pop();\n stack.index(a);\n break;\n case 'le':\n b = stack.pop();\n a = stack.pop();\n stack.push(a <= b);\n break;\n case 'ln':\n a = stack.pop();\n stack.push(Math.log(a));\n break;\n case 'log':\n a = stack.pop();\n stack.push(Math.log(a) / Math.LN10);\n break;\n case 'lt':\n b = stack.pop();\n a = stack.pop();\n stack.push(a < b);\n break;\n case 'mod':\n b = stack.pop();\n a = stack.pop();\n stack.push(a % b);\n break;\n case 'mul':\n b = stack.pop();\n a = stack.pop();\n stack.push(a * b);\n break;\n case 'ne':\n b = stack.pop();\n a = stack.pop();\n stack.push(a !== b);\n break;\n case 'neg':\n a = stack.pop();\n stack.push(-a);\n break;\n case 'not':\n a = stack.pop();\n if ((0, _util.isBool)(a)) {\n stack.push(!a);\n } else {\n stack.push(~a);\n }\n break;\n case 'or':\n b = stack.pop();\n a = stack.pop();\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a || b);\n } else {\n stack.push(a | b);\n }\n break;\n case 'pop':\n stack.pop();\n break;\n case 'roll':\n b = stack.pop();\n a = stack.pop();\n stack.roll(a, b);\n break;\n case 'round':\n a = stack.pop();\n stack.push(Math.round(a));\n break;\n case 'sin':\n a = stack.pop();\n stack.push(Math.sin(a));\n break;\n case 'sqrt':\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n case 'sub':\n b = stack.pop();\n a = stack.pop();\n stack.push(a - b);\n break;\n case 'true':\n stack.push(true);\n break;\n case 'truncate':\n a = stack.pop();\n a = a < 0 ? Math.ceil(a) : Math.floor(a);\n stack.push(a);\n break;\n case 'xor':\n b = stack.pop();\n a = stack.pop();\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a !== b);\n } else {\n stack.push(a ^ b);\n }\n break;\n default:\n throw new _util.FormatError('Unknown operator ' + operator);\n }\n }\n return stack.stack;\n }\n };\n return PostScriptEvaluator;\n}();\nvar PostScriptCompiler = function PostScriptCompilerClosure() {\n function AstNode(type) {\n this.type = type;\n }\n AstNode.prototype.visit = function (visitor) {\n (0, _util.unreachable)('abstract method');\n };\n function AstArgument(index, min, max) {\n AstNode.call(this, 'args');\n this.index = index;\n this.min = min;\n this.max = max;\n }\n AstArgument.prototype = Object.create(AstNode.prototype);\n AstArgument.prototype.visit = function (visitor) {\n visitor.visitArgument(this);\n };\n function AstLiteral(number) {\n AstNode.call(this, 'literal');\n this.number = number;\n this.min = number;\n this.max = number;\n }\n AstLiteral.prototype = Object.create(AstNode.prototype);\n AstLiteral.prototype.visit = function (visitor) {\n visitor.visitLiteral(this);\n };\n function AstBinaryOperation(op, arg1, arg2, min, max) {\n AstNode.call(this, 'binary');\n this.op = op;\n this.arg1 = arg1;\n this.arg2 = arg2;\n this.min = min;\n this.max = max;\n }\n AstBinaryOperation.prototype = Object.create(AstNode.prototype);\n AstBinaryOperation.prototype.visit = function (visitor) {\n visitor.visitBinaryOperation(this);\n };\n function AstMin(arg, max) {\n AstNode.call(this, 'max');\n this.arg = arg;\n this.min = arg.min;\n this.max = max;\n }\n AstMin.prototype = Object.create(AstNode.prototype);\n AstMin.prototype.visit = function (visitor) {\n visitor.visitMin(this);\n };\n function AstVariable(index, min, max) {\n AstNode.call(this, 'var');\n this.index = index;\n this.min = min;\n this.max = max;\n }\n AstVariable.prototype = Object.create(AstNode.prototype);\n AstVariable.prototype.visit = function (visitor) {\n visitor.visitVariable(this);\n };\n function AstVariableDefinition(variable, arg) {\n AstNode.call(this, 'definition');\n this.variable = variable;\n this.arg = arg;\n }\n AstVariableDefinition.prototype = Object.create(AstNode.prototype);\n AstVariableDefinition.prototype.visit = function (visitor) {\n visitor.visitVariableDefinition(this);\n };\n function ExpressionBuilderVisitor() {\n this.parts = [];\n }\n ExpressionBuilderVisitor.prototype = {\n visitArgument: function visitArgument(arg) {\n this.parts.push('Math.max(', arg.min, ', Math.min(', arg.max, ', src[srcOffset + ', arg.index, ']))');\n },\n visitVariable: function visitVariable(variable) {\n this.parts.push('v', variable.index);\n },\n visitLiteral: function visitLiteral(literal) {\n this.parts.push(literal.number);\n },\n visitBinaryOperation: function visitBinaryOperation(operation) {\n this.parts.push('(');\n operation.arg1.visit(this);\n this.parts.push(' ', operation.op, ' ');\n operation.arg2.visit(this);\n this.parts.push(')');\n },\n visitVariableDefinition: function visitVariableDefinition(definition) {\n this.parts.push('var ');\n definition.variable.visit(this);\n this.parts.push(' = ');\n definition.arg.visit(this);\n this.parts.push(';');\n },\n visitMin: function visitMin(max) {\n this.parts.push('Math.min(');\n max.arg.visit(this);\n this.parts.push(', ', max.max, ')');\n },\n toString: function toString() {\n return this.parts.join('');\n }\n };\n function buildAddOperation(num1, num2) {\n if (num2.type === 'literal' && num2.number === 0) {\n return num1;\n }\n if (num1.type === 'literal' && num1.number === 0) {\n return num2;\n }\n if (num2.type === 'literal' && num1.type === 'literal') {\n return new AstLiteral(num1.number + num2.number);\n }\n return new AstBinaryOperation('+', num1, num2, num1.min + num2.min, num1.max + num2.max);\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 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 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 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 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 return new AstBinaryOperation('-', num1, num2, num1.min - num2.max, num1.max - num2.min);\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 return new AstMin(num1, max);\n }\n function PostScriptCompiler() {}\n PostScriptCompiler.prototype = {\n compile: function PostScriptCompiler_compile(code, domain, range) {\n var stack = [];\n var i, ii;\n var instructions = [];\n var inputSize = domain.length >> 1,\n outputSize = range.length >> 1;\n var lastRegister = 0;\n var n, j;\n var num1, num2, ast1, ast2, tmpVar, item;\n for (i = 0; i < inputSize; i++) {\n stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n }\n for (i = 0, ii = code.length; i < ii; i++) {\n item = code[i];\n if (typeof item === 'number') {\n stack.push(new AstLiteral(item));\n continue;\n }\n switch (item) {\n case 'add':\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildAddOperation(num1, num2));\n break;\n case 'cvr':\n if (stack.length < 1) {\n return null;\n }\n break;\n case 'mul':\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildMulOperation(num1, num2));\n break;\n case 'sub':\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildSubOperation(num1, num2));\n break;\n case 'exch':\n if (stack.length < 2) {\n return null;\n }\n ast1 = stack.pop();\n ast2 = stack.pop();\n stack.push(ast1, ast2);\n break;\n case 'pop':\n if (stack.length < 1) {\n return null;\n }\n stack.pop();\n break;\n case 'index':\n if (stack.length < 1) {\n return null;\n }\n num1 = stack.pop();\n if (num1.type !== 'literal') {\n return null;\n }\n n = num1.number;\n if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n return null;\n }\n ast1 = stack[stack.length - n - 1];\n if (ast1.type === 'literal' || ast1.type === 'var') {\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - n - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case 'dup':\n if (stack.length < 1) {\n return null;\n }\n if (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 ast1 = stack[stack.length - 1];\n if (ast1.type === 'literal' || ast1.type === 'var') {\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case 'roll':\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n if (num2.type !== 'literal' || num1.type !== 'literal') {\n return null;\n }\n j = num2.number;\n n = num1.number;\n if (n <= 0 || !Number.isInteger(n) || !Number.isInteger(j) || stack.length < n) {\n return null;\n }\n j = (j % n + n) % n;\n if (j === 0) {\n break;\n }\n Array.prototype.push.apply(stack, stack.splice(stack.length - n, n - j));\n break;\n default:\n return null;\n }\n }\n if (stack.length !== outputSize) {\n return null;\n }\n var result = [];\n instructions.forEach(function (instruction) {\n var statementBuilder = new ExpressionBuilderVisitor();\n instruction.visit(statementBuilder);\n result.push(statementBuilder.toString());\n });\n stack.forEach(function (expr, i) {\n var statementBuilder = new ExpressionBuilderVisitor();\n expr.visit(statementBuilder);\n var min = range[i * 2],\n max = range[i * 2 + 1];\n var out = [statementBuilder.toString()];\n if (min > expr.min) {\n out.unshift('Math.max(', min, ', ');\n out.push(')');\n }\n if (max < expr.max) {\n out.unshift('Math.min(', max, ', ');\n out.push(')');\n }\n out.unshift('dest[destOffset + ', i, '] = ');\n out.push(';');\n result.push(out.join(''));\n });\n return result.join('\\n');\n }\n };\n return PostScriptCompiler;\n}();\nexports.isPDFFunction = isPDFFunction;\nexports.PDFFunctionFactory = PDFFunctionFactory;\nexports.PostScriptEvaluator = PostScriptEvaluator;\nexports.PostScriptCompiler = PostScriptCompiler;\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PostScriptParser = exports.PostScriptLexer = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar PostScriptParser = function PostScriptParserClosure() {\n function PostScriptParser(lexer) {\n this.lexer = lexer;\n this.operators = [];\n this.token = null;\n this.prev = null;\n }\n PostScriptParser.prototype = {\n nextToken: function PostScriptParser_nextToken() {\n this.prev = this.token;\n this.token = this.lexer.getToken();\n },\n accept: function PostScriptParser_accept(type) {\n if (this.token.type === type) {\n this.nextToken();\n return true;\n }\n return false;\n },\n expect: function PostScriptParser_expect(type) {\n if (this.accept(type)) {\n return true;\n }\n throw new _util.FormatError('Unexpected symbol: found ' + this.token.type + ' expected ' + type + '.');\n },\n parse: function PostScriptParser_parse() {\n this.nextToken();\n this.expect(PostScriptTokenTypes.LBRACE);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n return this.operators;\n },\n parseBlock: function PostScriptParser_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 parseCondition: function PostScriptParser_parseCondition() {\n var conditionLocation = this.operators.length;\n this.operators.push(null, null);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\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 var jumpLocation = this.operators.length;\n this.operators.push(null, null);\n var 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 return PostScriptParser;\n}();\nvar PostScriptTokenTypes = {\n LBRACE: 0,\n RBRACE: 1,\n NUMBER: 2,\n OPERATOR: 3,\n IF: 4,\n IFELSE: 5\n};\nvar PostScriptToken = function PostScriptTokenClosure() {\n function PostScriptToken(type, value) {\n this.type = type;\n this.value = value;\n }\n var opCache = Object.create(null);\n PostScriptToken.getOperator = function PostScriptToken_getOperator(op) {\n var opValue = opCache[op];\n if (opValue) {\n return opValue;\n }\n return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);\n };\n PostScriptToken.LBRACE = new PostScriptToken(PostScriptTokenTypes.LBRACE, '{');\n PostScriptToken.RBRACE = new PostScriptToken(PostScriptTokenTypes.RBRACE, '}');\n PostScriptToken.IF = new PostScriptToken(PostScriptTokenTypes.IF, 'IF');\n PostScriptToken.IFELSE = new PostScriptToken(PostScriptTokenTypes.IFELSE, 'IFELSE');\n return PostScriptToken;\n}();\nvar PostScriptLexer = function PostScriptLexerClosure() {\n function PostScriptLexer(stream) {\n this.stream = stream;\n this.nextChar();\n this.strBuf = [];\n }\n PostScriptLexer.prototype = {\n nextChar: function PostScriptLexer_nextChar() {\n return this.currentChar = this.stream.getByte();\n },\n getToken: function PostScriptLexer_getToken() {\n var comment = false;\n var ch = this.currentChar;\n while (true) {\n if (ch < 0) {\n return _primitives.EOF;\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, _util.isSpace)(ch)) {\n break;\n }\n ch = this.nextChar();\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 case 0x7B:\n this.nextChar();\n return PostScriptToken.LBRACE;\n case 0x7D:\n this.nextChar();\n return PostScriptToken.RBRACE;\n }\n var strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A)) {\n strBuf.push(String.fromCharCode(ch));\n }\n var str = strBuf.join('');\n switch (str.toLowerCase()) {\n case 'if':\n return PostScriptToken.IF;\n case 'ifelse':\n return PostScriptToken.IFELSE;\n default:\n return PostScriptToken.getOperator(str);\n }\n },\n getNumber: function PostScriptLexer_getNumber() {\n var ch = this.currentChar;\n var strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\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 var value = parseFloat(strBuf.join(''));\n if (isNaN(value)) {\n throw new _util.FormatError('Invalid floating point number: ' + value);\n }\n return value;\n }\n };\n return PostScriptLexer;\n}();\nexports.PostScriptLexer = PostScriptLexer;\nexports.PostScriptParser = PostScriptParser;\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MurmurHash3_64 = undefined;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar MurmurHash3_64 = function MurmurHash3_64Closure(seed) {\n var MASK_HIGH = 0xffff0000;\n var MASK_LOW = 0xffff;\n function MurmurHash3_64(seed) {\n var SEED = 0xc3d2e1f0;\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n MurmurHash3_64.prototype = {\n update: function MurmurHash3_64_update(input) {\n var data = void 0,\n length = void 0;\n if ((0, _util.isString)(input)) {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (var i = 0, ii = input.length; i < ii; i++) {\n var code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((0, _util.isArrayBuffer)(input)) {\n data = input;\n length = data.byteLength;\n } else {\n throw new Error('Wrong data format in MurmurHash3_64_update. ' + 'Input must be a string or array.');\n }\n var blockCounts = length >> 2;\n var tailLength = length - blockCounts * 4;\n var dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n var k1 = 0;\n var k2 = 0;\n var h1 = this.h1;\n var h2 = this.h2;\n var C1 = 0xcc9e2d51;\n var C2 = 0x1b873593;\n var C1_LOW = C1 & MASK_LOW;\n var C2_LOW = C2 & MASK_LOW;\n for (var _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 k1 = 0;\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\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 if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n this.h1 = h1;\n this.h2 = h2;\n return this;\n },\n hexdigest: function MurmurHash3_64_hexdigest() {\n var h1 = this.h1;\n var 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 for (var i = 0, arr = [h1, h2], str = ''; i < arr.length; i++) {\n var hex = (arr[i] >>> 0).toString(16);\n while (hex.length < 8) {\n hex = '0' + hex;\n }\n str += hex;\n }\n return str;\n }\n };\n return MurmurHash3_64;\n}();\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFImage = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(138);\n\nvar _colorspace = __w_pdfjs_require__(151);\n\nvar _stream = __w_pdfjs_require__(140);\n\nvar _jpeg_stream = __w_pdfjs_require__(146);\n\nvar _jpx = __w_pdfjs_require__(149);\n\nvar PDFImage = function PDFImageClosure() {\n function handleImageData(image, nativeDecoder) {\n if (nativeDecoder && nativeDecoder.canDecode(image)) {\n return nativeDecoder.decode(image).catch(function (reason) {\n (0, _util.warn)('Native image decoding failed -- trying to recover: ' + (reason && reason.message));\n return image;\n });\n }\n return Promise.resolve(image);\n }\n function decodeAndClamp(value, addend, coefficient, max) {\n value = addend + value * coefficient;\n return value < 0 ? 0 : value > max ? max : value;\n }\n function resizeImageMask(src, bpc, w1, h1, w2, h2) {\n var length = w2 * h2;\n var dest = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);\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 for (i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio);\n }\n for (i = 0; i < h2; i++) {\n py = Math.floor(i * yRatio) * w1Scanline;\n for (j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex];\n }\n }\n return dest;\n }\n function PDFImage(_ref) {\n var xref = _ref.xref,\n res = _ref.res,\n image = _ref.image,\n _ref$isInline = _ref.isInline,\n isInline = _ref$isInline === undefined ? false : _ref$isInline,\n _ref$smask = _ref.smask,\n smask = _ref$smask === undefined ? null : _ref$smask,\n _ref$mask = _ref.mask,\n mask = _ref$mask === undefined ? null : _ref$mask,\n _ref$isMask = _ref.isMask,\n isMask = _ref$isMask === undefined ? false : _ref$isMask,\n pdfFunctionFactory = _ref.pdfFunctionFactory;\n\n this.image = image;\n var dict = image.dict;\n var filter = dict.get('Filter');\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 case 'JBIG2Decode':\n image.bitsPerComponent = 1;\n image.numComps = 1;\n break;\n }\n }\n var width = dict.get('Width', 'W');\n var height = dict.get('Height', 'H');\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 if (width < 1 || height < 1) {\n throw new _util.FormatError('Invalid image width: ' + width + ' or ' + ('height: ' + height));\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 if (!bitsPerComponent) {\n bitsPerComponent = dict.get('BitsPerComponent', 'BPC');\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 this.bpc = bitsPerComponent;\n if (!this.imageMask) {\n var colorSpace = dict.get('ColorSpace', 'CS');\n if (!colorSpace) {\n (0, _util.info)('JPX images (which do not require color spaces)');\n switch (image.numComps) {\n case 1:\n colorSpace = _primitives.Name.get('DeviceGray');\n break;\n case 3:\n colorSpace = _primitives.Name.get('DeviceRGB');\n break;\n case 4:\n colorSpace = _primitives.Name.get('DeviceCMYK');\n break;\n default:\n throw new Error('JPX images with ' + image.numComps + ' ' + 'color components not supported.');\n }\n }\n var resources = isInline ? res : null;\n this.colorSpace = _colorspace.ColorSpace.parse(colorSpace, xref, resources, pdfFunctionFactory);\n this.numComps = this.colorSpace.numComps;\n }\n this.decode = dict.getArray('Decode', 'D');\n this.needsDecode = false;\n if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode) || isMask && !_colorspace.ColorSpace.isDefaultDecode(this.decode, 1))) {\n this.needsDecode = true;\n var max = (1 << bitsPerComponent) - 1;\n this.decodeCoefficients = [];\n this.decodeAddends = [];\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] = dmax - dmin;\n this.decodeAddends[j] = max * dmin;\n }\n }\n if (smask) {\n this.smask = new PDFImage({\n xref: xref,\n res: res,\n image: smask,\n isInline: isInline,\n pdfFunctionFactory: pdfFunctionFactory\n });\n } else if (mask) {\n if ((0, _primitives.isStream)(mask)) {\n var maskDict = mask.dict,\n imageMask = maskDict.get('ImageMask', 'IM');\n if (!imageMask) {\n (0, _util.warn)('Ignoring /Mask in image without /ImageMask.');\n } else {\n this.mask = new PDFImage({\n xref: xref,\n res: res,\n image: mask,\n isInline: isInline,\n isMask: true,\n pdfFunctionFactory: pdfFunctionFactory\n });\n }\n } else {\n this.mask = mask;\n }\n }\n }\n PDFImage.buildImage = function (_ref2) {\n var handler = _ref2.handler,\n xref = _ref2.xref,\n res = _ref2.res,\n image = _ref2.image,\n _ref2$isInline = _ref2.isInline,\n isInline = _ref2$isInline === undefined ? false : _ref2$isInline,\n _ref2$nativeDecoder = _ref2.nativeDecoder,\n nativeDecoder = _ref2$nativeDecoder === undefined ? null : _ref2$nativeDecoder,\n pdfFunctionFactory = _ref2.pdfFunctionFactory;\n\n var imagePromise = handleImageData(image, nativeDecoder);\n var smaskPromise;\n var maskPromise;\n var smask = image.dict.get('SMask');\n var mask = image.dict.get('Mask');\n if (smask) {\n smaskPromise = handleImageData(smask, nativeDecoder);\n maskPromise = Promise.resolve(null);\n } else {\n smaskPromise = Promise.resolve(null);\n if (mask) {\n if ((0, _primitives.isStream)(mask)) {\n maskPromise = handleImageData(mask, nativeDecoder);\n } else if (Array.isArray(mask)) {\n maskPromise = Promise.resolve(mask);\n } else {\n (0, _util.warn)('Unsupported mask format.');\n maskPromise = Promise.resolve(null);\n }\n } else {\n maskPromise = Promise.resolve(null);\n }\n }\n return Promise.all([imagePromise, smaskPromise, maskPromise]).then(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 3),\n imageData = _ref4[0],\n smaskData = _ref4[1],\n maskData = _ref4[2];\n\n return new PDFImage({\n xref: xref,\n res: res,\n image: imageData,\n isInline: isInline,\n smask: smaskData,\n mask: maskData,\n pdfFunctionFactory: pdfFunctionFactory\n });\n });\n };\n PDFImage.createMask = function (_ref5) {\n var imgArray = _ref5.imgArray,\n width = _ref5.width,\n height = _ref5.height,\n imageIsFromDecodeStream = _ref5.imageIsFromDecodeStream,\n inverseDecode = _ref5.inverseDecode;\n\n var computedLength = (width + 7 >> 3) * height;\n var actualLength = imgArray.byteLength;\n var haveFullData = computedLength === actualLength;\n var data, i;\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 for (i = actualLength; i < computedLength; i++) {\n data[i] = 0xff;\n }\n }\n if (inverseDecode) {\n for (i = 0; i < actualLength; i++) {\n data[i] ^= 0xFF;\n }\n }\n return {\n data: data,\n width: width,\n height: height\n };\n };\n PDFImage.prototype = {\n get drawWidth() {\n return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0);\n },\n get drawHeight() {\n return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0);\n },\n decodeBuffer: function 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 if (bpc === 1) {\n for (i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = +!buffer[i];\n }\n return;\n }\n var index = 0;\n for (i = 0, ii = this.width * this.height; i < ii; i++) {\n for (var j = 0; j < numComps; j++) {\n buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], decodeCoefficients[j], max);\n index++;\n }\n }\n },\n getComponents: function getComponents(buffer) {\n var bpc = this.bpc;\n if (bpc === 8) {\n return buffer;\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 var output = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);\n var rowComps = width * numComps;\n var max = (1 << bpc) - 1;\n var i = 0,\n ii,\n buf;\n if (bpc === 1) {\n var mask, loop1End, loop2End;\n for (var j = 0; j < height; j++) {\n loop1End = i + (rowComps & ~7);\n loop2End = i + rowComps;\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 if (i < loop2End) {\n buf = buffer[bufferPos++];\n mask = 128;\n while (i < loop2End) {\n output[i++] = +!!(buf & mask);\n mask >>= 1;\n }\n }\n }\n } else {\n var bits = 0;\n buf = 0;\n for (i = 0, ii = length; i < ii; ++i) {\n if (i % rowComps === 0) {\n buf = 0;\n bits = 0;\n }\n while (bits < bpc) {\n buf = buf << 8 | buffer[bufferPos++];\n bits += 8;\n }\n var remainingBits = bits - bpc;\n var value = buf >> remainingBits;\n output[i] = value < 0 ? 0 : value > max ? max : value;\n buf = buf & (1 << remainingBits) - 1;\n bits = remainingBits;\n }\n }\n return output;\n },\n fillOpacity: function 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 if (smask) {\n sw = smask.width;\n sh = smask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n smask.fillGrayBuffer(alphaBuf);\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(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 for (i = 0, ii = sw * sh; i < ii; ++i) {\n alphaBuf[i] = 255 - alphaBuf[i];\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 for (i = 0, ii = width * height; i < ii; ++i) {\n var opacity = 0;\n var imageOffset = i * numComps;\n for (j = 0; j < numComps; ++j) {\n var color = image[imageOffset + j];\n var maskOffset = j * 2;\n if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n opacity = 255;\n break;\n }\n }\n alphaBuf[i] = opacity;\n }\n } else {\n throw new _util.FormatError('Unknown mask format.');\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 undoPreblend: function undoPreblend(buffer, width, height) {\n var matte = this.smask && this.smask.matte;\n if (!matte) {\n return;\n }\n var matteRgb = this.colorSpace.getRgb(matte, 0);\n var matteR = matteRgb[0];\n var matteG = matteRgb[1];\n var matteB = matteRgb[2];\n var length = width * height * 4;\n for (var i = 0; i < length; i += 4) {\n var alpha = buffer[i + 3];\n if (alpha === 0) {\n buffer[i] = 255;\n buffer[i + 1] = 255;\n buffer[i + 2] = 255;\n continue;\n }\n var k = 255 / alpha;\n buffer[i] = (buffer[i] - matteR) * k + matteR;\n buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n }\n },\n createImageData: function createImageData() {\n var forceRGBA = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\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 if (!forceRGBA) {\n var kind;\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 if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) {\n imgData.kind = kind;\n imgArray = this.getImageBytes(originalHeight * rowBytes);\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 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 for (var i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] ^= 0xff;\n }\n }\n return imgData;\n }\n if (this.image instanceof _jpeg_stream.JpegStream && !this.smask && !this.mask) {\n var imageLength = originalHeight * rowBytes;\n switch (this.colorSpace.name) {\n case 'DeviceGray':\n imageLength *= 3;\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 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 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 if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n this.colorSpace.fillRgb(imgData.data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01);\n if (maybeUndoPreblend) {\n this.undoPreblend(imgData.data, drawWidth, actualHeight);\n }\n return imgData;\n },\n fillGrayBuffer: function fillGrayBuffer(buffer) {\n var numComps = this.numComps;\n if (numComps !== 1) {\n throw new _util.FormatError('Reading gray scale from a color image: ' + numComps);\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 if (bpc === 1) {\n length = width * height;\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 return;\n }\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n length = width * height;\n var scale = 255 / ((1 << bpc) - 1);\n for (i = 0; i < length; ++i) {\n buffer[i] = scale * comps[i];\n }\n },\n getImageBytes: function getImageBytes(length, drawWidth, drawHeight) {\n var forceRGB = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\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 return PDFImage;\n}();\nexports.PDFImage = PDFImage;\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MessageHandler = undefined;\n\nvar _regenerator = __w_pdfjs_require__(131);\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar resolveCall = function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee(fn, args) {\n var thisArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (fn) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt('return');\n\n case 2:\n return _context.abrupt('return', fn.apply(thisArg, args));\n\n case 3:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function resolveCall(_x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nfunction wrapReason(reason) {\n if ((typeof reason === 'undefined' ? 'undefined' : _typeof(reason)) !== 'object') {\n return reason;\n }\n switch (reason.name) {\n case 'AbortException':\n return new _util.AbortException(reason.message);\n case 'MissingPDFException':\n return new _util.MissingPDFException(reason.message);\n case 'UnexpectedResponseException':\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n default:\n return new _util.UnknownErrorException(reason.message, reason.details);\n }\n}\nfunction makeReasonSerializable(reason) {\n if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) {\n return reason;\n }\n return new _util.UnknownErrorException(reason.message, reason.toString());\n}\nfunction resolveOrReject(capability, success, reason) {\n if (success) {\n capability.resolve();\n } else {\n capability.reject(reason);\n }\n}\nfunction finalize(promise) {\n return Promise.resolve(promise).catch(function () {});\n}\nfunction MessageHandler(sourceName, targetName, comObj) {\n var _this = this;\n\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 var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);\n var ah = this.actionHandler = Object.create(null);\n this._onComObjOnMessage = function (event) {\n var data = event.data;\n if (data.targetName !== _this.sourceName) {\n return;\n }\n if (data.stream) {\n _this._processStreamMessage(data);\n } else if (data.isReply) {\n var callbackId = data.callbackId;\n if (data.callbackId in callbacksCapabilities) {\n var callback = callbacksCapabilities[callbackId];\n delete callbacksCapabilities[callbackId];\n if ('error' in data) {\n callback.reject(wrapReason(data.error));\n } else {\n callback.resolve(data.data);\n }\n } else {\n throw new Error('Cannot resolve callback ' + callbackId);\n }\n } else if (data.action in ah) {\n var action = ah[data.action];\n if (data.callbackId) {\n var _sourceName = _this.sourceName;\n var _targetName = data.sourceName;\n Promise.resolve().then(function () {\n return action[0].call(action[1], data.data);\n }).then(function (result) {\n comObj.postMessage({\n sourceName: _sourceName,\n targetName: _targetName,\n isReply: true,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: _sourceName,\n targetName: _targetName,\n isReply: true,\n callbackId: data.callbackId,\n error: makeReasonSerializable(reason)\n });\n });\n } else if (data.streamId) {\n _this._createStreamSink(data);\n } else {\n action[0].call(action[1], data.data);\n }\n } else {\n throw new Error('Unknown action from worker: ' + data.action);\n }\n };\n comObj.addEventListener('message', this._onComObjOnMessage);\n}\nMessageHandler.prototype = {\n on: function on(actionName, handler, scope) {\n var ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error('There is already an actionName called \"' + actionName + '\"');\n }\n ah[actionName] = [handler, scope];\n },\n send: function send(actionName, data, transfers) {\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data: data\n };\n this.postMessage(message, transfers);\n },\n sendWithPromise: function sendWithPromise(actionName, data, transfers) {\n var callbackId = this.callbackId++;\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data: data,\n callbackId: callbackId\n };\n var capability = (0, _util.createPromiseCapability)();\n this.callbacksCapabilities[callbackId] = capability;\n try {\n this.postMessage(message, transfers);\n } catch (e) {\n capability.reject(e);\n }\n return capability.promise;\n },\n sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) {\n var _this2 = this;\n\n var streamId = this.streamId++;\n var sourceName = this.sourceName;\n var targetName = this.targetName;\n return new _util.ReadableStream({\n start: function start(controller) {\n var startCapability = (0, _util.createPromiseCapability)();\n _this2.streamControllers[streamId] = {\n controller: controller,\n startCall: startCapability,\n isClosed: false\n };\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n action: actionName,\n streamId: streamId,\n data: data,\n desiredSize: controller.desiredSize\n });\n return startCapability.promise;\n },\n pull: function pull(controller) {\n var pullCapability = (0, _util.createPromiseCapability)();\n _this2.streamControllers[streamId].pullCall = pullCapability;\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: 'pull',\n streamId: streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: function cancel(reason) {\n var cancelCapability = (0, _util.createPromiseCapability)();\n _this2.streamControllers[streamId].cancelCall = cancelCapability;\n _this2.streamControllers[streamId].isClosed = true;\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: 'cancel',\n reason: reason,\n streamId: streamId\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n },\n _createStreamSink: function _createStreamSink(data) {\n var _this3 = this;\n\n var self = this;\n var action = this.actionHandler[data.action];\n var streamId = data.streamId;\n var desiredSize = data.desiredSize;\n var sourceName = this.sourceName;\n var targetName = data.sourceName;\n var capability = (0, _util.createPromiseCapability)();\n var sendStreamRequest = function sendStreamRequest(_ref2) {\n var stream = _ref2.stream,\n chunk = _ref2.chunk,\n transfers = _ref2.transfers,\n success = _ref2.success,\n reason = _ref2.reason;\n\n _this3.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: stream,\n streamId: streamId,\n chunk: chunk,\n success: success,\n reason: reason\n }, transfers);\n };\n var streamSink = {\n enqueue: function enqueue(chunk) {\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var transfers = arguments[2];\n\n if (this.isCancelled) {\n return;\n }\n var lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n sendStreamRequest({\n stream: 'enqueue',\n chunk: chunk,\n transfers: transfers\n });\n },\n close: function close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n sendStreamRequest({ stream: 'close' });\n delete self.streamSinks[streamId];\n },\n error: function error(reason) {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n sendStreamRequest({\n stream: 'error',\n reason: reason\n });\n },\n\n sinkCapability: capability,\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n resolveCall(action[0], [data.data, streamSink], action[1]).then(function () {\n sendStreamRequest({\n stream: 'start_complete',\n success: true\n });\n }, function (reason) {\n sendStreamRequest({\n stream: 'start_complete',\n success: false,\n reason: reason\n });\n });\n },\n _processStreamMessage: function _processStreamMessage(data) {\n var _this4 = this;\n\n var sourceName = this.sourceName;\n var targetName = data.sourceName;\n var streamId = data.streamId;\n var sendStreamResponse = function sendStreamResponse(_ref3) {\n var stream = _ref3.stream,\n success = _ref3.success,\n reason = _ref3.reason;\n\n _this4.comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: stream,\n success: success,\n streamId: streamId,\n reason: reason\n });\n };\n var deleteStreamController = function deleteStreamController() {\n Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) {\n return capability && finalize(capability.promise);\n })).then(function () {\n delete _this4.streamControllers[data.streamId];\n });\n };\n switch (data.stream) {\n case 'start_complete':\n resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason));\n break;\n case 'pull_complete':\n resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason));\n break;\n case 'pull':\n if (!this.streamSinks[data.streamId]) {\n sendStreamResponse({\n stream: 'pull_complete',\n success: true\n });\n break;\n }\n if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[data.streamId].sinkCapability.resolve();\n }\n this.streamSinks[data.streamId].desiredSize = data.desiredSize;\n resolveCall(this.streamSinks[data.streamId].onPull).then(function () {\n sendStreamResponse({\n stream: 'pull_complete',\n success: true\n });\n }, function (reason) {\n sendStreamResponse({\n stream: 'pull_complete',\n success: false,\n reason: reason\n });\n });\n break;\n case 'enqueue':\n (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller');\n if (!this.streamControllers[data.streamId].isClosed) {\n this.streamControllers[data.streamId].controller.enqueue(data.chunk);\n }\n break;\n case 'close':\n (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller');\n if (this.streamControllers[data.streamId].isClosed) {\n break;\n }\n this.streamControllers[data.streamId].isClosed = true;\n this.streamControllers[data.streamId].controller.close();\n deleteStreamController();\n break;\n case 'error':\n (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller');\n this.streamControllers[data.streamId].controller.error(wrapReason(data.reason));\n deleteStreamController();\n break;\n case 'cancel_complete':\n resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason));\n deleteStreamController();\n break;\n case 'cancel':\n if (!this.streamSinks[data.streamId]) {\n break;\n }\n resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () {\n sendStreamResponse({\n stream: 'cancel_complete',\n success: true\n });\n }, function (reason) {\n sendStreamResponse({\n stream: 'cancel_complete',\n success: false,\n reason: reason\n });\n });\n this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason));\n this.streamSinks[data.streamId].isCancelled = true;\n delete this.streamSinks[data.streamId];\n break;\n default:\n throw new Error('Unexpected stream case');\n }\n },\n postMessage: function postMessage(message, transfers) {\n if (transfers && this.postMessageTransfers) {\n this.comObj.postMessage(message, transfers);\n } else {\n this.comObj.postMessage(message);\n }\n },\n destroy: function destroy() {\n this.comObj.removeEventListener('message', this._onComObjOnMessage);\n }\n};\nexports.MessageHandler = MessageHandler;\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf.worker.js.map"],"sourceRoot":""}